菜单

翻译框架

相关源文件

翻译框架是一个全面的系统,能够实现《Web开发入门》课程的国际化。该框架允许贡献者将课程内容、作业和测验翻译成多种语言,使教育材料能够触达全球受众。本文档概述了存储库内翻译的管理结构、实施和指南。

翻译组件概览

翻译框架由几个协同工作的关键组件组成,以提供多语言体验

  1. 翻译的课程内容 - 用于课程、作业和 README 的 Markdown 文件
  2. 测验翻译 - 包含翻译后的测验问题和答案的 JSON 文件
  3. 翻译注册表 - 用于注册和访问翻译的中央系统
  4. 渲染系统 - 用于根据用户偏好显示相应翻译的组件

翻译组件图

来源: 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.jsones.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

测验应用翻译集成

测验应用程序使用中央翻译注册表来管理对翻译内容的访问

  1. 翻译文件([language_code].json)会在翻译索引文件中导入
  2. 测验应用根据 URL 的 loc 参数加载翻译(例如,法语为 ?loc=fr
  3. 翻译的课程内容中的测验链接直接指向本地化的测验 URL

技术实现结构

来源: quiz-app/src/assets/translations/hi.json quiz-app/src/assets/translations/ko.json TRANSLATIONS.md

翻译工作流程和指南

翻译框架依赖于协作式工作流程来有效管理翻译

翻译流程

  1. Fork 并克隆 Web-Dev-For-Beginners 存储库
  2. 识别需要翻译的内容(课程、作业、测验)
  3. 创建翻译文件,遵循命名约定
  4. 翻译内容,保持原始结构和格式
  5. 更新链接以指向本地化资源(例如,带有正确 locale 参数的测验)
  6. 提交包含翻译内容的拉取请求

翻译指南

  • 不要翻译代码示例 - 只翻译文档、作业和测验
  • 保持 HTML/markdown 格式 - 保留原始内容的所有格式元素
  • 保持相同的文件结构 - 遵循文件既定的命名约定
  • 保留测验布尔值 - 不要翻译测验 JSON 文件中的 truefalse
  • 更新本地化测验链接 - 在翻译的 README 文件中,将测验 URL 从 /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

添加新语言

要向翻译框架添加新语言,请遵循以下步骤

  1. 创建测验翻译:

    • 将新的 JSON 文件([language_code].json)添加到 quiz-app/src/assets/translations/
    • 翻译英语版本的所有测验内容
    • 确保 JSON 结构保持一致
  2. 注册新语言:

    • 更新翻译注册表文件以包含新语言
  3. 创建课程翻译:

    • 将翻译文件添加到每个课程的 translations 文件夹中
    • 遵循命名约定(README.[language_code].mdassignment.[language_code].md
  4. 更新测验链接:

    • 确保翻译的 README 中的所有测验链接都包含正确的 locale 参数

语言添加工作流程

来源: TRANSLATIONS.md quiz-app/src/assets/translations/hi.json quiz-app/src/assets/translations/ko.json

技术实现细节

测验翻译集成

测验应用程序根据用户偏好动态加载翻译

  1. 翻译索引文件(quiz-app/src/assets/translations/index.js)作为所有可用翻译的注册表
  2. ?loc= URL 参数决定加载哪个翻译
  3. 如果未指定 locale 或指定的 locale 不可用,系统将默认使用英语

当用户加载测验时,应用程序会

  1. 从 URL 中提取 locale 参数
  2. 加载相应的翻译文件
  3. 以所选语言渲染测验内容

课程内容渲染

翻译的课程内容由 Docsify 文档系统渲染

  1. Docsify 根据 URL 和 locale 参数检测请求的文件
  2. 如果存在翻译版本(例如 README.fr.md),它将加载并显示该内容
  3. 如果请求的 locale 没有可用的翻译,它将回退到默认的英语版本

这种方法允许在翻译和未翻译的内容之间无缝导航,提供一致的用户体验,无论可用语言如何。

来源: TRANSLATIONS.md quiz-app/src/assets/translations/hi.json 1-getting-started-lessons/2-github-basics/translations/README.fr.md

当前翻译状态

《Web开发入门》课程目前有多种语言的翻译,完成程度各不相同

语言代码已翻译的课程已翻译的测验备注
英语en100%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开发”课程的关键组成部分,通过本地化内容实现全球可访问性。通过结构化的翻译方法并将其与渲染系统无缝集成,该框架可确保不同语言用户获得一致的体验。

有兴趣协助翻译的贡献者可以遵循既定指南,添加或改进语言支持,从而将此教育资源的影响范围扩展到全球的学习者。