Internationalization SilverStripe i18n Textcollector任务未加载

Internationalization SilverStripe i18n Textcollector任务未加载,internationalization,silverstripe,Internationalization,Silverstripe,我正在使用SilverStripe 3.4并尝试翻译我的网站。但是在Windows上,我无法运行I getERR\u CONNECTION\u RESET 我尝试手动创建翻译文件并将其添加到mysite目录: /lang/de_DE.php /lang/en_GB.php 包含以下代码: <?php global $lang; $lang['en_GB']['Header']['Contact'] = 'Get in Contact'; 在我的theme/lang目录中有两个yml

我正在使用SilverStripe 3.4并尝试翻译我的网站。但是在Windows上,我无法运行I get
ERR\u CONNECTION\u RESET

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

/lang/de_DE.php 
/lang/en_GB.php
包含以下代码:

<?php

global $lang;
$lang['en_GB']['Header']['Contact'] = 'Get in Contact';
在我的theme/lang目录中有两个yml文件。但是文本仍然没有被翻译

德约曼:

de:
  Footer.ss:
    __IMAGE: '%2.2s'
  Header:
    __Contact: 'Nehmen Sie Kontakt auf'
恩·伊梅尔

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

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

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

composer require --dev phpunit/phpunit ~3.7
作为文本收集器任务的替代方案,您还可以使用以下模块:

它还需要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>


相关。

我建议使用它,它还可以为您自动将$db字段和其他“神奇”内容保存到语言文件中。如果您使用(完全没有文档记录),则需要更少的代码来定义所有翻译诸如$db关系的db_FieldName等标准。注意:I18nTextCollectorTask还可以通过composer与phpunit 4.x iirci一起使用,并且在打开收集器时仍然可以获得错误连接task@SergejAndropov您的php错误日志中有任何信息吗?[Thu Jul 21 09:56:44.721638 2016][ssl:warn][pid 3712:tid 540]AH01909:www.example.com:443:0服务器证书不包含与服务器名称匹配的ID
composer require --dev zauberfisch/silverstripe-better-i18n
# 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>