【发布时间】:2015-09-10 10:58:47
【问题描述】:
我正在将一个网站从 SS 2.4 迁移到 SS 3.0,由于 SilverStripe 文档中充满了死链接(关于我点击 3.0.0 documentation page 的每个链接都死了),我遇到了非常困难的时期以及出现在搜索结果中但无法到达的漏洞,例如不完整的句子或页面。
具体来说,我正在开发的网站在两个语言环境(en_US 和 fr_FR)中运行,我使用(在 SS 2.4 中)使用i18n::include_locale_file。现在,在找到合适的模块并升级自定义代码后,我收到了一个弃用通知,我不知道如何解决,并且网络搜索没有给出答案:
[User Deprecated] i18n::include_locale_file is deprecated. Use Zend_Translate instead.
问题是有zero example 要做什么。没有可遵循的升级路径。我只是不明白如何替换这样的旧代码:
i18n::include_locale_file('framework', 'fr_FR');
global $lang;
if(array_key_exists('fr_FR', $lang) && is_array($lang['fr_FR'])) {
$lang['fr_FR'] = array_merge($lang['fr_FR'], $lang['fr_FR']);
} else {
$lang['fr_FR'] = $lang['fr_FR'];
}
这是 SS 2.4 中的标准代码,例如可以在 sapphire 和 cms 的语言文件中找到。
据我了解,Zend_Translate 是框架的一部分。是否有可能简单地表达包含另一个翻译文件?还是两个翻译文件的分层?
我想过使用 yml 转换器,这样我就可以按照建议进行操作,但它在 Unix 系统上作为 CLI 工作,而我正在 Windows 系统上工作。由于我花在这次迁移上的所有时间,以及对文档的挫败感,我现在后悔选择了 SS,但我只能继续前进。因此,我正在寻找一种简单的解决方案,而不是需要安装虚拟机的解决方案。
谢谢。
【问题讨论】:
标签: internationalization silverstripe zend-translate