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.
- checksums.yaml +4 -4
- data/.rubocop.yml +1 -1
- data/.ruby-version +1 -1
- data/CHANGELOG.md +7 -1
- data/README.md +48 -28
- data/lib/cmdx/i18n/railtie.rb +10 -25
- data/lib/cmdx/i18n/version.rb +4 -1
- data/lib/cmdx/i18n.rb +4 -12
- data/lib/generators/cmdx/i18n/locale_generator.rb +7 -19
- data/lib/locales/af.yml +12 -5
- data/lib/locales/ar.yml +12 -5
- data/lib/locales/az.yml +12 -5
- data/lib/locales/be.yml +12 -5
- data/lib/locales/bg.yml +12 -5
- data/lib/locales/bn.yml +12 -5
- data/lib/locales/bs.yml +12 -5
- data/lib/locales/ca.yml +12 -5
- data/lib/locales/cnr.yml +12 -5
- data/lib/locales/cs.yml +12 -5
- data/lib/locales/cy.yml +12 -5
- data/lib/locales/da.yml +12 -5
- data/lib/locales/de.yml +12 -5
- data/lib/locales/dz.yml +12 -5
- data/lib/locales/el.yml +12 -5
- data/lib/locales/en.yml +12 -5
- data/lib/locales/eo.yml +12 -5
- data/lib/locales/es.yml +12 -5
- data/lib/locales/et.yml +12 -5
- data/lib/locales/eu.yml +12 -5
- data/lib/locales/fa.yml +12 -5
- data/lib/locales/fi.yml +12 -5
- data/lib/locales/fr.yml +12 -5
- data/lib/locales/fy.yml +12 -5
- data/lib/locales/gd.yml +12 -5
- data/lib/locales/gl.yml +12 -5
- data/lib/locales/he.yml +12 -5
- data/lib/locales/hi.yml +12 -5
- data/lib/locales/hr.yml +12 -5
- data/lib/locales/hu.yml +12 -5
- data/lib/locales/hy.yml +12 -5
- data/lib/locales/id.yml +12 -5
- data/lib/locales/is.yml +12 -5
- data/lib/locales/it.yml +12 -5
- data/lib/locales/ja.yml +12 -5
- data/lib/locales/ka.yml +12 -5
- data/lib/locales/kk.yml +12 -5
- data/lib/locales/km.yml +12 -5
- data/lib/locales/kn.yml +12 -5
- data/lib/locales/ko.yml +12 -5
- data/lib/locales/lb.yml +12 -5
- data/lib/locales/lo.yml +12 -5
- data/lib/locales/lt.yml +12 -5
- data/lib/locales/lv.yml +12 -5
- data/lib/locales/mg.yml +12 -5
- data/lib/locales/mk.yml +12 -5
- data/lib/locales/ml.yml +12 -5
- data/lib/locales/mn.yml +12 -5
- data/lib/locales/mr-IN.yml +12 -5
- data/lib/locales/ms.yml +12 -5
- data/lib/locales/nb.yml +12 -5
- data/lib/locales/ne.yml +12 -5
- data/lib/locales/nl.yml +12 -5
- data/lib/locales/nn.yml +12 -5
- data/lib/locales/oc.yml +12 -5
- data/lib/locales/or.yml +12 -5
- data/lib/locales/pa.yml +12 -5
- data/lib/locales/pl.yml +12 -5
- data/lib/locales/pt.yml +12 -5
- data/lib/locales/rm.yml +12 -5
- data/lib/locales/ro.yml +12 -5
- data/lib/locales/ru.yml +12 -5
- data/lib/locales/sc.yml +12 -5
- data/lib/locales/sk.yml +12 -5
- data/lib/locales/sl.yml +12 -5
- data/lib/locales/sq.yml +12 -5
- data/lib/locales/sr.yml +12 -5
- data/lib/locales/st.yml +12 -5
- data/lib/locales/sv.yml +12 -5
- data/lib/locales/sw.yml +12 -5
- data/lib/locales/ta.yml +12 -5
- data/lib/locales/te.yml +12 -5
- data/lib/locales/th.yml +12 -5
- data/lib/locales/tl.yml +12 -5
- data/lib/locales/tr.yml +12 -5
- data/lib/locales/tt.yml +12 -5
- data/lib/locales/ug.yml +12 -5
- data/lib/locales/uk.yml +12 -5
- data/lib/locales/ur.yml +12 -5
- data/lib/locales/uz.yml +12 -5
- data/lib/locales/vi.yml +12 -5
- data/lib/locales/wo.yml +12 -5
- data/lib/locales/zh-CN.yml +12 -5
- data/lib/locales/zh-HK.yml +12 -5
- data/lib/locales/zh-TW.yml +12 -5
- data/lib/locales/zh-YUE.yml +12 -5
- data/src/cmdx-dark-logo.png +0 -0
- data/src/cmdx-light-logo.png +0 -0
- data/src/cmdx-logo.svg +1 -0
- metadata +8 -11
- data/.cursor/prompts/docs.md +0 -12
- data/.cursor/prompts/llms.md +0 -20
- data/.cursor/prompts/rspec.md +0 -24
- data/.cursor/prompts/yardoc.md +0 -14
- data/.cursor/rules/cursor-instructions.mdc +0 -62
- data/src/cmdx-i18n-logo.png +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8ad5ff8c761c81b0d09d7ebbe216de4cd3ba2af69041626891d3a04dd85bbd6b
|
|
4
|
+
data.tar.gz: e5a19d89d466f45d14e1deb687183c730e3b3ebcb048297c27e8f9de0a891c2d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 73593ebf7600d4c7a56c6995d877a5abc654be3326f1834c3ac4310a5273ca11acddada71403cf10fb4b3149f225e1670649829ab4024ef1a0decc69e64c43ff
|
|
7
|
+
data.tar.gz: '089ade7ac6dc610da3cc113fa14f7515e6ddc80f40c55eb054172c7f52e7936f6763b32f43aeecb0293f9a63164ca53363d3d876794d8b017059a8b0a302b5e7'
|
data/.rubocop.yml
CHANGED
data/.ruby-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
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
|
-
## [
|
|
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
|
-
<
|
|
2
|
-
<img src="./src/cmdx-
|
|
3
|
-
|
|
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
|
-
</
|
|
14
|
+
</div>
|
|
10
15
|
|
|
11
16
|
# CMDx::I18n
|
|
12
17
|
|
|
13
|
-
|
|
18
|
+
Translations for CMDx's built-in coercion, validator, and fault messages across 86 locales.
|
|
14
19
|
|
|
15
|
-
##
|
|
20
|
+
## Requirements
|
|
16
21
|
|
|
17
|
-
|
|
22
|
+
- Ruby: MRI 3.3+ or a compatible JRuby/TruffleRuby release
|
|
23
|
+
- CMDx 2.0+
|
|
18
24
|
|
|
19
|
-
|
|
20
|
-
|
|
25
|
+
## Installation
|
|
26
|
+
|
|
27
|
+
```sh
|
|
28
|
+
gem install cmdx-i18n
|
|
29
|
+
# - or -
|
|
30
|
+
bundle add cmdx-i18n
|
|
21
31
|
```
|
|
22
32
|
|
|
23
|
-
|
|
33
|
+
## Usage
|
|
34
|
+
|
|
35
|
+
### Rails
|
|
24
36
|
|
|
25
|
-
|
|
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
|
-
|
|
39
|
+
### Non-Rails
|
|
28
40
|
|
|
29
|
-
|
|
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
|
-
|
|
43
|
+
```ruby
|
|
44
|
+
require "cmdx/i18n"
|
|
45
|
+
|
|
46
|
+
CMDx.configure { |c| c.default_locale = "fr" }
|
|
47
|
+
```
|
|
32
48
|
|
|
33
|
-
If the `
|
|
49
|
+
If the `i18n` gem *is* loaded, `CMDx::I18nProxy` delegates to `I18n.translate` and honors `I18n.locale` / `I18n.with_locale`.
|
|
34
50
|
|
|
35
|
-
##
|
|
51
|
+
## Copying Locales
|
|
36
52
|
|
|
37
|
-
|
|
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
|
-
#
|
|
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
|
-
|
|
161
|
+
Run `bin/setup` to install dependencies, then `rake spec` to run the tests. Use `bin/console` for an interactive prompt.
|
|
138
162
|
|
|
139
|
-
|
|
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
|
|
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
|
-
|
|
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).
|
data/lib/cmdx/i18n/railtie.rb
CHANGED
|
@@ -2,35 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
module CMDx
|
|
4
4
|
module I18n
|
|
5
|
-
#
|
|
6
|
-
#
|
|
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
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|
data/lib/cmdx/i18n/version.rb
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
8
|
-
|
|
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/
|
|
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
|
-
#
|
|
5
|
+
# Rails generator that copies CMDx::I18n locale files into the host
|
|
6
|
+
# application's +config/locales/+ directory.
|
|
6
7
|
#
|
|
7
|
-
#
|
|
8
|
-
#
|
|
9
|
-
#
|
|
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
|
|
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: "
|
|
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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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: "
|
|
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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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: "
|
|
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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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"
|