晚上浏览论坛的时候,找到的interpret教程贴似乎被删了,translate也不是很明白有啥用,求大佬讲解
你指的是原始json文本吗?
本帖最后由 钠钠钠镓 于 2022-11-30 09:22 编辑
interpret的作用是解析JSON文本,搭配nbt使用
例:通过tellraw将0,0,0的告示牌的第一行文本发送给所有玩家
复制代码
假如这个告示牌的第一行文本是这样的
示例
那么玩家收到的消息是
{"bold":true,"color":"red","text":"示例"}
给指令加上interpret后,是这样的
复制代码
此时玩家可以正常收到红色加粗的示例
translate是为了让作品支持多语种。如有必要,需搭配资源包使用
例:
复制代码
所有玩家收到的消息都是“石头”
复制代码
此时,游戏语言使用简体中文的玩家将收到消息“石头”,使用英文的玩家将收到“Stone”,使用日本语的玩家将收到“石”
如果你使用资源包,还可以让自己制作的独有物品也支持多语种
此外,也可以利用翻译文本提示玩家安装资源包,因为本地化键名不是必须使用英文,也不要求格式
例:assets/<命名空间>/lang/zh_cn.json
复制代码复制代码
此时,若玩家未安装资源包,则显示“您未安装资源包”
若玩家已安装资源包,则显示“资源包检查通过”
interpret的作用是解析JSON文本,搭配nbt使用
例:通过tellraw将0,0,0的告示牌的第一行文本发送给所有玩家
- /tellarw @a {"nbt":"Text1","block":"0 0 0"}
假如这个告示牌的第一行文本是这样的
示例
那么玩家收到的消息是
{"bold":true,"color":"red","text":"示例"}
给指令加上interpret后,是这样的
- /tellarw @a {"nbt":"Text1","block":"0 0 0","interpret":true}
此时玩家可以正常收到红色加粗的示例
translate是为了让作品支持多语种。如有必要,需搭配资源包使用
例:
- /tellraw @a {"text":"石头"}
所有玩家收到的消息都是“石头”
- /tellraw @a {"translate":"block.minecraft.stone"}
此时,游戏语言使用简体中文的玩家将收到消息“石头”,使用英文的玩家将收到“Stone”,使用日本语的玩家将收到“石”
如果你使用资源包,还可以让自己制作的独有物品也支持多语种
此外,也可以利用翻译文本提示玩家安装资源包,因为本地化键名不是必须使用英文,也不要求格式
例:assets/<命名空间>/lang/zh_cn.json
- {
- "您未安装资源包": "资源包检查通过"
- }
- /tellraw @a {"translate":"您未安装资源包"}
此时,若玩家未安装资源包,则显示“您未安装资源包”
若玩家已安装资源包,则显示“资源包检查通过”
例如先存一个storage
/data merge storage global {a:1,b:[a,b,c],c:'{"color":"red","text":"c"}'}
translate可以使用达到placeholder这样的效果,使用%s来某种程度上减少拼接,当然也用于多语言
interpret 可以解析json(对比图)
本帖最后由 Muggle2077 于 2022-11-30 12:55 编辑
1. https://github.com/SPGoding/mcbbs-threads/blob/master/tutorials/interpret-json-component.md
2. https://github.com/SPGoding/mcbbs-threads/blob/master/tutorials/%251%24s%20trick.md
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 文本的 translate 与 with 属性,我们可以做到在启用与禁用自制资源包时显示不同的文字。