diff --git a/src/main/resources/assets/integratedscripting/lang/zh_cn.json b/src/main/resources/assets/integratedscripting/lang/zh_cn.json index 052c53c1..fb185637 100644 --- a/src/main/resources/assets/integratedscripting/lang/zh_cn.json +++ b/src/main/resources/assets/integratedscripting/lang/zh_cn.json @@ -1,9 +1,6 @@ { - "_comment": "General", "itemGroup.integratedscripting": "联合脚本", "general.integratedscripting.description": "在动态联合中编写脚本,处理复杂操作。", - - "_comment": "Achievements", "advancement.integratedscripting.mendesite": "门山岩井喷", "advancement.integratedscripting.mendesite.desc": "制作一块门山岩,它是联合脚本的基础资源。", "advancement.integratedscripting.scripting_disk": "不是软盘!", @@ -18,11 +15,7 @@ "advancement.integratedscripting.terminal_display.desc": "在显示器中展示脚本里的值", "advancement.integratedscripting.filter_chest": "强力物品列表过滤器", "advancement.integratedscripting.filter_chest.desc": "用基于脚本的函数过滤从箱子读取的物品列表。", - - "_comment": "Blocks", "block.integratedscripting.mendesite": "门山岩", - - "_comment": "Gui", "gui.integratedscripting.disk": "磁盘", "gui.integratedscripting.script": "脚本", "gui.integratedscripting.create_file": "新建文件", @@ -32,8 +25,6 @@ "gui.integratedscripting.removal_dialog.keep": "保留", "gui.integratedscripting.error.invalid_member": "在脚本编辑器中选中有效函数名或变量名以绑定。", "gui.integratedscripting.error.invalid_member.current": "当前选中:“%s”", - - "_comment": "Value Type Translation", "valuetype.integratedscripting.error.translation.unknown_to_graal": "找不到值%s至Graal的翻译器。", "valuetype.integratedscripting.error.translation.unknown_to_graal_nbt": "在NBT翻译过程中找不到值%s至Graal的翻译器。", "valuetype.integratedscripting.error.translation.unknown_from_graal": "找不到Graal值%s的翻译器。", @@ -42,13 +33,9 @@ "valuetype.integratedscripting.error.translation.nbt_unmatched": "无法将字段%s的值解释为NBT。", "valuetype.integratedscripting.error.translation.unsupported_translateToNbt": "%s“%s”至NBT的转化不合法。", "valuetype.integratedscripting.error.translation.proxyobject_putMember": "向只读%2$s添加键“%1$s”的操作不合法。", - - "_comment": "Operators", "operator.integratedscripting.integratedscript.basename": "联合脚本%s", "operator.integratedscripting.integratedscript.graal": "Graal函数", "operator.integratedscripting.error.no_graal_serialization": "脚本无法序列化", - - "_comment": "Script Variable", "script.integratedscripting.tooltip.disk": "§e§o磁盘ID:§r§o%s", "script.integratedscripting.tooltip.path": "§e§o脚本路径:§r§o%s", "script.integratedscripting.tooltip.member": "§e§o成员:§r§o%s", @@ -60,51 +47,36 @@ "script.integratedscripting.error.script_read": "读取磁盘%2$s的脚本文件“%1$s”时出现了错误:%3$s", "script.integratedscripting.error.script_exec": "执行磁盘%3$s的脚本文件“%2$s”中的成员“%1$s”时出现了错误:%4$s", "script.integratedscripting.error.invalid_type": "磁盘%3$s的脚本文件“%2$s”中带有成员“%1$s”的脚本预期将公开类型为%4$s的变量,而实际为%5$s。", - - "_comment": "Items", "item.integratedscripting.scripting_disk": "脚本磁盘", "item.integratedscripting.scripting_disk.info": "存储脚本。", "item.integratedscripting.scripting_disk.id": "ID:%s", "item.integratedscripting.scripting_disk.bytes": "字节数:%s", - - "_comment": "Blocks", "block.integratedscripting.scripting_drive": "脚本驱动器", "block.integratedscripting.scripting_drive.info": "令脚本磁盘向网络公开。", - - "_comment": "Part types", "parttype.integratedscripting.terminal_scripting": "脚本终端", "parttype.integratedscripting.terminal_scripting.info": "管理网络中脚本驱动器内存储的脚本。", - - "_comment": "------ On the Dynamics of Integration contents ------", - "info_book.integratedscripting.section.main": "脚本", - "info_book.integratedscripting.introduction": "介绍", "info_book.integratedscripting.introduction.text1": "&l联合脚本&r是&l动态联合&r的扩展模组,内容包括编写脚本以处理&l动态联合&r网络中的复杂操作。默认情况下,本模组自带对JavaScript脚本语言的支持。", "info_book.integratedscripting.introduction.text2": "本模组允许你通过便捷的脚本语言定义&l动态联合&r的逻辑运算,而不再需要使用基于变量卡的可视化标准方法:它在面对层层链接的运算操作时太过笨重。", "info_book.integratedscripting.introduction.text3": "比如,本模组可以极方便地定义复杂的物品列表过滤器;形如&o“可损失耐久度的、模组X添加的、只可由钻石镐破坏的方块所对应的物品”“获取列表中堆叠数第二大的物品”&r的描述,均在其列。", "info_book.integratedscripting.introduction.text4": "使用此模组时具有基础编程知识为优,也可通过书中后续的教程学习。", - "info_book.integratedscripting.materials": "材料", "info_book.integratedscripting.materials.text1": "在开始编写脚本之前,你需要首先制作一些&l门山岩&r。这些方块有很强的可塑性,是存储和处理脚本的优良基底。往&l烘干池&r中放入&l门瑞欧树脂&r和&l安山岩&r就可制成&l门山岩&r。", - "info_book.integratedscripting.concepts": "概念", "info_book.integratedscripting.concepts.text1": "脚本的编辑、存储、运行需要三样网络组件:&l脚本终端&r、&l脚本磁盘&r,以及&l脚本驱动器&r。", "info_book.integratedscripting.concepts.text2": "&l脚本磁盘&r用于存储原始脚本,但它无法独立工作。", "info_book.integratedscripting.concepts.text3": "&l脚本驱动器&r允许你插入单张&l脚本磁盘&r,其中内容会公开至网络。", "info_book.integratedscripting.concepts.text4": "&l脚本终端&r则用来查看、管理、编辑当前网络中&l脚本驱动器&r公开的所有脚本。", "info_book.integratedscripting.concepts.text5": "后续页面将详细探讨上述三种组件。", - "info_book.integratedscripting.disk": "脚本磁盘", "info_book.integratedscripting.disk.text1": "&l脚本磁盘&r的职能是存储脚本,使用时应当插入&l脚本驱动器&r。由&l门山岩&r和几张&l变量卡&r合成。", "info_book.integratedscripting.disk.text2": "将&l脚本磁盘&r插入&l脚本驱动器&r后,它们会获得独一无二的数字ID。在&l脚本终端&r中修改该磁盘中脚本时会用到此ID。这项ID也用于&l变量卡&r和脚本元素间的链接。", "info_book.integratedscripting.disk.text3": "在不同的&l脚本驱动器&r间移动&l脚本磁盘&r不会损失脚本数据,跨网络移动也是一样。不过,如果磁盘经历了跨网络转移,引用了其中脚本ID的&l变量卡&r就会开始报错,这是因为对应脚本已不再与其处于同一网络。", "info_book.integratedscripting.disk.text4": "&l脚本磁盘&r的存储容量没有上限,但为管理方便考虑,推荐将多个脚本分块存储至多个磁盘。", - "info_book.integratedscripting.drive": "脚本驱动器", "info_book.integratedscripting.drive.text1": "&l脚本驱动器&r是连接至&l动态联合&r网络的方块,它接受单张&l脚本磁盘&r,其中脚本会公开给网络使用。", "info_book.integratedscripting.drive.text2": "合成它需要&l变量卡箱&r、&l唱片机&r和一些&l脚本磁盘&r。", - "info_book.integratedscripting.terminal": "脚本终端", "info_book.integratedscripting.terminal.text1": "若要管理&l动态联合&r网络中各&l脚本磁盘&r存储的脚本,就必须在网络中连接一块&l脚本终端&r。", "info_book.integratedscripting.terminal.text2": "右击终端会打开一个简化版&o集成开发环境&r(IDE),可在其中编辑脚本。", @@ -118,20 +90,15 @@ "info_book.integratedscripting.terminal.text10": "之后,往界面右下角的槽位中放入一张&l变量卡&r,即能令其与所选中的脚本成员绑定。", "info_book.integratedscripting.terminal.text11": "这张&l变量卡&r可在网络其他位置使用,比如可以在&l显示器&r中展示变量,或将函数用作物品列表的过滤运算符。", "info_book.integratedscripting.terminal.text12": "下一章节会详细介绍脚本的编写方式。", - "info_book.integratedscripting.writing": "编写脚本", - - "info_book.integratedscripting.writing.js": "JavaScript", "info_book.integratedscripting.writing.js.text1": "此模组接受以JavaScript语法编写的脚本。ECMAScript(ECMA-262)允许的所有特性均可用。", "info_book.integratedscripting.writing.js.text2": "需注意,&orequire&r和&ofs&r等Node.js独占的功能不可用。如果你对Node.js应用开发很熟悉,可以使用诸如Webpack的外部工具兼容那些功能。", - "info_book.integratedscripting.writing.variables": "常量与变量", "info_book.integratedscripting.writing.variables.text1": "动态联合中常见的类型(比如&6整型&0、&9布尔型&0、&8物品&0)在JavaScript中均有对应类型,反之亦然。", "info_book.integratedscripting.writing.variables.text2": "要在JavaScript中创建值,再把它变成静态的&l变量卡&r值,最直截了当的操作方式便是使用&olet&r或&oconst&r声明一个变量。", "info_book.integratedscripting.writing.variables.text3": "&olet&r声明的变量可在后续脚本中重新赋值。&oconst&r声明的变量无法再次赋值。", "info_book.integratedscripting.writing.variables.text4": "要在&l变量卡&r中使用该变量,需在脚本终端的编辑器中选中该变量的名称,然后往右侧槽位插入空&l变量卡&r。这张&l变量卡&r后续就可像其他变量卡一样使用,比如在&l显示器&r中展示。", "info_book.integratedscripting.writing.variables.text5": "用JavaScript创建变量适合用于难以用&l逻辑编程器&r编写的复杂值,例如定值长字符串。下方是创建此类变量的一些示例。", - "info_book.integratedscripting.writing.functions": "函数", "info_book.integratedscripting.writing.functions.text1": "作为动态联合的首要元素,&2运算符&0可以用JavaScript函数创建。", "info_book.integratedscripting.writing.functions.text2": "JavaScript中所有的函数创建方式都可用来创建&2运算符&0,&ofunction&r关键字和lambda函数均可。", @@ -139,22 +106,18 @@ "info_book.integratedscripting.writing.functions.text4": "要将JavaScript函数绑定为&2运算符&0,所需的操作过程与常量和变量无二:在脚本终端的编辑器中选中函数名,再绑定至&l变量卡&r。所有接受&2运算符&0的地方都能使用该值。", "info_book.integratedscripting.writing.functions.text5": "比如说,创建接受单个&8物品&0参数、返回&9布尔型&0的函数,在读取箱子中物品列表时,就可用作过滤&2运算符&0。", "info_book.integratedscripting.writing.functions.text6": "下方是不同类型函数的创建示例。", - "info_book.integratedscripting.writing.globals": "全局函数", "info_book.integratedscripting.writing.globals.text1": "编写JavaScript代码时,可以通过全局变量&oidContext&r下的&oops&r字段访问所有动态联合运算符。这些运算符均已转译为函数。在写新运算符时,可以借此方式使用自带的运算符。", "info_book.integratedscripting.writing.globals.text2": "比如,可以编写一个&8物品&0过滤器,以检验物品可堆叠,且堆叠数至少为16。示例如下。", "info_book.integratedscripting.writing.globals.text3": "如需查询运算符的名称,可以在&l逻辑编程器&r中查看运算符说明里的全局名称,或在本书的“逻辑编程”条目下查找。", "info_book.integratedscripting.writing.globals.text4": "通过&oidContext&r调用函数比较繁琐。可以考虑将这些运算符存储到自定义的常量中去,如后所示;此外,还可以使用&o对象方法&r,如下一条目所示。", - "info_book.integratedscripting.writing.methods": "对象方法", "info_book.integratedscripting.writing.methods.text1": "全局函数的语法较为繁琐。使用更为紧凑的&l对象方法&r有时可以简化脚本。", "info_book.integratedscripting.writing.methods.text2": "在JavaScript中使用时,&8方块&0、&8物品s&0和&8流体s&0等对象类型均有对应&l方法&r。", "info_book.integratedscripting.writing.methods.text3": "对象方法与相应的普通函数一致,但在调用时会将对象绑定到首个参数上。", "info_book.integratedscripting.writing.methods.text4": "例如,全局函数&oitemstackStackable&r接受单个&8物品&0参数,并返回一个&9布尔型&0。相应的对象方法为&ostackable&r,不接受参数。", "info_book.integratedscripting.writing.methods.text5": "接受两个及以上参数的全局函数也有相应的对象方法:首个参数绑定至对象,其余参数顺延。比如,全局函数&oitemstackStrength&r接受一个&8物品&0和一个&8方块&0参数;在&8物品&0上的相应方法只接受后一&8方块&0参数。", - "info_book.integratedscripting.advanced": "进阶", - "info_book.integratedscripting.advanced.transient_storage": "暂态存储", "info_book.integratedscripting.advanced.transient_storage.text1": "动态联合的设计基于函数式编程的原则,因此基本不存在记录状态的手段,除非使用&l延迟器&r等外部方式绕过这一限制。", "info_book.integratedscripting.advanced.transient_storage.text2": "JavaScript语言允许混用函数式编程和命令式编程,这一特性便可用于临时记录状态。", @@ -162,13 +125,11 @@ "info_book.integratedscripting.advanced.transient_storage.text4": "基于这些暂态变量,可以做到统计函数调用次数、实时统计一系列值的平均数等工作。", "info_book.integratedscripting.advanced.transient_storage.text5": "需要强调的是,这些变量是暂态的而非持久的;具体而言,其值会随着重新插拔变量卡和重启服务器而重置。", "info_book.integratedscripting.advanced.transient_storage.text6": "因此,这些值无法保证能永久存在。如果需要持久的数据存储方式,最好还是使用&l延迟器&r。", - "info_book.integratedscripting.advanced.external_editing": "外部编辑", "info_book.integratedscripting.advanced.external_editing.text1": "如你能访问单人或多人世界的存档文件,就可在任意外部编辑器中打开这些脚本。你可以用你最爱的IDE(比如Vi,但肯定不会是Emacs)编写脚本。", "info_book.integratedscripting.advanced.external_editing.text2": "脚本文件位于&oworld/integratedscripting/&r目录下(单人世界见&osaves/&r目录)。各&l脚本磁盘&r分属不同的子目录,目录名称则分别是它们的ID。&l脚本磁盘&r的目录下即是该磁盘中存有的所有脚本文件。", "info_book.integratedscripting.advanced.external_editing.text3": "你可以在外部编辑器中随意修改这些文件,就算游戏开着也不会产生问题。在外部保存文件后,游戏内脚本和有关变量也会自动更新。", "info_book.integratedscripting.advanced.external_editing.text4": "如果你的外部编辑器有对应支持(现代IDE基本都有),在&l脚本终端&r内更新脚本文件后,外部编辑器中的文件也会同步更新。", - "info_book.integratedscripting.advanced.logging": "日志", "info_book.integratedscripting.advanced.logging.text1": "复杂的脚本常需调试,因此可能需要暂时向外部日志文件输出信息。", "info_book.integratedscripting.advanced.logging.text2": "JavaScript中可以调用&oconsole.log()&r和&oconsole.error()&r等函数,分别向&o标准输出&r和&o标准错误&r流输出。", @@ -176,23 +137,17 @@ "info_book.integratedscripting.advanced.logging.text4": "比如,如果你的脚本位于&omyfile.js&r,则日志会输出至&omyfile.js.stdout&r。", "info_book.integratedscripting.advanced.logging.text5": "&l脚本终端&r和外部编辑器均可访问上述&o.stdout&r和&o.stderr&r文件。", "info_book.integratedscripting.advanced.logging.text6": "为避免日志文件过于庞大,它们的行数有一定上限,默认情况下为2096行。如有更多行数的需求,请咨询你所处服务器的管理员。", - - "info_book.integratedscripting.advanced.typescript": "TypeScript", "info_book.integratedscripting.advanced.typescript.text1": "TypeScript语言是JavaScript的著名超集之一,加入了类型支持。开发者可以使用这种语言为变量和函数声明类型,以此编写类型安全的JavaScript。", "info_book.integratedscripting.advanced.typescript.text2": "虽然联合脚本仅支持原生JavaScript,但也拥有单个TypeScript&o类型声明文件&r,其中包含所有可用的全局函数、值类型及其方法的说明。", "info_book.integratedscripting.advanced.typescript.text3": "在外部IDE编辑脚本时,可以加载此类型声明文件以保证类型安全。仅在了解TypeScript与其使用方法时推荐这一做法。", "info_book.integratedscripting.advanced.typescript.text4": "类型声明文件位于&oworld/integratedscripting/integratedscripting.d.ts&r(单人世界见&osaves/&r目录)。此文件会在每次打开世界时自动重新生成,因此不应该手动修改此文件。", - "info_book.integratedscripting.section.tutorials": "脚本教程", - "info_book.integratedscripting.tutorials.introduction": "介绍", "info_book.integratedscripting.tutorials.introduction.text1": "本节包含了几份教程,可帮助你了解和学习&l联合脚本&r——用于创建脚本处理复杂操作的&l动态联合&r附加组件。", - "info_book.integratedscripting.tutorials.basics": "脚本编写基础", "info_book.integratedscripting.tutorials.basics.text1": "&l门山岩&r是脚本相关物品最基础、也最重要的合成材料。用&l烘干池&r制作一些吧!", "info_book.integratedscripting.tutorials.basics.text2": "然后,我们使用&l门山岩&r制造出一些&l脚本磁盘&r和&l脚本驱动器&r。&l脚本磁盘&r能够存储脚本数据,而&l脚本驱动器&r则用来向网络插入这些磁盘。", "info_book.integratedscripting.tutorials.basics.text3": "最后,放置一台&l脚本驱动器&r,并往里放入一张&l脚本磁盘&r。在下一份教程中,我们将使用这些设备存储脚本。", - "info_book.integratedscripting.tutorials.terminal": "使用脚本终端", "info_book.integratedscripting.tutorials.terminal.text1": "在上一份教程里,我们制作并放置了&l脚本磁盘&r和&l脚本驱动器&r。本教程中将主要介绍实操中如何&o编写&r脚本,以及如何将其绑定至&l变量卡&r。", "info_book.integratedscripting.tutorials.terminal.text2": "首先,合成一个&l脚本终端&r,放到连接至&l脚本驱动器&r的线缆上,再右击打开&l脚本终端&r。", @@ -200,7 +155,6 @@ "info_book.integratedscripting.tutorials.terminal.text4": "此时,网络中应当还没有脚本文件,我们点击界面左下角的“+”按钮新建一份。点击打开新文件,再点击右侧的文本编辑框以编辑文件,编写&oJavaScript&r代码。", "info_book.integratedscripting.tutorials.terminal.text5": "教程需由浅入深,此处我们先只创建一个常量。我们先编写类似&oconst myVar = 123;&r的语句。", "info_book.integratedscripting.tutorials.terminal.text6": "最后,我们将这个常量绑定至&l变量卡&r。将空&l变量卡&r放入界面右侧的槽位,再双击选择变量。&l变量卡&r现在就与常量绑定了。你可以在网络中任意位置使用这张&l变量卡&r。让我们放到&l显示器&r里展示一下吧!", - "info_book.integratedscripting.tutorials.functions": "编写函数", "info_book.integratedscripting.tutorials.functions.text1": "通过JavaScript创建常量也许很有趣,不过脚本真正的强大之处,还需看&o函数&r。", "info_book.integratedscripting.tutorials.functions.text2": "在JavaScript中创建的函数可在&l变量卡&r处绑定为&2运算符&0,然后就能用到动态联合的逻辑运算中去。可用作联合管道的输出过滤器,也可用于计算复杂数值,例如列表中各物品组物品数量的中位数。",