cmdx-i18n 0.3.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -1
  3. data/.ruby-version +1 -1
  4. data/CHANGELOG.md +7 -1
  5. data/README.md +48 -28
  6. data/lib/cmdx/i18n/railtie.rb +10 -25
  7. data/lib/cmdx/i18n/version.rb +4 -1
  8. data/lib/cmdx/i18n.rb +4 -12
  9. data/lib/generators/cmdx/i18n/locale_generator.rb +7 -19
  10. data/lib/locales/af.yml +12 -5
  11. data/lib/locales/ar.yml +12 -5
  12. data/lib/locales/az.yml +12 -5
  13. data/lib/locales/be.yml +12 -5
  14. data/lib/locales/bg.yml +12 -5
  15. data/lib/locales/bn.yml +12 -5
  16. data/lib/locales/bs.yml +12 -5
  17. data/lib/locales/ca.yml +12 -5
  18. data/lib/locales/cnr.yml +12 -5
  19. data/lib/locales/cs.yml +12 -5
  20. data/lib/locales/cy.yml +12 -5
  21. data/lib/locales/da.yml +12 -5
  22. data/lib/locales/de.yml +12 -5
  23. data/lib/locales/dz.yml +12 -5
  24. data/lib/locales/el.yml +12 -5
  25. data/lib/locales/en.yml +12 -5
  26. data/lib/locales/eo.yml +12 -5
  27. data/lib/locales/es.yml +12 -5
  28. data/lib/locales/et.yml +12 -5
  29. data/lib/locales/eu.yml +12 -5
  30. data/lib/locales/fa.yml +12 -5
  31. data/lib/locales/fi.yml +12 -5
  32. data/lib/locales/fr.yml +12 -5
  33. data/lib/locales/fy.yml +12 -5
  34. data/lib/locales/gd.yml +12 -5
  35. data/lib/locales/gl.yml +12 -5
  36. data/lib/locales/he.yml +12 -5
  37. data/lib/locales/hi.yml +12 -5
  38. data/lib/locales/hr.yml +12 -5
  39. data/lib/locales/hu.yml +12 -5
  40. data/lib/locales/hy.yml +12 -5
  41. data/lib/locales/id.yml +12 -5
  42. data/lib/locales/is.yml +12 -5
  43. data/lib/locales/it.yml +12 -5
  44. data/lib/locales/ja.yml +12 -5
  45. data/lib/locales/ka.yml +12 -5
  46. data/lib/locales/kk.yml +12 -5
  47. data/lib/locales/km.yml +12 -5
  48. data/lib/locales/kn.yml +12 -5
  49. data/lib/locales/ko.yml +12 -5
  50. data/lib/locales/lb.yml +12 -5
  51. data/lib/locales/lo.yml +12 -5
  52. data/lib/locales/lt.yml +12 -5
  53. data/lib/locales/lv.yml +12 -5
  54. data/lib/locales/mg.yml +12 -5
  55. data/lib/locales/mk.yml +12 -5
  56. data/lib/locales/ml.yml +12 -5
  57. data/lib/locales/mn.yml +12 -5
  58. data/lib/locales/mr-IN.yml +12 -5
  59. data/lib/locales/ms.yml +12 -5
  60. data/lib/locales/nb.yml +12 -5
  61. data/lib/locales/ne.yml +12 -5
  62. data/lib/locales/nl.yml +12 -5
  63. data/lib/locales/nn.yml +12 -5
  64. data/lib/locales/oc.yml +12 -5
  65. data/lib/locales/or.yml +12 -5
  66. data/lib/locales/pa.yml +12 -5
  67. data/lib/locales/pl.yml +12 -5
  68. data/lib/locales/pt.yml +12 -5
  69. data/lib/locales/rm.yml +12 -5
  70. data/lib/locales/ro.yml +12 -5
  71. data/lib/locales/ru.yml +12 -5
  72. data/lib/locales/sc.yml +12 -5
  73. data/lib/locales/sk.yml +12 -5
  74. data/lib/locales/sl.yml +12 -5
  75. data/lib/locales/sq.yml +12 -5
  76. data/lib/locales/sr.yml +12 -5
  77. data/lib/locales/st.yml +12 -5
  78. data/lib/locales/sv.yml +12 -5
  79. data/lib/locales/sw.yml +12 -5
  80. data/lib/locales/ta.yml +12 -5
  81. data/lib/locales/te.yml +12 -5
  82. data/lib/locales/th.yml +12 -5
  83. data/lib/locales/tl.yml +12 -5
  84. data/lib/locales/tr.yml +12 -5
  85. data/lib/locales/tt.yml +12 -5
  86. data/lib/locales/ug.yml +12 -5
  87. data/lib/locales/uk.yml +12 -5
  88. data/lib/locales/ur.yml +12 -5
  89. data/lib/locales/uz.yml +12 -5
  90. data/lib/locales/vi.yml +12 -5
  91. data/lib/locales/wo.yml +12 -5
  92. data/lib/locales/zh-CN.yml +12 -5
  93. data/lib/locales/zh-HK.yml +12 -5
  94. data/lib/locales/zh-TW.yml +12 -5
  95. data/lib/locales/zh-YUE.yml +12 -5
  96. data/src/cmdx-dark-logo.png +0 -0
  97. data/src/cmdx-light-logo.png +0 -0
  98. data/src/cmdx-logo.svg +1 -0
  99. metadata +8 -11
  100. data/.cursor/prompts/docs.md +0 -12
  101. data/.cursor/prompts/llms.md +0 -20
  102. data/.cursor/prompts/rspec.md +0 -24
  103. data/.cursor/prompts/yardoc.md +0 -14
  104. data/.cursor/rules/cursor-instructions.mdc +0 -62
  105. data/src/cmdx-i18n-logo.png +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4f4734775d41a6dd96b82b98b99b28f7d577bdae78a9ced6b4fa43da4d731c61
