PumpkinXD
本帖最后由 Lne 于 2019-11-14 22:17 编辑

个人感觉"predicate"还是翻译成"断言"更好一些,因为"谓词"总是让人联想到(人类的)语言语法(比如SVO)而不是数据包
不知道各位意见如何
(更新:刚刚想到的另一个译法:"判据")

知乎上搜到的讨论



森林蝙蝠
这本来就是语言语法啊,你说mcfunction不是语言?要不CB圈内部打一架统一下口径?
全国科学技术名词审定委员会已经钦定了:
http://www.termonline.cn/list.htm?k=predicate

ff98sha
似乎crowdin中的predicate和数据包中的不一样。可以有不同说法。

liach
这东西明明就是战利品表条件,Mojang 只是搞个挂羊头卖狗肉起个好听的名字而已。

https://minecraft.gamepedia.com/Loot_table#Conditions 原版 1.15 新战利品表条件里面就有 reference 调用/指向条件(调用/指向一个从 predicates 里面加载的战利品表)

战利品表条件是干什么的?是收集一些环境信息(比如实体、方块等属性)然后断定战利品表里面的一个战利品池是否应该被调用的。

而现在用在指令选择器和 /execute if predicate 里面,照样是判定,但是判定的结果变成影响选择器是否选择一个实体/是否继续 execute了。

总之这就是一种判定类的东西,“判断”“断定”肯定比“谓词”正确。

@森林蝙蝠 希望你下次决定前先看看源代码。

