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< ==这个我想避免维护 谢谢     
已邀请:
Fluxine, 使用
Zend_Translate
的gettext Adapter时,您需要: 包含所有msg-id的gda.pot(在你的情况下是法语)
gda-fr.po
包含至少一个翻译以生成
gda-fr.mo
(几乎是空的......) 其他一些翻译文件
gda-en.po
生成
gda-en.mo
gda-de.po
生成
gda-de.mo
....
gda-XX.po
生成
gda-XX.mo
这里重要的事实是: 你所谓的“身份翻译”需要存在,否则Zend会抱怨“fr”(在你的情况下)不可用的事实 在poEdit中,只需将一个小的翻译成相同的字符串,生成相应的
*.mo
文件,保存并忘记它。 您不再需要更新
gda-fr.po
文件,也不需要重新生成更新的
gda-fr.po
文件。 适配器将返回原始的法语字符串,因为在
gda-fr.mo
中没有翻译     

要回复问题请先登录注册