Zend框架,gettext,poedit和人类语言,其中写入了关键字符串
我正在使用ZendFramework编写一个网站,并决定使用gettext系统来国际化其内容。
在我的观点中,我用法语写了一个字符串,并提供了这个时刻只有一个文件“en.mo”来将句子翻译成英语。
我想避免维护一个文件“fr.mo”,它只会将一个句子翻译成完全相同的句子。
有没有办法告诉Zend或gettext当语言环境是“fr”或“fr_FR”时,那么就不需要搜索翻译文件了,键字符串必须按原样返回?
或者也许有理由创建“身份翻译”文件fr.mo?
此时我的代码的键引号:
我的引导程序的摘录:
protected function _initTranslations(){
$ config = $ this-> getApplication() - > getOptions();
从Zend_Locale :: setDefault( '恩'); //如果检测完全失败,则回退
$ locale = new Zend_Locale();
if(!in_array($ locale-> getLanguage(),explode(',',$ config ['available_translations']))){
$ locale->的setLocale( '恩'); //请求的语言不可用=>使用英语
}
$ translate = new Zend_Translate(array('adapter'=>'gettext',
'content'=> APPLICATION_PATH。'/ .. / languages / gda - '。$ locale-> getLanguage()。'。mo',
'locale'=> $ locale));
$ translate->的setLocale($区域);
$这 - >自举( '观看');
$这 - >的getResource( '观看') - >调用getHelper( '翻译') - > setTranslator($翻译);
}
/ languages /的内容:
gda-en.mo
gda-fr.mo< ==这个我想避免维护
谢谢
没有找到相关结果
已邀请:
1 个回复
黎喊病
的gettext Adapter时,您需要: 包含所有msg-id的gda.pot(在你的情况下是法语)
包含至少一个翻译以生成
(几乎是空的......) 其他一些翻译文件
生成
生成
....
生成
这里重要的事实是: 你所谓的“身份翻译”需要存在,否则Zend会抱怨“fr”(在你的情况下)不可用的事实 在poEdit中,只需将一个小的翻译成相同的字符串,生成相应的
文件,保存并忘记它。 您不再需要更新
文件,也不需要重新生成更新的
文件。 适配器将返回原始的法语字符串,因为在
中没有翻译