不过具体最终结果我也不知道,毕竟我不知道翻译的目的是和 fabric yarn 一样要正确合理的名称还是靠近官方(Mojang)名称的名称(看 Mojang 的尿性就知道官方名称实际上很不靠谱,比如所谓的 resource location 官方还起了 namespaced string 和 resource identifier 两个名字 https://minecraft.gamepedia.com/Namespaced_ID

SPGoding
又蜂一个。这当然不是谓词。


非说它是谓词,请问它的输入是什么?你说某个条件里面的 test 函数是个谓词我还能接受,你非说数据包里的 predicate 是谓词我可完全不同意。


同意楼主,「断言」不论是在含义上还是含义上都比「谓词」合适。不过我其实认为「皮迪凯特」是一个更佳的译名。

森林蝙蝠
本帖最后由 森林蝙蝠 于 2019-11-14 16:52 编辑
liach 发表于 2019-11-14 16:24
这东西明明就是战利品表条件,Mojang 只是搞个挂羊头卖狗肉起个好听的名字而已。

https://minecraft.gamep ...

老实说,编程语言里的predicate也是一种判定啊,比如stream.filter(predicate),如果你认同mcfunction里的东西叫断言,是不是也要给Java里的东西翻个案?
yarn的东西不叫“正确”,只能叫“尽力而为的还原”,mojang的才叫“正确”,mojang说这东西叫predicate,那自然要从predicate的角度,采取标准认为这是“谓词”,而不是靠一个非官方的命名,反过来批判官方的命名,然后从自己的认知去否定官方。
说句难听的,mojang就是管这玩意叫trionyx sinensis egg,作为译者也只能老老实实地叫“王八蛋”,如果实在是不满意,可以跟mojang提意见嘛,毕竟事在人为。


卡狗
翻啥啥不行,音译第一名,普利迪凯特啊P属性啊哪个不好(大误)

不要忘记记分板惨案


PumpkinXD
我吃盐椒蒜 发表于 2019-11-14 18:34
翻啥啥不行,音译第一名,普利迪凯特啊P属性啊哪个不好(大误)

不要忘记记分板惨案

音译不好吧。。。。
感觉这样比翻译成"谓词"更能恶心后来人

森林蝙蝠
Lne 发表于 2019-11-14 18:37
音译不好吧。。。。
感觉这样比翻译成"谓词"更能恶心后来人

你搞错了一件事,谓词不是像尸壳,恼鬼(猥傀)那样容易看到的内容,只有搞数据包的人才会去看,本来就是有门槛的东西。

土球球
本帖最后由 土球球 于 2019-11-14 20:04 编辑
森林蝙蝠 发表于 2019-11-14 16:48
老实说,编程语言里的predicate也是一种判定啊,比如stream.filter(predicate),如果你认同mcfunction里的 ...

正如层主在《如何做出一个还能看得过去的翻译》所言:

在直译始终感觉不到优美或者直接词不达意的时候,不妨根据作者要表达的含义或者这个物品本身的作用来意译。

从代码角度说,Predicate 的「输入」的确有所体现,但从游戏的语义上说,Predicate 判定的「命令执行者」本身是一个隐式引入的作为上下文的对象,既然是作为上下文的对象,那么 Predicate 就失去了「输入」,从而退化到 Assertion,亦即「断言」。

在简体中文翻译中,因词不达意而使用相近含义的词作为翻译的例子也时有出现。「Cauldron」和「炼药」本身没有直接关联,「Aqua Affinity」本身也并不存在「速掘」的意思,而「Silk Touch」更是没有直接体现「精准」这一概念。因此在 Predicate 词不达意的情况下,选用概念相近但更贴合原意的「断言」更为合适。

此外,正如层主的签名所提到的那样:

如果翻译不能夹杂私货,那和复读机有什么区别?

想必层主也认同「翻译是再创作的过程」这一论断。既然是再创作,那翻译时自然会出现夹杂私货的行为。退一万步讲,如果 Mojang 真的添加了「Trionyx Sinensis Egg」这样的词,实际翻译时也要根据语境得出结论。如果这样的词出现在相对口语化的场合,那么翻译成「王八蛋」也无伤大雅,如果出现在相当于专有名词的地方,那么就要考虑「乌龟蛋」这样相对正式的名称了。

层主在《如何做出一个还能看得过去的翻译》中还提到过:

在翻译完一段之后,建议自己读一下,把自己带入到一个第一次接触的新人身上,看看自己作为“新人”能不能读懂自己的文章。

「谓词」本身由语言学术语假借而来,而「断言」则是日常生活中的常用词汇,到底何者对于新人更友好呢?

卡狗
Lne 发表于 2019-11-14 18:37
音译不好吧。。。。
感觉这样比翻译成"谓词"更能恶心后来人

关于音译,只是开个玩笑,图个乐就行

我们想指出的是,记分板有很长一段时间将Objective翻译为目标,虽然Objective的意思就是目标,而且从某种意义上来说没有错。然而要理解这个翻译需要非常曲折的思维过程,直观上与其所起的作用很难相合,现在翻译成记分项是非常大的进步。

ruhuasiyu
本帖最后由 ruhuasiyu 于 2019-11-15 12:49 编辑

我来统计下本帖目前各译名支持者:

断言:liach、SPGoding、土球球、Lne
谓词:森林蝙蝠、chyx

人心向背已明,蝙蝠你不如倒戈卸甲、以礼来降,岂不美哉?

判据地狱:Lne



森林蝙蝠
本帖最后由 森林蝙蝠 于 2019-11-14 22:25 编辑
土球球 发表于 2019-11-14 19:55
正如层主在《如何做出一个还能看得过去的翻译》所言:
在简体中文翻译中,因词不达意而使用相近含义的词作为翻译的例子也时有出现。「Cauldron」和「炼药」本身没有直接关联,「Aqua Affinity」本身也并不存在「速掘」的意思,而「Silk Touch」更是没有直接体现「精准」这一概念。因此在 Predicate 词不达意的情况下,选用概念相近但更贴合原意的「断言」更为合适。

1.作为一个有标准的词,“谓词”本意就是传入任意类型返回布尔值用的筛选词,不存在“词不达意”的问题;
2.需要界定一个事情,mcfunction(或者说是数据包)究竟算不算是代码?这个问题欢迎和原版mod制作者讨论,如果都认同mcfunction属于编程,那么MC当然有义务沿用编程语言的标准;当然,只修改json的话,怎么看也算不上是编程,这我无法否认。

想必层主也认同「翻译是再创作的过程」这一论断。既然是再创作,那翻译时自然会出现夹杂私货的行为。退一万步讲,如果 Mojang 真的添加了「Trionyx Sinensis Egg」这样的词,实际翻译时也要根据语境得出结论。如果这样的词出现在相对口语化的场合,那么翻译成「王八蛋」也无伤大雅,如果出现在相当于专有名词的地方,那么就要考虑「乌龟蛋」这样相对正式的名称了。

我的确认同「翻译是再创作的过程」,但是Predicate出现的一般都是技术性文章——如果连技术性文章基础的规范都不能遵守,一味“再创作”,最后一样是贻笑大方的,比如Generic Type,我是否应该照顾口语化的观点,不叫“泛型”,改叫别的?至于正式与否,谓词当然比断言正式,毕竟assertion也有标准,真正的“断言”,而不属于predicate。

「谓词」本身由语言学术语假借而来,而「断言」则是日常生活中的常用词汇,到底何者对于新人更友好呢?

你确定涉及到Predicate的文章是给新人看的?我当时写那篇文章的时候,考虑的是最通俗新人更可能接触到的的文章,而不是需要一定门槛的技术性文档,同上,我是否应该照顾新人的想法,把Lambda表达式叫做“含参表达式”,或者“传参过程” ,甚至是“匿名方法”这样的名字?

我知道层主想表达什么,试图通过我自己的发言和文章来反驳我自己,证明我“言行不一”,但是我曾经在译名群里力主将pillager翻译成“强盗”,够灵活,够符合语境了吧?根本没人赞同我,尽管pillager的行为和强盗没有两样;现在我走标准路线,将predicate直接按照谓词称,怎么又有人要我灵活了呢?究竟是谁言行不一?究竟是谁在“灵活变通”?
看着别人的屁股之前,先把自己的屎擦干净。

chyx
土球球 发表于 2019-11-14 19:55
正如层主在《如何做出一个还能看得过去的翻译》所言:

我并不十分支持这种行为。
比如海神眷顾附魔这个翻译,当时看来并无不妥,而现在引入了幸运值之后就体现不出来和幸运值之间的联系了。

还有浮冰,当时一度打算称为蓝冰。幸好没有。因为最近加入了蓝冰。

因此,我还是支持和原文尽量靠近的。只要mojang不改,我就支持谓词




土球球
森林蝙蝠 发表于 2019-11-14 22:22
1.作为一个有标准的词,“谓词”本意就是传入任意类型返回布尔值用的筛选词,不存在“词不达意”的问题; ...

1. 没错,谓词本意的确是传入任意类型返回布尔值用的筛选词,但唯独不包括没有任何东西传入返回布尔值这一概念。前者对应一阶逻辑,后者对应零阶逻辑,我相信层主很清楚谓词是一阶逻辑引入的概念。

2. 我看不出 mcfunction 是不是编程语言和这个译名到底应该取什么之间的关系。mcfunction 本身也不是直接和 Java 代码交互的。

3. 技术文章的确需要更专业的术语,也应该尽可能按照现有的标准制定译名。但是,在原文直译无法直观地反映的问题的时候,自然需要对于某些概念敲定更合适的术语。

4. 归谬法是一种常见的论证问题的方法,为了推翻对方的论点,自然要先从引用对方的论据开始。我没有别的意思,和为贵。

森林蝙蝠
土球球 发表于 2019-11-14 23:02
1. 没错,谓词本意的确是传入任意类型返回布尔值用的筛选词,但唯独不包括没有任何东西传入返回布尔值这 ...

1.你说的没错,但另一方面你也说了,代码层面,谓词的概念还是体现出来了,而且我觉得mojang在定这个名的时候,也认为这个更像是谓词,而不是断言,而且你有没有注意到,原版wiki的predicate章节里有大量的test?身为Java资深玩家,我相信你也知道,那就是Java Predicate类的方法。
2.predicate应被翻译成谓词是计算机科学技术范围内的标准,换言之,其他语言沿用的东西,同为计科领域的mcfunction也应该沿用,总不见得就你游高贵冷艳吧?
3.什么叫“直观的反映问题”?门槛不过,任何术语都不能直观的反映问题,你能指望一个看这种文章两行都下不去的新人,去品味断言和谓词之间的区别吗?他只会在意他看不懂这些乱七八糟的。
4.我相信你没别的意思,但别的人可能有别的意思,我也有我的难处,难道面对别有用心之人,我还要把“言行一致不一致”的道理再讲一遍吗?

liach
森林蝙蝠 发表于 2019-11-14 16:48
老实说,编程语言里的predicate也是一种判定啊,比如stream.filter(predicate),如果你认同mcfunction里的 ...

信mojang你就傻了,这种把客户端资源包代码放server包里的搞基公司你都信,呵呵

liach
森林蝙蝠 发表于 2019-11-14 23:18
1.你说的没错,但另一方面你也说了,代码层面,谓词的概念还是体现出来了,而且我觉得mojang在定这个名的 ...

实际上按你这种看法,java里面的方法最贴近谓词(好像efficient java推荐用动词短语命名java方法),因为method执行代码(做事)。所以predicate叫谓词实际上以偏概全了,runnable callable function supplier都可以叫谓词

森林蝙蝠
liach 发表于 2019-11-14 23:43
信mojang你就傻了,这种把客户端资源包代码放server包里的搞基公司你都信,呵呵 ...

不是我信不信的问题,是mojang才是爹的问题,如果哪天fabric组入主mojang,他们就是爹,就这么简单。

chyx
希望各位讨论时不要上升到其他讨论者个人,也请各位尽量使自己的语言优雅一些

liach
森林蝙蝠 发表于 2019-11-15 00:01
不是我信不信的问题,是mojang才是爹的问题,如果哪天fabric组入主mojang,他们就是爹,就这么简单。 ...

哎,你这种认爹心态……总之我作为fabric yarn的贡献者,认同含义正确的名称而不是和官方名称相近的名称。

例如画一个长方形,mojang叫blit,fabric会叫drawTextureRect,因为blit是2D游戏的称呼,不适合。mojang真当爹的话,尽量减少它的负面影响好了。例如现在fabric都准备给mojang没混淆的东西加中间名,省得到时候mojang突然反混淆东西后mod抽风。Mojang这样瞎命名已经快把他们自己搞死了,比如ItemStack和ItemInstance,我们还是先跳出这个大坑吧。

最后,我们搞个投票帖,看看结果如何?据我所知,翻译版块可以发投票帖,到那里按正反方发言,思路可以理得更清晰。

森林蝙蝠
liach 发表于 2019-11-15 13:41
哎,你这种认爹心态……总之我作为fabric yarn的贡献者,认同含义正确的名称而不是和官方名称相近的名称 ...

很遗憾,不是我喜欢认爹,而是mojang就是爹,就好像你对windows怎么不满意,也干不倒微软。
而且投票从来不是选择翻译的要素,就算你在这里投票把我投倒了,你怎么去面对wiki的管理员呢?
honeycomb为什么叫蜜脾?因为国家标准规定如此,除此之外它什么都不是,如果这个predicate反而不会被用标准说事的话,那我就很怀疑是不是有人存心搞我了。

土球球
森林蝙蝠 发表于 2019-11-15 14:19
很遗憾,不是我喜欢认爹,而是mojang就是爹,就好像你对windows怎么不满意,也干不倒微软。
而且投票从来 ...

honeycomb为什么叫蜜脾?因为国家标准规定如此,除此之外它什么都不是

因为在汉语中实在找不到能够作为 Honeycomb 的中文翻译的食物名,之前的「蜂巢」这一翻译几乎无法让人想到这是食物。个人推测这很大程度上和中国人不常吃 Honeycomb 有关,因此在无法和中文关联的情况下,我们只能去寻求专业术语。

森林蝙蝠
本帖最后由 森林蝙蝠 于 2019-11-16 14:31 编辑
土球球 发表于 2019-11-16 14:05
因为在汉语中实在找不到能够作为 Honeycomb 的中文翻译的食物名,之前的「蜂巢」这一翻译几乎无法让人想 ...

蜂巢的主要成分是蜂蜡,蜂蜡可是一种能吃的东西,我都知道的事,你们怎么不知道呢?我确实有提过叫蜂蜡的:https://www.mcbbs.net/thread-910080-1-1.html

以上嘲讽结束,不过wiki确实开了个“坏头”,如果国家肯定的标准尚且不能成为翻译的准绳,那么谁是翻译的标准?wiki管理员?还是你和我?如果以“口语化”或者“容易理解”为准,那么我就要维护一下自己的主张,毕竟掠夺者比起强盗这个译名真是够烂的——如果“断言”的支持者说自己更符合游戏情况和玩家理解,那么我的“强盗”为什么没人响应呢?有话语权是真的牛啤。

chyx
土球球 发表于 2019-11-16 14:05
因为在汉语中实在找不到能够作为 Honeycomb 的中文翻译的食物名,之前的「蜂巢」这一翻译几乎无法让人想 ...

mc里的Honeycomb 好像不能吃吧。。。