Intl组件
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 5.1,不再维护。
读这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。
Intl组件
谨慎
更换层是有限的在
语言环境。如果你想使用其他的地方,你应该安装intl扩展。没有冲突
两者之间,因为即使你使用扩展,这个包可以访问ICU数据仍然是有用的。
另请参阅
这篇文章解释了如何使用Intl功能作为一个独立的组件在任何PHP应用程序。读了翻译篇文章,了解如何在Symfony应用程序国际化和管理用户的语言环境。ob娱乐下载
安装
1
美元作曲家需要symfony / inob娱乐下载tl
请注意
如果你安装这个组件之外的Symfony应用程序,你必须要求ob娱乐下载供应商/ autoload.php
文件在你的代码,使作曲家提供的类加载机制。读这篇文章为更多的细节。
如果你安装组件通过作曲家,intl扩展的类和函数后将自动提供如果intl扩展没有加载:
- 排序器
- IntlDateFormatter
- 语言环境
- NumberFormatter
- intl_error_name
- intl_is_failure
- intl_get_error_code
- intl_get_error_message
当intl扩展不可用,下面的类用于取代intl类:
作曲家自动公开这些类在全局命名空间。
访问ICU数据
此组件提供了以下ICU数据:
语言和脚本的名称
的语言
类提供了访问所有语言显示的名称ISO 639 - 1α2列表和ISO 639 - 2 alpha 3列表:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
使用ob娱乐下载\组件\Intl\语言;\地区::setDefault (“en”);美元语言=语言::getname ();/ / (' languageCode ' = > ' languageName ')/ / = > [“ab”= >“阿布哈西亚语”,“王牌”= >“亚齐人”,…]美元语言=语言::getAlpha3Names ();/ / (' languageCode ' = > ' languageName ')/ / = > (abk”= >“阿布哈西亚语”,“王牌”= >“亚齐人”,…]美元语言=语言::getName (“fr”);/ / = >“法国”美元语言=语言::getAlpha3Name (联邦铁路局的);/ / = >“法国”
所有方法接受翻译语言环境作为过去,可选参数,默认为当前默认语言环境:
1 2 3 4 5 6 7 8 9 10 11
美元语言=语言::getname (“德”);/ / = > [“ab”= >“Abchasisch”,“王牌”= >“亚齐”…]美元语言=语言::getAlpha3Names (“德”);/ / = > [' abk ' = > ' Abchasisch ',“王牌”= >“亚齐”…]美元语言=语言::getName (“fr”,“德”);/ / = > ' Franzosisch '美元语言=语言::getAlpha3Name (联邦铁路局的,“德”);/ / = > ' Franzosisch '
如果给定的地区不存在,引发的方法MissingResourceException。除了捕捉异常,您还可以检查是否一个给定的语言代码是有效的:
1
美元isValidLanguage=语言::存在(美元languageCode);
或者如果你有一个alpha3语言代码检查:
1
美元isValidLanguage=语言::alpha3CodeExists (美元alpha3Code);
你可以两个字母之间转换编码alpha2和三个字母alpha3代码:
1 2 3
美元alpha3Code=语言::getAlpha3Code (美元alpha2Code);美元alpha2Code=语言::getAlpha2Code (美元alpha3Code);
的脚本
类提供了访问可选庸俗的脚本代码,可以根据遵循语言代码Unicode ISO 15924注册表(如。汉斯
在zh_HANS
简体中文和常到之处
在zh_HANT
对中国传统):
1 2 3 4 5 6 7 8 9 10
使用ob娱乐下载\组件\Intl\脚本;\地区::setDefault (“en”);美元脚本=脚本::getname ();/ / (' scriptCode ' = > ' scriptName ')/ / = > [' Adlm ' = > ' Adlam ', ' Afak ' = > ' Afaka ',…]美元脚本=脚本::getName (“汉斯”);/ / = >“简化”
所有方法接受翻译语言环境作为过去,可选参数,默认为当前默认语言环境:
1 2 3 4 5
美元脚本=脚本::getname (“德”);/ / = > [' Adlm ' = > ' Adlam ', ' Afak ' = > ' Afaka ',…]美元脚本=脚本::getName (“汉斯”,“德”);/ / = > ' Vereinfacht '
如果给定的脚本代码不存在,引发的方法MissingResourceException。除了捕捉异常,您还可以检查一个给定的脚本代码是否有效:
1
美元isValidScript=脚本::存在(美元scriptCode);
国家的名字
的国家
类提供了访问显示所有国家的名称ISO 3166 - 1α2列表和ISO 3166 - 1 alpha 3正式承认的国家和地区列表:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
使用ob娱乐下载\组件\Intl\国家;\地区::setDefault (“en”);美元国家=国家::getname ();/ / (' alpha2Code ' = > ' countryName ')/ / = >[“对焦”= >“阿富汗”、“斧头”= >“阿兰群岛”,…]美元国家=国家::getAlpha3Names ();/ / (' alpha3Code ' = > ' countryName ')/ / = >[“二自由度陀螺仪”= >“阿富汗”、“阿拉巴马”= >“阿兰群岛”,…]美元国家=国家::getName (“GB”);/ / = >“联合王国”美元国家=国家::getAlpha3Name (“也”);/ / = >“挪威”
所有方法接受翻译语言环境作为过去,可选参数,默认为当前默认语言环境:
1 2 3 4 5 6 7 8 9 10 11
美元国家=国家::getname (“德”);/ / = >[“对焦”= >“阿富汗”、“如”= >“Agypten”…]美元国家=国家::getAlpha3Names (“德”);/ / = >[“二自由度陀螺仪”= >“阿富汗”、“EGY”= >“Agypten”…]美元国家=国家::getName (“GB”,“德”);/ / = > '(统一Konigreich”美元国家=国家::getAlpha3Name (“GBR”,“德”);/ / = > '(统一Konigreich”
如果给定的国家代码不存在,引发的方法MissingResourceException。除了捕捉异常,您还可以检查是否一个给定的国家代码是有效的:
1
美元isValidCountry=国家::存在(美元alpha2Code);
或者如果你有一个alpha3国家代码你想检查:
1
美元isValidCountry=国家::alpha3CodeExists (美元alpha3Code);
你可以两个字母之间转换编码alpha2和三个字母alpha3代码:
1 2 3
美元alpha3Code=国家::getAlpha3Code (美元alpha2Code);美元alpha2Code=国家::getAlpha2Code (美元alpha3Code);
地区
语言环境相结合的一种语言,是一个地区和一些参数偏好的用户定义接口。例如,“中国”
语言和zh_Hans_MO
是“中国”的地区(语言)+“简化”
(脚本)+“中国澳门特别行政区”(地区)。的地区
类提供了访问
所有地区的名称:
1 2 3 4 5 6 7 8 9 10
使用ob娱乐下载\组件\Intl\地区;\地区::setDefault (“en”);美元地区=地区::getname ();/ / (' localeCode ' = > ' localeName ')/ / = >[“对焦”= >“南非荷兰语”,“af_NA”= >“南非荷兰语(纳米比亚)”,…]美元语言环境=地区::getName (“zh_Hans_MO”);/ / = > '中文(简体,中国澳门特别行政区)”
所有方法接受翻译语言环境作为过去,可选参数,默认为当前默认语言环境:
1 2 3 4 5
美元地区=地区::getname (“德”);/ / = >[“对焦”= >“南非荷兰语”,“af_NA”= >“南非荷兰语(纳米比亚)”,…]美元语言环境=地区::getName (“zh_Hans_MO”,“德”);/ / = > ' Chinesisch (Vereinfacht Sonderverwaltungsregion澳门)”
如果给定的区域代码不存在,引发的方法MissingResourceException。除了捕捉异常,您还可以检查是否一个给定的区域代码是有效的:
1
美元isValidLocale=地区::存在(美元localeCode);
货币
的货币
类提供了访问所有货币的名字以及他们的一些信息(数字符号,分数等):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
使用ob娱乐下载\组件\Intl\货币;\地区::setDefault (“en”);美元货币=货币::getname ();/ / (' currencyCode ' = > ' currencyName ')/ / = > [“AFN”= >“阿富汗阿富汗的”,“所有”= >“阿尔巴尼亚求偶场”,…]美元货币=货币::getName (印度卢比的);/ / = > '印度卢比美元象征=货币::getSymbol (印度卢比的);/ / = > '₹'美元fractionDigits=货币::getFractionDigits (印度卢比的);/ / = > 2美元roundingIncrement=货币::getRoundingIncrement (印度卢比的);/ / = > 0
(除了所有方法getFractionDigits ()
和getRoundingIncrement ()
)接受翻译语言环境作为最后一个可选参数,默认为当前默认语言环境:
1 2 3 4 5
美元货币=货币::getname (“德”);/ / = > [' AFN ' = > ' Afghanischer阿富汗',“出路”= >“Agyptisches刘德”,…]美元货币=货币::getName (印度卢比的,“德”);/ / = > ' Indische Rupie”
如果给定的货币代码不存在,引发的方法MissingResourceException。除了捕捉异常,您还可以检查一个给定的货币代码是否有效:
1
美元isValidCurrency=货币::存在(美元currencyCode);
时区
的时区
类提供了一些实用程序相关的时区。首先,你可以得到所有时区的名称和值在所有语言:
1 2 3 4 5 6 7 8 9 10
使用ob娱乐下载\组件\Intl\时区;\地区::setDefault (“en”);美元时区=时区::getname ();/ / (' timezoneID ' = > ' timezoneValue ')/ / = >['美国/ Eirunepe”= >“英亩时间(Eirunepe)”,“美国/ Rio_Branco”= >“英亩时间(力拓布兰科)”,…]美元时区=时区::getName (“非洲/内罗毕”);/ / = >“非洲东部时间(内罗毕)”
所有方法接受翻译语言环境作为过去,可选参数,默认为当前默认语言环境:
1 2 3 4 5
美元时区=时区::getname (“德”);/ / = >['美国/ Eirunepe ' = > ' Acre-Zeit (Eirunepe) ', '美国/ Rio_Branco ' = > ' Acre-Zeit(力拓布兰科)',…]美元时区=时区::getName (“非洲/内罗毕”,“德”);/ / = > ' Ostafrikanische时间(内罗毕)'
你也可以得到所有存在于一个特定国家的时区。的forCountryCode ()
方法返回一个或多个时区id,您可以翻译成任何语言环境getName ()
方法:早些时候
1 2 3
/ /不像语言代码,国家代码总是大写(CL =智利)美元时区=时区::forCountryCode (“氯”);/ / = >['美国/ Punta_Arenas’,‘美国/圣地亚哥’,“太平洋/复活节”)
也可能由于反向查找getCountryCode ()
方法,该方法返回的代码国家给定的时区ID属于:
1 2
美元countryCode=时区::getCountryCode (美国/温哥华的)/ / = > $ countryCode =“CA”(CA =加拿大)
的UTC / GMT时间偏移量提供的所有时区getRawOffset ()
(返回一个整数代表抵消以秒为单位)getGmtOffset ()
(返回一个字符串表示的抵消显示给用户):
1 2 3 4 5 6 7
美元抵消=时区::getRawOffset (“等/ UTC”);/ /抵消美元= 0美元抵消=时区::getRawOffset (“美国/ Buenos_Aires”);/ /抵消= -10800美元美元抵消=时区::getRawOffset (“亚洲/加德满都”);/ /抵消= 20700美元美元抵消=时区::getGmtOffset (“等/ UTC”);/ /抵消美元=“GMT + 00:00”美元抵消=时区::getGmtOffset (“美国/ Buenos_Aires”);/ /抵消美元= ' GMT-03:00 '美元抵消=时区::getGmtOffset (“亚洲/加德满都”);/ /抵消美元= ' GMT + 05:45 '
时区偏移可以不同时间的夏令时(DST)练习。在默认情况下使用这些方法时间()
PHP函数获得当前的时区偏移值,但是你可以通过时间戳作为他们的第二个参数得到抵消在任何给定的时间点:
1 2 3 4 5
/ / 2019年,DST时期在马德里(西班牙)从3月31日至10月27日美元抵消=时区::getRawOffset (“欧洲/马德里”strtotime (2019年3月31日的));/ /抵消= 3600美元美元抵消=时区::getRawOffset (“欧洲/马德里”strtotime (2019年4月1日的));/ /抵消= 7200美元美元抵消=时区::getGmtOffset (“欧洲/马德里”strtotime (2019年10月27日的));/ /抵消美元= ' GMT + 02:00 '美元抵消=时区::getGmtOffset (“欧洲/马德里”strtotime (2019年的10月28日的));/ /抵消美元= ' GMT + 01:00 '
格林尼治时间抵消的字符串表示可以取决于语言环境,所以你可以通过语言环境作为第三个可选参数:
1 2
美元抵消=时区::getGmtOffset (“欧洲/马德里”strtotime (2019年的10月28日的),基于“增大化现实”技术的));/ /抵消美元= 'غرينتش+ 01:00 '美元抵消=时区::getGmtOffset (“欧洲/马德里”strtotime (2019年的10月28日的),“dz”));/ /抵消美元= 'ཇི་ཨེམ་ཏི་+ 01:00 '
如果给定的时区标识不存在,引发的方法MissingResourceException。除了捕捉异常,您还可以检查是否一个给定的时区ID是有效的:
1
美元isValidTimezone=时区::存在(美元timezoneId);