New Upstream Snapshot - ruby-rails-i18n

Ready changes

Summary

Merged new upstream version: 7.0.6+git20230119.1.4339524 (was: 7.0.5+git20220912.1.fae03d3).

Resulting package

Built on 2023-01-20T07:46 (took 3m23s)

The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:

apt install -t fresh-snapshots ruby-rails-i18n

Diff

diff --git a/.rspec b/.rspec
new file mode 100644
index 0000000..cf6add7
--- /dev/null
+++ b/.rspec
@@ -0,0 +1 @@
+--colour
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 701b312..d6db438 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,70 @@
 ## unreleased
 
-- Remove eager loading of translations during boot phase (this is now done by Rails).
+- Transform to decimal to select pluralization rule #1065
+- Update following locales:
+  - Japanese (ja): Add `in` and `round_mode` keys #1059
+  - English (en-ZA): ZAR currency format #1066
+  - Afrikaan (af): ZAR currency format #1066
+
+## 7.0.6 (2022-11-08)
+
+- Add option to choose which modules (locales, pluralization, transliteration,
+  ordinals) are enabled #1019
+- Add following locales:
+  - Dzongkha (dz) #1052
+  - Sardinian (sc) #1030
+  - Swedish (sv-FI): Finland’s native Swedish-speakers #1055
+- Update following locales:
+  - Bengali (bn): Fix date and spelling issues #1031
+  - Chinese (zh-HK, zh-TW, zh-YUE, zh-CN):
+    - Simplify pluralization #1032 #1033 #1036
+    - Standardize punctuation #997
+  - English (en, en-CY, en-IE, en-TT, en-US, en-ZA):
+    - Add pluralization #1021
+    - Add `in` and `round_mode` keys #1042
+  - French (fr, fr-CA, fr-CH, fr-CA):
+    - Change an abreviation for March month in abbr_month_names #1002
+    - Add `in` and `round_mode` keys #1046
+  - Galician (gl): Add missing accent on `incluído` #961
+  - German (de-AT, de-CH, de-DE, de):
+    - Add transliteration rule for `ẞ` #1025
+    - Add `eb` and `pb` storage units #1043
+    - Add `round_mode` key #1044
+  - Greek (el-CY): Add pluralization #1022
+  - Japanese (ja): Simplify pluralization #1038
+  - Korean (ko):
+    - Language improvements #989
+    - Simplify pluralization #1037
+  - Latvian (lv): Add multiple missing translations #966
+  - Spanish (es, es-419, es-AR, es-CL, es-CO, es-CR, es-ES, es-MX, es-NI, es-PA,
+    es-PE, es-US, es-VE): Add `round_mode` key #1045
+  - Swedish (sv-SE): Adjust precision and add some missing keys #1047
+  - Vietnamese (vi):
+    - Update translation for taken #1009
+    - Simplify pluralization #1035
+- Removed pluralizations rules that do not have locale files: ak, am, bh, bm,
+  bo, br, by, cy, dz, ff, ga, gd, guw, gv, ig, ii, iu, jv, kab, kde, kea, ksh,
+  kw, lag, ln, mo, mt, my, naq, nso, root, sah, se, ses, sg, sh, shi, sma, smi,
+  smj, smn, sms, ti, to, tzm, wa, yo, zh #1017
+- Change instances of the `one` pluralization key to use `%{count}` interpolation #993
+
+## 7.0.5 (2022-07-03)
+
+- No changes.
+
+## 7.0.4 (2022-07-03)
+
+- Add following locales:
+  - Western Frisian (fy) #985
+  - Kazakh (kk) #945
+- Update following locales:
+  - Slovak (sk): Fixed missing message #994
+  - French (fr): Revert remainder of NBSP characters #996
+  - French (fr): Use no-padded date format #991
+  - Arabic (ar): fix errors.messages.greater_than typo #998
+  - South slavic pluralizers #987
+- Update update.rb to fetch active_model locale #1000
+- Remove eager loading of translations during boot phase (this is now done by Rails). #983
 
 ## 7.0.3 (2022-03-01)
 
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..964d9f2
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,8 @@
+# Use the official Ruby runtime as the parent image
+FROM ruby:2.7.5
+
+WORKDIR /gem
+COPY . /gem
+RUN bundle install
+
+CMD bundle exec rake spec
diff --git a/Gemfile b/Gemfile
new file mode 100644
index 0000000..1291498
--- /dev/null
+++ b/Gemfile
@@ -0,0 +1,2 @@
+source "https://rubygems.org"
+gemspec
\ No newline at end of file
diff --git a/Gemfile.lock b/Gemfile.lock
new file mode 100644
index 0000000..4cd7361
--- /dev/null
+++ b/Gemfile.lock
@@ -0,0 +1,116 @@
+PATH
+  remote: .
+  specs:
+    rails-i18n (7.0.6)
+      i18n (>= 0.7, < 2)
+      railties (>= 6.0.0, < 8)
+
+GEM
+  remote: https://rubygems.org/
+  specs:
+    actionpack (7.0.3.1)
+      actionview (= 7.0.3.1)
+      activesupport (= 7.0.3.1)
+      rack (~> 2.0, >= 2.2.0)
+      rack-test (>= 0.6.3)
+      rails-dom-testing (~> 2.0)
+      rails-html-sanitizer (~> 1.0, >= 1.2.0)
+    actionview (7.0.3.1)
+      activesupport (= 7.0.3.1)
+      builder (~> 3.1)
+      erubi (~> 1.4)
+      rails-dom-testing (~> 2.0)
+      rails-html-sanitizer (~> 1.1, >= 1.2.0)
+    activesupport (7.0.3.1)
+      concurrent-ruby (~> 1.0, >= 1.0.2)
+      i18n (>= 1.6, < 2)
+      minitest (>= 5.1)
+      tzinfo (~> 2.0)
+    ast (2.4.2)
+    builder (3.2.4)
+    concurrent-ruby (1.1.10)
+    crass (1.0.6)
+    diff-lcs (1.5.0)
+    erubi (1.11.0)
+    highline (2.0.3)
+    i18n (1.12.0)
+      concurrent-ruby (~> 1.0)
+    i18n-spec (0.6.0)
+      iso
+    i18n-tasks (0.9.37)
+      activesupport (>= 4.0.2)
+      ast (>= 2.1.0)
+      erubi
+      highline (>= 2.0.0)
+      i18n
+      parser (>= 2.2.3.0)
+      rails-i18n
+      rainbow (>= 2.2.2, < 4.0)
+      terminal-table (>= 1.5.1)
+    iso (0.4.0)
+      i18n
+    loofah (2.18.0)
+      crass (~> 1.0.2)
+      nokogiri (>= 1.5.9)
+    method_source (1.0.0)
+    mini_portile2 (2.8.0)
+    minitest (5.16.3)
+    nokogiri (1.13.8)
+      mini_portile2 (~> 2.8.0)
+      racc (~> 1.4)
+    parser (3.1.2.1)
+      ast (~> 2.4.1)
+    racc (1.6.0)
+    rack (2.2.4)
+    rack-test (2.0.2)
+      rack (>= 1.3)
+    rails-dom-testing (2.0.3)
+      activesupport (>= 4.2.0)
+      nokogiri (>= 1.6)
+    rails-html-sanitizer (1.4.3)
+      loofah (~> 2.3)
+    railties (7.0.3.1)
+      actionpack (= 7.0.3.1)
+      activesupport (= 7.0.3.1)
+      method_source
+      rake (>= 12.2)
+      thor (~> 1.0)
+      zeitwerk (~> 2.5)
+    rainbow (3.1.1)
+    rake (13.0.6)
+    rspec-core (3.9.3)
+      rspec-support (~> 3.9.3)
+    rspec-expectations (3.9.4)
+      diff-lcs (>= 1.2.0, < 2.0)
+      rspec-support (~> 3.9.0)
+    rspec-mocks (3.9.1)
+      diff-lcs (>= 1.2.0, < 2.0)
+      rspec-support (~> 3.9.0)
+    rspec-rails (3.9.1)
+      actionpack (>= 3.0)
+      activesupport (>= 3.0)
+      railties (>= 3.0)
+      rspec-core (~> 3.9.0)
+      rspec-expectations (~> 3.9.0)
+      rspec-mocks (~> 3.9.0)
+      rspec-support (~> 3.9.0)
+    rspec-support (3.9.4)
+    terminal-table (3.0.2)
+      unicode-display_width (>= 1.1.1, < 3)
+    thor (1.2.1)
+    tzinfo (2.0.5)
+      concurrent-ruby (~> 1.0)
+    unicode-display_width (2.2.0)
+    zeitwerk (2.6.0)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  i18n-spec (~> 0.6.0)
+  i18n-tasks (~> 0.9.37)
+  rails-i18n!
+  rspec-rails (~> 3.7)
+
+BUNDLED WITH
+   2.3.7
diff --git a/README.md b/README.md
index 9a5b4dd..dd1e740 100644
--- a/README.md
+++ b/README.md
@@ -35,6 +35,31 @@ Note that your Ruby on Rails version must be 3.0 or higher in order to install t
 
 ## Configuration
 
+### Enabled modules
+
+By default, all `rails-i18n` modules (locales, pluralization, transliteration, ordinals) are enabled.
+
+If you would like to only enable specific modules, you can do so in your Rails configuration:
+
+```ruby
+# to enable only pluralization rules, but disable all other features
+config.rails_i18n.enabled_modules = [:pluralization]
+
+# to enable pluralization and ordinals
+config.rails_i18n.enabled_modules = [:pluralization, :ordinals]
+```
+
+The possible module names:
+
+* `:locale`
+* `:ordinals`
+* `:pluralization`
+* `:transliteration`
+
+Setting `enabled_modules` will restrict the gem's loaded features to only the specific types.
+
+### Available locales
+
 `rails-i18n` gem initially loads all available locale files, pluralization and transliteration rules. This default behaviour can be changed. If you specify in `config/environments/*` the locales which have to be loaded via `I18n.available_locales` option:
 
 ``` ruby
@@ -61,21 +86,32 @@ Locale data whose structure is compatible with Rails 2.3 are available on the se
 
 ## Available Locales
 
-Available locales:
+**Available locales:**
+
+af, ar, az, be, bg, bn, bs, ca, cs, csb, da, de, de-AT, de-CH, de-DE, dsb, dz, el, el-CY, en, en-AU, en-CA, en-CY, en-GB, en-IE, en-IN, en-NZ, en-TT, en-US, en-ZA, eo, es, es-419, es-AR, es-CL, es-CO, es-CR, es-EC, es-ES, es-MX, es-NI, es-PA, es-PE, es-US, es-VE, et, eu, fa, fi, fr, fr-CA, fr-CH, fr-FR, fur, fy, gl, gsw-CH, he, hi, hi-IN, hr, hsb, hu, id, is, it, it-CH, ja, ka, kk, km, kn, ko, lb, lo, lt, lv, mg, mk, ml, mn, mr-IN, ms, nb, ne, nl, nn, oc, or, pa, pap-AW, pap-CW, pl, pt, pt-BR, rm, ro, ru, sc, scr, sk, sl, sq, sr, st, sv, sv-FI, sv-SE, sw, ta, te, th, tl, tr, tt, ug, uk, ur, uz, vi, wo, zh-CN, zh-HK, zh-TW, zh-YUE
+
+**Complete locales:**
+
+da, de, de-AT, de-CH, de-DE, en-US, es, es-419, es-AR, es-CL, es-CO, es-CR, es-EC, es-ES, es-MX, es-NI, es-PA, es-PE, es-US, es-VE, et, fa, fr, fr-CA, fr-CH, fr-FR, fy, id, it, ja, ka, ml, nb, nl, nn, pt, pt-BR, sv, sv-SE, tr, zh-CN, zh-HK, zh-TW, zh-YUE, uk
+
+**Locales with missing pluralization rules**
+
+af, csb, dsb, fur, gsw-CH, lb, rm, scr, sq, te, tt, ug, uz
+
+**Removed locales:**
+
+cy
+
+The cy locale was removed in commit 84f6c6b9b7a3e50df2b1fb1ccf7add329f7eab4f since unfortunately we could not find a Welsh speaker to support it.
+We would welcome contributions to add it back to the project.
+The locale is mostly complete for the missing translations please refer to [#1006](https://github.com/svenfuchs/rails-i18n/issues/1006)
+
+**Removed pluralizations:**
 
-> af, ar, az, be, bg, bn, bs, ca, cs, cy, da, de, de-AT, de-CH, de-DE, el, el-CY,
-> en, en-AU, en-CA, en-GB, en-IE, en-IN, en-NZ, en-US, en-ZA, en-CY, en-TT, eo, es,
-> es-419, es-AR, es-CL, es-CO, es-CR, es-EC, es-ES, es-MX, es-NI, es-PA, es-PE, es-US, es-VE,
-> et, eu, fa, fi, fr, fr-CA, fr-CH, fr-FR, fy, gl, he, hi, hi-IN, hr, hu, id, is, it,
-> it-CH, ja, ka, km, kn, ko, lb, lo, lt, lv, mk, ml, mn, mr-IN, ms, nb, ne, nl, nn, oc, or,
-> pa, pl, pt, pt-BR, rm, ro, ru, sk, sl, sq, sr, st, sw, ta, te, th, tl, tr, tt, ug,
-> ur, uz, vi, wo, zh-CN, zh-HK, zh-TW, zh-YUE
+ak, am, bh, bm, bo, br, by, cy, dz, ff, ga, gd, guw, gv, ig, ii, iu, jv, kab, kde, kea, ksh, kw, lag, ln, mo, mt, my, naq, nso, root, sah, se, ses, sg, sh, shi, sma, smi, smj, smn, sms, ti, to, tzm, wa, yo, zh
 
-Complete locales:
+The above pluralization rules were removed because they did not have corresponding locale files.
 
-> af, da, de, de-AT, de-CH, de-DE, en-US, es, es-419, es-AR, es-CL, es-CO, es-CR, es-EC,
-> es-ES, es-MX, es-NI, es-PA, es-PE, es-US, es-VE, et, fa, fr, fr-CA, fr-CH, fr-FR, fy, id, it, ja, ka, ml, nb,
-> nl, nn, pt, pt-BR, sv, sv-SE, tr, zh-CN, zh-HK, zh-TW, zh-YUE, uk
 
 Currently, most locales are incomplete. Typically they lack the following keys:
 
diff --git a/Rakefile b/Rakefile
new file mode 100644
index 0000000..893e483
--- /dev/null
+++ b/Rakefile
@@ -0,0 +1,33 @@
+require 'rake'
+require 'rake/testtask'
+require 'rbconfig'
+require 'yaml'
+
+task :test => 'test:all'
+
+namespace :test do
+  desc 'Check formality of all locale files.'
+  task :all do
+    ruby = File.join(*RbConfig::CONFIG.values_at('bindir', 'RUBY_INSTALL_NAME'))
+    system(ruby, File.dirname(__FILE__) + '/rails/test/structure.rb')
+  end
+end
+
+require 'rspec/core'
+require 'rspec/core/rake_task'
+RSpec::Core::RakeTask.new(:spec) do |spec|
+  spec.pattern = FileList['spec/**/*_spec.rb']
+end
+
+RSpec::Core::RakeTask.new("spec:unit") do |spec|
+  spec.pattern = 'spec/unit/**/*_spec.rb'
+end
+
+RSpec::Core::RakeTask.new(:rcov) do |spec|
+  spec.pattern = 'spec/**/*_spec.rb'
+  spec.rcov = true
+end
+
+require 'i18n-spec/tasks' # needs to be loaded after rspec
+
+task :default => :spec
diff --git a/bin/autospec b/bin/autospec
new file mode 100755
index 0000000..64dcb9c
--- /dev/null
+++ b/bin/autospec
@@ -0,0 +1,16 @@
+#!/usr/bin/env ruby
+#
+# This file was generated by Bundler.
+#
+# The application 'autospec' is installed as part of a gem, and
+# this file is here to facilitate running it.
+#
+
+require 'pathname'
+ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
+  Pathname.new(__FILE__).realpath)
+
+require 'rubygems'
+require 'bundler/setup'
+
+load Gem.bin_path('rspec-core', 'autospec')
diff --git a/bin/bundler b/bin/bundler
new file mode 100755
index 0000000..72c62ec
--- /dev/null
+++ b/bin/bundler
@@ -0,0 +1,16 @@
+#!/usr/bin/env ruby
+#
+# This file was generated by Bundler.
+#
+# The application 'bundler' is installed as part of a gem, and
+# this file is here to facilitate running it.
+#
+
+require 'pathname'
+ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
+  Pathname.new(__FILE__).realpath)
+
+require 'rubygems'
+require 'bundler/setup'
+
+load Gem.bin_path('bundler', 'bundler')
diff --git a/bin/cdiff b/bin/cdiff
new file mode 100755
index 0000000..066279d
--- /dev/null
+++ b/bin/cdiff
@@ -0,0 +1,16 @@
+#!/usr/bin/env ruby
+#
+# This file was generated by Bundler.
+#
+# The application 'cdiff' is installed as part of a gem, and
+# this file is here to facilitate running it.
+#
+
+require 'pathname'
+ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
+  Pathname.new(__FILE__).realpath)
+
+require 'rubygems'
+require 'bundler/setup'
+
+load Gem.bin_path('term-ansicolor', 'cdiff')
diff --git a/bin/colortab b/bin/colortab
new file mode 100755
index 0000000..195df76
--- /dev/null
+++ b/bin/colortab
@@ -0,0 +1,16 @@
+#!/usr/bin/env ruby
+#
+# This file was generated by Bundler.
+#
+# The application 'colortab' is installed as part of a gem, and
+# this file is here to facilitate running it.
+#
+
+require 'pathname'
+ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
+  Pathname.new(__FILE__).realpath)
+
+require 'rubygems'
+require 'bundler/setup'
+
+load Gem.bin_path('term-ansicolor', 'colortab')
diff --git a/bin/decolor b/bin/decolor
new file mode 100755
index 0000000..214e8d1
--- /dev/null
+++ b/bin/decolor
@@ -0,0 +1,16 @@
+#!/usr/bin/env ruby
+#
+# This file was generated by Bundler.
+#
+# The application 'decolor' is installed as part of a gem, and
+# this file is here to facilitate running it.
+#
+
+require 'pathname'
+ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
+  Pathname.new(__FILE__).realpath)
+
+require 'rubygems'
+require 'bundler/setup'
+
+load Gem.bin_path('term-ansicolor', 'decolor')
diff --git a/bin/erubis b/bin/erubis
new file mode 100755
index 0000000..2c7348b
--- /dev/null
+++ b/bin/erubis
@@ -0,0 +1,16 @@
+#!/usr/bin/env ruby
+#
+# This file was generated by Bundler.
+#
+# The application 'erubis' is installed as part of a gem, and
+# this file is here to facilitate running it.
+#
+
+require 'pathname'
+ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
+  Pathname.new(__FILE__).realpath)
+
+require 'rubygems'
+require 'bundler/setup'
+
+load Gem.bin_path('erubis', 'erubis')
diff --git a/bin/htmldiff b/bin/htmldiff
new file mode 100755
index 0000000..c70e238
--- /dev/null
+++ b/bin/htmldiff
@@ -0,0 +1,16 @@
+#!/usr/bin/env ruby
+#
+# This file was generated by Bundler.
+#
+# The application 'htmldiff' is installed as part of a gem, and
+# this file is here to facilitate running it.
+#
+
+require 'pathname'
+ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
+  Pathname.new(__FILE__).realpath)
+
+require 'rubygems'
+require 'bundler/setup'
+
+load Gem.bin_path('diff-lcs', 'htmldiff')
diff --git a/bin/i18n-tasks b/bin/i18n-tasks
new file mode 100755
index 0000000..f4f2b2a
--- /dev/null
+++ b/bin/i18n-tasks
@@ -0,0 +1,16 @@
+#!/usr/bin/env ruby
+#
+# This file was generated by Bundler.
+#
+# The application 'i18n-tasks' is installed as part of a gem, and
+# this file is here to facilitate running it.
+#
+
+require 'pathname'
+ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
+  Pathname.new(__FILE__).realpath)
+
+require 'rubygems'
+require 'bundler/setup'
+
+load Gem.bin_path('i18n-tasks', 'i18n-tasks')
diff --git a/bin/ldiff b/bin/ldiff
new file mode 100755
index 0000000..8e3524a
--- /dev/null
+++ b/bin/ldiff
@@ -0,0 +1,16 @@
+#!/usr/bin/env ruby
+#
+# This file was generated by Bundler.
+#
+# The application 'ldiff' is installed as part of a gem, and
+# this file is here to facilitate running it.
+#
+
+require 'pathname'
+ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
+  Pathname.new(__FILE__).realpath)
+
+require 'rubygems'
+require 'bundler/setup'
+
+load Gem.bin_path('diff-lcs', 'ldiff')
diff --git a/bin/rackup b/bin/rackup
new file mode 100755
index 0000000..8cc9953
--- /dev/null
+++ b/bin/rackup
@@ -0,0 +1,16 @@
+#!/usr/bin/env ruby
+#
+# This file was generated by Bundler.
+#
+# The application 'rackup' is installed as part of a gem, and
+# this file is here to facilitate running it.
+#
+
+require 'pathname'
+ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
+  Pathname.new(__FILE__).realpath)
+
+require 'rubygems'
+require 'bundler/setup'
+
+load Gem.bin_path('rack', 'rackup')
diff --git a/bin/rails b/bin/rails
new file mode 100755
index 0000000..657440d
--- /dev/null
+++ b/bin/rails
@@ -0,0 +1,16 @@
+#!/usr/bin/env ruby
+#
+# This file was generated by Bundler.
+#
+# The application 'rails' is installed as part of a gem, and
+# this file is here to facilitate running it.
+#
+
+require 'pathname'
+ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
+  Pathname.new(__FILE__).realpath)
+
+require 'rubygems'
+require 'bundler/setup'
+
+load Gem.bin_path('railties', 'rails')
diff --git a/bin/rake b/bin/rake
new file mode 100755
index 0000000..26c7a2d
--- /dev/null
+++ b/bin/rake
@@ -0,0 +1,16 @@
+#!/usr/bin/env ruby
+#
+# This file was generated by Bundler.
+#
+# The application 'rake' is installed as part of a gem, and
+# this file is here to facilitate running it.
+#
+
+require 'pathname'
+ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
+  Pathname.new(__FILE__).realpath)
+
+require 'rubygems'
+require 'bundler/setup'
+
+load Gem.bin_path('rake', 'rake')
diff --git a/bin/rspec b/bin/rspec
new file mode 100755
index 0000000..0c86b5c
--- /dev/null
+++ b/bin/rspec
@@ -0,0 +1,16 @@
+#!/usr/bin/env ruby
+#
+# This file was generated by Bundler.
+#
+# The application 'rspec' is installed as part of a gem, and
+# this file is here to facilitate running it.
+#
+
+require 'pathname'
+ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
+  Pathname.new(__FILE__).realpath)
+
+require 'rubygems'
+require 'bundler/setup'
+
+load Gem.bin_path('rspec-core', 'rspec')
diff --git a/bin/spork b/bin/spork
new file mode 100755
index 0000000..a127260
--- /dev/null
+++ b/bin/spork
@@ -0,0 +1,16 @@
+#!/usr/bin/env ruby
+#
+# This file was generated by Bundler.
+#
+# The application 'spork' is installed as part of a gem, and
+# this file is here to facilitate running it.
+#
+
+require 'pathname'
+ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
+  Pathname.new(__FILE__).realpath)
+
+require 'rubygems'
+require 'bundler/setup'
+
+load Gem.bin_path('spork', 'spork')
diff --git a/bin/sprockets b/bin/sprockets
new file mode 100755
index 0000000..09a1ad1
--- /dev/null
+++ b/bin/sprockets
@@ -0,0 +1,16 @@
+#!/usr/bin/env ruby
+#
+# This file was generated by Bundler.
+#
+# The application 'sprockets' is installed as part of a gem, and
+# this file is here to facilitate running it.
+#
+
+require 'pathname'
+ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
+  Pathname.new(__FILE__).realpath)
+
+require 'rubygems'
+require 'bundler/setup'
+
+load Gem.bin_path('sprockets', 'sprockets')
diff --git a/bin/term_display b/bin/term_display
new file mode 100755
index 0000000..d65c316
--- /dev/null
+++ b/bin/term_display
@@ -0,0 +1,16 @@
+#!/usr/bin/env ruby
+#
+# This file was generated by Bundler.
+#
+# The application 'term_display' is installed as part of a gem, and
+# this file is here to facilitate running it.
+#
+
+require 'pathname'
+ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
+  Pathname.new(__FILE__).realpath)
+
+require 'rubygems'
+require 'bundler/setup'
+
+load Gem.bin_path('term-ansicolor', 'term_display')
diff --git a/bin/term_mandel b/bin/term_mandel
new file mode 100755
index 0000000..c7dd35e
--- /dev/null
+++ b/bin/term_mandel
@@ -0,0 +1,16 @@
+#!/usr/bin/env ruby
+#
+# This file was generated by Bundler.
+#
+# The application 'term_mandel' is installed as part of a gem, and
+# this file is here to facilitate running it.
+#
+
+require 'pathname'
+ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
+  Pathname.new(__FILE__).realpath)
+
+require 'rubygems'
+require 'bundler/setup'
+
+load Gem.bin_path('term-ansicolor', 'term_mandel')
diff --git a/bin/thor b/bin/thor
new file mode 100755
index 0000000..8421e00
--- /dev/null
+++ b/bin/thor
@@ -0,0 +1,16 @@
+#!/usr/bin/env ruby
+#
+# This file was generated by Bundler.
+#
+# The application 'thor' is installed as part of a gem, and
+# this file is here to facilitate running it.
+#
+
+require 'pathname'
+ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
+  Pathname.new(__FILE__).realpath)
+
+require 'rubygems'
+require 'bundler/setup'
+
+load Gem.bin_path('thor', 'thor')
diff --git a/bin/tilt b/bin/tilt
new file mode 100755
index 0000000..09fe73e
--- /dev/null
+++ b/bin/tilt
@@ -0,0 +1,16 @@
+#!/usr/bin/env ruby
+#
+# This file was generated by Bundler.
+#
+# The application 'tilt' is installed as part of a gem, and
+# this file is here to facilitate running it.
+#
+
+require 'pathname'
+ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
+  Pathname.new(__FILE__).realpath)
+
+require 'rubygems'
+require 'bundler/setup'
+
+load Gem.bin_path('tilt', 'tilt')
diff --git a/bin/tt b/bin/tt
new file mode 100755
index 0000000..6e3920b
--- /dev/null
+++ b/bin/tt
@@ -0,0 +1,16 @@
+#!/usr/bin/env ruby
+#
+# This file was generated by Bundler.
+#
+# The application 'tt' is installed as part of a gem, and
+# this file is here to facilitate running it.
+#
+
+require 'pathname'
+ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
+  Pathname.new(__FILE__).realpath)
+
+require 'rubygems'
+require 'bundler/setup'
+
+load Gem.bin_path('treetop', 'tt')
diff --git a/config/i18n-tasks.yml b/config/i18n-tasks.yml
new file mode 100644
index 0000000..bf9eeef
--- /dev/null
+++ b/config/i18n-tasks.yml
@@ -0,0 +1,32 @@
+base_locale: en
+
+data:
+  adapter: file_system
+  read:
+    - "rails/locale/%{locale}.yml"
+  write:
+    - "rails/locale/%{locale}.yml"
+
+search:
+  paths: ['lib/']
+
+ignore_missing:
+  - 'number.{precision, format, :.format}.{strip_insignificant_zeros, significant, format, delimiter, format.delimiter}'
+  - 'number.human.decimal_units.units.unit'
+  - 'time.{pm,am}'
+
+ignore_eq_base:
+  all:
+    - 'number.*'
+    - 'time.{pm,am,formats.*}'
+    - 'date.{order,formats.*}'
+    - '{activerecord, activemodel}.errors.format'
+    - errors.format
+    - support.array.words_connector
+
+  'fr,fr-CA,fr-CH':
+    - 'datetime.prompts.minute'
+    - 'datetime.distance_in_words.x_minutes.{one,other}'
+
+  'en-AU,en-CA,en-GB,en-IE,en-IN,en-NZ,en-US,en-CY,en-TT':
+    - '*'
diff --git a/debian/changelog b/debian/changelog
index 65917af..e603999 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+ruby-rails-i18n (7.0.6+git20230119.1.4339524-1) UNRELEASED; urgency=low
+
+  * New upstream snapshot.
+  * New upstream snapshot.
+
+ -- Debian Janitor <janitor@jelmer.uk>  Fri, 20 Jan 2023 07:44:53 -0000
+
 ruby-rails-i18n (7.0.5-1) unstable; urgency=medium
 
   * Team upload
diff --git a/lib/rails_i18n.rb b/lib/rails_i18n.rb
index d274e45..42365c0 100644
--- a/lib/rails_i18n.rb
+++ b/lib/rails_i18n.rb
@@ -1 +1,11 @@
+module RailsI18n
+  def self.enabled_modules
+    @enabled_modules ||= Set.new
+  end
+
+  def self.enabled_modules=(other)
+    @enabled_modules = Set.new(other)
+  end
+end
+
 require 'rails_i18n/railtie'
diff --git a/lib/rails_i18n/common_pluralizations/east_slavic.rb b/lib/rails_i18n/common_pluralizations/east_slavic.rb
index 730d8a3..6e55090 100644
--- a/lib/rails_i18n/common_pluralizations/east_slavic.rb
+++ b/lib/rails_i18n/common_pluralizations/east_slavic.rb
@@ -14,7 +14,7 @@ module RailsI18n
 
       def self.rule
         lambda do |n|
-          n ||= 0
+          n = n.to_d
           mod10 = n % 10
           mod100 = n % 100
 
diff --git a/lib/rails_i18n/common_pluralizations/one_few_other.rb b/lib/rails_i18n/common_pluralizations/one_few_other.rb
index 7b36d5b..4134327 100644
--- a/lib/rails_i18n/common_pluralizations/one_few_other.rb
+++ b/lib/rails_i18n/common_pluralizations/one_few_other.rb
@@ -6,7 +6,7 @@ module RailsI18n
 
       def self.rule
         lambda do |n|
-          n ||= 0
+          n = n.to_d
           frac = (n.to_d % 1)
 
           if frac.nonzero?
diff --git a/lib/rails_i18n/common_pluralizations/one_other.rb b/lib/rails_i18n/common_pluralizations/one_other.rb
index 6985af6..3eb4e19 100644
--- a/lib/rails_i18n/common_pluralizations/one_other.rb
+++ b/lib/rails_i18n/common_pluralizations/one_other.rb
@@ -4,7 +4,7 @@ module RailsI18n
   module Pluralization
     module OneOther
       def self.rule
-        lambda { |n| n == 1 ? :one : :other }
+        lambda { |n| n.to_d == 1 ? :one : :other }
       end
 
       def self.with_locale(locale)
@@ -16,4 +16,4 @@ module RailsI18n
       end
     end
   end
-end
\ No newline at end of file
+end
diff --git a/lib/rails_i18n/common_pluralizations/one_two_other.rb b/lib/rails_i18n/common_pluralizations/one_two_other.rb
index b1401a5..e794492 100644
--- a/lib/rails_i18n/common_pluralizations/one_two_other.rb
+++ b/lib/rails_i18n/common_pluralizations/one_two_other.rb
@@ -6,12 +6,10 @@ module RailsI18n
     module OneTwoOther
       def self.rule
         lambda do |n|
-          if n == 1
-            :one
-          elsif n == 2
-            :two
-          else
-            :other
+          case n.to_d
+          when 1 then :one
+          when 2 then :two
+          else :other
           end
         end
       end
@@ -25,4 +23,4 @@ module RailsI18n
       end
     end
   end
-end
\ No newline at end of file
+end
diff --git a/lib/rails_i18n/common_pluralizations/one_upto_two_other.rb b/lib/rails_i18n/common_pluralizations/one_upto_two_other.rb
index 78ee30d..685793f 100644
--- a/lib/rails_i18n/common_pluralizations/one_upto_two_other.rb
+++ b/lib/rails_i18n/common_pluralizations/one_upto_two_other.rb
@@ -4,7 +4,12 @@ module RailsI18n
   module Pluralization
     module OneUptoTwoOther
       def self.rule
-        lambda { |n| n && n >= 0 && n < 2 ? :one : :other }
+        lambda do |n|
+          return :other if n.nil?
+
+          n = n.to_d
+          n >= 0 && n < 2 ? :one : :other
+        end
       end
 
       def self.with_locale(locale)
@@ -16,4 +21,4 @@ module RailsI18n
       end
     end
   end
-end
\ No newline at end of file
+end
diff --git a/lib/rails_i18n/common_pluralizations/one_with_zero_other.rb b/lib/rails_i18n/common_pluralizations/one_with_zero_other.rb
index 9c51999..191146a 100644
--- a/lib/rails_i18n/common_pluralizations/one_with_zero_other.rb
+++ b/lib/rails_i18n/common_pluralizations/one_with_zero_other.rb
@@ -5,7 +5,12 @@ module RailsI18n
   module Pluralization
     module OneWithZeroOther
       def self.rule
-        lambda { |n| n == 0 || n == 1 ? :one : :other }
+        lambda do |n|
+          case n.to_d
+          when 0, 1 then :one
+          else :other
+          end
+        end
       end
 
       def self.with_locale(locale)
diff --git a/lib/rails_i18n/common_pluralizations/romanian.rb b/lib/rails_i18n/common_pluralizations/romanian.rb
index 0c1612f..d18a502 100644
--- a/lib/rails_i18n/common_pluralizations/romanian.rb
+++ b/lib/rails_i18n/common_pluralizations/romanian.rb
@@ -3,12 +3,15 @@
 module RailsI18n
   module Pluralization
     module Romanian
+      FEW = (1..19).to_a
+      private_constant :FEW
+
       def self.rule
         lambda do |n|
-          n ||= 0
+          n = n.to_d
           if n == 1
             :one
-          elsif n == 0 || (1..19).to_a.include?(n % 100)
+          elsif n == 0 || FEW.include?(n % 100)
             :few
           else
             :other
diff --git a/lib/rails_i18n/common_pluralizations/west_slavic.rb b/lib/rails_i18n/common_pluralizations/west_slavic.rb
index 91de267..b004316 100644
--- a/lib/rails_i18n/common_pluralizations/west_slavic.rb
+++ b/lib/rails_i18n/common_pluralizations/west_slavic.rb
@@ -5,6 +5,7 @@ module RailsI18n
     module WestSlavic
       def self.rule
         lambda do |n|
+          n = n.to_d
           if n == 1
             :one
           elsif [2, 3, 4].include?(n)
diff --git a/lib/rails_i18n/railtie.rb b/lib/rails_i18n/railtie.rb
index bfdc52a..589175e 100644
--- a/lib/rails_i18n/railtie.rb
+++ b/lib/rails_i18n/railtie.rb
@@ -2,14 +2,19 @@ require 'rails'
 
 module RailsI18n
   class Railtie < ::Rails::Railtie #:nodoc:
+    config.rails_i18n = RailsI18n
+
     initializer 'rails-i18n' do |app|
       RailsI18n::Railtie.instance_eval do
         pattern = pattern_from app.config.i18n.available_locales
 
-        add("rails/locale/#{pattern}.yml")
-        add("rails/pluralization/#{pattern}.rb")
-        add("rails/ordinals/#{pattern}.rb")
-        add("rails/transliteration/#{pattern}.{rb,yml}")
+        if app.config.rails_i18n.enabled_modules.empty?
+          RailsI18n.enabled_modules = Set.new([:locale, :pluralization, :ordinals, :transliteration])
+        end
+
+        RailsI18n.enabled_modules.each do |feature|
+          add("rails/#{feature}/#{pattern}.{rb,yml}")
+        end
 
         init_pluralization_module
       end
diff --git a/locales.thor b/locales.thor
new file mode 100644
index 0000000..4846146
--- /dev/null
+++ b/locales.thor
@@ -0,0 +1,163 @@
+require File.dirname(__FILE__) + '/rails/test/lib/key_structure.rb'
+require File.dirname(__FILE__) + '/rails/test/lib/normalize.rb'
+require File.dirname(__FILE__) + '/rails/test/lib/check_locales.rb'
+$LOAD_PATH.unshift(File.dirname(__FILE__) + '/lib') unless $LOAD_PATH.include?(File.dirname(__FILE__) + '/lib')
+
+class Locales < Thor
+  desc 'test_all', 'Check formality of all locale files.'
+  def test_all
+    Dir.glob(File.dirname(__FILE__) + '/rails/locale/*.{rb,yml}') do |filename|
+      if md = filename.match(/([\w\-]+)\.(rb|yml)$/)
+        locale = md[1]
+        missing_keys, broken_keys, missing_pluralizations = KeyStructure.check(locale)
+        unless missing_keys.empty?
+          puts "[#{locale}] Some keys are missing."
+        end
+        unless broken_keys.empty?
+          puts "[#{locale}] Some keys have broken data."
+        end
+        unless missing_pluralizations.empty?
+          puts "[#{locale}] Some keys have missing pluralizations."
+        end
+      end
+    end
+  end
+
+  desc 'test LOCALE', 'Check formality of a locale file.'
+  def test(locale)
+    good = true
+
+    missing_keys, broken_keys, missing_pluralizations = KeyStructure.check(locale)
+    unless missing_keys.empty?
+      puts "The following keys are missing."
+      missing_keys.each do |key|
+        puts "  " + key
+      end
+      good = false
+    end
+
+    unless broken_keys.empty?
+      puts "The following keys have broken data."
+      broken_keys.uniq.each do |key|
+        puts "  " + key
+      end
+      good = false
+    end
+
+    unless missing_pluralizations.empty?
+      puts "The following keys have missing pluralizations."
+      missing_pluralizations.uniq.each do |key|
+        puts "  " + key
+      end
+      good = false
+    end
+
+    puts "The structure is good." if good
+  end
+
+  # Sorts all the keys alphabetically
+  # Ensures that the quoting is the simplest
+  # Ensures that the line break width is respected
+  desc 'normalize LOCALE', 'Normalize locale file.'
+  def normalize(locale)
+    Dir.glob(format('%s/rails/locale/%s.{rb,yml}', File.dirname(__FILE__), locale)) do |filename|
+      h = YAML.load_file(filename)
+      File.write(filename, Normalize.deep_sort(h).to_yaml)
+    end
+  end
+
+  desc 'normalize_all', 'Normalize all locale files.'
+  def normalize_all
+    Dir.glob(format('%s/rails/locale/*.{rb,yml}', File.dirname(__FILE__))) do |filename|
+      h = YAML.load_file(filename)
+      File.write(filename, Normalize.deep_sort(h).to_yaml)
+    end
+  end
+
+  desc 'list', 'List locale names.'
+  def list
+    puts CheckLocales.list_locales.join(', ')
+  end
+
+  desc 'count_all', 'Returns the number of available locales'
+  def count_all
+    puts CheckLocales.count
+  end
+
+  desc 'complete', 'List complete locales'
+  def complete
+    puts self.complete_locales.join(', ')
+  end
+
+  desc 'complete_count', 'Returns the number of complete locales'
+  def complete_count
+    puts self.complete_locales.count
+  end
+
+  desc 'incomplete', 'List incomplete locales'
+  def incomplete
+    puts self.incomplete_locales.join(', ')
+  end
+
+  desc 'incomplete_count', 'Returns the number of incomplete locales'
+  def incomplete_count
+    puts self.incomplete_locales.count
+  end
+
+  desc 'orphan_pluralizations', 'Returns pluralizations that do not have a locale file'
+  def orphan_pluralizations
+    puts CheckLocales.orphan_pluralizations.join(', ')
+  end
+
+  desc 'orphan_locales', 'Returns locales that do not have a pluralization file'
+  def orphan_locales
+    puts CheckLocales.orphan_locales.join(', ')
+  end
+
+  desc 'en_line_count', 'the line count of en.yml'
+  def en_line_count
+    puts CheckLocales.en_line_count
+  end
+
+  desc 'check_line_count', 'Returns a list of locale files with their line count, so that we can identify anomalies'
+  def check_line_count
+    for file, count in CheckLocales.line_counts() do
+      puts "#{file}: #{count} lines"
+    end
+  end
+
+  private
+
+  desc 'complete_locales', 'List complete locales'
+  def complete_locales
+    locales = []
+    Dir.glob(File.dirname(__FILE__) + '/rails/locale/*.{rb,yml}') do |filename|
+      if md = filename.match(/([\w\-]+)\.(rb|yml)$/)
+        locale = md[1]
+        
+        missing_keys, broken_keys, missing_pluralizations = KeyStructure.check(locale)
+        if missing_keys.empty? && broken_keys.empty? && missing_pluralizations.empty?
+          locales << locale
+        end
+      end
+    end
+    return locales.sort
+  end
+
+  desc 'incomplete_locales', 'Returns an array of incomplete locales'
+  def incomplete_locales
+    locales = []
+    Dir.glob(File.dirname(__FILE__) + '/rails/locale/*.{rb,yml}') do |filename|
+      if md = filename.match(/([\w\-]+)\.(rb|yml)$/)
+        locale = md[1]
+        
+        missing_keys, broken_keys, missing_pluralizations = KeyStructure.check(locale)
+        unless missing_keys.empty? && broken_keys.empty? && missing_pluralizations.empty?
+          locales << locale
+        end
+      end
+    end
+    return locales.sort
+  end
+  
+end
diff --git a/rails-i18n.gemspec b/rails-i18n.gemspec
index b4f0116..bd0c205 100644
--- a/rails-i18n.gemspec
+++ b/rails-i18n.gemspec
@@ -1,40 +1,23 @@
-#########################################################
-# This file has been automatically generated by gem2tgz #
-#########################################################
-# -*- encoding: utf-8 -*-
-# stub: rails-i18n 7.0.5 ruby lib
-
 Gem::Specification.new do |s|
-  s.name = "rails-i18n".freeze
-  s.version = "7.0.5"
-
-  s.required_rubygems_version = Gem::Requirement.new(">= 1.8.11".freeze) if s.respond_to? :required_rubygems_version=
-  s.require_paths = ["lib".freeze]
-  s.authors = ["Rails I18n Group".freeze]
-  s.date = "2022-07-03"
-  s.description = "A set of common locale data and translations to internationalize and/or localize your Rails applications.".freeze
-  s.email = "rails-i18n@googlegroups.com".freeze
-  s.files = ["CHANGELOG.md".freeze, "MIT-LICENSE.txt".freeze, "README.md".freeze, "lib/rails-i18n.rb".freeze, "lib/rails_i18n.rb".freeze, "lib/rails_i18n/common_pluralizations/east_slavic.rb".freeze, "lib/rails_i18n/common_pluralizations/one_few_other.rb".freeze, "lib/rails_i18n/common_pluralizations/one_other.rb".freeze, "lib/rails_i18n/common_pluralizations/one_two_other.rb".freeze, "lib/rails_i18n/common_pluralizations/one_upto_two_other.rb".freeze, "lib/rails_i18n/common_pluralizations/one_with_zero_other.rb".freeze, "lib/rails_i18n/common_pluralizations/other.rb".freeze, "lib/rails_i18n/common_pluralizations/romanian.rb".freeze, "lib/rails_i18n/common_pluralizations/west_slavic.rb".freeze, "lib/rails_i18n/railtie.rb".freeze, "rails/locale/af.yml".freeze, "rails/locale/ar.yml".freeze, "rails/locale/az.yml".freeze, "rails/locale/be.yml".freeze, "rails/locale/bg.yml".freeze, "rails/locale/bn.yml".freeze, "rails/locale/bs.yml".freeze, "rails/locale/ca.yml".freeze, "rails/locale/cs.yml".freeze, "rails/locale/cy.yml".freeze, "rails/locale/da.yml".freeze, "rails/locale/de-AT.yml".freeze, "rails/locale/de-CH.yml".freeze, "rails/locale/de-DE.yml".freeze, "rails/locale/de.yml".freeze, "rails/locale/el-CY.yml".freeze, "rails/locale/el.yml".freeze, "rails/locale/en-AU.yml".freeze, "rails/locale/en-CA.yml".freeze, "rails/locale/en-CY.yml".freeze, "rails/locale/en-GB.yml".freeze, "rails/locale/en-IE.yml".freeze, "rails/locale/en-IN.yml".freeze, "rails/locale/en-NZ.yml".freeze, "rails/locale/en-TT.yml".freeze, "rails/locale/en-US.yml".freeze, "rails/locale/en-ZA.yml".freeze, "rails/locale/en.yml".freeze, "rails/locale/eo.yml".freeze, "rails/locale/es-419.yml".freeze, "rails/locale/es-AR.yml".freeze, "rails/locale/es-CL.yml".freeze, "rails/locale/es-CO.yml".freeze, "rails/locale/es-CR.yml".freeze, "rails/locale/es-EC.yml".freeze, "rails/locale/es-ES.yml".freeze, "rails/locale/es-MX.yml".freeze, "rails/locale/es-NI.yml".freeze, "rails/locale/es-PA.yml".freeze, "rails/locale/es-PE.yml".freeze, "rails/locale/es-US.yml".freeze, "rails/locale/es-VE.yml".freeze, "rails/locale/es.yml".freeze, "rails/locale/et.yml".freeze, "rails/locale/eu.yml".freeze, "rails/locale/fa.yml".freeze, "rails/locale/fi.yml".freeze, "rails/locale/fr-CA.yml".freeze, "rails/locale/fr-CH.yml".freeze, "rails/locale/fr-FR.yml".freeze, "rails/locale/fr.yml".freeze, "rails/locale/fy.yml".freeze, "rails/locale/gl.yml".freeze, "rails/locale/he.yml".freeze, "rails/locale/hi-IN.yml".freeze, "rails/locale/hi.yml".freeze, "rails/locale/hr.yml".freeze, "rails/locale/hu.yml".freeze, "rails/locale/id.yml".freeze, "rails/locale/is.yml".freeze, "rails/locale/it-CH.yml".freeze, "rails/locale/it.yml".freeze, "rails/locale/ja.yml".freeze, "rails/locale/ka.yml".freeze, "rails/locale/kk.yml".freeze, "rails/locale/km.yml".freeze, "rails/locale/kn.yml".freeze, "rails/locale/ko.yml".freeze, "rails/locale/lb.yml".freeze, "rails/locale/lo.yml".freeze, "rails/locale/lt.yml".freeze, "rails/locale/lv.yml".freeze, "rails/locale/mg.yml".freeze, "rails/locale/mk.yml".freeze, "rails/locale/ml.yml".freeze, "rails/locale/mn.yml".freeze, "rails/locale/mr-IN.yml".freeze, "rails/locale/ms.yml".freeze, "rails/locale/nb.yml".freeze, "rails/locale/ne.yml".freeze, "rails/locale/nl.yml".freeze, "rails/locale/nn.yml".freeze, "rails/locale/oc.yml".freeze, "rails/locale/or.yml".freeze, "rails/locale/pa.yml".freeze, "rails/locale/pap-AW.yml".freeze, "rails/locale/pap-CW.yml".freeze, "rails/locale/pl.yml".freeze, "rails/locale/pt-BR.yml".freeze, "rails/locale/pt.yml".freeze, "rails/locale/rm.yml".freeze, "rails/locale/ro.yml".freeze, "rails/locale/ru.yml".freeze, "rails/locale/sk.yml".freeze, "rails/locale/sl.yml".freeze, "rails/locale/sq.yml".freeze, "rails/locale/sr.yml".freeze, "rails/locale/st.yml".freeze, "rails/locale/sv-SE.yml".freeze, "rails/locale/sv.yml".freeze, "rails/locale/sw.yml".freeze, "rails/locale/ta.yml".freeze, "rails/locale/te.yml".freeze, "rails/locale/th.yml".freeze, "rails/locale/tl.yml".freeze, "rails/locale/tr.yml".freeze, "rails/locale/tt.yml".freeze, "rails/locale/ug.yml".freeze, "rails/locale/uk.yml".freeze, "rails/locale/ur.yml".freeze, "rails/locale/uz.yml".freeze, "rails/locale/vi.yml".freeze, "rails/locale/wo.yml".freeze, "rails/locale/zh-CN.yml".freeze, "rails/locale/zh-HK.yml".freeze, "rails/locale/zh-TW.yml".freeze, "rails/locale/zh-YUE.yml".freeze, "rails/ordinals/fr-CA.rb".freeze, "rails/ordinals/fr-CH.rb".freeze, "rails/ordinals/fr-FR.rb".freeze, "rails/ordinals/fr.rb".freeze, "rails/pluralization/ak.rb".freeze, "rails/pluralization/am.rb".freeze, "rails/pluralization/ar.rb".freeze, "rails/pluralization/az.rb".freeze, "rails/pluralization/be.rb".freeze, "rails/pluralization/bg.rb".freeze, "rails/pluralization/bh.rb".freeze, "rails/pluralization/bm.rb".freeze, "rails/pluralization/bn.rb".freeze, "rails/pluralization/bo.rb".freeze, "rails/pluralization/br.rb".freeze, "rails/pluralization/bs.rb".freeze, "rails/pluralization/by.rb".freeze, "rails/pluralization/ca.rb".freeze, "rails/pluralization/cs.rb".freeze, "rails/pluralization/cy.rb".freeze, "rails/pluralization/da.rb".freeze, "rails/pluralization/de-AT.rb".freeze, "rails/pluralization/de-CH.rb".freeze, "rails/pluralization/de-DE.rb".freeze, "rails/pluralization/de.rb".freeze, "rails/pluralization/dz.rb".freeze, "rails/pluralization/el.rb".freeze, "rails/pluralization/en-AU.rb".freeze, "rails/pluralization/en-CA.rb".freeze, "rails/pluralization/en-GB.rb".freeze, "rails/pluralization/en-IN.rb".freeze, "rails/pluralization/en-NZ.rb".freeze, "rails/pluralization/en.rb".freeze, "rails/pluralization/eo.rb".freeze, "rails/pluralization/es-419.rb".freeze, "rails/pluralization/es-AR.rb".freeze, "rails/pluralization/es-CL.rb".freeze, "rails/pluralization/es-CO.rb".freeze, "rails/pluralization/es-CR.rb".freeze, "rails/pluralization/es-EC.rb".freeze, "rails/pluralization/es-ES.rb".freeze, "rails/pluralization/es-MX.rb".freeze, "rails/pluralization/es-NI.rb".freeze, "rails/pluralization/es-PA.rb".freeze, "rails/pluralization/es-PE.rb".freeze, "rails/pluralization/es-US.rb".freeze, "rails/pluralization/es-VE.rb".freeze, "rails/pluralization/es.rb".freeze, "rails/pluralization/et.rb".freeze, "rails/pluralization/eu.rb".freeze, "rails/pluralization/fa.rb".freeze, "rails/pluralization/ff.rb".freeze, "rails/pluralization/fi.rb".freeze, "rails/pluralization/fr-CA.rb".freeze, "rails/pluralization/fr-CH.rb".freeze, "rails/pluralization/fr-FR.rb".freeze, "rails/pluralization/fr.rb".freeze, "rails/pluralization/fy.rb".freeze, "rails/pluralization/ga.rb".freeze, "rails/pluralization/gd.rb".freeze, "rails/pluralization/gl.rb".freeze, "rails/pluralization/guw.rb".freeze, "rails/pluralization/gv.rb".freeze, "rails/pluralization/he.rb".freeze, "rails/pluralization/hi-IN.rb".freeze, "rails/pluralization/hi.rb".freeze, "rails/pluralization/hr.rb".freeze, "rails/pluralization/hsb.rb".freeze, "rails/pluralization/hu.rb".freeze, "rails/pluralization/id.rb".freeze, "rails/pluralization/ig.rb".freeze, "rails/pluralization/ii.rb".freeze, "rails/pluralization/is.rb".freeze, "rails/pluralization/it-CH.rb".freeze, "rails/pluralization/it.rb".freeze, "rails/pluralization/iu.rb".freeze, "rails/pluralization/ja.rb".freeze, "rails/pluralization/jv.rb".freeze, "rails/pluralization/ka.rb".freeze, "rails/pluralization/kab.rb".freeze, "rails/pluralization/kde.rb".freeze, "rails/pluralization/kea.rb".freeze, "rails/pluralization/kk.rb".freeze, "rails/pluralization/km.rb".freeze, "rails/pluralization/kn.rb".freeze, "rails/pluralization/ko.rb".freeze, "rails/pluralization/ksh.rb".freeze, "rails/pluralization/kw.rb".freeze, "rails/pluralization/lag.rb".freeze, "rails/pluralization/ln.rb".freeze, "rails/pluralization/lo.rb".freeze, "rails/pluralization/lt.rb".freeze, "rails/pluralization/lv.rb".freeze, "rails/pluralization/mg.rb".freeze, "rails/pluralization/mk.rb".freeze, "rails/pluralization/ml.rb".freeze, "rails/pluralization/mn.rb".freeze, "rails/pluralization/mo.rb".freeze, "rails/pluralization/mr-IN.rb".freeze, "rails/pluralization/ms.rb".freeze, "rails/pluralization/mt.rb".freeze, "rails/pluralization/my.rb".freeze, "rails/pluralization/naq.rb".freeze, "rails/pluralization/nb.rb".freeze, "rails/pluralization/ne.rb".freeze, "rails/pluralization/nl.rb".freeze, "rails/pluralization/nn.rb".freeze, "rails/pluralization/nso.rb".freeze, "rails/pluralization/oc.rb".freeze, "rails/pluralization/or.rb".freeze, "rails/pluralization/pa.rb".freeze, "rails/pluralization/pap-AW.rb".freeze, "rails/pluralization/pap-CW.rb".freeze, "rails/pluralization/pl.rb".freeze, "rails/pluralization/pt-BR.rb".freeze, "rails/pluralization/pt.rb".freeze, "rails/pluralization/ro.rb".freeze, "rails/pluralization/root.rb".freeze, "rails/pluralization/ru.rb".freeze, "rails/pluralization/sah.rb".freeze, "rails/pluralization/se.rb".freeze, "rails/pluralization/ses.rb".freeze, "rails/pluralization/sg.rb".freeze, "rails/pluralization/sh.rb".freeze, "rails/pluralization/shi.rb".freeze, "rails/pluralization/sk.rb".freeze, "rails/pluralization/sl.rb".freeze, "rails/pluralization/sma.rb".freeze, "rails/pluralization/smi.rb".freeze, "rails/pluralization/smj.rb".freeze, "rails/pluralization/smn.rb".freeze, "rails/pluralization/sms.rb".freeze, "rails/pluralization/sr.rb".freeze, "rails/pluralization/st.rb".freeze, "rails/pluralization/sv-SE.rb".freeze, "rails/pluralization/sv.rb".freeze, "rails/pluralization/sw.rb".freeze, "rails/pluralization/ta.rb".freeze, "rails/pluralization/th.rb".freeze, "rails/pluralization/ti.rb".freeze, "rails/pluralization/tl.rb".freeze, "rails/pluralization/to.rb".freeze, "rails/pluralization/tr.rb".freeze, "rails/pluralization/tzm.rb".freeze, "rails/pluralization/uk.rb".freeze, "rails/pluralization/ur.rb".freeze, "rails/pluralization/vi.rb".freeze, "rails/pluralization/wa.rb".freeze, "rails/pluralization/wo.rb".freeze, "rails/pluralization/yo.rb".freeze, "rails/pluralization/zh-CN.rb".freeze, "rails/pluralization/zh-HK.rb".freeze, "rails/pluralization/zh-TW.rb".freeze, "rails/pluralization/zh-YUE.rb".freeze, "rails/pluralization/zh.rb".freeze, "rails/transliteration/az.yml".freeze, "rails/transliteration/bg.yml".freeze, "rails/transliteration/ca.yml".freeze, "rails/transliteration/da.yml".freeze, "rails/transliteration/de.yml".freeze, "rails/transliteration/el.yml".freeze, "rails/transliteration/es.yml".freeze, "rails/transliteration/fa.yml".freeze, "rails/transliteration/fr.yml".freeze, "rails/transliteration/hu.yml".freeze, "rails/transliteration/ka.yml".freeze, "rails/transliteration/oc.yml".freeze, "rails/transliteration/pl.yml".freeze, "rails/transliteration/pt.yml".freeze, "rails/transliteration/ro.yml".freeze, "rails/transliteration/ru.rb".freeze, "rails/transliteration/uk.rb".freeze, "rails/transliteration/vi.yml".freeze]
-  s.homepage = "https://github.com/svenfuchs/rails-i18n".freeze
-  s.licenses = ["MIT".freeze]
-  s.rubygems_version = "3.2.5".freeze
-  s.summary = "Common locale data and translations for Rails i18n.".freeze
+  s.name         = "rails-i18n"
+  s.version      = '7.0.6'
+  s.authors      = ["Rails I18n Group"]
+  s.email        = "rails-i18n@googlegroups.com"
+  s.homepage     = "https://github.com/svenfuchs/rails-i18n"
+  s.summary      = "Common locale data and translations for Rails i18n."
+  s.description  = "A set of common locale data and translations to internationalize and/or localize your Rails applications."
+  s.license      = 'MIT'
 
-  if s.respond_to? :specification_version then
-    s.specification_version = 4
-  end
+  s.files        = Dir.glob("lib/**/*") + Dir.glob("rails/locale/*") + Dir.glob("rails/ordinals/*") +
+                   Dir.glob("rails/pluralization/*") + Dir.glob("rails/transliteration/*") +
+                   %w(README.md CHANGELOG.md MIT-LICENSE.txt)
+  s.platform     = Gem::Platform::RUBY
+  s.require_path = 'lib'
+  s.required_rubygems_version = '>= 1.8.11'
 
-  if s.respond_to? :add_runtime_dependency then
-    s.add_runtime_dependency(%q<i18n>.freeze, [">= 0.7", "< 2"])
-    s.add_development_dependency(%q<i18n-spec>.freeze, ["~> 0.6.0"])
-    s.add_development_dependency(%q<i18n-tasks>.freeze, ["~> 0.9.37"])
-    s.add_runtime_dependency(%q<railties>.freeze, [">= 6.0.0", "< 8"])
-    s.add_development_dependency(%q<rspec-rails>.freeze, ["~> 3.7"])
-  else
-    s.add_dependency(%q<i18n>.freeze, [">= 0.7", "< 2"])
-    s.add_dependency(%q<i18n-spec>.freeze, ["~> 0.6.0"])
-    s.add_dependency(%q<i18n-tasks>.freeze, ["~> 0.9.37"])
-    s.add_dependency(%q<railties>.freeze, [">= 6.0.0", "< 8"])
-    s.add_dependency(%q<rspec-rails>.freeze, ["~> 3.7"])
-  end
+  s.add_runtime_dependency('i18n', '>= 0.7', '< 2')
+  s.add_runtime_dependency('railties', '>= 6.0.0', '< 8')
+  s.add_development_dependency "rspec-rails", "~> 3.7"
+  s.add_development_dependency "i18n-spec", "~> 0.6.0"
+  s.add_development_dependency 'i18n-tasks', '~> 0.9.37'
 end
diff --git a/rails/locale/af.yml b/rails/locale/af.yml
index 6c8024c..6529b9a 100644
--- a/rails/locale/af.yml
+++ b/rails/locale/af.yml
@@ -63,41 +63,41 @@ af:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: ongeveer 1 uur
+        one: ongeveer %{count} uur
         other: ongeveer %{count} ure
       about_x_months:
-        one: ongeveer 1 maand
+        one: ongeveer %{count} maand
         other: ongeveer %{count} maande
       about_x_years:
-        one: ongeveer 1 jaar
+        one: ongeveer %{count} jaar
         other: ongeveer %{count} jaar
       almost_x_years:
-        one: sowat 1 jaar
+        one: sowat %{count} jaar
         other: sowat %{count} jaar
       half_a_minute: halfminuut
       less_than_x_seconds:
-        one: minder as 1 sekonde
+        one: minder as %{count} sekonde
         other: minder as %{count} sekondes
       less_than_x_minutes:
-        one: minder as 1 minuut
+        one: minder as %{count} minuut
         other: minder as %{count} minute
       over_x_years:
-        one: meer as 1 jaar
+        one: meer as %{count} jaar
         other: meer as %{count} jaar
       x_seconds:
-        one: 1 sekonde
+        one: "%{count} sekonde"
         other: "%{count} sekondes"
       x_minutes:
-        one: 1 minuut
+        one: "%{count} minuut"
         other: "%{count} minute"
       x_days:
-        one: 1 dag
+        one: "%{count} dag"
         other: "%{count} days"
       x_months:
-        one: 1 maand
+        one: "%{count} maand"
         other: "%{count} maande"
       x_years:
-        one: 1 jaar
+        one: "%{count} jaar"
         other: "%{count} jare"
     prompts:
       second: Sekondes
@@ -131,18 +131,18 @@ af:
       required: moet bestaan
       taken: is reeds geneem
       too_long:
-        one: is te lank (maksimum is 1 karakter)
+        one: is te lank (maksimum is %{count} karakter)
         other: is te lank (maksimum is %{count} karakters)
       too_short:
-        one: is te kort (minimum is 1 karakter)
+        one: is te kort (minimum is %{count} karakter)
         other: is te kort (minimum is %{count} karakters)
       wrong_length:
-        one: is die verkeerde lengte (moet 1 karakter wees)
+        one: is die verkeerde lengte (moet %{count} karakter wees)
         other: is die verkeerde lengte (moet %{count} karakters wees)
     template:
       body: 'There were problems with the following fields:'
       header:
-        one: 1 fout het verhoed dat hierdie %{model} gestoor kon word
+        one: "%{count} fout het verhoed dat hierdie %{model} gestoor kon word"
         other: "%{count} foute het verhoed dat hierdie %{model} gestoor kon word"
   helpers:
     select:
@@ -154,10 +154,10 @@ af:
   number:
     currency:
       format:
-        delimiter: ","
-        format: "%u%n"
+        delimiter: " "
+        format: "%u %n"
         precision: 2
-        separator: "."
+        separator: ","
         significant: false
         strip_insignificant_zeros: false
         unit: R
diff --git a/rails/locale/az.yml b/rails/locale/az.yml
index d620569..b9cccff 100644
--- a/rails/locale/az.yml
+++ b/rails/locale/az.yml
@@ -63,38 +63,38 @@ az:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: təxminən 1 saat
+        one: təxminən %{count} saat
         other: təxminən %{count} saat
       about_x_months:
-        one: təxminən 1 ay
+        one: təxminən %{count} ay
         other: təxminən %{count} ay
       about_x_years:
-        one: təxminən 1 il
+        one: təxminən %{count} il
         other: təxminən %{count} il
       almost_x_years:
-        one: təqribən 1 il
+        one: təqribən %{count} il
         other: təqribən %{count} il
       half_a_minute: yarım dəqiqə
       less_than_x_seconds:
-        one: 1 saniyədən az
+        one: "%{count} saniyədən az"
         other: "%{count} saniyədən az"
       less_than_x_minutes:
-        one: 1 dəqiqədən az
+        one: "%{count} dəqiqədən az"
         other: "%{count} dəqiqədən az"
       over_x_years:
-        one: 1 ildən çox
+        one: "%{count} ildən çox"
         other: "%{count} ildən çox"
       x_seconds:
-        one: 1 saniyə
+        one: "%{count} saniyə"
         other: "%{count} saniyə"
       x_minutes:
-        one: 1 dəqiqə
+        one: "%{count} dəqiqə"
         other: "%{count} dəqiqə"
       x_days:
-        one: 1 gün
+        one: "%{count} gün"
         other: "%{count} gün"
       x_months:
-        one: 1 ay
+        one: "%{count} ay"
         other: "%{count} ay"
     prompts:
       second: Saniyə
@@ -133,7 +133,7 @@ az:
     template:
       body: 'Aşağıdaki səhvlər üzə çıxdı:'
       header:
-        one: "%{model} saxlanmadı: 1 səhv"
+        one: "%{model} saxlanmadı: %{count} səhv"
         other: "%{model} saxlanmadı: %{count} səhv"
   helpers:
     select:
diff --git a/rails/locale/bg.yml b/rails/locale/bg.yml
index 5a502fe..efbb243 100644
--- a/rails/locale/bg.yml
+++ b/rails/locale/bg.yml
@@ -60,38 +60,38 @@ bg:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: около 1 час
+        one: около %{count} час
         other: около %{count} часа
       about_x_months:
-        one: около 1 месец
+        one: около %{count} месец
         other: около %{count} месеца
       about_x_years:
-        one: около 1 година
+        one: около %{count} година
         other: около %{count} години
       almost_x_years:
-        one: почти 1 година
+        one: почти %{count} година
         other: почти %{count} години
       half_a_minute: половин минута
       less_than_x_seconds:
-        one: по-малко от 1 секунда
+        one: по-малко от %{count} секунда
         other: по-малко от %{count} секунди
       less_than_x_minutes:
-        one: по-малко от 1 минута
+        one: по-малко от %{count} минута
         other: по-малко от %{count} минути
       over_x_years:
-        one: над 1 година
+        one: над %{count} година
         other: над %{count} години
       x_seconds:
-        one: 1 секунда
+        one: "%{count} секунда"
         other: "%{count} секунди"
       x_minutes:
-        one: 1 минута
+        one: "%{count} минута"
         other: "%{count} минути"
       x_days:
-        one: 1 ден
+        one: "%{count} ден"
         other: "%{count} дни"
       x_months:
-        one: 1 месец
+        one: "%{count} месец"
         other: "%{count} месеца"
     prompts:
       second: Секунда
@@ -126,7 +126,7 @@ bg:
     template:
       body: 'Възникнаха проблеми със следните полета:'
       header:
-        one: "%{model}: записът е неуспешен заради 1 грешка"
+        one: "%{model}: записът е неуспешен заради %{count} грешка"
         other: "%{model}: записът е неуспешен заради %{count} грешки"
   helpers:
     select:
diff --git a/rails/locale/bn.yml b/rails/locale/bn.yml
index 772ee90..3db2906 100644
--- a/rails/locale/bn.yml
+++ b/rails/locale/bn.yml
@@ -18,7 +18,7 @@ bn:
     - মে
     - জুন
     - জুলাই
-    - অগাস্ট
+    - আগস্ট
     - সেপ্টেম্বর
     - অক্টোবর
     - নভেম্বর
@@ -33,8 +33,8 @@ bn:
     - শনিবার
     formats:
       default: "%e/%m/%Y"
-      long: "%e de %B de %Y"
-      short: "%e de %b"
+      long: "%e %B %Y"
+      short: "%e %b"
     month_names:
     - 
     - জানুয়ারি
@@ -44,7 +44,7 @@ bn:
     - মে
     - জুন
     - জুলাই
-    - অগাস্ট
+    - আগস্ট
     - সেপ্টেম্বর
     - অক্টোবর
     - নভেম্বর
@@ -56,17 +56,17 @@ bn:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: প্রায় ১ ঘন্টা
-        other: প্রায় %{count} ঘন্টা
+        one: প্রায় ১ ঘণ্টা
+        other: প্রায় %{count} ঘণ্টা
       about_x_months:
         one: প্রায় ১ মাস
         other: প্রায় %{count} মাস
       about_x_years:
         one: প্রায় ১ বছর
         other: প্রায় %{count} বছর
-      half_a_minute: অর্ধেক মিনিট
+      half_a_minute: অর্ধ মিনিট
       less_than_x_seconds:
-        one: '১ সেকেন্ডর কম '
+        one: '১ সেকেন্ডর কম'
         other: "%{count} সেকেন্ডের কম"
       less_than_x_minutes:
         one: ১ মিনিটের কম
@@ -89,7 +89,7 @@ bn:
     prompts:
       second: সেকেন্ড
       minute: মিনিট
-      hour: ঘন্টা
+      hour: ঘণ্টা
       day: দিন
       month: মাস
       year: বছর
@@ -103,9 +103,9 @@ bn:
       equal_to: "%{count} এর সঙ্গে সমান হতে হবে"
       even: জোড় হতে হবে
       exclusion: রিসার্ভ করা আছে
-      greater_than: "%{count} থেকে বড়ো হতে হবে"
-      greater_than_or_equal_to: "%{count} থেকে বড়ো অথবা তার সমান হতে হবে"
-      inclusion: লিস্টে অন্তর্ভুক্ত নয়
+      greater_than: "%{count} থেকে বড় হতে হবে"
+      greater_than_or_equal_to: "%{count} থেকে বড় অথবা তার সমান হতে হবে"
+      inclusion: তালিকায় অন্তর্ভুক্ত নয়
       invalid: সঠিক নয়
       less_than: "%{count} থেকে ছোটো হতে হবে"
       less_than_or_equal_to: "%{count} থেকে ছোটো অথবা তার সমান হতে হবে"
@@ -118,8 +118,8 @@ bn:
     template:
       body: 'এই ফিল্ডগুলোতে কিছু সমস্যা দেখা দিয়েছে:'
       header:
-        one: ১ টি ত্রুটির কারনে %{model} সংরক্ষন করা সম্ভব হয়নি
-        other: "%{count} টি ত্রুটির কারনে %{model} সংরক্ষন করা সম্ভব হয়নি"
+        one: ১টি ত্রুটির কারণে %{model} সংরক্ষণ করা সম্ভব হয়নি
+        other: "%{count}টি ত্রুটির কারণে %{model} সংরক্ষণ করা সম্ভব হয়নি"
   number:
     currency:
       format:
@@ -150,8 +150,8 @@ bn:
         format: "%n %u"
         units:
           byte:
-            one: Byte
-            other: Bytes
+            one: বাইট
+            other: বাইট
           gb: GB
           kb: KB
           mb: MB
@@ -170,7 +170,7 @@ bn:
   time:
     am: am
     formats:
-      default: "%A, %e de %B de %Y %H:%M:%S %z"
-      long: "%e de %B de %Y %H:%M"
-      short: "%e de %b %H:%M"
+      default: "%A, %e %B %Y %H:%M:%S %z"
+      long: "%e %B %Y %H:%M"
+      short: "%e %b %H:%M"
     pm: pm
diff --git a/rails/locale/bs.yml b/rails/locale/bs.yml
index c5f1252..1922b07 100644
--- a/rails/locale/bs.yml
+++ b/rails/locale/bs.yml
@@ -78,7 +78,7 @@ bs:
         many: oko %{count} godina
         other: oko %{count} godina
       almost_x_years:
-        one: skoro 1 godina
+        one: skoro %{count} godina
         few: skoro %{count} godine
         many: skoro %{count} godina
         other: skoro %{count} godina
@@ -99,22 +99,22 @@ bs:
         many: preko %{count} godina
         other: preko %{count} godina
       x_seconds:
-        one: 1 sekund
+        one: "%{count} sekund"
         few: "%{count} sekunde"
         many: "%{count} sekundi"
         other: "%{count} sekundi"
       x_minutes:
-        one: 1 minut
+        one: "%{count} minut"
         few: "%{count} minute"
         many: "%{count} minuta"
         other: "%{count} minuta"
       x_days:
-        one: 1 dan
+        one: "%{count} dan"
         few: "%{count} dana"
         many: "%{count} dana"
         other: "%{count} dana"
       x_months:
-        one: 1 mjesec
+        one: "%{count} mjesec"
         few: "%{count} mjeseca"
         many: "%{count} mjeseci"
         other: "%{count} mjeseci"
@@ -153,7 +153,7 @@ bs:
     template:
       body: 'Desili su se problemi sa sljedećim poljima:'
       header:
-        one: 1 greška je spriječila da se ovaj %{model} spremi
+        one: "%{count} greška je spriječila da se ovaj %{model} spremi"
         few: "%{count} greške su spriječile da se ovaj %{model} spremi"
         many: "%{count} grešaka je spriječilo da se ovaj %{model} spremi"
         other: "%{count} grešaka je spriječilo da se ovaj %{model} spremi"
diff --git a/rails/locale/ca.yml b/rails/locale/ca.yml
index 30fe77c..c72c13e 100644
--- a/rails/locale/ca.yml
+++ b/rails/locale/ca.yml
@@ -6,7 +6,7 @@ ca:
         record_invalid: 'La validació ha fallat: %{errors}'
         restrict_dependent_destroy:
           has_one: No es pot eliminar el registre perquè existeix un %{record} dependent
-          has_many: No es pot eliminar el registre perquè existeixen %{record} dependents 
+          has_many: No es pot eliminar el registre perquè existeixen %{record} dependents
   date:
     abbr_day_names:
     - Dg
@@ -63,41 +63,41 @@ ca:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: aproximadament 1 hora
+        one: aproximadament %{count} hora
         other: aproximadament %{count} hores
       about_x_months:
-        one: aproximadament 1 mes
+        one: aproximadament %{count} mes
         other: aproximadament %{count} mesos
       about_x_years:
-        one: aproximadament 1 any
+        one: aproximadament %{count} any
         other: aproximadament %{count} anys
       almost_x_years:
-        one: quasi 1 any
+        one: quasi %{count} any
         other: quasi %{count} anys
       half_a_minute: mig minut
       less_than_x_seconds:
-        one: menys d'1 segon
+        one: menys d'%{count} segon
         other: menys de %{count} segons
       less_than_x_minutes:
-        one: menys d'1 minut
+        one: menys d'%{count} minut
         other: menys de %{count} minuts
       over_x_years:
-        one: més d'1 any
+        one: més d'%{count} any
         other: més de %{count} anys
       x_seconds:
-        one: 1 segon
+        one: "%{count} segon"
         other: "%{count} segons"
       x_minutes:
-        one: 1 minut
+        one: "%{count} minut"
         other: "%{count} minuts"
       x_days:
-        one: 1 dia
+        one: "%{count} dia"
         other: "%{count} dies"
       x_months:
-        one: 1 mes
+        one: "%{count} mes"
         other: "%{count} mesos"
       x_years:
-        one: 1 year
+        one: "%{count} year"
         other: "%{count} years"
     prompts:
       second: segon
@@ -131,18 +131,18 @@ ca:
       required: ha d'existir
       taken: no està disponible
       too_long:
-        one: és massa llarg (1 caràcter màxim)
+        one: és massa llarg (%{count} caràcter màxim)
         other: és massa llarg (%{count} caràcters màxim)
       too_short:
-        one: és massa curt (1 caràcter mínim)
+        one: és massa curt (%{count} caràcter mínim)
         other: és massa curt (%{count} caràcters mínim)
       wrong_length:
-        one: no té la longitud correcta (1 caràcter exactament)
+        one: no té la longitud correcta (%{count} caràcter exactament)
         other: no té la longitud correcta (%{count} caràcters exactament)
     template:
       body: 'Hi ha hagut problemes amb els següents camps:'
       header:
-        one: No s'ha pogut desar aquest/a %{model} perquè hi ha 1 error
+        one: No s'ha pogut desar aquest/a %{model} perquè hi ha %{count} error
         other: No s'ha pogut desar aquest/a %{model} perquè hi ha hagut %{count} errors
   helpers:
     select:
diff --git a/rails/locale/cy.yml b/rails/locale/cy.yml
deleted file mode 100644
index c16d9bc..0000000
--- a/rails/locale/cy.yml
+++ /dev/null
@@ -1,246 +0,0 @@
----
-cy:
-  activerecord:
-    errors:
-      messages:
-        record_invalid: 'Gwirio wedi methu: %{errors}'
-  date:
-    abbr_day_names:
-    - Sul
-    - Llun
-    - Maw
-    - Mer
-    - Iau
-    - Gwe
-    - Sad
-    abbr_month_names:
-    - 
-    - Ion
-    - Chw
-    - Maw
-    - Ebr
-    - Mai
-    - Meh
-    - Gor
-    - Awst
-    - Med
-    - Hyd
-    - Tach
-    - Rha
-    day_names:
-    - Dydd Sul
-    - Dydd Llun
-    - Dydd Mawrth
-    - Dydd Mercher
-    - Dydd Iau
-    - Dydd Gwener
-    - Dydd Sadwrn
-    formats:
-      default: "%d-%m-%Y"
-      long: "%d %B %Y"
-      short: "%d %b"
-    month_names:
-    - 
-    - Ionawr
-    - Chwefror
-    - Mawrth
-    - Ebrill
-    - Mai
-    - Mehefin
-    - Gorffennaf
-    - Awst
-    - Medi
-    - Hydref
-    - Tachwedd
-    - Rhagfyr
-    order:
-    - :year
-    - :month
-    - :day
-  datetime:
-    distance_in_words:
-      about_x_hours:
-        zero: tua %{count} awr
-        one: tuag awr
-        two: tua %{count} awr
-        few: tua %{count} awr
-        many: tua %{count} awr
-        other: tua %{count} awr
-      about_x_months:
-        zero: tua %{count} mis
-        one: tua mis
-        two: tua %{count} mis
-        few: tua %{count} mis
-        many: tua %{count} mis
-        other: tua %{count} mis
-      about_x_years:
-        zero: tua %{count} blynedd
-        one: tua blwyddyn
-        two: tua %{count} blynedd
-        few: tua %{count} blynedd
-        many: tua %{count} blynedd
-        other: tua %{count} blynedd
-      almost_x_years:
-        zero: bron yn %{count} blynedd
-        one: bron yn flwyddyn
-        two: bron yn %{count} blynedd
-        few: bron yn %{count} blynedd
-        many: bron yn %{count} blynedd
-        other: bron yn %{count} blynedd
-      half_a_minute: hanner munud
-      less_than_x_seconds:
-        zero: llai na %{count} eiliad
-        one: llai nag eiliad
-        two: llai na %{count} eiliad
-        few: llai na %{count} eiliad
-        many: llai na %{count} eiliad
-        other: llai na %{count} eiliad
-      less_than_x_minutes:
-        zero: llai na %{count} munud
-        one: llai na munud
-        two: llai na %{count} munud
-        few: llai na %{count} munud
-        many: llai na %{count} munud
-        other: llai na %{count} munud
-      over_x_years:
-        zero: dros %{count} blynedd
-        one: dros flwyddyn
-        two: dros %{count} blynedd
-        few: dros %{count} blynedd
-        many: dros %{count} blynedd
-        other: dros %{count} blynedd
-      x_seconds:
-        zero: "%{count} o eiliadau"
-        one: 1 eiliad
-        two: "%{count} o eiliadau"
-        few: "%{count} o eiliadau"
-        many: "%{count} o eiliadau"
-        other: "%{count} o eiliadau"
-      x_minutes:
-        zero: "%{count} o funudau"
-        one: 1 munud
-        two: "%{count} o funudau"
-        few: "%{count} o funudau"
-        many: "%{count} o funudau"
-        other: "%{count} o funudau"
-      x_days:
-        zero: "%{count} diwrnod"
-        one: 1 diwrnod
-        two: "%{count} diwrnod"
-        few: "%{count} diwrnod"
-        many: "%{count} diwrnod"
-        other: "%{count} diwrnod"
-      x_months:
-        zero: "%{count} mis"
-        one: 1 mis
-        two: "%{count} mis"
-        few: "%{count} mis"
-        many: "%{count} mis"
-        other: "%{count} mis"
-    prompts:
-      second: Eiliad
-      minute: Munud
-      hour: Awr
-      day: Diwrnod
-      month: Mis
-      year: Blwyddyn
-  errors:
-    format: "%{attribute} %{message}"
-    messages:
-      accepted: angen ei dderbyn
-      blank: methu bod yn wag
-      confirmation: heb fod yn gyfateb
-      empty: methu bod yn wag
-      equal_to: angen bod yn %{count}
-      even: rhaid bod yn eilrif
-      exclusion: wedi cadw
-      greater_than: angen bod yn fwy na %{count}
-      greater_than_or_equal_to: angen bod yr un maint neu fwy na %{count}
-      inclusion: heb fod yn y rhestr
-      invalid: heb fod yn nheilwng
-      less_than: angen bod yn llai na %{count}
-      less_than_or_equal_to: angen bod yr un maint neu lai na %{count}
-      not_a_number: heb fod yn rhif
-      not_an_integer: heb fod yn rhif llawn
-      odd: rhaid bod yn odrif
-      taken: wedi'i gymryd yn barod
-      too_long: yn rhy hir (cewch %{count} llythyren ar y fwyaf)
-      too_short: yn rhy fyr (rhaid am o leiaf %{count} llythyren)
-      wrong_length: gyda maint anghywir o lythrennau (dylai fod yn %{count} llythyren)
-    template:
-      body: 'Cafwyd broblemau gyda''r meysydd canlynol:'
-      header:
-        one: Atalwyd y %{model} hwn rhag ei gadw gan 1 nam
-        two: Atalwyd y %{model} hwn rhag ei gadw gan %{count} nam
-        many: Atalwyd y %{model} hwn rhag ei gadw gan %{count} nam
-        other: Atalwyd y %{model} hwn rhag ei gadw gan %{count} nam
-  helpers:
-    select:
-      prompt: Dewiswch
-    submit:
-      create: Creu %{model}
-      submit: Cadw %{model}
-      update: Diweddaru %{model}
-  number:
-    currency:
-      format:
-        delimiter: ","
-        format: "%u%n"
-        precision: 2
-        separator: "."
-        significant: false
-        strip_insignificant_zeros: false
-        unit: "£"
-    format:
-      delimiter: ","
-      precision: 3
-      separator: "."
-      significant: false
-      strip_insignificant_zeros: false
-    human:
-      decimal_units:
-        format: "%n %u"
-        units:
-          billion: Biliwn
-          million: Miliwn
-          quadrillion: Cwadriliwn
-          thousand: Mil
-          trillion: Triliwn
-          unit: ''
-      format:
-        delimiter: ''
-        precision: 3
-        significant: true
-        strip_insignificant_zeros: true
-      storage_units:
-        format: "%n %u"
-        units:
-          byte:
-            zero: Bytes
-            one: Byte
-            two: Bytes
-            few: Bytes
-            many: Bytes
-            other: Bytes
-          gb: GB
-          kb: KB
-          mb: MB
-          tb: TB
-    percentage:
-      format:
-        delimiter: ''
-    precision:
-      format:
-        delimiter: ''
-  support:
-    array:
-      last_word_connector: ", a "
-      two_words_connector: " a "
-      words_connector: ", "
-  time:
-    am: yb
-    formats:
-      default: "%a, %d %b %Y %H:%M:%S %z"
-      long: "%d %B %Y %H:%M"
-      short: "%d %b %H:%M"
-    pm: yh
diff --git a/rails/locale/da.yml b/rails/locale/da.yml
index 1e756d4..5a2e812 100644
--- a/rails/locale/da.yml
+++ b/rails/locale/da.yml
@@ -131,13 +131,13 @@ da:
       required: skal udfyldes
       taken: er allerede brugt
       too_long:
-        one: er for lang (højst 1 tegn)
+        one: er for lang (højst %{count} tegn)
         other: er for lang (højst %{count} tegn)
       too_short:
-        one: er for kort (mindst 1 tegn)
+        one: er for kort (mindst %{count} tegn)
         other: er for kort (mindst %{count} tegn)
       wrong_length:
-        one: har forkert længde (skulle være 1 tegn)
+        one: har forkert længde (skulle være %{count} tegn)
         other: har forkert længde (skulle være %{count} tegn)
     template:
       body: 'Der var problemer med følgende felter:'
diff --git a/rails/locale/de-AT.yml b/rails/locale/de-AT.yml
index f7fcddd..8db8385 100644
--- a/rails/locale/de-AT.yml
+++ b/rails/locale/de-AT.yml
@@ -129,13 +129,13 @@ de-AT:
       required: muss ausgefüllt werden
       taken: ist bereits vergeben
       too_long:
-        one: ist zu lang (mehr als 1 Zeichen)
+        one: ist zu lang (mehr als %{count} Zeichen)
         other: ist zu lang (mehr als %{count} Zeichen)
       too_short:
-        one: ist zu kurz (weniger als 1 Zeichen)
+        one: ist zu kurz (weniger als %{count} Zeichen)
         other: ist zu kurz (weniger als %{count} Zeichen)
       wrong_length:
-        one: hat die falsche Länge (muss genau 1 Zeichen haben)
+        one: hat die falsche Länge (muss genau %{count} Zeichen haben)
         other: hat die falsche Länge (muss genau %{count} Zeichen haben)
     template:
       body: 'Bitte überprüfen Sie die folgenden Felder:'
@@ -162,6 +162,7 @@ de-AT:
     format:
       delimiter: "."
       precision: 2
+      round_mode: default
       separator: ","
       significant: false
       strip_insignificant_zeros: false
@@ -194,9 +195,11 @@ de-AT:
           byte:
             one: Byte
             other: Bytes
+          eb: EB
           gb: GB
           kb: KB
           mb: MB
+          pb: PB
           tb: TB
     percentage:
       format:
diff --git a/rails/locale/de-CH.yml b/rails/locale/de-CH.yml
index cbe8125..e8d2d8f 100644
--- a/rails/locale/de-CH.yml
+++ b/rails/locale/de-CH.yml
@@ -129,13 +129,13 @@ de-CH:
       required: muss ausgefüllt werden
       taken: ist bereits vergeben
       too_long:
-        one: ist zu lang (mehr als 1 Zeichen)
+        one: ist zu lang (mehr als %{count} Zeichen)
         other: ist zu lang (mehr als %{count} Zeichen)
       too_short:
-        one: ist zu kurz (weniger als 1 Zeichen)
+        one: ist zu kurz (weniger als %{count} Zeichen)
         other: ist zu kurz (weniger als %{count} Zeichen)
       wrong_length:
-        one: hat die falsche Länge (muss genau 1 Zeichen haben)
+        one: hat die falsche Länge (muss genau %{count} Zeichen haben)
         other: hat die falsche Länge (muss genau %{count} Zeichen haben)
     template:
       body: 'Bitte überprüfen Sie die folgenden Felder:'
@@ -162,6 +162,7 @@ de-CH:
     format:
       delimiter: "'"
       precision: 2
+      round_mode: default
       separator: "."
       significant: false
       strip_insignificant_zeros: false
@@ -194,9 +195,11 @@ de-CH:
           byte:
             one: Byte
             other: Bytes
+          eb: EB
           gb: GB
           kb: KB
           mb: MB
+          pb: PB
           tb: TB
     percentage:
       format:
diff --git a/rails/locale/de-DE.yml b/rails/locale/de-DE.yml
index 5c9ba68..c083a80 100644
--- a/rails/locale/de-DE.yml
+++ b/rails/locale/de-DE.yml
@@ -129,13 +129,13 @@ de-DE:
       required: muss ausgefüllt werden
       taken: ist bereits vergeben
       too_long:
-        one: ist zu lang (mehr als 1 Zeichen)
+        one: ist zu lang (mehr als %{count} Zeichen)
         other: ist zu lang (mehr als %{count} Zeichen)
       too_short:
-        one: ist zu kurz (weniger als 1 Zeichen)
+        one: ist zu kurz (weniger als %{count} Zeichen)
         other: ist zu kurz (weniger als %{count} Zeichen)
       wrong_length:
-        one: hat die falsche Länge (muss genau 1 Zeichen haben)
+        one: hat die falsche Länge (muss genau %{count} Zeichen haben)
         other: hat die falsche Länge (muss genau %{count} Zeichen haben)
     template:
       body: 'Bitte überprüfen Sie die folgenden Felder:'
@@ -162,6 +162,7 @@ de-DE:
     format:
       delimiter: "."
       precision: 2
+      round_mode: default
       separator: ","
       significant: false
       strip_insignificant_zeros: false
@@ -194,9 +195,11 @@ de-DE:
           byte:
             one: Byte
             other: Bytes
+          eb: EB
           gb: GB
           kb: KB
           mb: MB
+          pb: PB
           tb: TB
     percentage:
       format:
diff --git a/rails/locale/de.yml b/rails/locale/de.yml
index b1161ef..0222569 100644
--- a/rails/locale/de.yml
+++ b/rails/locale/de.yml
@@ -132,13 +132,13 @@ de:
       required: muss ausgefüllt werden
       taken: ist bereits vergeben
       too_long:
-        one: ist zu lang (mehr als 1 Zeichen)
+        one: ist zu lang (mehr als %{count} Zeichen)
         other: ist zu lang (mehr als %{count} Zeichen)
       too_short:
-        one: ist zu kurz (weniger als 1 Zeichen)
+        one: ist zu kurz (weniger als %{count} Zeichen)
         other: ist zu kurz (weniger als %{count} Zeichen)
       wrong_length:
-        one: hat die falsche Länge (muss genau 1 Zeichen haben)
+        one: hat die falsche Länge (muss genau %{count} Zeichen haben)
         other: hat die falsche Länge (muss genau %{count} Zeichen haben)
     template:
       body: 'Bitte überprüfen Sie die folgenden Felder:'
@@ -165,6 +165,7 @@ de:
     format:
       delimiter: "."
       precision: 2
+      round_mode: default
       separator: ","
       significant: false
       strip_insignificant_zeros: false
@@ -197,9 +198,11 @@ de:
           byte:
             one: Byte
             other: Bytes
+          eb: EB
           gb: GB
           kb: KB
           mb: MB
+          pb: PB
           tb: TB
     percentage:
       format:
diff --git a/rails/locale/dz.yml b/rails/locale/dz.yml
new file mode 100644
index 0000000..546db4e
--- /dev/null
+++ b/rails/locale/dz.yml
@@ -0,0 +1,213 @@
+---
+dz:
+  activerecord:
+    errors:
+      messages:
+        record_invalid: 'ཆ་འཇོག་འཐུས་ཤོར་ཡི་: %{errors}'
+        restrict_dependent_destroy:
+          has_one: ཡིག་ཐོ་ %{record} བརྟེན་ཏེ་ཡོད་པ་ལས་བཏོན་གཏང་མི་བཏུབ་
+          has_many: ཡིག་ཐོ་ %{record} བརྟེན་ཏེ་ཡོད་པ་ལས་བཏོན་གཏང་མི་བཏུབ་
+  date:
+    abbr_day_names:
+    - གཟའ་ཟླཝ
+    - གཟའ་མིག་དམར
+    - གཟའ་ལྷགཔ
+    - གཟའ་ཕུརཔ
+    - གཟའ་པ་སངས
+    - གཟའ་སྤེན་པ
+    - གཟའ་ཉིམ
+    abbr_month_names:
+    -
+    - ཟླཝ་དང་པ
+    - ཟླཝ་གཉིས་པ
+    - ཟླཝ་གསུམ་པ
+    - ཟླཝ་བཞི་པ
+    - ཟླཝ་ལྔ་པ
+    - ཟླཝ་དྲུག་པ
+    - ཟླཝ་བདུན་པ
+    - ཟླཝ་བརྒྱད་པ
+    - ཟླཝ་དགུ་པ
+    - ཟླཝ་བཅུ་པ
+    - ཟླཝ་བཅུ་གཅིག་པ
+    - ཟླཝ་བཅུ་གཉིས་པ
+    day_names:
+    - གཟའ་ཟླཝ
+    - གཟའ་མིག་དམར
+    - གཟའ་ལྷག་པ
+    - གཟའ་ཕུརཔ
+    - གཟའ་པ་སངས
+    - གཟའ་སྤེན་པ
+    - གཟའ་ཉི་མ
+    formats:
+      default: "%Y-%m-%d"
+      long: "%d %B %Y"
+      short: "%d %b"
+    month_names:
+    -
+    - ཟླཝ་དང་པ
+    - ཟླཝ་གཉིས་པ
+    - ཟླཝ་གསུམ་པ
+    - ཟླཝ་བཞི་པ
+    - ཟླཝ་ལྔ་པ
+    - ཟླཝ་དྲུག་པ
+    - ཟླཝ་བདུན་པ
+    - ཟླཝ་བརྒྱད་པ
+    - ཟླཝ་དགུ་པ
+    - ཟླཝ་བཅུ་པ
+    - ཟླཝ་བཅུ་གཅིག་པ
+    - ཟླཝ་བཅུ་གཉིས་པ
+    order:
+    - :ལོ
+    - :ཟླཝ
+    - :ཉིནམ
+  datetime:
+    distance_in_words:
+      about_x_hours:
+        one: ཆུ་ཚོད་ ༡ ་དེ་ཅིག
+        other: ཆུ་ཚོད་ %{count} དེ་ཅིག
+      about_x_months:
+        one: ཟླཝ་ ༡ ་དེ་ཅིག
+        other: ཟླཝ་ %{count} དེ་ཅིག
+      about_x_years:
+        one: ལོ་ ༡ ་དེ་ཅིག
+        other: ལོ་ %{count} དེ་ཅིག
+      almost_x_years: ལོ %{count} མ་ལྷགཔ་ཅིག
+      half_a_minute: སྐར་མ་ཕྱེད་ཀ
+      less_than_x_seconds:
+        one: སྐར་ཆ་ ༡ ་ལས་ཉུངམ
+        other: སྐར་ཆ %{count} ལས་ཉུངམ
+      less_than_x_minutes:
+        one: སྐར་མ་ ༡ ་ལས་ཉུངམ
+        other: སྐར་མ %{count} ལས་ཉུངམ
+      over_x_years:
+        one: ལོ་ ༡ ་ལྷག
+        other: ལོ་%{count}ལས་ལྷག
+      x_seconds:
+        one: སྐར་ཆ་གཅིག
+        other: སྐར་ཆ %{count}
+      x_minutes:
+        one: སྐར་མ་གཅིག
+        other: སྐར་མ %{count}
+      x_days:
+        one: ཉིནམ་གཅིག
+        other: ཉིནམ %{count}
+      x_months:
+        one: ཟླཝ་གཅིག
+        other: ཟླཝ %{count}
+      x_years:
+        one: ལོ་གཅིག
+        other: ལོ %{count}
+    prompts:
+      second: སྐར་ཆ
+      minute: སྐར་མ
+      hour: ཆུ་ཚོད
+      day: ཉིནམ
+      month: ཟླཝ
+      year: ལོ
+  errors:
+    format: "%{attribute} %{message}"
+    messages:
+      accepted: ངོས་ལན་འབད་དགོ
+      blank: སྟོང་པ་མི་བཏུབ
+      confirmation: "%{attribute} དང་ཅོག་འཐོད་མིན་འདུག"
+      empty: སྟོངམ་མི་བཏུབ
+      equal_to: "%{count} དང་འདྲ་མཉམ་དགོ"
+      even: འདྲན་འདྲ་དགོ
+      exclusion: ཟུར་གསོག
+      greater_than: "%{count} ལས་སྦོམ་དགོ"
+      greater_than_or_equal_to: "%{count} ལས་མང་སུ་ཡང་ན་འདྲན་འདྲ་དགོ"
+      inclusion: ཐོ་ཡིག་གི་གྲངས་སུ་མིན་འདུག
+      invalid: ཆ་མེད་ཨིན
+      less_than: "%{count} ལས་ཉུང་སུ་ཅིག་དགོ"
+      less_than_or_equal_to: "%{count} ལས་ཉུང་སུ་ཡང་ན་འདྲན་འདྲ་དགོ"
+      model_invalid: 'ཆ་འཇོག་འཐུས་ཤོར་ཡི: %{errors}'
+      not_a_number: ཨང་གྲངས་མེན
+      not_an_integer: ཧྲིལ་གྲངས་དགོ
+      odd: ཡ་ཨང་དགོ
+      other_than: "%{count} ལས་སོ་སོ་ཅིག་དགོ"
+      present: ས་སྟོང་བཞག་དགོ
+      required: དགོ་རང་དགོ
+      taken: ཧེ་མ་ལས་འབག་ཚར་ཡི
+      too_long:
+        one: ཡིག་འབྲུ་གནམ་མེད་ས་མེད་རིངམ་ཨིན་མེ་(ཡིག་འབྲུ་མཐོ་ཚད་གཅིག་་ཨིན)
+        other: ཡིག་འབྲུ་གནམ་མེད་ས་མེད་རིངམ་ཨིན་མེ་(ཡིག་འབྲུ་མཐོ་ཚད་ %{count} ཨིན)
+      too_short:
+        one: ཡིག་འབྲུ་གནམ་མེད་ས་མེད་ཐུང་སུ་ནུག་(ཡིག་འབྲུ་ཉུང་མཐའ་གཅིག་ཨིན)
+        other: ཡིག་འབྲུ་གནམ་མེད་ས་མེད་ཐུང་སུ་ནུག་(ཡིག་འབྲུ་ཉུང་མཐའ་ %{count} ཨིན)
+      wrong_length:
+        one: ཡིག་འབྲུ་འཛུལ་ནུག་(ཡིག་འབྲུ་གཅིག་ངེས་པར་དུ་དགོ)
+        other: ཡིག་འབྲུ་འཛུལ་ནུག་(ཡིག་འབྲུ་ %{count} ངེས་པར་དུ་དགོ)
+    template:
+      body: འོག་གི་ས་ཁོངས་ཚུ་ན་བཀའ་ངལ་འདུག
+      header:
+        one: འཛོལ་བ་ཅིག་གིས་ %{model} བསྡུ་བཞག་འབད་ནི་ལུ་བཀག་རྐྱབ་ཅིག
+        other: འཛོལ་བ་ %{count} ་གིས་ %{model} འདི་བསྡུ་བཞག་འབད་ནི་ལུ་བཀག་རྐྱབ་ཅིག
+  helpers:
+    select:
+      prompt: གདམ་ཁ་རྐྱབ
+    submit:
+      create: "%{model} གསར་སྤྲིན་འབད"
+      submit: "%{model} བསྡུ་བཞག་འབད"
+      update: "%{model} དུས་མཐུན་ཁ་གསོ་འབད"
+  number:
+    currency:
+      format:
+        delimiter: ","
+        format: "%u%n"
+        precision: ༢
+        separator: "."
+        significant: false
+        strip_insignificant_zeros: false
+        unit: "$"
+    format:
+      delimiter: ","
+      precision: ༣
+      separator: "."
+      significant: false
+      strip_insignificant_zeros: false
+    human:
+      decimal_units:
+        format: "%n %u"
+        units:
+          billion: ཐེར་འབུམ
+          million: ས་ཡ
+          quadrillion: Quadrillion
+          thousand: སྟོང་ཕྲག
+          trillion: ཁྲག་ཁྲིག་ཆེན་པོ
+          unit: ''
+      format:
+        delimiter: ''
+        precision: ༣
+        significant: true
+        strip_insignificant_zeros: true
+      storage_units:
+        format: "%n %u"
+        units:
+          byte:
+            one: Byte
+            other: Bytes
+          eb: EB
+          gb: GB
+          kb: KB
+          mb: MB
+          pb: PB
+          tb: TB
+    percentage:
+      format:
+        delimiter: ''
+        format: "%n%"
+    precision:
+      format:
+        delimiter: ''
+  support:
+    array:
+      last_word_connector: ", དང "
+      two_words_connector: " དང "
+      words_connector: ", "
+  time:
+    am: དྲོ་པ་གི་ཆུ་ཚོད་་
+    formats:
+      default: "%a, %d %b %Y %H:%M:%S %z"
+      long: "%d %B %Y %H:%M"
+      short: "%d %b %H:%M"
+    pm: ཕྱི་རུ་གི་ཆུ་ཚོད་
diff --git a/rails/locale/el-CY.yml b/rails/locale/el-CY.yml
index d774752..aa3faf8 100644
--- a/rails/locale/el-CY.yml
+++ b/rails/locale/el-CY.yml
@@ -85,19 +85,19 @@ el-CY:
         one: πάνω από ένα χρόνο
         other: πάνω από %{count} χρόνια
       x_seconds:
-        one: 1 δευτερόλεπτο
+        one: "%{count} δευτερόλεπτο"
         other: "%{count} δευτερόλεπτα"
       x_minutes:
-        one: 1 λεπτό
+        one: "%{count} λεπτό"
         other: "%{count} λεπτά"
       x_days:
-        one: 1 μέρα
+        one: "%{count} μέρα"
         other: "%{count} ημέρες"
       x_months:
-        one: 1 μήνα
+        one: "%{count} μήνα"
         other: "%{count} μήνες"
       x_years:
-        one: 1 χρόνος
+        one: "%{count} χρόνος"
         other: "%{count} χρόνια"
     prompts:
       second: Δευτερόλεπτο
@@ -131,18 +131,18 @@ el-CY:
       required: πρέπει να υπάρχει
       taken: το έχουν ήδη χρησιμοποιήσει
       too_long:
-        one: είναι πολύ μεγάλο (το μέγιστο μήκος είναι 1 χαρακτήρας)
+        one: είναι πολύ μεγάλο (το μέγιστο μήκος είναι %{count} χαρακτήρας)
         other: είναι πολύ μεγάλο (το μέγιστο μήκος είναι %{count} χαρακτήρες)
       too_short:
-        one: είναι πολύ μικρό (το ελάχιστο μήκος είναι 1 χαρακτήρας)
+        one: είναι πολύ μικρό (το ελάχιστο μήκος είναι %{count} χαρακτήρας)
         other: είναι πολύ μικρό (το ελάχιστο μήκος είναι %{count} χαρακτήρες)
       wrong_length:
-        one: έχει λανθασμένο μήκος (πρέπει να είναι 1 χαρακτήρας)
+        one: έχει λανθασμένο μήκος (πρέπει να είναι %{count} χαρακτήρας)
         other: έχει λανθασμένο μήκος (πρέπει να είναι %{count} χαρακτήρες)
     template:
       body: 'Υπήρξαν προβλήματα με τα ακόλουθα πεδία:'
       header:
-        one: 1 λάθος εμπόδισε αυτό το %{model} να αποθηκευτεί.
+        one: "%{count} λάθος εμπόδισε αυτό το %{model} να αποθηκευτεί."
         other: "%{count} λάθη εμπόδισαν αυτό το %{model} να αποθηκευτεί."
   helpers:
     select:
diff --git a/rails/locale/el.yml b/rails/locale/el.yml
index 6a7ca96..448000f 100644
--- a/rails/locale/el.yml
+++ b/rails/locale/el.yml
@@ -85,19 +85,19 @@ el:
         one: πάνω από ένα χρόνο
         other: πάνω από %{count} χρόνια
       x_seconds:
-        one: 1 δευτερόλεπτο
+        one: "%{count} δευτερόλεπτο"
         other: "%{count} δευτερόλεπτα"
       x_minutes:
-        one: 1 λεπτό
+        one: "%{count} λεπτό"
         other: "%{count} λεπτά"
       x_days:
-        one: 1 μέρα
+        one: "%{count} μέρα"
         other: "%{count} ημέρες"
       x_months:
-        one: 1 μήνα
+        one: "%{count} μήνα"
         other: "%{count} μήνες"
       x_years:
-        one: 1 χρόνος
+        one: "%{count} χρόνος"
         other: "%{count} χρόνια"
     prompts:
       second: Δευτερόλεπτο
@@ -131,18 +131,18 @@ el:
       required: πρέπει να υπάρχει
       taken: το έχουν ήδη χρησιμοποιήσει
       too_long:
-        one: είναι πολύ μεγάλο (το μέγιστο μήκος είναι 1 χαρακτήρας)
+        one: είναι πολύ μεγάλο (το μέγιστο μήκος είναι %{count} χαρακτήρας)
         other: είναι πολύ μεγάλο (το μέγιστο μήκος είναι %{count} χαρακτήρες)
       too_short:
-        one: είναι πολύ μικρό (το ελάχιστο μήκος είναι 1 χαρακτήρας)
+        one: είναι πολύ μικρό (το ελάχιστο μήκος είναι %{count} χαρακτήρας)
         other: είναι πολύ μικρό (το ελάχιστο μήκος είναι %{count} χαρακτήρες)
       wrong_length:
-        one: έχει λανθασμένο μήκος (πρέπει να είναι 1 χαρακτήρας)
+        one: έχει λανθασμένο μήκος (πρέπει να είναι %{count} χαρακτήρας)
         other: έχει λανθασμένο μήκος (πρέπει να είναι %{count} χαρακτήρες)
     template:
       body: 'Υπήρξαν προβλήματα με τα ακόλουθα πεδία:'
       header:
-        one: 1 λάθος εμπόδισε αυτό το %{model} να αποθηκευτεί.
+        one: "%{count} λάθος εμπόδισε αυτό το %{model} να αποθηκευτεί."
         other: "%{count} λάθη εμπόδισαν αυτό το %{model} να αποθηκευτεί."
   helpers:
     select:
diff --git a/rails/locale/en-AU.yml b/rails/locale/en-AU.yml
index 36c92dc..0680a29 100644
--- a/rails/locale/en-AU.yml
+++ b/rails/locale/en-AU.yml
@@ -63,41 +63,41 @@ en-AU:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: about 1 hour
+        one: about %{count} hour
         other: about %{count} hours
       about_x_months:
-        one: about 1 month
+        one: about %{count} month
         other: about %{count} months
       about_x_years:
-        one: about 1 year
+        one: about %{count} year
         other: about %{count} years
       almost_x_years:
-        one: almost 1 year
+        one: almost %{count} year
         other: almost %{count} years
       half_a_minute: half a minute
       less_than_x_seconds:
-        one: less than 1 second
+        one: less than %{count} second
         other: less than %{count} seconds
       less_than_x_minutes:
         one: less than a minute
         other: less than %{count} minutes
       over_x_years:
-        one: over 1 year
+        one: over %{count} year
         other: over %{count} years
       x_seconds:
-        one: 1 second
+        one: "%{count} second"
         other: "%{count} seconds"
       x_minutes:
-        one: 1 minute
+        one: "%{count} minute"
         other: "%{count} minutes"
       x_days:
-        one: 1 day
+        one: "%{count} day"
         other: "%{count} days"
       x_months:
-        one: 1 month
+        one: "%{count} month"
         other: "%{count} months"
       x_years:
-        one: 1 year
+        one: "%{count} year"
         other: "%{count} years"
     prompts:
       second: Second
@@ -131,18 +131,18 @@ en-AU:
       required: must exist
       taken: has already been taken
       too_long:
-        one: is too long (maximum is 1 character)
+        one: is too long (maximum is %{count} character)
         other: is too long (maximum is %{count} characters)
       too_short:
-        one: is too short (minimum is 1 character)
+        one: is too short (minimum is %{count} character)
         other: is too short (minimum is %{count} characters)
       wrong_length:
-        one: is the wrong length (should be 1 character)
+        one: is the wrong length (should be %{count} character)
         other: is the wrong length (should be %{count} characters)
     template:
       body: 'There were problems with the following fields:'
       header:
-        one: 1 error prohibited this %{model} from being saved
+        one: "%{count} error prohibited this %{model} from being saved"
         other: "%{count} errors prohibited this %{model} from being saved"
   helpers:
     select:
diff --git a/rails/locale/en-CA.yml b/rails/locale/en-CA.yml
index fc7d8d6..d931cfe 100644
--- a/rails/locale/en-CA.yml
+++ b/rails/locale/en-CA.yml
@@ -63,41 +63,41 @@ en-CA:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: about 1 hour
+        one: about %{count} hour
         other: about %{count} hours
       about_x_months:
-        one: about 1 month
+        one: about %{count} month
         other: about %{count} months
       about_x_years:
-        one: about 1 year
+        one: about %{count} year
         other: about %{count} years
       almost_x_years:
-        one: almost 1 year
+        one: almost %{count} year
         other: almost %{count} years
       half_a_minute: half a minute
       less_than_x_seconds:
-        one: less than 1 second
+        one: less than %{count} second
         other: less than %{count} seconds
       less_than_x_minutes:
         one: less than a minute
         other: less than %{count} minutes
       over_x_years:
-        one: over 1 year
+        one: over %{count} year
         other: over %{count} years
       x_seconds:
-        one: 1 second
+        one: "%{count} second"
         other: "%{count} seconds"
       x_minutes:
-        one: 1 minute
+        one: "%{count} minute"
         other: "%{count} minutes"
       x_days:
-        one: 1 day
+        one: "%{count} day"
         other: "%{count} days"
       x_months:
-        one: 1 month
+        one: "%{count} month"
         other: "%{count} months"
       x_years:
-        one: 1 year
+        one: "%{count} year"
         other: "%{count} years"
     prompts:
       second: Second
@@ -131,18 +131,18 @@ en-CA:
       required: must exist
       taken: has already been taken
       too_long:
-        one: is too long (maximum is 1 character)
+        one: is too long (maximum is %{count} character)
         other: is too long (maximum is %{count} characters)
       too_short:
-        one: is too short (minimum is 1 character)
+        one: is too short (minimum is %{count} character)
         other: is too short (minimum is %{count} characters)
       wrong_length:
-        one: is the wrong length (should be 1 character)
+        one: is the wrong length (should be %{count} character)
         other: is the wrong length (should be %{count} characters)
     template:
       body: 'There were problems with the following fields:'
       header:
-        one: 1 error prohibited this %{model} from being saved
+        one: "%{count} error prohibited this %{model} from being saved"
         other: "%{count} errors prohibited this %{model} from being saved"
   helpers:
     select:
diff --git a/rails/locale/en-CY.yml b/rails/locale/en-CY.yml
index 7af6738..1ce4443 100644
--- a/rails/locale/en-CY.yml
+++ b/rails/locale/en-CY.yml
@@ -63,41 +63,41 @@ en-CY:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: about 1 hour
+        one: about %{count} hour
         other: about %{count} hours
       about_x_months:
-        one: about 1 month
+        one: about %{count} month
         other: about %{count} months
       about_x_years:
-        one: about 1 year
+        one: about %{count} year
         other: about %{count} years
       almost_x_years:
-        one: almost 1 year
+        one: almost %{count} year
         other: almost %{count} years
       half_a_minute: half a minute
       less_than_x_seconds:
-        one: less than 1 second
+        one: less than %{count} second
         other: less than %{count} seconds
       less_than_x_minutes:
         one: less than a minute
         other: less than %{count} minutes
       over_x_years:
-        one: over 1 year
+        one: over %{count} year
         other: over %{count} years
       x_seconds:
-        one: 1 second
+        one: "%{count} second"
         other: "%{count} seconds"
       x_minutes:
-        one: 1 minute
+        one: "%{count} minute"
         other: "%{count} minutes"
       x_days:
-        one: 1 day
+        one: "%{count} day"
         other: "%{count} days"
       x_months:
-        one: 1 month
+        one: "%{count} month"
         other: "%{count} months"
       x_years:
-        one: 1 year
+        one: "%{count} year"
         other: "%{count} years"
     prompts:
       second: Second
@@ -131,18 +131,18 @@ en-CY:
       required: must exist
       taken: has already been taken
       too_long:
-        one: is too long (maximum is 1 character)
+        one: is too long (maximum is %{count} character)
         other: is too long (maximum is %{count} characters)
       too_short:
-        one: is too short (minimum is 1 character)
+        one: is too short (minimum is %{count} character)
         other: is too short (minimum is %{count} characters)
       wrong_length:
-        one: is the wrong length (should be 1 character)
+        one: is the wrong length (should be %{count} character)
         other: is the wrong length (should be %{count} characters)
     template:
       body: 'There were problems with the following fields:'
       header:
-        one: 1 error prohibited this %{model} from being saved
+        one: "%{count} error prohibited this %{model} from being saved"
         other: "%{count} errors prohibited this %{model} from being saved"
   helpers:
     select:
diff --git a/rails/locale/en-GB.yml b/rails/locale/en-GB.yml
index ccf691b..f0e8598 100644
--- a/rails/locale/en-GB.yml
+++ b/rails/locale/en-GB.yml
@@ -63,41 +63,41 @@ en-GB:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: about 1 hour
+        one: about %{count} hour
         other: about %{count} hours
       about_x_months:
-        one: about 1 month
+        one: about %{count} month
         other: about %{count} months
       about_x_years:
-        one: about 1 year
+        one: about %{count} year
         other: about %{count} years
       almost_x_years:
-        one: almost 1 year
+        one: almost %{count} year
         other: almost %{count} years
       half_a_minute: half a minute
       less_than_x_seconds:
-        one: less than 1 second
+        one: less than %{count} second
         other: less than %{count} seconds
       less_than_x_minutes:
         one: less than a minute
         other: less than %{count} minutes
       over_x_years:
-        one: over 1 year
+        one: over %{count} year
         other: over %{count} years
       x_seconds:
-        one: 1 second
+        one: "%{count} second"
         other: "%{count} seconds"
       x_minutes:
-        one: 1 minute
+        one: "%{count} minute"
         other: "%{count} minutes"
       x_days:
-        one: 1 day
+        one: "%{count} day"
         other: "%{count} days"
       x_months:
-        one: 1 month
+        one: "%{count} month"
         other: "%{count} months"
       x_years:
-        one: 1 year
+        one: "%{count} year"
         other: "%{count} years"
     prompts:
       second: Second
@@ -131,18 +131,18 @@ en-GB:
       required: must exist
       taken: has already been taken
       too_long:
-        one: is too long (maximum is 1 character)
+        one: is too long (maximum is %{count} character)
         other: is too long (maximum is %{count} characters)
       too_short:
-        one: is too short (minimum is 1 character)
+        one: is too short (minimum is %{count} character)
         other: is too short (minimum is %{count} characters)
       wrong_length:
-        one: is the wrong length (should be 1 character)
+        one: is the wrong length (should be %{count} character)
         other: is the wrong length (should be %{count} characters)
     template:
       body: 'There were problems with the following fields:'
       header:
-        one: 1 error prohibited this %{model} from being saved
+        one: "%{count} error prohibited this %{model} from being saved"
         other: "%{count} errors prohibited this %{model} from being saved"
   helpers:
     select:
diff --git a/rails/locale/en-IE.yml b/rails/locale/en-IE.yml
index ddd28e7..0dfee05 100644
--- a/rails/locale/en-IE.yml
+++ b/rails/locale/en-IE.yml
@@ -63,41 +63,41 @@ en-IE:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: about 1 hour
+        one: about %{count} hour
         other: about %{count} hours
       about_x_months:
-        one: about 1 month
+        one: about %{count} month
         other: about %{count} months
       about_x_years:
-        one: about 1 year
+        one: about %{count} year
         other: about %{count} years
       almost_x_years:
-        one: almost 1 year
+        one: almost %{count} year
         other: almost %{count} years
       half_a_minute: half a minute
       less_than_x_seconds:
-        one: less than 1 second
+        one: less than %{count} second
         other: less than %{count} seconds
       less_than_x_minutes:
         one: less than a minute
         other: less than %{count} minutes
       over_x_years:
-        one: over 1 year
+        one: over %{count} year
         other: over %{count} years
       x_seconds:
-        one: 1 second
+        one: "%{count} second"
         other: "%{count} seconds"
       x_minutes:
-        one: 1 minute
+        one: "%{count} minute"
         other: "%{count} minutes"
       x_days:
-        one: 1 day
+        one: "%{count} day"
         other: "%{count} days"
       x_months:
-        one: 1 month
+        one: "%{count} month"
         other: "%{count} months"
       x_years:
-        one: 1 year
+        one: "%{count} year"
         other: "%{count} years"
     prompts:
       second: Second
@@ -131,18 +131,18 @@ en-IE:
       required: must exist
       taken: has already been taken
       too_long:
-        one: is too long (maximum is 1 character)
+        one: is too long (maximum is %{count} character)
         other: is too long (maximum is %{count} characters)
       too_short:
-        one: is too short (minimum is 1 character)
+        one: is too short (minimum is %{count} character)
         other: is too short (minimum is %{count} characters)
       wrong_length:
-        one: is the wrong length (should be 1 character)
+        one: is the wrong length (should be %{count} character)
         other: is the wrong length (should be %{count} characters)
     template:
       body: 'There were problems with the following fields:'
       header:
-        one: 1 error prohibited this %{model} from being saved
+        one: "%{count} error prohibited this %{model} from being saved"
         other: "%{count} errors prohibited this %{model} from being saved"
   helpers:
     select:
diff --git a/rails/locale/en-IN.yml b/rails/locale/en-IN.yml
index 19ba02e..b83b047 100644
--- a/rails/locale/en-IN.yml
+++ b/rails/locale/en-IN.yml
@@ -63,41 +63,41 @@ en-IN:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: about 1 hour
+        one: about %{count} hour
         other: about %{count} hours
       about_x_months:
-        one: about 1 month
+        one: about %{count} month
         other: about %{count} months
       about_x_years:
-        one: about 1 year
+        one: about %{count} year
         other: about %{count} years
       almost_x_years:
-        one: almost 1 year
+        one: almost %{count} year
         other: almost %{count} years
       half_a_minute: half a minute
       less_than_x_seconds:
-        one: less than 1 second
+        one: less than %{count} second
         other: less than %{count} seconds
       less_than_x_minutes:
         one: less than a minute
         other: less than %{count} minutes
       over_x_years:
-        one: over 1 year
+        one: over %{count} year
         other: over %{count} years
       x_seconds:
-        one: 1 second
+        one: "%{count} second"
         other: "%{count} seconds"
       x_minutes:
-        one: 1 minute
+        one: "%{count} minute"
         other: "%{count} minutes"
       x_days:
-        one: 1 day
+        one: "%{count} day"
         other: "%{count} days"
       x_months:
-        one: 1 month
+        one: "%{count} month"
         other: "%{count} months"
       x_years:
-        one: 1 year
+        one: "%{count} year"
         other: "%{count} years"
     prompts:
       second: Second
@@ -131,18 +131,18 @@ en-IN:
       required: must exist
       taken: has already been taken
       too_long:
-        one: is too long (maximum is 1 character)
+        one: is too long (maximum is %{count} character)
         other: is too long (maximum is %{count} characters)
       too_short:
-        one: is too short (minimum is 1 character)
+        one: is too short (minimum is %{count} character)
         other: is too short (minimum is %{count} characters)
       wrong_length:
-        one: is the wrong length (should be 1 character)
+        one: is the wrong length (should be %{count} character)
         other: is the wrong length (should be %{count} characters)
     template:
       body: 'There were problems with the following fields:'
       header:
-        one: 1 error prohibited this %{model} from being saved
+        one: "%{count} error prohibited this %{model} from being saved"
         other: "%{count} errors prohibited this %{model} from being saved"
   helpers:
     select:
diff --git a/rails/locale/en-NZ.yml b/rails/locale/en-NZ.yml
index 00a0c49..eb344c0 100644
--- a/rails/locale/en-NZ.yml
+++ b/rails/locale/en-NZ.yml
@@ -63,41 +63,41 @@ en-NZ:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: about 1 hour
+        one: about %{count} hour
         other: about %{count} hours
       about_x_months:
-        one: about 1 month
+        one: about %{count} month
         other: about %{count} months
       about_x_years:
-        one: about 1 year
+        one: about %{count} year
         other: about %{count} years
       almost_x_years:
-        one: almost 1 year
+        one: almost %{count} year
         other: almost %{count} years
       half_a_minute: half a minute
       less_than_x_seconds:
-        one: less than 1 second
+        one: less than %{count} second
         other: less than %{count} seconds
       less_than_x_minutes:
         one: less than a minute
         other: less than %{count} minutes
       over_x_years:
-        one: over 1 year
+        one: over %{count} year
         other: over %{count} years
       x_seconds:
-        one: 1 second
+        one: "%{count} second"
         other: "%{count} seconds"
       x_minutes:
-        one: 1 minute
+        one: "%{count} minute"
         other: "%{count} minutes"
       x_days:
-        one: 1 day
+        one: "%{count} day"
         other: "%{count} days"
       x_months:
-        one: 1 month
+        one: "%{count} month"
         other: "%{count} months"
       x_years:
-        one: 1 year
+        one: "%{count} year"
         other: "%{count} years"
     prompts:
       second: Second
@@ -131,18 +131,18 @@ en-NZ:
       required: must exist
       taken: has already been taken
       too_long:
-        one: is too long (maximum is 1 character)
+        one: is too long (maximum is %{count} character)
         other: is too long (maximum is %{count} characters)
       too_short:
-        one: is too short (minimum is 1 character)
+        one: is too short (minimum is %{count} character)
         other: is too short (minimum is %{count} characters)
       wrong_length:
-        one: is the wrong length (should be 1 character)
+        one: is the wrong length (should be %{count} character)
         other: is the wrong length (should be %{count} characters)
     template:
       body: 'There were problems with the following fields:'
       header:
-        one: 1 error prohibited this %{model} from being saved
+        one: "%{count} error prohibited this %{model} from being saved"
         other: "%{count} errors prohibited this %{model} from being saved"
   helpers:
     select:
diff --git a/rails/locale/en-TT.yml b/rails/locale/en-TT.yml
index e138a6b..097ec72 100644
--- a/rails/locale/en-TT.yml
+++ b/rails/locale/en-TT.yml
@@ -63,41 +63,41 @@ en-TT:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: about 1 hour
+        one: about %{count} hour
         other: about %{count} hours
       about_x_months:
-        one: about 1 month
+        one: about %{count} month
         other: about %{count} months
       about_x_years:
-        one: about 1 year
+        one: about %{count} year
         other: about %{count} years
       almost_x_years:
-        one: almost 1 year
+        one: almost %{count} year
         other: almost %{count} years
       half_a_minute: half a minute
       less_than_x_minutes:
         one: less than a minute
         other: less than %{count} minutes
       less_than_x_seconds:
-        one: less than 1 second
+        one: less than %{count} second
         other: less than %{count} seconds
       over_x_years:
-        one: over 1 year
+        one: over %{count} year
         other: over %{count} years
       x_days:
-        one: 1 day
+        one: "%{count} day"
         other: "%{count} days"
       x_minutes:
-        one: 1 minute
+        one: "%{count} minute"
         other: "%{count} minutes"
       x_months:
-        one: 1 month
+        one: "%{count} month"
         other: "%{count} months"
       x_years:
-        one: 1 year
+        one: "%{count} year"
         other: "%{count} years"
       x_seconds:
-        one: 1 second
+        one: "%{count} second"
         other: "%{count} seconds"
     prompts:
       day: Day
@@ -130,19 +130,19 @@ en-TT:
       required: must exist
       taken: has already been taken
       too_long:
-        one: is too long (maximum is 1 character)
+        one: is too long (maximum is %{count} character)
         other: is too long (maximum is %{count} characters)
       too_short:
-        one: is too short (minimum is 1 character)
+        one: is too short (minimum is %{count} character)
         other: is too short (minimum is %{count} characters)
       wrong_length:
-        one: is the wrong length (should be 1 character)
+        one: is the wrong length (should be %{count} character)
         other: is the wrong length (should be %{count} characters)
       other_than: must be other than %{count}
     template:
       body: 'There were problems with the following fields:'
       header:
-        one: 1 error prohibited this %{model} from being saved
+        one: "%{count} error prohibited this %{model} from being saved"
         other: "%{count} errors prohibited this %{model} from being saved"
   helpers:
     select:
diff --git a/rails/locale/en-US.yml b/rails/locale/en-US.yml
index 76e1f5a..9401ae2 100644
--- a/rails/locale/en-US.yml
+++ b/rails/locale/en-US.yml
@@ -63,41 +63,41 @@ en-US:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: about 1 hour
+        one: about %{count} hour
         other: about %{count} hours
       about_x_months:
-        one: about 1 month
+        one: about %{count} month
         other: about %{count} months
       about_x_years:
-        one: about 1 year
+        one: about %{count} year
         other: about %{count} years
       almost_x_years:
-        one: almost 1 year
+        one: almost %{count} year
         other: almost %{count} years
       half_a_minute: half a minute
       less_than_x_seconds:
-        one: less than 1 second
+        one: less than %{count} second
         other: less than %{count} seconds
       less_than_x_minutes:
         one: less than a minute
         other: less than %{count} minutes
       over_x_years:
-        one: over 1 year
+        one: over %{count} year
         other: over %{count} years
       x_seconds:
-        one: 1 second
+        one: "%{count} second"
         other: "%{count} seconds"
       x_minutes:
-        one: 1 minute
+        one: "%{count} minute"
         other: "%{count} minutes"
       x_days:
-        one: 1 day
+        one: "%{count} day"
         other: "%{count} days"
       x_months:
-        one: 1 month
+        one: "%{count} month"
         other: "%{count} months"
       x_years:
-        one: 1 year
+        one: "%{count} year"
         other: "%{count} years"
     prompts:
       second: Second
@@ -131,18 +131,18 @@ en-US:
       required: must exist
       taken: has already been taken
       too_long:
-        one: is too long (maximum is 1 character)
+        one: is too long (maximum is %{count} character)
         other: is too long (maximum is %{count} characters)
       too_short:
-        one: is too short (minimum is 1 character)
+        one: is too short (minimum is %{count} character)
         other: is too short (minimum is %{count} characters)
       wrong_length:
-        one: is the wrong length (should be 1 character)
+        one: is the wrong length (should be %{count} character)
         other: is the wrong length (should be %{count} characters)
     template:
       body: 'There were problems with the following fields:'
       header:
-        one: 1 error prohibited this %{model} from being saved
+        one: "%{count} error prohibited this %{model} from being saved"
         other: "%{count} errors prohibited this %{model} from being saved"
   helpers:
     select:
diff --git a/rails/locale/en-ZA.yml b/rails/locale/en-ZA.yml
index 655ca97..34ef050 100644
--- a/rails/locale/en-ZA.yml
+++ b/rails/locale/en-ZA.yml
@@ -63,41 +63,41 @@ en-ZA:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: about 1 hour
+        one: about %{count} hour
         other: about %{count} hours
       about_x_months:
-        one: about 1 month
+        one: about %{count} month
         other: about %{count} months
       about_x_years:
-        one: about 1 year
+        one: about %{count} year
         other: about %{count} years
       almost_x_years:
-        one: almost 1 year
+        one: almost %{count} year
         other: almost %{count} years
       half_a_minute: half a minute
       less_than_x_seconds:
-        one: less than 1 second
+        one: less than %{count} second
         other: less than %{count} seconds
       less_than_x_minutes:
         one: less than a minute
         other: less than %{count} minutes
       over_x_years:
-        one: over 1 year
+        one: over %{count} year
         other: over %{count} years
       x_seconds:
-        one: 1 second
+        one: "%{count} second"
         other: "%{count} seconds"
       x_minutes:
-        one: 1 minute
+        one: "%{count} minute"
         other: "%{count} minutes"
       x_days:
-        one: 1 day
+        one: "%{count} day"
         other: "%{count} days"
       x_months:
-        one: 1 month
+        one: "%{count} month"
         other: "%{count} months"
       x_years:
-        one: 1 year
+        one: "%{count} year"
         other: "%{count} years"
     prompts:
       second: Second
@@ -131,18 +131,18 @@ en-ZA:
       required: must exist
       taken: has already been taken
       too_long:
-        one: is too long (maximum is 1 character)
+        one: is too long (maximum is %{count} character)
         other: is too long (maximum is %{count} characters)
       too_short:
-        one: is too short (minimum is 1 character)
+        one: is too short (minimum is %{count} character)
         other: is too short (minimum is %{count} characters)
       wrong_length:
-        one: is the wrong length (should be 1 character)
+        one: is the wrong length (should be %{count} character)
         other: is the wrong length (should be %{count} characters)
     template:
       body: 'There were problems with the following fields:'
       header:
-        one: 1 error prohibited this %{model} from being saved
+        one: "%{count} error prohibited this %{model} from being saved"
         other: "%{count} errors prohibited this %{model} from being saved"
   helpers:
     select:
@@ -154,10 +154,10 @@ en-ZA:
   number:
     currency:
       format:
-        delimiter: ","
-        format: "%u%n"
+        delimiter: " "
+        format: "%u %n"
         precision: 2
-        separator: "."
+        separator: ","
         significant: false
         strip_insignificant_zeros: false
         unit: R
diff --git a/rails/locale/en.yml b/rails/locale/en.yml
index 60a312d..20c73e6 100644
--- a/rails/locale/en.yml
+++ b/rails/locale/en.yml
@@ -63,41 +63,41 @@ en:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: about 1 hour
+        one: about %{count} hour
         other: about %{count} hours
       about_x_months:
-        one: about 1 month
+        one: about %{count} month
         other: about %{count} months
       about_x_years:
-        one: about 1 year
+        one: about %{count} year
         other: about %{count} years
       almost_x_years:
-        one: almost 1 year
+        one: almost %{count} year
         other: almost %{count} years
       half_a_minute: half a minute
       less_than_x_seconds:
-        one: less than 1 second
+        one: less than %{count} second
         other: less than %{count} seconds
       less_than_x_minutes:
         one: less than a minute
         other: less than %{count} minutes
       over_x_years:
-        one: over 1 year
+        one: over %{count} year
         other: over %{count} years
       x_seconds:
-        one: 1 second
+        one: "%{count} second"
         other: "%{count} seconds"
       x_minutes:
-        one: 1 minute
+        one: "%{count} minute"
         other: "%{count} minutes"
       x_days:
-        one: 1 day
+        one: "%{count} day"
         other: "%{count} days"
       x_months:
-        one: 1 month
+        one: "%{count} month"
         other: "%{count} months"
       x_years:
-        one: 1 year
+        one: "%{count} year"
         other: "%{count} years"
     prompts:
       second: Second
@@ -118,6 +118,7 @@ en:
       exclusion: is reserved
       greater_than: must be greater than %{count}
       greater_than_or_equal_to: must be greater than or equal to %{count}
+      in: must be in %{count}
       inclusion: is not included in the list
       invalid: is invalid
       less_than: must be less than %{count}
@@ -131,18 +132,18 @@ en:
       required: must exist
       taken: has already been taken
       too_long:
-        one: is too long (maximum is 1 character)
+        one: is too long (maximum is %{count} character)
         other: is too long (maximum is %{count} characters)
       too_short:
-        one: is too short (minimum is 1 character)
+        one: is too short (minimum is %{count} character)
         other: is too short (minimum is %{count} characters)
       wrong_length:
-        one: is the wrong length (should be 1 character)
+        one: is the wrong length (should be %{count} character)
         other: is the wrong length (should be %{count} characters)
     template:
       body: 'There were problems with the following fields:'
       header:
-        one: 1 error prohibited this %{model} from being saved
+        one: "%{count} error prohibited this %{model} from being saved"
         other: "%{count} errors prohibited this %{model} from being saved"
   helpers:
     select:
@@ -164,6 +165,7 @@ en:
     format:
       delimiter: ","
       precision: 3
+      round_mode: default
       separator: "."
       significant: false
       strip_insignificant_zeros: false
diff --git a/rails/locale/eo.yml b/rails/locale/eo.yml
index 29b4d9a..2cc8d53 100644
--- a/rails/locale/eo.yml
+++ b/rails/locale/eo.yml
@@ -84,16 +84,16 @@ eo:
         one: pli ol unu jaro
         other: pli ol %{count} jaroj
       x_seconds:
-        one: 1 sekundo
+        one: "%{count} sekundo"
         other: "%{count} sekundoj"
       x_minutes:
-        one: 1 minuto
+        one: "%{count} minuto"
         other: "%{count} minutoj"
       x_days:
-        one: 1 tago
+        one: "%{count} tago"
         other: "%{count} tagoj"
       x_months:
-        one: 1 monato
+        one: "%{count} monato"
         other: "%{count} monatoj"
     prompts:
       second: Sekundo
@@ -128,7 +128,7 @@ eo:
     template:
       body: 'Kontrolu la jenajn kampojn: '
       header:
-        one: 'Ne eblas registri tiun %{model}: 1 eraro'
+        one: 'Ne eblas registri tiun %{model}: %{count} eraro'
         other: 'Ne eblas registri tiun %{model}: %{count} eraroj'
   helpers:
     select:
diff --git a/rails/locale/es-419.yml b/rails/locale/es-419.yml
index 85d1364..f539ae2 100644
--- a/rails/locale/es-419.yml
+++ b/rails/locale/es-419.yml
@@ -64,41 +64,41 @@ es-419:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: cerca de 1 hora
+        one: cerca de %{count} hora
         other: cerca de %{count} horas
       about_x_months:
-        one: cerca de 1 mes
+        one: cerca de %{count} mes
         other: cerca de %{count} meses
       about_x_years:
-        one: cerca de 1 año
+        one: cerca de %{count} año
         other: cerca de %{count} años
       almost_x_years:
-        one: casi 1 año
+        one: casi %{count} año
         other: casi %{count} años
       half_a_minute: medio minuto
       less_than_x_seconds:
-        one: menos de 1 segundo
+        one: menos de %{count} segundo
         other: menos de %{count} segundos
       less_than_x_minutes:
-        one: menos de 1 minuto
+        one: menos de %{count} minuto
         other: menos de %{count} minutos
       over_x_years:
-        one: más de 1 año
+        one: más de %{count} año
         other: más de %{count} años
       x_seconds:
-        one: 1 segundo
+        one: "%{count} segundo"
         other: "%{count} segundos"
       x_minutes:
-        one: 1 minuto
+        one: "%{count} minuto"
         other: "%{count} minutos"
       x_days:
-        one: 1 día
+        one: "%{count} día"
         other: "%{count} días"
       x_months:
-        one: 1 mes
+        one: "%{count} mes"
         other: "%{count} meses"
       x_years:
-        one: 1 año
+        one: "%{count} año"
         other: "%{count} años"
     prompts:
       second: Segundo
@@ -132,18 +132,18 @@ es-419:
       required: debe existir
       taken: ya ha sido tomado
       too_long:
-        one: es demasiado largo (máximo 1 caracter)
+        one: es demasiado largo (máximo %{count} caracter)
         other: es demasiado largo (máximo %{count} caracteres)
       too_short:
-        one: es demasiado corto (mínimo 1 caracter)
+        one: es demasiado corto (mínimo %{count} caracter)
         other: es demasiado corto (mínimo %{count} caracteres)
       wrong_length:
-        one: longitud errónea (debe ser de 1 caracter)
+        one: longitud errónea (debe ser de %{count} caracter)
         other: longitud errónea (debe ser de %{count} caracteres)
     template:
       body: 'Revise que los siguientes campos sean válidos:'
       header:
-        one: "%{model} no pudo guardarse debido a 1 error"
+        one: "%{model} no pudo guardarse debido a %{count} error"
         other: "%{model} no pudo guardarse debido a %{count} errores"
   helpers:
     select:
@@ -165,6 +165,7 @@ es-419:
     format:
       delimiter: ","
       precision: 2
+      round_mode: default
       separator: "."
       significant: false
       strip_insignificant_zeros: false
diff --git a/rails/locale/es-AR.yml b/rails/locale/es-AR.yml
index 92ebe22..606342e 100644
--- a/rails/locale/es-AR.yml
+++ b/rails/locale/es-AR.yml
@@ -63,41 +63,41 @@ es-AR:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: cerca de 1 hora
+        one: cerca de %{count} hora
         other: cerca de %{count} horas
       about_x_months:
-        one: cerca de 1 mes
+        one: cerca de %{count} mes
         other: cerca de %{count} meses
       about_x_years:
-        one: cerca de 1 año
+        one: cerca de %{count} año
         other: cerca de %{count} años
       almost_x_years:
-        one: casi 1 año
+        one: casi %{count} año
         other: casi %{count} años
       half_a_minute: medio minuto
       less_than_x_seconds:
-        one: menos de 1 segundo
+        one: menos de %{count} segundo
         other: menos de %{count} segundos
       less_than_x_minutes:
-        one: menos de 1 minuto
+        one: menos de %{count} minuto
         other: menos de %{count} minutos
       over_x_years:
-        one: más de 1 año
+        one: más de %{count} año
         other: más de %{count} años
       x_seconds:
-        one: 1 segundo
+        one: "%{count} segundo"
         other: "%{count} segundos"
       x_minutes:
-        one: 1 minuto
+        one: "%{count} minuto"
         other: "%{count} minutos"
       x_days:
-        one: 1 día
+        one: "%{count} día"
         other: "%{count} días"
       x_months:
-        one: 1 mes
+        one: "%{count} mes"
         other: "%{count} meses"
       x_years:
-        one: 1 año
+        one: "%{count} año"
         other: "%{count} años"
     prompts:
       second: Segundo
@@ -131,18 +131,18 @@ es-AR:
       required: debe existir
       taken: ya ha sido tomado
       too_long:
-        one: es demasiado largo (máximo 1 caracter)
+        one: es demasiado largo (máximo %{count} caracter)
         other: es demasiado largo (máximo %{count} caracteres)
       too_short:
-        one: es demasiado corto (mínimo 1 caracter)
+        one: es demasiado corto (mínimo %{count} caracter)
         other: es demasiado corto (mínimo %{count} caracteres)
       wrong_length:
-        one: longitud errónea (debe ser de 1 caracter)
+        one: longitud errónea (debe ser de %{count} caracter)
         other: longitud errónea (debe ser de %{count} caracteres)
     template:
       body: 'Revise que los siguientes campos sean válidos:'
       header:
-        one: "%{model} no pudo guardarse debido a 1 error"
+        one: "%{model} no pudo guardarse debido a %{count} error"
         other: "%{model} no pudo guardarse debido a %{count} errores"
   helpers:
     select:
@@ -164,6 +164,7 @@ es-AR:
     format:
       delimiter: "."
       precision: 2
+      round_mode: default
       separator: ","
       significant: false
       strip_insignificant_zeros: false
diff --git a/rails/locale/es-CL.yml b/rails/locale/es-CL.yml
index 5ef1bd0..392bf51 100644
--- a/rails/locale/es-CL.yml
+++ b/rails/locale/es-CL.yml
@@ -63,41 +63,41 @@ es-CL:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: alrededor de 1 hora
+        one: alrededor de %{count} hora
         other: alrededor de %{count} horas
       about_x_months:
-        one: alrededor de 1 mes
+        one: alrededor de %{count} mes
         other: alrededor de %{count} meses
       about_x_years:
-        one: alrededor de 1 año
+        one: alrededor de %{count} año
         other: alrededor de %{count} años
       almost_x_years:
-        one: casi 1 año
+        one: casi %{count} año
         other: casi %{count} años
       half_a_minute: medio minuto
       less_than_x_seconds:
-        one: menos de 1 segundo
+        one: menos de %{count} segundo
         other: menos de %{count} segundos
       less_than_x_minutes:
-        one: menos de 1 minuto
+        one: menos de %{count} minuto
         other: menos de %{count} minutos
       over_x_years:
-        one: más de 1 año
+        one: más de %{count} año
         other: más de %{count} años
       x_seconds:
-        one: 1 segundo
+        one: "%{count} segundo"
         other: "%{count} segundos"
       x_minutes:
-        one: 1 minuto
+        one: "%{count} minuto"
         other: "%{count} minutos"
       x_days:
-        one: 1 día
+        one: "%{count} día"
         other: "%{count} días"
       x_months:
-        one: 1 mes
+        one: "%{count} mes"
         other: "%{count} meses"
       x_years:
-        one: 1 año
+        one: "%{count} año"
         other: "%{count} años"
     prompts:
       second: Segundo
@@ -131,18 +131,18 @@ es-CL:
       required: debe existir
       taken: ya está en uso
       too_long:
-        one: es demasiado largo (1 caracter máximo)
+        one: es demasiado largo (%{count} caracter máximo)
         other: es demasiado largo (%{count} caracteres máximo)
       too_short:
-        one: es demasiado corto (1 caracter mínimo)
+        one: es demasiado corto (%{count} caracter mínimo)
         other: es demasiado corto (%{count} caracteres mínimo)
       wrong_length:
-        one: no tiene la longitud correcta (1 caracter exacto)
+        one: no tiene la longitud correcta (%{count} caracter exacto)
         other: no tiene la longitud correcta (%{count} caracteres exactos)
     template:
       body: 'Se encontraron problemas con los siguientes campos:'
       header:
-        one: No se pudo guardar este/a %{model} porque se encontró 1 error
+        one: No se pudo guardar este/a %{model} porque se encontró %{count} error
         other: No se pudo guardar este/a %{model} porque se encontraron %{count} errores
   helpers:
     select:
@@ -164,6 +164,7 @@ es-CL:
     format:
       delimiter: "."
       precision: 3
+      round_mode: default
       separator: ","
       significant: false
       strip_insignificant_zeros: false
diff --git a/rails/locale/es-CO.yml b/rails/locale/es-CO.yml
index b092cd9..da20bc4 100644
--- a/rails/locale/es-CO.yml
+++ b/rails/locale/es-CO.yml
@@ -63,41 +63,41 @@ es-CO:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: cerca de 1 hora
+        one: cerca de %{count} hora
         other: cerca de %{count} horas
       about_x_months:
-        one: cerca de 1 mes
+        one: cerca de %{count} mes
         other: cerca de %{count} meses
       about_x_years:
-        one: cerca de 1 año
+        one: cerca de %{count} año
         other: cerca de %{count} años
       almost_x_years:
-        one: casi 1 año
+        one: casi %{count} año
         other: casi %{count} años
       half_a_minute: medio minuto
       less_than_x_seconds:
-        one: menos de 1 segundo
+        one: menos de %{count} segundo
         other: menos de %{count} segundos
       less_than_x_minutes:
-        one: menos de 1 minuto
+        one: menos de %{count} minuto
         other: menos de %{count} minutos
       over_x_years:
-        one: más de 1 año
+        one: más de %{count} año
         other: más de %{count} años
       x_seconds:
-        one: 1 segundo
+        one: "%{count} segundo"
         other: "%{count} segundos"
       x_minutes:
-        one: 1 minuto
+        one: "%{count} minuto"
         other: "%{count} minutos"
       x_days:
-        one: 1 día
+        one: "%{count} día"
         other: "%{count} días"
       x_months:
-        one: 1 mes
+        one: "%{count} mes"
         other: "%{count} meses"
       x_years:
-        one: 1 año
+        one: "%{count} año"
         other: "%{count} años"
     prompts:
       second: Segundo
@@ -131,18 +131,18 @@ es-CO:
       required: debe existir
       taken: ya ha sido tomado
       too_long:
-        one: es demasiado largo (máximo 1 caracter)
+        one: es demasiado largo (máximo %{count} caracter)
         other: es demasiado largo (máximo %{count} caracteres)
       too_short:
-        one: es demasiado corto (mínimo 1 caracter)
+        one: es demasiado corto (mínimo %{count} caracter)
         other: es demasiado corto (mínimo %{count} caracteres)
       wrong_length:
-        one: longitud errónea (debe ser de 1 caracter)
+        one: longitud errónea (debe ser de %{count} caracter)
         other: longitud errónea (debe ser de %{count} caracteres)
     template:
       body: 'Revise que los siguientes campos sean válidos:'
       header:
-        one: "%{model} no pudo guardarse debido a 1 error"
+        one: "%{model} no pudo guardarse debido a %{count} error"
         other: "%{model} no pudo guardarse debido a %{count} errores"
   helpers:
     select:
@@ -164,6 +164,7 @@ es-CO:
     format:
       delimiter: "."
       precision: 2
+      round_mode: default
       separator: ","
       significant: false
       strip_insignificant_zeros: false
diff --git a/rails/locale/es-CR.yml b/rails/locale/es-CR.yml
index 942deee..bd01791 100644
--- a/rails/locale/es-CR.yml
+++ b/rails/locale/es-CR.yml
@@ -63,41 +63,41 @@ es-CR:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: cerca de 1 hora
+        one: cerca de %{count} hora
         other: cerca de %{count} horas
       about_x_months:
-        one: cerca de 1 mes
+        one: cerca de %{count} mes
         other: cerca de %{count} meses
       about_x_years:
-        one: cerca de 1 año
+        one: cerca de %{count} año
         other: cerca de %{count} años
       almost_x_years:
-        one: casi 1 año
+        one: casi %{count} año
         other: casi %{count} años
       half_a_minute: medio minuto
       less_than_x_seconds:
-        one: menos de 1 segundo
+        one: menos de %{count} segundo
         other: menos de %{count} segundos
       less_than_x_minutes:
-        one: menos de 1 minuto
+        one: menos de %{count} minuto
         other: menos de %{count} minutos
       over_x_years:
-        one: más de 1 año
+        one: más de %{count} año
         other: más de %{count} años
       x_seconds:
-        one: 1 segundo
+        one: "%{count} segundo"
         other: "%{count} segundos"
       x_minutes:
-        one: 1 minuto
+        one: "%{count} minuto"
         other: "%{count} minutos"
       x_days:
-        one: 1 día
+        one: "%{count} día"
         other: "%{count} días"
       x_months:
-        one: 1 mes
+        one: "%{count} mes"
         other: "%{count} meses"
       x_years:
-        one: 1 año
+        one: "%{count} año"
         other: "%{count} años"
     prompts:
       second: Segundo
@@ -131,18 +131,18 @@ es-CR:
       required: debe existir
       taken: ya ha sido utilizado
       too_long:
-        one: es demasiado largo (máximo 1 caracter)
+        one: es demasiado largo (máximo %{count} caracter)
         other: es demasiado largo (máximo %{count} caracteres)
       too_short:
-        one: es demasiado corto (mínimo 1 caracter)
+        one: es demasiado corto (mínimo %{count} caracter)
         other: es demasiado corto (mínimo %{count} caracteres)
       wrong_length:
-        one: longitud errónea (debe ser de 1 caracter)
+        one: longitud errónea (debe ser de %{count} caracter)
         other: longitud errónea (debe ser de %{count} caracteres)
     template:
       body: 'Revise que los siguientes campos sean válidos:'
       header:
-        one: "%{model} no pudo guardarse debido a 1 error"
+        one: "%{model} no pudo guardarse debido a %{count} error"
         other: "%{model} no pudo guardarse debido a %{count} errores"
   helpers:
     select:
@@ -164,6 +164,7 @@ es-CR:
     format:
       delimiter: ","
       precision: 2
+      round_mode: default
       separator: "."
       significant: false
       strip_insignificant_zeros: false
diff --git a/rails/locale/es-EC.yml b/rails/locale/es-EC.yml
index 2be18f9..75b7dcb 100644
--- a/rails/locale/es-EC.yml
+++ b/rails/locale/es-EC.yml
@@ -64,41 +64,41 @@ es-EC:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: cerca de 1 hora
+        one: cerca de %{count} hora
         other: cerca de %{count} horas
       about_x_months:
-        one: cerca de 1 mes
+        one: cerca de %{count} mes
         other: cerca de %{count} meses
       about_x_years:
-        one: cerca de 1 año
+        one: cerca de %{count} año
         other: cerca de %{count} años
       almost_x_years:
-        one: casi 1 año
+        one: casi %{count} año
         other: casi %{count} años
       half_a_minute: medio minuto
       less_than_x_seconds:
-        one: menos de 1 segundo
+        one: menos de %{count} segundo
         other: menos de %{count} segundos
       less_than_x_minutes:
-        one: menos de 1 minuto
+        one: menos de %{count} minuto
         other: menos de %{count} minutos
       over_x_years:
-        one: más de 1 año
+        one: más de %{count} año
         other: más de %{count} años
       x_seconds:
-        one: 1 segundo
+        one: "%{count} segundo"
         other: "%{count} segundos"
       x_minutes:
-        one: 1 minuto
+        one: "%{count} minuto"
         other: "%{count} minutos"
       x_days:
-        one: 1 día
+        one: "%{count} día"
         other: "%{count} días"
       x_months:
-        one: 1 mes
+        one: "%{count} mes"
         other: "%{count} meses"
       x_years:
-        one: 1 año
+        one: "%{count} año"
         other: "%{count} años"
     prompts:
       second: Segundo
@@ -132,18 +132,18 @@ es-EC:
       required: debe existir
       taken: ya está en uso
       too_long:
-        one: es demasiado largo (máximo 1 caracter)
+        one: es demasiado largo (máximo %{count} caracter)
         other: es demasiado largo (máximo %{count} caracteres)
       too_short:
-        one: es demasiado corto (mínimo 1 caracter)
+        one: es demasiado corto (mínimo %{count} caracter)
         other: es demasiado corto (mínimo %{count} caracteres)
       wrong_length:
-        one: no tiene la longitud correcta (debe ser de 1 caracter)
+        one: no tiene la longitud correcta (debe ser de %{count} caracter)
         other: no tiene la longitud correcta (debe ser de %{count} caracteres)
     template:
       body: 'Revise que los siguientes campos sean válidos:'
       header:
-        one: No se pudo guardar este/a %{model} porque se encontró 1 error
+        one: No se pudo guardar este/a %{model} porque se encontró %{count} error
         other: No se pudo guardar este/a %{model} porque se encontraron %{count} errores
   helpers:
     select:
@@ -165,6 +165,7 @@ es-EC:
     format:
       delimiter: ","
       precision: 3
+      round_mode: default
       separator: "."
       significant: false
       strip_insignificant_zeros: false
diff --git a/rails/locale/es-ES.yml b/rails/locale/es-ES.yml
index e96b8ca..9278827 100644
--- a/rails/locale/es-ES.yml
+++ b/rails/locale/es-ES.yml
@@ -63,41 +63,41 @@ es-ES:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: alrededor de 1 hora
+        one: alrededor de %{count} hora
         other: alrededor de %{count} horas
       about_x_months:
-        one: alrededor de 1 mes
+        one: alrededor de %{count} mes
         other: alrededor de %{count} meses
       about_x_years:
-        one: alrededor de 1 año
+        one: alrededor de %{count} año
         other: alrededor de %{count} años
       almost_x_years:
-        one: casi 1 año
+        one: casi %{count} año
         other: casi %{count} años
       half_a_minute: medio minuto
       less_than_x_seconds:
-        one: menos de 1 segundo
+        one: menos de %{count} segundo
         other: menos de %{count} segundos
       less_than_x_minutes:
-        one: menos de 1 minuto
+        one: menos de %{count} minuto
         other: menos de %{count} minutos
       over_x_years:
-        one: más de 1 año
+        one: más de %{count} año
         other: más de %{count} años
       x_seconds:
-        one: 1 segundo
+        one: "%{count} segundo"
         other: "%{count} segundos"
       x_minutes:
-        one: 1 minuto
+        one: "%{count} minuto"
         other: "%{count} minutos"
       x_days:
-        one: 1 día
+        one: "%{count} día"
         other: "%{count} días"
       x_months:
-        one: 1 mes
+        one: "%{count} mes"
         other: "%{count} meses"
       x_years:
-        one: 1 año
+        one: "%{count} año"
         other: "%{count} años"
     prompts:
       second: Segundo
@@ -131,18 +131,18 @@ es-ES:
       required: debe existir
       taken: ya está en uso
       too_long:
-        one: es demasiado largo (1 carácter máximo)
+        one: es demasiado largo (%{count} carácter máximo)
         other: es demasiado largo (%{count} caracteres máximo)
       too_short:
-        one: es demasiado corto (1 carácter mínimo)
+        one: es demasiado corto (%{count} carácter mínimo)
         other: es demasiado corto (%{count} caracteres mínimo)
       wrong_length:
-        one: no tiene la longitud correcta (1 carácter exactos)
+        one: no tiene la longitud correcta (%{count} carácter exactos)
         other: no tiene la longitud correcta (%{count} caracteres exactos)
     template:
       body: 'Se encontraron problemas con los siguientes campos:'
       header:
-        one: No se pudo guardar este/a %{model} porque se encontró 1 error
+        one: No se pudo guardar este/a %{model} porque se encontró %{count} error
         other: No se pudo guardar este/a %{model} porque se encontraron %{count} errores
   helpers:
     select:
@@ -164,6 +164,7 @@ es-ES:
     format:
       delimiter: "."
       precision: 3
+      round_mode: default
       separator: ","
       significant: false
       strip_insignificant_zeros: false
diff --git a/rails/locale/es-MX.yml b/rails/locale/es-MX.yml
index dd0810e..2f753e0 100644
--- a/rails/locale/es-MX.yml
+++ b/rails/locale/es-MX.yml
@@ -63,41 +63,41 @@ es-MX:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: cerca de 1 hora
+        one: cerca de %{count} hora
         other: cerca de %{count} horas
       about_x_months:
-        one: cerca de 1 mes
+        one: cerca de %{count} mes
         other: cerca de %{count} meses
       about_x_years:
-        one: cerca de 1 año
+        one: cerca de %{count} año
         other: cerca de %{count} años
       almost_x_years:
-        one: casi 1 año
+        one: casi %{count} año
         other: casi %{count} años
       half_a_minute: medio minuto
       less_than_x_seconds:
-        one: menos de 1 segundo
+        one: menos de %{count} segundo
         other: menos de %{count} segundos
       less_than_x_minutes:
-        one: menos de 1 minuto
+        one: menos de %{count} minuto
         other: menos de %{count} minutos
       over_x_years:
-        one: más de 1 año
+        one: más de %{count} año
         other: más de %{count} años
       x_seconds:
-        one: 1 segundo
+        one: "%{count} segundo"
         other: "%{count} segundos"
       x_minutes:
-        one: 1 minuto
+        one: "%{count} minuto"
         other: "%{count} minutos"
       x_days:
-        one: 1 día
+        one: "%{count} día"
         other: "%{count} días"
       x_months:
-        one: 1 mes
+        one: "%{count} mes"
         other: "%{count} meses"
       x_years:
-        one: 1 año
+        one: "%{count} año"
         other: "%{count} años"
     prompts:
       second: Segundo
@@ -131,18 +131,18 @@ es-MX:
       required: debe existir
       taken: ya ha sido tomado
       too_long:
-        one: es demasiado largo (máximo 1 caracter)
+        one: es demasiado largo (máximo %{count} caracter)
         other: es demasiado largo (máximo %{count} caracteres)
       too_short:
-        one: es demasiado corto (mínimo 1 caracter)
+        one: es demasiado corto (mínimo %{count} caracter)
         other: es demasiado corto (mínimo %{count} caracteres)
       wrong_length:
-        one: longitud errónea (debe ser de 1 caracter)
+        one: longitud errónea (debe ser de %{count} caracter)
         other: longitud errónea (debe ser de %{count} caracteres)
     template:
       body: 'Revise que los siguientes campos sean válidos:'
       header:
-        one: "%{model} no pudo guardarse debido a 1 error"
+        one: "%{model} no pudo guardarse debido a %{count} error"
         other: "%{model} no pudo guardarse debido a %{count} errores"
   helpers:
     select:
@@ -164,6 +164,7 @@ es-MX:
     format:
       delimiter: ","
       precision: 2
+      round_mode: default
       separator: "."
       significant: false
       strip_insignificant_zeros: false
diff --git a/rails/locale/es-NI.yml b/rails/locale/es-NI.yml
index 040451d..21936f9 100644
--- a/rails/locale/es-NI.yml
+++ b/rails/locale/es-NI.yml
@@ -63,41 +63,41 @@ es-NI:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: cerca de 1 hora
+        one: cerca de %{count} hora
         other: cerca de %{count} horas
       about_x_months:
-        one: cerca de 1 mes
+        one: cerca de %{count} mes
         other: cerca de %{count} meses
       about_x_years:
-        one: cerca de 1 año
+        one: cerca de %{count} año
         other: cerca de %{count} años
       almost_x_years:
-        one: casi 1 año
+        one: casi %{count} año
         other: casi %{count} años
       half_a_minute: medio minuto
       less_than_x_seconds:
-        one: menos de 1 segundo
+        one: menos de %{count} segundo
         other: menos de %{count} segundos
       less_than_x_minutes:
-        one: menos de 1 minuto
+        one: menos de %{count} minuto
         other: menos de %{count} minutos
       over_x_years:
-        one: más de 1 año
+        one: más de %{count} año
         other: más de %{count} años
       x_seconds:
-        one: 1 segundo
+        one: "%{count} segundo"
         other: "%{count} segundos"
       x_minutes:
-        one: 1 minuto
+        one: "%{count} minuto"
         other: "%{count} minutos"
       x_days:
-        one: 1 día
+        one: "%{count} día"
         other: "%{count} días"
       x_months:
-        one: 1 mes
+        one: "%{count} mes"
         other: "%{count} meses"
       x_years:
-        one: 1 año
+        one: "%{count} año"
         other: "%{count} años"
     prompts:
       second: Segundo
@@ -131,18 +131,18 @@ es-NI:
       required: debe existir
       taken: ya ha sido utilizado
       too_long:
-        one: es demasiado largo (máximo 1 caracter)
+        one: es demasiado largo (máximo %{count} caracter)
         other: es demasiado largo (máximo %{count} caracteres)
       too_short:
-        one: es demasiado corto (mínimo 1 caracter)
+        one: es demasiado corto (mínimo %{count} caracter)
         other: es demasiado corto (mínimo %{count} caracteres)
       wrong_length:
-        one: longitud errónea (debe ser de 1 caracter)
+        one: longitud errónea (debe ser de %{count} caracter)
         other: longitud errónea (debe ser de %{count} caracteres)
     template:
       body: 'Revise que los siguientes campos sean válidos:'
       header:
-        one: "%{model} no pudo guardarse debido a 1 error"
+        one: "%{model} no pudo guardarse debido a %{count} error"
         other: "%{model} no pudo guardarse debido a %{count} errores"
   helpers:
     select:
@@ -164,6 +164,7 @@ es-NI:
     format:
       delimiter: ","
       precision: 2
+      round_mode: default
       separator: "."
       significant: false
       strip_insignificant_zeros: false
diff --git a/rails/locale/es-PA.yml b/rails/locale/es-PA.yml
index 1c42702..bcbacce 100644
--- a/rails/locale/es-PA.yml
+++ b/rails/locale/es-PA.yml
@@ -64,41 +64,41 @@ es-PA:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: alrededor de 1 hora
+        one: alrededor de %{count} hora
         other: alrededor de %{count} horas
       about_x_months:
-        one: alrededor de 1 mes
+        one: alrededor de %{count} mes
         other: alrededor de %{count} meses
       about_x_years:
-        one: alrededor de 1 año
+        one: alrededor de %{count} año
         other: alrededor de %{count} años
       almost_x_years:
-        one: casi 1 año
+        one: casi %{count} año
         other: casi %{count} años
       half_a_minute: medio minuto
       less_than_x_seconds:
-        one: menos de 1 segundo
+        one: menos de %{count} segundo
         other: menos de %{count} segundos
       less_than_x_minutes:
-        one: menos de 1 minuto
+        one: menos de %{count} minuto
         other: menos de %{count} minutos
       over_x_years:
-        one: más de 1 año
+        one: más de %{count} año
         other: más de %{count} años
       x_seconds:
-        one: 1 segundo
+        one: "%{count} segundo"
         other: "%{count} segundos"
       x_minutes:
-        one: 1 minuto
+        one: "%{count} minuto"
         other: "%{count} minutos"
       x_days:
-        one: 1 día
+        one: "%{count} día"
         other: "%{count} días"
       x_months:
-        one: 1 mes
+        one: "%{count} mes"
         other: "%{count} meses"
       x_years:
-        one: 1 año
+        one: "%{count} año"
         other: "%{count} años"
     prompts:
       second: Segundo
@@ -132,18 +132,18 @@ es-PA:
       required: debe existir
       taken: ya está en uso
       too_long:
-        one: es demasiado largo(a) (máximo 1 caracter)
+        one: es demasiado largo(a) (máximo %{count} caracter)
         other: es demasiado largo(a) (máximo %{count} caracteres)
       too_short:
-        one: es demasiado corto(a) (mínimo 1 caracter)
+        one: es demasiado corto(a) (mínimo %{count} caracter)
         other: es demasiado corto(a) (mínimo %{count} caracteres)
       wrong_length:
-        one: no tiene la longitud correcta (debe ser de 1 caracter)
+        one: no tiene la longitud correcta (debe ser de %{count} caracter)
         other: no tiene la longitud correcta (debe ser de %{count} caracteres)
     template:
       body: 'Revise que los siguientes campos sean válidos:'
       header:
-        one: No se pudo guardar este(a) %{model} porque se encontró 1 error
+        one: No se pudo guardar este(a) %{model} porque se encontró %{count} error
         other: No se pudo guardar este(a) %{model} porque se encontraron %{count}
           errores
   helpers:
@@ -166,6 +166,7 @@ es-PA:
     format:
       delimiter: ","
       precision: 3
+      round_mode: default
       separator: "."
       significant: false
       strip_insignificant_zeros: false
diff --git a/rails/locale/es-PE.yml b/rails/locale/es-PE.yml
index daac66f..8bce37c 100644
--- a/rails/locale/es-PE.yml
+++ b/rails/locale/es-PE.yml
@@ -63,41 +63,41 @@ es-PE:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: cerca de 1 hora
+        one: cerca de %{count} hora
         other: cerca de %{count} horas
       about_x_months:
-        one: cerca de 1 mes
+        one: cerca de %{count} mes
         other: cerca de %{count} meses
       about_x_years:
-        one: cerca de 1 año
+        one: cerca de %{count} año
         other: cerca de %{count} años
       almost_x_years:
-        one: casi 1 año
+        one: casi %{count} año
         other: casi %{count} años
       half_a_minute: medio minuto
       less_than_x_seconds:
-        one: menos de 1 segundo
+        one: menos de %{count} segundo
         other: menos de %{count} segundos
       less_than_x_minutes:
-        one: menos de 1 minuto
+        one: menos de %{count} minuto
         other: menos de %{count} minutos
       over_x_years:
-        one: más de 1 año
+        one: más de %{count} año
         other: más de %{count} años
       x_seconds:
-        one: 1 segundo
+        one: "%{count} segundo"
         other: "%{count} segundos"
       x_minutes:
-        one: 1 minuto
+        one: "%{count} minuto"
         other: "%{count} minutos"
       x_days:
-        one: 1 día
+        one: "%{count} día"
         other: "%{count} días"
       x_months:
-        one: 1 mes
+        one: "%{count} mes"
         other: "%{count} meses"
       x_years:
-        one: 1 año
+        one: "%{count} año"
         other: "%{count} años"
     prompts:
       second: Segundo
@@ -131,18 +131,18 @@ es-PE:
       required: debe existir
       taken: ya ha sido tomado
       too_long:
-        one: es demasiado largo (máximo 1 caracter)
+        one: es demasiado largo (máximo %{count} caracter)
         other: es demasiado largo (máximo %{count} caracteres)
       too_short:
-        one: es demasiado corto (mínimo 1 caracter)
+        one: es demasiado corto (mínimo %{count} caracter)
         other: es demasiado corto (mínimo %{count} caracteres)
       wrong_length:
-        one: longitud errónea (debe ser de 1 caracter)
+        one: longitud errónea (debe ser de %{count} caracter)
         other: longitud errónea (debe ser de %{count} caracteres)
     template:
       body: 'Revise que los siguientes campos sean válidos:'
       header:
-        one: "%{model} no pudo guardarse debido a 1 error"
+        one: "%{model} no pudo guardarse debido a %{count} error"
         other: "%{model} no pudo guardarse debido a %{count} errores"
   helpers:
     select:
@@ -164,6 +164,7 @@ es-PE:
     format:
       delimiter: ","
       precision: 2
+      round_mode: default
       separator: "."
       significant: false
       strip_insignificant_zeros: false
diff --git a/rails/locale/es-US.yml b/rails/locale/es-US.yml
index 20535fc..f1f13cb 100644
--- a/rails/locale/es-US.yml
+++ b/rails/locale/es-US.yml
@@ -63,41 +63,41 @@ es-US:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: cerca de 1 hora
+        one: cerca de %{count} hora
         other: cerca de %{count} horas
       about_x_months:
-        one: cerca de 1 mes
+        one: cerca de %{count} mes
         other: cerca de %{count} meses
       about_x_years:
-        one: cerca de 1 año
+        one: cerca de %{count} año
         other: cerca de %{count} años
       almost_x_years:
-        one: casi 1 año
+        one: casi %{count} año
         other: casi %{count} años
       half_a_minute: medio minuto
       less_than_x_seconds:
-        one: menos de 1 segundo
+        one: menos de %{count} segundo
         other: menos de %{count} segundos
       less_than_x_minutes:
-        one: menos de 1 minuto
+        one: menos de %{count} minuto
         other: menos de %{count} minutos
       over_x_years:
-        one: más de 1 año
+        one: más de %{count} año
         other: más de %{count} años
       x_seconds:
-        one: 1 segundo
+        one: "%{count} segundo"
         other: "%{count} segundos"
       x_minutes:
-        one: 1 minuto
+        one: "%{count} minuto"
         other: "%{count} minutos"
       x_days:
-        one: 1 día
+        one: "%{count} día"
         other: "%{count} días"
       x_months:
-        one: 1 mes
+        one: "%{count} mes"
         other: "%{count} meses"
       x_years:
-        one: 1 año
+        one: "%{count} año"
         other: "%{count} años"
     prompts:
       second: Segundo
@@ -131,18 +131,18 @@ es-US:
       required: debe existir
       taken: ya ha sido tomado
       too_long:
-        one: es demasiado largo (máximo 1 caracter)
+        one: es demasiado largo (máximo %{count} caracter)
         other: es demasiado largo (máximo %{count} caracteres)
       too_short:
-        one: es demasiado corto (mínimo 1 caracter)
+        one: es demasiado corto (mínimo %{count} caracter)
         other: es demasiado corto (mínimo %{count} caracteres)
       wrong_length:
-        one: longitud errónea (debe ser de 1 caracter)
+        one: longitud errónea (debe ser de %{count} caracter)
         other: longitud errónea (debe ser de %{count} caracteres)
     template:
       body: 'Revise que los siguientes campos sean válidos:'
       header:
-        one: "%{model} no pudo guardarse debido a 1 error"
+        one: "%{model} no pudo guardarse debido a %{count} error"
         other: "%{model} no pudo guardarse debido a %{count} errores"
   helpers:
     select:
@@ -164,6 +164,7 @@ es-US:
     format:
       delimiter: ","
       precision: 2
+      round_mode: default
       separator: "."
       significant: false
       strip_insignificant_zeros: false
diff --git a/rails/locale/es-VE.yml b/rails/locale/es-VE.yml
index c5986cc..d1650b4 100644
--- a/rails/locale/es-VE.yml
+++ b/rails/locale/es-VE.yml
@@ -63,41 +63,41 @@ es-VE:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: cerca de 1 hora
+        one: cerca de %{count} hora
         other: cerca de %{count} horas
       about_x_months:
-        one: cerca de 1 mes
+        one: cerca de %{count} mes
         other: cerca de %{count} meses
       about_x_years:
-        one: cerca de 1 año
+        one: cerca de %{count} año
         other: cerca de %{count} años
       almost_x_years:
-        one: casi 1 año
+        one: casi %{count} año
         other: casi %{count} años
       half_a_minute: medio minuto
       less_than_x_seconds:
-        one: menos de 1 segundo
+        one: menos de %{count} segundo
         other: menos de %{count} segundos
       less_than_x_minutes:
-        one: menos de 1 minuto
+        one: menos de %{count} minuto
         other: menos de %{count} minutos
       over_x_years:
-        one: más de 1 año
+        one: más de %{count} año
         other: más de %{count} años
       x_seconds:
-        one: 1 segundo
+        one: "%{count} segundo"
         other: "%{count} segundos"
       x_minutes:
-        one: 1 minuto
+        one: "%{count} minuto"
         other: "%{count} minutos"
       x_days:
-        one: 1 día
+        one: "%{count} día"
         other: "%{count} días"
       x_months:
-        one: 1 mes
+        one: "%{count} mes"
         other: "%{count} meses"
       x_years:
-        one: 1 año
+        one: "%{count} año"
         other: "%{count} años"
     prompts:
       second: Segundo
@@ -131,18 +131,18 @@ es-VE:
       required: debe existir
       taken: ya está en uso
       too_long:
-        one: es demasiado largo (máximo 1 caracter)
+        one: es demasiado largo (máximo %{count} caracter)
         other: es demasiado largo (máximo %{count} caracteres)
       too_short:
-        one: es demasiado corto (mínimo 1 caracter)
+        one: es demasiado corto (mínimo %{count} caracter)
         other: es demasiado corto (mínimo %{count} caracteres)
       wrong_length:
-        one: longitud errónea (debe ser de 1 caracter)
+        one: longitud errónea (debe ser de %{count} caracter)
         other: longitud errónea (debe ser de %{count} caracteres)
     template:
       body: 'Revise que los siguientes campos sean válidos:'
       header:
-        one: "%{model} no pudo guardarse debido a 1 error"
+        one: "%{model} no pudo guardarse debido a %{count} error"
         other: "%{model} no pudo guardarse debido a %{count} errores"
   helpers:
     select:
@@ -164,6 +164,7 @@ es-VE:
     format:
       delimiter: "."
       precision: 2
+      round_mode: default
       separator: ","
       significant: false
       strip_insignificant_zeros: false
diff --git a/rails/locale/es.yml b/rails/locale/es.yml
index b4a3955..014da0b 100644
--- a/rails/locale/es.yml
+++ b/rails/locale/es.yml
@@ -63,41 +63,41 @@ es:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: alrededor de 1 hora
+        one: alrededor de %{count} hora
         other: alrededor de %{count} horas
       about_x_months:
-        one: alrededor de 1 mes
+        one: alrededor de %{count} mes
         other: alrededor de %{count} meses
       about_x_years:
-        one: alrededor de 1 año
+        one: alrededor de %{count} año
         other: alrededor de %{count} años
       almost_x_years:
-        one: casi 1 año
+        one: casi %{count} año
         other: casi %{count} años
       half_a_minute: medio minuto
       less_than_x_seconds:
-        one: menos de 1 segundo
+        one: menos de %{count} segundo
         other: menos de %{count} segundos
       less_than_x_minutes:
-        one: menos de 1 minuto
+        one: menos de %{count} minuto
         other: menos de %{count} minutos
       over_x_years:
-        one: más de 1 año
+        one: más de %{count} año
         other: más de %{count} años
       x_seconds:
-        one: 1 segundo
+        one: "%{count} segundo"
         other: "%{count} segundos"
       x_minutes:
-        one: 1 minuto
+        one: "%{count} minuto"
         other: "%{count} minutos"
       x_days:
-        one: 1 día
+        one: "%{count} día"
         other: "%{count} días"
       x_months:
-        one: 1 mes
+        one: "%{count} mes"
         other: "%{count} meses"
       x_years:
-        one: 1 año
+        one: "%{count} año"
         other: "%{count} años"
     prompts:
       second: Segundo
@@ -131,18 +131,18 @@ es:
       required: debe existir
       taken: ya está en uso
       too_long:
-        one: es demasiado largo (1 carácter máximo)
+        one: es demasiado largo (%{count} carácter máximo)
         other: es demasiado largo (%{count} caracteres máximo)
       too_short:
-        one: es demasiado corto (1 carácter mínimo)
+        one: es demasiado corto (%{count} carácter mínimo)
         other: es demasiado corto (%{count} caracteres mínimo)
       wrong_length:
-        one: no tiene la longitud correcta (1 carácter exactos)
+        one: no tiene la longitud correcta (%{count} carácter exactos)
         other: no tiene la longitud correcta (%{count} caracteres exactos)
     template:
       body: 'Se encontraron problemas con los siguientes campos:'
       header:
-        one: No se pudo guardar este/a %{model} porque se encontró 1 error
+        one: No se pudo guardar este/a %{model} porque se encontró %{count} error
         other: No se pudo guardar este/a %{model} porque se encontraron %{count} errores
   helpers:
     select:
@@ -164,6 +164,7 @@ es:
     format:
       delimiter: "."
       precision: 3
+      round_mode: default
       separator: ","
       significant: false
       strip_insignificant_zeros: false
diff --git a/rails/locale/eu.yml b/rails/locale/eu.yml
index ac607ad..4d483bf 100644
--- a/rails/locale/eu.yml
+++ b/rails/locale/eu.yml
@@ -79,7 +79,7 @@ eu:
         one: segundu bat baino gutxiago
         other: "%{count} segundu baino gutxiago"
       less_than_x_minutes:
-        one: 1 minutu bat baino gutxiago
+        one: "%{count} minutu bat baino gutxiago"
         other: "%{count} minutu baino gutxiago"
       over_x_years:
         one: urte bat baino gehiago
@@ -128,13 +128,13 @@ eu:
       required: egon behar du
       taken: hartuta dago
       too_long:
-        one: luzeegia da (karaktere 1 gehienez)
+        one: luzeegia da (karaktere %{count} gehienez)
         other: luzeegia da (%{count} karaktere gehienez)
       too_short:
-        one: laburregia da (karaktere 1 gutxienez)
+        one: laburregia da (karaktere %{count} gutxienez)
         other: laburregia da (%{count} karaktere gutxienez)
       wrong_length:
-        one: ez du luzeera zuzena (karaktere 1 izan behar ditu)
+        one: ez du luzeera zuzena (karaktere %{count} izan behar ditu)
         other: ez du luzeera zuzena (%{count} karaktere izan behar ditu)
     template:
       body: 'Arazoak egon dira ondoko eremuekin:'
diff --git a/rails/locale/fa.yml b/rails/locale/fa.yml
index 6965401..a46d653 100644
--- a/rails/locale/fa.yml
+++ b/rails/locale/fa.yml
@@ -98,7 +98,7 @@ fa:
         one: یک ماه
         other: "%{count} ماه"
       x_years:
-        one: 1 سال
+        one: "%{count} سال"
         other: "%{count} سال"
     prompts:
       second: ثانیه
@@ -137,7 +137,7 @@ fa:
     template:
       body: 'موارد زیر مشکل داشت:'
       header:
-        one: 1 خطا جلوی ذخیره این %{model} را گرفت
+        one: "%{count} خطا جلوی ذخیره این %{model} را گرفت"
         other: "%{count} خطا جلوی ذخیره این %{model} را گرفت"
   helpers:
     select:
diff --git a/rails/locale/fi.yml b/rails/locale/fi.yml
index 6a462e4..b2ebf31 100644
--- a/rails/locale/fi.yml
+++ b/rails/locale/fi.yml
@@ -130,13 +130,13 @@ fi:
       required: täytyy olla
       taken: on jo käytössä
       too_long:
-        one: on liian pitkä (saa olla enintään 1 merkki)
+        one: on liian pitkä (saa olla enintään %{count} merkki)
         other: on liian pitkä (saa olla enintään %{count} merkkiä)
       too_short:
-        one: on liian lyhyt (oltava vähintään 1 merkki)
+        one: on liian lyhyt (oltava vähintään %{count} merkki)
         other: on liian lyhyt (oltava vähintään %{count} merkkiä)
       wrong_length:
-        one: on väärän pituinen (täytyy olla täsmälleen 1 merkki)
+        one: on väärän pituinen (täytyy olla täsmälleen %{count} merkki)
         other: on väärän pituinen (täytyy olla täsmälleen %{count} merkkiä)
     template:
       body: 'Seuraavat kentät aiheuttivat ongelmia:'
diff --git a/rails/locale/fr-CA.yml b/rails/locale/fr-CA.yml
index defe149..49b692a 100644
--- a/rails/locale/fr-CA.yml
+++ b/rails/locale/fr-CA.yml
@@ -22,7 +22,7 @@ fr-CA:
     - 
     - jan.
     - fév.
-    - mar.
+    - mars
     - avr.
     - mai
     - juin
@@ -89,19 +89,19 @@ fr-CA:
         one: plus d'un an
         other: plus de %{count} ans
       x_seconds:
-        one: 1 seconde
+        one: "%{count} seconde"
         other: "%{count} secondes"
       x_minutes:
-        one: 1 minute
+        one: "%{count} minute"
         other: "%{count} minutes"
       x_days:
-        one: 1 jour
+        one: "%{count} jour"
         other: "%{count} jours"
       x_months:
-        one: 1 mois
+        one: "%{count} mois"
         other: "%{count} mois"
       x_years:
-        one: 1 an
+        one: "%{count} an"
         other: "%{count} ans"
     prompts:
       second: Seconde
@@ -122,6 +122,7 @@ fr-CA:
       exclusion: n'est pas disponible
       greater_than: doit être supérieur à %{count}
       greater_than_or_equal_to: doit être supérieur ou égal à %{count}
+      in: doit être dans l'intervalle %{count}
       inclusion: n'est pas inclus(e) dans la liste
       invalid: n'est pas valide
       less_than: doit être inférieur à %{count}
@@ -146,7 +147,7 @@ fr-CA:
     template:
       body: 'Veuillez vérifier les champs suivants : '
       header:
-        one: 'Impossible d''enregistrer ce(tte) %{model} : 1 erreur'
+        one: 'Impossible d''enregistrer ce(tte) %{model} : %{count} erreur'
         other: 'Impossible d''enregistrer ce(tte) %{model} : %{count} erreurs'
   helpers:
     select:
@@ -168,6 +169,7 @@ fr-CA:
     format:
       delimiter: " "
       precision: 3
+      round_mode: default
       separator: ","
       significant: false
       strip_insignificant_zeros: false
diff --git a/rails/locale/fr-CH.yml b/rails/locale/fr-CH.yml
index c1208fb..8552e64 100644
--- a/rails/locale/fr-CH.yml
+++ b/rails/locale/fr-CH.yml
@@ -22,7 +22,7 @@ fr-CH:
     - 
     - jan.
     - fév.
-    - mar.
+    - mars
     - avr.
     - mai
     - juin
@@ -89,19 +89,19 @@ fr-CH:
         one: plus d'un an
         other: plus de %{count} ans
       x_seconds:
-        one: 1 seconde
+        one: "%{count} seconde"
         other: "%{count} secondes"
       x_minutes:
-        one: 1 minute
+        one: "%{count} minute"
         other: "%{count} minutes"
       x_days:
-        one: 1 jour
+        one: "%{count} jour"
         other: "%{count} jours"
       x_months:
-        one: 1 mois
+        one: "%{count} mois"
         other: "%{count} mois"
       x_years:
-        one: 1 an
+        one: "%{count} an"
         other: "%{count} ans"
     prompts:
       second: Seconde
@@ -122,6 +122,7 @@ fr-CH:
       exclusion: n'est pas disponible
       greater_than: doit être supérieur à %{count}
       greater_than_or_equal_to: doit être supérieur ou égal à %{count}
+      in: doit être dans l'intervalle %{count}
       inclusion: n'est pas inclus(e) dans la liste
       invalid: n'est pas valide
       less_than: doit être inférieur à %{count}
@@ -146,7 +147,7 @@ fr-CH:
     template:
       body: 'Veuillez vérifier les champs suivants : '
       header:
-        one: 'Impossible d''enregistrer ce(tte) %{model} : 1 erreur'
+        one: 'Impossible d''enregistrer ce(tte) %{model} : %{count} erreur'
         other: 'Impossible d''enregistrer ce(tte) %{model} : %{count} erreurs'
   helpers:
     select:
@@ -168,6 +169,7 @@ fr-CH:
     format:
       delimiter: "'"
       precision: 3
+      round_mode: default
       separator: "."
       significant: false
       strip_insignificant_zeros: false
diff --git a/rails/locale/fr-FR.yml b/rails/locale/fr-FR.yml
index d06c5b8..eea5c75 100644
--- a/rails/locale/fr-FR.yml
+++ b/rails/locale/fr-FR.yml
@@ -22,7 +22,7 @@ fr-FR:
     - 
     - jan.
     - fév.
-    - mar.
+    - mars
     - avr.
     - mai
     - juin
@@ -89,19 +89,19 @@ fr-FR:
         one: plus d'un an
         other: plus de %{count} ans
       x_seconds:
-        one: 1 seconde
+        one: "%{count} seconde"
         other: "%{count} secondes"
       x_minutes:
-        one: 1 minute
+        one: "%{count} minute"
         other: "%{count} minutes"
       x_days:
-        one: 1 jour
+        one: "%{count} jour"
         other: "%{count} jours"
       x_months:
-        one: 1 mois
+        one: "%{count} mois"
         other: "%{count} mois"
       x_years:
-        one: 1 an
+        one: "%{count} an"
         other: "%{count} ans"
     prompts:
       second: Seconde
@@ -122,6 +122,7 @@ fr-FR:
       exclusion: n'est pas disponible
       greater_than: doit être supérieur à %{count}
       greater_than_or_equal_to: doit être supérieur ou égal à %{count}
+      in: doit être dans l'intervalle %{count}
       inclusion: n'est pas inclus(e) dans la liste
       invalid: n'est pas valide
       less_than: doit être inférieur à %{count}
@@ -146,7 +147,7 @@ fr-FR:
     template:
       body: 'Veuillez vérifier les champs suivants : '
       header:
-        one: 'Impossible d''enregistrer ce(tte) %{model} : 1 erreur'
+        one: 'Impossible d''enregistrer ce(tte) %{model} : %{count} erreur'
         other: 'Impossible d''enregistrer ce(tte) %{model} : %{count} erreurs'
   helpers:
     select:
@@ -168,6 +169,7 @@ fr-FR:
     format:
       delimiter: " "
       precision: 3
+      round_mode: default
       separator: ","
       significant: false
       strip_insignificant_zeros: false
diff --git a/rails/locale/fr.yml b/rails/locale/fr.yml
index d9dfc53..aa71af5 100644
--- a/rails/locale/fr.yml
+++ b/rails/locale/fr.yml
@@ -19,10 +19,10 @@ fr:
     - ven
     - sam
     abbr_month_names:
-    - 
+    -
     - jan.
     - fév.
-    - mar.
+    - mars
     - avr.
     - mai
     - juin
@@ -45,7 +45,7 @@ fr:
       long: "%-d %B %Y"
       short: "%-d %b"
     month_names:
-    - 
+    -
     - janvier
     - février
     - mars
@@ -89,19 +89,19 @@ fr:
         one: plus d'un an
         other: plus de %{count} ans
       x_seconds:
-        one: 1 seconde
+        one: "%{count} seconde"
         other: "%{count} secondes"
       x_minutes:
-        one: 1 minute
+        one: "%{count} minute"
         other: "%{count} minutes"
       x_days:
-        one: 1 jour
+        one: "%{count} jour"
         other: "%{count} jours"
       x_months:
-        one: 1 mois
+        one: "%{count} mois"
         other: "%{count} mois"
       x_years:
-        one: 1 an
+        one: "%{count} an"
         other: "%{count} ans"
     prompts:
       second: Seconde
@@ -122,6 +122,7 @@ fr:
       exclusion: n'est pas disponible
       greater_than: doit être supérieur à %{count}
       greater_than_or_equal_to: doit être supérieur ou égal à %{count}
+      in: doit être dans l'intervalle %{count}
       inclusion: n'est pas inclus(e) dans la liste
       invalid: n'est pas valide
       less_than: doit être inférieur à %{count}
@@ -146,7 +147,7 @@ fr:
     template:
       body: 'Veuillez vérifier les champs suivants : '
       header:
-        one: 'Impossible d''enregistrer ce(tte) %{model} : 1 erreur'
+        one: 'Impossible d''enregistrer ce(tte) %{model} : %{count} erreur'
         other: 'Impossible d''enregistrer ce(tte) %{model} : %{count} erreurs'
   helpers:
     select:
@@ -168,6 +169,7 @@ fr:
     format:
       delimiter: " "
       precision: 3
+      round_mode: default
       separator: ","
       significant: false
       strip_insignificant_zeros: false
diff --git a/rails/locale/gl.yml b/rails/locale/gl.yml
index 72e45ca..e017bcb 100644
--- a/rails/locale/gl.yml
+++ b/rails/locale/gl.yml
@@ -59,35 +59,35 @@ gl:
         one: aproximadamente unha hora
         other: "%{count} horas"
       about_x_months:
-        one: aproximadamente 1 mes
+        one: aproximadamente %{count} mes
         other: "%{count} meses"
       about_x_years:
-        one: aproximadamente 1 ano
+        one: aproximadamente %{count} ano
         other: "%{count} anos"
       half_a_minute: medio minuto
       less_than_x_seconds:
         zero: menos dun segundo
-        one: 1 segundo
+        one: "%{count} segundo"
         few: poucos segundos
         other: "%{count} segundos"
       less_than_x_minutes:
         zero: menos dun minuto
-        one: 1 minuto
+        one: "%{count} minuto"
         other: "%{count} minutos"
       over_x_years:
         one: máis dun ano
         other: "%{count} anos"
       x_seconds:
-        one: 1 segundo
+        one: "%{count} segundo"
         other: "%{count} segundos"
       x_minutes:
-        one: 1 minuto
+        one: "%{count} minuto"
         other: "%{count} minuto"
       x_days:
-        one: 1 día
+        one: "%{count} día"
         other: "%{count} días"
       x_months:
-        one: 1 mes
+        one: "%{count} mes"
         other: "%{count} meses"
   errors:
     format: "%{attribute} %{message}"
@@ -101,7 +101,7 @@ gl:
       exclusion: xa existe
       greater_than: debe ser maior que %{count}
       greater_than_or_equal_to: debe ser maior ou igual que %{count}
-      inclusion: non está incluido na lista
+      inclusion: non está incluído na lista
       invalid: non é válido
       less_than: debe ser menor que %{count}
       less_than_or_equal_to: debe ser menor ou igual que %{count}
@@ -114,7 +114,7 @@ gl:
     template:
       body: 'Atopáronse os seguintes problemas:'
       header:
-        one: 1 erro evitou que se puidese gardar o %{model}
+        one: "%{count} erro evitou que se puidese gardar o %{model}"
         other: "%{count} erros evitaron que se puidese gardar o %{model}"
   number:
     currency:
diff --git a/rails/locale/hi-IN.yml b/rails/locale/hi-IN.yml
index d7302f2..7ff0494 100644
--- a/rails/locale/hi-IN.yml
+++ b/rails/locale/hi-IN.yml
@@ -63,10 +63,10 @@ hi-IN:
         one: लग - भग एक घंटा
         other: लग - भग %{count} घंटा
       about_x_months:
-        one: लग - भग 1 महीना
+        one: लग - भग %{count} महीना
         other: लग - भग %{count} महीना
       about_x_years:
-        one: लग - भग 1 साल
+        one: लग - भग %{count} साल
         other: लग - भग %{count} साल
       almost_x_years:
         one: लग - भग एक साल
diff --git a/rails/locale/hi.yml b/rails/locale/hi.yml
index fe7168d..bcc4e5a 100644
--- a/rails/locale/hi.yml
+++ b/rails/locale/hi.yml
@@ -63,10 +63,10 @@ hi:
         one: लगभग एक घंटा
         other: लगभग %{count} घंटा
       about_x_months:
-        one: लगभग 1 महीना
+        one: लगभग %{count} महीना
         other: लगभग %{count} महीना
       about_x_years:
-        one: लगभग 1 साल
+        one: लगभग %{count} साल
         other: लगभग %{count} साल
       almost_x_years:
         one: लगभग एक साल
diff --git a/rails/locale/hr.yml b/rails/locale/hr.yml
index 5e21594..a8cb052 100644
--- a/rails/locale/hr.yml
+++ b/rails/locale/hr.yml
@@ -119,7 +119,7 @@ hr:
         many: "%{count} mjeseci"
         other: "%{count} mjeseci"
       x_years:
-        one: 1 godina
+        one: "%{count} godina"
         few: "%{count} godine"
         many: "%{count} godina"
         other: "%{count} godina"
diff --git a/rails/locale/hu.yml b/rails/locale/hu.yml
index 2876c2c..0e675fb 100644
--- a/rails/locale/hu.yml
+++ b/rails/locale/hu.yml
@@ -60,38 +60,38 @@ hu:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: kb. 1 órája
+        one: kb. %{count} órája
         other: kb. %{count} órája
       about_x_months:
-        one: kb. 1 hónapja
+        one: kb. %{count} hónapja
         other: kb. %{count} hónapja
       about_x_years:
-        one: kb. 1 éve
+        one: kb. %{count} éve
         other: kb. %{count} éve
       almost_x_years:
-        one: majdnem 1 éve
+        one: majdnem %{count} éve
         other: majdnem %{count} éve
       half_a_minute: fél perce
       less_than_x_seconds:
-        one: kevesebb, mint 1 másodperce
+        one: kevesebb, mint %{count} másodperce
         other: kevesebb, mint %{count} másodperce
       less_than_x_minutes:
-        one: kevesebb, mint 1 perce
+        one: kevesebb, mint %{count} perce
         other: kevesebb, mint %{count} perce
       over_x_years:
-        one: több, mint 1 éve
+        one: több, mint %{count} éve
         other: több, mint %{count} éve
       x_seconds:
-        one: 1 másodperce
+        one: "%{count} másodperce"
         other: "%{count} másodperce"
       x_minutes:
-        one: 1 perce
+        one: "%{count} perce"
         other: "%{count} perce"
       x_days:
-        one: 1 napja
+        one: "%{count} napja"
         other: "%{count} napja"
       x_months:
-        one: 1 hónapja
+        one: "%{count} hónapja"
         other: "%{count} hónapja"
     prompts:
       second: Másodperc
@@ -126,7 +126,7 @@ hu:
     template:
       body: 'Problémás mezők:'
       header:
-        one: '1 hiba miatt nem menthető a következő: %{model}'
+        one: '%{count} hiba miatt nem menthető a következő: %{model}'
         other: "%{count} hiba miatt nem menthető a következő: %{model}"
   helpers:
     select:
diff --git a/rails/locale/id.yml b/rails/locale/id.yml
index 0dc2982..ce5a4df 100644
--- a/rails/locale/id.yml
+++ b/rails/locale/id.yml
@@ -78,11 +78,11 @@ id:
       half_a_minute: setengah menit
       less_than_x_seconds:
         zero: kurang dari 1 detik
-        one: kurang dari 1 detik
+        one: kurang dari %{count} detik
         other: kurang dari %{count} detik
       less_than_x_minutes:
         zero: kurang dari 1 menit
-        one: kurang dari 1 menit
+        one: kurang dari %{count} menit
         other: kurang dari  %{count} menit
       over_x_years:
         one: lebih dari setahun
@@ -131,18 +131,18 @@ id:
       required: harus ada
       taken: sudah digunakan
       too_long:
-        one: terlalu panjang (maksimum 1 karakter)
+        one: terlalu panjang (maksimum %{count} karakter)
         other: terlalu panjang (maksimum %{count} karakter)
       too_short:
-        one: terlalu pendek (minimum 1 karakter)
+        one: terlalu pendek (minimum %{count} karakter)
         other: terlalu pendek (minimum %{count} karakter)
       wrong_length:
-        one: jumlah karakter salah (seharusnya 1 karakter)
+        one: jumlah karakter salah (seharusnya %{count} karakter)
         other: jumlah karakter salah (seharusnya %{count} karakter)
     template:
       body: 'Ada masalah dengan field berikut:'
       header:
-        one: 1 kesalahan mengakibatkan %{model} ini tidak bisa disimpan
+        one: "%{count} kesalahan mengakibatkan %{model} ini tidak bisa disimpan"
         other: "%{count} kesalahan mengakibatkan %{model} ini tidak bisa disimpan"
   helpers:
     select:
diff --git a/rails/locale/is.yml b/rails/locale/is.yml
index f607f12..fcef80b 100644
--- a/rails/locale/is.yml
+++ b/rails/locale/is.yml
@@ -63,38 +63,38 @@ is:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: u.þ.b. 1 klukkustund
+        one: u.þ.b. %{count} klukkustund
         other: u.þ.b. %{count} klukkustundir
       about_x_months:
-        one: u.þ.b. 1 mánuður
+        one: u.þ.b. %{count} mánuður
         other: u.þ.b. %{count} mánuðir
       about_x_years:
-        one: u.þ.b. 1 ár
+        one: u.þ.b. %{count} ár
         other: u.þ.b. %{count} ár
       almost_x_years:
-        one: næstum 1 ár
+        one: næstum %{count} ár
         other: næstum %{count} ár
       half_a_minute: hálf mínúta
       less_than_x_seconds:
-        one: minna en 1 sekúnda
+        one: minna en %{count} sekúnda
         other: minna en %{count} sekúndur
       less_than_x_minutes:
-        one: minna en 1 mínúta
+        one: minna en %{count} mínúta
         other: minna en %{count} mínútur
       over_x_years:
-        one: meira en 1 ár
+        one: meira en %{count} ár
         other: meira en %{count} ár
       x_seconds:
-        one: 1 sekúnda
+        one: "%{count} sekúnda"
         other: "%{count} sekúndur"
       x_minutes:
-        one: 1 mínúta
+        one: "%{count} mínúta"
         other: "%{count} mínútur"
       x_days:
-        one: 1 dagur
+        one: "%{count} dagur"
         other: "%{count} dagar"
       x_months:
-        one: 1 mánuður
+        one: "%{count} mánuður"
         other: "%{count} mánuðir"
     prompts:
       second: Sekúnda
@@ -126,13 +126,13 @@ is:
       present: verður að vera autt
       taken: er þegar í notkun
       too_long:
-        one: er of langt (má mest vera 1 stafur)
+        one: er of langt (má mest vera %{count} stafur)
         other: er of langt (má mest vera %{count} stafir)
       too_short:
-        one: er of stutt (má minnst vera 1 stafur)
+        one: er of stutt (má minnst vera %{count} stafur)
         other: er of stutt (má minnst vera %{count} stafir)
       wrong_length:
-        one: er af rangri lengd (má mest vera 1 stafur)
+        one: er af rangri lengd (má mest vera %{count} stafur)
         other: er af rangri lengd (má mest vera %{count} stafir)
     template:
       body: 'Villur fundust í eftirfarandi dálkum:'
diff --git a/rails/locale/iso-639-2/csb.yml b/rails/locale/iso-639-2/csb.yml
new file mode 100644
index 0000000..84b8505
--- /dev/null
+++ b/rails/locale/iso-639-2/csb.yml
@@ -0,0 +1,203 @@
+csb:
+  date:
+    abbr_day_names:
+    - nie
+    - pòn
+    - wtó
+    - str
+    - czw
+    - pią
+    - sob
+    abbr_month_names:
+    - 
+    - stë
+    - gro
+    - str
+    - łżë
+    - môj
+    - cze
+    - lëp
+    - zél
+    - séw
+    - ruj
+    - lës
+    - gòd
+    day_names:
+    - niedzela
+    - pòniedzôłk
+    - wtórk
+    - strzoda
+    - czwiôrtk
+    - piątk
+    - sobòta
+    formats:
+      default: ! '%d-%m-%Y'
+      long: ! '%B %d, %Y'
+      short: ! '%d %b'
+    month_names:
+    - 
+    - stëcznik
+    - gromicznik
+    - strëmiannik
+    - łżëkwiôt
+    - môj
+    - czerwińc
+    - lëpińc
+    - zélnik
+    - séwnik
+    - rujan
+    - lëstopadnik
+    - gòdnik
+    order:
+    - :day
+    - :month
+    - :year
+  datetime:
+    distance_in_words:
+      about_x_hours:
+        few: kòle %{count} gòdzën
+        one: kòle gòdzënë
+        other: kòle %{count} gòdzën
+      about_x_months:
+        few: kòle %{count} miesąców
+        one: kòle miesąca
+        other: kòle %{count} miesąców
+      about_x_years:
+        few: kòle %{count} lat
+        one: kòle rokù
+        other: kòle %{count} lat
+      almost_x_years:
+        few: wnet %{count} lata
+        one: wnet rok
+        other: wnet %{count} lat
+      half_a_minute: pół minutë
+      less_than_x_minutes:
+        few: mni jak %{count} minutë
+        one: mni jak minuta
+        other: mni jak %{count} minutów
+      less_than_x_seconds:
+        few: mni jak %{count} sekùndë
+        one: mni jak sekùnda
+        other: mni jak %{count} sekùndów
+      over_x_years:
+        few: wicy jak %{count} lata
+        one: wicy jak rok
+        other: wicy jak %{count} lat
+      x_days:
+        few: ! '%{count} dni'
+        one: "%{count} dzéń"
+        other: ! '%{count} dniów'
+      x_minutes:
+        few: ! '%{count} minutë'
+        one: "%{count} minuta"
+        other: ! '%{count} minutów'
+      x_months:
+        few: ! '%{count} miesiące'
+        one: "%{count} miesąc"
+        other: ! '%{count} miesięców'
+      x_seconds:
+        few: ! '%{count} sekùndë'
+        one: "%{count} sekùnda"
+        other: ! '%{count} sekùndów'
+    prompts:
+      day: Dzéń
+      hour: Gòdzëna
+      minute: Minuta
+      month: Miesiąc
+      second: Sekunda
+      year: Rok
+  errors:
+    format: ! '%{attribute} %{message}'
+    messages:
+      accepted: mùszi bëc zaakceptowóné
+      blank: ni mòże bëc pùsté
+      confirmation: nie zgòdzô sã z pòcwierdzenim
+      empty: ni mòżé bëc pùsté
+      equal_to: mùszi bëc równe %{count}
+      even: mùszé bëc parzësté
+      exclusion: je zarezerwowóné
+      greater_than: mùszi bëc wikszé òd %{count}
+      greater_than_or_equal_to: mùszi bëc wikszé abò równé %{count}
+      inclusion: ni ma na lësce dopùszczalnëch wôrtnotów
+      invalid: je zmiłkòwé
+      less_than: mùszi bëc mniszé òd %{count}
+      less_than_or_equal_to: mùszi bëc mniszé abò równé %{count}
+      not_a_number: nie je lëczbą
+      not_an_integer: muszi bëc całowną lëczbą
+      odd: mùszi bëc nieparzësté
+      record_invalid: ! 'Negatiwné sprôwdzenié pòprawnoscë: %{errors}'
+      taken: je ju zajãté
+      too_long: je za dłëdżé (maksymalno %{count} znaków)
+      too_short: je za krótczé (przënômni %{count} znaków)
+      wrong_length: mô lëchą długòtã (bë mùsza miec %{count} znaków)
+    template:
+      body: ! 'Fele tikają sã nëch pól:'
+      header:
+        one: ! '%{model} nie òstôł zachòwóny przez jedną felã'
+        other: ! '%{model} nie òstôł zachòwóny przez %{count} felów'
+  helpers:
+    select:
+      prompt: Proszã wëbrac
+    submit:
+      create: Ùsôdzë %{model}
+      submit: Zapiszë %{model}
+      update: Aktualizëjë %{model}
+  number:
+    currency:
+      format:
+        delimiter: ! ' '
+        format: ! '%u %n'
+        precision: 2
+        separator: ! ','
+        significant: false
+        strip_insignificant_zeros: true
+        unit: PLN
+    format:
+      delimiter: ! ' '
+      precision: 3
+      separator: ! ','
+      significant: false
+      strip_insignificant_zeros: false
+    human:
+      decimal_units:
+        format: ! '%n %u'
+        units:
+          billion: Miliard
+          million: Milión
+          quadrillion: Biliard
+          thousand: Tësąc
+          trillion: Bilión
+          unit: ''
+      format:
+        delimiter: ''
+        precision: 3
+        significant: true
+        strip_insignificant_zeros: true
+      storage_units:
+        format: ! '%n %u'
+        units:
+          byte:
+            one: bajt
+            other: bajtë
+          gb: GB
+          kb: KB
+          mb: MB
+          tb: TB
+    percentage:
+      format:
+        delimiter: ''
+    precision:
+      format:
+        delimiter: ''
+  support:
+    array:
+      last_word_connector: ! ' a téż '
+      two_words_connector: ! ' ë '
+      words_connector: ! ', '
+  time:
+    am: przed pôłnim
+    formats:
+      default: ! '%a, %d %b %Y %H:%M:%S %z'
+      long: ! '%B %d, %Y %H:%M'
+      short: ! '%d %b %H:%M'
+    pm: pò pôłnim
diff --git a/rails/locale/iso-639-2/dsb.yml b/rails/locale/iso-639-2/dsb.yml
new file mode 100644
index 0000000..ddb1311
--- /dev/null
+++ b/rails/locale/iso-639-2/dsb.yml
@@ -0,0 +1,208 @@
+dsb:
+  date:
+    abbr_day_names:
+    - Nj
+    - Pó
+    - Wu
+    - Sr
+    - St
+    - Pě
+    - So
+    abbr_month_names:
+    - 
+    - jan
+    - feb
+    - měr
+    - apr
+    - maj
+    - jun
+    - jul
+    - awg
+    - sep
+    - okt
+    - now
+    - dec
+    day_names:
+    - njeźela
+    - pónjeźele
+    - wałtora
+    - srjoda
+    - stwórtk
+    - pětk
+    - sobota
+    formats:
+      default: ! '%d. %m. %Y'
+      long: ! '%d. %B %Y'
+      short: ! '%d %b'
+    month_names:
+    - 
+    - Januar
+    - Februar
+    - Měrc
+    - Apryl
+    - Maj
+    - Junij
+    - Julij
+    - Awgust
+    - September
+    - Oktober
+    - Nowember
+    - December
+    order:
+    - :day
+    - :month
+    - :year
+  datetime:
+    distance_in_words:
+      about_x_hours:
+        few: něźi %{count} góźinami
+        one: něźi %{count} góźinu
+        other: něźi %{count} góźinami
+        two: něźi %{count} góźinoma
+      about_x_months:
+        few: něźi %{count} mjasecami
+        one: něźi %{count} mjasecom
+        other: něźi %{count} mjasecami
+        two: něźi %{count} mjasecoma
+      about_x_years:
+        few: něźi %{count} lětami
+        one: něźi %{count} lětom
+        other: něźi %{count} lětami
+        two: něźi %{count} lětoma
+      half_a_minute: poł minuty
+      less_than_x_minutes:
+        few: mjenjej ako %{count} minutami
+        one: mjenjej ako %{count} minutu
+        other: mjenjej ako %{count} minutami
+        two: mjenjej ako %{count} minutoma
+      less_than_x_seconds:
+        few: mjenjej ako %{count} sekundami
+        one: mjenjej ako %{count} sekundu
+        other: mjenjej ako %{count} sekundami
+        two: mjenjej ako %{count} sekundoma
+      over_x_years:
+        few: wěcej ako %{count} lětami
+        one: wěcej ako %{count} lětom
+        other: wěcej ako %{count} lětami
+        two: wěcej ako %{count} lětoma
+      x_days:
+        few: ! '%{count} dnjami'
+        one: "%{count} dnjom"
+        other: ! '%{count} dnjami'
+        two: ! '%{count} dnjoma'
+      x_minutes:
+        few: ! '%{count} minutami'
+        one: "%{count} minutu"
+        other: ! '%{count} minutami'
+        two: ! '%{count} minutoma'
+      x_months:
+        few: ! '%{count} mjasecami'
+        one: "%{count} mjasecom"
+        other: ! '%{count} mjasecami'
+        two: ! '%{count} mjasecoma'
+      x_seconds:
+        few: ! '%{count} sekundami'
+        one: "%{count} sekundu"
+        other: ! '%{count} sekundami'
+        two: ! '%{count} sekundoma'
+  errors:
+    format: ! '%{attribute} %{message}'
+    messages:
+      accepted: musy se wobkšuśiś
+      blank: jo trěbny
+      confirmation: njejo se wobkšuśiło
+      empty: njesmějo prozny byś
+      equal_to: musy jadnak %{count} byś
+      even: musy rowna licba byś
+      exclusion: njestoj k dispoziciji
+      greater_than: musy wětšy ako %{count} byś
+      greater_than_or_equal_to: musy wětšy abo jadnak %{count} byś
+      inclusion: njejo płaśiwa gódnota
+      invalid: njejo płaśiwy
+      less_than: musy mjeńšy ako %{count} byś
+      less_than_or_equal_to: musy mjeńšy abo jadnak %{count} byś
+      not_a_number: njejo licba
+      odd: musy njerowna licba byś
+      taken: jo južo w datowej bance
+      too_long:
+        few: jo pśedłujki (maks. %{count} znamješka)
+        one: jo pśedłujki (maks. %{count} znamješko)
+        other: jo pśedłujki (maks. %{count} znamješkow)
+        two: jo pśedłujki (maks. %{count} znamješce)
+      too_short:
+        few: jo překrotki (min. %{count} znamješka)
+        one: jo překrotki (min. %{count} znamješko)
+        other: jo překrotki (min. %{count} znamješkow)
+        two: jo překrotki (min. %{count} znamješce)
+      wrong_length:
+        few: njama pšawu dłujkosć (%{count} znamješka wócakane)
+        one: njama pšawu dłujkosć (%{count} znamješko wócakane)
+        other: njama pšawu dłujkosć (%{count} znamješkow wócakanych)
+        two: njama pšawu dłujkosć (%{count} znamješce wócakanej)
+    template:
+      body: ! 'Pšosym pśeglědaj slědujuce póla:'
+      header:
+        few: Pśi składowanju objekta %{model} jo k %{count} zmólkam dojšło a njejo
+          było móžno składowaś
+        one: Pśi składowanju objekta %{model} jo k zmólce dojšło a njejo było móžno
+          składowaś
+        other: Pśi składowanju objekta %{model} jo k %{count} zmólkam dojšło a njejo
+          było móžno składowaś
+        two: Pśi składowanju objekta %{model} jo k %{count} zmólkam dojšło a njejo
+          było móžno składowaś
+  number:
+    currency:
+      format:
+        delimiter: ! ' '
+        format: ! '%n %u'
+        precision: 2
+        separator: ! ','
+        significant: false
+        strip_insignificant_zeros: false
+        unit: €
+    format:
+      delimiter: .
+      precision: 3
+      separator: ! ','
+      significant: false
+      strip_insignificant_zeros: false
+    human:
+      decimal_units:
+        format: ! '%n %u'
+        units:
+          unit: ''
+      format:
+        delimiter: ''
+        precision: 1
+        significant: true
+        strip_insignificant_zeros: true
+      storage_units:
+        format: ! '%n %u'
+        units:
+          byte:
+            few: bajty
+            one: bajt
+            other: bajtow
+            two: bajta
+          gb: GB
+          kb: KB
+          mb: MB
+          tb: TB
+    percentage:
+      format:
+        delimiter: ''
+    precision:
+      format:
+        delimiter: ''
+  support:
+    array:
+      last_word_connector: ! ' a '
+      two_words_connector: ! ' a '
+      words_connector: ! ', '
+  time:
+    am: dopołdnja
+    formats:
+      default: ! '%A, %d. %B %Y, %H:%M góź.'
+      long: ! '%A, %d. %B %Y, %H:%M góź.'
+      short: ! '%d. %B, %H:%M góź.'
+    pm: wótpołdnja
diff --git a/rails/locale/iso-639-2/fur.yml b/rails/locale/iso-639-2/fur.yml
new file mode 100644
index 0000000..51916e9
--- /dev/null
+++ b/rails/locale/iso-639-2/fur.yml
@@ -0,0 +1,192 @@
+fur:
+  date:
+    abbr_day_names:
+    - dom
+    - lun
+    - mar
+    - mie
+    - joi
+    - vin
+    - sab
+    abbr_month_names:
+    - 
+    - Zen
+    - Fev
+    - Mar
+    - Avr
+    - Mai
+    - Jug
+    - Lui
+    - Avo
+    - Set
+    - Otu
+    - Nov
+    - Dic
+    day_names:
+    - domenie
+    - lunis
+    - martars
+    - miercus
+    - joibe
+    - vinars
+    - sabide
+    formats:
+      default: ! '%d-%m-%Y'
+      long: ! '%d di %B dal %Y'
+      short: ! '%d di %b'
+    month_names:
+    - 
+    - Zenâr
+    - Fevrâr
+    - Març
+    - Avrîl
+    - Mai
+    - Jugn
+    - Lui
+    - Avost
+    - Setembar
+    - Otubar
+    - Novembar
+    - Dicembar
+    order:
+    - :day
+    - :month
+    - :year
+  datetime:
+    distance_in_words:
+      about_x_hours:
+        one: cirche une ore
+        other: cirche %{count} oris
+      about_x_months:
+        one: cirche un mês
+        other: cirche %{count} mês
+      about_x_years:
+        one: cirche un an
+        other: cirche %{count} agns
+      almost_x_years:
+        one: cuasi un an
+        other: cuasi %{count} agns
+      half_a_minute: mieç minût
+      less_than_x_minutes:
+        one: mancul di un minût
+        other: mancul di %{count} minûts
+      less_than_x_seconds:
+        one: mancul di un secont
+        other: mancul di %{count} seconts
+      over_x_years:
+        one: plui di un an
+        other: plui di %{count} agns
+      x_days:
+        one: "%{count} zornade"
+        other: ! '%{count} zornadis'
+      x_minutes:
+        one: "%{count} minût"
+        other: ! '%{count} minûts'
+      x_months:
+        one: "%{count} mês"
+        other: ! '%{count} mês'
+      x_seconds:
+        one: "%{count} secont"
+        other: ! '%{count} seconts'
+    prompts:
+      day: Zornade
+      hour: Ore
+      minute: Minût
+      month: Mês
+      second: Secont
+      year: An
+  errors:
+    format: ! '%{attribute} %{message}'
+    messages:
+      accepted: al à di jessi acetât
+      blank: nol pues jessi lassât in blanc
+      confirmation: nol è compagn de conferme
+      empty: nol pues jessi vueit
+      equal_to: al à di jessi compagn di %{count}
+      even: al à di jessi pâr
+      exclusion: al è riservât
+      greater_than: al à di jessi plui grant di %{count}
+      greater_than_or_equal_to: al à di jessi plui grant o compagn di %{count}
+      inclusion: nol è includût te liste
+      invalid: nol è valit
+      less_than: al à di jessi mancul di %{count}
+      less_than_or_equal_to: al à di jessi mancul o compagn di %{count}
+      not_a_number: nol è un numar
+      not_an_integer: al à di jessi un numar intîr
+      odd: al à di jessi dispar
+      record_invalid: ! 'Convalide falide: %{errors}'
+      taken: al è za doprât
+      too_long: al è masse lunc (il massim al è %{count} letaris)
+      too_short: al è masse curt (il minim al è %{count} letaris)
+      wrong_length: nol à la lungjece juste (al à di jessi di %{count} letaris)
+    template:
+      body: ! 'Torne par plasê a controlâ i cjamps ca sot:'
+      header:
+        one: ! 'No si pues salvâ chest %{model}: %{count} erôr'
+        other: ! 'No si pues salvâ chest %{model}: %{count} erôrs.'
+  helpers:
+    select:
+      prompt: Sielç par plasê
+    submit:
+      create: Cree %{model}
+      submit: Salve %{model}
+      update: Inzorne %{model}
+  number:
+    currency:
+      format:
+        delimiter: .
+        format: ! '%n %u'
+        precision: 2
+        separator: ! ','
+        significant: false
+        strip_insignificant_zeros: false
+        unit: €
+    format:
+      delimiter: .
+      precision: 3
+      separator: ! ','
+      significant: false
+      strip_insignificant_zeros: false
+    human:
+      decimal_units:
+        format: ! '%n %u'
+        units:
+          billion: bilion
+          million: milion
+          quadrillion: cuadrilion
+          thousand: miâr
+          trillion: trilion
+          unit: ''
+      format:
+        delimiter: ''
+        precision: 1
+        significant: true
+        strip_insignificant_zeros: true
+      storage_units:
+        format: ! '%n %u'
+        units:
+          byte:
+            one: Byte
+            other: Byte
+          gb: Gb
+          kb: Kb
+          mb: Mb
+          tb: Tb
+    percentage:
+      format:
+        delimiter: ''
+    precision:
+      format:
+        delimiter: ''
+  support:
+    array:
+      last_word_connector: ! ' e '
+      two_words_connector: ! ' e '
+      words_connector: ! ', '
+  time:
+    am: am
+    formats:
+      default: ! '%a %d di %b dal %Y, %H:%M:%S %z'
+      long: ! '%d di %B dal %Y %H:%M'
+      short: ! '%d di %b %H:%M'
+    pm: pm
diff --git a/rails/locale/iso-639-2/gsw-CH.yml b/rails/locale/iso-639-2/gsw-CH.yml
new file mode 100644
index 0000000..4d7d631
--- /dev/null
+++ b/rails/locale/iso-639-2/gsw-CH.yml
@@ -0,0 +1,196 @@
+"gsw-CH":
+  date:
+    abbr_day_names:
+    - Su
+    - Mä
+    - Zi
+    - Mi
+    - Du
+    - Fr
+    - Sa
+    abbr_month_names:
+    - 
+    - Jan
+    - Feb
+    - Mär
+    - Apr
+    - Mai
+    - Jun
+    - Jul
+    - Aug
+    - Sep
+    - Okt
+    - Nov
+    - Dez
+    day_names:
+    - Sunntig
+    - Mäntig
+    - Ziischtig
+    - Mittwuch
+    - Dunschtig
+    - Friitig
+    - Samschtig
+    formats:
+      default: ! '%d.%m.%Y'
+      long: ! '%e. %B %Y'
+      short: ! '%e. %b'
+    month_names:
+    - 
+    - Januar
+    - Februar
+    - März
+    - April
+    - Mai
+    - Juni
+    - Juli
+    - Auguscht
+    - September
+    - Oktober
+    - November
+    - Dezember
+    order:
+    - :day
+    - :month
+    - :year
+  datetime:
+    distance_in_words:
+      about_x_hours:
+        one: öppe ei stund
+        other: öppe %{count} stundä
+      about_x_months:
+        one: öppe ein monet
+        other: öppe %{count} mönet
+      about_x_years:
+        one: öppe es johr
+        other: öppe %{count} johr
+      almost_x_years:
+        one: fascht es johr
+        other: fascht %{count} johr
+      half_a_minute: e halbi minute
+      less_than_x_minutes:
+        one: weniger als e minute
+        other: weniger als %{count} minute
+      less_than_x_seconds:
+        one: weniger als e sekunde
+        other: weniger als %{count} sekunde
+      over_x_years:
+        one: meh als es johr
+        other: meh als %{count} johr
+      x_days:
+        one: ein tag
+        other: ! '%{count} täg'
+      x_minutes:
+        one: ei minute
+        other: ! '%{count} minute'
+      x_months:
+        one: ein monet
+        other: ! '%{count} mönet'
+      x_seconds:
+        one: ei sekunde
+        other: ! '%{count} sekunde'
+    prompts:
+      day: tag
+      hour: stund
+      minute: minute
+      month: monet
+      second: sekunde
+      year: johr
+  errors:
+    format: ! '%{attribute} %{message}'
+    messages:
+      accepted: muess akzeptiert werdä
+      blank: muess usgfüllt werdä
+      confirmation: stimmt nöd mit dr bestätigung überii
+      empty: muess usgfüllt werdä
+      equal_to: muess genau %{count} si
+      even: muess grad si
+      exclusion: isch nöd verfüegbar
+      greater_than: muess grösser als %{count} si
+      greater_than_or_equal_to: muess grösser oder gliich %{count} si
+      inclusion: isch kein gültige wärt
+      invalid: isch nöd gültig
+      less_than: muess chliner als %{count} si
+      less_than_or_equal_to: muess chliner oder gliich %{count} si
+      not_a_number: isch kei zahl
+      not_an_integer: muess ganzzahlig si
+      odd: muess ungrad si
+      record_invalid: ! 'D gültigkeitsprüefig hät nöd funktioniert: %{errors}'
+      taken: isch scho vergäh
+      too_long: isch z lang (nöd meh als %{count} zeichä)
+      too_short: ist z churz (nöd weniger als %{count} zeichä)
+      wrong_length: hät di falsch längi (muess genau %{count} zeichä ha)
+    template:
+      body: ! 'Bitte überprüefend si folgendi felder:'
+      header:
+        one: ! 'Han %{model} nöd chönne speicherä: ein fähler.'
+        other: ! 'Han %{model} nöd chönne speicherä: %{count} fähler.'
+  helpers:
+    select:
+      prompt: Bitte wähle
+    submit:
+      create: ! '%{model} erstellä'
+      submit: ! '%{model} speicherä'
+      update: ! '%{model} aktualisiere'
+  number:
+    currency:
+      format:
+        delimiter: "'"
+        format: ! '%n %u'
+        precision: 2
+        separator: ! '.'
+        significant: false
+        strip_insignificant_zeros: false
+        unit: CHF
+    format:
+      delimiter: "'"
+      precision: 2
+      separator: ! ','
+      significant: false
+      strip_insignificant_zeros: false
+    human:
+      decimal_units:
+        format: ! '%n %u'
+        units:
+          billion:
+            one: milliarde
+            other: milliarde
+          million: millione
+          quadrillion:
+            one: billiarde
+            other: billiarde
+          thousand: tuusig
+          trillion: billione
+          unit: ''
+      format:
+        delimiter: ''
+        precision: 1
+        significant: true
+        strip_insignificant_zeros: true
+      storage_units:
+        format: ! '%n %u'
+        units:
+          byte:
+            one: Byte
+            other: Bytes
+          gb: GB
+          kb: KB
+          mb: MB
+          tb: TB
+    percentage:
+      format:
+        delimiter: ''
+    precision:
+      format:
+        delimiter: ''
+  support:
+    array:
+      last_word_connector: ! ' und '
+      two_words_connector: ! ' und '
+      words_connector: ! ', '
+  time:
+    am: vormittags
+    formats:
+      default: ! '%A, %d. %B %Y, %H:%M Uhr'
+      long: ! '%A, %d. %B %Y, %H:%M Uhr'
+      short: ! '%d. %B, %H:%M Uhr'
+    pm: nachmittags
diff --git a/rails/locale/iso-639-2/hsb.yml b/rails/locale/iso-639-2/hsb.yml
new file mode 100644
index 0000000..eb8ad4d
--- /dev/null
+++ b/rails/locale/iso-639-2/hsb.yml
@@ -0,0 +1,207 @@
+hsb:
+  date:
+    abbr_day_names:
+    - Nj
+    - Pó
+    - Wu
+    - Sr
+    - Št
+    - Pj
+    - So
+    abbr_month_names:
+    - 
+    - jan
+    - feb
+    - měr
+    - apr
+    - mej
+    - jun
+    - jul
+    - awg
+    - sep
+    - okt
+    - now
+    - dec
+    day_names:
+    - njedźela
+    - póndźela
+    - wutora
+    - srjeda
+    - štwórtk
+    - pjatk
+    - sobota
+    formats:
+      default: ! '%d. %m. %Y'
+      long: ! '%d. %B %Y'
+      short: ! '%d %b'
+    month_names:
+    - 
+    - Januar
+    - Februar
+    - Měrc
+    - Apryl
+    - Meja
+    - Junij
+    - Julij
+    - Awgust
+    - September
+    - Oktober
+    - Nowember
+    - December
+    order:
+    - :day
+    - :month
+    - :year
+  datetime:
+    distance_in_words:
+      about_x_hours:
+        few: něhdźe %{count} hodźinami
+        one: něhdźe %{count} hodźinu
+        other: něhdźe %{count} hodźinami
+        two: něhdźe %{count} hodźinomaj
+      about_x_months:
+        few: něhdźe %{count} měsacami
+        one: něhdźe %{count} měsacom
+        other: něhdźe %{count} měsacami
+        two: něhdźe %{count} měsacomaj
+      about_x_years:
+        few: něhdźe %{count} lětami
+        one: něhdźe %{count} lětom
+        other: něhdźe %{count} lětami
+        two: něhdźe %{count} lětomaj
+      half_a_minute: poł mjeńšiny
+      less_than_x_minutes:
+        few: mjenje hač %{count} mjeńšinami
+        one: mjenje hač %{count} mjeńšinu
+        other: mjenje hač %{count} mjeńšinami
+        two: mjenje hač %{count} mjeńšinomaj
+      less_than_x_seconds:
+        few: mjenje hač %{count} sekundami
+        one: mjenje hač %{count} sekundu
+        other: mjenje hač %{count} sekundami
+        two: mjenje hač %{count} sekundomaj
+      over_x_years:
+        few: přez %{count} lětami
+        one: přez %{count} lětom
+        other: přez %{count} lětami
+        two: přez %{count} lětomaj
+      x_days:
+        few: ! '%{count} dnjemi'
+        one: "%{count} dnjom"
+        other: ! '%{count} dnjemi'
+        two: ! '%{count} dnjomaj'
+      x_minutes:
+        few: ! '%{count} mjeńšinami'
+        one: "%{count} mjeńšinu"
+        other: ! '%{count} mjeńšinami'
+        two: ! '%{count} mjeńšinomaj'
+      x_months:
+        few: ! '%{count} měsacami'
+        one: "%{count} měsacom"
+        other: ! '%{count} měsacami'
+        two: ! '%{count} měsacomaj'
+      x_seconds:
+        few: ! '%{count} sekundami'
+        one: "%{count} sekundu"
+        other: ! '%{count} sekundami'
+        two: ! '%{count} sekundomaj'
+  errors:
+    format: ! '%{attribute} %{message}'
+    messages:
+      accepted: dyrbi so wobkrućić
+      blank: je trěbny
+      confirmation: njebu wobkrućene
+      empty: njesmě prózdny być
+      equal_to: dyrbi runja %{count} być
+      even: dyrbi runa ličba być
+      exclusion: njesteji k dispoziciji
+      greater_than: dyrbi wjetši hač %{count} być
+      greater_than_or_equal_to: dyrbi wjetši abo runja %{count} być
+      inclusion: njeje płaćiwa hódnota
+      invalid: njeje płaćiwy
+      less_than: dyrbi mjenje hač %{count} być
+      less_than_or_equal_to: dyrbi mjenje abo runja %{count} być
+      not_a_number: njeje ličba
+      odd: dyrbi njeruna ličby być
+      taken: je hižo w datowej bance
+      too_long:
+        few: je předołhi (maks. %{count} znamješka)
+        one: je předołhi (maks. %{count} znamješko)
+        other: je předołhi (maks. %{count} znamješkow)
+        two: je předołhi (maks. %{count} znamješce)
+      too_short:
+        few: je překrótki (min. %{count} znamješka)
+        one: je překrótki (min. %{count} znamješko)
+        other: je překrótki (min. %{count} znamješkow)
+        two: je překrótki (min. %{count} znamješće)
+      wrong_length:
+        few: nima prawu dołhosć (%{count} znamješka wočakowane)
+        one: nima prawu dołhosć (%{count} znamješko wočakowane)
+        other: nima prawu dołhosć (%{count} znamješkow wočakowanych)
+        two: nima prawu dołhosć (%{count} znamješce wočakowanej)
+    template:
+      body: ! 'Prošu přepruwuj slědowace pola:'
+      header:
+        few: Při składowanju objekta %{model} je k %{count} zmylkam dóšło a njebě
+          móžno składować
+        one: Při składowanju objekta %{model} je k zmylkej dóšło a njebě móžno składować
+        other: Při składowanju objekta %{model} je k %{count} zmylkam dóšło a njebě
+          móžno składować
+        two: Při składowanju objekta %{model} je k %{count} zmylkam dóšło a njebě
+          móžno składować
+  number:
+    currency:
+      format:
+        delimiter: ! ' '
+        format: ! '%n %u'
+        precision: 2
+        separator: ! ','
+        significant: false
+        strip_insignificant_zeros: false
+        unit: €
+    format:
+      delimiter: .
+      precision: 3
+      separator: ! ','
+      significant: false
+      strip_insignificant_zeros: false
+    human:
+      decimal_units:
+        format: ! '%n %u'
+        units:
+          unit: ''
+      format:
+        delimiter: ''
+        precision: 1
+        significant: true
+        strip_insignificant_zeros: true
+      storage_units:
+        format: ! '%n %u'
+        units:
+          byte:
+            few: bajty
+            one: bajt
+            other: bajtow
+            two: bajtaj
+          gb: GB
+          kb: KB
+          mb: MB
+          tb: TB
+    percentage:
+      format:
+        delimiter: ''
+    precision:
+      format:
+        delimiter: ''
+  support:
+    array:
+      last_word_connector: ! ' a '
+      two_words_connector: ! ' a '
+      words_connector: ! ', '
+  time:
+    am: dopołdnja
+    formats:
+      default: ! '%A, %d. %B %Y, %H:%M hodź'
+      long: ! '%A, %d. %B %Y, %H:%M hodź.'
+      short: ! '%d. %B, %H:%M hodź.'
+    pm: popołdnju
diff --git a/rails/locale/iso-639-2/scr.yml b/rails/locale/iso-639-2/scr.yml
new file mode 100644
index 0000000..93be0dd
--- /dev/null
+++ b/rails/locale/iso-639-2/scr.yml
@@ -0,0 +1,236 @@
+scr:
+  date:
+    abbr_day_names:
+    - Ned
+    - Pon
+    - Uto
+    - Sre
+    - Čet
+    - Pet
+    - Sub
+    abbr_month_names:
+    - 
+    - Jan
+    - Feb
+    - Mar
+    - Apr
+    - Maj
+    - Jun
+    - Jul
+    - Avg
+    - Sep
+    - Okt
+    - Nov
+    - Dec
+    day_names:
+    - Nedelja
+    - Ponedeljak
+    - Utorak
+    - Sreda
+    - Četvrtak
+    - Petak
+    - Subota
+    formats:
+      default: ! '%d/%m/%Y'
+      long: ! '%B %e, %Y'
+      short: ! '%e %b'
+    month_names:
+    - 
+    - Januar
+    - Februar
+    - Mart
+    - April
+    - Maj
+    - Jun
+    - Jul
+    - Avgust
+    - Septembar
+    - Oktobar
+    - Novembar
+    - Decembar
+    order:
+    - :day
+    - :month
+    - :year
+  datetime:
+    distance_in_words:
+      about_x_hours:
+        one: oko %{count} sat
+        few: oko %{count} sata
+        many: oko %{count} sati
+        other: oko %{count} sati
+      about_x_months:
+        one: oko %{count} mesec
+        few: oko %{count} meseca
+        many: oko %{count} meseci
+        other: oko %{count} meseci
+      about_x_years:
+        one: oko %{count} godine
+        few: oko %{count} godine
+        many: oko %{count} godina
+        other: oko %{count} godina
+      almost_x_years:
+        one: skoro %{count} godina
+        few: skoro %{count} godine
+        many: skoro %{count} godina
+        other: skoro %{count} godina
+      half_a_minute: pola minute
+      less_than_x_minutes:
+        one: manje od %{count} minut
+        few: manje od %{count} minuta
+        many: manje od %{count} minuta
+        other: manje od %{count} minuta
+      less_than_x_seconds:
+        few: manje od %{count} sekunde
+        one: manje od %{count} sekund
+        many: manje od %{count} sekundi
+        other: manje od %{count} sekundi
+      over_x_years:
+        one: preko %{count} godine
+        few: preko %{count} godine
+        many: preko %{count} godina
+        other: preko %{count} godina
+      x_days:
+        one: ! '%{count} dan'
+        few: ! '%{count} dana'
+        many: ! '%{count} dana'
+        other: ! '%{count} dana'
+      x_minutes:
+        one: ! '%{count} minut'
+        few: ! '%{count} minuta'
+        many: ! '%{count} minuta'
+        other: ! '%{count} minuta'
+      x_months:
+        one: ! '%{count} mesec'
+        few: ! '%{count} meseca'
+        many: ! '%{count} meseci'
+        other: ! '%{count} meseci'
+      x_seconds:
+        one: ! '%{count} sekunda'
+        few: ! '%{count} sekunde'
+        many: ! '%{count} sekundi'
+        other: ! '%{count} sekundi'
+    prompts:
+      day: Dan
+      hour: Sat
+      minute: Minut
+      month: Mesec
+      second: Sekund
+      year: Godina
+  errors:
+    format: ! '%{attribute} %{message}'
+    messages:
+      accepted: mora biti prihvaćen
+      blank: ne sme biti prazan
+      present: mora biti prazan
+      confirmation: se ne slaže sa potvrdom
+      empty: ne sme biti prazan
+      equal_to: mora biti jednak %{count}
+      even: mora biti paran
+      exclusion: je rezervisan
+      greater_than: mora biti veći od %{count}
+      greater_than_or_equal_to: mora biti veći ili jednak %{count}
+      inclusion: nije u listi
+      invalid: nije ispravan
+      less_than: mora biti manji od %{count}
+      less_than_or_equal_to: mora biti manji ili jednak %{count}
+      not_a_number: nije broj
+      not_an_integer: nije ceo broj
+      odd: mora biti neparan
+      record_invalid: ! 'Validacija nije uspela: %{errors}'
+      restrict_dependent_destroy:
+        one: "Nije moguće obrisati zapis jer postoji zavisan %{record}"
+        many: "Nije moguće obrisati zapis jer postoje zavisni %{record}"
+      taken: je već zauzet
+      too_long:
+        one: je predugačak (maksimum je %{count} znak)
+        few: je predugačak (maksimum je %{count} znaka)
+        many: je predugačak (maksimum je %{count} znakova)
+        other: je predugačak (maksimum je %{count} znakova)
+      too_short:
+        one: je prekratak (minimum je %{count} znak)
+        few: je prekratak (minimum je %{count} znaka)
+        many: je prekratak (minimum je %{count} znakova)
+        other: je prekratak (minimum je %{count} znakova)
+      wrong_length:
+        one: nije odgovarajuće dužine (treba biti %{count} znak)
+        few: nije odgovarajuće dužine (treba biti %{count} znaka)
+        many: nije odgovarajuće dužine (treba biti %{count} znakova)
+        other: nije odgovarajuće dužine (treba biti %{count} znakova)
+      other_than: "mora biti različit od %{count}"
+    template:
+      body: ! 'Molim Vas da proverite sledeća polja:'
+      header:
+        one: ! 'Nisam uspeo sačuvati %{model}: %{count} greška.'
+        few: ! 'Nisam uspeo sačuvati %{model}: %{count} greške.'
+        many: ! 'Nisam uspeo sačuvati %{model}: %{count} greški.'
+        other: ! 'Nisam uspeo sačuvati %{model}: %{count} greški.'
+  helpers:
+    select:
+      prompt: Izaberite
+    submit:
+      create: Napravi %{model}
+      submit: Sačuvaj %{model}
+      update: Izmeni %{model}
+  number:
+    currency:
+      format:
+        delimiter: ! ','
+        format: ! '%n %u'
+        precision: 2
+        separator: .
+        significant: false
+        strip_insignificant_zeros: false
+        unit: DIN
+    format:
+      delimiter: .
+      precision: 3
+      separator: ! ','
+      significant: false
+      strip_insignificant_zeros: false
+    human:
+      decimal_units:
+        format: ! '%n %u'
+        units:
+          thousand: Hiljadu
+          million: Milion
+          billion: Milijarda
+          trillion: Trilion
+          quadrillion: Kvadrilion
+          unit: ''
+      format:
+        delimiter: ''
+        precision: 3
+        significant: true
+        strip_insignificant_zeros: true
+      storage_units:
+        format: ! '%n %u'
+        units:
+          byte:
+            one: bajt
+            few: bajta
+            many: bajtova
+            other: bajtova
+          gb: GB
+          kb: KB
+          mb: MB
+          tb: TB
+    percentage:
+      format:
+        delimiter: ''
+        format: "%n%"
+    precision:
+      format:
+        delimiter: ''
+  support:
+    array:
+      last_word_connector: ! ', i '
+      two_words_connector: ! ' i '
+      words_connector: ! ', '
+  time:
+    am: AM
+    formats:
+      default: ! '%a %b %d %H:%M:%S %Z %Y'
+      long: ! '%B %d, %Y %H:%M'
+      short: ! '%d %b %H:%M'
+    pm: PM
diff --git a/rails/locale/it-CH.yml b/rails/locale/it-CH.yml
index 2cf2d98..c06b6a9 100644
--- a/rails/locale/it-CH.yml
+++ b/rails/locale/it-CH.yml
@@ -72,7 +72,7 @@ it-CH:
         one: circa un anno
         other: circa %{count} anni
       almost_x_years:
-        one: circa 1 anno
+        one: circa %{count} anno
         other: circa %{count} anni
       half_a_minute: mezzo minuto
       less_than_x_seconds:
@@ -85,19 +85,19 @@ it-CH:
         one: oltre un anno
         other: oltre %{count} anni
       x_seconds:
-        one: 1 secondo
+        one: "%{count} secondo"
         other: "%{count} secondi"
       x_minutes:
-        one: 1 minuto
+        one: "%{count} minuto"
         other: "%{count} minuti"
       x_days:
-        one: 1 giorno
+        one: "%{count} giorno"
         other: "%{count} giorni"
       x_months:
-        one: 1 mese
+        one: "%{count} mese"
         other: "%{count} mesi"
       x_years:
-        one: 1 anno
+        one: "%{count} anno"
         other: "%{count} anni"
     prompts:
       second: Secondi
@@ -131,18 +131,18 @@ it-CH:
       required: deve esistere
       taken: è già presente
       too_long:
-        one: è troppo lungo (il massimo è 1 carattere)
+        one: è troppo lungo (il massimo è %{count} carattere)
         other: è troppo lungo (il massimo è %{count} caratteri)
       too_short:
-        one: è troppo corto (il minimo è 1 carattere)
+        one: è troppo corto (il minimo è %{count} carattere)
         other: è troppo corto (il minimo è %{count} caratteri)
       wrong_length:
-        one: è della lunghezza sbagliata (deve essere di 1 carattere)
+        one: è della lunghezza sbagliata (deve essere di %{count} carattere)
         other: è della lunghezza sbagliata (deve essere di %{count} caratteri)
     template:
       body: 'Per favore ricontrolla i seguenti campi:'
       header:
-        one: 'Non posso salvare questo %{model}: 1 errore'
+        one: 'Non posso salvare questo %{model}: %{count} errore'
         other: 'Non posso salvare questo %{model}: %{count} errori.'
   helpers:
     select:
diff --git a/rails/locale/it.yml b/rails/locale/it.yml
index 980c250..c0066a7 100644
--- a/rails/locale/it.yml
+++ b/rails/locale/it.yml
@@ -85,19 +85,19 @@ it:
         one: oltre un anno
         other: oltre %{count} anni
       x_seconds:
-        one: 1 secondo
+        one: "%{count} secondo"
         other: "%{count} secondi"
       x_minutes:
-        one: 1 minuto
+        one: "%{count} minuto"
         other: "%{count} minuti"
       x_days:
-        one: 1 giorno
+        one: "%{count} giorno"
         other: "%{count} giorni"
       x_months:
-        one: 1 mese
+        one: "%{count} mese"
         other: "%{count} mesi"
       x_years:
-        one: 1 anno
+        one: "%{count} anno"
         other: "%{count} anni"
     prompts:
       second: Secondi
@@ -131,18 +131,18 @@ it:
       required: deve esistere
       taken: è già presente
       too_long:
-        one: è troppo lungo (il massimo è 1 carattere)
+        one: è troppo lungo (il massimo è %{count} carattere)
         other: è troppo lungo (il massimo è %{count} caratteri)
       too_short:
-        one: è troppo corto (il minimo è 1 carattere)
+        one: è troppo corto (il minimo è %{count} carattere)
         other: è troppo corto (il minimo è %{count} caratteri)
       wrong_length:
-        one: è della lunghezza sbagliata (deve essere di 1 carattere)
+        one: è della lunghezza sbagliata (deve essere di %{count} carattere)
         other: è della lunghezza sbagliata (deve essere di %{count} caratteri)
     template:
       body: 'Ricontrolla i seguenti campi:'
       header:
-        one: 'Non posso salvare questo %{model}: 1 errore'
+        one: 'Non posso salvare questo %{model}: %{count} errore'
         other: 'Non posso salvare questo %{model}: %{count} errori.'
   helpers:
     select:
diff --git a/rails/locale/ja.yml b/rails/locale/ja.yml
index 1e47b0c..6b41aeb 100644
--- a/rails/locale/ja.yml
+++ b/rails/locale/ja.yml
@@ -62,43 +62,19 @@ ja:
     - :day
   datetime:
     distance_in_words:
-      about_x_hours:
-        one: 約1時間
-        other: 約%{count}時間
-      about_x_months:
-        one: 約1ヶ月
-        other: 約%{count}ヶ月
-      about_x_years:
-        one: 約1年
-        other: 約%{count}年
-      almost_x_years:
-        one: 1年弱
-        other: "%{count}年弱"
+      about_x_hours: 約%{count}時間
+      about_x_months: 約%{count}ヶ月
+      about_x_years: 約%{count}年
+      almost_x_years: "%{count}年弱"
       half_a_minute: 30秒前後
-      less_than_x_seconds:
-        one: 1秒以内
-        other: "%{count}秒未満"
-      less_than_x_minutes:
-        one: 1分以内
-        other: "%{count}分未満"
-      over_x_years:
-        one: 1年以上
-        other: "%{count}年以上"
-      x_seconds:
-        one: 1秒
-        other: "%{count}秒"
-      x_minutes:
-        one: 1分
-        other: "%{count}分"
-      x_days:
-        one: 1日
-        other: "%{count}日"
-      x_months:
-        one: 1ヶ月
-        other: "%{count}ヶ月"
-      x_years:
-        one: 1年
-        other: "%{count}年"
+      less_than_x_seconds: "%{count}秒未満"
+      less_than_x_minutes: "%{count}分未満"
+      over_x_years: "%{count}年以上"
+      x_seconds: "%{count}秒"
+      x_minutes: "%{count}分"
+      x_days: "%{count}日"
+      x_months: "%{count}ヶ月"
+      x_years: "%{count}年"
     prompts:
       second: 秒
       minute: 分
@@ -118,6 +94,7 @@ ja:
       exclusion: は予約されています
       greater_than: は%{count}より大きい値にしてください
       greater_than_or_equal_to: は%{count}以上の値にしてください
+      in: は%{count}の範囲に含めてください
       inclusion: は一覧にありません
       invalid: は不正な値です
       less_than: は%{count}より小さい値にしてください
@@ -135,9 +112,7 @@ ja:
       wrong_length: は%{count}文字で入力してください
     template:
       body: 次の項目を確認してください
-      header:
-        one: "%{model}にエラーが発生しました"
-        other: "%{model}に%{count}個のエラーが発生しました"
+      header: "%{model}に%{count}個のエラーが発生しました"
   helpers:
     select:
       prompt: 選択してください
@@ -158,6 +133,7 @@ ja:
     format:
       delimiter: ","
       precision: 3
+      round_mode: default
       separator: "."
       significant: false
       strip_insignificant_zeros: false
diff --git a/rails/locale/ka.yml b/rails/locale/ka.yml
index c9c61e9..b9329b6 100644
--- a/rails/locale/ka.yml
+++ b/rails/locale/ka.yml
@@ -60,41 +60,41 @@ ka:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: დაახლოებით 1 საათი
+        one: დაახლოებით %{count} საათი
         other: დაახლოებით %{count} საათი
       about_x_months:
-        one: დაახლოებით 1 თვე
+        one: დაახლოებით %{count} თვე
         other: დაახლოებით %{count} თვე
       about_x_years:
-        one: დაახლოებით 1 წელი
+        one: დაახლოებით %{count} წელი
         other: დაახლოებით %{count} წელი
       almost_x_years:
-        one: თითქმის 1 წელი
+        one: თითქმის %{count} წელი
         other: თითქმის %{count} წელი
       half_a_minute: ნახევარი წუთი
       less_than_x_seconds:
-        one: 1 წამზე ნაკლები
+        one: "%{count} წამზე ნაკლები"
         other: "%{count} წამზე ნაკლები"
       less_than_x_minutes:
-        one: 1 წუთზე ნაკლები
+        one: "%{count} წუთზე ნაკლები"
         other: "%{count} წუთზე ნაკლები"
       over_x_years:
-        one: 1 წელზე მეტი
+        one: "%{count} წელზე მეტი"
         other: "%{count} წელზე მეტი"
       x_seconds:
-        one: 1 წამი
+        one: "%{count} წამი"
         other: "%{count} წამი"
       x_minutes:
-        one: 1 წუთი
+        one: "%{count} წუთი"
         other: "%{count} წუთი"
       x_days:
-        one: 1 დღე
+        one: "%{count} დღე"
         other: "%{count} დღე"
       x_months:
-        one: 1 თვე
+        one: "%{count} თვე"
         other: "%{count} თვე"
       x_years:
-        one: 1 წელი
+        one: "%{count} წელი"
         other: "%{count} წელი"
     prompts:
       second: წამი
@@ -128,18 +128,18 @@ ka:
       required: უნდა არსებობდეს
       taken: უკვე დაკავებულია
       too_long:
-        one: არის ძალიან გრძელი (მაქსიმუმია 1 სიმბოლო)
+        one: არის ძალიან გრძელი (მაქსიმუმია %{count} სიმბოლო)
         other: არის მეტისმეტად დიდი სიგრძის (მაქსიმუმია %{count} სიმბოლო)
       too_short:
-        one: არის ძალიან მოკლე (მინიმუმია 1 სიმბოლო)
+        one: არის ძალიან მოკლე (მინიმუმია %{count} სიმბოლო)
         other: არის ძალიან მოკლე (მინიმუმია %{count} სიმბოლო)
       wrong_length:
-        one: არის არასწორი სიგრძის (უნდა იყოს ზუსტად 1 სიბმოლო)
+        one: არის არასწორი სიგრძის (უნდა იყოს ზუსტად %{count} სიბმოლო)
         other: არის არასწორი სიგრძის (უნდა იყოს ზუსტად %{count} სიბმოლო)
     template:
       body: 'შეიქმნა პრობლემები შემდეგ ველებთან დაკავშირებით:'
       header:
-        one: "%{model}-ს შენახვა ვერ განხორციელდა 1 შეცდომის გამო"
+        one: "%{model}-ს შენახვა ვერ განხორციელდა %{count} შეცდომის გამო"
         other: "%{model}-ს შენახვა ვერ განხორციელდა %{count} შეცდომის გამო"
   helpers:
     select:
diff --git a/rails/locale/kn.yml b/rails/locale/kn.yml
index f50ce7a..d7cb860 100644
--- a/rails/locale/kn.yml
+++ b/rails/locale/kn.yml
@@ -82,16 +82,16 @@ kn:
         one: ಒಂದು ವರುಷಕ್ಕಿಂತ ಹೆಚ್ಚು
         other: "%{count} ವರುಷಗಳಿಗಿಂತ ಹೆಚ್ಚು"
       x_seconds:
-        one: 1 ಸೆಕೆಂಡ್
+        one: "%{count} ಸೆಕೆಂಡ್"
         other: "%{count} ಸೆಕೆಂಡುಗಳು"
       x_minutes:
-        one: 1 ನಿಮಿಷ
+        one: "%{count} ನಿಮಿಷ"
         other: "%{count} ನಿಮಿಷಗಳು"
       x_days:
-        one: 1 ದಿನ
+        one: "%{count} ದಿನ"
         other: "%{count} ದಿನಗಳು"
       x_months:
-        one: 1 ತಿಂಗಳು
+        one: "%{count} ತಿಂಗಳು"
         other: "%{count} ತಿಂಗಳುಗಳು"
     prompts:
       second: ಸೆಕೆಂಡು
@@ -126,7 +126,7 @@ kn:
     template:
       body: 'ಸಮಸ್ಯೆಗಳಿರುವ ಜಾಗಗಳು:'
       header:
-        one: 1 ಧೋಷದ ಪರಿಣಾಮ %{model} ಅನ್ನು ರಚಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ
+        one: "%{count} ಧೋಷದ ಪರಿಣಾಮ %{model} ಅನ್ನು ರಚಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ"
         other: "%{count} ಧೋಷಗಳ ಪರಿಣಾಮ %{model} ಅನ್ನು ರಚಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ"
   helpers:
     select:
diff --git a/rails/locale/ko.yml b/rails/locale/ko.yml
index 94729dc..556a7bd 100644
--- a/rails/locale/ko.yml
+++ b/rails/locale/ko.yml
@@ -5,8 +5,8 @@ ko:
       messages:
         record_invalid: 데이터 검증에 실패하였습니다. %{errors}
         restrict_dependent_destroy:
-          has_one: "%{record}가 존재하기 때문에 삭제할 수 없습니다"
-          has_many: "%{record}가 존재하기 때문에 삭제할 수 없습니다"
+          has_one: "%{record}(이)가 존재하기 때문에 삭제할 수 없습니다"
+          has_many: "%{record}(이)가 존재하기 때문에 삭제할 수 없습니다"
   date:
     abbr_day_names:
     - 일
@@ -39,9 +39,9 @@ ko:
     - 금요일
     - 토요일
     formats:
-      default: "%Y/%m/%d"
-      long: "%Y년 %m월 %d일 (%a)"
-      short: "%m/%d"
+      default: "%Y-%m-%d"
+      long: "%Y년 %m월 %d일"
+      short: "%m월 %d일"
     month_names:
     - 
     - 1월
@@ -62,43 +62,19 @@ ko:
     - :day
   datetime:
     distance_in_words:
-      about_x_hours:
-        one: 약 한 시간
-        other: 약 %{count}시간
-      about_x_months:
-        one: 약 한 달
-        other: 약 %{count}달
-      about_x_years:
-        one: 약 일 년
-        other: 약 %{count}년
-      almost_x_years:
-        one: 일 년 이하
-        other: "%{count}년 이하"
+      about_x_hours: 대략 %{count}시간
+      about_x_months: 대략 %{count}개월
+      about_x_years: 대략 %{count}년
+      almost_x_years: 거의 %{count}년
       half_a_minute: 30초
-      less_than_x_seconds:
-        one: 일 초 이하
-        other: "%{count}초 이하"
-      less_than_x_minutes:
-        one: 일 분 이하
-        other: "%{count}분 이하"
-      over_x_years:
-        one: 일 년 이상
-        other: "%{count}년 이상"
-      x_seconds:
-        one: 일 초
-        other: "%{count}초"
-      x_minutes:
-        one: 일 분
-        other: "%{count}분"
-      x_days:
-        one: 하루
-        other: "%{count}일"
-      x_months:
-        one: 한 달
-        other: "%{count}달"
-      x_years:
-        one: 일 년
-        other: "%{count}년"
+      less_than_x_seconds: "%{count}초 미만"
+      less_than_x_minutes: "%{count}분 미만"
+      over_x_years: "%{count}년 초과"
+      x_seconds: "%{count}초"
+      x_minutes: "%{count}분"
+      x_days: "%{count}일"
+      x_months: "%{count}개월"
+      x_years: "%{count}년"
     prompts:
       second: 초
       minute: 분
@@ -135,9 +111,7 @@ ko:
       wrong_length: "%{attribute}은(는) %{count}자여야 합니다"
     template:
       body: 아래 문제를 확인해 주세요.
-      header:
-        one: 한 개의 오류로 인해 %{model}을(를) 저장할 수 없습니다
-        other: "%{count}개의 오류로 인해 %{model}을(를) 저장할 수 없습니다"
+      header: "%{count}개의 오류로 인해 %{model}을(를) 저장할 수 없습니다"
   helpers:
     select:
       prompt: 선택해주세요
@@ -167,7 +141,7 @@ ko:
         units:
           billion: 십억
           million: 백만
-          quadrillion: 경
+          quadrillion: 천조
           thousand: 천
           trillion: 조
           unit: ''
@@ -180,10 +154,10 @@ ko:
         format: "%n%u"
         units:
           byte: 바이트
-          gb: 기가바이트
-          kb: 킬로바이트
-          mb: 메가바이트
-          tb: 테라바이트
+          gb: GB
+          kb: KB
+          mb: MB
+          tb: TB
     percentage:
       format:
         delimiter: ''
@@ -194,12 +168,12 @@ ko:
   support:
     array:
       last_word_connector: ", "
-      two_words_connector: '와(과) '
+      two_words_connector: ', '
       words_connector: ", "
   time:
     am: 오전
     formats:
-      default: "%Y/%m/%d %H:%M:%S"
-      long: "%Y년 %m월 %d일, %H시 %M분 %S초 %Z"
-      short: "%y/%m/%d %H:%M"
+      default: "%Y년 %m월 %d일 %A %H시 %M분 %S초 %z"
+      long: "%Y년 %m월 %d일 %H시 %M분"
+      short: "%m월 %d일 %H:%M"
     pm: 오후
diff --git a/rails/locale/lb.yml b/rails/locale/lb.yml
index ebb91d4..b2a7033 100644
--- a/rails/locale/lb.yml
+++ b/rails/locale/lb.yml
@@ -87,16 +87,16 @@ lb:
         one: méi wéi ee Joer
         other: méi wéi %{count} Joer
       x_seconds:
-        one: 1 Sekonn
+        one: "%{count} Sekonn"
         other: "%{count} Sekonnen"
       x_minutes:
-        one: 1 Minutt
+        one: "%{count} Minutt"
         other: "%{count} Minutten"
       x_days:
-        one: 1 Dag
+        one: "%{count} Dag"
         other: "%{count} Deeg"
       x_months:
-        one: 1 Mount
+        one: "%{count} Mount"
         other: "%{count} Méint"
     prompts:
       second: Sekonnen
@@ -128,10 +128,10 @@ lb:
       present: muss eidel sinn
       taken: gouf scho geholl
       too_long:
-        one: ass ze laang (Maximal 1 Zeechen)
+        one: ass ze laang (Maximal %{count} Zeechen)
         other: ass ze laang (net méi wéi %{count} Zeechen)
       too_short:
-        one: ass ze kuerz (Mniimal 1 Zeechen)
+        one: ass ze kuerz (Mniimal %{count} Zeechen)
         other: ass ze kuerz (mindestens %{count} Zeechen)
       wrong_length:
         one: huet déi falsch Längt (muss genee een Zeeche sinn)
@@ -139,7 +139,7 @@ lb:
     template:
       body: 'Et gouf Problemer mat dëse Felder:'
       header:
-        one: 1 Feeler verhënnert d'Späichere vu(n) %{model}
+        one: "%{count} Feeler verhënnert d'Späichere vu(n) %{model}"
         other: "%{count} Feeler verhënneren d'Späichere vu(n) %{model}"
   helpers:
     select:
diff --git a/rails/locale/lo.yml b/rails/locale/lo.yml
index c51de40..fef9e00 100644
--- a/rails/locale/lo.yml
+++ b/rails/locale/lo.yml
@@ -59,84 +59,18 @@ lo:
     - :year
   datetime:
     distance_in_words:
-      about_x_hours:
-        zero: ປະມານ %{count} ຊົ່ວໂມງ
-        one: ປະມານ 1 ຊົ່ວໂມງ
-        two: ປະມານ %{count} ຊົ່ວໂມງ
-        few: ປະມານ %{count} ຊົ່ວໂມງ
-        many: ປະມານ %{count} ຊົ່ວໂມງ
-        other: ປະມານ %{count} ຊົ່ວໂມງ
-      about_x_months:
-        zero: ປະມານ %{count} ເດືອນ
-        one: ປະມານ 1 ເດືອນ
-        two: ປະມານ %{count} ເດືອນ
-        few: ປະມານ %{count} ເດືອນ
-        many: ປະມານ %{count} ເດືອນ
-        other: ປະມານ %{count} ເດືອນ
-      about_x_years:
-        zero: 'ປະມານ %{count} ປີ '
-        one: 'ປະມານ 1 ປີ '
-        two: 'ປະມານ %{count} ປີ '
-        few: 'ປະມານ %{count} ປີ '
-        many: 'ປະມານ %{count} ປີ '
-        other: 'ປະມານ %{count} ປີ '
-      almost_x_years:
-        zero: 'ເກືອບ %{count} ປີ '
-        one: 'ເກືອບ 1 ປີ '
-        two: 'ເກືອບ %{count} ປີ '
-        few: 'ເກືອບ %{count} ປີ '
-        many: 'ເກືອບ %{count} ປີ '
-        other: 'ເກືອບ %{count} ປີ '
-      half_a_minute: 'ເຄິ່ງນາທີ '
-      less_than_x_seconds:
-        zero: 'ນ້ອຍກວ່າ %{count} ວິນາທີ '
-        one: 'ນ້ອຍກວ່າ 1 ວິນາທີ '
-        two: 'ນ້ອຍກວ່າ %{count} ວິນາທີ '
-        few: 'ນ້ອຍກວ່າ %{count} ວິນາທີ '
-        many: 'ນ້ອຍກວ່າ %{count} ວິນາທີ '
-        other: 'ນ້ອຍກວ່າ %{count} ວິນາທີ '
-      less_than_x_minutes:
-        zero: 'ນ້ອຍກວ່າ %{count} ນາທີ '
-        one: 'ນ້ອຍກວ່າ 1 ນາທີ '
-        two: 'ນ້ອຍກວ່າ %{count} ນາທີ '
-        few: 'ນ້ອຍກວ່າ %{count} ນາທີ '
-        many: 'ນ້ອຍກວ່າ %{count} ນາທີ '
-        other: 'ນ້ອຍກວ່າ %{count} ນາທີ '
-      over_x_years:
-        zero: 'ຫຼາຍກວ່າ %{count} ປີ '
-        one: 'ຫຼາຍກວ່າ 1 ປີ '
-        two: 'ຫຼາຍກວ່າ %{count} ປີ '
-        few: 'ຫຼາຍກວ່າ %{count} ປີ '
-        many: 'ຫຼາຍກວ່າ %{count} ປີ '
-        other: 'ຫຼາຍກວ່າ %{count} ປີ '
-      x_seconds:
-        zero: "%{count} ວິນາທີ "
-        one: '1 ວິນາທີ '
-        two: "%{count} ວິນາທີ "
-        few: "%{count} ວິນາທີ "
-        many: "%{count} ວິນາທີ "
-        other: "%{count} ວິນາທີ "
-      x_minutes:
-        zero: "%{count} ນາທີ "
-        one: '1 ນາທີ '
-        two: "%{count} ນາທີ "
-        few: "%{count} ນາທີ "
-        many: "%{count} ນາທີ "
-        other: "%{count} ນາທີ "
-      x_days:
-        zero: "%{count} ມື້ "
-        one: '1 ມື້ '
-        two: "%{count} ມື້ "
-        few: "%{count} ມື້ "
-        many: "%{count} ມື້ "
-        other: "%{count} ມື້ "
-      x_months:
-        zero: "%{count} ເດືອນ"
-        one: 1 ເດືອນ
-        two: "%{count} ເດືອນ"
-        few: "%{count} ເດືອນ"
-        many: "%{count} ເດືອນ"
-        other: "%{count} ເດືອນ"
+      about_x_hours: ປະມານ %{count} ຊົ່ວໂມງ
+      about_x_months: ປະມານ %{count} ເດືອນ
+      about_x_years: 'ປະມານ %{count} ປີ'
+      almost_x_years: 'ເກືອບ %{count} ປີ'
+      half_a_minute: 'ເຄິ່ງນາທີ'
+      less_than_x_seconds: 'ນ້ອຍກວ່າ %{count} ວິນາທີ'
+      less_than_x_minutes: 'ນ້ອຍກວ່າ %{count} ນາທີ'
+      over_x_years: 'ຫຼາຍກວ່າ %{count} ປີ'
+      x_seconds: "%{count} ວິນາທີ"
+      x_minutes: "%{count} ນາທີ"
+      x_days: "%{count} ມື້"
+      x_months: "%{count} ເດືອນ"
     prompts:
       second: ວິນາທີ
       minute: ນາທີ
@@ -168,13 +102,7 @@ lo:
       wrong_length: ຄວາມຍາວຜິດ (ຄວນຈະເປັນ %{count} ຕົວອັກສອນ)
     template:
       body: 'ກະລຸນາກວດສອບຂໍ້ມູນໃນຫ້ອງຕໍ່ໄປນີ້ :'
-      header:
-        zero: ບໍ່ສາມາດບັນທຶກ %{model} ໄດ້ເນື່ອງຈາກ ເກີດ %{count} ຂໍ້ຜິດພາດ
-        one: ບໍ່ສາມາດບັນທຶກ %{model} ໄດ້ເນື່ອງຈາກເກີດຂໍ້ຜິດພາດ
-        two: ບໍ່ສາມາດບັນທຶກ %{model} ໄດ້ເນື່ອງຈາກ ເກີດ %{count} ຂໍ້ຜິດພາດ
-        few: ບໍ່ສາມາດບັນທຶກ %{model} ໄດ້ເນື່ອງຈາກ ເກີດ %{count} ຂໍ້ຜິດພາດ
-        many: ບໍ່ສາມາດບັນທຶກ %{model} ໄດ້ເນື່ອງຈາກ ເກີດ %{count} ຂໍ້ຜິດພາດ
-        other: ບໍ່ສາມາດບັນທຶກ %{model} ໄດ້ເນື່ອງຈາກ ເກີດ %{count} ຂໍ້ຜິດພາດ
+      header: ບໍ່ສາມາດບັນທຶກ %{model} ໄດ້ເນື່ອງຈາກ ເກີດ %{count} ຂໍ້ຜິດພາດ
   helpers:
     select:
       prompt: โปรดเลือก
diff --git a/rails/locale/lv.yml b/rails/locale/lv.yml
index d1924cd..3428ce7 100644
--- a/rails/locale/lv.yml
+++ b/rails/locale/lv.yml
@@ -4,6 +4,9 @@ lv:
     errors:
       messages:
         record_invalid: 'Pārbaude neizdevās: %{errors}'
+        restrict_dependent_destroy:
+          has_one: Nevar dzēst ierakstu, jo ir atkarīgs %{record}
+          has_many: Nevar dzēst ierakstu, jo ir atkarīgi %{record}
   date:
     abbr_day_names:
     - Sv.
@@ -104,6 +107,7 @@ lv:
         zero: "%{count} mēneši"
         one: "%{count} mēnesis"
         other: "%{count} mēneši"
+        zero: 0 gadi
     prompts:
       second: sekunde
       minute: minūte
@@ -127,9 +131,13 @@ lv:
       invalid: nav derīgs
       less_than: ir jābūt mazākam par %{count}
       less_than_or_equal_to: ir jābūt mazākam vai vienādam ar %{count}
+      model_invalid: 'Validācija neizdevās: %{errors}'
       not_a_number: nav skaitlis
       not_an_integer: ir jābūt veselam skaitlim
       odd: ir jābūt nepāra skaitlim
+      other_than: jābūt citam nekā %{count}
+      present: jābūt tukšam
+      required: ir jābūt
       taken: ir jau aizņemts
       too_long:
         zero: ir par garu (maksimums ir %{count} simboli)
@@ -209,13 +217,16 @@ lv:
             zero: baiti
             one: baits
             other: baiti
+          eb: EB
           gb: GB
           kb: KB
           mb: MB
+          pb: PB
           tb: TB
     percentage:
       format:
         delimiter: ''
+        format: "%n%"
     precision:
       format:
         delimiter: ''
diff --git a/rails/locale/mg.yml b/rails/locale/mg.yml
index e3bcea6..bb5bdf9 100644
--- a/rails/locale/mg.yml
+++ b/rails/locale/mg.yml
@@ -89,19 +89,19 @@ mg:
         one: Herintaona mahery
         other:  maherin'ny %{count} taona
       x_seconds:
-        one: 1 segondra
+        one: "%{count} segondra"
         other: "%{count} segondra"
       x_minutes:
-        one: 1 minitra
+        one: "%{count} minitra"
         other: "%{count} minitra"
       x_days:
-        one: 1 andro
+        one: "%{count} andro"
         other: "%{count} andro"
       x_months:
-        one: 1 volana
+        one: "%{count} volana"
         other: "%{count} volana"
       x_years:
-        one: 1 taona
+        one: "%{count} taona"
         other: "%{count} taona"
     prompts:
       second: Segondra
@@ -146,7 +146,7 @@ mg:
     template:
       body: 'Hamarino ireo saha manaraka azafady : '
       header:
-        one: 'Tsy azo tadidiana ity %{model} : olana 1'
+        one: 'Tsy azo tadidiana ity %{model} : olana %{count}'
         other: 'Tsy azo tadidiana ity %{model} : olana %{count}'
   helpers:
     select:
diff --git a/rails/locale/ml.yml b/rails/locale/ml.yml
index 7886e79..15fc37e 100644
--- a/rails/locale/ml.yml
+++ b/rails/locale/ml.yml
@@ -63,16 +63,16 @@ ml:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: എകദേശം 1 മണിക്കൂർ
+        one: എകദേശം %{count} മണിക്കൂർ
         other: എകദേശം %{count} മണിക്കൂർ
       about_x_months:
-        one: എകദേശം 1 മാസം
+        one: എകദേശം %{count} മാസം
         other: എകദേശം %{count} മാസം
       about_x_years:
-        one: എകദേശം 1 വർഷം
+        one: എകദേശം %{count} വർഷം
         other: എകദേശം %{count} വർഷം
       almost_x_years:
-        one: ഏതാണ്ട്  1 വർഷം
+        one: ഏതാണ്ട്  %{count} വർഷം
         other: ഏതാണ്ട്  %{count} വർഷം
       half_a_minute: അര സൂക്ഷ്മ
       less_than_x_seconds:
@@ -85,16 +85,16 @@ ml:
         one: ഒരു വര്ഷത്തിനു മേലെ
         other: "%{count} വര്ഷത്തിനു മേലെ"
       x_seconds:
-        one: 1 നിമിഷം
+        one: "%{count} നിമിഷം"
         other: "%{count} നിമിഷം"
       x_minutes:
-        one: 1 മിനിറ്റ്
+        one: "%{count} മിനിറ്റ്"
         other: "%{count} മിനിറ്റ്"
       x_days:
-        one: 1 ദിവസം
+        one: "%{count} ദിവസം"
         other: "%{count} ദിവസങ്ങൾ"
       x_months:
-        one: 1 മാസം
+        one: "%{count} മാസം"
         other: "%{count} മാസം"
     prompts:
       second: നിമിഷം
@@ -128,13 +128,13 @@ ml:
       required: എന്തായാലും ഉണ്ടായിരിക്കണം
       taken: ഇതിനു മുൻപേ ഉപയോഗിച്ചിരിക്കുന്നു
       too_long:
-        one: വളരെ വലുതാണ് (പരമാവധി 1 പ്രതീകം)
+        one: വളരെ വലുതാണ് (പരമാവധി %{count} പ്രതീകം)
         other: വളരെ വലുതാണ് (പരമാവധി %{count} പ്രതീകങ്ങൾ)
       too_short:
-        one: വളരെ ചെറുതാണ് (ഏറ്റവും കുറഞ്ഞത്‌  1 പ്രതീകം)
+        one: വളരെ ചെറുതാണ് (ഏറ്റവും കുറഞ്ഞത്‌  %{count} പ്രതീകം)
         other: വളരെ ചെറുതാണ് (ഏറ്റവും കുറഞ്ഞത്‌ %{count} പ്രതീകങ്ങൾ)
       wrong_length:
-        one: തെറ്റായ നീളം ആണ്  (1 പ്രതീകം ആയിരിക്കണം)
+        one: തെറ്റായ നീളം ആണ്  (%{count} പ്രതീകം ആയിരിക്കണം)
         other: തെറ്റായ നീളം ആണ്  (%{count} പ്രതീകങ്ങൾ ആയിരിക്കണം)
     template:
       body: 'താഴെ പറഞ്ഞവയിൽ തെറ്റുകൾ ഉണ്ട്:'
diff --git a/rails/locale/mn.yml b/rails/locale/mn.yml
index cabe58f..57e79b3 100644
--- a/rails/locale/mn.yml
+++ b/rails/locale/mn.yml
@@ -60,38 +60,38 @@ mn:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: 1 цаг орчим
+        one: "%{count} цаг орчим"
         other: "%{count} цаг орчим"
       about_x_months:
-        one: 1 сар орчим
+        one: "%{count} сар орчим"
         other: "%{count} сар орчим"
       about_x_years:
-        one: 1 жил орчим
+        one: "%{count} жил орчим"
         other: "%{count} жил орчим"
       almost_x_years:
-        one: бараг 1 жил
+        one: бараг %{count} жил
         other: бараг %{count} жил
       half_a_minute: хагас минут
       less_than_x_seconds:
-        one: 1 секундээс бага
+        one: "%{count} секундээс бага"
         other: "%{count} секундээс бага"
       less_than_x_minutes:
-        one: 1 минутаас бага
+        one: "%{count} минутаас бага"
         other: "%{count} минутаас бага"
       over_x_years:
-        one: 1 жилээс илүү
+        one: "%{count} жилээс илүү"
         other: "%{count} жилээс илүү"
       x_seconds:
-        one: 1 секунд
+        one: "%{count} секунд"
         other: "%{count} секунд"
       x_minutes:
-        one: 1 минут
+        one: "%{count} минут"
         other: "%{count} минут"
       x_days:
-        one: 1 өдөр
+        one: "%{count} өдөр"
         other: "%{count} өдөр"
       x_months:
-        one: 1 сар
+        one: "%{count} сар"
         other: "%{count} сар"
     prompts:
       second: Секунд
@@ -121,18 +121,18 @@ mn:
       odd: сонгой байх ёстой
       taken: аль хэдийн авчихсан байна
       too_long:
-        one: урт байна (хамгийн уртдаа 1 тэмдэгт)
+        one: урт байна (хамгийн уртдаа %{count} тэмдэгт)
         other: урт байна (хамгийн уртдаа %{count} тэмдэгт)
       too_short:
-        one: богино байна (хамгийн багадаа 1 тэмдэгт)
+        one: богино байна (хамгийн багадаа %{count} тэмдэгт)
         other: богино байна (хамгийн багадаа %{count} тэмдэгт)
       wrong_length:
-        one: урт нь буруу байна (1 тэмдэгт байх ёстой)
+        one: урт нь буруу байна (%{count} тэмдэгт байх ёстой)
         other: урт нь буруу байна (%{count} тэмдэгт байх ёстой)
     template:
       body: 'Дараах талбарууд дээр алдаа гарлаа:'
       header:
-        one: 1 алдаа гарсан тул %{model} хадгалагдахгүй байна
+        one: "%{count} алдаа гарсан тул %{model} хадгалагдахгүй байна"
         other: "%{count} алдаа гарсан тул %{model} хадгалагдахгүй байна"
   helpers:
     select:
diff --git a/rails/locale/mr-IN.yml b/rails/locale/mr-IN.yml
index b0a8b0b..997cf95 100644
--- a/rails/locale/mr-IN.yml
+++ b/rails/locale/mr-IN.yml
@@ -66,10 +66,10 @@ mr-IN:
         one: सुमारे एक तास
         other: सुमारे %{count} तास
       about_x_months:
-        one: सुमारे 1 महीना
+        one: सुमारे %{count} महीना
         other: सुमारे %{count} महिना
       about_x_years:
-        one: सुमारे 1 वर्ष
+        one: सुमारे %{count} वर्ष
         other: सुमारे %{count} वर्ष
       almost_x_years:
         one: जवळजवळ एक वर्ष
diff --git a/rails/locale/ms.yml b/rails/locale/ms.yml
index ebe21f0..3d1b806 100644
--- a/rails/locale/ms.yml
+++ b/rails/locale/ms.yml
@@ -60,16 +60,16 @@ ms:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: lebih kurang 1 jam
+        one: lebih kurang %{count} jam
         other: lebih kurang %{count} jam
       about_x_months:
-        one: lebih kurang 1 bulan
+        one: lebih kurang %{count} bulan
         other: lebih kurang %{count} bulan
       about_x_years:
-        one: lebih kurang 1 tahun
+        one: lebih kurang %{count} tahun
         other: lebih kurang %{count} tahun
       almost_x_years:
-        one: hampir 1 tahun
+        one: hampir %{count} tahun
         other: hampir %{count} tahun
       half_a_minute: setengah minit
       less_than_x_seconds:
@@ -79,19 +79,19 @@ ms:
         one: kurang dari satu minit
         other: kurang dari %{count} minit
       over_x_years:
-        one: lebih 1 tahun
+        one: lebih %{count} tahun
         other: lebih %{count} tahun
       x_seconds:
-        one: 1 saat
+        one: "%{count} saat"
         other: "%{count} saat"
       x_minutes:
-        one: 1 minit
+        one: "%{count} minit"
         other: "%{count} minit"
       x_days:
-        one: 1 hari
+        one: "%{count} hari"
         other: "%{count} hari"
       x_months:
-        one: 1 bulan
+        one: "%{count} bulan"
         other: "%{count} bulan"
     prompts:
       second: Saat
@@ -121,18 +121,18 @@ ms:
       odd: mesti ganjil
       taken: telah digunakan
       too_long:
-        one: terlalu panjang (maksima adalah 1 karakter)
+        one: terlalu panjang (maksima adalah %{count} karakter)
         other: terlalu panjang (maksima adalah %{count} karakter)
       too_short:
-        one: terlalu pendek (minima adalah 1 karakter)
+        one: terlalu pendek (minima adalah %{count} karakter)
         other: terlalu pendek (minima adalah %{count} karakter)
       wrong_length:
-        one: mempunyai panjang yang salah (sepatutnya 1 karakter sahaja)
+        one: mempunyai panjang yang salah (sepatutnya %{count} karakter sahaja)
         other: mempunyai panjang yang salah(sepatutnya %{count} karakter sahaja)
     template:
       body: 'Terdapat masalah dengan medan data tersebut:'
       header:
-        one: 1 ralat menhalang  %{model} ini dari disimpan
+        one: "%{count} ralat menhalang  %{model} ini dari disimpan"
         other: "%{count} ralat menhalang %{model} ini dari disimpan"
   helpers:
     select:
diff --git a/rails/locale/nb.yml b/rails/locale/nb.yml
index d56edf2..053b1ee 100644
--- a/rails/locale/nb.yml
+++ b/rails/locale/nb.yml
@@ -5,7 +5,7 @@ nb:
       messages:
         record_invalid: 'Det oppstod feil: %{errors}'
         restrict_dependent_destroy:
-          has_one: Kan ikke slette registreringen, fordi 1 %{record} avhenger av denne.
+          has_one: Kan ikke slette registreringen, fordi %{count} %{record} avhenger av denne.
           has_many: Kan ikke slette registreringen, fordi %{record} avhenger av denne.
   date:
     abbr_day_names:
@@ -63,41 +63,41 @@ nb:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: rundt 1 time
+        one: rundt %{count} time
         other: rundt %{count} timer
       about_x_months:
-        one: rundt 1 måned
+        one: rundt %{count} måned
         other: rundt %{count} måneder
       about_x_years:
-        one: rundt 1 år
+        one: rundt %{count} år
         other: rundt %{count} år
       almost_x_years:
-        one: nesten 1 år
+        one: nesten %{count} år
         other: nesten %{count} år
       half_a_minute: et halvt minutt
       less_than_x_seconds:
-        one: mindre enn 1 sekund
+        one: mindre enn %{count} sekund
         other: mindre enn %{count} sekunder
       less_than_x_minutes:
-        one: mindre enn 1 minutt
+        one: mindre enn %{count} minutt
         other: mindre enn %{count} minutter
       over_x_years:
-        one: over 1 år
+        one: over %{count} år
         other: over %{count} år
       x_seconds:
-        one: 1 sekund
+        one: "%{count} sekund"
         other: "%{count} sekunder"
       x_minutes:
-        one: 1 minutt
+        one: "%{count} minutt"
         other: "%{count} minutter"
       x_days:
-        one: 1 dag
+        one: "%{count} dag"
         other: "%{count} dager"
       x_months:
-        one: 1 måned
+        one: "%{count} måned"
         other: "%{count} måneder"
       x_years:
-        one: 1 år
+        one: "%{count} år"
         other: "%{count} år"
     prompts:
       second: sekund
@@ -131,13 +131,13 @@ nb:
       required: må eksistere
       taken: er allerede i bruk
       too_long:
-        one: er for lang (maksimalt 1 tegn)
+        one: er for lang (maksimalt %{count} tegn)
         other: er for lang (maksimalt %{count} tegn)
       too_short:
-        one: er for kort (minst 1 tegn)
+        one: er for kort (minst %{count} tegn)
         other: er for kort (minst %{count} tegn)
       wrong_length:
-        one: har feil lengde (må være 1 tegn)
+        one: har feil lengde (må være %{count} tegn)
         other: har feil lengde (må være %{count} tegn)
     template:
       body: 'Det oppstod problemer med følgende felt:'
diff --git a/rails/locale/ne.yml b/rails/locale/ne.yml
index 79ad805..5986dd1 100644
--- a/rails/locale/ne.yml
+++ b/rails/locale/ne.yml
@@ -63,38 +63,38 @@ ne:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: लगभग 1 घण्टा
+        one: लगभग %{count} घण्टा
         other: लगभग %{count} घण्टा
       about_x_months:
-        one: लगभग 1 महिना
+        one: लगभग %{count} महिना
         other: लगभग %{count} महिना
       about_x_years:
-        one: लगभग 1 बर्ष
+        one: लगभग %{count} बर्ष
         other: लगभग %{count} बर्ष
       almost_x_years:
-        one: झण्डै 1 बर्ष
+        one: झण्डै %{count} बर्ष
         other: झण्डै %{count} बर्ष
       half_a_minute: आधा मिनेट
       less_than_x_seconds:
-        one: 1 सेकेण्डभन्दा कम्ति
+        one: "%{count} सेकेण्डभन्दा कम्ति"
         other: "%{count} सेकेण्डभन्दा कम्ति"
       less_than_x_minutes:
-        one: 1 मिनेटभन्दा कम्ति
+        one: "%{count} मिनेटभन्दा कम्ति"
         other: "%{count} मिनेटभन्दा कम्ति"
       over_x_years:
-        one: 1 बर्षभन्दा बढी
+        one: "%{count} बर्षभन्दा बढी"
         other: "%{count} बर्षभन्दा बेसी"
       x_seconds:
-        one: 1 सेकेण्ड
+        one: "%{count} सेकेण्ड"
         other: "%{count} सेकेण्ड"
       x_minutes:
-        one: 1 मिनेट
+        one: "%{count} मिनेट"
         other: "%{count} मिनेट"
       x_days:
-        one: 1 दिन
+        one: "%{count} दिन"
         other: "%{count} दिन"
       x_months:
-        one: 1 महिना
+        one: "%{count} महिना"
         other: "%{count} महिना"
     prompts:
       second: सेकेण्ड
@@ -124,18 +124,18 @@ ne:
       odd: बिजोर संख्या हुनुपर्नेछ
       taken: पहिल्यै प्रयोग गरीएको छ
       too_long:
-        one: धेरै लामो छ (अधिक्तम 1 character हो)
+        one: धेरै लामो छ (अधिक्तम %{count} character हो)
         other: धेरै लामो छ (अधिक्तम %{count} characters हो)
       too_short:
-        one: धेरै छोटो छ (न्युनत्तम 1 character हो)
+        one: धेरै छोटो छ (न्युनत्तम %{count} character हो)
         other: धेरै छोटो छ (न्युनत्तम %{count} characters हो)
       wrong_length:
-        one: गलत लम्बाई हो (1 character हुनुपर्नेछ)
+        one: गलत लम्बाई हो (%{count} character हुनुपर्नेछ)
         other: गलत लम्बाई हो (%{count} characters हुनुपर्नेछ)
     template:
       body: 'त्यहाँ निम्न क्षेत्रहरुमा समस्या देखियो:'
       header:
-        one: 1 गल्तीले यस %{model} लाई सुरक्षित गर्नबाट रोक्यो
+        one: "%{count} गल्तीले यस %{model} लाई सुरक्षित गर्नबाट रोक्यो"
         other: "%{count} गल्तीले यस %{model} लाई सुरक्षित गर्नबाट रोक्यो"
   helpers:
     select:
diff --git a/rails/locale/nl.yml b/rails/locale/nl.yml
index cdef7b7..89c21b0 100644
--- a/rails/locale/nl.yml
+++ b/rails/locale/nl.yml
@@ -85,19 +85,19 @@ nl:
         one: meer dan een jaar
         other: meer dan %{count} jaar
       x_seconds:
-        one: 1 seconde
+        one: "%{count} seconde"
         other: "%{count} seconden"
       x_minutes:
-        one: 1 minuut
+        one: "%{count} minuut"
         other: "%{count} minuten"
       x_days:
-        one: 1 dag
+        one: "%{count} dag"
         other: "%{count} dagen"
       x_months:
-        one: 1 maand
+        one: "%{count} maand"
         other: "%{count} maanden"
       x_years:
-        one: 1 jaar
+        one: "%{count} jaar"
         other: "%{count} jaar"
     prompts:
       second: seconde
@@ -137,12 +137,12 @@ nl:
         one: is te kort (minimaal %{count} teken)
         other: is te kort (minimaal %{count} tekens)
       wrong_length:
-        one: heeft onjuiste lengte (moet 1 teken lang zijn)
+        one: heeft onjuiste lengte (moet %{count} teken lang zijn)
         other: heeft onjuiste lengte (moet %{count} tekens lang zijn)
     template:
       body: 'Er zijn problemen met de volgende velden:'
       header:
-        one: "%{model} niet opgeslagen: 1 fout gevonden"
+        one: "%{model} niet opgeslagen: %{count} fout gevonden"
         other: "%{model} niet opgeslagen: %{count} fouten gevonden"
   helpers:
     select:
diff --git a/rails/locale/nn.yml b/rails/locale/nn.yml
index 17b2248..43d4b51 100644
--- a/rails/locale/nn.yml
+++ b/rails/locale/nn.yml
@@ -63,36 +63,36 @@ nn:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: rundt 1 time
+        one: rundt %{count} time
         other: rundt %{count} timar
       about_x_months:
-        one: rundt 1 månad
+        one: rundt %{count} månad
         other: rundt %{count} månader
       about_x_years:
-        one: rundt 1 år
+        one: rundt %{count} år
         other: rundt %{count} år
       almost_x_years: nesten %{count} år
       half_a_minute: eit halvt minutt
       less_than_x_seconds:
-        one: mindre enn 1 sekund
+        one: mindre enn %{count} sekund
         other: mindre enn %{count} sekund
       less_than_x_minutes:
-        one: mindre enn 1 minutt
+        one: mindre enn %{count} minutt
         other: mindre enn %{count} minutt
       over_x_years:
-        one: over 1 år
+        one: over %{count} år
         other: over %{count} år
       x_seconds:
-        one: 1 sekund
+        one: "%{count} sekund"
         other: "%{count} sekund"
       x_minutes:
-        one: 1 minutt
+        one: "%{count} minutt"
         other: "%{count} minutt"
       x_days:
-        one: 1 dag
+        one: "%{count} dag"
         other: "%{count} dagar"
       x_months:
-        one: 1 månad
+        one: "%{count} månad"
         other: "%{count} månader"
     prompts:
       second: Sekund
diff --git a/rails/locale/oc.yml b/rails/locale/oc.yml
index 02686fa..68e46e5 100644
--- a/rails/locale/oc.yml
+++ b/rails/locale/oc.yml
@@ -142,7 +142,7 @@ oc:
     template:
       body: I a agut de problèmas amb los camps seguents : 
       header:
-        one: Impossible d’enregistrar aqueste/a %{model} perque i a 1 error
+        one: Impossible d’enregistrar aqueste/a %{model} perque i a %{count} error
         other: Impossible d’enregistrar aqueste/a %{model} perque i a %{count} errors
   helpers:
     select:
diff --git a/rails/locale/or.yml b/rails/locale/or.yml
index eb9c539..0502b58 100644
--- a/rails/locale/or.yml
+++ b/rails/locale/or.yml
@@ -60,38 +60,38 @@ or:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: ପାଖାପାଖି 1 ଘଣ୍ତ
+        one: ପାଖାପାଖି %{count} ଘଣ୍ତ
         other: ପାଖାପାଖି %{count} ଘଣ୍ତ
       about_x_months:
-        one: ପାଖାପାଖି 1 ମାସ
+        one: ପାଖାପାଖି %{count} ମାସ
         other: ପାଖାପାଖି %{count} ମାସ
       about_x_years:
-        one: ପାଖାପାଖି 1 year
+        one: ପାଖାପାଖି %{count} year
         other: ପାଖାପାଖି %{count} years
       almost_x_years:
-        one: ଅଳ୍ପ ଉଣ 1 ବର୍ଷ
+        one: ଅଳ୍ପ ଉଣ %{count} ବର୍ଷ
         other: ଅଳ୍ପ ଉଣ %{count} ବର୍ଷ
       half_a_minute: ଦେଢ ମିନଟ୍
       less_than_x_seconds:
-        one: 1 ସେକଣ୍ଢ ବାକ
+        one: "%{count} ସେକଣ୍ଢ ବାକ"
         other: "%{count} ସେକଣ୍ଢ ବାକ"
       less_than_x_minutes:
-        one: 1 ମିନଟ ବାକ
+        one: "%{count} ମିନଟ ବାକ"
         other: "%{count} ମିନଟ ବାକ"
       over_x_years:
-        one: 1 ବର୍ଷରୁ ଅଧିକ
+        one: "%{count} ବର୍ଷରୁ ଅଧିକ"
         other: "%{count} ବର୍ଷରୁ ଅଧିକ"
       x_seconds:
-        one: 1 ସେକଣ୍ଢ
+        one: "%{count} ସେକଣ୍ଢ"
         other: "%{count} ସେକଣ୍ଢ"
       x_minutes:
-        one: 1 ମିନଟ
+        one: "%{count} ମିନଟ"
         other: "%{count} ମିନଟ"
       x_days:
-        one: 1  ଦିନ
+        one: "%{count}  ଦିନ"
         other: "%{count} ଦିନ"
       x_months:
-        one: 1 ମାସ
+        one: "%{count} ମାସ"
         other: "%{count} ମାସ"
     prompts:
       second: ସେକଣ୍ଢ
@@ -126,7 +126,7 @@ or:
     template:
       body: 'ନିମ୍ନ ଜାଗା ରେ ଅସୁବିଧା ହେଇଛି:'
       header:
-        one: 1 ଭୁଲ ଯଗୁଁ ନିମ୍ନ %{model} ସୁରଖିତ ହେଇପାରି ନଥିଲା
+        one: "%{count} ଭୁଲ ଯଗୁଁ ନିମ୍ନ %{model} ସୁରଖିତ ହେଇପାରି ନଥିଲା"
         other: "%{count} ଭୁଲ ଯଗୁଁ ଏହି %{model} ସୁରଖିତ ହେଇପାରି ନଥିଲା"
   helpers:
     select:
diff --git a/rails/locale/pa.yml b/rails/locale/pa.yml
index 6dbfa7e..e36c9a4 100644
--- a/rails/locale/pa.yml
+++ b/rails/locale/pa.yml
@@ -63,38 +63,38 @@ pa:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: ਲਗਭਗ 1 ਘੰਟਾ
+        one: ਲਗਭਗ %{count} ਘੰਟਾ
         other: ਲਗਭਗ %{count} ਘੰਟੇ
       about_x_months:
-        one: ਲਗਭਗ 1 ਮਹੀਨਾ
+        one: ਲਗਭਗ %{count} ਮਹੀਨਾ
         other: ਲਗਭਗ %{count} ਮਹੀਨੇ
       about_x_years:
-        one: ਲਗਭਗ 1 ਸਾਲ
+        one: ਲਗਭਗ %{count} ਸਾਲ
         other: ਲਗਭਗ %{count} ਸਾਲ
       almost_x_years:
-        one: ਤਕਰੀਬਨ 1 ਸਾਲ
+        one: ਤਕਰੀਬਨ %{count} ਸਾਲ
         other: ਤਕਰੀਬਨ %{count} ਸਾਲ
       half_a_minute: ਅੱਧਾ ਮਿੰਟ
       less_than_x_seconds:
-        one: 1 ਸਕਿੰਟ ਤੋਂ ਘੱਟ
+        one: "%{count} ਸਕਿੰਟ ਤੋਂ ਘੱਟ"
         other: "%{count} ਸਕਿੰਟਾਂ ਤੋਂ ਘੱਟ"
       less_than_x_minutes:
-        one: 1 ਮਿੰਟ ਤੋਂ ਘੱਟ
+        one: "%{count} ਮਿੰਟ ਤੋਂ ਘੱਟ"
         other: "%{count} ਮਿੰਟਾਂ ਤੋਂ ਘੱਟ"
       over_x_years:
-        one: 1 ਸਾਲ ਤੋਂ ਵੱਧ
+        one: "%{count} ਸਾਲ ਤੋਂ ਵੱਧ"
         other: "%{count} ਸਾਲਾਂ ਤੋਂ ਵੱਧ"
       x_seconds:
-        one: 1 ਸਕਿੰਟ
+        one: "%{count} ਸਕਿੰਟ"
         other: "%{count} ਸਕਿੰਟ"
       x_minutes:
-        one: 1 ਮਿੰਟ
+        one: "%{count} ਮਿੰਟ"
         other: "%{count} ਮਿੰਟ"
       x_days:
-        one: 1 ਦਿਨ
+        one: "%{count} ਦਿਨ"
         other: "%{count} ਦਿਨ"
       x_months:
-        one: 1 ਮਹੀਨਾ
+        one: "%{count} ਮਹੀਨਾ"
         other: "%{count} ਮਹੀਨੇ"
     prompts:
       second: ਸਕਿੰਟ
@@ -126,18 +126,18 @@ pa:
       present: ਜਰੂਰ ਖਾਲੀ ਹੋਵੇ
       taken: ਪਹਿਲਾਂ ਹੀ ਮੱਲਿਆ ਹੋਇਆ ਹੈ
       too_long:
-        one: ਲੰਬਾਈ ਜ਼ਿਆਦਾ ਹੈ (ਵੱਧ ਤੋਂ ਵੱਧ 1 ਅੱਖਰ)
+        one: ਲੰਬਾਈ ਜ਼ਿਆਦਾ ਹੈ (ਵੱਧ ਤੋਂ ਵੱਧ %{count} ਅੱਖਰ)
         other: ਲੰਬਾਈ ਜ਼ਿਆਦਾ ਹੈ (ਵੱਧ ਤੋਂ ਵੱਧ %{count} ਅੱਖਰ)
       too_short:
-        one: ਲੰਬਾਈ ਘੱਟ ਹੈ (ਘੱਟ ਤੋਂ ਘੱਟ 1 ਅੱਖਰ)
+        one: ਲੰਬਾਈ ਘੱਟ ਹੈ (ਘੱਟ ਤੋਂ ਘੱਟ %{count} ਅੱਖਰ)
         other: ਲੰਬਾਈ ਘੱਟ ਹੈ (ਘੱਟ ਤੋਂ ਘੱਟ %{count} ਅੱਖਰ)
       wrong_length:
-        one: ਲੰਬਾਈ ਗਲਤ ਹੈ (1 ਅੱਖਰ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ)
+        one: ਲੰਬਾਈ ਗਲਤ ਹੈ (%{count} ਅੱਖਰ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ)
         other: ਲੰਬਾਈ ਗਲਤ ਹੈ (%{count} ਅੱਖਰ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ)
     template:
       body: 'ਹੇਠਲੇ ਖੇਤਰਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਹਨ:'
       header:
-        one: 1 ਗਲਤੀ ਕਰਕੇ ਇਹ %{model} ਸੰਭਾਲਿ਼ਆ ਨਹੀਂ ਗਿਆ
+        one: "%{count} ਗਲਤੀ ਕਰਕੇ ਇਹ %{model} ਸੰਭਾਲਿ਼ਆ ਨਹੀਂ ਗਿਆ"
         other: "%{count} ਗਲਤੀਆਂ ਕਰਕੇ ਇਹ %{model} ਸੰਭਾਲਿ਼ਆ ਨਹੀਂ ਗਿਆ"
   helpers:
     select:
diff --git a/rails/locale/pap-AW.yml b/rails/locale/pap-AW.yml
index 48546a9..d26605f 100644
--- a/rails/locale/pap-AW.yml
+++ b/rails/locale/pap-AW.yml
@@ -63,41 +63,41 @@ pap-AW:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: mas o ménos 1 ora
+        one: mas o ménos %{count} ora
         other: mas o ménos %{count} ora
       about_x_months:
-        one: mas o ménos 1 luna
+        one: mas o ménos %{count} luna
         other: mas o ménos %{count} luna
       about_x_years:
-        one: mas o ménos 1 aña
+        one: mas o ménos %{count} aña
         other: mas o ménos %{count} aña
       almost_x_years:
-        one: kasi 1 aña
+        one: kasi %{count} aña
         other: kasi %{count} aña
       half_a_minute: mei minüt
       less_than_x_minutes:
-        one: ménos ku 1 minüt
+        one: ménos ku %{count} minüt
         other: ménos ku %{count} minüt
       less_than_x_seconds:
-        one: ménos ku 1 sekònde
+        one: ménos ku %{count} sekònde
         other: ménos ku %{count} sekònde
       over_x_years:
-        one: mas ku 1 aña
+        one: mas ku %{count} aña
         other: mas ku %{count} aña
       x_days:
-        one: 1 dia
+        one: "%{count} dia"
         other: '%{count} dia'
       x_minutes:
-        one: 1 minüt
+        one: "%{count} minüt"
         other: '%{count} minüt'
       x_months:
-        one: 1 luna
+        one: "%{count} luna"
         other: '%{count} luna'
       x_years:
-        one: 1 year
+        one: "%{count} year"
         other: "%{count} years"
       x_seconds:
-        one: 1 sekònde
+        one: "%{count} sekònde"
         other: '%{count} sekònde'
     prompts:
       day: Dia
@@ -130,19 +130,19 @@ pap-AW:
       required: must exist
       taken: ta usá kaba
       too_long:
-        one: ta muchu largu (máksimo ta 1 karakter)
+        one: ta muchu largu (máksimo ta %{count} karakter)
         other: ta muchu largu (máksimo ta %{count} karakter)
       too_short:
-        one: ta muchu kòrtiku (mínimo ta 1 karakter)
+        one: ta muchu kòrtiku (mínimo ta %{count} karakter)
         other: ta muchu kòrtiku (mínimo ta %{count} karakter)
       wrong_length:
-        one: su largura no ta korekto (mester ta 1 karakter)
+        one: su largura no ta korekto (mester ta %{count} karakter)
         other: su largura no ta korekto (mester ta %{count} karakter)
       other_than: "no por ta %{count}"
     template:
       body: 'E siguiente rúbrikanan ta duna problema:'
       header:
-        one: 1 fout a pone ku no por a warda e %{model} akí
+        one: "%{count} fout a pone ku no por a warda e %{model} akí"
         other: '%{count} fout a pone ku no por a save e %{model} akí'
   helpers:
     select:
diff --git a/rails/locale/pap-CW.yml b/rails/locale/pap-CW.yml
index 6569537..d53baee 100644
--- a/rails/locale/pap-CW.yml
+++ b/rails/locale/pap-CW.yml
@@ -63,41 +63,41 @@ pap-CW:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: mas o ménos 1 ora
+        one: mas o ménos %{count} ora
         other: mas o ménos %{count} ora
       about_x_months:
-        one: mas o ménos 1 luna
+        one: mas o ménos %{count} luna
         other: mas o ménos %{count} luna
       about_x_years:
-        one: mas o ménos 1 aña
+        one: mas o ménos %{count} aña
         other: mas o ménos %{count} aña
       almost_x_years:
-        one: kasi 1 aña
+        one: kasi %{count} aña
         other: kasi %{count} aña
       half_a_minute: mei minüt
       less_than_x_minutes:
-        one: ménos ku 1 minüt
+        one: ménos ku %{count} minüt
         other: ménos ku %{count} minüt
       less_than_x_seconds:
-        one: ménos ku 1 sekònde
+        one: ménos ku %{count} sekònde
         other: ménos ku %{count} sekònde
       over_x_years:
-        one: mas ku 1 aña
+        one: mas ku %{count} aña
         other: mas ku %{count} aña
       x_days:
-        one: 1 dia
+        one: "%{count} dia"
         other: '%{count} dia'
       x_minutes:
-        one: 1 minüt
+        one: "%{count} minüt"
         other: '%{count} minüt'
       x_months:
-        one: 1 luna
+        one: "%{count} luna"
         other: '%{count} luna'
       x_years:
-        one: 1 year
+        one: "%{count} year"
         other: "%{count} years"
       x_seconds:
-        one: 1 sekònde
+        one: "%{count} sekònde"
         other: '%{count} sekònde'
     prompts:
       day: Dia
@@ -130,19 +130,19 @@ pap-CW:
       required: must exist
       taken: ta usá kaba
       too_long:
-        one: ta muchu largu (máksimo ta 1 karakter)
+        one: ta muchu largu (máksimo ta %{count} karakter)
         other: ta muchu largu (máksimo ta %{count} karakter)
       too_short:
-        one: ta muchu kòrtiku (mínimo ta 1 karakter)
+        one: ta muchu kòrtiku (mínimo ta %{count} karakter)
         other: ta muchu kòrtiku (mínimo ta %{count} karakter)
       wrong_length:
-        one: su largura no ta korekto (mester ta 1 karakter)
+        one: su largura no ta korekto (mester ta %{count} karakter)
         other: su largura no ta korekto (mester ta %{count} karakter)
       other_than: "no por ta %{count}"
     template:
       body: 'E siguiente rúbrikanan ta duna problema:'
       header:
-        one: 1 fout a pone ku no por a warda e %{model} akí
+        one: "%{count} fout a pone ku no por a warda e %{model} akí"
         other: '%{count} fout a pone ku no por a save e %{model} akí'
   helpers:
     select:
diff --git a/rails/locale/pl.yml b/rails/locale/pl.yml
index e1186f1..6a82571 100644
--- a/rails/locale/pl.yml
+++ b/rails/locale/pl.yml
@@ -99,22 +99,22 @@ pl:
         many: ponad %{count} lat
         other: ponad %{count} lat
       x_seconds:
-        one: 1 sekunda
+        one: "%{count} sekunda"
         few: "%{count} sekundy"
         many: "%{count} sekund"
         other: "%{count} sekund"
       x_minutes:
-        one: 1 minuta
+        one: "%{count} minuta"
         few: "%{count} minuty"
         many: "%{count} minut"
         other: "%{count} minut"
       x_days:
-        one: 1 dzień
+        one: "%{count} dzień"
         few: "%{count} dni"
         many: "%{count} dni"
         other: "%{count} dni"
       x_months:
-        one: 1 miesiąc
+        one: "%{count} miesiąc"
         few: "%{count} miesiące"
         many: "%{count} miesięcy"
         other: "%{count} miesięcy"
diff --git a/rails/locale/pt-BR.yml b/rails/locale/pt-BR.yml
index 0f759a3..3f4683e 100644
--- a/rails/locale/pt-BR.yml
+++ b/rails/locale/pt-BR.yml
@@ -63,41 +63,41 @@ pt-BR:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: aproximadamente 1 hora
+        one: aproximadamente %{count} hora
         other: aproximadamente %{count} horas
       about_x_months:
-        one: aproximadamente 1 mês
+        one: aproximadamente %{count} mês
         other: aproximadamente %{count} meses
       about_x_years:
-        one: aproximadamente 1 ano
+        one: aproximadamente %{count} ano
         other: aproximadamente %{count} anos
       almost_x_years:
-        one: quase 1 ano
+        one: quase %{count} ano
         other: quase %{count} anos
       half_a_minute: meio minuto
       less_than_x_seconds:
-        one: menos de 1 segundo
+        one: menos de %{count} segundo
         other: menos de %{count} segundos
       less_than_x_minutes:
         one: menos de um minuto
         other: menos de %{count} minutos
       over_x_years:
-        one: mais de 1 ano
+        one: mais de %{count} ano
         other: mais de %{count} anos
       x_seconds:
-        one: 1 segundo
+        one: "%{count} segundo"
         other: "%{count} segundos"
       x_minutes:
-        one: 1 minuto
+        one: "%{count} minuto"
         other: "%{count} minutos"
       x_days:
-        one: 1 dia
+        one: "%{count} dia"
         other: "%{count} dias"
       x_months:
-        one: 1 mês
+        one: "%{count} mês"
         other: "%{count} meses"
       x_years:
-        one: 1 ano
+        one: "%{count} ano"
         other: "%{count} anos"
     prompts:
       second: Segundo
@@ -131,18 +131,18 @@ pt-BR:
       required: é obrigatório(a)
       taken: já está em uso
       too_long:
-        one: 'é muito longo (máximo: 1 caracter)'
+        one: 'é muito longo (máximo: %{count} caracter)'
         other: 'é muito longo (máximo: %{count} caracteres)'
       too_short:
-        one: 'é muito curto (mínimo: 1 caracter)'
+        one: 'é muito curto (mínimo: %{count} caracter)'
         other: 'é muito curto (mínimo: %{count} caracteres)'
       wrong_length:
-        one: não possui o tamanho esperado (1 caracter)
+        one: não possui o tamanho esperado (%{count} caracter)
         other: não possui o tamanho esperado (%{count} caracteres)
     template:
       body: 'Por favor, verifique o(s) seguinte(s) campo(s):'
       header:
-        one: 'Não foi possível gravar %{model}: 1 erro'
+        one: 'Não foi possível gravar %{model}: %{count} erro'
         other: 'Não foi possível gravar %{model}: %{count} erros'
   helpers:
     select:
diff --git a/rails/locale/pt.yml b/rails/locale/pt.yml
index f1a0fb4..5fe1bca 100644
--- a/rails/locale/pt.yml
+++ b/rails/locale/pt.yml
@@ -63,41 +63,41 @@ pt:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: aproximadamente 1 hora
+        one: aproximadamente %{count} hora
         other: aproximadamente %{count} horas
       about_x_months:
-        one: aproximadamente 1 mês
+        one: aproximadamente %{count} mês
         other: aproximadamente %{count} meses
       about_x_years:
-        one: aproximadamente 1 ano
+        one: aproximadamente %{count} ano
         other: aproximadamente %{count} anos
       almost_x_years:
-        one: quase 1 ano
+        one: quase %{count} ano
         other: quase %{count} anos
       half_a_minute: meio minuto
       less_than_x_seconds:
-        one: menos de 1 segundo
+        one: menos de %{count} segundo
         other: menos de %{count} segundos
       less_than_x_minutes:
         one: menos de um minuto
         other: menos de %{count} minutos
       over_x_years:
-        one: mais de 1 ano
+        one: mais de %{count} ano
         other: mais de %{count} anos
       x_seconds:
-        one: 1 segundo
+        one: "%{count} segundo"
         other: "%{count} segundos"
       x_minutes:
-        one: 1 minuto
+        one: "%{count} minuto"
         other: "%{count} minutos"
       x_days:
-        one: 1 dia
+        one: "%{count} dia"
         other: "%{count} dias"
       x_months:
-        one: 1 mês
+        one: "%{count} mês"
         other: "%{count} meses"
       x_years:
-        one: 1 ano
+        one: "%{count} ano"
         other: "%{count} anos"
     prompts:
       second: Segundo
@@ -136,7 +136,7 @@ pt:
     template:
       body: 'Por favor, verifique os seguintes campos:'
       header:
-        one: 1 erro impediu guardar este %{model}
+        one: "%{count} erro impediu guardar este %{model}"
         other: "%{count} erros impediram guardar este %{model}"
   helpers:
     select:
diff --git a/rails/locale/rm.yml b/rails/locale/rm.yml
index d5b462f..9d582d4 100644
--- a/rails/locale/rm.yml
+++ b/rails/locale/rm.yml
@@ -107,7 +107,7 @@ rm:
         other: "%{count} secundas"
       x_minutes:
         zero: "%{count} minutas"
-        one: 1 minuta
+        one: "%{count} minuta"
         two: "%{count} minutas"
         few: "%{count} minutas"
         many: "%{count} minutas"
@@ -159,7 +159,7 @@ rm:
       body: 'Faschai uschè bain e controllai ils suandants champs:'
       header:
         zero: 'Betg pussaivel da memorisar quest %{model}: %{count} errurs.'
-        one: 'Betg pussaivel da memorisar quest %{model}: 1 errur.'
+        one: 'Betg pussaivel da memorisar quest %{model}: %{count} errur.'
         two: 'Betg pussaivel da memorisar quest %{model}: %{count} errurs.'
         few: 'Betg pussaivel da memorisar quest %{model}: %{count} errurs.'
         many: 'Betg pussaivel da memorisar quest %{model}: %{count} errurs.'
diff --git a/rails/locale/ro.yml b/rails/locale/ro.yml
index d8e2696..81a61f6 100644
--- a/rails/locale/ro.yml
+++ b/rails/locale/ro.yml
@@ -72,7 +72,7 @@ ro:
         few: aproximativ %{count} ani
         other: aproximativ %{count} ani
       almost_x_years:
-        one: aproape 1 an
+        one: aproape %{count} an
         few: aproape %{count} ani
         other: aproape %{count} ani
       half_a_minute: jumătate de minut
@@ -89,19 +89,19 @@ ro:
         few: mai mult de %{count} ani
         other: mai mult de %{count} ani
       x_seconds:
-        one: 1 secundă
+        one: "%{count} secundă"
         few: "%{count} secunde"
         other: "%{count} secunde"
       x_minutes:
-        one: 1 minut
+        one: "%{count} minut"
         few: "%{count} minute"
         other: "%{count} minute"
       x_days:
-        one: 1 zi
+        one: "%{count} zi"
         few: "%{count} zile"
         other: "%{count} zile"
       x_months:
-        one: 1 lună
+        one: "%{count} lună"
         few: "%{count} luni"
         other: "%{count} luni"
     prompts:
diff --git a/rails/locale/ru.yml b/rails/locale/ru.yml
index c7e16b4..d80d754 100644
--- a/rails/locale/ru.yml
+++ b/rails/locale/ru.yml
@@ -78,7 +78,7 @@ ru:
         many: около %{count} лет
         other: около %{count} лет
       almost_x_years:
-        one: почти 1 год
+        one: почти %{count} год
         few: почти %{count} года
         many: почти %{count} лет
         other: почти %{count} лет
diff --git a/rails/locale/sc.yml b/rails/locale/sc.yml
new file mode 100644
index 0000000..6a0b0f8
--- /dev/null
+++ b/rails/locale/sc.yml
@@ -0,0 +1,223 @@
+---
+sc:
+  activerecord:
+    errors:
+      messages:
+        record_invalid: 'Validatzione fallida: %{errors}'
+        restrict_dependent_destroy:
+          has_one: Su registru non si podet iscantzellare ca esitit unu %{record} chi nde dipendet
+          has_many: Su registru non si podet iscantzellare ca esitint %{record} chi nde dipendent
+  date:
+    abbr_day_names:
+    - dom
+    - lun
+    - mar
+    - mèr
+    - giò
+    - che
+    - sàb
+    abbr_month_names:
+    - 
+    - ghe
+    - fre
+    - mar
+    - abr
+    - maj
+    - làm
+    - trì
+    - aus
+    - cab
+    - stG
+    - stA
+    - nad
+    day_names:
+    - domìniga
+    - lunis
+    - martis
+    - mèrcuris
+    - giòbia
+    - chenàbura
+    - sàbadu
+    formats:
+      default: "%d/%m/%Y"
+      long: "%d %B %Y"
+      short: "%d %b"
+    month_names:
+    - 
+    - ghennàrgiu
+    - freàrgiu
+    - martzu
+    - abrile
+    - maju
+    - làmpadas
+    - trìulas
+    - austu
+    - cabudanni
+    - santugaine
+    - santandria
+    - nadale
+    order:
+    - :day
+    - :month
+    - :year
+  datetime:
+    distance_in_words:
+      about_x_hours:
+        one: pagu prus o mancu un'ora
+        other: pagu prus o mancu %{count} oras
+      about_x_months:
+        one: pagu prus o mancu unu mese
+        other: pagu prus o mancu %{count} meses
+      about_x_years:
+        one: pagu prus o mancu un'annu
+        other: pagu prus o mancu %{count} annos
+      almost_x_years:
+        one: belle un'annu
+        other: belle %{count} annos
+      half_a_minute: mesu minutu
+      less_than_x_seconds:
+        one: prus pagu de unu segundu
+        other: prus pagu de %{count} segundos
+      less_than_x_minutes:
+        one: prus pagu de unu minutu
+        other: prus pagu de %{count} minutos
+      over_x_years:
+        one: prus de un'annu
+        other: prus de %{count} annos
+      x_seconds:
+        one: 1 segundu
+        other: "%{count} segundos"
+      x_minutes:
+        one: 1 minutu
+        other: "%{count} minutos"
+      x_days:
+        one: 1 die
+        other: "%{count} dies"
+      x_months:
+        one: 1 mese
+        other: "%{count} meses"
+      x_years:
+        one: 1 annu
+        other: "%{count} annos"
+    prompts:
+      second: Segundu
+      minute: Minutu
+      hour: Ora
+      day: Die
+      month: Mese
+      year: Annu
+  errors:
+    format: "%{attribute} %{message}"
+    messages:
+      accepted: depet èssere atzetadu
+      blank: non podet èssere lassadu in biancu
+      confirmation: non currispondet cun %{attribute}
+      empty: non pòdet èsser bòidu
+      equal_to: depet èssere uguale a %{count}
+      even: depet èssere pari
+      exclusion: est riservadu
+      greater_than: depet èssere prus mannu de %{count}
+      greater_than_or_equal_to: depet èssere prus mannu o uguale a %{count}
+      inclusion: no est inclùdidu in sa lista
+      invalid: no est vàlidu
+      less_than: depet èssere prus minore de %{count}
+      less_than_or_equal_to: depet èssere prus minore o uguale a %{count}
+      model_invalid: 'Validatzione fallida: %{errors}'
+      not_a_number: no est unu nùmeru
+      not_an_integer: no est unu nùmeru intreu
+      odd: depet èssere dìspari
+      other_than: depet èssere unu nùmeru chi non siat %{count}
+      in: "depet istare intre %{count}"
+      present: depet èssere lassadu in biancu
+      required: depet esìstere
+      taken: est giai presente
+      too_long:
+        one: est tropu longu (su màssimu est de 1 caràtere)
+        other: est tropu longu (su màssimu est de %{count} caràteres)
+      too_short:
+        one: est tropu curtzu (su mìnimu est de 1 caràtere)
+        other: est tropu curtzu (su mìnimu est de %{count} caràteres)
+      wrong_length:
+        one: est de sa longària isballiada (depet tènnere 1 caràtere)
+        other: est de sa longària isballiada (depet tènnere %{count} caràteres)
+    template:
+      body: 'Bi sunt istados problemas cun sos campos chi sighint:'
+      header:
+        one: 'Non potzo sarvare custu %{model}: 1 errore'
+        other: 'Non potzo sarvare custu %{model}: %{count} errores.'
+  helpers:
+    select:
+      prompt: Seletziona...
+    submit:
+      create: Crea %{model}
+      submit: Imbia %{model}
+      update: Atualiza %{model}
+  number:
+    currency:
+      format:
+        delimiter: "."
+        format: "%n %u"
+        precision: 2
+        separator: ","
+        significant: false
+        strip_insignificant_zeros: false
+        unit: "€"
+    format:
+      delimiter: "."
+      precision: 2
+      round_mode: default
+      separator: ","
+      significant: false
+      strip_insignificant_zeros: false
+    human:
+      decimal_units:
+        format: "%n %u"
+        units:
+          billion:
+            one: milliardu
+            other: milliardos
+          million:
+            one: millione
+            other: milliones
+          quadrillion:
+            one: cuadrillione
+            other: cuadrilliones
+          thousand: mìgia
+          trillion: mìgia milliardos
+          unit: ''
+      format:
+        delimiter: ''
+        precision: 3
+        significant: true
+        strip_insignificant_zeros: true
+      storage_units:
+        format: "%n %u"
+        units:
+          byte:
+            one: Byte
+            other: Byte
+          eb: EB
+          gb: GB
+          kb: KB
+          mb: MB
+          pb: PB
+          tb: TB
+    percentage:
+      format:
+        delimiter: ''
+        format: "%n%"
+    precision:
+      format:
+        delimiter: ''
+  support:
+    array:
+      last_word_connector: " e "
+      two_words_connector: " e "
+      words_connector: ", "
+  time:
+    am: am
+    formats:
+      default: "%a, %d de %b de su %Y, %H:%M:%S %z"
+      long: "%d de %B de su %Y %H:%M"
+      short: "%d de %b %H:%M"
+    pm: pm
diff --git a/rails/locale/sl.yml b/rails/locale/sl.yml
index 6a63ca2..f849eff 100644
--- a/rails/locale/sl.yml
+++ b/rails/locale/sl.yml
@@ -60,28 +60,28 @@ sl:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: okoli 1 ura
+        one: okoli %{count} ura
         two: okoli 2 uri
         few: okoli %{count} ure
         other: okoli %{count} ur
       about_x_months:
-        one: okoli 1 mesec
+        one: okoli %{count} mesec
         two: okoli 2 meseca
         few: okoli %{count} mesece
         other: okoli %{count} mesecev
       about_x_years:
-        one: okoli 1 leto
+        one: okoli %{count} leto
         two: okoli 2 leti
         few: okoli %{count} leta
         other: okoli %{count} let
       almost_x_years:
-        one: skoraj 1 leto
+        one: skoraj %{count} leto
         two: skoraj 2 leti
         few: skoraj %{count} leta
         other: skoraj %{count} let
       half_a_minute: pol minute
       less_than_x_seconds:
-        one: manj kot 1 sekunda
+        one: manj kot %{count} sekunda
         two: manj kot 2 sekundi
         few: manj kot %{count} sekunde
         other: manj kot %{count} sekund
@@ -91,27 +91,27 @@ sl:
         few: manj kot %{count} minute
         other: manj kot %{count} minut
       over_x_years:
-        one: več kot 1 leto
+        one: več kot %{count} leto
         two: več kot 2 leti
         few: več kot %{count} leta
         other: več kot %{count} let
       x_seconds:
-        one: 1 sekunda
+        one: "%{count} sekunda"
         two: 2 sekundi
         few: "%{count} sekunde"
         other: "%{count} sekund"
       x_minutes:
-        one: 1 minuta
+        one: "%{count} minuta"
         two: 2 minuti
         few: "%{count} minute"
         other: "%{count} minut"
       x_days:
-        one: 1 dan
+        one: "%{count} dan"
         two: 2 dneva
         few: "%{count} dnevi"
         other: "%{count} dni"
       x_months:
-        one: 1 mesec
+        one: "%{count} mesec"
         two: 2 meseca
         few: "%{count} mesece"
         other: "%{count} mesecev"
diff --git a/rails/locale/sq.yml b/rails/locale/sq.yml
index 200efba..3dd0c04 100644
--- a/rails/locale/sq.yml
+++ b/rails/locale/sq.yml
@@ -63,41 +63,41 @@ sq:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: rreth 1 orë
+        one: rreth %{count} orë
         other: rreth %{count} orë
       about_x_months:
-        one: rreth 1 muaj
+        one: rreth %{count} muaj
         other: rreth %{count} muaj
       about_x_years:
-        one: rreth 1 vit
+        one: rreth %{count} vit
         other: rreth %{count} vjet
       almost_x_years:
-        one: gati 1 vit
+        one: gati %{count} vit
         other: gati %{count} vjet
       half_a_minute: gjysmë minute
       less_than_x_seconds:
-        one: më pak se 1 sekondë
+        one: më pak se %{count} sekondë
         other: më pak se %{count} sekonda
       less_than_x_minutes:
         one: më pak se një minutë
         other: më pak se %{count} minuta
       over_x_years:
-        one: mbi 1 vit
+        one: mbi %{count} vit
         other: mbi %{count} vjet
       x_days:
-        one: 1 ditë
+        one: "%{count} ditë"
         other: "%{count} ditë"
       x_minutes:
-        one: 1 minutë
+        one: "%{count} minutë"
         other: "%{count} minuta"
       x_days:
-        one: 1 ditë
+        one: "%{count} ditë"
         other: "%{count} ditë"
       x_months:
-        one: 1 muaj
+        one: "%{count} muaj"
         other: "%{count} muaj"
       x_years:
-        one: 1 vit
+        one: "%{count} vit"
         other: "%{count} vjet"
     prompts:
       second: Sekondë
@@ -132,18 +132,18 @@ sq:
       required: duhet të ekzistojë
       taken: është zënë tashmë
       too_long:
-        one: është shumë i gjatë (maksimumi është 1 shenjë)
+        one: është shumë i gjatë (maksimumi është %{count} shenjë)
         other: është shumë i gjatë (maksimumi është %{count} shenja)
       too_short:
-        one: është shumë i shkurtër (minimumi është 1 shenjë)
+        one: është shumë i shkurtër (minimumi është %{count} shenjë)
         other: është shumë i shkurtër (minimumi është %{count} shenja)
       wrong_length:
-        one: ka gjatësi të gabuar (duhet të jetë 1 shenjë)
+        one: ka gjatësi të gabuar (duhet të jetë %{count} shenjë)
         other: ka gjatësi të gabuar (duhet të jetë %{count} shenja)
     template:
       body: 'Pati probleme me fushat vijuese:'
       header:
-        one: Ruajtja e këtij %{model} u pengua nga 1 gabim
+        one: Ruajtja e këtij %{model} u pengua nga %{count} gabim
         other: "Ruajtja e këtij %{model} u pengua nga %{count} gabime"
   helpers:
     select:
diff --git a/rails/locale/sv-FI.yml b/rails/locale/sv-FI.yml
new file mode 100644
index 0000000..5195d49
--- /dev/null
+++ b/rails/locale/sv-FI.yml
@@ -0,0 +1,207 @@
+---
+sv-FI:
+  activerecord:
+    errors:
+      messages:
+        record_invalid: "Ett fel uppstod: %{errors}"
+        restrict_dependent_destroy:
+          has_one: Kan inte ta bort post då beroende %{record} finns
+          has_many: Kan inte ta bort poster då beroende %{record} finns
+  date:
+    abbr_day_names:
+      - sön
+      - mån
+      - tis
+      - ons
+      - tor
+      - fre
+      - lör
+    abbr_month_names:
+      -
+      - jan
+      - feb
+      - mar
+      - apr
+      - maj
+      - jun
+      - jul
+      - aug
+      - sep
+      - okt
+      - nov
+      - dec
+    day_names:
+      - söndag
+      - måndag
+      - tisdag
+      - onsdag
+      - torsdag
+      - fredag
+      - lördag
+    formats:
+      default: "%-d.%-m.%Y"
+      long: "%e %B %Y"
+      short: "%e %b"
+    month_names:
+      -
+      - januari
+      - februari
+      - mars
+      - april
+      - maj
+      - juni
+      - juli
+      - augusti
+      - september
+      - oktober
+      - november
+      - december
+    order:
+      - :day
+      - :month
+      - :year
+  datetime:
+    distance_in_words:
+      about_x_hours:
+        one: ungefär en timme
+        other: ungefär %{count} timmar
+      about_x_months:
+        one: ungefär en månad
+        other: ungefär %{count} månader
+      about_x_years:
+        one: ungefär ett år
+        other: ungefär %{count} år
+      almost_x_years:
+        one: nästan ett år
+        other: nästan %{count} år
+      half_a_minute: en halv minut
+      less_than_x_seconds:
+        one: mindre än en sekund
+        other: mindre än %{count} sekunder
+      less_than_x_minutes:
+        one: mindre än en minut
+        other: mindre än %{count} minuter
+      over_x_years:
+        one: mer än ett år
+        other: mer än %{count} år
+      x_seconds:
+        one: en sekund
+        other: "%{count} sekunder"
+      x_minutes:
+        one: en minut
+        other: "%{count} minuter"
+      x_days:
+        one: en dag
+        other: "%{count} dagar"
+      x_months:
+        one: en månad
+        other: "%{count} månader"
+    prompts:
+      second: Sekund
+      minute: Minut
+      hour: Timme
+      day: Dag
+      month: Månad
+      year: År
+  errors:
+    format: "%{attribute} %{message}"
+    messages:
+      accepted: måste vara accepterad
+      blank: måste anges
+      confirmation: stämmer inte överens
+      empty: får ej vara tom
+      equal_to: måste vara lika med %{count}
+      even: måste vara jämnt
+      exclusion: är reserverat
+      greater_than: måste vara större än %{count}
+      greater_than_or_equal_to: måste vara större än eller lika med %{count}
+      inclusion: finns inte i listan
+      invalid: har fel format
+      less_than: måste vara mindre än %{count}
+      less_than_or_equal_to: måste vara mindre än eller lika med %{count}
+      model_invalid: "Validering misslyckades: %{errors}"
+      not_a_number: är inte ett nummer
+      not_an_integer: måste vara ett heltal
+      odd: måste vara udda
+      other_than: måste vara annat än %{count}
+      present: får inte anges
+      required: måste finnas
+      taken: används redan
+      too_long: är för lång (maximum är %{count} tecken)
+      too_short: är för kort (minimum är %{count} tecken)
+      wrong_length: har fel längd (ska vara %{count} tecken)
+    template:
+      body: "Det var problem med följande fält:"
+      header:
+        one: Ett fel förhindrade ifrågavarande %{model} från att sparas
+        other: "%{count} fel förhindrade ifrågavarande %{model} från att sparas"
+  helpers:
+    select:
+      prompt: Välj
+    submit:
+      create: Skapa %{model}
+      submit: Spara %{model}
+      update: Ändra %{model}
+  number:
+    currency:
+      format:
+        delimiter: " "
+        format: "%n %u"
+        precision: 2
+        separator: ","
+        significant: false
+        strip_insignificant_zeros: false
+        unit: "€"
+    format:
+      delimiter: " "
+      precision: 2
+      round_mode: default
+      separator: ","
+      significant: false
+      strip_insignificant_zeros: false
+    human:
+      decimal_units:
+        format: "%n %u"
+        units:
+          billion: Miljard
+          million: Miljon
+          quadrillion: Biljard
+          thousand: Tusen
+          trillion: Biljon
+          unit: ""
+      format:
+        delimiter: ""
+        precision: 3
+        significant: true
+        strip_insignificant_zeros: true
+      storage_units:
+        format: "%n %u"
+        units:
+          byte:
+            one: Byte
+            other: Bytes
+          eb: EB
+          gb: GB
+          kb: KB
+          mb: MB
+          pb: PB
+          tb: TB
+    percentage:
+      format:
+        delimiter: " "
+        format: "%n %"
+    precision:
+      format:
+        delimiter: ""
+  support:
+    array:
+      last_word_connector: " och "
+      two_words_connector: " och "
+      words_connector: ", "
+  time:
+    am: ""
+    formats:
+      default: "%a, %e %b %Y %H:%M:%S %z"
+      long: "%e %B %Y %H:%M"
+      short: "%e %b %H:%M"
+    pm: ""
diff --git a/rails/locale/sv-SE.yml b/rails/locale/sv-SE.yml
index 521c556..6c0a74a 100644
--- a/rails/locale/sv-SE.yml
+++ b/rails/locale/sv-SE.yml
@@ -158,6 +158,7 @@ sv-SE:
     format:
       delimiter: " "
       precision: 2
+      round_mode: default
       separator: ","
       significant: false
       strip_insignificant_zeros: false
@@ -173,7 +174,7 @@ sv-SE:
           unit: ''
       format:
         delimiter: ''
-        precision: 1
+        precision: 3
         significant: true
         strip_insignificant_zeros: true
       storage_units:
@@ -182,9 +183,11 @@ sv-SE:
           byte:
             one: Byte
             other: Bytes
+          eb: EB
           gb: GB
           kb: KB
           mb: MB
+          pb: PB
           tb: TB
     percentage:
       format:
diff --git a/rails/locale/sv.yml b/rails/locale/sv.yml
index 7aa9827..d5cc5c2 100644
--- a/rails/locale/sv.yml
+++ b/rails/locale/sv.yml
@@ -158,6 +158,7 @@ sv:
     format:
       delimiter: " "
       precision: 2
+      round_mode: default
       separator: ","
       significant: false
       strip_insignificant_zeros: false
@@ -173,7 +174,7 @@ sv:
           unit: ''
       format:
         delimiter: ''
-        precision: 1
+        precision: 3
         significant: true
         strip_insignificant_zeros: true
       storage_units:
@@ -182,9 +183,11 @@ sv:
           byte:
             one: Byte
             other: Bytes
+          eb: EB
           gb: GB
           kb: KB
           mb: MB
+          pb: PB
           tb: TB
     percentage:
       format:
diff --git a/rails/locale/sw.yml b/rails/locale/sw.yml
index 1d15f56..4905445 100644
--- a/rails/locale/sw.yml
+++ b/rails/locale/sw.yml
@@ -63,35 +63,35 @@ sw:
         one: kama saa limoja
         other: kama masaa %{count}
       about_x_months:
-        one: kama mwezi 1
+        one: kama mwezi %{count}
         other: kama miezi %{count}
       about_x_years:
-        one: kama mwaka 1
+        one: kama mwaka %{count}
         other: kama miaka %{count}
       almost_x_years:
         one: karibia mwaka
         other: karibia miaka %{count}
       half_a_minute: nusu dakika
       less_than_x_seconds:
-        one: chini ya sekunde 1
+        one: chini ya sekunde %{count}
         other: chini ya sekunde %{count}
       less_than_x_minutes:
-        one: chini ya dakika 1
+        one: chini ya dakika %{count}
         other: chini ya dakika %{count}
       over_x_years:
-        one: zaidi ya mwaka 1
+        one: zaidi ya mwaka %{count}
         other: zaidi ya miaka %{count}
       x_seconds:
-        one: sekunde 1
+        one: sekunde %{count}
         other: sekunde %{count}
       x_minutes:
-        one: dakika 1
+        one: dakika %{count}
         other: dakika %{count}
       x_days:
-        one: siku 1
+        one: siku %{count}
         other: siku %{count}
       x_months:
-        one: mwezi 1
+        one: mwezi %{count}
         other: miezi %{count}
     prompts:
       second: Sekunde
diff --git a/rails/locale/ta.yml b/rails/locale/ta.yml
index 7993601..0ad9b87 100644
--- a/rails/locale/ta.yml
+++ b/rails/locale/ta.yml
@@ -63,16 +63,16 @@ ta:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: சுமார் 1 மணி நேரம்
+        one: சுமார் %{count} மணி நேரம்
         other: சுமார் %{count} மணி
       about_x_months:
-        one: சுமார் 1 மாதம்
+        one: சுமார் %{count} மாதம்
         other: சுமார் %{count} மாதங்களுக்கு
       about_x_years:
-        one: சுமார் 1  ஆண்டு
+        one: சுமார் %{count}  ஆண்டு
         other: சுமார் %{count}  ஆண்டுகள்
       almost_x_years:
-        one: கிட்டத்தட்ட 1  ஆண்டு
+        one: கிட்டத்தட்ட %{count}  ஆண்டு
         other: கிட்டத்தட்ட %{count}  ஆண்டுகள்
       half_a_minute: அரை நிமிடம்
       less_than_x_seconds:
@@ -85,16 +85,16 @@ ta:
         one: ஒரு  ஆண்டிற்கு மேலாக
         other: "%{count}  ஆண்டிற்கு மேலாக"
       x_seconds:
-        one: 1 வினாடி
+        one: "%{count} வினாடி"
         other: "%{count} விநாடிகள்"
       x_minutes:
-        one: 1 நிமிடம்
+        one: "%{count} நிமிடம்"
         other: "%{count} நிமிடங்கள்"
       x_days:
-        one: 1 நாள்
+        one: "%{count} நாள்"
         other: "%{count} நாட்கள்"
       x_months:
-        one: 1 மாதம்
+        one: "%{count} மாதம்"
         other: "%{count} மாதங்கள்"
     prompts:
       second: விநாடிகள்
@@ -132,12 +132,12 @@ ta:
         one: மிகவும் குறுகியதாக உள்ளது (குறைந்தபட்சம் ஒரு எழுத்து)
         other: மிகவும் குறுகியதாக உள்ளது (குறைந்தபட்சம் %{count} எழுத்துக்கள்)
       wrong_length:
-        one: தவறான நீளம் (1 எழுத்து இருக்கவேண்டும்)
+        one: தவறான நீளம் (%{count} எழுத்து இருக்கவேண்டும்)
         other: தவறான நீளம் (%{count} எழுத்துக்கள் இருக்கவேண்டும்)
     template:
       body: 'பின்வரும் புலங்களில் பிரச்சினைகள் உள்ளது:'
       header:
-        one: 1 பிழை இந்த %{model} ஐ சேமிக்க தடையாக உள்ளது
+        one: "%{count} பிழை இந்த %{model} ஐ சேமிக்க தடையாக உள்ளது"
         other: "%{count} பிழைகள் இந்த %{model} ஐ சேமிக்க தடையாக உள்ளது"
   helpers:
     select:
diff --git a/rails/locale/tr.yml b/rails/locale/tr.yml
index eea2a60..9508883 100644
--- a/rails/locale/tr.yml
+++ b/rails/locale/tr.yml
@@ -63,41 +63,41 @@ tr:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: yaklaşık 1 saat
+        one: yaklaşık %{count} saat
         other: yaklaşık %{count} saat
       about_x_months:
-        one: yaklaşık 1 ay
+        one: yaklaşık %{count} ay
         other: yaklaşık %{count} ay
       about_x_years:
-        one: yaklaşık 1 yıl
+        one: yaklaşık %{count} yıl
         other: yaklaşık %{count} yıl
       almost_x_years:
-        one: neredeyse 1 yıl
+        one: neredeyse %{count} yıl
         other: neredeyse %{count} yıl
       half_a_minute: yarım dakika
       less_than_x_seconds:
-        one: 1 saniyeden az
+        one: "%{count} saniyeden az"
         other: "%{count} saniyeden az"
       less_than_x_minutes:
-        one: 1 dakikadan az
+        one: "%{count} dakikadan az"
         other: "%{count} dakikadan az"
       over_x_years:
-        one: 1 yıldan fazla
+        one: "%{count} yıldan fazla"
         other: "%{count} yıldan fazla"
       x_seconds:
-        one: 1 saniye
+        one: "%{count} saniye"
         other: "%{count} saniye"
       x_minutes:
-        one: 1 dakika
+        one: "%{count} dakika"
         other: "%{count} dakika"
       x_days:
-        one: 1 gün
+        one: "%{count} gün"
         other: "%{count} gün"
       x_months:
-        one: 1 ay
+        one: "%{count} ay"
         other: "%{count} ay"
       x_years:
-        one: 1 yıl
+        one: "%{count} yıl"
         other: "%{count} yıl"
     prompts:
       second: Saniye
@@ -131,18 +131,18 @@ tr:
       required: doldurulmalı
       taken: hali hazırda kullanılmakta
       too_long:
-        one: çok uzun (en fazla 1 karakter)
+        one: çok uzun (en fazla %{count} karakter)
         other: çok uzun (en fazla %{count} karakter)
       too_short:
-        one: çok kısa (en az 1 karakter)
+        one: çok kısa (en az %{count} karakter)
         other: çok kısa (en az %{count} karakter)
       wrong_length:
-        one: hatalı uzunlukta (1 karakter olmalı)
+        one: hatalı uzunlukta (%{count} karakter olmalı)
         other: hatalı uzunlukta (%{count} karakter olmalı)
     template:
       body: 'Lütfen aşağıdaki hataları düzeltiniz:'
       header:
-        one: 1 hata oluştuğu için %{model} kaydedilemedi
+        one: "%{count} hata oluştuğu için %{model} kaydedilemedi"
         other: "%{count} hata oluştuğu için %{model} kaydedilemedi"
   helpers:
     select:
diff --git a/rails/locale/uz.yml b/rails/locale/uz.yml
index 320a84e..890492f 100644
--- a/rails/locale/uz.yml
+++ b/rails/locale/uz.yml
@@ -75,7 +75,7 @@ uz:
         many: chamasi %{count} yil
         other: chamasi %{count} yil
       almost_x_years:
-        one: deyarli 1 yil
+        one: deyarli %{count} yil
         few: deyarli %{count} yil
         many: deyarli %{count} yil
         other: deyarli %{count} yil
diff --git a/rails/locale/vi.yml b/rails/locale/vi.yml
index 51eaa63..eb660dc 100644
--- a/rails/locale/vi.yml
+++ b/rails/locale/vi.yml
@@ -62,40 +62,18 @@ vi:
     - :year
   datetime:
     distance_in_words:
-      about_x_hours:
-        one: khoảng 1 giờ
-        other: khoảng %{count} giờ
-      about_x_months:
-        one: khoảng 1 tháng
-        other: khoảng %{count} tháng
-      about_x_years:
-        one: khoảng 1 năm
-        other: khoảng %{count} năm
-      almost_x_years:
-        one: gần 1 năm
-        other: gần %{count} năm
+      about_x_hours: khoảng %{count} giờ
+      about_x_months: khoảng %{count} tháng
+      about_x_years: khoảng %{count} năm
+      almost_x_years: gần %{count} năm
       half_a_minute: 30 giây
-      less_than_x_seconds:
-        one: chưa tới 1 giây
-        other: chưa tới %{count} giây
-      less_than_x_minutes:
-        one: chưa tới 1 phút
-        other: chưa tới %{count} phút
-      over_x_years:
-        one: hơn 1 năm
-        other: hơn %{count} năm
-      x_seconds:
-        one: 1 giây
-        other: "%{count} giây"
-      x_minutes:
-        one: 1 phút
-        other: "%{count} phút"
-      x_days:
-        one: 1 ngày
-        other: "%{count} ngày"
-      x_months:
-        one: 1 tháng
-        other: "%{count} tháng"
+      less_than_x_seconds: chưa tới %{count} giây
+      less_than_x_minutes: chưa tới %{count} phút
+      over_x_years: hơn %{count} năm
+      x_seconds: "%{count} giây"
+      x_minutes: "%{count} phút"
+      x_days: "%{count} ngày"
+      x_months: "%{count} tháng"
     prompts:
       second: Giây
       minute: Phút
@@ -124,16 +102,14 @@ vi:
       odd: phải là số lẻ
       other_than: cần phải khác %{count}
       present: cần phải để trắng
-      taken: đã có
+      taken: đã tồn tại
       too_long: quá dài (tối đa %{count} ký tự)
       too_short: quá ngắn (tối thiểu %{count} ký tự)
       wrong_length: độ dài không đúng (phải là %{count} ký tự)
       required: "phải có"
     template:
       body: 'Có lỗi với các mục sau:'
-      header:
-        one: 1 lỗi ngăn không cho lưu %{model} này
-        other: "%{count} lỗi ngăn không cho lưu %{model} này"
+      header: "%{count} lỗi ngăn không cho lưu %{model} này"
   helpers:
     select:
       prompt: Vui lòng chọn
diff --git a/rails/locale/wo.yml b/rails/locale/wo.yml
index 80efb4f..8bf2ffe 100644
--- a/rails/locale/wo.yml
+++ b/rails/locale/wo.yml
@@ -63,41 +63,41 @@ wo:
   datetime:
     distance_in_words:
       about_x_hours:
-        one: about 1 hour
+        one: about %{count} hour
         other: about %{count} hours
       about_x_months:
-        one: about 1 month
+        one: about %{count} month
         other: about %{count} months
       about_x_years:
-        one: about 1 year
+        one: about %{count} year
         other: about %{count} years
       almost_x_years:
-        one: almost 1 year
+        one: almost %{count} year
         other: almost %{count} years
       half_a_minute: half a minute
       less_than_x_seconds:
-        one: less than 1 second
+        one: less than %{count} second
         other: less than %{count} seconds
       less_than_x_minutes:
         one: less than a minute
         other: less than %{count} minutes
       over_x_years:
-        one: over 1 year
+        one: over %{count} year
         other: over %{count} years
       x_seconds:
-        one: 1 second
+        one: "%{count} second"
         other: "%{count} seconds"
       x_minutes:
-        one: 1 minute
+        one: "%{count} minute"
         other: "%{count} minutes"
       x_days:
-        one: 1 day
+        one: "%{count} day"
         other: "%{count} days"
       x_months:
-        one: 1 month
+        one: "%{count} month"
         other: "%{count} months"
       x_years:
-        one: 1 year
+        one: "%{count} year"
         other: "%{count} years"
     prompts:
       second: Second
@@ -127,18 +127,18 @@ wo:
       odd: must be odd
       taken: has already been taken
       too_long:
-        one: is too long (maximum is 1 character)
+        one: is too long (maximum is %{count} character)
         other: is too long (maximum is %{count} characters)
       too_short:
-        one: is too short (minimum is 1 character)
+        one: is too short (minimum is %{count} character)
         other: is too short (minimum is %{count} characters)
       wrong_length:
-        one: is the wrong length (should be 1 character)
+        one: is the wrong length (should be %{count} character)
         other: is the wrong length (should be %{count} characters)
     template:
       body: 'There were problems with the following fields:'
       header:
-        one: 1 error prohibited this %{model} from being saved
+        one: "%{count} error prohibited this %{model} from being saved"
         other: "%{count} errors prohibited this %{model} from being saved"
   helpers:
     select:
diff --git a/rails/locale/zh-CN.yml b/rails/locale/zh-CN.yml
index aaf1836..d2e1bbe 100644
--- a/rails/locale/zh-CN.yml
+++ b/rails/locale/zh-CN.yml
@@ -3,10 +3,10 @@ zh-CN:
   activerecord:
     errors:
       messages:
-        record_invalid: '验证失败: %{errors}'
+        record_invalid: 验证失败:%{errors}
         restrict_dependent_destroy:
-          has_one: 由于 %{record} 需要此记录,所以无法移除记录
-          has_many: 由于 %{record} 需要此记录,所以无法移除记录
+          has_one: 由于%{record}需要此记录,所以无法移除记录
+          has_many: 由于%{record}需要此记录,所以无法移除记录
   date:
     abbr_day_names:
     - 周日
@@ -62,19 +62,19 @@ zh-CN:
     - :day
   datetime:
     distance_in_words:
-      about_x_hours: 大约 %{count} 小时
-      about_x_months: 大约 %{count} 个月
-      about_x_years: 大约 %{count} 年
-      almost_x_years: 接近 %{count} 年
+      about_x_hours: 大约%{count}小时
+      about_x_months: 大约%{count}个月
+      about_x_years: 大约%{count}年
+      almost_x_years: 接近%{count}年
       half_a_minute: 半分钟
-      less_than_x_seconds: 不到 %{count} 秒
-      less_than_x_minutes: 不到 %{count} 分钟
-      over_x_years: "%{count} 年多"
-      x_seconds: "%{count} 秒"
-      x_minutes: "%{count} 分钟"
-      x_days: "%{count} 天"
-      x_months: "%{count} 个月"
-      x_years: "%{count} 年"
+      less_than_x_seconds: 不到%{count}秒
+      less_than_x_minutes: 不到%{count}分钟
+      over_x_years: "%{count}年多"
+      x_seconds: "%{count}秒"
+      x_minutes: "%{count}分钟"
+      x_days: "%{count}天"
+      x_months: "%{count}个月"
+      x_years: "%{count}年"
     prompts:
       second: 秒
       minute: 分
@@ -83,35 +83,35 @@ zh-CN:
       month: 月
       year: 年
   errors:
-    format: "%{attribute} %{message}"
+    format: "%{attribute}%{message}"
     messages:
       accepted: 必须是可被接受的
       blank: 不能为空字符
-      confirmation: 与 %{attribute} 不匹配
+      confirmation: 与%{attribute}不匹配
       empty: 不能留空
-      equal_to: 必须等于 %{count}
+      equal_to: 必须等于%{count}
       even: 必须为双数
       exclusion: 是保留关键字
-      greater_than: 必须大于 %{count}
-      greater_than_or_equal_to: 必须大于或等于 %{count}
+      greater_than: 必须大于%{count}
+      greater_than_or_equal_to: 必须大于或等于%{count}
       inclusion: 不包含于列表中
       invalid: 是无效的
-      less_than: 必须小于 %{count}
-      less_than_or_equal_to: 必须小于或等于 %{count}
-      model_invalid: '验证失败: %{errors}'
+      less_than: 必须小于%{count}
+      less_than_or_equal_to: 必须小于或等于%{count}
+      model_invalid: 验证失败:%{errors}
       not_a_number: 不是数字
       not_an_integer: 必须是整数
       odd: 必须为单数
-      other_than: 长度非法(不可为 %{count} 个字符
+      other_than: 长度非法(不可为%{count}个字符)
       present: 必须是空白
       required: 必须存在
       taken: 已经被使用
-      too_long: 过长(最长为 %{count} 个字符)
-      too_short: 过短(最短为 %{count} 个字符)
-      wrong_length: 长度非法(必须为 %{count} 个字符)
+      too_long: 过长(最长为%{count}个字符)
+      too_short: 过短(最短为%{count}个字符)
+      wrong_length: 长度非法(必须为%{count}个字符)
     template:
       body: 如下字段出现错误:
-      header: 有 %{count} 个错误发生导致“%{model}”无法被保存。
+      header: 有%{count}个错误发生导致“%{model}”无法被保存。
   helpers:
     select:
       prompt: 请选择
@@ -169,8 +169,8 @@ zh-CN:
         delimiter: ''
   support:
     array:
-      last_word_connector: " 以及 "
-      two_words_connector: " 和 "
+      last_word_connector: "、"
+      two_words_connector: 和
       words_connector: "、"
   time:
     am: 上午
diff --git a/rails/locale/zh-HK.yml b/rails/locale/zh-HK.yml
index dde4e7d..eb11d77 100644
--- a/rails/locale/zh-HK.yml
+++ b/rails/locale/zh-HK.yml
@@ -3,7 +3,7 @@ zh-HK:
   activerecord:
     errors:
       messages:
-        record_invalid: 驗證失敗︰%{errors}
+        record_invalid: 驗證失敗:%{errors}
         restrict_dependent_destroy:
           has_one: 由於%{record}依賴此記錄,無法移除
           has_many: 由於%{record}依賴此記錄,無法移除
@@ -62,43 +62,19 @@ zh-HK:
     - :day
   datetime:
     distance_in_words:
-      about_x_hours:
-        one: 約一小時
-        other: 約%{count}小時
-      about_x_months:
-        one: 約一個月
-        other: 約%{count}個月
-      about_x_years:
-        one: 約一年
-        other: 約%{count}年
-      almost_x_years:
-        one: 接近一年
-        other: 接近%{count}年
+      about_x_hours: 約%{count}小時
+      about_x_months: 約%{count}個月
+      about_x_years: 約%{count}年
+      almost_x_years: 接近%{count}年
       half_a_minute: 半分鐘
-      less_than_x_seconds:
-        one: 不到一秒
-        other: 不到%{count}秒
-      less_than_x_minutes:
-        one: 不到一分鐘
-        other: 不到%{count}分鐘
-      over_x_years:
-        one: 超過一年
-        other: 超過%{count}年
-      x_seconds:
-        one: 一秒
-        other: "%{count}秒"
-      x_minutes:
-        one: 一分鐘
-        other: "%{count}分鐘"
-      x_days:
-        one: 一天
-        other: "%{count}天"
-      x_months:
-        one: 一個月
-        other: "%{count}個月"
-      x_years:
-        one: 一年
-        other: "%{count} 年"
+      less_than_x_seconds: 不到%{count}秒
+      less_than_x_minutes: 不到%{count}分鐘
+      over_x_years: 超過%{count}年
+      x_seconds: "%{count}秒"
+      x_minutes: "%{count}分鐘"
+      x_days: "%{count}天"
+      x_months: "%{count}個月"
+      x_years: "%{count}年"
     prompts:
       second: 秒
       minute: 分
@@ -107,43 +83,35 @@ zh-HK:
       month: 月
       year: 年
   errors:
-    format: "%{attribute} %{message}"
+    format: "%{attribute}%{message}"
     messages:
       accepted: 必定要被接受
       blank: 不可以是空白
-      confirmation: 與 %{attribute} 不一致
+      confirmation: 與%{attribute}不一致
       empty: 不可以留空
-      equal_to: 必須等於 %{count}
+      equal_to: 必須等於%{count}
       even: 必須要是雙數
       exclusion: 是被保留的關鍵字
-      greater_than: 必須大於 %{count}
-      greater_than_or_equal_to: 必須大於或等於 %{count}
+      greater_than: 必須大於%{count}
+      greater_than_or_equal_to: 必須大於或等於%{count}
       inclusion: 並非可被接受的內容
       invalid: 是無效的
-      less_than: 必須小於 %{count}
-      less_than_or_equal_to: 必須小於或等於 %{count}
-      model_invalid: 驗證失敗︰%{errors}
+      less_than: 必須小於%{count}
+      less_than_or_equal_to: 必須小於或等於%{count}
+      model_invalid: 驗證失敗:%{errors}
       not_a_number: 必須是數字
       not_an_integer: 必須是整數
       odd: 必須是單數
-      other_than: 不可以是 %{count} 個字
+      other_than: 不可以是%{count}個字
       present: 必定要是空白
       required: 必須存在
       taken: 已被使用
-      too_long:
-        one: 太長(最長為一個字元)
-        other: 太長(最長為 %{count} 個字元)
-      too_short:
-        one: 太短(最少為一個字元)
-        other: 太短(最少為 %{count} 個字元)
-      wrong_length:
-        one: 字數錯誤 (應為一個字元)
-        other: 字數錯誤 (應為 %{count} 個字元)
+      too_long: 太長(最長為%{count}個字元)
+      too_short: 太短(最少為%{count}個字元)
+      wrong_length: 字數錯誤(應為%{count}個字元)
     template:
-      body: 以下欄位發生問題︰
-      header:
-        one: 發生一項錯誤,以致 %{model} 未能儲存。
-        other: 發生%{count}項錯誤,以致 %{model} 未能儲存。
+      body: 以下欄位發生問題:
+      header: 發生%{count}項錯誤,以致%{model}未能儲存。
   helpers:
     select:
       prompt: 請選擇
@@ -201,7 +169,7 @@ zh-HK:
         delimiter: ''
   support:
     array:
-      last_word_connector: 和
+      last_word_connector: "、"
       two_words_connector: 和
       words_connector: "、"
   time:
diff --git a/rails/locale/zh-TW.yml b/rails/locale/zh-TW.yml
index 6ad0bc4..7ae4f80 100644
--- a/rails/locale/zh-TW.yml
+++ b/rails/locale/zh-TW.yml
@@ -3,10 +3,10 @@ zh-TW:
   activerecord:
     errors:
       messages:
-        record_invalid: '校驗失敗: %{errors}'
+        record_invalid: 校驗失敗:%{errors}
         restrict_dependent_destroy:
-          has_one: 由於 %{record} 需要此記錄,所以無法移除記錄
-          has_many: 由於 %{record} 需要此記錄,所以無法移除記錄
+          has_one: 由於%{record}需要此記錄,所以無法移除記錄
+          has_many: 由於%{record}需要此記錄,所以無法移除記錄
   date:
     abbr_day_names:
     - 周日
@@ -62,43 +62,19 @@ zh-TW:
     - :day
   datetime:
     distance_in_words:
-      about_x_hours:
-        one: 大約一小時
-        other: 大約 %{count} 小時
-      about_x_months:
-        one: 大約一個月
-        other: 大約 %{count} 個月
-      about_x_years:
-        one: 大約一年
-        other: 大約 %{count} 年
-      almost_x_years:
-        one: 接近一年
-        other: 接近 %{count} 年
+      about_x_hours: 大約%{count}小時
+      about_x_months: 大約%{count}個月
+      about_x_years: 大約%{count}年
+      almost_x_years: 接近%{count}年
       half_a_minute: 半分鐘
-      less_than_x_seconds:
-        one: 不到一秒
-        other: 不到 %{count} 秒
-      less_than_x_minutes:
-        one: 不到一分鐘
-        other: 不到 %{count} 分鐘
-      over_x_years:
-        one: 一年多
-        other: "%{count} 年多"
-      x_seconds:
-        one: 一秒
-        other: "%{count} 秒"
-      x_minutes:
-        one: 一分鐘
-        other: "%{count} 分鐘"
-      x_days:
-        one: 一天
-        other: "%{count} 天"
-      x_months:
-        one: 一個月
-        other: "%{count} 個月"
-      x_years:
-        one: 一年
-        other: "%{count} 年"
+      less_than_x_seconds: 不到%{count}秒
+      less_than_x_minutes: 不到%{count}分鐘
+      over_x_years: "%{count}年多"
+      x_seconds: "%{count}秒"
+      x_minutes: "%{count}分鐘"
+      x_days: "%{count}天"
+      x_months: "%{count}個月"
+      x_years: "%{count}年"
     prompts:
       second: 秒
       minute: 分
@@ -111,39 +87,31 @@ zh-TW:
     messages:
       accepted: 必須是可被接受的
       blank: 不能為空白
-      confirmation: 與 %{attribute} 須一致
+      confirmation: 與%{attribute}須一致
       empty: 不能留空
-      equal_to: 必須等於 %{count}
+      equal_to: 必須等於%{count}
       even: 必須是偶數
       exclusion: 是被保留的關鍵字
-      greater_than: 必須大於 %{count}
-      greater_than_or_equal_to: 必須大於或等於 %{count}
+      greater_than: 必須大於%{count}
+      greater_than_or_equal_to: 必須大於或等於%{count}
       inclusion: 沒有包含在列表中
       invalid: 是無效的
-      less_than: 必須小於 %{count}
-      less_than_or_equal_to: 必須小於或等於 %{count}
-      model_invalid: '校驗失敗: %{errors}'
+      less_than: 必須小於%{count}
+      less_than_or_equal_to: 必須小於或等於%{count}
+      model_invalid: 校驗失敗:%{errors}
       not_a_number: 不是數字
       not_an_integer: 必須是整數
       odd: 必須是奇數
-      other_than: 不可以是 %{count} 個字
+      other_than: 不可以是%{count}個字
       present: 必須是空白
       required: 必須存在
       taken: 已經被使用
-      too_long:
-        one: 過長(最長是一個字)
-        other: 過長(最長是 %{count} 個字)
-      too_short:
-        one: 過短(最短是一個字)
-        other: 過短(最短是 %{count} 個字)
-      wrong_length:
-        one: 字數錯誤 (必須是一個字)
-        other: 字數錯誤 (必須是 %{count} 個字)
+      too_long: 過長(最長是%{count}個字)
+      too_short: 過短(最短是%{count}個字)
+      wrong_length: 字數錯誤(必須是%{count}個字)
     template:
       body: 以下欄位發生問題:
-      header:
-        one: 有 1 個錯誤發生使得「%{model}」無法被儲存。
-        other: 有 %{count} 個錯誤發生使得「%{model}」無法被儲存。
+      header: 有%{count}個錯誤發生使得「%{model}」無法被儲存。
   helpers:
     select:
       prompt: 請選擇
@@ -201,9 +169,9 @@ zh-TW:
         delimiter: ''
   support:
     array:
-      last_word_connector: ", 和 "
-      two_words_connector: " 和 "
-      words_connector: ", "
+      last_word_connector: "、"
+      two_words_connector: 和
+      words_connector: "、"
   time:
     am: 上午
     formats:
diff --git a/rails/locale/zh-YUE.yml b/rails/locale/zh-YUE.yml
index 88b819c..d60105d 100644
--- a/rails/locale/zh-YUE.yml
+++ b/rails/locale/zh-YUE.yml
@@ -3,7 +3,7 @@ zh-YUE:
   activerecord:
     errors:
       messages:
-        record_invalid: 驗證失敗︰%{errors}
+        record_invalid: 驗證失敗:%{errors}
         restrict_dependent_destroy:
           has_one: 唔可以刪除,因為%{record}要用佢
           has_many: 唔可以刪除,因為%{record}要用佢
@@ -62,43 +62,19 @@ zh-YUE:
     - :day
   datetime:
     distance_in_words:
-      about_x_hours:
-        one: 大概一個鐘
-        other: 大概%{count}個鐘
-      about_x_months:
-        one: 大概一個月
-        other: 大概%{count}個月
-      about_x_years:
-        one: 大概一年
-        other: 大概%{count}年
-      almost_x_years:
-        one: 差唔多一年
-        other: 差唔多%{count}年
+      about_x_hours: 大概%{count}個鐘
+      about_x_months: 大概%{count}個月
+      about_x_years: 大概%{count}年
+      almost_x_years: 差唔多%{count}年
       half_a_minute: 半分鐘
-      less_than_x_seconds:
-        one: 唔夠一秒
-        other: 唔夠%{count}秒
-      less_than_x_minutes:
-        one: 唔夠一分鐘
-        other: 唔夠%{count}分鐘
-      over_x_years:
-        one: 超過一年
-        other: 超過%{count}年
-      x_seconds:
-        one: 一秒
-        other: "%{count}秒"
-      x_minutes:
-        one: 一分鐘
-        other: "%{count}分鐘"
-      x_days:
-        one: 一日
-        other: "%{count}日"
-      x_months:
-        one: 一個月
-        other: "%{count}個月"
-      x_years:
-        one: 一年
-        other: "%{count} 年"
+      less_than_x_seconds: 唔夠%{count}秒
+      less_than_x_minutes: 唔夠%{count}分鐘
+      over_x_years: 超過%{count}年
+      x_seconds: "%{count}秒"
+      x_minutes: "%{count}分鐘"
+      x_days: "%{count}日"
+      x_months: "%{count}個月"
+      x_years: "%{count}年"
     prompts:
       second: 秒
       minute: 分
@@ -107,13 +83,13 @@ zh-YUE:
       month: 月
       year: 年
   errors:
-    format: "%{attribute} %{message}"
+    format: "%{attribute}%{message}"
     messages:
       accepted: 一定要被接受
       blank: 唔可以空白
-      confirmation: 與 %{attribute} 唔夾
+      confirmation: 與%{attribute}唔夾
       empty: 唔可以漏空
-      equal_to: 要等於 %{count}
+      equal_to: 要等於%{count}
       even: 要係雙數
       exclusion: 唔用得
       greater_than: 要大過%{count}
@@ -122,7 +98,7 @@ zh-YUE:
       invalid: 無效
       less_than: 要細過%{count}
       less_than_or_equal_to: 要細過或者等於%{count}
-      model_invalid: 驗證失敗︰%{errors}
+      model_invalid: 驗證失敗:%{errors}
       not_a_number: 唔係一個數字
       not_an_integer: 要係整數
       odd: 要係單數
@@ -130,20 +106,12 @@ zh-YUE:
       present: 一定要空白
       required: 必須存在
       taken: 已經用緊
-      too_long:
-        one: 太長(最多 1 個字)
-        other: 太長(最多 %{count} 個字)
-      too_short:
-        one: 太短(最少 1 個字)
-        other: 太短(最少 %{count} 個字)
-      wrong_length:
-        one: 唔啱字數 (要係 1 個字)
-        other: 唔啱字數 (要係 %{count} 個字)
+      too_long: 太長(最多%{count}個字)
+      too_short: 太短(最少%{count}個字)
+      wrong_length: 唔啱字數(要係%{count}個字)
     template:
-      body: 呢啲有問題︰
-      header:
-        one: 有一個問題,%{model}儲存唔到。
-        other: 有%{count}個問題,%{model}儲存唔到。
+      body: 呢啲有問題:
+      header: 有%{count}個問題,%{model}儲存唔到。
   helpers:
     select:
       prompt: 請喺度揀
@@ -201,7 +169,7 @@ zh-YUE:
         delimiter: ''
   support:
     array:
-      last_word_connector: 同
+      last_word_connector: "、"
       two_words_connector: 同
       words_connector: "、"
   time:
diff --git a/rails/pluralization/ak.rb b/rails/pluralization/ak.rb
deleted file mode 100644
index 53f039e..0000000
--- a/rails/pluralization/ak.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/one_with_zero_other'
-
-::RailsI18n::Pluralization::OneWithZeroOther.with_locale(:ak)
\ No newline at end of file
diff --git a/rails/pluralization/am.rb b/rails/pluralization/am.rb
deleted file mode 100644
index c954dae..0000000
--- a/rails/pluralization/am.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/one_with_zero_other'
-
-::RailsI18n::Pluralization::OneWithZeroOther.with_locale(:am)
\ No newline at end of file
diff --git a/rails/pluralization/bh.rb b/rails/pluralization/bh.rb
deleted file mode 100644
index b119200..0000000
--- a/rails/pluralization/bh.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/one_with_zero_other'
-
-::RailsI18n::Pluralization::OneWithZeroOther.with_locale(:bh)
\ No newline at end of file
diff --git a/rails/pluralization/bm.rb b/rails/pluralization/bm.rb
deleted file mode 100644
index a057092..0000000
--- a/rails/pluralization/bm.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/other'
-
-::RailsI18n::Pluralization::Other.with_locale(:bm)
\ No newline at end of file
diff --git a/rails/pluralization/bo.rb b/rails/pluralization/bo.rb
deleted file mode 100644
index c032f48..0000000
--- a/rails/pluralization/bo.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/other'
-
-::RailsI18n::Pluralization::Other.with_locale(:bo)
\ No newline at end of file
diff --git a/rails/pluralization/br.rb b/rails/pluralization/br.rb
deleted file mode 100644
index f53f849..0000000
--- a/rails/pluralization/br.rb
+++ /dev/null
@@ -1,31 +0,0 @@
-module RailsI18n
-  module Pluralization
-    module Breton
-      def self.rule
-        lambda do |n|
-          n ||= 0
-          mod10 = n % 10
-          mod100 = n % 100
-
-          if mod10 == 1 && ![11,71,91].include?(mod100)
-            :one
-          elsif mod10 == 2 && ![12,72,92].include?(mod100)
-            :two
-          elsif [3,4,9].include?(mod10) && !((10..19).to_a + (70..79).to_a + (90..99).to_a).include?(mod100)
-            :few
-          elsif n % 1000000 == 0 && n != 0
-            :many
-          else
-            :other
-          end
-        end
-      end
-    end
-  end
-end
-
-{ :br => {
-    :'i18n' => {
-      :plural => {
-        :keys => [:one, :two, :few, :many, :other],
-        :rule => RailsI18n::Pluralization::Breton.rule }}}}
\ No newline at end of file
diff --git a/rails/pluralization/by.rb b/rails/pluralization/by.rb
deleted file mode 100644
index bd49192..0000000
--- a/rails/pluralization/by.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/east_slavic'
-
-::RailsI18n::Pluralization::EastSlavic.with_locale(:by)
\ No newline at end of file
diff --git a/rails/pluralization/cy.rb b/rails/pluralization/cy.rb
deleted file mode 100644
index d7f374b..0000000
--- a/rails/pluralization/cy.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-module RailsI18n
-  module Pluralization
-    module Welsh
-      def self.rule
-        lambda do |n|
-          case n
-            when 0 then :zero
-            when 1 then :one
-            when 2 then :two
-            when 3 then :few
-            when 6 then :many
-            else :other
-          end
-        end
-      end
-    end
-  end
-end
-
-{ :cy => {
-    :'i18n' => {
-      :plural => {
-        :keys => [:zero, :one, :two, :few, :many, :other],
-        :rule => RailsI18n::Pluralization::Welsh.rule }}}}
\ No newline at end of file
diff --git a/rails/pluralization/dz.rb b/rails/pluralization/dz.rb
deleted file mode 100644
index 075f5c3..0000000
--- a/rails/pluralization/dz.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/other'
-
-::RailsI18n::Pluralization::Other.with_locale(:dz)
\ No newline at end of file
diff --git a/rails/pluralization/el-CY.rb b/rails/pluralization/el-CY.rb
new file mode 100644
index 0000000..21dcba9
--- /dev/null
+++ b/rails/pluralization/el-CY.rb
@@ -0,0 +1,3 @@
+require 'rails_i18n/common_pluralizations/one_other'
+
+::RailsI18n::Pluralization::OneOther.with_locale(:'el-CY')
diff --git a/rails/pluralization/en-CY.rb b/rails/pluralization/en-CY.rb
new file mode 100644
index 0000000..a13b236
--- /dev/null
+++ b/rails/pluralization/en-CY.rb
@@ -0,0 +1,3 @@
+require 'rails_i18n/common_pluralizations/one_other'
+
+::RailsI18n::Pluralization::OneOther.with_locale(:'en-CY')
diff --git a/rails/pluralization/en-IE.rb b/rails/pluralization/en-IE.rb
new file mode 100644
index 0000000..37bb6d2
--- /dev/null
+++ b/rails/pluralization/en-IE.rb
@@ -0,0 +1,3 @@
+require 'rails_i18n/common_pluralizations/one_other'
+
+::RailsI18n::Pluralization::OneOther.with_locale(:'en-IE')
diff --git a/rails/pluralization/en-TT.rb b/rails/pluralization/en-TT.rb
new file mode 100644
index 0000000..575bf6f
--- /dev/null
+++ b/rails/pluralization/en-TT.rb
@@ -0,0 +1,3 @@
+require 'rails_i18n/common_pluralizations/one_other'
+
+::RailsI18n::Pluralization::OneOther.with_locale(:'en-TT')
diff --git a/rails/pluralization/en-US.rb b/rails/pluralization/en-US.rb
new file mode 100644
index 0000000..7684d76
--- /dev/null
+++ b/rails/pluralization/en-US.rb
@@ -0,0 +1,3 @@
+require 'rails_i18n/common_pluralizations/one_other'
+
+::RailsI18n::Pluralization::OneOther.with_locale(:'en-US')
diff --git a/rails/pluralization/en-ZA.rb b/rails/pluralization/en-ZA.rb
new file mode 100644
index 0000000..9567293
--- /dev/null
+++ b/rails/pluralization/en-ZA.rb
@@ -0,0 +1,3 @@
+require 'rails_i18n/common_pluralizations/one_other'
+
+::RailsI18n::Pluralization::OneOther.with_locale(:'en-ZA')
diff --git a/rails/pluralization/ff.rb b/rails/pluralization/ff.rb
deleted file mode 100644
index 6cd207b..0000000
--- a/rails/pluralization/ff.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/one_upto_two_other'
-
-::RailsI18n::Pluralization::OneUptoTwoOther.with_locale(:ff)
\ No newline at end of file
diff --git a/rails/pluralization/ga.rb b/rails/pluralization/ga.rb
deleted file mode 100644
index 0a288c7..0000000
--- a/rails/pluralization/ga.rb
+++ /dev/null
@@ -1,27 +0,0 @@
-module RailsI18n
-  module Pluralization
-    module Irish
-      def self.rule
-        lambda do |n|
-          if n == 1
-            :one
-          elsif n == 2
-            :two
-          elsif (3..6).to_a.include?(n)
-            :few
-          elsif (7..10).to_a.include?(n)
-            :many
-          else
-            :other
-          end
-        end
-      end
-    end
-  end
-end
-
-{ :ga => {
-    :'i18n' => {
-      :plural => {
-        :keys => [:one, :two, :few, :many, :other],
-        :rule => RailsI18n::Pluralization::Irish.rule }}}}
\ No newline at end of file
diff --git a/rails/pluralization/gd.rb b/rails/pluralization/gd.rb
deleted file mode 100644
index 371b3e2..0000000
--- a/rails/pluralization/gd.rb
+++ /dev/null
@@ -1,25 +0,0 @@
-module RailsI18n
-  module Pluralization
-    module ScottishGaelic
-      def self.rule
-        lambda do |n|
-          if n == 1 || n == 11
-            :one
-          elsif n == 2 || n == 12
-            :two
-          elsif ((3..10).to_a + (13..19).to_a).include?(n)
-            :few
-          else
-            :other
-          end
-        end
-      end
-    end
-  end
-end
-
-{ :gd => {
-    :'i18n' => {
-      :plural => {
-        :keys => [:one, :two, :few, :other],
-        :rule => RailsI18n::Pluralization::ScottishGaelic.rule }}}}
\ No newline at end of file
diff --git a/rails/pluralization/guw.rb b/rails/pluralization/guw.rb
deleted file mode 100644
index 700f1cf..0000000
--- a/rails/pluralization/guw.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/one_with_zero_other'
-
-::RailsI18n::Pluralization::OneWithZeroOther.with_locale(:guw)
\ No newline at end of file
diff --git a/rails/pluralization/gv.rb b/rails/pluralization/gv.rb
deleted file mode 100644
index cb17517..0000000
--- a/rails/pluralization/gv.rb
+++ /dev/null
@@ -1,22 +0,0 @@
-module RailsI18n
-  module Pluralization
-    module Manx
-      def self.rule
-        lambda do |n|
-          n ||= 0
-          if [1, 2].include?(n % 10) || n % 20 == 0
-            :one
-          else
-            :other
-          end
-        end
-      end
-    end
-  end
-end
-
-{ :gv => {
-    :'i18n' => {
-      :plural => {
-        :keys => [:one, :other],
-        :rule => RailsI18n::Pluralization::Manx.rule }}}}
\ No newline at end of file
diff --git a/rails/pluralization/ig.rb b/rails/pluralization/ig.rb
deleted file mode 100644
index 081d359..0000000
--- a/rails/pluralization/ig.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/other'
-
-::RailsI18n::Pluralization::Other.with_locale(:ig)
\ No newline at end of file
diff --git a/rails/pluralization/ii.rb b/rails/pluralization/ii.rb
deleted file mode 100644
index 57f2015..0000000
--- a/rails/pluralization/ii.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/other'
-
-::RailsI18n::Pluralization::Other.with_locale(:ii)
\ No newline at end of file
diff --git a/rails/pluralization/iu.rb b/rails/pluralization/iu.rb
deleted file mode 100644
index 692c9a4..0000000
--- a/rails/pluralization/iu.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/one_two_other'
-
-::RailsI18n::Pluralization::OneTwoOther.with_locale(:iu)
\ No newline at end of file
diff --git a/rails/pluralization/jv.rb b/rails/pluralization/jv.rb
deleted file mode 100644
index d886208..0000000
--- a/rails/pluralization/jv.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/other'
-
-::RailsI18n::Pluralization::Other.with_locale(:jv)
\ No newline at end of file
diff --git a/rails/pluralization/kab.rb b/rails/pluralization/kab.rb
deleted file mode 100644
index 011e9b0..0000000
--- a/rails/pluralization/kab.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/one_upto_two_other'
-
-::RailsI18n::Pluralization::OneUptoTwoOther.with_locale(:kab)
\ No newline at end of file
diff --git a/rails/pluralization/kde.rb b/rails/pluralization/kde.rb
deleted file mode 100644
index 64beb67..0000000
--- a/rails/pluralization/kde.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/other'
-
-::RailsI18n::Pluralization::Other.with_locale(:kde)
\ No newline at end of file
diff --git a/rails/pluralization/kea.rb b/rails/pluralization/kea.rb
deleted file mode 100644
index 3b8a32c..0000000
--- a/rails/pluralization/kea.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/other'
-
-::RailsI18n::Pluralization::Other.with_locale(:kea)
\ No newline at end of file
diff --git a/rails/pluralization/ksh.rb b/rails/pluralization/ksh.rb
deleted file mode 100644
index 7e16e8f..0000000
--- a/rails/pluralization/ksh.rb
+++ /dev/null
@@ -1,23 +0,0 @@
-module RailsI18n
-  module Pluralization
-    module Colognian
-      def self.rule
-        lambda do |n|
-          if n == 0
-            :zero
-          elsif n == 1
-            :one
-          else
-            :other
-          end
-        end
-      end
-    end
-  end
-end
-
-{ :ksh => {
-    :'i18n' => {
-      :plural => {
-        :keys => [:zero, :one, :other],
-        :rule => RailsI18n::Pluralization::Colognian.rule }}}}
\ No newline at end of file
diff --git a/rails/pluralization/kw.rb b/rails/pluralization/kw.rb
deleted file mode 100644
index b5e9f38..0000000
--- a/rails/pluralization/kw.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/one_two_other'
-
-::RailsI18n::Pluralization::OneTwoOther.with_locale(:kw)
\ No newline at end of file
diff --git a/rails/pluralization/lag.rb b/rails/pluralization/lag.rb
deleted file mode 100644
index 646ec51..0000000
--- a/rails/pluralization/lag.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-module RailsI18n
-  module Pluralization
-    module Langi
-      def self.rule
-        lambda do |n|
-          n ||= 0
-          if n == 0
-            :zero
-          elsif n > 0 && n < 2
-            :one
-          else
-            :other
-          end
-        end
-      end
-    end
-  end
-end
-
-{ :lag => {
-    :'i18n' => {
-      :plural => {
-        :keys => [:zero, :one, :other],
-        :rule => RailsI18n::Pluralization::Langi.rule }}}}
\ No newline at end of file
diff --git a/rails/pluralization/ln.rb b/rails/pluralization/ln.rb
deleted file mode 100644
index 0f89d45..0000000
--- a/rails/pluralization/ln.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/one_with_zero_other'
-
-::RailsI18n::Pluralization::OneWithZeroOther.with_locale(:ln)
\ No newline at end of file
diff --git a/rails/pluralization/mo.rb b/rails/pluralization/mo.rb
deleted file mode 100644
index c32170e..0000000
--- a/rails/pluralization/mo.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/romanian'
-
-::RailsI18n::Pluralization::Romanian.with_locale(:mo)
\ No newline at end of file
diff --git a/rails/pluralization/mt.rb b/rails/pluralization/mt.rb
deleted file mode 100644
index 2fb3120..0000000
--- a/rails/pluralization/mt.rb
+++ /dev/null
@@ -1,28 +0,0 @@
-module RailsI18n
-  module Pluralization
-    module Maltese
-      def self.rule
-        lambda do |n|
-          n ||= 0
-          mod100 = n % 100
-
-          if n == 1
-            :one
-          elsif n == 0 || (2..10).to_a.include?(mod100)
-            :few
-          elsif (11..19).to_a.include?(mod100)
-            :many
-          else
-            :other
-          end
-        end
-      end
-    end
-  end
-end
-
-{ :mt => {
-    :'i18n' => {
-      :plural => {
-        :keys => [:one, :few, :many, :other],
-        :rule => RailsI18n::Pluralization::Maltese.rule }}}}
\ No newline at end of file
diff --git a/rails/pluralization/my.rb b/rails/pluralization/my.rb
deleted file mode 100644
index 9b861b3..0000000
--- a/rails/pluralization/my.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/other'
-
-::RailsI18n::Pluralization::Other.with_locale(:my)
\ No newline at end of file
diff --git a/rails/pluralization/naq.rb b/rails/pluralization/naq.rb
deleted file mode 100644
index 5f82b86..0000000
--- a/rails/pluralization/naq.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/one_two_other'
-
-::RailsI18n::Pluralization::OneTwoOther.with_locale(:naq)
\ No newline at end of file
diff --git a/rails/pluralization/nso.rb b/rails/pluralization/nso.rb
deleted file mode 100644
index 780a70e..0000000
--- a/rails/pluralization/nso.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/one_with_zero_other'
-
-::RailsI18n::Pluralization::OneWithZeroOther.with_locale(:nso)
\ No newline at end of file
diff --git a/rails/pluralization/root.rb b/rails/pluralization/root.rb
deleted file mode 100644
index 8706808..0000000
--- a/rails/pluralization/root.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/other'
-
-::RailsI18n::Pluralization::Other.with_locale(:root)
\ No newline at end of file
diff --git a/rails/pluralization/sah.rb b/rails/pluralization/sah.rb
deleted file mode 100644
index 9fb7e06..0000000
--- a/rails/pluralization/sah.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/other'
-
-::RailsI18n::Pluralization::Other.with_locale(:sah)
\ No newline at end of file
diff --git a/rails/pluralization/sc.rb b/rails/pluralization/sc.rb
new file mode 100644
index 0000000..6c29eda
--- /dev/null
+++ b/rails/pluralization/sc.rb
@@ -0,0 +1,3 @@
+require 'rails_i18n/common_pluralizations/one_other'
+
+::RailsI18n::Pluralization::OneOther.with_locale(:sc)
diff --git a/rails/pluralization/se.rb b/rails/pluralization/se.rb
deleted file mode 100644
index 5e7f3b0..0000000
--- a/rails/pluralization/se.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/one_two_other'
-
-::RailsI18n::Pluralization::OneTwoOther.with_locale(:se)
\ No newline at end of file
diff --git a/rails/pluralization/ses.rb b/rails/pluralization/ses.rb
deleted file mode 100644
index 14cf5b8..0000000
--- a/rails/pluralization/ses.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/other'
-
-::RailsI18n::Pluralization::Other.with_locale(:ses)
\ No newline at end of file
diff --git a/rails/pluralization/sg.rb b/rails/pluralization/sg.rb
deleted file mode 100644
index 1672cce..0000000
--- a/rails/pluralization/sg.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/other'
-
-::RailsI18n::Pluralization::Other.with_locale(:sg)
\ No newline at end of file
diff --git a/rails/pluralization/sh.rb b/rails/pluralization/sh.rb
deleted file mode 100644
index ad102cb..0000000
--- a/rails/pluralization/sh.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/one_few_other'
-
-::RailsI18n::Pluralization::OneFewOther.with_locale(:sh)
diff --git a/rails/pluralization/shi.rb b/rails/pluralization/shi.rb
deleted file mode 100644
index 20b5fe1..0000000
--- a/rails/pluralization/shi.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/one_with_zero_other'
-
-::RailsI18n::Pluralization::OneWithZeroOther.with_locale(:shi)
\ No newline at end of file
diff --git a/rails/pluralization/sma.rb b/rails/pluralization/sma.rb
deleted file mode 100644
index b95531e..0000000
--- a/rails/pluralization/sma.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/one_two_other'
-
-::RailsI18n::Pluralization::OneTwoOther.with_locale(:sma)
\ No newline at end of file
diff --git a/rails/pluralization/smi.rb b/rails/pluralization/smi.rb
deleted file mode 100644
index 7cb8d8b..0000000
--- a/rails/pluralization/smi.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/one_two_other'
-
-::RailsI18n::Pluralization::OneTwoOther.with_locale(:smi)
\ No newline at end of file
diff --git a/rails/pluralization/smj.rb b/rails/pluralization/smj.rb
deleted file mode 100644
index 42bd971..0000000
--- a/rails/pluralization/smj.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/one_two_other'
-
-::RailsI18n::Pluralization::OneTwoOther.with_locale(:smj)
\ No newline at end of file
diff --git a/rails/pluralization/smn.rb b/rails/pluralization/smn.rb
deleted file mode 100644
index 5f44e77..0000000
--- a/rails/pluralization/smn.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/one_two_other'
-
-::RailsI18n::Pluralization::OneTwoOther.with_locale(:smn)
\ No newline at end of file
diff --git a/rails/pluralization/sms.rb b/rails/pluralization/sms.rb
deleted file mode 100644
index 1eaceee..0000000
--- a/rails/pluralization/sms.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/one_two_other'
-
-::RailsI18n::Pluralization::OneTwoOther.with_locale(:sms)
\ No newline at end of file
diff --git a/rails/pluralization/ti.rb b/rails/pluralization/ti.rb
deleted file mode 100644
index 24d0c5e..0000000
--- a/rails/pluralization/ti.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/one_with_zero_other'
-
-::RailsI18n::Pluralization::OneWithZeroOther.with_locale(:ti)
\ No newline at end of file
diff --git a/rails/pluralization/to.rb b/rails/pluralization/to.rb
deleted file mode 100644
index ca96d0e..0000000
--- a/rails/pluralization/to.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/other'
-
-::RailsI18n::Pluralization::Other.with_locale(:to)
\ No newline at end of file
diff --git a/rails/pluralization/tzm.rb b/rails/pluralization/tzm.rb
deleted file mode 100644
index 6b8eb2f..0000000
--- a/rails/pluralization/tzm.rb
+++ /dev/null
@@ -1,21 +0,0 @@
-module RailsI18n
-  module Pluralization
-    module CentralMoroccoTamazight
-      def self.rule
-        lambda do |n|
-          if ([0, 1] + (11..99).to_a).include?(n)
-            :one
-          else
-            :other
-          end
-        end
-      end
-    end
-  end
-end
-
-{ :tzm => {
-    :'i18n' => {
-      :plural => {
-        :keys => [:one, :other],
-        :rule => RailsI18n::Pluralization::CentralMoroccoTamazight.rule }}}}
\ No newline at end of file
diff --git a/rails/pluralization/wa.rb b/rails/pluralization/wa.rb
deleted file mode 100644
index 53ab582..0000000
--- a/rails/pluralization/wa.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/one_with_zero_other'
-
-::RailsI18n::Pluralization::OneWithZeroOther.with_locale(:wa)
\ No newline at end of file
diff --git a/rails/pluralization/yo.rb b/rails/pluralization/yo.rb
deleted file mode 100644
index 67f0708..0000000
--- a/rails/pluralization/yo.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/other'
-
-::RailsI18n::Pluralization::Other.with_locale(:yo)
\ No newline at end of file
diff --git a/rails/pluralization/zh.rb b/rails/pluralization/zh.rb
deleted file mode 100644
index aaf94b9..0000000
--- a/rails/pluralization/zh.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_i18n/common_pluralizations/other'
-
-::RailsI18n::Pluralization::Other.with_locale(:zh)
diff --git a/rails/rails/action_view.yml b/rails/rails/action_view.yml
new file mode 100644
index 0000000..0407f2a
--- /dev/null
+++ b/rails/rails/action_view.yml
@@ -0,0 +1,56 @@
+"en":
+  # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
+  datetime:
+    distance_in_words:
+      half_a_minute: "half a minute"
+      less_than_x_seconds:
+        one:   "less than %{count} second"
+        other: "less than %{count} seconds"
+      x_seconds:
+        one:   "%{count} second"
+        other: "%{count} seconds"
+      less_than_x_minutes:
+        one:   "less than a minute"
+        other: "less than %{count} minutes"
+      x_minutes:
+        one:   "%{count} minute"
+        other: "%{count} minutes"
+      about_x_hours:
+        one:   "about %{count} hour"
+        other: "about %{count} hours"
+      x_days:
+        one:   "%{count} day"
+        other: "%{count} days"
+      about_x_months:
+        one:   "about %{count} month"
+        other: "about %{count} months"
+      x_months:
+        one:   "%{count} month"
+        other: "%{count} months"
+      about_x_years:
+        one:   "about %{count} year"
+        other: "about %{count} years"
+      over_x_years:
+        one:   "over %{count} year"
+        other: "over %{count} years"
+      almost_x_years:
+        one:   "almost %{count} year"
+        other: "almost %{count} years"
+    prompts:
+      year:   "Year"
+      month:  "Month"
+      day:    "Day"
+      hour:   "Hour"
+      minute: "Minute"
+      second: "Seconds"
+
+  helpers:
+    select:
+      # Default value for :prompt => true in FormOptionsHelper
+      prompt: "Please select"
+
+    # Default translation keys for submit and button FormHelper
+    submit:
+      create: 'Create %{model}'
+      update: 'Update %{model}'
+      submit: 'Save %{model}'
diff --git a/rails/rails/active_model.yml b/rails/rails/active_model.yml
new file mode 100644
index 0000000..ba5d674
--- /dev/null
+++ b/rails/rails/active_model.yml
@@ -0,0 +1,37 @@
+en:
+  errors:
+    # The default format to use in full error messages.
+    format: "%{attribute} %{message}"
+
+    # The values :model, :attribute and :value are always available for interpolation
+    # The value :count is available when applicable. Can be used for pluralization.
+    messages:
+      model_invalid: "Validation failed: %{errors}"
+      inclusion: "is not included in the list"
+      exclusion: "is reserved"
+      invalid: "is invalid"
+      confirmation: "doesn't match %{attribute}"
+      accepted: "must be accepted"
+      empty: "can't be empty"
+      blank: "can't be blank"
+      present: "must be blank"
+      too_long:
+        one: "is too long (maximum is %{count} character)"
+        other: "is too long (maximum is %{count} characters)"
+      too_short:
+        one: "is too short (minimum is %{count} character)"
+        other: "is too short (minimum is %{count} characters)"
+      wrong_length:
+        one: "is the wrong length (should be %{count} character)"
+        other: "is the wrong length (should be %{count} characters)"
+      not_a_number: "is not a number"
+      not_an_integer: "must be an integer"
+      greater_than: "must be greater than %{count}"
+      greater_than_or_equal_to: "must be greater than or equal to %{count}"
+      equal_to: "must be equal to %{count}"
+      less_than: "must be less than %{count}"
+      less_than_or_equal_to: "must be less than or equal to %{count}"
+      other_than: "must be other than %{count}"
+      in: "must be in %{count}"
+      odd: "must be odd"
+      even: "must be even"
diff --git a/rails/rails/active_record.yml b/rails/rails/active_record.yml
new file mode 100644
index 0000000..0b35027
--- /dev/null
+++ b/rails/rails/active_record.yml
@@ -0,0 +1,48 @@
+en:
+  # Attributes names common to most models
+  #attributes:
+    #created_at: "Created at"
+    #updated_at: "Updated at"
+
+  # Default error messages
+  errors:
+    messages:
+      required: "must exist"
+      taken: "has already been taken"
+
+  # Active Record models configuration
+  activerecord:
+    errors:
+      messages:
+        record_invalid: "Validation failed: %{errors}"
+        restrict_dependent_destroy:
+          has_one: "Cannot delete record because a dependent %{record} exists"
+          has_many: "Cannot delete record because dependent %{record} exist"
+        # Append your own errors here or at the model/attributes scope.
+
+      # You can define own errors for models or model attributes.
+      # The values :model, :attribute and :value are always available for interpolation.
+      #
+      # For example,
+      #   models:
+      #     user:
+      #       blank: "This is a custom blank message for %{model}: %{attribute}"
+      #       attributes:
+      #         login:
+      #           blank: "This is a custom blank message for User login"
+      # Will define custom blank validation message for User model and
+      # custom blank validation message for login attribute of User model.
+      #models:
+
+    # Translate model names. Used in Model.human_name().
+    #models:
+      # For example,
+      #   user: "Dude"
+      # will translate User model name to "Dude"
+
+    # Translate model attribute names. Used in Model.human_attribute_name(attribute).
+    #attributes:
+      # For example,
+      #   user:
+      #     login: "Handle"
+      # will translate User attribute "login" as "Handle"
diff --git a/rails/rails/active_support.yml b/rails/rails/active_support.yml
new file mode 100644
index 0000000..0453883
--- /dev/null
+++ b/rails/rails/active_support.yml
@@ -0,0 +1,139 @@
+en:
+  date:
+    formats:
+      # Use the strftime parameters for formats.
+      # When no format has been given, it uses default.
+      # You can provide other formats here if you like!
+      default: "%Y-%m-%d"
+      short: "%b %d"
+      long: "%B %d, %Y"
+
+    day_names: [Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday]
+    abbr_day_names: [Sun, Mon, Tue, Wed, Thu, Fri, Sat]
+
+    # Don't forget the nil at the beginning; there's no such thing as a 0th month
+    month_names: [~, January, February, March, April, May, June, July, August, September, October, November, December]
+    abbr_month_names: [~, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec]
+    # Used in date_select and datetime_select.
+    order:
+      - year
+      - month
+      - day
+
+  time:
+    formats:
+      default: "%a, %d %b %Y %H:%M:%S %z"
+      short: "%d %b %H:%M"
+      long: "%B %d, %Y %H:%M"
+    am: "am"
+    pm: "pm"
+
+# Used in array.to_sentence.
+  support:
+    array:
+      words_connector: ", "
+      two_words_connector: " and "
+      last_word_connector: ", and "
+  number:
+    # Used in NumberHelper.number_to_delimited()
+    # These are also the defaults for 'currency', 'percentage', 'precision', and 'human'
+    format:
+      # Sets the separator between the units, for more precision (e.g. 1.0 / 2.0 == 0.5)
+      separator: "."
+      # Delimits thousands (e.g. 1,000,000 is a million) (always in groups of three)
+      delimiter: ","
+      # Number of decimals, behind the separator (the number 1 with a precision of 2 gives: 1.00)
+      precision: 3
+      # Determine how rounding is performed (see BigDecimal::mode)
+      round_mode: default
+      # If set to true, precision will mean the number of significant digits instead
+      # of the number of decimal digits (1234 with precision 2 becomes 1200, 1.23543 becomes 1.2)
+      significant: false
+      # If set, the zeros after the decimal separator will always be stripped (e.g.: 1.200 will be 1.2)
+      strip_insignificant_zeros: false
+
+    # Used in NumberHelper.number_to_currency()
+    currency:
+      format:
+        # Where is the currency sign? %u is the currency unit, %n is the number (default: $5.00)
+        format: "%u%n"
+        unit: "$"
+        # These six are to override number.format and are optional
+        separator: "."
+        delimiter: ","
+        precision: 2
+        # round_mode:
+        significant: false
+        strip_insignificant_zeros: false
+
+    # Used in NumberHelper.number_to_percentage()
+    percentage:
+      format:
+        # These five are to override number.format and are optional
+        # separator:
+        delimiter: ""
+        # precision:
+        # significant: false
+        # strip_insignificant_zeros: false
+        format: "%n%"
+
+    # Used in NumberHelper.number_to_rounded()
+    precision:
+      format:
+        # These five are to override number.format and are optional
+        # separator:
+        delimiter: ""
+        # precision:
+        # significant: false
+        # strip_insignificant_zeros: false
+
+    # Used in NumberHelper.number_to_human_size() and NumberHelper.number_to_human()
+    human:
+      format:
+        # These six are to override number.format and are optional
+        # separator:
+        delimiter: ""
+        precision: 3
+        # round_mode:
+        significant: true
+        strip_insignificant_zeros: true
+      # Used in number_to_human_size()
+      storage_units:
+        # Storage units output formatting.
+        # %u is the storage unit, %n is the number (default: 2 MB)
+        format: "%n %u"
+        units:
+          byte:
+            one:   "Byte"
+            other: "Bytes"
+          kb: "KB"
+          mb: "MB"
+          gb: "GB"
+          tb: "TB"
+          pb: "PB"
+          eb: "EB"
+      # Used in NumberHelper.number_to_human()
+      decimal_units:
+        format: "%n %u"
+        # Decimal units output formatting
+        # By default we will only quantify some of the exponents
+        # but the commented ones might be defined or overridden
+        # by the user.
+        units:
+          # femto: Quadrillionth
+          # pico: Trillionth
+          # nano: Billionth
+          # micro: Millionth
+          # mili: Thousandth
+          # centi: Hundredth
+          # deci: Tenth
+          unit: ""
+          # ten:
+          #   one: Ten
+          #   other: Tens
+          # hundred: Hundred
+          thousand: Thousand
+          million: Million
+          billion: Billion
+          trillion: Trillion
+          quadrillion: Quadrillion
diff --git a/rails/script/update.rb b/rails/script/update.rb
new file mode 100644
index 0000000..36a9793
--- /dev/null
+++ b/rails/script/update.rb
@@ -0,0 +1,14 @@
+curr_dir = File.expand_path(File.dirname(__FILE__))
+rails_locale_dir = File.expand_path(File.join(curr_dir, "..", "rails"))
+
+puts "Fetching latest Rails locale files to #{rails_locale_dir}"
+
+exec %(
+  curl -Lo '#{rails_locale_dir}/action_view.yml' https://raw.github.com/rails/rails/master/actionview/lib/action_view/locale/en.yml
+
+  curl -Lo '#{rails_locale_dir}/active_model.yml' https://raw.github.com/rails/rails/master/activemodel/lib/active_model/locale/en.yml
+
+  curl -Lo '#{rails_locale_dir}/active_record.yml' https://raw.github.com/rails/rails/master/activerecord/lib/active_record/locale/en.yml
+
+  curl -Lo '#{rails_locale_dir}/active_support.yml' https://raw.github.com/rails/rails/master/activesupport/lib/active_support/locale/en.yml
+)
diff --git a/rails/test/lib/check_locales.rb b/rails/test/lib/check_locales.rb
new file mode 100644
index 0000000..a5165d1
--- /dev/null
+++ b/rails/test/lib/check_locales.rb
@@ -0,0 +1,63 @@
+##
+# A utility class to check locale files with locales.thor
+# and rspec
+# Needs to inherit from Thor: https://github.com/rails/thor/wiki/Invocations
+
+class CheckLocales < Thor
+
+  @path_to_locales = 'rails/locale'
+  @path_to_pluralizations = 'rails/pluralization'
+  @en_line_count = File.open(@path_to_locales+'/en.yml').readlines().size
+
+  def self.list_locales
+    Dir.chdir(@path_to_locales)
+    locale_files = Dir.glob('**/*.yml')
+    locales = locale_files.map{ |f| File.basename(f, '.yml') }
+    Dir.chdir('../..') # reset working directory
+    return locales.sort
+  end
+  
+  # Returns the number of available locales
+  def self.count
+    return self.list_locales.count
+  end
+
+  def self.list_pluralizations
+    Dir.chdir(@path_to_pluralizations)
+    pluralization_files = Dir.glob('*.rb')
+    pluralizations = pluralization_files.map{ |f| File.basename(f, '.rb') }
+    Dir.chdir('../..') # reset working directory
+    return pluralizations.sort
+  end
+
+  # Returns pluralizations that do not have a locale file
+  def self.orphan_pluralizations
+    return self.list_pluralizations.difference(self.list_locales)
+  end
+
+  # Returns locales that do not have a pluralization file
+  def self.orphan_locales
+    return self.list_locales.difference(self.list_pluralizations)
+  end
+  
+  # Returns the line count of the en.yml file
+  def self.en_line_count
+    @en_line_count
+  end
+
+  # Helps identify anomalies in the locale.yml files
+  # returns a hash of locale files with their line count
+  # in the format 'locale_file' : line count
+  # {'locale1.yml': 100, 'locale2.yml': 111 ... }
+  def self.line_counts
+    file_line_count = {}
+    Dir.chdir(@path_to_locales)
+    locale_files = Dir.glob('**/*.yml')
+    for f in locale_files do
+      line_count = File.open(f).readlines().size
+      file_line_count[f] = line_count
+    end
+    return file_line_count
+  end
+end
+
diff --git a/rails/test/lib/key_structure.rb b/rails/test/lib/key_structure.rb
new file mode 100644
index 0000000..cb3e35a
--- /dev/null
+++ b/rails/test/lib/key_structure.rb
@@ -0,0 +1,117 @@
+require 'rubygems'
+require 'i18n'
+
+I18n.enforce_available_locales = false
+
+module I18n
+  module Backend
+    class Simple
+      public :translations, :init_translations
+    end
+  end
+end
+
+class KeyStructure
+  PLURALIZATION_KEYS = ['zero', 'one', 'two', 'few', 'many', 'other']
+
+  class << self
+    def check(locale)
+      missing_keys = []
+      broken_keys = []
+      missing_pluralizations = []
+
+      init_backend(locale)
+
+      I18n.locale = locale.to_sym
+      translations = flatten_hash(I18n.backend.translations[:en])
+      pluralizations = find_pluralizations(I18n.backend.translations[:en])
+      translations.keys.sort.each do |key|
+        begin
+          case key
+          when /^date\.formats\.(\w+)/
+            I18n.l Date.today, :format => $1.to_sym, :raise => true
+          when /^time\.formats\.(\w+)/
+            I18n.l Time.now, :format => $1.to_sym, :raise => true
+          else
+            I18n.t key, :raise => true
+          end
+
+          if pluralizations.has_key?(key)
+            [0, 1, 2, 3, 5, 6, 10, 11, 100, 1000000, 10.2].each do |count|
+              I18n.t key, :count => count, :raise => true
+            end
+          end
+        rescue I18n::InvalidPluralizationData => e
+          missing_pluralizations << key
+        rescue I18n::MissingTranslationData
+          missing_keys << key
+        rescue Exception
+          broken_keys << key
+        end
+      end
+
+      return missing_keys, broken_keys, missing_pluralizations
+    end
+
+    private
+      def flatten_hash(data, prefix = '', result = {})
+        data.each do |key, value|
+          current_prefix = prefix.empty? ? key.to_s : "#{prefix}.#{key}"
+
+          if !value.is_a?(Hash) || pluralization_data?(value)
+            result[current_prefix] = value
+          else
+            flatten_hash(value, current_prefix, result)
+          end
+        end
+
+        result
+      end
+
+      def find_pluralizations(data, prefix = '', result = {})
+        data.each do |key, value|
+          current_prefix = prefix.empty? ? key.to_s : "#{prefix}.#{key}"
+
+          if value.is_a?(Hash)
+            if pluralization_data?(value)
+              result[current_prefix] = value
+            else
+              find_pluralizations(value, current_prefix, result)
+            end
+          end
+        end
+
+        result
+      end
+
+      def pluralization_data?(data)
+        keys = data.keys.map(&:to_s)
+        keys.all? {|k| PLURALIZATION_KEYS.include?(k) }
+      end
+
+      def init_backend(locale)
+        I18n.load_path = []
+        I18n.reload!
+
+        I18n.load_path += Dir[File.dirname(__FILE__) + "/../../rails/*.yml"]
+
+        path = File.dirname(__FILE__) + "/../../locale/#{locale}.rb"
+
+        unless File.exist?(path)
+          path = File.dirname(__FILE__) + "/../../locale/#{locale}.yml"
+        end
+
+        unless File.exist?(path)
+          raise "No locale file exist for :#{locale}."
+        end
+
+        I18n.load_path += [path]
+
+        pluralization = File.dirname(__FILE__) + "/../../pluralization/#{locale}.rb"
+        I18n.load_path += [pluralization] if File.exist?(pluralization)
+        I18n.backend.class.send(:include, I18n::Backend::Pluralization)
+
+        I18n.backend.init_translations
+      end
+  end
+end
diff --git a/rails/test/lib/normalize.rb b/rails/test/lib/normalize.rb
new file mode 100644
index 0000000..351fa5e
--- /dev/null
+++ b/rails/test/lib/normalize.rb
@@ -0,0 +1,47 @@
+require 'active_support'
+
+# Inspired from https://stackoverflow.com/questions/7275952/how-can-i-sort-yaml-files/13368706#13368706
+#
+# Used to standardize the locale yaml files 
+# Sorts all the keys alphabetically
+# Ensures that the quoting is the simplest
+# Ensures that the line break width is respected
+module Normalize
+  PLURALIZATION_KEYS = %w(zero one two few many other).freeze
+  ACTIVERECORD_KEYS = %w(has_one has_many).freeze
+  DATETIME_KEYS = %w(second minute hour day month year).freeze
+
+  class << self
+    def deep_sort(object)
+      return object unless object.is_a?(Hash)
+
+      hash = RUBY_VERSION >= '1.9' ? Hash.new : ActiveSupport::OrderedHash.new
+      object.each { |k, v| hash[k] = deep_sort(v) }
+
+      keys = hash.keys.map(&:to_s)
+      sorted = hash.sort do |a, b|
+        a_key = a[0].to_s
+        b_key = b[0].to_s
+        if (keys - PLURALIZATION_KEYS).empty?
+          PLURALIZATION_KEYS.index(a_key) <=> PLURALIZATION_KEYS.index(b_key)
+        elsif (keys - ACTIVERECORD_KEYS).empty?
+          ACTIVERECORD_KEYS.index(a_key) <=> ACTIVERECORD_KEYS.index(b_key)
+        elsif (keys - DATETIME_KEYS).empty?
+          DATETIME_KEYS.index(a_key) <=> DATETIME_KEYS.index(b_key)
+        else
+          a_matches = a_key.match(/^(.+)(#{DATETIME_KEYS.join('|')})(.*)$/)
+          b_matches = b_key.match(/^(.+)(#{DATETIME_KEYS.join('|')})(.*)$/)
+          if a_matches.nil? || b_matches.nil?
+            a_key <=> b_key
+          else
+            s1 = format('%s%s', a_matches[1], DATETIME_KEYS.index(a_matches[2]))
+            s2 = format('%s%s', b_matches[1], DATETIME_KEYS.index(b_matches[2]))
+            s1 <=> s2
+          end
+        end
+      end
+
+      hash.class[sorted]
+    end
+  end
+end
diff --git a/rails/test/structure.rb b/rails/test/structure.rb
new file mode 100644
index 0000000..bb14ae5
--- /dev/null
+++ b/rails/test/structure.rb
@@ -0,0 +1,35 @@
+require File.dirname(__FILE__) + '/lib/key_structure.rb'
+
+if ARGV.first
+  locales = [ARGV.first]
+else
+  locales = []
+  Dir.glob(File.dirname(__FILE__) + '/../locale/*.{rb,yml}') do |filename|
+    if md = filename.match(/([\w\-]+)\.(rb|yml)$/)
+      locales << md[1]
+    end
+  end
+end
+
+locales.sort.each do |locale|
+  missing_keys = {}
+  [2, 3].each do |version|
+    missing_keys[version] = KeyStructure.check(locale, version)
+  end
+  if missing_keys[2].empty? && missing_keys[3].empty?
+    puts "The structure is good for Rails 2 and 3." if ARGV.first
+  else
+    [2, 3].each do |version|
+      unless missing_keys[version].empty?
+        if ARGV.first
+          puts "The following keys are missing for Rails #{version}."
+          missing_keys[version].each do |key|
+            puts "  " + key
+          end
+        else
+          puts "[#{locale}] Some keys are missing for Rails #{version}."
+        end
+      end
+    end
+  end
+end
diff --git a/rails/transliteration/de.yml b/rails/transliteration/de.yml
index e696738..867cf5e 100644
--- a/rails/transliteration/de.yml
+++ b/rails/transliteration/de.yml
@@ -10,3 +10,4 @@ de:
         Ü: "Ue"
         Ö: "Oe"
         ß: "ss"
+        ẞ: "SS"
diff --git a/spec/other/locale_files_spec.rb b/spec/other/locale_files_spec.rb
new file mode 100644
index 0000000..00fe28d
--- /dev/null
+++ b/spec/other/locale_files_spec.rb
@@ -0,0 +1,19 @@
+# encoding: utf-8
+
+require 'thor'
+require 'spec_helper'
+require_relative '../../rails/test/lib/check_locales.rb'
+
+describe "Locale files" do
+  # there should not be any orphan pluralization files
+  it "a pluralization file should have a corresponding locale.yml file" do
+    expect(CheckLocales.orphan_pluralizations).to be_empty
+  end  
+
+  # all locales should have a pluralization file
+  it "a locale file should have a corresponding pluralization file" do
+    pending("Fix missing pluralizations")
+    expect(CheckLocales.orphan_locales).to be_empty
+  end
+
+end 
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
new file mode 100644
index 0000000..4c2091f
--- /dev/null
+++ b/spec/spec_helper.rb
@@ -0,0 +1,17 @@
+ENV["RAILS_ENV"] = "test"
+
+require 'i18n-spec'
+require 'active_support/core_ext/kernel/reporting'
+require 'socket'
+require 'unit/matchers/have_missing_particular_pluralization_keys_matcher'
+require 'unit/matchers/have_keys_for_restrict_dependent_destroy_matcher'
+
+I18n.enforce_available_locales = false
+
+RSpec.configure do |config|
+  config.mock_with :rspec
+  config.fail_fast = true
+  config.expect_with :rspec do |c|
+    c.syntax = [:should, :expect]
+  end
+end
diff --git a/spec/support/pluralization_file.rb b/spec/support/pluralization_file.rb
new file mode 100644
index 0000000..c66e93f
--- /dev/null
+++ b/spec/support/pluralization_file.rb
@@ -0,0 +1,15 @@
+require 'support/traverse_path'
+require 'support/ruby_content'
+
+module RailsI18n
+  module Spec
+    class PluralizationFile
+      include TraversePath
+      include RubyContent
+
+      def initialize(filepath)
+        @filepath = filepath
+      end
+    end
+  end
+end
\ No newline at end of file
diff --git a/spec/support/ruby_content.rb b/spec/support/ruby_content.rb
new file mode 100644
index 0000000..80579ed
--- /dev/null
+++ b/spec/support/ruby_content.rb
@@ -0,0 +1,11 @@
+require "json"
+
+module RailsI18n
+  module Spec
+    module RubyContent
+      def content
+        @content ||= eval(IO.read(@filepath), TOPLEVEL_BINDING)
+      end
+    end
+  end
+end
diff --git a/spec/support/transliteration_file.rb b/spec/support/transliteration_file.rb
new file mode 100644
index 0000000..a961b29
--- /dev/null
+++ b/spec/support/transliteration_file.rb
@@ -0,0 +1,51 @@
+require 'support/traverse_path'
+require 'support/ruby_content'
+require 'yaml'
+
+module RailsI18n
+  module Spec
+    class TransliterationFile
+      include TraversePath
+
+      def self.make(filepath)
+        raise "Transliteration file doesn't exist!" unless filepath
+        case File.extname(filepath)
+          when '.rb' then RubyTransliterationFile.new(filepath)
+          when '.yml' then YAMLTransliterationFile.new(filepath)
+        end
+      end
+
+      def initialize(filepath)
+        @filepath = filepath
+      end
+
+      def rule
+        @rule ||= begin
+          locale = @filepath.match(/([\w-]+)\.[^\.]+$/)[1]
+          traverse_path(locale.to_sym, :i18n, :transliterate, :rule)
+        end
+      end
+    end
+
+    class RubyTransliterationFile < TransliterationFile
+      include RubyContent
+
+      def transliterate(string)
+        rule.call(string)
+      end
+    end
+
+    class YAMLTransliterationFile < TransliterationFile
+      def content
+        return @content if @content
+
+        hash = YAML.load_file(@filepath)
+        @content = JSON.parse(JSON[hash], symbolize_names: true)
+      end
+
+      def transliterate(string)
+        string.gsub(/./) { |char| rule[char.to_sym] }
+      end
+    end
+  end
+end
diff --git a/spec/support/traverse_path.rb b/spec/support/traverse_path.rb
new file mode 100644
index 0000000..e716024
--- /dev/null
+++ b/spec/support/traverse_path.rb
@@ -0,0 +1,14 @@
+module RailsI18n
+  module Spec
+    module TraversePath
+      # @return [Object, nil] Nil if path can't be traversed with the given key
+      # sequence, unless return Object at last key (it also can be nil)
+      def traverse_path(*keys)
+        keys.inject(content) do |memo, key|
+          return nil if memo[key].nil?
+          memo[key]
+        end
+      end
+    end
+  end
+end
\ No newline at end of file
diff --git a/spec/unit/matchers/have_keys_for_restrict_dependent_destroy_matcher.rb b/spec/unit/matchers/have_keys_for_restrict_dependent_destroy_matcher.rb
new file mode 100644
index 0000000..778c356
--- /dev/null
+++ b/spec/unit/matchers/have_keys_for_restrict_dependent_destroy_matcher.rb
@@ -0,0 +1,42 @@
+RSpec::Matchers.define :have_keys_for_restrict_dependent_destroy do
+  def check_keys(scope, hash)
+    return unless hash['errors']
+    return unless hash['errors']['messages']
+    return unless hash['errors']['messages']['restrict_dependent_destroy']
+    return if hash['errors']['messages']['restrict_dependent_destroy'].kind_of?(String)
+    h = hash['errors']['messages']['restrict_dependent_destroy'].clone
+    %w(has_one has_many).each do |key|
+      unless h.delete(key)
+        @missing_keys << @locale_file.locale_code + scope + '.errors.messages.restrict_dependent_destroy.' + key
+      end
+    end
+    h.keys.each do |key|
+      @redundant_keys << @locale_file.locale_code + scope + '.errors.messages.restrict_dependent_destroy.' + key
+    end
+  end
+
+  match do |actual|
+    @locale_file = I18nSpec::LocaleFile.new(actual)
+    @missing_keys = []
+    @redundant_keys = []
+    root = @locale_file.translations[@locale_file.locale_code]
+    check_keys('', root)
+    check_keys('.activemodel', root['activemodel']) if root['activemodel']
+    check_keys('.activerecord', root['activerecord']) if root['activerecord']
+    @missing_keys.empty? && @redundant_keys.empty?
+  end
+
+  failure_message do |filepath|
+    message = ''
+    if @missing_keys.any?
+      message << "expected #{filepath} to contain the following keys :\n- "
+      message << @missing_keys.join("\n- ")
+    end
+    if @redundant_keys.any?
+      message << "\n" unless message.empty?
+      message << "expected #{filepath} not to contain the following keys :\n- "
+      message << @redundant_keys.join("\n- ")
+    end
+    message
+  end
+end
diff --git a/spec/unit/matchers/have_missing_particular_pluralization_keys_matcher.rb b/spec/unit/matchers/have_missing_particular_pluralization_keys_matcher.rb
new file mode 100644
index 0000000..1b3c28d
--- /dev/null
+++ b/spec/unit/matchers/have_missing_particular_pluralization_keys_matcher.rb
@@ -0,0 +1,29 @@
+RSpec::Matchers.define :have_missing_particular_pluralization_keys do
+  match do |actual|
+    @locale_file = I18nSpec::LocaleFile.new(actual)
+
+    keys =
+      if @locale_file.locale.language
+        @locale_file.missing_pluralization_keys.reject do |key, value|
+          key.match(/\.errors\.messages\.restrict_dependent_destroy$/)
+        end
+      else
+        []
+      end
+
+    keys.any?
+  end
+
+  failure_message_when_negated do |filepath|
+    flattened_keys = []
+
+    @locale_file.errors[:missing_pluralization_keys].each do |parent, subkeys|
+      next if subkeys[-2] == 'restrict_dependent_destroy'
+      subkeys.each do |subkey|
+        flattened_keys << [parent, subkey].join('.')
+      end
+    end
+
+    "expected #{filepath} to contain the following pluralization keys :\n- " << flattened_keys.join("\n- ")
+  end
+end
diff --git a/spec/unit/ordinals_spec.rb b/spec/unit/ordinals_spec.rb
new file mode 100644
index 0000000..f6d3ba4
--- /dev/null
+++ b/spec/unit/ordinals_spec.rb
@@ -0,0 +1,37 @@
+require 'spec_helper'
+require 'rails_i18n'
+
+describe 'Ordinals for' do
+  # Mock Rails app in order to trigger the Railtie
+  let(:app) { double :app, config: config }
+  let(:config) { double :config, eager_load_namespaces: [], i18n: I18n, rails_i18n: RailsI18n }
+
+  before do
+    I18n.available_locales = %w[fr en fr-CA fr-CH fr-FR]
+
+    RailsI18n::Railtie.initializers.each { |init| init.run(app) }
+    I18n.backend.reload!
+  end
+
+  describe 'French' do
+    it 'uses the custom rules' do
+      %w[fr fr-CA fr-CH fr-FR ].each do |locale|
+        I18n.with_locale(locale) do
+          ActiveSupport::Inflector.ordinalize(1).should == "1er"
+          ActiveSupport::Inflector.ordinalize(2).should == "2e"
+          ActiveSupport::Inflector.ordinalize(3).should == "3e"
+        end
+      end
+    end
+  end
+
+  describe 'English' do
+    it 'uses the default rules' do
+      I18n.with_locale(:en) do
+        ActiveSupport::Inflector.ordinalize(1).should == "1st"
+        ActiveSupport::Inflector.ordinalize(2).should == "2nd"
+        ActiveSupport::Inflector.ordinalize(3).should == "3rd"
+      end
+    end
+  end
+end
diff --git a/spec/unit/pluralization/east_slavic.rb b/spec/unit/pluralization/east_slavic.rb
new file mode 100644
index 0000000..cc5811e
--- /dev/null
+++ b/spec/unit/pluralization/east_slavic.rb
@@ -0,0 +1,31 @@
+shared_examples 'East Slavic' do
+  it 'has "one", "few", "many" and "other" plural keys' do
+    plural_keys.size.should == 4
+    plural_keys.should include(:one, :few, :many, :other)
+  end
+
+  [1, "1", 21, 51, 71, 101, 1031].each do |count|
+    it "detects that #{count.inspect} in category 'one'" do
+      rule.call(count).should == :one
+    end
+  end
+
+  [2, "2", 3, 4, 22, 23, 24, 92, 93, 94].each do |count|
+    it "detects that #{count.inspect} in category 'few'" do
+      rule.call(count).should == :few
+    end
+  end
+
+  [0, "0", 5, "5", 8, 10, 11, 18, 20, 25, 27, 30, 35, 38, 40,
+   nil].each do |count|
+    it "detects that #{count.inspect} in category 'many'" do
+      rule.call(count).should == :many
+    end
+  end
+
+  [1.2, "1.2", 3.7, 11.5, 20.8, 1004.3].each do |count|
+    it "detects that #{count.inspect} in category 'other'" do
+      rule.call(count).should == :other
+    end
+  end
+end
diff --git a/spec/unit/pluralization/one_few_other.rb b/spec/unit/pluralization/one_few_other.rb
new file mode 100644
index 0000000..9257a36
--- /dev/null
+++ b/spec/unit/pluralization/one_few_other.rb
@@ -0,0 +1,25 @@
+shared_examples 'one-few-other forms language' do
+  [1, "1", 21, 31, 41, 51, 61, 71, 81, 101, 1001,
+   0.1, "0.1", 1.1, 2.1, 3.1, 4.1, 5.1, 6.1, 7.1, 10.1, 100.1,
+   1_000.1].each do |count|
+    it "detects that #{count.inspect} in category 'one'" do
+      rule.call(count).should == :one
+    end
+  end
+
+  [2, "2", 3, 4, 22, 23, 24, 32, 33, 34, 42, 43, 44, 52, 53, 54, 62, 102, 1_002,
+   0.2, "0.2", 0.3, 0.4, 1.2, 1.3, 1.4, 2.2, 2.3, 2.4, 3.2, 3.3, 3.4, 4.2, 4.3,
+   4.4, 5.2, 10.2, 100.2, 1_000.2].each do |count|
+    it "detects that #{count.inspect} in category 'few'" do
+      rule.call(count).should == :few
+    end
+  end
+
+  [0, "0", 5, "5", 6, 7, 17, 18, 19, 100, 1_000, 10_000, 100_000, 1_000_000,
+   0.0, 0.5, "0.5", 0.6, 0.7, 0.8, 0.9, 1.5, 1.6, 1.7, 2.5, 2.6, 2.7, 10.0,
+   100.0, 1_000.0, 10_000.0, 100_000.0, 1_000_000.0, nil].each do |count|
+    it "detects that #{count.inspect} in category 'other'" do
+      rule.call(count).should == :other
+    end
+  end
+end
diff --git a/spec/unit/pluralization/one_other.rb b/spec/unit/pluralization/one_other.rb
new file mode 100644
index 0000000..e79ca81
--- /dev/null
+++ b/spec/unit/pluralization/one_other.rb
@@ -0,0 +1,19 @@
+shared_examples 'one-other forms language' do
+  it 'has "one" and "other" plural keys' do
+    plural_keys.size.should == 2
+    plural_keys.should include(:one, :other)
+  end
+
+  [1, "1"].each do |count|
+    it "detects that #{count.inspect} in category 'one'" do
+      rule.call(count).should == :one
+    end
+  end
+
+  [0, "0", 0.3, 1.2, 2, "2", 3, 5, 10, 11, 21, 23, 31, 50, 81,
+   99, 100, nil].each do |count|
+    it "detects that #{count.inspect.inspect} in category 'other'" do
+      rule.call(count).should == :other
+    end
+  end
+end
diff --git a/spec/unit/pluralization/one_two_other.rb b/spec/unit/pluralization/one_two_other.rb
new file mode 100644
index 0000000..aead0df
--- /dev/null
+++ b/spec/unit/pluralization/one_two_other.rb
@@ -0,0 +1,25 @@
+shared_examples 'one-two-other forms language' do
+  it 'has "one", "two" and "other" plural keys' do
+    plural_keys.size.should == 3
+    plural_keys.should include(:one, :two, :other)
+  end
+
+  [1, "1"].each do |count|
+    it "detects that #{count.inspect} in category 'one'" do
+      rule.call(count).should == :one
+    end
+  end
+
+  [2, "2"].each do |count|
+    it "detects that #{count.inspect} in category 'two'" do
+      rule.call(count).should == :two
+    end
+  end
+
+  [0, 0.3, 1.2, 3, "3", 5, 10, 11, 21, 23, 31, 50, 81, 99, 100,
+   nil].each do |count|
+    it "detects that #{count.inspect} in category 'other'" do
+      rule.call(count).should == :other
+    end
+  end
+end
diff --git a/spec/unit/pluralization/one_upto_two_other.rb b/spec/unit/pluralization/one_upto_two_other.rb
new file mode 100644
index 0000000..b676b0c
--- /dev/null
+++ b/spec/unit/pluralization/one_upto_two_other.rb
@@ -0,0 +1,18 @@
+shared_examples 'one(upto 2)-other forms language' do
+  it 'has "one" and "other" plural keys' do
+    plural_keys.size.should == 2
+    plural_keys.should include(:one, :other)
+  end
+
+  [0, "0", 0.5, 1, "1", 1.2, 1.8].each do |count|
+    it "detects that #{count.inspect} in category 'one'" do
+      rule.call(count).should == :one
+    end
+  end
+
+  [2, "2", 2.1, 5, 11, 21, 22, 37, 40, 900.5, nil].each do |count|
+    it "detects that #{count.inspect} in category 'other'" do
+      rule.call(count).should == :other
+    end
+  end
+end
diff --git a/spec/unit/pluralization/one_with_zero_other.rb b/spec/unit/pluralization/one_with_zero_other.rb
new file mode 100644
index 0000000..dd4a258
--- /dev/null
+++ b/spec/unit/pluralization/one_with_zero_other.rb
@@ -0,0 +1,18 @@
+shared_examples 'one(with zero)-other forms language' do
+  it 'has "one" and "other" plural keys' do
+    plural_keys.size.should == 2
+    plural_keys.should include(:one, :other)
+  end
+
+  [0, "0", 1, "1", nil].each do |count|
+    it "detects that #{count.inspect} in category 'one'" do
+      rule.call(count).should == :one
+    end
+  end
+
+  [0.4, 1.2, 2, "2", 5, 11, 21, 22, 27, 99, 1_000].each do |count|
+    it "detects that #{count.inspect} in category 'other'" do
+      rule.call(count).should == :other
+    end
+  end
+end
diff --git a/spec/unit/pluralization/ordinary.rb b/spec/unit/pluralization/ordinary.rb
new file mode 100644
index 0000000..36ea27c
--- /dev/null
+++ b/spec/unit/pluralization/ordinary.rb
@@ -0,0 +1,17 @@
+shared_examples 'an ordinary pluralization rule' do
+  it 'returns a hash' do |example|
+    file.content.should be_a Hash
+  end
+
+  it 'has one top level namespace' do |example|
+    file.content.keys.size.should == 1
+  end
+
+  it 'has its locale tag as a top level namespace' do |example|
+    file.content.keys.first.should == example.metadata[:locale]
+  end
+
+  it 'has lambda or Proc under the "i18n.plural.rule" namespace' do
+    rule.should respond_to :call
+  end
+end
diff --git a/spec/unit/pluralization/other.rb b/spec/unit/pluralization/other.rb
new file mode 100644
index 0000000..048c2b9
--- /dev/null
+++ b/spec/unit/pluralization/other.rb
@@ -0,0 +1,11 @@
+shared_examples 'other form language' do
+  it 'has "other" plural keys' do
+    plural_keys.should == [:other]
+  end
+
+  [0, 1, "1", 1.2, "1.2", 2, 5, 11, 21, 22, 27, 99, 1_000, nil].each do |count|
+    it "detects that #{count.inspect} in category 'other'" do
+      rule.call(count).should == :other
+    end
+  end
+end
diff --git a/spec/unit/pluralization/romanian.rb b/spec/unit/pluralization/romanian.rb
new file mode 100644
index 0000000..b2770cc
--- /dev/null
+++ b/spec/unit/pluralization/romanian.rb
@@ -0,0 +1,23 @@
+shared_examples 'Romanian language' do
+  it 'has "one", "few", and "other" plural keys' do
+    plural_keys.size.should == 3
+    plural_keys.should include(:one, :few, :other)
+  end
+
+  it "detects that 1 in category 'one'" do
+    rule.call(1).should == :one
+  end
+
+  [0, "0", 2, "2", 3, 5, 8, 9, 10, 11, 15, 19, 101, 106, 112, 117,
+   119, 201, nil].each do |count|
+    it "detects that #{count.inspect} in category 'few'" do
+      rule.call(count).should == :few
+    end
+  end
+
+  [0.4, "0.4", 1.7, 20, 21, 23, 34, 45, 66, 89, 100, 120, 138].each do |count|
+    it "detects that #{count.inspect} in category 'other'" do
+      rule.call(count).should == :other
+    end
+  end
+end
diff --git a/spec/unit/pluralization/west_slavic.rb b/spec/unit/pluralization/west_slavic.rb
new file mode 100644
index 0000000..1708b4d
--- /dev/null
+++ b/spec/unit/pluralization/west_slavic.rb
@@ -0,0 +1,22 @@
+shared_examples 'West Slavic' do
+  it 'has "one", "few" and "other" plural keys' do
+    plural_keys.size.should == 3
+    plural_keys.should include(:one, :few, :other)
+  end
+
+  it "detects that 1 in category 'one'" do
+    rule.call(1).should == :one
+  end
+
+  [2, "2", 3, 4].each do |count|
+    it "detects that #{count.inspect} in category 'few'" do
+      rule.call(count).should == :few
+    end
+  end
+
+  [0, "0", 0.5, "0.5", 1.7, 2.1, 5, 7.8, 10, 875, nil].each do |count|
+    it "detects that #{count.inspect} in category 'other'" do
+      rule.call(count).should == :other
+    end
+  end
+end
diff --git a/spec/unit/pluralization_spec.rb b/spec/unit/pluralization_spec.rb
new file mode 100644
index 0000000..fa04345
--- /dev/null
+++ b/spec/unit/pluralization_spec.rb
@@ -0,0 +1,393 @@
+# Implementation of http://unicode.org/cldr/trac/browser/trunk/common/supplemental/plurals.xml
+# with additional specs for I18n pluralization data format.
+#
+# Locales that behave like English are omitted, because I18n applies English plural rule
+# to all locales without own plural rule.
+
+require 'spec_helper'
+require 'support/pluralization_file'
+
+require 'unit/pluralization/ordinary'
+require 'unit/pluralization/other'
+require 'unit/pluralization/one_other'
+require 'unit/pluralization/one_with_zero_other'
+require 'unit/pluralization/one_upto_two_other'
+require 'unit/pluralization/one_few_other'
+require 'unit/pluralization/one_two_other'
+require 'unit/pluralization/east_slavic'
+require 'unit/pluralization/west_slavic'
+require 'unit/pluralization/romanian'
+
+describe 'Pluralization rule for' do
+
+  pluralizations_dir = File.join('rails', 'pluralization')
+
+  let(:file) do |example|
+    filename = File.join(pluralizations_dir, "#{example.metadata[:locale]}.rb")
+    RailsI18n::Spec::PluralizationFile.new(filename)
+  end
+
+  let(:rule) do |example|
+    file.traverse_path(example.metadata[:locale], :i18n, :plural, :rule)
+  end
+
+  let(:plural_keys) do |example|
+    file.traverse_path(example.metadata[:locale], :i18n, :plural, :keys)
+  end
+
+  describe 'Arabic', :locale => :ar do
+    it_behaves_like 'an ordinary pluralization rule'
+
+    it 'has "zero", "one", "two", "few", "many" and "other" plural keys' do
+      plural_keys.size.should == 6
+      plural_keys.should include(:zero, :one, :two, :few, :many, :other)
+    end
+
+    it "detects that 0 in category 'zero'" do
+      rule.call(0).should == :zero
+    end
+
+    it "detects that 1 in category 'one'" do
+      rule.call(1).should == :one
+    end
+
+    it "detects that 2 in category 'two'" do
+      rule.call(2).should == :two
+    end
+
+    [3, 4, 5, 6, 7, 8, 9, 10, 103, 105, 110].each do |count|
+      it "detects that #{count} in category 'few'" do
+        rule.call(count).should == :few
+      end
+    end
+
+    [11, 12, 20, 51, 67, 89, 91, 99, 111, 158, 199].each do |count|
+      it "detects that #{count} in category 'many'" do
+        rule.call(count).should == :many
+      end
+    end
+
+    [0.3, 1.2, 2.2, 8.5, 11.68, 100, 101, 102, 200, 201, 202].each do |count|
+      it "detects that #{count} in category 'other'" do
+        rule.call(count).should == :other
+      end
+    end
+  end
+
+  describe 'Azerbaijani', :locale => :az do
+    it_behaves_like 'an ordinary pluralization rule'
+    it_behaves_like 'other form language'
+  end
+
+  describe 'Belarusian', :locale => :be do
+    it_behaves_like 'an ordinary pluralization rule'
+    it_behaves_like 'East Slavic'
+  end
+
+  describe 'Bosnian', :locale => :bs do
+    it_behaves_like 'an ordinary pluralization rule'
+    it_behaves_like 'one-few-other forms language'
+  end
+
+  describe 'Croatian', :locale => :hr do
+    it_behaves_like 'an ordinary pluralization rule'
+    it_behaves_like 'one-few-other forms language'
+  end
+
+  describe 'Czech', :locale => :cs do
+    it_behaves_like 'an ordinary pluralization rule'
+    it_behaves_like 'West Slavic'
+  end
+
+  describe 'French', :locale => :fr do
+    it_behaves_like 'an ordinary pluralization rule'
+    it_behaves_like 'one(upto 2)-other forms language'
+  end
+
+  describe 'Georgian', :locale => :ka do
+    it_behaves_like 'an ordinary pluralization rule'
+    it_behaves_like 'one-other forms language'
+  end
+
+  describe 'Hebrew', :locale => :he do
+    it_behaves_like 'an ordinary pluralization rule'
+  end
+
+  describe 'Hindi', :locale => :hi do
+    it_behaves_like 'an ordinary pluralization rule'
+    it_behaves_like 'one(with zero)-other forms language'
+  end
+
+  describe 'Hungarian', :locale => :hu do
+    it_behaves_like 'an ordinary pluralization rule'
+    it_behaves_like 'one-other forms language'
+  end
+
+  describe 'Odiya', :locale => :or do
+    it_behaves_like 'an ordinary pluralization rule'
+    it_behaves_like 'one(with zero)-other forms language'
+  end
+
+  describe 'Indonesian', :locale => :id do
+    it_behaves_like 'an ordinary pluralization rule'
+    it_behaves_like 'other form language'
+  end
+
+  describe 'Japanese', :locale => :ja do
+    it_behaves_like 'an ordinary pluralization rule'
+    it_behaves_like 'other form language'
+  end
+
+  describe 'Kannada', :locale => :kn do
+    it_behaves_like 'an ordinary pluralization rule'
+    it_behaves_like 'other form language'
+  end
+
+  describe 'Kazakh', :locale => :kk do
+    it_behaves_like 'an ordinary pluralization rule'
+    it_behaves_like 'one-other forms language'
+  end
+
+  describe 'Khmer', :locale => :km do
+    it_behaves_like 'an ordinary pluralization rule'
+    it_behaves_like 'other form language'
+  end
+
+  describe 'Korean', :locale => :ko do
+    it_behaves_like 'an ordinary pluralization rule'
+    it_behaves_like 'other form language'
+  end
+
+  describe 'Lao', :locale => :lo do
+    it_behaves_like 'an ordinary pluralization rule'
+    it_behaves_like 'other form language'
+  end
+
+  describe 'Latvian', :locale => :lv do
+    it_behaves_like 'an ordinary pluralization rule'
+
+    it 'has "one" and "other" plural keys' do
+      plural_keys.size.should == 2
+      plural_keys.should include(:one, :other)
+    end
+
+    [1, 21, 31, 41, 51, 61, 101].each do |count|
+      it "detects that #{count} in category 'one'" do
+        rule.call(count).should == :one
+      end
+    end
+
+    [0, 0.4, 1.7, 2, 5, 10, 11, 20, 22, 37, 40, 111, 123].each do |count|
+      it "detects that #{count} in category 'other'" do
+        rule.call(count).should == :other
+      end
+    end
+  end
+
+  describe 'Lithuanian', :locale => :lt do
+    it_behaves_like 'an ordinary pluralization rule'
+
+    it 'has "one", "few" and "other" plural keys' do
+      plural_keys.size.should == 3
+      plural_keys.should include(:one, :few, :other)
+    end
+
+    [1, 21, 31, 41, 51, 61, 101].each do |count|
+      it "detects that #{count} in category 'one'" do
+        rule.call(count).should == :one
+      end
+    end
+
+    [2, 3, 5, 8, 9, 22, 26, 29, 32, 34, 39, 109].each do |count|
+      it "detects that #{count} in category 'few'" do
+        rule.call(count).should == :few
+      end
+    end
+
+    [0, 0.4, 1.7, 10, 11, 15, 20, 30, 40, 70, 111, 122.7].each do |count|
+      it "detects that #{count} in category 'other'" do
+        rule.call(count).should == :other
+      end
+    end
+  end
+
+  # TODO http://unicode.org/cldr/trac/ticket/3426
+  describe 'Macedonian', :locale => :mk do
+    it_behaves_like 'an ordinary pluralization rule'
+
+    it 'has "one" and "other" plural keys' do
+      plural_keys.size.should == 2
+      plural_keys.should include(:one, :other)
+    end
+
+    [1, 21, 31, 41, 51, 61, 101, 111, 131].each do |count|
+      it "detects that #{count} in category 'one'" do
+        rule.call(count).should == :one
+      end
+    end
+
+    [0, 0.4, 1.7, 2, 7, 10, 11, 15, 20, 27, 33, 46, 70, 122.7].each do |count|
+      it "detects that #{count} in category 'other'" do
+        rule.call(count).should == :other
+      end
+    end
+  end
+
+  describe 'Malagasy', :locale => :mg do
+    it_behaves_like 'an ordinary pluralization rule'
+    it_behaves_like 'one(with zero)-other forms language'
+  end
+
+  describe 'Malay', :locale => :ms do
+    it_behaves_like 'an ordinary pluralization rule'
+    it_behaves_like 'other form language'
+  end
+
+  # http://unicode.org/cldr/trac/ticket/4187
+  describe 'Persian', :locale => :fa do
+    it_behaves_like 'an ordinary pluralization rule'
+    it_behaves_like 'other form language'
+  end
+
+  describe 'Polish', :locale => :pl do
+    it_behaves_like 'an ordinary pluralization rule'
+
+    it 'has "one", "few", "many" and "other" plural keys' do
+      plural_keys.size.should == 4
+      plural_keys.should include(:one, :few, :many, :other)
+    end
+
+    it "detects that 1 in category 'one'" do
+      rule.call(1).should == :one
+    end
+
+    [2, 3, 4, 22, 23, 24, 92, 93, 94].each do |count|
+      it "detects that #{count} in category 'few'" do
+        rule.call(count).should == :few
+      end
+    end
+
+    [0, 5, 8, 10, 11, 18, 20, 21, 25, 27, 30, 31, 35, 38, 40, 41, 114].each do |count|
+      it "detects that #{count} in category 'many'" do
+        rule.call(count).should == :many
+      end
+    end
+
+    [1.2, 3.7, 11.5, 20.8, 1004.3].each do |count|
+      it "detects that #{count} in category 'other'" do
+        rule.call(count).should == :other
+      end
+    end
+  end
+
+  describe 'Romanian', :locale => :ro do
+    it_behaves_like 'an ordinary pluralization rule'
+    it_behaves_like 'Romanian language'
+  end
+
+  describe 'Russian', :locale => :ru do
+    it_behaves_like 'an ordinary pluralization rule'
+    it_behaves_like 'East Slavic'
+  end
+  
+    describe 'Sardinian', :locale => :sc do
+    it_behaves_like 'an ordinary pluralization rule'
+    it_behaves_like 'one-other forms language'
+  end
+
+  describe 'Serbian', :locale => :sr do
+    it_behaves_like 'an ordinary pluralization rule'
+    it_behaves_like 'one-few-other forms language'
+
+    it 'has "one", "few", and "other" plural keys' do
+      plural_keys.size.should == 3
+      plural_keys.should include(:one, :few, :other)
+    end
+
+    [1, 21, 31, 41, 51, 61, 81, 101, 1031].each do |count|
+      it "detects that #{count} in category 'one'" do
+        rule.call(count).should == :one
+      end
+    end
+
+    [2, 3, 4, 22, 23, 24, 102, 1034].each do |count|
+      it "detects that #{count} in category 'few'" do
+        rule.call(count).should == :few
+      end
+    end
+
+    [0.11, 0.13, 56.78, 11, 12, 13, 14, 15, 27, 100, 1012].each do |count|
+      it "detects that #{count} in category 'other'" do
+        rule.call(count).should == :other
+      end
+    end
+  end
+
+  describe 'Slovak', :locale => :sk do
+    it_behaves_like 'an ordinary pluralization rule'
+    it_behaves_like 'West Slavic'
+  end
+
+  describe 'Slovenian', :locale => :sl do
+    it_behaves_like 'an ordinary pluralization rule'
+
+    it 'has "one", "two", "few", and "other" plural keys' do
+      plural_keys.size.should == 4
+      plural_keys.should include(:one, :few, :two, :other)
+    end
+
+    [1, 101, 201, 301, 601].each do |count|
+      it "detects that #{count} in category 'one'" do
+        rule.call(count).should == :one
+      end
+    end
+
+    [2, 102, 302, 502].each do |count|
+      it "detects that #{count} in category 'two'" do
+        rule.call(count).should == :two
+      end
+    end
+
+    [3, 4, 103, 104, 203, 204, 403, 404].each do |count|
+      it "detects that #{count} in category 'few'" do
+        rule.call(count).should == :few
+      end
+    end
+
+    [0, 1.2, 3.7, 5, 10, 11, 12, 13, 17, 20, 21, 23, 71, 84, 99, 100].each do |count|
+      it "detects that #{count} in category 'other'" do
+        rule.call(count).should == :other
+      end
+    end
+  end
+
+  describe 'Tagalog', :locale => :tl do
+    it_behaves_like 'an ordinary pluralization rule'
+    it_behaves_like 'one(with zero)-other forms language'
+  end
+
+  describe 'Thai', :locale => :th do
+    it_behaves_like 'an ordinary pluralization rule'
+    it_behaves_like 'other form language'
+  end
+
+  describe 'Turkish', :locale => :tr do
+    it_behaves_like 'an ordinary pluralization rule'
+    it_behaves_like 'one-other forms language'
+  end
+
+  describe 'Ukrainian', :locale => :uk do
+    it_behaves_like 'an ordinary pluralization rule'
+    it_behaves_like 'East Slavic'
+  end
+
+  describe 'Vietnamese', :locale => :vi do
+    it_behaves_like 'an ordinary pluralization rule'
+    it_behaves_like 'other form language'
+  end
+
+  describe 'Wolof', :locale => :wo do
+    it_behaves_like 'an ordinary pluralization rule'
+    it_behaves_like 'other form language'
+  end
+end
diff --git a/spec/unit/translation_spec.rb b/spec/unit/translation_spec.rb
new file mode 100644
index 0000000..a07e0a7
--- /dev/null
+++ b/spec/unit/translation_spec.rb
@@ -0,0 +1,33 @@
+# coding: utf-8
+
+require 'spec_helper'
+
+Dir.glob('rails/locale/*.yml') do |locale_file|
+  next if locale_file == 'rails/locale/es-419.yml'
+  describe "a rails-i18n #{locale_file} locale file" do
+    subject { locale_file }
+    it { should be_parseable }
+    # it { should have_valid_pluralization_keys }
+    it { should have_valid_pluralization_keys }
+    it { should have_one_top_level_namespace }
+    it { should be_named_like_top_level_namespace }
+    it { should_not have_legacy_interpolations }
+    it { locale_file.should be_a_subset_of('rails/locale/en.yml') }
+
+    # These two matchers are to cope with irregular key names that
+    # are found in Rails 5.x.
+    it { should_not have_missing_particular_pluralization_keys }
+    it { should have_keys_for_restrict_dependent_destroy }
+  end
+end
+
+describe "a rails-i18n rails/locale/es-419.yml locale file" do
+  subject { 'rails/locale/es-419.yml' }
+  it { should be_parseable }
+  it { should have_valid_pluralization_keys }
+  it { should_not have_missing_pluralization_keys }
+  it { should have_one_top_level_namespace }
+  it { should be_named_like_top_level_namespace }
+  it { should_not have_legacy_interpolations }
+  it { should have_a_valid_locale }
+end
diff --git a/spec/unit/transliteration/ordinary.rb b/spec/unit/transliteration/ordinary.rb
new file mode 100644
index 0000000..088f933
--- /dev/null
+++ b/spec/unit/transliteration/ordinary.rb
@@ -0,0 +1,17 @@
+shared_examples 'an ordinary transliteration rule' do
+  it 'returns a hash' do
+    file.content.should be_a Hash
+  end
+
+  it 'has one top level namespace' do
+    file.content.keys.size.should == 1
+  end
+
+  it 'has its locale tag as a top level namespace' do |example|
+    file.content.keys.first.should == example.metadata[:locale]
+  end
+
+  it 'has lambda or Proc, or Hash under the "i18n.transliterate.rule" namespace' do
+    rule.should satisfy { |rule| rule.is_a?(Proc) || rule.is_a?(Hash) }
+  end
+end
diff --git a/spec/unit/transliteration/ukrainian.rb b/spec/unit/transliteration/ukrainian.rb
new file mode 100644
index 0000000..0d17f62
--- /dev/null
+++ b/spec/unit/transliteration/ukrainian.rb
@@ -0,0 +1,205 @@
+# encoding: utf-8
+
+# Below is an implementation of the official transliteration rules
+# http://zakon2.rada.gov.ua/laws/show/55-2010-%D0%BF
+
+shared_examples "Ukrainian transliteration" do
+
+  it "properly transliterates 'ь'" do
+    t("Ь").should == ''
+    t("ь").should == ''
+  end
+
+  it "properly transliterates 'Аa'" do
+    t('А').should == 'A'
+    t('а').should == 'a'
+  end
+
+  it "properly transliterates 'Бб'" do
+    t('Б').should == 'B'
+    t('б').should == 'b'
+  end
+
+  it "properly transliterates 'Вв'" do
+    t('В').should == 'V'
+    t('в').should == 'v'
+  end
+
+  it "properly transliterates 'Гг'" do
+    t('Г').should == 'H'
+    t('г').should == 'h'
+  end
+
+  it "properly transliterates 'Ґґ'" do
+    t('Ґ').should == 'G'
+    t('ґ').should == 'g'
+  end
+
+  it "properly transliterates 'Дд'" do
+    t('Д').should == 'D'
+    t('д').should == 'd'
+  end
+
+  it "properly transliterates 'Ее'" do
+    t('Е').should == 'E'
+    t('е').should == 'e'
+  end
+
+  it "properly transliterates 'Жж'" do
+    t('Ж').should == 'ZH'
+    t('ж').should == 'zh'
+  end
+
+  it "properly transliterates 'Зз'" do
+    t('З').should == 'Z'
+    t('з').should == 'z'
+  end
+
+  it "properly transliterates 'Ии'" do
+    t('И').should == 'Y'
+    t('и').should == 'y'
+  end
+
+  it "properly transliterates 'Іі'" do
+    t('І').should == 'I'
+    t('і').should == 'i'
+  end
+
+  it "properly transliterates 'Кк'" do
+    t('К').should == 'K'
+    t('к').should == 'k'
+  end
+
+  it "properly transliterates 'Лл'" do
+    t('Л').should == 'L'
+    t('л').should == 'l'
+  end
+
+  it "properly transliterates 'Мм'" do
+    t('М').should == 'M'
+    t('м').should == 'm'
+  end
+
+  it "properly transliterates 'Нн'" do
+    t('Н').should == 'N'
+    t('н').should == 'n'
+  end
+
+  it "properly transliterates 'Оо'" do
+    t('О').should == 'O'
+    t('о').should == 'o'
+  end
+
+  it "properly transliterates 'Пп'" do
+    t('П').should == 'P'
+    t('п').should == 'p'
+  end
+
+  it "properly transliterates 'Рр'" do
+    t('Р').should == 'R'
+    t('р').should == 'r'
+  end
+
+  it "properly transliterates 'Сс'" do
+    t('С').should == 'S'
+    t('с').should == 's'
+  end
+
+  it "properly transliterates 'Тт'" do
+    t('Т').should == 'T'
+    t('т').should == 't'
+  end
+
+  it "properly transliterates 'Уу'" do
+    t('У').should == 'U'
+    t('у').should == 'u'
+  end
+
+  it "properly transliterates 'Фф'" do
+    t('Ф').should == 'F'
+    t('ф').should == 'f'
+  end
+
+  it "properly transliterates 'Хх'" do
+    t('Х').should == 'KH'
+    t('х').should == 'kh'
+  end
+
+  it "properly transliterates 'Цц'" do
+    t('Ц').should == 'TS'
+    t('ц').should == 'ts'
+  end
+
+  it "properly transliterates 'Чч'" do
+    t('Ч').should == 'CH'
+    t('ч').should == 'ch'
+  end
+
+  it "properly transliterates 'Шш'" do
+    t('Ш').should == 'SH'
+    t('ш').should == 'sh'
+  end
+
+  it "properly transliterates 'Щщ'" do
+    t('Щ').should == 'SHCH'
+    t('щ').should == 'shch'
+  end
+
+  it "properly transliterates 'зг'" do
+    t('зг').should == 'zgh'
+    t('Згори').should == 'Zghory'
+    t('РОЗГОН').should == 'ROZGHON'
+  end
+
+  it "properly transliterates apostrophe" do
+    t("д'Арк").should == 'dArk'
+    t('д’Арк').should == 'dArk'
+    t("ці 'треба' залишити").should == "tsi 'treba' zalyshyty"
+  end
+
+  it "properly transliterates 'Єє'" do
+    t('Єнакієве').should == 'Yenakiieve'
+    t('євродолар').should == 'yevrodolar'
+    t('Гаєвич').should == 'Haievych'
+    t("Короп'є").should == 'Koropie'
+  end
+
+  it "properly transliterates 'Її'" do
+    t('Їжакевич').should == 'Yizhakevych'
+    t('їсти').should == 'yisty'
+    t('Кадиївка').should == 'Kadyivka'
+    t("Мар'їне").should == 'Marine'
+  end
+
+  it "properly transliterates 'Йй'" do
+    t('Йосипівка').should == 'Yosypivka'
+    t('йоржик').should == 'yorzhyk'
+    t('Стрий').should == 'Stryi'
+    t('Андрій').should == 'Andrii'
+  end
+
+  it "properly transliterates 'Юю'" do
+    t('Юрій').should == 'Yurii'
+    t('юрба').should == 'yurba'
+    t('Корюківка').should == 'Koriukivka'
+  end
+
+  it "properly transliterates 'Яя'" do
+    t('Яготин').should == 'Yahotyn'
+    t('ялина').should == 'yalyna'
+    t('Костянтин').should == 'Kostiantyn'
+    t("Знам'янка").should == 'Znamianka'
+    t('Феодосія').should == 'Feodosiia'
+  end
+
+  it "properly transliterates mixed case chars in a string" do
+    t("ЖОЗЕФ МОНЬЄ").should == "ZHOZEF MONIE"
+    t("СПАЛАХ, поЇхали, МаріЯ").should == "SPALAKH, poIkhaly, MariIA"
+    t("ЖаН жеНе").should == "ZhaN zheNe"
+  end
+
+  it "properly transliterates strings with punctuation, digits and symbols" do
+    t("© Іван Кошелівець. Жанна д'Арк. Київ 1997, ISBN 5-7372-0031-0").should ==
+        "© Ivan Koshelivets. Zhanna dArk. Kyiv 1997, ISBN 5-7372-0031-0"
+  end
+end
\ No newline at end of file
diff --git a/spec/unit/transliteration_spec.rb b/spec/unit/transliteration_spec.rb
new file mode 100644
index 0000000..72e07fe
--- /dev/null
+++ b/spec/unit/transliteration_spec.rb
@@ -0,0 +1,73 @@
+# encoding: utf-8
+
+require 'spec_helper'
+require 'support/transliteration_file'
+
+require 'unit/transliteration/ordinary'
+require 'unit/transliteration/ukrainian'
+
+describe "Transliteration rule for" do
+  transliterations_dir = File.join('rails', 'transliteration')
+
+  let(:file) do |example|
+    filename = Dir[File.join(transliterations_dir, "#{example.metadata[:locale]}*")].first
+    RailsI18n::Spec::TransliterationFile.make(filename)
+  end
+
+  let(:rule) do |example|
+    file.traverse_path(example.metadata[:locale], :i18n, :transliterate, :rule)
+  end
+
+  def t(string)
+    file.transliterate(string)
+  end
+
+  describe "Bulgarian", :locale => :bg do
+    it_behaves_like "an ordinary transliteration rule"
+
+    it "works" do
+      t('съществуват').should == 'sashtestvuvat'
+    end
+  end
+
+  describe "Russian", :locale => :ru do
+    it_behaves_like "an ordinary transliteration rule"
+
+    # https://github.com/yaroslav/russian/blob/master/spec/transliteration_spec.rb
+    it "should transliterate properly" do
+      t("Это просто некий текст").should == "Eto prosto nekiy tekst"
+      t("щ").should == "sch"
+      t("стансы").should == "stansy"
+      t("упущение").should == "upuschenie"
+      t("ш").should == "sh"
+      t("Ш").should == "SH"
+      t("ц").should == "ts"
+    end
+
+    it "should properly transliterate mixed russian-english strings" do
+      t("Это кусок строки русских букв v peremeshku s latinizey i амперсандом (pozor!) & something").should ==
+        "Eto kusok stroki russkih bukv v peremeshku s latinizey i ampersandom (pozor!) & something"
+    end
+
+    it "should properly transliterate mixed case chars in a string" do
+      t("НЕВЕРОЯТНОЕ УПУЩЕНИЕ").should == "NEVEROYATNOE UPUSCHENIE"
+      t("Невероятное Упущение").should == "Neveroyatnoe Upuschenie"
+      t("Шерстяной Заяц").should == "Sherstyanoy Zayats"
+      t("Н.П. Шерстяков").should == "N.P. Sherstyakov"
+      t("ШАРОВАРЫ").should == "SHAROVARY"
+    end
+
+    it "should work for multi-char substrings" do
+      t("38 воробьёв").should == "38 vorobiev"
+      t("Вася Воробьёв").should == "Vasya Vorobiev"
+      t("Алябьев").should == "Alyabiev"
+      t("АЛЯБЬЕВ").should == "ALYABIEV"
+    end
+  end
+
+  describe "Ukrainian", :locale => :uk do
+    it_behaves_like "an ordinary transliteration rule"
+
+    include_examples "Ukrainian transliteration"
+  end
+end

Debdiff

[The following lists of changes regard files as different if they have different names, permissions or owners.]

Files in second set of .debs but not in first

-rw-r--r--  root/root   /usr/share/rubygems-integration/all/specifications/rails-i18n-7.0.6.gemspec
-rwxr-xr-x  root/root   /usr/bin/autospec
-rwxr-xr-x  root/root   /usr/bin/bundler
-rwxr-xr-x  root/root   /usr/bin/cdiff
-rwxr-xr-x  root/root   /usr/bin/colortab
-rwxr-xr-x  root/root   /usr/bin/decolor
-rwxr-xr-x  root/root   /usr/bin/erubis
-rwxr-xr-x  root/root   /usr/bin/htmldiff
-rwxr-xr-x  root/root   /usr/bin/i18n-tasks
-rwxr-xr-x  root/root   /usr/bin/ldiff
-rwxr-xr-x  root/root   /usr/bin/rackup
-rwxr-xr-x  root/root   /usr/bin/rails
-rwxr-xr-x  root/root   /usr/bin/rake
-rwxr-xr-x  root/root   /usr/bin/rspec
-rwxr-xr-x  root/root   /usr/bin/spork
-rwxr-xr-x  root/root   /usr/bin/sprockets
-rwxr-xr-x  root/root   /usr/bin/term_display
-rwxr-xr-x  root/root   /usr/bin/term_mandel
-rwxr-xr-x  root/root   /usr/bin/thor
-rwxr-xr-x  root/root   /usr/bin/tilt
-rwxr-xr-x  root/root   /usr/bin/tt

Files in first set of .debs but not in second

-rw-r--r--  root/root   /usr/share/rubygems-integration/all/specifications/rails-i18n-7.0.5.gemspec

Control files: lines which differ (wdiff format)

  • Ruby-Versions: all

More details

Full run details