首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zend翻译自定义语言

Zend翻译自定义语言
EN

Stack Overflow用户
提问于 2012-01-24 10:52:18
回答 2查看 781关注 0票数 1

根据用户角色,我需要在Zend项目中显示不同的文本。

  • 对于普通用户,我使用的是"en“语言。
  • 对于新用户,我想要"en_new“这样的东西。

然而,语言"en_new“总是恢复为"en”。

我使用locale_directory扫描系统自动检测语言。

EN

回答 2

Stack Overflow用户

发布于 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
票数 1
EN

Stack Overflow用户

发布于 2012-02-15 13:05:38

我目前正在评估类似的东西,对于一些用户,我希望一些文本被不同的翻译。此外,我还遇到了无法创建自定义区域设置值的问题。我在考试中发现的困难似乎能解决/解决这个问题。

另见此处:组合多个翻译源

我所做的只是在我的默认翻译中添加一个自定义翻译。

代码语言:javascript
复制
$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
    )
);

文件夹结构如下所示:

代码语言:javascript
复制
locale/
       default/
               de
               en
       custom/
               de
               en

因此,在执行addTranslation时,它似乎覆盖了现有用户,因此对于新用户,可以添加带有适当翻译的自定义文件夹。到目前为止,对于我的测试来说,这是可行的,但还没有对其进行深入评估。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8985549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档