Class | Locale::Object
In: | lib/locale/object.rb
Parent: | Object

### Methods

charset= clear country= language= modifier= new parse script= to_a to_general to_iso3066 to_posix to_s to_str to_win variant=

### Attributes

charset | [R] |
country | [R] |
fallback | [RW] | A fallback locale. With GetText, you don‘t need to set English(en,C,POSIX) by yourself because English is used as the last fallback locale anytime.
language | [R] |
modifier | [R] |
orig_str | [R] |
script | [R] |
variant | [R] |

### Public Class methods

new(language_or_locale_name, country = nil, charset = nil)

Initialize Locale::Object.

- language_or_locale_name: language(ISO 639) or POSIX or RFC3066 style locale name
- country: an uppercase ISO 3166-1 country/region identifier, or nil
- charset: charset(codeset) (no standard), or nil

     Locale::Object.new("ja", "JP", "eucJP")
      -> language = "ja", country = "JP", charset = "eucJP".
     Locale::Object.new("ja", "JP")
      -> language = "ja", country = "JP", charset = nil.
     Locale::Object.new("ja_JP.eucJP")
      -> language = "ja", country = "JP", charset = "eucJP".
     Locale::Object.new("ja_JP.eucJP", nil, "UTF-8")
      -> language = "ja", country = "JP", charset = "UTF-8".
     Locale::Object.new("en-US", "CA")
      -> language = "en", country = "CA", charset = nil.
     Locale::Object.new("uz-uz-latn")
      -> language = "uz", country = "UZ", charset = nil, script = "Latn"
     Locale::Object.new("uz_UZ_Latn")
      -> language = "uz", country = "UZ", charset = nil, script = "Latn"
     Locale::Object.new("we_BE.iso885915@euro")
      -> language = "we", country = "BE", charset = "iso885915", modifier = "euroo".
     Locale::Object.new("C")
      -> language = "en", country = nil, charset = nil.
     Locale::Object.new("POSIX")
      -> language = "en", country = nil, charset = nil.

parse(locale_name)

Parse POSIX or RFC 3066 style locale name to Array.

- locale_name: locale name as String
  - Basic POSIX format: <language>_<COUNTRY>.<charset>@<modifier>
    - Both of POSIX and C are converted to "en".
  - Basic RFC3066 format: <language>-<COUNTRY>
  - Win32 format: <language>-<COUNTRY>-<Script>_<sort order>
  - CLDR format: <language>_<Script>_<COUNTRY>_<variant>@<modifier>
  - Some broken format: <language>_<country>_<script> # Don‘t use this.
  - The max locale format is below:
    - <language>-<COUNTRY>-<Script>_<sort order>.<charset>@<modifier>
    - format: <language>_<Script>_<COUNTRY>_<variant>@<modifier>
      - both of ’-’ and ‘_’ are separators.
      - each elements are omittable.

  (e.g.) uz-UZ-Latn, ja_JP.eucJP, wa_BE.iso885915@euro

- Returns: [language, country, charset, script, modifier]
  - language: a lowercase ISO 639(or 639-2/T) language code.
  - country: an uppercase ISO 3166-1 country/region identifier.
  - charset: charset(codeset) (no standard)
  - script: an initial-uppercase ISO 15924 script code.
  - variant: variant value in CLDR or sort order in Win32.
  - modifier: (no standard)

     (e.g.)
     "ja_JP.eucJP" => ["ja", "JP", "eucJP", nil, nil]
     "ja-jp.utf-8" => ["ja", "JP", "utf-8", nil, nil]
     "ja-jp" => ["ja", "JP", nil, nil, nil]
     "ja" => ["ja", nil, nil, nil, nil]
     "uz@Latn" => ["uz", nil, nil, nil, "Latn"]
     "uz-UZ-Latn" => ["uz", "UZ", nil, "Latn", nil]
     "uz_UZ_Latn" => ["uz", "UZ", nil, "Latn", nil]
     "wa_BE.iso885915@euro" => ["wa", "BE", "iso885915", nil, "euro"]
     "C" => ["en", nil, nil, nil, nil]
     "POSIX" => ["en", nil, nil, nil, nil]
     "zh_Hant" => ["zh", nil, nil, "Hant", nil]
     "zh_Hant_HK" => ["zh", "HK", nil, "Hant", nil]
     "de_DE@collation=phonebook,currency=DDM" => ["de", "DE", nil, nil, "collation=phonebook,currency=DDM"]

### Public Instance methods

charset=(val)

Set the charset. e.g.) UTF-8, EUC-JP, Shift_JIS

clear()
country=(val)

Set the country. e.g.) JP, US, FR, …

language=(val)

Set the language. e.g.) ja, en, fr, …

modifier=(val)

Set the modifier. e.g.) curreny=DDM

script=(val)

Set the script. e.g.) Latn

to_a()

Gets the locale informations as an Array.

- Returns [language, country, charset, script, variant, modifier]
  - language: a lowercase ISO 639(or 639-2/T) language code.
  - country: an uppercase ISO 3166-1 country/region identifier.
  - charset: charset(codeset) (no standard)
  - script: an initial-uppercase ISO 15924 script code.
  - variant: variant value in CLDR or sort order in Win32.
  - modifier: (no standard)

to_general()

Returns the locale as ‘ruby’ general format. (e.g.) "az_AZ_Latn"

to_iso3066()

Returns the locale as ISO3066 format. (e.g.) "ja-JP"

to_posix()

Returns the locale as POSIX format(but charset is ignored). (e.g.) "ja_JP"

to_s()

Alias for to_posix

to_str()

Alias for to_posix

to_win()

Returns the locale as Win32 format. (e.g.) "az-AZ-Latn".

This is used to find the charset from locale table.

variant=(val)

Set the variant. e.g.) Hant

[Validate]