使用zend-framework3和gettext处理textDomains

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用zend-framework3和gettext处理textDomains相关的知识,希望对你有一定的参考价值。

我们将ZF3用于具有国际化的大型应用程序。 i18n用zend-i18n,zend-mvc-i18n和xgettext cli完成,用于提取/汇编pot / po / mo文件。 对于像Contact这样可能是动词或名词的词,我们已经指定了$textDomain$this->translate('Contact', 'Verb')$this->translate('Contact', 'Noun')

问题是,当我们提取这些字符串时,它们都在同一个文件夹中。 由于Zend通过textDomain加载转换文件,如果我们可以通过textDomain拆分pot文件会更好,但似乎xgettext不能这样做。 有人可以帮助我们使用Zend和gettext正确管理textDomains吗?

答案

对于那些可能遇到同样问题的人,我们最终创建了自己的Gettext文件加载器,它正确解析msgctxt并返回由msgctxt构造的TextDomain。 我们还创建了自己的Translator extends ZendI18nTranslatorTranslator来覆盖loadMessagesFrom...函数并正确更新$this->messages变量

以上是关于使用zend-framework3和gettext处理textDomains的主要内容,如果未能解决你的问题,请参考以下文章

PHP Gettext - 没有翻译

当单数和复数形式相同时,如何使用 php-gettext 的 ngettext()?

EditText.getText().toString() 崩溃

用gettext打印“

PHP - 如何使用带有.po文件的gettext()创建一个简单的多语言应用程序

无法从 HTML Dom 获取值/文本。我使用了 Selenium WebDriver 的 getAttribute() 和 getText()