modpack_localizer 0.3.0 → 0.4.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/CHANGELOG.md +9 -0
- data/lib/modpack_localizer/jar/performer.rb +13 -4
- data/lib/modpack_localizer/snbt/performer.rb +24 -1
- data/lib/modpack_localizer/util/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: bd0e40db750b08a99dbfd2dc80874dd7b1d4d261c056065cd5c75b7170df3bca
|
|
4
|
+
data.tar.gz: 7519fd5249a41610da57bfdaad1a9f8c3b72c368bc91b010a933a46b90e28948
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6b8a6941c0f3d19401f474af07b946aedc816ba570735f0172deed0cc5963894dd7393ced1f69a8403b4c2975b5ae2f907856990f73c11304147f85a6e65c068
|
|
7
|
+
data.tar.gz: '04508e54b5f5a2237e00d39693d1b48b37fcdc9b144df426b5693d3a2cba3203086093559187501c279640beb81086011300c318410bdee554f4503f763865e4'
|
data/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,10 @@ module ModpackLocalizer
|
|
|
8
8
|
module JAR
|
|
9
9
|
# .jarの翻訳を実行するクラス
|
|
10
10
|
class Performer
|
|
11
|
+
MAX_RETRIES = 8
|
|
12
|
+
BASE_DELAY = 5
|
|
13
|
+
MAX_SLEEP = 256
|
|
14
|
+
|
|
11
15
|
# locale_codeを指定する場合、countryの指定は不要
|
|
12
16
|
#
|
|
13
17
|
# @param [Boolean] output_logs APIのログを出力するか
|
|
@@ -118,12 +122,13 @@ module ModpackLocalizer
|
|
|
118
122
|
retries = 0
|
|
119
123
|
begin
|
|
120
124
|
lang_data.json[key] = TranslationAPI.translate(value)
|
|
121
|
-
rescue
|
|
125
|
+
rescue StandardError => e
|
|
122
126
|
retries += 1
|
|
123
|
-
raise e unless retries <=
|
|
127
|
+
raise e unless retries <= MAX_RETRIES
|
|
124
128
|
|
|
125
|
-
|
|
126
|
-
|
|
129
|
+
sleep_time = sleep_time(retries)
|
|
130
|
+
puts "Translation failed, retrying... (#{retries}/#{MAX_RETRIES}) waiting #{sleep_time.round(2)} seconds"
|
|
131
|
+
sleep(sleep_time)
|
|
127
132
|
retry
|
|
128
133
|
end
|
|
129
134
|
@progress_bar.increment if @loggable
|
|
@@ -153,6 +158,10 @@ module ModpackLocalizer
|
|
|
153
158
|
"#{camelize(lang_data.mod_name)} already has #{@reader.extract_file_name(lang_data.file_name)} file."
|
|
154
159
|
end
|
|
155
160
|
|
|
161
|
+
def sleep_time(retries)
|
|
162
|
+
[BASE_DELAY * (retries**2), MAX_SLEEP].min
|
|
163
|
+
end
|
|
164
|
+
|
|
156
165
|
def camelize(str)
|
|
157
166
|
str.split("_").map(&:capitalize).join
|
|
158
167
|
end
|
|
@@ -8,6 +8,10 @@ module ModpackLocalizer
|
|
|
8
8
|
module SNBT
|
|
9
9
|
# .snbtの翻訳を実行するクラス
|
|
10
10
|
class Performer
|
|
11
|
+
MAX_RETRIES = 8
|
|
12
|
+
BASE_DELAY = 5
|
|
13
|
+
MAX_SLEEP = 256
|
|
14
|
+
|
|
11
15
|
# @param [Boolean] output_logs APIのログを出力するか
|
|
12
16
|
# @param [Array<String>] except_words 翻訳しない単語
|
|
13
17
|
# @param [String] language 言語
|
|
@@ -41,7 +45,7 @@ module ModpackLocalizer
|
|
|
41
45
|
init_progress_bar(file_path, results.length) if @loggable
|
|
42
46
|
|
|
43
47
|
results.each do |result|
|
|
44
|
-
result[:
|
|
48
|
+
result[:snbt] = retryable_translate(result[:text])
|
|
45
49
|
@writer.overwrites(result)
|
|
46
50
|
@progress_bar.increment if @loggable
|
|
47
51
|
end
|
|
@@ -80,6 +84,25 @@ module ModpackLocalizer
|
|
|
80
84
|
|
|
81
85
|
private
|
|
82
86
|
|
|
87
|
+
def retryable_translate(text)
|
|
88
|
+
retries = 0
|
|
89
|
+
begin
|
|
90
|
+
TranslationAPI.translate(text)
|
|
91
|
+
rescue StandardError => e
|
|
92
|
+
retries += 1
|
|
93
|
+
raise e unless retries <= MAX_RETRIES
|
|
94
|
+
|
|
95
|
+
sleep_time = sleep_time(retries)
|
|
96
|
+
puts "Translation failed, retrying... (#{retries}/#{MAX_RETRIES}) waiting #{sleep_time.round(2)} seconds"
|
|
97
|
+
sleep(sleep_time)
|
|
98
|
+
retry
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def sleep_time(retries)
|
|
103
|
+
[BASE_DELAY * (retries**2), MAX_SLEEP].min
|
|
104
|
+
end
|
|
105
|
+
|
|
83
106
|
# プログレスバーを初期化する
|
|
84
107
|
#
|
|
85
108
|
# @param [String] file_path ファイルのパス
|