aside: deep

翻译说明

该中文文档翻译由 @ShenQingchuan 个人发起,随后作为 Vue 官方认可的中文翻译仓库,以团队的形式进行官方维护。最新的代码仓库链接是:https://github.com/vuejs-translations/docs-zh-cn

翻译须知

请移步至官方仓库的 wiki 页面查阅。

协作指南

请移步至官方仓库的 wiki 页面查阅。

编写文档是一种换位思考的练习。我们并不是在描述客观现实,那是源代码已经做到了的。我们的工作是帮助塑造用户与 Vue 生态系统之间的关系。

原版翻译说明,仅供备忘和归档 ## 基本原则 翻译工作追求的无外乎 “信、达、雅” 三个字,因此我们总结了以下原则: 1. 忠实原文,通俗易懂,保证正确是最基本的要求。此外,还应该尽可能将一些特定概念降维,使得入门级读者也能够流畅阅读。 2. 中文词汇优先,特殊概念次之:要尽可能地将文档中的英语单词译作读者好理解的词汇。 同时用词应尽可能地从前端开发领域已有的词汇中衍生。我们认为作为 Vue 文档的译者应承担这样一种职责:避免创建一套独立于标准 JavaScript 环境之外、Vue 专属的语境。 但也有例外的情况,某些英文单词我们倾向于选择不翻译、用原词。开发者常常与一部分英语单词打交道,许多英语单词甚至作为了开发框架或操作系统的专有名词,直接抛出这个单词也的确能够帮助用户更好的理解、锁定所讲的是什么概念。 3. 更符合中文的表述方式:我们必须正视英语和中文本身的差异与不同,由于表达方式和语法结构的区别,常常一个结构复杂的多重定语从句很难逐字逐词地直译成中文,翻译出的句子应符合母语者的叙述习惯,即尽可能避免英语式的倒装(哪怕讲述方式与作者原文有较大区别),表述尽可能口语化。最好的方式应该是将视线从单个句子中移出来,结合上下文先进行理解再用中文的习惯性表达将其重新复述出来。 ## 格式规范 ### 提交规范 可以参考 这个网站 了解提交信息的既定书写格式: text <type>(<scope>): <subject> ^-------------^ ^-------^ | | | +-> 主题。总结 commit 内容,用现在时书写。 | +-------> 目的: chore, docs, feat, fix, refactor, style, 或 test。<scope> 为可选项。 // 以下是 body 部分,这部分是可选的: hash: (对应到官方英文文档的某次更新 commit hash) time: (由 `new Date().toLocaleString()` 生成的时间戳) - 如果你贡献提交的目的并不是与官方英文文档同步内容相关,为 chore 或其他类型,body 部分可以省略。 - body 部分的信息只是为了在特定情况下方便溯源。 #### 释义 - feat: (新功能,面向用户) - fix: (bug 修复,面向用户) - docs: (编辑文档) - style: (格式,如全角半角;对生产环境没有影响) - refactor: (比如重命名变量) - test: (加入缺少的测试,对生产环境没有影响) - chore: (更新依赖等,对生产环境没有影响) ### 文档格式规范 #### 译注写法 1. 在原文需要加译者注的位置添加角标: html ... <sup>[[1]](#footnote-1)</sup> ... <sup>[[2]](#footnote-2)</sup> ... 2. 在文章最末尾加入译者注的内容,格式如下: html <small> __译者注__ <a id="footnote-1"></a>[1] ... <a id="footnote-2"></a>[2] ... <a id="footnote-3"></a>[3] ... </small> #### 标点符号 - 逗号、句号、分号、冒号、叹号、问号,统一使用全角字符:,。;:!? - 破折号使用:—— - 引号统一使用 “ ” 和 ‘ ’ - 括号统一使用全角括号 () - 非注释部分的代码除外,保留英文标点符号。 #### 内联代码或代码关键字 - 务必用反引号(即英文输入法下,按键盘上 Tab 键上方的那个键)将内容括起来。 - 包括代码注释中出现代码或代码关键字时,也要括起来。 #### 空格的使用 - 英文单词和英文单词之间要有一个空格 something in English - 中文和英文单词之间要有一个空格 中文当中有 something 是英文 - 英文单词和标点符号之间没有空格 这里是一句中文,something 又是英文 #### 链接、斜体、粗体与行内代码等 对于 Markdown 中上述的行内简单样式,为了保证 Vitepress 中良好的渲染效果,我们提倡在文档中使用如下的格式: markdown <!-- 链接 --> 这是一个 [链接](https://github.com/vitejs/vite) 指向 Vite 官方仓库 <!-- 加粗 --> 这是一个 **加粗** 的文字 <!-- 斜体 --> 这是一个 _斜体_ 的文字 <!-- Good --> 这是一个 _斜体_ 的文字 <!-- 不推荐,尽在下划线效果不可用时作为替代使用 --> <!-- 行内代码 --> 这是一个 `code` 行内代码 假如后面就是标点符号 `code`: 你可能已经注意到,默认情况下,在两端我们都加上了空格。 此处的某些规则可能暂时和旧有的 Vue.js 中文文档的风格 不太一致,如果你曾参与过 Vue 中文文档相关工作,可能与你的习惯有一定区别。 这是为了保证文档视图中不会出现字符靠太近而黏合的问题。 关于文档中的链接,针对以下两种 Markdown 书写: markdown <!-- 链接前后带空格 --> Vite 支持了一套 [通用插件 API](./api-plugin) 扩展了 Rollup 的插件接口 <!-- 链接前后不带空格 --> Vite 支持了一套[通用插件 API](./api-plugin)扩展了 Rollup 的插件接口 Vitepress 和 Vuepress 中对以上两种写法的渲染视觉效果为: 链接前后带空格 链接前后带空格 链接前后不带空格 链接前后不带空格 不带空格的形式 与 带空格相比,没有那么突出。 同样这类情况还包括 Markdown 中的斜体字: markdown 这是一个_斜体_尝试 <!-- Vitepress 和 Vuepress 中无效! --> 这是一个*斜体*尝试 <!-- 前后无空格 --> 这是一个 *斜体* 尝试 <!-- 前后有空格 --> 下面是效果,不带空格的情况看上去中文字体的笔画之间会接在一起,变得很拥挤,观感较差。 斜体尝试 #### 关于加粗和斜体格式的约定 根据 GitHub Flavored Markdown Spec,用成对的星号或下划线都可以用来代表加粗或斜体,但是使用下划线的时候存在更多的特殊条件限制,例如: > 5*6*78<p>5<em>6</em>78</p> https://github.github.com/gfm/#example-346 > > 5_6_78<p>5_6_78</p> https://github.github.com/gfm/#example-351 经过讨论,考虑到 GFM 的规范以及中文的特殊情况,决定: - 中文翻译统一使用星号来标注加粗和斜体,而不是使用下划线,同时尊重英文版自身的用法。 - 仍然不能正确渲染的地方,允许适当调整包含或不包含加粗或斜体部分两侧的标点符号。参见 这个例子。 - 仍然不能正确渲染的地方,手动使用 <strong><em> 标记。 ## 术语翻译参考 | 英文 | 建议翻译 | 备注 | | —- | —- | —- | | property | 属性 | 组件的属性(数据、计算属性等) | | attribute | 不翻译 | 特指 HTML 元素上的属性 | | getter | 一般不翻译 | 计算属性中作计算函数 | | setter | 一般不翻译 | 计算属性中作设置函数 | | prop | 不翻译 | | | ref | 不翻译 | | | feature/functionality | 功能 | | | directive | 指令 | | | mixin | 混入 | | | listen/listener | 监听/监听器 | | | observe/observer | 侦听/侦听器 | | | watch/watcher | 侦听/侦听器 | | | normalize (HTML code, …) | 规范化 | | | standardize | 标准化 | | | fire/trigger (事件) | 触发 | | | emit (某个值或事件) | 抛出 | | | queue (v.) | 把……加入队列 | | | workaround (n.) | 变通办法 | | | workaround (v.) | 绕过 | | | convention | 约定 | | | parse | 解析 | | | stringify | 字符串化 | | | side effect | 副作用 | | | declarative | 声明式 | | | imperative | 命令式 | | | handler | 处理函数 | | | you | 你 (而不用 “您”) | | | computed | 计算属性 | | | computed property | 计算属性 | | | guard | 守卫 | | | hook | 钩子 | | | selector | 选择器 | | | truthy | 真值 | 需加 MDN 的解释作为译注 | | falsy | 假值 | 需加 MDN 的解释作为译注 | | mutate/mutation | 变更 | | | immutable | 不可变 | | | mutable | 可变 | | - MDN - truthyhttps://developer.mozilla.org/en-US/docs/Glossary/Truthy - MDN - falsyhttps://developer.mozilla.org/en-US/docs/Glossary/Falsy ## 工作流 ### 更新内容同步策略 此中文文档由 印记中文 团队进行翻译,它们也是 Vite 官方中文文档背后的翻译维护团队。 QC-L 曾在 Vue 文档的讨论区提出过这套 中英文档同步工作流,这也是 Vite 官方中文文档正在使用的一套工作流。 - 保留英文文档的原始 commit 记录,以保证可以对后续的更新进行再翻译、合并 - 由于 Vue 文档以 Markdown 书写,每一行成一个自然段。因此在 Markdown 文档中原则上应该保证中英文行号一一对应,以保证后续更新时位置不发生错乱 - 由机器人每日定时从英文文档仓库同步新的提交,并生成 Pull Request 交由翻译团队 Review、翻译并最终合入中文文档 ### 锚点链接的统一化 :::tip 插件支持 我们提供了一个包含此项功能的 Vue 官方文档翻译助手插件,你可以在 VSCode 中安装,并遵照 README 的指引来使用。 ::: 在 Markdown 文档中 [title](link) 形式的链接非常常用,而 Vue 文档中大量使用了这一语法,用来作章节的跳转。 链接中有时还会带有锚点(以 # 作前缀)用来定位到页面的对应位置,例如 [props 大小写格式](/guide/components/props.html#prop-name-casing)。 但是在 VitePress 中,由于锚点是对应 Markdown 内容中的 “标题行” 的,因此若改动了英文内容的标题行,别处引用此处的锚点就是失效了: markdown <!-- 英文文档中该标题行为 --> ## Props name casing <!-- 中文文档将标题翻译为 --> ## Props 大小写格式 <!-- 此时这个链接在页面上无法正常跳转 --> [props 大小写格式](/guide/components/props.html#prop-name-casing) 若将链接中的锚点也改为中文内容的确可以暂时解决问题,但若后续该标题有改动,又需要修改所有引用了该锚点的地方,可维护性较差。 因此我们提供了一种特殊的锚点标记: markdown <!-- 标记的内容就是原来的锚点 --> ## Props 大小写格式 {#props-name-casing} 我们会为 VitePress 提供处理这个标记的逻辑,保证它不会在页面上显示出来。 但也有需要注意的例外情况:若按上面的方式为一篇文章的所有标题行都生成了标记,但文章中出现了两个相同的标记,比如 “类和 CSS 样式” 章节中的 “绑定对象” 小节,可以为其加上数字标记,保证其在文章中的唯一性。 此外,由于文章的总标题也被加上了锚点标记,导致在开发环境下,浏览器的标签页上会看到标记。但在构建发布时,我们运行了一个脚本,为文档的 frontmatter 中添加了不含标记的 title,因此读者将不会看到该标记。