Intl组件

编辑该页面

警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 2.6,不再维护。

这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。

Intl组件

一个PHP替换C层intl扩展还提供了访问的定位数据ICU库

2.3

Intl组件是在Symfony 2.3中引入的。ob娱乐下载在Symfony的早期版本中,您应该使用本地组ob娱乐下载件。

谨慎

更换层地区“en”是有限的。如果你想使用其他的地方,你应该安装intl扩展代替。

安装

你可以安装组件在两种不同的方式:

如果你安装组件通过作曲家,intl扩展的类和函数后将自动提供如果intl扩展没有加载:

当intl扩展不可用,下面的类用于取代intl类:

作曲家自动公开这些类在全局命名空间。

如果你不使用,但作曲家ob娱乐下载Symfony类加载器组件,你需要让他们通过添加以下行手动自动加载代码:

1 2 3 4 5
如果(! function_exists (“intl_is_failure”)){需要' /道路/ / Icu /资源/存根/”显然也;美元加载程序- >registerPrefixFallback (' /道路/ / Icu /资源/存根的);}

写作和阅读资源包

ResourceBundle类是目前不支持此组件。相反,它包含一组阅读和写作的读者和作家数组(或数组类对象)/资源包文件。下面的类是支持:

继续阅读,如果你感兴趣如何使用这些类。否则跳过本节和跳转访问ICU数据

TextBundleWriter

TextBundleWriter写一个数组或类似数组的对象一个纯文本资源包。由此产生的. txt文件可以转换为二进制文件与rBundleCompiler类:

1 2 3 4 5 6 7 8 9 10 11 12 13 14
使用ob娱乐下载\组件\Intl\ResourceBundle\作家\TextBundleWriter;使用ob娱乐下载\组件\Intl\ResourceBundle\编译器\BundleCompiler;美元作家=TextBundleWriter ();美元作家- >写(的路径/ /包,“en”,数组(“数据”= >数组(“entry1”,“entry2”,/ /……)));美元编译器=BundleCompiler ();美元编译器- >编译(的路径/ /包,/道路/ /二进制/包的);

命令“genrb”必须是可用的BundleCompiler去工作。如果命令位于非标准的位置,你可以通过它的路径BundleCompiler构造函数。

PhpBundleWriter

PhpBundleWriter写一个数组或类似数组的对象。php资源包:

1 2 3 4 5 6 7 8 9 10
使用ob娱乐下载\组件\Intl\ResourceBundle\作家\PhpBundleWriter;美元作家=PhpBundleWriter ();美元作家- >写(的路径/ /包,“en”,数组(“数据”= >数组(“entry1”,“entry2”,/ /……)));

BinaryBundleReader

BinaryBundleReader读取二进制资源包文件并返回一个数组或类似数组的对象。目前仅适用于这类intl扩展安装:

1 2 3 4 5 6
使用ob娱乐下载\组件\Intl\ResourceBundle\读者\BinaryBundleReader;美元读者=BinaryBundleReader ();美元数据=美元读者- >读(的路径/ /包,“en”);var_dump (美元数据(“数据”][“entry1”]);

PhpBundleReader

PhpBundleReader读取资源包。php文件,并返回一个数组或类似数组的对象:

1 2 3 4 5 6
使用ob娱乐下载\组件\Intl\ResourceBundle\读者\PhpBundleReader;美元读者=PhpBundleReader ();美元数据=美元读者- >读(的路径/ /包,“en”);var_dump (美元数据(“数据”][“entry1”]);

BufferedBundleReader

BufferedBundleReader包装另一个读者,但保持过去N读入缓冲区,其中N是一个缓冲区大小传递到构造函数:

1 2 3 4 5 6 7 8 9 10 11 12 13
使用ob娱乐下载\组件\Intl\ResourceBundle\读者\BinaryBundleReader;使用ob娱乐下载\组件\Intl\ResourceBundle\读者\BufferedBundleReader;美元读者=BufferedBundleReader (BinaryBundleReader (),10);/ /读取文件美元数据=美元读者- >读(的路径/ /包,“en”);/ /返回数据的缓冲区美元数据=美元读者- >读(的路径/ /包,“en”);/ /读取文件美元数据=美元读者- >读(的路径/ /包,“fr”);

StructuredBundleReader

StructuredBundleReader包装另一个读者,提供了一个readEntry ()方法用于读取一个条目的资源包,而不必担心是否数组键设置。如果无法解决的路径,返回:

