菜单

多语言支持

相关源文件

本文档概述了 ML-For-Beginners 仓库中的多语言支持系统。它描述了翻译的组织、管理和集成方式,以使课程内容能够惠及全球受众。

多语言架构概述

ML-For-Beginners 仓库实现了一个全面的翻译系统,使内容能够以多种语言提供。该系统同时支持主要的课程内容(课程、作业)和交互式测验应用程序。

来源

翻译文件结构

仓库中的翻译遵循特定的文件结构和命名约定

  1. 主要的 README 翻译 存储在仓库根目录下的 translations/ 目录中
  2. 课程翻译 存储在每个课程文件夹内的 translations/ 子目录中
  3. 测验翻译 以 JSON 文件的形式存储在 quiz-app/src/assets/translations/ 目录中

命名约定

所有翻译文件都遵循一致的命名模式

  • README._[语言]_.md - 用于内容翻译
  • assignment._[语言]_.md - 用于作业翻译
  • [语言].json - 用于测验翻译

语言代码遵循 ISO 639-1 标准(两个字母的代码),并在需要时带有可选的地区限定符(例如,简体中文使用 zh-cn)。

来源

测验翻译系统

测验应用程序通过 JSON 文件实现自己的翻译机制。每种语言都有一个对应的 JSON 文件,其中包含该语言的所有测验问题、选项和 UI 文本。

技术实现

测验翻译系统包括

  1. JSON 翻译文件 - 位于 quiz-app/src/assets/translations/
  2. 翻译索引 - 位于 quiz-app/src/assets/translations/index.js
  3. UI 集成 - 实现于 quiz-app/src/App.vue

在测验应用程序中,当用户访问带有 ?loc=fr 等 URL 参数的测验时,应用程序将加载相应的语言文件(fr.json),并以该语言显示测验问题。

带有语言参数的测验 URL 示例

https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/1?loc=zh-cn

来源

翻译工作流程

翻译流程遵循特定的工作流程,以确保质量和一致性

  1. 原始内容创建 - 内容首先以英语创建
  2. 翻译请求 - 贡献者对翻译成特定语言表示兴趣
  3. 翻译工作 - 人工译者(非机器翻译)创建特定语言的文件
  4. 审查 - 社区审稿人检查翻译的准确性
  5. 集成 - 将翻译的文件添加到仓库

翻译者指南

仓库在 TRANSLATIONS.md 中提供了翻译者的具体指南

  1. 翻译内容,不翻译代码 - 只翻译 README 文件、作业和测验,不翻译代码示例
  2. 使用正确的命名约定 - 遵循已建立的模式(例如,西班牙语使用 README.es.md
  3. 避免机器翻译 - 所有翻译都应由人工译者完成,以保证质量
  4. 测验翻译流程 - 添加翻译 JSON 文件,更新语言下拉菜单,并修改翻译索引
  5. 更新测验链接 - 确保翻译的 README 文件中的所有测验链接都包含语言参数

来源

支持的语言

ML-For-Beginners 课程目前支持多种语言,处于不同的完成阶段

语言代码主 README课程测验
英语(原文)en
中文zh-cn
日语ja
西班牙语es
葡萄牙语pt部分
意大利语it部分
土耳其语tr部分
韩语ko部分
葡萄牙语(巴西)pt-br部分
印地语hi部分部分
Tamilta部分部分
马来语ms部分部分

来源

与主课程集成

通过一系列链接将翻译集成到主课程中

  1. 特定语言的 README 文件 - 每种翻译都包含该语言的所有课程链接
  2. 带语言参数的测验链接 - 所有测验链接都包含适当的语言参数
  3. 社区讨论 - 仓库设有讨论区,学习者可以在其中使用多种语言进行交流

这种集成确保学生可以以他们偏好的语言浏览整个课程,从主 README 到课程、作业和测验。

来源

贡献翻译

该仓库积极鼓励翻译贡献,以扩大课程的影响力。 TRANSLATIONS.md 文件为贡献者提供了详细的指南,社区通过 GitHub issue 协调翻译工作。

贡献翻译的步骤

  1. 阅读 TRANSLATIONS.md 中的翻译指南
  2. 查看现有 issue 以避免重复工作
  3. 遵循正确的文件命名约定
  4. 确保翻译由人工完成,而不是机器
  5. 提交包含翻译文件的拉取请求

来源

技术实现细节

在底层,多语言支持系统利用了多种技术机制

  1. 基于文件的翻译方法 - 每种语言都有单独的 markdown 文件
  2. 基于 JSON 的测验翻译 - 测验内容存储在特定语言的 JSON 文件中
  3. 用于语言选择的 URL 参数 - 使用 ?loc= 参数来指定语言
  4. 测验应用程序中的语言下拉菜单 - App.vue 文件包含语言选择 UI
  5. index.js 中的翻译注册表 - 此文件用于注册可用翻译

该系统设计为可扩展的,允许添加新语言,而无需修改课程或测验应用程序的核心功能。

来源