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

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 基本都是自然语言描述,所以建议译为“代理”。

谢谢

@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

3 participants