是否有可能本地化被 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
我的主题目录中的数组中。
这关于主题的官方文档不是最新的(看起来像是从以前的版本复制而来,没有进行任何修改),并且根本没有涵盖本地化。关于翻译的文档也无帮助。
答案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');