根据用户角色,我需要在Zend项目中显示不同的文本。
然而,语言"en_new“总是恢复为"en”。
我使用locale_directory扫描系统自动检测语言。
发布于 2012-01-27 15:10:40
转换适配器在内部调用Zend_Locale::findLocale() (至少在ZF1.1x中)。这反过来检查区域设置是否在白名单上。显然你的不是。我没有深入研究代码,但很可能下一步是从en_xxx恢复到en,这就是在您的情况下所发生的事情。
见资料来源:
library/Zend/Translate/Adapter.php - addTranslation法library/Zend/Locale.php - findLocale法发布于 2012-02-15 13:05:38
我目前正在评估类似的东西,对于一些用户,我希望一些文本被不同的翻译。此外,我还遇到了无法创建自定义区域设置值的问题。我在考试中发现的困难似乎能解决/解决这个问题。
另见此处:组合多个翻译源
我所做的只是在我的默认翻译中添加一个自定义翻译。
$translateDef = new Zend_Translate(
array(
'adapter' => 'gettext',
'content' => 'locale/default/',
'locale' => 'auto',
'scan' => Zend_Translate::LOCALE_DIRECTORY
)
);
$translateCust = new Zend_Translate(
array(
'adapter' => 'gettext',
'content' => 'locale/custom/',
'locale' => 'auto',
'scan' => Zend_Translate::LOCALE_DIRECTORY
)
);
$translateDef->addTranslation(array(
'content' => $translateCust
)
);文件夹结构如下所示:
locale/
default/
de
en
custom/
de
en因此,在执行addTranslation时,它似乎覆盖了现有用户,因此对于新用户,可以添加带有适当翻译的自定义文件夹。到目前为止,对于我的测试来说,这是可行的,但还没有对其进行深入评估。
https://stackoverflow.com/questions/8985549
复制相似问题