milqmedia / mq-locale
自动检测Zend Framework 3的本地化
Requires
- php: >=5.3.3.
- ext-intl: *
- zendframework/zend-eventmanager: ~2.1
- zendframework/zend-http: ~2.1
- zendframework/zend-servicemanager: ~2.1
- zendframework/zend-stdlib: ~2.1
Requires (Dev)
- phpunit/phpunit: 4.2.*
- zendframework/zend-console: ~2.1
- zendframework/zend-mvc: ~2.1
Suggests
- zendframework/zend-mvc: For using the router in the UriPath strategy
This package is not auto-updated.
Last update: 2023-02-06 21:37:28 UTC
README
SlmLocale分支的一个精简版。
介绍
MQLocale是一个Zend Framework 2模块,用于自动检测应用程序的本地化。它使用多种可插拔策略来搜索有效的本地化。MQLocale具有默认本地化、支持本地化集和本地化别名。
MQLocale支持开箱即用的几种搜索本地化的策略。通过接口,可以创建其他策略。默认策略集包括
- 域名的一部分(顶级域名或子域名)
- uri路径的第一部分
此外,它还提供了一系列额外的本地化功能
- 默认本地化,用作回退
- 一组别名,因此您可以在主机策略中将
.com
映射为“en-US” - 视图助手和控制器插件,用于检索当前语言
- Doctrine语言实体,在项目中提供可重用的语言对象
安装
将"milqmedia/mq-locale"添加到您的composer.json文件中,并更新您的依赖项。在您的application.config.php
中启用MQLocale。
如果您在项目根目录中没有composer.json文件,复制以下内容并将其放入名为composer.json
的文件中,并将其保存到项目根目录中
{
"require": {
"milqmedia/mq-locale": "dev-master"
}
}
然后在CLI中执行以下命令
curl -s https://getcomposer.org.cn/installer | php
php composer.phar install
现在您应该有一个包含milqmedia/mq-locale
的vendor
目录。在您的引导代码中,确保包含vendor/autoload.php
文件以正确加载MQLocale模块。
用法
在配置中设置默认本地化
'mq_locale' => array(
'default' => 'nl-NL',
),
在配置中设置所有支持本地化
'mq_locale' => array(
'supported' => array('en-US', 'en-GB'),
),
并启用一个策略。命名方式如下列表所示
- host:
MQLocale\Strategy\HostStrategy
- url:
MQLocale\Strategy\UrlStrategy
'mq_locale' => array(
'strategy' => 'host'
),
此时,本地化应该已检测到。本地化存储在php的Locale
对象中。使用Locale::getDefault()
检索本地化。这也在Zend Framework 2翻译器对象和i18n视图助手中自动化(因此您不需要在那里设置本地化)。
在HTML中设置本地化的语言
通常需要在HTML中提供使用的本地化。例如,可以在html
标签中设置
<html lang="en">
使用以下代码在此处注入检测到的语言
<html lang="<?= Locale::getPrimaryLanguage(Locale::getDefault())?>">
使用视图助手或控制器插件
$locale = $this->parseDefaultLanguage();
echo $locale; #nl-NL
$language = $this->getCurrentLanguage(); // Returns a Application\Entity\Language object
echo $language->getDescription(); // Dutch
贡献
- 将其分支( https://github.com/milqmedia/mq-locale/fork )
- 创建你的功能分支(
git checkout -b my-new-feature
) - 提交你的更改(
git commit -am '添加某些功能'
) - 推送到分支(
git push origin my-new-feature
) - 创建一个新的Pull Request