Minecraft(我的世界)中文论坛

 找回密码
 注册(register)

!header_login!

只需一步,立刻登录

!header_login!

只需一步,立刻登录

查看: 866|回复: 13

[命令方块] [CBL|玄素]关于json里translate的一点乱弹

[复制链接]
发表于 2016-11-14 01:50:24 | 显示全部楼层 |阅读模式

您尚未登录,立即登录享受更好的浏览体验!

您需要 登录 才可以下载或查看,没有帐号?注册(register)

x
本帖最后由 玄素 于 2016-11-14 17:57 编辑

今天也是无意间又(噫为什么是又)被提到tellraw里的translate功能。

然后众所周知的,这东西用的可以说很少了,平常可能会想到用这东西来做的,也就是多语言地图里的翻译项目了——应该来说,这个功能的初衷就是能方便地图的多语言化(虽说实际实现来看到底是方便了还是麻烦还是很难说啊[笑])。

相对来说也的确缺少一个比较完善的介绍这项功能的帖子,所以今天想到了就决定还是别懒癌了,赶快写出来好了(跑

wiki里也有关于translate这个项目的描述。

  • translate: The translation identifier of text to be displayed using the player's selected language. This identifier is the same as the identifiers found in lang files from assets or resource packs. The translated text will only be displayed if the text string is not used.
  • with: A list of chat component arguments and/or string arguments to be used by translate.
       The arguments are text corresponding to the arguments used by the translation string in the current language, in order (for example, the first list element corresponds to "%1$s" in a translation string).
  • translate:使用玩家选择的语言来显示的翻译识别器。此识别器和 assets 档案夹或资源包里的 lang files 可以找到的识别器是一样的。翻译过的文字只会在 text 字串 未 被使用时显示。
  • with:translate所使用的聊天组件参数列表和/或字串参数。
       该参数对应于在当前的语言中翻译字符串使用的参数文本,并依序排列(例如,列表中的第一个元素将被匹配翻译字串中的"%1$s")。
欢迎中英对照食用

通过这段描述,我们可以得知translate项的结构为{"translate":""(,"with":[])}。举两个很简单的例子:当一个语言项目不需求另外的参数时,with是不需要写的,例如/tellraw @e [{"translate":"chat.link.warning"}];而需要其他的参数时,则需要补齐with项目,否则本来参数所指向的位置都会一片空白……唔,连空白都没有,例子则是/tellraw @a {"translate":"chat.type.announcement","with":["<说话的人>","<说的话>"]}。

translate的“识别器”可以在.lang即语言文件(通常在.minecraft/assets文件夹,虽然可能你需要通过版本号.json去查找对应的hash作为文件名搜索)下找到。如果你实在找不到的话,这里也提供一份扒下来的原模原样的1.10版本中文语言文件,可以正常使用。

对,就是这玩意儿:


                               
登录/注册后可看大图

是不是很失望?只能用游戏中本身出现的语句,虽然拥有了随语言而改变的特性,但是看起来还是很没用对不对?

要只是这样的话我就不会选择拿着个来水一贴啦,我水贴的标准可是很高的(跑)。

那么,玩坏lang大作战,现在开始??!

初级篇——你口说我心
[原版语言文件的使用说明]


高级篇——你见均我愿
[关于自定义lang文件以及一些特殊的用法]


小彩蛋——语言即钥匙
[通过自定义语言文件来强制资源包]

好了,讲到这里,希望大家能够对translate的了解更深一层。毕竟是个坑人的神器,我们怎么能嫌弃它呢对不233!

深夜水贴计划完毕!


玄素
2016.11.14


来自群组: Command Block Logic

评分

参与人数 9人气 +14 金粒 +150 收起 理由
Smokey_Days + 3 + 25 丧心病狂
a6809936 + 1 MCBBS有你更精彩~
jxudvv + 1 + 20 很棒的作品!
清晨w + 1 + 15 MCBBS有你更精彩~
buhuichongfu + 1 厉害到看不懂……
白天 + 1 + 20 太赞了QwQ
FHC红石 + 3 + 70 挺好的挺好的,这个东西真的鲜为人知……….
ruhuasiyu + 1 好长
pca006132 + 2 新人手册得更新了。

查看全部评分

回复

使用道具 举报

发表于 2016-11-14 02:13:03 来自手机 | 显示全部楼层
可以这很深吔(夜)。Translate这东西感觉主要受限还是在于多人模式不能强制资源包(个人看法),如果说mojump开放了这个,那么多语言地图是真的没有障碍了

评分

参与人数 1金粒 +1 收起 理由
玄素 + 1 无底深坑

查看全部评分

回复

使用道具 举报

发表于 2016-11-14 05:22:17 | 显示全部楼层
哎呀,倒也不能说不好吧。。。但是,几句话几张图能解决的事,你给打的太散了。。。

点评

所以很水啊( 这么说,本来也就是换个稍微轻松点的发帖画风试试看(既然免不得啰嗦起来果然还是啰嗦点有意思的东西好?)。如果你觉得直白精炼比较适合这里画风,下次我也会去试试的?  详情 回复 发表于 2016-11-14 07:57
回复

使用道具 举报

 楼主| 发表于 2016-11-14 07:57:07 | 显示全部楼层
乙烯_中国 发表于 2016-11-14 05:22
哎呀,倒也不能说不好吧。。。但是,几句话几张图能解决的事,你给打的太散了。。。 ...

所以很水啊(
这么说,本来也就是换个稍微轻松点的发帖画风试试看(既然免不得啰嗦起来果然还是啰嗦点有意思的东西好?)。如果你觉得直白精炼比较适合这里画风,下次我也会去试试的?

评分

参与人数 1人气 +1 收起 理由
FHC红石 + 1 我以前有个想法,第一页给正常人看,第二页.

查看全部评分

回复

使用道具 举报

发表于 2016-11-14 12:48:45 | 显示全部楼层
但是熟悉真正聊天框提示文本的人(或者说被tellraw玩疯掉过的人)是知道上面这个做法的另一个破绽的……将鼠标放在聊天栏中游戏提示语句涉及到玩家名的位置,你会看到显示出玩家的uuid和玩家名,而单击玩家名处,你的聊天框中会出现/smg <玩家名>的字样!

嘛...说错了吧

点评

是啊 应该是msg吧?  详情 回复 发表于 2016-11-14 14:23

评分

参与人数 1人气 +2 收起 理由
chyx + 2 谢谢

查看全部评分

回复

使用道具 举报

发表于 2016-11-14 14:23:51 | 显示全部楼层

是啊 应该是msg吧?

点评

哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈等我去改哈哈哈哈哈哈哈哈哈哈哈哈哈不行我要笑死自己了 手滑党不是盖的 不过也是自己检查没仔细 谢了  详情 回复 发表于 2016-11-14 14:32
回复

使用道具 举报

 楼主| 发表于 2016-11-14 14:32:28 | 显示全部楼层
chyx 发表于 2016-11-14 14:23
是啊 应该是msg吧?

哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈等我去改哈哈哈哈哈哈哈哈哈哈哈哈哈不行我要笑死自己了
手滑党不是盖的 不过也是自己检查没仔细 谢了

评分

参与人数 1金粒 +1 收起 理由
lzs1234 + 1 smg(手动滑稽)

查看全部评分

回复

使用道具 举报

发表于 2016-11-14 18:28:05 | 显示全部楼层
这东西我也是几个月前知道的,出个教程出来挺好的,挺详细的
回复

使用道具 举报

发表于 2016-11-14 22:13:59 | 显示全部楼层
鼠标放那个名字不管用
回复

使用道具 举报

发表于 2016-11-23 12:56:15 | 显示全部楼层
我还想试一试

/setblock ~ ~1 ~ minecraft:standing_sign 0 replace {Text1:"{\"translate\":\"必须使用指定的资源包\",\"with\":[{\"text\":\"点此开始游戏\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/say 1\"}}]}",Text2:"{\"text\":\"\"}",Text3:"{\"text\":\"\"}",Text4:"{\"text\":\"\"}"}


告示牌居然不支持内层指令执行

点评

是不是告示牌本身带一个text的缘故……  详情 回复 发表于 2016-11-28 19:48

评分

参与人数 1金粒 +1 收起 理由
玄素 + 1 毕竟牌子爱你((((((

查看全部评分

回复

使用道具 举报

发表于 2016-11-28 19:48:41 | 显示全部楼层
chyx 发表于 2016-11-23 12:56
我还想试一试

/setblock ~ ~1 ~ minecraft:standing_sign 0 replace {Text1:"{\"translate\":\"必须使用指 ...

是不是告示牌本身带一个text的缘故……

点评

不是,牌子的clickEvent只有主体生效,你写在extra里就没效了。说明translate的处理方式是看做附加的……  详情 回复 发表于 2016-11-28 22:42
回复

使用道具 举报

发表于 2016-11-28 22:26:56 | 显示全部楼层
......................................

点评

66666666666666可以  详情 回复 发表于 2017-4-14 21:16

评分

参与人数 1人气 -1 金粒 -10 收起 理由
Zero_Exact -1 -10 无意义

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2016-11-28 22:42:56 | 显示全部楼层
lzs1234 发表于 2016-11-28 19:48
是不是告示牌本身带一个text的缘故……

不是,牌子的clickEvent只有主体生效,你写在extra里就没效了。说明translate的处理方式是看做附加的……

评分

参与人数 1金粒 +1 收起 理由
lzs1234 + 1 好吧这个原因啊......

查看全部评分

回复

使用道具 举报

发表于 2017-4-14 21:16:38 | 显示全部楼层
dy230123 发表于 2016-11-28 22:26
......................................

66666666666666可以

评分

参与人数 1人气 -1 金粒 -10 收起 理由
Zero_Exact -1 -10 无意义

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册(register)

本版积分规则

Archiver|小黑屋|Mcbbs.net ( 京ICP备15023768号-1 ) | 手机版本

GMT+8, 2017-7-21 20:44 , Processed in 0.163503 second(s), 8 queries , Memcache On.

"Minecraft"以及"我的世界"为Mojang Synergies AB的商标。本站与Mojang以及微软公司没有从属关系。

© 2010-2017 我的世界中文论坛 版权所有。本站原创图文内容版权属于原创作者,未经许可不得转载。

快速回复 返回顶部 返回列表