是否可以本地化被 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
在我的主题目录中将条目附加(并且最好覆盖)到数组中。
关于主题的官方文档不是最新的(看起来它是从以前的版本中复制而来的,没有适应变化)并且根本不包括本地化。关于翻译的文档也没有帮助。
随着 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');