= Ruby-Locale

Ruby-Locale is the pure ruby library which provides basic and general purpose
APIs for localization.
It aims to support all environments which ruby works and all kind of programs
(GUI, WWW, library, etc), and becomes the hub of other i18n/l10n libs/apps to 
handle major locale ID standards. 

* Manage Locale ID(Language Tag)
  * Each thread has a Locale ID.
  * POSIX, CLDR, IETF(RFC4646, 3066(BCP47)), Win32 and Java language tags 
    and convert the tag string to each other.
  * Auto detect Locale ID.
    POSIX(Unix/Linux/*BSD), Win32, JRuby, CGI.

* Resources
  * ISO 639-3 languages
  * ISO 3166 region(countries).

* Support Ruby 1.8.7, Ruby 1.9.1, JRuby 1.1.4. Tested on Win32 and Linux.

== Website
* http://www.yotabanana.com/hiki/ruby-locale.html
* http://locale.rubyforge.org/

== Requirements
* Ruby-1.8.7 or later <http://www.ruby-lang.org/ja/>
* JRuby-1.1.4 or later <http://jruby.codehaus.org/>

== Install
* gem:
  ($ su)
   # gem install locale

* tar-ball:
  Download tar-ball from http://rubyforge.org/projects/locale/
  De-Compress archive and enter its top directory.
  Then type:
   ($ su)
   # ruby setup.rb

== The simplest usage

 require 'rubygems'
 require 'locale'
 
 p Locale.candidates

== APIs
The most important APIs are defined in Locale module.

* Locale.candidates - Returns the current locale candidates.
* Locale.current= - Sets the current locale(in a thread).
* Locale.default= - Sets the default locale(in the whole program).
* Locale.set_app_language_tags - Sets the locale that is supported by the App.

== License
This program is licenced under the same licence as Ruby.
(See the file 'COPYING'.)

* locale/language.rb, locale/region.rb, 
  locale/data/language.tab.gz, locale/data/region.tab.gz:
  * Copyright (C) 2006 Brian Pontarelli, Antonio Terceiro
  * Copyright (C) 2008 Masao Mutoh <mutomasa at gmail.com>

* setup.rb version 3.4.1
  * Copyright (C) 2000-2005 Minero Aoki <aamine at loveruby.net>
  * This file is released under LGPL. See the top of the setup.rb.

* Others(Some files are separated from Ruby-GetText-Package-1.92.0)
  * Copyright (C) 2008 Masao Mutoh <mutoh at highwhay.ne.jp>

== References
=== Other libraries
* langtag-0.1.0 
  * by Martin Dürst <http://rubyforge.org/projects/langtag/>

* memoizable.rb
  * from ActiveSupport-2.2.0 <http://rubyforge.org/projects/activesupport/>

* Ruby-GetText-Package-1.92.0
  * by Masao Mutoh <http://www.yotabanana.com/hiki/ruby-gettext.html>

=== Documents
* The Open Group Base Specifications Issue 6 IEEE Std 1003.1, 2004 Edition 
  Internationalization Variables 
  <http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap08.html>

* GNU `gettext' utilities - Setting the Locale through Environment Variables
  <http://www.gnu.org/software/gettext/manual/gettext.html#Setting-the-POSIX-Locale>

* BCP47 / RFC4646, RFC3066 - Tags for Identifying Languages (Keep RFC3066 compatibility)
  <http://www.ietf.org/rfc/rfc4646.txt>
  <http://www.ietf.org/rfc/rfc3066.txt>

* Unicode Locale Data Markup Language (LDML) 1.6.1
  Unicode Language and Locale Identifiers
  <http://www.unicode.org/reports/tr35/tr35-11.html#Unicode_Language_and_Locale_Identifiers>

* JDK 6 Documentation - Java Supported Locales
  <http://java.sun.com/javase/6/docs/technotes/guides/intl/locale.doc.html>

* Microsoft Developer Network - Locales and Languages
  <http://msdn.microsoft.com/en-us/library/ms776264(VS.85).aspx>

* ISO 639

* ISO 3166

== Maintainer
Masao Mutoh <mutomasa at gmail.com>
