翻译框架是一个全面的系统,能够实现《Web开发入门》课程的国际化。该框架允许贡献者将课程内容、作业和测验翻译成多种语言,使教育材料能够触达全球受众。本文档概述了存储库内翻译的管理结构、实施和指南。
翻译框架由几个协同工作的关键组件组成,以提供多语言体验
翻译组件图
来源: quiz-app/src/assets/translations/hi.json quiz-app/src/assets/translations/ko.json TRANSLATIONS.md
翻译框架跨存储库采用一致的文件组织模式来管理翻译内容
课程翻译存储在其各自课程目录内的 translations 文件夹中。每个翻译文件都遵循特定的命名约定
README.[language_code].md - 翻译的课程内容assignment.[language_code].md - 翻译的作业其中 [language_code] 是遵循 ISO 639-1 标准的两个字母语言代码(例如,法语为 fr,荷兰语为 nl)。
课程翻译结构
来源: 1-getting-started-lessons/2-github-basics/translations/README.fr.md 1-getting-started-lessons/2-github-basics/translations/README.nl.md 1-getting-started-lessons/2-github-basics/translations/README.fil.md
测验翻译在测验应用程序中以 JSON 文件形式进行组织
quiz-app/src/assets/translations/[language_code].json (例如,fr.json,es.json)测验翻译结构
| 文件 | 目的 |
|---|---|
en.json | 英语(默认)测验内容 |
fr.json | 法语测验内容 |
es.json | 西班牙语测验内容 |
ko.json | 韩语测验内容 |
ja.json | 日语测验内容 |
hi.json | 印地语测验内容 |
| ... | 其他语言文件 |
每个测验 JSON 文件都遵循特定的结构
[
{
"title": "Translated title for all quizzes",
"complete": "Translated completion message",
"error": "Translated error message",
"quizzes": [
{
"id": 1,
"title": "Translated quiz 1 title",
"quiz": [
{
"questionText": "Translated question",
"answerOptions": [
{
"answerText": "Translated answer 1",
"isCorrect": "true/false"
},
// More answer options
]
},
// More questions
]
},
// More quizzes
]
}
]
来源: quiz-app/src/assets/translations/hi.json quiz-app/src/assets/translations/fr.json quiz-app/src/assets/translations/ko.json
翻译框架通过中央注册表和 URL 本地化参数将翻译的内容与课程的渲染系统集成。
翻译流程图
来源: TRANSLATIONS.md quiz-app/src/assets/translations/hi.json
测验应用程序使用中央翻译注册表来管理对翻译内容的访问
[language_code].json)会在翻译索引文件中导入loc 参数加载翻译(例如,法语为 ?loc=fr)技术实现结构
来源: quiz-app/src/assets/translations/hi.json quiz-app/src/assets/translations/ko.json TRANSLATIONS.md
翻译框架依赖于协作式工作流程来有效管理翻译
true 或 false 值/quiz/1 更改为 /quiz/1?loc=language_code翻译质量控制表
| 组件 | 翻译 | 不翻译 | 备注 |
|---|---|---|---|
| 课程内容 | 文本、标题、描述 | 代码示例、变量名 | 保持 markdown 格式 |
| 作业 | 说明、标准 | 代码示例、函数名 | 保持任务结构 |
| 测验 | 问题、答案 | true/false 值、问题 ID | 保持 JSON 结构 |
| 链接 | 链接文本 | URL 结构 | 为测验链接添加 locale 参数 |
来源: TRANSLATIONS.md quiz-app/src/assets/translations/fr.json quiz-app/src/assets/translations/hi.json quiz-app/src/assets/translations/ko.json
要向翻译框架添加新语言,请遵循以下步骤
创建测验翻译:
[language_code].json)添加到 quiz-app/src/assets/translations/注册新语言:
创建课程翻译:
translations 文件夹中README.[language_code].md,assignment.[language_code].md)更新测验链接:
语言添加工作流程
来源: TRANSLATIONS.md quiz-app/src/assets/translations/hi.json quiz-app/src/assets/translations/ko.json
测验应用程序根据用户偏好动态加载翻译
quiz-app/src/assets/translations/index.js)作为所有可用翻译的注册表?loc= URL 参数决定加载哪个翻译当用户加载测验时,应用程序会
翻译的课程内容由 Docsify 文档系统渲染
README.fr.md),它将加载并显示该内容这种方法允许在翻译和未翻译的内容之间无缝导航,提供一致的用户体验,无论可用语言如何。
来源: TRANSLATIONS.md quiz-app/src/assets/translations/hi.json 1-getting-started-lessons/2-github-basics/translations/README.fr.md
《Web开发入门》课程目前有多种语言的翻译,完成程度各不相同
| 语言 | 代码 | 已翻译的课程 | 已翻译的测验 | 备注 |
|---|---|---|---|---|
| 英语 | en | 100% | 100% | 原始内容 |
| 法语 | fr | 部分 | 已完成 | |
| 西班牙语 | es | 部分 | 已完成 | |
| 日语 | ja | 部分 | 已完成 | |
| 韩语 | ko | 部分 | 已完成 | |
| 印地语 | hi | 最小 | 已完成 | |
| 荷兰语 | nl | 部分 | 已完成 | |
| 意大利语 | it | 最小 | 已完成 | |
| 希腊语 | el | 最小 | 已完成 | |
| 菲律宾语 | fil | 最小 | 否 | |
| 中文(繁体) | zh-tw | 最小 | 否 | |
| 马来西亚语 | ms | 最小 | 已完成 |
翻译框架在不断发展,并且正在持续努力改进翻译流程和扩大语言覆盖范围。
来源: quiz-app/src/assets/translations/hi.json quiz-app/src/assets/translations/ko.json quiz-app/src/assets/translations/fr.json quiz-app/src/assets/translations/ms.json quiz-app/src/assets/translations/ja.json quiz-app/src/assets/translations/es.json quiz-app/src/assets/translations/it.json quiz-app/src/assets/translations/nl.json quiz-app/src/assets/translations/el.json 1-getting-started-lessons/2-github-basics/translations/README.fr.md 1-getting-started-lessons/2-github-basics/translations/README.nl.md 1-getting-started-lessons/2-github-basics/translations/README.fil.md 5-browser-extension/3-background-tasks-and-performance/translations/README.zh-tw.md
翻译框架是“初学者Web开发”课程的关键组成部分,通过本地化内容实现全球可访问性。通过结构化的翻译方法并将其与渲染系统无缝集成,该框架可确保不同语言用户获得一致的体验。
有兴趣协助翻译的贡献者可以遵循既定指南,添加或改进语言支持,从而将此教育资源的影响范围扩展到全球的学习者。