Действительно ли возможно локализовать файл, который переопределяется пользовательской темой в 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
массив в моем каталоге темы.
Официальная документация о theming не актуальна (похоже, что это было скопировано с предыдущей версии, не адаптируя его к изменениям), и не покрывает локализацию вообще. Документация о переводе не полезна также.
С выходом собственногоCloud 7 вы можете редактировать шаблоны электронной почты через панель управления администратора. О локализации Вашего текста по ссылке это хорошо объясняет, как Вы можете генерировать новые языковые файлы.
В случае, если ссылка не работает:
Сделайте текст переводимым
В HTML или PHP оберните его так t('This is some text'));?>
или вот так t('This is some text'));?>
Для правильного формата даты используйте l('date', time()));?>
. Изменение способа отображения дат осуществляется путем редактирования /core/l10n/l10n-[lang].php Для перевода текста в javascript используйте функцию l, time());?>
: t('appname','text to translate');