Skip to content

thewca/ruby-iso

 
 

Repository files navigation

iso

Build Status

This project is a ruby implementation of ISO 639-1 alpha2 and ISO 3166-1. It includes definitions of all two letter language and region codes.

Languages

Languages are defined by ISO 639-1 alpha-2; that is the 2 letter lowercase language code.

These have been augmented to contain the plural rule names and the language's direction.

> ISO::Language.find('ru')

=> #<ISO::Language:0x007fe2ba43db50
		@plural_rule_names=["one", "few", "many", "other"],
		@direction="ltr",
		@code="ru",
		@name="Russian">

Regions

Regions are defined by ISO 3166-1; that is the 2 letter uppercase region code.

> ISO::Region.find('MX')

=> #<ISO::Region:0x007fe2ba070e50
		@code="MX",
		@name="Mexico">

Regions can also be defined by the UN M49 standard; that is the 3 digit region code.

> ISO::UN::Region.find('419')

=> #<ISO::Region:0x007fe2ba43db50
		@code="419",
		@name="Latin America and the Caribbean">

Tags

The combination of a language and a region is called a Tag :

> ISO::Tag.new('pt-BR')

 => #<ISO::Tag:0x007fe2bb005b90 @code="pt-BR",
 	 	@language=#<ISO::Language:0x007fe2ba256918
 			@plural_rule_names=["one", "other"],
		  	@direction="ltr",
	  		@code="pt",
  			@name="Portuguese">,
 		@region=#<ISO::Region:0x007fe2ba412e28
			@code="BR",
			@name="Brazil">>

You can check if a Tag is valid like so :

> ISO::Tag.new('pt-BR').valid? => true
> ISO::Tag.new('lolcat').valid? => false

I18n

Language and region names are internationalized - contribute to the I18n project directly on Locale for any changes.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Ruby 100.0%