Можно ли локализовать в ownCloud файл, который заменен настраиваемой темой?
В соответствии с эта проблема в багтрекере вы можете переопределить файлы темы, просто поместив их в свою папку темы и отредактировав их. В случае шаблонов электронной почты, которые отправляются, когда вы делитесь файлом с кем-то, это выглядит так:
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
массив в моем каталоге тем.
В официальная документация по тематике устарела (похоже, она была скопирована из предыдущей версии без адаптации к изменениям) и вообще не охватывает локализацию. В документация о переводе тоже не помогает.
С выпуском 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 visible.php Для перевода текста в javascript используйте: t('appname','text to translate');