xlocalize 0.6.0 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/xlocalize.rb +3 -1
- data/lib/xlocalize/executor.rb +15 -1
- data/lib/xlocalize/version.rb +1 -1
- data/lib/xlocalize/xliff.rb +15 -0
- 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: 7d55b509bd7c5475b9b5cc70a573ed36a87914b1
|
4
|
+
data.tar.gz: aef43cb75f4ded93db5befee7e3f256f47a8c1ae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 558a2654398fdf15574e9c498c4826ae6d6ef503886b850c0fdfe66a98e50c11c26ca91a6d80cf3850c9b2c33e87c97dadd5989f08f87c253bbcbd5c56a041d9
|
7
|
+
data.tar.gz: 7edd77a3d0a20827ab7dac5409fefad4e5add3d36fa6bc925e7b135a89e6dd1d9c2f36dc1000c326adf760fe5798e3efa432bb55ed5eb4e5356196f45510ffec
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
## [v0.7.0](https://github.com/viktorasl/xlocalize/releases/tag/0.7.0)
|
2
|
+
|
3
|
+
* [70ef86f](https://github.com/viktorasl/xlocalize/commit/70ef86f6d8b5d64e100445635a46d92080437646) Provide allowed cryptic units via config file
|
4
|
+
|
1
5
|
## [v0.6.0](https://github.com/viktorasl/xlocalize/releases/tag/0.6.0)
|
2
6
|
|
3
7
|
* [17ffefc](https://github.com/viktorasl/xlocalize/commit/17ffefcc94272385091cef087e7df18a407897a8) Xliff merging before upload
|
data/lib/xlocalize.rb
CHANGED
@@ -17,8 +17,10 @@ module Xlocalize
|
|
17
17
|
c.option '--excl_prefix STRING', String, 'Exclude strings having specified prefix'
|
18
18
|
c.option '--master_lang STRING', String, 'Master language of the project'
|
19
19
|
c.option '--exclude_units ARRAY', Array, 'Translation unit IDs to exclude'
|
20
|
+
c.option '--no-cryptic', 'Disallow cryptic translation units'
|
20
21
|
c.action do |_, options|
|
21
22
|
options.default :exclude_units => []
|
23
|
+
no_cryptic = !(options.no_cryptic.nil? ? true : options.no_cryptic)
|
22
24
|
|
23
25
|
if options.project.nil? or
|
24
26
|
options.targets.nil? or
|
@@ -28,7 +30,7 @@ module Xlocalize
|
|
28
30
|
end
|
29
31
|
|
30
32
|
wti = WebtranslateIt.new(options.wti_key) if !options.wti_key.nil?
|
31
|
-
Executor.new.export_master(wti, options.project, options.targets, options.excl_prefix, options.master_lang, options.exclude_units)
|
33
|
+
Executor.new.export_master(wti, options.project, options.targets, options.excl_prefix, options.master_lang, options.exclude_units, no_cryptic)
|
32
34
|
end
|
33
35
|
end
|
34
36
|
end
|
data/lib/xlocalize/executor.rb
CHANGED
@@ -18,7 +18,7 @@ module Xlocalize
|
|
18
18
|
return "#{locale}.xliff"
|
19
19
|
end
|
20
20
|
|
21
|
-
def export_master(wti, project, targets, excl_prefix, master_lang, exclude_units=[])
|
21
|
+
def export_master(wti, project, targets, excl_prefix, master_lang, exclude_units=[], no_cryptic)
|
22
22
|
master_file_name = locale_file_name(master_lang)
|
23
23
|
|
24
24
|
File.delete(master_file_name) if File.exist?(master_file_name)
|
@@ -37,6 +37,20 @@ module Xlocalize
|
|
37
37
|
end
|
38
38
|
|
39
39
|
purelyze(master_lang, targets, excl_prefix, project, filer_ui_duplicates=Helper.xcode_at_least?(9.3), exclude_units)
|
40
|
+
if no_cryptic then
|
41
|
+
config_fname = '.xlocalize.yml'
|
42
|
+
config = (YAML.load_file(config_fname) if File.file?(config_fname)) || {}
|
43
|
+
allow_cryptic = config['allow_cryptic'] || {}
|
44
|
+
|
45
|
+
doc = Nokogiri::XML(File.open(locale_file_name(master_lang)))
|
46
|
+
cryptic_trans_units = doc.cryptic_trans_units(allow_cryptic)
|
47
|
+
if !cryptic_trans_units.empty? then
|
48
|
+
err_msg = "Found cryptic translation units\n"
|
49
|
+
err_msg += cryptic_trans_units.map { |fname, units| "#{fname}" + "\n " + units.join("\n ") }.join("\n")
|
50
|
+
raise err_msg
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
40
54
|
if wti then
|
41
55
|
original_doc = Nokogiri::XML(wti.pull(master_lang)['xliff'])
|
42
56
|
Nokogiri::XML(File.open(master_file_name)).merge_on_top_of(original_doc)
|
data/lib/xlocalize/version.rb
CHANGED
data/lib/xlocalize/xliff.rb
CHANGED
@@ -98,5 +98,20 @@ module Xlocalize
|
|
98
98
|
end
|
99
99
|
}
|
100
100
|
end
|
101
|
+
|
102
|
+
def cryptic_trans_units(exclude)
|
103
|
+
file_units = {}
|
104
|
+
cryptic_pattern = /[a-zA-Z0-9]{3}-[a-zA-Z0-9]{2}-[a-zA-Z0-9]{3}/
|
105
|
+
self.xpath("//xmlns:file").each do |node|
|
106
|
+
fname = node["original"]
|
107
|
+
all_units = node.css('body > trans-unit').map { |unit| unit['id'] }
|
108
|
+
cryptic_units = all_units.select do |key|
|
109
|
+
is_excluded = (exclude[fname] || []).include?(key)
|
110
|
+
!is_excluded && (key =~ cryptic_pattern)
|
111
|
+
end
|
112
|
+
file_units[fname] = cryptic_units if cryptic_units.any?
|
113
|
+
end
|
114
|
+
return file_units
|
115
|
+
end
|
101
116
|
end
|
102
117
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xlocalize
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Viktoras Laukevičius
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-09-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|