Skip to content

Commit 280bb4b

Browse files
feat(localization): 添加多语言支持的更新日志并优化翻译流程
- 将目标语言配置移至外部JSON文件便于维护 - 更新文档说明和自动化流程
1 parent 6f24319 commit 280bb4b

5 files changed

Lines changed: 79 additions & 20 deletions

File tree

.github/scripts/README.md

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,34 +15,30 @@
1515

1616
### 🌍 多语言支持
1717

18-
支持18种目标语言,按优先级分组:
18+
- 目标语言从 `Localization-Resource-Pack/languages.json` 动态加载。默认包含 19 种语言(含 `zh_cn`)。
19+
- 如需增删语言,请编辑 `Localization-Resource-Pack/languages.json` 并提交 PR;本地运行直接修改该文件即可。
1920

20-
#### 第一优先级(强烈推荐)
21+
当前默认语言:
2122

2223
- `en_us` - English (US)
2324
- `pt_br` - Portuguese (Brazil)
2425
- `ru_ru` - Russian
2526
- `de_de` - German
26-
27-
#### 第二优先级(推荐)
28-
2927
- `es_es` - Spanish (Spain)
3028
- `es_mx` - Spanish (Mexico)
3129
- `fr_fr` - French (France)
3230
- `fr_ca` - French (Canada)
3331
- `tr_tr` - Turkish
3432
- `ja_jp` - Japanese
3533
- `ko_kr` - Korean
36-
37-
#### 第三优先级(可选)
38-
3934
- `pl_pl` - Polish
4035
- `nl_nl` - Dutch
4136
- `it_it` - Italian
4237
- `id_id` - Indonesian
4338
- `vi_vn` - Vietnamese
4439
- `zh_tw` - Traditional Chinese (Taiwan)
4540
- `zh_hk` - Traditional Chinese (Hong Kong)
41+
- `zh_cn` - Simplified Chinese (China)
4642

4743
### 🔍 质量保证
4844

@@ -51,6 +47,13 @@
5147
- **智能重试机制** - 区分API失败和验证失败,各自独立重试(最多10次),并结合温度调整和思考模式切换策略,确保翻译成功率。
5248
- **详细日志记录** - 记录翻译失败的详细信息、错误原因、模型、温度、命名空间和目标语言。
5349

50+
### ⚙️ 并发与重试优化
51+
52+
- **并发批处理** - 使用线程池并发执行请求,默认每批 `40` 个键;超出将自动分批并保留上下文片段以提高一致性。
53+
- **独立重试计数** - 对 API 失败与验证失败分别计数,单类失败最多重试 `10` 次,失败总览会在日志中汇总显示。
54+
- **自适应温度与模式** - 验证失败前 `1–5` 次按温度序列 `[1.3, 1.3, 1.2, 1.0, 0.7]` 保持当前模式;之后按同温度序列交替切换思考/非思考模式,帮助稳定结果。
55+
- **进度与批次日志** - 输出批次规模与总进度,失败时记录尝试次数、失败类型与等待回退时间。
56+
5457
### ⚡ 自动化工作流
5558

5659
- **智能触发** - 监听源文件变更自动执行翻译
@@ -134,6 +137,8 @@ python .github/scripts/translate.py
134137
- `DEEPSEEK_API_KEY` - DeepSeek API密钥(在GitHub Secrets中配置)
135138
- `FORCE_TRANSLATE` - 强制重新翻译所有文件(可选,默认为false)
136139
- `NON_THINKING_MODE` - 使用非思考模式翻译(可选,默认为false)
140+
- `TRANSLATION_DEBUG` - 开启详细请求/响应记录(可选,默认为false)
141+
- `GITHUB_ACTIONS` - CI环境标识,启用日志分组与提示格式(自动)
137142

138143
### 提示词模板变量
139144

@@ -168,14 +173,16 @@ python .github/scripts/translate.py
168173
### 日志查看
169174

170175
- **GitHub Actions日志** - 查看工作流运行的详细过程
171-
- **本地日志文件** - 翻译失败时在 `logs/` 目录生成详细日志
176+
- **本地主日志** - 在仓库根目录生成 `translation.log`
177+
- **详细失败日志** - 在 `.github/scripts/logs/` 目录生成失败明细于 `error_summary.log`
172178

173179
## 📈 更新历史
174180

175181
- **v1.4** - 添加质量保证功能:占位符验证、JSON完整性检查、重试机制
176182
- **v1.5** - 支持DeepSeek-V3.2-Exp双模式,添加非思考模式选项
177183
- **v1.6** - 优化工作流,移除冗余步骤,完善日志系统
178184
- **v1.7** - 优化重试机制(独立计数、智能调整)、完善日志记录(模型、温度、命名空间、目标语言)、优化提示词。
185+
- **v1.8** - 新增环境变量(`TRANSLATION_DEBUG`、改进 `FORCE_TRANSLATE` 行为)、完善并发批处理与自适应重试(API/验证各自最多10次),目标语言包含 `zh_cn`,缺失/清理逻辑以 `translate/` 为准并在构建时与 `assets/` 合并。
179186

