Zend framework2 初始化Zend 2 I18N转换器以使用现有的gettext文件
我有如下gettext翻译文件设置:Zend framework2 初始化Zend 2 I18N转换器以使用现有的gettext文件,zend-framework2,zend-translate,Zend Framework2,Zend Translate,我有如下gettext翻译文件设置: myapp/i18n/locale/da_DK/LC_MESSAGES/generic.mo myapp/i18n/locale/en_US/LC_MESSAGES/generic.mo 我正在尝试在我的应用程序中使用Zend I18n翻译组件,例如 use Zend\I18n\Translator\Translator; $locale='da_DK'; $tr =new Translator(); $tr->addTranslationFile('
myapp/i18n/locale/da_DK/LC_MESSAGES/generic.mo
myapp/i18n/locale/en_US/LC_MESSAGES/generic.mo
我正在尝试在我的应用程序中使用Zend I18n翻译组件,例如
use Zend\I18n\Translator\Translator;
$locale='da_DK';
$tr =new Translator();
$tr->addTranslationFile('gettext',"i18n/locale/$locale/LC_MESSAGES/generic.mo",'generic',$locale);
'translator' => array(
'locale' => 'en_GB',
'translation_file_patterns' => array(
array(
'type' => 'gettext',
'base_dir' => __DIR__ . '/../language',
'pattern' => '%s.mo',
),
),
),
我也试过:
$tr->addTranslationFilePattern('gettext',"i18n/locale","%s.mo",'generic');
如果给定的区域设置是da\u DK
,那么选择i18n/locale/da\u DK/LC\u MESSAGES/%s.mo
文件的设置正确吗
我通过以下方式进行了测试:
$tr->setLocale($locale);
echo $tr->translate('Search');
这不起作用,我不确定这是否是理想的配置
编辑:
我并没有将Zend框架作为一个整体使用,而是只使用一些选定的模块。所以我需要它独立于ZF2工作
在ZF2中,服务管理器设置为在给定配置的情况下自动初始化转换器,例如
use Zend\I18n\Translator\Translator;
$locale='da_DK';
$tr =new Translator();
$tr->addTranslationFile('gettext',"i18n/locale/$locale/LC_MESSAGES/generic.mo",'generic',$locale);
'translator' => array(
'locale' => 'en_GB',
'translation_file_patterns' => array(
array(
'type' => 'gettext',
'base_dir' => __DIR__ . '/../language',
'pattern' => '%s.mo',
),
),
),
这里的问题是,若我们仅将组件从Zend上下文中独立地转换为标准的gettext文件结构,那个么这种情况如何适用。即:
locale/en_US/LC_MESSAGES/
locale/en_UK/LC_MESSAGES/
locale/da_DK/LC_MESSAGES/
locale/es_ES/LC_MESSAGES/
试试这个。在module.config中
'translator' => array(
'locale' => 'en_US',
'translation_file_patterns' => array(
array(
'type' => 'gettext',
'base_dir' => __DIR__ . '/../language',
'pattern' => '%s.mo',
),
),
)
将*.mo放入lagguage文件夹
应用程序->语言->*.mo和*.po
更新1:1-确保mo文件的路径正确
2-在poedit目录->属性->源关键字->检查翻译词是否存在,最好是第一个。我没有使用zend framework,它的独立项目,只使用zend翻译模块