Internationalization SilverStripe i18n Textcollector任务未加载
我正在使用SilverStripe 3.4并尝试翻译我的网站。但是在Windows上,我无法运行I getInternationalization 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
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>