├── .github └── workflows │ └── ci.yml ├── .gitignore ├── .rspec ├── CHANGELOG.md ├── Dockerfile ├── Gemfile ├── Gemfile.lock ├── MIT-LICENSE.txt ├── README.md ├── Rakefile ├── bin ├── autospec ├── bundler ├── cdiff ├── colortab ├── decolor ├── erubis ├── htmldiff ├── i18n-tasks ├── ldiff ├── rackup ├── rails ├── rake ├── rspec ├── spork ├── sprockets ├── term_display ├── term_mandel ├── thor ├── tilt └── tt ├── config └── i18n-tasks.yml ├── lib ├── rails-i18n.rb ├── rails_i18n.rb └── rails_i18n │ ├── common_pluralizations │ ├── east_slavic.rb │ ├── one_few_other.rb │ ├── one_other.rb │ ├── one_two_other.rb │ ├── one_upto_two_other.rb │ ├── one_with_zero_other.rb │ ├── other.rb │ ├── romanian.rb │ └── west_slavic.rb │ ├── pluralization.rb │ ├── railtie.rb │ └── transliteration.rb ├── locales.thor ├── rails-i18n.gemspec ├── rails ├── locale │ ├── af.yml │ ├── ar.yml │ ├── az.yml │ ├── be.yml │ ├── bg.yml │ ├── bn.yml │ ├── bs.yml │ ├── ca.yml │ ├── cnr.yml │ ├── cs.yml │ ├── cy.yml │ ├── da.yml │ ├── de-AT.yml │ ├── de-CH.yml │ ├── de-DE.yml │ ├── de.yml │ ├── dz.yml │ ├── el-CY.yml │ ├── el.yml │ ├── en-AU.yml │ ├── en-CA.yml │ ├── en-CY.yml │ ├── en-GB.yml │ ├── en-IE.yml │ ├── en-IN.yml │ ├── en-NZ.yml │ ├── en-TT.yml │ ├── en-US.yml │ ├── en-ZA.yml │ ├── en.yml │ ├── eo.yml │ ├── es-419.yml │ ├── es-AR.yml │ ├── es-CL.yml │ ├── es-CO.yml │ ├── es-CR.yml │ ├── es-EC.yml │ ├── es-ES.yml │ ├── es-MX.yml │ ├── es-NI.yml │ ├── es-PA.yml │ ├── es-PE.yml │ ├── es-US.yml │ ├── es-VE.yml │ ├── es.yml │ ├── et.yml │ ├── eu.yml │ ├── fa.yml │ ├── fi.yml │ ├── fr-CA.yml │ ├── fr-CH.yml │ ├── fr-FR.yml │ ├── fr.yml │ ├── fy.yml │ ├── gd.yml │ ├── gl.yml │ ├── he.yml │ ├── hi-IN.yml │ ├── hi.yml │ ├── hr.yml │ ├── hu.yml │ ├── hy.yml │ ├── id.yml │ ├── is.yml │ ├── iso-639-2 │ │ ├── csb.yml │ │ ├── dsb.yml │ │ ├── fur.yml │ │ ├── gsw-CH.yml │ │ ├── hsb.yml │ │ └── scr.yml │ ├── it-CH.yml │ ├── it.yml │ ├── ja.yml │ ├── ka.yml │ ├── kk.yml │ ├── km.yml │ ├── kn.yml │ ├── ko.yml │ ├── lb.yml │ ├── lo.yml │ ├── lt.yml │ ├── lv.yml │ ├── mg.yml │ ├── mk.yml │ ├── ml.yml │ ├── mn.yml │ ├── mr-IN.yml │ ├── ms.yml │ ├── nb.yml │ ├── ne.yml │ ├── nl.yml │ ├── nn.yml │ ├── oc.yml │ ├── or.yml │ ├── pa.yml │ ├── pap-AW.yml │ ├── pap-CW.yml │ ├── pl.yml │ ├── pt-BR.yml │ ├── pt.yml │ ├── rm.yml │ ├── ro.yml │ ├── ru.yml │ ├── sc.yml │ ├── sk.yml │ ├── sl.yml │ ├── sq.yml │ ├── sr.yml │ ├── st.yml │ ├── sv-FI.yml │ ├── sv-SE.yml │ ├── sv.yml │ ├── sw.yml │ ├── ta.yml │ ├── te.yml │ ├── th.yml │ ├── tl.yml │ ├── tr.yml │ ├── tt.yml │ ├── ug.yml │ ├── uk.yml │ ├── ur.yml │ ├── uz.yml │ ├── vi.yml │ ├── wo.yml │ ├── zh-CN.yml │ ├── zh-HK.yml │ ├── zh-TW.yml │ └── zh-YUE.yml ├── ordinals │ ├── be.yml │ ├── bs.yml │ ├── cs.yml │ ├── da.yml │ ├── de-AT.yml │ ├── de-CH.yml │ ├── de-DE.yml │ ├── de.yml │ ├── eo.yml │ ├── et.yml │ ├── fa.yml │ ├── fi.yml │ ├── fr-CA.rb │ ├── fr-CH.rb │ ├── fr-FR.rb │ ├── fr.rb │ ├── gd.rb │ ├── hr.yml │ ├── hu.yml │ ├── is.yml │ ├── ka.yml │ ├── lb.yml │ ├── lt.yml │ ├── lv.yml │ ├── mk.yml │ ├── nb.yml │ ├── ne.yml │ ├── nn.yml │ ├── pl.yml │ ├── sk.yml │ ├── sl.yml │ ├── sq.yml │ ├── sr.yml │ ├── sw.yml │ └── tr.yml ├── pluralization │ ├── ar.rb │ ├── az.rb │ ├── be.rb │ ├── bg.rb │ ├── bn.rb │ ├── bs.rb │ ├── ca.rb │ ├── cs.rb │ ├── da.rb │ ├── de-AT.rb │ ├── de-CH.rb │ ├── de-DE.rb │ ├── de.rb │ ├── el-CY.rb │ ├── el.rb │ ├── en-AU.rb │ ├── en-CA.rb │ ├── en-CY.rb │ ├── en-GB.rb │ ├── en-IE.rb │ ├── en-IN.rb │ ├── en-NZ.rb │ ├── en-TT.rb │ ├── en-US.rb │ ├── en-ZA.rb │ ├── en.rb │ ├── eo.rb │ ├── es-419.rb │ ├── es-AR.rb │ ├── es-CL.rb │ ├── es-CO.rb │ ├── es-CR.rb │ ├── es-EC.rb │ ├── es-ES.rb │ ├── es-MX.rb │ ├── es-NI.rb │ ├── es-PA.rb │ ├── es-PE.rb │ ├── es-US.rb │ ├── es-VE.rb │ ├── es.rb │ ├── et.rb │ ├── eu.rb │ ├── fa.rb │ ├── fi.rb │ ├── fr-CA.rb │ ├── fr-CH.rb │ ├── fr-FR.rb │ ├── fr.rb │ ├── fy.rb │ ├── gd.rb │ ├── gl.rb │ ├── he.rb │ ├── hi-IN.rb │ ├── hi.rb │ ├── hr.rb │ ├── hsb.rb │ ├── hu.rb │ ├── id.rb │ ├── is.rb │ ├── it-CH.rb │ ├── it.rb │ ├── ja.rb │ ├── ka.rb │ ├── kk.rb │ ├── km.rb │ ├── kn.rb │ ├── ko.rb │ ├── lo.rb │ ├── lt.rb │ ├── lv.rb │ ├── mg.rb │ ├── mk.rb │ ├── ml.rb │ ├── mn.rb │ ├── mr-IN.rb │ ├── ms.rb │ ├── nb.rb │ ├── ne.rb │ ├── nl.rb │ ├── nn.rb │ ├── oc.rb │ ├── or.rb │ ├── pa.rb │ ├── pap-AW.rb │ ├── pap-CW.rb │ ├── pl.rb │ ├── pt-BR.rb │ ├── pt.rb │ ├── ro.rb │ ├── ru.rb │ ├── sc.rb │ ├── sk.rb │ ├── sl.rb │ ├── sr.rb │ ├── st.rb │ ├── sv-SE.rb │ ├── sv.rb │ ├── sw.rb │ ├── ta.rb │ ├── th.rb │ ├── tl.rb │ ├── tr.rb │ ├── uk.rb │ ├── ur.rb │ ├── vi.rb │ ├── wo.rb │ ├── zh-CN.rb │ ├── zh-HK.rb │ ├── zh-TW.rb │ └── zh-YUE.rb ├── rails │ ├── action_view.yml │ ├── active_model.yml │ ├── active_record.yml │ ├── active_support.yml │ └── normalized │ │ ├── action_view.yml │ │ ├── active_model.yml │ │ ├── active_record.yml │ │ ├── active_support.yml │ │ └── merged.yml ├── test │ ├── lib │ │ ├── check_locales.rb │ │ ├── key_structure.rb │ │ └── normalize.rb │ └── structure.rb └── transliteration │ ├── az.yml │ ├── bg.yml │ ├── ca.yml │ ├── da.yml │ ├── de.yml │ ├── el.yml │ ├── es.yml │ ├── fa.yml │ ├── fr.yml │ ├── hu.yml │ ├── ka.yml │ ├── oc.yml │ ├── pl.yml │ ├── pt.yml │ ├── ro.yml │ ├── ru.rb │ ├── uk.rb │ └── vi.yml └── spec ├── other └── locale_files_spec.rb ├── spec_helper.rb ├── support ├── pluralization_file.rb ├── ruby_content.rb ├── transliteration_file.rb └── traverse_path.rb └── unit ├── matchers ├── have_keys_for_restrict_dependent_destroy_matcher.rb └── have_missing_particular_pluralization_keys_matcher.rb ├── ordinals_spec.rb ├── pluralization ├── east_slavic.rb ├── one_few_other.rb ├── one_other.rb ├── one_two_other.rb ├── one_upto_two_other.rb ├── one_with_zero_other.rb ├── ordinary.rb ├── other.rb ├── romanian.rb └── west_slavic.rb ├── pluralization_spec.rb ├── translation_spec.rb ├── transliteration ├── ordinary.rb └── ukrainian.rb └── transliteration_spec.rb /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | - push 5 | - pull_request 6 | 7 | jobs: 8 | test: 9 | runs-on: ubuntu-latest 10 | strategy: 11 | fail-fast: false 12 | matrix: 13 | ruby-version: 14 | - '3.2' 15 | - '3.3' 16 | rubyopt: [""] 17 | include: 18 | - ruby-version: '3.3' 19 | rubyopt: "--enable-frozen-string-literal --debug-frozen-string-literal" 20 | 21 | steps: 22 | - uses: actions/checkout@v4 23 | - uses: ruby/setup-ruby@v1 24 | with: 25 | ruby-version: "${{ matrix.ruby-version }}" 26 | bundler-cache: true 27 | - run: bundle exec rake RUBYOPT="${{ matrix.rubyopt }}" 28 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | Icon? 3 | ._* 4 | .project 5 | rails-i18n-*.gem 6 | *~ 7 | *.sw[pno] 8 | doc 9 | log 10 | .idea 11 | .bundle 12 | .ruby-gemset 13 | .ruby-version 14 | -------------------------------------------------------------------------------- /.rspec: -------------------------------------------------------------------------------- 1 | --colour -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | # Use the official Ruby runtime as the parent image 2 | FROM ruby:3.2.2 3 | 4 | WORKDIR /gem 5 | COPY . /gem 6 | RUN bundle install 7 | 8 | CMD bundle exec rake spec 9 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | gemspec -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- 1 | PATH 2 | remote: . 3 | specs: 4 | rails-i18n (8.0.1) 5 | i18n (>= 0.7, < 2) 6 | railties (>= 8.0.0, < 9) 7 | 8 | GEM 9 | remote: https://rubygems.org/ 10 | specs: 11 | actionpack (8.0.0) 12 | actionview (= 8.0.0) 13 | activesupport (= 8.0.0) 14 | nokogiri (>= 1.8.5) 15 | rack (>= 2.2.4) 16 | rack-session (>= 1.0.1) 17 | rack-test (>= 0.6.3) 18 | rails-dom-testing (~> 2.2) 19 | rails-html-sanitizer (~> 1.6) 20 | useragent (~> 0.16) 21 | actionview (8.0.0) 22 | activesupport (= 8.0.0) 23 | builder (~> 3.1) 24 | erubi (~> 1.11) 25 | rails-dom-testing (~> 2.2) 26 | rails-html-sanitizer (~> 1.6) 27 | activesupport (8.0.0) 28 | base64 29 | benchmark (>= 0.3) 30 | bigdecimal 31 | concurrent-ruby (~> 1.0, >= 1.3.1) 32 | connection_pool (>= 2.2.5) 33 | drb 34 | i18n (>= 1.6, < 2) 35 | logger (>= 1.4.2) 36 | minitest (>= 5.1) 37 | securerandom (>= 0.3) 38 | tzinfo (~> 2.0, >= 2.0.5) 39 | uri (>= 0.13.1) 40 | ast (2.4.2) 41 | base64 (0.2.0) 42 | benchmark (0.4.0) 43 | bigdecimal (3.1.8) 44 | builder (3.3.0) 45 | concurrent-ruby (1.3.4) 46 | connection_pool (2.4.1) 47 | crass (1.0.6) 48 | diff-lcs (1.5.1) 49 | drb (2.2.1) 50 | erubi (1.13.0) 51 | highline (3.1.1) 52 | reline 53 | i18n (1.14.6) 54 | concurrent-ruby (~> 1.0) 55 | i18n-spec (0.6.0) 56 | iso 57 | i18n-tasks (0.9.37) 58 | activesupport (>= 4.0.2) 59 | ast (>= 2.1.0) 60 | erubi 61 | highline (>= 2.0.0) 62 | i18n 63 | parser (>= 2.2.3.0) 64 | rails-i18n 65 | rainbow (>= 2.2.2, < 4.0) 66 | terminal-table (>= 1.5.1) 67 | io-console (0.7.2) 68 | irb (1.14.1) 69 | rdoc (>= 4.0.0) 70 | reline (>= 0.4.2) 71 | iso (0.4.0) 72 | i18n 73 | logger (1.6.1) 74 | loofah (2.23.1) 75 | crass (~> 1.0.2) 76 | nokogiri (>= 1.12.0) 77 | mini_portile2 (2.8.7) 78 | minitest (5.25.1) 79 | nokogiri (1.16.7) 80 | mini_portile2 (~> 2.8.2) 81 | racc (~> 1.4) 82 | parser (3.3.6.0) 83 | ast (~> 2.4.1) 84 | racc 85 | psych (5.2.0) 86 | stringio 87 | racc (1.8.1) 88 | rack (3.1.8) 89 | rack-session (2.0.0) 90 | rack (>= 3.0.0) 91 | rack-test (2.1.0) 92 | rack (>= 1.3) 93 | rackup (2.2.0) 94 | rack (>= 3) 95 | rails-dom-testing (2.2.0) 96 | activesupport (>= 5.0.0) 97 | minitest 98 | nokogiri (>= 1.6) 99 | rails-html-sanitizer (1.6.0) 100 | loofah (~> 2.21) 101 | nokogiri (~> 1.14) 102 | railties (8.0.0) 103 | actionpack (= 8.0.0) 104 | activesupport (= 8.0.0) 105 | irb (~> 1.13) 106 | rackup (>= 1.0.0) 107 | rake (>= 12.2) 108 | thor (~> 1.0, >= 1.2.2) 109 | zeitwerk (~> 2.6) 110 | rainbow (3.1.1) 111 | rake (13.2.1) 112 | rdoc (6.7.0) 113 | psych (>= 4.0.0) 114 | reline (0.5.11) 115 | io-console (~> 0.5) 116 | rspec-core (3.9.3) 117 | rspec-support (~> 3.9.3) 118 | rspec-expectations (3.9.4) 119 | diff-lcs (>= 1.2.0, < 2.0) 120 | rspec-support (~> 3.9.0) 121 | rspec-mocks (3.9.1) 122 | diff-lcs (>= 1.2.0, < 2.0) 123 | rspec-support (~> 3.9.0) 124 | rspec-rails (3.9.1) 125 | actionpack (>= 3.0) 126 | activesupport (>= 3.0) 127 | railties (>= 3.0) 128 | rspec-core (~> 3.9.0) 129 | rspec-expectations (~> 3.9.0) 130 | rspec-mocks (~> 3.9.0) 131 | rspec-support (~> 3.9.0) 132 | rspec-support (3.9.4) 133 | securerandom (0.3.1) 134 | stringio (3.1.2) 135 | terminal-table (3.0.2) 136 | unicode-display_width (>= 1.1.1, < 3) 137 | thor (1.3.2) 138 | tzinfo (2.0.6) 139 | concurrent-ruby (~> 1.0) 140 | unicode-display_width (2.6.0) 141 | uri (1.0.1) 142 | useragent (0.16.10) 143 | zeitwerk (2.7.1) 144 | 145 | PLATFORMS 146 | ruby 147 | 148 | DEPENDENCIES 149 | i18n-spec (~> 0.6.0) 150 | i18n-tasks (~> 0.9.37) 151 | rails-i18n! 152 | rspec-rails (~> 3.7) 153 | 154 | BUNDLED WITH 155 | 2.5.23 156 | -------------------------------------------------------------------------------- /MIT-LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2008-2012 Sven Fuchs and contributors (see https://github.com/svenfuchs/rails-i18n/contributors) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | 22 | -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- 1 | require 'rake' 2 | require 'rake/testtask' 3 | require 'rbconfig' 4 | require 'yaml' 5 | 6 | task :test => 'test:all' 7 | 8 | namespace :test do 9 | desc 'Check formality of all locale files.' 10 | task :all do 11 | ruby = File.join(*RbConfig::CONFIG.values_at('bindir', 'RUBY_INSTALL_NAME')) 12 | system(ruby, File.dirname(__FILE__) + '/rails/test/structure.rb') 13 | end 14 | end 15 | 16 | require 'rspec/core' 17 | require 'rspec/core/rake_task' 18 | RSpec::Core::RakeTask.new(:spec) do |spec| 19 | spec.pattern = FileList['spec/**/*_spec.rb'] 20 | end 21 | 22 | RSpec::Core::RakeTask.new("spec:unit") do |spec| 23 | spec.pattern = 'spec/unit/**/*_spec.rb' 24 | end 25 | 26 | RSpec::Core::RakeTask.new(:rcov) do |spec| 27 | spec.pattern = 'spec/**/*_spec.rb' 28 | spec.rcov = true 29 | end 30 | 31 | require 'i18n-spec/tasks' # needs to be loaded after rspec 32 | 33 | task :default => :spec 34 | -------------------------------------------------------------------------------- /bin/autospec: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # 3 | # This file was generated by Bundler. 4 | # 5 | # The application 'autospec' is installed as part of a gem, and 6 | # this file is here to facilitate running it. 7 | # 8 | 9 | require 'pathname' 10 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile", 11 | Pathname.new(__FILE__).realpath) 12 | 13 | require 'rubygems' 14 | require 'bundler/setup' 15 | 16 | load Gem.bin_path('rspec-core', 'autospec') 17 | -------------------------------------------------------------------------------- /bin/bundler: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # 3 | # This file was generated by Bundler. 4 | # 5 | # The application 'bundler' is installed as part of a gem, and 6 | # this file is here to facilitate running it. 7 | # 8 | 9 | require 'pathname' 10 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile", 11 | Pathname.new(__FILE__).realpath) 12 | 13 | require 'rubygems' 14 | require 'bundler/setup' 15 | 16 | load Gem.bin_path('bundler', 'bundler') 17 | -------------------------------------------------------------------------------- /bin/cdiff: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # 3 | # This file was generated by Bundler. 4 | # 5 | # The application 'cdiff' is installed as part of a gem, and 6 | # this file is here to facilitate running it. 7 | # 8 | 9 | require 'pathname' 10 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile", 11 | Pathname.new(__FILE__).realpath) 12 | 13 | require 'rubygems' 14 | require 'bundler/setup' 15 | 16 | load Gem.bin_path('term-ansicolor', 'cdiff') 17 | -------------------------------------------------------------------------------- /bin/colortab: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # 3 | # This file was generated by Bundler. 4 | # 5 | # The application 'colortab' is installed as part of a gem, and 6 | # this file is here to facilitate running it. 7 | # 8 | 9 | require 'pathname' 10 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile", 11 | Pathname.new(__FILE__).realpath) 12 | 13 | require 'rubygems' 14 | require 'bundler/setup' 15 | 16 | load Gem.bin_path('term-ansicolor', 'colortab') 17 | -------------------------------------------------------------------------------- /bin/decolor: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # 3 | # This file was generated by Bundler. 4 | # 5 | # The application 'decolor' is installed as part of a gem, and 6 | # this file is here to facilitate running it. 7 | # 8 | 9 | require 'pathname' 10 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile", 11 | Pathname.new(__FILE__).realpath) 12 | 13 | require 'rubygems' 14 | require 'bundler/setup' 15 | 16 | load Gem.bin_path('term-ansicolor', 'decolor') 17 | -------------------------------------------------------------------------------- /bin/erubis: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # 3 | # This file was generated by Bundler. 4 | # 5 | # The application 'erubis' is installed as part of a gem, and 6 | # this file is here to facilitate running it. 7 | # 8 | 9 | require 'pathname' 10 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile", 11 | Pathname.new(__FILE__).realpath) 12 | 13 | require 'rubygems' 14 | require 'bundler/setup' 15 | 16 | load Gem.bin_path('erubis', 'erubis') 17 | -------------------------------------------------------------------------------- /bin/htmldiff: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # 3 | # This file was generated by Bundler. 4 | # 5 | # The application 'htmldiff' is installed as part of a gem, and 6 | # this file is here to facilitate running it. 7 | # 8 | 9 | require 'pathname' 10 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile", 11 | Pathname.new(__FILE__).realpath) 12 | 13 | require 'rubygems' 14 | require 'bundler/setup' 15 | 16 | load Gem.bin_path('diff-lcs', 'htmldiff') 17 | -------------------------------------------------------------------------------- /bin/i18n-tasks: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # 3 | # This file was generated by Bundler. 4 | # 5 | # The application 'i18n-tasks' is installed as part of a gem, and 6 | # this file is here to facilitate running it. 7 | # 8 | 9 | require 'pathname' 10 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile", 11 | Pathname.new(__FILE__).realpath) 12 | 13 | require 'rubygems' 14 | require 'bundler/setup' 15 | 16 | load Gem.bin_path('i18n-tasks', 'i18n-tasks') 17 | -------------------------------------------------------------------------------- /bin/ldiff: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # 3 | # This file was generated by Bundler. 4 | # 5 | # The application 'ldiff' is installed as part of a gem, and 6 | # this file is here to facilitate running it. 7 | # 8 | 9 | require 'pathname' 10 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile", 11 | Pathname.new(__FILE__).realpath) 12 | 13 | require 'rubygems' 14 | require 'bundler/setup' 15 | 16 | load Gem.bin_path('diff-lcs', 'ldiff') 17 | -------------------------------------------------------------------------------- /bin/rackup: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # 3 | # This file was generated by Bundler. 4 | # 5 | # The application 'rackup' is installed as part of a gem, and 6 | # this file is here to facilitate running it. 7 | # 8 | 9 | require 'pathname' 10 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile", 11 | Pathname.new(__FILE__).realpath) 12 | 13 | require 'rubygems' 14 | require 'bundler/setup' 15 | 16 | load Gem.bin_path('rack', 'rackup') 17 | -------------------------------------------------------------------------------- /bin/rails: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # 3 | # This file was generated by Bundler. 4 | # 5 | # The application 'rails' is installed as part of a gem, and 6 | # this file is here to facilitate running it. 7 | # 8 | 9 | require 'pathname' 10 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile", 11 | Pathname.new(__FILE__).realpath) 12 | 13 | require 'rubygems' 14 | require 'bundler/setup' 15 | 16 | load Gem.bin_path('railties', 'rails') 17 | -------------------------------------------------------------------------------- /bin/rake: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # 3 | # This file was generated by Bundler. 4 | # 5 | # The application 'rake' is installed as part of a gem, and 6 | # this file is here to facilitate running it. 7 | # 8 | 9 | require 'pathname' 10 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile", 11 | Pathname.new(__FILE__).realpath) 12 | 13 | require 'rubygems' 14 | require 'bundler/setup' 15 | 16 | load Gem.bin_path('rake', 'rake') 17 | -------------------------------------------------------------------------------- /bin/rspec: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # 3 | # This file was generated by Bundler. 4 | # 5 | # The application 'rspec' is installed as part of a gem, and 6 | # this file is here to facilitate running it. 7 | # 8 | 9 | require 'pathname' 10 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile", 11 | Pathname.new(__FILE__).realpath) 12 | 13 | require 'rubygems' 14 | require 'bundler/setup' 15 | 16 | load Gem.bin_path('rspec-core', 'rspec') 17 | -------------------------------------------------------------------------------- /bin/spork: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # 3 | # This file was generated by Bundler. 4 | # 5 | # The application 'spork' is installed as part of a gem, and 6 | # this file is here to facilitate running it. 7 | # 8 | 9 | require 'pathname' 10 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile", 11 | Pathname.new(__FILE__).realpath) 12 | 13 | require 'rubygems' 14 | require 'bundler/setup' 15 | 16 | load Gem.bin_path('spork', 'spork') 17 | -------------------------------------------------------------------------------- /bin/sprockets: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # 3 | # This file was generated by Bundler. 4 | # 5 | # The application 'sprockets' is installed as part of a gem, and 6 | # this file is here to facilitate running it. 7 | # 8 | 9 | require 'pathname' 10 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile", 11 | Pathname.new(__FILE__).realpath) 12 | 13 | require 'rubygems' 14 | require 'bundler/setup' 15 | 16 | load Gem.bin_path('sprockets', 'sprockets') 17 | -------------------------------------------------------------------------------- /bin/term_display: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # 3 | # This file was generated by Bundler. 4 | # 5 | # The application 'term_display' is installed as part of a gem, and 6 | # this file is here to facilitate running it. 7 | # 8 | 9 | require 'pathname' 10 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile", 11 | Pathname.new(__FILE__).realpath) 12 | 13 | require 'rubygems' 14 | require 'bundler/setup' 15 | 16 | load Gem.bin_path('term-ansicolor', 'term_display') 17 | -------------------------------------------------------------------------------- /bin/term_mandel: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # 3 | # This file was generated by Bundler. 4 | # 5 | # The application 'term_mandel' is installed as part of a gem, and 6 | # this file is here to facilitate running it. 7 | # 8 | 9 | require 'pathname' 10 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile", 11 | Pathname.new(__FILE__).realpath) 12 | 13 | require 'rubygems' 14 | require 'bundler/setup' 15 | 16 | load Gem.bin_path('term-ansicolor', 'term_mandel') 17 | -------------------------------------------------------------------------------- /bin/thor: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # 3 | # This file was generated by Bundler. 4 | # 5 | # The application 'thor' is installed as part of a gem, and 6 | # this file is here to facilitate running it. 7 | # 8 | 9 | require 'pathname' 10 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile", 11 | Pathname.new(__FILE__).realpath) 12 | 13 | require 'rubygems' 14 | require 'bundler/setup' 15 | 16 | load Gem.bin_path('thor', 'thor') 17 | -------------------------------------------------------------------------------- /bin/tilt: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # 3 | # This file was generated by Bundler. 4 | # 5 | # The application 'tilt' is installed as part of a gem, and 6 | # this file is here to facilitate running it. 7 | # 8 | 9 | require 'pathname' 10 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile", 11 | Pathname.new(__FILE__).realpath) 12 | 13 | require 'rubygems' 14 | require 'bundler/setup' 15 | 16 | load Gem.bin_path('tilt', 'tilt') 17 | -------------------------------------------------------------------------------- /bin/tt: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # 3 | # This file was generated by Bundler. 4 | # 5 | # The application 'tt' is installed as part of a gem, and 6 | # this file is here to facilitate running it. 7 | # 8 | 9 | require 'pathname' 10 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile", 11 | Pathname.new(__FILE__).realpath) 12 | 13 | require 'rubygems' 14 | require 'bundler/setup' 15 | 16 | load Gem.bin_path('treetop', 'tt') 17 | -------------------------------------------------------------------------------- /config/i18n-tasks.yml: -------------------------------------------------------------------------------- 1 | base_locale: en 2 | 3 | data: 4 | adapter: file_system 5 | read: 6 | - "rails/locale/%{locale}.yml" 7 | write: 8 | - "rails/locale/%{locale}.yml" 9 | 10 | search: 11 | paths: ['lib/'] 12 | 13 | ignore_missing: 14 | - 'number.{precision, format, :.format}.{strip_insignificant_zeros, significant, format, delimiter, format.delimiter}' 15 | - 'number.human.decimal_units.units.unit' 16 | - 'time.{pm,am}' 17 | 18 | ignore_eq_base: 19 | all: 20 | - 'number.*' 21 | - 'time.{pm,am,formats.*}' 22 | - 'date.{order,formats.*}' 23 | - '{activerecord, activemodel}.errors.format' 24 | - errors.format 25 | - support.array.words_connector 26 | 27 | 'fr,fr-CA,fr-CH': 28 | - 'datetime.prompts.minute' 29 | - 'datetime.distance_in_words.x_minutes.{one,other}' 30 | 31 | 'en-AU,en-CA,en-GB,en-IE,en-IN,en-NZ,en-US,en-CY,en-TT': 32 | - '*' 33 | -------------------------------------------------------------------------------- /lib/rails-i18n.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n' 2 | -------------------------------------------------------------------------------- /lib/rails_i18n.rb: -------------------------------------------------------------------------------- 1 | module RailsI18n 2 | def self.enabled_modules 3 | @enabled_modules ||= Set.new 4 | end 5 | 6 | def self.enabled_modules=(other) 7 | @enabled_modules = Set.new(other) 8 | end 9 | end 10 | 11 | require 'rails_i18n/railtie' 12 | -------------------------------------------------------------------------------- /lib/rails_i18n/common_pluralizations/east_slavic.rb: -------------------------------------------------------------------------------- 1 | # Originally was implemented by Yaroslav Markin in "russian" gem 2 | # (http://github.com/yaroslav/russian) 3 | # 4 | # Used for Belarusian, Russian, Ukrainian. 5 | 6 | module RailsI18n 7 | module Pluralization 8 | module EastSlavic 9 | FROM_2_TO_4 = (2..4).to_a.freeze 10 | FROM_5_TO_9 = (5..9).to_a.freeze 11 | FROM_11_TO_14 = (11..14).to_a.freeze 12 | FROM_12_TO_14 = (12..14).to_a.freeze 13 | 14 | def self.rule 15 | lambda do |n| 16 | return :other unless n.is_a?(Numeric) 17 | 18 | mod10 = n % 10 19 | mod100 = n % 100 20 | 21 | if mod10 == 1 && mod100 != 11 22 | :one 23 | elsif FROM_2_TO_4.include?(mod10) && !FROM_12_TO_14.include?(mod100) 24 | :few 25 | elsif mod10 == 0 || FROM_5_TO_9.include?(mod10) || FROM_11_TO_14.include?(mod100) 26 | :many 27 | else 28 | :other 29 | end 30 | end 31 | end 32 | 33 | def self.with_locale(locale) 34 | { locale => { 35 | :i18n => { 36 | :plural => { 37 | :keys => [:one, :few, :many, :other], 38 | :rule => rule }}}} 39 | end 40 | end 41 | end 42 | end 43 | -------------------------------------------------------------------------------- /lib/rails_i18n/common_pluralizations/one_few_other.rb: -------------------------------------------------------------------------------- 1 | module RailsI18n 2 | module Pluralization 3 | module OneFewOther 4 | FROM_2_TO_4 = (2..4).to_a.freeze 5 | FROM_12_TO_14 = (12..14).to_a.freeze 6 | 7 | def self.rule 8 | lambda do |n| 9 | return :other unless n.is_a?(Numeric) 10 | 11 | frac = (n.to_d % 1) 12 | 13 | if frac.nonzero? 14 | n = frac.to_s.split('.').last.to_i 15 | end 16 | 17 | mod10 = n % 10 18 | mod100 = n % 100 19 | 20 | if mod10 == 1 && mod100 != 11 21 | :one 22 | elsif FROM_2_TO_4.include?(mod10) && !FROM_12_TO_14.include?(mod100) 23 | :few 24 | else 25 | :other 26 | end 27 | end 28 | end 29 | 30 | def self.with_locale(locale) 31 | { locale => { 32 | :i18n => { 33 | :plural => { 34 | :keys => [:one, :few, :other], 35 | :rule => rule }}}} 36 | end 37 | end 38 | end 39 | end 40 | -------------------------------------------------------------------------------- /lib/rails_i18n/common_pluralizations/one_other.rb: -------------------------------------------------------------------------------- 1 | # Used as "default" pluralization rule 2 | 3 | module RailsI18n 4 | module Pluralization 5 | module OneOther 6 | def self.rule 7 | lambda { |n| n == 1 ? :one : :other } 8 | end 9 | 10 | def self.with_locale(locale) 11 | { locale => { 12 | :'i18n' => { 13 | :plural => { 14 | :keys => [:one, :other], 15 | :rule => rule }}}} 16 | end 17 | end 18 | end 19 | end 20 | -------------------------------------------------------------------------------- /lib/rails_i18n/common_pluralizations/one_two_other.rb: -------------------------------------------------------------------------------- 1 | # Used for Cornish, Inari Sami, Inuktitut, Lule Sami, Nama, Northern Sami, 2 | # Sami Language, Skolt Sami, Southern Sami. 3 | 4 | module RailsI18n 5 | module Pluralization 6 | module OneTwoOther 7 | def self.rule 8 | lambda do |n| 9 | case n 10 | when 1 then :one 11 | when 2 then :two 12 | else :other 13 | end 14 | end 15 | end 16 | 17 | def self.with_locale(locale) 18 | { locale => { 19 | :'i18n' => { 20 | :plural => { 21 | :keys => [:one, :two, :other], 22 | :rule => rule }}}} 23 | end 24 | end 25 | end 26 | end 27 | -------------------------------------------------------------------------------- /lib/rails_i18n/common_pluralizations/one_upto_two_other.rb: -------------------------------------------------------------------------------- 1 | # Used for French, Fulah, Kabyle. 2 | 3 | module RailsI18n 4 | module Pluralization 5 | module OneUptoTwoOther 6 | def self.rule 7 | lambda do |n| 8 | n.is_a?(Numeric) && n >= 0 && n < 2 ? :one : :other 9 | end 10 | end 11 | 12 | def self.with_locale(locale) 13 | { locale => { 14 | :'i18n' => { 15 | :plural => { 16 | :keys => [:one, :other], 17 | :rule => rule }}}} 18 | end 19 | end 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /lib/rails_i18n/common_pluralizations/one_with_zero_other.rb: -------------------------------------------------------------------------------- 1 | # Used in Akan, Amharic, Bihari, Filipino, guw, Hindi, Lingala, Malagasy, 2 | # Northen Sotho, Tachelhit, Tagalog, Tigrinya, Walloon. 3 | 4 | module RailsI18n 5 | module Pluralization 6 | module OneWithZeroOther 7 | def self.rule 8 | lambda do |n| 9 | case n 10 | when 0, 1 then :one 11 | else :other 12 | end 13 | end 14 | end 15 | 16 | def self.with_locale(locale) 17 | { locale => { 18 | :'i18n' => { 19 | :plural => { 20 | :keys => [:one, :other], 21 | :rule => rule }}}} 22 | end 23 | end 24 | end 25 | end 26 | -------------------------------------------------------------------------------- /lib/rails_i18n/common_pluralizations/other.rb: -------------------------------------------------------------------------------- 1 | module RailsI18n 2 | module Pluralization 3 | module Other 4 | def self.rule 5 | Proc.new { :other } 6 | end 7 | 8 | def self.with_locale(locale) 9 | { locale => { 10 | :'i18n' => { 11 | :plural => { 12 | :keys => [:other], 13 | :rule => rule }}}} 14 | end 15 | end 16 | end 17 | end 18 | -------------------------------------------------------------------------------- /lib/rails_i18n/common_pluralizations/romanian.rb: -------------------------------------------------------------------------------- 1 | # Used for Moldavian, Romanian. 2 | 3 | module RailsI18n 4 | module Pluralization 5 | module Romanian 6 | FROM_1_TO_19 = (1..19).to_a.freeze 7 | 8 | def self.rule 9 | lambda do |n| 10 | return :other unless n.is_a?(Numeric) 11 | 12 | if n == 1 13 | :one 14 | elsif n == 0 || FROM_1_TO_19.include?(n % 100) 15 | :few 16 | else 17 | :other 18 | end 19 | end 20 | end 21 | 22 | def self.with_locale(locale) 23 | { locale => { 24 | :'i18n' => { 25 | :plural => { 26 | :keys => [:one, :few, :other], 27 | :rule => rule }}}} 28 | end 29 | end 30 | end 31 | end 32 | -------------------------------------------------------------------------------- /lib/rails_i18n/common_pluralizations/west_slavic.rb: -------------------------------------------------------------------------------- 1 | # Used for Czech, Slovak. 2 | 3 | module RailsI18n 4 | module Pluralization 5 | module WestSlavic 6 | def self.rule 7 | lambda do |n| 8 | case n 9 | when 1 then :one 10 | when 2, 3, 4 then :few 11 | else :other 12 | end 13 | end 14 | end 15 | 16 | def self.with_locale(locale) 17 | { locale => { 18 | :'i18n' => { 19 | :plural => { 20 | :keys => [:one, :few, :other], 21 | :rule => rule }}}} 22 | end 23 | end 24 | end 25 | end 26 | -------------------------------------------------------------------------------- /lib/rails_i18n/pluralization.rb: -------------------------------------------------------------------------------- 1 | module RailsI18n 2 | module Pluralization 3 | module Arabic 4 | def self.rule 5 | lambda do |n| 6 | return :other unless n.is_a?(Numeric) 7 | 8 | mod100 = n % 100 9 | 10 | if n == 0 11 | :zero 12 | elsif n == 1 13 | :one 14 | elsif n == 2 15 | :two 16 | elsif (3..10).to_a.include?(mod100) 17 | :few 18 | elsif (11..99).to_a.include?(mod100) 19 | :many 20 | else 21 | :other 22 | end 23 | end 24 | end 25 | end 26 | 27 | module ScottishGaelic 28 | def self.rule 29 | lambda do |n| 30 | return :other unless n.is_a?(Numeric) 31 | 32 | floorn = n.floor 33 | 34 | if floorn == 1 || floorn == 11 35 | :one 36 | elsif floorn == 2 || floorn == 12 37 | :two 38 | elsif (3..19).member?(floorn) 39 | :few 40 | else 41 | :other 42 | end 43 | end 44 | end 45 | end 46 | 47 | module UpperSorbian 48 | def self.rule 49 | lambda do |n| 50 | return :other unless n.is_a?(Numeric) 51 | 52 | mod100 = n % 100 53 | 54 | case mod100 55 | when 1 then :one 56 | when 2 then :two 57 | when 3, 4 then :few 58 | else :other 59 | end 60 | end 61 | end 62 | end 63 | 64 | module Lithuanian 65 | def self.rule 66 | lambda do |n| 67 | return :other unless n.is_a?(Numeric) 68 | 69 | mod10 = n % 10 70 | mod100 = n % 100 71 | 72 | if mod10 == 1 && !(11..19).to_a.include?(mod100) 73 | :one 74 | elsif (2..9).to_a.include?(mod10) && !(11..19).to_a.include?(mod100) 75 | :few 76 | else 77 | :other 78 | end 79 | end 80 | end 81 | end 82 | 83 | module Latvian 84 | def self.rule 85 | lambda do |n| 86 | if n.is_a?(Numeric) && n % 10 == 1 && n % 100 != 11 87 | :one 88 | else 89 | :other 90 | end 91 | end 92 | end 93 | end 94 | 95 | module Macedonian 96 | def self.rule 97 | lambda do |n| 98 | if n.is_a?(Numeric) && n % 10 == 1 && n != 11 99 | :one 100 | else 101 | :other 102 | end 103 | end 104 | end 105 | end 106 | 107 | module Polish 108 | def self.rule 109 | lambda do |n| 110 | return :other unless n.is_a?(Numeric) 111 | 112 | mod10 = n % 10 113 | mod100 = n % 100 114 | 115 | if n == 1 116 | :one 117 | elsif [2, 3, 4].include?(mod10) && ![12, 13, 14].include?(mod100) 118 | :few 119 | elsif [0, 1, 5, 6, 7, 8, 9].include?(mod10) || [12, 13, 14].include?(mod100) 120 | :many 121 | else 122 | :other 123 | end 124 | end 125 | end 126 | end 127 | 128 | module Slovenian 129 | def self.rule 130 | lambda do |n| 131 | return :other unless n.is_a?(Numeric) 132 | 133 | case n % 100 134 | when 1 then :one 135 | when 2 then :two 136 | when 3, 4 then :few 137 | else :other 138 | end 139 | end 140 | end 141 | end 142 | end 143 | end 144 | -------------------------------------------------------------------------------- /lib/rails_i18n/railtie.rb: -------------------------------------------------------------------------------- 1 | require 'rails' 2 | 3 | module RailsI18n 4 | class Railtie < ::Rails::Railtie #:nodoc: 5 | config.rails_i18n = RailsI18n 6 | 7 | initializer 'rails-i18n' do |app| 8 | RailsI18n::Railtie.instance_eval do 9 | pattern = pattern_from app.config.i18n.available_locales 10 | 11 | if app.config.rails_i18n.enabled_modules.empty? 12 | RailsI18n.enabled_modules = Set.new([:locale, :pluralization, :ordinals, :transliteration]) 13 | end 14 | 15 | RailsI18n.enabled_modules.each do |feature| 16 | add("rails/#{feature}/#{pattern}.{rb,yml}") 17 | end 18 | 19 | init_pluralization_module 20 | end 21 | end 22 | 23 | protected 24 | 25 | def self.add(pattern) 26 | files = Dir[File.join(File.dirname(__FILE__), '../..', pattern)] 27 | I18n.load_path.concat(files) 28 | end 29 | 30 | def self.pattern_from(args) 31 | array = Array(args || []) 32 | array.blank? ? '*' : "{#{array.join ','}}" 33 | end 34 | 35 | def self.init_pluralization_module 36 | I18n.backend.class.send(:include, I18n::Backend::Pluralization) 37 | end 38 | end 39 | end 40 | -------------------------------------------------------------------------------- /rails-i18n.gemspec: -------------------------------------------------------------------------------- 1 | Gem::Specification.new do |s| 2 | s.platform = Gem::Platform::RUBY 3 | s.name = "rails-i18n" 4 | s.version = "8.0.1" 5 | s.authors = ["Rails I18n Group"] 6 | s.email = "rails-i18n@googlegroups.com" 7 | s.homepage = "https://github.com/svenfuchs/rails-i18n" 8 | s.summary = "Common locale data and translations for Rails i18n." 9 | s.description = "A set of common locale data and translations to internationalize and/or localize your Rails applications." 10 | s.license = "MIT" 11 | 12 | s.files = Dir.glob("lib/**/*") + Dir.glob("rails/locale/*") + Dir.glob("rails/ordinals/*") + 13 | Dir.glob("rails/pluralization/*") + Dir.glob("rails/transliteration/*") + 14 | %w(README.md CHANGELOG.md MIT-LICENSE.txt) 15 | s.require_path = "lib" 16 | s.required_rubygems_version = ">= 1.8.11" 17 | s.required_ruby_version = ">= 3.2.0" 18 | 19 | s.add_dependency("i18n", ">= 0.7", "< 2") 20 | s.add_dependency("railties", ">= 8.0.0", "< 9") 21 | s.add_development_dependency "rspec-rails", "~> 3.7" 22 | s.add_development_dependency "i18n-spec", "~> 0.6.0" 23 | s.add_development_dependency "i18n-tasks", "~> 0.9.37" 24 | 25 | s.metadata["changelog_uri"] = "#{s.homepage}/blob/master/CHANGELOG.md" 26 | end 27 | -------------------------------------------------------------------------------- /rails/locale/bn.yml: -------------------------------------------------------------------------------- 1 | --- 2 | bn: 3 | date: 4 | abbr_day_names: 5 | - রবিবার 6 | - সোমবার 7 | - মঙ্গলবার 8 | - বুধবার 9 | - বৃহস্পতিবার 10 | - শুক্রবার 11 | - শনিবার 12 | abbr_month_names: 13 | - 14 | - জানুয়ারি 15 | - ফেব্রুয়ারি 16 | - মার্চ 17 | - এপ্রিল 18 | - মে 19 | - জুন 20 | - জুলাই 21 | - আগস্ট 22 | - সেপ্টেম্বর 23 | - অক্টোবর 24 | - নভেম্বর 25 | - ডিসেম্বর 26 | day_names: 27 | - রবিবার 28 | - সোমবার 29 | - মঙ্গলবার 30 | - বুধবার 31 | - বৃহস্পতিবার 32 | - শুক্রবার 33 | - শনিবার 34 | formats: 35 | default: "%e/%m/%Y" 36 | long: "%e %B %Y" 37 | short: "%e %b" 38 | month_names: 39 | - 40 | - জানুয়ারি 41 | - ফেব্রুয়ারি 42 | - মার্চ 43 | - এপ্রিল 44 | - মে 45 | - জুন 46 | - জুলাই 47 | - আগস্ট 48 | - সেপ্টেম্বর 49 | - অক্টোবর 50 | - নভেম্বর 51 | - ডিসেম্বর 52 | order: 53 | - :year 54 | - :month 55 | - :day 56 | datetime: 57 | distance_in_words: 58 | about_x_hours: 59 | one: প্রায় ১ ঘণ্টা 60 | other: প্রায় %{count} ঘণ্টা 61 | about_x_months: 62 | one: প্রায় ১ মাস 63 | other: প্রায় %{count} মাস 64 | about_x_years: 65 | one: প্রায় ১ বছর 66 | other: প্রায় %{count} বছর 67 | almost_x_years: 68 | one: প্রায় ১ বছর 69 | other: প্রায় %{count} বছর 70 | half_a_minute: অর্ধ মিনিট 71 | less_than_x_seconds: 72 | one: '১ সেকেন্ডর কম' 73 | other: "%{count} সেকেন্ডের কম" 74 | less_than_x_minutes: 75 | one: ১ মিনিটের কম 76 | other: "%{count} মিনিটের কম" 77 | over_x_years: 78 | one: ১ বছরের বেশি 79 | other: "%{count} বছরের বেশি" 80 | x_seconds: 81 | one: ১ সেকেন্ড 82 | other: "%{count} সেকেন্ড" 83 | x_minutes: 84 | one: ১ মিনিট 85 | other: "%{count} মিনিট" 86 | x_days: 87 | one: ১ দিন 88 | other: "%{count} দিন" 89 | x_months: 90 | one: ১ মাস 91 | other: "%{count} মাস" 92 | prompts: 93 | second: সেকেন্ড 94 | minute: মিনিট 95 | hour: ঘণ্টা 96 | day: দিন 97 | month: মাস 98 | year: বছর 99 | errors: 100 | format: "%{attribute} %{message}" 101 | messages: 102 | accepted: গ্রাহ্য করতে হবে 103 | blank: ফাঁকা রাখা যাবে না 104 | confirmation: অনুমোদনের সঙ্গে মিলছে না 105 | empty: খালি রাখা যাবে না 106 | equal_to: "%{count} এর সঙ্গে সমান হতে হবে" 107 | even: জোড় হতে হবে 108 | exclusion: রিসার্ভ করা আছে 109 | greater_than: "%{count} থেকে বড় হতে হবে" 110 | greater_than_or_equal_to: "%{count} থেকে বড় অথবা তার সমান হতে হবে" 111 | inclusion: তালিকায় অন্তর্ভুক্ত নয় 112 | invalid: সঠিক নয় 113 | less_than: "%{count} থেকে ছোটো হতে হবে" 114 | less_than_or_equal_to: "%{count} থেকে ছোটো অথবা তার সমান হতে হবে" 115 | not_a_number: নম্বর নয় 116 | odd: বেজোড় হতে হবে 117 | taken: আগেই নিয়ে নেওয়া হয়েছে 118 | too_long: খুব বড়ো (সর্বোচ্চ %{count} অক্ষর) 119 | too_short: খুব ছোটো (সর্বনিম্ন %{count} অক্ষর) 120 | wrong_length: দৈর্ঘ্যটি সঠিক নয় (%{count} অক্ষর হতে হবে) 121 | template: 122 | body: 'এই ফিল্ডগুলোতে কিছু সমস্যা দেখা দিয়েছে:' 123 | header: 124 | one: ১টি ত্রুটির কারণে %{model} সংরক্ষণ করা সম্ভব হয়নি 125 | other: "%{count}টি ত্রুটির কারণে %{model} সংরক্ষণ করা সম্ভব হয়নি" 126 | number: 127 | currency: 128 | format: 129 | delimiter: "," 130 | format: "%u %n" 131 | precision: 2 132 | separator: "." 133 | significant: false 134 | strip_insignificant_zeros: false 135 | unit: "৳" 136 | format: 137 | delimiter: "," 138 | precision: 2 139 | separator: "." 140 | significant: false 141 | strip_insignificant_zeros: false 142 | human: 143 | decimal_units: 144 | format: "%n %u" 145 | units: 146 | unit: '' 147 | format: 148 | delimiter: '' 149 | precision: 1 150 | significant: true 151 | strip_insignificant_zeros: true 152 | storage_units: 153 | format: "%n %u" 154 | units: 155 | byte: 156 | one: বাইট 157 | other: বাইট 158 | gb: GB 159 | kb: KB 160 | mb: MB 161 | tb: TB 162 | percentage: 163 | format: 164 | delimiter: '' 165 | precision: 166 | format: 167 | delimiter: '' 168 | support: 169 | array: 170 | last_word_connector: ", এবং " 171 | two_words_connector: " এবং " 172 | words_connector: ", " 173 | time: 174 | am: am 175 | formats: 176 | default: "%A, %e %B %Y %H:%M:%S %z" 177 | long: "%e %B %Y %H:%M" 178 | short: "%e %b %H:%M" 179 | pm: pm 180 | -------------------------------------------------------------------------------- /rails/locale/gl.yml: -------------------------------------------------------------------------------- 1 | --- 2 | gl: 3 | date: 4 | abbr_day_names: 5 | - Dom 6 | - Lun 7 | - Mar 8 | - Mer 9 | - Xov 10 | - Ven 11 | - Sab 12 | abbr_month_names: 13 | - 14 | - Xan 15 | - Feb 16 | - Mar 17 | - Abr 18 | - Mai 19 | - Xuñ 20 | - Xul 21 | - Ago 22 | - Set 23 | - Out 24 | - Nov 25 | - Dec 26 | day_names: 27 | - Domingo 28 | - Luns 29 | - Martes 30 | - Mércores 31 | - Xoves 32 | - Venres 33 | - Sábado 34 | formats: 35 | default: "%e/%m/%Y" 36 | long: "%A %e de %B de %Y" 37 | short: "%e %b" 38 | month_names: 39 | - 40 | - Xaneiro 41 | - Febreiro 42 | - Marzo 43 | - Abril 44 | - Maio 45 | - Xuño 46 | - Xullo 47 | - Agosto 48 | - Setembro 49 | - Outubro 50 | - Novembro 51 | - Decembro 52 | order: 53 | - :day 54 | - :month 55 | - :year 56 | datetime: 57 | distance_in_words: 58 | about_x_hours: 59 | one: aproximadamente unha hora 60 | other: "%{count} horas" 61 | about_x_months: 62 | one: aproximadamente %{count} mes 63 | other: "%{count} meses" 64 | about_x_years: 65 | one: aproximadamente %{count} ano 66 | other: "%{count} anos" 67 | half_a_minute: medio minuto 68 | less_than_x_seconds: 69 | zero: menos dun segundo 70 | one: "%{count} segundo" 71 | few: poucos segundos 72 | other: "%{count} segundos" 73 | less_than_x_minutes: 74 | zero: menos dun minuto 75 | one: "%{count} minuto" 76 | other: "%{count} minutos" 77 | over_x_years: 78 | one: máis dun ano 79 | other: "%{count} anos" 80 | x_seconds: 81 | one: "%{count} segundo" 82 | other: "%{count} segundos" 83 | x_minutes: 84 | one: "%{count} minuto" 85 | other: "%{count} minuto" 86 | x_days: 87 | one: "%{count} día" 88 | other: "%{count} días" 89 | x_months: 90 | one: "%{count} mes" 91 | other: "%{count} meses" 92 | errors: 93 | format: "%{attribute} %{message}" 94 | messages: 95 | accepted: debe ser aceptado 96 | blank: non pode estar en branco 97 | confirmation: non coincide coa confirmación 98 | empty: non pode estar baleiro 99 | equal_to: debe ser igual a %{count} 100 | even: debe ser impar 101 | exclusion: xa existe 102 | greater_than: debe ser maior que %{count} 103 | greater_than_or_equal_to: debe ser maior ou igual que %{count} 104 | inclusion: non está incluído na lista 105 | invalid: non é válido 106 | less_than: debe ser menor que %{count} 107 | less_than_or_equal_to: debe ser menor ou igual que %{count} 108 | not_a_number: non é un número 109 | odd: debe ser par 110 | taken: non está dispoñible 111 | too_long: é demasiado longo (non máis de %{count} carácteres) 112 | too_short: é demasiado curto (non menos de %{count} carácteres) 113 | wrong_length: non ten a lonxitude correcta (debe ser de %{count} carácteres) 114 | template: 115 | body: 'Atopáronse os seguintes problemas:' 116 | header: 117 | one: "%{count} erro evitou que se puidese gardar o %{model}" 118 | other: "%{count} erros evitaron que se puidese gardar o %{model}" 119 | number: 120 | currency: 121 | format: 122 | delimiter: "." 123 | format: "%n %u" 124 | precision: 2 125 | separator: "," 126 | significant: false 127 | strip_insignificant_zeros: false 128 | unit: "€" 129 | format: 130 | delimiter: "." 131 | precision: 2 132 | separator: "," 133 | significant: false 134 | strip_insignificant_zeros: false 135 | human: 136 | decimal_units: 137 | format: "%n %u" 138 | units: 139 | unit: '' 140 | format: 141 | delimiter: '' 142 | precision: 1 143 | significant: true 144 | strip_insignificant_zeros: true 145 | storage_units: 146 | format: "%n %u" 147 | units: 148 | byte: 149 | one: Byte 150 | other: Bytes 151 | gb: GB 152 | kb: KB 153 | mb: MB 154 | tb: TB 155 | percentage: 156 | format: 157 | delimiter: '' 158 | precision: 159 | format: 160 | delimiter: '' 161 | support: 162 | array: 163 | last_word_connector: " e " 164 | two_words_connector: " e " 165 | words_connector: ", " 166 | time: 167 | am: am 168 | formats: 169 | default: "%A, %e de %B de %Y ás %H:%M" 170 | long: "%A %e de %B de %Y ás %H:%M" 171 | short: "%e/%m, %H:%M" 172 | pm: pm 173 | -------------------------------------------------------------------------------- /rails/locale/he.yml: -------------------------------------------------------------------------------- 1 | --- 2 | he: 3 | activerecord: 4 | errors: 5 | messages: 6 | record_invalid: 'האימות נכשל: %{errors}' 7 | date: 8 | abbr_day_names: 9 | - א 10 | - ב 11 | - ג 12 | - ד 13 | - ה 14 | - ו 15 | - ש 16 | abbr_month_names: 17 | - 18 | - ינו 19 | - פבר 20 | - מרץ 21 | - אפר 22 | - מאי 23 | - יונ 24 | - יול 25 | - אוג 26 | - ספט 27 | - אוק 28 | - נוב 29 | - דצמ 30 | day_names: 31 | - ראשון 32 | - שני 33 | - שלישי 34 | - רביעי 35 | - חמישי 36 | - שישי 37 | - שבת 38 | formats: 39 | default: "%d-%m-%Y" 40 | long: "%e ב%B, %Y" 41 | short: "%e %b" 42 | month_names: 43 | - 44 | - ינואר 45 | - פברואר 46 | - מרץ 47 | - אפריל 48 | - מאי 49 | - יוני 50 | - יולי 51 | - אוגוסט 52 | - ספטמבר 53 | - אוקטובר 54 | - נובמבר 55 | - דצמבר 56 | order: 57 | - :day 58 | - :month 59 | - :year 60 | datetime: 61 | distance_in_words: 62 | about_x_hours: 63 | one: בערך שעה אחת 64 | other: בערך %{count} שעות 65 | about_x_months: 66 | one: בערך חודש אחד 67 | other: בערך %{count} חודשים 68 | about_x_years: 69 | one: בערך שנה אחת 70 | other: בערך %{count} שנים 71 | almost_x_years: 72 | one: כמעט שנה 73 | other: כמעט %{count} שנים 74 | half_a_minute: חצי דקה 75 | less_than_x_seconds: 76 | zero: פחות משניה אחת 77 | one: פחות משניה אחת 78 | other: פחות מ- %{count} שניות 79 | less_than_x_minutes: 80 | zero: פחות מדקה אחת 81 | one: פחות מדקה אחת 82 | other: פחות מ- %{count} דקות 83 | over_x_years: 84 | one: מעל שנה אחת 85 | other: מעל %{count} שנים 86 | x_seconds: 87 | one: שניה אחת 88 | other: "%{count} שניות" 89 | x_minutes: 90 | one: דקה אחת 91 | other: "%{count} דקות" 92 | x_days: 93 | one: יום אחד 94 | other: "%{count} ימים" 95 | x_months: 96 | one: חודש אחד 97 | other: "%{count} חודשים" 98 | prompts: 99 | second: שניות 100 | minute: דקה 101 | hour: שעה 102 | day: יום 103 | month: חודש 104 | year: שנה 105 | errors: 106 | format: "%{attribute} %{message}" 107 | messages: 108 | accepted: חייב באישור 109 | blank: לא יכול להיות ריק 110 | confirmation: לא תואם לאישורו 111 | empty: לא יכול להיות ריק 112 | equal_to: חייב להיות שווה ל- %{count} 113 | even: חייב להיות זוגי 114 | exclusion: לא זמין 115 | greater_than: חייב להיות גדול מ- %{count} 116 | greater_than_or_equal_to: חייב להיות גדול או שווה ל- %{count} 117 | inclusion: לא נכלל ברשימה 118 | invalid: לא תקין 119 | less_than: חייב להיות קטן מ- %{count} 120 | less_than_or_equal_to: חייב להיות קטן או שווה ל- %{count} 121 | not_a_number: חייב להיות מספר 122 | not_an_integer: חייב להיות מספר שלם 123 | odd: חייב להיות אי זוגי 124 | taken: כבר בשימוש 125 | too_long: ארוך מדי (יותר מ- %{count} תווים) 126 | too_short: קצר מדי (פחות מ- %{count} תווים) 127 | wrong_length: לא באורך הנכון (חייב להיות %{count} תווים) 128 | template: 129 | body: 'אנא בדוק את השדות הבאים:' 130 | header: 131 | one: 'לא ניתן לשמור את ה%{model}: שגיאה אחת' 132 | other: 'לא ניתן לשמור את ה%{model}: %{count} שגיאות.' 133 | helpers: 134 | select: 135 | prompt: נא לבחור 136 | submit: 137 | create: יצירת %{model} 138 | submit: שמור %{model} 139 | update: עדכון %{model} 140 | number: 141 | currency: 142 | format: 143 | delimiter: "," 144 | format: "%n %u" 145 | precision: 2 146 | separator: "." 147 | significant: false 148 | strip_insignificant_zeros: false 149 | unit: "₪" 150 | format: 151 | delimiter: "," 152 | precision: 3 153 | separator: "." 154 | significant: false 155 | strip_insignificant_zeros: false 156 | human: 157 | decimal_units: 158 | format: "%n %u" 159 | units: 160 | billion: מיליארד 161 | million: מיליון 162 | quadrillion: קודריליון 163 | thousand: אלף 164 | trillion: טריליון 165 | unit: '' 166 | format: 167 | delimiter: '' 168 | precision: 3 169 | significant: true 170 | strip_insignificant_zeros: true 171 | storage_units: 172 | format: "%n %u" 173 | units: 174 | byte: 175 | one: בייט 176 | other: בתים 177 | gb: ג'יגה-בייט 178 | kb: קילו-בייט 179 | mb: מגה-בייט 180 | tb: טרה-בייט 181 | percentage: 182 | format: 183 | delimiter: '' 184 | precision: 185 | format: 186 | delimiter: '' 187 | support: 188 | array: 189 | last_word_connector: " ו" 190 | two_words_connector: " ו" 191 | words_connector: ", " 192 | time: 193 | am: am 194 | formats: 195 | default: "%a %d %b %H:%M:%S %Z %Y" 196 | long: "%d ב%B, %Y %H:%M" 197 | short: "%d %b %H:%M" 198 | pm: pm 199 | -------------------------------------------------------------------------------- /rails/locale/hi-IN.yml: -------------------------------------------------------------------------------- 1 | --- 2 | hi-IN: 3 | activerecord: 4 | errors: 5 | messages: 6 | record_invalid: 'सत्यापन विफल: %{errors}' 7 | date: 8 | abbr_day_names: 9 | - रवि 10 | - सोम 11 | - मंगल 12 | - बुध 13 | - गुरु 14 | - शुक्र 15 | - शनि 16 | abbr_month_names: 17 | - 18 | - Jan 19 | - Feb 20 | - Mar 21 | - Apr 22 | - May 23 | - Jun 24 | - Jul 25 | - Aug 26 | - Sep 27 | - Oct 28 | - Nov 29 | - Dec 30 | day_names: 31 | - रविवार 32 | - सोमवार 33 | - मंगलवार 34 | - बुधवार 35 | - गुरुवार 36 | - शुक्रवार 37 | - शनिवार 38 | formats: 39 | default: "%d-%m-%Y" 40 | long: "%d %B %Y" 41 | short: "%d %b" 42 | month_names: 43 | - 44 | - जनवरी 45 | - फरवरी 46 | - मार्च 47 | - अप्रैल 48 | - मई 49 | - जून 50 | - जुलाई 51 | - अगस्त 52 | - सितंबर 53 | - अक्टूबर 54 | - नवंबर 55 | - दिसंबर 56 | order: 57 | - :day 58 | - :month 59 | - :year 60 | datetime: 61 | distance_in_words: 62 | about_x_hours: 63 | one: लग - भग एक घंटा 64 | other: लग - भग %{count} घंटा 65 | about_x_months: 66 | one: लग - भग %{count} महीना 67 | other: लग - भग %{count} महीना 68 | about_x_years: 69 | one: लग - भग %{count} साल 70 | other: लग - भग %{count} साल 71 | almost_x_years: 72 | one: लग - भग एक साल 73 | other: लग - भग %{count} साल 74 | half_a_minute: एक आधा मिनट 75 | less_than_x_seconds: 76 | one: एक सेकंड से कम 77 | other: "%{count} सेकंड से कम" 78 | less_than_x_minutes: 79 | one: एक मिनट से कम 80 | other: "%{count} मिनट से कम" 81 | over_x_years: 82 | one: एक साल के ऊपर 83 | other: "%{count} साल के ऊपर" 84 | x_seconds: 85 | one: एक सेकंड 86 | other: "%{count} सेकंड" 87 | x_minutes: 88 | one: एक मिनट 89 | other: "%{count} मिनट" 90 | x_days: 91 | one: एक दिन 92 | other: "%{count} दिन" 93 | x_months: 94 | one: एक महीना 95 | other: "%{count} महीना" 96 | prompts: 97 | second: सेकंड 98 | minute: क्षण 99 | hour: घंटा 100 | day: दिन 101 | month: माह 102 | year: वर्ष 103 | errors: 104 | format: "%{attribute} %{message}" 105 | messages: 106 | accepted: होना स्वीकार किया जाना आवश्यक 107 | blank: खाली नहीं किया जा सकता 108 | confirmation: पुष्टिकरण मेल नहीं खाता 109 | empty: खाली नहीं किया जा सकता 110 | equal_to: "%{count} के लिए बराबर होना चाहिए" 111 | even: सम होना चाहिए 112 | exclusion: आरक्षित है 113 | greater_than: "%{count} से अधिक होना चाहिए" 114 | greater_than_or_equal_to: "%{count} से बड़ा या बराबर होना आवश्यक है" 115 | inclusion: सूची में शामिल नहीं है 116 | invalid: अवैध है 117 | less_than: "%{count} से कम होना चाहिए" 118 | less_than_or_equal_to: "%{count} से कम या बराबर होना आवश्यक है" 119 | not_a_number: कोई संख्या नहीं है 120 | not_an_integer: एक पूर्णांक होना चाहिए 121 | odd: विषम होना चाहिए 122 | taken: पहले ही ले लिया गया है 123 | too_long: बहुत लंबा है (अधिकतम %{count} अक्षरों है) 124 | too_short: बहुत छोटा है (न्यूनतम %{count} अक्षरों है) 125 | wrong_length: गलत लंबाई है (%{count} वर्ण वाले होने चाहिए) 126 | template: 127 | body: 'वहाँ निम्नलिखित क्षेत्रों के साथ समस्याओं रहे थे:' 128 | header: 129 | one: एक त्रुटि सहेजे जाने से इस %{model} को निषिद्ध 130 | other: "%{count} त्रुटियों को सहेजे जाने से इस %{model} निषिद्ध" 131 | helpers: 132 | select: 133 | prompt: कृपया चुनें 134 | submit: 135 | create: बनाएँ %{model} 136 | submit: सहेजें %{model} 137 | update: अद्यतन %{model} 138 | number: 139 | currency: 140 | format: 141 | delimiter: "," 142 | format: "%u%n" 143 | precision: 2 144 | separator: "." 145 | significant: false 146 | strip_insignificant_zeros: false 147 | unit: "₹" 148 | format: 149 | delimiter: "," 150 | precision: 3 151 | separator: "." 152 | significant: false 153 | strip_insignificant_zeros: false 154 | human: 155 | decimal_units: 156 | format: "%n %u" 157 | units: 158 | billion: अरब 159 | million: मिल्लिओंन 160 | quadrillion: करोड़ शंख 161 | thousand: हज़ार 162 | trillion: खरब 163 | unit: '' 164 | format: 165 | delimiter: '' 166 | precision: 3 167 | significant: true 168 | strip_insignificant_zeros: true 169 | storage_units: 170 | format: "%n %u" 171 | units: 172 | byte: 173 | one: Byte 174 | other: Bytes 175 | gb: GB 176 | kb: KB 177 | mb: MB 178 | tb: TB 179 | percentage: 180 | format: 181 | delimiter: '' 182 | precision: 183 | format: 184 | delimiter: '' 185 | support: 186 | array: 187 | last_word_connector: ", और " 188 | two_words_connector: " और " 189 | words_connector: ", " 190 | time: 191 | am: am 192 | formats: 193 | default: "%a, %d %b %Y %H:%M:%S %z" 194 | long: "%d %B %Y %H:%M" 195 | short: "%d %b %H:%M" 196 | pm: pm 197 | -------------------------------------------------------------------------------- /rails/locale/hi.yml: -------------------------------------------------------------------------------- 1 | --- 2 | hi: 3 | activerecord: 4 | errors: 5 | messages: 6 | record_invalid: 'सत्यापन विफल: %{errors}' 7 | date: 8 | abbr_day_names: 9 | - रवि 10 | - सोम 11 | - मंगल 12 | - बुध 13 | - गुरु 14 | - शुक्र 15 | - शनि 16 | abbr_month_names: 17 | - 18 | - जन 19 | - फर 20 | - मार्च 21 | - अप्रै 22 | - मई 23 | - जून 24 | - जुला 25 | - अग 26 | - सितं 27 | - अक्टू 28 | - नवं 29 | - दिस 30 | day_names: 31 | - रविवार 32 | - सोमवार 33 | - मंगलवार 34 | - बुधवार 35 | - गुरुवार 36 | - शुक्रवार 37 | - शनिवार 38 | formats: 39 | default: "%d-%m-%Y" 40 | long: "%d %B %Y" 41 | short: "%d %b" 42 | month_names: 43 | - 44 | - जनवरी 45 | - फरवरी 46 | - मार्च 47 | - अप्रैल 48 | - मई 49 | - जून 50 | - जुलाई 51 | - अगस्त 52 | - सितंबर 53 | - अक्टूबर 54 | - नवंबर 55 | - दिसंबर 56 | order: 57 | - :day 58 | - :month 59 | - :year 60 | datetime: 61 | distance_in_words: 62 | about_x_hours: 63 | one: लगभग एक घंटा 64 | other: लगभग %{count} घंटा 65 | about_x_months: 66 | one: लगभग %{count} महीना 67 | other: लगभग %{count} महीना 68 | about_x_years: 69 | one: लगभग %{count} साल 70 | other: लगभग %{count} साल 71 | almost_x_years: 72 | one: लगभग एक साल 73 | other: लगभग %{count} साल 74 | half_a_minute: एक आधा मिनट 75 | less_than_x_seconds: 76 | one: एक सेकेंड से कम 77 | other: "%{count} सेकेंड से कम" 78 | less_than_x_minutes: 79 | one: एक मिनट से कम 80 | other: "%{count} मिनट से कम" 81 | over_x_years: 82 | one: एक साल के ऊपर 83 | other: "%{count} साल से अधिक" 84 | x_seconds: 85 | one: एक सेकेंड 86 | other: "%{count} सेकेंड" 87 | x_minutes: 88 | one: एक मिनट 89 | other: "%{count} मिनट" 90 | x_days: 91 | one: एक दिन 92 | other: "%{count} दिन" 93 | x_months: 94 | one: एक महीना 95 | other: "%{count} महीना" 96 | prompts: 97 | second: सेकेंड 98 | minute: मिनट 99 | hour: घंटा 100 | day: दिन 101 | month: माह 102 | year: वर्ष 103 | errors: 104 | format: "%{attribute} %{message}" 105 | messages: 106 | accepted: स्वीकार किया जाना जरूरी 107 | blank: खाली नहीं रह सकता है 108 | confirmation: पुष्टिकरण मेल नहीं खाता 109 | empty: रिक्त नहीं रह सकता है 110 | equal_to: "%{count} के लिए बराबर होना चाहिए" 111 | even: सम होना चाहिए 112 | exclusion: आरक्षित है 113 | greater_than: "%{count} से अधिक होना चाहिए" 114 | greater_than_or_equal_to: "%{count} से बड़ा या बराबर होना आवश्यक है" 115 | inclusion: सूची में शामिल नहीं है 116 | invalid: अवैध है 117 | less_than: "%{count} से कम होना चाहिए" 118 | less_than_or_equal_to: "%{count} से कम या बराबर होना आवश्यक है" 119 | not_a_number: कोई संख्या नहीं है 120 | not_an_integer: एक पूर्णांक होना चाहिए 121 | odd: विसम होना चाहिए 122 | taken: पहले ही ले लिया गया है 123 | too_long: अत्यधिक लंबा है (अधिकतम %{count} वर्ण हैं) 124 | too_short: अत्यधिक छोटा है (न्यूनतम %{count} वर्ण हैं) 125 | wrong_length: गलत लंबाई है (%{count} वर्ण युक्त होना चाहिए) 126 | template: 127 | body: 'निम्नलिखित क्षेत्रों के साथ समस्या थी:' 128 | header: 129 | one: इस %{model} को सहेजे जाना एक त्रुटि के कारण नहीं हुआ 130 | other: इस %{model} को सहेजे जाना %{count} त्रुटि के कारण नहीं हुआ 131 | helpers: 132 | select: 133 | prompt: कृपया चुनें 134 | submit: 135 | create: "%{model} बनाएँ" 136 | submit: "%{model} सौंपें" 137 | update: "%{model} अद्यतन" 138 | number: 139 | currency: 140 | format: 141 | delimiter: "," 142 | format: "%u%n" 143 | precision: 2 144 | separator: "." 145 | significant: false 146 | strip_insignificant_zeros: false 147 | unit: "₹" 148 | format: 149 | delimiter: "," 150 | precision: 3 151 | separator: "." 152 | significant: false 153 | strip_insignificant_zeros: false 154 | human: 155 | decimal_units: 156 | format: "%n %u" 157 | units: 158 | billion: अरब 159 | million: दस करोड़ 160 | quadrillion: करोड़ शंख 161 | thousand: हज़ार 162 | trillion: खरब 163 | unit: '' 164 | format: 165 | delimiter: '' 166 | precision: 3 167 | significant: true 168 | strip_insignificant_zeros: true 169 | storage_units: 170 | format: "%n %u" 171 | units: 172 | byte: 173 | one: Byte 174 | other: Bytes 175 | gb: GB 176 | kb: KB 177 | mb: MB 178 | tb: TB 179 | percentage: 180 | format: 181 | delimiter: '' 182 | precision: 183 | format: 184 | delimiter: '' 185 | support: 186 | array: 187 | last_word_connector: ", और " 188 | two_words_connector: " और " 189 | words_connector: ", " 190 | time: 191 | am: पूर्वाह्न 192 | formats: 193 | default: "%a, %d %b %Y %H:%M:%S %z" 194 | long: "%d %B %Y %H:%M" 195 | short: "%d %b %H:%M" 196 | pm: अपराह्न 197 | -------------------------------------------------------------------------------- /rails/locale/ja.yml: -------------------------------------------------------------------------------- 1 | --- 2 | ja: 3 | activerecord: 4 | errors: 5 | messages: 6 | record_invalid: 'バリデーションに失敗しました: %{errors}' 7 | restrict_dependent_destroy: 8 | has_one: "%{record}が存在しているので削除できません" 9 | has_many: "%{record}が存在しているので削除できません" 10 | date: 11 | abbr_day_names: 12 | - 日 13 | - 月 14 | - 火 15 | - 水 16 | - 木 17 | - 金 18 | - 土 19 | abbr_month_names: 20 | - 21 | - 1月 22 | - 2月 23 | - 3月 24 | - 4月 25 | - 5月 26 | - 6月 27 | - 7月 28 | - 8月 29 | - 9月 30 | - 10月 31 | - 11月 32 | - 12月 33 | day_names: 34 | - 日曜日 35 | - 月曜日 36 | - 火曜日 37 | - 水曜日 38 | - 木曜日 39 | - 金曜日 40 | - 土曜日 41 | formats: 42 | default: "%Y/%m/%d" 43 | long: "%Y年%m月%d日(%a)" 44 | short: "%m/%d" 45 | month_names: 46 | - 47 | - 1月 48 | - 2月 49 | - 3月 50 | - 4月 51 | - 5月 52 | - 6月 53 | - 7月 54 | - 8月 55 | - 9月 56 | - 10月 57 | - 11月 58 | - 12月 59 | order: 60 | - :year 61 | - :month 62 | - :day 63 | datetime: 64 | distance_in_words: 65 | about_x_hours: 約%{count}時間 66 | about_x_months: 約%{count}ヶ月 67 | about_x_years: 約%{count}年 68 | almost_x_years: "%{count}年弱" 69 | half_a_minute: 30秒前後 70 | less_than_x_seconds: "%{count}秒未満" 71 | less_than_x_minutes: "%{count}分未満" 72 | over_x_years: "%{count}年以上" 73 | x_seconds: "%{count}秒" 74 | x_minutes: "%{count}分" 75 | x_days: "%{count}日" 76 | x_months: "%{count}ヶ月" 77 | x_years: "%{count}年" 78 | prompts: 79 | second: 秒 80 | minute: 分 81 | hour: 時 82 | day: 日 83 | month: 月 84 | year: 年 85 | errors: 86 | format: "%{attribute}%{message}" 87 | messages: 88 | accepted: を受諾してください 89 | blank: を入力してください 90 | confirmation: と%{attribute}の入力が一致しません 91 | empty: を入力してください 92 | equal_to: は%{count}にしてください 93 | even: は偶数にしてください 94 | exclusion: は予約されています 95 | greater_than: は%{count}より大きい値にしてください 96 | greater_than_or_equal_to: は%{count}以上の値にしてください 97 | in: は%{count}の範囲に含めてください 98 | inclusion: は一覧にありません 99 | invalid: は不正な値です 100 | less_than: は%{count}より小さい値にしてください 101 | less_than_or_equal_to: は%{count}以下の値にしてください 102 | model_invalid: 'バリデーションに失敗しました: %{errors}' 103 | not_a_number: は数値で入力してください 104 | not_an_integer: は整数で入力してください 105 | odd: は奇数にしてください 106 | other_than: は%{count}以外の値にしてください 107 | password_too_long: が長すぎます 108 | present: は入力しないでください 109 | required: を入力してください 110 | taken: はすでに存在します 111 | too_long: は%{count}文字以内で入力してください 112 | too_short: は%{count}文字以上で入力してください 113 | wrong_length: は%{count}文字で入力してください 114 | template: 115 | body: 次の項目を確認してください 116 | header: "%{model}に%{count}個のエラーが発生しました" 117 | helpers: 118 | select: 119 | prompt: 選択してください 120 | submit: 121 | create: 登録する 122 | submit: 保存する 123 | update: 更新する 124 | number: 125 | currency: 126 | format: 127 | delimiter: "," 128 | format: "%n%u" 129 | precision: 0 130 | separator: "." 131 | significant: false 132 | strip_insignificant_zeros: false 133 | unit: 円 134 | format: 135 | delimiter: "," 136 | precision: 3 137 | round_mode: default 138 | separator: "." 139 | significant: false 140 | strip_insignificant_zeros: false 141 | human: 142 | decimal_units: 143 | format: "%n %u" 144 | units: 145 | billion: 十億 146 | million: 百万 147 | quadrillion: 千兆 148 | thousand: 千 149 | trillion: 兆 150 | unit: '' 151 | format: 152 | delimiter: '' 153 | precision: 3 154 | significant: true 155 | strip_insignificant_zeros: true 156 | storage_units: 157 | format: "%n%u" 158 | units: 159 | byte: バイト 160 | eb: EB 161 | gb: GB 162 | kb: KB 163 | mb: MB 164 | pb: PB 165 | tb: TB 166 | percentage: 167 | format: 168 | delimiter: '' 169 | format: "%n%" 170 | precision: 171 | format: 172 | delimiter: '' 173 | support: 174 | array: 175 | last_word_connector: "、" 176 | two_words_connector: "、" 177 | words_connector: "、" 178 | time: 179 | am: 午前 180 | formats: 181 | default: "%Y年%m月%d日(%a) %H時%M分%S秒 %z" 182 | long: "%Y/%m/%d %H:%M" 183 | short: "%m/%d %H:%M" 184 | pm: 午後 185 | -------------------------------------------------------------------------------- /rails/locale/km.yml: -------------------------------------------------------------------------------- 1 | --- 2 | km: 3 | activerecord: 4 | errors: 5 | messages: 6 | record_invalid: មិនមានសុពលភាព៖ %{errors} 7 | restrict_dependent_destroy: 8 | has_one: មិនអាចលុបបានទេពីព្រោះមាន %{record} នៅឡើយ 9 | has_many: មិនអាចលុបបានទេពីព្រោះមាន %{record} នៅឡើយ 10 | date: 11 | abbr_day_names: 12 | - អា 13 | - ច 14 | - អ 15 | - ពុ 16 | - ព្រហ 17 | - សុ 18 | - ស 19 | abbr_month_names: 20 | - 21 | - មករា 22 | - កុម្ភៈ 23 | - មិនា 24 | - មេសា 25 | - ឧសភា 26 | - មិថុនា 27 | - កក្កដា 28 | - សីហា 29 | - កញ្ញា 30 | - តុលា 31 | - វិច្ឆិកា 32 | - ធ្នូ 33 | day_names: 34 | - អាទិត្យ 35 | - ចន្ទ 36 | - អង្គារ 37 | - ពុធ 38 | - ព្រហស្បតិ៍ 39 | - សុក្រ 40 | - សៅរ៍ 41 | formats: 42 | default: "%d %B %Y" 43 | long: ថ្ងៃ%A ទី%e ខែ%B ឆ្នាំ%Y 44 | short: "%d %b" 45 | month_names: 46 | - 47 | - មករា 48 | - កុម្ភៈ 49 | - មិនា 50 | - មេសា 51 | - ឧសភា 52 | - មិថុនា 53 | - កក្កដា 54 | - សីហា 55 | - កញ្ញា 56 | - តុលា 57 | - វិច្ឆិកា 58 | - ធ្នូ 59 | order: 60 | - :day 61 | - :month 62 | - :year 63 | datetime: 64 | distance_in_words: 65 | about_x_hours: ប្រមាណ %{count} ម៉ោង 66 | about_x_months: ប្រមាណ %{count} ខែ 67 | about_x_years: ប្រមាណ %{count} ឆ្នាំ 68 | almost_x_years: ជិត %{count} ឆ្នាំ 69 | half_a_minute: កន្លះនាទី 70 | less_than_x_seconds: តិចជាង %{count} វិនាទី 71 | less_than_x_minutes: តិចជាង %{count} នាទី 72 | over_x_years: លើសពី %{count} ឆ្នាំ 73 | x_seconds: "%{count} វិនាទី" 74 | x_minutes: "%{count} នាទី" 75 | x_days: "%{count} ថ្ងៃ" 76 | x_months: "%{count} ខែ" 77 | prompts: 78 | second: វិនាទី 79 | minute: នាទី 80 | hour: ម៉ោង 81 | day: ថ្ងៃ 82 | month: ខែ 83 | year: ឆ្នាំ 84 | errors: 85 | format: "%{attribute} %{message}" 86 | messages: 87 | accepted: ត្រូវតែយល់ព្រម 88 | blank: មិនអាចរំលង 89 | confirmation: ផ្ទៀងផ្ទាត់មិនត្រូវនឹង %{attribute} 90 | empty: មិនអាចរំលង 91 | equal_to: ត្រូវតែស្មើ %{count} 92 | even: ត្រូវតែជាចំនួនគត់ 93 | exclusion: មិនអនុញ្ញាតឱ្យប្រើ 94 | greater_than: ត្រូវតែច្រើនជាង %{count} 95 | greater_than_or_equal_to: ត្រូវតែច្រើនជាងឬស្មើ %{count} 96 | inclusion: មិនមាននៅក្នុងបញ្ជី 97 | invalid: មិនត្រឹមត្រូវ 98 | less_than: ត្រូវតែតិចជាង %{count} 99 | less_than_or_equal_to: ត្រូវតែតិចជាងឬស្មើ %{count} 100 | not_a_number: មិនមែនជាលេខទេ 101 | not_an_integer: ត្រូវតែជាចំនួនគត់ 102 | odd: ត្រូវតែជាចំនួនសេស 103 | other_than: ត្រូវតែខុសពី %{count} 104 | present: ត្រូវតែរំលង 105 | taken: មានរួចហើយ 106 | too_long: វែងពេក (យ៉ាងច្រើន %{count} តួ) 107 | too_short: ខ្លីពេក (យ៉ាងតិច %{count} តួ) 108 | wrong_length: ប្រវែងមិនត្រូវ (គួរតែមាន %{count} តួ) 109 | template: 110 | body: 'សូមពិនិត្យមើលកំហុសនៅខាងក្រោម:' 111 | header: មានកំហុស %{count} ដែលបានបញ្ឈប់ការរក្សាទុក %{model}នេះ 112 | helpers: 113 | select: 114 | prompt: សូមជ្រើសរើស 115 | submit: 116 | create: បង្កើត%{model} 117 | submit: រក្សាទុក%{model} 118 | update: ប្តូរ%{model} 119 | number: 120 | currency: 121 | format: 122 | delimiter: "," 123 | format: "%n %u" 124 | precision: 2 125 | separator: "." 126 | significant: false 127 | strip_insignificant_zeros: false 128 | unit: "៛" 129 | format: 130 | delimiter: "," 131 | precision: 3 132 | separator: "." 133 | significant: false 134 | strip_insignificant_zeros: false 135 | human: 136 | decimal_units: 137 | format: "%n %u" 138 | units: 139 | billion: ប៊ីលាន 140 | million: លាន 141 | quadrillion: ក្វាទ្រីលាន 142 | thousand: ពាន់ 143 | trillion: ទ្រីលាន 144 | unit: '' 145 | format: 146 | delimiter: '' 147 | precision: 3 148 | significant: true 149 | strip_insignificant_zeros: true 150 | percentage: 151 | format: 152 | delimiter: '' 153 | precision: 154 | format: 155 | delimiter: '' 156 | support: 157 | array: 158 | last_word_connector: ", និង " 159 | two_words_connector: " និង " 160 | words_connector: ", " 161 | time: 162 | am: ព្រឹក 163 | formats: 164 | default: "%a %d %b %Y %H:%M:%S %z" 165 | long: "%d %B %Y %H:%M" 166 | short: "%d %b %H:%M" 167 | pm: "​ល្ងាច" 168 | -------------------------------------------------------------------------------- /rails/locale/ko.yml: -------------------------------------------------------------------------------- 1 | --- 2 | ko: 3 | activerecord: 4 | errors: 5 | messages: 6 | record_invalid: 데이터 검증에 실패하였습니다. %{errors} 7 | restrict_dependent_destroy: 8 | has_one: "%{record}(이)가 존재하기 때문에 삭제할 수 없습니다" 9 | has_many: "%{record}(이)가 존재하기 때문에 삭제할 수 없습니다" 10 | date: 11 | abbr_day_names: 12 | - 일 13 | - 월 14 | - 화 15 | - 수 16 | - 목 17 | - 금 18 | - 토 19 | abbr_month_names: 20 | - 21 | - 1월 22 | - 2월 23 | - 3월 24 | - 4월 25 | - 5월 26 | - 6월 27 | - 7월 28 | - 8월 29 | - 9월 30 | - 10월 31 | - 11월 32 | - 12월 33 | day_names: 34 | - 일요일 35 | - 월요일 36 | - 화요일 37 | - 수요일 38 | - 목요일 39 | - 금요일 40 | - 토요일 41 | formats: 42 | default: "%Y-%m-%d" 43 | long: "%Y년 %m월 %d일" 44 | short: "%m월 %d일" 45 | month_names: 46 | - 47 | - 1월 48 | - 2월 49 | - 3월 50 | - 4월 51 | - 5월 52 | - 6월 53 | - 7월 54 | - 8월 55 | - 9월 56 | - 10월 57 | - 11월 58 | - 12월 59 | order: 60 | - :year 61 | - :month 62 | - :day 63 | datetime: 64 | distance_in_words: 65 | about_x_hours: 대략 %{count}시간 66 | about_x_months: 대략 %{count}개월 67 | about_x_years: 대략 %{count}년 68 | almost_x_years: 거의 %{count}년 69 | half_a_minute: 30초 70 | less_than_x_seconds: "%{count}초 미만" 71 | less_than_x_minutes: "%{count}분 미만" 72 | over_x_years: "%{count}년 초과" 73 | x_seconds: "%{count}초" 74 | x_minutes: "%{count}분" 75 | x_days: "%{count}일" 76 | x_months: "%{count}개월" 77 | x_years: "%{count}년" 78 | prompts: 79 | second: 초 80 | minute: 분 81 | hour: 시 82 | day: 일 83 | month: 월 84 | year: 년 85 | errors: 86 | format: "%{message}" 87 | messages: 88 | accepted: "%{attribute}을(를) 반드시 확인해야 합니다" 89 | blank: "%{attribute}에 내용을 입력해 주세요" 90 | confirmation: "%{attribute}은(는) 서로 일치해야 합니다" 91 | empty: "%{attribute}에 내용을 입력해 주세요" 92 | equal_to: "%{attribute}은(는) %{count}와(과) 같아야 합니다" 93 | even: "%{attribute}에 짝수를 입력해 주세요" 94 | exclusion: "%{attribute}은(는) 이미 예약되어 있는 값입니다" 95 | greater_than: "%{attribute}은(는) %{count}보다 커야 합니다" 96 | greater_than_or_equal_to: "%{attribute}은(는) %{count}보다 크거나 같아야 합니다" 97 | in: "%{attribute}은(는) %{count}범위 안에 있어야 합니다" 98 | inclusion: "%{attribute}은(는) 목록에 포함되어 있는 값이 아닙니다" 99 | invalid: "%{attribute}은(는) 올바르지 않은 값입니다" 100 | less_than: "%{attribute}은(는) %{count}보다 작아야 합니다" 101 | less_than_or_equal_to: "%{attribute}은(는) %{count}와(과) 작거나 같아야 합니다" 102 | model_invalid: "%{attribute}에 대한 데이터 검증에 실패하였습니다: %{errors}" 103 | not_a_number: "%{attribute}에 숫자를 입력해 주세요" 104 | not_an_integer: "%{attribute}에 정수를 입력해 주세요" 105 | odd: "%{attribute}에 홀수를 입력해 주세요" 106 | other_than: "%{attribute}은(는) %{count}와(과) 달라야 합니다" 107 | present: "%{attribute}은(는) 비어있어야 합니다" 108 | required: "%{attribute}은(는) 반드시 있어야 합니다" 109 | taken: "%{attribute}은(는) 이미 존재합니다" 110 | too_long: "%{attribute}은(는) %{count}자를 넘을 수 없습니다" 111 | too_short: "%{attribute}은(는) 적어도 %{count}자를 넘어야 합니다" 112 | wrong_length: "%{attribute}은(는) %{count}자여야 합니다" 113 | template: 114 | body: 아래 문제를 확인해 주세요. 115 | header: "%{count}개의 오류로 인해 %{model}을(를) 저장할 수 없습니다" 116 | helpers: 117 | select: 118 | prompt: 선택해주세요 119 | submit: 120 | create: 등록 121 | submit: 제출 122 | update: 수정 123 | number: 124 | currency: 125 | format: 126 | delimiter: "," 127 | format: "%n%u" 128 | precision: 0 129 | separator: "." 130 | significant: false 131 | strip_insignificant_zeros: false 132 | unit: 원 133 | format: 134 | delimiter: "," 135 | precision: 3 136 | round_mode: default 137 | separator: "." 138 | significant: false 139 | strip_insignificant_zeros: false 140 | human: 141 | decimal_units: 142 | format: "%n%u" 143 | units: 144 | billion: 십억 145 | million: 백만 146 | quadrillion: 천조 147 | thousand: 천 148 | trillion: 조 149 | unit: '' 150 | format: 151 | delimiter: '' 152 | precision: 3 153 | significant: true 154 | strip_insignificant_zeros: true 155 | storage_units: 156 | format: "%n%u" 157 | units: 158 | byte: 바이트 159 | eb: EB 160 | gb: GB 161 | kb: KB 162 | mb: MB 163 | pb: PB 164 | tb: TB 165 | percentage: 166 | format: 167 | delimiter: '' 168 | format: "%n%" 169 | precision: 170 | format: 171 | delimiter: '' 172 | support: 173 | array: 174 | last_word_connector: ", " 175 | two_words_connector: ', ' 176 | words_connector: ", " 177 | time: 178 | am: 오전 179 | formats: 180 | default: "%Y년 %m월 %d일 %A %H시 %M분 %S초 %z" 181 | long: "%Y년 %m월 %d일 %H시 %M분" 182 | short: "%m월 %d일 %H:%M" 183 | pm: 오후 184 | -------------------------------------------------------------------------------- /rails/locale/lo.yml: -------------------------------------------------------------------------------- 1 | --- 2 | lo: 3 | activerecord: 4 | errors: 5 | messages: 6 | record_invalid: 'ການຢືນຢັນບໍ່ສຳເລັດ : %{errors}' 7 | date: 8 | abbr_day_names: 9 | - ອາທິດ 10 | - ຈັນ 11 | - ອັງຄານ 12 | - ພຸດ 13 | - ພະຫັດ 14 | - ສຸກ 15 | - ເສົາ 16 | abbr_month_names: 17 | - 18 | - ມ.ກ 19 | - ກ.ພ 20 | - ມ.ນ 21 | - ມ.ສ 22 | - ພ.ພ 23 | - ມິ.ຖ 24 | - ກ.ລ 25 | - ສ.ຫ 26 | - ກ.ຍ 27 | - ຕ.ລ 28 | - ພ.ຈ 29 | - ທ.ວ 30 | day_names: 31 | - ອາທິດ 32 | - ຈັນ 33 | - ອັງຄານ 34 | - ພຸດ 35 | - ພະຫັດ 36 | - ສຸກ 37 | - ເສົາ 38 | formats: 39 | default: "%d-%m-%Y" 40 | long: "%e %B %Y" 41 | short: "%e %b" 42 | month_names: 43 | - 44 | - ມັງກອນ 45 | - ກຸມພາ 46 | - ມີນາ 47 | - ເມສາ 48 | - ພຶດສະພາ 49 | - ມິຖຸນາ 50 | - ກໍລະກົດ 51 | - ສິງຫາ 52 | - ກັນຍາ 53 | - ຕຸລາ 54 | - ພະຈິກ 55 | - ທັນວາ 56 | order: 57 | - :day 58 | - :month 59 | - :year 60 | datetime: 61 | distance_in_words: 62 | about_x_hours: ປະມານ %{count} ຊົ່ວໂມງ 63 | about_x_months: ປະມານ %{count} ເດືອນ 64 | about_x_years: 'ປະມານ %{count} ປີ' 65 | almost_x_years: 'ເກືອບ %{count} ປີ' 66 | half_a_minute: 'ເຄິ່ງນາທີ' 67 | less_than_x_seconds: 'ນ້ອຍກວ່າ %{count} ວິນາທີ' 68 | less_than_x_minutes: 'ນ້ອຍກວ່າ %{count} ນາທີ' 69 | over_x_years: 'ຫຼາຍກວ່າ %{count} ປີ' 70 | x_seconds: "%{count} ວິນາທີ" 71 | x_minutes: "%{count} ນາທີ" 72 | x_days: "%{count} ມື້" 73 | x_months: "%{count} ເດືອນ" 74 | prompts: 75 | second: ວິນາທີ 76 | minute: ນາທີ 77 | hour: ຊົ່ວໂມງ 78 | day: ວັນ 79 | month: ເດືອນ 80 | year: ປີ 81 | errors: 82 | format: "%{attribute} %{message}" 83 | messages: 84 | accepted: ຕ້ອງຍອມຮັບ 85 | blank: ເປົ່າບໍ່ໄດ້ 86 | confirmation: ບໍ່ຖືກກັບການຢືນຢັນ 87 | empty: ວ່າງໄວ້ບໍ່ໄດ້ 88 | equal_to: ຕ້ອງເທົ່າກັບ %{count} 89 | even: ຕ້ອງເປັນເລກຄູ່ 90 | exclusion: ມີການຈອງໄວ້ແລ້ວ 91 | greater_than: ຕ້ອງສູງກວ່າ %{count} 92 | greater_than_or_equal_to: ຕ້ອງສູງກວ່າ ຫຼື ເທົ່າກັບ %{count} 93 | inclusion: ບໍ່ໄດ້ຮວມຢູ່ໃນບັນຊີລາຍການ 94 | invalid: ບໍ່ຖືກ 95 | less_than: ຕ້ອງຕຳ່ກວ່າ %{count} 96 | less_than_or_equal_to: ຕ້ອງຕຳ່ກວ່າ ຫຼື ເທົ່າກັບ %{count} 97 | not_a_number: ບໍ່ແມ່ນຕົວເລກ 98 | odd: ຕ້ອງເປັນເລກຄີກ 99 | taken: ຮັບເອົາໄປແລ້ວ 100 | too_long: ຍາວໂພດ (ສູງສຸດຄື %{count} ຕົວອັກສອນ) 101 | too_short: ສັ້ນໂພດ (ຕຳ່ສຸດຄື %{count} ຕົວອັກສອນ) 102 | wrong_length: ຄວາມຍາວຜິດ (ຄວນຈະເປັນ %{count} ຕົວອັກສອນ) 103 | template: 104 | body: 'ກະລຸນາກວດສອບຂໍ້ມູນໃນຫ້ອງຕໍ່ໄປນີ້ :' 105 | header: ບໍ່ສາມາດບັນທຶກ %{model} ໄດ້ເນື່ອງຈາກ ເກີດ %{count} ຂໍ້ຜິດພາດ 106 | helpers: 107 | select: 108 | prompt: โปรดเลือก 109 | number: 110 | currency: 111 | format: 112 | delimiter: "," 113 | format: "%n %u" 114 | precision: 2 115 | separator: "." 116 | significant: false 117 | strip_insignificant_zeros: false 118 | unit: Kip 119 | format: 120 | delimiter: "," 121 | precision: 3 122 | separator: "." 123 | significant: false 124 | strip_insignificant_zeros: false 125 | human: 126 | decimal_units: 127 | format: "%n %u" 128 | units: 129 | unit: '' 130 | format: 131 | delimiter: '' 132 | precision: 1 133 | significant: true 134 | strip_insignificant_zeros: true 135 | storage_units: 136 | format: "%n %u" 137 | units: 138 | byte: 139 | zero: Bytes 140 | one: Byte 141 | two: Bytes 142 | few: Bytes 143 | many: Bytes 144 | other: Bytes 145 | gb: GB 146 | kb: KB 147 | mb: MB 148 | tb: TB 149 | percentage: 150 | format: 151 | delimiter: '' 152 | precision: 153 | format: 154 | delimiter: '' 155 | support: 156 | array: 157 | last_word_connector: ", ແລະ " 158 | two_words_connector: 'ແລະ ' 159 | words_connector: ", " 160 | time: 161 | am: ເຊົ້າ 162 | formats: 163 | default: "%a %d %b %Y %H:%M:%S %z" 164 | long: "%d %B %Y %H:%M น." 165 | short: "%d %b %H:%M น." 166 | pm: ແລງ 167 | -------------------------------------------------------------------------------- /rails/locale/or.yml: -------------------------------------------------------------------------------- 1 | --- 2 | or: 3 | activerecord: 4 | errors: 5 | messages: 6 | record_invalid: 'ସଠିକ୍ ନୁହ: %{errors}' 7 | date: 8 | abbr_day_names: 9 | - ରବି 10 | - ସୋମ 11 | - ମଂଗଳ 12 | - ବୁଧ 13 | - ଗୁରୁ 14 | - ଶୁକ୍ର 15 | - ଶନି 16 | abbr_month_names: 17 | - 18 | - ଜାନୁ 19 | - ଫେବରୁ 20 | - ମାର 21 | - ଏପ୍ର 22 | - ମାଈ 23 | - ଜୁନ୍ 24 | - ଜୁଲ୍ 25 | - ଅଗସ୍ଟ 26 | - ସେପ୍ଟ 27 | - ଅକ୍ଟ 28 | - ନୋଭ 29 | - ଡିସ୍ 30 | day_names: 31 | - ରବିବାର 32 | - ସୋମବାର 33 | - ମଗଂଳବାର 34 | - ବୁଧବାର 35 | - ଗୁରୁବାର 36 | - ଶୁକ୍ରବାର 37 | - ଶନିବାର 38 | formats: 39 | default: "%Y-%m-%d" 40 | long: "%B %d, %Y" 41 | short: "%b %d" 42 | month_names: 43 | - 44 | - ଜାନୁୟାରୀ 45 | - ଫେବୃୟାରୀ 46 | - ମାର୍ଚ଼ 47 | - ଏପ୍ରଲ 48 | - ମାଈ 49 | - ଜୁନ୍ 50 | - ଜୁଲାୟ 51 | - ଅଗଷ୍ତ 52 | - ସେପ୍ଟମ୍ବର୍ 53 | - ଅକ୍ଟୋବର୍ 54 | - ନୋଭେମ୍ବର 55 | - ଡିସମ୍ବର 56 | order: 57 | - :year 58 | - :month 59 | - :day 60 | datetime: 61 | distance_in_words: 62 | about_x_hours: 63 | one: ପାଖାପାଖି %{count} ଘଣ୍ତ 64 | other: ପାଖାପାଖି %{count} ଘଣ୍ତ 65 | about_x_months: 66 | one: ପାଖାପାଖି %{count} ମାସ 67 | other: ପାଖାପାଖି %{count} ମାସ 68 | about_x_years: 69 | one: ପାଖାପାଖି %{count} year 70 | other: ପାଖାପାଖି %{count} years 71 | almost_x_years: 72 | one: ଅଳ୍ପ ଉଣ %{count} ବର୍ଷ 73 | other: ଅଳ୍ପ ଉଣ %{count} ବର୍ଷ 74 | half_a_minute: ଦେଢ ମିନଟ୍ 75 | less_than_x_seconds: 76 | one: "%{count} ସେକଣ୍ଢ ବାକ" 77 | other: "%{count} ସେକଣ୍ଢ ବାକ" 78 | less_than_x_minutes: 79 | one: "%{count} ମିନଟ ବାକ" 80 | other: "%{count} ମିନଟ ବାକ" 81 | over_x_years: 82 | one: "%{count} ବର୍ଷରୁ ଅଧିକ" 83 | other: "%{count} ବର୍ଷରୁ ଅଧିକ" 84 | x_seconds: 85 | one: "%{count} ସେକଣ୍ଢ" 86 | other: "%{count} ସେକଣ୍ଢ" 87 | x_minutes: 88 | one: "%{count} ମିନଟ" 89 | other: "%{count} ମିନଟ" 90 | x_days: 91 | one: "%{count} ଦିନ" 92 | other: "%{count} ଦିନ" 93 | x_months: 94 | one: "%{count} ମାସ" 95 | other: "%{count} ମାସ" 96 | prompts: 97 | second: ସେକଣ୍ଢ 98 | minute: ମିନଟ 99 | hour: ଘଣ୍ତ 100 | day: ଦିନ 101 | month: ମାସ 102 | year: ବର୍ଷ 103 | errors: 104 | format: "%{attribute} %{message}" 105 | messages: 106 | accepted: ଗ୍ରହଣ କରିବାର ଅଛି 107 | blank: ଖାଲି ହେଇ ପାରୀବନ 108 | confirmation: ପ୍ରମାଣ ହେଇନି 109 | empty: ଖାଲି ହେଇପାରିବନି 110 | equal_to: "%{count} କୁ ସମାନ" 111 | even: ଯୁଗ୍ମ ହେବାର ଅଛି 112 | exclusion: ସୁରଖିତ ଅଟେ 113 | greater_than: "%{count} ରୁ ବଡ ହେବାର ଅଛି" 114 | greater_than_or_equal_to: "%{count} ରୁ ବଡ କିମ୍ବା ସମାନ ହେବାର ଅଛି" 115 | inclusion: ସୁଚୀ ରେ ଅନ୍ତର୍ଭୁକ୍ତ ନୁହେଁ 116 | invalid: ଠିକ୍ ନୁହେଁ 117 | less_than: "%{count} ରୁ ଛୋଟ" 118 | less_than_or_equal_to: "%{count} ରୁ ଛୋଟ କିମ୍ବା ସମାନ ହେବାର ଅଛି" 119 | not_a_number: ସଂଖ୍ଯ ନୁହେଁ 120 | not_an_integer: ଗଣନ ସଂଖ୍ଯା ହେବାର ଅଛି 121 | odd: ଅଯୁଗ୍ମ ହେବାର ଅଛି 122 | taken: ଗ୍ରହଣ କରା ଯାଇଛି 123 | too_long: ଦିର୍ଘତମ ଅଟେ(ଅତ୍ୟଧୀକ %{count} ଅଖ୍ଯର) 124 | too_short: ଅତି ସଂଖିପ୍ତ ଅଟେ (ଅତ୍ଯଳ୍ପ %{count} ଅଖ୍ଯର ଅଟେ) 125 | wrong_length: ଲମ୍ବା ଭୁଲ ଅଟେ (%{count} ଅଖ୍ଯର ହେବା ଉଚିତ୍) 126 | template: 127 | body: 'ନିମ୍ନ ଜାଗା ରେ ଅସୁବିଧା ହେଇଛି:' 128 | header: 129 | one: "%{count} ଭୁଲ ଯଗୁଁ ନିମ୍ନ %{model} ସୁରଖିତ ହେଇପାରି ନଥିଲା" 130 | other: "%{count} ଭୁଲ ଯଗୁଁ ଏହି %{model} ସୁରଖିତ ହେଇପାରି ନଥିଲା" 131 | helpers: 132 | select: 133 | prompt: ପସନ୍ଦ କର 134 | submit: 135 | create: "%{model} ବନାଅ" 136 | submit: "%{model} ସୁରଖିତ କର" 137 | update: "%{model} ଅାଧୂନିକରଣ କର" 138 | number: 139 | currency: 140 | format: 141 | delimiter: "," 142 | format: "%u%n" 143 | precision: 2 144 | separator: "." 145 | significant: false 146 | strip_insignificant_zeros: false 147 | unit: "₹" 148 | format: 149 | delimiter: "," 150 | precision: 3 151 | separator: "." 152 | significant: ମିଥ୍ଯା 153 | strip_insignificant_zeros: ମିଥ୍ଯା 154 | human: 155 | decimal_units: 156 | format: "%n %u" 157 | units: 158 | billion: ବିଲିୟନ୍ 159 | million: ମିଲିୟନ୍ 160 | quadrillion: ହଜାର ବିଲିୟନ୍ 161 | thousand: ହଜାର 162 | trillion: ଟ୍ରିଲିୟନ୍ 163 | unit: '' 164 | format: 165 | delimiter: '' 166 | precision: 3 167 | significant: true 168 | strip_insignificant_zeros: true 169 | storage_units: 170 | format: "%n %u" 171 | units: 172 | byte: 173 | one: Byte 174 | other: Bytes 175 | gb: GB 176 | kb: KB 177 | mb: MB 178 | tb: TB 179 | percentage: 180 | format: 181 | delimiter: '' 182 | precision: 183 | format: 184 | delimiter: '' 185 | support: 186 | array: 187 | last_word_connector: ", ଏବଂ " 188 | two_words_connector: " ଏବଂ " 189 | words_connector: ", " 190 | time: 191 | am: ପୁର୍ଵାହ୍ନ 192 | formats: 193 | default: "%a, %d %b %Y %H:%M:%S %z" 194 | long: "%B %d, %Y %H:%M" 195 | short: "%d %b %H:%M" 196 | pm: ଅପରାହ୍ନ 197 | -------------------------------------------------------------------------------- /rails/locale/sw.yml: -------------------------------------------------------------------------------- 1 | --- 2 | sw: 3 | activerecord: 4 | errors: 5 | messages: 6 | record_invalid: 'Uhalalishaji umeshindikana: %{errors}' 7 | date: 8 | abbr_day_names: 9 | - J2 10 | - J3 11 | - J4 12 | - J5 13 | - Al 14 | - Ij 15 | - J1 16 | abbr_month_names: 17 | - 18 | - Jan 19 | - Feb 20 | - Mac 21 | - Apr 22 | - Mei 23 | - Jun 24 | - Jul 25 | - Ago 26 | - Sep 27 | - Okt 28 | - Nov 29 | - Des 30 | day_names: 31 | - Jumapili 32 | - Jumatatu 33 | - Jumanne 34 | - Jumatano 35 | - Alhamisi 36 | - Ijumaa 37 | - Jumamosi 38 | formats: 39 | default: "%d-%m-%Y" 40 | long: "%e %B, %Y" 41 | short: "%e %b" 42 | month_names: 43 | - 44 | - Mwezi wa kwanza 45 | - Mwezi wa pili 46 | - Mwezi wa tatu 47 | - Mwezi wa nne 48 | - Mwezi wa tano 49 | - Mwezi wa sita 50 | - Mwezi wa saba 51 | - Mwezi wa nane 52 | - Mwezi wa tisa 53 | - Mwezi wa kumi 54 | - Mwezi wa kumi na moja 55 | - Mwezi wa kumi na mbili 56 | order: 57 | - :day 58 | - :month 59 | - :year 60 | datetime: 61 | distance_in_words: 62 | about_x_hours: 63 | one: kama saa limoja 64 | other: kama masaa %{count} 65 | about_x_months: 66 | one: kama mwezi %{count} 67 | other: kama miezi %{count} 68 | about_x_years: 69 | one: kama mwaka %{count} 70 | other: kama miaka %{count} 71 | almost_x_years: 72 | one: karibia mwaka 73 | other: karibia miaka %{count} 74 | half_a_minute: nusu dakika 75 | less_than_x_seconds: 76 | one: chini ya sekunde %{count} 77 | other: chini ya sekunde %{count} 78 | less_than_x_minutes: 79 | one: chini ya dakika %{count} 80 | other: chini ya dakika %{count} 81 | over_x_years: 82 | one: zaidi ya mwaka %{count} 83 | other: zaidi ya miaka %{count} 84 | x_seconds: 85 | one: sekunde %{count} 86 | other: sekunde %{count} 87 | x_minutes: 88 | one: dakika %{count} 89 | other: dakika %{count} 90 | x_days: 91 | one: siku %{count} 92 | other: siku %{count} 93 | x_months: 94 | one: mwezi %{count} 95 | other: miezi %{count} 96 | prompts: 97 | second: Sekunde 98 | minute: Dakika 99 | hour: Saa 100 | day: Siku 101 | month: Mwezi 102 | year: Mwaka 103 | errors: 104 | format: "%{attribute} %{message}" 105 | messages: 106 | accepted: lazima ikubaliwe 107 | blank: haitakiwi kuwa wazi 108 | confirmation: haifanani na hapo chini 109 | empty: haitakiwi kuwa tupu 110 | equal_to: z/iwe sawa na %{count} 111 | even: z/iwe shufwa 112 | exclusion: haiwezi kutumika 113 | greater_than: z/iwe zaidi ya %{count} 114 | greater_than_or_equal_to: z/iwe sawa ama zaidi ya %{count} 115 | inclusion: haipo kwenye orodha 116 | invalid: haifai 117 | less_than: z/isizidi %{count} 118 | less_than_or_equal_to: z/iwe sawa na, ama chini ya %{count} 119 | not_a_number: inaruhusiwa namba tu 120 | not_an_integer: inaruhusiwa namba tu 121 | odd: z/iwe witiri 122 | taken: imesajiliwa 123 | too_long: ndefu sana (isizidi herufi %{count}) 124 | too_short: fupi mno (isipungue herufi %{count}) 125 | wrong_length: idadi ya herufi hazilingani (inatakiwa %{count}) 126 | template: 127 | body: 'Tafadhali kagua sehemu zifuatazo:' 128 | header: 129 | one: "%{model} haikuhifadhiwa kwa sababu moja." 130 | other: "%{model} haikuhifadhiwa kwa sababu %{count}." 131 | helpers: 132 | select: 133 | prompt: Tafadhali teua 134 | submit: 135 | create: Unda %{model} 136 | submit: Akibisha %{model} 137 | update: Sasaisha %{model} 138 | number: 139 | currency: 140 | format: 141 | delimiter: "." 142 | format: "%n%u" 143 | precision: 2 144 | separator: "," 145 | significant: false 146 | strip_insignificant_zeros: false 147 | unit: "/=" 148 | format: 149 | delimiter: "." 150 | precision: 2 151 | separator: "," 152 | significant: false 153 | strip_insignificant_zeros: false 154 | human: 155 | decimal_units: 156 | format: "%n %u" 157 | units: 158 | billion: Bilioni 159 | million: Milioni 160 | quadrillion: Kuadrilioni 161 | thousand: Elfu 162 | trillion: Trilioni 163 | unit: '' 164 | format: 165 | delimiter: '' 166 | precision: 3 167 | significant: true 168 | strip_insignificant_zeros: true 169 | storage_units: 170 | format: "%n %u" 171 | units: 172 | byte: Baiti 173 | gb: GB 174 | kb: KB 175 | mb: MB 176 | tb: TB 177 | percentage: 178 | format: 179 | delimiter: '' 180 | precision: 181 | format: 182 | delimiter: '' 183 | support: 184 | array: 185 | last_word_connector: ", na " 186 | two_words_connector: " na " 187 | words_connector: ", " 188 | time: 189 | am: am 190 | formats: 191 | default: "%a, %d %b %Y %H:%M:%S" 192 | long: "%A, %e. %B %Y, %H:%M:%S" 193 | short: "%e %b %Y %H:%M" 194 | pm: pm 195 | -------------------------------------------------------------------------------- /rails/locale/th.yml: -------------------------------------------------------------------------------- 1 | --- 2 | th: 3 | activerecord: 4 | errors: 5 | messages: 6 | record_invalid: 'ไม่ผ่านการตรวจสอบ: %{errors}' 7 | date: 8 | abbr_day_names: 9 | - อา 10 | - จ 11 | - อ 12 | - พ 13 | - พฤ 14 | - ศ 15 | - ส 16 | abbr_month_names: 17 | - 18 | - ม.ค. 19 | - ก.พ. 20 | - มี.ค. 21 | - เม.ย. 22 | - พ.ค. 23 | - มิ.ย. 24 | - ก.ค. 25 | - ส.ค. 26 | - ก.ย. 27 | - ต.ค. 28 | - พ.ย. 29 | - ธ.ค. 30 | day_names: 31 | - อาทิตย์ 32 | - จันทร์ 33 | - อังคาร 34 | - พุธ 35 | - พฤหัสบดี 36 | - ศุกร์ 37 | - เสาร์ 38 | formats: 39 | default: "%d-%m-%Y" 40 | long: "%d %B %Y" 41 | short: "%d %b" 42 | month_names: 43 | - 44 | - มกราคม 45 | - กุมภาพันธ์ 46 | - มีนาคม 47 | - เมษายน 48 | - พฤษภาคม 49 | - มิถุนายน 50 | - กรกฎาคม 51 | - สิงหาคม 52 | - กันยายน 53 | - ตุลาคม 54 | - พฤศจิกายน 55 | - ธันวาคม 56 | order: 57 | - :day 58 | - :month 59 | - :year 60 | datetime: 61 | distance_in_words: 62 | about_x_hours: ประมาณ %{count} ชั่วโมง 63 | about_x_months: ประมาณ %{count} เดือน 64 | about_x_years: ประมาณ %{count} ปี 65 | almost_x_years: เกือบ %{count} ปี 66 | half_a_minute: ครึ่งนาที 67 | less_than_x_seconds: น้อยกว่า %{count} วินาที 68 | less_than_x_minutes: น้อยกว่า %{count} นาที 69 | over_x_years: มากกว่า %{count} ปี 70 | x_seconds: "%{count} วินาที" 71 | x_minutes: "%{count} นาที" 72 | x_days: "%{count} วัน" 73 | x_months: "%{count} เดือน" 74 | prompts: 75 | second: วินาที 76 | minute: นาที 77 | hour: ชั่วโมง 78 | day: วัน 79 | month: เดือน 80 | year: ปี 81 | errors: 82 | format: "%{attribute} %{message}" 83 | messages: 84 | accepted: ต้องถูกยอมรับ 85 | blank: ต้องไม่เว้นว่างเอาไว้ 86 | confirmation: ไม่ตรงกับการยืนยัน 87 | empty: ต้องไม่เว้นว่างเอาไว้ 88 | equal_to: ต้องมีค่าเท่ากับ %{count} 89 | even: ต้องเป็นจำนวนคู่ 90 | exclusion: ไม่ได้รับอนุญาตให้ใช้ 91 | greater_than: ต้องมากกว่า %{count} 92 | greater_than_or_equal_to: ต้องมากกว่าหรือเท่ากับ %{count} 93 | inclusion: ไม่ได้อยู่ในรายการ 94 | invalid: ไม่ถูกต้อง 95 | less_than: ต้องมีค่าน้อยกว่า %{count} 96 | less_than_or_equal_to: ต้องมีค่าน้อยกว่าหรือเท่ากับ %{count} 97 | not_a_number: ไม่ใช่ตัวเลข 98 | not_an_integer: ไม่ใช่จำนวนเต็ม 99 | odd: ต้องเป็นจำนวนคี่ 100 | taken: ถูกใช้ไปแล้ว 101 | too_long: ยาวเกินไป (ต้องไม่เกิน %{count} ตัวอักษร) 102 | too_short: สั้นเกินไป (ต้องยาวกว่า %{count} ตัวอักษร) 103 | wrong_length: มีความยาวไม่ถูกต้อง (ต้องมีความยาว %{count} ตัวอักษร) 104 | template: 105 | body: 'โปรดตรวจสอบข้อมูลในช่องต่อไปนี้:' 106 | header: พบข้อผิดพลาด %{count} ประการ ทำให้ไม่สามารถบันทึก%{model}ได้ 107 | helpers: 108 | select: 109 | prompt: โปรดเลือก 110 | submit: 111 | create: สร้าง%{model} 112 | submit: บันทึก%{model} 113 | update: ปรับปรุง%{model} 114 | number: 115 | currency: 116 | format: 117 | delimiter: "," 118 | format: "%n %u" 119 | precision: 2 120 | separator: "." 121 | significant: false 122 | strip_insignificant_zeros: false 123 | unit: บาท 124 | format: 125 | delimiter: "," 126 | precision: 3 127 | separator: "." 128 | significant: false 129 | strip_insignificant_zeros: false 130 | human: 131 | decimal_units: 132 | format: "%n %u" 133 | units: 134 | billion: พันล้าน 135 | million: ล้าน 136 | quadrillion: พันล้านล้าน 137 | thousand: พัน 138 | trillion: ล้านล้าน 139 | unit: '' 140 | format: 141 | delimiter: '' 142 | precision: 3 143 | significant: true 144 | strip_insignificant_zeros: true 145 | storage_units: 146 | format: "%n %u" 147 | units: 148 | byte: ไบต์ 149 | gb: จิกะไบต์ 150 | kb: กิโลไบต์ 151 | mb: เมกะไบต์ 152 | tb: เทระไบต์ 153 | percentage: 154 | format: 155 | delimiter: '' 156 | precision: 157 | format: 158 | delimiter: '' 159 | support: 160 | array: 161 | last_word_connector: ", และ " 162 | two_words_connector: " และ " 163 | words_connector: ", " 164 | time: 165 | am: ก่อนเที่ยง 166 | formats: 167 | default: "%a %d %b %Y %H:%M:%S %z" 168 | long: "%d %B %Y %H:%M น." 169 | short: "%d %b %H:%M น." 170 | pm: หลังเที่ยง 171 | -------------------------------------------------------------------------------- /rails/locale/vi.yml: -------------------------------------------------------------------------------- 1 | --- 2 | vi: 3 | activerecord: 4 | errors: 5 | messages: 6 | record_invalid: 'Có các lỗi sau: %{errors}' 7 | restrict_dependent_destroy: 8 | has_one: Không thể xóa do tồn tại đối tượng phụ thuộc %{record} 9 | has_many: Không thể xóa do tồn tại một số đối tượng phụ thuộc %{record} 10 | date: 11 | abbr_day_names: 12 | - CN 13 | - Thứ 2 14 | - Thứ 3 15 | - Thứ 4 16 | - Thứ 5 17 | - Thứ 6 18 | - Thứ 7 19 | abbr_month_names: 20 | - 21 | - Thg 1 22 | - Thg 2 23 | - Thg 3 24 | - Thg 4 25 | - Thg 5 26 | - Thg 6 27 | - Thg 7 28 | - Thg 8 29 | - Thg 9 30 | - Thg 10 31 | - Thg 11 32 | - Thg 12 33 | day_names: 34 | - Chủ nhật 35 | - Thứ hai 36 | - Thứ ba 37 | - Thứ tư 38 | - Thứ năm 39 | - Thứ sáu 40 | - Thứ bảy 41 | formats: 42 | default: "%d-%m-%Y" 43 | long: "%d %B, %Y" 44 | short: "%d %b" 45 | month_names: 46 | - 47 | - Tháng một 48 | - Tháng hai 49 | - Tháng ba 50 | - Tháng tư 51 | - Tháng năm 52 | - Tháng sáu 53 | - Tháng bảy 54 | - Tháng tám 55 | - Tháng chín 56 | - Tháng mười 57 | - Tháng mười một 58 | - Tháng mười hai 59 | order: 60 | - :day 61 | - :month 62 | - :year 63 | datetime: 64 | distance_in_words: 65 | about_x_hours: khoảng %{count} giờ 66 | about_x_months: khoảng %{count} tháng 67 | about_x_years: khoảng %{count} năm 68 | almost_x_years: gần %{count} năm 69 | half_a_minute: 30 giây 70 | less_than_x_seconds: chưa tới %{count} giây 71 | less_than_x_minutes: chưa tới %{count} phút 72 | over_x_years: hơn %{count} năm 73 | x_seconds: "%{count} giây" 74 | x_minutes: "%{count} phút" 75 | x_days: "%{count} ngày" 76 | x_months: "%{count} tháng" 77 | prompts: 78 | second: Giây 79 | minute: Phút 80 | hour: Giờ 81 | day: Ngày 82 | month: Tháng 83 | year: Năm 84 | errors: 85 | format: "%{attribute} %{message}" 86 | messages: 87 | accepted: phải được đồng ý 88 | blank: không thể để trắng 89 | confirmation: không khớp với xác nhận 90 | empty: không thể rỗng 91 | equal_to: phải bằng %{count} 92 | even: phải là số chẵn 93 | exclusion: đã được giành trước 94 | greater_than: phải lớn hơn %{count} 95 | greater_than_or_equal_to: phải lớn hơn hoặc bằng %{count} 96 | inclusion: không có trong danh sách 97 | invalid: không hợp lệ 98 | less_than: phải nhỏ hơn %{count} 99 | less_than_or_equal_to: phải nhỏ hơn hoặc bằng %{count} 100 | not_a_number: không phải là số 101 | not_an_integer: phải là một số nguyên 102 | odd: phải là số lẻ 103 | other_than: cần phải khác %{count} 104 | present: cần phải để trắng 105 | taken: đã tồn tại 106 | too_long: quá dài (tối đa %{count} ký tự) 107 | too_short: quá ngắn (tối thiểu %{count} ký tự) 108 | wrong_length: độ dài không đúng (phải là %{count} ký tự) 109 | required: "phải có" 110 | template: 111 | body: 'Có lỗi với các mục sau:' 112 | header: "%{count} lỗi ngăn không cho lưu %{model} này" 113 | helpers: 114 | select: 115 | prompt: Vui lòng chọn 116 | submit: 117 | create: Tạo %{model} 118 | submit: Lưu %{model} 119 | update: Cập nhật %{model} 120 | number: 121 | currency: 122 | format: 123 | delimiter: "." 124 | format: "%n %u" 125 | precision: 0 126 | separator: "," 127 | significant: false 128 | strip_insignificant_zeros: false 129 | unit: VNĐ 130 | format: 131 | delimiter: "." 132 | precision: 3 133 | separator: "," 134 | significant: false 135 | strip_insignificant_zeros: false 136 | human: 137 | decimal_units: 138 | format: "%n %u" 139 | units: 140 | billion: Tỷ 141 | million: Triệu 142 | quadrillion: Triệu tỷ 143 | thousand: Nghìn 144 | trillion: Nghìn tỷ 145 | unit: '' 146 | format: 147 | delimiter: '' 148 | precision: 1 149 | significant: true 150 | strip_insignificant_zeros: true 151 | storage_units: 152 | format: "%n %u" 153 | units: 154 | byte: 155 | one: Byte 156 | other: Byte 157 | gb: GB 158 | kb: KB 159 | mb: MB 160 | tb: TB 161 | percentage: 162 | format: 163 | delimiter: '' 164 | format: "%n%" 165 | precision: 166 | format: 167 | delimiter: '' 168 | support: 169 | array: 170 | last_word_connector: ", và " 171 | two_words_connector: " và " 172 | words_connector: ", " 173 | time: 174 | am: sáng 175 | formats: 176 | default: "%a, %d %b %Y %H:%M:%S %z" 177 | long: "%d %B, %Y %H:%M" 178 | short: "%d %b %H:%M" 179 | pm: chiều 180 | -------------------------------------------------------------------------------- /rails/locale/zh-CN.yml: -------------------------------------------------------------------------------- 1 | --- 2 | zh-CN: 3 | activerecord: 4 | errors: 5 | messages: 6 | record_invalid: 验证失败:%{errors} 7 | restrict_dependent_destroy: 8 | has_one: 由于%{record}需要此记录,所以无法移除记录 9 | has_many: 由于%{record}需要此记录,所以无法移除记录 10 | date: 11 | abbr_day_names: 12 | - 周日 13 | - 周一 14 | - 周二 15 | - 周三 16 | - 周四 17 | - 周五 18 | - 周六 19 | abbr_month_names: 20 | - 21 | - 1月 22 | - 2月 23 | - 3月 24 | - 4月 25 | - 5月 26 | - 6月 27 | - 7月 28 | - 8月 29 | - 9月 30 | - 10月 31 | - 11月 32 | - 12月 33 | day_names: 34 | - 星期日 35 | - 星期一 36 | - 星期二 37 | - 星期三 38 | - 星期四 39 | - 星期五 40 | - 星期六 41 | formats: 42 | default: "%Y-%m-%d" 43 | long: "%Y年%m月%d日" 44 | short: "%m月%d日" 45 | month_names: 46 | - 47 | - 一月 48 | - 二月 49 | - 三月 50 | - 四月 51 | - 五月 52 | - 六月 53 | - 七月 54 | - 八月 55 | - 九月 56 | - 十月 57 | - 十一月 58 | - 十二月 59 | order: 60 | - :year 61 | - :month 62 | - :day 63 | datetime: 64 | distance_in_words: 65 | about_x_hours: 大约%{count}小时 66 | about_x_months: 大约%{count}个月 67 | about_x_years: 大约%{count}年 68 | almost_x_years: 接近%{count}年 69 | half_a_minute: 半分钟 70 | less_than_x_seconds: 不到%{count}秒 71 | less_than_x_minutes: 不到%{count}分钟 72 | over_x_years: "%{count}年多" 73 | x_seconds: "%{count}秒" 74 | x_minutes: "%{count}分钟" 75 | x_days: "%{count}天" 76 | x_months: "%{count}个月" 77 | x_years: "%{count}年" 78 | prompts: 79 | second: 秒 80 | minute: 分 81 | hour: 时 82 | day: 日 83 | month: 月 84 | year: 年 85 | errors: 86 | format: "%{attribute}%{message}" 87 | messages: 88 | accepted: 必须是可被接受的 89 | blank: 不能为空字符 90 | confirmation: 与%{attribute}不匹配 91 | empty: 不能留空 92 | equal_to: 必须等于%{count} 93 | even: 必须为双数 94 | exclusion: 是保留关键字 95 | greater_than: 必须大于%{count} 96 | greater_than_or_equal_to: 必须大于或等于%{count} 97 | inclusion: 不包含于列表中 98 | invalid: 是无效的 99 | less_than: 必须小于%{count} 100 | less_than_or_equal_to: 必须小于或等于%{count} 101 | model_invalid: 验证失败:%{errors} 102 | not_a_number: 不是数字 103 | not_an_integer: 必须是整数 104 | odd: 必须为单数 105 | other_than: 长度非法(不可为%{count}个字符) 106 | present: 必须是空白 107 | required: 必须存在 108 | taken: 已经被使用 109 | too_long: 过长(最长为%{count}个字符) 110 | too_short: 过短(最短为%{count}个字符) 111 | wrong_length: 长度非法(必须为%{count}个字符) 112 | template: 113 | body: 如下字段出现错误: 114 | header: 有%{count}个错误发生导致“%{model}”无法被保存。 115 | helpers: 116 | select: 117 | prompt: 请选择 118 | submit: 119 | create: 新增%{model} 120 | submit: 储存%{model} 121 | update: 更新%{model} 122 | number: 123 | currency: 124 | format: 125 | delimiter: "," 126 | format: "%u %n" 127 | precision: 2 128 | separator: "." 129 | significant: false 130 | strip_insignificant_zeros: false 131 | unit: CN¥ 132 | format: 133 | delimiter: "," 134 | precision: 3 135 | separator: "." 136 | significant: false 137 | strip_insignificant_zeros: false 138 | human: 139 | decimal_units: 140 | format: "%n %u" 141 | units: 142 | billion: 十亿 143 | million: 百万 144 | quadrillion: 千兆 145 | thousand: 千 146 | trillion: 兆 147 | unit: '' 148 | format: 149 | delimiter: '' 150 | precision: 1 151 | significant: false 152 | strip_insignificant_zeros: false 153 | storage_units: 154 | format: "%n %u" 155 | units: 156 | byte: 字节 157 | eb: EB 158 | gb: GB 159 | kb: KB 160 | mb: MB 161 | pb: PB 162 | tb: TB 163 | percentage: 164 | format: 165 | delimiter: '' 166 | format: "%n%" 167 | precision: 168 | format: 169 | delimiter: '' 170 | support: 171 | array: 172 | last_word_connector: "、" 173 | two_words_connector: 和 174 | words_connector: "、" 175 | time: 176 | am: 上午 177 | formats: 178 | default: "%Y年%m月%d日 %A %H:%M:%S %Z" 179 | long: "%Y年%m月%d日 %H:%M" 180 | short: "%m月%d日 %H:%M" 181 | pm: 下午 182 | -------------------------------------------------------------------------------- /rails/locale/zh-HK.yml: -------------------------------------------------------------------------------- 1 | --- 2 | zh-HK: 3 | activerecord: 4 | errors: 5 | messages: 6 | record_invalid: 驗證失敗:%{errors} 7 | restrict_dependent_destroy: 8 | has_one: 由於%{record}依賴此記錄,無法移除 9 | has_many: 由於%{record}依賴此記錄,無法移除 10 | date: 11 | abbr_day_names: 12 | - 週日 13 | - 週一 14 | - 週二 15 | - 週三 16 | - 週四 17 | - 週五 18 | - 週六 19 | abbr_month_names: 20 | - 21 | - 1月 22 | - 2月 23 | - 3月 24 | - 4月 25 | - 5月 26 | - 6月 27 | - 7月 28 | - 8月 29 | - 9月 30 | - 10月 31 | - 11月 32 | - 12月 33 | day_names: 34 | - 星期日 35 | - 星期一 36 | - 星期二 37 | - 星期三 38 | - 星期四 39 | - 星期五 40 | - 星期六 41 | formats: 42 | default: "%Y-%m-%d" 43 | long: "%Y年%m月%d日" 44 | short: "%m月%d日" 45 | month_names: 46 | - 47 | - 一月 48 | - 二月 49 | - 三月 50 | - 四月 51 | - 五月 52 | - 六月 53 | - 七月 54 | - 八月 55 | - 九月 56 | - 十月 57 | - 十一月 58 | - 十二月 59 | order: 60 | - :year 61 | - :month 62 | - :day 63 | datetime: 64 | distance_in_words: 65 | about_x_hours: 約%{count}小時 66 | about_x_months: 約%{count}個月 67 | about_x_years: 約%{count}年 68 | almost_x_years: 接近%{count}年 69 | half_a_minute: 半分鐘 70 | less_than_x_seconds: 不到%{count}秒 71 | less_than_x_minutes: 不到%{count}分鐘 72 | over_x_years: 超過%{count}年 73 | x_seconds: "%{count}秒" 74 | x_minutes: "%{count}分鐘" 75 | x_days: "%{count}天" 76 | x_months: "%{count}個月" 77 | x_years: "%{count}年" 78 | prompts: 79 | second: 秒 80 | minute: 分 81 | hour: 時 82 | day: 日 83 | month: 月 84 | year: 年 85 | errors: 86 | format: "%{attribute}%{message}" 87 | messages: 88 | accepted: 必定要被接受 89 | blank: 不可以是空白 90 | confirmation: 與%{attribute}不一致 91 | empty: 不可以留空 92 | equal_to: 必須等於%{count} 93 | even: 必須要是雙數 94 | exclusion: 是被保留的關鍵字 95 | greater_than: 必須大於%{count} 96 | greater_than_or_equal_to: 必須大於或等於%{count} 97 | inclusion: 並非可被接受的內容 98 | invalid: 是無效的 99 | less_than: 必須小於%{count} 100 | less_than_or_equal_to: 必須小於或等於%{count} 101 | model_invalid: 驗證失敗:%{errors} 102 | not_a_number: 必須是數字 103 | not_an_integer: 必須是整數 104 | odd: 必須是單數 105 | other_than: 不可以是%{count}個字 106 | present: 必定要是空白 107 | required: 必須存在 108 | taken: 已被使用 109 | too_long: 太長(最長為%{count}個字元) 110 | too_short: 太短(最少為%{count}個字元) 111 | wrong_length: 字數錯誤(應為%{count}個字元) 112 | template: 113 | body: 以下欄位發生問題: 114 | header: 發生%{count}項錯誤,以致%{model}未能儲存。 115 | helpers: 116 | select: 117 | prompt: 請選擇 118 | submit: 119 | create: 新增%{model} 120 | submit: 儲存%{model} 121 | update: 更新%{model} 122 | number: 123 | currency: 124 | format: 125 | delimiter: "," 126 | format: "%u %n" 127 | precision: 2 128 | separator: "." 129 | significant: false 130 | strip_insignificant_zeros: false 131 | unit: HK$ 132 | format: 133 | delimiter: "," 134 | precision: 3 135 | separator: "." 136 | significant: false 137 | strip_insignificant_zeros: false 138 | human: 139 | decimal_units: 140 | format: "%n %u" 141 | units: 142 | billion: 十億 143 | million: 百萬 144 | quadrillion: 千兆 145 | thousand: 千 146 | trillion: 兆 147 | unit: '' 148 | format: 149 | delimiter: '' 150 | precision: 1 151 | significant: false 152 | strip_insignificant_zeros: false 153 | storage_units: 154 | format: "%n %u" 155 | units: 156 | byte: 157 | one: Byte 158 | other: Bytes 159 | gb: GB 160 | kb: KB 161 | mb: MB 162 | tb: TB 163 | percentage: 164 | format: 165 | delimiter: '' 166 | format: "%n%" 167 | precision: 168 | format: 169 | delimiter: '' 170 | support: 171 | array: 172 | last_word_connector: "、" 173 | two_words_connector: 和 174 | words_connector: "、" 175 | time: 176 | am: 上午 177 | formats: 178 | default: "%Y年%m月%d日 %A %H:%M:%S %Z" 179 | long: "%Y年%m月%d日 %H:%M" 180 | short: "%m月%d日 %H:%M" 181 | pm: 下午 182 | -------------------------------------------------------------------------------- /rails/locale/zh-TW.yml: -------------------------------------------------------------------------------- 1 | --- 2 | zh-TW: 3 | activerecord: 4 | errors: 5 | messages: 6 | record_invalid: 校驗失敗:%{errors} 7 | restrict_dependent_destroy: 8 | has_one: 由於%{record}需要此記錄,所以無法移除記錄 9 | has_many: 由於%{record}需要此記錄,所以無法移除記錄 10 | date: 11 | abbr_day_names: 12 | - 週日 13 | - 週一 14 | - 週二 15 | - 週三 16 | - 週四 17 | - 週五 18 | - 週六 19 | abbr_month_names: 20 | - 21 | - 1月 22 | - 2月 23 | - 3月 24 | - 4月 25 | - 5月 26 | - 6月 27 | - 7月 28 | - 8月 29 | - 9月 30 | - 10月 31 | - 11月 32 | - 12月 33 | day_names: 34 | - 星期日 35 | - 星期一 36 | - 星期二 37 | - 星期三 38 | - 星期四 39 | - 星期五 40 | - 星期六 41 | formats: 42 | default: "%Y-%m-%d" 43 | long: "%Y年%m月%d日" 44 | short: "%m月%d日" 45 | month_names: 46 | - 47 | - 一月 48 | - 二月 49 | - 三月 50 | - 四月 51 | - 五月 52 | - 六月 53 | - 七月 54 | - 八月 55 | - 九月 56 | - 十月 57 | - 十一月 58 | - 十二月 59 | order: 60 | - :year 61 | - :month 62 | - :day 63 | datetime: 64 | distance_in_words: 65 | about_x_hours: 大約%{count}小時 66 | about_x_months: 大約%{count}個月 67 | about_x_years: 大約%{count}年 68 | almost_x_years: 接近%{count}年 69 | half_a_minute: 半分鐘 70 | less_than_x_seconds: 不到%{count}秒 71 | less_than_x_minutes: 不到%{count}分鐘 72 | over_x_years: "%{count}年多" 73 | x_seconds: "%{count}秒" 74 | x_minutes: "%{count}分鐘" 75 | x_days: "%{count}天" 76 | x_months: "%{count}個月" 77 | x_years: "%{count}年" 78 | prompts: 79 | second: 秒 80 | minute: 分 81 | hour: 時 82 | day: 日 83 | month: 月 84 | year: 年 85 | errors: 86 | format: "%{attribute}%{message}" 87 | messages: 88 | accepted: 必須是可被接受的 89 | blank: 不能為空白 90 | confirmation: 與%{attribute}須一致 91 | empty: 不能留空 92 | equal_to: 必須等於%{count} 93 | even: 必須是偶數 94 | exclusion: 是被保留的關鍵字 95 | greater_than: 必須大於%{count} 96 | greater_than_or_equal_to: 必須大於或等於%{count} 97 | inclusion: 沒有包含在列表中 98 | invalid: 是無效的 99 | less_than: 必須小於%{count} 100 | less_than_or_equal_to: 必須小於或等於%{count} 101 | model_invalid: 校驗失敗:%{errors} 102 | not_a_number: 不是數字 103 | not_an_integer: 必須是整數 104 | odd: 必須是奇數 105 | other_than: 不可以是%{count}個字 106 | present: 必須是空白 107 | required: 必須存在 108 | taken: 已經被使用 109 | too_long: 過長(最長是%{count}個字) 110 | too_short: 過短(最短是%{count}個字) 111 | wrong_length: 字數錯誤(必須是%{count}個字) 112 | template: 113 | body: 以下欄位發生問題: 114 | header: 有%{count}個錯誤發生使得「%{model}」無法被儲存。 115 | helpers: 116 | select: 117 | prompt: 請選擇 118 | submit: 119 | create: 新增%{model} 120 | submit: 儲存%{model} 121 | update: 更新%{model} 122 | number: 123 | currency: 124 | format: 125 | delimiter: "," 126 | format: "%u%n" 127 | precision: 2 128 | separator: "." 129 | significant: false 130 | strip_insignificant_zeros: false 131 | unit: NT$ 132 | format: 133 | delimiter: "," 134 | precision: 3 135 | separator: "." 136 | significant: false 137 | strip_insignificant_zeros: false 138 | human: 139 | decimal_units: 140 | format: "%n %u" 141 | units: 142 | billion: 十億 143 | million: 百萬 144 | quadrillion: 千兆 145 | thousand: 千 146 | trillion: 兆 147 | unit: '' 148 | format: 149 | delimiter: '' 150 | precision: 1 151 | significant: false 152 | strip_insignificant_zeros: false 153 | storage_units: 154 | format: "%n %u" 155 | units: 156 | byte: 157 | one: 位元組 158 | other: 位元組 159 | gb: GB 160 | kb: KB 161 | mb: MB 162 | tb: TB 163 | percentage: 164 | format: 165 | delimiter: '' 166 | format: "%n%" 167 | precision: 168 | format: 169 | delimiter: '' 170 | support: 171 | array: 172 | last_word_connector: "、" 173 | two_words_connector: 和 174 | words_connector: "、" 175 | time: 176 | am: 上午 177 | formats: 178 | default: "%Y年%m月%d日 %A %H:%M:%S %Z" 179 | long: "%Y年%m月%d日 %H:%M" 180 | short: "%m月%d日 %H:%M" 181 | pm: 下午 182 | -------------------------------------------------------------------------------- /rails/locale/zh-YUE.yml: -------------------------------------------------------------------------------- 1 | --- 2 | zh-YUE: 3 | activerecord: 4 | errors: 5 | messages: 6 | record_invalid: 驗證失敗:%{errors} 7 | restrict_dependent_destroy: 8 | has_one: 唔可以刪除,因為%{record}要用佢 9 | has_many: 唔可以刪除,因為%{record}要用佢 10 | date: 11 | abbr_day_names: 12 | - 週日 13 | - 週一 14 | - 週二 15 | - 週三 16 | - 週四 17 | - 週五 18 | - 週六 19 | abbr_month_names: 20 | - 21 | - 1月 22 | - 2月 23 | - 3月 24 | - 4月 25 | - 5月 26 | - 6月 27 | - 7月 28 | - 8月 29 | - 9月 30 | - 10月 31 | - 11月 32 | - 12月 33 | day_names: 34 | - 星期日 35 | - 星期一 36 | - 星期二 37 | - 星期三 38 | - 星期四 39 | - 星期五 40 | - 星期六 41 | formats: 42 | default: "%Y-%m-%d" 43 | long: "%Y年%b%d日" 44 | short: "%b%d日" 45 | month_names: 46 | - 47 | - 一月 48 | - 二月 49 | - 三月 50 | - 四月 51 | - 五月 52 | - 六月 53 | - 七月 54 | - 八月 55 | - 九月 56 | - 十月 57 | - 十一月 58 | - 十二月 59 | order: 60 | - :year 61 | - :month 62 | - :day 63 | datetime: 64 | distance_in_words: 65 | about_x_hours: 大概%{count}個鐘 66 | about_x_months: 大概%{count}個月 67 | about_x_years: 大概%{count}年 68 | almost_x_years: 差唔多%{count}年 69 | half_a_minute: 半分鐘 70 | less_than_x_seconds: 唔夠%{count}秒 71 | less_than_x_minutes: 唔夠%{count}分鐘 72 | over_x_years: 超過%{count}年 73 | x_seconds: "%{count}秒" 74 | x_minutes: "%{count}分鐘" 75 | x_days: "%{count}日" 76 | x_months: "%{count}個月" 77 | x_years: "%{count}年" 78 | prompts: 79 | second: 秒 80 | minute: 分 81 | hour: 點 82 | day: 日 83 | month: 月 84 | year: 年 85 | errors: 86 | format: "%{attribute}%{message}" 87 | messages: 88 | accepted: 一定要被接受 89 | blank: 唔可以空白 90 | confirmation: 與%{attribute}唔夾 91 | empty: 唔可以漏空 92 | equal_to: 要等於%{count} 93 | even: 要係雙數 94 | exclusion: 唔用得 95 | greater_than: 要大過%{count} 96 | greater_than_or_equal_to: 要大過或者等於%{count} 97 | inclusion: 唔係可被接受嘅內容 98 | invalid: 無效 99 | less_than: 要細過%{count} 100 | less_than_or_equal_to: 要細過或者等於%{count} 101 | model_invalid: 驗證失敗:%{errors} 102 | not_a_number: 唔係一個數字 103 | not_an_integer: 要係整數 104 | odd: 要係單數 105 | other_than: 唔可以係%{count} 個字 106 | present: 一定要空白 107 | required: 必須存在 108 | taken: 已經用緊 109 | too_long: 太長(最多%{count}個字) 110 | too_short: 太短(最少%{count}個字) 111 | wrong_length: 唔啱字數(要係%{count}個字) 112 | template: 113 | body: 呢啲有問題: 114 | header: 有%{count}個問題,%{model}儲存唔到。 115 | helpers: 116 | select: 117 | prompt: 請喺度揀 118 | submit: 119 | create: 新增%{model} 120 | submit: 儲存%{model} 121 | update: 更新%{model} 122 | number: 123 | currency: 124 | format: 125 | delimiter: "," 126 | format: "%u %n" 127 | precision: 2 128 | separator: "." 129 | significant: false 130 | strip_insignificant_zeros: false 131 | unit: HK$ 132 | format: 133 | delimiter: "," 134 | precision: 3 135 | separator: "." 136 | significant: false 137 | strip_insignificant_zeros: false 138 | human: 139 | decimal_units: 140 | format: "%n %u" 141 | units: 142 | billion: 十億 143 | million: 百萬 144 | quadrillion: 千兆 145 | thousand: 千 146 | trillion: 兆 147 | unit: '' 148 | format: 149 | delimiter: '' 150 | precision: 1 151 | significant: false 152 | strip_insignificant_zeros: false 153 | storage_units: 154 | format: "%n %u" 155 | units: 156 | byte: 157 | one: Byte 158 | other: Bytes 159 | gb: GB 160 | kb: KB 161 | mb: MB 162 | tb: TB 163 | percentage: 164 | format: 165 | delimiter: '' 166 | format: "%n%" 167 | precision: 168 | format: 169 | delimiter: '' 170 | support: 171 | array: 172 | last_word_connector: "、" 173 | two_words_connector: 同 174 | words_connector: "、" 175 | time: 176 | am: 上晝 177 | formats: 178 | default: "%Y年%m月%d號 %A %H:%M:%S %Z" 179 | long: "%Y年%m月%d號 %H:%M" 180 | short: "%m月%d號 %H:%M" 181 | pm: 下晝 182 | -------------------------------------------------------------------------------- /rails/ordinals/be.yml: -------------------------------------------------------------------------------- 1 | --- 2 | be: 3 | number: 4 | nth: 5 | ordinals: "." 6 | ordinalized: "%{number}." 7 | -------------------------------------------------------------------------------- /rails/ordinals/bs.yml: -------------------------------------------------------------------------------- 1 | --- 2 | bs: 3 | number: 4 | nth: 5 | ordinals: "." 6 | ordinalized: "%{number}." 7 | -------------------------------------------------------------------------------- /rails/ordinals/cs.yml: -------------------------------------------------------------------------------- 1 | --- 2 | cs: 3 | number: 4 | nth: 5 | ordinals: "." 6 | ordinalized: "%{number}." 7 | -------------------------------------------------------------------------------- /rails/ordinals/da.yml: -------------------------------------------------------------------------------- 1 | --- 2 | da: 3 | number: 4 | nth: 5 | ordinals: "." 6 | ordinalized: "%{number}." 7 | -------------------------------------------------------------------------------- /rails/ordinals/de-AT.yml: -------------------------------------------------------------------------------- 1 | --- 2 | de-AT: 3 | number: 4 | nth: 5 | ordinals: "." 6 | ordinalized: "%{number}." 7 | -------------------------------------------------------------------------------- /rails/ordinals/de-CH.yml: -------------------------------------------------------------------------------- 1 | --- 2 | de-CH: 3 | number: 4 | nth: 5 | ordinals: "." 6 | ordinalized: "%{number}." 7 | -------------------------------------------------------------------------------- /rails/ordinals/de-DE.yml: -------------------------------------------------------------------------------- 1 | --- 2 | de-DE: 3 | number: 4 | nth: 5 | ordinals: "." 6 | ordinalized: "%{number}." 7 | -------------------------------------------------------------------------------- /rails/ordinals/de.yml: -------------------------------------------------------------------------------- 1 | --- 2 | de: 3 | number: 4 | nth: 5 | ordinals: "." 6 | ordinalized: "%{number}." 7 | -------------------------------------------------------------------------------- /rails/ordinals/eo.yml: -------------------------------------------------------------------------------- 1 | --- 2 | eo: 3 | number: 4 | nth: 5 | ordinals: "." 6 | ordinalized: "%{number}." 7 | -------------------------------------------------------------------------------- /rails/ordinals/et.yml: -------------------------------------------------------------------------------- 1 | --- 2 | et: 3 | number: 4 | nth: 5 | ordinals: "." 6 | ordinalized: "%{number}." 7 | -------------------------------------------------------------------------------- /rails/ordinals/fa.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fa: 3 | number: 4 | nth: 5 | ordinals: "." 6 | ordinalized: "%{number}." 7 | -------------------------------------------------------------------------------- /rails/ordinals/fi.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fi: 3 | number: 4 | nth: 5 | ordinals: "." 6 | ordinalized: "%{number}." 7 | -------------------------------------------------------------------------------- /rails/ordinals/fr-CA.rb: -------------------------------------------------------------------------------- 1 | { 2 | "fr-CA": { 3 | number: { 4 | nth: { 5 | ordinals: -> (_key, number:, **_options) { 6 | if number.to_i.abs == 1 7 | 'er' 8 | else 9 | 'e' 10 | end 11 | }, 12 | 13 | ordinalized: -> (_key, number:, **_options) { 14 | "#{number}#{ActiveSupport::Inflector.ordinal(number)}" 15 | } 16 | } 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /rails/ordinals/fr-CH.rb: -------------------------------------------------------------------------------- 1 | { 2 | "fr-CH": { 3 | number: { 4 | nth: { 5 | ordinals: -> (_key, number:, **_options) { 6 | if number.to_i.abs == 1 7 | 'er' 8 | else 9 | 'e' 10 | end 11 | }, 12 | 13 | ordinalized: -> (_key, number:, **_options) { 14 | "#{number}#{ActiveSupport::Inflector.ordinal(number)}" 15 | } 16 | } 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /rails/ordinals/fr-FR.rb: -------------------------------------------------------------------------------- 1 | { 2 | "fr-FR": { 3 | number: { 4 | nth: { 5 | ordinals: -> (_key, number:, **_options) { 6 | if number.to_i.abs == 1 7 | 'er' 8 | else 9 | 'e' 10 | end 11 | }, 12 | 13 | ordinalized: -> (_key, number:, **_options) { 14 | "#{number}#{ActiveSupport::Inflector.ordinal(number)}" 15 | } 16 | } 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /rails/ordinals/fr.rb: -------------------------------------------------------------------------------- 1 | { 2 | fr: { 3 | number: { 4 | nth: { 5 | ordinals: -> (_key, number:, **_options) { 6 | if number.to_i.abs == 1 7 | 'er' 8 | else 9 | 'e' 10 | end 11 | }, 12 | 13 | ordinalized: -> (_key, number:, **_options) { 14 | "#{number}#{ActiveSupport::Inflector.ordinal(number)}" 15 | } 16 | } 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /rails/ordinals/gd.rb: -------------------------------------------------------------------------------- 1 | { 2 | gd: { 3 | number: { 4 | nth: { 5 | ordinals: -> (_key, number:, **_options) { 6 | case number.to_i.abs 7 | when 1 8 | 'ᵈ' 9 | when 2 10 | 'ⁿᵃ' 11 | when 3 12 | 'ˢ' 13 | else 14 | 'ᵐʰ' 15 | end 16 | }, 17 | 18 | ordinalized: -> (_key, number:, **_options) { 19 | "#{number}#{ActiveSupport::Inflector.ordinal(number)}" 20 | } 21 | } 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /rails/ordinals/hr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | hr: 3 | number: 4 | nth: 5 | ordinals: "." 6 | ordinalized: "%{number}." 7 | -------------------------------------------------------------------------------- /rails/ordinals/hu.yml: -------------------------------------------------------------------------------- 1 | --- 2 | hu: 3 | number: 4 | nth: 5 | ordinals: "." 6 | ordinalized: "%{number}." 7 | -------------------------------------------------------------------------------- /rails/ordinals/is.yml: -------------------------------------------------------------------------------- 1 | --- 2 | is: 3 | number: 4 | nth: 5 | ordinals: "." 6 | ordinalized: "%{number}." 7 | -------------------------------------------------------------------------------- /rails/ordinals/ka.yml: -------------------------------------------------------------------------------- 1 | --- 2 | ka: 3 | number: 4 | nth: 5 | ordinals: "." 6 | ordinalized: "%{number}." 7 | -------------------------------------------------------------------------------- /rails/ordinals/lb.yml: -------------------------------------------------------------------------------- 1 | --- 2 | lb: 3 | number: 4 | nth: 5 | ordinals: "." 6 | ordinalized: "%{number}." 7 | -------------------------------------------------------------------------------- /rails/ordinals/lt.yml: -------------------------------------------------------------------------------- 1 | --- 2 | lt: 3 | number: 4 | nth: 5 | ordinals: "." 6 | ordinalized: "%{number}." 7 | -------------------------------------------------------------------------------- /rails/ordinals/lv.yml: -------------------------------------------------------------------------------- 1 | --- 2 | lv: 3 | number: 4 | nth: 5 | ordinals: "." 6 | ordinalized: "%{number}." 7 | -------------------------------------------------------------------------------- /rails/ordinals/mk.yml: -------------------------------------------------------------------------------- 1 | --- 2 | mk: 3 | number: 4 | nth: 5 | ordinals: "." 6 | ordinalized: "%{number}." 7 | -------------------------------------------------------------------------------- /rails/ordinals/nb.yml: -------------------------------------------------------------------------------- 1 | --- 2 | nb: 3 | number: 4 | nth: 5 | ordinals: "." 6 | ordinalized: "%{number}." 7 | -------------------------------------------------------------------------------- /rails/ordinals/ne.yml: -------------------------------------------------------------------------------- 1 | --- 2 | ne: 3 | number: 4 | nth: 5 | ordinals: "." 6 | ordinalized: "%{number}." 7 | -------------------------------------------------------------------------------- /rails/ordinals/nn.yml: -------------------------------------------------------------------------------- 1 | --- 2 | nn: 3 | number: 4 | nth: 5 | ordinals: "." 6 | ordinalized: "%{number}." 7 | -------------------------------------------------------------------------------- /rails/ordinals/pl.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pl: 3 | number: 4 | nth: 5 | ordinals: "." 6 | ordinalized: "%{number}." 7 | -------------------------------------------------------------------------------- /rails/ordinals/sk.yml: -------------------------------------------------------------------------------- 1 | --- 2 | sk: 3 | number: 4 | nth: 5 | ordinals: "." 6 | ordinalized: "%{number}." 7 | -------------------------------------------------------------------------------- /rails/ordinals/sl.yml: -------------------------------------------------------------------------------- 1 | --- 2 | sl: 3 | number: 4 | nth: 5 | ordinals: "." 6 | ordinalized: "%{number}." 7 | -------------------------------------------------------------------------------- /rails/ordinals/sq.yml: -------------------------------------------------------------------------------- 1 | --- 2 | sq: 3 | number: 4 | nth: 5 | ordinals: "." 6 | ordinalized: "%{number}." 7 | -------------------------------------------------------------------------------- /rails/ordinals/sr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | sr: 3 | number: 4 | nth: 5 | ordinals: "." 6 | ordinalized: "%{number}." 7 | -------------------------------------------------------------------------------- /rails/ordinals/sw.yml: -------------------------------------------------------------------------------- 1 | --- 2 | sw: 3 | number: 4 | nth: 5 | ordinals: "." 6 | ordinalized: "%{number}." 7 | -------------------------------------------------------------------------------- /rails/ordinals/tr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | tr: 3 | number: 4 | nth: 5 | ordinals: "." 6 | ordinalized: "%{number}." 7 | -------------------------------------------------------------------------------- /rails/pluralization/ar.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/pluralization' 2 | 3 | { :ar => { 4 | :'i18n' => { 5 | :plural => { 6 | :keys => [:zero, :one, :two, :few, :many, :other], 7 | :rule => RailsI18n::Pluralization::Arabic.rule }}}} 8 | -------------------------------------------------------------------------------- /rails/pluralization/az.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/other' 2 | 3 | ::RailsI18n::Pluralization::Other.with_locale(:az) -------------------------------------------------------------------------------- /rails/pluralization/be.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/east_slavic' 2 | 3 | ::RailsI18n::Pluralization::EastSlavic.with_locale(:be) -------------------------------------------------------------------------------- /rails/pluralization/bg.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:bg) -------------------------------------------------------------------------------- /rails/pluralization/bn.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:bn) -------------------------------------------------------------------------------- /rails/pluralization/bs.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_few_other' 2 | 3 | ::RailsI18n::Pluralization::OneFewOther.with_locale(:bs) 4 | -------------------------------------------------------------------------------- /rails/pluralization/ca.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:ca) -------------------------------------------------------------------------------- /rails/pluralization/cs.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/west_slavic' 2 | 3 | ::RailsI18n::Pluralization::WestSlavic.with_locale(:cs) -------------------------------------------------------------------------------- /rails/pluralization/da.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:da) -------------------------------------------------------------------------------- /rails/pluralization/de-AT.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:'de-AT') -------------------------------------------------------------------------------- /rails/pluralization/de-CH.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:'de-CH') -------------------------------------------------------------------------------- /rails/pluralization/de-DE.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:'de-DE') -------------------------------------------------------------------------------- /rails/pluralization/de.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:de) -------------------------------------------------------------------------------- /rails/pluralization/el-CY.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:'el-CY') 4 | -------------------------------------------------------------------------------- /rails/pluralization/el.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:el) -------------------------------------------------------------------------------- /rails/pluralization/en-AU.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:'en-AU') -------------------------------------------------------------------------------- /rails/pluralization/en-CA.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:'en-CA') -------------------------------------------------------------------------------- /rails/pluralization/en-CY.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:'en-CY') 4 | -------------------------------------------------------------------------------- /rails/pluralization/en-GB.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:'en-GB') -------------------------------------------------------------------------------- /rails/pluralization/en-IE.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:'en-IE') 4 | -------------------------------------------------------------------------------- /rails/pluralization/en-IN.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:'en-IN') -------------------------------------------------------------------------------- /rails/pluralization/en-NZ.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:'en-NZ') -------------------------------------------------------------------------------- /rails/pluralization/en-TT.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:'en-TT') 4 | -------------------------------------------------------------------------------- /rails/pluralization/en-US.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:'en-US') 4 | -------------------------------------------------------------------------------- /rails/pluralization/en-ZA.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:'en-ZA') 4 | -------------------------------------------------------------------------------- /rails/pluralization/en.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:en) -------------------------------------------------------------------------------- /rails/pluralization/eo.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:eo) -------------------------------------------------------------------------------- /rails/pluralization/es-419.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:'es-419') -------------------------------------------------------------------------------- /rails/pluralization/es-AR.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:'es-AR') -------------------------------------------------------------------------------- /rails/pluralization/es-CL.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:'es-CL') -------------------------------------------------------------------------------- /rails/pluralization/es-CO.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:'es-CO') -------------------------------------------------------------------------------- /rails/pluralization/es-CR.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:'es-CR') 4 | -------------------------------------------------------------------------------- /rails/pluralization/es-EC.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:'es-EC') -------------------------------------------------------------------------------- /rails/pluralization/es-ES.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:'es-ES') -------------------------------------------------------------------------------- /rails/pluralization/es-MX.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:'es-MX') -------------------------------------------------------------------------------- /rails/pluralization/es-NI.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:'es-NI') 4 | -------------------------------------------------------------------------------- /rails/pluralization/es-PA.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:'es-PA') 4 | -------------------------------------------------------------------------------- /rails/pluralization/es-PE.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:'es-PE') -------------------------------------------------------------------------------- /rails/pluralization/es-US.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:'es-US') 4 | -------------------------------------------------------------------------------- /rails/pluralization/es-VE.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:'es-VE') -------------------------------------------------------------------------------- /rails/pluralization/es.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:es) -------------------------------------------------------------------------------- /rails/pluralization/et.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:et) -------------------------------------------------------------------------------- /rails/pluralization/eu.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:eu) -------------------------------------------------------------------------------- /rails/pluralization/fa.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/other' 2 | 3 | ::RailsI18n::Pluralization::Other.with_locale(:fa) -------------------------------------------------------------------------------- /rails/pluralization/fi.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:fi) -------------------------------------------------------------------------------- /rails/pluralization/fr-CA.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_upto_two_other' 2 | 3 | ::RailsI18n::Pluralization::OneUptoTwoOther.with_locale(:'fr-CA') -------------------------------------------------------------------------------- /rails/pluralization/fr-CH.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_upto_two_other' 2 | 3 | ::RailsI18n::Pluralization::OneUptoTwoOther.with_locale(:'fr-CH') -------------------------------------------------------------------------------- /rails/pluralization/fr-FR.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_upto_two_other' 2 | 3 | ::RailsI18n::Pluralization::OneUptoTwoOther.with_locale(:'fr-FR') -------------------------------------------------------------------------------- /rails/pluralization/fr.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_upto_two_other' 2 | 3 | ::RailsI18n::Pluralization::OneUptoTwoOther.with_locale(:fr) -------------------------------------------------------------------------------- /rails/pluralization/fy.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:fy) 4 | -------------------------------------------------------------------------------- /rails/pluralization/gd.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/pluralization' 2 | 3 | { :gd => { 4 | :'i18n' => { 5 | :plural => { 6 | :keys => [:one, :two, :few, :other], 7 | :rule => RailsI18n::Pluralization::ScottishGaelic.rule }}}} 8 | -------------------------------------------------------------------------------- /rails/pluralization/gl.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:gl) -------------------------------------------------------------------------------- /rails/pluralization/he.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:he) 4 | -------------------------------------------------------------------------------- /rails/pluralization/hi-IN.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_with_zero_other' 2 | 3 | ::RailsI18n::Pluralization::OneWithZeroOther.with_locale(:'hi-IN') -------------------------------------------------------------------------------- /rails/pluralization/hi.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_with_zero_other' 2 | 3 | ::RailsI18n::Pluralization::OneWithZeroOther.with_locale(:hi) -------------------------------------------------------------------------------- /rails/pluralization/hr.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_few_other' 2 | 3 | ::RailsI18n::Pluralization::OneFewOther.with_locale(:hr) 4 | -------------------------------------------------------------------------------- /rails/pluralization/hsb.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/pluralization' 2 | 3 | { :hsb => { 4 | :'i18n' => { 5 | :plural => { 6 | :keys => [:one, :two, :few, :other], 7 | :rule => RailsI18n::Pluralization::UpperSorbian.rule }}}} 8 | -------------------------------------------------------------------------------- /rails/pluralization/hu.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:hu) 4 | -------------------------------------------------------------------------------- /rails/pluralization/id.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/other' 2 | 3 | ::RailsI18n::Pluralization::Other.with_locale(:id) -------------------------------------------------------------------------------- /rails/pluralization/is.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:is) -------------------------------------------------------------------------------- /rails/pluralization/it-CH.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:'it-CH') -------------------------------------------------------------------------------- /rails/pluralization/it.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:it) -------------------------------------------------------------------------------- /rails/pluralization/ja.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/other' 2 | 3 | ::RailsI18n::Pluralization::Other.with_locale(:ja) -------------------------------------------------------------------------------- /rails/pluralization/ka.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:ka) -------------------------------------------------------------------------------- /rails/pluralization/kk.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:kk) 4 | -------------------------------------------------------------------------------- /rails/pluralization/km.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/other' 2 | 3 | ::RailsI18n::Pluralization::Other.with_locale(:km) -------------------------------------------------------------------------------- /rails/pluralization/kn.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/other' 2 | 3 | ::RailsI18n::Pluralization::Other.with_locale(:kn) -------------------------------------------------------------------------------- /rails/pluralization/ko.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/other' 2 | 3 | ::RailsI18n::Pluralization::Other.with_locale(:ko) -------------------------------------------------------------------------------- /rails/pluralization/lo.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/other' 2 | 3 | ::RailsI18n::Pluralization::Other.with_locale(:lo) -------------------------------------------------------------------------------- /rails/pluralization/lt.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/pluralization' 2 | 3 | { :lt => { 4 | :'i18n' => { 5 | :plural => { 6 | :keys => [:one, :few, :other], 7 | :rule => RailsI18n::Pluralization::Lithuanian.rule }}}} 8 | -------------------------------------------------------------------------------- /rails/pluralization/lv.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/pluralization' 2 | 3 | { :lv => { 4 | :'i18n' => { 5 | :plural => { 6 | :keys => [:one, :other], 7 | :rule => RailsI18n::Pluralization::Latvian.rule }}}} 8 | -------------------------------------------------------------------------------- /rails/pluralization/mg.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_with_zero_other' 2 | 3 | ::RailsI18n::Pluralization::OneWithZeroOther.with_locale(:mg) -------------------------------------------------------------------------------- /rails/pluralization/mk.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/pluralization' 2 | 3 | { :mk => { 4 | :'i18n' => { 5 | :plural => { 6 | :keys => [:one, :other], 7 | :rule => RailsI18n::Pluralization::Macedonian.rule }}}} 8 | -------------------------------------------------------------------------------- /rails/pluralization/ml.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_with_zero_other' 2 | 3 | ::RailsI18n::Pluralization::OneWithZeroOther.with_locale(:ml) 4 | -------------------------------------------------------------------------------- /rails/pluralization/mn.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:mn) -------------------------------------------------------------------------------- /rails/pluralization/mr-IN.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_with_zero_other' 2 | 3 | ::RailsI18n::Pluralization::OneWithZeroOther.with_locale(:'mr-IN') 4 | -------------------------------------------------------------------------------- /rails/pluralization/ms.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/other' 2 | 3 | ::RailsI18n::Pluralization::Other.with_locale(:ms) -------------------------------------------------------------------------------- /rails/pluralization/nb.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:nb) -------------------------------------------------------------------------------- /rails/pluralization/ne.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:ne) -------------------------------------------------------------------------------- /rails/pluralization/nl.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:nl) -------------------------------------------------------------------------------- /rails/pluralization/nn.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:nn) -------------------------------------------------------------------------------- /rails/pluralization/oc.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:oc) 4 | -------------------------------------------------------------------------------- /rails/pluralization/or.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_with_zero_other' 2 | 3 | ::RailsI18n::Pluralization::OneWithZeroOther.with_locale(:or) -------------------------------------------------------------------------------- /rails/pluralization/pa.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_with_zero_other' 2 | 3 | ::RailsI18n::Pluralization::OneWithZeroOther.with_locale(:pa) -------------------------------------------------------------------------------- /rails/pluralization/pap-AW.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/other' 2 | 3 | ::RailsI18n::Pluralization::Other.with_locale(:'pap-AW') 4 | -------------------------------------------------------------------------------- /rails/pluralization/pap-CW.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/other' 2 | 3 | ::RailsI18n::Pluralization::Other.with_locale(:'pap-CW') 4 | -------------------------------------------------------------------------------- /rails/pluralization/pl.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/pluralization' 2 | 3 | { :pl => { 4 | :'i18n' => { 5 | :plural => { 6 | :keys => [:one, :few, :many, :other], 7 | :rule => RailsI18n::Pluralization::Polish.rule }}}} 8 | -------------------------------------------------------------------------------- /rails/pluralization/pt-BR.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:'pt-BR') 4 | -------------------------------------------------------------------------------- /rails/pluralization/pt.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:pt) 4 | -------------------------------------------------------------------------------- /rails/pluralization/ro.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/romanian' 2 | 3 | ::RailsI18n::Pluralization::Romanian.with_locale(:ro) -------------------------------------------------------------------------------- /rails/pluralization/ru.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/east_slavic' 2 | 3 | ::RailsI18n::Pluralization::EastSlavic.with_locale(:ru) -------------------------------------------------------------------------------- /rails/pluralization/sc.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:sc) 4 | -------------------------------------------------------------------------------- /rails/pluralization/sk.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/west_slavic' 2 | 3 | ::RailsI18n::Pluralization::WestSlavic.with_locale(:sk) -------------------------------------------------------------------------------- /rails/pluralization/sl.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/pluralization' 2 | 3 | { :sl => { 4 | :'i18n' => { 5 | :plural => { 6 | :keys => [:one, :two, :few, :other], 7 | :rule => RailsI18n::Pluralization::Slovenian.rule }}}} 8 | -------------------------------------------------------------------------------- /rails/pluralization/sr.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_few_other' 2 | 3 | ::RailsI18n::Pluralization::OneFewOther.with_locale(:sr) 4 | -------------------------------------------------------------------------------- /rails/pluralization/st.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:st) 4 | -------------------------------------------------------------------------------- /rails/pluralization/sv-SE.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:'sv-SE') 4 | -------------------------------------------------------------------------------- /rails/pluralization/sv.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:sv) -------------------------------------------------------------------------------- /rails/pluralization/sw.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:sw) -------------------------------------------------------------------------------- /rails/pluralization/ta.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:ta) -------------------------------------------------------------------------------- /rails/pluralization/th.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/other' 2 | 3 | ::RailsI18n::Pluralization::Other.with_locale(:th) -------------------------------------------------------------------------------- /rails/pluralization/tl.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_with_zero_other' 2 | 3 | ::RailsI18n::Pluralization::OneWithZeroOther.with_locale(:tl) -------------------------------------------------------------------------------- /rails/pluralization/tr.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:tr) 4 | -------------------------------------------------------------------------------- /rails/pluralization/uk.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/east_slavic' 2 | 3 | ::RailsI18n::Pluralization::EastSlavic.with_locale(:uk) -------------------------------------------------------------------------------- /rails/pluralization/ur.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/one_other' 2 | 3 | ::RailsI18n::Pluralization::OneOther.with_locale(:ur) -------------------------------------------------------------------------------- /rails/pluralization/vi.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/other' 2 | 3 | ::RailsI18n::Pluralization::Other.with_locale(:vi) -------------------------------------------------------------------------------- /rails/pluralization/wo.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/other' 2 | 3 | ::RailsI18n::Pluralization::Other.with_locale(:wo) -------------------------------------------------------------------------------- /rails/pluralization/zh-CN.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/other' 2 | 3 | ::RailsI18n::Pluralization::Other.with_locale(:'zh-CN') 4 | -------------------------------------------------------------------------------- /rails/pluralization/zh-HK.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/other' 2 | 3 | ::RailsI18n::Pluralization::Other.with_locale(:'zh-HK') 4 | -------------------------------------------------------------------------------- /rails/pluralization/zh-TW.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/other' 2 | 3 | ::RailsI18n::Pluralization::Other.with_locale(:'zh-TW') 4 | -------------------------------------------------------------------------------- /rails/pluralization/zh-YUE.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/common_pluralizations/other' 2 | 3 | ::RailsI18n::Pluralization::Other.with_locale(:'zh-YUE') 4 | -------------------------------------------------------------------------------- /rails/rails/action_view.yml: -------------------------------------------------------------------------------- 1 | "en": 2 | # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words() 3 | datetime: 4 | distance_in_words: 5 | half_a_minute: "half a minute" 6 | less_than_x_seconds: 7 | one: "less than 1 second" 8 | other: "less than %{count} seconds" 9 | x_seconds: 10 | one: "1 second" 11 | other: "%{count} seconds" 12 | less_than_x_minutes: 13 | one: "less than a minute" 14 | other: "less than %{count} minutes" 15 | x_minutes: 16 | one: "1 minute" 17 | other: "%{count} minutes" 18 | about_x_hours: 19 | one: "about 1 hour" 20 | other: "about %{count} hours" 21 | x_days: 22 | one: "1 day" 23 | other: "%{count} days" 24 | about_x_months: 25 | one: "about 1 month" 26 | other: "about %{count} months" 27 | x_months: 28 | one: "1 month" 29 | other: "%{count} months" 30 | about_x_years: 31 | one: "about 1 year" 32 | other: "about %{count} years" 33 | over_x_years: 34 | one: "over 1 year" 35 | other: "over %{count} years" 36 | almost_x_years: 37 | one: "almost 1 year" 38 | other: "almost %{count} years" 39 | prompts: 40 | year: "Year" 41 | month: "Month" 42 | day: "Day" 43 | hour: "Hour" 44 | minute: "Minute" 45 | second: "Seconds" 46 | 47 | helpers: 48 | select: 49 | # Default value for :prompt => true in FormOptionsHelper 50 | prompt: "Please select" 51 | 52 | # Default translation keys for submit and button FormHelper 53 | submit: 54 | create: 'Create %{model}' 55 | update: 'Update %{model}' 56 | submit: 'Save %{model}' 57 | -------------------------------------------------------------------------------- /rails/rails/active_model.yml: -------------------------------------------------------------------------------- 1 | en: 2 | errors: 3 | # The default format to use in full error messages. 4 | format: "%{attribute} %{message}" 5 | 6 | # The values :model, :attribute and :value are always available for interpolation 7 | # The value :count is available when applicable. Can be used for pluralization. 8 | messages: 9 | model_invalid: "Validation failed: %{errors}" 10 | inclusion: "is not included in the list" 11 | exclusion: "is reserved" 12 | invalid: "is invalid" 13 | confirmation: "doesn't match %{attribute}" 14 | accepted: "must be accepted" 15 | empty: "can't be empty" 16 | blank: "can't be blank" 17 | present: "must be blank" 18 | too_long: 19 | one: "is too long (maximum is 1 character)" 20 | other: "is too long (maximum is %{count} characters)" 21 | password_too_long: "is too long" 22 | too_short: 23 | one: "is too short (minimum is 1 character)" 24 | other: "is too short (minimum is %{count} characters)" 25 | wrong_length: 26 | one: "is the wrong length (should be 1 character)" 27 | other: "is the wrong length (should be %{count} characters)" 28 | not_a_number: "is not a number" 29 | not_an_integer: "must be an integer" 30 | greater_than: "must be greater than %{count}" 31 | greater_than_or_equal_to: "must be greater than or equal to %{count}" 32 | equal_to: "must be equal to %{count}" 33 | less_than: "must be less than %{count}" 34 | less_than_or_equal_to: "must be less than or equal to %{count}" 35 | other_than: "must be other than %{count}" 36 | in: "must be in %{count}" 37 | odd: "must be odd" 38 | even: "must be even" 39 | -------------------------------------------------------------------------------- /rails/rails/active_record.yml: -------------------------------------------------------------------------------- 1 | en: 2 | # Attributes names common to most models 3 | #attributes: 4 | #created_at: "Created at" 5 | #updated_at: "Updated at" 6 | 7 | # Default error messages 8 | errors: 9 | messages: 10 | required: "must exist" 11 | taken: "has already been taken" 12 | 13 | # Active Record models configuration 14 | activerecord: 15 | errors: 16 | messages: 17 | record_invalid: "Validation failed: %{errors}" 18 | restrict_dependent_destroy: 19 | has_one: "Cannot delete record because a dependent %{record} exists" 20 | has_many: "Cannot delete record because dependent %{record} exist" 21 | # Append your own errors here or at the model/attributes scope. 22 | 23 | # You can define own errors for models or model attributes. 24 | # The values :model, :attribute and :value are always available for interpolation. 25 | # 26 | # For example, 27 | # models: 28 | # user: 29 | # blank: "This is a custom blank message for %{model}: %{attribute}" 30 | # attributes: 31 | # login: 32 | # blank: "This is a custom blank message for User login" 33 | # Will define custom blank validation message for User model and 34 | # custom blank validation message for login attribute of User model. 35 | #models: 36 | 37 | # Translate model names. Used in Model.human_name(). 38 | #models: 39 | # For example, 40 | # user: "Dude" 41 | # will translate User model name to "Dude" 42 | 43 | # Translate model attribute names. Used in Model.human_attribute_name(attribute). 44 | #attributes: 45 | # For example, 46 | # user: 47 | # login: "Handle" 48 | # will translate User attribute "login" as "Handle" 49 | -------------------------------------------------------------------------------- /rails/rails/active_support.yml: -------------------------------------------------------------------------------- 1 | en: 2 | date: 3 | formats: 4 | # Use the strftime parameters for formats. 5 | # When no format has been given, it uses default. 6 | # You can provide other formats here if you like! 7 | default: "%Y-%m-%d" 8 | short: "%b %d" 9 | long: "%B %d, %Y" 10 | 11 | day_names: [Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday] 12 | abbr_day_names: [Sun, Mon, Tue, Wed, Thu, Fri, Sat] 13 | 14 | # Don't forget the nil at the beginning; there's no such thing as a 0th month 15 | month_names: [~, January, February, March, April, May, June, July, August, September, October, November, December] 16 | abbr_month_names: [~, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec] 17 | # Used in date_select and datetime_select. 18 | order: 19 | - year 20 | - month 21 | - day 22 | 23 | time: 24 | formats: 25 | default: "%a, %d %b %Y %H:%M:%S %z" 26 | short: "%d %b %H:%M" 27 | long: "%B %d, %Y %H:%M" 28 | am: "am" 29 | pm: "pm" 30 | 31 | # Used in array.to_sentence. 32 | support: 33 | array: 34 | words_connector: ", " 35 | two_words_connector: " and " 36 | last_word_connector: ", and " 37 | number: 38 | # Used in NumberHelper.number_to_delimited() 39 | # These are also the defaults for 'currency', 'percentage', 'precision', and 'human' 40 | format: 41 | # Sets the separator between the units, for more precision (e.g. 1.0 / 2.0 == 0.5) 42 | separator: "." 43 | # Delimits thousands (e.g. 1,000,000 is a million) (always in groups of three) 44 | delimiter: "," 45 | # Number of decimals, behind the separator (the number 1 with a precision of 2 gives: 1.00) 46 | precision: 3 47 | # Determine how rounding is performed (see BigDecimal::mode) 48 | round_mode: default 49 | # If set to true, precision will mean the number of significant digits instead 50 | # of the number of decimal digits (1234 with precision 2 becomes 1200, 1.23543 becomes 1.2) 51 | significant: false 52 | # If set, the zeros after the decimal separator will always be stripped (e.g.: 1.200 will be 1.2) 53 | strip_insignificant_zeros: false 54 | 55 | # Used in NumberHelper.number_to_currency() 56 | currency: 57 | format: 58 | # Where is the currency sign? %u is the currency unit, %n is the number (default: $5.00) 59 | format: "%u%n" 60 | negative_format: "-%u%n" 61 | unit: "$" 62 | # These six are to override number.format and are optional 63 | separator: "." 64 | delimiter: "," 65 | precision: 2 66 | # round_mode: 67 | significant: false 68 | strip_insignificant_zeros: false 69 | 70 | # Used in NumberHelper.number_to_percentage() 71 | percentage: 72 | format: 73 | # These five are to override number.format and are optional 74 | # separator: 75 | delimiter: "" 76 | # precision: 77 | # significant: false 78 | # strip_insignificant_zeros: false 79 | format: "%n%" 80 | 81 | # Used in NumberHelper.number_to_rounded() 82 | precision: 83 | format: 84 | # These five are to override number.format and are optional 85 | # separator: 86 | delimiter: "" 87 | # precision: 88 | # significant: false 89 | # strip_insignificant_zeros: false 90 | 91 | # Used in NumberHelper.number_to_human_size() and NumberHelper.number_to_human() 92 | human: 93 | format: 94 | # These six are to override number.format and are optional 95 | # separator: 96 | delimiter: "" 97 | precision: 3 98 | # round_mode: 99 | significant: true 100 | strip_insignificant_zeros: true 101 | # Used in number_to_human_size() 102 | storage_units: 103 | # Storage units output formatting. 104 | # %u is the storage unit, %n is the number (default: 2 MB) 105 | format: "%n %u" 106 | units: 107 | byte: 108 | one: "Byte" 109 | other: "Bytes" 110 | kb: "KB" 111 | mb: "MB" 112 | gb: "GB" 113 | tb: "TB" 114 | pb: "PB" 115 | eb: "EB" 116 | zb: "ZB" 117 | # Used in NumberHelper.number_to_human() 118 | decimal_units: 119 | format: "%n %u" 120 | # Decimal units output formatting 121 | # By default we will only quantify some of the exponents 122 | # but the commented ones might be defined or overridden 123 | # by the user. 124 | units: 125 | # femto: Quadrillionth 126 | # pico: Trillionth 127 | # nano: Billionth 128 | # micro: Millionth 129 | # mili: Thousandth 130 | # centi: Hundredth 131 | # deci: Tenth 132 | unit: "" 133 | # ten: 134 | # one: Ten 135 | # other: Tens 136 | # hundred: Hundred 137 | thousand: Thousand 138 | million: Million 139 | billion: Billion 140 | trillion: Trillion 141 | quadrillion: Quadrillion 142 | -------------------------------------------------------------------------------- /rails/rails/normalized/action_view.yml: -------------------------------------------------------------------------------- 1 | --- 2 | en: 3 | datetime: 4 | distance_in_words: 5 | about_x_hours: 6 | one: about 1 hour 7 | other: about %{count} hours 8 | about_x_months: 9 | one: about 1 month 10 | other: about %{count} months 11 | about_x_years: 12 | one: about 1 year 13 | other: about %{count} years 14 | almost_x_years: 15 | one: almost 1 year 16 | other: almost %{count} years 17 | half_a_minute: half a minute 18 | less_than_x_seconds: 19 | one: less than 1 second 20 | other: less than %{count} seconds 21 | less_than_x_minutes: 22 | one: less than a minute 23 | other: less than %{count} minutes 24 | over_x_years: 25 | one: over 1 year 26 | other: over %{count} years 27 | x_seconds: 28 | one: 1 second 29 | other: "%{count} seconds" 30 | x_minutes: 31 | one: 1 minute 32 | other: "%{count} minutes" 33 | x_days: 34 | one: 1 day 35 | other: "%{count} days" 36 | x_months: 37 | one: 1 month 38 | other: "%{count} months" 39 | prompts: 40 | second: Seconds 41 | minute: Minute 42 | hour: Hour 43 | day: Day 44 | month: Month 45 | year: Year 46 | helpers: 47 | select: 48 | prompt: Please select 49 | submit: 50 | create: Create %{model} 51 | submit: Save %{model} 52 | update: Update %{model} 53 | -------------------------------------------------------------------------------- /rails/rails/normalized/active_model.yml: -------------------------------------------------------------------------------- 1 | --- 2 | en: 3 | errors: 4 | format: "%{attribute} %{message}" 5 | messages: 6 | accepted: must be accepted 7 | blank: can't be blank 8 | confirmation: doesn't match %{attribute} 9 | empty: can't be empty 10 | equal_to: must be equal to %{count} 11 | even: must be even 12 | exclusion: is reserved 13 | greater_than: must be greater than %{count} 14 | greater_than_or_equal_to: must be greater than or equal to %{count} 15 | in: must be in %{count} 16 | inclusion: is not included in the list 17 | invalid: is invalid 18 | less_than: must be less than %{count} 19 | less_than_or_equal_to: must be less than or equal to %{count} 20 | model_invalid: 'Validation failed: %{errors}' 21 | not_a_number: is not a number 22 | not_an_integer: must be an integer 23 | odd: must be odd 24 | other_than: must be other than %{count} 25 | password_too_long: is too long 26 | present: must be blank 27 | too_long: 28 | one: is too long (maximum is 1 character) 29 | other: is too long (maximum is %{count} characters) 30 | too_short: 31 | one: is too short (minimum is 1 character) 32 | other: is too short (minimum is %{count} characters) 33 | wrong_length: 34 | one: is the wrong length (should be 1 character) 35 | other: is the wrong length (should be %{count} characters) 36 | -------------------------------------------------------------------------------- /rails/rails/normalized/active_record.yml: -------------------------------------------------------------------------------- 1 | --- 2 | en: 3 | activerecord: 4 | errors: 5 | messages: 6 | record_invalid: 'Validation failed: %{errors}' 7 | restrict_dependent_destroy: 8 | has_one: Cannot delete record because a dependent %{record} exists 9 | has_many: Cannot delete record because dependent %{record} exist 10 | errors: 11 | messages: 12 | required: must exist 13 | taken: has already been taken 14 | -------------------------------------------------------------------------------- /rails/rails/normalized/active_support.yml: -------------------------------------------------------------------------------- 1 | --- 2 | en: 3 | date: 4 | abbr_day_names: 5 | - Sun 6 | - Mon 7 | - Tue 8 | - Wed 9 | - Thu 10 | - Fri 11 | - Sat 12 | abbr_month_names: 13 | - 14 | - Jan 15 | - Feb 16 | - Mar 17 | - Apr 18 | - May 19 | - Jun 20 | - Jul 21 | - Aug 22 | - Sep 23 | - Oct 24 | - Nov 25 | - Dec 26 | day_names: 27 | - Sunday 28 | - Monday 29 | - Tuesday 30 | - Wednesday 31 | - Thursday 32 | - Friday 33 | - Saturday 34 | formats: 35 | default: "%Y-%m-%d" 36 | long: "%B %d, %Y" 37 | short: "%b %d" 38 | month_names: 39 | - 40 | - January 41 | - February 42 | - March 43 | - April 44 | - May 45 | - June 46 | - July 47 | - August 48 | - September 49 | - October 50 | - November 51 | - December 52 | order: 53 | - year 54 | - month 55 | - day 56 | number: 57 | currency: 58 | format: 59 | delimiter: "," 60 | format: "%u%n" 61 | negative_format: "-%u%n" 62 | precision: 2 63 | separator: "." 64 | significant: false 65 | strip_insignificant_zeros: false 66 | unit: "$" 67 | format: 68 | delimiter: "," 69 | precision: 3 70 | round_mode: default 71 | separator: "." 72 | significant: false 73 | strip_insignificant_zeros: false 74 | human: 75 | decimal_units: 76 | format: "%n %u" 77 | units: 78 | billion: Billion 79 | million: Million 80 | quadrillion: Quadrillion 81 | thousand: Thousand 82 | trillion: Trillion 83 | unit: '' 84 | format: 85 | delimiter: '' 86 | precision: 3 87 | significant: true 88 | strip_insignificant_zeros: true 89 | storage_units: 90 | format: "%n %u" 91 | units: 92 | byte: 93 | one: Byte 94 | other: Bytes 95 | eb: EB 96 | gb: GB 97 | kb: KB 98 | mb: MB 99 | pb: PB 100 | tb: TB 101 | zb: ZB 102 | percentage: 103 | format: 104 | delimiter: '' 105 | format: "%n%" 106 | precision: 107 | format: 108 | delimiter: '' 109 | support: 110 | array: 111 | last_word_connector: ", and " 112 | two_words_connector: " and " 113 | words_connector: ", " 114 | time: 115 | am: am 116 | formats: 117 | default: "%a, %d %b %Y %H:%M:%S %z" 118 | long: "%B %d, %Y %H:%M" 119 | short: "%d %b %H:%M" 120 | pm: pm 121 | -------------------------------------------------------------------------------- /rails/test/lib/check_locales.rb: -------------------------------------------------------------------------------- 1 | ## 2 | # A utility class to check locale files with locales.thor 3 | # and rspec 4 | # Needs to inherit from Thor: https://github.com/rails/thor/wiki/Invocations 5 | 6 | class CheckLocales < Thor 7 | 8 | @path_to_locales = 'rails/locale' 9 | @path_to_pluralizations = 'rails/pluralization' 10 | @en_line_count = File.open(@path_to_locales+'/en.yml').readlines().size 11 | 12 | def self.list_locales 13 | Dir.chdir(@path_to_locales) 14 | locale_files = Dir.glob('**/*.yml') 15 | locales = locale_files.map{ |f| File.basename(f, '.yml') } 16 | Dir.chdir('../..') # reset working directory 17 | return locales.sort 18 | end 19 | 20 | # Returns the number of available locales 21 | def self.count 22 | return self.list_locales.count 23 | end 24 | 25 | def self.list_pluralizations 26 | Dir.chdir(@path_to_pluralizations) 27 | pluralization_files = Dir.glob('*.rb') 28 | pluralizations = pluralization_files.map{ |f| File.basename(f, '.rb') } 29 | Dir.chdir('../..') # reset working directory 30 | return pluralizations.sort 31 | end 32 | 33 | # Returns pluralizations that do not have a locale file 34 | def self.orphan_pluralizations 35 | return self.list_pluralizations.difference(self.list_locales) 36 | end 37 | 38 | # Returns locales that do not have a pluralization file 39 | def self.orphan_locales 40 | return self.list_locales.difference(self.list_pluralizations) 41 | end 42 | 43 | # Returns the line count of the en.yml file 44 | def self.en_line_count 45 | @en_line_count 46 | end 47 | 48 | # Helps identify anomalies in the locale.yml files 49 | # returns a hash of locale files with their line count 50 | # in the format 'locale_file' : line count 51 | # {'locale1.yml': 100, 'locale2.yml': 111 ... } 52 | def self.line_counts 53 | file_line_count = {} 54 | Dir.chdir(@path_to_locales) 55 | locale_files = Dir.glob('**/*.yml') 56 | for f in locale_files do 57 | line_count = File.open(f).readlines().size 58 | file_line_count[f] = line_count 59 | end 60 | return file_line_count 61 | end 62 | end 63 | 64 | -------------------------------------------------------------------------------- /rails/test/lib/key_structure.rb: -------------------------------------------------------------------------------- 1 | require 'rubygems' 2 | require 'i18n' 3 | require 'date' 4 | 5 | I18n.enforce_available_locales = false 6 | 7 | module I18n 8 | module Backend 9 | class Simple 10 | public :translations, :init_translations 11 | end 12 | end 13 | end 14 | 15 | class KeyStructure 16 | PLURALIZATION_KEYS = ['zero', 'one', 'two', 'few', 'many', 'other'] 17 | 18 | class << self 19 | def check(locale) 20 | missing_keys = [] 21 | broken_keys = [] 22 | missing_pluralizations = [] 23 | 24 | init_backend(locale) 25 | 26 | I18n.locale = locale.to_sym 27 | translations = flatten_hash(I18n.backend.translations[:en]) 28 | translations.delete('i18n.plural.rule') 29 | pluralizations = find_pluralizations(I18n.backend.translations[:en]) 30 | translations.keys.sort.each do |key| 31 | begin 32 | case key 33 | when /^date\.formats\.(\w+)/ 34 | I18n.l Date.today, :format => $1.to_sym, :raise => true 35 | when /^time\.formats\.(\w+)/ 36 | I18n.l Time.now, :format => $1.to_sym, :raise => true 37 | else 38 | I18n.t key, :raise => true 39 | end 40 | 41 | if pluralizations.has_key?(key) 42 | [0, 1, 2, 3, 5, 6, 10, 11, 100, 1000000, 10.2].each do |count| 43 | I18n.t key, :count => count, :model => 'model', :raise => true 44 | end 45 | end 46 | rescue I18n::InvalidPluralizationData => e 47 | missing_pluralizations << key 48 | rescue I18n::MissingTranslationData 49 | missing_keys << key 50 | rescue Exception 51 | broken_keys << key 52 | end 53 | end 54 | 55 | return missing_keys, broken_keys, missing_pluralizations 56 | end 57 | 58 | private 59 | def flatten_hash(data, prefix = '', result = {}) 60 | data.each do |key, value| 61 | current_prefix = prefix.empty? ? key.to_s : "#{prefix}.#{key}" 62 | 63 | if !value.is_a?(Hash) || pluralization_data?(value) 64 | result[current_prefix] = value 65 | else 66 | flatten_hash(value, current_prefix, result) 67 | end 68 | end 69 | 70 | result 71 | end 72 | 73 | def find_pluralizations(data, prefix = '', result = {}) 74 | data.each do |key, value| 75 | current_prefix = prefix.empty? ? key.to_s : "#{prefix}.#{key}" 76 | 77 | if value.is_a?(Hash) 78 | if pluralization_data?(value) 79 | result[current_prefix] = value 80 | else 81 | find_pluralizations(value, current_prefix, result) 82 | end 83 | end 84 | end 85 | 86 | result 87 | end 88 | 89 | def pluralization_data?(data) 90 | keys = data.keys.map(&:to_s) 91 | keys.all? {|k| PLURALIZATION_KEYS.include?(k) } 92 | end 93 | 94 | def init_backend(locale) 95 | I18n.load_path = [] 96 | I18n.reload! 97 | 98 | I18n.load_path += Dir[File.dirname(__FILE__) + "/../../rails/*.yml"] 99 | 100 | path = File.dirname(__FILE__) + "/../../locale/#{locale}.rb" 101 | 102 | unless File.exist?(path) 103 | path = File.dirname(__FILE__) + "/../../locale/#{locale}.yml" 104 | end 105 | 106 | unless File.exist?(path) 107 | raise "No locale file exist for :#{locale}." 108 | end 109 | 110 | I18n.load_path += [path] 111 | 112 | pluralization = File.dirname(__FILE__) + "/../../pluralization/#{locale}.rb" 113 | I18n.load_path += [pluralization] if File.exist?(pluralization) 114 | I18n.backend.class.send(:include, I18n::Backend::Pluralization) 115 | 116 | I18n.backend.init_translations 117 | end 118 | end 119 | end 120 | -------------------------------------------------------------------------------- /rails/test/lib/normalize.rb: -------------------------------------------------------------------------------- 1 | require 'active_support' 2 | 3 | # Inspired from https://stackoverflow.com/questions/7275952/how-can-i-sort-yaml-files/13368706#13368706 4 | # 5 | # Used to standardize the locale yaml files 6 | # Sorts all the keys alphabetically 7 | # Ensures that the quoting is the simplest 8 | # Ensures that the line break width is respected 9 | module Normalize 10 | PLURALIZATION_KEYS = %w(zero one two few many other).freeze 11 | ACTIVERECORD_KEYS = %w(has_one has_many).freeze 12 | DATETIME_KEYS = %w(second minute hour day month year).freeze 13 | 14 | class << self 15 | def deep_sort(object) 16 | return object unless object.is_a?(Hash) 17 | 18 | hash = RUBY_VERSION >= '1.9' ? Hash.new : ActiveSupport::OrderedHash.new 19 | object.each { |k, v| hash[k] = deep_sort(v) } 20 | 21 | keys = hash.keys.map(&:to_s) 22 | sorted = hash.sort do |a, b| 23 | a_key = a[0].to_s 24 | b_key = b[0].to_s 25 | if (keys - PLURALIZATION_KEYS).empty? 26 | PLURALIZATION_KEYS.index(a_key) <=> PLURALIZATION_KEYS.index(b_key) 27 | elsif (keys - ACTIVERECORD_KEYS).empty? 28 | ACTIVERECORD_KEYS.index(a_key) <=> ACTIVERECORD_KEYS.index(b_key) 29 | elsif (keys - DATETIME_KEYS).empty? 30 | DATETIME_KEYS.index(a_key) <=> DATETIME_KEYS.index(b_key) 31 | else 32 | a_matches = a_key.match(/^(.+)(#{DATETIME_KEYS.join('|')})(.*)$/) 33 | b_matches = b_key.match(/^(.+)(#{DATETIME_KEYS.join('|')})(.*)$/) 34 | if a_matches.nil? || b_matches.nil? 35 | a_key <=> b_key 36 | else 37 | s1 = format('%s%s', a_matches[1], DATETIME_KEYS.index(a_matches[2])) 38 | s2 = format('%s%s', b_matches[1], DATETIME_KEYS.index(b_matches[2])) 39 | s1 <=> s2 40 | end 41 | end 42 | end 43 | 44 | hash.class[sorted] 45 | end 46 | end 47 | end 48 | -------------------------------------------------------------------------------- /rails/test/structure.rb: -------------------------------------------------------------------------------- 1 | require File.dirname(__FILE__) + '/lib/key_structure.rb' 2 | 3 | if ARGV.first 4 | locales = [ARGV.first] 5 | else 6 | locales = [] 7 | Dir.glob(File.dirname(__FILE__) + '/../locale/*.{rb,yml}') do |filename| 8 | if md = filename.match(/([\w\-]+)\.(rb|yml)$/) 9 | locales << md[1] 10 | end 11 | end 12 | end 13 | 14 | locales.sort.each do |locale| 15 | missing_keys = {} 16 | [2, 3].each do |version| 17 | missing_keys[version] = KeyStructure.check(locale, version) 18 | end 19 | if missing_keys[2].empty? && missing_keys[3].empty? 20 | puts "The structure is good for Rails 2 and 3." if ARGV.first 21 | else 22 | [2, 3].each do |version| 23 | unless missing_keys[version].empty? 24 | if ARGV.first 25 | puts "The following keys are missing for Rails #{version}." 26 | missing_keys[version].each do |key| 27 | puts " " + key 28 | end 29 | else 30 | puts "[#{locale}] Some keys are missing for Rails #{version}." 31 | end 32 | end 33 | end 34 | end 35 | end 36 | -------------------------------------------------------------------------------- /rails/transliteration/az.yml: -------------------------------------------------------------------------------- 1 | az: 2 | i18n: 3 | transliterate: 4 | rule: 5 | c: "j" 6 | ç: "ch" 7 | ə: "e" 8 | ğ: "gh" 9 | x: "kh" 10 | ı: "i" 11 | j: "zh" 12 | q: "g" 13 | ş: "sh" 14 | ü: "u" 15 | C: "J" 16 | Ç: "Ch" 17 | Ə: "E" 18 | Ğ: "Gh" 19 | X: "Kh" 20 | İ: "I" 21 | J: "Zh" 22 | Q: "G" 23 | Ş: "Sh" 24 | Ü: "U" 25 | -------------------------------------------------------------------------------- /rails/transliteration/bg.yml: -------------------------------------------------------------------------------- 1 | bg: 2 | i18n: 3 | transliterate: 4 | rule: 5 | а: "a" 6 | А: "A" 7 | б: "b" 8 | Б: "B" 9 | в: "v" 10 | В: "V" 11 | г: "g" 12 | Г: "G" 13 | д: "d" 14 | Д: "D" 15 | е: "e" 16 | Е: "E" 17 | ж: "zh" 18 | Ж: "Zh" 19 | з: "z" 20 | З: "Z" 21 | и: "i" 22 | И: "I" 23 | й: "y" 24 | Й: "Y" 25 | к: "k" 26 | К: "K" 27 | л: "l" 28 | Л: "L" 29 | м: "m" 30 | М: "M" 31 | н: "n" 32 | Н: "N" 33 | о: "o" 34 | О: "O" 35 | п: "p" 36 | П: "P" 37 | р: "r" 38 | Р: "R" 39 | с: "s" 40 | С: "S" 41 | т: "t" 42 | Т: "T" 43 | у: "u" 44 | У: "U" 45 | ф: "f" 46 | Ф: "F" 47 | х: "h" 48 | Х: "H" 49 | ц: "ts" 50 | Ц: "Ts" 51 | ч: "ch" 52 | Ч: "Ch" 53 | ш: "sh" 54 | Ш: "Sh" 55 | щ: "sht" 56 | Щ: "Sht" 57 | ъ: "a" 58 | Ъ: "A" 59 | ь: "y" 60 | Ь: "Y" 61 | ю: "yu" 62 | Ю: "Yu" 63 | я: "ya" 64 | Я: "Ya" -------------------------------------------------------------------------------- /rails/transliteration/ca.yml: -------------------------------------------------------------------------------- 1 | ca: 2 | i18n: 3 | transliterate: 4 | rule: 5 | à: "a" 6 | á: "a" 7 | ç: "c" 8 | é: "e" 9 | è: "e" 10 | ë: "e" 11 | í: "i" 12 | ï: "i" 13 | ó: "o" 14 | ò: "o" 15 | ú: "u" 16 | ü: "u" 17 | À: "A" 18 | Á: "A" 19 | Ç: "C" 20 | É: "E" 21 | È: "E" 22 | Ë: "E" 23 | Í: "I" 24 | Ï: "I" 25 | Ó: "O" 26 | Ò: "O" 27 | Ú: "U" 28 | Ü: "U" 29 | -------------------------------------------------------------------------------- /rails/transliteration/da.yml: -------------------------------------------------------------------------------- 1 | da: 2 | i18n: 3 | transliterate: 4 | rule: 5 | æ: "ae" 6 | ø: "oe" 7 | å: "aa" 8 | Æ: "Ae" 9 | Ø: "Oe" 10 | Å: "Aa" 11 | -------------------------------------------------------------------------------- /rails/transliteration/de.yml: -------------------------------------------------------------------------------- 1 | de: 2 | i18n: 3 | transliterate: 4 | rule: 5 | ä: "ae" 6 | é: "e" 7 | ü: "ue" 8 | ö: "oe" 9 | Ä: "Ae" 10 | Ü: "Ue" 11 | Ö: "Oe" 12 | ß: "ss" 13 | ẞ: "SS" 14 | -------------------------------------------------------------------------------- /rails/transliteration/el.yml: -------------------------------------------------------------------------------- 1 | el: 2 | i18n: 3 | transliterate: 4 | rule: 5 | α: "a" 6 | ά: "a" 7 | Α: "a" 8 | Ά: "a" 9 | β: "v" 10 | Β: "v" 11 | γ: "g" 12 | Γ: "g" 13 | δ: "d" 14 | Δ: "d" 15 | ε: "e" 16 | έ: "e" 17 | Ε: "e" 18 | Έ: "e" 19 | ζ: "z" 20 | Ζ: "z" 21 | η: "h" 22 | ή: "h" 23 | Η: "h" 24 | Ή: "h" 25 | θ: "th" 26 | Θ: "th" 27 | ι: "I" 28 | ί: "I" 29 | Ι: "I" 30 | Ί: "I" 31 | κ: "k" 32 | Κ: "k" 33 | λ: "l" 34 | Λ: "l" 35 | μ: "m" 36 | Μ: "m" 37 | ν: "n" 38 | Ν: "n" 39 | ξ: "x" 40 | Ξ: "x" 41 | ο: "o" 42 | Ο: "o" 43 | ό: "o" 44 | Ό: "o" 45 | π: "p" 46 | Π: "p" 47 | ρ: "r" 48 | Ρ: "r" 49 | σ: "s" 50 | Σ: "s" 51 | ς: "s" 52 | τ: "t" 53 | Τ: "t" 54 | υ: "y" 55 | ύ: "y" 56 | Υ: "y" 57 | Ύ: "y" 58 | φ: "f" 59 | Φ: "f" 60 | χ: "ch" 61 | Χ: "ch" 62 | ψ: "ps" 63 | Ψ: "ps" 64 | ω: "w" 65 | ώ: "w" 66 | Ώ: "w" 67 | Ω: "w" 68 | αι: "ai" 69 | αί: "ai" 70 | άι: "ai" 71 | ΑΙ: "ai" 72 | ΑΊ: "ai" 73 | ΆΙ: "ai" 74 | οι: "oi" 75 | οί: "oi" 76 | όι: "oi" 77 | ΟΙ: "oi" 78 | ΟΊ: "oi" 79 | ΌΙ: "oi" 80 | ει: "ei" 81 | έι: "ei" 82 | ΕΙ: "ei" 83 | ΕΊ: "ei" 84 | ΈΙ: "ei" 85 | ου: "u" 86 | όυ: "u" 87 | ού: "u" 88 | ΟΥ: "u" 89 | ΌΥ: "u" 90 | ΟΎ: "u" 91 | αυ: "av" 92 | αύ: "av" 93 | άυ: "av" 94 | ΆΥ: "av" 95 | ΑΎ: "av" 96 | ΑΥ: "av" 97 | ευ: "ev" 98 | εύ: "ev" 99 | έυ: "ev" 100 | ΕΥ: "ev" 101 | ΕΎ: "ev" 102 | ΈΥ: "ev" 103 | ϊ: "i" 104 | ϋ: "i" 105 | -------------------------------------------------------------------------------- /rails/transliteration/es.yml: -------------------------------------------------------------------------------- 1 | es: 2 | i18n: 3 | transliterate: 4 | rule: 5 | á: "a" 6 | é: "e" 7 | í: "i" 8 | ó: "o" 9 | ú: "u" 10 | ü: "u" 11 | ñ: "n" 12 | Á: "A" 13 | É: "E" 14 | Í: "I" 15 | Ó: "O" 16 | Ú: "U" 17 | Ü: "U" 18 | Ñ: "N" 19 | -------------------------------------------------------------------------------- /rails/transliteration/fa.yml: -------------------------------------------------------------------------------- 1 | fa: 2 | i18n: 3 | transliterate: 4 | rule: 5 | 'آ': 'a' 6 | 'ا': 'a' 7 | 'ب': 'b' 8 | 'پ': 'p' 9 | 'ت': 't' 10 | 'ث': 's' 11 | 'ج': 'g' 12 | 'چ': 'ch' 13 | 'ح': 'h' 14 | 'خ': 'kh' 15 | 'د': 'd' 16 | 'ذ': 'z' 17 | 'ر': 'r' 18 | 'ز': 'z' 19 | 'ژ': 'j' 20 | 'س': 's' 21 | 'ش': 'sh' 22 | 'ص': 's' 23 | 'ض': 'z' 24 | 'ط': 't' 25 | 'ظ': 'z' 26 | 'ع': 'a' 27 | 'غ': 'q' 28 | 'ف': 'f' 29 | 'ق': 'q' 30 | 'ک': 'k' 31 | 'گ': 'gh' 32 | 'ل': 'l' 33 | 'م': 'm' 34 | 'ن': 'n' 35 | 'و': 'v' 36 | 'ه': 'h' 37 | 'ی': 'i' 38 | '۰': '0' 39 | '۱': '1' 40 | '۲': '2' 41 | '۳': '3' 42 | '۴': '4' 43 | '۵': '5' 44 | '۶': '6' 45 | '۷': '7' 46 | '۸': '8' 47 | '۹': '9' 48 | -------------------------------------------------------------------------------- /rails/transliteration/fr.yml: -------------------------------------------------------------------------------- 1 | fr: 2 | i18n: 3 | transliterate: 4 | rule: 5 | à: "a" 6 | â: "a" 7 | æ: "ae" 8 | ç: "c" 9 | é: "e" 10 | è: "e" 11 | ê: "e" 12 | ë: "e" 13 | î: "i" 14 | ï: "i" 15 | ô: "o" 16 | œ: "oe" 17 | ù: "u" 18 | û: "u" 19 | ü: "u" 20 | ÿ: "y" 21 | À: "A" 22 | Â: "A" 23 | Æ: "Ae" 24 | Ç: "C" 25 | É: "E" 26 | È: "E" 27 | Ê: "E" 28 | Ë: "E" 29 | Î: "I" 30 | Ï: "I" 31 | Ô: "O" 32 | Œ: "Oe" 33 | Ù: "U" 34 | Û: "U" 35 | Ü: "U" 36 | Ÿ: "Y" 37 | -------------------------------------------------------------------------------- /rails/transliteration/hu.yml: -------------------------------------------------------------------------------- 1 | hu: 2 | i18n: 3 | transliterate: 4 | rule: 5 | á: "a" 6 | é: "e" 7 | í: "i" 8 | ó: "o" 9 | ö: "o" 10 | ő: "o" 11 | ú: "u" 12 | ü: "u" 13 | ű: "u" 14 | Á: "A" 15 | É: "E" 16 | Í: "I" 17 | Ó: "O" 18 | Ö: "O" 19 | Ő: "O" 20 | Ú: "U" 21 | Ü: "U" 22 | Ű: "U" 23 | -------------------------------------------------------------------------------- /rails/transliteration/ka.yml: -------------------------------------------------------------------------------- 1 | ka: 2 | i18n: 3 | transliterate: 4 | rule: 5 | ა: "a" 6 | ბ: "b" 7 | გ: "g" 8 | დ: "d" 9 | ე: "e" 10 | ვ: "v" 11 | ზ: "z" 12 | თ: "T" 13 | ი: "i" 14 | კ: "k" 15 | ლ: "l" 16 | მ: "m" 17 | ნ: "n" 18 | ო: "o" 19 | პ: "p" 20 | ჟ: "J" 21 | რ: "r" 22 | ს: "s" 23 | ტ: "t" 24 | უ: "u" 25 | ფ: "f" 26 | ქ: "q" 27 | ღ: "R" 28 | ყ: "y" 29 | შ: "S" 30 | ჩ: "C" 31 | ც: "c" 32 | ძ: "Z" 33 | წ: "w" 34 | ჭ: "W" 35 | ხ: "x" 36 | ჯ: "j" 37 | ჰ: "h" 38 | -------------------------------------------------------------------------------- /rails/transliteration/oc.yml: -------------------------------------------------------------------------------- 1 | oc: 2 | i18n: 3 | transliterate: 4 | rule: 5 | à: "a" 6 | á: "a" 7 | ç: "c" 8 | é: "e" 9 | è: "e" 10 | ë: "e" 11 | í: "i" 12 | ï: "i" 13 | ó: "o" 14 | ò: "o" 15 | ú: "u" 16 | ü: "u" 17 | À: "A" 18 | Á: "A" 19 | Ç: "C" 20 | É: "E" 21 | È: "E" 22 | Ë: "E" 23 | Í: "I" 24 | Ï: "I" 25 | Ó: "O" 26 | Ò: "O" 27 | Ú: "U" 28 | Ü: "U" 29 | -------------------------------------------------------------------------------- /rails/transliteration/pl.yml: -------------------------------------------------------------------------------- 1 | pl: 2 | i18n: 3 | transliterate: 4 | rule: 5 | ą: "a" 6 | ć: "c" 7 | ę: "e" 8 | ł: "l" 9 | ń: "n" 10 | ó: "o" 11 | ś: "s" 12 | ź: "z" 13 | ż: "z" 14 | Ą: "A" 15 | Ć: "C" 16 | Ę: "E" 17 | Ł: "L" 18 | Ń: "N" 19 | Ó: "O" 20 | Ś: "S" 21 | Ź: "Z" 22 | Ż: "Z" 23 | -------------------------------------------------------------------------------- /rails/transliteration/pt.yml: -------------------------------------------------------------------------------- 1 | pt: 2 | i18n: 3 | transliterate: 4 | rule: 5 | á: "a" 6 | à: "a" 7 | ã: "a" 8 | â: "a" 9 | é: "e" 10 | ê: "e" 11 | í: "i" 12 | ó: "o" 13 | õ: "o" 14 | ú: "u" 15 | Á: "A" 16 | À: "A" 17 | Ã: "A" 18 | É: "E" 19 | Ê: "E" 20 | Í: "I" 21 | Ó: "O" 22 | Õ: "O" 23 | Ú: "U" 24 | Æ: "Ae" 25 | æ: "ae" 26 | º: "o" 27 | ª: "a" 28 | ç: "c" 29 | -------------------------------------------------------------------------------- /rails/transliteration/ro.yml: -------------------------------------------------------------------------------- 1 | ro: 2 | i18n: 3 | transliterate: 4 | rule: 5 | ă: "a" 6 | â: "a" 7 | î: "i" 8 | ș: "s" 9 | ț: "t" 10 | Ă: "A" 11 | Â: "A" 12 | Î: "I" 13 | Ș: "S" 14 | Ț: "T" 15 | -------------------------------------------------------------------------------- /rails/transliteration/ru.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/transliteration' 2 | 3 | { :ru => { 4 | :i18n => { 5 | :transliterate => { 6 | :rule => RailsI18n::Transliteration::Russian.rule }}}} -------------------------------------------------------------------------------- /rails/transliteration/uk.rb: -------------------------------------------------------------------------------- 1 | require 'rails_i18n/transliteration' 2 | 3 | { :uk => { 4 | :i18n => { 5 | :transliterate => { 6 | :rule => RailsI18n::Transliteration::Ukrainian.rule }}}} -------------------------------------------------------------------------------- /rails/transliteration/vi.yml: -------------------------------------------------------------------------------- 1 | vi: 2 | i18n: 3 | transliterate: 4 | rule: 5 | à: "a" 6 | á: "a" 7 | ạ: "a" 8 | ả: "a" 9 | ã: "a" 10 | â: "a" 11 | ầ: "a" 12 | ấ: "a" 13 | ậ: "a" 14 | ẩ: "a" 15 | ẫ: "a" 16 | ă: "a" 17 | ằ: "a" 18 | ắ: "a" 19 | ặ: "a" 20 | ẳ: "a" 21 | ẵ: "a" 22 | À: "A" 23 | Á: "A" 24 | Ạ: "A" 25 | Ả: "A" 26 | Ã: "A" 27 | Â: "A" 28 | Ầ: "A" 29 | Ấ: "A" 30 | Ậ: "A" 31 | Ẩ: "A" 32 | Ẫ: "A" 33 | Ă: "A" 34 | Ằ: "A" 35 | Ắ: "A" 36 | Ặ: "A" 37 | Ẳ: "A" 38 | Ẵ: "A" 39 | ì: "i" 40 | í: "i" 41 | ị: "i" 42 | ỉ: "i" 43 | ĩ: "i" 44 | Ì: "I" 45 | Í: "I" 46 | Ị: "I" 47 | Ỉ: "I" 48 | Ĩ: "I" 49 | ù: "u" 50 | ú: "u" 51 | ụ: "u" 52 | ủ: "u" 53 | ũ: "u" 54 | ư: "u" 55 | ừ: "u" 56 | ứ: "u" 57 | ự: "u" 58 | ử: "u" 59 | ữ: "u" 60 | Ù: "U" 61 | Ú: "U" 62 | Ụ: "U" 63 | Ủ: "U" 64 | Ũ: "U" 65 | Ư: "U" 66 | Ừ: "U" 67 | Ứ: "U" 68 | Ự: "U" 69 | Ử: "U" 70 | Ữ: "U" 71 | è: "e" 72 | é: "e" 73 | ẹ: "e" 74 | ẻ: "e" 75 | ẽ: "e" 76 | ê: "e" 77 | ề: "e" 78 | ế: "e" 79 | ệ: "e" 80 | ể: "e" 81 | ễ: "e" 82 | È: "E" 83 | É: "E" 84 | Ẹ: "E" 85 | Ẻ: "E" 86 | Ẽ: "E" 87 | Ê: "E" 88 | Ề: "E" 89 | Ế: "E" 90 | Ệ: "E" 91 | Ể: "E" 92 | Ễ: "E" 93 | ò: "o" 94 | ó: "o" 95 | ọ: "o" 96 | ỏ: "o" 97 | õ: "o" 98 | ô: "o" 99 | ồ: "o" 100 | ố: "o" 101 | ộ: "o" 102 | ổ: "o" 103 | ỗ: "o" 104 | ơ: "o" 105 | ờ: "o" 106 | ớ: "o" 107 | ợ: "o" 108 | ở: "o" 109 | ỡ: "o" 110 | Ò: "O" 111 | Ó: "O" 112 | Ọ: "O" 113 | Ỏ: "O" 114 | Õ: "O" 115 | Ô: "O" 116 | Ồ: "O" 117 | Ố: "O" 118 | Ộ: "O" 119 | Ổ: "O" 120 | Ỗ: "O" 121 | Ơ: "O" 122 | Ờ: "O" 123 | Ớ: "O" 124 | Ợ: "O" 125 | Ở: "O" 126 | Ỡ: "O" 127 | ỳ: "y" 128 | ý: "y" 129 | ỵ: "y" 130 | ỷ: "y" 131 | ỹ: "y" 132 | Ỳ: "Y" 133 | Ý: "Y" 134 | Ỵ: "Y" 135 | Ỷ: "Y" 136 | Ỹ: "Y" 137 | đ: "d" 138 | Đ: "D" -------------------------------------------------------------------------------- /spec/other/locale_files_spec.rb: -------------------------------------------------------------------------------- 1 | # encoding: utf-8 2 | 3 | require 'thor' 4 | require 'spec_helper' 5 | require_relative '../../rails/test/lib/check_locales.rb' 6 | 7 | describe "Locale files" do 8 | # there should not be any orphan pluralization files 9 | it "a pluralization file should have a corresponding locale.yml file" do 10 | expect(CheckLocales.orphan_pluralizations).to be_empty 11 | end 12 | 13 | # all locales should have a pluralization file 14 | it "a locale file should have a corresponding pluralization file" do 15 | pending("Fix missing pluralizations") 16 | expect(CheckLocales.orphan_locales).to be_empty 17 | end 18 | 19 | end 20 | -------------------------------------------------------------------------------- /spec/spec_helper.rb: -------------------------------------------------------------------------------- 1 | ENV["RAILS_ENV"] = "test" 2 | 3 | require 'i18n-spec' 4 | require 'active_support/core_ext/kernel/reporting' 5 | require 'socket' 6 | require 'unit/matchers/have_missing_particular_pluralization_keys_matcher' 7 | require 'unit/matchers/have_keys_for_restrict_dependent_destroy_matcher' 8 | 9 | I18n.enforce_available_locales = false 10 | 11 | RSpec.configure do |config| 12 | config.mock_with :rspec 13 | config.fail_fast = true 14 | config.expect_with :rspec do |c| 15 | c.syntax = [:should, :expect] 16 | end 17 | end 18 | -------------------------------------------------------------------------------- /spec/support/pluralization_file.rb: -------------------------------------------------------------------------------- 1 | require 'support/traverse_path' 2 | require 'support/ruby_content' 3 | 4 | module RailsI18n 5 | module Spec 6 | class PluralizationFile 7 | include TraversePath 8 | include RubyContent 9 | 10 | def initialize(filepath) 11 | @filepath = filepath 12 | end 13 | end 14 | end 15 | end -------------------------------------------------------------------------------- /spec/support/ruby_content.rb: -------------------------------------------------------------------------------- 1 | require "json" 2 | 3 | module RailsI18n 4 | module Spec 5 | module RubyContent 6 | def content 7 | @content ||= eval(File.read(@filepath), TOPLEVEL_BINDING, @filepath) 8 | end 9 | end 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /spec/support/transliteration_file.rb: -------------------------------------------------------------------------------- 1 | require 'support/traverse_path' 2 | require 'support/ruby_content' 3 | require 'yaml' 4 | 5 | module RailsI18n 6 | module Spec 7 | class TransliterationFile 8 | include TraversePath 9 | 10 | def self.make(filepath) 11 | raise "Transliteration file doesn't exist!" unless filepath 12 | case File.extname(filepath) 13 | when '.rb' then RubyTransliterationFile.new(filepath) 14 | when '.yml' then YAMLTransliterationFile.new(filepath) 15 | end 16 | end 17 | 18 | def initialize(filepath) 19 | @filepath = filepath 20 | end 21 | 22 | def rule 23 | @rule ||= begin 24 | locale = @filepath.match(/([\w-]+)\.[^\.]+$/)[1] 25 | traverse_path(locale.to_sym, :i18n, :transliterate, :rule) 26 | end 27 | end 28 | end 29 | 30 | class RubyTransliterationFile < TransliterationFile 31 | include RubyContent 32 | 33 | def transliterate(string) 34 | rule.call(string) 35 | end 36 | end 37 | 38 | class YAMLTransliterationFile < TransliterationFile 39 | def content 40 | return @content if @content 41 | 42 | hash = YAML.load_file(@filepath) 43 | @content = JSON.parse(JSON[hash], symbolize_names: true) 44 | end 45 | 46 | def transliterate(string) 47 | string.gsub(/./) { |char| rule[char.to_sym] } 48 | end 49 | end 50 | end 51 | end 52 | -------------------------------------------------------------------------------- /spec/support/traverse_path.rb: -------------------------------------------------------------------------------- 1 | module RailsI18n 2 | module Spec 3 | module TraversePath 4 | # @return [Object, nil] Nil if path can't be traversed with the given key 5 | # sequence, unless return Object at last key (it also can be nil) 6 | def traverse_path(*keys) 7 | keys.inject(content) do |memo, key| 8 | return nil if memo[key].nil? 9 | memo[key] 10 | end 11 | end 12 | end 13 | end 14 | end -------------------------------------------------------------------------------- /spec/unit/matchers/have_keys_for_restrict_dependent_destroy_matcher.rb: -------------------------------------------------------------------------------- 1 | RSpec::Matchers.define :have_keys_for_restrict_dependent_destroy do 2 | def check_keys(scope, hash) 3 | return unless hash['errors'] 4 | return unless hash['errors']['messages'] 5 | return unless hash['errors']['messages']['restrict_dependent_destroy'] 6 | return if hash['errors']['messages']['restrict_dependent_destroy'].kind_of?(String) 7 | h = hash['errors']['messages']['restrict_dependent_destroy'].clone 8 | %w(has_one has_many).each do |key| 9 | unless h.delete(key) 10 | @missing_keys << @locale_file.locale_code + scope + '.errors.messages.restrict_dependent_destroy.' + key 11 | end 12 | end 13 | h.keys.each do |key| 14 | @redundant_keys << @locale_file.locale_code + scope + '.errors.messages.restrict_dependent_destroy.' + key 15 | end 16 | end 17 | 18 | match do |actual| 19 | @locale_file = I18nSpec::LocaleFile.new(actual) 20 | @missing_keys = [] 21 | @redundant_keys = [] 22 | root = @locale_file.translations[@locale_file.locale_code] 23 | check_keys('', root) 24 | check_keys('.activemodel', root['activemodel']) if root['activemodel'] 25 | check_keys('.activerecord', root['activerecord']) if root['activerecord'] 26 | @missing_keys.empty? && @redundant_keys.empty? 27 | end 28 | 29 | failure_message do |filepath| 30 | message = '' 31 | if @missing_keys.any? 32 | message << "expected #{filepath} to contain the following keys :\n- " 33 | message << @missing_keys.join("\n- ") 34 | end 35 | if @redundant_keys.any? 36 | message << "\n" unless message.empty? 37 | message << "expected #{filepath} not to contain the following keys :\n- " 38 | message << @redundant_keys.join("\n- ") 39 | end 40 | message 41 | end 42 | end 43 | -------------------------------------------------------------------------------- /spec/unit/matchers/have_missing_particular_pluralization_keys_matcher.rb: -------------------------------------------------------------------------------- 1 | RSpec::Matchers.define :have_missing_particular_pluralization_keys do 2 | match do |actual| 3 | @locale_file = I18nSpec::LocaleFile.new(actual) 4 | 5 | keys = 6 | if @locale_file.locale.language 7 | @locale_file.missing_pluralization_keys.reject do |key, value| 8 | key.match(/\.errors\.messages\.restrict_dependent_destroy$/) 9 | end 10 | else 11 | [] 12 | end 13 | 14 | keys.any? 15 | end 16 | 17 | failure_message_when_negated do |filepath| 18 | flattened_keys = [] 19 | 20 | @locale_file.errors[:missing_pluralization_keys].each do |parent, subkeys| 21 | next if subkeys[-2] == 'restrict_dependent_destroy' 22 | subkeys.each do |subkey| 23 | flattened_keys << [parent, subkey].join('.') 24 | end 25 | end 26 | 27 | "expected #{filepath} to contain the following pluralization keys :\n- " << flattened_keys.join("\n- ") 28 | end 29 | end 30 | -------------------------------------------------------------------------------- /spec/unit/ordinals_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | require 'rails_i18n' 3 | 4 | describe 'Ordinals for' do 5 | # Mock Rails app in order to trigger the Railtie 6 | let(:app) { double :app, config: config } 7 | let(:config) { double :config, eager_load_namespaces: [], i18n: I18n, rails_i18n: RailsI18n } 8 | let(:period_locales) { %w[be bs cs da de de-AT de-CH de-DE eo et fa fi hr hu is ka lb lt lv mk nb ne nn pl sk sl sq sr sw tr] } 9 | 10 | before do 11 | I18n.available_locales = %w[fr en fr-CA fr-CH fr-FR gd] + period_locales 12 | 13 | RailsI18n::Railtie.initializers.each { |init| init.run(app) } 14 | I18n.backend.reload! 15 | end 16 | 17 | describe 'French' do 18 | it 'uses the custom rules' do 19 | %w[fr fr-CA fr-CH fr-FR ].each do |locale| 20 | I18n.with_locale(locale) do 21 | ActiveSupport::Inflector.ordinalize(1).should == "1er" 22 | ActiveSupport::Inflector.ordinalize(2).should == "2e" 23 | ActiveSupport::Inflector.ordinalize(3).should == "3e" 24 | end 25 | end 26 | end 27 | end 28 | 29 | describe 'English' do 30 | it 'uses the default rules' do 31 | I18n.with_locale(:en) do 32 | ActiveSupport::Inflector.ordinalize(1).should == "1st" 33 | ActiveSupport::Inflector.ordinalize(2).should == "2nd" 34 | ActiveSupport::Inflector.ordinalize(3).should == "3rd" 35 | end 36 | end 37 | end 38 | 39 | describe 'ScottishGaelic' do 40 | it 'uses the custom rules' do 41 | I18n.with_locale(:gd) do 42 | ActiveSupport::Inflector.ordinalize(1).should == "1ᵈ" 43 | ActiveSupport::Inflector.ordinalize(2).should == "2ⁿᵃ" 44 | ActiveSupport::Inflector.ordinalize(3).should == "3ˢ" 45 | ActiveSupport::Inflector.ordinalize(4).should == "4ᵐʰ" 46 | end 47 | end 48 | end 49 | 50 | describe 'locales with period-suffix' do 51 | it 'uses the custom rule' do 52 | period_locales.each do |locale| 53 | I18n.with_locale(locale) do 54 | ActiveSupport::Inflector.ordinalize(1).should == "1." 55 | ActiveSupport::Inflector.ordinalize(2).should == "2." 56 | end 57 | end 58 | end 59 | end 60 | end 61 | -------------------------------------------------------------------------------- /spec/unit/pluralization/east_slavic.rb: -------------------------------------------------------------------------------- 1 | shared_examples 'East Slavic' do 2 | it 'has "one", "few", "many" and "other" plural keys' do 3 | plural_keys.size.should == 4 4 | plural_keys.should include(:one, :few, :many, :other) 5 | end 6 | 7 | [1, 21, 51, 71, 101, 1_031].each do |count| 8 | it "detects that #{count.inspect} in category 'one'" do 9 | rule.call(count).should == :one 10 | end 11 | end 12 | 13 | [2, 3, 4, 22, 23, 24, 92, 93, 94].each do |count| 14 | it "detects that #{count.inspect} in category 'few'" do 15 | rule.call(count).should == :few 16 | end 17 | end 18 | 19 | [0, 5, 8, 10, 11, 18, 20, 25, 27, 30, 35, 38, 40].each do |count| 20 | it "detects that #{count.inspect} in category 'many'" do 21 | rule.call(count).should == :many 22 | end 23 | end 24 | 25 | [1.2, 3.7, 11.5, 20.8, 1_004.3, nil, "abc"].each do |count| 26 | it "detects that #{count.inspect} in category 'other'" do 27 | rule.call(count).should == :other 28 | end 29 | end 30 | end 31 | -------------------------------------------------------------------------------- /spec/unit/pluralization/one_few_other.rb: -------------------------------------------------------------------------------- 1 | shared_examples 'one-few-other forms language' do 2 | [1, 21, 31, 41, 51, 61, 71, 81, 101, 1001, 3 | 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| 4 | it "detects that #{count.inspect} in category 'one'" do 5 | rule.call(count).should == :one 6 | end 7 | end 8 | 9 | [2, 3, 4, 22, 23, 24, 32, 33, 34, 42, 43, 44, 52, 53, 54, 62, 102, 1_002, 10 | 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, 11 | 4.4, 5.2, 10.2, 100.2, 1_000.2].each do |count| 12 | it "detects that #{count.inspect} in category 'few'" do 13 | rule.call(count).should == :few 14 | end 15 | end 16 | 17 | [0, 5, 6, 7, 17, 18, 19, 100, 1_000, 10_000, 100_000, 1_000_000, 18 | 0.0, 0.5, 0.6, 0.7, 0.8, 0.9, 1.5, 1.6, 1.7, 2.5, 2.6, 2.7, 10.0, 19 | 100.0, 1_000.0, 10_000.0, 100_000.0, 1_000_000.0, nil, "abc"].each do |count| 20 | it "detects that #{count.inspect} in category 'other'" do 21 | rule.call(count).should == :other 22 | end 23 | end 24 | end 25 | -------------------------------------------------------------------------------- /spec/unit/pluralization/one_other.rb: -------------------------------------------------------------------------------- 1 | shared_examples 'one-other forms language' do 2 | it 'has "one" and "other" plural keys' do 3 | plural_keys.size.should == 2 4 | plural_keys.should include(:one, :other) 5 | end 6 | 7 | it "detects that 1 in category 'one'" do 8 | rule.call(1).should == :one 9 | end 10 | 11 | [0, "0", 0.3, 1.2, 2, "2", 3, 5, 10, 11, 21, 23, 31, 50, 81, 99, 100, nil, 12 | "abc"].each do |count| 13 | it "detects that #{count.inspect.inspect} in category 'other'" do 14 | rule.call(count).should == :other 15 | end 16 | end 17 | end 18 | -------------------------------------------------------------------------------- /spec/unit/pluralization/one_two_other.rb: -------------------------------------------------------------------------------- 1 | shared_examples 'one-two-other forms language' do 2 | it 'has "one", "two" and "other" plural keys' do 3 | plural_keys.size.should == 3 4 | plural_keys.should include(:one, :two, :other) 5 | end 6 | 7 | it "detects that 1 in category 'one'" do 8 | rule.call(1).should == :one 9 | end 10 | 11 | it "detects that 2 in category 'two'" do 12 | rule.call(2).should == :two 13 | end 14 | 15 | [0, 0.3, 1.2, 3, 5, 10, 11, 21, 23, 31, 50, 81, 99, 100, nil, 16 | "abc"].each do |count| 17 | it "detects that #{count.inspect} in category 'other'" do 18 | rule.call(count).should == :other 19 | end 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /spec/unit/pluralization/one_upto_two_other.rb: -------------------------------------------------------------------------------- 1 | shared_examples 'one(upto 2)-other forms language' do 2 | it 'has "one" and "other" plural keys' do 3 | plural_keys.size.should == 2 4 | plural_keys.should include(:one, :other) 5 | end 6 | 7 | [0, 0.5, 1, 1.2, 1.8].each do |count| 8 | it "detects that #{count.inspect} in category 'one'" do 9 | rule.call(count).should == :one 10 | end 11 | end 12 | 13 | [2, 2.1, 5, 11, 21, 22, 37, 40, 900.5, nil, "abc"].each do |count| 14 | it "detects that #{count.inspect} in category 'other'" do 15 | rule.call(count).should == :other 16 | end 17 | end 18 | end 19 | -------------------------------------------------------------------------------- /spec/unit/pluralization/one_with_zero_other.rb: -------------------------------------------------------------------------------- 1 | shared_examples 'one(with zero)-other forms language' do 2 | it 'has "one" and "other" plural keys' do 3 | plural_keys.size.should == 2 4 | plural_keys.should include(:one, :other) 5 | end 6 | 7 | [0, 1].each do |count| 8 | it "detects that #{count.inspect} in category 'one'" do 9 | rule.call(count).should == :one 10 | end 11 | end 12 | 13 | [0.4, 1.2, 2, 5, 11, 21, 22, 27, 99, 1_000, nil, "abc"].each do |count| 14 | it "detects that #{count.inspect} in category 'other'" do 15 | rule.call(count).should == :other 16 | end 17 | end 18 | end 19 | -------------------------------------------------------------------------------- /spec/unit/pluralization/ordinary.rb: -------------------------------------------------------------------------------- 1 | shared_examples 'an ordinary pluralization rule' do 2 | it 'returns a hash' do |example| 3 | file.content.should be_a Hash 4 | end 5 | 6 | it 'has one top level namespace' do |example| 7 | file.content.keys.size.should == 1 8 | end 9 | 10 | it 'has its locale tag as a top level namespace' do |example| 11 | file.content.keys.first.should == example.metadata[:locale] 12 | end 13 | 14 | it 'has lambda or Proc under the "i18n.plural.rule" namespace' do 15 | rule.should respond_to :call 16 | end 17 | end 18 | -------------------------------------------------------------------------------- /spec/unit/pluralization/other.rb: -------------------------------------------------------------------------------- 1 | shared_examples 'other form language' do 2 | it 'has "other" plural keys' do 3 | plural_keys.should == [:other] 4 | end 5 | 6 | [0, 1, 1.2, 2, 5, 11, 21, 22, 27, 99, 1_000, nil, "abc"].each do |count| 7 | it "detects that #{count.inspect} in category 'other'" do 8 | rule.call(count).should == :other 9 | end 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /spec/unit/pluralization/romanian.rb: -------------------------------------------------------------------------------- 1 | shared_examples 'Romanian language' do 2 | it 'has "one", "few", and "other" plural keys' do 3 | plural_keys.size.should == 3 4 | plural_keys.should include(:one, :few, :other) 5 | end 6 | 7 | it "detects that 1 in category 'one'" do 8 | rule.call(1).should == :one 9 | end 10 | 11 | [0, 2, 3, 5, 8, 9, 10, 11, 15, 19, 101, 106, 112, 117, 119, 12 | 201].each do |count| 13 | it "detects that #{count.inspect} in category 'few'" do 14 | rule.call(count).should == :few 15 | end 16 | end 17 | 18 | [0.4, 1.7, 20, 21, 23, 34, 45, 66, 89, 100, 120, 138, nil, 19 | "abc"].each do |count| 20 | it "detects that #{count.inspect} in category 'other'" do 21 | rule.call(count).should == :other 22 | end 23 | end 24 | end 25 | -------------------------------------------------------------------------------- /spec/unit/pluralization/west_slavic.rb: -------------------------------------------------------------------------------- 1 | shared_examples 'West Slavic' do 2 | it 'has "one", "few" and "other" plural keys' do 3 | plural_keys.size.should == 3 4 | plural_keys.should include(:one, :few, :other) 5 | end 6 | 7 | it "detects that 1 in category 'one'" do 8 | rule.call(1).should == :one 9 | end 10 | 11 | [2, 3, 4].each do |count| 12 | it "detects that #{count.inspect} in category 'few'" do 13 | rule.call(count).should == :few 14 | end 15 | end 16 | 17 | [0, 0.5, 1.7, 2.1, 5, 7.8, 10, 875, nil, "abc"].each do |count| 18 | it "detects that #{count.inspect} in category 'other'" do 19 | rule.call(count).should == :other 20 | end 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /spec/unit/translation_spec.rb: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | require 'spec_helper' 4 | 5 | Dir.glob('rails/locale/*.yml') do |locale_file| 6 | next if locale_file == 'rails/locale/es-419.yml' 7 | describe "a rails-i18n #{locale_file} locale file" do 8 | subject { locale_file } 9 | it { should be_parseable } 10 | # it { should have_valid_pluralization_keys } 11 | it { should have_valid_pluralization_keys } 12 | it { should have_one_top_level_namespace } 13 | it { should be_named_like_top_level_namespace } 14 | it { should_not have_legacy_interpolations } 15 | it { locale_file.should be_a_subset_of('rails/locale/en.yml') } 16 | 17 | # These two matchers are to cope with irregular key names that 18 | # are found in Rails 5.x. 19 | it { should_not have_missing_particular_pluralization_keys } 20 | it { should have_keys_for_restrict_dependent_destroy } 21 | end 22 | end 23 | 24 | describe "a rails-i18n rails/locale/es-419.yml locale file" do 25 | subject { 'rails/locale/es-419.yml' } 26 | it { should be_parseable } 27 | it { should have_valid_pluralization_keys } 28 | it { should_not have_missing_pluralization_keys } 29 | it { should have_one_top_level_namespace } 30 | it { should be_named_like_top_level_namespace } 31 | it { should_not have_legacy_interpolations } 32 | it { should have_a_valid_locale } 33 | end 34 | -------------------------------------------------------------------------------- /spec/unit/transliteration/ordinary.rb: -------------------------------------------------------------------------------- 1 | shared_examples 'an ordinary transliteration rule' do 2 | it 'returns a hash' do 3 | file.content.should be_a Hash 4 | end 5 | 6 | it 'has one top level namespace' do 7 | file.content.keys.size.should == 1 8 | end 9 | 10 | it 'has its locale tag as a top level namespace' do |example| 11 | file.content.keys.first.should == example.metadata[:locale] 12 | end 13 | 14 | it 'has lambda or Proc, or Hash under the "i18n.transliterate.rule" namespace' do 15 | rule.should satisfy { |rule| rule.is_a?(Proc) || rule.is_a?(Hash) } 16 | end 17 | end 18 | -------------------------------------------------------------------------------- /spec/unit/transliteration_spec.rb: -------------------------------------------------------------------------------- 1 | # encoding: utf-8 2 | 3 | require 'spec_helper' 4 | require 'support/transliteration_file' 5 | 6 | require 'unit/transliteration/ordinary' 7 | require 'unit/transliteration/ukrainian' 8 | 9 | describe "Transliteration rule for" do 10 | transliterations_dir = File.join('rails', 'transliteration') 11 | 12 | let(:file) do |example| 13 | filename = Dir[File.join(transliterations_dir, "#{example.metadata[:locale]}*")].first 14 | RailsI18n::Spec::TransliterationFile.make(filename) 15 | end 16 | 17 | let(:rule) do |example| 18 | file.traverse_path(example.metadata[:locale], :i18n, :transliterate, :rule) 19 | end 20 | 21 | def t(string) 22 | file.transliterate(string) 23 | end 24 | 25 | describe "Bulgarian", :locale => :bg do 26 | it_behaves_like "an ordinary transliteration rule" 27 | 28 | it "works" do 29 | t('съществуват').should == 'sashtestvuvat' 30 | end 31 | end 32 | 33 | describe "Russian", :locale => :ru do 34 | it_behaves_like "an ordinary transliteration rule" 35 | 36 | # https://github.com/yaroslav/russian/blob/master/spec/transliteration_spec.rb 37 | it "should transliterate properly" do 38 | t("Это просто некий текст").should == "Eto prosto nekiy tekst" 39 | t("щ").should == "sch" 40 | t("стансы").should == "stansy" 41 | t("упущение").should == "upuschenie" 42 | t("ш").should == "sh" 43 | t("Ш").should == "SH" 44 | t("ц").should == "ts" 45 | end 46 | 47 | it "should properly transliterate mixed russian-english strings" do 48 | t("Это кусок строки русских букв v peremeshku s latinizey i амперсандом (pozor!) & something").should == 49 | "Eto kusok stroki russkih bukv v peremeshku s latinizey i ampersandom (pozor!) & something" 50 | end 51 | 52 | it "should properly transliterate mixed case chars in a string" do 53 | t("НЕВЕРОЯТНОЕ УПУЩЕНИЕ").should == "NEVEROYATNOE UPUSCHENIE" 54 | t("Невероятное Упущение").should == "Neveroyatnoe Upuschenie" 55 | t("Шерстяной Заяц").should == "Sherstyanoy Zayats" 56 | t("Н.П. Шерстяков").should == "N.P. Sherstyakov" 57 | t("ШАРОВАРЫ").should == "SHAROVARY" 58 | end 59 | 60 | it "should work for multi-char substrings" do 61 | t("38 воробьёв").should == "38 vorobiev" 62 | t("Вася Воробьёв").should == "Vasya Vorobiev" 63 | t("Алябьев").should == "Alyabiev" 64 | t("АЛЯБЬЕВ").should == "ALYABIEV" 65 | end 66 | end 67 | 68 | describe "Ukrainian", :locale => :uk do 69 | it_behaves_like "an ordinary transliteration rule" 70 | 71 | include_examples "Ukrainian transliteration" 72 | end 73 | end 74 | --------------------------------------------------------------------------------