php - Zend Translate 会自动检测语言吗?

标签 php zend-framework translation

这是我的代码

$locale = new Zend_Locale('en_US');
Zend_Registry::set('Zend_Locale', $locale);

$GLOBALS['translate'] = new Zend_Translate(
    array(
        'adapter' => 'array',
        'content' => array('Hello' => 'Hi'),
        'locale'  => 'en_US'
    )
);

gb('translate')->addTranslation(
    array(
        'content' => array('Hello' => 'Xin chào'),
        'locale' => 'vi'
    )
);

gb('translate')->_('Hello'); //always print Xin chào

即使我使用网络代理(来自美国)请求页面,它也总是打印'Xin chào'。

最佳答案

Zend_Translate locale aware,这意味着它将使用存储在 Zend_Registry 中的 Zend_Locale 实例:

$locale = new Zend_Locale('en_US');
Zend_Registry::set('Zend_Locale', $locale);

如果您没有使用 Zend_Registry,它将尝试从用户的网络浏览器(如果可用)获取区域设置、来自主机服务器环境的信息以及 Zend Framework 设置。为防止这种情况,您必须明确设置语言环境:

$translator->setLocale($locale);

参见章节Automatic Handling of LanguagesZend_Translate

的引用指南中

关于php - Zend Translate 会自动检测语言吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3838106/

相关文章:

css - 如何在 zend 框架中使用 border-radius.htc

html - html 中的歌词翻译

translation - 将机器代码转换为LLVM IR(将X86_64.X86.ARM分解/重组为LLVM位代码)

php - 翻译 laravel 中输入字段的名称

php - 在 PHP 中是否可以创建接口(interface)别名而不是类别名?

javascript - Javascript 中的 PHP foreach 循环

PHP Zend Framework 编码标准,哪种方法更具可读性?

php - MySQL 中的每周价格

zend-framework - 在 Zend Framework 中找不到类

zend-framework - Zend_Db_Table - 更新不起作用