macroactive/cldr
Composer 安装命令:
composer require macroactive/cldr
包简介
A lightweight localization database and translation tools, with data from the CLDR, IANA, ISO, etc.
README 文档
README
This package represents stripped reference data cloned from AWESOME fisharebest/localization. Main difference:
- removed
Translator - PHP version >= 8.1 for the sake of using strict typing, enums, etc
- obviously, changed NS and package name
Localization standards and data
This package combines localization data from many standards, including the Unicode CLDR, RFC5646 / IANA subtag registry, ISO-3166, ISO-639, ISO-15924, etc., to help you produce applications that behave nicely for visitors from around the world.
Includes definitions for over 800 locales.
Locales, languages, scripts and territories
A locale consists of three things: a language, a script and a territory. Scripts and territories are often implicit from the language.
Normally you would just need to work with locales, and can ignore languages and scripts.
$locale = new LocaleJa; // Create a locale for Japanese. $locale = Locale::create('ja'); // Create a locale for Japanese, from its code. $locale->code(); // "ja_JP" (territories are always included in locale codes) $locale->languageTag(); // "ja" (redundant territories are omitted in tags) $locale->endonym(); // "日本語" (Japanese name for Japanese) // Languages - extract from the locale, or create with "new LanguageXx" $locale->language(); // LanguageJa $locale->language()->code(); // "ja" (ISO-639 code) // Scripts - extract from the locale, or create with "new ScriptXxxx" $locale->script(); // ScriptJpan $locale->script()->code(); // "Jpan" (ISO-15924 code) $locale->script()->direction(); // "ltr" (left to right) // Territories - extract from the locale, or create with "new TerritoryXx" $locale->territory(); // TerritoryJp $locale->territory()->code(); // "JP" (ISO-3166 code) // A few locales can also specify variants. $locale = new LocaleCaValencia; // The Valencian dialect of Catalan $locale->variant(); // VariantValencia $locale->variant()->code(); // "valencia"
Localization
Create a locale and use it to localize data in your application.
// Many ways to create locales $locale = new LocaleEnGb; $locale = Locale::create('en-GB'); // Use upper/lower case, hyphens/underscores/@ $locale = Locale::httpAcceptLanguage($_SERVER, $available_locales, $default_locale); // Markup for HTML elements containing this locale $locale->htmlAttributes(); // lang="ar" dir="rtl" // Is text written left-to-right or right-to-left $locale->direction(); // "ltr" or "rtl" // Days of the week. $locale->firstDay(); // 0=Sunday, 1=Monday, etc. $locale->weekendStart(); // 0=Sunday, 1=Monday, etc. $locale->weekendEnd(); // 0=Sunday, 1=Monday, etc. // Measurement systems and paper sizes. $locale->measurementSystem(); // "metric", "UK" or "US" $locale->paperSize(); // "A4" or "US-Letter" // Formatting numbers $locale = new LocaleGr; // Gujarati $locale->digits('2014'); // "૨૦૧૪" $locale = new LocaleItCh; // Swiss Italian $locale->number('12345678.9'); // "12'345'678.9" $locale->percent(0.123); // "12.3%" // To sort data properly in MySQL, you need to specify a collation sequence. // See http://dev.mysql.com/doc/refman/5.7/en/charset-unicode-sets.html $locale->collation(); // "unicode_ci", "swedish_ci", etc.
Plural rules
Plural rules are defined for each locale. This example shows that although English and French both have two plural forms, English considers zero as plural, while french considers it to be singular.
$locale = new LocaleEn; $locale->pluralRule()->plurals(); // 2 (English has two plural forms) $locale->pluralRule()->plural(0); // 1 (zero is plural in English "zero apples") $locale = new LocaleFr; $locale->pluralRule()->plurals(); // 2 (French also has two plural forms) $locale->pluralRule()->plural(0); // 0 (zero is singular in French "zero apple")
Updates welcome
Please provide references to sources, such as:
macroactive/cldr 适用场景与选型建议
macroactive/cldr 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 57 次下载、GitHub Stars 达 0, 最近一次更新时间为 2022 年 10 月 19 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「i18n」 「translation」 「locale」 「language」 「l10n」 「localization」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 macroactive/cldr 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 macroactive/cldr 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 macroactive/cldr 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Easy to use i18n translation PHP class for multi-language websites
Package for convenient work with Laravel's localization features
A custom URL rule class for Yii 2 which allows to create translated URL rules
A Laravel Eloquent model trait for translatable resource
Bureaux A Partager Edit - Parse, validate, manipulate, and display dates in PHP w/ i18n support. Inspired by moment.js
Nette Framework adapter for I18n package
统计信息
- 总下载量: 57
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 21
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: GPL-3.0-or-later
- 更新时间: 2022-10-19