mlybj
晚上浏览论坛的时候,找到的interpret教程贴似乎被删了,translate也不是很明白有啥用,求大佬讲解

洞穴夜莺
你指的是原始json文本吗?

钠钠钠镓
本帖最后由 钠钠钠镓 于 2022-11-30 09:22 编辑

interpret的作用是解析JSON文本,搭配nbt使用
:通过tellraw0,0,0的告示牌的第一行文本发送给所有玩家
  1. /tellarw @a {"nbt":"Text1","block":"0 0 0"}
复制代码

假如这个告示牌的第一行文本是这样的
示例
那么玩家收到的消息是
{"bold":true,"color":"red","text":"示例"}
给指令加上interpret后,是这样的
  1. /tellarw @a {"nbt":"Text1","block":"0 0 0","interpret":true}
复制代码


此时玩家可以正常收到红色加粗的示例


translate是为了让作品支持多语种。如有必要,需搭配资源包使用

  1. /tellraw @a {"text":"石头"}
复制代码

所有玩家收到的消息都是“石头
  1. /tellraw @a {"translate":"block.minecraft.stone"}
复制代码

此时,游戏语言使用简体中文的玩家将收到消息“石头”,使用英文的玩家将收到“Stone”,使用日本语的玩家将收到“


如果你使用资源包,还可以让自己制作的独有物品也支持多语种

此外,也可以利用翻译文本提示玩家安装资源包,因为本地化键名不是必须使用英文,也不要求格式
:assets/<命名空间>/lang/zh_cn.json
  1. {
  2.     "您未安装资源包": "资源包检查通过"
  3. }
复制代码
  1. /tellraw @a {"translate":"您未安装资源包"}
复制代码

此时,若玩家安装资源包,则显示“您未安装资源包”
若玩家安装资源包,则显示“资源包检查通过”


hans0000

例如先存一个storage
/data merge storage global {a:1,b:[a,b,c],c:'{"color":"red","text":"c"}'}

translate可以使用达到placeholder这样的效果,使用%s来某种程度上减少拼接,当然也用于多语言


interpret 可以解析json(对比图)





Muggle2077
本帖最后由 Muggle2077 于 2022-11-30 12:55 编辑

1. https://github.com/SPGoding/mcbbs-threads/blob/master/tutorials/interpret-json-component.md

简单来讲,当 interpret 被设置为 true 时,实际显示出来的文本会是原先文本被按照 JSON 文本的格式解析后的文本。

2. https://github.com/SPGoding/mcbbs-threads/blob/master/tutorials/%251%24s%20trick.md

通过活用 JSON 文本的 translatewith 属性,我们可以做到在启用与禁用自制资源包时显示不同的文字。