国际化
最后更新于: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
```
';