4
- data.tar.gz: 20c4295ef038cd0552e88b1676207756c2dd24aa37e4e6981b7e2728534f2886
3
+ metadata.gz: 8ad5ff8c761c81b0d09d7ebbe216de4cd3ba2af69041626891d3a04dd85bbd6b
4
+ data.tar.gz: e5a19d89d466f45d14e1deb687183c730e3b3ebcb048297c27e8f9de0a891c2d
5
5
  SHA512:
6
- metadata.gz: c0b944ea2ff2d7b5416871df5175991efa6542854b3061d93d43b9a25d3ffbdfc1f110f1758c763564ba3198a02a30e51b1dd5c925f7734de17d7777eb4e3bfb
7
- data.tar.gz: bbb8a50ad9361e141bf8f6e0a9a49b5d483f8d59e162a992301765b29e405e683f422d1f9891e818826462da576119013f8f9281a31003dbc12be2177494d958
6
+ metadata.gz: 73593ebf7600d4c7a56c6995d877a5abc654be3326f1834c3ac4310a5273ca11acddada71403cf10fb4b3149f225e1670649829ab4024ef1a0decc69e64c43ff
7
+ data.tar.gz: '089ade7ac6dc610da3cc113fa14f7515e6ddc80f40c55eb054172c7f52e7936f6763b32f43aeecb0293f9a63164ca53363d3d876794d8b017059a8b0a302b5e7'
data/.rubocop.yml CHANGED
@@ -6,7 +6,7 @@ AllCops:
6
6
  NewCops: enable
7
7
  DisplayCopNames: true
8
8
  DisplayStyleGuide: true
9
- TargetRubyVersion: 3.1
9
+ TargetRubyVersion: 3.3
10
10
  Gemspec/DevelopmentDependencies:
11
11
  EnforcedStyle: gemspec
12
12
  Layout/EmptyLinesAroundAttributeAccessor:
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.4.5
1
+ 4.0.2
data/CHANGELOG.md CHANGED
@@ -4,7 +4,13 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
- ## [TODO]
7
+ ## [2.0.0] - Unreleased
8
+
9
+ ### Added
10
+ - Support for CMDx v2
11
+
12
+ ### Changes
13
+ - Updated locales to have new keys
8
14
 
9
15
  ## [0.3.0] - 2025-08-25
10
16
 
