国际化

最后更新于:2022-04-02 05:15:47

[TOC] # 国际化 Phalcon是用C语言编写的PHP的扩展。有一个[PECL](http://pecl.php.net/package/intl)扩展,称为`intl`的PHP应用程序提供国际化功能。从PHP 5.4 / 5.5开始,此扩展与PHP捆绑在一起。它的文档可以在官方PHP手册的页面中找到。 Phalcon不提供此功能,因为创建此类组件将复制现有代码。 在下面的示例中,我们将向您展示如何在Phalcon支持的应用程序中实现intl扩展的功能。 >[warning] 本指南不是 [intl](http://pecl.php.net/package/intl) 扩展的完整文档。 请访问该扩展程序的[文档](http://www.php.net/manual/en/book.intl.php) 以获取参考。 ## 找出最佳的Locale 有几种方法可以使用intl找出最佳的可用语言环境。 其中之一是检查HTTP `Accept-Language`标头: ```php format([4560]); // Prints USD$ 4,560.5 $formatter = new MessageFormatter('en_US', 'USD$ {0, number}'); echo $formatter->format([4560.50]); // Prints ARS$ 1.250,25 $formatter = new MessageFormatter('es_AR', 'ARS$ {0, number}'); echo $formatter->format([1250.25]); ``` 使用时间和日期模式格式化消息: ```php format($values); // 打印 'À 15:53:01 le 19 avr. 2015, il y avait une perturbation sur la planète 7.' $pattern = 'À {1, time} le {1, date}, il y avait une perturbation sur la planète {0, number}.'; $formatter = new MessageFormatter('fr_FR', $pattern); echo $formatter->format($values); ``` ## 区域敏感比较 Collator类提供字符串比较功能,支持适当的区域设置敏感排序顺序。请查看以下有关此类用法的示例: ```php setStrength(Collator::PRIMARY); var_dump($collator->compare('una canción', 'una cancion')); // 返回字符串不相等 $collator->setStrength(Collator::DEFAULT_VALUE); var_dump($collator->compare('una canción', 'una cancion')); ``` ## 音译 Transliterator提供字符串的音译: ```php transliterate($string); // garconetudiantoulecole ```
';