180187
## 🤝 贡献指南
181188

.github/scripts/translate.py

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -143,9 +143,10 @@ def get_total_progress(self) -> str:
143143
TRANSLATE_DIR = "translate"
144144
SYSTEM_PROMPT_FILE = "Localization-Resource-Pack/assets/system_prompt.md"
145145
USER_PROMPT_FILE = "Localization-Resource-Pack/assets/user_prompt.md"
146+
LANGUAGES_FILE = "Localization-Resource-Pack/languages.json"
146147

147-
# 目标语言列表(基于之前的推荐
148-
TARGET_LANGUAGES = {
148+
# 默认目标语言列表(当外部文件不存在或无效时使用
149+
DEFAULT_TARGET_LANGUAGES = {
149150
"en_us": "English (US)",
150151
"pt_br": "Portuguese (Brazil)",
151152
"ru_ru": "Russian",
@@ -167,15 +168,32 @@ def get_total_progress(self) -> str:
167168
"zh_cn": "Simplified Chinese (China)"
168169
}
169170

171+
def load_target_languages(file_path: str = LANGUAGES_FILE) -> dict:
172+
"""从文件加载目标语言列表,失败则回退到默认列表"""
173+
try:
174+
with open(file_path, 'r', encoding='utf-8') as f:
175+
data = json.load(f)
170176

177+
if isinstance(data, dict) and all(isinstance(k, str) and isinstance(v, str) for k, v in data.items()):
178+
log_progress(f"已从 {file_path} 加载目标语言列表,共 {len(data)} 种")
179+
return data
180+
else:
181+
log_progress("语言列表文件格式无效,使用默认列表", "warning")
182+
return DEFAULT_TARGET_LANGUAGES
183+
except FileNotFoundError:
184+
log_progress(f"未找到语言列表文件 {file_path},使用默认列表", "warning")
185+
return DEFAULT_TARGET_LANGUAGES
186+
except Exception as e:
187+
log_progress(f"加载语言列表失败:{e},使用默认列表", "warning")
188+
return DEFAULT_TARGET_LANGUAGES
171189

172-
def get_all_target_languages() -> dict:
173-
"""
174-
获取所有目标语言
190+
# 在导入时加载一次语言列表,提供常量以兼容旧用法
191+
TARGET_LANGUAGES = load_target_languages()
175192

176-
Returns:
177-
dict: 所有目标语言字典
178-
"""
193+
194+
195+
def get_all_target_languages() -> dict:
196+
"""获取所有目标语言(从文件或默认值)"""
179197
return TARGET_LANGUAGES
180198

181199

Localization-Resource-Pack/NEWS.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
更新本地化相关内容,适配 Lucky-Block-Island
1+
- 添加了 17 种语言的翻译
2+
- 清理了不再使用的本地化键名
23

34
---
45

5-
Update localization content to support Lucky-Block-Island
6+
- Added translations for 17 languages
7+
- Cleaned up unused localization key names
Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,14 @@
11
# Localization-Resource-Pack
22

3-
All my data packages require this resource package for localization.
3+
## 简介
4+
5+
本资源包主要为我的数据包提供本地化,基于 DeepSeek-V3.2-Exp 进行全自动智能翻译,拥有一系列的翻译质量保证机制,如分段机制、上下文补充机制、JSON 验证机制等,目前支持 19 种语言。
6+
7+
## 贡献
8+
9+
如果您觉得本资源包的翻译有误,请在 `\Localization-Resource-Pack\assets\<命名空间>\lang\语言代码.json` 中添加对应键值对,并提交 Pull Request。
10+
11+
## 其他
12+
13+
- 如果您想添加对于一种语言的自动化翻译,请编辑 `Localization-Resource-Pack/languages.json` 并提交 Pull Request。
14+
- 如果您也想为自己的项目添加本地化,请在 `\Localization-Resource-Pack\assets\` 目录下添加一个命名空间,并添加**任意一种**(或多种你乐意手工维护的语言),然后提交 Pull Request。
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"en_us": "English (US)",
3+
"pt_br": "Portuguese (Brazil)",
4+
"ru_ru": "Russian",
5+
"de_de": "German",
6+
"es_es": "Spanish (Spain)",
7+
"es_mx": "Spanish (Mexico)",
8+
"fr_fr": "French (France)",
9+
"fr_ca": "French (Canada)",
10+
"tr_tr": "Turkish",
11+
"ja_jp": "Japanese",
12+
"ko_kr": "Korean",
13+
"pl_pl": "Polish",
14+
"nl_nl": "Dutch",
15+
"it_it": "Italian",
16+
"id_id": "Indonesian",
17+
"vi_vn": "Vietnamese",
18+
"zh_tw": "Traditional Chinese (Taiwan)",
19+
"zh_hk": "Traditional Chinese (Hong Kong)",
20+
"zh_cn": "Simplified Chinese (China)"
21+
}

0 commit comments

Comments
 (0)