data/README.md CHANGED
@@ -1,49 +1,71 @@
1
- <p align="center">
2
- <img src="./src/cmdx-i18n-logo.png" width="200" alt="CMDx::I18n Logo">
3
- </p>
1
+ <div align="center">
2
+ <img src="./src/cmdx-light-logo.png#gh-light-mode-only" width="200" alt="CMDx Logo">
3
+ <img src="./src/cmdx-dark-logo.png#gh-dark-mode-only" width="200" alt="CMDx Logo">
4
+
5
+ ---
6
+
7
+ Bundled locale files for the [CMDx](https://github.com/drexed/cmdx) framework.
8
+
9
+ [Changelog](./CHANGELOG.md) · [Report Bug](https://github.com/drexed/cmdx-i18n/issues) · [Request Feature](https://github.com/drexed/cmdx-i18n/issues)
4
10
 
5
- <p align="center">
6
11
  <img alt="Version" src="https://img.shields.io/gem/v/cmdx-i18n">
7
12
  <img alt="Build" src="https://github.com/drexed/cmdx-i18n/actions/workflows/ci.yml/badge.svg">
8
13
  <img alt="License" src="https://img.shields.io/github/license/drexed/cmdx-i18n">
9
- </p>
14
+ </div>
10
15
 
11
16
  # CMDx::I18n
12
17
 
13
- Centralization of locales for [CMDx](https://github.com/drexed/cmdx).
18
+ Translations for CMDx's built-in coercion, validator, and fault messages across 86 locales.
14
19
 
15
- ## Installation
20
+ ## Requirements
16
21
 
17
- Add this line to your application's Gemfile:
22
+ - Ruby: MRI 3.3+ or a compatible JRuby/TruffleRuby release
23
+ - CMDx 2.0+
18
24
 
19
- ```ruby
20
- gem 'cmdx-i18n'
25
+ ## Installation
26
+
27
+ ```sh
28
+ gem install cmdx-i18n
29
+ # - or -
30
+ bundle add cmdx-i18n
21
31
  ```
22
32
 
23
- And then execute:
33
+ ## Usage
34
+
35
+ ### Rails
24
36
 
25
- $ bundle
37
+ On boot, the bundled Railtie loads every file under `lib/locales/` that matches `config.i18n.available_locales` into `I18n.load_path`. No configuration is required — set `config.i18n.available_locales` as you normally would and CMDx messages will resolve in the active locale.
26
38
 
27
- Or install it yourself as:
39
+ ### Non-Rails
28
40
 
29
- $ gem install cmdx-i18n
41
+ Requiring the gem registers its locale directory with `CMDx::I18nProxy`, so CMDx's internal fallback translator can resolve any bundled locale even without the `i18n` gem:
30
42
 
31
- ## Configuration
43
+ ```ruby
44
+ require "cmdx/i18n"
45
+
46
+ CMDx.configure { |c| c.default_locale = "fr" }
47
+ ```
32
48
 
33
- If the `I18n` gem is installed in a Rails app, `cmdx-i18n` locales are automatically loaded and are managed through the `I18n.available_locales` option.
49
+ If the `i18n` gem *is* loaded, `CMDx::I18nProxy` delegates to `I18n.translate` and honors `I18n.locale` / `I18n.with_locale`.
34
50
 
35
- ## Local Version
51
+ ## Copying Locales
36
52
 
37
- Execute the following command to copy any locale to the Rails applications `config/locales` directory:
53
+ To vendor a locale into a Rails app's `config/locales/` for customization:
38
54
 
39
55
  ```bash
40
56
  rails generate cmdx:i18n:locale [LOCALE]
41
57
 
42
- # Eg: generate french locale
58
+ # Copies en.yml by default
59
+ rails generate cmdx:i18n:locale
60
+
61
+ # Copies fr.yml
43
62
  rails generate cmdx:i18n:locale fr
44
63
  ```
45
64
 
46
- ## Locales
65
+ ## Supported Locales
66
+
67
+ <details>
68
+ <summary>86 locales</summary>
47
69
 
48
70
  - af - Afrikaans
49
71
  - ar - Arabic
@@ -132,20 +154,18 @@ rails generate cmdx:i18n:locale fr
132
154
  - zh-TW - Chinese (Traditional)
133
155
  - zh-YUE - Chinese (Yue)
134
156
 
157
+ </details>
158
+
135
159
  ## Development
136
160
 
137
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
161
+ Run `bin/setup` to install dependencies, then `rake spec` to run the tests. Use `bin/console` for an interactive prompt.
138
162
 
139
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
163
+ Release flow: bump `lib/cmdx/i18n/version.rb`, then `bundle exec rake release` to tag, push, and publish to [rubygems.org](https://rubygems.org).
140
164
 
141
165
  ## Contributing
142
166
 
143
- Bug reports and pull requests are welcome on GitHub at https://github.com/drexed/cmdx-i18n. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/drexed/cmdx-i18n/blob/master/CODE_OF_CONDUCT.md).
167
+ Bug reports and pull requests are welcome at <https://github.com/drexed/cmdx-i18n>. Contributors are expected to follow the [code of conduct](https://github.com/drexed/cmdx-i18n/blob/master/CODE_OF_CONDUCT.md).
144
168
 
145
169
  ## License
146
170
 
147
- The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
148
-
149
- ## Code of Conduct
150
-
151
- Everyone interacting in the Cmdx::I18n project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/drexed/cmdx-i18n/blob/master/CODE_OF_CONDUCT.md).
171
+ Released under the [MIT License](https://opensource.org/licenses/MIT).
@@ -2,35 +2,20 @@
2
2
 
3
3
  module CMDx
4
4
  module I18n
5
- # Rails integration class that automatically configures CMDx::I18n when the Rails
6
- # application initializes. Handles locale configuration and I18n setup.
5
+ # Integrates CMDx::I18n locale files into the Rails I18n load path.
6
+ #
7
+ # Automatically loads bundled locale YAML files for each locale listed
8
+ # in +config.i18n.available_locales+ during Rails initialization.
9
+ #
10
+ # @see Cmdx::I18n::LocaleGenerator
7
11
  class Railtie < Rails::Railtie
8
12
 
9
13
  railtie_name :cmdx_i18n
10
14
 
11
- # Configures CMDx::I18n locales during Rails application initialization.
12
- #
13
- # Iterates through available locales from the Rails configuration and loads
14
- # corresponding CMDx::I18n locale files. Reloads the I18n system to ensure
15
- # all locales are properly registered.
16
- #
17
- # @param app [Rails::Application] the Rails application instance
18
- #
19
- # @raise [LoadError] if locale files cannot be loaded
20
- #
21
- # @example
22
- # # This initializer runs automatically when Rails starts
23
- # # It will load locales like en.yml, es.yml, fr.yml if they exist
24
- # # in the CMDx::I18n gem's locales directory
25
- initializer("cmdx_i18n.configure_locales") do |app|
26
- Array(app.config.i18n.available_locales).each do |locale|
27
- path = CMDx::I18n.gem_path.join("lib/locales/#{locale}.yml")
28
- next unless File.file?(path)
29
-
30
- ::I18n.load_path << path
31
- end
32
-
33
- ::I18n.reload!
15
+ initializer("cmdx_i18n.configure_rails") do |app|
16
+ available_locales = app.config.i18n.available_locales.join(",")
17
+ locale_path = File.expand_path("../locales/{#{available_locales}}.yml", __dir__)
18
+ ::I18n.load_path += Dir[locale_path]
34
19
  end
35
20
 
36
21
  end
@@ -1,9 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CMDx
4
+ # Internationalization extension for CMDx providing locale-aware
5
+ # task status and reason messages.
4
6
  module I18n
5
7
 
6
- VERSION = "0.3.0"
8
+ # Gem version. Bumped on release; mirrored in the gemspec.
9
+ VERSION = "2.0.0"
7
10
 
8
11
  end
9
12
  end
data/lib/cmdx/i18n.rb CHANGED
@@ -4,20 +4,12 @@ require "cmdx"
4
4
 
5
5
  require_relative "i18n/version"
6
6
 
7
- module CMDx
8
- module I18n
9
-
10
- extend self
11
-
12
- def gem_path
13
- @gem_path ||= Pathname.new(__dir__).parent.parent
14
- end
15
-
16
- end
17
- end
7
+ # Register the gem's bundled locale directory with CMDx::I18nProxy so that
8
+ # the no-`i18n`-gem fallback path can resolve non-en translations.
9
+ CMDx::I18nProxy.register(File.expand_path("../locales", __dir__))
18
10
 
19
11
  # Conditionally load Rails components if Rails is available
20
- require_relative "generators/cmdx/i18n/copy_generator" if defined?(Rails::Generators)
12
+ require_relative "generators/cmdx/i18n/locale_generator" if defined?(Rails::Generators)
21
13
 
22
14
  # Load the Railtie last after everything else is required so we don't
23
15
  # need to load any CMDx::I18n components when we use this Railtie.
@@ -2,11 +2,13 @@
2
2
 
3
3
  module Cmdx
4
4
  module I18n
5
- # Generates CMDx locale files for Rails applications
5
+ # Rails generator that copies CMDx::I18n locale files into the host
6
+ # application's +config/locales/+ directory.
6
7
  #
7
- # Rails generator that copies CMDx::I18n locale files into the application's
8
- # config/locales directory. This allows applications to customize and extend
9
- # the default CMDx::I18n locale files.
8
+ # Provides manual locale installation as an alternative to the
9
+ # automatic load-path injection performed by {CMDx::I18n::Railtie}.
10
+ #
11
+ # @see CMDx::I18n::Railtie
10
12
  class LocaleGenerator < Rails::Generators::Base
11
13
 
12
14
  source_root File.expand_path("../../../locales", __dir__)
@@ -15,23 +17,9 @@ module Cmdx
15
17
 
16
18
  argument :locale, type: :string, default: "en", banner: "Locale to copy"
17
19
 
18
- # Copies the locale template to the Rails application
19
- #
20
- # Copies the specified locale file from the gem's locales directory to the
21
- # application's config/locales directory. If the locale file doesn't exist
22
- # in the gem, the generator will fail gracefully.
20
+ # Copies the requested locale YAML file into +config/locales/+.
23
21
  #
24
22
  # @return [void]
25
- #
26
- # @example
27
- # # Copy default (English) locale file
28
- # rails generate cmdx:i18n:locale
29
- # # => Creates config/locales/en.yml
30
- #
31
- # # Copy Spanish locale file
32
- # rails generate cmdx:i18n:locale es
33
- # # => Creates config/locales/es.yml
34
- #
35
23
  def copy_locale_files
36
24
  copy_file("#{locale}.yml", "config/locales/#{locale}.yml")
37
25
  end
data/lib/locales/af.yml CHANGED
@@ -1,15 +1,15 @@
1
1
  af:
2
2
  cmdx:
3
3
  attributes:
4
- required: "moet toeganklik wees via die bron"
5
- undefined: "delegeer na ongedefinieerde metode %{method}"
4
+ required: "word vereis"
6
5
  coercions:
7
6
  into_a: "kon nie na %{type} omskep word nie"
8
7
  into_an: "kon nie na %{type} omskep word nie"
9
8
  into_any: "kon nie na een van: %{types} omskep word nie"
10
- unknown: "onbekende %{type} omskep tipe"
11
- faults:
12
- unspecified: "geen rede gegee nie"
9
+ reasons:
10
+ unspecified: "Ongespesifiseer"
11
+ outputs:
12
+ missing: "moet in die konteks gestel word"
13
13
  types:
14
14
  array: "skikking"
15
15
  big_decimal: "groot desimale"
@@ -25,6 +25,7 @@ af:
25
25
  symbol: "simbool"
26
26
  time: "tyd"
27
27
  validators:
28
+ absence: "moet leeg wees"
28
29
  exclusion:
29
30
  of: "moet nie een van wees nie: %{values}"
30
31
  within: "moet nie binne %{min} en %{max} wees nie"
@@ -37,6 +38,9 @@ af:
37
38
  is_not: "lengte moet nie %{is_not} wees nie"
38
39
  min: "lengte moet ten minste %{min} wees"
39
40
  max: "lengte kan maksimum %{max} wees"
41
+ gt: "lengte moet groter as %{gt} wees"
42
+ lt: "lengte moet kleiner as %{lt} wees"
43
+ nil_value: "moet 'n lengte hê"
40
44
  not_within: "lengte moet nie binne %{min} en %{max} wees nie"
41
45
  within: "lengte moet binne %{min} en %{max} wees"
42
46
  numeric:
@@ -44,6 +48,9 @@ af:
44
48
  is_not: "moet nie %{is_not} wees nie"
45
49
  min: "moet ten minste %{min} wees"
46
50
  max: "kan maksimum %{max} wees"
51
+ gt: "moet groter as %{gt} wees"
52
+ lt: "moet kleiner as %{lt} wees"
53
+ nil_value: "moet numeries wees"
47
54
  not_within: "moet nie binne %{min} en %{max} wees nie"
48
55
  within: "moet binne %{min} en %{max} wees"
49
56
  presence: "kan nie leeg wees nie"
data/lib/locales/ar.yml CHANGED
@@ -1,15 +1,15 @@
1
1
  ar:
2
2
  cmdx:
3
3
  attributes:
4
- required: "يجب أن يكون قابلاً للوصول عبر المصدر"
5
- undefined: "يفوض إلى طريقة غير معرفة %{method}"
4
+ required: "مطلوب"
6
5
  coercions:
7
6
  into_a: "لا يمكن تحويله إلى %{type}"
8
7
  into_an: "لا يمكن تحويله إلى %{type}"
9
8
  into_any: "لا يمكن تحويله إلى واحد من: %{types}"
10
- unknown: "نوع تحويل %{type} غير معروف"
11
- faults:
12
- unspecified: "لم يتم تقديم سبب"
9
+ reasons:
10
+ unspecified: "غير محدد"
11
+ outputs:
12
+ missing: "يجب تعيينه في السياق"
13
13
  types:
14
14
  array: "مصفوفة"
15
15
  big_decimal: "عدد عشري كبير"
@@ -25,6 +25,7 @@ ar:
25
25
  symbol: "رمز"
26
26
  time: "الوقت"
27
27
  validators:
28
+ absence: "يجب أن يكون فارغاً"
28
29
  exclusion:
29
30
  of: "يجب ألا يكون واحداً من: %{values}"
30
31
  within: "يجب ألا يكون بين %{min} و %{max}"
@@ -37,6 +38,9 @@ ar:
37
38
  is_not: "يجب ألا يكون الطول %{is_not}"
38
39
  min: "يجب أن يكون الطول على الأقل %{min}"
39
40
  max: "يجب أن يكون الطول على الأكثر %{max}"
41
+ gt: "يجب أن يكون الطول أكبر من %{gt}"
42
+ lt: "يجب أن يكون الطول أقل من %{lt}"
43
+ nil_value: "يجب أن يكون له طول"
40
44
  not_within: "يجب ألا يكون الطول بين %{min} و %{max}"
41
45
  within: "يجب أن يكون الطول بين %{min} و %{max}"
42
46
  numeric:
@@ -44,6 +48,9 @@ ar:
44
48
  is_not: "يجب ألا يكون %{is_not}"
45
49
  min: "يجب أن يكون على الأقل %{min}"
46
50
  max: "يجب أن يكون على الأكثر %{max}"
51
+ gt: "يجب أن يكون أكبر من %{gt}"
52
+ lt: "يجب أن يكون أقل من %{lt}"
53
+ nil_value: "يجب أن يكون رقمياً"
47
54
  not_within: "يجب ألا يكون بين %{min} و %{max}"
48
55
  within: "يجب أن يكون بين %{min} و %{max}"
49
56
  presence: "لا يمكن أن يكون فارغاً"
data/lib/locales/az.yml CHANGED
@@ -1,15 +1,15 @@
1
1
  az:
2
2
  cmdx:
3
3
  attributes:
4
- required: "mənbə vasitəsilə əlçatan olmalıdır"
5
- undefined: "müəyyən edilməmiş metoda %{method} təyin edir"
4
+ required: "tələb olunur"
6
5
  coercions:
7
6
  into_a: "%{type} tipinə çevrilə bilmədi"
8
7
  into_an: "%{type} tipinə çevrilə bilmədi"
9
8
  into_any: "aşağıdakılardan birinə çevrilə bilmədi: %{types}"
10
- unknown: "naməlum %{type} çevrilmə tipi"
11
- faults:
12
- unspecified: "səbəb göstərilməyib"
9
+ reasons:
10
+ unspecified: "Göstərilməyib"
11
+ outputs:
12
+ missing: "kontekstdə təyin edilməlidir"
13
13
  types:
14
14
  array: "massiv"
15
15
  big_decimal: "böyük onluq"
@@ -25,6 +25,7 @@ az:
25
25
  symbol: "simvol"
26
26
  time: "vaxt"
27
27
  validators:
28
+ absence: "boş olmalıdır"
28
29
  exclusion:
29
30
  of: "aşağıdakılardan biri ola bilməz: %{values}"
30
31
  within: "%{min} və %{max} arasında ola bilməz"
@@ -37,6 +38,9 @@ az:
37
38
  is_not: "uzunluq %{is_not} ola bilməz"
38
39
  min: "uzunluq ən azı %{min} olmalıdır"
39
40
  max: "uzunluq ən çoxu %{max} ola bilər"
41
+ gt: "uzunluq %{gt}-dən böyük olmalıdır"
42
+ lt: "uzunluq %{lt}-dən kiçik olmalıdır"
43
+ nil_value: "uzunluğu olmalıdır"
40
44
  not_within: "uzunluq %{min} və %{max} arasında ola bilməz"
41
45
  within: "uzunluq %{min} və %{max} arasında olmalıdır"
42
46
  numeric:
@@ -44,6 +48,9 @@ az:
44
48
  is_not: "%{is_not} ola bilməz"
45
49
  min: "ən azı %{min} olmalıdır"
46
50
  max: "ən çoxu %{max} ola bilər"
51
+ gt: "%{gt}-dən böyük olmalıdır"
52
+ lt: "%{lt}-dən kiçik olmalıdır"
53
+ nil_value: "rəqəmli olmalıdır"
47
54
  not_within: "%{min} və %{max} arasında ola bilməz"
48
55
  within: "%{min} və %{max} arasında olmalıdır"
49
56
  presence: "boş ola bilməz"
data/lib/locales/be.yml CHANGED
@@ -1,15 +1,15 @@
1
1
  be:
2
2
  cmdx:
3
3
  attributes:
4
- required: "павінна быць даступна праз крыніцу"
5
- undefined: "дэлегуе невызначанаму метаду %{method}"
4
+ required: "абавязковы"
6
5
  coercions:
7
6
  into_a: "не ўдалося пераўтварыць у %{type}"
8
7
  into_an: "не ўдалося пераўтварыць у %{type}"
9
8
  into_any: "не ўдалося пераўтварыць у адзін з: %{types}"
10
- unknown: "невядомы тып пераўтварэння %{type}"
11
- faults:
12
- unspecified: "прычына не паказана"
9
+ reasons:
10
+ unspecified: "Не паказана"
11
+ outputs:
12
+ missing: "павінна быць усталявана ў кантэксце"
13
13
  types:
14
14
  array: "масіў"
15
15
  big_decimal: "вялікае дзесятковае лік"
@@ -25,6 +25,7 @@ be:
25
25
  symbol: "сімвал"
26
26
  time: "час"
27
27
  validators:
28
+ absence: "павінна быць пустым"
28
29
  exclusion:
29
30
  of: "не можа быць адным з: %{values}"
30
31
  within: "не можа быць паміж %{min} і %{max}"
@@ -37,6 +38,9 @@ be:
37
38
  is_not: "даўжыня не можа быць %{is_not}"
38
39
  min: "даўжыня павінна быць не менш %{min}"
39
40
  max: "даўжыня можа быць не больш %{max}"
41
+ gt: "даўжыня павінна быць больш за %{gt}"
42
+ lt: "даўжыня павінна быць менш за %{lt}"
43
+ nil_value: "павінна мець даўжыню"
40
44
  not_within: "даўжыня не можа быць паміж %{min} і %{max}"
41
45
  within: "даўжыня павінна быць паміж %{min} і %{max}"
42
46
  numeric:
@@ -44,6 +48,9 @@ be:
44
48
  is_not: "не можа быць %{is_not}"
45
49
  min: "павінна быць не менш %{min}"
46
50
  max: "можа быць не больш %{max}"
51
+ gt: "павінна быць больш за %{gt}"
52
+ lt: "павінна быць менш за %{lt}"
53
+ nil_value: "павінна быць лікавым"
47
54
  not_within: "не можа быць паміж %{min} і %{max}"
48
55
  within: "павінна быць паміж %{min} і %{max}"
49
56
  presence: "не можа быць пустым"
data/lib/locales/bg.yml CHANGED
@@ -1,15 +1,15 @@
1
1
  bg:
2
2
  cmdx:
3
3
  attributes:
4
- required: "трябва да бъде достъпен чрез източника"
5
- undefined: "делегира към недефиниран метод %{method}"
4
+ required: "е задължително"
6
5
  coercions:
7
6
  into_a: "не може да бъде преобразуван в %{type}"
8
7
  into_an: "не може да бъде преобразуван в %{type}"
9
8
  into_any: "не може да бъде преобразуван в един от: %{types}"
10
- unknown: "неизвестен тип преобразуване %{type}"
11
- faults:
12
- unspecified: "не е посочена причина"
9
+ reasons:
10
+ unspecified: "Не е посочена"
11
+ outputs:
12
+ missing: "трябва да бъде зададено в контекста"
13
13
  types:
14
14
  array: "масив"
15
15
  big_decimal: "голямо десетично число"
@@ -25,6 +25,7 @@ bg:
25
25
  symbol: "символ"
26
26
  time: "час"
27
27
  validators:
28
+ absence: "трябва да бъде празно"
28
29
  exclusion:
29
30
  of: "не може да бъде един от: %{values}"
30
31
  within: "не може да бъде между %{min} и %{max}"
@@ -37,6 +38,9 @@ bg:
37
38
  is_not: "дължината не може да бъде %{is_not}"
38
39
  min: "дължината трябва да бъде поне %{min}"
39
40
  max: "дължината може да бъде най-много %{max}"
41
+ gt: "дължината трябва да бъде по-голяма от %{gt}"
42
+ lt: "дължината трябва да бъде по-малка от %{lt}"
43
+ nil_value: "трябва да има дължина"
40
44
  not_within: "дължината не може да бъде между %{min} и %{max}"
41
45
  within: "дължината трябва да бъде между %{min} и %{max}"
42
46
  numeric:
@@ -44,6 +48,9 @@ bg:
44
48
  is_not: "не може да бъде %{is_not}"
45
49
  min: "трябва да бъде поне %{min}"
46
50
  max: "може да бъде най-много %{max}"
51
+ gt: "трябва да бъде по-голямо от %{gt}"
52
+ lt: "трябва да бъде по-малко от %{lt}"
53
+ nil_value: "трябва да е числово"
47
54
  not_within: "не може да бъде между %{min} и %{max}"
48
55
  within: "трябва да бъде между %{min} и %{max}"
49
56
  presence: "не може да бъде празно"
data/lib/locales/bn.yml CHANGED
@@ -1,15 +1,15 @@
1
1
  bn:
2
2
  cmdx:
3
3
  attributes:
4
- required: "উৎসের মাধ্যমে অ্যাক্সেসযোগ্য হতে হবে"
5
- undefined: "অসংজ্ঞায়িত পদ্ধতিতে %{method} অর্পণ করে"
4
+ required: "প্রয়োজন"
6
5
  coercions:
7
6
  into_a: "%{type} এ রূপান্তর করা যায়নি"
8
7
  into_an: "%{type} এ রূপান্তর করা যায়নি"
9
8
  into_any: "নিম্নলিখিতগুলির মধ্যে একটিতে রূপান্তর করা যায়নি: %{types}"
10
- unknown: "অজানা %{type} রূপান্তর প্রকার"
11
- faults:
12
- unspecified: "কোন কারণ দেওয়া হয়নি"
9
+ reasons:
10
+ unspecified: "অনির্দিষ্ট"
11
+ outputs:
12
+ missing: "প্রসঙ্গে সেট করতে হবে"
13
13
  types:
14
14
  array: "অ্যারে"
15
15
  big_decimal: "বড় দশমিক"
@@ -25,6 +25,7 @@ bn:
25
25
  symbol: "প্রতীক"
26
26
  time: "সময়"
27
27
  validators:
28
+ absence: "খালি হতে হবে"
28
29
  exclusion:
29
30
  of: "নিম্নলিখিতগুলির মধ্যে একটি হতে পারবে না: %{values}"
30
31
  within: "%{min} এবং %{max} এর মধ্যে থাকতে পারবে না"
@@ -37,6 +38,9 @@ bn:
37
38
  is_not: "দৈর্ঘ্য %{is_not} হতে পারবে না"
38
39
  min: "দৈর্ঘ্য কমপক্ষে %{min} হতে হবে"
39
40
  max: "দৈর্ঘ্য সর্বোচ্চ %{max} হতে পারবে"
41
+ gt: "দৈর্ঘ্য %{gt} এর চেয়ে বড় হতে হবে"
42
+ lt: "দৈর্ঘ্য %{lt} এর চেয়ে ছোট হতে হবে"
43
+ nil_value: "একটি দৈর্ঘ্য থাকতে হবে"
40
44
  not_within: "দৈর্ঘ্য %{min} এবং %{max} এর মধ্যে থাকতে পারবে না"
41
45
  within: "দৈর্ঘ্য %{min} এবং %{max} এর মধ্যে থাকতে হবে"
42
46
  numeric:
@@ -44,6 +48,9 @@ bn:
44
48
  is_not: "%{is_not} হতে পারবে না"
45
49
  min: "কমপক্ষে %{min} হতে হবে"
46
50
  max: "সর্বোচ্চ %{max} হতে পারবে"
51
+ gt: "%{gt} এর চেয়ে বড় হতে হবে"
52
+ lt: "%{lt} এর চেয়ে ছোট হতে হবে"
53
+ nil_value: "সংখ্যাসূচক হতে হবে"
47
54
  not_within: "%{min} এবং %{max} এর মধ্যে থাকতে পারবে না"
48
55
  within: "%{min} এবং %{max} এর মধ্যে থাকতে হবে"
49
56
  presence: "খালি হতে পারবে না"
data/lib/locales/bs.yml CHANGED
@@ -1,15 +1,15 @@
1
1
  bs:
2
2
  cmdx:
3
3
  attributes:
4
- required: "mora biti dostupan kroz izvor"
5
- undefined: "delegira nedefiniranoj metodi %{method}"
4
+ required: "je obavezno"
6
5
  coercions:
7
6
  into_a: "nije mogao biti pretvoren u %{type}"
8
7
  into_an: "nije mogao biti pretvoren u %{type}"
9
8
  into_any: "nije mogao biti pretvoren u jedan od: %{types}"
10
- unknown: "nepoznati tip pretvorbe %{type}"
11
- faults:
12
- unspecified: "nije naveden razlog"
9
+ reasons:
10
+ unspecified: "Nije naveden"
11
+ outputs:
12
+ missing: "mora biti postavljeno u kontekstu"
13
13
  types:
14
14
  array: "niz"
15
15
  big_decimal: "veliki decimalni broj"
@@ -25,6 +25,7 @@ bs:
25
25
  symbol: "simbol"
26
26
  time: "vrijeme"
27
27
  validators:
28
+ absence: "mora biti prazno"
28
29
  exclusion:
29
30
  of: "ne smije biti jedan od: %{values}"
30
31
  within: "ne smije biti između %{min} i %{max}"
@@ -37,6 +38,9 @@ bs:
37
38
  is_not: "dužina ne smije biti %{is_not}"
38
39
  min: "dužina mora biti najmanje %{min}"
39
40
  max: "dužina može biti najviše %{max}"
41
+ gt: "dužina mora biti veća od %{gt}"
42
+ lt: "dužina mora biti manja od %{lt}"
43
+ nil_value: "mora imati dužinu"
40
44
  not_within: "dužina ne smije biti između %{min} i %{max}"
41
45
  within: "dužina mora biti između %{min} i %{max}"
42
46
  numeric:
@@ -44,6 +48,9 @@ bs:
44
48
  is_not: "ne smije biti %{is_not}"
45
49
  min: "mora biti najmanje %{min}"
46
50
  max: "može biti najviše %{max}"
51
+ gt: "mora biti veće od %{gt}"
52
+ lt: "mora biti manje od %{lt}"
53
+ nil_value: "mora biti numeričko"
47
54
  not_within: "ne smije biti između %{min} i %{max}"
48
55
  within: "mora biti između %{min} i %{max}"
49
56
  presence: "ne može biti prazno"