i18n_lookup 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
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