RT# 83450 - fixed rateplan export
[freeside.git] / FS / FS / Locales.pm
index 351f478..d1f3eed 100644 (file)
@@ -28,13 +28,25 @@ Returns a list of the available locales.
 =cut
 
 tie our %locales, 'Tie::IxHash',
-  'en_CA', { name => 'English',     country => 'Canada', },
-  'en_US', { name => 'English',     country => 'United States', },
-  'fr_CA', { name => 'French',      country => 'Canada', },
-  'fr_FR', { name => 'French',      country => 'France', },
-  '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;
 }
@@ -47,7 +59,13 @@ 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