[WIP]国际化与字符编码支持 - Intl

[WIP]国际化与字符编码支持 - Intl

[WIP]国际化与字符编码支持 - Intl

国际化扩展是对 ICU 的封装, 并且启用PHP编程者以 UCA 一致性的方式来格式化脚本 国际化扩展根据本地的大小写配置来提供字串比较功能
Collator: 字串对比 Number Formatter: 根据本地化的格式来格式化数字 Message Formatter: 信息格式化, Normalizer: 标准化组件 Locale: 本地化组件

安装

PHP 5.3 中集成了这个组件, php5.2.4+可运行 默认绑定了此扩展,[5.2.4]+支持,但是需要自己编译

配置

intl.default_locale
PHP_INI_ALL 默认的本地化设置

函数

Collator

根据本地配置,提供了字串比较和数组排序的能力

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Collator {
__construct ( string $locale )
建立一个收集器
$locale 收集器使用的本地规则, 可以传递规则, 如果是'', 'root' 将启用UCA规则
bool asort ( array &$arr [, int $sort_flag ] )
bool collator_asort ( Collator $coll , array &$arr [, int $sort_flag ] )
数组键值排序
int compare ( string $str1 , string $str2 )
int collator_compare ( Collator $coll , string $str1 , string $str2 )
Unicode字串比较
static Collator::create ( string $locale )
Collatorcollator_create ( string $locale )
建立一个收集器,用于以后的字串比较
int getAttribute ( int $attr )
int collator_get_attribute ( Collator $coll , int $attr )
获取收集器的属性信息
int getErrorCode ( void )
int collator_get_error_code ( Collator $coll )
获取最近的错误码
string getErrorMessage ( void )
string collator_get_error_message ( Collator $coll )
获取上一个错误信息
string getLocale ([ int $type ] )
string collator_get_locale ( Collator $coll , int $type )
获取收集器的本地名称.
string getSortKey ( string $str )
string collator_get_sort_key ( Collator $coll , string $str )
获取字串的排序键
int getStrength ( void )
int collator_get_strength ( Collator $coll )
获取strength
bool setAttribute ( int $attr , int $val )
bool collator_set_attribute ( Collator $coll , int $attr , int $val )
设置属性
bool setStrength ( int $strength )
bool collator_set_strength ( Collator $coll , int $strength )
设置strength
bool sortWithSortKeys ( array &$arr )
bool collator_sort_with_sort_keys ( Collator $coll , array &$arr )
使用指定的收集器和键值进行排序
bool sort ( array &$arr [, int $sort_flag ] )
bool collator_sort ( Collator $coll , array &$arr [, int $sort_flag ] )
根据当前的本地规则进行排序, 类似于PHP的 sort()函数
}

NumberFormatter

程序存储和操作数据是独立于地域的, 但是显示是基于指定地域的,所以你可以根据不同的地区来显示不同的数字表示方法.NumberFormatter 是基于地域的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
NumberFormatter {
__construct ( string $locale , int $style [, string $pattern ] )
static NumberFormatter::create ( string $locale , int $style [, string $pattern ] )
NumberFormatter numfmt_create ( string $locale , int $style [, string $pattern ] )
建立一个格式器
string formatCurrency ( float $value , string $currency )
string numfmt_format_currency ( NumberFormatter $fmt , float $value , string $currency )
格式化货币
string format ( number $value [, int $type ] )
string numfmt_format ( NumberFormatter $fmt , number $value [, int $type ] )
格式化数字
int getAttribute ( int $attr )
int numfmt_get_attribute ( NumberFormatter $fmt , int $attr )
获取属性
int getErrorCode ( void )
int numfmt_get_error_code ( NumberFormatter $fmt )
获取错误代码
string getErrorMessage ( void )
string numfmt_get_error_message ( NumberFormatter $fmt )
获取错误信息
string getLocale ([ int $type ] )
string numfmt_get_locale ( NumberFormatter $fmt [, int $type ] )
获取本地名称
string getPattern ( void )
string numfmt_get_pattern ( NumberFormatter $fmt )
获取格式基准
string getSymbol ( int $attr )
string numfmt_get_symbol ( NumberFormatter $fmt , int $attr )
获取格式的标示符
string getTextAttribute ( int $attr )
string numfmt_get_text_attribute ( NumberFormatter $fmt , int $attr )
获取文本属性
float parseCurrency ( string $value , string &$currency [, int &$position ] )
float numfmt_parse_currency ( NumberFormatter $fmt , string $value , string &$currency [, int &$position ] )
解析货币格式
mixed parse ( string $value [, int $type [, int &$position ]] )
mixed numfmt_parse ( NumberFormatter $fmt , string $value [, int $type [, int &$position ]] )
把字串根据指定的格式解析为数值
bool setAttribute ( int $attr , int $value )
bool numfmt_set_attribute ( NumberFormatter $fmt , int $attr , int $value )
设置一个数值关联属性
bool setPattern ( string $pattern )
bool numfmt_set_pattern ( NumberFormatter $fmt , string $pattern )
设置格式
bool setSymbol ( int $attr , string $value )
bool numfmt_set_symbol ( NumberFormatter $fmt , int $attr , string $value )
设置格式标示符
bool setTextAttribute ( int $attr , string $value )
bool numfmt_set_text_attribute ( NumberFormatter $fmt , int $attr , string $value )
设置文本属性.
}