1 2 3 4 5 6 7 8 9 10 11 12
使用ob娱乐下载\组件\Intl\ResourceBundle\读者\BinaryBundleReader;使用ob娱乐下载\组件\Intl\ResourceBundle\读者\StructuredBundleReader;美元读者=StructuredBundleReader (BinaryBundleReader ());美元数据=美元读者- >读(的路径/ /包,“en”);/ /产生一个错误如果键“数据”是不存在的var_dump (美元数据(“数据”][“entry1”]);/ /返回null如果键“数据”是不存在的var_dump (美元读者- >readEntry (的路径/ /包,“en”,数组(“数据”,“entry1”)));

此外,readEntry ()方法解决后备区域。例如,回退地区“en_GB”是“en”。为单值条目(字符串、数字等),入口会读回退场所如果不能更具体的语言环境中。对于多值条目(数组),更具体的值和回退场所将被合并。为了抑制这种行为,最后一个参数美元的回退可以设置为:

1 2 3 4 5 6
var_dump (美元读者- >readEntry (的路径/ /包,“en”,数组(“数据”,“entry1”),));

访问ICU数据

加护病房数据位于几个“资源包”。你可以通过静态访问PHP包装这些包Intl类。目前,支持以下数据:

语言和脚本的名称

语言和脚本名称的翻译中可以找到语言包:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
使用ob娱乐下载\组件\Intl\Intl;\地区::setDefault (“en”);美元语言= Intl::getLanguageBundle ()- >getLanguageNames ();/ / = >阵列(“ab”= >“阿布哈西亚语”,…)美元语言= Intl::getLanguageBundle ()- >getLanguageName (“德”);/ / = >“德国”美元语言= Intl::getLanguageBundle ()- >getLanguageName (“德”,“在”);/ / = >德国奥地利的美元脚本= Intl::getLanguageBundle ()- >getScriptNames ();/ / = >阵列(“阿拉伯”= >“阿拉伯语”,…)美元脚本= Intl::getLanguageBundle ()- >getScriptName (“汉斯”);/ / = >“简化”

所有方法接受翻译语言环境作为过去,可选参数,默认为当前默认语言环境:

1 2
美元语言= Intl::getLanguageBundle ()- >getLanguageNames (“德”);/ / = >阵列(“ab”= >“Abchasisch”,…)

国家的名字

国家名称的翻译中可以找到该地区包:

1 2 3 4 5 6 7 8 9
使用ob娱乐下载\组件\Intl\Intl;\地区::setDefault (“en”);美元国家= Intl::getRegionBundle ()- >getCountryNames ();/ / = >阵列(“对焦”= >“阿富汗”,…)美元国家= Intl::getRegionBundle ()- >getCountryName (“GB”);/ / = >“联合王国”

所有方法接受翻译语言环境作为过去,可选参数,默认为当前默认语言环境:

1 2
美元国家= Intl::getRegionBundle ()- >getCountryNames (“德”);/ / = >阵列(“对焦”= >“阿富汗”,…)

地区

地区名称的翻译中可以找到语言包:

1 2 3 4 5 6 7 8 9
使用ob娱乐下载\组件\Intl\Intl;\地区::setDefault (“en”);美元地区= Intl::getLocaleBundle ()- >getLocaleNames ();/ / = >阵列(“对焦”= >“南非荷兰语”,…)美元语言环境= Intl::getLocaleBundle ()- >getLocaleName (“zh_Hans_MO”);/ / = > '中文(简体,中国澳门特别行政区)”

所有方法接受翻译语言环境作为过去,可选参数,默认为当前默认语言环境:

1 2
美元地区= Intl::getLocaleBundle ()- >getLocaleNames (“德”);/ / = >阵列(“对焦”= >“南非荷兰语”,…)

货币

货币名称的翻译和其他货币汇率相关的信息可以发现包:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
使用ob娱乐下载\组件\Intl\Intl;\地区::setDefault (“en”);美元货币= Intl::getCurrencyBundle ()- >getCurrencyNames ();/ / = >阵列(“AFN”= >“阿富汗阿富汗的”,…)美元货币= Intl::getCurrencyBundle ()- >getCurrencyName (印度卢比的);/ / = > '印度卢比美元象征= Intl::getCurrencyBundle ()- >getCurrencySymbol (印度卢比的);/ / = > '₹'美元fractionDigits= Intl::getCurrencyBundle ()- >getFractionDigits (印度卢比的);/ / = > 2美元roundingIncrement= Intl::getCurrencyBundle ()- >getRoundingIncrement (印度卢比的);/ / = > 0

(除了所有方法getFractionDigits ()getRoundingIncrement ())接受翻译语言环境作为最后一个可选参数,默认为当前默认语言环境:

1 2
美元货币= Intl::getCurrencyBundle ()- >getCurrencyNames (“德”);/ / = >阵列(“AFN”= >“Afghanische阿富汗”,…)

这是所有你需要知道的。有有趣的编码!

这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。