菜单

翻译系统

相关源文件

本文档全面概述了JavaScript Questions仓库中使用的翻译系统。该系统支持以多种语言呈现JavaScript面试问题,使其面向全球受众。本页涵盖了目录结构、文件命名约定、Markdown格式标准以及翻译管理流程。

目的与范围

本仓库中的翻译系统旨在

  1. 组织多种语言的JavaScript面试问题
  2. 在所有翻译中保持一致的格式
  3. 提供易于导航的结构,方便用户查找其首选语言的问题
  4. 促进新翻译的贡献或现有翻译的改进

目录结构

该仓库遵循清晰的目录结构,按语言/区域代码组织翻译

每个语言目录都包含一个带有翻译内容的README文件。命名约定遵循ISO语言和国家代码,格式为{language code}-{country code}

来源:nl-NL/README.md1-44 id-ID/README.md1-43 zh-TW/README_zh-TW.md1-44 zh-CN/README-zh_CN.md1-45 ko-KR/README-ko_KR.md1-48

文件命名约定

翻译文件遵循不同的命名模式,如下表所示

模式示例用途
README.mdnl-NL/README.md大多数翻译的默认模式
README-{lang_code}.mdes-ES/README-ES.md带有语言代码后缀的替代模式
README_{lang_code}.mdfr-FR/README_fr-FR.md带有下划线分隔符的替代模式

这种命名约定上的多样性似乎是为了保持历史兼容性而保留的,而非遵循严格的标准。

来源:nl-NL/README.md16-43 id-ID/README.md16-42 zh-TW/README_zh-TW.md20-46 ko-KR/README-ko_KR.md21-46

翻译文件结构

每个翻译文件都遵循一致的结构,以在各种语言中保持统一性

该结构确保所有翻译

  1. 以相同的页眉信息开头
  2. 包含所有可用翻译的列表
  3. 以相同顺序呈现问题,并附带相同的代码示例
  4. 保留相同的多项选择格式
  5. 保持可折叠的答案部分以便自测

来源:nl-NL/README.md1-169 id-ID/README.md1-170 zh-TW/README_zh-TW.md1-169 zh-CN/README-zh_CN.md1-169 ko-KR/README-ko_KR.md1-169

翻译交叉引用系统

翻译系统的一个关键功能是能够在不同语言版本之间导航。每个翻译文件都包含一个可折叠部分,其中包含指向所有其他可用翻译的链接

交叉引用通过Markdown链接中的相对路径实现。例如

- <FileRef file-url="https://github.com/lydiahallie/javascript-questions/blob/a8b427b9/🇬🇧 English" undefined  file-path="🇬🇧 English">Hii</FileRef>
- <FileRef file-url="https://github.com/lydiahallie/javascript-questions/blob/a8b427b9/🇨🇳 简体中文" undefined  file-path="🇨🇳 简体中文">Hii</FileRef>
- <FileRef file-url="https://github.com/lydiahallie/javascript-questions/blob/a8b427b9/🇳🇱 Nederlands" undefined  file-path="🇳🇱 Nederlands">Hii</FileRef>

该系统允许用户轻松切换语言,而无需返回到中央索引。

来源:nl-NL/README.md16-43 id-ID/README.md16-42 zh-TW/README_zh-TW.md20-46 ko-KR/README-ko_KR.md21-46

可用语言

截至最新更新,该仓库支持以下语言

语言目录文件名标志
阿拉伯语ar-ARREADME_AR.md🇸🇦
阿拉伯语(埃及)ar-EGREADME_ar-EG.md🇪🇬
波斯尼亚语bs-BSREADME-bs_BS.md🇧🇦
德语de-DEREADME.md🇩🇪
英语英语README.md🇬🇧
西班牙语es-ESREADME-ES.md🇪🇸
法语fr-FRREADME_fr-FR.md🇫🇷
印度尼西亚语id-IDREADME.md🇮🇩
意大利语it-ITREADME.md🇮🇹
日语ja-JAREADME-ja_JA.md🇯🇵
韩语ko-KRREADME-ko_KR.md🇰🇷
波兰语pl-PLREADME.md🇵🇱
葡萄牙语(巴西)pt-BRREADME_pt_BR.md🇧🇷
罗马尼亚语ro-ROREADME.ro.md🇷🇴
俄语ru-RUREADME.md🇷🇺
阿尔巴尼亚语sq-KSREADME_sq_KS.md🇽🇰
泰语th-THREADME-th_TH.md🇹🇭
土耳其语tr-TRREADME-tr_TR.md🇹🇷
乌克兰语uk-UAREADME.md🇺🇦
越南语vi-VIREADME-vi.md🇻🇳
中文(简体)zh-CNREADME-zh_CN.md🇨🇳
中文(繁体)zh-TWREADME_zh-TW.md🇹🇼

