r18n-rails-api 3.0.5 → 5.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ChangeLog.md +382 -0
- data/README.md +16 -25
- data/lib/r18n-rails-api/backend.rb +24 -27
- data/lib/r18n-rails-api/filters.rb +5 -7
- data/lib/r18n-rails-api/loader.rb +15 -13
- data/lib/r18n-rails-api/rails_plural.rb +7 -7
- data/lib/r18n-rails-api/version.rb +9 -0
- metadata +173 -50
- data/.rspec +0 -1
- data/Rakefile +0 -13
- data/r18n-rails-api.gemspec +0 -33
- data/spec/backend_spec.rb +0 -125
- data/spec/data/general/en.yml +0 -21
- data/spec/data/general/ru.yml +0 -4
- data/spec/data/other/en.yml +0 -2
- data/spec/data/other/ru.yml +0 -2
- data/spec/data/pl/ru.yml +0 -6
- data/spec/data/simple/de-CH.yml +0 -2
- data/spec/data/simple/en.yml +0 -6
- data/spec/data/simple/ru.rb +0 -3
- data/spec/data/simple/russian.yml +0 -2
- data/spec/filters_spec.rb +0 -39
- data/spec/loader_spec.rb +0 -60
- data/spec/spec_helper.rb +0 -18
@@ -31,9 +31,9 @@ module R18n
|
|
31
31
|
|
32
32
|
RESERVED_KEYS = %i[scope default separator].freeze
|
33
33
|
|
34
|
-
# Find translation in R18n. It didn
|
35
|
-
# R18n I18n object. Also it doesn
|
36
|
-
# String option.
|
34
|
+
# Find translation in R18n. It didn't use `locale` argument, only current
|
35
|
+
# R18n I18n object. Also it doesn't support `Proc` and variables in
|
36
|
+
# `default` String option.
|
37
37
|
def translate(locale, key, options = {})
|
38
38
|
return key.map { |k| translate(locale, k, options) } if key.is_a?(Array)
|
39
39
|
|
@@ -49,10 +49,11 @@ module R18n
|
|
49
49
|
default = [default] unless default.is_a? Array
|
50
50
|
|
51
51
|
default.each do |entry|
|
52
|
-
|
52
|
+
case entry
|
53
|
+
when Symbol
|
53
54
|
value = lookup(locale, scope, entry, separator, params)
|
54
55
|
return value unless value.is_a? Untranslated
|
55
|
-
|
56
|
+
when Proc
|
56
57
|
proc_key = options.delete(:object) || key
|
57
58
|
return entry.call(proc_key, options)
|
58
59
|
else
|
@@ -66,13 +67,13 @@ module R18n
|
|
66
67
|
end
|
67
68
|
end
|
68
69
|
|
69
|
-
# Convert
|
70
|
-
# R18n locale. It didn
|
71
|
-
# object. It support Integer
|
70
|
+
# Convert `object` to `String`, according to the rules of the current
|
71
|
+
# R18n locale. It didn't use `locale` argument, only current R18n I18n
|
72
|
+
# object. It support `Integer`, `Float`, `Time`, `Date` and `DateTime`.
|
72
73
|
#
|
73
|
-
# Support Rails I18n (
|
74
|
-
#
|
75
|
-
# and
|
74
|
+
# Support Rails I18n (`:default`, `:short`, `:long`, `:long_ordinal`,
|
75
|
+
# `:only_day` and `:only_second`) and R18n (`:full`, `:human`, `:standard`
|
76
|
+
# and `:month`) time formatters.
|
76
77
|
def localize(locale, object, format = :default, _options = {})
|
77
78
|
i18n = get_i18n(locale)
|
78
79
|
if format.is_a? Symbol
|
@@ -102,13 +103,12 @@ module R18n
|
|
102
103
|
end
|
103
104
|
|
104
105
|
def format_value(result)
|
105
|
-
|
106
|
+
case result
|
107
|
+
when TranslatedString
|
106
108
|
result.to_s
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
end
|
111
|
-
elsif result.is_a? Translation
|
109
|
+
when UnpluralizedTranslation
|
110
|
+
result.to_hash.transform_keys { |key| RailsPlural.from_r18n(key) }
|
111
|
+
when Translation
|
112
112
|
translation_to_hash(result)
|
113
113
|
else
|
114
114
|
result
|
@@ -116,18 +116,15 @@ module R18n
|
|
116
116
|
end
|
117
117
|
|
118
118
|
def translation_to_hash(translation)
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
end
|
126
|
-
[key.to_sym, value]
|
127
|
-
end
|
119
|
+
translation.to_hash.map do |key, value|
|
120
|
+
[
|
121
|
+
key.to_sym,
|
122
|
+
value.is_a?(Hash) ? translation_to_hash(value) : format_value(value)
|
123
|
+
]
|
124
|
+
end.to_h
|
128
125
|
end
|
129
126
|
|
130
|
-
# Find translation by
|
127
|
+
# Find translation by `scope.key(params)` in current R18n I18n
|
131
128
|
# object.
|
132
129
|
def lookup(locale, scope, key, separator, params)
|
133
130
|
keys = (Array(scope) + Array(key))
|
@@ -27,9 +27,7 @@ R18n::Filters.add(String, :named_variables) do |content, config, params|
|
|
27
27
|
content = content.clone
|
28
28
|
params.each_pair do |name, value|
|
29
29
|
value = config[:locale].localize(value)
|
30
|
-
if defined? ActiveSupport::SafeBuffer
|
31
|
-
value = ActiveSupport::SafeBuffer.new + value
|
32
|
-
end
|
30
|
+
value = ActiveSupport::SafeBuffer.new + value if defined? ActiveSupport::SafeBuffer
|
33
31
|
content.gsub! "%{#{name}}", value
|
34
32
|
content.gsub! "{{#{name}}}", value
|
35
33
|
end
|
@@ -39,7 +37,7 @@ end
|
|
39
37
|
|
40
38
|
module R18n
|
41
39
|
# Class to mark unpluralized translation and convert Rails plural keys
|
42
|
-
class
|
40
|
+
class RailsUnpluralizedTranslation < UnpluralizedTranslation
|
43
41
|
def [](name, *params)
|
44
42
|
result = super
|
45
43
|
if result.is_a? Untranslated
|
@@ -51,15 +49,15 @@ module R18n
|
|
51
49
|
end
|
52
50
|
end
|
53
51
|
|
54
|
-
# Pluralization by named variable
|
52
|
+
# Pluralization by named variable `%{count}`.
|
55
53
|
R18n::Filters.add('pl', :named_pluralization) do |content, config, param|
|
56
54
|
if param.is_a?(Hash) && param.key?(:count)
|
57
55
|
hash = content.to_hash
|
58
56
|
type = config[:locale].pluralize(param[:count])
|
59
57
|
type = 'n' unless hash.key?(type)
|
60
58
|
hash[type]
|
61
|
-
elsif content.is_a? R18n::
|
62
|
-
R18n::
|
59
|
+
elsif content.is_a? R18n::UnpluralizedTranslation
|
60
|
+
R18n::RailsUnpluralizedTranslation.new(
|
63
61
|
config[:locale], config[:path],
|
64
62
|
locale: config[:locale], translations: content.to_hash
|
65
63
|
)
|
@@ -34,41 +34,45 @@ module R18n
|
|
34
34
|
class Rails
|
35
35
|
include ::R18n::YamlMethods
|
36
36
|
|
37
|
-
# Create new loader for some
|
38
|
-
#
|
37
|
+
# Create new loader for some `backend` from Rails I18n. Backend must have
|
38
|
+
# `reload!`, `init_translations` and `translations` methods.
|
39
39
|
def initialize(backend = ::I18n::Backend::Simple.new)
|
40
40
|
@backend = backend
|
41
41
|
detect_yaml_private_type
|
42
42
|
end
|
43
43
|
|
44
|
-
# Array of locales, which has translations in
|
44
|
+
# `Array` of locales, which has translations in `I18n.load_path`.
|
45
45
|
def available
|
46
46
|
reload!
|
47
47
|
@translations.keys.map { |code| R18n.locale(code) }
|
48
48
|
end
|
49
49
|
|
50
|
-
# Return Hash with translations for
|
50
|
+
# Return `Hash` with translations for `locale`.
|
51
51
|
def load(locale)
|
52
52
|
initialize_types
|
53
53
|
reload!
|
54
54
|
@translations[locale.code]
|
55
55
|
end
|
56
56
|
|
57
|
-
# Reload backend if
|
57
|
+
# Reload backend if `I18n.load_path` is changed.
|
58
58
|
def reload!
|
59
59
|
return if defined?(@last_path) && @last_path == ::I18n.load_path
|
60
|
+
|
60
61
|
@last_path = ::I18n.load_path.clone
|
61
62
|
@backend.reload!
|
62
63
|
@backend.send(:init_translations)
|
63
|
-
@translations =
|
64
|
+
@translations =
|
65
|
+
@backend.send(:translations).map do |locale, values|
|
66
|
+
[R18n::Locale.sanitize_code(locale), transform(values)]
|
67
|
+
end.to_h
|
64
68
|
end
|
65
69
|
|
66
|
-
# Return hash for object and
|
70
|
+
# Return hash for object and `I18n.load_path`.
|
67
71
|
def hash
|
68
72
|
::I18n.load_path.hash
|
69
73
|
end
|
70
74
|
|
71
|
-
# Is another
|
75
|
+
# Is another `loader` is also load Rails translations.
|
72
76
|
def ==(other)
|
73
77
|
self.class == other.class
|
74
78
|
end
|
@@ -80,15 +84,13 @@ module R18n
|
|
80
84
|
if value.is_a? Hash
|
81
85
|
if value.empty?
|
82
86
|
value
|
83
|
-
elsif value.keys.inject(true) { |a, i| a && RailsPlural.
|
87
|
+
elsif value.keys.inject(true) { |a, i| a && RailsPlural.rails?(i) }
|
84
88
|
Typed.new(
|
85
89
|
'pl',
|
86
|
-
|
87
|
-
[RailsPlural.to_r18n(k), transform(v)]
|
88
|
-
end
|
90
|
+
value.map { |k, v| [RailsPlural.to_r18n(k), transform(v)] }.to_h
|
89
91
|
)
|
90
92
|
else
|
91
|
-
|
93
|
+
value.map { |k, v| [k.to_s, transform(v)] }.to_h
|
92
94
|
end
|
93
95
|
elsif defined?(@private_type_class) && value.is_a?(@private_type_class)
|
94
96
|
Typed.new(value.type_id, value.value)
|
@@ -20,19 +20,19 @@
|
|
20
20
|
module R18n
|
21
21
|
# Converter between R18n and Rails I18n plural keys.
|
22
22
|
class RailsPlural
|
23
|
-
# Check, that
|
24
|
-
def self.
|
25
|
-
%i[zero one few many other].include?
|
23
|
+
# Check, that `key` is Rails plural key.
|
24
|
+
def self.rails?(key)
|
25
|
+
%i[zero one few many other].include? key
|
26
26
|
end
|
27
27
|
|
28
28
|
# Convert Rails I18n plural key to R18n.
|
29
|
-
def self.to_r18n(
|
30
|
-
{ zero: 0, one: 1, few: 2, many: 'n', other: 'n' }[
|
29
|
+
def self.to_r18n(key)
|
30
|
+
{ zero: 0, one: 1, few: 2, many: 'n', other: 'n' }[key]
|
31
31
|
end
|
32
32
|
|
33
33
|
# Convert R18n plural key to Rails I18n.
|
34
|
-
def self.from_r18n(
|
35
|
-
{ 0 => :zero, 1 => :one, 2 => :few, 'n' => :other }[
|
34
|
+
def self.from_r18n(key)
|
35
|
+
{ 0 => :zero, 1 => :one, 2 => :few, 'n' => :other }[key]
|
36
36
|
end
|
37
37
|
end
|
38
38
|
end
|
metadata
CHANGED
@@ -1,43 +1,184 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: r18n-rails-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 5.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrey Sitnik
|
8
|
-
|
8
|
+
- Alexander Popov
|
9
|
+
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
+
date: 2021-03-03 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: i18n
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
16
17
|
requirements:
|
17
|
-
- - "
|
18
|
+
- - "~>"
|
18
19
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
+
version: '1.0'
|
20
21
|
type: :runtime
|
21
22
|
prerelease: false
|
22
23
|
version_requirements: !ruby/object:Gem::Requirement
|
23
24
|
requirements:
|
24
|
-
- - "
|
25
|
+
- - "~>"
|
25
26
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
|
+
version: '1.0'
|
27
28
|
- !ruby/object:Gem::Dependency
|
28
29
|
name: r18n-core
|
29
30
|
requirement: !ruby/object:Gem::Requirement
|
30
31
|
requirements:
|
31
|
-
- -
|
32
|
+
- - "~>"
|
32
33
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
34
|
+
version: '5.0'
|
34
35
|
type: :runtime
|
35
36
|
prerelease: false
|
36
37
|
version_requirements: !ruby/object:Gem::Requirement
|
37
38
|
requirements:
|
38
|
-
- -
|
39
|
+
- - "~>"
|
39
40
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
41
|
+
version: '5.0'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: pry-byebug
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '3.9'
|
49
|
+
type: :development
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - "~>"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '3.9'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: gem_toys
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 0.7.1
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 0.7.1
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: toys
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - "~>"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: 0.11.0
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - "~>"
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: 0.11.0
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: rubocop
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - "~>"
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '1.6'
|
91
|
+
type: :development
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - "~>"
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '1.6'
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: rubocop-performance
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - "~>"
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '1.9'
|
105
|
+
type: :development
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - "~>"
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '1.9'
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: rubocop-rails
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - "~>"
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '2.9'
|
119
|
+
type: :development
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - "~>"
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '2.9'
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: rubocop-rake
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - "~>"
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: 0.5.1
|
133
|
+
type: :development
|
134
|
+
prerelease: false
|
135
|
+
version_requirements: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - "~>"
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: 0.5.1
|
140
|
+
- !ruby/object:Gem::Dependency
|
141
|
+
name: codecov
|
142
|
+
requirement: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
|
+
- - "~>"
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: 0.5.0
|
147
|
+
type: :development
|
148
|
+
prerelease: false
|
149
|
+
version_requirements: !ruby/object:Gem::Requirement
|
150
|
+
requirements:
|
151
|
+
- - "~>"
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: 0.5.0
|
154
|
+
- !ruby/object:Gem::Dependency
|
155
|
+
name: rspec
|
156
|
+
requirement: !ruby/object:Gem::Requirement
|
157
|
+
requirements:
|
158
|
+
- - "~>"
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: '3.10'
|
161
|
+
type: :development
|
162
|
+
prerelease: false
|
163
|
+
version_requirements: !ruby/object:Gem::Requirement
|
164
|
+
requirements:
|
165
|
+
- - "~>"
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: '3.10'
|
168
|
+
- !ruby/object:Gem::Dependency
|
169
|
+
name: simplecov
|
170
|
+
requirement: !ruby/object:Gem::Requirement
|
171
|
+
requirements:
|
172
|
+
- - "~>"
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
version: 0.21.0
|
175
|
+
type: :development
|
176
|
+
prerelease: false
|
177
|
+
version_requirements: !ruby/object:Gem::Requirement
|
178
|
+
requirements:
|
179
|
+
- - "~>"
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: 0.21.0
|
41
182
|
description: |2
|
42
183
|
R18n backend for Rails I18n and R18n filters and loader to support Rails
|
43
184
|
translation format.
|
@@ -45,41 +186,34 @@ description: |2
|
|
45
186
|
translation support for any classes, time and number localization, several
|
46
187
|
user language support, agnostic core package with out-of-box support for
|
47
188
|
Rails, Sinatra and desktop applications.
|
48
|
-
email:
|
189
|
+
email:
|
190
|
+
- andrey@sitnik.ru
|
191
|
+
- alex.wayfer@gmail.com
|
49
192
|
executables: []
|
50
193
|
extensions: []
|
51
194
|
extra_rdoc_files:
|
52
195
|
- README.md
|
53
196
|
- LICENSE
|
54
197
|
files:
|
55
|
-
-
|
198
|
+
- ChangeLog.md
|
56
199
|
- LICENSE
|
57
200
|
- README.md
|
58
|
-
- Rakefile
|
59
201
|
- lib/r18n-rails-api.rb
|
60
202
|
- lib/r18n-rails-api/backend.rb
|
61
203
|
- lib/r18n-rails-api/filters.rb
|
62
204
|
- lib/r18n-rails-api/loader.rb
|
63
205
|
- lib/r18n-rails-api/rails_plural.rb
|
64
|
-
- r18n-rails-api.
|
65
|
-
|
66
|
-
- spec/data/general/en.yml
|
67
|
-
- spec/data/general/ru.yml
|
68
|
-
- spec/data/other/en.yml
|
69
|
-
- spec/data/other/ru.yml
|
70
|
-
- spec/data/pl/ru.yml
|
71
|
-
- spec/data/simple/de-CH.yml
|
72
|
-
- spec/data/simple/en.yml
|
73
|
-
- spec/data/simple/ru.rb
|
74
|
-
- spec/data/simple/russian.yml
|
75
|
-
- spec/filters_spec.rb
|
76
|
-
- spec/loader_spec.rb
|
77
|
-
- spec/spec_helper.rb
|
78
|
-
homepage: https://github.com/ai/r18n/tree/master/r18n-rails-api
|
206
|
+
- lib/r18n-rails-api/version.rb
|
207
|
+
homepage: https://github.com/r18n/r18n-rails-api
|
79
208
|
licenses:
|
80
|
-
- LGPL-3
|
81
|
-
metadata:
|
82
|
-
|
209
|
+
- LGPL-3.0
|
210
|
+
metadata:
|
211
|
+
bug_tracker_uri: https://github.com/r18n/r18n-rails-api/issues
|
212
|
+
changelog_uri: https://github.com/r18n/r18n-rails-api/blob/5.0.0/ChangeLog.md
|
213
|
+
documentation_uri: http://www.rubydoc.info/gems/r18n-rails-api/5.0.0
|
214
|
+
homepage_uri: https://github.com/r18n/r18n-rails-api
|
215
|
+
source_code_uri: https://github.com/r18n/r18n-rails-api
|
216
|
+
post_install_message:
|
83
217
|
rdoc_options: []
|
84
218
|
require_paths:
|
85
219
|
- lib
|
@@ -87,29 +221,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
87
221
|
requirements:
|
88
222
|
- - ">="
|
89
223
|
- !ruby/object:Gem::Version
|
90
|
-
version: '
|
224
|
+
version: '2.5'
|
225
|
+
- - "<"
|
226
|
+
- !ruby/object:Gem::Version
|
227
|
+
version: '4'
|
91
228
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
92
229
|
requirements:
|
93
230
|
- - ">="
|
94
231
|
- !ruby/object:Gem::Version
|
95
232
|
version: '0'
|
96
233
|
requirements: []
|
97
|
-
|
98
|
-
|
99
|
-
signing_key:
|
234
|
+
rubygems_version: 3.2.3
|
235
|
+
signing_key:
|
100
236
|
specification_version: 4
|
101
237
|
summary: Rails I18n compatibility for R18n
|
102
|
-
test_files:
|
103
|
-
- spec/backend_spec.rb
|
104
|
-
- spec/data/general/en.yml
|
105
|
-
- spec/data/general/ru.yml
|
106
|
-
- spec/data/other/en.yml
|
107
|
-
- spec/data/other/ru.yml
|
108
|
-
- spec/data/pl/ru.yml
|
109
|
-
- spec/data/simple/de-CH.yml
|
110
|
-
- spec/data/simple/en.yml
|
111
|
-
- spec/data/simple/ru.rb
|
112
|
-
- spec/data/simple/russian.yml
|
113
|
-
- spec/filters_spec.rb
|
114
|
-
- spec/loader_spec.rb
|
115
|
-
- spec/spec_helper.rb
|
238
|
+
test_files: []
|