i18n_lookup 0.3.0 → 0.3.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 63caa389737d1c9baecb897a213c9a9045ceceaa
4
+ data.tar.gz: ae5e6e2e251541ee640c91dc45cb5ed8e13b9623
5
+ SHA512:
6
+ metadata.gz: 0bc8ff4247e196e2014ab64d3ae4b27ccd589f006ffa47634252a73aa86151874721ca35a56cac5d50d63c8bc36ec78d525d73719578bf6264d83093a8003356
7
+ data.tar.gz: 5cd6182092135fb2aec90ea3d8f8afa9b941f0590ef550c0ac9b36f46813e563459602e61e02fdf2ff16449c149071e9b095de3cbd511f4bda1aa882383a5c90
@@ -7,7 +7,6 @@ module I18nLookup
7
7
 
8
8
  rake_tasks do
9
9
  load "tasks/i18n_normalize.rake"
10
- load "tasks/i18n_missing_keys.rake"
11
10
  end
12
11
  end
13
12
  end
@@ -67,7 +67,13 @@ namespace :i18n do
67
67
 
68
68
  generated_locale_yaml = {}
69
69
 
70
- I18n.backend.send(:translations).keys.each do |locale|
70
+ locales = (I18n.available_locales & I18n.backend.send(:translations).keys)
71
+ if locales.empty?
72
+ puts 'No locales found'
73
+ exit 0
74
+ end
75
+
76
+ locales.each do |locale|
71
77
  generated_locale_yaml[locale] = current_i18n_yaml(locale)
72
78
  end
73
79
 
metadata CHANGED
@@ -1,132 +1,104 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: i18n_lookup
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.3.0
4
+ version: 0.3.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Thomas Metzmacher
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-06-11 00:00:00.000000000 Z
11
+ date: 2016-10-10 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: i18n
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
- version: 0.6.9
19
+ version: '0'
22
20
  type: :runtime
21
+ prerelease: false
23
22
  version_requirements: !ruby/object:Gem::Requirement
24
- none: false
25
23
  requirements:
26
- - - ~>
24
+ - - ">="
27
25
  - !ruby/object:Gem::Version
28
- version: 0.6.9
29
- prerelease: false
26
+ version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rspec
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ~>
31
+ - - "~>"
36
32
  - !ruby/object:Gem::Version
37
33
  version: '2.0'
38
34
  type: :development
39
- version_requirements: !ruby/object:Gem::Requirement
40
- none: false
41
- requirements:
42
- - - ~>
43
- - !ruby/object:Gem::Version
44
- version: '2.0'
45
35
  prerelease: false
46
- - !ruby/object:Gem::Dependency
47
- name: pry-debugger
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ~>
52
- - !ruby/object:Gem::Version
53
- version: '0.2'
54
- type: :development
55
36
  version_requirements: !ruby/object:Gem::Requirement
56
- none: false
57
37
  requirements:
58
- - - ~>
38
+ - - "~>"
59
39
  - !ruby/object:Gem::Version
60
- version: '0.2'
61
- prerelease: false
40
+ version: '2.0'
62
41
  - !ruby/object:Gem::Dependency
63
42
  name: awesome_print
64
43
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
44
  requirements:
67
- - - ~>
45
+ - - "~>"
68
46
  - !ruby/object:Gem::Version
69
47
  version: '1.2'
70
48
  type: :development
49
+ prerelease: false
71
50
  version_requirements: !ruby/object:Gem::Requirement
72
- none: false
73
51
  requirements:
74
- - - ~>
52
+ - - "~>"
75
53
  - !ruby/object:Gem::Version
76
54
  version: '1.2'
77
- prerelease: false
78
55
  - !ruby/object:Gem::Dependency
79
56
  name: activemodel
80
57
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
58
  requirements:
83
- - - ~>
59
+ - - "~>"
84
60
  - !ruby/object:Gem::Version
85
61
  version: 4.0.2
86
62
  type: :development
63
+ prerelease: false
87
64
  version_requirements: !ruby/object:Gem::Requirement
88
- none: false
89
65
  requirements:
90
- - - ~>
66
+ - - "~>"
91
67
  - !ruby/object:Gem::Version
92
68
  version: 4.0.2
93
- prerelease: false
94
69
  description: A toolset for I18n handling
95
70
  email: kontakt@thomet.de
96
71
  executables: []
97
72
  extensions: []
98
73
  extra_rdoc_files: []
99
74
  files:
100
- - lib/i18n_lookup/railtie.rb
101
75
  - lib/i18n_lookup.rb
102
- - lib/tasks/i18n_missing_keys.rake
76
+ - lib/i18n_lookup/railtie.rb
103
77
  - lib/tasks/i18n_normalize.rake
104
78
  - spec/i18n_lookup_spec.rb
105
79
  homepage: http://www.thomet.de/
