i18n-tasks 0.9.31 → 0.9.32
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -4
- data/i18n-tasks.gemspec +1 -1
- data/lib/i18n/tasks/command/dsl.rb +2 -2
- data/lib/i18n/tasks/missing_keys.rb +30 -7
- data/lib/i18n/tasks/translators/deepl_translator.rb +6 -1
- data/lib/i18n/tasks/used_keys.rb +2 -1
- data/lib/i18n/tasks/version.rb +1 -1
- data/templates/config/i18n-tasks.yml +1 -1
- metadata +7 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bcf38124b967eb00a21ca02f9e894a22941d95e590024971144131cd61856f70
|
4
|
+
data.tar.gz: 9ffb6f291f36f0015ad22ad26981d7b605dad695f723517bb928287cd091ecaa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8c27ffd3ab866c82237e99b1bea2afd444b2e9e82d0ef4b48031d46da697c079273ba6a88c4beb20a3795044096a614523aab289a46f86afc6f7e66e8719ed1e
|
7
|
+
data.tar.gz: fcb4deae9fdcadef52e7e4a6b85871fcbd33b437bc4a7a11f2c4ad42d60f2b835596bbaa86fe6ad4d30382195fd884c0728aa6fdf35fdb1b78cedb2f617bac2a
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# i18n-tasks [![Build Status][badge-travis]][travis] [![Coverage Status][badge-coverage]][coverage] [![
|
1
|
+
# i18n-tasks [![Build Status][badge-travis]][travis] [![Coverage Status][badge-coverage]][coverage] [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/glebm/i18n-tasks?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
2
2
|
|
3
3
|
i18n-tasks helps you find and manage missing and unused translations.
|
4
4
|
|
@@ -22,7 +22,7 @@ i18n-tasks can be used with any project using the ruby [i18n gem][i18n-gem] (def
|
|
22
22
|
Add i18n-tasks to the Gemfile:
|
23
23
|
|
24
24
|
```ruby
|
25
|
-
gem 'i18n-tasks', '~> 0.9.
|
25
|
+
gem 'i18n-tasks', '~> 0.9.32'
|
26
26
|
```
|
27
27
|
|
28
28
|
Copy the default [configuration file](#configuration):
|
@@ -437,8 +437,6 @@ Custom tasks can be added easily, see the examples [on the wiki](https://github.
|
|
437
437
|
[badge-travis]: https://img.shields.io/travis/glebm/i18n-tasks.svg
|
438
438
|
[coverage]: https://codeclimate.com/github/glebm/i18n-tasks
|
439
439
|
[badge-coverage]: https://api.codeclimate.com/v1/badges/5d173e90ada8df07cedc/test_coverage
|
440
|
-
[gemnasium]: https://gemnasium.com/glebm/i18n-tasks
|
441
|
-
[badge-gemnasium]: https://gemnasium.com/glebm/i18n-tasks.svg
|
442
440
|
[config]: https://github.com/glebm/i18n-tasks/blob/master/templates/config/i18n-tasks.yml
|
443
441
|
[wiki]: https://github.com/glebm/i18n-tasks/wiki "i18n-tasks wiki"
|
444
442
|
[i18n-gem]: https://github.com/svenfuchs/i18n "svenfuchs/i18n on Github"
|
data/i18n-tasks.gemspec
CHANGED
@@ -25,7 +25,7 @@ TEXT
|
|
25
25
|
TEXT
|
26
26
|
s.homepage = 'https://github.com/glebm/i18n-tasks'
|
27
27
|
s.metadata = { 'issue_tracker' => 'https://github.com/glebm/i18n-tasks' } if s.respond_to?(:metadata=)
|
28
|
-
s.required_ruby_version = '
|
28
|
+
s.required_ruby_version = '>= 2.3', '< 4.0' if s.respond_to?(:required_ruby_version=)
|
29
29
|
|
30
30
|
s.files = `git ls-files`.split($/)
|
31
31
|
s.files -= s.files.grep(%r{^(doc/|\.|spec/)}) + %w[CHANGES.md config/i18n-tasks.yml Gemfile]
|
@@ -79,12 +79,8 @@ module I18n::Tasks
|
|
79
79
|
def required_plural_keys_for_locale(locale)
|
80
80
|
@plural_keys_for_locale ||= {}
|
81
81
|
return @plural_keys_for_locale[locale] if @plural_keys_for_locale.key?(locale)
|
82
|
-
|
83
|
-
|
84
|
-
Set.new(load_rails_i18n_pluralization!(locale)[locale.to_sym][:i18n][:plural][:keys])
|
85
|
-
rescue SystemCallError, IOError
|
86
|
-
Set.new
|
87
|
-
end
|
82
|
+
|
83
|
+
@plural_keys_for_locale[locale] = plural_keys_for_locale(locale)
|
88
84
|
end
|
89
85
|
|
90
86
|
# Loads rails-i18n pluralization config for the given locale.
|
@@ -123,7 +119,7 @@ module I18n::Tasks
|
|
123
119
|
end
|
124
120
|
|
125
121
|
def locale_key_missing?(locale, key)
|
126
|
-
!key_value?(key, locale) && !external_key?(key) && !ignore_key?(key, :missing)
|
122
|
+
!key_value?(key, locale) && !external_key?(key, locale) && !ignore_key?(key, :missing)
|
127
123
|
end
|
128
124
|
|
129
125
|
# @param [::I18n::Tasks::Data::Tree::Siblings] forest
|
@@ -154,5 +150,32 @@ module I18n::Tasks
|
|
154
150
|
end
|
155
151
|
forest
|
156
152
|
end
|
153
|
+
|
154
|
+
private
|
155
|
+
|
156
|
+
def plural_keys_for_locale(locale)
|
157
|
+
configuration = load_rails_i18n_pluralization!(locale)
|
158
|
+
if configuration[locale.to_sym].nil?
|
159
|
+
alternate_locale = alternate_locale_from(locale)
|
160
|
+
return Set.new if configuration[alternate_locale.to_sym].nil?
|
161
|
+
|
162
|
+
return set_from_rails_i18n_pluralization(configuration, alternate_locale)
|
163
|
+
end
|
164
|
+
set_from_rails_i18n_pluralization(configuration, locale)
|
165
|
+
rescue SystemCallError, IOError
|
166
|
+
Set.new
|
167
|
+
end
|
168
|
+
|
169
|
+
def alternate_locale_from(locale)
|
170
|
+
re = /(\w{2})-*(\w{2,3})*/
|
171
|
+
match = locale.match(re)
|
172
|
+
language_code = match[1]
|
173
|
+
country_code = match[2]
|
174
|
+
"#{language_code}-#{country_code.upcase}"
|
175
|
+
end
|
176
|
+
|
177
|
+
def set_from_rails_i18n_pluralization(configuration, locale)
|
178
|
+
Set.new(configuration[locale.to_sym][:i18n][:plural][:keys])
|
179
|
+
end
|
157
180
|
end
|
158
181
|
end
|
@@ -17,7 +17,12 @@ module I18n::Tasks::Translators
|
|
17
17
|
protected
|
18
18
|
|
19
19
|
def translate_values(list, from:, to:, **options)
|
20
|
-
DeepL.translate(list, to_deepl_compatible_locale(from), to_deepl_compatible_locale(to), options).map(&:text)
|
20
|
+
result = DeepL.translate(list, to_deepl_compatible_locale(from), to_deepl_compatible_locale(to), options).map(&:text)
|
21
|
+
if result.is_a?(DeepL::Resources::Text)
|
22
|
+
result.text
|
23
|
+
else
|
24
|
+
result.map(&:text)
|
25
|
+
end
|
21
26
|
end
|
22
27
|
|
23
28
|
def options_for_translate_values(**options)
|
data/lib/i18n/tasks/used_keys.rb
CHANGED
@@ -25,7 +25,8 @@ module I18n::Tasks
|
|
25
25
|
}.freeze
|
26
26
|
|
27
27
|
ALWAYS_EXCLUDE = %w[*.jpg *.png *.gif *.svg *.ico *.eot *.otf *.ttf *.woff *.woff2 *.pdf *.css *.sass *.scss *.less
|
28
|
-
*.yml *.json *.zip *.tar.gz *.swf *.flv *.mp3 *.wav *.flac *.webm *.mp4 *.ogg *.opus
|
28
|
+
*.yml *.json *.zip *.tar.gz *.swf *.flv *.mp3 *.wav *.flac *.webm *.mp4 *.ogg *.opus
|
29
|
+
*.webp].freeze
|
29
30
|
|
30
31
|
# Find all keys in the source and return a forest with the keys in absolute form and their occurrences.
|
31
32
|
#
|
data/lib/i18n/tasks/version.rb
CHANGED
@@ -32,7 +32,7 @@ data:
|
|
32
32
|
# This data is not considered unused and is never written to.
|
33
33
|
external:
|
34
34
|
## Example (replace %#= with %=):
|
35
|
-
# - "<%#= %x[bundle
|
35
|
+
# - "<%#= %x[bundle info vagrant --path].chomp %>/templates/locales/%{locale}.yml"
|
36
36
|
|
37
37
|
## Specify the router (see Readme for details). Valid values: conservative_router, pattern_router, or a custom class.
|
38
38
|
# router: conservative_router
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: i18n-tasks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.32
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- glebm
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-12-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -404,16 +404,19 @@ require_paths:
|
|
404
404
|
- lib
|
405
405
|
required_ruby_version: !ruby/object:Gem::Requirement
|
406
406
|
requirements:
|
407
|
-
- - "
|
407
|
+
- - ">="
|
408
408
|
- !ruby/object:Gem::Version
|
409
409
|
version: '2.3'
|
410
|
+
- - "<"
|
411
|
+
- !ruby/object:Gem::Version
|
412
|
+
version: '4.0'
|
410
413
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
411
414
|
requirements:
|
412
415
|
- - ">="
|
413
416
|
- !ruby/object:Gem::Version
|
414
417
|
version: '0'
|
415
418
|
requirements: []
|
416
|
-
rubygems_version: 3.
|
419
|
+
rubygems_version: 3.1.2
|
417
420
|
signing_key:
|
418
421
|
specification_version: 4
|
419
422
|
summary: Manage localization and translation with the awesome power of static analysis
|