Локализация темы 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');

Другие вопросы по тегам