i18n-processes 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/i18n/processes/command/commands/data.rb +89 -89
- data/lib/i18n/processes/command/commands/eq_base.rb +8 -8
- data/lib/i18n/processes/command/commands/health.rb +13 -13
- data/lib/i18n/processes/command/commands/meta.rb +25 -25
- data/lib/i18n/processes/command/commands/preprocessing.rb +1 -0
- data/lib/i18n/processes/command/commands/tree.rb +105 -105
- data/lib/i18n/processes/command/commands/usages.rb +43 -43
- data/lib/i18n/processes/command/commands/xlsx.rb +16 -16
- data/lib/i18n/processes/path.rb +15 -9
- data/lib/i18n/processes/reports/spreadsheet.rb +1 -1
- data/lib/i18n/processes/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 87d81ef2177dadee1bbbdca639f62978b76ae95d
|
4
|
+
data.tar.gz: 4bb93d9332d8cddf13be5fd0d1ab19286426a920
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 693fe773012aa012c988218305ebb2d60c06af2b8bbc34dd1e01c2ece2fa3c2dab5fe5a1d45c1e8cfbc36c77b4cede0a6b5d7fefa97f2a100fa72c6f8b2900ad
|
7
|
+
data.tar.gz: a1441e38fabb441ee634ae75455bbdda78a9b5d07aacdbaf4fe56929524acbdb73fcb192085eb69ad643bd720b2bd4695656c7abd9f66a637e06a49e2c03ceb9
|
data/Gemfile.lock
CHANGED
@@ -12,95 +12,95 @@ module I18n::Processes
|
|
12
12
|
'--pattern_router',
|
13
13
|
'Use pattern router: keys moved per config data.write'
|
14
14
|
|
15
|
-
cmd :normalize,
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
def normalize(opt = {})
|
21
|
-
|
22
|
-
|
23
|
-
end
|
24
|
-
|
25
|
-
cmd :check_normalized,
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
def check_normalized(opt)
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
end
|
35
|
-
|
36
|
-
cmd :mv,
|
37
|
-
|
38
|
-
|
39
|
-
def mv(opt = {})
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
end
|
48
|
-
|
49
|
-
cmd :rm,
|
50
|
-
|
51
|
-
|
52
|
-
def rm(opt = {})
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
end
|
61
|
-
|
62
|
-
cmd :data,
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
def data(opt = {})
|
68
|
-
|
69
|
-
|
70
|
-
end
|
71
|
-
|
72
|
-
cmd :data_merge,
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
def data_merge(opt = {})
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
end
|
82
|
-
|
83
|
-
cmd :data_write,
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
def data_write(opt = {})
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
end
|
93
|
-
|
94
|
-
cmd :data_remove,
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
def data_remove(opt = {})
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
end
|
15
|
+
# cmd :normalize,
|
16
|
+
# pos: '[locale ...]',
|
17
|
+
# desc: 'normalize translation data: sort and move to the right files',
|
18
|
+
# args: %i[locales pattern_router]
|
19
|
+
|
20
|
+
# def normalize(opt = {})
|
21
|
+
# i18n.normalize_store! locales: opt[:locales],
|
22
|
+
# force_pattern_router: opt[:pattern_router]
|
23
|
+
# end
|
24
|
+
#
|
25
|
+
# cmd :check_normalized,
|
26
|
+
# pos: '[locale ...]',
|
27
|
+
# desc: 'verify that all translation data is normalized',
|
28
|
+
# args: %i[locales]
|
29
|
+
#
|
30
|
+
# def check_normalized(opt)
|
31
|
+
# non_normalized = i18n.non_normalized_paths locales: opt[:locales]
|
32
|
+
# terminal_report.check_normalized_results(non_normalized)
|
33
|
+
# :exit_1 unless non_normalized.empty?
|
34
|
+
# end
|
35
|
+
#
|
36
|
+
# cmd :mv,
|
37
|
+
# pos: 'FROM_KEY_PATTERN TO_KEY_PATTERN',
|
38
|
+
# desc: 'rename/merge the keys in locale data that match the given pattern'
|
39
|
+
# def mv(opt = {})
|
40
|
+
# fail CommandError, 'requires FROM_KEY_PATTERN and TO_KEY_PATTERN' if opt[:arguments].size < 2
|
41
|
+
# from_pattern = opt[:arguments].shift
|
42
|
+
# to_pattern = opt[:arguments].shift
|
43
|
+
# forest = i18n.data_forest
|
44
|
+
# results = forest.mv_key!(compile_key_pattern(from_pattern), to_pattern, root: false)
|
45
|
+
# i18n.data.write forest
|
46
|
+
# terminal_report.mv_results results
|
47
|
+
# end
|
48
|
+
#
|
49
|
+
# cmd :rm,
|
50
|
+
# pos: 'KEY_PATTERN [KEY_PATTERN...]',
|
51
|
+
# desc: 'remove the keys in locale data that match the given pattern'
|
52
|
+
# def rm(opt = {})
|
53
|
+
# fail CommandError, 'requires KEY_PATTERN' if opt[:arguments].empty?
|
54
|
+
# forest = i18n.data_forest
|
55
|
+
# results = opt[:arguments].each_with_object({}) do |key_pattern, h|
|
56
|
+
# h.merge! forest.mv_key!(compile_key_pattern(key_pattern), '', root: false)
|
57
|
+
# end
|
58
|
+
# i18n.data.write forest
|
59
|
+
# terminal_report.mv_results results
|
60
|
+
# end
|
61
|
+
#
|
62
|
+
# cmd :data,
|
63
|
+
# pos: '[locale ...]',
|
64
|
+
# desc: 'show locale data',
|
65
|
+
# args: %i[locales out_format]
|
66
|
+
#
|
67
|
+
# def data(opt = {})
|
68
|
+
# $stderr.puts Rainbow("data from here?!")
|
69
|
+
# print_forest i18n.data_forest(opt[:locales]), opt
|
70
|
+
# end
|
71
|
+
#
|
72
|
+
# cmd :data_merge,
|
73
|
+
# pos: '[tree ...]',
|
74
|
+
# desc: 'merge locale data with trees',
|
75
|
+
# args: %i[data_format nostdin]
|
76
|
+
#
|
77
|
+
# def data_merge(opt = {})
|
78
|
+
# forest = merge_forests_stdin_and_pos!(opt)
|
79
|
+
# merged = i18n.data.merge!(forest)
|
80
|
+
# print_forest merged, opt
|
81
|
+
# end
|
82
|
+
#
|
83
|
+
# cmd :data_write,
|
84
|
+
# pos: '[tree]',
|
85
|
+
# desc: 'replace locale data with tree',
|
86
|
+
# args: %i[data_format nostdin]
|
87
|
+
#
|
88
|
+
# def data_write(opt = {})
|
89
|
+
# forest = forest_pos_or_stdin!(opt)
|
90
|
+
# i18n.data.write forest
|
91
|
+
# print_forest forest, opt
|
92
|
+
# end
|
93
|
+
#
|
94
|
+
# cmd :data_remove,
|
95
|
+
# pos: '[tree]',
|
96
|
+
# desc: 'remove keys present in tree from data',
|
97
|
+
# args: %i[data_format nostdin]
|
98
|
+
#
|
99
|
+
# def data_remove(opt = {})
|
100
|
+
# removed = i18n.data.remove_by_key!(forest_pos_or_stdin!(opt))
|
101
|
+
# log_stderr 'Removed:'
|
102
|
+
# print_forest removed, opt
|
103
|
+
# end
|
104
104
|
end
|
105
105
|
end
|
106
106
|
end
|
@@ -7,14 +7,14 @@ module I18n::Processes
|
|
7
7
|
module EqBase
|
8
8
|
include Command::Collection
|
9
9
|
|
10
|
-
cmd :eq_base,
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
def eq_base(opt = {})
|
16
|
-
|
17
|
-
end
|
10
|
+
# cmd :eq_base,
|
11
|
+
# pos: '[locale ...]',
|
12
|
+
# desc: 'show translations equal to base value',
|
13
|
+
# args: %i[locales out_format]
|
14
|
+
#
|
15
|
+
# def eq_base(opt = {})
|
16
|
+
# print_forest i18n.eq_base_keys(opt), opt, :eq_base_keys
|
17
|
+
# end
|
18
18
|
end
|
19
19
|
end
|
20
20
|
end
|
@@ -7,19 +7,19 @@ module I18n::Processes
|
|
7
7
|
module Health
|
8
8
|
include Command::Collection
|
9
9
|
|
10
|
-
cmd :health,
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
def health(opt = {})
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
end
|
10
|
+
# cmd :health,
|
11
|
+
# pos: '[locale ...]',
|
12
|
+
# desc: 'is everything OK?',
|
13
|
+
# args: %i[locales out_format]
|
14
|
+
#
|
15
|
+
# def health(opt = {})
|
16
|
+
# forest = i18n.data_forest(opt[:locales])
|
17
|
+
# stats = i18n.forest_stats(forest)
|
18
|
+
# fail CommandError, 'No keys detected. Check data.read in config/i18n-processes.yml.' if stats[:key_count].zero?
|
19
|
+
# terminal_report.forest_stats forest, stats
|
20
|
+
# $stderr.puts Rainbow("#{opt}").green
|
21
|
+
# [missing(opt), unused(opt), check_normalized(opt)].detect { |result| result == :exit_1 }
|
22
|
+
# end
|
23
23
|
end
|
24
24
|
end
|
25
25
|
end
|
@@ -7,31 +7,31 @@ module I18n::Processes
|
|
7
7
|
module Meta
|
8
8
|
include Command::Collection
|
9
9
|
|
10
|
-
cmd :config,
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
def config(opts = {})
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
end
|
22
|
-
|
23
|
-
cmd :gem_path, desc: 'show path to the gem'
|
24
|
-
|
25
|
-
def gem_path
|
26
|
-
|
27
|
-
end
|
28
|
-
|
29
|
-
cmd :irb, desc: 'start REPL session within i18n-processes context'
|
30
|
-
|
31
|
-
def irb
|
32
|
-
|
33
|
-
|
34
|
-
end
|
10
|
+
# cmd :config,
|
11
|
+
# pos: '[section ...]',
|
12
|
+
# desc: 'display i18n-processes configuration'
|
13
|
+
#
|
14
|
+
# def config(opts = {})
|
15
|
+
# cfg = i18n.config_for_inspect
|
16
|
+
# cfg = cfg.slice(*opts[:arguments]) if opts[:arguments].present?
|
17
|
+
# cfg = cfg.to_yaml
|
18
|
+
# cfg.sub!(/\A---\n/, '')
|
19
|
+
# cfg.gsub!(/^([^\s-].+?:)/, Rainbow('\1').cyan.bright)
|
20
|
+
# puts cfg
|
21
|
+
# end
|
22
|
+
#
|
23
|
+
# cmd :gem_path, desc: 'show path to the gem'
|
24
|
+
#
|
25
|
+
# def gem_path
|
26
|
+
# puts I18n::Processes.gem_path
|
27
|
+
# end
|
28
|
+
#
|
29
|
+
# cmd :irb, desc: 'start REPL session within i18n-processes context'
|
30
|
+
#
|
31
|
+
# def irb
|
32
|
+
# require 'i18n/processes/console_context'
|
33
|
+
# ::I18n::Processes::ConsoleContext.start
|
34
|
+
# end
|
35
35
|
end
|
36
36
|
end
|
37
37
|
end
|
@@ -50,6 +50,7 @@ module I18n::Processes
|
|
50
50
|
def keys_source(dic, path, locale)
|
51
51
|
filename = path + locale
|
52
52
|
previous_file = "#{path}pre_#{locale}"
|
53
|
+
FileUtils::mkdir_p File.dirname(filename) unless Dir.exist?File.dirname(filename)
|
53
54
|
File.delete(previous_file) if File.exist?(previous_file)
|
54
55
|
File.rename(filename, previous_file) if File.exist?(filename)
|
55
56
|
local_file = File.new(filename, 'w')
|
@@ -8,111 +8,111 @@ module I18n::Processes
|
|
8
8
|
include Command::Collection
|
9
9
|
include I18n::Processes::KeyPatternMatching
|
10
10
|
|
11
|
-
cmd :tree_translate,
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
def tree_translate(opts = {})
|
17
|
-
|
18
|
-
|
19
|
-
end
|
20
|
-
|
21
|
-
cmd :tree_merge,
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
def tree_merge(opts = {})
|
27
|
-
|
28
|
-
end
|
29
|
-
|
30
|
-
cmd :tree_filter,
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
def tree_filter(opts = {})
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
end
|
44
|
-
|
45
|
-
cmd :tree_rename_key,
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
def tree_rename_key(opt = {})
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
end
|
62
|
-
|
63
|
-
arg :all_locales,
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
cmd :tree_mv,
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
def tree_mv(opt = {})
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
end
|
80
|
-
|
81
|
-
cmd :tree_subtract,
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
def tree_subtract(opt = {})
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
end
|
91
|
-
|
92
|
-
cmd :tree_set_value,
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
def tree_set_value(opt = {})
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
end
|
105
|
-
|
106
|
-
cmd :tree_convert,
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
def tree_convert(opt = {})
|
113
|
-
|
114
|
-
|
115
|
-
end
|
11
|
+
# cmd :tree_translate,
|
12
|
+
# pos: '[tree (or stdin)]',
|
13
|
+
# desc: 'Google Translate a tree to root locales',
|
14
|
+
# args: [:locale_to_translate_from, arg(:data_format).from(1)]
|
15
|
+
#
|
16
|
+
# def tree_translate(opts = {})
|
17
|
+
# forest = forest_pos_or_stdin!(opts)
|
18
|
+
# print_forest i18n.google_translate_forest(forest, opts[:from]), opts
|
19
|
+
# end
|
20
|
+
#
|
21
|
+
# cmd :tree_merge,
|
22
|
+
# pos: '[[tree] [tree] ... (or stdin)]',
|
23
|
+
# desc: 'merge trees',
|
24
|
+
# args: %i[data_format nostdin]
|
25
|
+
#
|
26
|
+
# def tree_merge(opts = {})
|
27
|
+
# print_forest merge_forests_stdin_and_pos!(opts), opts
|
28
|
+
# end
|
29
|
+
#
|
30
|
+
# cmd :tree_filter,
|
31
|
+
# pos: '[pattern] [tree (or stdin)]',
|
32
|
+
# desc: 'filter tree by key pattern',
|
33
|
+
# args: %i[data_format pattern]
|
34
|
+
#
|
35
|
+
# def tree_filter(opts = {})
|
36
|
+
# pattern = arg_or_pos! :pattern, opts
|
37
|
+
# forest = forest_pos_or_stdin! opts
|
38
|
+
# unless pattern.blank?
|
39
|
+
# pattern_re = i18n.compile_key_pattern(pattern)
|
40
|
+
# forest = forest.select_keys { |full_key, _node| full_key =~ pattern_re }
|
41
|
+
# end
|
42
|
+
# print_forest forest, opts
|
43
|
+
# end
|
44
|
+
#
|
45
|
+
# cmd :tree_rename_key,
|
46
|
+
# pos: 'KEY_PATTERN NAME [tree (or stdin)]',
|
47
|
+
# desc: 'rename tree node',
|
48
|
+
# args: [['-k', '--key KEY_PATTERN', 'Full key (pattern) to rename. Required'],
|
49
|
+
# ['-n', '--name NAME', 'New name, interpolates original name as %{key}. Required'],
|
50
|
+
# :data_format]
|
51
|
+
#
|
52
|
+
# def tree_rename_key(opt = {})
|
53
|
+
# warn_deprecated 'Use tree-mv instead.'
|
54
|
+
# key = arg_or_pos! :key, opt
|
55
|
+
# name = arg_or_pos! :name, opt
|
56
|
+
# forest = forest_pos_or_stdin! opt
|
57
|
+
# fail CommandError, 'pass full key to rename (-k, --key)' if key.blank?
|
58
|
+
# fail CommandError, 'pass new name (-n, --name)' if name.blank?
|
59
|
+
# forest.rename_each_key!(key, name)
|
60
|
+
# print_forest forest, opt
|
61
|
+
# end
|
62
|
+
#
|
63
|
+
# arg :all_locales,
|
64
|
+
# '-a',
|
65
|
+
# '--all-locales',
|
66
|
+
# 'Do not expect key patterns to start with a locale, instead apply them to all locales implicitly.'
|
67
|
+
#
|
68
|
+
# cmd :tree_mv,
|
69
|
+
# pos: 'FROM_KEY_PATTERN TO_KEY_PATTERN [tree (or stdin)]',
|
70
|
+
# desc: 'rename/merge/remove the keys matching the given pattern',
|
71
|
+
# args: %i[data_format all_locales]
|
72
|
+
# def tree_mv(opt = {})
|
73
|
+
# fail CommandError, 'requires FROM_KEY_PATTERN and TO_KEY_PATTERN' if opt[:arguments].size < 2
|
74
|
+
# from_pattern = opt[:arguments].shift
|
75
|
+
# to_pattern = opt[:arguments].shift
|
76
|
+
# forest = forest_pos_or_stdin!(opt)
|
77
|
+
# forest.mv_key!(compile_key_pattern(from_pattern), to_pattern, root: !opt[:'all-locales'])
|
78
|
+
# print_forest forest, opt
|
79
|
+
# end
|
80
|
+
#
|
81
|
+
# cmd :tree_subtract,
|
82
|
+
# pos: '[[tree] [tree] ... (or stdin)]',
|
83
|
+
# desc: 'tree A minus the keys in tree B',
|
84
|
+
# args: %i[data_format nostdin]
|
85
|
+
#
|
86
|
+
# def tree_subtract(opt = {})
|
87
|
+
# forests = forests_stdin_and_pos! opt, 2
|
88
|
+
# forest = forests.reduce(:subtract_by_key) || empty_forest
|
89
|
+
# print_forest forest, opt
|
90
|
+
# end
|
91
|
+
#
|
92
|
+
# cmd :tree_set_value,
|
93
|
+
# pos: '[VALUE] [tree (or stdin)]',
|
94
|
+
# desc: 'set values of keys, optionally match a pattern',
|
95
|
+
# args: %i[value data_format nostdin pattern]
|
96
|
+
#
|
97
|
+
# def tree_set_value(opt = {})
|
98
|
+
# value = arg_or_pos! :value, opt
|
99
|
+
# forest = forest_pos_or_stdin!(opt)
|
100
|
+
# key_pattern = opt[:pattern]
|
101
|
+
# fail CommandError, 'pass value (-v, --value)' if value.blank?
|
102
|
+
# forest.set_each_value!(value, key_pattern)
|
103
|
+
# print_forest forest, opt
|
104
|
+
# end
|
105
|
+
#
|
106
|
+
# cmd :tree_convert,
|
107
|
+
# pos: '[tree (or stdin)]',
|
108
|
+
# desc: 'convert tree between formats',
|
109
|
+
# args: [arg(:data_format).dup.tap { |a| a[0..1] = ['-f', '--from FORMAT'] },
|
110
|
+
# arg(:out_format).dup.tap { |a| a[0..1] = ['-t', '--to FORMAT'] }]
|
111
|
+
#
|
112
|
+
# def tree_convert(opt = {})
|
113
|
+
# forest = forest_pos_or_stdin! opt.merge(format: opt[:from])
|
114
|
+
# print_forest forest, opt.merge(format: opt[:to])
|
115
|
+
# end
|
116
116
|
end
|
117
117
|
end
|
118
118
|
end
|
@@ -7,49 +7,49 @@ module I18n::Processes
|
|
7
7
|
module Usages
|
8
8
|
include Command::Collection
|
9
9
|
|
10
|
-
arg :strict,
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
cmd :find,
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
def find(opt = {})
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
end
|
24
|
-
|
25
|
-
cmd :unused,
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
def unused(opt = {})
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
end
|
35
|
-
|
36
|
-
cmd :remove_unused,
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
def remove_unused(opt = {})
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
end
|
10
|
+
# arg :strict,
|
11
|
+
# '--[no-]strict',
|
12
|
+
# 'Avoid inferring dynamic key usages such as t("cats.#{cat}.name"). Takes precedence over the config setting if set.'
|
13
|
+
#
|
14
|
+
# cmd :find,
|
15
|
+
# pos: '[pattern]',
|
16
|
+
# desc: 'show where keys are used in the code',
|
17
|
+
# args: %i[out_format pattern strict]
|
18
|
+
#
|
19
|
+
# def find(opt = {})
|
20
|
+
# opt[:filter] ||= opt.delete(:pattern) || opt[:arguments].try(:first)
|
21
|
+
# result = i18n.used_tree(strict: opt[:strict], key_filter: opt[:filter].presence, include_raw_references: true)
|
22
|
+
# print_forest result, opt, :used_keys
|
23
|
+
# end
|
24
|
+
#
|
25
|
+
# cmd :unused,
|
26
|
+
# pos: '[locale ...]',
|
27
|
+
# desc: 'show unused translations',
|
28
|
+
# args: %i[locales out_format strict]
|
29
|
+
#
|
30
|
+
# def unused(opt = {})
|
31
|
+
# forest = i18n.unused_keys(opt.slice(:locales, :strict))
|
32
|
+
# print_forest forest, opt, :unused_keys
|
33
|
+
# :exit_1 unless forest.empty?
|
34
|
+
# end
|
35
|
+
#
|
36
|
+
# cmd :remove_unused,
|
37
|
+
# pos: '[locale ...]',
|
38
|
+
# desc: 'remove unused keys',
|
39
|
+
# args: %i[locales out_format strict confirm]
|
40
|
+
#
|
41
|
+
# def remove_unused(opt = {})
|
42
|
+
# unused_keys = i18n.unused_keys(opt.slice(:locales, :strict))
|
43
|
+
# if unused_keys.present?
|
44
|
+
# terminal_report.unused_keys(unused_keys)
|
45
|
+
# confirm_remove_unused!(unused_keys, opt)
|
46
|
+
# removed = i18n.data.remove_by_key!(unused_keys)
|
47
|
+
# log_stderr "Removed #{unused_keys.leaves.count} keys"
|
48
|
+
# print_forest removed, opt
|
49
|
+
# else
|
50
|
+
# log_stderr Rainbow("No unused keys to remove").green.bright
|
51
|
+
# end
|
52
|
+
# end
|
53
53
|
|
54
54
|
private
|
55
55
|
|
@@ -7,22 +7,22 @@ module I18n::Processes
|
|
7
7
|
module XLSX
|
8
8
|
include Command::Collection
|
9
9
|
|
10
|
-
cmd :xlsx_report,
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
def xlsx_report(opt = {})
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
end
|
10
|
+
# cmd :xlsx_report,
|
11
|
+
# pos: '[locale...]',
|
12
|
+
# desc: 'save missing and unused translations to an Excel file',
|
13
|
+
# args: [:locales,
|
14
|
+
# ['-p', '--path PATH', 'Destination path', default: 'tmp/i18n-report.xlsx']]
|
15
|
+
#
|
16
|
+
# def xlsx_report(opt = {})
|
17
|
+
# begin
|
18
|
+
# require 'axlsx'
|
19
|
+
# rescue LoadError
|
20
|
+
# message = %(For spreadsheet report please add axlsx gem to Gemfile:\ngem 'axlsx', '~> 2.0')
|
21
|
+
# log_stderr Rainbow(message).red.bright
|
22
|
+
# exit 1
|
23
|
+
# end
|
24
|
+
# spreadsheet_report.save_report opt[:path], opt.except(:path)
|
25
|
+
# end
|
26
26
|
end
|
27
27
|
end
|
28
28
|
end
|
data/lib/i18n/processes/path.rb
CHANGED
@@ -3,12 +3,18 @@
|
|
3
3
|
module I18n::Processes:: Path
|
4
4
|
|
5
5
|
def origin_files(locale)
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
6
|
+
if source_path == []
|
7
|
+
log_stderr "please check the path for origin baselocale files"
|
8
|
+
elsif translation_path == []
|
9
|
+
log_stderr "please check the path for translation files"
|
10
|
+
else
|
11
|
+
source = locale == base_locale ? source_path : translation_path[locale.to_sym]
|
12
|
+
[].tap do |file|
|
13
|
+
source.map do |path|
|
14
|
+
path = path[-1] == '/' ? path : path + '/'
|
15
|
+
group = Dir.glob("#{path}**/**")
|
16
|
+
file << group.reject { |x| File.directory?(x) }
|
17
|
+
end
|
12
18
|
end
|
13
19
|
end
|
14
20
|
end
|
@@ -24,15 +30,15 @@ module I18n::Processes:: Path
|
|
24
30
|
end
|
25
31
|
|
26
32
|
def source_path
|
27
|
-
config_file[:data][:source]
|
33
|
+
config_file[:data][:source] ||= []
|
28
34
|
end
|
29
35
|
|
30
36
|
def translation_path
|
31
|
-
config_file[:data][:translation]
|
37
|
+
config_file[:data][:translation] ||= []
|
32
38
|
end
|
33
39
|
|
34
40
|
def translated_path
|
35
|
-
config_file[:data][:translated]
|
41
|
+
config_file[:data][:translated] ||= []
|
36
42
|
end
|
37
43
|
|
38
44
|
def config_file
|
@@ -24,7 +24,7 @@ module I18n::Processes::Reports
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def translated_files(locale)
|
27
|
-
path = translated_path.first
|
27
|
+
path = translated_path.first unless translated_path == []
|
28
28
|
dic = get_dic("./tmp/#{locale}")
|
29
29
|
FileUtils.rm_f Dir.glob("./#{path}**/**") unless Dir["./#{path}**/**"].size.zero?
|
30
30
|
origin_files = origin_files(base_locale).flatten
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: i18n-processes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lucia
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-04-
|
11
|
+
date: 2018-04-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|