使用Zend Translate和gettext文件的默认语言环境

时间:2013-01-21 00:20:28

标签: php internationalization zend-translate

在与gettext函数斗争并承认失败的几小时后,我下载了Zend Framework以供我的项目使用。它最终使用了我到目前为止的gettext文件,但现在我想知道如何在默认语言环境中显示默认文本?

我的config.php文件的一部分(它包含在顶部的每个文件中):

<?php
// ...
define('LANGUAGE', (isset($_GET['lang']) && $_GET['lang'] === 'fr') ? 'fr-CA' : 'en-CA');
define('LOCALE', (isset($_GET['lang']) && $_GET['lang'] === 'fr') ? 'fr_CA' : 'en_CA');
// ...

$translator = new \Zend\I18n\Translator\Translator();
$translator->addTranslationFile('gettext', dirname(__FILE__) . '/locale/' . LOCALE . '.mo', 'messages', LOCALE);
$translator->setLocale(LOCALE);

法语翻译工作正常,但对于英语,它正在寻找en_CA.mo文件(我假设从addTranslationFile()方法)不存在。如何在显示英文版时回显键,如何制作?制作en_CA.mo文件似乎是多余的。

1 个答案:

答案 0 :(得分:2)

如果您允许翻译不同语言的多个翻译,那么您至少需要创建一个空白的en_CA.mo文件。否则,您将发现错误。由于en_CA.mo文件为空,因此将显示翻译键而不是实际翻译本身。