X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FLocales.pm;h=d1f3eed229da5b580db4109e36e5b92614818a2a;hb=e2ee874843b19f6c5221f5ce0af90979dba34e57;hp=607f2be2de89c325c8e2afb939e879081720bf38;hpb=83053569b3d965924e2e1d4f5b199609ec7c29af;p=freeside.git diff --git a/FS/FS/Locales.pm b/FS/FS/Locales.pm index 607f2be2d..d1f3eed22 100644 --- a/FS/FS/Locales.pm +++ b/FS/FS/Locales.pm @@ -28,10 +28,25 @@ Returns a list of the available locales. =cut tie our %locales, 'Tie::IxHash', - 'en_US', { name => 'English', country => 'United States', }, - 'iw_IL', { name => 'Hebrew', country => 'Israel', rtl=>1, }, + 'en_US', { name => 'English', country => 'United States', }, + 'en_AU', { name => 'English', country => 'Australia', }, + 'en_CA', { name => 'English', country => 'Canada', }, + 'es_ES', { name => 'Spanish', country => 'Spain', }, + 'es_AR', { name => 'Spanish', country => 'Argentina', }, + 'es_CU', { name => 'Spanish', country => 'Cuba', }, + 'es_MX', { name => 'Spanish', country => 'Mexico', }, + 'es_PA', { name => 'Spanish', country => 'Panama', }, + 'es_US', { name => 'Spanish', country => 'United States', }, + 'fr_CA', { name => 'French', country => 'Canada', }, + 'fr_FR', { name => 'French', country => 'France', }, + 'fr_HT', { name => 'French', country => 'Haiti', }, + 'ht_HT', { name => 'Haitian Creole', country => 'Haiti', }, + 'iw_IL', { name => 'Hebrew', country => 'Israel', rtl=>1, }, ; +$_->{label} = $_->{name} . ' (' . $_->{country} . ')' + foreach values %locales; + sub locales { keys %locales; } @@ -44,7 +59,24 @@ Returns a hash of information about a locale. sub locale_info { my($class, $locale) = @_; - %{ $locales{$locale} }; + if (!$locale) { + return (); + } elsif (exists $locales{$locale}) { + return %{ $locales{$locale} }; + } else { + die "unsupported locale '$locale'\n"; + } +} + +=item description LOCALE + +Returns "Language (Country)" for a locale. + +=cut + +sub description { + my($class, $locale) = @_; + $locales{$locale}->{'name'} . ' (' . $locales{$locale}->{'country'} . ')'; } =back