cocoapods-aomi-bin 0.0.8 → 0.1.0
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 +4 -4
- data/lib/cocoapods-lhj-bin/command/bin.rb +2 -0
- data/lib/cocoapods-lhj-bin/command/bin/config/push.rb +5 -0
- data/lib/cocoapods-lhj-bin/command/bin/fetch.rb +68 -0
- data/lib/cocoapods-lhj-bin/command/bin/local.rb +82 -48
- data/lib/cocoapods-lhj-bin/command/bin/trans.rb +63 -0
- data/lib/cocoapods-lhj-bin/gem_version.rb +1 -1
- data/lib/cocoapods-lhj-bin/helpers/trans_helper.rb +50 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 80ad9f8265fd7c660cccdd2d4d5c92d760c0ac57938b7aad1cf69f85b4fd811d
|
4
|
+
data.tar.gz: 846fe0ee62ef9c677dacb88e88092e6bea318f4a88c842c9ddc6c9391039a9c8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 33f28153039cd4e1119eff8527b649eca2bbd6392cf7e2faee22ed922173b79f8a1c2679f875e18901274f2dc0d8797a5e41461ea07275cec59b035aeefb4195
|
7
|
+
data.tar.gz: f19c525b22b4cd6eed429d5f8b48c56b886d0a0dd08b32ee0cfee850b59752fa2216277847466c6aef797314ee4066a4f6d11b0f3ea8ce6eb151cd9ee46911b7
|
@@ -7,6 +7,8 @@ require 'cocoapods-lhj-bin/command/bin/update'
|
|
7
7
|
require 'cocoapods-lhj-bin/command/bin/install'
|
8
8
|
require 'cocoapods-lhj-bin/command/bin/import'
|
9
9
|
require 'cocoapods-lhj-bin/command/bin/local'
|
10
|
+
require 'cocoapods-lhj-bin/command/bin/trans'
|
11
|
+
require 'cocoapods-lhj-bin/command/bin/fetch'
|
10
12
|
require 'cocoapods-lhj-bin/command/bin/lhj'
|
11
13
|
require 'cocoapods-lhj-bin/command/bin/config/push'
|
12
14
|
require 'cocoapods-lhj-bin/command/bin/oss/list'
|
@@ -17,6 +17,11 @@ module Pod
|
|
17
17
|
push
|
18
18
|
end
|
19
19
|
|
20
|
+
def push_cn_hk
|
21
|
+
file = File.expand_path("#{Pod::Config.instance.home_dir}/zh2hant.yml")
|
22
|
+
CBin::OSS::Helper.instance.upload('zh2hant.yml', file)
|
23
|
+
end
|
24
|
+
|
20
25
|
def push
|
21
26
|
file = File.expand_path("#{Pod::Config.instance.home_dir}/bin_dev.yml")
|
22
27
|
CBin::OSS::Helper.instance.upload('bin_dev.yml', file)
|
@@ -0,0 +1,68 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'csv'
|
4
|
+
|
5
|
+
module Pod
|
6
|
+
class Command
|
7
|
+
class Bin < Command
|
8
|
+
class Fetch < Bin
|
9
|
+
self.summary = '提取源码的中文字符串,并生成中英文对照csv文件'
|
10
|
+
|
11
|
+
def self.options
|
12
|
+
[
|
13
|
+
%w[--file-type 从文件扩展名中查找中文字符串,默认为m,h],
|
14
|
+
%w[--file-name 生成csv文件名,默认为gen_cn_key.csv]
|
15
|
+
]
|
16
|
+
end
|
17
|
+
|
18
|
+
def initialize(argv)
|
19
|
+
@current_path = argv.shift_argument || Dir.pwd
|
20
|
+
@file_type = argv.option('file-type', 'm,h')
|
21
|
+
@file_name = argv.option('file-name', 'gen_cn_key.csv')
|
22
|
+
@cn_keys = []
|
23
|
+
super
|
24
|
+
end
|
25
|
+
|
26
|
+
def run
|
27
|
+
handle_files
|
28
|
+
gen_csv
|
29
|
+
end
|
30
|
+
|
31
|
+
def gen_csv
|
32
|
+
file = File.join(@current_path, @file_name)
|
33
|
+
FileUtils.rm_rf(file) if File.exist?(file)
|
34
|
+
CSV.open(file, 'wb:utf-8') do |csv|
|
35
|
+
csv << %w[国际化key 中文 英文 原字符 所在文件 文件路径]
|
36
|
+
@cn_keys.each do |k|
|
37
|
+
csv << [k[:key], k[:cn], k[:en], k[:str], k[:fname], k[:dirname]]
|
38
|
+
end
|
39
|
+
end
|
40
|
+
UI.puts "生成csv文件完成.\n文件路径:#{File.absolute_path(file)}".green
|
41
|
+
end
|
42
|
+
|
43
|
+
def handle_files
|
44
|
+
Dir.glob("#{@current_path}/**/*.{#{@file_type}}").each do |f|
|
45
|
+
handle_file f
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def handle_file(file)
|
50
|
+
File.open(file, 'r') do |f|
|
51
|
+
f.each_line do |line|
|
52
|
+
handle_line(file, line) if line =~ /@"[^"]*[\u4e00-\u9fa5]+[^"]*"/
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
def handle_line(file, line)
|
58
|
+
reg = /@"[^"]*[\u4e00-\u9fa5]+[^"]*"/
|
59
|
+
ma = reg.match(line)
|
60
|
+
str = ma[0]
|
61
|
+
key = "#{File.basename(file, '.*')}.#{rand(36**8).to_s(36)}"
|
62
|
+
@cn_keys << { key: key, cn: str[2, str.length - 3], en: '', str: str, dirname: File.dirname(file),
|
63
|
+
fname: File.basename(file) }
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -1,38 +1,52 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'csv'
|
4
|
+
require 'cocoapods-lhj-bin/helpers/trans_helper'
|
4
5
|
|
5
6
|
module Pod
|
6
7
|
class Command
|
7
8
|
class Bin < Command
|
8
9
|
class Local < Bin
|
9
|
-
self.summary = '
|
10
|
+
self.summary = '根据中英文对照csv文件,生成国际化配置, 及批量更新源码(使用国际化写法)'
|
10
11
|
|
11
12
|
def self.options
|
12
13
|
[
|
13
|
-
%w[--key
|
14
|
-
%w[--cn 中文在csv中第几列,默认为1],
|
15
|
-
%w[--en
|
14
|
+
%w[--key-col 国际化key在csv中第几列,默认为0],
|
15
|
+
%w[--cn-col 中文在csv中第几列,默认为1],
|
16
|
+
%w[--en-col 英文在csv中第几列,默认为2],
|
17
|
+
%w[--csv-file csv文件名,默认为当前目录下所有csv文件],
|
18
|
+
%w[--gen-file 生成配置文件名,默认名为: Localizable.strings],
|
19
|
+
%w[--modify-source 修改源码,使用国际化key代替中文字符串],
|
20
|
+
%w[--modify-file-type 需要修改源码的文件类型,默认为m,h],
|
21
|
+
%w[--modify-format-string 修改为国际化后的字符格式,默认为NSLocalizedString(%s, @"")]
|
16
22
|
]
|
17
23
|
end
|
18
24
|
|
19
25
|
def initialize(argv)
|
20
26
|
@current_path = argv.shift_argument || Dir.pwd
|
21
|
-
@key_col = argv.option('key').to_i
|
22
|
-
@cn_col = argv.option('cn', 1).to_i
|
23
|
-
@en_col = argv.option('en', 2).to_i
|
27
|
+
@key_col = argv.option('key-col', 0).to_i
|
28
|
+
@cn_col = argv.option('cn-col', 1).to_i
|
29
|
+
@en_col = argv.option('en-col', 2).to_i
|
30
|
+
@csv_file = argv.option('csv-file', '*')
|
31
|
+
@gen_file_name = argv.option('gen-file', 'Localizable.strings')
|
32
|
+
@modify_source_flag = argv.flag?('modify-source', false)
|
33
|
+
@modify_file_type = argv.option('modify-file-type', 'm,h')
|
34
|
+
@modify_format_string = argv.option('modify-format-string', 'NSLocalizedString(%s, @"")')
|
24
35
|
@key_map = {}
|
25
|
-
@
|
26
|
-
@trans_map_invert = {}
|
36
|
+
@cn_key_map = {}
|
27
37
|
super
|
28
38
|
end
|
29
39
|
|
30
40
|
def run
|
31
|
-
load_trans_map
|
32
41
|
read_csv_file
|
33
|
-
|
34
|
-
|
35
|
-
|
42
|
+
if @key_map.keys.length.positive?
|
43
|
+
write_en_strings
|
44
|
+
write_zh_cn_strings
|
45
|
+
write_zh_hk_strings
|
46
|
+
handle_modify_source if @modify_source_flag
|
47
|
+
else
|
48
|
+
UI.puts "获取中英文映射文件失败, 检查参数--csv-file=xx是否正常\n".red
|
49
|
+
end
|
36
50
|
end
|
37
51
|
|
38
52
|
def en_dir_name
|
@@ -48,34 +62,67 @@ module Pod
|
|
48
62
|
end
|
49
63
|
|
50
64
|
def generate_file_name
|
51
|
-
|
65
|
+
@gen_file_name
|
52
66
|
end
|
53
67
|
|
54
|
-
def
|
55
|
-
|
68
|
+
def handle_modify_source
|
69
|
+
UI.puts '开始修改源码开始'
|
70
|
+
Dir.glob("#{@current_path}/**/*.{#{@modify_file_type}}").each do |f|
|
71
|
+
handle_modify_file f if File.stat(f).writable?
|
72
|
+
end
|
73
|
+
UI.puts '开始修改源码结束'
|
56
74
|
end
|
57
75
|
|
58
|
-
def
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
@trans_map_invert = @trans_map.invert
|
76
|
+
def handle_modify_file(file)
|
77
|
+
str = modify_file_string(file)
|
78
|
+
File.open(file, 'w+') do |f|
|
79
|
+
f.write(str)
|
80
|
+
end
|
64
81
|
end
|
65
82
|
|
66
|
-
def
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
f.write(i.read)
|
83
|
+
def modify_file_string(file)
|
84
|
+
str = ''
|
85
|
+
File.open(file, 'r') do |f|
|
86
|
+
f.each_line do |line|
|
87
|
+
str += modify_format_string(f, line)
|
72
88
|
end
|
73
89
|
end
|
90
|
+
str
|
91
|
+
end
|
92
|
+
|
93
|
+
def modify_format_string(file, line)
|
94
|
+
result = line
|
95
|
+
result = handle_modify_line line if line =~ /@"[^"]*[\u4e00-\u9fa5]+[^"]*"/
|
96
|
+
result
|
97
|
+
end
|
98
|
+
|
99
|
+
def handle_modify_line(line)
|
100
|
+
result = line
|
101
|
+
reg = /@"[^"]*[\u4e00-\u9fa5]+[^"]*"/
|
102
|
+
ma = reg.match(line)
|
103
|
+
key = find_key_by_cn_val(ma[0])
|
104
|
+
if key
|
105
|
+
val = format(@modify_format_string, "@\"#{key}\"")
|
106
|
+
result = line.gsub(ma[0], val)
|
107
|
+
end
|
108
|
+
result
|
109
|
+
end
|
110
|
+
|
111
|
+
def find_key_by_cn_val(val)
|
112
|
+
cn_key = val[2, val.length - 3]
|
113
|
+
@cn_key_map[cn_key]
|
74
114
|
end
|
75
115
|
|
76
116
|
def read_csv_file
|
77
|
-
|
78
|
-
|
117
|
+
path = "#{@current_path}/#{@csv_file}.csv"
|
118
|
+
Dir.glob(path).each do |p|
|
119
|
+
CSV.foreach(p) do |row|
|
120
|
+
key = row[@key_col]
|
121
|
+
unless key =~ /[\u4e00-\u9fa5]/
|
122
|
+
@key_map[key] = { zh: row[@cn_col], en: row[@en_col] }
|
123
|
+
@cn_key_map[row[@cn_col]] = key
|
124
|
+
end
|
125
|
+
end
|
79
126
|
end
|
80
127
|
end
|
81
128
|
|
@@ -85,31 +132,15 @@ module Pod
|
|
85
132
|
val = v[type]
|
86
133
|
case area
|
87
134
|
when :hk
|
88
|
-
val = trans_zh_hk_str val
|
135
|
+
val = CBin::Trans::Helper.instance.trans_zh_hk_str val
|
89
136
|
when :cn
|
90
|
-
val = trans_zh_cn_str val
|
137
|
+
val = CBin::Trans::Helper.instance.trans_zh_cn_str val
|
91
138
|
end
|
92
139
|
str += "\"#{k}\" = \"#{val}\";\n"
|
93
140
|
end
|
94
141
|
str
|
95
142
|
end
|
96
143
|
|
97
|
-
def trans_zh_cn_str(input)
|
98
|
-
out = []
|
99
|
-
input.each_char do |c|
|
100
|
-
out << (@trans_map_invert[c] || c)
|
101
|
-
end
|
102
|
-
out.join('')
|
103
|
-
end
|
104
|
-
|
105
|
-
def trans_zh_hk_str(input)
|
106
|
-
out = []
|
107
|
-
input.each_char do |c|
|
108
|
-
out << (@trans_map[c] || c)
|
109
|
-
end
|
110
|
-
out.join('')
|
111
|
-
end
|
112
|
-
|
113
144
|
def write_to_file(file, contents)
|
114
145
|
FileUtils.rm_rf(file) if File.exist?(file)
|
115
146
|
FileUtils.mkdir_p(File.dirname(file)) unless File.exist?(File.dirname(file))
|
@@ -126,17 +157,20 @@ module Pod
|
|
126
157
|
def write_en_strings
|
127
158
|
file = File.join(@current_path, en_dir_name, generate_file_name)
|
128
159
|
generate_file(file, :en)
|
160
|
+
UI.puts "生成英文配置完成.文件路径:#{File.absolute_path(file)}\n".green
|
129
161
|
end
|
130
162
|
|
131
163
|
def write_zh_cn_strings
|
132
164
|
file = File.join(@current_path, zh_cn_dir_name, generate_file_name)
|
133
165
|
generate_file(file, :zh)
|
166
|
+
UI.puts "生成简体中文配置完成.文件路径:#{File.absolute_path(file)}\n".green
|
134
167
|
end
|
135
168
|
|
136
169
|
def write_zh_hk_strings
|
137
170
|
file = File.join(@current_path, zh_hk_dir_name, generate_file_name)
|
138
171
|
content = format_str(:zh, :hk)
|
139
172
|
write_to_file(file, content)
|
173
|
+
UI.puts "生成繁体中文配置完成.文件路径:#{File.absolute_path(file)}\n".green
|
140
174
|
end
|
141
175
|
end
|
142
176
|
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'cocoapods-lhj-bin/helpers/trans_helper'
|
3
|
+
|
4
|
+
module Pod
|
5
|
+
class Command
|
6
|
+
class Bin < Command
|
7
|
+
class Trans < Bin
|
8
|
+
self.summary = '源码中的简繁体转换'
|
9
|
+
|
10
|
+
def self.options
|
11
|
+
[
|
12
|
+
%w[--file-type 文件扩展名,默认为m,h,pch,xib],
|
13
|
+
%w[--zh-cn 转成简体中文,默认转成繁体]
|
14
|
+
]
|
15
|
+
end
|
16
|
+
|
17
|
+
def initialize(argv)
|
18
|
+
@current_path = argv.shift_argument || Dir.pwd
|
19
|
+
@file_type = argv.option('file-type', 'm,h,pch,xib')
|
20
|
+
@zh_cn = argv.flag?('zh-cn', false)
|
21
|
+
super
|
22
|
+
end
|
23
|
+
|
24
|
+
def run
|
25
|
+
handler_files
|
26
|
+
end
|
27
|
+
|
28
|
+
def handler_files
|
29
|
+
Dir.glob("#{@current_path}/**/*.{#{@file_type}}").each do |f|
|
30
|
+
handler_file f
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def handler_file(file)
|
35
|
+
str = format_file_string(file)
|
36
|
+
File.open(file, 'w+') do |f|
|
37
|
+
f.write(str)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def format_file_string(file)
|
42
|
+
str = ''
|
43
|
+
File.open(file, 'r+') do |f|
|
44
|
+
f.each_line do |line|
|
45
|
+
str += format_line_string(line)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
str
|
49
|
+
end
|
50
|
+
|
51
|
+
def format_line_string(line)
|
52
|
+
result = line
|
53
|
+
if line =~ /[\u4e00-\u9fa5]/
|
54
|
+
result = CBin::Trans::Helper.instance.trans_zh_cn_str(line) if @zh_cn
|
55
|
+
result = CBin::Trans::Helper.instance.trans_zh_hk_str(line) unless @zh_cn
|
56
|
+
end
|
57
|
+
result
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
|
2
|
+
module CBin
|
3
|
+
class Trans
|
4
|
+
class Helper
|
5
|
+
|
6
|
+
def self.instance
|
7
|
+
@instance ||= new
|
8
|
+
end
|
9
|
+
|
10
|
+
def yaml_file
|
11
|
+
File.join(Pod::Config.instance.home_dir, 'zh2hant.yml')
|
12
|
+
end
|
13
|
+
|
14
|
+
def load_trans_map
|
15
|
+
require 'yaml'
|
16
|
+
down_load_yaml unless File.exist?(yaml_file)
|
17
|
+
contents = YAML.safe_load(File.open(yaml_file))
|
18
|
+
contents.to_hash
|
19
|
+
end
|
20
|
+
|
21
|
+
def down_load_yaml
|
22
|
+
require 'open-uri'
|
23
|
+
UI.puts "开始下载简繁配置文件...\n"
|
24
|
+
URI.open('http://aomi-ios-repo.oss-cn-shenzhen.aliyuncs.com/zh2hant.yml') do |i|
|
25
|
+
File.open(yaml_file, 'w+') do |f|
|
26
|
+
f.write(i.read)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def trans_zh_cn_str(input)
|
32
|
+
@trans_map_invert ||= load_trans_map.invert
|
33
|
+
out = []
|
34
|
+
input.each_char do |c|
|
35
|
+
out << (@trans_map_invert[c] || c)
|
36
|
+
end
|
37
|
+
out.join('')
|
38
|
+
end
|
39
|
+
|
40
|
+
def trans_zh_hk_str(input)
|
41
|
+
@trans_map ||= load_trans_map
|
42
|
+
out = []
|
43
|
+
input.each_char do |c|
|
44
|
+
out << (@trans_map[c] || c)
|
45
|
+
end
|
46
|
+
out.join('')
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cocoapods-aomi-bin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- lihaijian
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-05-
|
11
|
+
date: 2021-05-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cocoapods
|
@@ -111,6 +111,7 @@ files:
|
|
111
111
|
- lib/cocoapods-lhj-bin/command/bin/code.rb
|
112
112
|
- lib/cocoapods-lhj-bin/command/bin/config/push.rb
|
113
113
|
- lib/cocoapods-lhj-bin/command/bin/dup.rb
|
114
|
+
- lib/cocoapods-lhj-bin/command/bin/fetch.rb
|
114
115
|
- lib/cocoapods-lhj-bin/command/bin/import.rb
|
115
116
|
- lib/cocoapods-lhj-bin/command/bin/init.rb
|
116
117
|
- lib/cocoapods-lhj-bin/command/bin/initHotKey.rb
|
@@ -123,6 +124,7 @@ files:
|
|
123
124
|
- lib/cocoapods-lhj-bin/command/bin/repo/update.rb
|
124
125
|
- lib/cocoapods-lhj-bin/command/bin/spec/create.rb
|
125
126
|
- lib/cocoapods-lhj-bin/command/bin/spec/push.rb
|
127
|
+
- lib/cocoapods-lhj-bin/command/bin/trans.rb
|
126
128
|
- lib/cocoapods-lhj-bin/command/bin/update.rb
|
127
129
|
- lib/cocoapods-lhj-bin/config/config.rb
|
128
130
|
- lib/cocoapods-lhj-bin/config/config_asker.rb
|
@@ -143,6 +145,7 @@ files:
|
|
143
145
|
- lib/cocoapods-lhj-bin/helpers/spec_creator.rb
|
144
146
|
- lib/cocoapods-lhj-bin/helpers/spec_files_helper.rb
|
145
147
|
- lib/cocoapods-lhj-bin/helpers/spec_source_creator.rb
|
148
|
+
- lib/cocoapods-lhj-bin/helpers/trans_helper.rb
|
146
149
|
- lib/cocoapods-lhj-bin/helpers/upload_helper.rb
|
147
150
|
- lib/cocoapods-lhj-bin/native.rb
|
148
151
|
- lib/cocoapods-lhj-bin/native/acknowledgements.rb
|