Locale

Locale 是一个用来获取语言,文化区域行为的标识,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Locale  {
/* 方法 */
public static string acceptFromHttp ( string $header )
string locale_accept_from_http ( string $header )
// 根据浏览器发送的头部找出支持哪种语言
public static string canonicalize ( string $locale )
// 规范化本地字串
public static string composeLocale ( array $subtags )
string locale_compose ( array $subtags )
// ~~
public static bool filterMatches ( string $langtag , string $locale [, bool $canonicalize = false ] )
bool locale_filter_matches ( string $langtag , string $locale [, bool $canonicalize = false ] )
// 检测语言标签是否匹配本地
public static array getAllVariants ( string $locale )
array locale_get_all_variants ( string $locale )
// 从指定输入的本地信息中获取变体
public static string getDefault ( void )
string locale_get_default ( void )
// 获取默认的 locale 值
public static string getDisplayLanguage ( string $locale [, string $in_locale ] )
string locale_get_display_language ( string $locale [, string $in_locale ] )
// 返回合适的本地显示名称
public static string getDisplayName ( string $locale [, string $in_locale ] )
string locale_get_display_name ( string $locale [, string $in_locale ] )
// 获取输入的合适显示名字
public static string getDisplayRegion ( string $locale [, string $in_locale ] )
string locale_get_display_region ( string $locale [, string $in_locale ] )
// 显示区域
public static string getDisplayScript ( string $locale [, string $in_locale ] )
string locale_get_display_script ( string $locale [, string $in_locale ] )
// 获取显示脚本
public static string getDisplayVariant ( string $locale [, string $in_locale ] )
string locale_get_display_variant ( string $locale [, string $in_locale ] )
// 获取合适的本地化显示的名称
public static array getKeywords ( string $locale )
array locale_get_keywords ( string $locale )
public static string getPrimaryLanguage ( string $locale )
string locale_get_primary_language ( string $locale )
public static string getRegion ( string $locale )
string locale_get_region ( string $locale )
public static string getScript ( string $locale )
string locale_get_script ( string $locale )
public static string lookup ( array $langtag , string $locale [, bool $canonicalize = false [, string $default ]] )
string locale_lookup ( array $langtag , string $locale [, bool $canonicalize = false [, string $default ]] )
// 获取接近的区域显示
public static array parseLocale ( string $locale )
array locale_parse ( string $locale )
// 解析
public static bool setDefault ( string $locale )
bool locale_set_default ( string $locale )
// 设置默认的运行本地环境
}

Normalizer

1
2
3
4
5
6
7
8
9
Normalizer  {
/* 方法 */
public static bool isNormalized ( string $input [, string $form = Normalizer::FORM_C ] )
bool normalizer_is_normalized ( string $input [, string $form = Normalizer::FORM_C ] )
// 检测指定的字串是否为给定的标准格式
public static string normalize ( string $input [, string $form = Normalizer::FORM_C ] )
string normalizer_normalize ( string $input [, string $form = Normalizer::FORM_C ] )
// 返回标准的的格式
}

