68publishers / i18n
以最少的努力实现应用程序的国际化与本地化。
v0.4.2
2024-08-06 00:27 UTC
Requires
- php: ^7.3 || ^8.1
- ext-json: *
- nette/di: ^3.0.3
- nette/http: ^3.0
- nette/schema: ^1.0.2
- nette/utils: ^3.0 || ^4.0
- umpirsky/locale-list: ^1.0
Requires (Dev)
- 68publishers/translation-bridge: ^1.2.1
- contributte/translation: ^0.8.1
- friendsofphp/php-cs-fixer: ^2.0
- mockery/mockery: ^1.4
- nette/bootstrap: ^3.0
- nette/tester: ^2.3.4
- roave/security-advisories: dev-master
- tracy/tracy: ^2.6
Suggests
- 68publishers/translation-bridge: For integration with Translator component.
- tracy/tracy: A compiler extension adds a custom Panel if the Tracy is required.
README
⚠️ 警告!此包没有活跃的支持,它仅存在于作者的历史需求中。
i18n
此包帮助您处理具有不同语言、货币和国家的地区。即使您有单一区域的项目,它也可能很有帮助。
安装
安装 68publishers/i18n 的最佳方式是使用 Composer
$ composer require 68publishers/i18n
然后您可以将扩展注册到 DIC 中
extensions: 68publishers.i18n: SixtyEightPublishers\i18n\DI\I18nExtension(%debugMode%)
配置
68publishers.i18n: profiles: europe: language: [ sk_SK, en_GB, de_DE, pl_PL ] currency: [ EUR, PLZ, GBP ] country: [ SK, GB, DE, PL ] domain: [ 'europe\.example\.com' ] # regex north_america: language: en_US currency: USD country: US domain: 'example\.com\/na' enabled: no # default is `yes` default: # If the default profile doesn't exists, the first profile is taken as default language: cs_CZ currency: CZK country: CZ lists: fallback_language: en # default default_language: null # default translation_bridge: locale_resolver: enabled: yes # registers custom TranslatorLocaleResolver through 68publishers/translation-bridge extension use_default: yes # use language of default's profile if profile is not detected, default is `no` priority: 15 # if you want to use custom profile storage or profile detector: storage: My\Custom\ProfileStorage detector: My\Custom\Detector
与 68publishers/translation-bridge 的集成
翻译者区域设置解析
翻译者的区域设置可以通过当前活动配置文件来解决。这是通过自定义 TranslatorLocaleResolver
实现的,如果将选项 translation_bridge.locale_resolver.enabled
设置为 TRUE
,则会自动注册。
配置文件语言与翻译者区域设置之间的同步
当活动配置文件的语言更改时,翻译者的区域设置会自动更改。
<?php /** @var \SixtyEightPublishers\i18n\Profile\ActiveProfile $activeProfile */ /** @var \SixtyEightPublishers\TranslationBridge\Localization\TranslatorLocalizerInterface $localizer */ $activeProfile->changeLanguage('en_GB'); $localizer->getLocale(); # en_GB $activeProfile->changeLanguage('cs_CZ'); $localizer->getLocale(); # cs_CZ
贡献
在提交任何更改之前,请务必运行
$ vendor/bin/php-cs-fixer fix --config=.php_cs.dist -v --dry-run
和
$ composer run tests