此列表在每个翻译文件的顶部可折叠部分中也可用。

来源:nl-NL/README.md16-43 id-ID/README.md16-42 zh-TW/README_zh-TW.md20-46 ko-KR/README-ko_KR.md21-46

翻译内容映射

翻译系统确保所有语言的问题编号和内容映射一致。映射方式如下

这种结构确保

  1. 所有语言的问题编号一致
  2. 代码示例保留为JavaScript(不翻译)
  3. 多项选择选项保持相同的顺序
  4. 正确答案在所有翻译中都是相同的字母

这种一致的映射便于在不同语言之间进行交叉引用和比较。

来源:nl-NL/README.md46-168 id-ID/README.md46-168 zh-TW/README_zh-TW.md46-168 zh-CN/README-zh_CN.md46-168 ko-KR/README-ko_KR.md46-168

HTML和Markdown格式

翻译文件混合使用HTML和Markdown格式,以创建一致的外观和体验

  1. 页面标题<div align="center"> 用于居中标题和介绍
  2. 章节分隔符--- 用于章节之间的水平分割线
  3. 可折叠章节<details><summary> 标签用于可展开内容
  4. 代码块:三反引号 (```) 用于JavaScript语法高亮
  5. 多项选择选项:Markdown列表项(- A: ...)用于答案选项
  6. 图片:HTML <img> 标签用于带有受控尺寸的图表

可折叠答案部分示例

<details><summary><b>Answer</b></summary>
<p>

#### Answer: D

[Explanation in the respective language]

</p>
</details>

HTML和Markdown的这种组合确保文件在源代码形式下既可人工阅读,又能在GitHub上正确渲染。

来源:nl-NL/README.md65-76 id-ID/README.md65-76 zh-TW/README_zh-TW.md42-52 zh-CN/README-zh_CN.md30-39 ko-KR/README-ko_KR.md70-80

翻译更新流程

当原始英文版本中添加新问题或对现有内容进行更新时,会遵循一套系统化的流程来更新所有翻译

此工作流程确保

  1. 所有翻译与原始内容保持同步
  2. 格式和问题编号保持一致
  3. 翻译之间的交叉引用得到维护
  4. 翻译质量通过审查得到保证

译者贡献指南

该仓库欢迎译者的贡献。以下是主要指南

  1. 新翻译:创建带有相应语言代码的新目录
  2. 文件命名:遵循约定README.mdREADME_{lang_code}.md
  3. 结构:复制原始英文版本的结构
  4. 内容:翻译问题、选项和解释,同时保留代码示例
  5. 交叉引用:更新翻译列表以包含新语言
  6. 格式:保持原始的HTML/Markdown格式

在贡献新翻译时,建议

  1. 从最新版本的英文内容开始
  2. 提交前测试Markdown的渲染效果
  3. 更新文件中的所有交叉引用
  4. 将您的语言添加到所有其他语言文件的翻译列表中

来源:nl-NL/README.md5-12 id-ID/README.md5-10 zh-TW/README_zh-TW.md6-14 zh-CN/README-zh_CN.md5-8 ko-KR/README-ko_KR.md7-13

完整性和维护状态

并非所有翻译都得到同等程度的维护或完整。有些翻译可能缺少最新问题或原始英文版本的更新。仓库没有明确标明每个翻译的完整性状态,但用户通常可以通过以下方式判断:

  1. 比较不同翻译的问题数量
  2. 检查介绍中提及的最新更新日期
  3. 查看特定翻译文件的提交历史

翻译系统未来的改进可能包括

  1. 指示翻译完整性的标准化方式
  2. 自动验证问题编号的一致性
  3. 协助翻译更新的工具

结论

本仓库中的翻译系统为管理多种语言的JavaScript面试问题提供了一个强大的框架。通过一致的目录结构、文件格式和内容映射,它确保来自不同语言背景的用户能够访问相同的高质量内容。该系统还促进了社区的贡献,从而使可用翻译得到持续改进和扩展。