i18n 1.8.5 → 1.8.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c0af2c5dbaed2aca864b85e22cf0f7d84d36f37f5337d9759c0b7866a6215f49
4
- data.tar.gz: 4abf3d970c3916609be3671e8920450241713cf88a8846adbcf86cdeca37f4cc
3
+ metadata.gz: 63d76facf7fc1bb9f1f7fca47cec61259726d0879a7e187646f54a7e94f0f73c
4
+ data.tar.gz: ca27ecf10f4cf612a57fa0747aeb2431f42fa08210ce1df79675c17d52b5c203
5
5
  SHA512:
6
- metadata.gz: 242ea3d4a1ecc037c18df92c92bc10fd31cca67ce41ce938a51654d76acab75f2dad4d37eda00247dc50760ee8f714bd4006bedde38db6c17e36db2ec29cf629
7
- data.tar.gz: efd51bcc1f5b0838bf9f99b2bec2ba985ab04e6dbc5976468612b7f7b06ac71a59d21876e2f469f9d3a8ab819e52b3656b9d93a5a4711b592290d40a073d8cd4
6
+ metadata.gz: 3007d330c4b3c1d88feb69d3d4f877cfd19d15461929b7af70c902090ec8872e7dfe2c6a2ed0bec56111b3146fe7f2c1718c9e70aaa424369f6d5f8fa4a4ae42
7
+ data.tar.gz: 4c2119abc3a28a9d2a18e429befb3ade43de7b5cf65c48f2c67896905d30358759ada31c8442414fd6d859a6a45f52441b7ca05ccac18790ed3f6ea0edc3b97e
data/lib/i18n.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'concurrent/map'
4
+ require 'concurrent/hash'
4
5
 
5
6
  require 'i18n/version'
6
7
  require 'i18n/exceptions'
@@ -33,7 +34,7 @@ module I18n
33
34
  EMPTY_HASH = {}.freeze
34
35
 
35
36
  def self.new_double_nested_cache # :nodoc:
36
- Concurrent::Map.new { |h,k| h[k] = Concurrent::Map.new }
37
+ Concurrent::Map.new { |h, k| h[k] = Concurrent::Map.new }
37
38
  end
38
39
 
39
40
  module Base
@@ -192,7 +193,7 @@ module I18n
192
193
  # I18n.t(:salutation, { :gender => 'w', :name => 'Smith' })
193
194
  # I18n.t(:salutation, any_hash)
194
195
  #
195
- def translate(key = nil, *, throw: false, raise: false, locale: nil, **options) # TODO deprecate :raise
196
+ def translate(key = nil, throw: false, raise: false, locale: nil, **options) # TODO deprecate :raise
196
197
  locale ||= config.locale
197
198
  raise Disabled.new('t') if locale == false
198
199
  enforce_available_locales!(locale)
@@ -217,8 +218,8 @@ module I18n
217
218
 
218
219
  # Wrapper for <tt>translate</tt> that adds <tt>:raise => true</tt>. With
219
220
  # this option, if no translation is found, it will raise <tt>I18n::MissingTranslationData</tt>
220
- def translate!(key, options = EMPTY_HASH)
221
- translate(key, **options.merge(:raise => true))
221
+ def translate!(key, **options)
222
+ translate(key, **options, raise: true)
222
223
  end
223
224
  alias :t! :translate!
224
225
 
@@ -281,7 +282,7 @@ module I18n
281
282
  # I18n.transliterate("Jürgen") # => "Juergen"
282
283
  # I18n.transliterate("Jürgen", :locale => :en) # => "Jurgen"
283
284
  # I18n.transliterate("Jürgen", :locale => :de) # => "Juergen"
284
- def transliterate(key, *, throw: false, raise: false, locale: nil, replacement: nil, **options)
285
+ def transliterate(key, throw: false, raise: false, locale: nil, replacement: nil, **options)
285
286
  locale ||= config.locale
286
287
  raise Disabled.new('transliterate') if locale == false
287
288
  enforce_available_locales!(locale)
@@ -17,11 +17,11 @@
17
17
  #
18
18
  # The cache_key implementation by default assumes you pass values that return
19
19
  # a valid key from #hash (see
20
- # http://www.ruby-doc.org/core/classes/Object.html#M000337). However, you can
20
+ # https://www.ruby-doc.org/core/classes/Object.html#M000337). However, you can
21
21
  # configure your own digest method via which responds to #hexdigest (see
22
- # http://ruby-doc.org/stdlib/libdoc/digest/rdoc/index.html):
22
+ # https://ruby-doc.org/stdlib/libdoc/openssl/rdoc/OpenSSL/Digest.html):
23
23
  #
24
- # I18n.cache_key_digest = Digest::MD5.new
24
+ # I18n.cache_key_digest = OpenSSL::Digest::SHA256.new
25
25
  #
26
26
  # If you use a lambda as a default value in your translation like this:
27
27
  #
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'digest/sha2'
3
+ require 'openssl'
4
4
 
5
5
  module I18n
6
6
  module Backend
@@ -19,7 +19,7 @@ module I18n
19
19
  key = I18n::Backend::Flatten.escape_default_separator(normalized_path(filename))
20
20
  old_mtime, old_digest = initialized && lookup(:i18n, key, :load_file)