[WIP]MessageFormatter

[WIP]IntlCalendar

[WIP]IntlTimeZone

[WIP]IntlDateFormatter

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
IntlDateFormatter  {
/* 方法 */
public __construct ( string $locale , int $datetype , int $timetype [, mixed $timezone = NULL [, mixed $calendar = NULL [, string $pattern = '' ]]] )
public static IntlDateFormatter create ( string $locale , int $datetype , int $timetype [, mixed $timezone = NULL [, mixed $calendar = NULL [, string $pattern = '' ]]] )
IntlDateFormatter datefmt_create ( string $locale , int $datetype , int $timetype [, mixed $timezone = NULL [, mixed $calendar = NULL [, string $pattern = '' ]]] )
// 建立一个日期格式化器
public string format ( mixed $value )
string datefmt_format ( IntlDateFormatter $fmt , mixed $value )
// 格式化时间为一个字串
public static string formatObject ( object $object [, mixed $format = NULL [, string $locale = NULL ]] )
public static string datefmt_format_object ( object $object [, mixed $format = NULL [, string $locale = NULL ]] )
// 这个静态函数允许格式化一个 IntlCalendar 和 DateTime 对象, 但是不需要实例化一个对象.
int getCalendar ( void )
int datefmt_get_calendar ( IntlDateFormatter $fmt )
// 获取 intlDateFormatter 使用的 calendar类型
public int getDateType ( void )
int datefmt_get_datetype ( IntlDateFormatter $fmt )
// 获取格式器支持的 Date 类型
public int getErrorCode ( void )
int datefmt_get_error_code ( IntlDateFormatter $fmt )
public string getErrorMessage ( void )
string datefmt_get_error_message ( IntlDateFormatter $fmt )
public string getLocale ([ int $which ] )
string datefmt_get_locale ( IntlDateFormatter $fmt [, int $which ] )
public string getPattern ( void )
string datefmt_get_pattern ( IntlDateFormatter $fmt )
public int getTimeType ( void )
int datefmt_get_timetype ( IntlDateFormatter $fmt )
public string getTimeZoneId ( void )
string datefmt_get_timezone_id ( IntlDateFormatter $fmt )
public IntlCalendar getCalendarObject ( void )
IntlCalendar datefmt_get_calendar_object ( void )
public IntlTimeZone getTimeZone ( void )
IntlTimeZone datefmt_get_timezone ( void )
public bool isLenient ( void )
bool datefmt_is_lenient ( IntlDateFormatter $fmt )
public array localtime ( string $value [, int &$position ] )
array datefmt_localtime ( IntlDateFormatter $fmt , string $value [, int &$position ] )
public int parse ( string $value [, int &$position ] )
int datefmt_parse ( IntlDateFormatter $fmt , string $value [, int &$position ] )
bool setCalendar ( mixed $which )
bool datefmt_set_calendar ( IntlDateFormatter $fmt , mixed $which )
public bool setLenient ( bool $lenient )
bool datefmt_set_lenient ( IntlDateFormatter $fmt , bool $lenient )
public bool setPattern ( string $pattern )
bool datefmt_set_pattern ( IntlDateFormatter $fmt , string $pattern )
public bool setTimeZoneId ( string $zone )
bool datefmt_set_timezone_id ( IntlDateFormatter $fmt , string $zone )
[5.5.0] 废弃
public boolean setTimeZone ( mixed $zone )
boolean datefmt_set_timezone ( mixed $zone )
[5.5.0]设置格式化的时区
}

[WIP]ResourceBundle

[WIP]Spoofchecker

[WIP]Transliterator

[WIP]UConverter

[WIP]Grapheme

[WIP]IDN

[WIP]IntlException

[WIP]intl


原文地址 : [WIP]国际化与字符编码支持 - Intl
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

国际化与字符编码支持 - Gettext

国际化与字符编码支持 - Gettext

国际化与字符编码支持 - Gettext

这个函数继承了 本地语言支持 , 能管理PHP应用 扩展阅读: http://www.gnu.org/software/gettext/manual/gettext.html

安装

为了使用这个, 你必须安装 gettext包

