Skip to content
This repository has been archived by the owner on Aug 8, 2022. It is now read-only.

Basic reactivity proofread #404

Merged
merged 3 commits into from
Mar 7, 2021
Merged

Conversation

ShroXd
Copy link
Contributor

@ShroXd ShroXd commented Feb 4, 2021

关于修改的一些说明

一、新增内容

文档第 22 - 52 行属于新增内容,且已在 #386 中做了添加并进行了 review,为了避免徒增 review 工作,所以直接将该 PR 中的内容复制了过来。

二、文档第二个 warning 相关内容

  1. 文档第 145 行关于 markRaw 与 shallowXXX API 的说明,因为涉及到响应式系统的原理,但这里又不能明确的花大量篇幅阐述原理,许多句子直译过来会和原意产生较大的偏差,所以这里很多句子都采用了意译。
  2. 原文中 opt-out 这个词指的应该是响应式系统在处理嵌套对象时,在初次仅处理根级别,待访问到嵌套内容时,会动态的根据设定的逻辑来决定是否将嵌套属性也处理为响应式的。但这个概念似乎很难很好的翻译成中文,所以目前采用了直译“选择退出”。
  3. “They are considered advanced because the raw opt-out is only at the root level”(中文文档152行) 这句中 “raw opt-out” 这个词指的应当是被 markRaw 处理的对象,它的选择退出逻辑。而不是“原始对象”的选择退出逻辑。但这一句本身写的较为含糊,所以我觉得这句的译法及校对结果还有待讨论。

三、单词翻译的变更

  1. identity hazards
    英文原文:This can lead to identity hazards
    中文原文:这可能会导致本源危害
    修改:这可能会导致同一性风险
    理由:这里指的是一个对象和其被 Proxy 代理后的对象并不是同一个对象,这种差异会导致代码中引用的混淆这个概念。所以将原译文的“本源”替换为“同一性”会更为恰当且易于理解。

  2. escape hatch
    英文原文:This is an escape hatch...
    中文原文:这是一个转义口
    修改:这是一个“逃生舱”
    理由:在 v2 版本的文档中,也出现过这个概念,当时也是翻译成了“逃生舱”。我认为虽然这种翻译有些直白,但较于“转译口”,能更好的体现 toRaw 这个 API 的用处,所以做了修改。
    参考:v2 版本文档

相关任务认领 issue

#403

@veaba
Copy link
Member

veaba commented Feb 4, 2021

hi,其实可以不要添加正在 review 的内容进来,这会引发冲突。

另外,proxy 全改为 Proxy 的用意是什么?因为这与此前的讨论有冲突。

@ShroXd
Copy link
Contributor Author

ShroXd commented Feb 4, 2021

hi,其实可以不要添加正在 review 的内容进来,这会引发冲突。

另外,proxy 全改为 Proxy 的用意是什么?因为这与此前的讨论有冲突。

Hi,正在 review 的部分我稍后删除掉,抱歉。

proxy 的修改参考了 术语翻译协定 中 “特指 API 名词” 这个部分的描述。原文引述如下:

proxy 一词在特指 ES 中的 Proxy API 时保留英文且保留大小写:Proxy。

因为我考虑文中提到的这些代理实际上都是由 Vue 包装返回的 proxy,所以依照这一条将它们修改成了 Proxy。另外,文中有一些原文写为 proxied 的单词,按照上下文理解,这应当指的是 “代理后” 这一概念,所以将这些翻译为了中文。

@veaba
Copy link
Member

veaba commented Feb 4, 2021

#230 有关处理 proxy 的 PR
#217 其中有一个达成的共识:#217 (comment) wiki 原意想表达是当特指 ES6Proxy,而不是被 Vue 处理过的 proxy。(wiki 也可能存在描述不恰当,或者上面混淆了 ES6 和 Vue 中的 proxy 的概念了)

我们力求选择最恰当的表达方式,这可能需要进一步讨论来确认。

CC @Justineo @Jinjiang

@ShroXd
Copy link
Contributor Author

ShroXd commented Feb 4, 2021

#230 有关处理 proxy 的 PR
#217 其中有一个达成的共识:https://github.com/vuejs/docs-next-zh-cn/issues/217#issuecomment-716104289,wiki 原意想表达是当特指 ES6Proxy,而不是被 Vue 处理过的 proxy。(wiki 也可能存在描述不恰当,或者上面混淆了 ES6 和 Vue 中的 proxy 的概念了)

我们力求选择最恰当的表达方式,这可能需要进一步讨论来确认。

CC @Justineo @Jinjiang

如果按照这个描述的话,那么我目前的修改确实是有问题的,需要改正。
不过有一个新的问题。即 reactive proxy 与 readonly proxy 应当如何翻译?主要的歧义点在于:这两个概念中的 proxy 是 vue 返回的,但根据上下文理解,它们明显是一个整体性的概念,即翻译为 响应式代理 / 只读代理 可能会更恰当。

@ShroXd ShroXd force-pushed the basic-reactivity-proofread branch from 2711249 to 140cc8b Compare March 1, 2021 03:08
Copy link
Member

@Jinjiang Jinjiang left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

给了一些具体的建议。解释如下:

之前的结论是这样的,只有大写作为 ES6 Proxy 对象是才保留英文“Proxy”,其它情况都是“代理”

个人建议:

  1. 只要不是 ES Proxy (大写) 的情况一律译为“代理”,意在尽量尊重原文,不过都解读和演绎
  2. 因为英文里 proxy 和 ES 的 Proxy 混用不会产生歧义,所以译为代理之后,如果感觉理解会产生偏差,可以再加“(也就是 ES Proxy 对象)”之类的译注,应该是可以的。 可以译为“代理对象”,尤其是作为名词的时候。

我目前看到的文中的 proxy 基本都是自然语言描述,所以建议译为“代理”。

谢谢

src/api/basic-reactivity.md Outdated Show resolved Hide resolved
src/api/basic-reactivity.md Outdated Show resolved Hide resolved
src/api/basic-reactivity.md Outdated Show resolved Hide resolved
src/api/basic-reactivity.md Outdated Show resolved Hide resolved
src/api/basic-reactivity.md Outdated Show resolved Hide resolved
src/api/basic-reactivity.md Outdated Show resolved Hide resolved
@Jinjiang Jinjiang merged commit 94cc9b1 into vuejs:master Mar 7, 2021
@ShroXd ShroXd deleted the basic-reactivity-proofread branch March 7, 2021 03:15
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants