以最少的努力实现应用程序的国际化与本地化。

v0.4.2 2024-08-06 00:27 UTC

This package is auto-updated.

Last update: 2024-09-06 01:24:24 UTC


README

⚠️ 警告!此包没有活跃的支持,它仅存在于作者的历史需求中。

i18n

Build Status Quality Score Coverage Status Total Downloads Latest Version on Packagist

此包帮助您处理具有不同语言、货币和国家的地区。即使您有单一区域的项目,它也可能很有帮助。

安装

安装 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