106
80
  licenses:
107
81
  - MIT
82
+ metadata: {}
108
83
  post_install_message:
109
84
  rdoc_options: []
110
85
  require_paths:
111
86
  - lib
112
87
  required_ruby_version: !ruby/object:Gem::Requirement
113
- none: false
114
88
  requirements:
115
- - - '>='
89
+ - - ">="
116
90
  - !ruby/object:Gem::Version
117
91
  version: '0'
118
92
  required_rubygems_version: !ruby/object:Gem::Requirement
119
- none: false
120
93
  requirements:
121
- - - '>='
94
+ - - ">="
122
95
  - !ruby/object:Gem::Version
123
96
  version: '0'
124
97
  requirements: []
125
98
  rubyforge_project:
126
- rubygems_version: 1.8.23
99
+ rubygems_version: 2.6.4
127
100
  signing_key:
128
- specification_version: 3
101
+ specification_version: 4
129
102
  summary: I18n Lookup
130
103
  test_files:
131
104
  - spec/i18n_lookup_spec.rb
132
- has_rdoc:
@@ -1,116 +0,0 @@
1
- namespace :i18n do
2
- desc "Find and list translation keys that do not exist in all locales"
3
- task :missing_keys => :environment do
4
- finder = MissingKeysFinder.new(I18n.backend)
5
- finder.find_missing_keys
6
- end
7
- end
8
-
9
-
10
- class MissingKeysFinder
11
-
12
- def initialize(backend)
13
- @backend = backend
14
- self.load_config
15
- self.load_translations
16
- end
17
-
18
- # Returns an array with all keys from all locales
19
- def all_keys
20
- I18n.backend.send(:translations).collect do |check_locale, translations|
21
- collect_keys([], translations).sort
22
- end.flatten.uniq
23
- end
24
-
25
- def find_missing_keys
26
- output_available_locales
27
- output_unique_key_stats(all_keys)
28
-
29
- missing_keys = {}
30
- all_keys.each do |key|
31
-
32
- I18n.available_locales.each do |locale|
33
-
34
- skip = false
35
- ls = locale.to_s
36
- if !@yaml[ls].nil?
37
- @yaml[ls].each do |re|
38
- if key.match(re)
39
- skip = true
40
- break
41
- end
42
- end
43
- end
44
-
45
- if !key_exists?(key, locale) && skip == false
46
- if missing_keys[key]
47
- missing_keys[key] << locale
48
- else
49
- missing_keys[key] = [locale]
50
- end
51
- end
52
- end
53
- end
54
-
55
- output_missing_keys(missing_keys)
56
- return missing_keys
57
- end
58
-
59
- def output_available_locales
60
- puts "#{I18n.available_locales.size} #{I18n.available_locales.size == 1 ? 'locale' : 'locales'} available: #{I18n.available_locales.join(', ')}"
61
- end
62
-
63
- def output_missing_keys(missing_keys)
64
- puts "#{missing_keys.size} #{missing_keys.size == 1 ? 'key is missing' : 'keys are missing'} from one or more locales:"
65
- missing_keys.keys.sort.each do |key|
66
- puts %|'\e[1;33m#{key}\e[0;0m': Missing from #{missing_keys[key].collect(&:inspect).join(', ')}; Value: '\e[1;34m#{I18n.t(key, :locale => :en)}\e[0;0m'|
67
- end
68
- end
69
-
70
- def output_unique_key_stats(keys)
71
- number_of_keys = keys.size
72
- puts "#{number_of_keys} #{number_of_keys == 1 ? 'unique key' : 'unique keys'} found."
73
- end
74
-
75
- def collect_keys(scope, translations)
76
- full_keys = []
77
- translations.to_a.each do |key, translations|
78
- next if translations.nil?
79
-
80
- new_scope = scope.dup << key
81
- if translations.is_a?(Hash)
82
- full_keys += collect_keys(new_scope, translations)
83
- else
84
- full_keys << new_scope.join('.')
85
- end
86
- end
87
- return full_keys
88
- end
89
-
90
- # Returns true if key exists in the given locale
91
- def key_exists?(key, locale)
92
- I18n.locale = locale
93
- I18n.translate(key, :raise => true)
94
- return true
95
- rescue I18n::MissingInterpolationArgument
96
- return true
97
- rescue I18n::MissingTranslationData
98
- return false
99
- end
100
-
101
- def load_translations
102
- # Make sure we’ve loaded the translations
103
- I18n.backend.send(:init_translations)
104
- end
105
-
106
- def load_config
107
- @yaml = {}
108
- begin
109
- @yaml = YAML.load_file(File.join(Rails.root, 'config', 'ignore_missing_keys.yml'))
110
- rescue => e
111
- STDERR.puts "No ignore_missing_keys.yml config file."
112
- end
113
-
114
- end
115
-
116
- end