0

经过数小时的gettext功能斗争并承认失败后,我下载了 Zend 框架以在我的项目中使用。它终于与我到目前为止的 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 文件似乎是多余的。

4

1 回答 1

2

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

于 2013-01-21T21:39:24.683 回答