i18n-inflector 2.3.1 → 2.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data.tar.gz.sig +0 -0
- data/ChangeLog +12 -0
- data/docs/HISTORY +6 -0
- data/lib/i18n-inflector/backend.rb +0 -13
- data/lib/i18n-inflector/interpolate.rb +22 -0
- data/lib/i18n-inflector/options.rb +17 -0
- data/lib/i18n-inflector/version.rb +1 -1
- data/test/inflector_test.rb +7 -0
- metadata +5 -5
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
Binary file
|
data/ChangeLog
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
commit 6d343ad3137735492e130b7abdd8f86bf23a4a06
|
2
|
+
Author: Paweł Wilk <siefca@gnu.org>
|
3
|
+
Date: Wed Feb 23 02:20:18 2011 +0100
|
4
|
+
|
5
|
+
Release 2.4.0
|
6
|
+
|
7
|
+
commit d8a8354dfa428d649c89157bbcf4f2a4aa2fa74f
|
8
|
+
Author: Paweł Wilk <siefca@gnu.org>
|
9
|
+
Date: Wed Feb 23 02:19:29 2011 +0100
|
10
|
+
|
11
|
+
Added collections support
|
12
|
+
|
1
13
|
commit ed4cea2f3b809028b02fa19c089fecc7cf56713b
|
2
14
|
Author: Paweł Wilk <siefca@gnu.org>
|
3
15
|
Date: Tue Feb 15 02:39:26 2011 +0100
|
data/docs/HISTORY
CHANGED
@@ -78,19 +78,6 @@ module I18n
|
|
78
78
|
translated_string = @inflector.key_to_pattern(translated_string)
|
79
79
|
end
|
80
80
|
|
81
|
-
# return immediatelly if something is wrong with locale (preventive)
|
82
|
-
# return if locale is not inflected - return string cleaned from pattern
|
83
|
-
if (locale.nil? || !@inflector.inflected_locale?(locale))
|
84
|
-
return translated_string.gsub(InflectorCfg::PATTERN_REGEXP) do
|
85
|
-
InflectorCfg::Escapes::PATTERN[$1] ? $& : ''
|
86
|
-
end
|
87
|
-
end
|
88
|
-
|
89
|
-
# no pattern in a string - return string as is
|
90
|
-
unless translated_string.include?(InflectorCfg::Markers::PATTERN)
|
91
|
-
return translated_string
|
92
|
-
end
|
93
|
-
|
94
81
|
# interpolate string
|
95
82
|
begin
|
96
83
|
|
@@ -38,8 +38,30 @@ module I18n
|
|
38
38
|
# that overrides global setting (see: {I18n::Inflector::InflectionOptions#aliased_patterns})
|
39
39
|
# @option options [Boolean] :inflector_cache_aware (false) local switch
|
40
40
|
# that overrides global setting (see: {I18n::Inflector::InflectionOptions#cache_aware})
|
41
|
+
# @option options [Boolean] :inflector_traverses (true) local switch
|
42
|
+
# that overrides global setting (see: {I18n::Inflector::InflectionOptions#traverses})
|
41
43
|
# @return [String] the string with interpolated patterns
|
42
44
|
def interpolate(string, locale, options = {})
|
45
|
+
|
46
|
+
# traverse tree and call interpolate for each value
|
47
|
+
if string.is_a?(Hash)
|
48
|
+
return string unless options[:inflector_traverses]
|
49
|
+
return string.merge(string) do |k, v|
|
50
|
+
interpolate(v, locale, options)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
# return immediatelly if something is wrong with locale (preventive)
|
55
|
+
# return if locale is not inflected - return string cleaned from pattern
|
56
|
+
if (locale.nil? || !inflected_locale?(locale))
|
57
|
+
return string.to_s.gsub(PATTERN_REGEXP) do
|
58
|
+
Escapes::PATTERN[$1] ? $& : ''
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
# no pattern in a string - return string as is
|
63
|
+
return string unless string.to_s.include?(Markers::PATTERN)
|
64
|
+
|
43
65
|
interpolate_core(string, locale, options)
|
44
66
|
end
|
45
67
|
|
@@ -105,6 +105,22 @@ module I18n
|
|
105
105
|
# @param [Boolean] state +true+ enables, +false+ disables this switch
|
106
106
|
attr_accessor :aliased_patterns
|
107
107
|
|
108
|
+
# This is a switch that enables you to interpolate patterns contained
|
109
|
+
# in resulting nested Hashes. It is used when the original translation
|
110
|
+
# method returns a subtree of translation data because the given key
|
111
|
+
# is not pointing to a leaf of the data but to some collection.
|
112
|
+
#
|
113
|
+
# This switch is by default set to +true+. When you turn it off then
|
114
|
+
# the Inflector won't touch nested results and will return them as they are.
|
115
|
+
#
|
116
|
+
# @note Local option +:inflector_traverses+ passed to the
|
117
|
+
# {I18n::Backend::Inflector#translate} overrides this setting.
|
118
|
+
#
|
119
|
+
# @api public
|
120
|
+
# @return [Boolean] state of the switch
|
121
|
+
# @param [Boolean] state +true+ enables, +false+ disables this switch
|
122
|
+
attr_accessor :traverses
|
123
|
+
|
108
124
|
# When this switch is set to +true+ then inflector falls back to the default
|
109
125
|
# token for a kind if an inflection option passed to the
|
110
126
|
# {I18n::Backend::Inflector#translate} is unknown or +nil+.
|
@@ -247,6 +263,7 @@ module I18n
|
|
247
263
|
# @return [void]
|
248
264
|
def reset
|
249
265
|
@unknown_defaults = true
|
266
|
+
@traverses = true
|
250
267
|
@excluded_defaults = false
|
251
268
|
@aliased_patterns = false
|
252
269
|
@cache_aware = false
|
data/test/inflector_test.rb
CHANGED
@@ -366,6 +366,13 @@ class I18nInflectorTest < Test::Unit::TestCase
|
|
366
366
|
assert_equal 'Dear Someone!', I18n.t('hi', :gender => :m, :locale => :xx)
|
367
367
|
end
|
368
368
|
|
369
|
+
test "backend inflector translate: works with collections" do
|
370
|
+
h = Hash.new
|
371
|
+
h[:hi2] = h[:hi] = "Dear Someone!"
|
372
|
+
store_translations(:xx, 'welcomes' => {'hi' => 'Dear @{f,m:Someone|n:You|All}!', 'hi2' => 'Dear @{f,m:Someone|n:You|All}!'})
|
373
|
+
assert_equal h, I18n.t('welcomes', :gender => :m, :foo => 5, :locale => :xx)
|
374
|
+
end
|
375
|
+
|
369
376
|
test "backend inflector translate: works with negative tokens" do
|
370
377
|
store_translations(:xx, 'hi' => 'Dear @{!m:Lady|m:Sir|n:You|All}!')
|
371
378
|
assert_equal 'Dear Lady!', I18n.t('hi', :gender => :n, :locale => :xx)
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 2
|
7
|
-
-
|
8
|
-
-
|
9
|
-
version: 2.
|
7
|
+
- 4
|
8
|
+
- 0
|
9
|
+
version: 2.4.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- "Pawe\xC5\x82 Wilk"
|
@@ -34,7 +34,7 @@ cert_chain:
|
|
34
34
|
NK3TIZaPCh1S2/ES6wXNvjQ+5EnEEL9j/pSEop9DYEBPaM2WDVR5i0jJTAaRWw==
|
35
35
|
-----END CERTIFICATE-----
|
36
36
|
|
37
|
-
date: 2011-02-
|
37
|
+
date: 2011-02-23 00:00:00 +01:00
|
38
38
|
default_executable:
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
@@ -202,7 +202,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
202
202
|
requirements:
|
203
203
|
- - ">="
|
204
204
|
- !ruby/object:Gem::Version
|
205
|
-
hash: -
|
205
|
+
hash: -1561613972170107536
|
206
206
|
segments:
|
207
207
|
- 0
|
208
208
|
version: "0"
|
metadata.gz.sig
CHANGED
Binary file
|