【问题标题】:Migration to SilverStripe 3.0 and Zend_Translate迁移到 SilverStripe 3.0 和 Zend_Translate
【发布时间】: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


    【解决方案1】:

    你有 php 文件作为 lang 文件吗?例如mysite/lang/fr_FR.php ?您必须将其移至 yml 文件或改用 Zend_Translate ;)

    见https://github.com/jakr/miscellaneous-wiki/wiki/SilverStripe-3-Quick-Upgrade-Guide#translation-file-format-changed-from-php-to-yml和https://docs.silverstripe.org/en/3.0/changelogs/3.0.0#zend-translate

    从后者,在你的 /mysite/config.php 中定义:

    i18n::register_translator(
        new Zend_Translate(array(
            'adapter' => 'i18nSSLegacyAdapter',
            'locale' => i18n::default_locale(),
            'disableNotices' => true,
        )),
        'legacy',
        9 // priority lower than standard translator
    );
    

    让旧的 php 文件再次工作。根据您有多少语言字符串,我会将其移至 .yml。

    【讨论】:

    • 感谢您的回答,但正如我在问题中所说,我访问了这些链接。它们都没有解决迁移到 yml 而不手动重建 yml 文件或从头开始编写自定义转换器的问题,以及用于分层翻译文件的旧 include_locale_file 的问题。现在,我通过注释掉我引用的代码块来解决它。
    • 好吧,上面的代码 sn-p 应该可以让你的旧 php 语言文件再次工作。你试过了吗?
    猜你喜欢
    • 2012-02-25
    • 2014-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-08
    • 2021-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多