|
|
|
Internationalization
|
|
|
|
====================
|
|
|
|
|
|
|
|
Internationalization (I18N) refers to the process of designing a software application so that it can be adapted to
|
|
|
|
various languages and regions without engineering changes. For Web applications, this is of particular importance
|
|
|
|
because the potential users may be worldwide.
|
|
|
|
|
|
|
|
When developing an application it's assumed that we're relying on
|
|
|
|
[PHP internationalization extension](http://www.php.net/manual/en/intro.intl.php). While extension covers a lot of aspects
|
|
|
|
Yii adds a bit more:
|
|
|
|
|
|
|
|
- It handles message translation.
|
|
|
|
|
|
|
|
|
|
|
|
Locale and Language
|
|
|
|
-------------------
|
|
|
|
|
|
|
|
Translation
|
|
|
|
-----------
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
|
|
numeric arg \{\s*\d+\s*\}
|
|
|
|
named arg \{\s*(\w|(\w|\d){2,})\s*\}
|
|
|
|
|
|
|
|
named placeholder can be unicode!!!
|
|
|
|
|
|
|
|
|
|
|
|
argName [^[[:Pattern_Syntax:][:Pattern_White_Space:]]]+
|
|
|
|
|
|
|
|
message = messageText (argument messageText)*
|
|
|
|
argument = noneArg | simpleArg | complexArg
|
|
|
|
complexArg = choiceArg | pluralArg | selectArg | selectordinalArg
|
|
|
|
noneArg = '{' argNameOrNumber '}'
|
|
|
|
simpleArg = '{' argNameOrNumber ',' argType [',' argStyle] '}'
|
|
|
|
choiceArg = '{' argNameOrNumber ',' "choice" ',' choiceStyle '}'
|
|
|
|
pluralArg = '{' argNameOrNumber ',' "plural" ',' pluralStyle '}'
|
|
|
|
selectArg = '{' argNameOrNumber ',' "select" ',' selectStyle '}'
|
|
|
|
selectordinalArg = '{' argNameOrNumber ',' "selectordinal" ',' pluralStyle '}'
|
|
|
|
choiceStyle: see ChoiceFormat
|
|
|
|
pluralStyle: see PluralFormat
|
|
|
|
selectStyle: see SelectFormat
|
|
|
|
argNameOrNumber = argName | argNumber
|
|
|
|
argName = [^[[:Pattern_Syntax:][:Pattern_White_Space:]]]+
|
|
|
|
argNumber = '0' | ('1'..'9' ('0'..'9')*)
|
|
|
|
argType = "number" | "date" | "time" | "spellout" | "ordinal" | "duration"
|
|
|
|
argStyle = "short" | "medium" | "long" | "full" | "integer" | "currency" | "percent" | argStyleText
|
|
|
|
*/
|