21
21
  return if (mtime = File.mtime(filename).to_i) == old_mtime ||
22
- (digest = Digest::SHA2.file(filename).hexdigest) == old_digest
22
+ (digest = OpenSSL::Digest::SHA256.file(filename).hexdigest) == old_digest
23
23
  super
24
24
  store_translations(:i18n, load_file: { key => [mtime, digest] })
25
25
  end
@@ -16,11 +16,13 @@ module I18n
16
16
  # Returns the current fallbacks implementation. Defaults to +I18n::Locale::Fallbacks+.
17
17
  def fallbacks
18
18
  @@fallbacks ||= I18n::Locale::Fallbacks.new
19
+ Thread.current[:i18n_fallbacks] || @@fallbacks
19
20
  end
20
21
 
21
22
  # Sets the current fallbacks implementation. Use this to set a different fallbacks implementation.
22
23
  def fallbacks=(fallbacks)
23
24
  @@fallbacks = fallbacks.is_a?(Array) ? I18n::Locale::Fallbacks.new(fallbacks) : fallbacks
25
+ Thread.current[:i18n_fallbacks] = @@fallbacks
24
26
  end
25
27
  end
26
28
 
@@ -47,7 +49,7 @@ module I18n
47
49
  catch(:exception) do
48
50
  result = super(fallback, key, fallback_options)
49
51
  unless result.nil?
50
- on_fallback(locale, fallback, key, options) if locale != fallback
52
+ on_fallback(locale, fallback, key, options) if locale.to_s != fallback.to_s
51
53
  return result
52
54
  end
53
55
  end
@@ -40,7 +40,7 @@ module I18n
40
40
  return data
41
41
  end
42
42
  locale = locale.to_sym
43
- translations[locale] ||= {}
43
+ translations[locale] ||= Concurrent::Hash.new
44
44
  data = data.deep_symbolize_keys
45
45
  translations[locale].deep_merge!(data)
46
46
  end
@@ -71,7 +71,7 @@ module I18n
71
71
  # call `init_translations`
72
72
  init_translations if do_init && !initialized?
73
73
 
74
- @translations ||= {}
74
+ @translations ||= Concurrent::Hash.new { |h, k| h[k] = Concurrent::Hash.new }
75
75
  end
76
76
 
77
77
  protected
@@ -4,7 +4,7 @@ module I18n
4
4
  using I18n::HashRefinements
5
5
  def except(*keys)
6
6
  dup.except!(*keys)
7
- end
7
+ end unless method_defined?(:except)
8
8
 
9
9
  def except!(*keys)
10
10
  keys.each { |key| delete(key) }
data/lib/i18n/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module I18n
4
- VERSION = "1.8.5"
4
+ VERSION = "1.8.10"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: i18n
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.5
4
+ version: 1.8.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sven Fuchs
@@ -13,15 +13,15 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2020-07-23 00:00:00.000000000 Z
16
+ date: 2021-03-30 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
- name: concurrent-ruby
20
19
  requirement: !ruby/object:Gem::Requirement
21
20
  requirements:
22
21
  - - "~>"
23
22
  - !ruby/object:Gem::Version
24
23
  version: '1.0'
24
+ name: concurrent-ruby
25
25
  type: :runtime
26
26
  prerelease: false
27
27
  version_requirements: !ruby/object:Gem::Requirement
@@ -86,27 +86,11 @@ homepage: https://github.com/ruby-i18n/i18n
86
86
  licenses:
87
87
  - MIT
88
88
  metadata:
89
- bug_tracker_uri: https://github.com/svenfuchs/i18n/issues
90
- changelog_uri: https://github.com/svenfuchs/i18n/releases
89
+ bug_tracker_uri: https://github.com/ruby-i18n/i18n/issues
90
+ changelog_uri: https://github.com/ruby-i18n/i18n/releases
91
91
  documentation_uri: https://guides.rubyonrails.org/i18n.html
92
- source_code_uri: https://github.com/svenfuchs/i18n
93
- post_install_message: |2+
94
-
95
- HEADS UP! i18n 1.1 changed fallbacks to exclude default locale.
96
- But that may break your application.
97
-
98
- If you are upgrading your Rails application from an older version of Rails:
99
-
100
- Please check your Rails app for 'config.i18n.fallbacks = true'.
101
- If you're using I18n (>= 1.1.0) and Rails (< 5.2.2), this should be
102
- 'config.i18n.fallbacks = [I18n.default_locale]'.
103
- If not, fallbacks will be broken in your app by I18n 1.1.x.
104
-
105
- If you are starting a NEW Rails application, you can ignore this notice.
106
-
107
- For more info see:
108
- https://github.com/svenfuchs/i18n/releases/tag/v1.1.0
109
-
92
+ source_code_uri: https://github.com/ruby-i18n/i18n
93
+ post_install_message:
110
94
  rdoc_options: []
111
95
  require_paths:
112
96
  - lib
@@ -121,9 +105,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
121
105
  - !ruby/object:Gem::Version
122
106
  version: 1.3.5
123
107
  requirements: []
124
- rubygems_version: 3.0.3
108
+ rubygems_version: 3.0.6
125
109
  signing_key:
126
110
  specification_version: 4
127
111
  summary: New wave Internationalization support for Ruby
128
112
  test_files: []
129
- ...