配置


函数

string bind_textdomain_codeset ( string $domain , string $codeset )
指定作用域的字符集 - $domain 作用域 - $codeset 字符编码
string bindtextdomain ( string $domain , string $directory )
设置文本作用域的目录
string dcgettext ( string $domain , string $message , int $category )
允许小范围的重写作用域
string dcngettext ( string $domain , string $msgid1 , string $msgid2 , int $n , int $category )
gettext 函数的复数版本
string dgettext ( string $domain , string $message )
在当前域中重写信息
string dngettext ( string $domain , string $msgid1 , string $msgid2 , int $n )
dgettext 函数的复数版本
string gettext ( string $message )
当前域中寻找信息
string ngettext ( string $msgid1 , string $msgid2 , int $n )
gettext函数的复数版本
string textdomain ( string $text_domain )
设置默认的作用域
参考文档: http://developer.51cto.com/art/200901/107174.htm 参考源码: oschina-> mark sample->character->gettext 参考软件: PoEdit - 语言编辑工具


原文地址 : 国际化与字符编码支持 - Gettext
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

国际化与字符编码支持 - iconv

国际化与字符编码支持 - iconv

国际化与字符编码支持 - iconv

这个模块包含了一个熟练展缓字串的接口, 使用这个模块,你能转换一个字串从一个本地的字串设置成ing一个字串集.这个也可能是Unicode字串.支持的字串设置, 基于系统上的iconv接口,注意,这个iconv哈数在有些系统上可能不像你期待的那样期待.作为一个更好的方法是安装gun libiconv 库, 这个节骨很可能是相同的.在 PHP 5.0.0 开始,这个扩展和更多函数帮助写脚本.下边让我引导你看到更多的特性

安装

如果你的系统使用 POSIX 继承的系统,你不需要安装东西, 因为标准 C 库已经支持了. 否则的话你需要安装 libiconv 库.

配置

iconv.input_encoding “ISO-8859-1”
PHP_INI_ALL 输入的值
iconv.output_encoding “ISO-8859-1”
PHP_INI_ALL 输出的编码
iconv.internal_encoding “ISO-8859-1”
PHP_INI_ALL

函数

mixed iconv_get_encoding ([ string $type = "all" ] )
获取 iconv 扩展变量的内部配置
array iconv_mime_decode_headers ( string $encoded_headers [, int $mode = 0 [, string $charset = ini_get("iconv.internal_encoding") ]] )
解码 MINIE 头部 - $encoded_headers 已经编码过的headers - $mod ICONV_MIME_DECODE_STRICT 严格模式 ICONV_MIME_DECODE_CONTINUE_ON_ERROR 忽略错误 - $charset 设置结果字符集
string iconv_mime_decode ( string $encoded_header [, int $mode = 0 [, string $charset = ini_get("iconv.internal_encoding") ]] )
编码 MIME 头部
string iconv_mime_encode ( string $field_name , string $field_value [, array $preferences = NULL ] )
建立 MIME 头部
bool iconv_set_encoding ( string $type , string $charset )
设置配置的值. - $type input_encoding output_encoding internal_encoding - $character 设置的字符
int iconv_strlen ( string $str [, string $charset = ini_get("iconv.internal_encoding") ] )
根据字符集返回字串
int iconv_strpos ( string $haystack , string $needle [, int $offset = 0 [, string $charset = ini_get("iconv.internal_encoding") ]] )
查找字串第一次出现的位置
int iconv_strrpos ( string $haystack , string $needle [, string $charset = ini_get("iconv.internal_encoding") ] )
查找字串最后一次出现的位置
string iconv_substr ( string $str , int $offset [, int $length = iconv_strlen($str, $charset) [, string $charset = ini_get("iconv.internal_encoding") ]] )
根据偏移量截取字串.
string iconv ( string $in_charset , string $out_charset , string $str )
从一个字符集转换到另一个字符集
string ob_iconv_handler ( string $contents , int $status )
将字符转换作为一个缓冲处理函数来使用. 将字符从输入字串转换为输出字串. 这个可以在 php.ini 中设置或者使用iconv_set_encoding()设置


原文地址 : 国际化与字符编码支持 - iconv
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问