Локализация темы ownCloud
Можно ли локализовать файл, который переопределен пользовательской темой в ownCloud?
В соответствии с этой проблемой в bugtracker вы можете переопределить файлы темы, просто поместив их в свою папку темы и отредактировав их. В случае шаблонов электронной почты, которые отправляются, когда вы делитесь файлом с кем-то, это выглядит так:
print_unescaped($l->t("Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n", array($_['user_displayname'], $_['filename'], $_['link'])));
Это зависит от функции локализации, поэтому при изменении этого текста он будет отображаться только на английском языке, поскольку новый текст недоступен в языковых файлах.
Я нашел файлы локализации в <owncloud>/core/l10n/de_DE.php
, которые выглядят так:
$TRANSLATIONS = array(
"%s shared »%s« with you" => "%s hat »%s« mit Ihnen geteilt",
"Couldn't send mail to following users: %s " => "An folgende Benutzer konnte keine E-Mail gesendet werden: %s",
// ...
);
Я предполагаю, что мог бы также скопировать этот файл в каталог моей темы и добавить свой перевод для нового текста, но таким образом я потерял бы будущие изменения в исходном файле локализации.
Я хотел бы иметь возможность добавлять (и в идеале переопределять) записи в $TRANSLATIONS
массив в моей директории темы.
Официальная документация по тематике не актуальна (похоже, она была скопирована из предыдущей версии без адаптации к изменениям) и вообще не охватывает локализацию. Документация о переводе также не полезна.
1 ответ
С выпуском ownCloud 7 вы можете редактировать шаблоны электронной почты через панель управления администратора. О локализации вашего текста по этой ссылке хорошо объясняется, как вы можете создавать новые языковые файлы.
Если ссылка не работает: сделайте текст переводимым В HTML или PHP оберните его так <?php p($l->t('This is some text'));?>
или это <?php print_unescaped($l->t('This is some text'));?>
Для правильного формата даты используйте <?php p($l->l('date', time()));?>
, Измените способ отображения дат, отредактировав /core/l10n/l10n-[lang].php. Для перевода текста в JavaScript используйте: t('appname','text to translate');