【问题标题】:SilverStripe i18n Textcollector Task not loadingSilverStripe i18n Textcollector 任务未加载
【发布时间】:2016-07-21 07:15:08
【问题描述】:

我正在使用 SilverStripe 3.4 并尝试翻译我的网站。但在 Windows 上我无法运行 http://localhost/dev/tasks/i18nTextCollectorTask 我得到 ERR_CONNECTION_RESET

我尝试手动创建翻译文件并将它们添加到 mysite 目录:

/lang/de_DE.php 
/lang/en_GB.php

包含以下代码:

<?php

global $lang;
$lang['en_GB']['Header']['Contact'] = 'Get in Contact';

在模板中:

<h5><%  _t('Header.Contact', 'Nehmen Sie Kontakt auf') %></h5>

但文本始终是德语...为什么不翻译,为什么我无法在 Windows 上打开文本收集器?

更新

我通过 cli 启动了收集器

framework/sake dev/tasks/BetterI18nTextCollectorTask "targetlocale=de,en&module=themes/xxx&flush=1"

在我的主题/语言目录中有两个 yml 文件。但是文本仍然没有翻译。

de.yml:

de:
  Footer.ss:
    __IMAGE: '%2.2s'
  Header:
    __Contact: 'Nehmen Sie Kontakt auf'

en.yml

en:
  Footer.ss:
    __IMAGE: '%2.2s'
  Header:
    __Contact: 'Get in Contact'

【问题讨论】:

    标签: internationalization silverstripe


    【解决方案1】:

    要使用文本收集器任务,您必须安装 PHPUnit 3.7。

    您可以通过 composer 将其添加为开发依赖项,这样它就不会被包含在生产环境中:

    composer require --dev phpunit/phpunit ~3.7
    

    作为文本收集器任务的替代方案,您还可以使用better-i18n 模块:

    composer require --dev zauberfisch/silverstripe-better-i18n
    

    它还需要PHPUnit,所以必须安装。

    用 PHP 编写的语言文件在很久以前就被弃用了。您应该切换到基于 YAML 的语言文件,如下所示:

    # File stored in lang/en.yml
    en:
      Header:
        Contact: 'Get in contact'
        # etc.
    

    更新:还有一个更新的语法如何在模板中进行翻译。您正在使用将被弃用的旧语法

    这个:

    <h5><%  _t('Header.Contact', 'Nehmen Sie Kontakt auf') %></h5>
    

    应该变成这样:

    <h5><%t Header.Contact 'Nehmen Sie Kontakt auf' %></h5>
    

    相关documentation

    【讨论】:

    • 我建议使用github.com/Zauberfisch/silverstripe-better-i18n,它还会自动为您将 $db 字段和其他“神奇”内容保存到语言文件中。如果您使用 db_FieldName 等(相当无证的)标准来定义所有翻译,则需要更少的代码来定义 $db 关系等...
    • 注意:I18nTextCollectorTask 也适用于 phpunit 4.x iirc
    • 我通过 Composer 安装了 phpunit 并得到仍然 ERR_CONNECTION_RESET 我打开收集器任务
    • @SergejAndropov 你的 php 错误日志里有什么吗?
    • [Thu Jul 21 09:56:44.721638 2016] [ssl:warn] [pid 3712:tid 540] AH01909: www.example.com:443:0 服务器证书不包含 ID匹配服务器名称
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-24
    • 2019-10-03
    • 2019-04-02
    • 2011-07-05
    • 2014-02-21
    • 2017-04-15
    • 1970-01-01
    相关资源
    最近更新 更多