From 3c6f40541de9e1cd66c059c28fcbb12f509bdb77 Mon Sep 17 00:00:00 2001 From: Xavier Noria Date: Sun, 14 Sep 2008 23:02:54 +0200 Subject: [PATCH] Catalan locale --- README | 1 + app/views/pages/about.html.erb | 1 + app/views/pages/date_formats.html.erb | 11 +++++++++-- app/views/pages/time_formats.html.erb | 10 ++++++++-- 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/README b/README index 8c73237..2d2fa17 100644 --- a/README +++ b/README @@ -42,6 +42,7 @@ Leandro Marcucci - http://leanucci.com.ar - Spanish (Argentinean) locale Masayuki Nakamura - masayuki@japancentre.com - Content translation, Japanese locale Prem Sichanugrist - http://sikachu.com - Thai locale Simon Tokumine - simon@japancentre.com - Content translation, Japanese locale +Xavier Noria - fxn@hashref.com - Content translation, Catalan locale Bugs and Feedback =================== diff --git a/app/views/pages/about.html.erb b/app/views/pages/about.html.erb index 0a2c9ca..b6e9376 100644 --- a/app/views/pages/about.html.erb +++ b/app/views/pages/about.html.erb @@ -19,5 +19,6 @@
  • <%= link_to "Ninh Bui", "http://www.phusion.nl" %>: Dutch locale, Hosting (<%= link_to "http://i18n-demo.phusion.nl", "http://i18n-demo.phusion.nl", :popup => true %>)
  • <%= link_to "Prem Sichanugrist", "http://sikachu.com" %>: Thai locale
  • <%= link_to "Simon Tokumine", "http://www.japancentre.com" %>: Content translation, Japanese locale
  • +
  • <%= link_to "Xavier Noria", "http://www.hashref.com" %>: Content translation, Catalan locale
  • diff --git a/app/views/pages/date_formats.html.erb b/app/views/pages/date_formats.html.erb index 217d3bd..5458e67 100644 --- a/app/views/pages/date_formats.html.erb +++ b/app/views/pages/date_formats.html.erb @@ -14,8 +14,15 @@ <%= Date.today.to_s(:short) %> - Date.today.to_s(:long) - <%= Date.today.to_s(:long) %> + Date.today.to_s(:long) + + <%= Date.today.to_s(:long) %> + <% if I18n.locale == 'ca-ES' %> + <%# Tell the reader corner cases are covered. %> +
    <%= Date.new(2009, 4, 3).to_s(:long) %> +
    <%= Date.new(11234, 7, 17).to_s(:long) %> + <% end %> + Date.today.to_s(:long_ordinal) diff --git a/app/views/pages/time_formats.html.erb b/app/views/pages/time_formats.html.erb index 584985b..5c0b9f6 100644 --- a/app/views/pages/time_formats.html.erb +++ b/app/views/pages/time_formats.html.erb @@ -14,8 +14,14 @@ <%= Time.now.to_s(:short) %> - Time.now.to_s(:long) - <%= Time.now.to_s(:long) %> + Time.now.to_s(:long) + + <%= Time.now.to_s(:long) %> + <% if I18n.locale == 'ca-ES' %> +
    <%= Date.new(2009, 4, 3).to_time.to_s(:long) %> +
    <%= Date.new(11234, 7, 17).to_time.to_s(:long) %> + <% end %> + Time.now.to_s(:long_ordinal) -- 1.5.4.1 From c5a3d11e22527508be9e7b815e6438120d729d29 Mon Sep 17 00:00:00 2001 From: Xavier Noria Date: Sun, 14 Sep 2008 23:05:53 +0200 Subject: [PATCH] Catalan locale --- config/locales/ca-ES.rb | 228 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 228 insertions(+), 0 deletions(-) create mode 100644 config/locales/ca-ES.rb diff --git a/config/locales/ca-ES.rb b/config/locales/ca-ES.rb new file mode 100644 index 0000000..096b60a --- /dev/null +++ b/config/locales/ca-ES.rb @@ -0,0 +1,228 @@ +module CatalanUtils + def self.month_needs_apostrophe?(month) + # Duen apòstrof abril, agost i octubre. + [4, 8, 10].include?(month) + end + + def self.number_needs_apostophre?(n) + if n.to_s =~ /\A11(?:\d{3})*\z/ + # 11, 11_000, 11_000_000, 11_000_000_000, etc. + true + elsif n.to_s =~ /\A1((?:\d{3})*)\z/ && ($1.length/3).even? + # 1, 1_000_000, 1_000_000_000_000, etc. + true + else + false + end + end +end + +{ + :'ca-ES' => { + :date => { + # Aquests formats estan basats en els proposats en el fitxer main/ca.xml de + # l'arxiu core.zip de CLDR 1.6.1 (http://unicode.org/Public/cldr/1.6.1/). + :formats => { + :default => "%d/%m/%Y", + :short => "%d/%m/%y", + :long => lambda { |date| + month = CatalanUtils.month_needs_apostrophe?(date.month) ? "d'%B" : "de %B" + year = CatalanUtils.number_needs_apostophre?(date.year) ? "d'%Y" : "de %Y" + "%e #{month} #{year}" # explicit day to avoid leading zero from %d + }, + :only_day => "%e" + }, + # Els noms dels dies de la setmana segueixen les regles de mots + # comuns pel que fa a l'ús de majúscules. Per tant, els configurem en + # minúscula i és el codi client qui ha de passar a majúscula si cal. + :day_names => %w(diumenge dilluns dimarts dimecres dijous divendres dissabte), + + # El punt és opcional en les abreviatures dels dies de la setmana, no el + # poso perquè m'agrada més així, però pots fer-ho a la teva aplicació. + :abbr_day_names => %w(dg dl dm dc dj dv ds), + + # Els noms dels mesos de l'any segueixen les regles de mots + # comuns pel que fa a l'ús de majúscules. Per tant, els configurem en + # minúscula i és el codi client qui ha de passar a majúscula si cal. + :month_names => %w(~ gener febrer març abril maig juny juliol agost setembre octubre novembre desembre), + + # En canvi si que cal punt en les abreviatures dels mesos. Segons les regles + # de formació d'abreviatures alguns mesos no en tenen. Són també les + # abreviatures que figuren a main/ca.xml. + :abbr_month_names => %w(~ gen. febr. març abr. maig juny jul. ag. set. oct. nov. des), + :order => [:day, :month, :year], + }, + + :time => { + :formats => { + :default => "%d/%m/%Y, %H:%M:%S %z", + :time => "%H:%M", + :short => "%d/%m/%y, %H:%M", + :long => lambda { |time| + month = CatalanUtils.month_needs_apostrophe?(time.month) ? "d'%B" : "de %B" + year = CatalanUtils.number_needs_apostophre?(time.year) ? "d'%Y" : "de %Y" + "%e #{month} #{year} %H:%M" # explicit day to avoid leading zero from %d + }, + :only_second => "%S", + + :datetime => { + :formats => { + :default => "%d-%m-%YT%H:%M:%S%Z" + } + } + }, + :am => 'AM', + :pm => 'PM', + }, + + :datetime => { + :distance_in_words => { + :half_a_minute => "mig minut", + :less_than_x_seconds => { + :one => "menys d'un segon", + :other => "menys de {{count}} segons" + # Amb aquest backend no podem apostrofar segons {{count}}. + }, + :x_seconds => { + :one => "1 segon", + :other => "{{count}} segons", + }, + :less_than_x_minutes => { + :one => "menys d'un minut", + :other => "menys de {{count}} minuts" + # Amb aquest backend no podem apostrofar segons {{count}}. + }, + :x_minutes => { + :one => "1 minut", + :other => "{{count}} minuts" + }, + :about_x_hours => { + :one => "al voltant d'una hora", + :other => "al voltant de {{count}} hores" + # Amb aquest backend no podem apostrofar segons {{count}}. + }, + :x_days => { + :one => "1 dia", + :other => "{{count}} dies" + }, + :about_x_months => { + :one => "al voltant d'un mes", + :other => "al voltant de {{count}} mesos" + # Amb aquest backend no podem apostrofar segons {{count}}. + }, + :x_months => { + :one => "1 mes", + :other => "{{count}} mesos" + }, + :about_x_years => { + :one => "al voltant d'un any", + :other => "al voltant de {{count}} anys" + # Amb aquest backend no podem apostrofar segons {{count}}. + }, + :over_x_years => { + :one => "més d'un any", + :other => "més de {{count}} anys" + # Amb aquest backend no podem apostrofar segons {{count}}. + } + } + }, + + :number => { + :format => { + :precision => 3, + :separator => ',', + :delimiter => '.' + }, + :currency => { + :format => { + :unit => '€', + :precision => 2, + :format => '%n %u' + } + } + }, + + :active_record => { + :error => { + :header_message => ["No s'ha pogut desar {{object_name}}: 1 error.", "No s'ha pogut desar {{object_name}}: {{count}} errors."], + :message => "Si us plau revisa els següents camps:" + }, + :error_messages => { + :inclusion => "no està inclòs a la llista", + :exclusion => "no es troba disponible", + :invalid => "no és pas vàlid", + :confirmation => "no coincideix amb la confirmació", + :accepted => "cal acceptar-lo", + :empty => "no pot estar buit", + :blank => "no pot estar en blanc", + :too_long => "és massa llarg (el màxim són {{count}} caràcters)", + :too_short => "és massa curt (el mínim són {{count}} caràcters)", + :wrong_length => "no té una logitud correcta (cal que siguin {{count}} caràcters)", + :taken => "no es troba disponible", + :not_a_number => "no és pas un nombre", + :greater_than => "cal que sigui més gran que {{count}}", + :greater_than_or_equal_to => "cal que sigui més gran o igual que {{count}}", + :equal_to => "cal que sigui igual que {{count}}", + :less_than => "cal que sigui més petit que {{count}}", + :less_than_or_equal_to => "cal que sigui més petit o igual que {{count}}", + :odd => "ha de ser senar", + :even => "ha de ser parell", + } + }, + + :txt => { + :main_title => "Localitzar Rails", + :app_name => "Aplicació de demostració", + :sub_title => "com traduir la teva aplicació amb el suport per a i18n de Rails", + :contents => "Contingut", + :menu => { + :introduction => "Introducció", + :about => "Sobre l'aplicació", + :setup => "Instal·lació", + :date_formats => "Formats per a dates", + :time_formats => "Formats per a hores" + }, + :about => { + :title => "Sobre aquesta aplicació de demostració", + :author => "Aquesta aplicació de demostració ha estat escrita per {{mail_1}}.", + :feedback => "No dubtis a enviar-me qualsevol comentari. Visita també {{blog_href}}, on regularment escric sobre Rails i altres coses.", + :licence => "Aquesta aplicació de demostració i tot el seu contingut es troben sota la llicència {{licence_href}}. Si volguessis usar-la d'una manera no permesa per la llicència si us plau posa't en contacte amb mi per demanar-me permís." + }, + :active_record => { + :too_lazy => "Cap exemple per aquí perquè sóc massa gandul com per posar-me a pensar en atributs per a demostrar tots els missatges d'error possibles.", + :easy_to_understand => "Tanmateix, és molt senzill d'entendre." + }, + :date_formats => { + :rails_standards_work => "Els formats estàndards de Rails (Date::DATE_FORMATS) segueixen funcionant:" + }, + :date_helper => { + :date_time_title => "Distància dates/temps", + :forms_title => "Formularis" + }, + :index => { + :others => "altres", + :introduction => "Darrerament {{sven_blog}} i {{sven_github}} han treballat de valent per a fer més fàcil la internacionalització i traducció d'aplicacions Rails.", + :story_so_far => "Aquesta aplicació serveix per a demostrar com s'usen les funcionalitats que s'han implementat fins ara per a localitzar grans parts de la teva aplicació Rails." + }, + :number_helper => { + :note_one => "Nota: number_to_phone no ha estat encara traduïda i és possible que no ho arribi a estar mai — si més no en el core. Estigues a l'aguait de nous plugins per a internacionalització i localització com ara la nova versió de {{globalize}}, doncs possiblement suportin aquesta mena de coses.", + :note_two => "Altra nota: number_to_currency, number_to_percentage i number_to_human_size fan anar number_with_precision internament i number_with_precision a la seva vegada usa number_with_delimiter internament." + }, + :setup => { + :freezing_edge_and_adding => "Congelant edge i instal·lant el plugin localized_dates", + :you_need_to_be_on_edge => "Per tal d'usar les noves funcionalitats i18n cal que estiguis a edge:", + :date_time_formats => "Per a formats de dates i hores cal instal·lar a més a més el plugin {{localized_dates_link}}:", + :config_locale => "Configurar la llengua", + :best_place => "El millor lloc on posar les diferents traduccions en la meva opinió és config/locales. El plugin localized_dates hi copiarà arxius corresponents a en-US i de-AT. Els pots modificar i estendre, així com afegir altres fitxers per a suportar altres llengües.", + :locale => "Aquesta és la configuració pel Català que aquesta aplicació fa servir:", + :defaults => "Cal també que configuris la llengua per defecte a config/environment.rb o un inicialitzador.", + :locale_structure_title => "Unes paraules sobre l'estructura del fitxer de configuració", + :locale_structure_number => "Potser t'has adonat que dins :number hem definit :format i :currency. En general les configuracions segueixen una jerarquia. És a dir, les quantitats amb moneda són nombres, els percentatges també són nombres, etc. :currency pot redefinir el :format heredat (en el nostre cas canviem :precision a 2 en comptes de 3) o estendre'l (hi hem afegit dues opcions més, :unit i :format).", + :locale_structure_date_time => "El mateix passa amb dates i hores: Si cal, :datetime i :time_with_zone poden usar-se per a configurar formats espcífics, en comptes de fer anar el de :time. No obstant això, normalment :time ja t'estarà bé." + }, + :time_formats => { + :rails_standards_work => "Els formats estàndards de Rails (Time::DATE_FORMATS) segueixen funcionant:" + } + } + } +} \ No newline at end of file -- 1.5.4.1