diff --git a/language/zh/global.json b/language/zh/global.json
index c74e454ee..b5260dafd 100644
--- a/language/zh/global.json
+++ b/language/zh/global.json
@@ -115,6 +115,7 @@
"Bool":"布尔值(Bool)",
"Boolean":"布尔型",
"Broadcast Messages":"广播消息",
+ "Broadcast Messages & Moments":"广播消息和时刻",
"Brush Builder":"笔刷生成器",
"Buffer Data Type Constant":"缓冲区数据类型常量",
"Buffers":"缓冲区",
@@ -129,6 +130,8 @@
"Cloud":"云",
"Cloud Saving":"云存储 (过时)",
"Code":"代码",
+ "Code Completion":"代码完成",
+ "Code Editor Preferences":"代码编辑器首选项",
"Code Snippets":"代码片段",
"Collision Compatibility Mode":"碰撞兼容模式",
"Collisions":"碰撞",
@@ -296,6 +299,7 @@
"Filters":"滤镜",
"Filters and Effects":"滤镜和效果",
"Fixtures":"装置",
+ "Flex Panels":"柔性面板",
"Flick Event":"轻击事件",
"Floating point numbers are numbers that contain decimal points. For example, the numbers 5.5, 0.001, and -2,345.6789 are floating point numbers. Numbers that do not have decimal places are called integers (e.g. 2, 56, 1400).":"浮点数是包含浮点小数的数字。例如,数字5.5、0.001和-2,345.6789是浮点数。没有小数位的数字称为整数。",
"Font Editor Preferences":"字体编辑器首选项",
@@ -336,6 +340,7 @@
"Gamepad Input":"游戏手柄输入",
"Garbage Collection":"垃圾回收",
"General":"通用",
+ "General Asset Editors":"常规资源编辑器",
"General Game Control":"通常游戏控制",
"General Layer Functions":"常规图层函数",
"General Preferences":"常规首选项",
@@ -373,6 +378,7 @@
"In GameMaker, when we talk about an object, instance or room using \u0027physics\u0027 we mean it is using the built-in physics simulation functions, based on the Box2D physics library.":"在GameMaker中,当我们谈论一个使用“物理”的对象、实例或房间时,我们指的是它使用了基于Box2D物理库的内置物理模拟功能。",
"In computer programming, the term hard-coded is used to describe code that is considered fixed and not likely to change. Hardcoded features are built into hardware or software in such a way that they cannot be modified later on. For example, if you are making a game and \u0027hard-code\u0027 the player health to 10, then you would be using the value 10 throughout the game code rather than using a variable.":"在计算机编程中,术语“硬编码”用于描述被认为是固定的并且不太可能更改的代码。硬编码功能以无法稍后修改的方式内置于硬件或软件中。例如,如果您要制作游戏并将玩家的健康状况“硬编码”为10,那么您将在整个游戏代码中使用值10,而不是使用变量。",
"In computing, a server is a computer program or a device that provides functionality for other programs or devices, called \u0027clients\u0027.":"在计算中,服务器是为其他程序或设备提供功能的计算机程序或设备,称为“客户端”。",
+ "In computing, serialization (or serialisation) is the process of translating a data structure or object state into a format that can be stored (e.g. files in secondary storage devices, data buffers in primary storage devices) or transmitted (e.g. data streams over computer networks) and reconstructed later (possibly in a different computer environment).":"在计算中,序列化 (或序列化) 是将数据结构或对象状态转换为可以存储 (例如辅助存储设备中的文件、主存储设备中的数据缓冲区) 或传输 (例如计算机网络上的数据流) 的格式的过程) 并稍后重建 (可能在不同的计算机环境中)。",
"In games, the HUD stands for the Heads-Up Display. This is the method by which information is visually relayed to the player as part of a game\u0027s user interface, so things like the health bar, status icons, score, etc... all form part of the HUD, and normally HUD elements do not require user interaction.":"在游戏中,HUD代表抬头显示器。这是一种将信息作为游戏用户界面的一部分可视地传递给玩家的方法,因此,诸如健康栏,状态图标,得分等之类的内容都构成了HUD的一部分,而通常HUD元素并不需要用户交互。",
"In programming, a statement is a single line of code written legally in a programming language that expresses an action to be carried out. A statement might have internal components of its own, including expressions, operators and functions. An example of a statement is A = B + 5. A GameMaker Studio 2 program is nothing but a sequence of one or more statements that together perform a task (like move the player). ":"在编程中,语句是用编程语言合法编写的单行代码,表示要执行的操作。语句可能具有自己的内部组件,包括表达式,运算符和函数。语句的一个示例是A = B +5。GameMakerStudio 2程序不过是一系列一起执行任务(如移动玩家)的一个或多个语句的序列。",
"In-Game":"游戏内",
@@ -392,7 +398,9 @@
"Introduction To GameMaker":"GameMaker 简介",
"Introduction To {}GameMaker{}":"介绍{}GameMaker{}",
"Inverse Sawtooth":"反锯齿波",
+ "JSDoc Comments":"JSDoc 评论",
"JSDoc Script Comments":"JSDoc 脚本注释",
+ "JSON Data Conversions":"JSON 数据转换",
"JSON stands for JavaScript Object Notatio, and is a lightweight format for storing data. JSON is often used when data is sent from a server to a web page and is considered \u0027self-describing\u0027 and easy to understand and follow when viewed.":"JSON代表JavaScript Object Notatio,并且是用于存储数据的轻量级格式。 JSON通常在将数据从服务器发送到网页时使用,并且被认为是“自我描述”的,易于查看和遵循。",
"Joints":"关节",
"Key":"键",
@@ -408,6 +416,7 @@
"Layer Element Info Struct":"层元素信息结构",
"Layer Properties":"图层属性",
"Layer Types And Properties":"图层类型和属性",
+ "Legacy Code Editor Preferences":"旧版代码编辑器首选项",
"Level":"等级",
"Licencing & Logging In":"许可及登录",
"Licencing & Versions":"许可 & 版本",
@@ -516,6 +525,7 @@
"Reference":"参考文献",
"Release Notes":"发行说明",
"Replacement key":"替换键",
+ "Reporting Errors":"报告错误",
"Repository Options":"仓库选项",
"Required SDKs":"所需的 SDK",
"Resources":"资源",
@@ -645,6 +655,7 @@
"The Asset Browser":"资源浏览器",
"The Asset Editors":"资源编辑器",
"The Build Menu":"构建菜单",
+ "The Code Editor":"代码编辑器",
"The Debug Overlay":"The Debug Overlay (调试覆盖视图)",
"The Debugger":"调试器",
"The Device Manager":"设备管理器",
@@ -786,6 +797,7 @@
"{}IDE Navigation{}{}IDE Navigation{}":"{}IDE导航{}{}IDE导航{}",
"{}IDE Preferences & Features{}{}IDE Preferences & Features{}":"{} IDE 首选项和特性{}{} IDE 首选项和特性{}",
"{}Introduction to {}GameMaker{}{}{}Introduction to {}GameMaker{}{}":"{}{}GameMaker{}的介绍{}{}{}GameMaker{}的介绍{}",
+ "{}Legacy Code Editor{} only":"仅限 {} 旧版代码编辑器 {}",
"{}Quick Start Guide{}{}Quick Start Guide{}":"{}快速入门指南{}{}快速入门指南{}",
"{}Returns:{}":"{}返回:{}",
"{}Setting Up And Version Information{}{}Setting Up And Version Information{}":"{}设置和版本信息{}{}设置和版本信息{}",
diff --git a/language/zh/www/Additional_Information/Errors/Syntax_Errors.json b/language/zh/www/Additional_Information/Errors/Syntax_Errors.json
index 340fdd233..5d558107e 100644
--- a/language/zh/www/Additional_Information/Errors/Syntax_Errors.json
+++ b/language/zh/www/Additional_Information/Errors/Syntax_Errors.json
@@ -12,6 +12,7 @@
"Syntax Error List":"语法错误列表",
"Syntax Errors (Feather disabled)":"语法错误(语法检查禁用)",
"Syntax error checking happens differently depending on whether you have enabled {}Feather{} in the {}Feather Settings{}.":"根据您是否在{}语法检查设置{}中启用了{}语法检查{} ,语法错误检查会发生不同的情况。",
+ "Syntax error checking happens differently depending on whether you have enabled {}Feather{} in the {}Feather Settings{}. It is enabled by default.":"根据您是否在 {} 羽化设置 {} 中启用了 {} 羽化 {},语法错误检查的情况会有所不同。默认情况下它是启用的。",
"Syntax errors will update as you write your code (there will be a short pause between typing something and any errors appearing in this window to prevent errors being reported for unfinished code), and will follow the format:":"当你写代码的时候,语法错误会更新(在输入代码和窗口中出现的错误之间会有一个短暂的停顿,以防止未完成代码的错误被报告) ,并且会遵循以下格式:",
"The first level of error reporting when programming your games in {}GameMaker{} is in the code or GML Visual editor, and it\u0027s the {}syntax{} checker. As you write your code - or add your actions - {}GameMaker{} will check that it follows the established syntax for the language, and flag any issues that it finds so you can fix them before it comes to running the game or compiling an executable.":"在{}GameMaker{}中编写游戏时,错误报告的第一级是在代码或 GML 可视化编辑器中,它是{}语法{}检查器。当你编写代码或者添加动作时,{}GameMaker{} 会检查它是否遵循语言的语法,并标记出它发现的任何问题,这样你就可以在运行游戏或者编译可执行文件之前解决这些问题。",
"The table below lists the different syntax errors and their main causes:":"下表列出了不同的语法错误及其主要原因:",
diff --git a/language/zh/www/Additional_Information/Guide_To_Using_Blendmodes.json b/language/zh/www/Additional_Information/Guide_To_Using_Blendmodes.json
index 5815391c7..cdb369a2d 100644
--- a/language/zh/www/Additional_Information/Guide_To_Using_Blendmodes.json
+++ b/language/zh/www/Additional_Information/Guide_To_Using_Blendmodes.json
@@ -1,20 +1,40 @@
{
+ "A sprite, drawn normally. Parts of this will be \"removed\" so we can see through it.":"一个精灵,正常绘制。其中的一部分将被 \" 删除\",以便我们可以看穿它。",
+ "A {}circle{}, drawn at the mouse position, using the {}bm_eq_subtract{} equation.":"使用 {2}bm_eq_subtract{3} 方程在鼠标位置绘制的 {} 圆 {}。",
"Above we have talked about the function {}{}gpu_set_blendmode(){}{}, but now we are going to look at {}{}gpu_set_blendmode_ext(){}{}. This is (as the name implies) an extended function to set {}custom {}blend modes, but how does this work? Let\u0027s just have a look at the dry technical answer first before we go any further:":"上面我们已经讨论了函数 {}{}gpu_set_blendmode(){}{},但现在我们将看看 {}{}gpu_set_blendmode_ext(){}{}。顾名思义,这是一个用于设置 {}custom {}blend 模式的扩展函数,但这是如何工作的呢?在我们进一步讨论之前,让我们先看一下枯燥的技术答案:",
+ "Above we have talked about the function {}{}gpu_set_blendmode{}{}, but now we are going to look at {}{}gpu_set_blendmode_ext{}{}.":"上面我们讨论了函数 {}{}gpu_set_blendmode{}{},但现在我们要看看 {}{}gpu_set_blendmode_ext{}{}。",
+ "Add both together (the default equation).":"将两者相加 (默认方程)。",
+ "Additive blending. Luminosity values of light areas are added.":"添加混合。添加亮区域的亮度值。",
"And the destination would be like this:":"目的地应该是这样的:",
+ "As you already know, both source and destination colours have RGBA components. Each of these components are values between 0 and 1.":"如您所知,源颜色和目标颜色都具有 RGBA 分量。每个分量的值都在 0 到 1 之间。",
+ "As you can see, it is multiplying the source and destination RGBAs with their set factors. It then adds them together as per the default {}equation{}.":"正如您所看到的,它将源 RGBA 和目标 RGBA 与其设定因子相乘。然后,它根据默认 {} 方程 {} 将它们加在一起。",
"As you can see, we multiply the destination values by 0, which gives them a value of 0 too, meaning that the source colours are unchanged, so our final colour value is {}(128, 255, 64, 255){}.":"如您所见,我们将目标值乘以 0,这也使它们的值也为 0,这意味着源颜色保持不变,因此我们的最终颜色值为 {}(128, 255, 64, 255){}。",
"As you can see, we multiply the destination values by 0, which gives them a value of 0 too, meaning that the source colours are unchanged, so our final colour value is {}(128, 255, 64, 255){}. You can see how the inclusion of alpha affects this value too:":"如您所见,我们将目标值乘以 0,这也使它们的值也为 0,这意味着源颜色保持不变,因此我们的最终颜色值为 {}(128, 255, 64, 255){}。 您还可以看到 alpha 的包含如何影响该值:",
"BASIC BLEND MODES":"基本混合模式",
+ "Basic Blend Modes":"基本混合模式",
"Before we actually draw something using this blend mode, let\u0027s have a look at how it should look in Photoshop:":"在我们实际使用这种混合模式绘制东西之前,让我们看看它在Photoshop中应该是什么样子:",
+ "Blend Equations":"混合方程",
+ "Blend factors are defined in {}GameMaker{} by a number of GML constants. Each constant is a factor that you can use for the source or destination (or both). The following factors are available:":"混合因子在 {}GameMaker{} 中由许多 GML 常量定义。每个常量都是可用于源或目标 (或两者) 的因子。可以考虑以下因素:",
"Blend modes basically tell your game to draw certain things blended with whatever else is already drawn beforehand. Everything you draw to the screen is made up of four component parts - red, green, blue and alpha - and by default they are drawn to the screen using the blend mode {}bm_normal{}. This blend mode draws all pixels with their colour and alpha values essentially unchanged (although, later in this section you\u0027ll see that this isn\u0027t {}quite{} true...), but {}GameMaker{} has a number of built in blend modes that can be set to change this behaviour.":"混合模式基本上告诉你的游戏绘制某些东西与任何其他已经事先绘制的东西混合。你绘制到屏幕上的所有东西都由四个组成部分组成-红色,绿色,蓝色和alpha -默认情况下,它们是使用混合模式{}bm_normal{}绘制到屏幕上的。这种混合模式绘制的所有像素的颜色和alpha值基本不变(虽然,稍后在本节中你会看到,这不是{}完全{}正确.),但{}GameMaker{}有许多内置的混合模式,可以设置来改变这种行为。",
"Blend modes basically tell your game to draw certain things blended with whatever else is already drawn beforehand. Everything you draw to the screen is made up of four component parts - {}Red{}, {}Green{}, {}Blue{} and {}Alpha{} - and by default they are drawn to the screen using the blend mode {}bm_normal{}.":"混合模式基本上告诉你的游戏将某些东西与事先已经绘制的其他东西混合起来。您绘制到屏幕上的所有内容均由四个组成部分组成 -{} 红色 {}、{} 绿色 {}、{} 蓝色 {} 和 {}Alpha{}- 默认情况下,它们使用混合绘制到屏幕上模式 {}bm_normal{}。",
+ "Both the source colour and destination colour contain RGBA ({}Red{}, {}Green{}, {}Blue{} and {}Alpha{}) components, each of which are floating point values between 0 and 1.":"源颜色和目标颜色均包含 RGBA({} 红色 {}、{} 绿色 {}、{} 蓝色 {} 和 {}Alpha{}) 分量,每个分量都是 0 到 1 之间的浮点值。",
"By default, both the source and destination values are {}added{} together, as the default equation is {}bm_eq_add{}.":"默认情况下,源值和目标值都会 {} 相加 {} 在一起,因为默认方程为 {}bm_eq_add{}。",
"CREATING YOUR OWN BLEND MODES":"创建您自己的混合模式",
+ "Calculating Final Colour":"计算最终颜色",
+ "Calculating The Final Pixel":"计算最终像素",
+ "Creating Your Own Blend Modes":"创建您自己的混合模式",
+ "Denoting Components":"表示组件",
"Even if the alpha of the surface is 0, {}{}the colour components are still there and exist and will influence in all blending operations{}{}. So drawing to a zero alpha cleared surface that has been cleared using the colour red (for example) will blend the source colours with the destination colours and give different effects to that which you may think. The above image was created on a surface cleared to black over a black background, but if we clear the surface to red, we get this instead:":"即使表面的 Alpha 为 0,{}{}颜色分量仍然存在并且会影响所有混合操作{}{}。 因此,绘制到已使用红色(例如)清除的零 alpha 清除表面会将源颜色与目标颜色混合,并给出您可能认为的不同效果。 上面的图像是在黑色背景上清除为黑色的表面上创建的,但是如果我们将表面清除为红色,我们会得到以下结果:",
"Even if the alpha of the surface is 0, {}{}the colour components are still there and exist and will influence in all blending operations{}{}. So drawing to a zero alpha cleared surface that has been cleared using the colour red (for example) will blend the source colours with the destination colours and give different effects to what you may think. The above image was created on a surface cleared to black, but if we clear the surface to red, we get this instead:":"即使表面的 Alpha 为 0,{}{} 颜色分量仍然存在并且会影响所有混合操作 {}{}。因此,绘制到已使用红色 (例如) 清除的零 alpha 清除表面会将源颜色与目标颜色混合,并给出您可能想到的不同效果。上面的图像是在清除为黑色的表面上创建的,但是如果我们将表面清除为红色,我们会得到以下结果:",
"Extended Blend Modes":"扩展混合模式",
+ "Extended Blend Modes (Factors)":"扩展混合模式 (因子)",
+ "First we create a surface and define its room position. Then in the Draw event, we check if the surface doesn\u0027t exist, and then recreate it.":"首先,我们创建一个表面并定义其房间位置。然后在 Draw 事件中,我们检查表面是否不存在,然后重新创建它。",
"Following the same rule, if you wanted to simply reduce the brightness of a background by 50% then you would have a colour that is 50% red, 50% green and 50% blue, ie: RGB (128, 128, 128). This blend mode is mainly used for drawing shadows, or creating interesting fade out effects.":"按照同样的规则,如果你想简单地将背景的亮度降低50%,那么你就会有一个50%红色,50%绿色和50%蓝色的颜色,即:RGB(128,128,128)。这种混合模式主要用于绘制阴影,或创建有趣的淡出效果。",
"Guide To Using Blend Modes":"混合模式使用指南",
"Guide To Using Blendmodes":"Blendmodes使用指南",
+ "Here, both values are finally {}added together{}, as the default equation is {}bm_add{}, however you can change that to subtract or to use some other equation (covered later on this page).":"此处,两个值最终会 {} 相加 {},因为默认方程为 {}bm_add{},不过您可以更改该方程以进行减法或使用其他方程 (本页稍后介绍)。",
+ "Here, we\u0027re drawing a sprite to a {}surface{}, and then drawing a circle that subtracts whatever is in the surface. The surface is then drawn to the screen.":"在这里,我们将精灵绘制到 {} 表面 {},然后绘制一个圆圈,减去表面中的所有内容。然后将表面绘制到屏幕上。",
+ "Hopefully you can see clearly now what the blend mode factors do, and how combining them can change what is drawn to create some interesting effects.":"希望您现在可以清楚地了解混合模式因素的作用,以及将它们组合起来如何改变绘制的内容以创建一些有趣的效果。",
"Hopefully you can see clearly now what the blend mode factors do, and how combining them can change what is drawn to create some interesting effects. We will now look at a practical example of how to combine these factors to create your own custom blend modes.":"希望您现在可以清楚地了解混合模式因素的作用,以及将它们组合起来如何改变绘制的内容以创建一些有趣的效果。 现在,我们将看一个实际示例,了解如何结合这些因素来创建您自己的自定义混合模式。",
"How Things Are Drawn":"事物是如何绘制的",
"If you then proceed to draw another circle in the existing circle, also with an alpha of 0.5, then the alpha outside the circles would be 0, in between the circles 0.25, and in the smaller circle it would be 0.375:":"如果你在现有的圆上再画一个alpha值为0.5的圆,那么在圆外的alpha值为0,在圆间的alpha值为0.25,在较小的圆内的alpha值为0.375:",
@@ -22,8 +42,15 @@
"If you\u0027ve been using {}GameMaker{} for any length of time, you will almost certainly have come across {}blend modes{}, and probably even used them in your games. Blend modes are a great way to change how something is drawn to give interesting and specific graphical effects, but do you know how they work and how do you use them? This is a subject that can confuse people and so in this section we hope to dispel some of the mystery surrounding blend modes and enable you to use them to their fullest extent in your games.":"如果您已经使用{}GameMaker{}一段时间,您几乎肯定会遇到{}混合模式{},甚至可能在游戏中使用它们。混合模式是更改绘制方式以提供给予有趣和特定图形效果的好方法,但您知道它们的工作原理以及如何使用它们吗?这是一个可能会让人们感到困惑的主题,因此在本节中,我们希望消除一些围绕混合模式的神秘感,并使您能够在游戏中最大限度地使用它们。",
"If you\u0027ve been using {}GameMaker{} for any length of time, you will almost certainly have come across {}blend modes{}, and probably even used them in your games. Blend modes are a great way to change how something is drawn to give interesting and specific graphical effects, but do you know how they work and how to use them? This is a subject that can confuse people and so in this section we hope to dispel some of the mystery surrounding blend modes and enable you to use them to their fullest extent in your games.":"如果您使用 {}GameMaker{} 已有一段时间,那么您几乎肯定会遇到过 {} 混合模式 {},甚至可能会在您的游戏中使用它们。混合模式是改变某些内容的绘制方式以提供有趣且特定的图形效果的好方法,但是您知道它们如何工作以及如何使用它们吗?这是一个可能令人困惑的主题,因此在本节中,我们希望消除有关混合模式的一些神秘面纱,并使您能够在游戏中充分利用它们。",
"It\u0027s worth mentioning that with {}GameMaker{} you can take this one step further using the function {}{}gpu_set_blendmode_ext_sepalpha(){}{}. This permits you to separate out the alpha component of the different blend mode factors and use them individually to create even more possible combinations. We won\u0027t cover this function here as it\u0027s explained in depth already in the manual, but it\u0027s worth mentioning just so you know it\u0027s available for use.":"值得一提的是,通过 {}GameMaker{},您可以使用函数 {}{}gpu_set_blendmode_ext_sepalpha(){}{} 更进一步。 这允许您分离出不同混合模式因子的 Alpha 分量,并单独使用它们来创建更多可能的组合。 我们不会在这里介绍这个功能,因为它已经在手册中进行了深入解释,但值得一提,以便您知道它可以使用。",
+ "It\u0027s worth mentioning that with {}GameMaker{} you can take this one step further using the function {}{}gpu_set_blendmode_ext_sepalpha{}{}. This permits you to separate out the alpha component of the different blend mode factors and use them individually to create even more possible combinations. We won\u0027t cover this function here as it\u0027s explained in depth already in the manual, but it\u0027s worth mentioning just so you know it\u0027s available for use.":"值得一提的是,通过 {}GameMaker{},您可以使用函数 {}{}gpu_set_blendmode_ext_sepalpha{}{} 更进一步。这允许您分离出不同混合模式因子的 Alpha 分量,并单独使用它们来创建更多可能的组合。我们不会在这里介绍这个功能,因为它已经在手册中进行了深入解释,但值得一提,以便您知道它可以使用。",
+ "Knowing these will help you understand how each factor works, as one factor may use e.g. the {}Rs{} value (source red), but another may use {}Rd{} (destination red), and so on.":"了解这些将帮助您了解每个因素的工作原理,因为一个因素可能会使用例如 {}Rs{} 值 (源红色),但另一个可能使用 {}Rd{}( 目标红色),依此类推。",
+ "Let\u0027s now look through how each basic blend mode works.":"现在让我们看看每种基本混合模式的工作原理。",
+ "Max blending. Similar to additive blending.":"最大混合。类似于添加剂混合。",
+ "Normal blending (the default blend mode).":"正常混合 (默认混合模式)。",
+ "Note though that not all the blend modes used by art programs are available to you within {}GameMaker{} due to the fact some of them can actually force the colour values to go over 255 and so create special effects, but that doesn\u0027t mean you can\u0027t create passable imitations of these effects, or even brand new effects, using them.":"请注意,尽管并非艺术程序使用的所有混合模式都可以在 {}GameMaker{} 中使用,因为其中一些混合模式实际上可以强制颜色值超过 255,从而创建特殊效果,但这并不意味着这意味着您无法使用它们创建这些效果的合格模仿,甚至无法创建全新的效果。",
"Now you know how setting blend modes works and have seen an example of it being used for everyday drawing, let\u0027s look at something abit more complex...":"现在你知道了如何设置混合模式的工作原理,并看到了一个例子,它被用于日常绘图,让我们看看一些更复杂的东西。",
"Now you know the very basics behind using a blend mode in {}GameMaker{}. It takes the RGB and alpha values for the source image (what is being drawn) and it then blends these with the RGB and alpha values of the destination (what is being drawn too). This blending is done by multiplying the individual components for each pixel colour and alpha by different amounts, depending on the effects that we wish to achieve. With this knowledge, you can start to use blend modes in your games to get glowing lasers, realistic shadows, or saturated transition effects, but there is still more to be learned here! Below we look at the {}extended blend modes{}, as well as explore a bit of the maths behind them, so that you can create your own blending effects like multiply or overlay.":"现在你知道了在GameMaker中使用混合模式的基本原理,它为源图像获取RGB和alpha值(正在绘制的内容),然后将其与目标的RGB和alpha值混合(也正在绘制)。这种混合是通过将每个像素颜色和alpha的各个分量乘以不同的量来完成的,这取决于我们希望实现的效果。有了这些知识,你可以开始在游戏中使用混合模式来获得发光的激光,逼真的阴影或饱和的过渡效果,但这里还有更多的东西要学!下面我们来看看{}扩展混合模式{},以及探索它们背后的一些数学,以便您可以创建自己的混合效果,如相乘或叠加。",
+ "Now you know the very basics behind using a blend mode in {}GameMaker{}. It takes the RGBA values for the source image (what is being drawn) and it then blends these with the RGBA values of the destination (what is being drawn to).":"现在您已经了解了在 {}GameMaker{} 中使用混合模式的基础知识。它获取源图像 (正在绘制的内容) 的 RGBA 值,然后将这些值与目标图像 (正在绘制的内容) 的 RGBA 值混合。",
"Now, while that text is correct and explains what blend modes do, it\u0027s not really intuitive... so let\u0027s go into a bit more detail and explain what this is all about.":"现在,虽然文本是正确的,并解释了混合模式的作用,但它并不直观......所以让我们更详细地解释一下这是怎么回事。",
"OVERVIEW":"概述",
"One final thing is worth noting about blend modes, and that is how they affect the {}alpha {}component of a colour. When simply drawing to the {}application surface{} or the {}display buffer{}, you don\u0027t really need to take into consideration the destination alpha value as it will {}always {}be one. However surfaces that you make yourself are different, since you can clear a surface to have any alpha value from zero to one that you wish. This leads to some interesting effects that are contrary to what most people would expect.":"关于混合模式,最后一件事值得注意,那就是它们如何影响颜色的 {}Alpha{} 分量。 当仅绘制到{}应用程序表面{}或{}显示缓冲区{}时,您实际上不需要考虑目标 Alpha 值,因为它{}始终{}为 1。 然而,您自己制作的表面是不同的,因为您可以清除表面以使其具有您希望的从零到一的任何 alpha 值。 这会导致一些有趣的效果,与大多数人的预期相反。",
@@ -31,35 +58,74 @@
"One of the problems people have with blend modes is visualising the results, so to show the maths behind them, we\u0027ll use this blend mode as our test subject since it\u0027s the blend mode that everyone uses the most and we know exactly what to expect from it. Imagine we are drawing a rectangle with the colour {}(128, 255, 64, 255){} over a background with the colour {}(64, 128, 255, 255){}:":"人们在使用混合模式时遇到的问题之一是可视化结果,因此为了展示其背后的数学原理,我们将使用此混合模式作为我们的测试对象,因为它是每个人使用最多的混合模式,并且我们确切地知道会发生什么从中。假设我们在颜色为 {}(64, 128, 255, 255){} 的背景上绘制一个颜色为 {}(128, 255, 64, 255){} 的矩形:",
"Overview":"概述",
"Q(+y?>^":"",
+ "Reverse subtractive blending. Destination is subtracted from the source.":"反向减法混合。从源中减去目标。",
"SURFACES AND ALPHA":"曲面和阿尔法",
"Say you have surface with every pixel at alpha 0, then you draw a circle on it with alpha 0.5 using the {}bm_normal{} blend mode. The entire surface is still going to be alpha 0, but in the circle the alpha will actually be 0.25, since:":"假设你有一个表面,每个像素的alpha都是0,然后你用{}bm_normal{}混合模式在上面画一个alpha为0.5的圆。整个表面仍然是alpha 0,但是在圆中alpha实际上是0.25,因为:",
+ "Smaller value from source and destination is selected.":"选择源和目标中较小的值。",
"So when we draw something on the screen, our graphics processor is actually doing the following for every single pixel:":"所以当我们在屏幕上画东西时,我们的图形处理器实际上对每个像素都做了以下操作:",
+ "Subtract destination from source.":"从源中减去目的地。",
+ "Subtract source from destination.":"从目的地减去源。",
+ "Subtractive blending. Source is subtracted from the destination.":"减法混合。从目标中减去源。",
"Surfaces And Alpha":"表面 和 透明度",
"That code draws the instance sprite using an {}additive {}blend mode. The additive blend mode is set using one of the available GML constants, of which there are four for basic modes:":"该代码使用{}添加{}混合模式绘制实例精灵。添加混合模式使用可用的GML常量之一设置,其中有四个用于基本模式:",
+ "That code draws the instance sprite using an {}additive {}blend mode. The additive blend mode is set using one of the available GML constants, of which there are six for basic modes:":"该代码使用 {} 加法 {} 混合模式绘制实例精灵。加法混合模式使用可用的 GML 常量之一进行设置,其中有六个用于基本模式:",
+ "The \"Extended Blend Mode\" column shows the factors that are applied to the source and the destination (respectively), and the \"Blend Equation\" column shows the equation used to bring those two values together.":"\"扩展混合模式 \" 列显示 (分别) 应用于源和目标的因子,\"混合方程 \" 列显示用于将这两个值结合在一起的方程。",
+ "The background colour in this example is {}(50, 100, 0, 255){}.":"本示例中的背景颜色为 {}(50, 100, 0, 255){}。",
"The blend factor {}bm_zero{} effectively removes the destination colour from the equation (as zero times anything is zero), so we are left with the source colour multiplied by the blend factor of the destination colour, hence the name \"multiply\" for the mode. To use this in {}GameMaker{}, you would simply have something like this in your {}Draw Event{}:":"混合因子{}bm_zero{}有效地将目标颜色从等式中移除(因为零乘以任何东西都是零),所以我们剩下的是源颜色乘以目标颜色的混合因子,因此该模式的名称为\"乘\"。要在{}GameMaker{}中使用此模式,您只需在{}Draw Event{}中设置如下内容:",
+ "The circle will subtract its alpha value from whatever is already in the surface, allowing us to see through it.":"圆将从表面已有的任何内容中减去其 alpha 值,使我们能够看穿它。",
+ "The final colour of a pixel is calculated by multiplying each component of the source and destination by a {}factor{}, and then bringing them together according to the set {}equation{}.":"像素的最终颜色是通过将源和目标的每个分量乘以一个 {} 因子 {},然后根据设置的 {} 方程 {} 将它们组合在一起来计算的。",
"The following equations are available in {}GameMaker{}, which can be set using {}{}gpu_set_blendequation{}{}:":"{}GameMaker{} 中提供了以下方程,可以使用 {}{}gpu_set_blendequation{}{} 设置:",
"The four \"basic\" blend modes that {}GameMaker{} has are actually composites of two of these blend factors.":"{}GameMaker{}拥有的四种\"基本\"混合模式实际上是其中两种混合因子的组合。",
"The function {}gpu_set_blendmode_ext{}{}(src, dest){} indicates what blend mode to use for both the source and destination colour. The new colour is some factor times the source and another factor times the destination. These factors are set with this function. To understand this, the source and destination both have a red, green, blue, and alpha component. So the {}source {}is ({}Rs, Gs, Bs, As{}) and the {}destination {}is ({}Rd, Gd, Bd, Ad{}). All values are considered to lie between 0 and 1.":"函数 {}gpu_set_blendmode_ext{}{}(src, dest){} 指示用于源颜色和目标颜色的混合模式。新颜色是某个因素乘以来源,另一个因素乘以目的地。这些因素是用这个函数设置的。为了理解这一点,源和目标都具有红色、绿色、蓝色和 alpha 分量。所以 {}source {}is ({}Rs, Gs, Bs, As{}) 和 {}destination {}is ({}Rd, Gd, Bd, Ad{})。所有值都被认为介于 0 和 1 之间。",
"The next image was taken from a test project in GameMaker using this exact code:":"下一张图片是使用以下代码从GameMaker的测试项目中拍摄的:",
"The second column shows you what values each of the R, G, B, A components are multiplied with, when that factor is being used.":"第二列显示使用该因子时,R、G、B、A 各分量乘以的值。",
+ "The surface is then drawn in the room at its defined position.":"然后在房间中的定义位置绘制表面。",
"The {}blend factors{} mentioned above are defined in {}GameMaker{} by a number of GML constants, and each one represents a factor by which the source or destination R, G, B and A values should be multiplied by. The factors available are:":"上述{}混合因子{}在{}GameMaker{}中由多个GML常量定义,每个常量代表源或目标R、G、B和A值应乘以的因子。可用因子包括:",
+ "Then it does the following for every single pixel:":"然后它对每个像素执行以下操作:",
+ "Then we draw the following to that surface:":"然后我们在该表面上绘制以下内容:",
+ "This again uses the same factors as both {}bm_add{} and {}bm_subtract{}, but uses the reverse-subtract equation, so the destination colour is subtracted from the source colour (i.e. background is removed from the foreground).":"这再次使用与 {}bm_add{} 和 {}bm_subtract{} 相同的因子,但使用逆减方程,因此从源颜色中减去目标颜色 (即从前景中移除背景)。",
"This blend mode adds the colours of the source and destination pixels together (but does not affect the alpha values). For example, if your background image is a solid colour with an RGB value of (100,15,70), and then you draw a rectangle with an RGB of (120,25,30), then (using bm_add) the fina RGB values for each pixel of the rectangle would be (220,40,100). Note that colour values can\u0027t go over 255 (or under 0), so anything that adds up to more than that will be clamped to 255.":"此混合模式将源像素和目标像素的颜色添加在一起(但不影响alpha值)。例如,如果背景图像是RGB值为(100,15,70),然后绘制一个RGB为(120,25,30),然后(使用bm_add)矩形的每个像素的最终RGB值将为(220,40,100).注意颜色值不能超过255(或小于0),所以任何加起来超过255的值都将被箝位到255。",
"This blend mode draws all pixels with their colour and alpha values essentially unchanged (although, later in this section you\u0027ll see that this isn\u0027t {}quite{} true...), but {}GameMaker{} has a number of {}built-in blend modes{} that can be set to change this behaviour.":"此混合模式会绘制所有像素,其颜色和 Alpha 值基本保持不变 (不过,在本节后面您将看到这 {} 完全 {} 不正确 ...),但 {}GameMaker{} 有一个数字可以通过设置来改变此行为的 {} 内置混合模式 {}。",
"This blend mode is a bit different to the previous one, as it it works on a percentage basis rather than a direct value. This percentage is what will be subtracted from the destination colour (the colour of the pixel being drawn to). To explain this better, let\u0027s look at an example.":"这个混合模式与前一个有点不同,因为它是基于百分比而不是直接值。这个百分比是从目标颜色(正在绘制的像素的颜色)中减去的百分比。为了更好地解释这一点,让我们看一个例子。",
"This blend mode is more complex to explain, but it basically multiplies the source colours by the source alpha, then adds them to the destination colour values multiplied by the inverse source colour values. The actual maths behind bm_max (and the other blend modes) we\u0027ll cover in part two of our article, but all you need to know is that the result will be a more \"saturated\" and brighter colour, without leading to the same pure white brilliance that using {}bm_add{} will cause.":"这种混合模式更难解释,但它基本上是将源颜色乘以源alpha,然后将它们添加到目标颜色值乘以逆源颜色值。bm_max背后的实际数学(以及其他混合模式)我们将在文章的第二部分介绍,但您需要知道的是,结果将是一个更\"饱和\"和更明亮的颜色,而不会导致使用{}BM_add{}将导致的相同的纯白色亮度。",
+ "This blend mode multiplies the source colour with its alpha, just like {}bm_normal{}, however it keeps the destination as-is ({}bm_one{}). It then adds both together, resulting in a lighter colour. Note that colour values can\u0027t go over 255 (or under 0), so anything that adds up to more than that will be clamped to 255.":"此混合模式将源颜色与其 Alpha 相乘,就像 {}bm_normal{} 一样,但它保持目标原样 ({}bm_one{})。然后将两者加在一起,产生更浅的颜色。请注意,颜色值不能超过 255( 或低于 0),因此任何加起来超过该值的值都将被限制为 255。",
+ "This blending is done by multiplying the individual components for each pixel colour and alpha by different amounts, depending on the effects that we wish to achieve, and then calculating the final pixel value from both using the set equation.":"这种混合是通过将每个像素颜色和 Alpha 的各个分量乘以不同的量来完成的,具体取决于我们希望实现的效果,然后使用设置的方程计算两者的最终像素值。",
+ "This can be achieved with the following {}Create{} and {}Draw{} event code:":"这可以通过以下 {}Create{} 和 {}Draw{} 事件代码来实现:",
"This gives a final pixel colour (96, 192, 159, 192), and will give an image like that shown below:":"这给出了最终的像素颜色(96、192、159、192),并将给出如下所示的图像:",
"This gives a final pixel colour {}(96, 192, 159, 192){}, and will give an image like that shown below:":"这将给出最终像素颜色 {}(96, 192, 159, 192){},并给出如下所示的图像:",
+ "This is useful for removing parts of an image using a mask, as shown in an example later on this page under \"{}Blend Equations{}\".":"这对于使用遮罩移除部分图像非常有用,如本页后面 \"{} 混合方程 {}\" 下的示例所示。",
+ "This means that the way a final pixel colour is calculated is the following: {}(source * factor) + (destination * factor){}.":"这意味着最终像素颜色的计算方式如下:{}( 源 * 因子 )+( 目标 * 因子 ){}。",
+ "This mode uses the same factors as {}bm_add{}, however it uses the subtract equation so the source colour is subtracted from the destination colour (i.e. foreground is removed from the background).":"此模式使用与 {}bm_add{} 相同的因子,但它使用减法方程,以便从目标颜色中减去源颜色 (即从背景中移除前景)。",
+ "This uses the {}bm_one{} factor for both source and destination colours, so they are not changed at all. Then it makes use of the minimum equation, so that whichever component value is smaller between the source and the destination (for each of R, G, B and A) is used for the final pixel.":"这对源颜色和目标颜色都使用了 {}bm_one{} 因子,因此它们根本不会改变。然后它利用最小方程,以便源和目标 (对于 R、G、B 和 A 中的每一个) 之间较小的分量值用于最终像素。",
"Through reading this guide, you should already have a basic understanding of what a blend equation is. It controls how the source and destination colours are mixed together, after the factors have been applied.":"通过阅读本指南,您应该已经对什么是混合方程有了基本的了解。它控制应用因素后源颜色和目标颜色如何混合在一起。",
"Time to look at a practical example of how this comes together for drawing in {}GameMaker{}. For this, we are going to look at bm_normal, which is really:":"是时候看看一个实际的例子了,它是如何在{}GameMaker{}中进行绘图的。为此,我们将看看bm_normal,它实际上是:",
+ "Time to look at a practical example of how this comes together for drawing in {}GameMaker{}. For this, we are going to look at the {}bm_normal{} blend mode, which is simply:":"现在我们来看看一个实际示例,了解如何将其结合起来在 {}GameMaker{} 中进行绘图。为此,我们将了解 {}bm_normal{} 混合模式,它很简单:",
"To illustrate this, we are going to look at drawing using the basic default {}bm_normal{}. Most people think that having a surface cleared to alpha 0, and then drawing something with an alpha of 0.5 will give a resulting alpha value 0.5 too... {}but this is not the case{} and is something that many people think is a \"bug\" in how {}GameMaker{} renders things. However, as you will see, it\u0027s not a bug at all!":"为了说明这一点,我们将使用基本的默认值{}bm_normal{}进行绘制。大多数人认为将表面清除为alpha 0,然后绘制alpha为0.5的东西将给予结果alpha值也为0.5.{}但事实并非如此{},许多人认为这是{}GameMaker{}渲染事物的\"错误\"。然而,正如你所看到的,这根本不是一个bug!",
+ "Use the function {}{}gpu_set_blendmode{}{} to apply a set of blend factors and equation {}at the same time{}, as a \"preset\" blend mode.":"使用函数 {}{}gpu_set_blendmode{}{}{} 同时 {} 应用一组混合因子和方程,作为 \" 预设 \" 混合模式。",
+ "Use whichever value is larger.":"使用较大的值。",
+ "Use whichever value is smaller.":"使用较小的值。",
+ "Using Equations":"使用方程式",
"Using the different factors available, you can create your own blend modes to achieve blending options that are not available to you normally. In this example, we are going to create a {}multiply {}effect like that used in Photoshop. We can simulate this blend mode using two of our above mentioned blend mode factor constants like this:":"使用不同的可用因子,您可以创建自己的混合模式,以实现通常不可用的混合选项。在这个例子中,我们将创建一个类似于Photoshop中使用的{}乘{}效果。我们可以使用上面提到的两个混合模式因子常量来模拟这种混合模式,如下所示:",
+ "Using this blend mode is a great way to get that \"neon glow\" look, and is most often used for lighting effects, lasers or just about anything that you want to appear to glow or have luminescence.":"使用这种混合模式是获得 \" 霓虹灯发光 \" 外观的好方法,并且最常用于照明效果、激光或任何您想要发光或发光的东西。",
+ "We denote the source RGBA as {}(Rs, Gs, Bs, As){} and destination RGBA as {}(Rd, Gd, Bd, Ad){}.":"我们将源 RGBA 表示为 {}(Rs, Gs, Bs, As){},将目标 RGBA 表示为 {}(Rd, Gd, Bd, Ad){}。",
"We have seen already how {}bm_normal{} looks - since that\u0027s what everything defaults to! - so let\u0027s continue on to look at the other three in a bit more detail...":"我们已经看到了{}bm_normal{}的外观-因为这是所有默认设置!-所以让我们继续更详细地查看其他三个.",
+ "We saw that each of the built-in blend modes applies {}factors{} to the {}source{} and {}destination{} colours. For example, {}bm_add{} multiplies the source with its alpha, and multiplies the destination with 1.":"我们看到每种内置混合模式都会将 {} 因子 {} 应用于 {} 源 {} 和 {} 目标 {} 颜色。例如,{}bm_add{} 将源与其 Alpha 相乘,并将目标与 1 相乘。",
+ "We will now look at a practical example of how to combine these factors to create your own custom blend modes.":"现在,我们将看一个实际示例,了解如何结合这些因素来创建您自己的自定义混合模式。",
+ "When determining the final colour of a pixel, GameMaker will combine the source and destination colours according to the {}blend mode{} -- basically asking, \"how should I combine the pink and the yellow?\".":"在确定像素的最终颜色时,GameMaker 会根据 {} 混合模式 {} 组合源颜色和目标颜色 - 基本上是在问 \" 我应该如何组合粉色和黄色?\"。",
"When we talk about the {}source {}we are talking about the colour and alpha values of the pixel that is being drawn, and when we talk about the {}destination {}we are talking about the colour and alpha values of the pixel that it is being drawn over. To keep things easier we can write out the source colour as it\u0027s components, like this:":"当我们谈论{}source{}时,我们谈论的是正在绘制的像素的颜色和alpha值,而当我们谈论{}destination{}时,我们谈论的是正在绘制的像素的颜色和alpha值。为了使事情更容易,我们可以将源颜色写为它的组件,如下所示:",
+ "When you go to draw something, the GPU gets this:":"当你去画东西时,GPU 会得到以下信息:",
"When {}GameMaker{} goes to draw a pixel there\u0027s a {}source colour{} (the colour of the pixel you are going to draw) and a {}destination colour{} (the colour that\u0027s already in the pixel we\u0027re drawing to). When determining the new colour of the pixel, GameMaker will combine the source and destination colours according to the {}blend mode{}, as mentioned above. Each component of the colours is stored as a floating point value between 0 and 1, and the new colour is calculated by multiply each component of the source colour by some factor and by multiplying each component of destination colour by some other factor and then adding the results together component by component.":"当{}GameMaker{}去绘制一个像素时,有一个{}源颜色{}(要绘制的像素的颜色)和{}目标颜色{}(我们要绘制的像素中已有的颜色)。当确定像素的新颜色时,GameMaker将根据{}混合模式{}将源颜色和目标颜色联合收割机组合,颜色的每个分量被存储为0和1之间的浮点值,并且通过将源颜色的每个分量乘以某个因子并且通过将目的地颜色的每个分量乘以某个其它因子并且然后将结果加在一起分量,成分",
"When {}GameMaker{} goes to draw a pixel, there\u0027s a {}source colour{} (the colour of the pixel you are going to draw) and a {}destination colour{} (the colour that\u0027s already in the pixel we\u0027re drawing to). For example, if you\u0027re drawing a pink colour after having drawn a yellow colour at the same pixel, pink is the {}source{} (what you\u0027re drawing), and yellow is the {}destination{} (as it\u0027s already there).":"当 {}GameMaker{} 开始绘制像素时,会存在一个 {} 源颜色 {}( 您要绘制的像素的颜色) 和一个 {} 目标颜色 {}( 我们已经存在于像素中的颜色) 重新绘制)。例如,如果您在同一像素绘制黄色后绘制粉红色,则粉红色是 {} 源 {}( 您正在绘制的内容),黄色是 {} 目标 {}( 因为它是已经在那了)。",
+ "With this knowledge, you can start to use blend modes in your games to get glowing lasers, realistic shadows, or saturated transition effects, but there is still more to be learned here! Below we look at the {}extended blend modes {}(factors), as well as explore a bit of the maths behind them, so that you can create your own blending effects like multiply or overlay.":"有了这些知识,您就可以开始在游戏中使用混合模式来获得发光的激光、逼真的阴影或饱和的过渡效果,但这里还有更多东西需要学习!下面我们将了解 {} 扩展混合模式 {}( 因子),并探讨其背后的一些数学知识,以便您可以创建自己的混合效果,例如相乘或叠加。",
+ "With {}{}gpu_set_blendmode_ext{}{}, you can {}manually set the factors{} for the source and destination colours, separately. This gives you a ton more options to draw your pixels, as you can now manually choose what the source multiplies with, and then what the destination multiplies with.":"通过 {}{}gpu_set_blendmode_ext{}{},您可以分别为源颜色和目标颜色 {} 手动设置系数 {}。这为您提供了更多绘制像素的选项,因为您现在可以手动选择源乘什么,然后选择目标乘什么。",
+ "You can also set the equation used for RGB and Alpha separately using {}{}gpu_set_blendequation_sepalpha{}{}.":"您还可以使用 {}{}gpu_set_blendequation_sepalpha{}{} 分别设置用于 RGB 和 Alpha 的方程。",
"You can see how the inclusion of a lower alpha affects this calculation:":"您可以看到包含较低的 alpha 如何影响此计算:",
+ "You can use the {}bm_eq_subtract{} equation to achieve the following effect:":"您可以使用 {}bm_eq_subtract{} 方程来实现以下效果:",
+ "You would call this before (for example) drawing a sprite, then reset it afterwards, something like this:":"您可以在 (例如) 绘制精灵之前调用此函数,然后在之后重置它,如下所示:",
+ "{}(Rd, Gd, Bd, Ad){} = the RGB and Alpha of the colour that is already there at the pixel position.":"{}(Rd、Gd、Bd、Ad){}= 像素位置处已存在的颜色的 RGB 和 Alpha。",
"{}(Rd, Gd, Bd, Ad){} = the RGB and Alpha of the colour you are going to draw on.":"{}(Rd,Gd,Bd,Ad){}=您要绘制的颜色的RGB和Alpha。",
"{}(Rs, Gs, Bs, As){} = the RGB and Alpha of the colour you are going to draw.":"{}(Rs,Gs,Bs,As){}=您要绘制的颜色的RGB和Alpha。",
+ "{}Can you spot the difference? Probably not! There will, however, be some deviation between the two due to differences between the render tools used, but it\u0027s almost exactly as you would expect.":"{} 您看得出来差别吗?可能不会!然而,由于使用的渲染工具之间的差异,两者之间会存在一些偏差,但它几乎与您所期望的完全一样。",
"{}Can you spot the difference? Probably not! There will, however, be some deviation between the two due to differences between the render tools used, but it\u0027s almost exactly as you would expect. Note though that not all the blend modes used by art programs are available to you within {}GameMaker{} due to the fact some of them can actually force the colour values to go over 255 and so create special effects, but that doesn\u0027t mean you can\u0027t create passable imitations of these effects, or even brand new effects, using them.":"{}您看得出来差别吗? 可能不会! 然而,由于使用的渲染工具之间的差异,两者之间会存在一些偏差,但它几乎与您所期望的完全一样。 请注意,尽管并非艺术程序使用的所有混合模式都可以在 {}GameMaker{} 中使用,因为其中一些混合模式实际上可以强制颜色值超过 255,从而创建特殊效果,但这并不意味着 这意味着您无法使用它们创建这些效果的合格模仿,甚至无法创建全新的效果。",
"{}Example of how bm_normal Works{}{}Example of how bm_normal Works{}":"{}bm_normal 工作原理示例 {}{}bm_normal 工作原理示例 {}",
"{}GameMaker{} uses the function {}gpu_set_blendmode(){} to change the blending that your game uses for drawing. You would call this before (for example) drawing a sprite, then set it back again afterwards, something like this:":"{}GameMaker{}使用函数{}gpu_set_blendmode(){}来更改游戏用于绘制的混合。您可以在绘制精灵之前(例如)调用此函数,然后在绘制精灵之后再次设置它,类似于以下内容:",
@@ -69,7 +135,12 @@
"{}Imagine you want to reduce the red value of all pixels drawn in an area of the room by 25%. You would first need to get 25% of 255, then convert that into an RGB colour value, and then finally use that along with bm_subtract to draw over the area. Something like this:":"{}假设你想将房间某个区域中所有像素的红色值减少25%。你首先需要得到255的25%,然后将其转换为RGB颜色值,最后使用沿着bm_subtract在该区域上绘制。类似这样:",
"{}So, our blend mode looks like this:":"{}因此,我们的混合模式如下所示:",
"{}So, our blending calculations look like this:":"{} 因此,我们的混合计算如下所示:",
+ "{}The background colour in this example is {}(50, 100, 0, 255){}.":"{} 此示例中的背景颜色为 {}(50, 100, 0, 255){}。",
"{}This blend mode can be useful when you need to draw overlapping images without them becoming so bright that they can\u0027t be seen. The bright parts will become brighter, but they should still maintain a level of colour and hue. Note though that the alpha value of the source image will also influence in the final effect when using this blend mode.":"{}当你需要绘制重叠的图像时,此混合模式非常有用,而不会让它们变得太亮而看不见。明亮的部分会变得更亮,但它们仍然应该保持一定的颜色和色调。请注意,使用此混合模式时,源图像的alpha值也会影响最终效果。",
+ "{}This blend mode is more complex to explain, but it basically multiplies the source colours by the source alpha, then adds them to the destination colour values multiplied by the inverse source colour values. The actual maths behind {}bm_max{} (and the other blend modes) we\u0027ll cover in part two of our article, but all you need to know is that the result will be a more \"saturated\" and brighter colour, without leading to the same pure white brilliance that using{} {}{}{}bm_add{}{}{} {}will cause.{}":"{} 这种混合模式解释起来比较复杂,但它基本上是将源颜色乘以源 Alpha,然后将它们与目标颜色值乘以源颜色值的逆值相加。我们将在文章的第二部分介绍 {}bm_max{}( 以及其他混合模式) 背后的实际数学原理,但您需要知道的是,结果将是更 \" 饱和 \" 且更明亮的颜色,而不会导致达到与使用 {}{}{}{}bm_add{}{}{}{} 相同的纯白色亮度。{}",
"{}Using our extended blend mode we get the following:":"{}使用我们的扩展混合模式,我们得到以下结果:",
- "{}Using this blend mode is a great way to get that \"neon glow\" look, and is most often used for lighting effects, or lasers or just about anything that you want to appear to glow or have luminescence.":"{}使用此混合模式是获得\"氖发光\"外观的好方法,并且最常用于照明效果,或激光或任何您想要看起来发光或发光的东西。"
+ "{}Using this blend mode is a great way to get that \"neon glow\" look, and is most often used for lighting effects, or lasers or just about anything that you want to appear to glow or have luminescence.":"{}使用此混合模式是获得\"氖发光\"外观的好方法,并且最常用于照明效果,或激光或任何您想要看起来发光或发光的东西。",
+ "{}bm_normal{} is the default blend mode, which multiplies the source colour with its alpha, and multiplies the destination colour with the {}inverse{} of the source alpha (to make space for the source colour to fit in). Finally it adds both together (as the equation is {}bm_add{}):":"{}bm_normal{} 是默认混合模式,它将源颜色与其 Alpha 相乘,并将目标颜色与源 Alpha 的 {} 逆 {} 相乘 (为源颜色留出空间)。最后将两者相加 (因为等式为 {}bm_add{}):",
+ "{}{}IMPORTANT{}{} {}Blend factors{} are not applied when {}bm_eq_min{} or {}bm_eq_max{} is used as the blend equation, which is effectively the same as using {}bm_one{} as the factors.":"{}{} 重要{}{} 当使用 {}bm_eq_min{} 或 {}bm_eq_max{} 作为混合方程时,不会应用 {} 混合因子 {},这与使用 {}bm_one{} 作为混合方程实际上相同的因素。",
+ "{}{}NOTE{}{} These examples demonstrate blend modes using a green background, with a blue square drawn on it, both of which count as the destination. A grey square is drawn as the source, using each of the blend modes.":"{}{} 注意{}{} 这些示例演示了使用绿色背景并在其上绘制蓝色方块的混合模式,这两种模式都算作目标。使用每种混合模式绘制一个灰色方块作为源。"
}
\ No newline at end of file
diff --git a/language/zh/www/Additional_Information/Guide_To_Using_JSON.json b/language/zh/www/Additional_Information/Guide_To_Using_JSON.json
new file mode 100644
index 000000000..985ad81a3
--- /dev/null
+++ b/language/zh/www/Additional_Information/Guide_To_Using_JSON.json
@@ -0,0 +1,65 @@
+{
+ "A collection of name/value pairs, known as a \"map\", \"dictionary\" or \"object\" in programming languages. It is represented in {}GameMaker{} by a {}{}Struct{}{} or a {}{}DS Map{}{}.":"名称 / 值对的集合,在编程语言中称为 \" 映射\"、\"字典 \" 或 \" 对象\"。它在 {}GameMaker{} 中由 {}{}Struct{}{} 或 {}{}DS Map{}{} 表示。",
+ "An ordered list of values, known as a \"list\", \"array\" or \"sequence\" in other programming languages. It is represented in {}GameMaker{} by an {}{}Array{}{} or a {}{}DS List{}{}.":"值的有序列表,在其他编程语言中称为 \" 列表\"、\"数组 \" 或 \" 序列\"。它在 {}GameMaker{} 中由 {}{}Array{}{} 或 {}{}DS List{}{} 表示。",
+ "And then be written to a file using either the text file functions: ":"然后使用文本文件函数写入文件:",
+ "And you can use them like any other {}Vector{} struct: ":"您可以像任何其他 {}Vector{} 结构一样使用它们:",
+ "As an example, suppose you have a constructor {}Vector{}: ":"例如,假设您有一个构造函数 {}Vector{}:",
+ "At you point you might want to restore these vectors in another instance of the game, not just their values ({}x{}, {}y{} and {}z{}) but also their behaviour ({}add{}, {}sum{}, {}dot{}, ...).":"此时,您可能希望在游戏的另一个实例中恢复这些向量,不仅仅是它们的值 ({}x{}、{}y{} 和 {}z{}),还有它们的行为 ({}add{}, {}sum{}, {}dot{},...)。",
+ "By default, string values in the JSON will be checked to see if they contain special values. If so, these values are converted to the internal {}GameMaker{} value. For example: ":"默认情况下,将检查 JSON 中的字符串值以查看它们是否包含特殊值。如果是,这些值将转换为内部 {}GameMaker{} 值。例如:",
+ "By default, {}{}json_stringify{}{} writes the JSON {}linearised{}. In this case everything is placed on the same line, with no space in between and no indentation added. This format is useful when every byte counts, though it is not particularly readable.":"默认情况下,{}{}json_stringify{}{} 写入 {} 线性化 {} 的 JSON。在这种情况下,所有内容都放在同一行上,中间没有空格,也没有添加缩进。当每个字节都很重要时,这种格式很有用,尽管它不是特别可读。",
+ "By manually setting the {}Static Struct{} of the structs that {}{}json_parse{}{} returns with {}{}static_set{}{} you can restore those structs to their original state.":"通过手动设置 {}{}json_parse{}{} 使用 {}{}static_set{}{} 返回的结构的 {0} 静态结构 {1},您可以将这些结构恢复到其原始状态。",
+ "By using {}{}static_set{}{} on the structs you first detach them from the static as a simple \"data\" struct and reattach them to the static chain as \"child\" structs of the static struct of {}Vector{}. Since you can access all static members of the hierarchy of static structs (or constructors) a struct belongs to, this way you give the structs access to {}Vector{}\u0027s {}Static Chain{}, restoring their behaviour.":"通过在结构上使用 {}{}static_set{}{},您首先将它们作为简单的 \" 数据 \" 结构与静态分离,然后将它们作为 {}Vector{} 静态结构的 \" 子 \" 结构重新附加到静态链。由于您可以访问结构所属的静态结构 (或构造函数) 层次结构的所有静态成员,因此您可以通过这种方式为结构提供对 {}Vector{} 的 {} 静态链 {} 的访问权限,从而恢复其行为。",
+ "Can be converted to a JSON string using {}{}json_stringify{}{}: ":"可以使用 {}{}json_stringify{}{} 转换为 JSON 字符串:",
+ "Care should be taken when writing a JSON string to an INI file, as the INI specification can cause issues when using quotes and escape characters. See {}{}ini_write_string(){}{} for more information.":"将 JSON 字符串写入 INI 文件时应小心,因为 INI 规范在使用引号和转义字符时可能会导致问题。请参阅 {}{}ini_write_string(){}{} 了解更多信息。",
+ "Circular references in DS maps, such as references back to the main map itself (forming an infinite loop) or references to maps within the main map forming such infinite loops, will be serialised only on the first level where they\u0027re encountered, and converted to {}null{} for deeper references. In the case of structs such references are immediately converted to {}null{} upon stringifying.":"DS 地图中的循环引用,例如对主地图本身的引用 (形成无限循环) 或对主地图内形成此类无限循环的地图的引用,将仅在遇到它们的第一级进行序列化并进行转换为 {}null{} 以获取更深入的参考。对于结构体,此类引用在字符串化时会立即转换为 {}null{}。",
+ "Compared to the linearised output, the JSON above shows at a glance how the data is constructed.":"与线性化输出相比,上面的 JSON 一目了然地显示了数据的构造方式。",
+ "Contents":"内容",
+ "Data Conversions":"数据转换",
+ "Filter Function":"过滤功能",
+ "From here on, {}v1{} to {}v4{} {}are{} instances of {}Vector{}!":"从现在开始,{}v1{} 到 {}v4{} {}都是{} {}Vector{} 的实例!",
+ "Handles are stored in their string representation {}{}\"ref <type> <id>\"{}{} when writing JSON and are converted back to runtime values when reading back the JSON.{} {} The exception is when using {}{}json_encode{}{}: nested {}DS Maps{} and {}DS Lists{} that you\u0027ve {}marked{} {}as such{} will be written as JSON objects and arrays respectively.{} {} {}{}NOTE{}{} Relying on this behaviour will generally be of little use as the index will change between runs of the game. ":"写入 JSON 时,句柄存储在其字符串表示形式 {}{}“ref <type> <id>”{}{} 中,读回 JSON 时则转换回运行时值。{}\n\n{} 使用 {}{}json_encode{}{} 时会出现例外情况:\n您已{14}标记{15}的嵌套 {}DS Maps{} 和 {}DS List{} 将分别被写入 JSON 对象和数组。{}{}{}\n\n{} {}{}注意{}{} 依赖此行为通常没什么用,因为索引会在游戏运行之间发生变化。",
+ "If you want full control over how the contents of the JSON are read or written, you can optionally provide a filter function that runs for each element to {}{}json_stringify{}{} and {}{}json_parse{}{}. See the function pages for more information.":"如果您希望完全控制 JSON 内容的读取或写入方式,您可以选择提供一个针对每个元素运行的过滤器函数,以便 {}{}json_stringify{}{} 和 {}{}json_parse{}{}。请参阅功能页面了解更多信息。",
+ "In {}GameMaker{}, a struct is such a data structure. It can have both variables and functions as its members. When you stringify a struct\u0027s contents with {}{}json_stringify{}{}, only the struct\u0027s variables are written, not its functions.":"在 {}GameMaker{} 中,结构体就是这样一种数据结构。它可以包含变量和函数作为其成员。当您使用 {}{}json_stringify{}{} 对结构体的内容进行字符串化时,仅写入结构体的变量,而不写入其函数。",
+ "JSON (JavaScript Object Notation) is a lightweight data-interchange format which is easy to read and write, for both people and machines. It is built on two basic structures:":"JSON(JavaScript 对象表示法) 是一种轻量级数据交换格式,对于人和机器来说都易于读写。它建立在两个基本结构之上:",
+ "JSON in {}GameMaker{}":"{}GameMaker{} 中的 JSON",
+ "Or the buffer functions: ":"或者缓冲函数:",
+ "Prettify":"美化",
+ "Reading JSON":"读取 JSON",
+ "Serialisation":"序列化",
+ "The JSON standard has a limited number of values that it supports: an object, an array, a string, a number and the values {}true{}, {}false{} and {}null{}. {}GameMaker{} uses more {}Data Types{} than this and in order to store these in a way they can be read back later, it converts them to a string representation. Both the {}{}json_parse{}{} / {}{}json_stringify{}{} and {}{}json_decode{}{} / {}{}json_encode{}{} perform these conversions.":"JSON 标准支持的值数量有限:对象、数组、字符串、数字以及值 {}true{}、{}false{} 和 {}null{}。{}GameMaker{} 使用的 {} 数据类型 {} 比这更多,为了以稍后可以读回的方式存储这些数据,它将它们转换为字符串表示形式。{}{}json_parse{}{}/{}{}json_stringify{}{} 和 {}{}json_decode{}{}/{}{}json_encode{}{} 都会执行这些转换。",
+ "The following code: ":"以下代码:",
+ "The following table lists the conversions that take place when converting between JSON data and {}GameMaker{}: ":"下表列出了在 JSON 数据和 {}GameMaker{} 之间进行转换时发生的转换:",
+ "The following text is the output: ":"以下文本是输出:",
+ "The structs have now been read back from the JSON string, but they are entirely new structs that don\u0027t belong to a constructor anymore. The structs were {}Vector{} structs in the original instance of the game, but aren\u0027t anymore. At least, not \"officially\", as you\u0027ll see with a call to the function {}{}instanceof{}{}: ":"现在,这些结构已从 JSON 字符串中读回,但它们是完全新的结构,不再属于构造函数。这些结构在游戏的原始实例中是 {}Vector{} 结构,但现在不再是了。至少,不是 \" 官方 \" 的,正如您在调用函数 {}{}instanceof{}{} 时看到的那样:",
+ "The {}prettify{} parameter can be set to {}true{} to add indentation to the generated JSON string to make it look \"pretty\", i.e. more human-readable.":"{}prettify{} 参数可以设置为 {}true{},以向生成的 JSON 字符串添加缩进,使其看起来 \" 漂亮\",即更易于人类阅读。",
+ "The maximum nesting limit of the JSON string to be parsed or decoded is {}128{}.":"要解析或解码的 JSON 字符串的最大嵌套限制为 {}128{}。",
+ "These four vectors can be stored in an array and converted to JSON using {}{}json_stringify{}{}:":"这四个向量可以存储在数组中,并使用 {}{}json_stringify{}{} 转换为 JSON:",
+ "This JSON string can be saved or sent somewhere else.":"该 JSON 字符串可以保存或发送到其他地方。",
+ "This guide focuses on the functions {}{}json_parse{}{} and {}{}json_stringify{}{}.":"本指南重点介绍函数 {}{}json_parse{}{} 和 {}{}json_stringify{}{}。",
+ "This page describes how to work with JSON in {}GameMaker{}.":"本页介绍如何在 {}GameMaker{} 中使用 JSON。",
+ "To get the information back into structs you parse the JSON string using {}{}json_parse{}{} and then assign the individual array elements to the variable names used earlier: ":"要将信息返回到结构中,您可以使用 {}{}json_parse{}{} 解析 JSON 字符串,然后将各个数组元素分配给之前使用的变量名称:",
+ "To read data from a previously created JSON string, you turn it into a struct using {}{}json_parse{}{}: ":"要从之前创建的 JSON 字符串中读取数据,您可以使用 {}{}json_parse{}{} 将其转换为结构体:",
+ "To tell {}GameMaker{} that each of these structs should, once again, belong to the {}Vector{} constructor, you can use the function {}{}static_set{}{}: ":"要告诉 {}GameMaker{} 这些结构中的每一个都应再次属于 {}Vector{} 构造函数,您可以使用函数 {}{}static_set{}{}:",
+ "Usage Notes":"使用说明",
+ "Use {}{}json_encode{}{} and {}{}json_decode{}{} when working with {}Data Structures{}. The item passed to {}{}json_encode{}{} (the \"root\") must always be a {}{}DS Map{}{}. Similarly, {}{}json_decode{}{} always returns a DS map, no matter the data type that you pass it (anything you pass to the function that\u0027s not a DS map is wrapped in one).":"使用 {} 数据结构 {} 时,请使用 {0}{1}json_encode{2}{3} 和 {4}{5}json_decode{6}{7}。传递给 {}{}json_encode{}{}(\" 根 \") 的项目必须始终是 {}{}DS Map{}{}。同样,{}{}json_decode{}{} 始终返回一个 DS 映射,无论您传递给它的数据类型是什么 (您传递给函数的所有非 DS 映射都将封装在一个 DS 映射中)。",
+ "Use {}{}json_encode{}{} on a {}{}DS Map{}{} that contains nested {}structs{} and {}Arrays{}. The structs and arrays will also be converted to JSON, i.e. {}{}json_encode{}{} allows you to convert a mixed hierarchy.":"在包含嵌套 {8} 结构 {9} 和 {10} 数组 {11} 的 {4}{5}DS Map{6}{7} 上使用 {}{}json_encode{}{}。结构体和数组也将转换为 JSON,即 {}{}json_encode{}{} 允许您转换混合层次结构。",
+ "Which Functions to Use":"使用哪些功能",
+ "Writing JSON":"编写 JSON",
+ "Writing JSON is done with {}{}json_stringify{}{}. For example, the following struct: ":"编写 JSON 是通过 {}{}json_stringify{}{} 完成的。例如,以下结构体:",
+ "You can also send the JSON string over a network or store it somewhere else (e.g. in a text field in a database).":"您还可以通过网络发送 JSON 字符串或将其存储在其他位置 (例如数据库的文本字段中)。",
+ "You then create a few of these vectors: ":"然后,您创建其中一些向量:",
+ "{}GameMaker{} will write it as:{} - an {}int{} if it\u0027s in the valid range for an int32.{} - a {}double{} if it can do so without losing precision.{} - a {}string{} with an identifier {}\"@i64@\"{} before it and {}\"$i64$\"{} after it if neither of those cases is applicable{}.{}{} {} When you read the JSON again, {}GameMaker{} will pick up these identifiers and convert the value back into an int64 (unless conversion is disabled).{} {} {}{}WARNING{}{} If the JSON is intended for a server or some other non-{}GameMaker{} target, these values will not be appropriate and so should be avoided. ":"{}GameMaker{} 会将其写为:{}- 如果在 int32 的有效范围内,则为 {}int{}。{}- 如果可以在不丢失精度的情况下这样做,则为 {}double{}。{}- 一个 {} 字符串 {},其前面带有标识符 {}\"@i64@\"{},后面带有标识符 {}\"$i64$\"{}( 如果这两种情况都不适用)。{}{}{}{} 当您再次读取 JSON,{}GameMaker{} 将获取这些标识符并将值转换回 int64( 除非禁用转换)。{}{}{}{} 警告 {}{} 如果 JSON 用于服务器或某些其他非 {}GameMaker{} 目标,这些值不合适,因此应避免使用。",
+ "{}GameMaker{} has built-in support for reading and writing JSON through two sets of functions: ":"{}GameMaker{} 通过两组函数内置支持读取和写入 JSON:",
+ "{}Guide To Using JSON{}":"{}JSON 使用指南 {}",
+ "{}NaN{} is written as a string":"{}NaN{} 写为字符串",
+ "{}Serialisation{} is described as follows: ":"{} 序列化{} 描述如下:",
+ "{}infinity{} is written as a string":"{} infinity{} 被写为字符串",
+ "{}undefined{} and {}pointer_null{} are written as JSON {}null{}. JSON {}null{} is always read back as {}undefined{} when {}parsing{} or {}decoding{}.":"{}undefined{} 和 {}pointer_null{} 写入为 JSON{}null{}。{10}解析{11} 或 {12}解码{13} 时,JSON{}null{} 始终会读回为 {} undefined {}。",
+ "{}{}IMPORTANT{}{} In order for this to work, the functions must be defined as static so they belong to the {}constructor{}, rather than to the struct {}instance{}. If you don\u0027t declare the functions as static, each struct instance should receive a copy of the function through execution of the constructor. However, setting the static struct with {}{}static_set{}{} doesn\u0027t call the constructor, rather it moves the struct to a different place in the {}Static Chain{} which enables it to access a different static struct\u0027s functions (see {}How the Dot Operator Looks Up a Variable Name{}).":"{}{} 重要{}{} 为了使其正常工作,函数必须定义为静态,以便它们属于 {} 构造函数 {},而不是结构体 {} 实例 {}。如果不将函数声明为静态,则每个结构体实例都应通过执行构造函数来接收该函数的副本。不过,使用 {}{}static_set{}{} 设置静态结构不会调用构造函数,而是将该结构移动到 {} 静态链 {} 中的不同位置,从而使其能够访问不同静态结构的函数 (请参阅 {} 点运算符如何查找变量名称 {})。",
+ "{}{}IMPORTANT{}{} JSON is {}agnostic{} about numbers. In any programming language, there can be a variety of number types of various capacities and complements, fixed or floating, binary or decimal. That can make interchange between different programming languages difficult. JSON instead offers only the representation of numbers that humans use: a sequence of digits. All programming languages know how to make sense of digit sequences even if they disagree on internal representations. For more information see the {}ECMA JSON Standard{}.":"{}{} 重要{}{}JSON 与数字 {} 无关 {}。在任何编程语言中,都可以有各种不同容量和补数的数字类型,固定或浮动,二进制或十进制。这会使不同编程语言之间的互换变得困难。相反,JSON 只提供人类使用的数字表示形式:数字序列。所有编程语言都知道如何理解数字序列,即使它们在内部表示上存在分歧。如需了解更多信息,请参阅 {}ECMA JSON 标准 {}。",
+ "{}{}NOTE{}{} You can disable the automatic string conversion when parsing JSON by setting the {}inhibit_string_convert{} argument of {}{}json_parse{}{} to {}true{}.":"{}{} 注意{}{} 您可以通过将 {6}{7}json_parse{8}{9} 的 {}inhibit_string_convert{} 参数设置为 {}true{} 来禁用解析 JSON 时的自动字符串转换。",
+ "{}{}NOTE{}{} You can only serialise {}structs{} this way in {}GameMaker{}, not {}Data Structures{} or {}Instances{}.":"{}{} 注意{}{} 您只能在 {}GameMaker{} 中以这种方式序列化 {} 结构 {},而不能序列化 {} 数据结构 {} 或 {} 实例 {}。",
+ "{}{}json_encode{}{} and {}{}json_decode{}{} which you use to convert a JSON string to a collection of {}DS Maps{} and {}DS Lists{} and back. Encoding requires you to {}mark{} {}DS map keys{} and {}DS list items{} as such (so it is clear which map keys and list items should become nested JSON objects and arrays).":"{}{}json_encode{}{} 和 {}{}json_decode{}{},用于将 JSON 字符串与 {}DS Maps{} 和 {}DS Lists{} 的集合相互转换。编码要求您 {} 标记 {}{}DS 映射键 {} 和 {}DS 列表项 {}( 以便清楚哪些映射键和列表项应成为嵌套 JSON 对象和数组)。",
+ "{}{}json_parse{}{} and {}{}json_stringify{}{} are the main functions to use when working with JSON. If you\u0027re not using any {}Data Structures{} or when you start a new project, these are the functions to use.":"{}{}json_parse{}{} 和 {}{}json_stringify{}{} 是处理 JSON 时使用的主要函数。如果您不使用任何 {} 数据结构 {} 或者当您启动新项目时,可以使用这些函数。",
+ "{}{}json_parse{}{} and {}{}json_stringify{}{} which you use to convert a JSON string to a collection of {}Structs{} and {}Arrays{} and back.":"{}{}json_parse{}{} 和 {}{}json_stringify{}{},用于将 JSON 字符串与 {} 结构 {} 和 {} 数组 {} 的集合相互转换。"
+}
\ No newline at end of file
diff --git a/language/zh/www/Additional_Information/Project_Format.json b/language/zh/www/Additional_Information/Project_Format.json
index 640f54bf5..bf3028f0c 100644
--- a/language/zh/www/Additional_Information/Project_Format.json
+++ b/language/zh/www/Additional_Information/Project_Format.json
@@ -1,21 +1,33 @@
{
+ ".gitignore and .gitattributes Files":".gitignore 和 .gitattributes 文件",
"At the root is the main project file, with a {}*.yyp{} extension. It describes the resources in the project and other meta data specific to it.":"在根目录的是主项目文件,扩展名为 {}*.yyp{} 。它描述了项目中的资源以及特定于该项目的其他元数据。",
+ "At the root is the main project file, with a {}*.yyp{} extension. It describes the resources in the project and other metadata specific to it.":"根目录是主项目文件,扩展名为 {}*.yyp{}。它描述了项目中的资源以及特定于该项目的其他元数据。",
"Format Basics":"基本格式",
"GMEZ - Compressed Marketplace Asset 1.x; older again formatted marketplace asset. These will be upgraded on import.":"GMEZ - 压缩市场资源 1.x,较旧的、再次格式化的市场资源。这些将在导入时进行升级。",
"GMX - Resource File 1.x; older formatted resource file. project.gmx are project files and will be upgraded on import. Importing GMX resources as standalone is not supported.":"GMX - 资源文件 1.x,较旧的格式化资源文件。project.gmx 是项目文件,将在导入时升级。不支持将 GMX 资源作为独立资源导入。",
"Local Asset Packages":"本地资源包",
+ "Next to it is another file with a {}*.resource_order{} extension. This file stores the order of groups and assets in {}The Asset Browser{} used when the filter is set to {}Custom Order{}.":"它旁边是另一个扩展名为 {}*.resource_order{} 的文件。此文件存储过滤器设置为 {} 自定义顺序 {} 时使用的 {} 资源浏览器 {} 中组和资源的顺序。",
"Next to it is another file with the same name, but a {}*.resource_order{} extension instead. This file stores the order of groups and assets in {}The Asset Browser{} used when the filter is set to {}Custom Order{}.":"接下来这是另一个同名的文件,但扩展名为 {}*.resource_order{}。此文件将组和资源的顺序存储在{}资源浏览器{}中,当过滤器设置为{}自定义顺序{}时使用。",
"The .resource_order File":".resource_order 文件",
"The YYP Project File":"YYP 项目文件",
"The following is an overview of the file formats used by different {}GameMaker{} versions: ":"以下是不同版本的 {}GameMaker{} 使用的文件格式的概述:",
"These are created and imported from (part of) a project\u0027s contents using {}Create Local Package{} and {}Import Local Package{} respectively in {}The Tools Menu{}.":"这些文件是使用{4}工具菜单{5}中的{}创建本地包{}和{}导入本地包{}从项目内容(部分)创建和导入的。",
"These are resource files; they store information on individual assets in a {}GameMaker{} project. They describe the data for the resource and any other files belonging to the resource (e.g. scripts, shaders, images and audio files). These data are stored in a JSON-like format.":"这些是资源文件,它们存储有关 {}GameMaker{} 项目中各个资源的信息。它们描述资源的数据以及属于该资源的任何其他文件 (例如,脚本、着色器、图像和音频文件)。这些数据以类似 JSON 的格式存储。",
+ "These two files affect how a {}GameMaker{} project is treated by Git. They are automatically added to new and/or imported projects when {}Add skeleton .git defaults to new/imported projects{} under {}Source Control (Git){} in the {}Plugin Preferences{} is enabled. They\u0027re also added to new projects that you create from local asset packages. Alternatively, you can disable the settings and add and modify these files yourself instead.":"这两个文件会影响 Git 处理 {}GameMaker{} 项目的方式。\n当在 {6} 插件首选项 {7} 中的 {4} 源代码控制 (Git){5} 下启用 {} 将骨架 .git 默认添加到新 / 导入的项目 {} 时,它们会自动添加到新的和 / 或导入的项目中。它们还会添加到您从本地资源包创建的新项目中。或者,您可以禁用这些设置并自行添加和修改这些文件。",
"This page contains details on the project format used by {}GameMaker{}.":"本页面包含 {}GameMaker{} 使用的项目格式的详细信息。",
"This type of file stores a compressed project export, created via the {}Export Project{} > {}YYZ{} option in {}The File Menu{}. Depending on the version of {}GameMaker{}, the compression method used may vary.":"此类型的文件存储压缩项目导出,该项目导出是通过{}文件菜单{}中的{}导出项目{} > {}YYZ{} 选项创建的。根据 {}GameMaker{} 的版本不同,使用的压缩方法可能会有所不同。",
"YYMP - Compressed Marketplace Asset < 2.3; older formatted marketplace asset stored in a compressed manner. These will be upgraded on import.":"YYMP - 压缩市场资源 < 2.3,以压缩方式存储的较旧格式的市场资源。这些将在导入时进行升级。",
"YYMPS - Compressed Marketplace Asset 2.3+; a file containing a marketplace asset stored in a compressed manner.":"YYMPS - 压缩市场资源 2.3+,包含以压缩方式存储的市场资源的文件。",
"YYZ Files":"YYZ 文件",
+ "{}Files added {}to directories {}by {}Windows and {}macOS that can be ignored (e.g. thumbnails).{}":"{} 由 {}Windows 和 {}macOS 添加到目录的文件可以被忽略 (例如缩略图)。{}",
+ "{}Line endings are forced to be LF ({}line feed{}) for metadata files {}to make merging easier across different platforms, as {}Windows, macOS and Linux all use different conventions to represent a line ending.{}":"{} 元数据文件的行结尾必须为 LF({} 换行 {}),以便更轻松地跨不同平台进行合并,因为 {}Windows、macOS 和 Linux 都使用不同的约定来表示行结尾。{}",
"{}Project Format{}":"{}项目格式{}",
+ "{}The {}.gitattributes{} file controls how Git handles certain files. The default {}.gitattributes{} file added by {}GameMaker{} introduces the following changes: {}":"{}{}.gitattributes{} 文件控制 Git 处理某些文件的方式。{5}GameMaker{6} 添加的默认 {}.gitattributes{} 文件引入了以下更改:{}",
+ "{}The {}.gitignore{} file is used to make Git ignore certain patterns of files. The default {}.gitignore{} file added by {}GameMaker{} ignores a few files and file extensions:{}":"{}{}.gitignore{} 文件用于使 Git 忽略某些文件模式。{}GameMaker{} 添加的默认 {}.gitignore{} 文件会忽略一些文件和文件扩展名:{}",
+ "{}The {}.resource_order{} file used by {}GameMaker{} itself, used as more of a user-specific way of ordering the asset tree. This file doesn\u0027t have to be included in source control unless explicitly wanted.{}":"{}{}GameMaker{} 本身使用的 {1}.resource_order{2} 文件,更多地用作对资源树进行排序的用户特定方式。除非明确需要,否则该文件不必包含在源代码管理中。{}",
"{}YY Files{}":"{}YY 文件{}",
+ "{}{}GameMaker{}\u0027s {}.yy{} files as marked as {}linguist-generated{}, which prevents GitHub from identifying these as the wrong {}{}language.{}{}{}":"{}{}GameMaker{} 的 {}.yy{} 文件被标记为 {} linguist-generated {},这可以防止 GitHub 将这些文件识别为错误的 {}{} 语言。{}{}{}",
+ "{}{}NOTE{}{} These files are only used with source control, which you can enable in the {}Game Options{}.":"{}{} 注意{}{} 这些文件仅与源代码控制一起使用,您可以在 {} 游戏选项 {} 中启用源代码控制。",
+ "{}{}NOTE{}{} {}GameMaker{} will add this file to {}.gitignore{} by default if {}Add skeleton .git defaults to new/imported projects{} is enabled under {}Source Control (Git){} in the {}Plugin Preferences{}.":"{}{} 注意{}{}\n如果在 {12} 插件偏好设置 {13} 中的 {10} 源代码控制 (Git){11} 下\n启用了 {8} 将骨架 .git 默认添加到新 / 导入的项目 {9},\n则 {}GameMaker{} 会默认将此文件添加到 {}.gitignore{}。",
"{}{}TIP{}{} When using version control, you can e.g. add this file to .gitignore so each user of the project can have their own custom ordering in {}The Asset Browser{}.":"{}{}提示{}{} 使用版本控制时,您可以将此文件添加到 .gitignore 文件中,以便项目的每个用户都可以在{}资源浏览器{}中拥有自己的定制顺序。"
}
\ No newline at end of file
diff --git a/language/zh/www/GameMaker_Language/GML_Reference/Flex_Panels/Flex_Panels.json b/language/zh/www/GameMaker_Language/GML_Reference/Flex_Panels/Flex_Panels.json
new file mode 100644
index 000000000..085b4222f
--- /dev/null
+++ b/language/zh/www/GameMaker_Language/GML_Reference/Flex_Panels/Flex_Panels.json
@@ -0,0 +1,15 @@
+{
+ "By setting up nodes inside nodes (inside nodes...), you can create a layout tree. Each node can have properties that define how large it is, how it should be positioned in relation to the nodes in its container, how its own child nodes should behave, and so on.":"通过在节点内部设置节点 (节点内部 ...),您可以创建布局树。每个节点都可以具有定义其大小、相对于其容器中的节点应如何定位、其自己的子节点应如何表现等的属性。",
+ "Creating a layout is as simple as calling {}{}flexpanel_create_node{}{} and passing it a struct or a JSON string. That struct/JSON should define the properties of the root node and all nodes nested under the root node. The structure of that struct/JSON is {}outlined on this page{}.":"创建布局就像调用 {}{}flexpanel_create_node{}{} 并向其传递一个结构体或 JSON 字符串一样简单。该 struct/JSON 应该定义根节点以及嵌套在根节点下的所有节点的属性。{} 本页概述了该结构体 /JSON 的结构 {}。",
+ "Flex Panel Functions":"柔性面板功能",
+ "Flex Panel Struct Members":"柔性面板结构成员",
+ "How To Create Layouts":"如何创建布局",
+ "Overview":"概述",
+ "The {}Flex Panel{} functionality uses the {}Yoga{} library.":"{}柔性面板{} 功能使用 {}Yoga{} 库。",
+ "This section contains the following pages:":"本节包含以下页面:",
+ "This section details the usage of the {}Flex Panel{} runtime functions, which help you create UI layouts by handling all the logical calculations concerning where UI boxes are placed and how they behave.":"本部分详细介绍了 {}Flex Panel{} 运行时函数的用法,这些函数通过处理有关 UI 框放置位置及其行为方式的所有逻辑计算来帮助您创建 UI 布局。",
+ "You can specify as many options in that struct/JSON as you like, or you can call the function without passing a struct/JSON, which will create an empty node. You can later set properties on the node and insert/remove children by calling the {}Flex Panel Functions{}.":"您可以在该 struct/JSON 中指定任意多个选项,也可以在不传递 struct/JSON 的情况下调用该函数,这将创建一个空节点。您稍后可以通过调用 {}柔性面板函数 {} 来设置节点属性并插入 / 删除子节点。",
+ "You can use these functions to set up layouts consisting of {}nodes{}. Each node is a rectangular area and may contain other nodes, making a node a {}container{}.":"您可以使用这些函数来设置由 {} 节点 {} 组成的布局。每个节点都是一个矩形区域,并且可能包含其他节点,从而使节点成为 {} 容器 {}。",
+ "{}A layout tree can then be {}calculated according to a given canvas size{}, and the final positions and sizes of the nodes {}can be used{} anywhere you like (e.g. setting up your UI systems). There is no rendering or asset support in these functions and how you make use of this data is entirely up to you.":"{} 然后可以 {} 根据给定的画布尺寸计算 {} 布局树,并且节点的最终位置和尺寸 {} 可以 {} 在您喜欢的任何地方使用 (例如设置您的 UI 系统)。这些函数没有渲染或资源支持,如何使用这些数据完全取决于您。",
+ "{}Flex Panels{}":"{} 柔性面板 (Flex Panel){}"
+}
\ No newline at end of file
diff --git a/language/zh/www/IDE_Navigation/Keyboard_Shortcuts.json b/language/zh/www/IDE_Navigation/Keyboard_Shortcuts.json
index 4d5a93f4e..ea42dabaf 100644
--- a/language/zh/www/IDE_Navigation/Keyboard_Shortcuts.json
+++ b/language/zh/www/IDE_Navigation/Keyboard_Shortcuts.json
@@ -242,6 +242,8 @@
"Global":"全局",
"Global Redo":"全局重做",
"Global Undo":"全局撤消",
+ "Globally search the next occurrence of the text to search":"全局搜索要搜索的文本的下一个匹配项",
+ "Globally search the previous occurrence of the text to search":"全局搜索要搜索的文本的上一个出现位置",
"Go to a specific line":"转到特定行",
"Go to a specific type":"转到特定类型",
"Go to bookmark 0":"转到书签 0",
diff --git a/language/zh/www/IDE_Navigation/Menus/The_Build_Menu.json b/language/zh/www/IDE_Navigation/Menus/The_Build_Menu.json
index 086ba6898..a15be392c 100644
--- a/language/zh/www/IDE_Navigation/Menus/The_Build_Menu.json
+++ b/language/zh/www/IDE_Navigation/Menus/The_Build_Menu.json
@@ -7,6 +7,7 @@
"{}Clean {}- {}GameMaker{} keeps a {}Cache{} of files to help speed up compile time when testing. However sometimes a \"stale\" cache can lead to odd and unexpected errors in your game, in which case the first thing you should do is clean the cache from here and re-test. It is also a good idea to clean the cache before you create a final executable for the target platform. Note that this command is the same as pressing the {}Clean Cache{} button {} in the IDE.":"{}清理{} - {}GameMaker{} 保存文件的{}缓存{},以帮助加快测试时的编译时间。然而,有时\"陈旧\"的缓存可能会导致游戏中出现奇怪的和意想不到的错误,在这种情况下,您应该做的第一件事就是从这里清理缓存并重新测试。在为目标平台创建最终可执行文件之前清理缓存也是一个好主意。请注意,此命令与在 IDE 中按下{}清除缓存{}按钮{} 相同。",
"{}Clean {}- {}GameMaker{} keeps a {}cache{} of files to help speed up compile time when testing. However sometimes a \"stale\" cache can lead to odd and unexpected errors in your game, in which case the first thing you should do is clean the cache from here and re-test. It is also a good idea to clean the cache before you create a final executable for the target platform. Note that this command is the same as pressing the {}Clean Cache{} button {} in the IDE.":"{}清理{} - {}GameMaker{} 保存文件的{}缓存{},以帮助加快测试时的编译时间。然而,有时\"陈旧\"的缓存可能会导致游戏中出现奇怪的和意想不到的错误,在这种情况下,您应该做的第一件事就是从这里清理缓存并重新测试。在为目标平台创建最终可执行文件之前清理缓存也是一个好主意。请注意,此命令与在 IDE 中按下{}清除缓存{}按钮{} 相同。",
"{}Create Executable and Launch{} - This will create an executable, just like the option above, and then it will launch that executable on the target platform. This command is the same as pressing the {}Create Executable and Launch{} button {} in the IDE.":"{}创建可执行文件并启动{} - 这将创建一个可执行文件,就像上面的选项一样,然后它将在目标平台上启动该可执行文件。此命令与在 IDE 中按下{}创建可执行文件并启动{}按钮{}相同。",
+ "{}Create Executable and Launch{} - This will create an executable, just like the option above, and then it will launch that executable on the target platform. This command is the same as pressing the {}Create Executable and Launch{} button {} in the IDE. However if the package being created is an installer, it will not be launched, and this will function the same as the {}Create Executable{} button {} in the IDE.":"{} 创建可执行文件并启动 {}- 这将创建一个可执行文件,就像上面的选项一样,然后它将在目标平台上启动该可执行文件。此命令与按 IDE 中的 {} 创建可执行文件并启动 {} 按钮 {} 相同。不过,如果正在创建的软件包是安装程序,则不会启动它,并且其功能与 IDE 中的 {} 创建可执行文件 {} 按钮 {} 相同。",
"{}Create Executable{} - This will compile the current project and create an {}executable package{} (or packages) for the target platform. It will first open the file explorer so that you can select where you want to save the project and then compile the game. See the section on {}Compiling{} for more information on setting up the compile targets. Note that this command is the same as pressing the {}Create Executable{} button {} in the IDE.":"{}创建可执行文件{} - 这将编译当前项目并为目标平台创建一个(或多个){}可执行程序包{}。它将首先打开文件资源管理器,以便您可以选择要保存项目的位置,然后编译游戏。有关设置编译目标的更多信息,请参见{}编译{}一节。请注意,此命令与在 IDE 中按下{}创建可执行文件{}按钮{}相同。",
"{}Create Executable{} - This will compile the current project and create an {}executable package{} (or packages) for the target platform. It will first open the file explorer so that you can select where you want to save the project and then compile the game. See the section on {}Compiling{} for more information on setting up the compile targets. This command is the same as pressing the {}Create Executable{} button {} in the IDE.":"{}创建可执行文件{} - 这将编译当前项目并为目标平台创建一个(或多个){}可执行程序包{}。它将首先打开文件资源管理器,以便您可以选择要保存项目的位置,然后编译游戏。有关设置编译目标的更多信息,请参见{}编译{}一节。请注意,此命令与在 IDE 中按下{}创建可执行文件{}按钮{}相同。",
"{}Debug {}- Run your current project for testing with the debugger so that you can see detailed performance information and debug any errors or issues you may have. For more information on debugging, please see the section {}Debugging{}. Note that this command is the same as pressing the Debug button {} in the IDE.":"{}调试{} - 运行当前项目以使用调试器进行测试,以便您可以查看详细的性能信息并调试您可能遇到的任何错误或问题。有关调试的更多信息,请参见{}调试{}一节。请注意,此命令与在IDE中按下调试按钮{}相同。",
diff --git a/language/zh/www/IDE_Navigation/Menus/The_Edit_Menu.json b/language/zh/www/IDE_Navigation/Menus/The_Edit_Menu.json
index 5276ac171..3b9c9701a 100644
--- a/language/zh/www/IDE_Navigation/Menus/The_Edit_Menu.json
+++ b/language/zh/www/IDE_Navigation/Menus/The_Edit_Menu.json
@@ -1,23 +1,34 @@
{
"All results from using the Search & Replace window will be shown in the {}Search Output Window{} at the bottom of the IDE. Each result can be {} double-clicked to open the asset with the term in the current workspace and pan to it, ready for editing.":"使用搜索和替换窗口的所有结果将显示在 IDE 底部的{}搜索输出窗口{}中。可以{}双击每个结果,以在当前工作区中打开带有术语的资源并平移到该资源,以供编辑。",
"Pressing the {}Escape {}key while this window is open will clear the selected field, however if that field is already empty, then it will close the window.":"在此窗口打开时按下{}ESC{}键将清除选定的字段,但如果该字段已为空,则它将关闭窗口。",
+ "Search & Replace":"搜索与代替",
"Searches can be general or you can refine them using the options below the search term inputs:":"搜索可以是常规搜索,也可以使用搜索词输入下面的选项进行优化:",
"The Edit Menu":"编辑菜单",
"The edit menu is where you can use the general edition tools of the {}GameMaker{} interface. The available options are:":"在编辑菜单中,您可以使用 {}GameMaker{} 界面的常规编辑工具。可用选项包括:",
"When you select Search & Replace from the Edit menu, it will open the following window:":"当您从编辑菜单中选择搜索和替换时,将打开以下窗口:",
+ "When {}The Code Editor{} is open, the Edit menu will contain the following extra options:":"当 {} 代码编辑器 {} 打开时,编辑菜单将包含以下额外选项:",
"You can apply a {}filter {}on the search results based on the different asset types in the asset browser. By default this is set to \"Everything\", but clicking on this will open the following menu where you can check or uncheck assets to be included in the search:":"您可以根据资源浏览器中的不同资源类型对搜索结果应用{}过滤器{}。默认情况下,此选项设置为\"每一个\",但单击此选项将打开以下菜单,您可以在其中选中或取消选中要包括在搜索中的资源:",
"You can choose to have the search {}ignore comments{}. When this is checked, any comments in your code that contain the search term will simply be ignored and not shown in the output results.":"您可以选择让搜索{}忽略备注{}。选中此选项后,代码中包含搜索词的任何注释都将被忽略,并且不会显示在输出结果中。",
"You can choose to make the search {}case sensitive{}, in which case it will only include words that exactly match the search string case, ie: searching for \"My_Var\" without this option and you will get results with \"my_var\", \"mY_VAR\", or \"My_Var\", but with this option checked only \"My_Var\" will be included in the search results.":"您可以选择使搜索{}区分大小写{},在这种情况下,它将只包括与搜索字符串大小写完全匹配的单词,即:在没有此选项的情况下搜索 \"My_Var\",您将得到带有 \"my_var\"、\"mY_VAR\" 或 \"My_Var\" 的结果,但选中此选项后,搜索结果中将只包括 \"My_Var\"。",
"You can choose to only include search results that include the {}whole word only{}, in which case any results that include the search term but aren\u0027t an exact match will be ignored, ie: a search for \"game\" without this checked will show up things like the function \"game_end()\" or variables like \"game_state\", while checking this and doing the search will only show results that are \"game\" itself.":"您可以选择仅包括仅包含{}全字的搜索结果{},在这种情况下,任何包含搜索词但不是完全匹配的结果都将被忽略,即:搜索\"game\"而不选中此项将显示类似函数\"game_end()\"或变量\"game_state\"的内容,而选中此项并执行搜索将只显示\"game\"本身的结果。",
+ "{}Code Editor{} Options":"{} 代码编辑器 {} 选项",
+ "{}Find & Replace{}: This contains the following options: {} {}{}Find In Editor{}: Opens the Find window in the editor so you can search through the open documents.{} {}{}Replace In Editor{}: Opens the same Find window in Replace mode. See: {}Find & Replace{}{} {}{}Find In Project{}: Opens the global Search & Replace window, which is otherwise always present in the Edit menu.{} {} ":"{} 查找和替换 {}:包含以下选项:{}{}{} 在编辑器中查找 {}:在编辑器中打开查找窗口,以便您可以搜索打开的文档。{}{}{} 在编辑器中替换 {}:在替换模式下打开相同的查找窗口。请参阅:{} 查找和查找替换 {}{}{}{} 在项目中查找 {}:打开全局搜索和查找替换窗口,否则该窗口始终出现在 Edit 菜单中。{}{}",
"{}Find All{}: Find all the search terms and show them in the output window.":"{}查找全部{}:查找所有搜索词并在输出窗口中显示它们。",
"{}Find Next{}: Find the next instance of the search term. This will open the asset containing the reference in the workspace (if it\u0027s not already open) and pan to it.":"{}查找下一个{}:查找搜索词的下一个实例。这将在工作区中打开包含引用的资源(如果它尚未打开),并平移到它。",
"{}Find Previous{}: Find the previous instance of the search term. This will open the asset containing the reference in the workspace (if it\u0027s not already open) and pan to it.":"{}查找上一个{}:查找搜索词的上一个实例。这将在工作区中打开包含引用的资源(如果它尚未打开),并平移到它。",
+ "{}Navigate{}: This contains the following options for navigating the {}Code Editor{}: {} {}{}Backward{}: Move the text cursor back one entry in the {}Text Cursor Location History{}, which is shared among editors, including editors that have been closed. Closed editors will be restored when needed. Multicursor locations are ignored.{} {}{}Forward{}: Move the text cursor forward one entry in the {}Text Cursor Location History{}.{} {}{}Go To Line{}: Opens the Go To Line dialog for the active document{} {}{}Go To Type{}: Opens the Go To Type dialog for switching to a different asset, option or preference{} {}{}Next Document{}: Move the text cursor to the next document{} {}{}Previous Document{}: Move the text cursor to the previous document{} {}{}Next Region{}: Move the text cursor to the next region{} {}{}Previous Region{}: Move the text cursor to the previous region{} {} ":"{} 导航 {}:其中包含用于导航 {} 代码编辑器 {} 的以下选项:{}{}{} 向后 {}:将文本光标在 {} 文本光标位置历史记录 {} 中向后移动一个条目,在编辑之间共享,包括已关闭的编辑。关闭的编辑器将在需要时恢复。多光标位置将被忽略。{}{}{} 向前 {}:将文本光标在 {} 文本光标位置历史记录 {} 中向前移动一个条目。{}{}{} 转到行 {}:打开转到行活动文档的对话框 {}{}{}Go To Type{}:打开 Go To Type 对话框以切换到不同的资源、选项或首选项 {}{}{} 下一个文档 {}:将文本光标移至下一个文档 {}{}{} 上一个文档 {}:将文本光标移动到上一个文档 {}{}{} 下一个区域 {}:将文本光标移动到下一个区域 {}{}{} 上一个区域 {}:将文本光标移至上一个区域 {}{}",
"{}Once you have given a search (and optionally a replace) term and set up the search options, you can use the different buttons at the bottom to choose how to perform the search and any actions to take. These buttons are:":"{}一旦您指定了搜索条件(以及可选的替换)并设置了搜索选项,您就可以使用底部的不同按钮来选择如何执行搜索以及要执行的任何操作。这些按钮是:",
+ "{}Reanalyze Project{}: Reanalyze the project so {}Code Completion{} is up-to-date with information on assets.":"{} 重新分析项目 {}:重新分析项目,以便 {} 代码完成 {} 了解最新的资产信息。",
"{}Redo {}- Redo a previous action.":"{}重做{} - 重做之前的操作。",
+ "{}Redo{}: Redo a previous action.":"{} 重做 {}:重做之前的操作。",
+ "{}Regions{}: Contains the following options: {} {}{}Fold/Unfold region{}: Fold/unfold the region at the text cursor{} {}{}Fold All Regions{}: Fold all the regions in the document{} {}{}Unfold All Regions{}: Unfold all regions in the document{} {}{}Fold Active Document{}: Folds the currently active document (e.g. if you are in the Step event, it will be folded){} {}{}Fold All Documents{}: Folds all documents open in the editor (e.g. all Events in an Object){} {}{}Unfold All Documents{}: Unfolds all documents open in the editor{} {} ":"{}区域{}:包含以下选项:{}{}{} 折叠 / 展开区域 {}:折叠 / 展开文本光标处的区域 {}{}{}折叠所有区域{}:折叠其中的所有区域文档 {}{}{} 展开所有区域 {}:展开文档中的所有区域 {}{}{} 折叠活动文档 {}:折叠当前活动文档 (例如,如果您处于 Step 事件中,它将是折叠 ){}{}{} 折叠所有文档 {}:折叠在编辑器中打开的所有文档 (例如对象中的所有事件 ){}{}{} 展开所有文档 {}:展开在编辑器中打开的所有文档 {}{}",
"{}Replace All{}: This will perform a search for the given term with the options set and also replace it in the assets with the new replace term you have specified.":"{}替换全部{}:这将使用选项集搜索给定的术语,并在资源中将其替换为您指定的新替换术语。",
"{}Replace{}: This will replace the currently selected term in the current editor where it\u0027s highlighted with the selected replace term.":"{}替换{}:这将用所选替换术语替换当前编辑器中突出显示的当前所选术语。",
"{}Search and replace {}- This will open a search window which permits you to search through your entire code (including room creation code, scripts, and events) for a given input - see below for further information.":"{}搜索并替换{} - 这将打开一个搜索窗口,允许您搜索给定输入的整个代码(包括房间创建代码、脚本和事件)-有关详细信息,请参阅下面的内容。",
+ "{}Search and replace{}: This will open a search window which permits you to search through your entire code (including room creation code, scripts, and events) for a given input - see below for further information.":"{} 搜索和替换 {}:这将打开一个搜索窗口,允许您在整个代码 (包括房间创建代码、脚本和事件) 中搜索给定的输入 - 请参阅下文了解更多信息。",
"{}Stop Search{}: Stop the current search if one is in progress.":"{}停止搜索{}:如果正在进行搜索,则停止当前搜索。",
"{}Undo {}- Undo an action.":"{}撤消{} - 撤消操作。",
- "{}You can use this to search through all the scripted assets in your game, including room code, event code, scripts and shaders. When searching, you can type in a new search term in the box at the top, or you can click the arrow icon to the right to open a list of previously searched for terms. You also have the option to give a replacement term that will be used to replace the initial search term, and this too has an option to use a previously used replace string from the arrow button on the right.":"{}您可以使用它来搜索游戏中的所有脚本资源,包括房间代码、事件代码、脚本和着色器。搜索时,您可以在顶部的框中键入新的搜索词,也可以单击右侧的箭头图标打开以前搜索的搜索词的列表。您还可以选择给出一个替换项,该替换项将用于替换最初的搜索项,这也可以选择使用右侧箭头按钮中以前使用的替换字符串。"
+ "{}Undo{}: Undo an action.":"{} 撤消 {}:撤消操作。",
+ "{}You can use this to search through all the scripted assets in your game, including room code, event code, scripts and shaders. When searching, you can type in a new search term in the box at the top, or you can click the arrow icon to the right to open a list of previously searched for terms. You also have the option to give a replacement term that will be used to replace the initial search term, and this too has an option to use a previously used replace string from the arrow button on the right.":"{}您可以使用它来搜索游戏中的所有脚本资源,包括房间代码、事件代码、脚本和着色器。搜索时,您可以在顶部的框中键入新的搜索词,也可以单击右侧的箭头图标打开以前搜索的搜索词的列表。您还可以选择给出一个替换项,该替换项将用于替换最初的搜索项,这也可以选择使用右侧箭头按钮中以前使用的替换字符串。",
+ "{}{}NOTE{}{} The {}Code Editor{} is currently opt-in. Enable it in the {}Code Editor Preferences{}.{} {} While it is disabled, assets with text documents like {}Objects{}, {}Scripts{}, {}Notes{} etc. will open their respective editors, which make use of the {}Legacy Code Editor{}. ":"{}{} 注意{}{} 当前可选择加入 {} 代码编辑器 {}。在 {} 代码编辑器首选项 {} 中启用它。{}{} 禁用该功能后,包含 {} 对象 {}、{} 脚本 {}、{} 注释 {} 等文本文档的资源将打开其各自的编辑器,它使用 {} 旧版代码编辑器 {}。"
}
\ No newline at end of file
diff --git a/language/zh/www/IDE_Navigation/Menus/The_Help_Menu.json b/language/zh/www/IDE_Navigation/Menus/The_Help_Menu.json
index 2be40832f..2e5143d26 100644
--- a/language/zh/www/IDE_Navigation/Menus/The_Help_Menu.json
+++ b/language/zh/www/IDE_Navigation/Menus/The_Help_Menu.json
@@ -5,6 +5,7 @@
"{}About {}- This opens the \"About {}GameMaker{}\" window where you can get version information on the product (essential for reporting any bugs or issues) and see the credits.":"{}关于{} - 这将打开\"关于 {}GameMaker{}\"窗口,您可以在其中获取产品的版本信息(报告任何错误或问题所必需的)并查看制作者名单。",
"{}Contact Us{} - This takes you to the {}Contact Us{} page.":"{}联系我们 {}- 这将带您进入 {} 联系我们 {} 页面。",
"{}Create Your Contact Us Package{} - This creates a {}.zip{} file with the essential information required for submitting a helpful bug report, containing your logs, licence information, and project (optional). Include this zip when {}submitting a bug report{}.{} {} ":"{}创建您的联系我们包 {}- 这将创建一个 {}.zip{} 文件,其中包含提交有用的错误报告所需的基本信息,包括您的日志、许可证信息和项目 (可选)。{} 提交错误报告 {} 时,请包括此 zip。{}{}",
+ "{}Create Your Contact Us Package{} - {}This creates a .zip file with the essential information required for submitting a helpful bug report, containing your logs, preferences and licence information. You can also choose to include the currently open project, as a test project will be required for in-game or compiler bug reports:{}{} {}{}If you use the bug reporter (the next option), it will allow you to include this information, however if you forgot to add a project to a bug report or a customer service ticket and you\u0027re asked to add one later, use this option to create that package.{} ":"{} 创建您的联系我们包 {}-{} 这将创建一个 .zip 文件,其中包含提交有用的错误报告所需的基本信息,其中包含您的日志、首选项和许可信息。您还可以选择包含当前打开的项目,因为游戏内或编译器错误报告需要测试项目:{}{}{}{} 如果您使用错误报告器 (下一个选项),它将允许您可以添加此信息,但如果您忘记将项目添加到错误报告或客户服务单中,并且系统要求您稍后添加,请使用此选项创建该包。{}",
"{}Current Runtime Release Notes{} - Since the {}Runtime{} can update independently of the IDE, it has its own set of {}Runtime Release Notes{}. Selecting this option will open them in your browser, but note that the latest runtime may not be the one you are using. To find out what runtime you are on, or for information on how to add, remove or activate runtimes, please see the {}Runtime Preferences{} section.":"{}当前运行时发行说明{} - 由于{}运行时{}可以独立于IDE进行更新,因此它有自己的一套{}运行时发行说明{}。选择此选项将在您的浏览器中打开它们,但请注意,最新的运行时可能不是您正在使用的运行时。要了解您使用的运行时,或有关如何添加、删除或激活运行时的信息,请参阅{}运行时首选项{}部分。",
"{}Current Runtime Release Notes{} - Since the {}Runtime{} can update independently of the IDE, it has its own set of {}Runtime Release Notes{}. Selecting this option will open them in your browser, but note that the latest runtime may not be the one you are using. To find out what runtime you are on, or for information on how to add, remove or activate runtimes, please see the {}Runtime Feeds Preferences{} section.":"{} 最新版本说明 {}- 由于 {} 运行时 {} 可以独立于 IDE 进行更新,因此它有自己的一组 {} 版本说明 {}。选择此选项将在浏览器中打开这些版本说明,但请注意,最新的运行时可能不是您正在使用的运行时。要了解您使用的运行时,或有关如何添加、删除或激活运行时的信息,请参阅 {}\" 订阅源首选项 \"{} 部分。",
"{}GameMaker Community{} - This opens the {}GameMaker Community forums{} in your browser. Note that this is a {}community-run {}forum, so if you have a bug report or require technical assistance you should go to the Official Support Site first (see above). {} ":"{}GameMaker 社区 {}- 这将在您的浏览器中打开 {}GameMaker 社区论坛 {}。请注意,这是一个 {} 社区运行的 {} 论坛,因此,如果您有错误报告或需要技术帮助,应首先访问官方支持网站 (见上文)。{}",
@@ -25,6 +26,8 @@
"{}Release Notes {}- This will open the {}Release Notes for {}GameMaker{}{} in your browser. Should you need to roll back an update, you can get previous version installers by clicking the version number link on this page.":"{}发行说明{} - 这将在您的浏览器中打开适用于 {}{}GameMaker{} 的发行说明{}。如果您需要回滚更新,您可以通过单击此页面上的版本号链接获取以前版本的安装程序。",
"{}Report A Bug{} - Should you find any bugs or have any issues while using {}GameMaker{} you can {}report them here{}.":"{}报告错误{} - 如果您在使用 {}GameMaker{} 时发现任何错误或有任何问题,您可以在此处{}报告它们{}。",
"{}Report A {}GameMaker{} Bug{} - You can use this option to report bugs directly {}from within the IDE, in case you find any bugs or have any issues while using {}GameMaker{}{}. You will also be redirected to this window when you click {}Report{} after an {}IDE error{} occurred. If you\u0027re not signed in, a message is shown to ask you to {}Sign In/Register{}. It\u0027s also possible to {}Continue Anonymously{}.{} {}If you are using a GameMaker account, it is recommended to connect your GitHub account to your GM account via the {}GameMaker Account Dashboard{}. This will ensure your submitted reports are tied to your account so you can post updates and receive notifications from our team.{} {} In the {}Report a Bug{} window you fill in a {}Title{} and {}Description{} and optionally the {}Steps To Reproduce{} the issue. It\u0027s also possible to assign an {}Issue Category{} (either {}General IDE{}, {}Building A Project{}, {}Crash/Unstable Message{}, {}Editing Your Assets{}, {}In-Game{} or {}Manual Content{}), {}Attach additional files{} that might be useful, {}Include{}{} the{} {}project{} and {}Make{}{} the{} {}report private{}.{} {}You can choose to include the current project by ticking the {}Include project{} checkbox. It is highly recommended that you provide a sample project that shows the issue as it provides important information to the {}GameMaker{} team about your issue. A message will be shown asking to include the current package when you select a category related to the runner and the checkbox isn\u0027t ticked.{} {} Finally you can submit the report by clicking the {}Submit{} button. ":"{}报告 {}GameMaker{} 错误 {}- 如果您在使用 {5}GameMaker{6} 时发现任何错误或遇到任何问题,您可以使用此选项直接从 {}IDE 中报告错误。{} 在发生 {10}IDE 错误 {11} 后单击 \"{} 报告 {}\" 时,您也会被重定向到此窗口。如果您未登录,系统会显示一条消息,要求您 {} 登录 / 注册 {}。也可以 {} 继续进行 {}。{}{} 如果您使用的是 GameMaker 帐户,建议您通过 {}GameMaker 帐户仪表板 {} 将您的 GitHub 帐户连接到 GM 帐户。这将确保您提交的报告与您的帐户绑定,以便您可以发布更新并接收我们团队的通知。{}{} 在 {} 报告错误 {} 窗口中,您可以填写 {} 标题 {} 和 {} 描述 {},并可选 {} 步骤重现 {} 问题。也可以分配 {} 问题类别 {}(either {}General IDE{}, {}Building A Project{}, {}Crash/Unstable Message{}, {}Editing Your Assets{}, {}In-Game{} or {}Manual Content{}),{} 附加可能有用的其他文件 {},{} 包括 {}{}{}{} 项目 {} 并将报表 {} 设为 {}{}{}{} 私有 {}。{}{} 您可以通过勾选 {} 包括项目 {} 复选框来选择包括当前项目。强烈建议您提供一个示例显示问题的项目,因为它为 {}GameMaker{} 团队提供了有关您问题的重要信息。当您选择与运行者相关的类别并且复选框未选中时,将显示一条消息,要求包含当前软件包。{}{} 最后,您可以通过单击 {} 提交 {} 按钮提交报告。",
+ "{}Report A {}GameMaker{} Bug{} - You can use this option to report bugs directly {}from within the IDE, in case you find any bugs or have any issues while using {}GameMaker{}{}. For detailed information on this window, see: {}Report A Bug Window{}":"{} 报告 {}GameMaker{} 错误 {}- 如果您在使用 {}GameMaker{} 时发现任何错误或遇到任何问题,您可以使用此选项直接在 IDE 内报告错误。{} 有关此窗口的详细信息,请参阅:{} 报告错误窗口 {}",
"{}Required SDKs{} - Due to the cross-platform nature of {}GameMaker{} a number of 3rd party SDKs are required. Clicking this will take you to a {}support article{} that details what you need on a per-platform basis. {} ":"{}所需SDK{} - 由于 {}GameMaker{} 的跨平台特性,需要许多第三方 SDK。单击此链接将转到一篇{}支持文章{},其中详细介绍了您在每个平台上需要什么。{}",
+ "{}Required SDKs{} - Due to the cross-platform nature of {}GameMaker{} a number of third-party SDKs are required. Clicking this will take you to a {}support article{} that details what you need on a per-platform basis. {} ":"{} 所需的 SDK{}- 由于 {}GameMaker{} 的跨平台性质,需要许多第三方 SDK。点击此按钮会将您转到一篇 {} 支持文章 {},其中详细介绍了每个平台的需求。{}",
"{}The Help Menu{}":"{}帮助菜单{}"
}
\ No newline at end of file
diff --git a/language/zh/www/IDE_Tools/The_Inspector.json b/language/zh/www/IDE_Tools/The_Inspector.json
index 40cab33b8..402bcd2ac 100644
--- a/language/zh/www/IDE_Tools/The_Inspector.json
+++ b/language/zh/www/IDE_Tools/The_Inspector.json
@@ -4,14 +4,17 @@
"Click on the empty area in the list to return to the multi-select view.":"单击列表中的空白区域以返回到多选视图。",
"Editing Values":"编辑属性值",
"Editor Elements":"编辑器元素",
+ "Editor Sections":"编辑部分",
"Finally, when {}The Inspector{} shows an {}Included File{}, clicking \"Open Editor\" will execute the action set under {}Default option for opening included files{}, in the Paths preferences under {}External Editors{}.":"最后,当 {} 检查器 {} 显示 {} 包含的文件 {} 时,单击 \" 打开编辑器 \" 将执行 {6} 外部编辑器 {7} 下的路径首选项中的 {} 打开包含的文件的默认选项 {} 下设置的操作。",
"For example, doing this with an object will open the Object Editor, where you can modify its properties, add events, etc.":"例如,对对象执行此操作将打开对象编辑器,您可以在其中修改其属性、添加事件等。",
+ "For example, inspecting a layer in a room allows you to apply a filter or effect to only that layer:":"例如,检查房间中的图层允许您仅将滤镜或效果应用于该图层:",
"For example, you may usually edit your event code in fullscreen, and frequently navigate back into a Workspace to edit that object\u0027s properties.":"例如,您通常可以在全屏中编辑事件代码,并经常导航回工作区以编辑该对象的属性。",
"However if the items have different values for a property, the editor will simply show {}-{} in place of that value.":"但是,如果属性的项具有不同的值,则编辑器将简单地显示{}-{} 来代替该值。",
"However, when editing anything inside a room, such as an instance or a layer, the Inspector will only focus on editors inside the Room Editor.":"但是,当编辑房间内的任何内容时,例如实例或层,检查器将只关注房间编辑器内的编辑器。",
"If you have an asset selected, you can click on \"Open Editor\" in the Inspector to open its asset editor.":"如果您选择了某个资源,则可以在检查器中单击\"打开编辑器\"以打开其资源编辑器。",
"If your selected items share the same value for a property, that shared value will appear in that field.":"如果所选项目共享同一属性值,则该共享值将显示在该字段中。",
"In addition to assets, you can also inspect elements in an editor, such as layers in a room, tracks in a Sequence, etc.":"除了资源之外,您还可以在编辑器中检查元素,如房间中的层、序列中的曲目等。",
+ "In addition to assets, you can also inspect sections within an editor, such as layers in a room, elements in a layer, tracks in a Sequence, etc.":"除了资源之外,您还可以检查编辑器中的各个部分,例如房间中的图层、图层中的元素、序列中的轨道等。",
"Inspecting Sequence Track":"检查序列轨迹",
"Inspecting Sound Asset":"检查声音资源",
"Multi-Select":"多选",
diff --git a/language/zh/www/Introduction/Compiling.json b/language/zh/www/Introduction/Compiling.json
index 24bdd9cc6..889cbcbbd 100644
--- a/language/zh/www/Introduction/Compiling.json
+++ b/language/zh/www/Introduction/Compiling.json
@@ -3,12 +3,15 @@
"Before doing a final build of your project for release, you should {}always clear the Asset Compiler {}cache{}{} (using the \"broom\" icon {} at the top of the IDE). {}GameMaker{} will cache many of your game files to keep compilation speed to a minimum and these can sometimes get corrupted, so it is safer to clear that cache before doing a release build.":"在完成项目的最终版本发布之前,您应该{}总是清除资源编译器 {}缓存{}{} (使用 IDE 顶部的“扫帚”图标{})。{} GameMaker {}会缓存很多游戏文件,以将编译速度保持在最低限度,这些文件有时会被破坏,所以在进行发布版本构建之前清除缓存更安全。",
"By default {}GameMaker{} will run and debug using the built in {}Virtual Machine (VM){}, which is more or less the same as running on the desktop OS being used. However {}GameMaker{} is a {}cross platform engine{} and you can test, debug and compile executable packages of your projects on a number of different target platforms (the exact platforms available will depend on the details of your licence). To change the current target platform you can click {} on the Targets button {} to open the {}Targets Window{}, which will look something like this (exact details will vary based on your licence type):":"默认情况下{}GameMaker{}将使用内置的{}虚拟机(VM){}运行和调试,这与正在使用的桌面操作系统上运行的情况大致相同。但是{}GameMaker{}是一个{}跨平台引擎{},您可以在许多不同的目标平台上测试,调试和编译项目的可执行包(可用的确切平台将取决于您的许可证的详细信息)。要更改当前目标平台,您可以单击目标按钮{}上的{}以打开{}目标窗口{}, 该窗口看起来像这样(确切的详细信息将根据您的许可证类型而有所不同):",
"By default {}GameMaker{} will run and debug using the built-in {}Virtual Machine (VM){}, which is more or less the same as running on the desktop OS being used. However, {}GameMaker{} is a {}cross-platform engine{} and you can test, debug and compile executable packages of your projects on a number of different target platforms (the exact platforms available will depend on the details of your licence). To change the current target platform you can click {} on the Targets button {} to open the {}Targets Window{}, which will look something like this (exact details will vary based on your licence type):":"默认情况下,{}GameMaker{} 将使用内置的 {} 虚拟机 (VM){} 运行和调试,这或多或少与正在使用的桌面操作系统上运行相同。但是,{}GameMaker{} 是一个 {} 跨平台引擎 {},您可以测试,在许多不同的目标平台上调试和编译项目的可执行程序包 (具体可用的平台将取决于您的许可证的详细信息)。要更改当前 {} 目标平台 {},您可以单击 {8} 目标按钮 {9} 打开目标窗口,它看起来像这样 (具体细节将根据您的许可证类型而有所不同):",
+ "By default {}GameMaker{} will run and debug using the built-in {}Virtual Machine (VM){}, which is more or less the same as running on the desktop OS being used. However, {}GameMaker{} is a {}cross-platform engine{} and you can test, debug and compile executable packages of your projects on a number of different target platforms (the exact platforms available will depend on the details of your licence). To change the current target platform you can click {}{}{} on the Targets button {} to open the {}Targets Window{}, which will look something like this (exact details will vary based on your licence type):":"默认情况下,{}GameMaker{}将使用内置的{}虚拟机(VM){}运行和调试,这与在所使用的桌面操作系统上运行大致相同。不过,{}GameMaker{}是一个{}跨平台引擎{},您可以在许多不同的目标平台上测试、调试和编译项目的可执行包(具体可用的平台取决于您的许可详细信息))。要更改当前目标平台,您可以点击{}{}\"目标\"按钮上的{}{}以打开{}目标窗口{},该窗口如下所示(具体详细信息将根据您的许可类型而有所不同):",
"Certain platforms (like iOS or Android) permit you to associate one or more devices with {}GameMaker{} so that games can selectively compile to them. Initially, the device list will be empty and you need to click {} on the Pencil icon {} to open the {}Device Editor{}:":"某些平台(例如 iOS 或 Android)允许您将一台或多台设备与{}GameMaker{}关联,以便游戏可以有选择地根据这些设备进行编译。最初,设备列表将为空,您需要单击{}铅笔图标{}才能打开{}设备编辑器{}:",
+ "Certain platforms (like iOS or Android) permit you to associate one or more devices with {}GameMaker{} so that games can selectively compile to them. Initially, the device list will be empty and you need to click {}{}{} on the Pencil icon {} to open the {}Device Editor{}:":"某些平台 (例如 iOS 或 Android) 允许您将一台或多台设备与 {}GameMaker{} 关联,以便可以有选择地编译游戏。最初,设备列表将为空,您需要点击铅笔图标 {} 上的 {}{}{} 以打开 {} 设备编辑器 {}:",
"Compiler Optimisations":"更好的优化",
"Compiling Preferences":"编译首选项",
"Compiling for Testing":"为测试而编译",
"Compiling your game for testing can be done by simply pressing the Play button {} at the top of the IDE, which will launch the game for testing using the specified target. You can also run the game in {}Debug Mode{} by testing using the Debug button {}. This will run the game, but also open up the {}Debug Window{}, where you can monitor how your game performs and see any issues (see the section on {}Debugging{} for more information).":"编译你的游戏进行测试,只需按下IDE顶部的Play按钮 {},就可以使用指定的目标启动游戏进行测试。 你也可以通过使用调试按钮{}测试{},在调试模式{}下运行游戏。 这将运行游戏,但也会打开{}调试窗口{},在那里你可以监控你的游戏表现,并看到任何问题(更多信息见{}调试{}部分)。",
"Compiling your game for testing can be done by simply pressing the Play button {} at the top of the IDE, which will launch the game for testing using the specified target. You can also run the game in {}Debug Mode{} by testing using the Debug button {}. This will run the game, but also open up the {}Debug Window{}, where you can monitor how your game performs and see any issues (see the section on {}Debugging{} for more information).":"只需按 IDE 顶部的 \" 播放 \" 按钮 {} 即可编译游戏进行测试,这将使用指定的目标启动游戏进行测试。您还可以通过使用 \" 调试 \" 按钮 {3} 进行测试,在 {}\" 调试模式 \"{} 下运行游戏。这将启动游戏,但也会打开 {}\" 调试窗口 \"{},您可以在其中监视游戏的性能并查看任何问题 (有关详细信息,请参阅 {} 调试 {} 部分)。",
+ "Contents":"内容",
"Creating A Final Executable Package":"创建最终的可执行文件包",
"Debugging":"调试",
"Depending on your {}licence{}, you may have the option to build your game via command line, allowing you to set up continuous integration for your project and streamline your building and testing process. See {}Building via Command Line{} for more information on command line building.":"根据您的{}许可证{},您可以选择通过命令行构建游戏,从而允许您为项目设置持续集成并简化构建和测试过程。有关命令行构建的更多信息,请参见{}通过命令行构建{}。",
@@ -31,12 +34,14 @@
"Specific details on compiling for each platform are given below in {}Creating A Final Executable Package{}.":"有关每个平台编译的具体细节在下面{}创建最终可执行文件包{}中给出。",
"Target Formats":"目标格式",
"Target Settings":"目标设置",
+ "The compiler performs optimisations on your game\u0027s code. See {}Compiler Optimisations{}.":"编译器会对您的游戏代码进行优化。请参阅 {} 编译器优化 {}。",
"The maximum size of the final game package is 4GB (not including {}streamed sounds{}, {}dynamic textures{} and {}Included Files{}). See {}tips for reducing the final game size{}.":"最终游戏包的最大大小为 4GB (不包括{}流媒体声音{}、{}动态纹理{}和{}包含的文件{})。请参阅{}缩小最终游戏大小的提示{}。",
"The maximum size of the final game package is 4GB. See {}tips for reducing the final game size{}.":"最终游戏包的最大大小为4gb。参见{}缩小最终游戏大小的提示{}。",
"There are also a number or preferences that can be set to modify and customise the compile workflow, explained on the following page:":"还可以设置一些首选项来修改和自定义编译工作流程,详见以下页面:",
"This section lists all the available target platforms, which depends on the licence you have.":"本节列出了所有可用的目标平台,这取决于您拥有的许可证。",
"This section lists all the available target platforms, which depends on the licence you have. It will always have at least the \"GX.games\" target.":"本部分列出了所有可用的目标平台,具体取决于您拥有的许可证。它将始终至少有 \"Gx.Games\" 目标。",
"To select a target, simply click {} on it; this will then update the rest of the options windows to show different details depending on the platform selected. If you don\u0027t have the required module installed in the current runtime then {}GameMaker{} will ask you to download and install it when you click {} the target: ":"要选择目标,只需在目标上单击{};然后,这将更新其余选项窗口,根据所选平台显示不同的详细信息。如果你在当前运行时没有安装所需的模块,那么当你点击目标{}时{}GameMaker{}会要求你下载并安装它:",
+ "To select a target, simply click {}{}{} on it; this will then update the rest of the options windows to show different details depending on the platform selected. If you don\u0027t have the required module installed in the current runtime then {}GameMaker{} will ask you to download and install it when you click {}{}{} the target: ":"要选择目标,只需单击{}{}{}; 然后,这将更新其余选项窗口,以根据所选平台显示不同的详细信息。如果您没有在当前运行时中安装所需的模块,那么当您点击{}{}{}目标时,{3}GameMaker{4} 会要求您下载并安装它:",
"You Should Know":"你需要知道",
"You can click the {}Create Executable{} button {} in the IDE to start the compiler build or select {}Create Executable{} from the {}Build Menu{}. Either process will start the build process which will depend on the target platform selected.":"您可以在IDE中单击{}创建可执行文件{}按钮{}或从{5}构建{6}菜单中选择{}创建可执行文件{}。任一过程都将启动构建过程,具体取决于所选的目标平台。",
"You can click the {}Create Executable{} button {} in the IDE to start the compiler build or select {}Create Executable{} from {}The Build Menu{}. Either process will start the build process which will depend on the target platform selected.":"可以单击 IDE 中的 {} 创建可执行文件 {} 按钮 {} 启动编译器生成,也可以从 {}\" 生成菜单 \"{} 中选择 {} 创建可执行文件 {}。这两个进程都将启动生成进程,生成进程将取决于所选的目标平台。",
@@ -47,6 +52,7 @@
"{}As explained in the section on{} {}{}{}Configurations{}{}, you can store certain details for compiling your game as{} {}{}{}Configs{}{}. This section of the Targets window permits you to have {}GameMaker{} automatically select a specific configuration for a specific target platform.{}":"正如在{}{}{}{}{}配置{}{}一节中解释的那样,您可以将编译游戏的某些细节存储为{}{}{}{}配置{}{}。目标窗口的这个部分允许您让{} GameMaker {}自动为特定的目标平台选择特定的配置。{}",
"{}At the top, beside the Targets button, you have the current settings which tells you the platform and the specific settings actually being used, and then the rest of the window is taken up with the details and options for all the available targets which you can select to use instead. Each section of this window is explained below: ":"{}在顶部,在\"目标\"按钮旁边,您有当前设置,该设置告诉您实际使用的平台和特定设置,然后窗口的其余部分将讨论所有可用目标的详细信息和选项,您可以选择使用这些详细信息和选项。此窗口的每个部分解释如下:",
"{}Compiling{}":"{}编译{}",
+ "{}Compiling{} your game can mean one of two things: compiling it for testing, or compiling it to create a final {}{}executable package{}{} for a specific target platform. This page aims to explain both of those options in detail and also explains compiler optimisations.":"{} 编译{} 您的游戏可能意味着以下两种情况之一:编译它以进行测试,或者编译它以为特定目标平台创建最终的 {}{} 可执行包{}{}。本页旨在详细解释这两个选项,并解释编译器优化。",
"{}Compiling{} your game can mean one of two things: compiling it for testing, or compiling it to create a final {}{}executable package{}{} for a specific target platform. This page aims to explain both of those options in detail.":"{}编译{}你的游戏可能意味着两件事中的一件。 编译它以进行测试,或编译它以创建一个最终的 {}{}可执行包{}{} 用于特定的目标平台。 本页旨在详细解释这两个选项。",
"{}Config{}{}Config{}":"{}配置{}{}配置{}",
"{}Device{}{}Device{}":"{}设备{}{}设备{}",
diff --git a/language/zh/www/Introduction/The_Asset_Browser.json b/language/zh/www/Introduction/The_Asset_Browser.json
index 85bf969ae..41da752e8 100644
--- a/language/zh/www/Introduction/The_Asset_Browser.json
+++ b/language/zh/www/Introduction/The_Asset_Browser.json
@@ -196,6 +196,7 @@
"{}You can find out more about adding scripts from the section on {}The Script Editor{}.":"{}你可以从{}脚本编辑器{}中找到有关添加脚本的详细信息。",
"{}Zoom Controls{}{}Zoom Controls{}":"{}缩放控件{}{}缩放控件{}",
"{}{}Asset List{}{}Asset List{}{}":"",
+ "{}{}IMPORTANT{}{} Timelines have been replaced by {}Sequences{} and currently only exist for legacy purposes. {}Moments can be programmed{} in a Sequence for functions to be executed at given frames in the Sequence.":"{}{} 重要{}{} 时间线已被 {} 序列 {} 取代,目前仅用于遗留目的。{} 可以在序列中对时刻进行编程 {},以便在序列中的给定帧处执行函数。",
"{}{}NOTE{}{} Assigning a tag to a folder group will {}not {}automatically assign it to the assets inside it.":"{}{}注意{}{}将标签分配给文件夹组将{}不会{}自动将其分配给其中的资源。",
"{}{}NOTE{}{} If you are adding fonts to your game, make sure you have the licence necessary to re-distribute it, unless it is public domain or copyright free.":"{}{} 注意{}{} 如果您要在游戏中添加字体,请确保您拥有重新分发该字体所需的许可证,除非该字体属于公共领域或无版权。",
"{}{}NOTE{}{} You can select folders and assets then click {} and drag them to move them out of - or into - any other folder group in the asset list. You can also delete any or all of the folder groups if they are not required, keeping the asset list tidy and only showing the required elements for the project.":"{}{}注意{}{} 您可以选择文件夹和资源,然后单击{}并将其拖出资源列表中的任何其他文件夹组或将其移出或移入资源列表中的任何其他文件夹组,如果不需要,也可以删除任何或所有文件夹组,从而保持资源列表整洁并仅显示项目所需的元素。",
diff --git a/language/zh/www/Introduction/The_Start_Page.json b/language/zh/www/Introduction/The_Start_Page.json
index 10ada8fcd..840964ac0 100644
--- a/language/zh/www/Introduction/The_Start_Page.json
+++ b/language/zh/www/Introduction/The_Start_Page.json
@@ -18,6 +18,7 @@
"The Start Page contains the following elements:":"起始页包含以下内容:",
"The Tools Menu":"工具菜单",
"The Windows Menu":"窗口菜单",
+ "Then choose a name and save location for your project. If you selected a non-blank template, you may need to choose between {}GML Code{} and {}GML Visual{} versions.":"然后为您的项目选择一个名称并保存位置。如果您选择了非空白模板,则可能需要在 {}GML Code{} 和 {}GML Visual{} 版本之间进行选择。",
"To create a new project simply click the button labelled {}New{}, which will open the Project Type and Template menu:":"要创建一个新项目,只需单击标签为{}New{}的按钮,这将打开Project Type and Template菜单:",
"To create a new project simply click the button labelled {}New{}, which will open the Template menu:":"要创建新项目,只需单击标记为{} New {}的按钮,它将打开“模板”菜单:",
"Version & Account Details":"版本和账户详细信息",
diff --git a/language/zh/www/Introduction/Workspaces.json b/language/zh/www/Introduction/Workspaces.json
index 95b42af1d..da7a85f6b 100644
--- a/language/zh/www/Introduction/Workspaces.json
+++ b/language/zh/www/Introduction/Workspaces.json
@@ -2,6 +2,7 @@
"After logging in and starting a new project, {}GameMaker{} will take you to the initial {}workspace {}with some basic windows docked to the {}IDE{}. In general, the workspace is simply an area where you can organise the different assets for your game while you are working:":"登录并开始一个新项目后,{}GameMaker{}会带你进入最初的{}工作区{},一些基本窗口停靠在{}IDE{}上。 一般来说,工作区只是一个区域,你可以在工作时组织你的游戏的不同资源。",
"Another important feature of workspaces is that you can click {} on the tab and - still holding the mouse button {} down - drag it off of the main IDE window into its own individual window, making it very easy to organise things if you are using - for example - multiple displays. You also merge these secondary workspace windows back into the main one by dragging the tab back onto the first window. Note that although you appear to have two instances of the IDE running when you do this, they are {}both for the same project{} and you cannot have one project in one and another in the other unless you specifically open two instances of {}GameMaker{}.":"工作区的另一个重要特点是,你可以在标签上点击 {},然后 -- 仍然按住鼠标按钮 & nbsp;{}-- 把它从 IDE 主窗口拖到自己的独立窗口,如果你在使用 -- 比如说 -- 多个显示器,就可以非常容易地组织事情。你还可以通过把标签拖回第一个窗口,把这些二级工作区窗口合并到主窗口中。请注意,虽然你这样做的时候看起来有两个 IDE 实例在运行,但它们都是 {} 同一个项目 {},你不能在一个项目中使用另一个项目,除非你特别打开两个 {}GameMaker{} 的实例。",
"Another important feature of workspaces is that you can click {}{}{} on the tab and select Detach Workspace to open it into its own individual window that\u0027s separate from the main IDE window, making it very easy to organise things if you are using - for example - multiple displays. You also merge these secondary workspace windows back into the main one by dragging the tab back onto the first window.":"工作区的另一个重要特点是,你可以在标签上点击 {}{}{},然后仍然按住鼠标按钮把它从 IDE 主窗口拖到自己的独立窗口,如果你在使用比如说多个显示器,就可以非常容易地组织事情。你还可以通过把标签拖回第一个窗口,把这些二级工作区窗口合并到主窗口中。",
+ "Another important feature of workspaces is that you can drag out a workspace tab into its own individual window, which will be separate from the main IDE window, making it very easy to organise things if you are using - for example - multiple displays. You also merge these secondary workspace windows back into the main one by dragging the tab back onto the first window.":"工作区的另一个重要功能是,您可以将工作区选项卡拖到其自己的单独窗口中,该窗口将与主 IDE 窗口分开,这样,如果您使用多个显示器,则可以非常轻松地组织内容。您还可以通过将选项卡拖回第一个窗口来将这些辅助工作区窗口合并回主工作区窗口。",
"As you can see, the initial workspace is on a tab at the top of the screen (and you can rename it by double clicking the tab), but you can create further workspaces for the project by clicking the {} to the side, giving you multiple possible workspaces for any single project. For example, maybe you are working on interactions between the player and several enemy objects, so you\u0027d have the player on it\u0027s own workspace and the enemy objects in another, and perhaps another workspace only to show the scripts that both use.":"正如你所看到的,初始工作区在屏幕顶部的一个标签上(你可以通过双击该标签重命名它),但你可以通过点击旁边的 {}为项目创建更多的工作区,为任何一个项目提供多个可能的工作区。例如,也许你正在研究玩家和几个敌人对象之间的互动,所以你会把玩家放在它自己的工作区,把敌人对象放在另一个工作区,也许另一个工作区只显示两者使用的脚本。",
"As you can see, the initial workspace is on a tab at the top of the screen (and you can rename it by double clicking the tab), but you can create further workspaces for the project by clicking the {} to the side, giving you multiple possible workspaces for any single project. For example, maybe you are working on interactions between the player and several enemy objects, so you\u0027d have the player on its own workspace and the enemy objects in another, and perhaps another workspace only to show the scripts that both use.":"如您所见,初始工作区位于屏幕顶部的选项卡上(你可以通过双击标签来重命名它),但是你可以通过点击旁边的{}来为项目创建进一步的任务,为任何单个项目提供多个可能的任务。例如,也许你正在处理玩家和几个敌人对象之间的交互,所以你会让玩家在自己的工作区,而敌人的对象在另一个工作区,也许另一个工作区只是为了显示两者都使用的脚本。",
"Below we list the quick buttons that are available by default with {}GameMaker{}. These buttons can be found at the top of the IDE and represent many of the most common commands that you\u0027ll be using while working in {}GameMaker{} to make your workflow smoother (note that most of these buttons have an equivalent {}menu option{} too):":"下面我们列出了默认情况下可以使用{} GameMaker {}的快捷按钮。这些按钮可以在 IDE 的顶部找到,它们代表了许多你在{} GameMaker {}工作时使用的最常见的命令(注意这些按钮大部分也有相同的{}菜单选项{}) :",
diff --git a/language/zh/www/Quick_Start_Guide/Objects_And_Instances.json b/language/zh/www/Quick_Start_Guide/Objects_And_Instances.json
index 8073418cd..2d99d61be 100644
--- a/language/zh/www/Quick_Start_Guide/Objects_And_Instances.json
+++ b/language/zh/www/Quick_Start_Guide/Objects_And_Instances.json
@@ -1,32 +1,57 @@
{
+ " {}-->{}For information on all other types of events{}, please see {}here{}. ":"{}-->{} 有关所有其他类型事件的信息 {},请参阅 {} 此处 {}。",
+ "Above you can see all the different {}Event Categories{}, some of which contain other sub-categories. We won\u0027t go through all the events here, but we will cover a few important ones briefly:":"在上方您可以看到所有不同的 {} 事件类别 {},其中一些还包含其他子类别。我们不会在这里详细介绍所有事件,但我们将简要介绍一些重要的事件:",
"Above you can see all the different {}Event Categories{}, some of which contain other sub-categories. We won\u0027t go through all the events here, but we will cover the five most important ones briefly:":"您可以在上面看到所有不同的{}事件类别{},其中一些包含其他子类别。我们不会在这里介绍所有的事件,但我们将简要介绍五个最重要的事件:",
"Adding an event will open either the {}GML Code{} or {}GML Visual{} editor, depending what type of event you are creating. In this window you can now add the code or actions that you wish to be performed each time that event is triggered within the game loop.":"添加事件将打开 {}GML 代码 {} 或 {}GML 可视化 {} 编辑器,具体取决于您要创建的事件类型。在此窗口中,您现在可以添加每次在游戏循环中触发该事件时希望执行的代码或操作。",
+ "An alarm event can be set using the {}alarm{} variable or the {}Set Alarm Countdown{} action. You can \"set\" an alarm to a number of frames (i.e. steps) and that alarm event will be executed after that many steps, from the time it is set. For example, in the Create event, you can set Alarm 0 to 100, and the Alarm 0 event will execute 100 frames after the Create event.":"可以使用 {}alarm{} 变量或 {} 设置闹钟倒计时 {} 操作设置闹钟事件。您可以将警报 \" 设置 \" 为多个帧 (即步骤),并且从设置时间起,该警报事件将在这么多步骤之后执行。例如,在 Create 事件中,可以将 Alarm 0 设置为 100,Alarm 0 事件将在 Create 事件后 100 帧执行。",
"And you can find a full explanation of all the different parts of the Object Editor here:":"您可以在此处找到对象编辑器所有不同部分的完整说明:",
"At this point, you may be asked to choose between {}GML Visual{} and {}GML Code{}. See {}GameMaker Language{} for more information.":"此时,可能会要求您在 {}GML 可视化 {} 和 {}GML 代码 {} 之间进行选择。有关详细信息,请参阅 {}GameMaker 语言 {}。",
"Editors: The Object Editor":"编辑器:对象编辑器",
+ "Events":"事件",
"Events are discreet moments in the game loop where things are made to happen based on what you have programmed for them. {}GameMaker{} works with cycles of these events - from the moment a room is started to the moment it is finished there is a game loop running where every step a series of events are run, and you can choose to place GML code or GML Visual actions in your instances that respond to these events (a {}step {}is a moment in game time, governed by the game speed setting - also called a \"frame\").":"事件是游戏循环中谨慎的时刻,事情是根据你为它们编写的程序来实现的。{}GameMaker{} 处理这些事件的循环 -- 从房间开始到结束的那一刻,有一个运行游戏循环,其中每一步都会运行一系列事件,您可以选择在响应这些事件的实例中放置 GML 代码或 GML 可视化动作 ({} 步骤 {} 是游戏时间中的一个时刻,由游戏速度设置决定-也称为 \"帧\")。",
+ "Events are moments in the game where things happen - and you decide what happens at each moment, using events. This is how you program your game!":"事件是游戏中发生事情的时刻 - 您可以使用事件来决定每个时刻会发生什么。这就是您编写游戏的方式!",
"For further information on all the different events, please see {}here{}.":"有关所有不同活动的详细信息,请参阅{}此处{}。",
"GML Code":"GML 代码",
"GML Visual":"GML 可视化",
+ "If you do not have an appropriate sprite yet, you can click {} on the {}New Sprite{} button {} to create a new sprite asset and edit it as you wish, just as if you had created the asset through the standard sprite create options, only now it will automatically be assigned to the object that you had open when you started to create it.":"如果您还没有合适的 Sprite,您可以点击 {}New Sprite{} 按钮 {} 来创建新的 Sprite 资源并根据需要对其进行编辑,就像您通过标准创建资源一样精灵创建选项,只有现在它才会自动分配给您在开始创建它时打开的对象。",
"If you do not have an appropriate sprite yet, you can click {} on the {}New Sprite{} button {} to create a new sprite asset and edit it as you wish, just as if you had created the asset through the standard sprite create options, only now it will automatically be assigned to the object that you had open when you started to create it. Once you select a sprite you can also click {} on the {}Edit Sprite{} {} or {}Edit Image{} {} buttons to edit either the images of the sprite itself or the sprite asset. This can be faster than first finding the sprite in the Asset Browser and then indicating you want to edit it.":"如果您还没有合适的精灵,可以单击{}{}新建精灵{}按钮{}以创建新的精灵资源并根据需要对其进行编辑,就像您通过标准的精灵创建选项创建了资源一样,只是现在它将自动指定给您开始创建它时已打开的对象。选择精灵后,还可以单击{}编辑精灵{}{}或{}编辑图像{}{}按钮{}来编辑精灵本身的图像或精灵资源。这比先在资源浏览器中找到精灵,然后指示您要编辑它要快得多。",
+ "In a game made with {}GameMaker{}, the characters, monsters, balls, walls, etc... that you see in the game are actually all considered as being {}instances{}. An instance is essentially a \"copy\" of an object that is found in the Asset Browser and then placed in a room (think of objects as {}templates {}for instances).":"在使用 {}GameMaker{} 制作的游戏中,您在游戏中看到的角色、怪物、球、墙等实际上都被视为 {} 实例 {}。实例本质上是在资源浏览器中找到并放置在房间中的对象的 \" 副本 \"( 将对象视为实例的 {} 模板 {})。",
+ "Instances":"实例",
+ "Now, we can\u0027t talk about Objects without talking about {}Instances{}.":"现在,我们不能在不讨论 {} 实例 {} 的情况下讨论对象。",
"Now, we can\u0027t talk about Objects without talking about {}Instances{}. In a game made with {}GameMaker{}, the characters, monsters, balls, walls, etc... that you see in the game are actually all considered as being {}instances{}. An instance is essentially a \"copy\" of an object that is found in the Asset Browser and then placed in a room (think of objects as {}templates {}for instances). So when we talk about something affecting or changing an instance, we mean that one particular copy of an object in a room is being affected while all the rest are not, but when we talk about affecting or changing an object we mean that anything we do to it will be reflected in all the instances created from that point on too. So, {}the object is the template for the instance, and the instance is what we place in a room to make our game{}.":"现在,我们不能不讨论对象而不讨论 {} 实例 {}。在一款由 {}GameMaker{} 制作的游戏中,角色、怪物、球、墙等。你在游戏中看到的其实都是 {} 实例 {}。实例本质上是在资源浏览器中找到并放置在房间中的对象的“副本”(将对象视为实例的 {} 模板 {})。因此,当我们谈论影响或改变实例的东西时,我们的意思是房间中某个对象的一个特定副本受到影响,而其他所有副本都不受影响;但当我们谈论影响或改变对象时,我们对它所做的任何事情也将反映在从该点开始创建的所有实例中。因此,{} 对象是实例的模板,实例是我们放置在房间中以制作游戏的东西 {}。",
+ "Object Editor":"对象编辑器",
"Objects And Instances":"对象和实例",
+ "Objects are a special asset that we use to control aspects of a game and to do specific things. Most of the time they have a sprite associated with them so that you can see them in the game rooms, but sometimes they are used as a \"behind the scenes\" {}controller {}objects to do things like track stats, or set timings for cut-scenes, etc...":"对象是一种特殊的资产,我们用它来控制游戏的各个方面并执行特定的操作。大多数时候,它们都有一个与之关联的精灵,以便您可以在游戏室中看到它们,但有时它们被用作 \" 幕后 \"{} 控制器 {} 对象来执行跟踪统计数据或设置计时等操作用于过场动画等 ...",
+ "Objects can be given behaviours and they can react to certain events as well as to each other, and most of the things you see in a game are based on objects and their interactions with the user and each other.":"对象可以被赋予行为,它们可以对某些事件以及彼此做出反应,并且您在游戏中看到的大多数事物都是基于对象及其与用户和彼此之间的交互。",
+ "Obviously when making a game, it is very important that you know when two (or more) instances of an object have collided, and for that we have the collision event. This is an event that you place in an object and then specify against which other object you should be checking for collisions, for example, the player colliding with a coin to collect it, or with an enemy to be hurt. Once you have added the event and chosen the object to check for, you can add GML code or GML Visual actions to program what happens on collision.":"显然,在制作游戏时,了解一个对象的两个 (或多个) 实例何时发生碰撞非常重要,为此我们有碰撞事件。这是一个您放置在对象中的事件,然后指定您应该检查哪个其他对象的碰撞,例如,玩家与硬币碰撞以收集它,或者与敌人碰撞而受到伤害。添加事件并选择要检查的对象后,您可以添加 GML 代码或 GML 视觉操作来对碰撞时发生的情况进行编程。",
"Obviously when making a game, it is very important that you know when two (or more) instances of an object have collided, and for that we have the collision event. This is an event that you place in an object and then specify against which other object you should be checking for collisions. Once you have added the event and chosen the object to check for you can add GML code or GML Visual to resolve the collision.":"显然,在制作游戏时,知道对象的两个 (或更多) 实例发生碰撞是非常重要的,为此我们有碰撞事件。这是一个事件,您可以将其放置在对象中,然后指定应针对哪个其他对象检查碰撞。添加事件并选择要检查的对象后,可以添加 GML 代码或 GML 可视化来解决冲突。",
"Once you have added or created the sprite, you can change a few other object properties like whether it should be {}visible {}or not - for example - or what kind of {}collision mask{} it should have. For simple games you probably don\u0027t need to change anything here and can now go on to add {}Events {}to the object.":"添加或创建精灵后,您可以更改其他几个对象属性,例如它是否应该{}可见{},或者它应该具有哪种{}碰撞遮罩{}。对于简单的游戏,您可能不需要在此处更改任何内容,现在可以继续向对象添加{}事件{}。",
+ "Once you select a sprite you can also click {} on the {}Edit Sprite{} {} or {}Edit Image{} {} buttons to edit either the images of the sprite itself or the sprite asset. This can be faster than first finding the sprite in the Asset Browser and then indicating you want to edit it.":"选择 Sprite 后,您还可以点击{}Edit Sprite{} 或 {}Edit Image{} 按钮上的 {3} 来编辑 Sprite 本身的图像或 Sprite 资源的图像。这比首先在资源浏览器中找到精灵然后指示您要编辑它要快。",
+ "So when we talk about something affecting or changing an instance, we mean that one particular copy of an object in a room is being affected while all the rest are not, but when we talk about affecting or changing an object we mean that anything we do to it will be reflected in all the instances created from that point on too. So, {}the object is the template for the instance, and the instance is what we place in a room to make our game{}.":"因此,当我们谈论影响或更改实例的事物时,我们的意思是房间中对象的一个\u200B\u200B特定副本受到影响,而其他所有对象则不受影响,但是当我们谈论影响或更改对象时,我们的意思是我们所做的任何事情它也将反映在从那时起创建的所有实例中。因此,{} 该对象是实例的模板,而实例是我们放置在房间中以制作游戏的东西 {}。",
"The next part of this guide will look at one more resource type, {}Sequences{}...":"本指南的下一部分将介绍另一种资源类型,即{}序列{}...",
"There are multiple different Draw Events within the draw event category, but the one you use most is the one at the top simply called \"Draw\". This general draw event will be called, like the step event, every game frame, but it works in two different ways. The first is when you don\u0027t add this event to the object... When there is no {}specified {}Draw Event, then {}GameMaker{} will default to drawing the sprite assigned to the object, using any transforms that have been applied elsewhere in the object (like to change its size or alpha blending), so even when no Draw Event is listed in the Events list, it is still being run and will still draw to the screen when an instance is placed in a room. The second way it works is when you add the event itself and include any GML or GML Visual in it. Adding something to the event tells {}GameMaker{} \" {}I want to control what you draw for instances of this object{}\" and it completely over-rides the default draw. This means that you can have an object with a sprite assigned, then set the draw event to draw text and the sprite will not be drawn as you have not told {}GameMaker{} to draw it, although the text will be.":"在绘制事件类别中有多个不同的绘制事件,但您使用最多的是位于顶部的事件,简称为\"绘制\"。与步事件一样,这个常规的抽签事件将被称为每个游戏帧,但它有两种不同的工作方式。第一种情况是当您没有将此事件添加到对象时...。如果没有{}指定{}绘制事件,则 {}GameMaker{} 将默认使用对象中其他位置应用的任何变换(如更改其大小或Alpha混合)绘制指定给对象的精灵,因此即使在事件列表中没有列出绘制事件,它仍在运行,并且当实例放置在房间中时仍将绘制到屏幕上。第二种工作方式是当您添加事件本身并在其中包含任何GML或GML可视内容时。在事件中添加一些内容会告诉 {}GameMaker{} \"{}我想控制您为该对象的实例绘制的内容{}\",它会完全覆盖默认绘制。这意味着您可以指定一个指定了精灵的对象,然后将绘制事件设置为绘制文本,并且不会绘制精灵,因为您没有告诉 {}GameMaker{} 绘制它,尽管文本将会绘制。",
+ "There are multiple different Draw Events within the draw event category, but the one you use most is the one at the top simply called \"Draw\". This general draw event will be called, like the step event, every game frame, but it works in two different ways. The first is when you don\u0027t add this event to the object: When there is no specified Draw Event, then {}GameMaker{} will draw the sprite assigned to the object, using any transforms that have been applied elsewhere in the object (like to change its {}size{} or {}alpha blending{}), so even when no Draw Event is listed in the Events list, it is still being run and will still draw to the screen when an instance is placed in a room. The second way it works is when you add the event itself and include any GML code or GML Visual in it. Adding something to the event tells {}GameMaker{} \"{}I want to control what you draw for instances of this object{}\" and it completely overrides the default draw. This means that you can have an object with a sprite assigned, then set the draw event to draw text and the sprite will not be drawn as you have not told {}GameMaker{} to draw it (unless you do {}draw it{}), although the text will be.":"绘制事件类别中有多种不同的绘制事件,但您最常用的一个是位于顶部的简单称为 \" 绘制 \" 的事件。与步骤事件一样,每个游戏帧都会调用此一般绘制事件,但它以两种不同的方式工作。第一种情况是当您不将此事件添加到对象时:当没有指定的绘制事件时,{}GameMaker{} 将使用已在对象中其他位置应用的任何变换来绘制分配给该对象的精灵 (例如更改其 {} 大小 {} 或 {}Alpha 混合 {}),因此即使事件列表中未列出任何绘制事件,它仍在运行,并且当将实例放置在房间。第二种工作方式是添加事件本身并在其中包含任何 GML 代码或 GML Visual。向事件添加一些内容会告诉 {}GameMaker{}\"{} 我想控制您为此对象的实例绘制的内容 {}\",并且它会完全覆盖默认绘制。这意味着您可以为一个分配了精灵的对象,然后设置绘制事件来绘制文本,并且精灵不会被绘制,因为您没有告诉 {}GameMaker{} 绘制它 (除非您 {} 绘制它 {}),尽管文本也是。",
+ "These events run when input is found on the selected key. For example, let\u0027s take the \"Space\" event, which runs for the Spacebar. A \"{}Key Down{}\" event would execute every step that the Spacebar is held down. A \"{}Key Pressed{}\" event would only run that one step where the key was found to be hit, and will not run again until it is released and hit again. A \"{}Key Up{}\" event will run on the step where the key is released.":"当在选定的键上找到输入时,这些事件就会运行。例如,我们以 \"Space\" 事件为例,该事件针对空格键运行。 \"{}Key Down{}\" 事件将执行按住空格键的每一步。 \"{}Key Pressed{}\" 事件只会运行发现按键被击中的那一步,并且不会再次运行,直到释放并再次击中按键为止。 \"{}Key Up{}\" 事件将在释放按键的步骤上运行。",
+ "This event happens when an instance of the object is first created, and is the very first thing that happens within an instance that has been placed in the room through the room editor when a room is entered. This means that this event is the ideal place to initialise variables, set paths etc... and do anything else that generally only needs to be done once or only when an instance first appears in the room.":"该事件在首次创建对象的实例时发生,并且是进入房间时通过房间编辑器放置在房间中的实例内发生的第一件事。这意味着该事件是初始化变量、设置路径等的理想场所 ... 以及执行通常只需要执行一次或仅在实例首次出现在房间中时执行的任何其他操作。",
"This event happens when an instance of the object is first created, and is the very first thing that happens within an instance that has been placed in the room through the room editor when a room is entered. This means that this event is the ideal place to initialize variables, start Timelines, set paths etc... and do anything else that generally only needs to be done once or only when an instance first appears in the room.":"此事件在首次创建对象的实例时发生,并且是进入房间时在已通过房间编辑器放置到房间中的实例中发生的第一件事。这意味着该事件是初始化变量、开始时间线、设置路径等的理想场所。并执行通常只需执行一次或仅当实例首次出现在房间中时才执行的任何其他操作。",
"This event is the very last event to be executed when an instance is destroyed. It is often overlooked when adding behaviours to objects, but it can be very useful - for example, for creating explosion or particle effects when an enemy is killed, or for re-spawning a new instance of the object in another part of the room, or even for adding points onto a score.":"此事件是销毁实例时要执行的最后一个事件。在将行为添加到对象时,它经常被忽略,但它可以非常有用-例如,在敌人被击毙时创建爆炸或粒子效果,或在房间的另一部分重新生成对象的新实例,甚至用于为分数增加分数。",
"This is the {}Object Editor{} window and shows the current object properties, and the first thing you should do is name the object, again using a prefix like \" {}obj_{}\" or some other identifier. In general, for an object to draw anything and register collisions with instances of other objects it needs to have a sprite assigned to it, which is added using the {} button. This will open the {}Asset Explorer{} where you can select the sprite to use (you can also drag sprites from the Asset Browser and drop them onto the Object Editor to assign them):":"这是 {} 对象编辑器 {} 窗口,其中显示了当前的对象属性,您应该做的第一件事是命名对象,再次使用类似 \"{}obj_{}\" 的前缀或其他一些标识符。通常,一个对象要绘制任何内容并注册与其他对象实例的碰撞,需要为其指定一个精灵,该精灵是使用 {} 按钮添加的。这将打开 {} 资源管理器 {},您可以在其中选择要使用的精灵 (也可以将精灵从资源浏览器拖放到对象编辑器上以进行指定):",
+ "This is the {}Object Editor{} window and shows the current object properties, and the first thing you should do is name the object, again using a prefix like \"{}obj_{}\" or some other identifier. In general, for an object to draw anything and register collisions with instances of other objects it needs to have a sprite assigned to it, which is added using the {} button.":"这是 {} 对象编辑器 {} 窗口,显示当前对象属性,您应该做的第一件事是命名对象,同样使用 \"{}obj_{}\" 等前缀或其他标识符。一般来说,要让对象绘制任何内容并注册与其他对象实例的碰撞,需要为其分配一个精灵,该精灵是使用 {} 按钮添加的。",
+ "This will open the {}Asset Explorer{} where you can select the sprite to use (you can also drag sprites from the Asset Browser and drop them onto the Object Editor to assign them):":"这将打开 {}Asset Explorer{},您可以在其中选择要使用的精灵 (您也可以将精灵从资源浏览器中拖放到对象编辑器上以进行分配):",
"To add an event you click {} on the Add Event button:":"要添加事件,请单击添加事件按钮上的{}:",
"To create a new object asset, it\u0027s the same as for every other asset and you simply right click {} on the Objects asset folder and select {}Create{} (or right click anywhere in the {}Asset Browser{} and select {}Create Object{}).":"要创建新的对象资源,与其他所有资源相同,只需在对象资源文件夹上单击鼠标右键{}并选择{}创建{}(或在{}资源浏览器{}中的任意位置单击鼠标右键并选择{}创建对象{})。",
+ "With the assets you have seen so far you can add some nice images and sounds to the game asset browser, but they don\u0027t do anything in the game itself yet! For that we need the most important assets of all in {}GameMaker{}, the {}Object {}asset.":"通过到目前为止您所看到的资产,您可以向游戏资产浏览器添加一些漂亮的图像和声音,但它们在游戏本身中还没有执行任何操作!为此,我们需要 {}GameMaker{} 中最重要的资产,即 {} 对象 {} 资产。",
"With the assets you have seen so far you can add some nice images and sounds to the game asset browser, but they don\u0027t do anything in the game itself yet! For that we need the most important assets of all in {}GameMaker{}, the {}Object {}asset. Objects are a special asset that we use to control aspects of a game and to do specific things. Most of the time they have a sprite associated with them so that you can see them in the game rooms, but sometimes they are used as a \"behind the scenes\" {}controller {}objects to do things like track stats, or set timings for cut-scenes, etc... Objects can be given behaviours and they can react to certain events as well as to each other, and most of the things you see in a game are based on objects and their interactions with the user and each other.":"有了你到目前为止看到的资源,你可以在游戏资源浏览器中添加一些漂亮的图像和声音,但它们还不能在游戏本身做任何事情!为此,我们需要 {}GameMaker{} 中最重要的资源,{}对象{}资源。物体是一种特殊的资源,我们用它来控制游戏的各个方面,并做一些特定的事情。大多数时候,它们都有一个与之相关的精灵,这样你就可以在游戏室里看到它们了,但有时它们也会被用作\"幕后\"的{}控制器{}对象,来做一些事情,比如跟踪统计数据,或者设置剪辑场景的时间等等。对象可以被赋予行为,它们可以对某些事件以及彼此做出反应,你在游戏中看到的大多数东西都是基于对象及其与用户和彼此的交互。",
"You can find more information about using GML in your object events from the two pages given below:":"您可以从下面给出的两个页面中找到有关在对象事件中使用 GML 的详细信息:",
"You can then click on an event in the list to add it to the object.":"然后,您可以单击列表中的事件将其添加到对象中。",
+ "{}Alarm events{}":"{} 警报事件 {}",
"{}Collision Event{}":"{}碰撞事件{}",
"{}Create Event{}":"{}创建事件{}",
"{}Destroy Event{}":"{}销毁事件{}",
"{}Draw Event{}":"{}绘制事件{}",
+ "{}GameMaker{} splits game time into steps with the game speed defining how many of these steps there are supposed to be per second - by default, there are 60 steps a second. The Step Event is executed every single step of the game while the instance exists, and can be used for continuous behaviour like moving, collision checking, etc. Note that the Step Event category has three sub-categories to \"fine tune\" timing within the instance, but in general you will use the main Step Event most.":"{}GameMaker{} 将游戏时间分成多个步骤,游戏速度定义每秒应有多少个步骤 - 默认情况下,每秒有 60 个步骤。当实例存在时,步骤事件会在游戏的每一步中执行,并且可用于连续行为,如移动、碰撞检查等。请注意,步骤事件类别具有三个子类别,用于在实例中 \" 微调 \" 计时。例如,但一般来说,您最常使用主步骤事件。",
"{}GameMaker{} splits game time into steps with the game speed defining how many of these steps there are supposed to be per second. A step, is basically the loop that runs constantly with all the events being checked and triggered as necessary while the game runs, so as you can imagine, the Step Event is an event that is checked every single step of the game while the instance exists. Note that the Step Event category has three sub-categories to \"fine tune\" timing within the instance, but in general you will use the main Step Event most.":"{}GameMaker{} 根据游戏速度将游戏时间分成几个步骤,以定义每秒应该有多少个这样的步骤。步骤,基本上是一个循环,在游戏运行时,所有事件都会被检查并根据需要触发,所以可以想象,步骤事件是在实例存在的情况下,游戏的每个步骤都被检查的事件。请注意,步骤事件类别有三个子类别,可在实例中“微调”计时,但通常您将使用最多的主步骤事件。",
+ "{}GameMaker{} works with cycles of these events - from the moment a room is started to the moment it is finished, there is a game loop running where every frame a series of events are run, and you can choose to place GML code or GML Visual actions in your instances that respond to these events.":"{}GameMaker{} 处理这些事件的循环 - 从房间启动到结束,有一个游戏循环在运行,其中每一帧都会运行一系列事件,您可以选择放置 GML 代码或实例中响应这些事件的 GML 视觉操作。",
+ "{}Key Down{} Key Pressed{} Key Up{}":"{} 按下键 {} 按下键 {} 弹起键 {}",
"{}Step Event{}":"{}步事件{}"
}
\ No newline at end of file
diff --git a/language/zh/www/Quick_Start_Guide/Quick_Start_Guide.json b/language/zh/www/Quick_Start_Guide/Quick_Start_Guide.json
index 82157f4a9..37f1c73cb 100644
--- a/language/zh/www/Quick_Start_Guide/Quick_Start_Guide.json
+++ b/language/zh/www/Quick_Start_Guide/Quick_Start_Guide.json
@@ -10,5 +10,6 @@
"To help understand this, let\u0027s imagine you have a character that you want to move around the game room. You would create a {}sprite {}for that character, then create an {}object {}and assign it the sprite, and in the object you\u0027d add an {}event {}called the {}Step Event{}. In this event you would tell it to move right by 2 pixels. You would then place an {}instance {}of that object into the game room, and when you run the game, the instance will start moving right by 2 pixels every step (the Step Event runs once every game step), so that in 1 second the instance has moved 120 pixels to the right.":"为了帮助理解这一点,让我们假设您有一个角色要在游戏室中移动。您将为该角色创建一个{}精灵{},然后创建一个{}对象{}并为其指定精灵,并在对象中添加一个名为{}步骤事件{}的{}事件{}。在这种情况下,您将告诉它向右移动2个像素。然后将该对象的{}实例{}放入游戏室,当您运行游戏时,该实例将开始每步向右移动2个像素(Step Event每个游戏步运行一次),因此在1秒钟内,该实例已向右移动120个像素。",
"To illustrate the {}GameMaker{} workflow and get you straight into making something, we\u0027ve prepared the this guide to take you from the very basics of what is {}GameMaker{} and what is a program, through creating general assets and up to how to code basic things like movement and score.":"为了说明{}GameMaker{}的工作流程并让你直接开始做点什么,我们准备了这份指南,让你从什么是{}GameMaker{}和什么是程序的基本知识,到创建一般资源,再到如何编写动作和分数等基本内容。",
"We\u0027ll go into the specifics of each of the above listed items in the following pages, but that\u0027s the general flow of actions required to make a game. The important thing to note here is that your main \"building blocks\" for the game will always be sprites, objects and rooms, although there are a number of subsidiary assets that can also be used to add extra functionality or behaviours to these items (like {} {}shaders{}{}, or {} {}timelines{}{}).":"我们将在接下来的几页中详细介绍上面列出的每个项目,但这是制作游戏所需的一般动作流程。这里需要注意的重要一点是,游戏的主要 \"基石\" 将永远是精灵、物体和房间,尽管有许多辅助资源也可以用来为这些物品添加额外的功能或行为(例如{}{}着色器{}{}或{}{}时间线{}{})。",
+ "We\u0027ll go into the specifics of each of the above listed items in the following pages, but that\u0027s the general flow of actions required to make a game. The important thing to note here is that your main \"building blocks\" for the game will always be sprites, objects and rooms, although there are a number of subsidiary assets that can also be used to add extra functionality or behaviours to these items (like {}Sequences{}, {}Particles{}, {}Shaders{}, etc.).":"我们将在接下来的页面中详细介绍上面列出的每个项目的细节,但这是制作游戏所需的一般操作流程。这里需要注意的重要一点是,游戏的主要 \" 构建块 \" 始终是精灵、对象和房间,尽管有许多辅助资产也可用于为这些项目添加额外的功能或行为 (例如 {} 序列 {}、{} 粒子 {}、{} 着色器 {} 等)。",
"Welcome to the {}Quick Start Guide{}! This section of the manual is designed to familiarise you with the most important aspects of {}GameMaker{} and will show you the basics to get you making games as quick as possible. The guide covers essential IDE functionality and also provides a brief introduction to programming, so you can make the most of the product as quick as possible, whether you use {}GML Code{} or {}GML Visual{}.":"欢迎来到{}快速入门指南{}!本手册的这一部分旨在让您熟悉{}GameMaker{}最重要的方面,并将向您展示基础知识,帮助您尽快制作游戏。该指南涵盖了基本的 IDE 功能,还简要介绍了编程,因此无论您使用{}GML Code{}还是{}GML Visual{},您都可以尽快充分利用产品。"
}
\ No newline at end of file
diff --git a/language/zh/www/Quick_Start_Guide/Rooms.json b/language/zh/www/Quick_Start_Guide/Rooms.json
index 3095fa70d..45556cce6 100644
--- a/language/zh/www/Quick_Start_Guide/Rooms.json
+++ b/language/zh/www/Quick_Start_Guide/Rooms.json
@@ -1,26 +1,32 @@
{
"All games that you make in {}GameMaker{} need at least one room to run (but can have many, many more) , and a room is just a space where you place instances of the objects that make up your game as well as tiles and any other graphical resources. When you first create a room in the {}Asset Browser{} you will be presented with a new {}{}Room Editor{}{} workspace with which to edit its properties, something like this:":"您在 {}GameMaker{} 中制作的所有游戏都需要至少一个空间来运行(但可以有很多很多空间),而空间就是一个空间,您可以在其中放置组成游戏的对象的实例以及图块和任何其他图形资源。首次在{}资源浏览器{} 中创建房间时,您将看到一个新的{}{}房间编辑器{}{}工作区,可用来编辑其属性,如下所示:",
+ "All games that you make in {}GameMaker{} need at least one room to run (but can have many, many more), and a room is just a space where you place instances of the objects that make up your game as well as tiles and any other graphical resources. When you first create a room in the {}Asset Browser{} you will be presented with a new {}{}Room Editor{}{} workspace with which to edit its properties, something like this:":"您在 {}GameMaker{} 中制作的所有游戏都需要至少一个房间才能运行 (但可以有很多很多),而房间只是您放置构成游戏的对象实例以及瓷砖和任何其他图形资源。当您首次在 {} 资产浏览器 {} 中创建房间时,您将看到一个新的 {}{} 房间编辑器 {}{} 工作区,可用于编辑其属性,如下所示:",
"By default the room tools will be placed on the left, with two main sections:":"默认情况下,房间工具将放置在左侧,有两个主要部分:",
"Editors: The Room Editor":"编辑器:房间编辑器",
"For more detailed information on the Room Editor, you can see the following section of the manual:":"有关房间编辑器的更多详细信息,请参阅手册的以下部分:",
"If you want to place multiple instances in the room, then you can select an object from the resource tree and then press and hold {} to preview the resource, and if you additionally click the left mouse button {} you can then \"paint\" it into the room layer.":"如果您要在房间中放置多个实例,则可以从资源树中选择一个对象,然后按住{}以预览资源,如果您另外单击鼠标左键{},则可以将其绘制到房间层中。",
"Note that assets are given a position when they are added into the room editor based on their X and Y axis positions relative to the room {}origin{}. The room origin is the (0, 0) position, which in {}GameMaker{} is the top left corner, and to the right is +X and down is +Y, e.g.:":"请注意,在将资源添加到房间编辑器中时,会根据其相对于房间原点的 X 轴和 Y 轴位置为其指定一个位置。房间{}原点{}为 (0, 0) 位置,在{}GameMaker{}中为左上角,右侧为 +X,向下为 +Y,例如:",
"Rooms":"房间",
+ "Sometimes you want a nice graphical effect but don\u0027t want the overhead of using an instance or don\u0027t need it to do anything other than draw itself. You could use a tile map, but given that tile maps are restricted to using a grid and only a single image per grid cell, they can be a bit restrictive. This is when you would use the asset layer. The asset layer simply takes a sprite asset and draws it using the parameters that you set when you add it into the room. {}Sprites{} and {}sequences{} can be added to this layer the same way that instances of objects are added to the instance layer, ie: you click {} on the sprite/sequence in the asset browser and then drag it into the room editor workspace. You can also drag in {}font assets{} to create text, and {}particle system assets{} for showing particle effects at runtime.":"有时您想要一个漂亮的图形效果,但不希望使用实例的开销,或者不需要它做除了绘制本身之外的任何事情。您可以使用图块地图,但鉴于图块地图仅限于使用网格并且每个网格单元只能使用单个图像,因此它们可能有点限制。这是您使用资产层的时候。资产层仅采用精灵资产并使用您将其添加到房间时设置的参数来绘制它。{} 精灵 {} 和 {} 序列 {} 可以添加到此层,就像将对象实例添加到实例层一样,即:在资源浏览器中点击精灵 / 序列上的 {},然后将其拖动进入房间编辑器工作区。您还可以拖入 {} 字体资源 {} 来创建文本,以及拖入 {} 粒子系统资源 {} 来在运行时显示粒子效果。",
"Sometimes you want a nice graphical effect but don\u0027t want the overhead of using an instance or don\u0027t need it to do anything other than draw itself. You could use a tile map, but given that tile maps are restricted to using a grid and only a single image per grid cell, they can be a bit restrictive. This is when you would use the asset layer. The asset layer simply takes a sprite resource and draws it using the parameters that you set when you add it into the room. Sprites and sequences can be added to this layer the same way that instances of objects are added to the instance layer, ie: you click {} on the sprite in the asset browser and then drag it into the room editor workspace.":"有时,您想要一个很好的图形效果,但不想要使用实例的开销,或者除了绘制自己之外不需要它做任何事情。您可以使用图块地图,但由于图块地图被限制为只能使用网格,并且每个网格单元只能使用一幅图像,因此它们可能会有一些限制。此时您将使用资源层。资源层只获取一个精灵资源,并使用您在将其添加到房间时设置的参数来绘制它。可以将精灵和序列添加到此层,方法与将对象实例添加到实例层的方式相同,即:在资源浏览器中的精灵上单击{},然后将其拖动到房间编辑器工作区。",
"That wraps it up for the Room Editor in this Quick Start Guide, and you should now know enough to actually get started creating sprites and objects and designing rooms for them. The next sections of this guide are going to cover some of the programming fundamentals to help you on your way, starting with actually {}Drawing {}things to the screen.":"这就是本快速入门指南中的房间编辑器的总结,您现在应该知道足够多的知识来实际开始创建精灵和对象并为它们设计房间。本指南的下一节将介绍一些编程基础知识,以帮助您上路,从实际将东西{}绘制{}到屏幕开始。",
"The background layer is a layer that can be filled with a {}single {}colour or a {}single {}image. It can be moved and positioned within the room, and you can have multiple background layers. Generally this is used, as the name suggests, to generate a constant background for all the other layers in the room. By Default a new room will always contain a background layer, but you can remove it if you don\u0027t need it.":"背景层是可以用{}单个{}颜色或{}单个{}图像填充的层。它可以在房间内移动和定位,并且可以有多个背景层。顾名思义,这通常用于为房间中的所有其他层生成恒定的背景。默认情况下,新房间将始终包含背景层,但如果不需要,可以将其删除。",
"The instance layer is where you place all the instances of the objects that you require for the game. To add an instance to a layer, simply click {} on the object in the asset browser and then drag it into the room editor workspace. When you release the mouse button, an instance of that object will have been added to the room. By Default a new room will always contain an instance layer, but you can remove it if you don\u0027t need it.":"实例层是放置游戏所需对象的所有实例的位置。要将实例添加到层,只需在资源浏览器中的对象上单击{},然后将其拖动到房间编辑器工作区。当您释放鼠标按钮时,该对象的一个实例将添加到房间中。默认情况下,新房间将始终包含实例层,但如果不需要,可以将其移除。",
+ "This layer applies a {}filter or effect{} to all the layers below it. Note that a single-layer effect can be applied to any layer via {}The Inspector{}.":"该层将 {} 过滤器或效果 {} 应用于其下方的所有层。请注意,单层效果可以通过 {} 检查器 {} 应用于任何层。",
"To add an instance to the room editor, you must first select an Instance Layer from the Layer Editor on the left (or create one if none exist). You can then go to the Asset Browser and simply click {} and drag an object that you want from there and drop it into the room at the position you want, which will add a single instance of that object to your game:":"若要将实例添加到房间编辑器,必须首先从左侧的层编辑器中选择实例层(如果不存在实例层,则创建实例层)。然后,您可以转到资源浏览器,只需单击{}并从那里拖动所需的对象并将其放入房间中所需的位置,即可将该对象的单个实例添加到您的游戏中:",
"We won\u0027t go into much more details about the room editor here (for that we have {}this section{} of the manual), but we will briefly explain how to add instances to an Instance Layer, as you\u0027ll need to know that for the next section of the Quick Start Guide.":"我们不会在这里深入讨论房间编辑器的更多细节(因为我们有手册的{}这一节{}),但我们将简要解释如何将实例添加到实例层,因为在快速入门指南的下一节中,您需要了解这一点。",
"We\u0027ve mentioned that there are different layer types, so let\u0027s just go over what they are and how they can be used when building your games:":"我们已经提到过有不同的层类型,所以让我们来看看它们是什么,以及在构建游戏时如何使用它们:",
"{}After having created a {}tile sets{}, you need to add the tiles to your room, which is done by creating a {}tile map{} layer. A tile map layer is a layer that permits you to add tiles from any of the tile set assets that you have created and will be set up automatically to use a grid the size of the tile set cells. You can only add a single tile to each grid cell, so if you require multiple tiles to occupy the same space, then you should be using multiple tile map layers.{}":"{}在创建了{}图块集{}之后,您需要将图块添加到您的房间,这是通过创建一个{}图块地图{}层来完成的。图块地图图层允许您从已创建的任何图块集资源添加图块,并且将自动设置为使用图块集单元格大小的栅格。您只能向每个网格单元格添加单个图块,因此,如果需要多个图块占据同一空间,则应使用多个图块地图层。{}",
"{}Asset Layer{}":"{}资源层{}",
"{}Background Layer{}":"{}背景层{}",
+ "{}Filter/Effect Layer{}":"{} 滤镜 / 效果层 {}",
"{}In the above example the instance is placed in the middle of the room at position (X:512, Y:384). It\u0027s also possible to go outside of the room bounds and have positions that are greater than the room axis lengths, or even less than than the room origin - in which case the X/Y coordinates will be negative values.":"{} 在上例中,实例放置在房间中间的位置 (X:512,Y:384)。也可以超出房间边界,其位置大于房间轴线长度,甚至小于房间原点,在这种情况下,X/Y 坐标将为负值。",
"{}Instance Layer{}":"{}实例层{}",
"{}Layer Editor{}: Everything in a room is placed on {}layers{}, and there are different layer types that you can choose from (more on this later). Layers are ordered by {}depth {}and this depth is what defines the order in which the layer contents will be rendered to the screen when the game runs. Depth ordering is from highest to lowest, so that the lower the depth the nearer the \"camera\" and the higher the depth the further away. For example, a layer with a depth of -300 will render over a layer with a depth of -100, and a layer with a depth of 1000 will render under everything with a depth less than this. Note that by default, {}GameMaker{} will order layer depths for you according to the position in the Layer Editor, and you can drag around layers using the mouse to re-order them and {}GameMaker{} will re-order the depths to match.":"{}图层编辑器{}:房间里的所有东西都放在{}层{}上,有不同的层类型可供选择 (后面会有更多介绍)。层按 {} 深度 {} 排序,此深度定义了在游戏运行时将层内容呈现到屏幕上的顺序。深度排序是从最高到最低,所以深度越低,离相机越近,深度越高,距离越远。例如,深度为 -300 的层将在深度为 -100 的层上渲染,深度为 1000 的层将在深度小于此深度的所有对象下渲染。请注意,默认情况下,{}GameMaker{} 将根据层编辑器中的位置为您排序层深度,您可以使用鼠标拖动层来重新排序它们,而 {}GameMaker{} 将重新排序以匹配深度。",
+ "{}Layer Editor{}: Everything in a room is placed on {}layers{}, and there are different layer types that you can choose from (more on this later). Layers are ordered by {}depth {}and this depth is what defines the order in which the layer contents will be rendered to the screen when the game runs. Depth ordering is from highest to lowest, so that the lower the depth the nearer the \"camera\" and the higher the depth the further away. For example, a layer with a depth of -300 will render over a layer with a depth of -100, and a layer with a depth of 1000 will render under everything with a depth less than this. Note that by default, {}GameMaker{} will order layer depths for you according to the position in the Layer Editor, and you can drag around layers using the mouse to re-order them and {}GameMaker{} will re-order the depths to match. {} {}When an Instance Layer or Asset Layer is selected, the {}Element List{} will appear showing you a list of the instances or assets placed in the layer. In the beginning, as shown in the image above, it will be empty.{} {} ":"{}图层编辑器 {}:房间中的所有内容都放置在 {} 图层 {} 上,并且您可以选择不同的图层类型 (稍后会详细介绍)。层按 {} 深度 {} 排序,该深度定义了游戏运行时层内容呈现到屏幕上的顺序。深度排序是从最高到最低,因此深度越低,离 \" 相机 \" 越近,深度越高,离 \" 相机 \" 越远。例如,深度为 -300 的图层将在深度为 -100 的图层上渲染,而深度为 1000 的图层将在深度小于此的所有图层下渲染。请注意,默认情况下,{}GameMaker{} 会根据层编辑器中的位置为您排序层深度,您可以使用鼠标在层周围拖动来重新排序,{}GameMaker{} 会重新排序深度匹配。{}{} 选择实例层或资产层后,将出现 {} 元素列表 {},向您显示放置在该层中的实例或资产的列表。一开始,如上图所示,它是空的。{}{}",
"{}Path Layer{}":"{}路径层{}",
"{}The path layer is the only one that does not actually get rendered when you run your game. This layer is more of a \"convenience\" layer for helping you to create or edit {}Path {}assets, since it permits you to add or edit paths within the actual room space.{}":"{}路径层是唯一一个在运行游戏时不会实际渲染的层。该层更像是帮助您创建或编辑{}路径{}资源的“便利”层,因为它允许您在实际房间空间内添加或编辑路径。{}",
"{}Tile Map Layer{}":"{}图块地图层{}",
- "{}{}Inspector{}{}: When you open a room its properties such as room size and camera view ports are shown here. You can set them here as well.{} When you click a layer in the Layer Editor its properties, that depend on the layer type, are shown and can be changed here. This window permits you to change those properties and edit how the layer will be {}rendered{}.":"{}{}检查器{}{}:打开房间时,房间大小、摄像头端口等属性都会在这里显示。您也可以在这里设置它们。{}当您在层编辑器中单击层时,它的属性将显示出来,并可以在此处更改,这些属性取决于层类型。此窗口允许您更改这些属性并编辑层的{}渲染{}方式。"
+ "{}{}Inspector{}{}: When you open a room its properties such as room size and camera view ports are shown here. You can set them here as well.{} When you click a layer in the Layer Editor its properties, that depend on the layer type, are shown and can be changed here. This window permits you to change those properties and edit how the layer will be {}rendered{}.":"{}{}检查器{}{}:打开房间时,房间大小、摄像头端口等属性都会在这里显示。您也可以在这里设置它们。{}当您在层编辑器中单击层时,它的属性将显示出来,并可以在此处更改,这些属性取决于层类型。此窗口允许您更改这些属性并编辑层的{}渲染{}方式。",
+ "{}{}Inspector{}{}: When you open a room its properties such as room size and camera view ports are shown here. You can set them here as well.{} When you click a layer in the Layer Editor, its properties, that depend on the layer type, are shown and can be changed here. This window permits you to change those properties and edit how the layer will be {}rendered{}.":"{}{} 检查器{}{}:当您打开房间时,此处会显示其属性,例如房间大小和摄像头视口。您也可以在此处进行设置。{} 当您在 Layer Editor 中点击某个层时,会显示其属性 (取决于层类型),并且可以在此处进行更改。此窗口允许您更改这些属性并编辑图层的 {} 渲染{} 方式。"
}
\ No newline at end of file
diff --git a/language/zh/www/Setting_Up_And_Version_Information/Error_Reporting.json b/language/zh/www/Setting_Up_And_Version_Information/Error_Reporting.json
index 1e30f89c4..076d40db5 100644
--- a/language/zh/www/Setting_Up_And_Version_Information/Error_Reporting.json
+++ b/language/zh/www/Setting_Up_And_Version_Information/Error_Reporting.json
@@ -1,15 +1,29 @@
{
+ "Crash Detected Window":"检测到碰撞的窗口",
"IDE Error Reporting":"IDE 错误报告",
+ "If this happens, or you suspect that either the {}Runtime{} or the IDE contains a bug, then we would request that you file a bug report using the {}Report A GameMaker Bug{} option from {}The Help Menu{}. Please always give as much information as possible and ensure you fill in every field as best you can.":"如果发生这种情况,或者您怀疑 {} 运行时 {} 或 IDE 包含错误,那么我们会要求您使用 {} 帮助菜单 {}中的 {} 报告 GameMaker 错误 {} 选项提交错误报告}。请始终提供尽可能多的信息,并确保尽可能填写每个字段。",
"If this happens, then we would request that you file a bug report using the {}Report A Bug{} option from {}The Help Menu{}. Please always give as much information as possible and ensure you fill in every field as best you can.":"如果发生这种情况,我们将要求您使用{}帮助菜单{}中的{}报告错误{}选项提交错误报告。请始终给予尽可能多的信息,并确保您尽可能填写每个字段。",
+ "In extreme cases where {}GameMaker{} crashes entirely, you may see on your next startup that the IDE bug reporter tells you that an earlier crash was detected and it will ask you to send us a bug report. Please do this.":"在 {}GameMaker{} 完全崩溃的极端情况下,您可能会在下次启动时看到 IDE 错误报告器告诉您检测到较早的崩溃,并要求您向我们发送错误报告。请这样做。",
"In most cases any errors will be caught by {}GameMaker{} and you may see an error that {}GameMaker{} has gone \"unstable\", which also prompts you to save your projects and then close and restart the program.":"在大多数情况下,任何错误都将被 {}GameMaker{} 捕获,您可能会看到 {}GameMaker{} 已变得 \" 不稳定 \" 的错误,这也会提示您保存项目,然后关闭并重新启动程序。",
+ "Most IDE errors will be caught by {}GameMaker{} and you may see an error that {}GameMaker{} has gone \"unstable\", which also prompts you to save your projects and then close and restart the program.":"大多数 IDE 错误都会被 {}GameMaker{} 捕获,您可能会看到 {}GameMaker{} 变得 \" 不稳定 \" 的错误,这也会提示您保存项目,然后关闭并重新启动程序。",
"On Windows - {}C:\\ProgramData\\GameMaker{}":"在 Windows - {}C:\\ProgramData\\GameMaker{}",
"On very rare occasions, if the error is severe, then the product may crash without giving the above mentioned warning, and if this happens then you will be shown the following window:":"在极少数情况下,如果错误很严重,则产品可能会在不发出上述警告的情况下崩溃,如果发生这种情况,您将看到以下窗口:",
+ "Please also strongly consider allowing the bug reporter to send us a copy of your project, as this may be essential to reproducing your problem and so we may be unable to help if you do not provide the project. Your files are always attached privately when you send them from the IDE bug reporter.":"还请强烈考虑允许错误报告者向我们发送您的项目副本,因为这对于重现您的问题可能至关重要,因此如果您不提供该项目,我们可能无法提供帮助。当您从 IDE Bug Reporter 发送文件时,您的文件始终会被私下附加。",
"Please also strongly consider allowing the bug-reporter to send us a copy of your project, as this may be essential to reproducing your problem and so we may be unable to help if you do not provide the project. Your files are always attached privately if you send them from the IDE bug reporter.":"同时,请考虑允许bug报告者将您的项目副本发送给我们,因为这对于重现您的问题可能是必不可少的,因此如果您不提供项目,我们可能无法提供帮助。如果您从IDE bug报告者发送文件,您的文件将始终作为私下附件。",
+ "Report A Bug Window":"报告错误窗口",
"Similarly, in extreme cases where {}GameMaker{} crashes entirely, you may see on your next startup that the IDE bug reporter tells you that an earlier crash was detected and it will ask you to send us a bug report. Please do this.":"同样,在{}GameMaker{}完全崩溃的极端情况下,您可能会在下次启动时看到IDE错误报告器告诉您检测到早期崩溃,并要求您向我们发送错误报告。请执行此操作。",
+ "The {}Help{} -> {}Report a GameMaker Bug{} option will open a window where you can create a bug report from within the IDE. If you\u0027re not signed in, a message is shown to ask you to {}Sign In/Register{}. It\u0027s also possible to {}Continue Anonymously{}.{} {}If you are using a {}GameMaker{} account, it is recommended to connect your GitHub account to your GM account via the {}GameMaker Account Dashboard{}. This will ensure your submitted reports are tied to your account so you can post updates and receive notifications from our team. ":"{} 帮助 {}->{} 报告 GameMaker Bug{} 选项将打开一个窗口,您可以在其中从 IDE 中创建错误报告。如果您尚未登录,则会显示一条消息,要求您 {} 登录 / 注册 {}。也可以 {} 匿名继续 {}。{}{} 如果您使用的是 {}GameMaker{} 帐户,建议通过 {}GameMaker 帐户仪表板 {} 将您的 GitHub 帐户连接到您的 GM 帐户。这将确保您提交的报告与您的帐户绑定,以便您可以发布更新并接收我们团队的通知。",
+ "To know exactly what data is being sent, then please see {}this article{} on the GameMaker Helpdesk.":"要准确了解发送的数据,请参阅 GameMaker 帮助台上的 {} 这篇文章 {}。",
"While great care has been taken when creating {}GameMaker{} to ensure that it is a stable and reliable tool, there is always the possibility that an issue could occur given the nature of the software and the multiple operating systems it runs on.":"虽然我们在创建{}GameMaker{}时非常小心,以确保它是一个稳定可靠的工具,但考虑到软件的性质及其运行的多个操作系统,始终存在发生问题的可能性。",
"While great care has been taken when creating {}GameMaker{} to ensure that it is a stable and reliable tool, there is always the possibility that an issue could occur given the nature of the software and the operating systems it runs on. In most cases any errors will be caught by {}GameMaker{} and you may be prompted to save your projects and then close and restart the program. If this happens then we would request that you file a bug with the Helpdesk. You can do this using the {}Report A Bug{} option from the {}Help Menu{} and, we ask that when doing so you give as much information as possible and also supply a link to the {}GameMaker{} {}ui.log{} file, which can be found in the following locations, depending on the OS:":"虽然在创建 {}GameMaker{} 以确保它是一个稳定可靠的工具时非常小心,但考虑到软件及其运行的操作系统的性质,始终存在出现问题的可能性。在大多数情况下,任何错误都会被 {}GameMaker{} 捕获,系统可能会提示您保存项目,然后关闭并重新启动程序。如果发生这种情况,我们会要求您向帮助台提交错误。您可以使用 {} 帮助菜单 {} 中的 {} 报告错误 {} 选项来执行此操作,我们要求您在执行此操作时提供尽可能多的信息,并提供指向 {}GameMaker{} {}ui.log{} 文件的链接,该文件可在以下位置找到,具体取决于操作系统:",
+ "You also have the option to {}Privately attach this project{}, which is generally required for many kinds of bug reports. You can also attach additional files. Finally, you should set the issue {}Visibility{}, either {}Public{} or {}Private{} (which does not affect your attached project and files, which are always private and only accessible by {}GameMaker{} staff).{} {} As mentioned in the window, you should first check the list of {}Known Issues{} before submitting. You also have the possibility to report a {}security vulnerability{}. ":"您还可以选择 {} 私下附加此项目 {},这通常是多种错误报告所必需的。您还可以附加其他文件。最后,您应该将问题设置为 {} 可见性 {},可以是 {} 公开 {} 或 {} 私有 {}( 这不会影响您附加的项目和文件,这些项目和文件始终是私有的,并且只能由 {}GameMaker{} 员工访问)。{}{} 如窗口中所述,您应在提交之前首先检查 {} 已知问题 {} 列表。您还可以报告 {} 安全漏洞 {}。",
+ "You can choose to include the current project by ticking the {}Include project{} checkbox. It is highly recommended that you provide a sample project that shows the issue as it provides important information to the {}GameMaker{} team about your issue. A message will be shown asking to include the current package when you select a category related to the runner and the checkbox isn\u0027t ticked.{} {} Finally you can submit the report by clicking the {}Submit{} button. ":"您可以通过勾选 {} 包含项目 {} 复选框来选择包含当前项目。强烈建议您提供一个显示问题的示例项目,因为它可以向 {}GameMaker{} 团队提供有关您的问题的重要信息。当您选择与跑步者相关的类别并且未勾选复选框时,将会显示一条消息,要求包含当前包。{}{} 最后,您可以通过点击 {}Submit{} 按钮提交报告。",
+ "{}Clicking on {}Report{} will open the {}Report a Bug{} window described above.":"{} 点击 {} 报告 {} 将打开上述的 {} 报告错误 {} 窗口。",
"{}IDE Error Reporting{}":"{}IDE错误报告{}",
"{}If you\u0027d like to know exactly what data is being sent, then please see {}this article{} on the GameMaker Helpdesk.":"{}如果您想确切了解正在发送的数据,请参阅GameMaker帮助台上的{}本文{}。",
+ "{}In the {}Report a Bug{} window you fill in a {}Title{} and {}Description{} and optionally the {}Steps To Reproduce{} the issue as well as assign the {}Issue Category{}.":"{} 在 {} 报告错误 {} 窗口中,您可以填写 {} 标题 {} 和 {} 描述 {},还可以选择 {} 重现问题的步骤 {},并指定 {} 问题类别 {}。",
+ "{}Reporting Errors{}":"{} 报告错误 {}",
"{}This window will show you some of the crash report data that has been compiled by {}GameMaker{} and gives you the option to send it to YoYo Games so they can see what happened and fix the issue if possible in future updates. If you\u0027d like to know exactly what data is being sent, then please see {}this article{} on the GameMaker Helpdesk.":"{}此窗口将显示一些由 {}GameMaker{} 编制的崩溃报告数据,并允许您选择将其发送到 YoYo Games,以便他们可以看到发生了什么,如果可能的话,在未来的更新中修复问题。如果您想确切了解正在发送的数据,请参阅 GameMaker 帮助台上的 {} 这篇文章 {}。",
+ "{}{}NOTE{}{} Any files attached via the Bug Reporter are uploaded privately, only accessible by the {}GameMaker{} team, even when the bug is public.":"{}{} 注意{}{} 通过 Bug Reporter 附加的任何文件都是私下上传的,只有 {}GameMaker{} 团队可以访问,即使 Bug 是公开的也是如此。",
"{}{}O{}n macOS - {}/Users/Shared/GameMaker/ (Macintosh HD > Users > Shared > GameMaker){}{}":"{}{}{}在 macOS - {}/Users/Shared/GameMaker/ (Macintosh HD > 用户 > 共享 > GameMaker){}{}"
}
\ No newline at end of file
diff --git a/language/zh/www/Setting_Up_And_Version_Information/GMS2_Version_Information.json b/language/zh/www/Setting_Up_And_Version_Information/GMS2_Version_Information.json
index 7e23b4156..22cb7322f 100644
--- a/language/zh/www/Setting_Up_And_Version_Information/GMS2_Version_Information.json
+++ b/language/zh/www/Setting_Up_And_Version_Information/GMS2_Version_Information.json
@@ -1,6 +1,7 @@
{
"For up-to-date information on GameMaker licences, please see the following page:":"有关 GameMaker 许可证的最新资料,请参阅以下网页:",
"For up-to-date information on {}GameMaker{} licences, please see the following page:":"有关 {}GameMaker{} 许可证的最新信息,请参阅以下页面:",
+ "For up-to-date information on {}GameMaker{} licences, please see the following pages:":"有关 {}GameMaker{} 许可证的最新信息,请参阅以下页面:",
"GameMaker Changelog":"GameMaker更新日志",
"Installation Guide":"安装指南",
"Licence Information":"许可资料",
@@ -10,6 +11,7 @@
"Release Notes":"发行说明",
"Required SDKs":"所需的 SDK",
"There are various different versions of the licences that you can get for {}GameMaker{}, the choice of which will depend largely on the audience that you want to target as well as on whether you just want to have some fun making games or wish to sell and distribute them as well.":"{}GameMaker{}可以获得不同版本的许可证,选择哪种许可证很大程度上取决于你的目标用户,以及你只是想要创造一些有趣的游戏还是想要销售和发行游戏。",
+ "There are various versions of the licences that you can get for {}GameMaker{}, the choice of which will depend largely on the audience that you want to target as well as on whether you just want to have some fun making games or wish to sell and distribute them as well.":"您可以获得多种版本的 {}GameMaker{} 许可,选择哪个版本很大程度上取决于您想要定位的受众群体,以及您是只想享受制作游戏的乐趣还是希望也出售和分销它们。",
"Updating Guide":"更新指引",
"Which Licence Is Right For Me?":"哪个许可证适合我?"
}
\ No newline at end of file
diff --git a/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences.json b/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences.json
index 944b843ea..5765b8d01 100644
--- a/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences.json
+++ b/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences.json
@@ -6,8 +6,10 @@
"Font Editor":"字体编辑器",
"General":"常规",
"However if you wish to reset the preferences you have changed, then you need to click the {}Restore Defaults{} button at the top of the window. Note that this will only restore the defaults for the section currently being edited.":"但是,如果要重置已更改的首选项,则需要单击窗口顶部的{}恢复默认设置{}按钮。请注意,这将仅恢复当前正在编辑的节的默认设置。",
+ "However, if you wish to reset the preferences you have changed, then you need to click the {}Restore Defaults{} button at the top of the window. Note that this will only restore the defaults for the section currently being edited.":"但是,如果您希望重置已更改的首选项,则需要点击窗口顶部的 {}Restore Defaults{} 按钮。请注意,这只会恢复当前正在编辑的部分的默认值。",
"IDE Preferences":"IDE 首选项",
"If, after changing the options here to customise {}GameMaker{} to your own tastes, you wish to back up the preferences that you have set you need to go to this folder on Windows:":"在将此处的选项更改为根据您自己的喜好定制 {}GameMaker{} 之后,如果您希望备份您已设置的首选项,则需要转到 Windows 上的此文件夹:",
+ "In this section we cover the IDE specific areas of the preferences window - for the individual target platforms please see the section on {}Platform Preferences{}. Note that after changing any preferences from this window you need to click the {}Apply {}button for them to take effect.":"在本部分中,我们将介绍首选项窗口的 IDE 特定区域 - 对于各个目标平台,请参阅 {} 平台首选项 {} 部分。请注意,从此窗口更改任何首选项后,您需要点击 {}Apply{} 按钮才能使它们生效。",
"Language Preferences":"语言首选项",
"Marketplace":"市场",
"Object Editor":"对象编辑器",
@@ -26,6 +28,9 @@
"{}Asset Browser{}":"{}资源浏览器{}",
"{}Image Editor{}":"{}图像编辑器{}",
"{}Once the Preferences window is open you will have the following different options (this list omits all platform specific preferences, for those, please see {}here{}):":"{}首选项窗口打开后,您将有以下不同的选项(此列表忽略所有特定于平台的首选项,有关这些选项,请参阅{}此处{}):",
+ "{}Once the Preferences window is open you will have the following different options (this list omits all platform-specific preferences, for those, please see {}Platform Preferences{}):":"{}首选项窗口打开后,您将看到以下不同的选项 (此列表省略了所有特定于平台的首选项,有关这些选项,请参阅 {} 平台首选项 {}):",
"{}The {}Preferences Window{} is an essential part of {}GameMaker{}, as it is where you can set up and customise your experience using the IDE as well as set up any specific platform SDK\u0027s etc... In this section we cover the IDE specific areas of the preferences window - for the individual target platforms please see the section on {}Target Platform Preferences{}. Note that after changing any preferences from this window you need to click the {}Apply {}button for them to take effect.":"{}{} 首选项窗口 {} 是 {}GameMaker{} 的重要组成部分,因为您可以在其中使用 IDE 设置和定制您的体验,以及设置任何特定的平台 SDK 等。在本节中,我们将介绍首选项窗口的 IDE 特定区域-有关各个目标平台的信息,请参阅 {} 目标平台首选项 {} 一节。请注意,在从此窗口更改任何首选项后,您需要单击 {} 应用 {} 按钮才能使其生效。",
- "{}Tile Set Editor{}":"{}图块图块集编辑器{}"
+ "{}The {}Preferences Window{} is an essential part of {}GameMaker{}, as it is where you can set up and customise your experience using the IDE as well as set up any specific platform SDK\u0027s, etc.":"{}首选项窗口 {} 是 {}GameMaker{} 的重要组成部分,因为您可以在其中使用 IDE 设置和自定义您的体验,以及设置任何特定平台 SDK 等。",
+ "{}Tile Set Editor{}":"{}图块图块集编辑器{}",
+ "{}{}NOTE{}{} In previous versions of {}GameMaker{} the {}.config{} folder was used instead of the {}{}Library/Application Support{}{} folder. {}GameMaker{} will automatically move the contents of the old folder to the new one upon login if the new folder doesn\u0027t exist yet.":"{}{} 注意{}{} 在之前版本的 {}GameMaker{} 中,使用的是 {}.config{} 文件夹,而不是 {}{} Library/Application Support {}{} 文件夹。如果新文件夹尚不存在,{}GameMaker{} 会在登录时自动将旧文件夹的内容移至新文件夹。"
}
\ No newline at end of file
diff --git a/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences/Feather_Settings.json b/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences/Feather_Settings.json
index cf4b1cde7..bfa0a05aa 100644
--- a/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences/Feather_Settings.json
+++ b/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences/Feather_Settings.json
@@ -35,6 +35,7 @@
"{}Identifiier Blocklist{}: This is a space-separated list of identifiers that will be ignored for all naming rules.{} {} For example, say you have a rule to use {}obj_{} as a prefix for objects, but you want your objects {}manager{} and {}network{} to remain as-is and not use the {}obj_{} prefix.{} {} In that case, you would write {}manager network{} into the {}Indentifier Blocklist{} field. Feather will ignore those objects {}and{} any other identifiers (variables, enums, parameters, etc.) with the same names. ":"{}标识符块列表{}:这是一个以空格分隔的标识符列表,所有命名规则都将忽略该列表。{}{}例如,假设您有一条使用{}obj_{}作为对象前缀的规则,但您希望您的对象{}管理器{}和{}网络{}保持原样,而不使用{}obj_{}前缀。{}{}在这种情况下,您可以将{}管理器网络{}写入{}标识符块列表{}字段。Feather将忽略这些对象{}和{}任何其他标识符(变量、枚举、参数等)。同名同姓。",
"{}None{}: This profile will show no error messages.":"{}无{}:此配置文件不会显示任何错误消息。",
"{}Prefer multiline JSDoc comment style when creating from Quick Fix{}: When you generate JSDoc comments for a function through the {}Quick Fixes{} menu, the generated JSDoc will either use single-line or multi-line {}comments{}, depending on this option.":"{}从快速修复创建时首选多行 JSDoc 注释样式{}:当您通过{}快速修复{}菜单为函数生成 JSDoc 注释时,生成的 JSDoc 将使用单行或多行{}注释{},具体取决于此选项。",
+ "{}Prefer multiline JSDoc comment style when creating from Quick Fix{}: When you generate {}JSDoc Comments{} for a function through the {}Quick Fixes{} menu, the generated JSDoc will either use single-line or multi-line {}comments{}, depending on this option.":"{} 从快速修复创建时首选多行 JSDoc 注释样式 {}:当您通过 {} 快速修复 {} 菜单为函数生成 {}JSDoc 注释 {} 时,生成的 JSDoc 将使用单行或多行 {} 评论 {},具体取决于此选项。",
"{}Prefer multiline JSDoc comment style when creating from Quick Fix{}: When you generate {}JSDoc Script Comments{} for a function through the {}Quick Fixes{} menu, the generated JSDoc will either use single-line or multi-line {}comments{}, depending on this option.":"{}从快速修复创建时首选多行JSDoc注释样式{}:当您通过{}快速修复{}菜单为函数生成{}JSDoc脚本注释{}时,生成的JSDoc将使用单行或多行{}注释{},具体取决于此选项。",
"{}Refactor references to asset name when asset is renamed in Asset Browser{}: Enabling this will ensure that when you rename an asset in your Asset Browser, any mentions of it in your code are also edited so those references don\u0027t break.":"{}在资源浏览器中重命名资源时重构对资源名称的引用{}:启用此选项将确保在资源浏览器中重命名资源时,代码中提及该资源的任何内容也会被编辑,以便这些引用不会中断。",
"{}Refactor references to asset name when asset is renamed in Asset Browser{}: Enabling this will ensure that when you rename an asset in {}The Asset Browser{}, any mentions of it in your code are also edited so those references don\u0027t break.":"{} 在资源浏览器中重命名资源时重构对资源名称的引用 {}:启用此选项将确保在 {} 资源浏览器 {} 中重命名资源时,代码中对该资源的任何引用也会被编辑,因此这些引用不会中断。",
diff --git a/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences/General/Paths.json b/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences/General/Paths.json
index e062b4bba..ac1708b83 100644
--- a/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences/General/Paths.json
+++ b/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences/General/Paths.json
@@ -11,6 +11,7 @@
"{}\"My Projects\" directory{}: The location where {}GameMaker{} will initially create new projects. By default on Windows this is: {}\\Users\\<Username>\\GameMakerProjects{} And on macOS it\u0027s: {}/Users/<Username>/GameMakerProjects{} {} {} ":"{}\"My Projects\"位置{}:{}GameMaker{} 最初创建新项目的位置。在 Windows 上,默认情况下为{}\\Users\\<Username>\\Documents\\GameMakerProjects{} 在 macOS 上,它是 {}/Users/<Username>/GameMakerProjects{} {} {} ",
"{}Asset cache directory{}: The location for saving the asset cache for each project. By default on Windows this is {}\\Users\\<Username>\\AppData\\Roaming\\GameMaker\\Cache{} And on macOS it\u0027s: {}/Users/<Username>/.config/GameMaker/Cache{} {} {} ":"{}资源缓存目录{}:保存每个项目的资源缓存的位置。在 Windows 上,默认情况下为 {}\\Users\\<Username>\\AppData\\Roaming\\GameMaker\\Cache{} 而在 macOS 上,它是: {}/Users/<Username>/.config/GameMaker/Cache{} {} {} ",
"{}Asset cache directory{}: The location for saving the asset cache for each project. By default on Windows this is: {}\\Users\\<Username>\\AppData\\Roaming\\GameMakerStudio2\\Cache{} And on macOS it\u0027s: {}/Users/<Username>/.config/GameMakerStudio2/Cache{} {} {} ":"{}资源缓存目录{}:用于保存每个项目的资源缓存的位置。 在Windows上,默认情况下,这是:{}\\Users\\<Username>\\AppData\\Roaming\\GameMakerStudio2\\Cache{} 在macOS上,它是:{}/Users/<Username>/.config/GameMakerStudio2/Cache{} {} {} ",
+ "{}Asset cache directory{}: The location for saving the asset cache for each project. By default on Windows this is: {}\\Users\\<Username>\\AppData\\Roaming\\GameMakerStudio2\\Cache{} And on macOS it\u0027s: {}/Users/<Username>/Library/Application Support/GameMakerStudio2/Cache{} {} {} ":"{} 资产缓存目录 {}:保存每个项目的资产缓存的位置。默认情况下,在 Windows 上为:{}\\Users\\<Username>\\AppData\\Roaming\\GameMakerStudio2\\Cache{} 在 macOS 上为:{}/Users/<Username>/Library/Application Support/GameMakerStudio2/Cache{ }{}{}",
"{}Automatic response to external bitmap editor warning{}: When you use both {}The Image Editor{} and an external editor for editing the same bitmap {}sprite{}, the Image Editor will overwrite the changes. This option lets {}GameMaker{} show a warning message when you try to externally edit a bitmap sprite: {}Show Message{} shows a warning (the default), {}OK{} shows none.":"{} 自动响应外部位图编辑器警告 {}:当您同时使用 {} 图像编辑器 {} 和外部编辑器编辑同一位图 {} 精灵 {} 时,图像编辑器将覆盖更改。此选项允许 {}GameMaker{} 在您尝试外部编辑位图精灵时显示警告消息:{} 显示消息 {} 显示警告 (默认),{} 确定 {} 显示无。",
"{}Automatic response to external spine re-import warning{}: Any changes done to a sprite in the Spine external editor will need to be re-imported as a new sprite. {}GameMaker{} will show a warning message for this if {}Show Message{} is selected (the default), or no message if you select {}OK{}.":"{}自动响应外部Spine重新导入警告{}:在Spine外部编辑器中对精灵所做的任何更改都需要作为新精灵重新导入。如果选择了{}显示消息{}(默认值),{}GameMaker{}将为此显示警告消息,如果选择了{}确定{},则不显示消息。",
"{}Automatically delete IDE cache on close{}: If this is checked then the IDE compiler cache folder will be removed when you quit {}GameMaker{}. This is off by default, and enabling it will mean that every time you start {}GameMaker{} the cache will need to be rebuilt.":"{}关闭时自动删除 IDE 缓存{}:如果选中此选项,则当您退出 {}GameMaker{} 时,IDE 编译器缓存文件夹将被删除。这在默认情况下是关闭的,启用它将意味着每次启动 {}GameMaker{} 时都需要重建缓存。",
@@ -26,6 +27,7 @@
"{}Delete Temp Folder{}: Clicking this button will delete the temp folder for the project.":"{}删除临时文件夹{}:点击此按钮将删除项目的临时文件夹。",
"{}IDE cache directory{}: The location for saving the IDE cache. By default on Windows this is {}\\Users\\<Username>\\AppData\\Roaming\\GameMaker\\Cache{} And on macOS it\u0027s: {}/Users/<Username>/.config/GameMaker/Cache{} {} {} ":"{}IDE 缓存目录{}:保存 IDE 缓存的位置。在 Windows 上,默认情况下为 {}\\Users\\<Username>\\AppData\\Roaming\\GameMaker\\Cache{} 而在 macOS 上,它是: {}/Users/<Username>/.config/GameMaker/Cache{} {} {} ",
"{}IDE cache directory{}: The location for saving the IDE cache. By default on Windows this is: {}\\Users\\<Username>\\AppData\\Roaming\\GameMakerStudio2\\Cache{} And on macOS it\u0027s: {}/Users/<Username>/.config/GameMakerStudio2/Cache{} {} {} ":"{}IDE缓存目录{}:保存IDE缓存的位置。 在Windows上,默认情况下,这是: {}\\Users\\<Username>\\AppData\\Roaming\\GameMakerStudio2\\Cache{} 在macOS上,它是: {}/Users/<Username>/.config/GameMakerStudio2/Cache{} {} {} ",
+ "{}IDE cache directory{}: The location for saving the IDE cache. By default on Windows this is: {}\\Users\\<Username>\\AppData\\Roaming\\GameMakerStudio2\\Cache{} And on macOS it\u0027s: {}/Users/<Username>/Library/Application Support/GameMakerStudio2/Cache{} {} {} ":"{}IDE 缓存目录 {}:保存 IDE 缓存的位置。默认情况下,在 Windows 上为:{}\\Users\\<Username>\\AppData\\Roaming\\GameMakerStudio2\\Cache{} 在 macOS 上为:{}/Users/<Username>/Library/Application Support/GameMakerStudio2/Cache{ }{}{}",
"{}Path to external editor/viewer for SWF files{}: If you are working with SWF format sprites, you can set this to the path of your preferred viewer/editor and when you click the {}Edit Image{} button in the Sprite Editor then it will open the given program. The default value here is to have no path.":"{}SWF 文件的外部编辑器 / 查看器的路径{}:如果您正在使用 SWF 格式的精灵,您可以将此路径设置为您首选的查看器 / 编辑器的路径,当您在精灵编辑器中单击{}编辑图像{}按钮时,它将打开给定的程序。这里的缺省值是没有路径。",
"{}Path to external editor/viewer for Spine files{}: If you are working with Spine format sprites, you can set this to the path of your preferred viewer/editor and when you click the {}Edit Image{} button in the Sprite Editor then it will open the given program. The default value here is to have no path.":"{}Spine 文件的外部编辑器 / 查看器的路径{}:如果您正在使用 Spine 格式的精灵,您可以将其设置为您首选的查看器 / 编辑器的路径,当您在精灵编辑器中单击{}编辑图像{}按钮时,它将打开给定的程序。这里的缺省值是没有路径。",
"{}SWF files{}: The path to the external editor to use for {}Vector Sprites (SWF){}. If empty (the default), {}GameMaker{} warns you that no path is set and opens the {}Path Preferences{}. If set, clicking the {}Edit Image{} button in the Sprite Editor or the {}Edit Image{} button in the Object Editor will open the sprite in the given program.":"{}SWF 文件 {}:用于 {} 矢量精灵 (SWF){} 的外部编辑器的路径。如果为空 (默认值),{}GameMaker{} 会警告您没有设置路径并打开 {} 路径首选项 {}。如果设置了,单击精灵编辑器中的 {} 编辑图像 {} 按钮或对象编辑器中的编辑图像按钮将在给定程序中打开精灵。",
diff --git a/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences/General_Preferences.json b/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences/General_Preferences.json
index bbbdb5a2f..5c16f6ed7 100644
--- a/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences/General_Preferences.json
+++ b/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences/General_Preferences.json
@@ -31,7 +31,9 @@
"{}Disable IDE transition animations{}: The {}GameMaker{} IDE has a number of animated transitions for things like opening windows etc... however they are not to everyone\u0027s taste and you may experience a performance boost if they are disabled on older or under-powered machines if they are disabled. You can disable them here, and they are on by default.":"{}禁用IDE过渡动画{}:{}GameMaker{} IDE 有许多动画过渡,例如打开窗口等。然而,并不是每个人都喜欢它们,如果在较老的或性能不足的计算机上禁用它们,您可能会得到性能提升。您可以在此处禁用它们,默认情况下它们处于打开状态。",
"{}Disable IDE transition animations{}: The {}GameMaker{} IDE has a number of animated transitions for things like opening windows, etc. However, they are not to everyone\u0027s taste and you may experience a performance boost if they are disabled on older or under-powered machines if they are disabled. You can disable them here, and they are on by default.":"{}禁用IDE转换动画{}:{}GameMaker{}IDE有许多用于打开窗口等操作的动画转换。但是,它们并不适合每个人的口味,如果在较旧或动力不足的计算机上禁用它们,您可能会体验到性能提升。您可以在此处禁用它们,它们默认处于启用状态。",
"{}Enable DPI Override{}: This option lets you override the default DPI setting with your own. You must first enable the option and then set either the {}Raw DPi Override{} value (the default value is 96) or set the {}Percentage of the native DPi{} (default value 100%), and once changed you will be prompted to restart the IDE, which may require you to save any work being done on the currently open project. Note that the DPi has a minimum percentage of 50% and a maximum of 500%, and if you you mouse over the information icon you can see the recommended maximum setting for the display being used:{} {} {}Note that if you go above the recommended DPi setting for the monitor, you will be shown a notification that permits you to reset the DPI. ":"{}启用 DPI 覆盖{}:此选项允许您使用您自己的设置覆盖默认 DPI 设置。您必须首先启用该选项,然后设置{}原始 DPI 覆盖{}值 (缺省值为 96) 或设置本机 DPI 的 {} 百分比 {}( 缺省值为 100%),一旦更改,系统将提示您重新启动 IDE,这可能需要您保存在当前打开的项目上所做的任何工作。请注意,DPI 的最小百分比为 50%,最大百分比为 500%,如果您将鼠标悬停在信息图标上,您可以看到正在使用的显示器的建议最大设置:{} {} {} 请注意,如果您超出显示器的建议 DPI 设置,则会显示允许您重置 DPI 的通知。",
+ "{}Enable VSync{}: This option enables or disables vertical synchronisation within the IDE. VSync is enabled by default, though you can disable it using this setting if you\u0027re experiencing screen flickering with the IDE open. Note that any change to this setting requires a restart of the IDE.":"{} 启用垂直同步 {}:此选项启用或禁用 IDE 内的垂直同步。默认情况下启用垂直同步,但如果您在 IDE 打开时遇到屏幕闪烁问题,则可以使用此设置禁用它。请注意,对此设置的任何更改都需要重新启动 IDE。",
"{}Enable Verbose Logging{} - This option enables verbose logging of network calls.":"{}启用详细记录{}-此选项启用网络呼叫的详细记录。",
+ "{}Enable Verbose Logging{}: This option enables verbose logging of network calls.":"{} 启用详细日志记录 {}:此选项启用网络调用的详细日志记录。",
"{}Enable notifications{}: Checking this will enable the IDE to show notifications about new runtimes, etc. This is on by default.":"{}启用通知{}:选中此选项将使 IDE 能够显示有关新运行时的通知,等等...。默认情况下,该选项处于启用状态。",
"{}Enable notifications{}: Checking this will enable the IDE to show notifications about new runtimes, etc... This is on by default.":"{}启用通知{}:选中此选项将使IDE能够显示有关新运行时的通知,等等...。默认情况下,该选项处于启用状态。",
"{}IDE Font{}: This option permits you to change the font used throughout the IDE. Default is {}Open Sans{}.":"{}IDE 字体{}:此选项允许您更改在整个 IDE 中使用的字体。默认为 {}Open Sans{}。",
@@ -49,6 +51,7 @@
"{}Opt-in To Feedback Surveys{}: When this option is checked, you are telling {}GameMaker{} that you wish to participate in feedback surveys, meaning that occasionally while working a message will be shown about the area you are working on and request a rating and feedback. This option is on by default.":"{}选择参与反馈调查{}:选中此选项后,您就是在告诉 {}GameMaker{} 您希望参与反馈调查,这意味着在您工作时,偶尔会显示一条关于您正在工作的领域的消息,并请求评级和反馈。默认情况下,此选项处于启用状态。",
"{}Show Project Tool Output{} - When this option is checked, the {}Project Tool Output{} window will be shown when you convert projects with {}Project Tool{}.":"{}显示项目工具输出{} - 选中此选项后,当您使用 {}Project Tool{} 转换项目时,将显示 {2}Project Tool 输出{3}窗口。",
"{}Show Project Tool Output{} - When this option is checked, the {}ProjectTool Output{} window will be shown when you convert projects with {}ProjectTool{}.":"{}显示项目工具输出{}-选中此选项后,当您使用{}ProjectTool{}转换项目时,将显示{}ProjectTool输出{}窗口。",
+ "{}Show Project Tool Output{}: When this option is checked, the {}Project Tool Output{} window will be shown when you convert projects with {}Project Tool{}.":"{} 显示项目工具输出 {}:选中此选项后,当您使用 {} 项目工具 {} 转换项目时,将显示 {} 项目工具输出 {} 窗口。",
"{}Show welcome screen on startup{}: This is on by default and simply tells {}GameMaker{} to show a brief splash screen when you start the program. Un-checking this will prevent the splash screen from showing.":"{}启动时显示欢迎屏幕{}:这在默认情况下是打开的,只是告诉 {}GameMaker{} 在你启动程序时会显示一个简短的启动屏幕。取消选中此选项将阻止显示初始屏幕。",
"{}Sign out on exit{}: If this option is checked then the IDE will automatically log out the user session when {}GameMaker{} is closed. This is primarily aimed at Education users, as - when checked - this means that whenever the program shuts down the user would be logged out and so free up the session seat for other users to use. This is off by default.":"{}退出时注销{}:如果选中此选项,则在关闭 {}GameMaker{} 时,IDE 将自动注销用户会话。这主要是针对教育用户,因为-选中-意味着每当程序关闭时,用户将被注销,从而释放会话席位供其他用户使用。默认情况下,此选项处于禁用状态。",
"{}The {}General Preferences{} are used to define the general behaviour of the {}GameMaker{} {}IDE{}. The most general ones are listed on the main page while many others are split into multiple sub-categories, explained further down this page.":"{}{} 常规首选项 {} 用于定义 {}GameMaker{} {}IDE{} 的常规行为。最常见的是在主页上列出的,而许多其他的则被分成多个子类别,本页下面将对此进行进一步解释。",
diff --git a/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences/Redefine_Keys_Preferences.json b/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences/Redefine_Keys_Preferences.json
index 918c142cd..f1018872d 100644
--- a/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences/Redefine_Keys_Preferences.json
+++ b/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences/Redefine_Keys_Preferences.json
@@ -7,6 +7,8 @@
"Below that you have numerous options allowing you to specify the locations that are displayed in the Command List. By default, {}\"All Locations\"{} is checked, meaning that you will see commands from all locations in the IDE. Unchecking {}\"All Locations\"{} will uncheck every other item below it, allowing you to manually select the ones you would like to see; for example, unchecking all items and then checking {}\"Image Editor\"{} will only show you commands that can be used in the Image Editor.":"下面有许多选项,允许您指定命令列表中显示的位置。默认情况下,选中{}\"所有位置\"{},这意味着您将看到来自 IDE 中所有位置的命令。取消选中{}\"所有位置\"{}将取消选中其下方的所有其他项目,允许您手动选择要查看的项目例如,取消选中所有项目,然后选中 {}\"图像编辑器\"{}将仅显示可在图像编辑器中使用的命令。",
"Clash Window":"冲突窗口",
"Clearing Commands":"清除命令",
+ "Click {}Export as file{} to bring up a file dialog that prompts you for the location to save the file to.":"点击 {}Export as file{} 可打开一个文件对话框,提示您输入保存文件的位置。",
+ "Click {}Import file{} to load a previously exported remaps file and use them in the current {}GameMaker{} build on the current machine.":"点击 {}Import file{} 可加载之前导出的重映射文件,并在当前计算机上的当前 {}GameMaker{} 版本中使用它们。",
"Clicking on any location in the list will display the commands that can be used within it:":"单击列表中的任何位置将显示可在其中使用的命令:",
"Command List":"命令列表",
"Double-clicking on an existing key combination will allow you to change it, however while you are doing this you can click on the {}\"Clear\"{} button below the Command List to clear the binding for that command.":"双击现有的组合键将允许您更改它,但在执行此操作时,您可以单击命令列表下方的{}\"清除\"{}按钮以清除该命令的绑定。",
@@ -14,6 +16,7 @@
"Enabling the {} button next to the search field allows you to search by entering a shortcut. Any keys you press while this is enabled will be entered as a shortcut instead of regular text.":"启用搜索字段旁边的 {} 按钮允许您通过输入快捷方式进行搜索。在启用此功能时按下的任何键都将作为快捷键而不是普通文本输入。",
"Filter Menu":"筛选菜单",
"If you try to set a key combination that is already in use for other commands, you will see a special \"Clash\" window:{} {}This window will show the location and name of the command that is already using the key combination that you are trying to use. In case the key combination is used by multiple commands, it will show all of them in a list.{} {} Here you have two options,{} \"Cancel\"{} and {}\"Override (ALL) and Reassign\"{}: ":"如果您尝试设置已用于其他命令的组合键,您将看到一个特殊的\"冲突\"窗口:{}{}此窗口将显示已在使用您正在尝试使用的组合键的命令的位置和名称。如果该组合键被 多个命令使用,它将在 列表中显示所有这些组合键。{}{}这里有两个选项,{}\"取消\"{}和{}\"覆盖(全部)\"和\"重新分配\"{}:",
+ "Loading and Saving User Remaps":"加载和保存用户重映射",
"Next to the search bar you have the {}Filter{} menu which is described in its own section later on this page.":"在搜索栏旁边有{}筛选{}菜单,该菜单将在本页后面的单独部分中介绍。",
"Pressing {}\"Cancel\"{} will close the Clash window and will not make any changes to any commands.":"按下{}\"取消\"{}将关闭碰撞窗口,并且不会对任何命令进行任何更改。",
"Pressing {}\"Override (ALL) and Reassign\"{} will assign the new key combination to your selected command and {}clear {}the bindings of all other commands that previously used the same combination.":"按下{}\"覆盖(全部)并重新分配\"{}将为您选择的命令分配新的按键组合,并{}清除{}以前使用相同组合的所有其他命令的绑定。",
@@ -23,6 +26,7 @@
"Some shortcuts appear in multiple locations. Changing the key combination in one location also changes it in the other locations, as they\u0027re all linked to the same shortcut. For example, \"Add Frame\" is listed under \"Image Editor\" and \"Sprite Editor\". Remapping one of them will remap them both.":"某些快捷方式出现在多个位置。在一个位置更改组合键也会更改其他位置的组合键,因为它们都链接到同一个快捷方式。例如,\"添加帧\"列在\"图像编辑器\"和\"精灵编辑器\"下。重新映射其中一个将重新映射它们。",
"The \"Command List\" displays all the available shortcuts that can be remapped, separated into different categories based on the locations of those shortcuts.":"\"命令列表\"显示所有可以重新映射的可用快捷键,并根据这些快捷键的位置分为不同的类别。",
"The \"Command List\" displays all the available shortcuts that can be remapped, separated into different categories based on the locations of those shortcuts. Clicking on any location in this list will display the commands that can be used within it:":"命令列表显示可以重新映射的所有可用快捷键,并根据这些快捷键的位置划分为不同的类别。 单击此列表中的任何位置将显示可在其中使用的命令:",
+ "The {}Import file{} and {}Export as file{} buttons at the bottom allow you to import and export remaps of keys. This can be used to transfer your remapped keys to a different {}GameMaker{} build (i.e. monthly, LTS or beta) or to a different machine.":"底部的 {} 导入文件 {} 和 {} 导出为文件 {} 按钮允许您导入和导出键的重新映射。这可用于将您重新映射的密钥传输到不同的 {}GameMaker{} 版本 (即每月版本、LTS 或 Beta 版) 或不同的机器。",
"You can change the sorting of the Command List by {} clicking on a column heading (either \"Command\" or \"Keys\") to sort the list using the values from that column, alternating between ascending and descending with each click.":"您可以更改命令列表的排序,方法是:{}单击列标题(\"命令\"或\"快捷键\")以使用该列中的值对列表进行排序,每次单击时交替升序和降序。",
"{}\"Show Only Redefined Commands\"{}: Enabling this will display only those commands that have been changed manually, i.e. their bindings are different from their default bindings.":"{}\"仅显示重新定义的命令\"{}:启用此选项将仅显示已手动更改的命令,即它们的绑定不同于其默认绑定。",
"{}\"Show Unbound Commands\"{}: Enabling this will display any commands that have been unbound, i.e. their bindings have been cleared. Any commands that remain unbound cannot be used as there is no key combination assigned to them.":"{}\"显示未绑定命令\"{}:启用此选项将显示所有已解除绑定的命令,即它们的绑定已被清除。任何保持未绑定状态的命令都不能使用,因为没有为它们分配组合键。",
@@ -31,9 +35,12 @@
"{}If you have accidentally overridden some keyboard shortcuts and wish to reset them back to their default settings, you can click on the \"Restore defaults\" button at the top of the Preferences window to reset all commands to their default mappings, or check the {}Keyboard Shortcuts{} page to check the default bindings and revert your commands manually.":"{}如果您不小心覆盖了某些键盘快捷键,并希望将其重置为默认设置,您可以单击首选项窗口顶部的\"恢复默认值\"按钮,将所有命令重置为默认映射,或检查{}键盘快捷键{}页面,检查默认绑定并手动恢复命令。",
"{}Information for each command is separated into two columns:":"{}每个命令的信息分为两列:",
"{}Keys{}: This displays the current keyboard mapping for the command. You can {} double click on any item in this column to reassign that command by simply pressing the appropriate combination of keys on the keyboard (they must be held simultaneously, similar to how the shortcut would actually be used) or by entering a {}hotkey chord{}. As soon as you release your new key combination, it will be registered and applied to the command. {}{} {}Double-click on a shortcut to enter a new one!{} {} {}{} {}Enter a sequence of alphanumeric keys while holding down one or more modifier keys to create a hotkey chord!{} {} ":"{}快捷键{}:这将显示命令的当前键盘映射。只需按下键盘上适当的组合键(它们必须同时按住,类似于实际使用快捷键的方式)或输入{}热键组合{},即可{2}双击此列中的任何项以重新分配该命令。一旦您松开新的组合键,它就会被注册并应用于命令。{}{}{}双击快捷键以输入新的快捷键!{}{}{}{}{}在按住一个或多个修改键的同时输入一系列字母数字键以创建热键组合!{}{}",
+ "{}Keys{}: This displays the current keyboard mapping for the command. You can {} double click on any item in this column to reassign that command by simply pressing the appropriate combination of keys on the keyboard (they must be held simultaneously, similar to how the shortcut would actually be used) or by entering a {}hotkey chord{}. As soon as you release your new key combination, it will be registered and applied to the command. {}{} {}Double-click on a shortcut to enter a new one{} {} {}{} {}Enter a sequence of alphanumeric keys while holding down one or more modifier keys to create a hotkey chord{} {} ":"{} 按键 {}:显示命令的当前键盘映射。您可以{}双击此列中的任何项目来重新分配该命令,只需按键盘上相应的组合键 (必须同时按住这些组合键,类似于实际使用快捷键的方式) 或输入 {} 热键组合 {}。一旦您释放新的组合键,它将被注册并应用于命令。{}{}{} 双击快捷键以输入新快捷键 {}{}{}{}{} 在按住一个或多个修饰键的同时输入一系列字母数字键以创建热键和弦 {}{}",
"{}Keys{}: This displays the current keyboard mapping for the command. You can {} double click on any item in this column to reassign that command by simply pressing the appropriate combination of keys on the keyboard (they must be held simultaneously, similar to how the shortcut would actually be used). As soon as you release your new key combination, it will be registered and applied to the command. {}{} {}Double-click on a shortcut to enter a new one!{} {} Pressing {} while editing a command will bring you out of edit mode and will not modify the selected command. ":"{}快捷键{}:这将显示命令的当前键盘映射。只需按下键盘上适当的组合键(它们必须同时按住,类似于实际使用快捷键的方式),您就可以 {}双击该列中的任何项来重新分配该命令。一旦您松开新的组合键,它就会被注册并应用于命令。{}{}{}双击快捷键以输入新的快捷键!{}{}在编辑命令时按 {}将使您退出编辑模式,并且不会修改所选命令。",
"{}The Filter menu allows you specify what kind of commands should appear in the Command List. At the top, you have two options:":"{}过滤器菜单允许您指定应在命令列表中显示的命令类型。在顶部,您有两个选项:",
"{}The {}Redefine Keys{} section of the Preferences allows you to change the mappings for the various {}keyboard shortcuts{} provided in the {}GameMaker{} IDE.":"{}{}重定义快捷键首选项{}部分允许您更改在 {5}GameMaker{6} IDE中提供的各种{}键盘快捷键的映射{}。",
"{}The {}Redefine Keys{} section of the Preferences allows you to change the mappings for the various {}Keyboard Shortcuts{} provided in the {}GameMaker{} IDE.":"{}首选项的 {} 重定义键 {} 部分允许您更改 {5}GameMaker{6}IDE 中提供的各种 {} 键盘快捷键 {} 的映射。",
- "{}The {}Redefine Keys{} section of the Preferences allows you to change the mappings for the various {}Keyboard Shortcuts{} provided in the {}GameMaker IDE{}.":"{}{}重定义快捷键首选项{}部分允许您更改在 {5}GameMaker IDE{6} 中提供的各种{}键盘快捷键的映射{}。"
+ "{}The {}Redefine Keys{} section of the Preferences allows you to change the mappings for the various {}Keyboard Shortcuts{} provided in the {}GameMaker IDE{}.":"{}{}重定义快捷键首选项{}部分允许您更改在 {5}GameMaker IDE{6} 中提供的各种{}键盘快捷键的映射{}。",
+ "{}{}NOTE{}{} Hotkey chords using {}SHIFT{} as the {}only{} modifier cannot be defined, as {}SHIFT{} is used to invert the case of letters being typed, which cannot be differentiated from a chord being executed. It can still be used along with other modifiers to create hotkey chords, such as {}CTRL + SHIFT + KEY{}.":"{}{} 注意{}{} 无法定义使用 {}SHIFT{} 作为 {}only{} 修饰符的热键和弦,因为 {}SHIFT{} 用于反转正在键入的字母的大小写,而无法区分字母的大小写来自正在执行的和弦。它仍然可以与其他修饰键一起使用来创建热键和弦,例如 {}CTRL + SHIFT + KEY{}。",
+ "{}{}WARNING{}{} Any existing remaps will be lost if you import remaps from a file.":"{}{} 警告{}{} 如果您从文件导入重映射,所有现有重映射都将丢失。"
}
\ No newline at end of file
diff --git a/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences/Room_Editor_Preferences.json b/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences/Room_Editor_Preferences.json
index 7e85991f4..0b40b01ca 100644
--- a/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences/Room_Editor_Preferences.json
+++ b/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences/Room_Editor_Preferences.json
@@ -23,6 +23,8 @@
"{}Confirm Dialogs{}{}Confirm Dialogs{}":"{}确认对话框{}{}确认对话框{}",
"{}Create new asset layer when dragging sequences/sprites onto unsuitable layers{}: If you try to add a sprite (or a sequence) to a layer that is not an asset layer, then you will be shown a message by default to inform you that it can\u0027t be done and ask if you want to create a new asset layer for the item being dragged. However setting this option to \"Ok\" will not show the message and automatically create a new layer for sprites (and sequences).":"{}在将序列/精灵拖动到不合适的层上时创建新的资源层{}:如果您尝试将精灵(或序列)添加到不是资源层的层,则默认情况下会显示一条消息,通知您无法完成此操作,并询问您是否要为正在拖动的项目创建新的资源层。然而,将此选项设置为\"OK\"将不会显示该消息,并自动为精灵(和序列)创建一个新的层。",
"{}Create new instance layer when dragging objects onto unsuitable layers{}: If you try to add an object instance to a layer that is not an instance layer, then you will be shown a message by default to inform you that it can\u0027t be done and ask if you want to create a new instance layer for the item being dragged. However setting this option to \"Ok\" will not show the message and automatically create a new layer for the instance.":"{}在将对象拖动到不合适的层上时创建新的实例层{}:如果您尝试将对象实例添加到不是实例层的层,则默认情况下会显示一条消息,通知您无法完成该操作,并询问您是否要为正在拖动的项目创建新的实例层。但是,将此选项设置为\"OK\"将不会显示该消息,并会自动为实例创建一个新层。",
+ "{}Default Instances panel orientation{}: Default orientation for the {}Element List{} that appears when an Instance Layer or Asset Layer is selected.":"{} 默认实例面板方向 {}:选择实例层或资产层时显示的 {} 元素列表 {} 的默认方向。",
+ "{}Default Text for new Text Item{}: The text that is shown when you create a new Text Element in an {}Asset Layer{}.":"{} 新文本项的默认文本 {}:当您在 {} 资产层 {} 中创建新文本元素时显示的文本。",
"{}Default layer depth spacing{}: When you create multiple layers in the room editor they are automatically assigned a depth based on their position within the layer list. This depth is incremented by the amount given here. The default value is 100, so each layer will be previous layer + 100 in depth.":"{}默认层深度间距{}:在房间编辑器中创建多个层时,系统会根据它们在层列表中的位置自动为其指定深度。此深度按此处给出的量递增。默认值为 100,因此每个层的深度将是上一层 +100。",
"{}Default room height{}: Sets the initial height that will be selected as the default for a new room.":"{}默认房间高度{}:设置将被选作新房间默认值的初始高度。",
"{}Default room height{}: Sets the initial height that will be selected as the default for a new room. Default is 768px.":"{}默认房间高度{}:设置将被选为新房间默认高度的初始高度。默认为 768px。",
diff --git a/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences/Text_Editor_2_Preferences.json b/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences/Text_Editor_2_Preferences.json
new file mode 100644
index 000000000..c279b9b7f
--- /dev/null
+++ b/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences/Text_Editor_2_Preferences.json
@@ -0,0 +1,66 @@
+{
+ "Clicking on \"{}Restore Default Colours{}\" will do the following:":"点击 \"{} 恢复默认颜色 {}\" 将执行以下操作:",
+ "Contents":"内容",
+ "Each scope is written using the formatting settings chosen for it, functioning as a preview. Double-clicking on a scope allows you to edit its name and scope identifier(s).":"每个范围都是使用为其选择的格式设置编写的,用作预览。双击范围可以编辑其名称和范围标识符。",
+ "Editing":"编辑",
+ "Editor":"编辑",
+ "Editor View":"编辑器视图",
+ "General":"常规",
+ "Gutter":"装订线",
+ "In this section you can define the colours used in the document view, such as the Background, Foreground, Caret, Line Highlight and Selection.":"在此部分中,您可以定义文档视图中使用的颜色,例如背景、前景、插入符、行突出显示和选择。",
+ "Main":"主要的",
+ "Once you have created a custom theme, you can delete it from the same drop-down menu.":"创建自定义主题后,您可以从同一下拉菜单中将其删除。",
+ "Reset all copied themes to the defaults of their original themes.":"将所有复制的主题重置为其原始主题的默认值。",
+ "Reset all themes loaded from files to the values at the time of load.":"将从文件加载的所有主题重置为加载时的值。",
+ "Reset the \"{}GameMaker Dark - Default{}\" theme to its default properties, removing all your changes to it.":"将 \"{}GameMaker Dark - Default{}\" 主题重置为其默认属性,删除对其进行的所有更改。",
+ "Scopes":"范围",
+ "Scrollbars":"滚动条",
+ "The Theme section allows you to modify how documents are rendered in the editor.":"主题部分允许您修改文档在编辑器中的呈现方式。",
+ "The main section contains the following options:":"主要部分包含以下选项:",
+ "Theme":"主题",
+ "Theme Selector":"主题选择器",
+ "This contains a drop-drop menu for theme selection, with the default being \"{}GameMaker Dark - Default{}\". You can edit any properties of the default theme.":"其中包含一个用于主题选择的下拉菜单,默认值为 \"{}GameMaker Dark - Default{}\"。您可以编辑默认主题的任何属性。",
+ "This contains colours for the {}Gutter{} elements, like its background and foreground colours, colour of the divider between the document view and the gutter, colour of the togglable rail and the colour of the document header text.":"其中包含 {}Gutter{} 元素的颜色,例如其背景色和前景色、文档视图和装订线之间分隔线的颜色、可切换栏的颜色以及文档标题文本的颜色。",
+ "You can add a new scope by selecting \"{}Add Scope{}\" at the bottom. If a language contains a scope that is not in the list, you can add it from here and define its formatting.":"您可以通过选择底部的 \"{} 添加范围 {}\" 来添加新范围。如果某种语言包含的范围不在列表中,您可以从此处添加它并定义其格式。",
+ "You can also choose the size of the font, and whether to enable ligatures for fonts that use them.":"您还可以选择字体的大小,以及是否为使用它们的字体启用连字。",
+ "You can use this to add colours for deeper levels of brackets, as the default list goes from {}punctuation.rainbow.1{} to {}punctuation.rainbow.4{}.":"您可以使用它为更深层次的括号添加颜色,因为默认列表从 {}punctuation.rainbow.1{} 到 {}punctuation.rainbow.4{}。",
+ "You have the option to make a new, custom theme by clicking on \"{}New...{}\", which will give you the following options:":"您可以选择通过点击 \"{}New...{}\" 来创建新的自定义主题,这将为您提供以下选项:",
+ "{}Allow Overwrite Mode{}: When enabled, pressing {}insert{} will toggle between insertion mode and overwrite mode. When disabled, nothing will happen, and the editor will stay on insertion mode. (Default: Enabled)":"{} 允许覆盖模式 {}:启用后,按 {}insert{} 将在插入模式和覆盖模式之间切换。禁用后,什么也不会发生,编辑器将保持插入模式。(默认值:启用)",
+ "{}Allow overscroll{}: When enabled, allows you to scroll beyond the end of the last document up until its last line leaving the top boundary of the editor view. (Default: Disabled)":"{} 允许过度滚动 {}:启用后,您可以滚动到最后一个文档的末尾之外,直到最后一行离开编辑器视图的顶部边界。(默认值:禁用)",
+ "{}Auto Indent Mode{}: See {}Auto-Indent{}.":"{} 自动缩进模式 {}:请参阅 {} 自动缩进 {}。",
+ "{}Auto Indent clipboard contents{}: Whether automatic indentation should be applied to pasted code.":"{} 自动缩进剪贴板内容 {}:是否应将自动缩进应用于粘贴的代码。",
+ "{}Auto-extend multiline comments on new line{}: When writing multiline comments ({}/* */{}, {}///{}) if you press {}enter{} and this option is enabled, it will extend the comment to the new line as well. (Default: Enabled)":"{} 在新行上自动扩展多行注释 {}:编写多行注释 ({}/* */{}、{}///{}) 时,如果您按 {}enter{} 并且启用此选项,则也会将注释扩展到新行。(默认值:启用)",
+ "{}Auto-insert braces{}: Whether an ending brace should be auto-inserted when you write the beginning brace (e.g. {}{}{}, {}(){}).":"{} 自动插入大括号 {}:在编写开始大括号时是否应自动插入结束大括号 (例如 {}{ }{}、{}(){})。",
+ "{}Autofill JSDoc header comments{}: Controls whether JSDoc is auto-generated for functions. See: {}Auto-Generating JSDoc{} (Default: Disabled)":"{} 自动填充 JSDoc 标头注释 {}:控制是否为函数自动生成 JSDoc。请参阅:{} 自动生成 JSDoc{}( 默认值:已禁用)",
+ "{}Code Editor{} Preferences":"{} 代码编辑器 {} 首选项",
+ "{}Default Close Behaviour{}: This controls what happens when you close an editor window when there are unsaved changes in a document. You can choose to show the dialog message, or automatically save ({}Yes{}) or not save ({}No{}) the unsaved changes.":"{} 默认关闭行为 {}:这控制当文档中有未保存的更改时关闭编辑器窗口时会发生什么情况。您可以选择显示对话框消息,或者自动保存 ({} 是 {}) 或不保存 ({} 否 {}) 未保存的更改。",
+ "{}Default Delete Document Choice{}: This controls what happens when you choose to delete a document. You can choose to show the dialog message, or automatically delete ({}Yes{}) or not delete ({}No{}) the document.":"{} 默认删除文档选择 {}:这控制当您选择删除文档时会发生什么。您可以选择显示对话框消息,或者自动删除 ({} 是 {}) 或不删除 ({} 否 {}) 文档。",
+ "{}Detect tab type{}: Enable this to use whichever tab type the currently open document is using, overriding the tab type set in the previous option. This is useful for ensuring consistency within a document, regardless of overall project-level consistency. (Default: Enabled)":"{} 检测选项卡类型 {}:启用此选项可使用当前打开的文档正在使用的选项卡类型,覆盖上一个选项中设置的选项卡类型。无论整体项目级别的一致性如何,这对于确保文档内的一致性很有用。(默认值:启用)",
+ "{}Enabled{}: Enable or disable the {}Code Editor{}, disabling will make it fall back to the {}Legacy Code Editor{}. (Default: Disabled)":"{} 已启用 {}:启用或禁用 {} 代码编辑器 {},禁用将使其回退到 {} 旧版代码编辑器 {}。(默认值:禁用)",
+ "{}Highlight selection matches{}: Whether occurrences of the selected text within the same document should be highlighted.":"{} 突出显示所选内容匹配 {}:是否应突出显示同一文档中出现的所选文本。",
+ "{}Highlight symbol pairs{}: Whether or not to highlight symbol pairs. (Default: Enabled)":"{} 突出显示符号对 {}:是否突出显示符号对。(默认值:启用)",
+ "{}Highlight the line that the caret is on{}: Whether the line where the text cursor is placed should be highlighted. (Default: Enabled)":"{} 突出显示插入符号所在的行 {}:是否应突出显示文本光标所在的行。(默认值:启用)",
+ "{}Navigation Orientation{}: This controls where the Navigation Bar is shown in the {}Editor Frame{}. The Navigation Bar is where you choose which asset and document is open for editing. (Default: Top)":"{} 导航方向 {}:它控制导航栏在 {} 编辑器框架 {} 中的显示位置。您可以在导航栏上选择打开哪个资产和文档进行编辑。(默认:顶部)",
+ "{}Open Asset in Inspector when Editor is opened{}: When you open an asset in the {}Code Editor{}, and this option is enabled, {}The Inspector{} will switch its focus to the newly opened asset so you can modify its properties. (Default: Enabled)":"{} 打开编辑器时在检查器中打开资产 {}:当您在 {} 代码编辑器 {} 中打开资产并且启用此选项时,{} 检查器 {} 会将其焦点切换到新打开的资产,以便您可以修改其属性。(默认值:启用)",
+ "{}Padding lines following Document{}: How many lines worth of padding is added below a document. (Default: 4)":"{} 文档后的填充行 {}:在文档下方添加多少行填充。(默认值:4)",
+ "{}Padding lines preceding Document{}: How many lines worth of padding is added above a document, useful when showing all documents in a single view. (Default: 1)":"{} 文档前的填充行 {}:在文档上方添加多少行填充,在单个视图中显示所有文档时非常有用。(默认值:1)",
+ "{}Scrollbar Mode{}: The {}Vertical Scrollbar{} mode to use. You can choose from the following: {} {}{}Bar{}: A simple vertical scrollbar is shown.{} {}{}Small Map{} / {}Medium Map{} / {}Large Map{}: A map is shown of the selected size. (Default: Medium Map){} {} ":"{} 滚动条模式 {}:要使用的 {} 垂直滚动条 {} 模式。您可以从以下选项中进行选择:{}{}{} 栏 {}:显示一个简单的垂直滚动条。{}{}{} 小地图 {}/{} 中型地图 {}/{} 大地图 {}:A 显示所选尺寸的地图。(默认:中地图 ){}{}",
+ "{}Show Indent Guide{}: Display vertical indentation lines. See: {}Guides{}. (Default: Enabled)":"{} 显示缩进指南 {}:显示垂直缩进线。请参阅:{} 指南 {}。(默认值:启用)",
+ "{}Show Rainbow Brackets{}: Enable {}Rainbow Brackets{}. Colours can be modified in the Theme section. (Default: Enabled)":"{} 显示彩虹括号 {}:启用 {} 彩虹括号 {}。可以在主题部分修改颜色。(默认值:启用)",
+ "{}Show all documents in single view{}: When enabled, all documents for an asset are shown one after another in the same editor (e.g. all events for an object, all shader files for a shader asset). When disabled, only one document is shown at a time, which can be changed from the Navigation Bar. (Default: Enabled)":"{} 在单一视图中显示所有文档 {}:启用后,资产的所有文档都会在同一编辑器中依次显示 (例如,对象的所有事件、着色器资产的所有着色器文件)。禁用后,一次仅显示一个文档,可以从导航栏更改该文档。(默认值:启用)",
+ "{}Show code preview when mouse hovers over scrollbar{}: If enabled, hovering over the scroll map (if enabled) for a second will display a preview of the code at the position where the mouse is placed. (Default: Enabled)":"{} 当鼠标悬停在滚动条上时显示代码预览 {}:如果启用,将鼠标悬停在滚动地图 (如果启用) 上一秒钟将在鼠标放置的位置显示代码预览。(默认值:启用)",
+ "{}Show diagnostics on scrollbar{}: Whether diagnostics (such as syntax errors) should be displayed on the scrollbar. (Default: Disabled)":"{} 在滚动条上显示诊断信息 {}:是否应在滚动条上显示诊断信息 (例如语法错误)。(默认值:禁用)",
+ "{}Show line numbers{}: Whether line numbers are displayed in the {}Gutter{}. (Default: Enabled)":"{} 显示行号 {}:行号是否显示在 {} 装订线 {} 中。(默认值:启用)",
+ "{}Show sticky headers for documents{}: Whether document headers should stick to the top of the document view. (Default: Enabled)":"{} 显示文档的粘性标题 {}:文档标题是否应粘在文档视图的顶部。(默认值:启用)",
+ "{}Show sticky headers for statements{}: Whether foldable statements (such as if conditions, regions etc.) should stick to the top of the document view when the view has scrolled beyond it. (Default: Disabled)":"{} 显示语句的粘性标题 {}:当视图滚动超出文档视图时,可折叠语句 (例如 if 条件、区域等) 是否应粘在文档视图的顶部。(默认值:禁用)",
+ "{}Show whitespace{}: Display whitespace guides (dots). See: {}Guides{}. (Default: Disabled)":"{} 显示空白 {}:显示空白参考线 (点)。请参阅:{} 指南 {}。(默认值:禁用)",
+ "{}Tab size{}: The size of a tab. (Default: 4)":"{} 标签大小 {}:标签的大小。(默认值:4)",
+ "{}Tab type{}: The type of each tab inserted. You can choose from the following options: {} {}{}Space{}: Choosing this will insert \"{}Tab size{}\" number of spaces when you press {}tab{}. (Default){} {}{}Tab{}: Choosing this will insert a single tab character when you press {}tab{}, which will be rendered as \"{}Tab size{}\" number of spaces.{} {} ":"{} 选项卡类型 {}:插入的每个选项卡的类型。您可以从以下选项中进行选择:{}{}{} 空格 {}:选择此选项将在您按 {}Tab{} 时插入 \"{} 制表符大小 {}\" 数量的空格。(默认 ){}{}{} 制表符 {}:选择此选项将在您按 {} 制表符 {} 时插入单个制表符,该字符将呈现为 \"{} 制表符大小 {}\" 个空格。{}{}",
+ "{}The \"{}Name{}\" field is the display name of the scope shown in this list, and the \"{}Scopes{}\" field is a list of scopes to cover under this name, separated by commas.":"{}\"{}Name{}\" 字段是此列表中显示的范围的显示名称,\"{}Scopes{}\" 字段是此名称下要涵盖的范围的列表,以逗号分隔。",
+ "{}The first option is the font used by the {}Code Editor{}. Fonts that are fixed-width (which are recommended for coding over non-fixed-width fonts) are {}bolded{} in the drop-down list.":"{} 第一个选项是 {} 代码编辑器 {} 使用的字体。固定宽度字体 (建议在非固定宽度字体上进行编码) 在下拉列表中以 {} 粗体 {} 显示。",
+ "{}This allows you to edit the colour for each scope that can be detected in a document. You can change the foreground and background colours, and whether to use bold, italic and/or underline formatting.":"{} 这允许您编辑可在文档中检测到的每个范围的颜色。您可以更改前景色和背景色,以及是否使用粗体、斜体和 / 或下划线格式。",
+ "{}This page describes all the preferences for {}The Code Editor{}, which contains the following sections:":"{} 此页面介绍了 {} 代码编辑器 {} 的所有首选项,其中包含以下部分:",
+ "{}Undo/Redo stack limit{}: Size of the undo/redo stack limit which controls how many undo commands you can perform. Any value below 0 is considered as \"unlimited\". (Default: -1)":"{} 撤消 / 重做堆栈限制 {}:撤消 / 重做堆栈限制的大小,控制您可以执行的撤消命令的数量。任何低于 0 的值都被视为 \" 无限制\"。(默认值:-1)",
+ "{}from Copy of Selected{}: Creates a copy of the selected theme that you can edit.":"{} 来自所选主题的副本 {}:创建您可以编辑的所选主题的副本。",
+ "{}from File{}: Allows you to load a {}TextMate{} file.":"{} 来自文件 {}:允许您加载 {}TextMate{} 文件。"
+}
\ No newline at end of file
diff --git a/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences/Text_Editor_Preferences.json b/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences/Text_Editor_Preferences.json
index a8a61acda..c8db76a96 100644
--- a/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences/Text_Editor_Preferences.json
+++ b/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences/Text_Editor_Preferences.json
@@ -22,6 +22,7 @@
"{}Font Name{}: The name of the font to use (available fonts will depend on those installed on your system).":"{}字体名称{}:要使用的字体的名称(可用的字体取决于系统上安装的字体)。",
"{}Highlight selection matches{}: This will lightly highlight any section of code that is duplicated elsewhere. So, if you select a function, for example, all instances of this function in the current code window will be highlighted too. Default is on.":"{}突出显示选择匹配项{}:这将略微突出显示在其他地方复制的任何代码段。因此,例如,如果选择一个函数,则当前代码窗口中该函数的所有实例也将突出显示。默认设置为启用。",
"{}Keep tabs{}: If checked, this will keep tab key presses as tab characters - \u0027 {}\\t{}\u0027 - in the editor, while unchecked means that tabs are converted into spaces. Default is off.":"{}保留制表符{}:如果选中,将在编辑器中保持按下制表键为制表符-\u0027{}\\t{}\u0027,而不选中则表示制表符转换为空格。默认设置为禁用。",
+ "{}Legacy Code Editor{} Preferences":"{} 旧版代码编辑器 {} 首选项",
"{}Match indent on new lines{}: Enable or disable auto-indentation for your code. Default is on, which will maintain any tabs set on a line when a new line is added.":"{}匹配新行的缩进{}:启用或禁用代码的自动缩进。默认设置为启用,这将在添加新行时保留行上设置的所有制表符。",
"{}Minimum code window height{}: Set the minimum height (in pixels) permitted by the code window. Default value is 200.":"{}最小代码窗口高度{}:设置代码窗口允许的最小高度(以像素为单位)。默认值为 200。",
"{}Minimum code window width{}: Set the minimum width (in pixels) permitted by the code window. Default value is 300.":"{}最小代码窗口宽度{}:设置代码窗口允许的最小宽度(以像素为单位)。默认值为 300。",
@@ -38,6 +39,7 @@
"{}Style{}: The font style to use, like {}bold {}or {}italics {}(note that not all windows will permit the same styles and it will also depend on the font used).":"{}样式{}:要使用的字体样式,如{}粗体{}或{}斜体{}(请注意,并不是所有窗口都允许使用相同的样式,它还取决于所使用的字体)。",
"{}Syntax checking delay (ms){}: The delay time (in milliseconds) before the syntax checker runs. This default value is 2000ms.":"{}语法检查延迟(毫秒){}:语法检查器运行前的延迟时间(毫秒)。此默认值为 2000ms。",
"{}Tab size{}: The number of character spaces that pressing \"Tab\" should indent the code. Default is 4.":"{}制表符大小{}:按\"Tab\"键应缩进代码的字符空格数。默认值为4。",
+ "{}The {}Legacy Code Editor{}{} preferences{} are used to define how the different code/script editors look and feel. The main page has the following options:":"{}{} 旧版代码编辑器 {}{} 首选项 {} 用于定义不同代码 / 脚本编辑器的外观和风格。主页有以下选项:",
"{}The {}Text Editors preferences{} are used to define how the different code/script editors look and feel. The main page has the following options:":"{}{}文本编辑器首选项{}用于定义不同的代码/脚本编辑器的外观和感觉。主页具有以下选项:",
"{}Undo / Redo Stack Limit{}: Here you can set the Undo/Redo stack limit. Anything under 0 is essentially infinite (limited by the memory available) while positive values will limit the stack to that number, removing any action at the tail of the stack if the limit is reached. Default is -1.":"{}撤销/重做堆栈限制{}:您可以在此处设置撤消/重做堆栈限制。小于0的任何值本质上都是无限的(受可用内存的限制),而正值会将堆栈限制为该数字,如果达到该限制,则删除堆栈尾部的所有操作。默认值为 -1。"
}
\ No newline at end of file
diff --git a/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences/Tile_Set_Editor_Preferences.json b/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences/Tile_Set_Editor_Preferences.json
index 4b9287229..cfbec8f4b 100644
--- a/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences/Tile_Set_Editor_Preferences.json
+++ b/language/zh/www/Setting_Up_And_Version_Information/IDE_Preferences/Tile_Set_Editor_Preferences.json
@@ -1,7 +1,11 @@
{
"The Tile Set Editor preferences also has a {}Confirm Dialogs {}sub-section:":"图块设置编辑器首选项也有一个{}确认对话框{}子项:",
+ "The section for {}Confirm Dialogs {}has one preference:":"{} 确认对话框 {} 部分有一个首选项:",
"The {}Tile Set Editor Preferences{} has the following option for Auto Tiling:":"{}图块集编辑器首选项{}具有以下自动图块选项:",
+ "The {}Tile Set Editor Preferences{} have the following option for Auto Tiling:":"{}图块集编辑器首选项{} 具有以下自动平铺选项:",
"Tile Set Editor Preferences":"图块集编辑器设置",
"{}Auto tile background colour{}: This option sets the background colour within the tile set editor in the section for creating Auto Tiles. The default colour is (rgba) #808080FF.":"{}自动图块背景颜色{}: 该选项在创建自动图块部分的图块集编辑器中设置背景颜色。默认颜色是 (RGBA) #808080FF。",
- "{}The option available here controls the message that pops up when you change the cell size of the tile set and this will affect how the room tilemap layers are rendered (resulting in cropped layers). By default you will be prompted to continue or cancel the operation, and this option lets you suppress this message by selecting \"Okay\" which will go ahead with the tile set cell change regardless of the impact on room tilemap layers. Default value is \"Show Message\".":"{}这里可用的选项控制当你改变图块集的单元格大小时弹出的消息,这将影响房间图块图层的呈现方式(导致裁剪图层)。默认情况下,您将被提示继续或取消操作,该选项允许您通过选择 \"OK\" 来阻止此消息,该选项将继续进行图块单元格更改,而不管对房间图块图层的影响。默认值为\"显示消息\"。"
+ "{}Auto tile background colour{}: This option sets the background colour within the tile set editor in the section for creating Auto Tiles. The default colour is #808080FF (RGBA).":"{} 自动图块背景颜色 {}:此选项设置用于创建自动图块的图块集编辑器内的背景颜色。默认颜色为 #808080FF(RGBA)。",
+ "{}The option available here controls the message that pops up when you change the cell size of the tile set and this will affect how the room tilemap layers are rendered (resulting in cropped layers). By default you will be prompted to continue or cancel the operation, and this option lets you suppress this message by selecting \"Okay\" which will go ahead with the tile set cell change regardless of the impact on room tilemap layers. Default value is \"Show Message\".":"{}这里可用的选项控制当你改变图块集的单元格大小时弹出的消息,这将影响房间图块图层的呈现方式(导致裁剪图层)。默认情况下,您将被提示继续或取消操作,该选项允许您通过选择 \"OK\" 来阻止此消息,该选项将继续进行图块单元格更改,而不管对房间图块图层的影响。默认值为\"显示消息\"。",
+ "{}This controls the default behaviour when changing the Tile Width or Height in a {}Tile Set{}. By default this is set to \"Show Message\", so if you try to increase the Width or Height in a Tile Set that is being used in a room, it will alert you with a dialog message that such Tile Maps will get cropped (as the room can now hold less tiles). You can set the default behaviour to \"OK\" which will skip the dialog and always allow such modifications to the Tile Set.":"{} 这控制更改 {} 图块集 {} 中的图块宽度或高度时的默认行为。默认情况下,此设置为 \" 显示消息\",因此,如果您尝试增加房间中使用的图块集中的宽度或高度,它将通过对话框消息提醒您此类图块贴图将被裁剪 (如房间现在可以容纳更少的瓷砖)。您可以将默认行为设置为 \" 确定\",这将跳过该对话框并始终允许对图块集进行此类修改。"
}
\ No newline at end of file
diff --git a/language/zh/www/Setting_Up_And_Version_Information/Licencing_Information.json b/language/zh/www/Setting_Up_And_Version_Information/Licencing_Information.json
index d8eab1975..0bbf673be 100644
--- a/language/zh/www/Setting_Up_And_Version_Information/Licencing_Information.json
+++ b/language/zh/www/Setting_Up_And_Version_Information/Licencing_Information.json
@@ -1,5 +1,6 @@
{
"Creating A YoYo Account":"创建一个 YoYo 账户",
+ "For information on the various {}GameMaker{} licences and obtaining them, see the links on {}Licencing & Version Information{}.":"有关各种 {}GameMaker{} 许可证以及获取这些许可证的信息,请参阅 {} 许可与授权 {} 上的链接。版本信息 {}。",
"If you require Proxy Support for your installation of {}GameMaker{}, this can be added simply by clicking the {}Proxy{}. This will bring up the following window:":"如果您需要为{}GameMaker{}安装代理支持,只需单击{}Proxy{}即可添加代理支持。这将打开以下窗口:",
"If your proxy does require a username and/or password, then you\u0027ll need to add them in to the fields shown in the window above. Note that in these cases the username/password/proxy details will always be required, and that the proxy IP should also have the port added, ie: {}xx.xx.xx.xx:port{}.":"如果您的代理确实需要用户名和/或密码,那么您需要将它们添加到上面窗口中显示的字段中。注意,在这些情况下,总是需要用户名/密码/代理详细信息,代理IP还应该添加端口,例如:{}xx.xx.xx.xx:port{}。",
"Legacy Sign In & Proxy":"传统登录与代理",
diff --git a/language/zh/www/Settings/Building_via_Command_Line.json b/language/zh/www/Settings/Building_via_Command_Line.json
index fda75fb10..34baea764 100644
--- a/language/zh/www/Settings/Building_via_Command_Line.json
+++ b/language/zh/www/Settings/Building_via_Command_Line.json
@@ -147,6 +147,7 @@
"Set the user folder used for retrieving licence information so {}GameMaker{} knows which modules can be installed":"设置用于检索许可证信息的用户文件夹,以便{} GameMaker {}知道可以安装哪些模块",
"Set up a CI environment (this depends on how you are going to build your games), like {}Jenkins{}":"设置CI环境(这取决于您将如何构建游戏),如 {}Jenkins{}",
"Set up a CI environment (this depends on how you are going to build your games); we suggest using {}Jenkins{}":"设置CI环境(这取决于您打算如何构建游戏);我们建议使用{}Jenkins{}",
+ "Set up your CI task and ensure that all the prerequisites are set up (i.e. source control sync to your project)":"设置 CI 任务并确保设置所有先决条件 (即源代码控制同步到您的项目)",
"Set up your CI task and ensure that all the prerequisites are setup (i.e. source control sync to your project)":"设置您的CI任务并确保已设置所有先决条件(即源代码管理与项目同步)",
"Setting Up":"设置",
"Some platforms (notably Android) will automatically {}subst{} a drive while building, so you may need to manually clean this up in the event of an error":"有些平台(特别是安卓)会在构建时自动{}subst{}一个驱动器,所以你可能需要在出现错误时手动清理。",
@@ -158,6 +159,7 @@
"The actual file name of the ZIP file or NSIS installer that is created":"创建的 ZIP 文件或 NSIS 安装程序的实际文件名",
"The cache directory to use (defaults to {}\\cache{} in the current directory)":"要使用的缓存目录(默认为当前目录中的{}\\cache{})",
"The filename of the output executable without the extension, e.g. {}C:/output/game{}, which would output the executable at {}C:/output/game.zip{} (or a different file format depending on the platform){} {} If this is not specified, a directory named {}output{} will be created in the same directory as the {}.bat{} file (or where the command is running from), containing the extracted build files ":"不带扩展名的输出可执行文件的文件名,例如 {}C:/output/game{},它将在 {}C:/output/game.zip{} (或不同的文件格式,具体取决于平台) 输出可执行文件 {}{} 如果未指定此文件名,则将在与 {}.bat{} 文件相同的目录 (或运行命令的目录) 中创建一个名为 {}output{} 的目录,其中包含提取的构建文件",
+ "The full path to the licence file, either from the IDE or from the {}Access Key{} service{} {} To retrieve the licence from the IDE, the paths are as follows:{} Windows: {}{}{}%appdata%\\GameMakerStudio2\\username_number\\{}licence.plist{}{} macOS: {}{}{}~/Library/Application Support/GameMakerStudio2/username_number/{}licence.plist{}{} ":"许可证文件的完整路径,来自 IDE 或 {} 访问密钥 {} 服务 {}{} 要从 IDE 检索许可证,路径如下:{}Windows:{}{}{}%appdata%\\GameMakerStudio2\\username_number\\{}licence.plist{}{}macOS:{}{}{}~/Library/Application Support/GameMakerStudio2/username_number/{}licence.plist{}{}",
"The full path to the licence file, either from the IDE or from the {}Access Key{} service{} {} To retrieve the licence from the IDE, the paths are as follows:{} Windows: {}{}%appdata%\\GameMaker\\<user_name>_<number>\\licence.plist{}{}{} macOS: {}{}~/.config/GameMaker/<user_name>_<number>/licence.plist{}{} ":"许可证文件的完整路径,可从IDE或从{}Access Key{}服务{}{}获取。要从IDE中获取许可证,路径如下:{}Windows: {}{}%appdata%\\GameMaker<user_name>_<number>\\licence.plist{}{}{} macOS: {}{}~/.config/GameMaker/<user_name>_<number>/licence.plist{} {} ",
"The full path to the licence file, either from the IDE or from the {}Access Key{} service{} {} To retrieve the licence from the IDE, the paths are as follows:{} Windows: {}{}%appdata%\\{}GameMakerStudio2{}\\<user_name>_<number>\\licence.plist{}{}{} macOS: {}{}~/.config/{}GameMakerStudio2{}/<user_name>_<number>/licence.plist{}{} ":"许可证文件的完整路径,可以从IDE或访问{}密钥{}服务{}{}
路径如下:{} Windows: {}{}%appdata%\\{}GameMakerStudio2{}\\<user_name>_<number>\\licence.plist{}{}{} macOS: {}{}~/.config/{}GameMakerStudio2{}/<user_name>_<number>/licence.plist{}{}
",
"The full path to the project\u0027s {}.yyp{} file":"*{}.yyp{}文件的完整路径",
@@ -170,6 +172,7 @@
"The output type (either YYC or VM), defaults to VM":"输出类型(YYC 或 VM) ,默认为 VM",
"The path to your {}devices.json{} file, required when building to other devices.{} {} On Windows, this will be: {}{}%appdata%\\GameMaker\\<user_name>_<number>\\devices.json{}{}{} On macOS, this will be: {}{}~/.config/GameMaker/<user_name>_<number>/devices.json{}{} ":"你的{}devices.json{}文件的路径,在构建到其他设备时需要{}{}在Windows上,这将是: {}{}%appdata%\\GameMaker\\<user_name>_<number>\\devices.json{}{}{}在macOS上,这将是: {}{}~/.config/GameMaker/<user_name>_<number>/devices.json{}{}",
"The path to your {}devices.json{} file, required when building to other devices.{} {} On Windows, this will be: {}{}%appdata%\\{}GameMakerStudio2{}\\<user_name>_<number>\\devices.json{}{}{} On macOS, this will be: {}{}~/.config/{}GameMakerStudio2{}/<user_name>_<number>/devices.json{}{} ":"在构建到其他设备时需要{}devices.json{}文件的路径。{}{}在Windows上,这将是:{}{}%appdata%\\{}GameMakerStudio2{}\\<user_name>_<number>\\devices.json{}{}{}在macOS, 这将是: {}{}~/.config/{}GameMakerStudio2{}/<user_name>_<number>/devices.json{}{} ",
+ "The path to your {}devices.json{} file, required when building to other devices.{} {} On Windows, this will be: {}{}{}%appdata%\\GameMakerStudio2\\username_number\\{}devices.json{}{}{} On macOS, this will be: {}{}{}~/Library/Application Support/GameMakerStudio2/username_number/{}devices.json{}{} ":"{}devices.json{} 文件的路径,在构建其他设备时需要。{}{} 在 Windows 上,该路径为:{}{}{}%appdata%\\GameMakerStudio2\\username_number\\{}devices.json{}{}{} 在 macOS 上,这将是:{}{}{}~/Library/Application Support/GameMakerStudio2/username_number/{}devices.json{}{}",
"The root folder of the runtime":"Runtime的根目录",
"The temporary directory to use (defaults to {}c:\\temp{})":"要使用的临时目录(默认为{}c:\\temp{})",
"The test fails if the project does not compile within the timeout period, or crashes before the wait time is over":"",
@@ -178,6 +181,7 @@
"The user folder used for retrieving licence information {} {} On Windows, this will be: {}{}%appdata%\\GameMaker\\<user_name>_<number>{}{} {} On macOS, this will be: {}{}~/.config/GameMaker/<user_name>_<number>{}{} ":"用于检索许可证信息的用户文件夹{}{}在Windows上,这将是:{}{}%appdata%\\GameMaker\\<user_name>_<number>{}{}{}在MacOS上,这将是:{}{}~/.config/GameMaker/<user_name>_<number>{}{} ",
"The user folder used for retrieving licence information, alternative to {}/lf{}{} {} On Windows, this will be: {}{}%appdata%\\GameMaker\\<user_name>_<number>{}{}{} On macOS, this will be: {}{}~/.config/GameMaker/<user_name>_<number>{}{} ":"用于检索许可证信息的用户文件夹,用于替代{}/lf{}{}{}在Windows上,这将是: {}{}%appdata%\\GameMaker\\<user_name>_<number>{}{}{}在 macOS 上,这将是: {}{}~/.config/GameMaker/<user_name>_<number> {}{}",
"The user folder used for retrieving licence information, alternative to {}/lf{}{} {} On Windows, this will be: {}{}%appdata%\\{}GameMakerStudio2{}\\<user_name>_<number>{}{}{} On macOS, this will be: {}{}~/.config/{}GameMakerStudio2{}/<user_name>_<number>{}{} ":"用于检索许可证信息的用户文件夹, {}/lf{}{} {} 的替代方法在Windows上, 是这样的: {}{}%appdata%\\{}GameMakerStudio2{}\\<user_name>_<number>{}{}{} 在 macOS, 是这样的: {}{}~/.config/{}GameMakerStudio2{}/<user_name>_<number>{}{} ",
+ "The user folder used for retrieving licence information, alternative to {}/lf{}{} {} On Windows, this will be:{} {}{}{}%appdata%\\GameMakerStudio2\\username_number\\{}{}{}{} On macOS, this will be:{} {}{}{}~/Library/Application Support/GameMakerStudio2/username_number/{}{}{} ":"用于检索许可信息的用户文件夹,可替代 {}/lf{}{}{} 在 Windows 上,该文件夹为:{}{}{}{}%appdata%\\GameMakerStudio2\\username_number\\{}{}{}{} 在 macOS 上,这将是:{}{}{}{}~/Library/Application Support/GameMakerStudio2/username_number/{}{}{}",
"The {}/lf{} option requires a path to your {}licence.plist{} file, which can be retrieved from your GameMaker installation after you\u0027ve logged into the IDE, as described in the table above.":"{}/lf{}选项需要你的{}licence.plist{}文件的路径,你可以在登录IDE后从GameMaker安装中获取,如上表所述。",
"The {}licence.plist{} file generated to the {}-of{} path can now be used in the {}/lf{} option":"生成到{}-of{}路径的{}licence.plist{}文件现在可以在{}/lf{}选项中使用。",
"The {}tests.json{} file must have the following format:":"{}tests.json{}文件必须具有以下格式:",
diff --git a/language/zh/www/Settings/Game_Options/HTML5.json b/language/zh/www/Settings/Game_Options/HTML5.json
index af961aae9..98d4d28b6 100644
--- a/language/zh/www/Settings/Game_Options/HTML5.json
+++ b/language/zh/www/Settings/Game_Options/HTML5.json
@@ -34,5 +34,6 @@
"{}Use Built In Font{}: This option will export the {}GameMaker{} built in font along with the rest of the game files. This will slightly increase the size of the texture pages and require a small amount of extra memory and storage, so if your game doesn\u0027t use the built in Arial font, this should be disabled. It is on by default.":"{}使用内置字体{} : 此选项将导出{}内置字体的 GameMaker {}以及其他游戏文件。这会稍微增加纹理页面的大小,并且需要少量额外的内存和存储空间,所以如果你的游戏没有使用 Arial 字体,这个功能应该被禁用。默认开启。",
"{}Use Built In Particles{}: This option will export the sprites required for the built in particle system along with your game. These sprites are stored in individual texture pages, meaning that they are not the most efficient method of generating particles for this platform, therefore it is recommended that (unless using WebGL) you un-check this option and use your own particle sprites which will be stored on the main texture pages all together for your game. This is on by default.":"{}使用内置粒子{} : 此选项将导出内置粒子系统所需的精灵以及您的游戏。这些粒子被存储在单独的纹理页面中,这意味着它们不是为这个平台生成粒子的最有效的方法,因此建议(除非使用 WebGL)你取消选中这个选项,使用你自己的粒子,它们将被存储在主纹理页面上,以供你的游戏使用。这是默认开启的。",
"{}Version{}: The version number for your game.":"{}版本{} : 您游戏的版本号。",
- "{}WebGL{}: Choose whether to switch off WebGL support, make it optional (auto-detect), or make it a requirement for your game. It should be noted that to test performance under all circumstances, you should have this as disabled, then normally set it to auto-detect for publishing. Making it a requirement may reduce considerably the compatibility that your game has with different browser types. This is set to auto-detect by default.":"{}WebGL{} : 选择是否关闭 WebGL 支持,使其可选(自动检测) ,还是将其作为游戏的一个需求。应该注意的是,为了在所有情况下测试性能,您应该禁用此选项,然后通常将其设置为自动检测以便发布。将其作为一个需求可能会大大降低游戏与不同浏览器类型的兼容性。默认情况下设置为自动检测。"
+ "{}WebGL{}: Choose whether to switch off WebGL support, make it optional (auto-detect), or make it a requirement for your game. It should be noted that to test performance under all circumstances, you should have this as disabled, then normally set it to auto-detect for publishing. Making it a requirement may reduce considerably the compatibility that your game has with different browser types. This is set to auto-detect by default.":"{}WebGL{} : 选择是否关闭 WebGL 支持,使其可选(自动检测) ,还是将其作为游戏的一个需求。应该注意的是,为了在所有情况下测试性能,您应该禁用此选项,然后通常将其设置为自动检测以便发布。将其作为一个需求可能会大大降低游戏与不同浏览器类型的兼容性。默认情况下设置为自动检测。",
+ "{}WebGL{}: Choose whether to switch off WebGL support, make it optional (auto-detect), or make it a requirement for your game. Shaders will only be usable when WebGL is allowed and supported on the device running the game. It should be noted that to test performance under all circumstances, you should have this as disabled, then normally set it to auto-detect for publishing. Making it a requirement may reduce considerably the compatibility that your game has with different browser types. This is set to auto-detect by default.":"{}WebGL{}:选择是关闭 WebGL 支持、将其设置为可选 (自动检测) 还是将其设置为游戏的要求。仅当运行游戏的设备允许并支持 WebGL 时,着色器才可用。应该注意的是,要测试所有情况下的性能,您应该将其禁用,然后通常将其设置为自动检测以进行发布。使其成为一项要求可能会大大降低您的游戏与不同浏览器类型的兼容性。默认设置为自动检测。"
}
\ No newline at end of file
diff --git a/language/zh/www/Settings/Game_Options/Ubuntu.json b/language/zh/www/Settings/Game_Options/Ubuntu.json
index 92bfdf656..6338199f8 100644
--- a/language/zh/www/Settings/Game_Options/Ubuntu.json
+++ b/language/zh/www/Settings/Game_Options/Ubuntu.json
@@ -10,6 +10,7 @@
"Ubuntu Game Options":"Ubuntu 游戏选项",
"{}Allow Fullscreen Switching{}: With this ticked the user can switch from fullscreen to windowed and back again using the standard Ubuntu OS shortcuts. This is off by default.":"{}允许全屏切换{} : 有了这个选项,用户可以使用标准的 Ubuntu OS 快捷方式从全屏切换到窗口,然后再切换回来。默认关闭。",
"{}Allow window resize{}: Checking this permits the user to change the size of the game window (the Borderless Window option needs to be off for this to work). This option is off by default.":"{}允许窗口调整大小{} : 选中此选项允许用户更改游戏窗口的大小。默认情况下,此选项是关闭的。",
+ "{}Allow window resize{}: Checking this permits the user to change the size of the game window. This option is off by default.":"{} 允许调整窗口大小 {}:选中此项允许用户更改游戏窗口的大小。该选项默认关闭。",
"{}Display Cursor{}: When this option is enabled, the default OS cursor will be shown in your game. If this is disabled, then while the mouse is over the game window, there will be no visible cursor unless you have created one as part of the game project (this is on by default).":"{}显示光标{}:选中此项时,将显示常规窗口光标,取消选中此项表示除非您在游戏代码中创建了光标,否则不会显示任何光标。默认情况下,此选项处于启用状态。",
"{}Here you can add a {}Splash Screen{} for your game, and set the game {}Icon {}that will be used. The icon must be a 64x64 pixel image in the {}.png{} format, and the splash screen should be at least the same size as the first room in your game (or it\u0027s view port) and be {}.png{} format too. The splash screen will be shown while the game loads, and can be enabled or disabled by checking the {}Use Splash Screen{} option (which is off by default).":"{}在这里您可以为您的游戏添加一个{}启动画面{},并设置将要使用的{}游戏图标{}。图标必须是中的64x64像素图像{}.PNG{}格式,启动画面的大小应该至少与游戏中的第一个房间(或者它的视图端口)相同,并且是{}.png{}格式。启动画面将在游戏加载时显示,通过选中{}开启启动动画{}选项(默认关闭)可以启用或禁用启动画面。",
"{}Interpolate colours between pixels{}: Turns on {}linear interpolation{}, which basically \"smooths\" pixels. For crisp pixel graphics, it should be off, but if you have nice alpha blends and smoothed edged graphics it is better left on.This is off by default.":"{}像素间插值颜色{}:启用{}线性插值{},基本上是“平滑”像素。对于清晰的像素图形,它应该处于禁用状态,但如果您有漂亮的Alpha混合和平滑的边缘图形,则最好保持启用状态。默认情况下,此选项处于启用状态。",
diff --git a/language/zh/www/Settings/Game_Options/macOS.json b/language/zh/www/Settings/Game_Options/macOS.json
index 1f7dc8ff1..14ed801a6 100644
--- a/language/zh/www/Settings/Game_Options/macOS.json
+++ b/language/zh/www/Settings/Game_Options/macOS.json
@@ -19,6 +19,7 @@
"{}Allow Fullscreen Switching{}: With this ticked the user can switch from fullscreen to windowed and back again using the standard macOS shortcuts. This is off by default.":"{}允许全屏切换{}:选中此选项后,用户可以使用标准的macOS快捷方式从全屏切换到窗口,然后再次切换到窗口。默认情况下,此选项处于禁用状态。",
"{}Allow Menu And Dock In Fullscreen{}: When checked, this option will show the OS menu and dock if the game is in fullscreen mode. This is off by default.":"{}允许菜单和停靠全屏{}:选中此选项后,如果游戏处于全屏模式,此选项将显示“操作系统”菜单并停靠。默认情况下,此选项处于禁用状态。",
"{}Allow window resize{}: Checking this permits the user to change the size of the game window (the Borderless Window option needs to be off for this to work). This option is off by default.":"{}允许调整窗口大小{}:选中此选项将允许用户更改游戏窗口的大小(需要关闭“无边框窗口”选项才能正常工作)。默认情况下,此选项处于禁用状态。",
+ "{}Allow window resize{}: Checking this permits the user to change the size of the game window. This option is off by default.":"{} 允许调整窗口大小 {}:选中此项允许用户更改游戏窗口的大小。该选项默认关闭。",
"{}Display Cursor{}: When this is checked the regular macOS cursor will be show, and un-checking it will mean that no cursor is shown unless you have created one in your game code. This is off by default.":"{}显示光标{}:选中此项后,将显示常规的macOS光标,取消选中此项表示除非您在游戏代码中创建了光标,否则不会显示任何光标。默认情况下,此选项处于禁用状态。",
"{}Enable Retina{}: Checking this will set the back buffer to be at the higher (actual) resolution when the game is run on a retina enabled monitor, while un-checking it will set the back buffer to be at the apparent (lower) resolution. What this means is that the initial game window will be set to twice the width and height that the room/view port that the first room is set to. However, this does NOT scale the application surface to suit, and so if you want your game to make the most of the retina display you should also set the application surface to be the same as the window size (note that this will double the pixels along the width and height, so only enable this and scale the application surface if your game will benefit from the increased resolution). {} {} This option is off by default, and enabling it will not show any difference when you run or debug the game using VM, as the runner is pre-built in that case. It will only work if you build an executable through VM, or use YYC for testing or building the game, as that will rebuild the runner with your customised Game Options. ":"{}启用Retina{}:在启用Retina的显示器上运行游戏时,如果选中此选项,则会将后置缓冲区设置为较高(实际)分辨率,而取消选中此选项,则会将后置缓冲区设置为较低(实际)分辨率。这意味着,初始游戏窗口将设置为第一个房间所设置的房间/视口宽度和高度的两倍。但是,这不会按比例缩放应用程序表面,因此,如果希望游戏充分利用视网膜显示,还应将应用程序表面设置为与窗口大小相同(请注意,这会使沿宽度和高度的像素增加一倍,因此,只有在游戏分辨率提高时,才会启用该功能并缩放应用程序表面)。{}{}默认情况下,此选项处于禁用状态,并且在使用VM运行或调试游戏时,启用此选项将不会显示任何差异,因为在这种情况下,运行器是预先构建的。只有通过VM构建可执行文件,或者使用YYC进行测试或构建游戏时,它才有效,因为这将使用自定义的游戏选项重建运行器。",
"{}Enable Retina{}: Checking this will set the back buffer to be at the higher (actual) resolution when the game is run on a retina enabled monitor, while un-checking it will set the back buffer to be at the apparent (lower) resolution. What this means is that the initial game window will be set to twice the width and height that the room/view port that the first room is set to. However, this does NOT scale the application surface to suit, and so if you want your game to make the most of the retina display you should also set the application surface to be the same as the window size (note that this will double the pixels along the width and height, so only enable this and scale the application surface if your game will benefit from the increased resolution).{} {} This option is off by default, and enabling it will not show any difference when you run or debug the game using VM, as the runner is pre-built in that case. It will only work if you build an executable through VM, or use YYC for testing or building the game, as that will rebuild the runner with your customised Game Options. ":"{}启用 Retina{}:在启用 Retina 的显示器上运行游戏时,如果选中此选项,则会将后置缓冲区设置为较高(实际)分辨率,而取消选中此选项,则会将后置缓冲区设置为较低(实际)分辨率。这意味着,初始游戏窗口将设置为第一个房间所设置的房间 / 视口宽度和高度的两倍。但是,这不会按比例缩放应用程序表面,因此,如果希望游戏充分利用视网膜显示,还应将应用程序表面设置为与窗口大小相同(请注意,这会使沿宽度和高度的像素增加一倍,因此,只有在游戏分辨率提高时,才会启用该功能并缩放应用程序表面)。{}{}默认情况下,此选项处于禁用状态,并且在使用 VM 运行或调试游戏时,启用此选项将不会显示任何差异,因为在这种情况下,运行器是预先构建的。只有通过 VM 构建可执行文件,或者使用 YYC 进行测试或构建游戏时,它才有效,因为这将使用自定义的游戏选项重建运行器。",
diff --git a/language/zh/www/Settings/Included_Files.json b/language/zh/www/Settings/Included_Files.json
index bab985e78..9e0d94ba5 100644
--- a/language/zh/www/Settings/Included_Files.json
+++ b/language/zh/www/Settings/Included_Files.json
@@ -32,6 +32,7 @@
"{}Once you have added files to the editor, you can double-click {} on them to open up the {}File Properties{}:":"{}将文件添加到编辑器后,可以双击{}以打开{}文件属性{} :",
"{}Open Properties{} - This opens the properties of the file in {}The Inspector{}.":"{}打开属性{}-这将在{}检查器{}中打开文件的属性。",
"{}Open in External Editor{} - This opens the file in an external editor based on its file extension, using the file associations set in the OS.":"{}在外部编辑器中打开{}-这将使用操作系统中设置的文件关联,根据文件扩展名在外部编辑器中打开文件。",
+ "{}Open in {}Code Editor{}{} - Only displayed when the file is editable in the {}Code Editor{}, clicking this opens the file for editing. See {}The Code Editor{} for a list of compatible file types. (This option is only shown when the new {}Code Editor{} is enabled in the {}Code Editor Preferences{}).":"{} 在 {} 代码编辑器 {}{} 中打开 - 仅当文件在 {} 代码编辑器 {} 中可编辑时才会显示,点击此按钮将打开文件进行编辑。请参阅 {} 代码编辑器 {} 以获取兼容文件类型的列表。(仅当在 {} 代码编辑器首选项 {} 中启用新的 {} 代码编辑器 {} 时才会显示此选项)。",
"{}Select All{} - This selects all items and also makes them the current selection in {}The Inspector{}, which can be useful if you e.g. want to change the platforms to export to for several files at once.":"{} 选择全部 {}- 选择所有项目,并使其成为 {} 检查器 {} 中的当前选择,如果您想一次更改多个文件的导出平台,这可能很有用。",
"{}This window shows the name of the file, its size on disk, and also the platforms that it should be exported to when you compile/test your game. You have buttons to select \"All\" or \"None\", or you can go down the list and check/uncheck the targets that you want the file to be exported to.":"{}此窗口显示文件的名称、磁盘上的大小以及在编译/测试游戏时应该导出到的平台。您可以选择“全部”或“无”按钮,或者您可以沿着列表查看并选中/取消选中您想要导出文件的目标。",
"{}This window shows the name of the file, its size on disk, and also the platforms that it should be exported to when you compile/test your game. You have buttons to select {}All{} or {}None{}, or you can go down the list and check/uncheck the targets that you want the file to be exported to.":"{}此窗口显示文件的名称、磁盘大小以及编译/测试游戏时应导出到的平台。您可以选择{}全部{}或{}无{}按钮,或者您可以向下查看列表并选中/取消选中您希望文件导出到的目标。",
diff --git a/language/zh/www/Settings/Runner_Details/Compiler_Batch_Files.json b/language/zh/www/Settings/Runner_Details/Compiler_Batch_Files.json
index 5d19b15ae..0a291ea92 100644
--- a/language/zh/www/Settings/Runner_Details/Compiler_Batch_Files.json
+++ b/language/zh/www/Settings/Runner_Details/Compiler_Batch_Files.json
@@ -29,7 +29,9 @@
"You can retrieve the extension version and any of the extension options in the Batch files/Shell scripts: ":"您可以在批处理文件/外壳脚本中检索扩展版本和任何扩展选项:",
"{}Android{} This is executed when the files necessary for the Android tools have been created, but before Gradle is called. You can use this step to access and modify the Android files yourself, before the Android tools compile it into a final executable.":"{}Android{} 这是在创建 Android 工具所需的文件时执行的,但在调用 Gradle 之前。您可以使用此步骤在 Android 工具将其编译为最终可执行文件之前自行访问和修改 Android 文件。",
"{}Only runs when creating a package/executable{}{} {} This is executed after the final packaging step has completed and the final ZIP file or store package has been prepared ":"{}仅在创建包/可执行文件时运行{}{}{}这在完成最终打包步骤并准备好最终ZIP文件或存储包后执行",
+ "{}Only runs when creating a package/executable{}{} {} This is executed after the final packaging step has completed and the final ZIP file or store package has been prepared. It will run locally on the machine where the package command was executed even when compiling for a different device (e.g. Windows to macOS). ":"{} 仅在创建包 / 可执行文件时运行 {}{}{} 这会在最终打包步骤完成并且准备好最终 ZIP 文件或存储包后执行。即使针对不同设备 (例如 Windows 到 macOS) 进行编译,它也会在执行包命令的计算机上本地运行。",
"{}Only runs when testing the game (\"Run\" or F5 in the IDE), not run when creating a package{}{} {} This is executed before the game deployment is about to start ":"{}仅在测试游戏时运行 (IDE 中的\"运行\"或 F5 键),在创建软件包时不运行{}{}{}此操作在游戏部署即将开始之前执行",
+ "{}Only runs when testing the game (\"Run\" or F5 in the IDE), not run when creating a package{}{} {} This is executed when the game is prepared and ready to run. After the script\u0027s execution, the game is started (unless you exit the script with {}1{}). It will run locally on the machine where the run command was executed even when compiling for a different device (e.g. Windows to macOS). ":"{} 仅在测试游戏时运行 (在 IDE 中 \" 运行 \" 或 F5),在创建包时不运行 {}{}{} 当游戏准备好并准备好运行时执行。脚本执行后,游戏将开始 (除非您使用 {}1{} 退出脚本)。即使针对不同设备 (例如 Windows 到 macOS) 进行编译,它也会在执行运行命令的计算机上本地运行。",
"{}Only runs when testing the game (\"Run\" or F5 in the IDE), not run when creating a package{}{} {} This is executed when the game is prepared and ready to run; after the script\u0027s execution the game is started ":"{}仅在测试游戏时运行(IDE中的\"运行\"或 F5 键),而不是在创建软件包时运行{}{}{}这在游戏准备就绪并准备运行时执行脚本执行后,游戏将启动",
"{}{}NOTE{}{} These steps are listed in the order that they are run, except for those under \"{}Platform-Specific Steps{}\".":"{}{}注意{}{} 这些步骤按运行顺序列出,但\"{}平台特定步骤{}\"下的除外。"
}
\ No newline at end of file
diff --git a/language/zh/www/Settings/Runner_Details/Compiler_Optimisations.json b/language/zh/www/Settings/Runner_Details/Compiler_Optimisations.json
new file mode 100644
index 000000000..a1cdc197b
--- /dev/null
+++ b/language/zh/www/Settings/Runner_Details/Compiler_Optimisations.json
@@ -0,0 +1,14 @@
+{
+ "Automatic Optimisations":"自动优化",
+ "See {}{}gml_pragma{}{} for the full list of optimisations you can use and how to use them.":"请参阅 {}{}gml_pragma{}{},了解您可以使用的优化的完整列表以及如何使用它们。",
+ "Strings: {} {}When being used with formatting any constant arguments are inlined into the main string and then the parameters are reordered, i.e.: {}string(\"{0} {1} {2}\", \"a\", \"=\", a);{} becomes: {}string(\"a = {0}\", a);{} {} {}Constant strings are concatenated by the compiler: {}string_concat(\"the \", \"answer \", \"is \", string(a));{} becomes: {}string_concat(\"the answer is \", string(a));{} {} {}Constant string arguments are joined by the compiler: {}string_join(\" \", \"Hello\", \"World\", string(a), \"is\", \"the\", \"answer\");{} becomes: {}string_join(\" \", \"Hello World\", string(a), \"is the answer\" );{} {} {} ":"字符串:{0}{1} 与格式化一起使用时,任何常量参数都会内联到主字符串中,然后对参数重新排序,即:{2}string(\"{0}{1}{2}\", \"a\", \" =\", a);{} 变为:{}string(\"a ={0}\", a);{}{}{} 常量字符串由编译器连接:{}string_concat(\"the \", \"answer \" , \"is \", string(a));{} 变为:{}string_concat(\" 答案是 \", string(a));{}{}{} 常量字符串参数由编译器连接:{}string_join( \" \", \"Hello\", \"World\", string(a), \"is\", \"the\", \"answer\");{} 变为:{}string_join(\" \", \"Hello World\", string(a), \"就是答案 \");{}{}{}",
+ "Struct variables are looked up using the hash value instead of the variable name if that name resolves to a constant value at compile time. For example, using this struct: {}a = {this: \"this\", that: \"that\"};{} the following variable lookups: {}b = a[$ \"this\"];{} // OR{} b = a.this{} will be replaced by the compiler by a lookup using the hash value, since it knows the variable name is {}\"this\"{}. However, the following lookup: {}var _varname = choose(\"this\", \"that\");{} b = a[$ _varname];{} cannot be replaced and the hash needs to be calculated at runtime, as the value of {}_varname{} depends on what the {}{}choose{}{} function returns. {}{}{}NOTE{}{} The above optimisations are also applied when you call the {}Struct Functions{}.{} ":"如果结构体变量在编译时解析为常量值,则使用哈希值而不是变量名称来查找结构体变量。例如,使用此结构体: {}a = {this: \"this\", that: \"that\"};{} 以下变量查找: {}b = a[$ \"this\"];{} // OR{} b = a.this{} 将被编译器通过使用哈希值的查找来替换,因为它知道变量名是{}\"this\"{}. 但是,以下查找: {}var _varname = choose(\"this\", \"that\");{} b = a[$ _varname];{} 无法替换,并且需要在运行时计算哈希值,因为 {}_varname{} 的值取决于 {}{}choose{}{} 函数返回的内容。 {}{}{}注意{}{}当您调用{}结构函数{}时,上述优化也会应用。{}",
+ "The compiler performs certain optimisations automatically, and does this recursively: ":"编译器自动执行某些优化,并递归地执行此操作:",
+ "The following functions are optimised by the compiler, according to the rule for deterministic functions when it detects that the parameters are constant (i.e. they cannot change at runtime): ":"当编译器检测到参数恒定 (即它们不能在运行时更改) 时,编译器会根据确定性函数的规则对以下函数进行优化:",
+ "Using gml_pragma()":"使用 gml_pragma()",
+ "You can also optimise how the compiler compiles (parts of) your game\u0027s code by providing it optimisations with the {}\"optimise\"{} (or {}\"optimize\"{}) pragma. These may apply to multiple targets or be specific to some build targets. Using them in the right places in your code can lead to great performance improvements in your game.":"您还可以通过为游戏代码提供 {}\"optimise\"{}( 或 {}\"optimize\"{}) 编译指示来优化编译器编译 (部分) 游戏代码的方式。这些可能适用于多个目标或特定于某些构建目标。在代码中正确的位置使用它们可以极大地提高游戏的性能。",
+ "{}Compiler Optimisations{}":"{} 编译器优化 {}",
+ "{}Deterministic{} functions (also known as pure functions) that are called with constant parameters are replaced with the return value of the function call. A deterministic function returns a known output for a given input; for every input value that you can pass the output value is known. For example, {}{}dcos{}{} is deterministic (i.e. {}dcos(0){} always returns 1, {}dcos(90){} always returns 0, etc.), while {}{}choose{}{} is not (i.e. {}choose(\"A\", \"B\", \"C\"){} can return any of the three parameters). {} {}{}Template Strings{} are replaced with a call to {}{}string{}{} and are also replaced according to the above rule. {}{}{}NOTE{}{} If you use the template literal string {}$\"Hello, I am {name}!\"{} then internally this becomes {}string(\"Hello, I am {0}!\", name){}. If {}name{} is a string literal (or a macro that maps to a string literal) then this would be optimised out completely and become a string literal.{} {} {} ":"使用常量参数调用的 {0} 确定性 {} 函数 (也称为纯函数) 将替换为函数调用的返回值。确定性函数针对给定输入返回已知输出 ; 对于每个可以传递的输入值,输出值都是已知的。例如,{}{}dcos{}{} 是确定性的 (即 {}dcos(0){} 始终返回 1,{}dcos(90){} 始终返回 0 等),而 {}{}choose{}{} 不是 (即 {}choose(\"A\", \"B\", \"C\"){} 可以返回三个参数中的任何一个)。{}{}{} 模板字符串 {} 被替换为对 {}{}string{}{} 的调用,并且也根据上述规则进行替换。{}{}{} 注意 {}{} 如果您使用模板文字字符串 {}$\"Hello, I am{name}!\"{},那么在内部这将变为 {}string(\"Hello, I am{0}! \", 姓名 ){}。如果 {}name{} 是字符串文字 (或映射到字符串文字的宏),那么它将完全优化并成为字符串文字。{}{}{}",
+ "{}GameMaker{} will optimise parts of your game code when compiling (i.e. building) your game. Some optimisations are performed automatically, others can be turned on or off with a call to {}{}gml_pragma{}{}.":"{}GameMaker{} 将在编译 (即构建) 游戏时优化部分游戏代码。某些优化是自动执行的,其他优化可以通过调用 {}{}gml_pragma{}{} 来打开或关闭。",
+ "{}{}{}NOTE{}{} The compiler will only optimise when the arguments are constants that it can evaluate.{}":"{}{}{} 注意{}{} 编译器仅当参数是可计算的常量时才会进行优化。{}"
+}
\ No newline at end of file
diff --git a/language/zh/www/Settings/Runner_Details/Runner_Details.json b/language/zh/www/Settings/Runner_Details/Runner_Details.json
index 9ce063fea..862b28035 100644
--- a/language/zh/www/Settings/Runner_Details/Runner_Details.json
+++ b/language/zh/www/Settings/Runner_Details/Runner_Details.json
@@ -2,6 +2,7 @@
"Building via Command Line":"通过命令行构建",
"Command Line Parameters":"命令行参数",
"Compiler Batch Files / Scripts":"编译器批处理文件/脚本",
+ "Compiler Optimisations":"编译器优化",
"The following pages expand on the topics mentioned above:":"以下几页展开了上述主题:",
"This section contains details on the runner and compiler, and how you can interact with them in various ways; such as building and testing your game via the command line, adding command line parameters before running your game and executing batch files at various stages of compilation.":"本节包含有关运行器和编译器的详细信息,以及如何以各种方式与它们进行交互;例如,通过命令行构建和测试游戏,在运行游戏之前添加命令行参数,以及在编译的各个阶段执行批处理文件。",
"YoYo Compiler":"YoYo 编译器",
diff --git a/language/zh/www/Settings/YoYo_Compiler.json b/language/zh/www/Settings/YoYo_Compiler.json
index 715c51a67..8421cfae9 100644
--- a/language/zh/www/Settings/YoYo_Compiler.json
+++ b/language/zh/www/Settings/YoYo_Compiler.json
@@ -1,6 +1,8 @@
{
+ "After that you can create the executable from {}The Build Menu{} as with the VM output.":"之后,您可以像虚拟机输出一样从 {} 构建菜单 {} 创建可执行文件。",
"After that you can create the executable from {}The Build Menu{} as with the VM output.":"之后,您可以像创建 VM 输出一样,从{}构建菜单{}创建可执行文件。",
"Building a project with YYC":"用 YYC 构建一个项目",
+ "For a general overview on this, see the following Help Center page: {}GameMaker Required SDKs{}.":"有关此内容的一般概述,请参阅以下帮助中心页面:{}GameMaker 所需的 SDK{}。",
"For a general overview on this, see the following Help Center page: {}GameMaker Required SDKs{}.":"有关此内容的一般概述,请参见以下帮助中心页: {}Gamemaker 必备 SDK {}。",
"If the path to the {}SDK{} wasn\u0027t configured correctly you may get an error like the following (the image shows the message on the Windows platform): ":"如果{} SDK {}的路径配置不正确,您可能会得到如下错误(例如下面显示 Windows 平台上的消息) :",
"In case the current runtime doesn\u0027t include the YYC module for the platform you want to build for you will be asked to install it first: ":"如果当前运行时没有包含为您构建的平台的 YYC 模块,将要求您首先安装该模块:",
@@ -10,6 +12,7 @@
"Once you have the {}SDK{}s set up correctly you can change the Output option for the selected platform to YYC: ":"一旦正确设置了{}SDK{},您就可以将所选平台的 Output 选项更改为 YYC:",
"Setting Up The SDK":"设置 SDK",
"The {}YoYo Compiler{} (YYC) is a special compiler for creating executable packages that use {}machine code{} instead of interpreted code and a runner (which is what the {}GameMaker{} VM compile uses). Compiled code is faster to run, but takes more time to compile the executable.":"{}YoYo 编译器{}(YYC)是一个特殊的编译器,用于创建使用{}机器代码{}而不是解释代码的可执行包和运行程序(这是{}GameMaker{} VM 编译所使用的)。编译后的代码运行速度更快,但编译可执行文件需要更多时间。",
+ "To verify that the paths have been set correctly for the selected platform, you can check the {}Platform Preferences{}.":"要验证所选平台的路径设置是否正确,您可以检查 {} 平台首选项 {}。",
"To verify that the paths have been set correctly for the selected platform, you can check the {}Platform Preferences{}.":"若要验证为所选平台正确设置了路径,可以检查{}平台首选项{}。",
"Your {}GameMaker{} licence may or may not include the YoYo Compiler. To find out, see the Help Center page {}Which Subscription Is Right For Me?{}.":"您的{}GameMaker{}许可证可能包含也可能不包含 YoYo 编译器。若要查找答案,请参见帮助中心页{}哪个订阅适合我?{}.",
"{}GameMaker{} needs to know the location of the files needed to build an executable on the selected platform. In case this hasn\u0027t been set up correctly, a compile error is shown.":"{} GameMaker {}需要知道在所选平台上构建可执行文件所需的文件位置。如果没有正确设置,则显示一个编译错误。",
diff --git a/language/zh/www/The_Asset_Editors/Code_Editor_Properties/Code_Snippets.json b/language/zh/www/The_Asset_Editors/Code_Editor_Properties/Code_Snippets.json
index dbd675c59..1a8a8b3dc 100644
--- a/language/zh/www/The_Asset_Editors/Code_Editor_Properties/Code_Snippets.json
+++ b/language/zh/www/The_Asset_Editors/Code_Editor_Properties/Code_Snippets.json
@@ -1,16 +1,28 @@
{
+ "A very handy tool you have at your disposal when editing your code is the use of {}Code Snippets{}.":"编辑代码时可以使用的一个非常方便的工具是使用 {} 代码片段 {}。",
"A very handy tool you have at your disposal when editing your code is the use of {}Code Snippets{}. When using the script editor, you can press {}F4{} to open the code snippet pop-up, which permits you to select one of the commonly used code methods from a list:":"编辑代码时使用的一个非常方便的工具是使用 {} 代码段 {}。使用脚本编辑器时,可以按 {}F4{} 打开代码段弹出窗口,该窗口允许您从列表中选择一种常用的代码方法:",
"After the colon you add the snippet of code":"在冒号之后添加代码片段",
+ "After the colon you add your snippet of code:":"在冒号之后添加代码片段:",
"All code is on a single line":"所有代码都在一行中",
"Code Snippets":"代码片段",
+ "Custom Snippets":"自定义片段",
"Each snippet has to be on a separate line (there should be no blank lines)":"每个代码段必须在一个单独的行上(不应该有空行)",
"Each snippet must start with the hotkey to be used followed by \"{}-{}\" and then the name of the snippet (which is what is shown in the menu) followed by a colon \"{}:{}\", eg:":"每个代码段必须以要使用的热键开始,后跟 \"{}-{}\",然后是代码段的名称 (菜单中显示的名称),后跟冒号 \"{}:{}\",例如:",
+ "Each snippet must start with the name of the snippet (which is what is shown in the menu) followed by a colon \"{}:{}\", e.g.:":"每个代码片段必须以代码片段的名称 (菜单中显示的内容) 开头,后跟冒号 \"{}:{}\",例如:",
+ "Hotkeys for your snippets can be assigned in the {}Redefine Keys Preferences{} under the \"Text Editor\" section. They will be created as unbound by default.":"您可以在 \" 文本编辑器 \" 部分下的 {} 重新定义键首选项 {} 中指定代码片段的热键。默认情况下,它们将被创建为未绑定。",
+ "In {}The Code Editor{}, code snippets are inserted through {}Code Completion{}. For example, writing {}for{} will show its snippet in the {}Candidate Window{}, and pressing {}enter{} will insert that snippet.":"在 {} 代码编辑器 {} 中,通过 {} 代码完成 {} 插入代码片段。例如,编写 {}for{} 将在 {} 候选窗口 {} 中显示其代码段,按 {}enter{} 将插入该代码段。",
+ "Inserting a snippet will highlight its first placeholder. After entering text into that placeholder, press {}tab{} to cycle through each placeholder until you have gone through all of them.":"插入片段将突出显示其第一个占位符。在该占位符中输入文本后,按 {}tab{} 循环浏览每个占位符,直到浏览完所有占位符。",
"Once the file is created in the User directory, you can edit it with any text editor following these rules:":"在 User 目录中创建文件后,您可以按照以下规则使用任何文本编辑器对其进行编辑:",
"See the examples that are already in the base snippets file to see how it is set up following the rules above. You can find the base file in the {}GameMaker{} install directory:":"请参阅基本代码段文件中已有的示例,了解如何按照上述规则进行设置。您可以在 {}GameMaker{} 安装目录中找到基础文件:",
"The code that you add must also follow a specific format where:":"您添加的代码还必须遵循以下特定格式:",
+ "These are pre-made blocks of code you can insert into your code at any time. A snippet can have {}placeholders{}, where you can insert expressions while entering the snippet.":"这些是预制的代码块,您可以随时插入到您的代码中。代码段可以包含 {} 占位符 {},您可以在输入代码段时在其中插入表达式。",
"This folder is {}not {}modified during any update to {}GameMaker{}, so your edited file will remain intact (but any edits to the base snippets file in the install directory will be reverted).":"在 {}GameMaker{} 的任何更新过程中 {} 不会 {} 修改此文件夹,因此您编辑的文件将保持不变 (但对安装目录中基本代码段文件的任何编辑都将恢复)。",
+ "Using Snippets":"使用片段",
+ "When using the {}Legacy Code Editor{}, you can press {}F4{} to open the code snippet pop-up:":"使用 {} 旧版代码编辑器 {} 时,您可以按 {}F4{} 打开代码段弹出窗口:",
"You can also define your own code snippets if you want to. Before doing this, you\u0027ll need to create a file called \"{}snippets.txt{}\" in one of the following directories:":"如果需要,也可以定义自己的代码片段。执行此操作之前,您需要在以下目录之一中创建名为 \"{}snippets.txt{}\" 的文件:",
+ "You put the placeholder text that needs to be highlighted between \"{}|{}\" symbols. The Code Editor will automatically select this text for editing when the snippet is added.":"您将需要突出显示的占位符文本放在 \"{}|{}\" 符号之间。添加代码片段后,代码编辑器将自动选择此文本进行编辑。",
"You put the text that needs to be highlighted between \"{}|{}\" symbols. The Code Editor will automatically select this text for editing when the snippet is added.":"您将需要突出显示的文本放在 \"{}|{}\" 符号之间。添加代码段时,代码编辑器将自动选择此文本进行编辑。",
"You use \"{}${}\" for a newline {} {}{}NOTE{} When creating multiple newlines, there needs to be a space between each \"{}${}\" sign. For example, you would write {}$ $ ${} to add three newlines.{} {} ":"您使用 \"{}${}\" 换行{}{}{}注意{} 创建多个新行时,每个 \"{}${}\" 符号之间需要有一个空格。例如,您可以写入 {}$$${} 以添加三条新行。{}{}",
- "{}From this window you can select with the mouse the snippet to use, or you can press the associated hotkey listed on the right. This will add the snippet to your code for editing.":"{}在此窗口中,您可以使用鼠标选择要使用的代码段,也可以按右侧列出的关联热键。这将把代码片段添加到您的代码中进行编辑。"
+ "{}From this window you can select with the mouse the snippet to use, or you can press the associated hotkey listed on the right. This will add the snippet to your code for editing.":"{}在此窗口中,您可以使用鼠标选择要使用的代码段,也可以按右侧列出的关联热键。这将把代码片段添加到您的代码中进行编辑。",
+ "{}Legacy Code Editor{}":"{} 旧版代码编辑器 {}"
}
\ No newline at end of file
diff --git a/language/zh/www/The_Asset_Editors/Code_Editor_Properties/Editing_Code.json b/language/zh/www/The_Asset_Editors/Code_Editor_Properties/Editing_Code.json
index 3df890d12..ca2a27957 100644
--- a/language/zh/www/The_Asset_Editors/Code_Editor_Properties/Editing_Code.json
+++ b/language/zh/www/The_Asset_Editors/Code_Editor_Properties/Editing_Code.json
@@ -7,6 +7,7 @@
"It is worth noting that you can {}comment {}your code in various ways. Commenting your code is very important for maintaining productivity as it keeps things clear and separates sections of code in such a way that it is obvious what each part does and why it is there. It also means that if you are working in a team then you can leave notes for other members and that they will know exactly what you have done or what a specific section of code is for. Even if you are a solo developer, leaving comments in your code is important, especially if you have to leave the project and come back to it at a later date.":"值得注意的是,您可以通过各种方式{}注释{}您的代码。注释代码对于保持工作效率非常重要,因为它可以使事情保持清晰,并以一种明显的方式分隔代码的各个部分,即每个部分的作用以及它存在的原因。它还意味着,如果您在一个团队中工作,那么您可以为其他成员留下注释,他们将确切知道您已经完成了哪些操作或代码的特定部分。即使您是一个单独的开发人员,在代码中留下注释也很重要,尤其是如果您必须离开项目并在稍后的日期返回到它。",
"The other options in this menu are to toggle a breakpoint for use with the {}Debugger{}, and to convert the GML code into GML Visual or vice versa. Note that if converting code to GML Visual, then it will {}not {}create individual actions for each line of code, but rather use a single code action to hold everything that was previously in the event or script.":"此菜单中的其他选项包括切换断点以便与 {} 调试器 {} 一起使用,以及将 GML 代码转换为 GML 可视化代码,反之亦然。请注意,如果将代码转换为 GML 可视化,则 {} 不会 {} 为每行代码创建单独的操作,而是使用单个代码操作来保存事件或脚本中以前的所有内容。",
"The last option for splitting into panes will split the actual window into different parts where you can then drag a script or event and have it show alongside the other ones for comparing and editing.":"用于拆分为窗格的最后一个选项将实际窗口拆分为不同的部分,然后您可以在其中拖动脚本或事件,并使其与其他窗格一起显示,以便进行比较和编辑。",
+ "When you start to use the Text Editor, it\u0027s simply a case of typing the code you want to have for the document, following the correct GML {}syntax{}. While you do this, you will get help from the {}auto-complete{} window:":"当您开始使用文本编辑器时,只需按照正确的 GML{} 语法 {} 输入文档所需的代码即可。当您执行此操作时,您将从 {} 自动完成 {} 窗口获得帮助:",
"When you start to use the script editor, it\u0027s simply a case of typing the code you want to have for the script asset or for the event, following the correct GML {}syntax{}. While you do this, you will get help from the {}auto-complete{} window:":"开始使用脚本编辑器时,只需按照正确的 GML{} 语法 {} 键入要用于脚本资源或事件的代码即可。执行此操作时,将从 {} 自动完成 {} 窗口获取帮助:",
"While using the code editor you can click {} and drag the mouse to select a row of code or hold down {} then click {} and drag to select columns of code. Anything selected in this way can then be {}copied{}, {}cut {}and {}pasted {}using the standard keyboard shortcuts of {} / {} + \" {}C{}\", {} / {} + \"{}X{}\" and {} / {} + \"{}V{}\".":"使用代码编辑器时,您可以单击 {} 并拖动鼠标以选择一行代码,或者按住 {},然后单击 {} 并拖动以选择代码列。然后可以使用 {}/{}+\"{}C{}\",{}/{}+\"{}X{}\" 和 {}/{}+\"{}V{}\" 的标准键盘快捷键 {3} 复制 {4}、{5} 剪切 {6} 和 {7} 粘贴 {8}以此方式选择的任何内容 。",
"You can also manually set code folding regions using the special {}#region{} tags to mark a section of code. How this works is that you add a {}#region{} tag (along with any comment text) to the top of a section of code and then add a corresponding {}#endregion{} tag to the bottom of the section and then you can \"fold\" the code, ie: hide it away so you can cut down on the number of lines of code visible in the editor at any one time:":"您还可以使用特殊 {}#region{} 标记手动设置代码折叠区域,以标记代码的一部分。其工作原理是,将 {}#region{} 标记 (以及任何注释文本) 添加到代码部分的顶部,然后将相应的 {}#endregion{} 标记添加到部分的底部,然后可以 \" 折叠 \" 代码,即:隐藏代码,以便可以随时减少编辑器中可见的代码行数:",
@@ -15,5 +16,6 @@
"{}Scripts can also have certain JSDoc style comments added to define the properties of the functions they contain so that when you use the functions in your code they show up in auto-complete along with their arguments and other details. You can find out more about this from the section {}JSDoc Script Comments{} for more information.":"{} 脚本还可以添加某些 JSDoc 样式的注释来定义它们包含的函数的属性,这样当您在代码中使用这些函数时,它们将以自动完成方式显示,同时显示它们的参数和其他详细信息。有关详细信息,您可以从章节 \"{}JSDoc 脚本注释{}\" 中了解有关此的详细信息。",
"{}The actual code looks something like this:":"{}实际代码类似于以下内容:",
"{}This is exceptionally useful for comparing two scripts or for viewing connected scripts at the same time, without needing another window or having to switch constantly between tabs.":"{}这对于比较两个脚本或同时查看连接的脚本非常有用,而不需要另一个窗口或不得不在选项卡之间不断切换。",
- "{}This window will pop up while you are writing your code (normally after a slight pause, but this can be set in the {}Preferences{}) and give you a selection of \"best-fit\" answers in alphabetical order.":"{}编写代码时将弹出此窗口(通常稍稍暂停一下,但可以在{}首选项{}中进行设置),并按字母顺序选择\"最佳匹配\"答案。"
+ "{}This window will pop up while you are writing your code (normally after a slight pause, but this can be set in the {}Preferences{}) and give you a selection of \"best-fit\" answers in alphabetical order.":"{}编写代码时将弹出此窗口(通常稍稍暂停一下,但可以在{}首选项{}中进行设置),并按字母顺序选择\"最佳匹配\"答案。",
+ "{}{}NOTE{}{} This page covers the {}Legacy Code Editor{} for {}Script assets{}. You can enable the new {}Code Editor{} from the {}preferences{}. Read about the {}editor here{}, and its {}code editing capabilities here{}.":"{}{} 注意 {}{} 本页介绍了 {} 脚本资源 {} 的 {} 旧版代码编辑器 {}。您可以从 {} 首选项 {} 启用新的 {} 代码编辑器 {}。了解 {} 此处的编辑器 {} 及其 {} 此处的代码编辑功能 {}。"
}
\ No newline at end of file
diff --git a/language/zh/www/The_Asset_Editors/Code_Editor_Properties/Editing_Text.json b/language/zh/www/The_Asset_Editors/Code_Editor_Properties/Editing_Text.json
new file mode 100644
index 000000000..928435751
--- /dev/null
+++ b/language/zh/www/The_Asset_Editors/Code_Editor_Properties/Editing_Text.json
@@ -0,0 +1,191 @@
+{
+ "All supported {}JSDoc identifiers{} (e.g. {}@desc{}, {}@param{}, {}@url{}, etc.)":"所有受支持的 {}JSDoc 标识符 {}( 例如 {}@desc{}、{}@param{}、{}@url{} 等)",
+ "Also see: Contextual options in {}The Edit Menu{}.":"另请参阅:{} 编辑菜单 {} 中的上下文选项。",
+ "Any {}{}{} brackets, {}begin ... end{}":"任何 {}{ }{} 括号、{} 开始 ... 结束 {}",
+ "Anything selected can be copied, cut{} {}or pasted{} {}using the standard keyboard shortcuts of {}{}CTRL/CMD + C{},{} {}{}CTRL/CMD + X{}{} and {}{}CTRL/CMD + V{}{}.":"使用标准键盘快捷键 {4}{5}CTRL/CMD + C{6}、{7}{8}{9}CTRL/CMD + X{10}{11} 和 {12}{13}CTRL/CMD + V{14}{15}{}{} 可以复制、剪切 {} 或粘贴 {} 任何选定内容。",
+ "As described on {}The Code Editor{}, some asset types contain {}documents{} within them. For example, Objects have {}events{}, Timelines have {}moments{}, and Shaders have {}fragment{} and {}vertex {}shaders, which are separate {}documents{} within an asset.":"如 {} 代码编辑器 {} 中所述,某些资产类型中包含 {} 文档 {}。例如,对象具有 {} 事件 {},时间轴具有 {} 时刻 {},着色器具有 {} 片段 {} 和 {} 顶点 {} 着色器,它们是资产内的独立 {} 文档 {}。",
+ "As multicursors are inserted, the last one becomes the active text cursor. When a navigation input clears the multicursor selection, this is the place where the single, active text cursor will be placed.":"插入多个光标后,最后一个光标将成为活动文本光标。当导航输入清除多光标选择时,这就是放置单个活动文本光标的位置。",
+ "Auto-Indent":"自动缩进",
+ "Auto-indentation is also supported for code pasted from the clipboard, which can be enabled from the {}preferences{}, with one of the following indent modes:":"从剪贴板粘贴的代码也支持自动缩进,可以通过以下缩进模式之一从 {} 首选项 {} 启用自动缩进:",
+ "By default, the editor will display all documents for the current asset at the same time, one after another. This can be disabled in the {}Code Editor Preferences{}.":"默认情况下,编辑器将同时显示当前资产的所有文档,一个接一个。可以在 {} 代码编辑器首选项 {} 中禁用此功能。",
+ "By default, the line your text cursor is on is highlighted. You can change this in the {}Code Editor Preferences{}.":"默认情况下,文本光标所在的行会突出显示。您可以在 {} 代码编辑器首选项 {} 中更改此设置。",
+ "Code Folding":"代码折叠",
+ "Code Selection":"代码选择",
+ "Comments started with {}BUG{}, {}TODO{} or {}HACK{}":"以 {}BUG{}、{}TODO{} 或 {}HACK{} 开头的评论",
+ "Contents":"内容",
+ "Context Menu":"上下文菜单",
+ "Document Manipulation":"文件操作",
+ "Documents & Headers":"文件及标头",
+ "Documents can also have JSDoc comments that define the properties of the functions they contain, so when you use the functions in your code they show up in auto-complete along with their arguments and other details. See {}JSDoc Comments{} for more information.":"文档还可以有 JSDoc 注释来定义它们所包含的函数的属性,因此当您在代码中使用这些函数时,它们会自动完成以及它们的参数和其他详细信息。请参阅 {}JSDoc 注释 {} 了解更多信息。",
+ "Editing GML":"编辑 GML",
+ "Escape codes in strings (e.g. {}\\n{}, {}\\\"{})":"字符串中的转义码 (例如 {}\\n{}、{}\\\"{})",
+ "Find & Replace":"查找 和 代替",
+ "Folding for these is only provided if the body is surrounded in {}{}{} brackets (multi-line)":"仅当正文被 {}{ }{} 括号 (多行) 包围时才提供折叠",
+ "Fonts that make use of ligatures for special characters (such as combined {}<={} or {}!={} operators) are supported as well (like {}JetBrains Mono{}). This has to be enabled from the {}Theme{} preferences.":"还支持使用特殊字符连字 (例如组合的 {}<={} 或 {}!={} 运算符) 的字体 (例如 {}JetBrains Mono{})。必须从 {} 主题 {} 首选项启用此功能。",
+ "For GML code completion features, see: {}Code Completion{}":"有关 GML 代码完成功能,请参阅:{} 代码完成 {}",
+ "For GML documents, the following parts are foldable:":"对于 GML 文档,以下部分是可折叠的:",
+ "For GML documents, the {}Code Editor{} will display either {}GML{} Code or {}GML Visual{} depending on the type of the document.":"对于 GML 文档,{} 代码编辑器 {} 将根据文档类型显示 {}GML{} 代码或 {}GML Visual{}。",
+ "For Objects and Timelines, since they won\u0027t have any documents to begin with, you will see this:":"对于对象和时间线,由于它们一开始就没有任何文档,因此您将看到以下内容:",
+ "For Objects, parent events will be displayed in child objects but will be greyed out unless they are overridden/inherited.":"对于对象,父事件将显示在子对象中,但除非被覆盖 / 继承,否则将显示为灰色。",
+ "For example, all events for an {}Object{} or both {}Shader{} files are displayed within the same editor:":"例如,{}Object{} 或两个 {}Shader{} 文件的所有事件都显示在同一编辑器中:",
+ "For more information, see {}Parent Objects{}.":"如需了解更多信息,请参阅 {} 父对象 {}。",
+ "From the {}Code Editor Preferences{}, you can choose to use spaces or tabs for indentation (i.e. what is inserted when you press {}tab{} in a document).":"在 {} 代码编辑器首选项 {} 中,您可以选择使用空格或制表符进行缩进 (即在文档中按 {} 制表符 {} 时插入的内容)。",
+ "Further Reading":"进一步阅读",
+ "Guides":"指南",
+ "Here are some basic inputs for manipulating a document:":"以下是操作文档的一些基本输入:",
+ "Highlighting":"突出显示",
+ "Hyperlinks in comments and strings":"注释和字符串中的超链接",
+ "If the text cursor is on a {}break{} or a {}continue{}, the parent loop or statement ({}for{}, {}while{} or {}case{}) is highlighted":"如果文本光标位于 {}break{} 或 {}continue{} 上,则父循环或语句 ({}for{}、{}while{} 或 {}case{}) 会突出显示",
+ "If you have text selected, other occurrences of the selected string are highlighted":"如果您选择了文本,则所选字符串的其他出现位置将突出显示",
+ "In Replace mode, a second text field allows you to enter a string of text to replace search results with. This mode contains the following buttons:":"在替换模式下,第二个文本字段允许您输入文本字符串来替换搜索结果。该模式包含以下按钮:",
+ "Indentation Modes":"压痕模式",
+ "Initials of symbol names are also accepted (like {}mgc{} above showing {}mp_grid_c...{} functions). For other features when editing GML Code, see {}Code Completion{}.":"也接受符号名称的首字母 (如上面显示 {}mp_grid_c...{} 函数的 {}mgc{})。有关编辑 GML 代码时的其他功能,请参阅 {} 代码完成 {}。",
+ "Inserting a new line will auto-indent the next line where appropriate (e.g. after starting an {}if{} statement).":"插入新行将在适当的情况下自动缩进下一行 (例如,在启动 {}if{} 语句后)。",
+ "International Support (RTL)":"国际支持 (RTL)",
+ "It will also highlight matching occurrences when you have your text cursor on a symbol. For example:":"当您将文本光标放在符号上时,它还会突出显示匹配的事件。例如:",
+ "Multi-line comments ({}///{}, {}/* ... */{})":"多行注释 ({}///{}、{}/* ... */{})",
+ "Multicursor":"多光标",
+ "Navigation Between Documents":"文档之间的导航",
+ "Note that if you want to do a {}global{} {}search{} (i.e.: search the whole project rather than the currently open documents), then you can press {}CTRL/CMD + SHIFT + F{}.":"请注意,如果您想要执行 {} 全局 {}{} 搜索 {}( 即:搜索整个项目而不是当前打开的文档),则可以按 {}CTRL/CMD + SHIFT + F{}。",
+ "Other occurrences of the word beneath your text cursor will be highlighted":"文本光标下方出现的其他单词将突出显示",
+ "Parent View":"父视图",
+ "Part of this is covered under {}Code Completion{}.":"其中部分内容包含在 {} 代码完成 {} 中。",
+ "Press {}CTRL/CMD + F{} to open this window in Find mode, and {}CTRL/CMD + H{} to open it in Replace mode.":"按 {}CTRL/CMD + F{} 可在查找模式下打开此窗口,按 {}CTRL/CMD + H{} 可在替换模式下打开此窗口。",
+ "Press {}CTRL/CMD + R{} to rename the selected identifier":"按 {}CTRL/CMD + R{} 重命名所选标识符",
+ "Rainbow Brackets":"彩虹括号",
+ "Rainbow Brackets are {}enabled by default{}. This colours each pair of brackets at a level ({}{}{}, {}(){}, {}[]{}, {}[? ]{}, {}[| ]{}, {}begin{}, {}end{}, etc.) with the same colour, making it easier to identify where a block begins and ends.":"彩虹括号{} 默认启用 {}。这会为某个级别的每对括号着色 ({}{ }{},{}(){},{}[]{},{}[? ]{},{}[| ]{},{}begin{}、{}end{} 等) 使用相同的颜色,从而更容易识别块的开始和结束位置。",
+ "Regions ({}#region ... #endregion{})":"区域 ({}#region ... #endregion{})",
+ "Rendering":"渲染",
+ "Right-clicking anywhere within the Editor will show you the following options:":"右键单击编辑器中的任意位置将显示以下选项:",
+ "See: {}Code Completion{}":"请参阅:{} 代码完成 {}",
+ "Text Cursor Location History":"文本光标位置历史记录",
+ "Text Cursor Navigation":"文本光标导航",
+ "Text Highlighting":"文本突出显示",
+ "The \"{}Detect Tab Type{}\" preference, enabled by default, makes the editor use whichever indentation mode the currently open document is using, overriding the mode set in preferences. This is useful for ensuring consistency within a document, regardless of overall project-level consistency.":"默认情况下启用的 \"{} 检测选项卡类型 {}\" 首选项使编辑器使用当前打开的文档所使用的缩进模式,并覆盖首选项中设置的模式。无论整体项目级别的一致性如何,这对于确保文档内的一致性很有用。",
+ "The \"{}Tab Size{}\" preference determines how long your indentation tabs are. When using spaces for indentation, pressing {}TAB{} will insert this number of spaces. When using tabs, it will insert one tab character which appears as long as the number of spaces set in \"{}Tab Size{}\".":"\"{} 制表符大小 {}\" 首选项决定缩进制表符的长度。使用空格进行缩进时,按 {}TAB{} 将插入此数量的空格。使用制表符时,它将插入一个制表符,该字符的长度与 \"{} 制表符大小 {}\" 中设置的空格数一样长。",
+ "The Find & Replace window lets you search for text within all open documents in an Editor window, and optionally replace occurrences with a new string of text.":"寻找与发现替换窗口允许您在编辑器窗口中的所有打开的文档中搜索文本,并可以选择用新的文本字符串替换出现的内容。",
+ "The document header for such events will display a menu, where you can choose to open the original event for editing, inherit the event or override it:":"此类事件的文档标题将显示一个菜单,您可以在其中选择打开原始事件进行编辑、继承事件或覆盖它:",
+ "The exception to this are switch statements and their cases, which do not require brackets for folding":"switch 语句及其 case 是个例外,它们不需要括号来折叠",
+ "The following inputs can be used for navigating with the text cursor:":"以下输入可用于使用文本光标进行导航:",
+ "The following inputs make use of this functionality:":"以下输入利用了此功能:",
+ "The other end of a bracket pair ({}[]{}, {}{}{}, {}(){}, or {}begin...end{}) is highlighted":"括号对的另一端 ({}[]{}、{}{ }{}、{}(){} 或 {}begin...end{}) 突出显示",
+ "The rest of this page will cover editing text-based documents, i.e. anything that is not {}GML Visual{}.":"本页的其余部分将介绍编辑基于文本的文档,即任何非 {}GML Visual{} 的文档。",
+ "The text cursor\u0027s actions are limited to the current document, even when multiple documents are visible at once, so something like selecting text via keyboard navigation will not continue the selection into the next/previous document.":"即使同时显示多个文档,文本光标的操作也仅限于当前文档,因此通过键盘导航选择文本之类的操作不会继续选择下一个 / 上一个文档。",
+ "The text cursor\u0027s location is logged in the history when you modify text on a new line, or use {}Go To Declaration{}. You can navigate this history to restore the text cursor\u0027s location using the following shortcuts:":"当您修改新行上的文本或使用 {} 转到声明 {} 时,文本光标的位置会记录在历史记录中。您可以使用以下快捷键导航此历史记录以恢复文本光标的位置:",
+ "The {}Code Editor{} supports multiple text cursors at once, in a single document, allowing you to insert text in multiple places.":"{} 代码编辑器 {} 支持在单个文档中同时使用多个文本光标,允许您在多个位置插入文本。",
+ "The {}Code Editor{} will open when you create an asset that requires it (e.g. Objects, Scripts, Shaders, etc.).":"当您创建需要它的资源 (例如对象、脚本、着色器等) 时,{} 代码编辑器 {} 将会打开。",
+ "The {}Code Editor{} supports right-to-left text.":"{} 代码编辑器 {} 支持从右到左的文本。",
+ "There are some handy shortcuts for document navigation:":"有一些方便的文档导航快捷方式:",
+ "This section covers how the {}Code Editor{} renders parts of your code.":"本部分介绍 {} 代码编辑器 {} 如何呈现部分代码。",
+ "This section covers navigating with the text cursor.":"本节介绍如何使用文本光标进行导航。",
+ "This window contains the following buttons:":"该窗口包含以下按钮:",
+ "Tooltips":"工具提示",
+ "Tooltips appear when hovering over part of your code that is either highlighted by diagnostics, or is a keyword that has documentation (for custom functions, {}JSDoc{} information is shown).":"将鼠标悬停在通过诊断突出显示的代码部分或包含文档的关键字 (对于自定义函数,会显示 {}JSDoc{} 信息) 时,会出现工具提示。",
+ "Upon pasting code into the editor which contains leading whitespace, that whitespace will be converted into your selected indentation mode, e.g. you insert a line starting with 6 spaces, and you are using tab characters with a \"{}Tab Size{}\" of 4, then the first 4 spaces in the pasted line will become a tab character and the rest 2 will remain spaces (as there are not enough to be converted into a tab character).":"将包含前导空格的代码粘贴到编辑器中后,该空格将转换为您选择的缩进模式,例如您插入以 6 个空格开头的行,并且使用 \"{} 制表符大小 {}\" 为 4 的制表符,则粘贴行中的前 4 个空格将成为制表符,其余 2 个空格仍为空格 (因为没有足够的字符可以转换为制表符)。",
+ "When all documents are displayed in the same editor, you can easily navigate between them by scrolling or using the {}Vertical Scrollbar{}.":"当所有文档都显示在同一编辑器中时,您可以通过滚动或使用 {} 垂直滚动条 {} 轻松地在它们之间导航。",
+ "When scrolling down into a document, its header will stick to the top so you can see the name of the document. This can be disabled from the {}Preferences{}.":"向下滚动到文档时,其标题将粘在顶部,以便您可以看到文档的名称。可以从 {} 首选项 {} 中禁用此功能。",
+ "While a selection is active, you can:":"当选择处于活动状态时,您可以:",
+ "While writing code you will get syntax highlighting and auto-complete for the language you are currently editing.":"在编写代码时,您将获得当前正在编辑的语言的语法突出显示和自动完成功能。",
+ "Whitespace guides can also be enabled, which will render spaces as dots and tab characters as horizontal lines.":"还可以启用空白参考线,这会将空格渲染为点,将制表符渲染为水平线。",
+ "Writing Code":"编写代码",
+ "You can also enable sticky Statement Headers, so the initial lines for foldable regions stick to the top while they\u0027re visible.":"您还可以启用粘性语句标题,因此可折叠区域的初始行在可见时会粘在顶部。",
+ "You can change these colours in the {}Feather{} settings. Read more about errors on {}Syntax Errors (Feather Messages){}.":"您可以在 {} 羽化 {} 设置中更改这些颜色。有关错误的更多信息,请参阅 {} 语法错误 (Feather 消息 ){}。",
+ "You can have your text cursor at the last line of your event, and press the {}down arrow key{} to move to the first line of the next event document.":"您可以将文本光标置于事件的最后一行,然后按 {} 向下箭头键 {} 移至下一个事件文档的第一行。",
+ "You can right-click on a Document Header for options that are specific to the opened asset. For Object Events, the options shown are the same as those for an event\u0027s context menu, which are documented on {}Object Events{}.":"您可以右键单击文档标题以获取特定于打开的资产的选项。对于对象事件,显示的选项与事件上下文菜单的选项相同,这些选项记录在 {} 对象事件 {} 中。",
+ "You can select parts of your text using the following inputs:":"您可以使用以下输入选择部分文本:",
+ "{}: Enabling this will allow you to enter a {}Regular Expression{} into the search field, giving you more flexibility in searching for text.":"{}:启用此选项将允许您在搜索字段中输入 {} 正则表达式 {},从而使您可以更灵活地搜索文本。",
+ "{}: This filters the search so only occurrences that match the exact case of the input string are shown. For example, if you have a sprite called \"{}spr_Dog{}\" and do a search for \"dog\" with this toggle {}off{}, then the sprite string will be highlighted, however if the toggle is {}on {}then it won\u0027t since \"Dog\" is no longer considered the same as \"dog\".":"{}:这会过滤搜索,以便仅显示与输入字符串的大小写完全匹配的匹配项。例如,如果您有一个名为 \"{}spr_Dog{}\" 的精灵,并在 {} 关闭 {} 此开关的情况下搜索 \"dog\",则该精灵字符串将会突出显示,但如果此开关 {} 开启 { } 那么就不会了,因为 \"Dog\" 不再被认为与 \"dog\" 相同。",
+ "{}: This toggles Replace Mode.":"{}:这会切换替换模式。",
+ "{}: This will highlight the next search occurrence.":"{}:这将突出显示下一个搜索事件。",
+ "{}: This will highlight the previous search occurrence.":"{}:这将突出显示之前的搜索结果。",
+ "{}: When enabled, the search will only highlight those strings that match the whole input string. For example, with it turned off, a search for \"{}random{}\" will show all words that contain this string - like {}irandom(){}, or {}randomise(){} - while enabling it would only show the function {}random(){}.":"{}:启用后,搜索将仅突出显示与整个输入字符串匹配的那些字符串。例如,关闭该功能后,搜索 \"{}random{}\" 将显示包含该字符串的所有单词 - 例如 {}irandom(){} 或 {}randomise(){}- 而启用它只会显示显示函数 {}random(){}。",
+ "{}: Clicking this will replace the next search string found in the document with the given replace string. Note that the \"next\" term is considered the next one after the current cursor position.":"{}:单击此按钮会将文档中找到的下一个搜索字符串替换为给定的替换字符串。请注意,\"下一个 \" 术语被认为是当前光标位置之后的下一个术语。",
+ "{}: Clicking this will replace {}all {}examples of the search string within the document using the given replace string.":"{}:点击此按钮将使用给定的替换字符串替换文档中搜索字符串的所有示例。{}",
+ "{}ALT/OPT + LMB{}: Move the cursor to the line/column under the mouse in box selection mode":"{}ALT/OPT + LMB{}:在框选模式下将光标移动到鼠标下方的行 / 列",
+ "{}ALT/OPT + SHIFT + LEFT/RIGHT{}: Extend box selection left/right":"{}ALT/OPT + SHIFT + LEFT/RIGHT{}:向左 / 向右扩展框选择",
+ "{}ALT/OPT + SHIFT + UP/DOWN{}: Insert a multicursor on the previous/next line if none exist, extending the box selection":"{}ALT/OPT + SHIFT + 向上 / 向下 {}:在上一行 / 下一行中插入多光标 (如果不存在),从而扩展框选择",
+ "{}ALT/OPT + UP/DOWN{}: Move the text cursor to the previous/next document":"{}ALT/OPT + 向上 / 向下 {}:将文本光标移至上一个 / 下一个文档",
+ "{}Arrow keys{}: Move the text cursor left/right/up/down":"{} 箭头键 {}:左 / 右 / 上 / 下移动文本光标",
+ "{}Braces{}: In addition to the previous behaviour, blocks beginning with {}{{}, {}({}, {}[{} or {}begin{} are indented.":"{} 大括号 {}:除了之前的行为之外,以 {}{{}、{}({}、{}[{} 或 {}begin{} 开头的块会缩进。",
+ "{}CTRL/CMD + ALT + UP/DOWN{}: Move the text cursor to the previous/next region within the active document":"{}CTRL/CMD + ALT + 向上 / 向下 {}:将文本光标移动到活动文档中的上一个 / 下一个区域",
+ "{}CTRL/CMD + ALT/OPT + HOME/END{}: Go to the first or last line among all the open documents.":"{}CTRL/CMD + ALT/OPT + HOME/END{}:转到所有打开的文档中的第一行或最后一行。",
+ "{}CTRL/CMD + ALT/OPT + LEFT/RIGHT{}: When text is selected, it searches the document for all substrings of the selected text, and places multicursors at the beginning/end of all occurrences":"{}CTRL/CMD + ALT/OPT + LEFT/RIGHT{}:选择文本时,它会在文档中搜索所选文本的所有子字符串,并将多光标放置在所有匹配项的开头 / 结尾处",
+ "{}CTRL/CMD + HOME/END{}: Go to the first or last line of the active document.":"{}CTRL/CMD + HOME/END{}:转到活动文档的第一行或最后一行。",
+ "{}CTRL/CMD + HOME/END{}: Move the text cursor to the start or end of the active document":"{}CTRL/CMD + HOME/END{}:将文本光标移动到活动文档的开头或结尾",
+ "{}CTRL/CMD + LEFT/RIGHT{}: Move left/right by one word boundary (a word is defined as {}alphanumeric_.{})":"{}CTRL/CMD + 左 / 右 {}:向左 / 右移动一个单词边界 (单词定义为 {} 字母数字_.{})",
+ "{}CTRL/CMD + MINUS{}: Move the text cursor back one entry in the {}Text Cursor Location History{}, which is shared among editors, including editors that have been closed. Closed editors will be restored when needed. Multicursor locations are ignored.":"{}CTRL/CMD + 减号 {}:将文本光标移回 {} 文本光标位置历史记录 {} 中的一个条目,该历史记录在编辑器 (包括已关闭的编辑器) 之间共享。关闭的编辑器将在需要时恢复。多光标位置将被忽略。",
+ "{}CTRL/CMD + SHIFT + MINUS{}: Move the text cursor forward one entry in the {}Text Cursor Location History{}.":"{}CTRL/CMD + SHIFT + MINUS{}:将文本光标在 {} 文本光标位置历史记录 {} 中向前移动一个条目。",
+ "{}CTRL/CMD + UP/DOWN{}: Scroll the view up/down by 1 line":"{}CTRL/CMD + 向上 / 向下 {}:将视图向上 / 向下滚动 1 行",
+ "{}CTRL/CMD + {{}: {}Move the Text Cursor to the matching brace under the text cursor, toggling between opening and closing brace. If the text cursor is not currently under a brace, but is inside of a braced region, the text cursor is moved to the opening brace; otherwise nothing happens.{}":"{}CTRL/CMD +{{}:{} 将文本光标移动到文本光标下的匹配大括号,在左大括号和右大括号之间切换。如果文本光标当前不在大括号下,而是在大括号区域内,则文本光标将移动到左大括号 ; 否则什么也不会发生。{}",
+ "{}Click and drag with LMB{}: Move the selected text to a new position":"{} 使用 LMB 单击并拖动 {}:将所选文本移动到新位置",
+ "{}Code will also be highlighted by \"diagnostic squiggles\", lines appearing under the offending part of code. There are three types of squiggles:":"{} 代码还将通过 \" 诊断波形曲线 \" 突出显示,这些线条出现在有问题的代码部分下方。波浪线分为三种类型:",
+ "{}Convert case to...{} ({}when text is selected{}) {} {}{}UPPERCASE{}{} {}({}CTRL/CMD + SHIFT + U{}): Converts selected text to {}UPPERCASE{}{} {}{}lowercase {}({}CTRL/CMD + U{}){}:{} Converts selected text to {}lowercase{}{} {}{}Proper Case {}({}ALT/OPT + U{}): Converts selected text to {}Proper Case{}{} {}{}Sentence case {}({}CTRL/CMD + ALT + U{}): Converts selected text to {}Sentence case{}{} {}{}iNVERTED:{} Converts selected text to {}iNVERTED cASE{} where uppercase characters are converted to lowercase and vice versa{} {}{}rAndOM cAse:{} Converts selected text to random casing{} {} ":"{} 将大小写转换为 ...{}({} 选择文本时 {}){}{}{} 大写 {}{}{}({}CTRL/CMD + SHIFT + U{}):转换所选文本转换为 {} 大写 {}{}{}{} 小写 {}({}CTRL/CMD + U{}){}:{} 将所选文本转换为 {} 小写 {}{}{}{} 正确大小写 {}({}ALT/OPT + U{}):将所选文本转换为 {} 正确大小写 {}{}{}{} 句子大小写 {}({}CTRL/CMD + ALT + U{}):将所选文本转换为 {} 句子大小写 {}{}{}{}iNVERTED:{} 将所选文本转换为 {}iNVERTED CASE{},其中大写字符转换为小写,反之亦然 {}{}{}rAndOM cAse:{} 转换所选文本随机大小写 {}{}",
+ "{}Copy{} ({}CTRL/CMD + C){}: Copy the selected text, or the whole line when no text is selected":"{} 复制 {}({}CTRL/CMD + C){}:复制所选文本,或在未选择任何文本时复制整行",
+ "{}Cut{} ({}CTRL/CMD + X{}): Cut the selected text, or the whole line when no text is selected":"{} 剪切 {}({}CTRL/CMD + X{}):剪切所选文本,或在未选择任何文本时剪切整行",
+ "{}Drag an asset from the Asset Browser into the {}Code Editor{}{}: This will replace the selected text with the name of the asset":"{} 将资源从资源浏览器拖动到 {} 代码编辑器 {}{}:这会将所选文本替换为资源名称",
+ "{}END{}: Move the text cursor to the end of the line.":"{}END{}:将文本光标移至行尾。",
+ "{}ESCAPE{}: Clear multicursors if any are set":"{}ESCAPE{}:清除多光标 (如果设置了)",
+ "{}Each document begins with a \"header\", e.g. where it says \"{}Create{}\" before the contents of the Create event above, or \"{}Vertex Shader{}\" in the Shader asset. You can press {} next to it in the {}Gutter{} (on the left-hand side) to collapse that document.":"{} 每个文档都以 \" 标头 \" 开头,例如其中在上面的 Create 事件的内容之前显示 \"{}Create{}\",或者在 Shader 资源中显示 \"{}Vertex Shader{}\"。您可以在 {} 装订线 {}( 左侧) 中按其旁边的 {} 以折叠该文档。",
+ "{}Editing Code{}":"{} 编辑代码 {}",
+ "{}Edit{}: {} {}{}Tab In {}({}TAB{}): Tab the current line{} {}{}Tab Out {}({}SHIFT + TAB{}): Untab the current line{} {}{}Comment {}({}CTRL/CMD + K{}): Comment line{} {}{}Uncomment {}({}CTRL/CMD + SHIFT + K{}): Uncomment line{} {}{}Duplicate{}{} {}({}CTRL/CMD + D{}): Duplicate the current line{} {}{}Join Lines {}({}CTRL/CMD + J{}): Joins current line and next line{} {}{}Sort lines alphanumerically:{} Sorts the selected lines alphanumerically, only shows when there is a valid selection{} {} ":"{} 编辑 {}:{}{}{} 按 Tab 键进入 {}({}TAB{}):按 Tab 键切换当前行 {}{}{} 按 Tab 键退出 {}({}SHIFT + TAB{}):取消按 Tab 键当前行 {}{}{} 注释 {}({}CTRL/CMD + K{}):注释行 {}{}{} 取消注释 {}({}CTRL/CMD + SHIFT + K{}):取消注释行 {}{}{} 复制 {}{}{}({}CTRL/CMD + D{}):复制当前行 {}{}{} 连接行 {}({}CTRL/CMD + J{}) :连接当前行和下一行 {}{}{} 按字母数字顺序对行进行排序:{} 按字母数字顺序对所选行进行排序,仅在存在有效选择时显示 {}{}",
+ "{}Error{}: These appear in a red colour":"{} 错误 {}:它们显示为红色",
+ "{}Find Usages{} ({}Shift + F1{}): Finds all usages of the identifier and displays them in the Search Results window":"{} 查找用法 {}({}Shift + F1{}):查找标识符的所有用法并将其显示在搜索结果窗口中",
+ "{}For more features that assist with code writing, see {}Code Completion{}.":"{} 如需了解更多有助于代码编写的功能,请参阅 {} 代码完成 {}。",
+ "{}Full{}: In addition to the previous behaviour, rules from the document\u0027s language are also applied (e.g. for GML, {}switch{} cases will be intended, etc.)":"{} 完整 {}:除了之前的行为之外,还应用文档语言的规则 (例如,对于 GML,将采用 {}switch{} 情况等)",
+ "{}Function{} declarations":"{} 函数 {} 声明",
+ "{}Go To Declaration{} ({}F1{}): Navigates to the identifier\u0027s declaration (or manual entry, in case of a built-in GML identifier)":"{} 转到声明 {}({}F1{}):导航至标识符的声明 (或手动输入,如果是内置 GML 标识符)",
+ "{}HOME{}: Move the text cursor to the start of the first non-whitespace character on the line, when pressed again it moves the text cursor to the true start of the line. Continuous pressing toggles between these two positions.":"{}HOME{}:将文本光标移动到行中第一个非空白字符的开头,再次按下时,会将文本光标移动到行的真正开头。连续按下可在这两个位置之间切换。",
+ "{}Indentation guides are enabled by default, and appear as vertical lines, which can be disabled from the {}preferences{}.":"{} 缩进参考线默认处于启用状态,并显示为垂直线,可以从 {} 首选项 {} 中禁用。",
+ "{}Indent{} the line(s) with {}{}Tab{}{} and {}reverse-indent{} with {}{}Shift + Tab{}{}":"使用 {}{} Tab {}{}{} 缩进{} 行,并使用 {}{}Shift + Tab{}{}{} 反向缩进 {}",
+ "{}Insert...{}: {} {}{}UUID:{} A random{} {}{}UUIDv4{}{} {}in{} {}{}{}00000000-0000-0000-0000-000000000000{} format, replacing any selected text{}{} {}{}The options below appear only when text is selected:{} {} {}{}MD5:{} Hashes and replaces selected text with the MD5 algorithm{} {}{}SHA1:{} Hashes and replaces selected text with the SHA1 algorithm{} {}{}SHA256:{} Hashes and replaces selected text with the SHA256 algorithm{} {}{}To Base 64:{} Converts selected text to base64 encoded text{} {}{}From Base 64:{} Converts selected text from base64 encoded text. If the selected text is not a valid base64 string then nothing happens.{} {} {} {} ":"{} 插入 ...{}:{}{}{}UUID:{} 随机 {}{}{}UUIDv4{}{} 在 {}{}{}{}00000000-0000-0000-0000 中 -000000000000{} 格式,替换任何选定的文本 {}{}{}{} 以下选项仅在选择文本时出现:{}{}{}{}MD5:{} 使用 MD5 算法散列并替换选定的文本 { }{}{}SHA1:{} 使用 SHA1 算法散列并替换所选文本 {}{}{}SHA256:{} 使用 SHA256 算法散列并替换所选文本 {}{}{} 转为 Base 64:{} 转换所选文本为 Base64 编码文本 {}{}{} 从 Base 64:{} 将所选文本从 Base64 编码文本转换。如果所选文本不是有效的 Base64 字符串,则不会发生任何事情。{}{}{}{}",
+ "{}Keep{}: The current line\u0027s indentation is copied to new lines":"{} 保留 {}:将当前行的缩进复制到新行",
+ "{}LMB{}: Move the text cursor to the mouse position":"{}LMB{}:将文本光标移动到鼠标位置",
+ "{}Navigation Between Documents{}":"{} 文档之间的导航 {}",
+ "{}None{}: No indentation is inserted by the editor":"{} 无 {}:编辑器不插入缩进",
+ "{}PAGE UP/PAGE DOWN{}: Move the text cursor up or down a full page (i.e. the number of lines visible in the editor), limited to the active document":"{}PAGE UP/PAGE DOWN{}:将文本光标向上或向下移动整页 (即编辑器中可见的行数),仅限于活动文档",
+ "{}Paste{} ({}CTRL/CMD + V{}): Paste text, replacing any selected text":"{} 粘贴 {}({}CTRL/CMD + V{}):粘贴文本,替换任何选定的文本",
+ "{}Preview Declaration{} ({}ALT + F1{}): Previews the identifier\u0027s declaration (or manual entry, in case of a built-in GML identifier)":"{} 预览声明 {}({}ALT + F1{}):预览标识符的声明 (或手动输入,如果是内置 GML 标识符)",
+ "{}Refactor Identifier{} ({}CTRL/CMD + R{}): Rename the identifier":"{} 重构标识符 {}({}CTRL/CMD + R{}):重命名标识符",
+ "{}Regions{}: {} {}{}Fold All Regions{} ({}CTRL/CMD + M{}): Fold all the regions in the document{} {}{}Unfold All Regions{} ({}CTRL/CMD + U{}): Unfold all regions in the document{} {}{}Fold/Unfold region{} ({}CTRL/CMD + ENTER{}): Fold/unfold the region at the text cursor{} {} ":"{} 区域 {}:{}{}{} 折叠所有区域 {}({}CTRL/CMD + M{}):折叠文档中的所有区域 {}{}{} 展开所有区域 {}({}CTRL/CMD + U{}):展开文档中的所有区域 {}{}{} 折叠 / 展开区域 {}({}CTRL/CMD + ENTER{}):折叠 / 展开文本光标处的区域 {}{}",
+ "{}Select All{} ({}CTRL/CMD + A{}): Select all text in the document":"{} 全选 {}({}CTRL/CMD + A{}):选择文档中的所有文本",
+ "{}Suggestion{}: These appear in a blue colour":"{} 建议 {}:它们显示为蓝色",
+ "{}The rightmost button in the {}Horizontal Scrollbar{} allows you to switch between {}GML Code{} and {}GML Visual{}.":"{} 通过 {} 水平滚动条 {} 中最右侧的按钮,您可以在 {}GML Code{} 和 {}GML Visual{} 之间切换。",
+ "{}The text field allows you to enter a string of text to search for in the document(s), and contains a drop-down menu that display your past searches (limited to the current session of the IDE, however shared by all editor windows).":"{} 文本字段允许您输入要在文档中搜索的文本字符串,并包含一个下拉菜单,用于显示您过去的搜索 (仅限于 IDE 的当前会话,但由所有编辑器共享) 视窗)。",
+ "{}The {}Code Editor{} will highlight parts of your text:":"{}{} 代码编辑器 {} 将突出显示部分文本:",
+ "{}These options are explained below:":"{} 这些选项的说明如下:",
+ "{}This {}Candidate Window{} will pop up while you are writing your code (normally after a slight pause, but this can be set in the {}Preferences{}) and give you a selection of \"best-fit\" answers in alphabetical order, followed by close suggestions.":"{} 在您编写代码时 (通常会稍作停顿,但这可以在 {} 首选项 {} 中进行设置),此 {} 候选窗口 {} 将会弹出,并为您提供 \" 最适合 \" 答案的选择按字母顺序排列,然后是密切的建议。",
+ "{}Tooltips{}":"{} 工具提示 {}",
+ "{}Warning{}: These appear in a yellow colour":"{} 警告 {}:它们显示为黄色",
+ "{}You can change these colours in a {}Theme{} and also define colours for deeper levels.":"{} 您可以在 {} 主题 {} 中更改这些颜色,也可以定义更深层次的颜色。",
+ "{}You can click on the \"{}Create [Document]{}\" button to create your first document (in this example, clicking on \"{}Create Event{}\" would open the {}Events{} menu as it is an object).":"{} 您可以点击 \"{}Create [Document]{}\" 按钮来创建您的第一个文档 (在此示例中,点击 \"{}Create Event{}\" 将打开 {}Events{} 菜单,因为它是一个东西)。",
+ "{}backspace{}: Deletes a single character at the text cursor\u0027s position. If at the start of a line, the newline is deleted and the text cursor is moved to the end of the previous line. {}If the \"Auto insert braces\" feature is enabled and the erased character is an initiating brace and the next character is a terminating brace, then both braces are deleted.{}":"{} 退格键 {}:删除文本光标位置处的单个字符。如果位于行首,则删除换行符,并将文本光标移动到上一行的末尾。{} 如果启用 \" 自动插入大括号 \" 功能,并且擦除的字符是起始大括号,下一个字符是终止大括号,则两个大括号都会被删除。{}",
+ "{}ctrl/CMD + c{} or {}ctrl + insert{}: {}If text is selected then the selected text is copied to the OS clipboard. If no text is selected and the line is not empty, then the whole line is copied. If no text is selected and the line is only whitespace or empty then nothing is copied to the OS clipboard.{}":"{}ctrl/CMD + c{} 或 {}ctrl + insert{}:{} 如果选择文本,则所选文本将复制到操作系统剪贴板。如果未选择任何文本且该行不为空,则复制整行。如果未选择任何文本且该行仅为空格或空,则不会将任何内容复制到操作系统剪贴板。{}",
+ "{}ctrl/CMD + d{}: Duplicates the current line or the selected lines.":"{}ctrl/CMD + d{}:复制当前行或所选行。",
+ "{}ctrl/CMD + j{}: Joins the current line with the next line, deleting the newline character at the end of the current line.":"{}ctrl/CMD + j{}:将当前行与下一行连接起来,删除当前行末尾的换行符。",
+ "{}ctrl/CMD + v{} or {}shift + insert{}: {}Inserts text from the OS clipboard at the text cursor\u0027s position (if text is in the OS clipboard).{}":"{}ctrl/CMD + v{} 或 {}shift + insert{}:{} 将操作系统剪贴板中的文本插入到文本光标位置 (如果文本位于操作系统剪贴板中)。{}",
+ "{}ctrl/CMD + x{} or {}shift + delete{}: {}If text is selected then the selected text is deleted and copied to the OS clipboard. If no text is selected and the line is not empty, then the whole line is deleted and copied to the OS clipboard. If no text is selected and the line is only whitespace or empty then the line is still deleted but nothing is copied to the clipboard.{}":"{}ctrl/CMD + x{} 或 {}shift + delete{}:{} 如果选择文本,则所选文本将被删除并复制到操作系统剪贴板。如果未选择任何文本且该行不为空,则整行将被删除并复制到操作系统剪贴板。如果未选择任何文本且该行仅为空格或空,则该行仍会被删除,但不会将任何内容复制到剪贴板。{}",
+ "{}ctrl/CMD + y{} or {}ctrl/CMD + shift + z{}: Redoes a single change to the active document.":"{}ctrl/CMD + y{} 或 {}ctrl/CMD + shift + z{}:重做对活动文档的单个更改。",
+ "{}ctrl/CMD + z{}: Undoes a single change to the active document.":"{}ctrl/CMD + z{}:撤消对活动文档的单个更改。",
+ "{}ctrl/OPT + backspace{}: {}Erases a word at the text cursor\u0027s position. All other {}BACKSPACE{} rules are inherited.{}":"{}ctrl/OPT + 退格键 {}:{} 擦除文本光标位置处的单词。所有其他 {}BACKSPACE{} 规则均会继承。{}",
+ "{}ctrl/OPT + delete{}: Erases a word ahead of the text cursor. All other {}delete{} rules are inherited.":"{}ctrl/OPT + delete{}:擦除文本光标前面的单词。所有其他 {} 删除{} 规则均会继承。",
+ "{}delete{}: Deletes the next character ahead of the text cursor. When at the end of a line, the next newline character is deleted, and the contents of the next line are joined into the current line.":"{}delete{}:删除文本光标前面的下一个字符。当到达行尾时,删除下一\u200B\u200B个换行符,并将下一行的内容连接到当前行。",
+ "{}enter{}: Inserts a newline at the text cursor\u0027s position. {}If enabled by preference, and the text cursor is inside of a multiline comment ({}{}{}///{}{}{} or{} {}{}{}{}/*{}{}{}), then the comment is extended to match the comment style on the next line.{}":"{}enter{}:在文本光标位置插入换行符。{} 如果按首选项启用,并且文本光标位于多行注释内 ({}{}{}///{}{}{} 或 {}{}{}{}{}/*{}{}{}),然后扩展注释以匹配下一行的注释样式。{}",
+ "{}insert{}: {}Toggles between Overwrite and Insert modes, if the preference is enabled. Otherwise nothing happens.{}":"{}insert{}:{} 在覆盖和插入模式之间切换 (如果启用了首选项)。否则什么也不会发生。{}",
+ "{}shift + tab{}: Untabs the current line or the selected lines.":"{}Shift + Tab{}:取消当前行或所选行的 Tab 键。",
+ "{}tab{}: Inserts a tab at the text cursor. When text is selected, all selected lines are tabbed.":"{} 制表符 {}:在文本光标处插入制表符。选择文本后,所有选定的行都会被标记。",
+ "{}{{} {}({} {}[{} {}\"{} or {}begin{}: {}If enabled via preference, then the associated terminating brace is auto-inserted.{}":"{}{{}{}({}{}[{}{}\"{} 或 {}begin{}:{} 如果通过首选项启用,则会自动插入关联的终止大括号。{}",
+ "{}{}ALT/OPT + M{}{}: Fold the currently active document (the one where your text cursor is present).":"{}{}ALT/OPT + M{}{}:折叠当前活动文档 (文本光标所在的文档)。",
+ "{}{}ALT/OPT + SHIFT + M{}{}: Fold all documents. Useful for navigating between events if you have a lot of them.":"{}{}ALT/OPT + SHIFT + M{}{}:折叠所有文档。如果您有很多事件,则对于在事件之间导航很有用。",
+ "{}{}ALT/OPT + SHIFT + U{}{}: Unfold all documents.":"{}{}ALT/OPT + SHIFT + U{}{}:展开所有文档。",
+ "{}{}ALT/OPT + UP/DOWN{}{}: Go to the previous (up) or next (down) document. The text cursor position is preserved from when you last left a document.":"{}{}ALT/OPT + 向上 / 向下 {}{}:转到上一个 (上) 或下一个 (下) 文档。文本光标位置将保留您上次离开文档时的位置。",
+ "{}{}Alt/Opt + LMB{} - Click and drag{}: Select a rectangular part of your code (column selection, as opposed to row selection). Each row selected will get a text cursor, allowing you to edit multiple lines at once.":"{}{}Alt/Opt + LMB{}- 点击并拖动 {}:选择代码的矩形部分 (列选择,而不是行选择)。选择的每一行都会有一个文本光标,允许您一次编辑多行。",
+ "{}{}Ctrl/CMD + A{}{}: Select all text in the active document (other visible documents are {}not{} selected).":"{}{}Ctrl/CMD + A{}{}:选择活动文档中的所有文本 (其他可见文档 {} 未 {} 选择)。",
+ "{}{}Escape{}{}: Deselect all text in the active document (if no tooltips or other dialogs are open).":"{}{}Escape{}{}:取消选择活动文档中的所有文本 (如果没有打开工具提示或其他对话框)。",
+ "{}{}LMB{} - Click and drag{}: Select a row (or rows) of code":"{}{}LMB{}- 点击并拖动 {}:选择一行 (或多行) 代码",
+ "{}{}LMB{} - Click on Gutter line number{}: Select the whole line":"{}{}LMB{}- 点击装订线行号 {}:选择整行",
+ "{}{}LMB{} - Double-click{}: Select the word underneath the mouse cursor. Continues selecting on word boundaries if held and dragged.":"{}{}LMB{}- 双击 {}:选择鼠标光标下方的单词。如果按住并拖动,则继续选择单词边界。",
+ "{}{}LMB{} - Triple-click{}: Select the line underneath the mouse cursor. Continues selecting on line boundaries if held and dragged.":"{}{}LMB{}- 三击 {}:选择鼠标光标下方的行。如果按住并拖动,则继续选择线条边界。",
+ "{}{}NOTE{}{} Shortcuts can be modified through the {}Redefine Keys Preferences{}.":"{}{} 注意{}{} 可以通过 {} 重新定义键首选项 {} 修改快捷键。",
+ "{}{}Shift + lmb{}{}: Select text from the text cursor to the mouse cursor. Continues selecting if held and dragged.":"{}{}Shift + lmb{}{}:选择从文本光标到鼠标光标的文本。如果按住并拖动则继续选择。",
+ "{}}{} {}){} {}]{} or {}\"{}: {}If an associated initiating brace is found then the text cursor overwrites/skips past this symbol.{}":"{}}{}{}){}{}]{} 或 {}\"{}:{} 如果找到关联的起始大括号,则文本光标将覆盖 / 跳过该符号。{}"
+}
\ No newline at end of file
diff --git a/language/zh/www/The_Asset_Editors/Code_Editor_Properties/Feather_Data_Types.json b/language/zh/www/The_Asset_Editors/Code_Editor_Properties/Feather_Data_Types.json
index e50ddb2a5..f7df30600 100644
--- a/language/zh/www/The_Asset_Editors/Code_Editor_Properties/Feather_Data_Types.json
+++ b/language/zh/www/The_Asset_Editors/Code_Editor_Properties/Feather_Data_Types.json
@@ -13,14 +13,17 @@
"An array, may include specifiers":"数组,可以包括说明符",
"An asset, requires specifiers":"资源,需要说明符",
"Any data type":"任何数据类型",
+ "Code Completion":"代码完成",
"Collection Types":"集合类型",
"Error":"错误",
"Feather":"语法检查",
"Feather Data Types":"语法检查数据类型",
+ "Feather Directives":"羽毛指令",
"Feather Features":"语法检查功能",
"For example, an array containing strings would be {}Array<String>{}, and a DS List, containing an Array, containing Reals, would be {}Id.DsList<Array<Real>>{}.":"例如,包含字符串的数组为 {}Array<String>{},包含数组 Reals 的 Ds 列表为 {}Id.DsList<Array<Real>>{}。",
"For example, specifying {}undefined{} (first row) for a parameter requiring a string (second column) results in an error.":"例如,为需要字符串 (第二列) 的参数指定 {}undefined{}(第一行) 会导致错误。",
"It also allows you to specify the data types for the parameters and return values of your own {}script functions{}, using {}JSDoc comments{}.":"它还允许您使用 {}JSDoc 注释 {} 为自己的 {} 脚本函数 {} 的参数和返回值指定数据类型。",
+ "JSDoc Comments":"JSDoc 评论",
"JSDoc Script Comments":"JSDoc 脚本注释",
"Multiple Types":"多种类型",
"Multiple data types can also be listed, separated by a comma {},{}. For example {}String,Array<String>{}, {}Id.Instance,Asset.GMObject{}, etc.":"还可以列出多个数据类型,用逗号{},{}分隔。例如{}String,Array String{},{}Id.Instance、Asset.GMObject{}等。",
diff --git a/language/zh/www/The_Asset_Editors/Code_Editor_Properties/Feather_Directives.json b/language/zh/www/The_Asset_Editors/Code_Editor_Properties/Feather_Directives.json
index f8d0e4fd8..60da84855 100644
--- a/language/zh/www/The_Asset_Editors/Code_Editor_Properties/Feather_Directives.json
+++ b/language/zh/www/The_Asset_Editors/Code_Editor_Properties/Feather_Directives.json
@@ -4,6 +4,7 @@
"All assets in /Scripts":"/Scripts 下的所有资产",
"All assets in the current folder and subfolders":"当前文件夹和目录中的所有资源",
"By default, Feather directives apply to the current script and to the functions declared inside of it, unless you supply a {}target path{}.":"默认情况下,Feather指令应用于当前脚本和在其中声明的函数,除非您提供{}目标路径{}。",
+ "Code Completion":"代码完成",
"Combined Directives":"组合指令",
"Examples: ":"示例如下:",
"Feather":"羽毛(Feather)",
@@ -17,6 +18,7 @@
"Ignoring Feather Rules":"无视羽毛规则",
"Ignoring Once":"忽略一次",
"It is a regular script comment that starts with {}Feather{}, followed by the command and its parameters. Optionally, it may take a path to a script, object or group in {}The Asset Browser{} to which the directive is applied.":"它是一个正则脚本注释,以{}Feather{}开头,后跟命令及其参数。(可选)它可以采用指向{}资源浏览器{}中应用该指令的脚本、对象或组的路径。",
+ "JSDoc Comments":"JSDoc 评论",
"JSDoc Script Comments":"JSDoc脚本注释",
"Optionally you can provide a path using the {}in{} directive to apply a Feather directive to a specific script, object or group in {}The Asset Browser{}. This can be placed in the main script of an external library of functions, though you can place it in any other script, e.g. a blank \"FeatherConfig\" script.":"您也可以使用{}in{}指令提供路径,将Feather指令应用于{}资源浏览器{}中的特定脚本、对象或组。这可以放在外部函数库的主脚本中,也可以放在任何其他脚本中,例如空白的\"FeatherConfig\"脚本。",
"Path":"路径",
diff --git a/language/zh/www/The_Asset_Editors/Code_Editor_Properties/Feather_Features.json b/language/zh/www/The_Asset_Editors/Code_Editor_Properties/Feather_Features.json
index 982ee33e3..967e6c12b 100644
--- a/language/zh/www/The_Asset_Editors/Code_Editor_Properties/Feather_Features.json
+++ b/language/zh/www/The_Asset_Editors/Code_Editor_Properties/Feather_Features.json
@@ -1,30 +1,68 @@
{
+ "A tooltip containing information about a function will show when you are within that function\u0027s parentheses, so you can read about the arguments as you are entering them:":"当您位于该函数的括号内时,将显示包含有关该函数的信息的工具提示,因此您可以在输入参数时阅读有关参数的信息:",
"Asset Refactoring":"资源重构",
+ "Candidate Window":"候选窗口",
+ "Code Completion":"代码完成",
+ "Contextual Tooltip":"上下文工具提示",
"Enter a new name and hit \"{}Apply{}\". The asset itself, and all references to it in your project, will be renamed.":"输入新名称,然后单击\"{}应用{}\"。将重命名资源本身以及项目中对该资源的所有引用。",
+ "Enter a new name and hit \"{}Apply{}\". The asset or identifier itself, and all references to it in your project, will be renamed.":"输入新名称并点击 \"{}Apply{}\"。资产或标识符本身以及项目中对其的所有引用都将被重命名。",
+ "Feather":"羽毛",
+ "Feather Data Types":"羽毛数据类型",
+ "Feather Directives":"羽毛指令",
"Feather Features":"语法检查功能",
"Feather allows you to find all references to a variable throughout your project.":"语法检查允许您查找整个项目中对某个变量的所有引用。",
+ "Feather allows you to find all references to an identifier throughout your project.":"Feather 允许您在整个项目中查找对标识符的所有引用。",
"Find All References":"查找所有引用",
+ "Find Usages":"查找用法",
+ "For built-in functions and variables, this will open the manual page for that symbol. For your own variables and functions, you will be taken to the document and the exact line/column where it was declared. Assets will open their respective editor window.":"对于内置函数和变量,这将打开该符号的手册页。对于您自己的变量和函数,您将被带到文档以及声明它的确切行 / 列。资产将打开各自的编辑器窗口。",
+ "For example, writing a function name will display matching symbols in a list below the candidate, along with a detail tooltip when available:":"例如,编写函数名称将在候选项下方的列表中显示匹配符号,并在可用时显示详细工具提示:",
+ "For user-defined functions with a {}@url{} {}JSDoc parameter{}, doing this will open that URL in the system browser.":"对于带有 {}@url{} {}JSDoc 参数 {} 的用户定义函数,执行此操作将在系统浏览器中打开该 URL。",
+ "Go To Declaration":"前往声明",
"Hover Information":"悬停信息",
"Hovering over a colour displays its RGB and HSV values, along with a CSS hex code.":"将鼠标悬停在颜色上将显示其 RGB 和 HSV 值以及 CSS 十六进制代码。",
"Hovering over a function displays its manual description and lists all arguments.":"将鼠标悬停在函数上将显示其手动描述并列出所有参数。",
+ "Hovering over a function, sprite, colour, or any other special value will also show a tooltip. You can see some examples below.":"将鼠标悬停在函数、精灵、颜色或任何其他特殊值上也会显示工具提示。您可以在下面看到一些示例。",
"Hovering over a function, sprite, colour, or any other special value will show you its information. You can see some examples below.":"将鼠标悬停在函数、精灵、颜色或任何其他特殊值上将显示其信息。您可以在下面看到一些示例。",
"Hovering over a sprite displays its first frame and other information.":"悬停在精灵上方会显示其第一帧和其他信息。",
+ "Identifier Refactoring":"标识符重构",
"If you place your text cursor on a function header, you can open the Quick Fixes menu to generate JSDoc comments for the function:":"如果将文本光标放在函数标题上,则可以打开快速修复菜单以生成函数的 JSDoc 注释:",
+ "If you place your text cursor on a function header, you can open the Quick Fixes menu to generate {}JSDoc Comments{} for the function:":"如果您将文本光标放在函数标题上,则可以打开 \" 快速修复 \" 菜单来为该函数生成 {}JSDoc 注释 {}:",
"If you place your text cursor on a function header, you can open the Quick Fixes menu to generate {}JSDoc Script Comments{} for the function:":"如果将文本光标放在函数标题上,则可以打开\"快速修复\"菜单,为函数生成{}JSDoc脚本注释{}:",
"If you rename an asset in your Asset Browser, Feather will automatically update all mentions of it in your project\u0027s code, so those references don\u0027t break. This can be enabled or disabled in the {}Feather Settings{}.":"如果您在资源浏览器中重命名资源,Feather将自动更新项目代码中对其的所有提及,因此这些引用不会中断。可以在{}Feather设置{}中启用或禁用此功能。",
"If you rename an asset in your Asset Browser, Feather will automatically update all mentions of it in your project\u0027s code, so those references don\u0027t break. This can be enabled or disabled in the {}Feather settings{}.":"如果在资源浏览器中重命名资源,语法检查将自动更新项目代码中所有提到的资源,以便这些引用不会中断。可以在{}语法检查设置{}中启用或禁用此功能。",
"In this example, the variable {}surf{} was selected.":"在此示例中,选择了变量 {}surf{}。",
+ "JSDoc Comments":"JSDoc 评论",
"List All References":"列出所有引用",
"Navigate to the previous or next reference by pressing the corresponding arrow, or close it.":"通过按下相应的箭头导航到上一个或下一个参照,或将其关闭。",
+ "Place your text cursor on a variable and hit {}SHIFT + F1{} (or use the right-click menu). A list of its usages will appear in the Search Results window at the bottom of the IDE.":"将文本光标放在变量上,然后按 {}SHIFT + F1{}( 或使用右键菜单)。其用法列表将显示在 IDE 底部的 \" 搜索结果 \" 窗口中。",
"Place your text cursor on a variable, and hit {}F3{}. You will see a small Search bar at the top of your workspace:":"将文本光标放在变量上,然后单击 {}F3{}。您将在工作区顶部看到一个小搜索栏:",
"Place your text cursor on a variable, and hit {}SHIFT + F3{}. This will open the Search Results window and display all references of the selected variable in a list.":"将文本光标放在变量上,然后单击 {}Shift+ F3{}。这将打开 \"搜索结果\" 窗口,并在列表中显示所选变量的所有引用。",
+ "Press {}UP/DOWN{} to navigate this list, {}ENTER{} to select a symbol to use and {}ESCAPE{} to close the Candidate Window.":"按 {}UP/DOWN{} 浏览此列表,按 {}ENTER{} 选择要使用的符号,按 {}ESCAPE{} 关闭候选窗口。",
+ "Pressing {}enter{} may make changes beyond entering the selected symbol, e.g. selecting a function will also insert a pair of parentheses and move the text cursor inside them if the function accepts arguments.":"按 {}enter{} 可能会进行除输入所选符号之外的更改,例如如果函数接受参数,选择一个函数还将插入一对括号并将文本光标移动到其中。",
"Quick Fixes":"快速修复",
+ "Right-click on a symbol and select \"{}Go To Declaration{}\", or press {}F1{} with your text cursor on a symbol to go to its declaration.":"右键点击符号并选择 \"{}Go ToDeclaration{}\",或者将文本光标放在符号上时按 {}F1{} 以转至其声明。",
+ "See Also":"也可以看看",
+ "Snippets are covered on this page: {}Code Snippets{} (for this editor, see the {}The Code Editor{} section).":"此页面包含代码片段:{} 代码片段 {}( 有关此编辑器,请参阅 {} 代码编辑器 {} 部分)。",
+ "Syntax Errors (Feather Messages)":"语法错误 (羽毛消息)",
+ "The editor will display an auto-complete window, also known as a Candidate Window, under the symbol you are currently writing, if it is identified as a candidate.":"如果您当前正在编写的符号被识别为候选符号,编辑器将在该符号下方显示一个自动完成窗口,也称为候选窗口。",
"The example above shows a quick fix used for fixing an event where the surface target was not reset after being changed.":"上面的示例显示了一个快速修复程序,用于修复表面目标在更改后未重置的事件。",
+ "The {}Code Editor{} provides intelligent code completion and improved syntax checking in your documents, along with smart refactoring options.":"{} 代码编辑器 {} 在文档中提供智能代码补全和改进的语法检查,以及智能重构选项。",
"This menu shows you a quick fix if possible, and allows you to disable the rule for that line, or change its {}severity{}.":"此菜单显示快速修复(如果可能),并允许您禁用该行的规则或更改其{}严重性{}。",
+ "This menu shows you a quick fix if possible, and allows you to disable the rule or change its {}severity{}.":"此菜单会向您显示快速修复 (如果可能),并允许您禁用该规则或更改其 {} 严重性 {}。",
"This page lists the features Feather provides in the GML Code editor for {}scripts{} and {}object events{}. These features will only be available if Feather is {}enabled{}.":"本页列出了语法检查在 GML 代码编辑器中为 {} 脚本 {} 和 {} 对象事件 {} 提供的功能。只有 {} 启用 {} 了语法检查时,这些功能才可用。",
+ "This page lists the features provided in the GML Code editor for {}scripts{} and {}object events{}. These features will only be available if Feather is {}enabled{}, and are currently only supported in GML documents.":"本页面列出了 GML 代码编辑器中为 {} 脚本 {} 和 {} 对象事件 {} 提供的功能。仅当 {} 启用 {}Feather 时,这些功能才可用,并且目前仅在 GML 文档中受支持。",
"This search is smart, so instead of simply {}searching for a text string{}, it looks for references of the selected variable from its declared scope. This means that two variables that have the same name but exist separately in two different objects, will not match.":"这个搜索是明智的,因此它不是简单地{}搜索文本字符串{},而是从其声明的范围中查找所选变量的引用。这意味着具有相同名称但分别存在于两个不同对象中的两个变量将不匹配。",
"When creating a function, the Quick Fix menu allows you to automatically generate JSDoc comments for the function.":"创建函数时,\"快速修复\"菜单允许您自动生成函数的 JSDoc 注释。",
"When you get an error or a warning in your code, place your text cursor on the reported line and press {}CTRL/CMD + Q{} to bring up the Quick Fixes menu. Alternatively, you can click on the {} Feather icon in the gutter.":"当您的代码中出现错误或警告时,请将文本光标置于所报告的行上,然后按 {}Ctrl/Cmd+ Q{} 以调出 \"快速修复\" 菜单。或者,也可以单击行号中的 {} 羽化图标。",
+ "When you get an error or a warning in your code, place your text cursor on the reported line and press {}CTRL/CMD + Q{} to bring up the Quick Fixes menu. Alternatively, you can click on the {} Feather icon in the {}Gutter{}.":"当您的代码中出现错误或警告时,请将文本光标放在报告的行上,然后按 {}CTRL/CMD + Q{} 打开 \" 快速修复 \" 菜单。或者,您也可以点击 {} 装订线 {} 中的 {} 羽化图标。",
"You can also rename an asset through the Code Editor. Place your text cursor on the asset reference, and press {}CTRL/CMD + SHIFT + R{}.":"也可以通过代码编辑器重命名资源。将文本光标放在资源引用上,然后按 {}Ctrl/Cmd+ Shift+ R{}。",
- "{}Feather{} provides intelligent code completion and improved syntax checking in your GML Code scripts, along with smart refactoring options.":"{} 语法检查 {} 在 GML 代码脚本中提供智能代码完成和改进的语法检查,以及智能重构选项。"
+ "You can also rename any asset or identifier (e.g. variables, functions) through the Code Editor. Place your text cursor on the identifier, and press {}CTRL/CMD + R{} (or use the right-click menu).":"您还可以通过代码编辑器重命名任何资产或标识符 (例如变量、函数)。将文本光标放在标识符上,然后按 {}CTRL/CMD + R{}( 或使用右键菜单)。",
+ "You can choose the \"{}Preview Declaration{}\" option or press {}ALT + F1{} to preview the declaration within the document.":"您可以选择 \"{} 预览声明 {}\" 选项或按 {}ALT + F1{} 预览文档中的声明。",
+ "You can close this by pressing {}escape{} (if the Candidate Window is open, it will close first, and on a second press of {}escape{} this tooltip will close).":"您可以通过按 {}escape{} 将其关闭 (如果候选窗口打开,它将首先关闭,第二次按 {}escape{} 时,此工具提示将关闭)。",
+ "{}Feather{} provides intelligent code completion and improved syntax checking in your GML Code scripts, along with smart refactoring options.":"{} 语法检查 {} 在 GML 代码脚本中提供智能代码完成和改进的语法检查,以及智能重构选项。",
+ "{}The Candidate Window that appears will also display the type of the symbol that is highlighted, so you can match it against the type required by the function argument.":"{} 出现的候选窗口还将显示突出显示的符号类型,因此您可以将其与函数参数所需的类型进行匹配。",
+ "{}This search is smart, so instead of simply {}searching for a text string{}, it looks for references of the selected variable from its declared scope. This means that two variables that have the same name but exist separately in two different objects, will not match.":"{} 此搜索非常智能,因此它不是简单地 {} 搜索文本字符串 {},而是从其声明的范围中查找所选变量的引用。这意味着具有相同名称但分别存在于两个不同对象中的两个变量将不匹配。",
+ "{}You can also enter the initials of the split parts of a symbol name, e.g. writing {}sdm{} will show {}show_debug_message{} in the Candidate Window, {}icl{} will show {}instance_create_layer{}, and so on.":"{} 您还可以输入符号名称拆分部分的首字母,例如写入 {}sdm{} 将在候选窗口中显示 {}show_debug_message{},{}icl{} 将显示 {}instance_create_layer{},依此类推。",
+ "{}{}NOTE{}{} The {}Legacy Code Editor{} uses {}CTRL/CMD + SHIFT + R{}.":"{}{} 注意{}{}{} 旧版代码编辑器 {} 使用 {}CTRL/CMD + SHIFT + R{}。",
+ "{}{}NOTE{}{} The {}Legacy Code Editor{} uses {}F3{} and {}SHIFT + F3{}.":"{}{} 注意{}{}{} 旧版代码编辑器 {} 使用 {}F3{} 和 {}SHIFT + F3{}。"
}
\ No newline at end of file
diff --git a/language/zh/www/The_Asset_Editors/Code_Editor_Properties/JSDoc_Script_Comments.json b/language/zh/www/The_Asset_Editors/Code_Editor_Properties/JSDoc_Script_Comments.json
index 361d1e231..a6cc60bb3 100644
--- a/language/zh/www/The_Asset_Editors/Code_Editor_Properties/JSDoc_Script_Comments.json
+++ b/language/zh/www/The_Asset_Editors/Code_Editor_Properties/JSDoc_Script_Comments.json
@@ -1,18 +1,26 @@
{
"A general description of what the function does":"函数执行操作的一般说明",
"All this script does is check to see if an instance has the same {}object_index{} as a given object and would be called simply as:":"此脚本执行的所有操作都是检查某个实例是否与给定对象具有相同的 {}object_index{},并且可以简单地称为:",
+ "Auto-Generating JSDoc":"自动生成 JSDoc",
+ "By using {}Feather{}\u0027s {}Quick Fixes{} menu (press {}CTRL/CMD + Q{} or click the {} icon). The option is visible when your text cursor is placed on a function header (i.e. the line where the function\u0027s name is defined).":"使用 {}Feather{} 的 {} 快速修复 {} 菜单 (按 {}CTRL/CMD + Q{} 或点击 {} 图标)。当文本光标置于函数标题 (即定义函数名称的行) 上时,该选项可见。",
+ "Descriptions in your JSDoc comments support {}Markdown{}, which is used when your function info is displayed in a {}Contextual Tooltip{}.":"JSDoc 注释中的描述支持 {}Markdown{},当您的函数信息显示在 {} 上下文工具提示 {} 中时,将使用 Markdown。",
"Examples":"示例",
"For example, see the following function:":"例如,请参见以下函数:",
+ "Format":"格式",
"Hides the function from Feather\u0027s autocomplete":"对语法检查的自动完成隐藏函数",
"However, writing that into the code editor will show you the argument variable names directly ({}_id{} and {}_obj{}) which in most cases is not very descriptive. You can use JSDoc to define custom argument names and descriptions, along with information for the function as well:":"但是,将其写入代码编辑器将直接显示参数变量名称 ({}_id{} 和 {}_obj{}),在大多数情况下,这些名称的描述性不强。您可以使用 JSDoc 定义自定义参数名称和说明,以及函数的信息:",
"If you haven\u0027t specified a type for your arguments or return value, and you\u0027re using {}Feather{}, it will assume a data type for them automatically, based on your function body.":"如果您尚未为参数或返回值指定类型,并且正在使用{}语法检查{},则它将根据您的函数体自动为这些参数指定数据类型。",
"If you wish your custom functions to have code completion and to show the required arguments in a specific manner in the code editor, then you need to add some {}JSDoc style{} comments. These comments are used to tell the auto-complete feature how the function should be used and filled out in the {}script editor{}.":"如果希望自定义函数具有代码完成功能并在代码编辑器中以特定方式显示所需的参数,则需要添加一些 {}JSDoc 样式 {} 注释。这些注释用于告诉自动完成功能应如何在 {} 脚本编辑器 {} 中使用和填写该函数。",
+ "If you wish your custom functions to have code completion and to show the required arguments in the code editor, then you need to add some {}JSDoc style{} comments. These comments are used to tell the auto-complete feature how the function should be used and filled out in {}The Code Editor{}.":"如果您希望自定义函数具有代码补全功能并在代码编辑器中显示所需的参数,那么您需要添加一些 {}JSDoc 样式 {} 注释。这些注释用于告诉自动完成功能应如何在 {} 代码编辑器 {} 中使用和填写该功能。",
+ "In both cases, when it can, Feather will automatically fill the data type of each parameter and the return value of the function, based on their usage in the function body.":"在这两种情况下,如果可以的话,Feather 都会根据函数体中的用法自动填充每个参数的数据类型和函数的返回值。",
+ "In {}The Code Editor{}, JSDoc comments can be auto-generated if its {}preference{} (\"{}Autofill jsdoc header comments{}\") is enabled. To insert JSDoc, simply start writing a comment above your function header.":"在 {} 代码编辑器 {} 中,如果启用了其 {} 首选项 {}(\"{} 自动填充 jsdoc 标头注释 {}\"),则可以自动生成 JSDoc 注释。要插入 JSDoc,只需在函数标题上方编写注释即可。",
"Information on an argument, with an optional {}type{} in {}{}{} (or multiple acceptable types separated by {},{} or {}|{})":"有关参数的信息,在中具有可选的 {0}type{1} {}{ }{} (或由 {}、{} 或 {}|{} 分隔的多个可接受的类型)",
"Information on arguments, with an optional {}type{}":"有关具有可选{}类型{}的参数的信息",
"Marks the function as deprecated":"将函数标记为已弃用",
"Marks the function as {}pure{}":"将函数标记为 {}pure{}",
"Now, when calling this function anywhere in your project, you will see the new argument names that were entered in the JSDoc comments:":"现在,在项目中的任何位置调用此函数时,都会看到在 JSDoc 注释中输入的新参数名称:",
"See information on data types for {}@param{} and {}@return{} on {}Feather Data Types{}.":"有关 {}@param{} 和 {}@return{} 的数据类型的信息,请参阅 {} 语法检查数据类型 {}。",
+ "See the following example, where the JSDoc comments were auto-filled by Feather and not manually modified:":"请参阅以下示例,其中 JSDoc 注释由 Feather 自动填充,而不是手动修改:",
"Sets the context for the function, which Feather auto-complete uses to provide contextual information. Can be an object or a constructor.":"设置函数的上下文,\"语法检查自动完成\"使用该上下文提供上下文信息。可以是对象或构造函数。",
"Since scripts can have multiple functions in them, you can add JSDoc comments for each of them before its declaration:":"由于脚本中可以包含多个函数,因此可以在脚本声明之前为每个脚本添加 JSDoc 注释:",
"The comments themselves need to be given an identifier (preceded by \"{}@{}\") and content. The available identifiers are as follows: ":"需要为注释本身指定一个标识符 (前面带有 \"{}@{}\") 和内容。可用标识符如下:",
@@ -20,8 +28,11 @@
"The full function name including arguments":"包含参数的完整函数名",
"The {}start_x{} and {}start_y{} arguments are marked as optional, which means the code editor will now expect 2 to 4 arguments, as can be seen in the warning message:":"{}start_x{} 和 {}start_y{} 参数被标记为可选,这意味着代码编辑器现在需要 2 到 4 个参数,如警告消息中所示:",
"To get an idea of how this would work when writing your own functions, let\u0027s take this basic example:":"要了解在编写自己的函数时如何工作,让我们以下列基本示例为例:",
+ "URL for the function, opens when you press {}F1{} on the function name or use the {}RMB -> Go To Declaration{} option.":"函数的 URL,当您在函数名称上按 {}F1{} 或使用 {}RMB -> 时打开转至声明 {} 选项。",
"When using {}Feather{}, you will see detailed information on the function when you hover your mouse over it:":"使用{}语法检查{}时,将鼠标悬停在该函数上方时,将会看到有关该函数的详细信息:",
+ "You can auto-generate JSDoc in two ways:":"您可以通过两种方式自动生成 JSDoc:",
"{}In the image above, the top part shows the function in the auto-complete and the bottom part shows how the argument helper at the bottom works. Note that both the optional \"type\" and the obligatory \"description\" parts of {}@param{} are not displayed by default in the IDE code complete, and to see them you must activate the options in the {}GML Preferences{}.":"{} 在上图中,顶部显示了自动完成中的功能,底部显示了底部参数帮助器的工作原理。请注意,{}@param{} 的可选 \" 类型 \" 和必填 \" 说明 \" 部分默认不会显示在 IDE 代码完成中,要查看它们,必须激活 {}GML 首选项 {} 中的选项。",
+ "{}It automatically inserted the correct data types for each parameter, as {}enemy_obj{} is an object, {}num{} is a real and the function returns an array.":"{} 它会自动为每个参数插入正确的数据类型,因为 {}enemy_obj{} 是一个对象,{}num{} 是一个实数,并且该函数返回一个数组。",
"{}JSDoc Script Comments{}":"{}JSDoc 脚本注释{}",
"{}Type{} of data the function returns":"函数返回的数据{}类型{}",
"{}You can wrap an argument name in {}[]{} brackets to indicate that it is optional. The code editor will then expect any number of arguments between the minimum required arguments and the total number of arguments.":"{}您可以用{}[]{}括号括起参数名称,以表明它是可选的。然后,代码编辑器将期望在最小必需参数和参数总数之间有任意数量的参数。",
diff --git a/language/zh/www/The_Asset_Editors/Extension_Creation/Creating_An_Extension.json b/language/zh/www/The_Asset_Editors/Extension_Creation/Creating_An_Extension.json
index 0fcc3cd12..7e068c044 100644
--- a/language/zh/www/The_Asset_Editors/Extension_Creation/Creating_An_Extension.json
+++ b/language/zh/www/The_Asset_Editors/Extension_Creation/Creating_An_Extension.json
@@ -11,6 +11,7 @@
"Creating Extension Options":"创建扩展选项",
"Creating a GML Extension":"创建一个GML扩展",
"Extension options will only be available at runtime if the extension has functions that are used at runtime. However, options will always be exported to the INI file (if the option is enabled) and batch scripts regardless of the extension\u0027s use.":"只有当扩展有在运行时使用的功能时,扩展选项才会在运行时可用。然而,无论扩展的使用情况如何,选项将始终被导出到INI文件(如果选项被启用)和批处理脚本中。",
+ "File Context Menu":"文件上下文菜单",
"Finally you can choose to hide the option from the editor, making it invisible to the end user who uses the extension.":"最后,你可以选择从编辑器中隐藏该选项,让使用该扩展的终端用户看不到它。",
"Here you would select the target platform for the extension (for GML you would select them all), as well as rename the extension file and set a few other details, which we\u0027ll cover in a moment.":"在这里,你将选择扩展的目标平台(对于GML你将选择它们全部),以及重命名扩展文件和设置其他一些细节,我们稍后会介绍这些。",
"If you were writing a {}DLL{} or JavaScript extension, then the process would be similar but in the correct language for the extension\u0027s file format.":"如果你要写一个{}DLL{}或JavaScript扩展,那么这个过程将是类似的,但要用正确的语言来写扩展的文件格式。",
@@ -26,6 +27,7 @@
"Once you have done that, you need to add the file to the extension (using the \"Add File\" option) which will chain a new window to the Extensions Properties for the File Properties:":"一旦你完成了这些,你需要将文件添加到扩展名中(使用 \"添加文件 \"选项),这将为文件属性的扩展名链出一个新窗口。",
"Placeholder Files":"占位符文件",
"Proxy Files":"代理文件",
+ "Right-clicking on a file in the Files list will show you the following extra options:":"右键单击文件列表中的文件将显示以下额外选项:",
"Selecting \"Add Function\" will permit you to add a function to the extension which can then be called in {}GameMaker{} same as any of the built-in functions. Once the function has been added, the following window will open for you to define the function properties (or you can double-click the function to open it):":"选择\"添加函数\"将允许您向扩展添加函数,然后可以在{}GameMaker{}中调用该函数,与任何内置函数相同。添加函数后,将打开以下窗口,供您定义函数属性(或者您可以双击函数打开它):",
"Selecting \"Add Function\" will permit you to add a function to the extension which can then be called in {}GameMaker{} same as any of the built-in functions. {}Once the function has been added, the following window will open for you to define the function properties (or you can double-click the function to open it):{}":"选择 \"添加函数 \"将允许你添加一个函数到扩展中,然后可以在{}GameMaker{}中调用,就像任何内置函数一样。{}一旦函数被添加,下面的窗口就会打开,让你定义函数属性(或者你可以双击函数来打开它):{}",
"That statement is then followed by the function code, which uses the {}argument0{}, {}argument1{}, etc. variables to access the arguments passed into the function when it is called;":"该语句之后是函数代码,它使用{}argument0{}、{}argument1{}等变量来访问调用时传入函数的参数。",
@@ -69,6 +71,8 @@
"{}NOTE{}: Adding a file to an extension copies it to the project directory, meaning that any further changes must be made to that copy for them to be visible in-game. You can find the copy by right-clicking on your extension in the Asset Browser and selecting \"Open in Explorer\".":"{}注意{}:将文件添加到扩展名中会将其复制到项目目录中,这意味着任何进一步的修改都必须在该副本中进行,以便在游戏中看到它们。你可以在资源浏览器中右键点击你的扩展名,并选择 \"在资源管理器中打开 \"来找到该副本。",
"{}NOTE{}: If the function is part of a native extension for Windows, Mac or Ubuntu ({}dll{}, {}dylib{} or {}so{} respectively) and it has more than four arguments, {}all arguments must be of the same type{}.":"{}注意{}:如果该函数是Windows、Mac或Ubuntu(分别为{}dll{}、{}dylib{}或 {}so{})的本地扩展的一部分,并且它有四个以上的参数,{}所有参数必须是同一类型{}。",
"{}Number{}: This is a real number.":"{}Number{} : 这是一个实数。",
+ "{}Open in {}Code Editor{}{}: Open the file for editing in {}The Code Editor{}, if it is one of the formats that the editor supports (listed on the linked page). This option is only shown when the new {}Code Editor{} is enabled in the {}Code Editor Preferences{}.":"{} 在 {} 代码编辑器 {}{} 中打开:如果文件是编辑器支持的格式之一 (在链接页面上列出),则在 {} 代码编辑器 {} 中打开文件进行编辑。仅当在 {} 代码编辑器首选项 {} 中启用新的 {} 代码编辑器 {} 时,才会显示此选项。",
+ "{}Remove Selected{}: Remove the selected file from the extension":"{}删除选择{}:从扩展中删除所选文件",
"{}String{}: This is a text string.":"{}String{} : 这是一个文本字符串。",
"{}You can give each extension option a name, a default value, and a data type. The name is what you would use internally in your extension code to retrieve the option\u0027s value.":"{}你可以给每个扩展选项一个名称,一个默认值,和一个数据类型。名称是你在扩展代码中内部使用的,用来检索该选项的值。",
"{}{}IMPORTANT{}{} All platforms support the Init function call, {}but not all platforms will perform the Final function call.{} This is because certain platforms will simply close the app without giving any notice or time for this function to be called. The platforms mostly affected by this are {}iOS{}, {}Android{}, {}HTML5{}, {}PlayStation {}and {}Xbox{}.":"{}{}重要{}{} 所有平台都支持 Init 函数调用,{}但不是所有平台都会执行 Final 函数调用。{}这是因为某些平台会直接关闭应用程序,而不给任何通知或时间让这个函数被调用。受此影响的平台主要是 {}iOS{}、{}Android{}、{}HTML5{}、{}PlayStation{} 和 {}Xbox{}。",
diff --git a/language/zh/www/The_Asset_Editors/Fonts.json b/language/zh/www/The_Asset_Editors/Fonts.json
index 46556154b..200c4392f 100644
--- a/language/zh/www/The_Asset_Editors/Fonts.json
+++ b/language/zh/www/The_Asset_Editors/Fonts.json
@@ -2,7 +2,9 @@
" - The {}Normal {}range from 32 till 127{} {} - The {}ASCII {}range from 0 till 255{} {} - The {}Digits {}range that only contains the 10 digits{} {} - The {}Letters {}range that contains all upper-case and lower-case letters only ":" - {}普通{}范围从32到127{}{} - {}ASCII{}范围从0到255{}{} - {}数字{}范围仅包含10位数字{}{} - {}字母{}范围仅包含所有大小写字母",
" - The {}Normal {}range from 32 till 127{} {} - The {}ASCII {}range from 0 till 255{} {} - The {}Digits {}range that only contains the 10 digits{} {} - The {}Letters {}range that contains all upper-case and lower-case letters only{} ":" - {}Normal {}范围从32到127{} {} - {}ASCII {}范围从0到255{} {} - {}Digits {}范围只包含10位数字{} {} - {}Letters {}范围只包含所有大写和小写字母{} ",
"As mentioned above (in the section on {}Font Details{}) by default all font glyphs will be {}rendered{} to a texture page as part of a texture group to convert them into graphical resources, and when the game is compiled the font will be added to a temporary texture to create a single image with all the required font glyphs and then this will be added to the main texture group for exporting. The buttons here are for tweaking how the font texture is generated or for regenerating a new font texture.":"如上所述(在{}详情{}一节),默认情况下,所有的字体字形将被{}渲染{} 到一个纹理页中,作为纹理组的一部分,将其转换为图形资源,当游戏被编译时,字体将被添加到一个临时纹理中,以创建一个包含所有所需字体字形的单一图像,然后这将被添加到主纹理组中进行导出。这里的按钮是用来调整字体纹理的生成方式或重新生成一个新的字体纹理。",
+ "Editor Options":"编辑器选项",
"Fonts in {}The Font Editor{} can make use of SDF rendering so text stays sharp as it\u0027s scaled up. Enable it under Rendering Options (listed below), or run {}{}font_enable_sdf{}{} on the font at runtime.":"{}字体编辑器{}中的字体可以使用SDF渲染,以便文本在放大时保持清晰。请在渲染选项(下面列出)下启用它,或在运行时对字体运行{}{}font_enable_sdf{}{}。",
+ "Fonts in {}The Font Editor{} can make use of SDF rendering so text stays sharp as it\u0027s scaled up. Enable it under {}Rendering Options{} (listed under {}Editor Options{} below), or run {}{}font_enable_sdf{}{} on the font at runtime.":"{} 字体编辑器 {} 中的字体可以利用 SDF 渲染,以便文本在放大时保持清晰。在 {} 渲染选项 {}( 在下面的 {} 编辑器选项 {} 下列出) 下启用它,或在运行时对字体运行 {}{}font_enable_sdf{}{}。",
"Here the different character ranges that you have added for the font will be listed. The range values are shown on the left and the range glyphs that correspond to those values are shown on the right.":"这里将列出你为字体添加的不同字符范围。范围值显示在左边,与这些值对应的范围字形显示在右边。",
"Here you can give your font a unique name (alpha numeric characters and the \"_\" under-bar symbol only), as well as choose the font to use. The font must be installed on your machine and due to licensing issues, {}GameMaker{} does not store the actual font files with the project file by default, but rather the font is {}rendered{} to a {}texture page{} as a series of bitmap glyphs. The texture page will be assigned to a {}texture group{}, which you can choose from the {}Group{} option here too.":"在这里,你可以给你的字体起一个独特的名字(仅限字母数字字符和\"_\"下的符号),以及选择要使用的字体。字体必须安装在你的机器上,由于许可问题,默认情况下,{}GameMaker{}不会将实际的字体文件与项目文件一起存储,而是将字体{}渲染{}到{}纹理页{}中,作为一系列 的位图字形。纹理页将被分配到一个{}纹理组{},你也可以在这里的 {}组{} 选项中选择。",
"If you want to distribute the actual font file ( {}*.ttf{} or {}*.otf{} only) along with the project when making a Marketplace asset or for any other reason, you can check the option {}Copy To Project{}. This will open the file explorer where you can select the font file and it will then be added to the files bundled with the project.":"如果你想在制作Marketplace资源时或出于其他原因,将实际的字体文件({}*.ttf{}或{}*.otf{})与项目一起分发,你可以选中{}Copy To Project{}选项。 这将打开文件资源管理器,你可以选择字体文件,然后它将被添加到与项目捆绑的文件中。",
@@ -28,6 +30,7 @@
"When you first create a font resource the font editor window will open with the following options:":"当你第一次创建一个字体资源时,字体编辑器窗口将打开,有以下选项。",
"When you want to draw text in your game this text is drawn in a standard Arial 12 point {}font{}, but to make more interesting or unique looking texts you will probably want to use different fonts. So, to use different fonts that you have on your computer you must create a {}font asset{} in {}GameMaker{}. This is done by right clicking {} on the {}Asset Browser{} and selecting \"{}Create\" -{}>{} \"Font{}\". For each font asset you create you specify a particular type of font from your computer which can then be used in your game using the action or code to set a font for drawing.":"当你想在你的游戏中绘制文本时,这个文本是用标准的 Arial 12 点 {} 字体 {} 绘制的,但是为了制作更有趣或看起来更独特的文本,你可能想使用不同的字体。因此,要使用你电脑中的不同字体,你必须在 {}GameMaker{} 中创建一个 {2} 字体资源 {3}。这可以通过在 {}Asset Browser{} 上右击 {6},选择 \"{}Create\" -{}>{} \"Font{}\" 完成。对于你创建的每一个字体资源,你都要从你的电脑中指定一个特定类型的字体,然后可以在你的游戏中使用动作或代码来设置一个字体来绘制。",
"When you want to draw text in your game this text is drawn in a standard Arial 12-point {}font{}, but to make more interesting or unique looking texts you will probably want to use different fonts. So, to use different fonts that you have on your computer you must create a {}font asset{} in {}GameMaker{}. This is done by right clicking {} on {}The Asset Browser{} and selecting \"{}Create\" -{}>{} \"Font{}\". For each font asset you create you specify a particular type of font from your computer which can then be used in your game using the action or code to set a font for drawing.":"当你想在游戏中绘制文本时,这些文本将以标准 Arial 12 点 {} 字体 {} 绘制,但要制作更有趣或更独特的文本,你可能需要使用不同的字体。因此,要使用计算机上的不同字体,你必须在 {}GameMaker{} 中创建 {2} 字体资源 {3}。这可以通过右键单击 {} 在 {} 资源浏览器 {} 上选择 \"{} 创建 \"-{}>{}\" 字体 {}\"。对于您创建的每个字体资源,您可以从计算机中指定特定类型的字体,然后可以在游戏中使用操作或代码来设置绘图字体。",
+ "You can drag a font asset into {}The Sequence Editor{} or {}The Room Editor{} (with an Asset Layer selected) to place text into a sequence or room respectively.":"您可以将字体资源拖动到 {} 序列编辑器 {} 或 {} 房间编辑器 {}( 选择资源层) 中,以分别将文本放入序列或房间中。",
"{}Apply Kerning{}: This controls whether kerning data from the font file is used for rendering it in-game. This should be disabled if the kerning data for the source font is incorrect and results in the font not displaying correctly.":"{}应用字距调整{}:该选项控制是否使用字体文件中的字符间距数据在游戏中进行渲染。如果源字体的字符间距数据不正确,并导致字体无法正确显示,则应该禁用该功能。",
"{}Details{}{}Details{}":"{}详情{}{}详情{}",
"{}Disable Auto-Hinter{}。这将禁用自动Hinting,而使用字体的本地Hinting(如果它有的话)。请注意,这将覆盖 \"首选自动Hinting \"选项。":"{}关闭自动指示{}:这将禁用自动指示,而使用字体的本地指示(如果它有的话)。请注意,这将覆盖\"首选自动指示\"选项。",
diff --git a/language/zh/www/The_Asset_Editors/Image_Editor.json b/language/zh/www/The_Asset_Editors/Image_Editor.json
index da1a08af1..38f343326 100644
--- a/language/zh/www/The_Asset_Editors/Image_Editor.json
+++ b/language/zh/www/The_Asset_Editors/Image_Editor.json
@@ -86,6 +86,7 @@
"{}Frame Information{}{}Frame Information{}":"{}帧信息{}{}帧信息{}",
"{}Frame View{}{}Frame View{}":"{}帧视图{}{}帧视图{}",
"{}From this window you can define the colour using any of the available sliders and gadgets, or you can input values directly for the {}ARGB{} values or {}HSV{} values.":"{}在此窗口中,您可以使用任何可用的滑块和小工具定义颜色,也可以直接为 {}ARGB{} 值或 {}HSV{} 值输入值。",
+ "{}GameMaker{} Features You Might Not Know About ":"您可能不知道的 {}GameMaker{} 功能",
"{}Greyscale {}- Desaturate the image by a determined amount. You can choose to apply this to only the current layer, visible layers or all layers.{} {} ":"{} 灰度 {}- 按确定的量使图像去饱和。您可以选择仅将其应用于当前图层、可见图层或所有图层。{}{}",
"{}Here you can name the layer as well as set the blend mode (the way that it should be \"mixed\" with the layers beneath), choosing from {}normal{}, {}additive{}, {}subtractive {}or {}multiply {}blends. Finally you can set the opacity (transparency) of the layer with a slider, but note that this is cumulative with the actual alpha value of individual pixels - for example, if you have pixels that are 50% opaque and set the layer opacity to 50%, the final pixels will be drawn at 25% opacity.":"{}您可以在此处命名图层并设置混合模式(它应该与下面的图层\"混合\"),选择{}正常{}、{}加法{}、{}减法{}或{}乘法{}混合。最后,您可以使用滑块设置图层的不透明度(透明度),但请注意,这是使用单个像素的实际 Alpha 值累积的,例如,如果像素的不透明度为 50%,并将图层不透明度设置为 50%,则最终像素将以 25% 的不透明度绘制。",
"{}Image{}{}Image{}":"{}图像{}{}图像{}",
diff --git a/language/zh/www/The_Asset_Editors/Notes.json b/language/zh/www/The_Asset_Editors/Notes.json
index 1cf434536..5edb4ddbe 100644
--- a/language/zh/www/The_Asset_Editors/Notes.json
+++ b/language/zh/www/The_Asset_Editors/Notes.json
@@ -1,6 +1,13 @@
{
"If you have imported a project created using a previous version of {}GameMaker{}, then you will also find a {}Compatibility Report{} included as a note in this section.":"如果您已导入使用 {}GameMaker{} 的早期版本创建的项目,则还会在此部分中找到一个 {} 兼容性报告 {} 作为注释。",
+ "Markdown in {}GameMaker{} allows you to include some additional things:":"{}GameMaker{} 中的 Markdown 允许您添加一些附加内容:",
+ "The Code Editor":"代码编辑器",
"The Note Editor":"笔记编辑器",
+ "When using the new {}Code Editor{}, Note assets will be displayed with a preview to the right of the editor itself. This will display the Note with any {}Markdown{} formatting applied to it.":"使用新的 {} 代码编辑器 {} 时,注释资源将在编辑器右侧显示并带有预览。这将显示应用了任何 {}Markdown{} 格式的注释。",
+ "You can make the preview larger or smaller by dragging the bar between the Text Editor and the Preview window. If you drag the Preview window all the way to the right, it will collapse and disappear. To bring it back, right-click anywhere inside the Text Editor and select \"{}Open Preview{}\".":"您可以通过拖动文本编辑器和预览窗口之间的栏来放大或缩小预览。如果将预览窗口一直拖到右侧,它将折叠并消失。要将其恢复,请右键点击文本编辑器内的任意位置,然后选择 \"{} 打开预览 {}\"。",
+ "You can use the following in hyperlinks (i.e. {}[text](url){} format): {} {}The {}file:///{} protocol, along with the {}${project_dir}{} variable to include the current project, e.g. {}{}![](file:///${project_dir}/wow.png{} to insert an image from the project directory{} {} {}{}file://{} is supported as shorthand, only for non-image hyperlinks{} {} {} {}The {}project://{} protocol to link to any asset in the project, e.g. {}[Wow, a sprite](project://spr_player){}. Clicking on this link will open the {}spr_player{} asset in the IDE.{} {} ":"您可以在超链接中使用以下内容 (即 {}[text](url){} 格式):{}{}{}file:///{} 协议以及 {}${project_dir}{} 变量包括当前项目,例如 {}{}![](file:///${project_dir}/wow.png{},用于插入项目目录中的图像 {}{} 支持简写形式的 {}{}file://{},仅适用于非图像超链接 {}{}{}{} 链接到项目中任何资源的 {}project://{} 协议,例如 {}[ 哇,一个精灵 ](project://spr_player){} 点击此链接将在 IDE 中打开 {}spr_player{} 资源。{}{}",
+ "{}#RRGGBB{} will display a colour":"{}#RRGGBB{} 将显示颜色",
+ "{}@AssetName{} will display that asset\u0027s information in preview":"{}@AssetName{} 将在预览中显示该资产的信息",
"{}The Note Editor{}":"{}笔记编辑器{}",
"{}The {}Note Editor{} will open a code/script window where you can keep notes and code snippets or any other information that you consider relevant to the project. You can create multiple notes and name them from the right mouse button {} menu in the {}Asset Browser{}. Notes can also be grouped and re-ordered like any other asset.":"{}{}笔记编辑器{}将打开一个代码/脚本窗口,您可以在其中保留笔记和代码片段,或者您认为与项目相关的任何其他信息。您可以在{4}资源浏览器{5}的鼠标右键{}菜单中创建多个注释并命名它们。笔记也可以像任何其他资源一样进行分组和重新排序。",
"{}The {}Note Editor{} will open a code/script window where you can keep notes and code snippets or any other information that you consider relevant to the project. You can create multiple notes and name them from the right mouse button {} menu in the {}Asset Browser{}. Notes can also be grouped and reordered like any other asset.":"{}{}笔记编辑器{}将打开一个代码/脚本窗口,您可以在其中保留笔记和代码片段,或者您认为与项目相关的任何其他信息。您可以在{4}资源浏览器{5}的鼠标右键{}菜单中创建多个注释并命名它们。笔记也可以像任何其他资源一样进行分组和重新排序。"
diff --git a/language/zh/www/The_Asset_Editors/Object_Properties/Async_Events/Dialog.json b/language/zh/www/The_Asset_Editors/Object_Properties/Async_Events/Dialog.json
index 1679ac43b..a97770973 100644
--- a/language/zh/www/The_Asset_Editors/Object_Properties/Async_Events/Dialog.json
+++ b/language/zh/www/The_Asset_Editors/Object_Properties/Async_Events/Dialog.json
@@ -3,5 +3,6 @@
"Dialog":"对话框",
"These events are the ones that ask for some type of user input, which can be a name, login details, a number or a colour etc... As most devices do not like sitting in a loop waiting for a reply, they have to be asynchronous and {}GameMaker{} will continue to run in the background while these functions have a dialogue open and until they get the required user input which triggers this event. This means that if the dialog is open while a game is in progress, you should take steps to pause the game until the dialog callback has been recieved.":"这些事件是要求某种类型的用户输入的事件,可以是名称、登录详细信息、数字或颜色等……由于大多数设备不喜欢坐在一个循环中等待回复,它们必须是异步的,{}GameMaker{} 将当这些函数打开对话时继续在后台运行,直到它们获得触发此事件的所需用户输入。这意味着,如果对话框在游戏进行时打开,您应该采取措施暂停游戏,直到收到对话框回调。",
"{}The Dialog asynchronous event is only triggered when it gets a {}callback{} from one of the special {}asynchronous dialog functions{}, like {}{}get_login_async(){}{} (please see this function for an extended code example of how this event is used).":"{} 仅当从其中一个获取 {} 回调 {} 时才会触发对话框异步事件特殊的 {} 异步对话框函数 {},如 {}{}get_login_async(){}{}(有关如何使用此事件的扩展代码示例,请参阅此函数)。",
+ "{}{}{}NOTE{}{}{}{} The async dialog functions are {}for {}debugging and testing use only{} and should not be used in released games on desktop OSes. For that purpose you should create a custom user interface to receive input from players so that you have complete control over how the dialogs look and behave.{}{}":"{}{}{} 注意 {}{}{}{} 异步对话框函数 {} 仅供 {} 调试和测试使用 {},不应在桌面操作系统上发布的游戏中使用。为此,您应该创建一个自定义用户界面来接收玩家的输入,以便您可以完全控制对话框的外观和行为。{}{}",
"{}{}{}NOTE{}{}{}{} The async dialog functions are {}for {}debugging and testing use only{} and should not be used in released games. For that purpose you should create a custom user interface to receive input from players so that you have complete control over how the dialogs look and behave.{}{}":"{}{}{} 注意 {}{}{}{} 异步对话框函数 {} 仅用于 {} 调试和测试 {},不应在已发布的游戏中使用。为此,您应该创建一个自定义用户交互界面来接收玩家的输入,以便您可以完全控制对话框的外观和行为。{}{}"
}
\ No newline at end of file
diff --git a/language/zh/www/The_Asset_Editors/Object_Properties/Async_Events/Networking.json b/language/zh/www/The_Asset_Editors/Object_Properties/Async_Events/Networking.json
index 937ded83a..cd0414ca4 100644
--- a/language/zh/www/The_Asset_Editors/Object_Properties/Async_Events/Networking.json
+++ b/language/zh/www/The_Asset_Editors/Object_Properties/Async_Events/Networking.json
@@ -1,11 +1,13 @@
{
"\"{}buffer{}\": This is a handle to the buffer which is generated by the event. A \"grow\" type buffer, byte aligned to 1, is created to hold the ID should be stored in a variable and used for all further function calls to the buffer in this event. Just like the {}async_load{} map, the buffer created is automatically removed from memory at the end of this event. For more information on buffers, please see {}Reference - Buffers{}.":"\"{}buffer{}\":这是事件生成的缓冲区的句柄。创建一个 \" 增长 \" 类型的缓冲区,字节对齐为 1,以保存 ID,该 ID 应存储在变量中,并用于此事件中对缓冲区的所有进一步函数调用。就像 {}async_load{} 映射一样,在此事件结束时,创建的缓冲区将自动从内存中删除。有关缓冲区的详细信息,请参见 {} 参考-缓冲区 {}。",
"\"{}buffer{}\": This is the unique \"buffer ID\" which is generated by the event. A \"grow\" type buffer, byte aligned to 1, is created to hold the ID should be stored in a variable and used for all further function calls to the buffer in this event. Just like the {}async_load{} map, the buffer created is automatically removed from memory at the end of this event. For more information on buffers, please see {}Reference - Buffers{}.":"\"{}buffer{}\":这是由事件生成的唯一\"缓冲区ID\"。创建\"growth\"类型缓冲区(字节对齐为1)以保存Id,该Id应存储在变量中,并用于此事件中对缓冲区的所有进一步函数调用。与{}async_load{}映射一样,创建的缓冲区在此事件结束时会自动从内存中删除。有关缓冲区的详细信息,请参阅{}参考-缓冲区{}。",
+ "\"{}id{}\": The socket ID (a real number, as returned by the {}{}network_create_server{}{} or {}{}network_create_socket{}{} function) that is receiving the event. In most cases the socket ID returned is the ID of TCP or UDP socket that triggered the event, however if the event is triggered in a server and it\u0027s a Data Event (see below) then the socket ID is that of the client that sent the data.":"\"{}id{}\":接收事件的套接字 ID(实数,由 {}{}network_create_server{}{} 或 {}{}network_create_socket{}{} 函数返回)。在大多数情况下,返回的套接字 ID 是触发事件的 TCP 或 UDP 套接字的 ID,但是,如果事件在服务器中触发并且它是数据事件 (见下文),则套接字 ID 是发送事件的客户端的 ID。数据。",
"\"{}id{}\": The socket id (a real number, as returned by the network_create_server or network_create_socket function) that is receiving the event. In most cases the socket ID returned is the ID of TCP or UDP socket that triggered the event, however if the event is triggered in a server and it\u0027s a Data Event (see below) then the socket ID is that of the client that sent the data.":"\"{}id{}\":接收事件的套接字ID(由network_create_server或network_create_socket函数返回的实数)。在大多数情况下,返回的套接字ID是触发事件的Tcp或Udp套接字的ID,但是,如果事件是在服务器中触发的,并且是数据事件(请参阅下文),则套接字ID是发送数据的客户端的ID。",
"\"{}ip{}\": The IP address of the socket (as a string).":"\"{}ip{}\":套接字的Ip地址(作为字符串)。",
"\"{}message_type{}\":{} (WebSockets only){} - This will be {}network_send_binary{} if the message received was in binary form, or {}network_send_text{} if it was received in text form.":"\"{}message_type{}\":{}(仅限WebSockets){}-如果收到的消息为二进制形式,则为{}network_send_binary{};如果收到的消息为文本形式,则为{}network_send_text{}。",
"\"{}port{}\": The port associated with the IP address (useful when working with UDP).":"\"{}port{}\":与Ip地址关联的端口(使用Udp时有用)。",
"\"{}size{}\": This is the size (in bytes) of the buffer data that is being received.":"\"{}size{}\":这是要接收的缓冲区数据的大小(以字节为单位)。",
+ "\"{}socket{}\": This key will hold the connecting/disconnecting socket ID.":"\"{}socket{}\":该键将保存连接 / 断开连接套接字 ID。",
"\"{}socket{}\": This key will hold the connecting/disconnecting socket id.":"\"{}socket{}\":此键将保留连接/断开套接字ID。",
"\"{}succeeded{}\": This key will be either 0 or 1, where 0 means the connection timed out and 1 means it succeeded and the socket is ready to use.":"{}succeeded{}:此密钥将为0或1,其中0表示连接超时,1表示连接成功并且套接字准备就绪。",
"\"{}type{}\": This will have one of the constants listed in the table below as its return value, and designates the network event type.":"{}type{}:这将在下表中列出一个常量作为其返回值,并指定网络事件类型。",
@@ -19,9 +21,11 @@
"Networking":"网络",
"Receiving Data":"接收数据",
"The Networking event is one which will be triggered by any incoming network traffic, and is linked to the {}Network Functions{}. This event generates a special {}DS Map{} that is exclusive to this event and is stored in the special variable {}async_load{}. This DS map will contain different information depending on the type of network event that generated it.":"网络事件将由任何传入网络流量触发,并链接到{}网络函数{}。此事件将生成一个专用于此事件的{}DS map{},该映射存储在特殊变量{}async_load{}中。此DS map将包含不同的信息,具体取决于生成它的网络事件的类型。",
+ "The Networking event is one which will be triggered by any incoming network traffic, and is linked to the {}Network Functions{}. This event generates a special {}{}DS Map{}{} that is exclusive to this event and is stored in the special variable {}{}async_load{}{}. This DS map will contain different information depending on the type of network event that generated it.":"网络事件是由任何传入网络流量触发的事件,并链接到 {} 网络功能 {}。此事件生成一个专用于该事件的特殊 {}{}DS Map{}{},并存储在特殊变量 {}{}async_load{}{} 中。该 DS 映射将包含不同的信息,具体取决于生成它的网络事件的类型。",
"The connection failed.":"连接失败。",
"The connection succeeded.":"连接成功。",
"The event was triggered by a connection configured as non-blocking (you can use the function {}{}network_set_config(){}{} for this, or connect using {}{}network_connect_async(){}{} or {}{}network_connect_async_raw(){}{}).":"事件由配置为非阻塞的连接触发(您可以使用函数{}{}network_set_config(){}{}进行此操作,或者使用{}{}network_connect_async(){}{}或{}{}network_connect_async_raw(){}{}进行连接)。",
+ "The event was triggered by a connection configured as non-blocking (you can use the function {}{}network_set_config{}{} for this, or connect using {}{}network_connect_async{}{} or {}{}network_connect_raw_async{}{}).":"该事件由配置为非阻塞的连接触发 (您可以为此使用函数 {}{}network_set_config{}{},或使用 {}{}network_connect_async{}{} 或 {}{}network_connect_raw_async{} 进行连接 {})。",
"The event was triggered by a connection.":"事件由连接触发。",
"The event was triggered by a disconnection.":"事件由断开连接触发。",
"The event was triggered by incoming data.":"事件由传入数据触发。",
@@ -30,6 +34,7 @@
"When you have a {}network_type_data{} type event, which signifies that your network has received data, the map created will have the following keys:":"{}network_type_data{}类型的事件表示您的网络已收到数据时,创建的映射将具有以下键:",
"When you have an event of the type {}network_type_connect{} or {}network_type_disconnect{}, the {}async_load {}map will have the following additional key:":"{}网络类型连接{}或{}网络类型断开{}类型的事件时,{}async_load{}映射将具有以下附加密钥:",
"When you have an event of the type {}network_type_connect{} or {}network_type_disconnect{}, the {}async_load{} map will have the following additional key:":"当您有一个类型为 {}network_type_connect{} 或 {}network_type_disconnect{} 的事件时,{}Network_load{} 映射将具有以下附加键:",
+ "{}\"server\"{}: {}(server sockets only){} This is the ID of the {}server{} {}socket{} that received the data.{}{}":"{}\"server\"{}:{}( 仅限服务器套接字 ){} 这是接收数据的 {} 服务器 {}{} 套接字 {} 的 ID。{}{}",
"{}NOTE{} The buffer created is only valid in these events and will be automatically freed when the event is over.":"{}注意{}创建的缓冲区仅在这些事件中有效,并将在事件结束时自动释放。",
"{}Networking{}":"{}网络{}",
"{}{}NOTE{}{} The buffer created is only valid in these events and will be automatically freed when the event is over.":"{}{}注意{}{} 创建的缓冲区仅在这些事件中有效,并将在事件结束时自动释放。"
diff --git a/language/zh/www/The_Asset_Editors/Object_Properties/Event_Order.json b/language/zh/www/The_Asset_Editors/Object_Properties/Event_Order.json
index 084a4421f..a5ad5cb4a 100644
--- a/language/zh/www/The_Asset_Editors/Object_Properties/Event_Order.json
+++ b/language/zh/www/The_Asset_Editors/Object_Properties/Event_Order.json
@@ -1,9 +1,12 @@
{
"After all Step events are complete, GameMaker executes the Draw events for all instances, in the same game step. Within a particular event (e.g. Draw End), the order in which instances run that event depends on the layer order, e.g. the layer with the highest depth has its instances drawn first, and the layer with the lowest depth is drawn last.":"当所有步事件完成后,GameMaker 会在同一个游戏步骤中为所有实例执行绘制事件。在一个特定的事件(例如绘制结束)中,实例运行该事件的顺序取决于图层的顺序,例如深度最高的图层的实例最先绘制,深度最低的图层最后绘制。",
+ "After all Step events are complete, {}GameMaker{} executes the Draw events for all instances, in the same game step. Within a particular event (e.g. Draw End), the order in which instances run that event depends on the layer order, e.g. the layer with the highest depth has its instances drawn first, and the layer with the lowest depth is drawn last.":"所有步骤事件完成后,{}GameMaker{} 在同一游戏步骤中为所有实例执行 Draw 事件。在特定事件 (例如绘制结束) 中,实例运行该事件的顺序取决于图层顺序,例如深度最高的图层首先绘制其实例,最后绘制深度最低的图层。",
"After all Step events come all Draw events. These are also always dealt with in the same order as follows (except for the {}Window Resize {}event, which is triggered differently):":"在所有Step事件之后,是所有Draw事件。这些事件也总是按照以下相同的顺序处理(除了{}Window Resize{}事件,它的触发方式不同):",
"All instances are created one after the other, according to the room\u0027s {}Instance Creation Order{}. More specifically, for every instance: {} {}It is created (equivalent to calling {}{}instance_create_depth{}{}/{}{}instance_create_layer{}{} in code): {} {}The instance\u0027s {}Object Variables{} are initialised.{} {}The {}Create Event{} is executed for the instance.{} {} {} {}It executes its {}Instance Creation Code{}, if it has any.{} {} ":"根据房间的 {}实例创建顺序 {},依次创建所有实例。具体来说,对于每个实例: {} {}它被创建(相当于调用 {}{}instance_create_depth{}{} / {}{}instance_create_layer{}{} 在代码中): {} {}初始化实例的 {}对象变量 {}。 {} {} 将为实例执行 {}创建事件 {}。 {} {} {} {} 它执行它的 {}实例创建代码 {}(如果有的话)。 {} {}",
+ "All instances are moved their new positions (based on their {}{}hspeed{}{} and {}{}vspeed{}{}), also when following a path":"所有实例都会移动其新位置 (基于其 {}{}hspeed{}{} 和 {}{}vspeed{}{}),沿着路径时也是如此",
"All of the events for drawing are also always dealt with in the same order as follows (except for the {}Window Resize {}event, which is triggered differently):":"所有绘制事件也总是以相同的顺序处理,如下所示({}窗口调整大小{}事件除外,它的触发方式不同):",
"As a general rule, you can rely on the order of the events listed below, but not on the order in which the instances in the room execute one event.":"作为一般规则,您可以依赖下面列出的事件顺序,但不能依赖房间中的实例执行某个事件的顺序。",
+ "Collisions are checked {} {}If a collision is detected and one of the colliding instances is solid then both instances are moved back to their previous frame\u0027s position (if not solid they are left at their new positions) and their collision events are called. {}{}{}NOTE{}{} In {}Collision Compatibility Mode{} the instances are moved back to their previous position before {}and{} after the Collision events instead.{} {} {} ":"检查碰撞 {}{} 如果检测到碰撞并且其中一个碰撞实例是实心的,则两个实例都会移回其前一帧的位置 (如果不是实心的,则它们将留在新位置) 并调用它们的碰撞事件。{}{}{} 注意 {}{} 在 {} 碰撞兼容模式 {} 中,实例会在碰撞事件发生之前 {} 和 {} 之后移回到之前的位置。{}{}{}",
"Each Draw event draws instances in this order (based on the {}depth{} value), and then moves on to the next event, repeating the same instance order (e.g. Draw Begin moving to Draw and then Draw End).":"每个绘制事件都按此顺序(基于 {}depth{} 值)绘制实例,然后继续到下一个事件,重复相同的实例顺序(例如,从\"绘制开始\"移动到\"绘制\",然后移动到\"绘制结束\")。",
"Event Order":"事件顺序",
"Every Step/Frame":"每一步/帧",
@@ -45,6 +48,7 @@
"{}Room Creation Code{} - this is the one-off code written in {}The Room Editor{} for when a room is first entered.":"{}房间创建代码{}-这是在{}房间编辑器{}中编写的首次进入房间时的一次性代码。",
"{}Room Start Event of all instances{} - one of the \"Other\" category of events and will fire for all instances, {}persistent{} or otherwise.":"{}所有实例的房间启动事件{}-事件的\"其他\"类别之一,将为所有实例触发,{}持久{}或其他。",
"{}Room Start Event of all instances{} - one of the \"other\" category of events and will fire for all instances, persistent or otherwise":"{} 所有实例的房间启动事件 {}-\" 其他 \" 类别的事件之一,将对所有实例触发,无论是持久的还是其他的",
+ "{}Step Event{}":"{} 步骤事件 {}",
"{}Step Event{} (note that the Step event is executed just before instances are put in their new positions, including when following a path)":"{}步骤事件{}(注意,步骤事件在实例被放置到新位置之前执行,包括在跟随路径时)",
"{}Step Event{} (note that the step event is executed just before instances are put in their new positions)":"{}步事件{}(请注意,步骤事件是在实例放入新位置之前执行的)",
"{}Time Sources{}":"{}时间源{}",
diff --git a/language/zh/www/The_Asset_Editors/Objects.json b/language/zh/www/The_Asset_Editors/Objects.json
index 20fe8eada..10532f36d 100644
--- a/language/zh/www/The_Asset_Editors/Objects.json
+++ b/language/zh/www/The_Asset_Editors/Objects.json
@@ -8,8 +8,10 @@
"Object Variables":"对象变量",
"Parent Objects":"父对象",
"Physics Objects":"物理物体",
+ "The Code Editor":"代码编辑器",
"The Object Editor":"对象编辑器",
"The last part of the Object Editor is taken up with the different object {}Options{}, each of which is discussed on its on page, linked below:":"对象编辑器的最后一部分是不同的对象 {}选项{},每个选项都在其页面上讨论,链接如下。",
+ "The new {}Code Editor{} can be enabled from the {}preferences{} and is used to edit object events when enabled. Object properties are edited in {}The Inspector{}.":"新的 {} 代码编辑器 {} 可以从 {} 首选项 {} 启用,启用后可用于编辑对象事件。对象属性在 {} 检查器 {} 中编辑。",
"To clarify this, think of a game made with {}GameMaker{}. All the characters, monsters, balls, walls, etc. are all objects you create in {}The Asset Browser{}. You then drag the {}object {}into a room in {}The Room Editor{} to create an {}instance {}copied from the basic object template. The instance in the room can then be changed in the editor itself or through code, so that it can be scaled, or coloured, or have other details modified from the \"base\" object. So when we talk about something affecting or changing an {}instance{}, we mean it affects that {}one particular copy of an object in a room{}. Only that single instance is being affected while all the rest are not. But, when we talk about affecting or changing an {}object{}, we mean that we are modifying the object in the Asset Browser and anything we do to it will be reflected in all the instances created from that point on too. So, the object is the template for the instance, and the instance is what we place in a room to make our game.":"为了阐明这一点,请考虑使用{}GameMaker{}制作的游戏。所有角色,怪物,球,墙壁等都是您在{}资源浏览器{}中创建的对象。然后您将{}对象{}拖到{}房间编辑器{}中的房间中,以创建从基本对象模板复制的{}实例{}。然后可以在编辑器本身或通过代码更改房间中的实例,以便可以缩放,或着色,或从\"基础\"对象修改其他细节。因此,当我们谈论影响或改变一个{}实例{}时,我们的意思是{}它影响房间中对象的一个特定副本{}。只有该单个实例受到影响,而所有其他{}实例{}都没有。但是,当我们谈论影响或改变对象时,我们的意思是,我们正在修改资产浏览器中的对象,我们对它所做的任何事情都将反映在从该点创建的所有实例中。因此,对象是实例的模板,而实例是我们放置在房间中以制作游戏的东西。",
"To clarify this, think of a game made with {}GameMaker{}. All the characters, monsters, balls, walls, etc... are all objects you create in the {}Asset Browser{}. You then drag the {}object {}into a room in the {}Room Editor{} to create an {}instance {}copied from the basic object template. The instance in the room can then be changed in the editor itself or through code, so that it can be scaled, or coloured, or have other details modified from the \"base\" object. So when we talk about something affecting or changing an {}instance{}, we mean it affects that {}one particular copy of an object in a room{}. Only that single instance is being affected while all the rest are not. But, when we talk about affecting or changing an {}object{}, we mean that we are modifying the object in the Asset Browser and anything we do to it will be reflected in all the instances created from that point on too. So, the object is the template for the instance, and the instance is what we place in a room to make our game.":"为了说清楚这一点,想想一个用{}GameMaker{}制作的游戏。所有的角色、怪物、球、墙等等......都是你在{}资源浏览器{}中创建的对象。然后你在{}房间编辑器{}中把{4}对象{5}拖入房间,创建一个从基本对象模板复制的{}实例{}。然后,房间里的实例可以在编辑器本身或通过代码进行更改,这样它就可以被缩放,或着色,或从 \"基本 \"对象中修改其他细节。因此,当我们谈论影响或改变一个{}实例{}的东西时,我们的意思是它会影响{}房间里的一个特定对象的副本{}。只有那个单一的实例受到影响,而其他的都没有受到影响。但是,当我们谈论影响或改变一个{}对象{}时,我们的意思是,我们正在修改资源浏览器中的对象,我们对它所做的任何事情都将反映在从这一点开始创建的所有实例上。所以,对象是实例的模板,而实例就是我们放在房间里做游戏的东西。",
"To create an object in your game, you can right click {} on the Asset Browser and click the {}Create Object{} option. This will open the window pictured at the top of this page with the following sections:":"要在你的游戏中创建一个对象,你可以在资源浏览器上右击{} ,然后点击{}创建对象{}选项。这将打开本页面顶部的窗口,其中有以下几个部分。",
diff --git a/language/zh/www/The_Asset_Editors/Room_Properties/Layer_Properties.json b/language/zh/www/The_Asset_Editors/Room_Properties/Layer_Properties.json
index cd2e263b4..f1570cccb 100644
--- a/language/zh/www/The_Asset_Editors/Room_Properties/Layer_Properties.json
+++ b/language/zh/www/The_Asset_Editors/Room_Properties/Layer_Properties.json
@@ -1,18 +1,27 @@
{
"A Filter/Effect (or FX) layer is used to apply a visual filter or effect to some layers. Adding an FX layer and selecting an effect from the \"Effect Type\" drop-down menu will apply that effect to all layers that are {}below{} the selected FX layer, as demonstrated in this visual:":"滤镜/效果(或FX)层用于将视觉滤镜或效果应用于某些层。添加一个FX层并从\"效果类型\"下拉菜单中选择一种效果会将该效果应用于所选FX层以下的所有层,如下图所示:",
+ "Asset Properties":"资产属性",
"At the top of the Room Editor, when you have a tile layer selected, you will see a set of tools that are specific to tiles:":"在房间编辑器的顶部,当您选择了图块层时,您将看到一组特定于图块的工具:",
"At the top of the room editor, when you have a tile layer selected, you will see a set of tools that are specific to tiles:":"在房间编辑器的顶部,当您选择了图块层时,您将看到一组特定于图块的工具:",
"Below the instance name you have buttons to set whether the instance is to inherit from the parent room, change the object that you want it to be an instance of or even open up the {}Object Editor{}, should you wish to change anything there. There is a button to check and edit variables through the {}Object Variable{} window and you can change the initial characteristics of this instance too, setting a colour to blend it with (white by default), or rotating and flipping it. You can also scale the instance along either or both the axis, and set its position within the room, as well as the image speed and initial frame for the sprite to use.":"在实例名称下面有按钮,用于设置实例是否继承自父房间、更改要作为其实例的对象,甚至打开{}对象编辑器{}(如果您希望在那里更改任何内容)。有一个按钮可以通过{}对象变量{}窗口检查和编辑变量,您还可以更改此实例的初始特征,设置与之混合的颜色(默认情况下为白色),或旋转和翻转它。您还可以沿其中一个或两个轴缩放实例,并设置其在房间内的位置,以及精灵要使用的图像速度和初始帧。",
+ "Below the instance name you have buttons to set whether the instance is to inherit from the parent room, change the object that you want it to be an instance of or even open up {}The Object Editor{}, should you wish to change anything there. There is a button to check and edit variables through the {}Object Variables{} window and you can change the initial characteristics of this instance too, setting a colour to blend it with (white by default), or rotating and flipping it. You can also scale the instance along either or both the axis, and set its position within the room, as well as the image speed and initial frame for the sprite to use.":"在实例名称下方,您可以使用按钮来设置实例是否从父房间继承、更改您希望其作为实例的对象,甚至如果您希望更改任何内容,甚至可以打开 {} 对象编辑器 {} 那里。有一个按钮可通过 {} 对象变量 {} 窗口检查和编辑变量,您也可以更改此实例的初始特征、设置与其混合的颜色 (默认为白色),或旋转和翻转它。您还可以沿一个或两个轴缩放实例,并设置其在房间内的位置,以及图像速度和精灵要使用的初始帧。",
"Below you can find an overview of each of the available layer types as well as the editable properties for that layer:":"下面您可以找到每个可用层类型的概述以及该层的可编辑属性:",
+ "By default the instance will have a name like {}inst_38B0BFF{}, but this can be changed to anything you want as long as the name uses only alpha-numeric characters and the under-bar {}_{} (and no spaces). However it\u0027s worth noting that the name given here (whether it\u0027s one you give, or the default one that the IDE gives) is considered a {}constant{} and so {}must be {}unique {}to the instance{}. This also means that it can be used in code in your game to identify the instance, but only if you are in the same room as the instance.":"默认情况下,实例的名称类似于 {}inst_38B0BFF{},但可以更改为您想要的任何名称,只要该名称仅使用字母数字字符和下划线 {}_{}( 且不包含空格)。但值得注意的是,此处给出的名称 (无论是您提供的名称,还是 IDE 提供的默认名称) 被视为 {} 常量 {},因此 {} 对于实例必须是 {} 唯一的 {}。这也意味着它可以在游戏的代码中用于识别实例,但前提是您与实例位于同一房间。",
"Clicking the Flip tool with the left mouse button {} (or using the keyboard shortcut \"{}X{}\" ) will flip the tile currently selected for drawing along the {}horizontal {}axis, without changing drawing tool (if you have a custom brush selected for drawing, the whole brush will flip). If you have no tile selected for drawing, but do have a group of tiles selected on a layer, then the flip tool will Flip the selected tiles.":"使用鼠标左键{}单击翻转工具(或使用键盘快捷键\"{}X{}\")将沿{}水平{}轴翻转当前选定要绘制的图块,而不会更改绘制工具(如果您选择了要绘制的自定义画笔,则整个画笔将翻转)。如果没有选定要绘制的图块,但在某个层上选择了一组图块,则翻转工具将翻转选定的图块。",
"Clicking the Mirror tool with the left mouse button {} (or using the keyboard shortcut \" {}Y{}\" ) will mirror the tile currently selected for drawing along the {}vertical {}axis, without changing drawing tool (if you have a custom brush selected for drawing, the whole brush will mirror). If you have no tile selected for drawing, but do have a group of tiles selected on a layer, then the Mirror tool will mirror the selected tiles.":"使用鼠标左键{}(或使用键盘快捷键\"{}Y{}\")单击镜像工具将沿{}垂直{}轴镜像当前选定要绘制的图块,而不会更改绘制工具(如果您选择了要绘制的自定义画笔,则整个画笔将镜像)。如果没有选定要绘制的图块,但在某个层上选择了一组图块,则镜像工具将镜像选定的图块。",
"Clicking the Rotate tool with the left mouse button {} (or using the keyboard shortcut \" {}Z{}\" ) will rotate the tile currently selected for drawing 90° {}clockwise{}, without changing drawing tool (if you have a custom brush selected for drawing, the whole brush will rotate). If you have no tile selected for drawing, but do have a group of tiles selected on a layer, then the Rotate tool will rotate the selected tiles.":"使用鼠标左键{}单击旋转工具(或使用键盘快捷键\"{}Z{}\")将当前选定用于绘制的图块{}顺时针{}旋转90°,而不会更改绘制工具(如果您选择了用于绘制的自定义画笔,则整个画笔将旋转)。如果没有选定要绘制的图块,但在某个层上选择了一组图块,则旋转工具将旋转选定的图块。",
"Clicking this tool enables the Auto tiling paint style. When this is active you can select any tile from the Autotile Libraries tab, and then paint it into the room layer and {}GameMaker{} will automatically change it to match the surrounding tiles, as long as you have correctly set up the {}Auto Tile Tab{}. Note that selecting a tile from the tile set that is not part of the autotile libraries will reset the drawing tool to the standard Pencil tool.":"单击此工具可启用自动图块绘制样式。激活后,您可以从自动图块图库选项卡中选择任何图块,然后将其绘制到房间层中,{}GameMaker{}将自动更改它以匹配周围的图块,只要您正确设置了{}自动图块选项卡{}。请注意,从图块集中选择不属于自动图块库的图块会将绘制工具重置为标准铅笔工具。",
+ "Creating a new text element will create a new Font asset if the project doesn\u0027t have any, or use an existing one.":"如果项目没有字体资源,创建新的文本元素将创建新的字体资源,或者使用现有的字体资源。",
+ "Double-clicking {} on any instance - either in the Room Editor itself or in the properties list - will open a new window to let you modify aspects of that single unique instance:":"双击任何实例上的 {}( 无论是在 Room Editor 本身还是在属性列表中) 都会打开一个新窗口,让您修改该单个唯一实例的各个方面:",
"Double-clicking {} on any instance - either in the room editor itself or in the properties list - will open a new window to let you modify aspects of that single unique instance:":"在房间编辑器本身或属性列表中,双击任何实例上的{} 将打开一个新窗口,您可以在其中修改该单一唯一实例的各个方面:",
"Everything that goes into the room you create in the {}Room Editor{} is placed on a {}layer{}. Layers can be added, removed, and sorted from the Layer Editor, and come in a variety of different types, each with their own set of options and way of working. You aren\u0027t limited to the number of each type of layer, and can have multiple tile layers, or path layers, or instance layers, etc... Each type of layer has its own {}properties window{} where you can set different things depending on the layer type. You can also toggle the layer\u0027s visibility, with invisible layers {}not {}being processed at runtime (but you can make them visible again at any time using the appropriate {}layer function{}).":"进入您在{}房间编辑器{}中创建的房间的所有内容都放置在一个{}层{}上。层可以从层编辑器中添加、删除和排序,并且有各种不同的类型,每种类型都有自己的一组选项和工作方式。您不受每种类型的层的数量限制,可以有多个图块层、路径层或实例层等。每种类型的层都有自己的{}属性窗口{},您可以在其中根据层类型设置不同的设置。您还可以切换层的可见性,在运行时处理不可见层{}而不是{}(但您可以随时使用适当的{}层函数{}使它们再次可见)。",
+ "Everything that goes into the room you create in {}The Room Editor{} is placed on a {}layer{}. Layers can be added, removed, and sorted from the Layer Editor, and come in a variety of different types, each with their own set of options and way of working.":"进入您在 {} 房间编辑器 {} 中创建的房间的所有内容都放置在 {} 层 {} 上。可以从图层编辑器中添加、删除和排序图层,图层有多种不同类型,每种类型都有自己的一组选项和工作方式。",
"Everything that goes into the room you create in {}The Room Editor{} is placed on a {}layer{}. Layers can be added, removed, and sorted from the Layer Editor, and come in a variety of different types, each with their own set of options and way of working. You aren\u0027t limited to the number of each type of layer, and can have multiple tile layers, or path layers, or instance layers, etc. Each type of layer has its own {}properties window{} where you can set different things depending on the layer type. You can also toggle the layer\u0027s visibility, with invisible layers {}not {}being processed at runtime (but you can make them visible again at any time using the function {}{}layer_set_visible{}{}).":"进入您在{}房间编辑器{}中创建的房间的所有内容都放置在一个{}层{}上。层可以从层编辑器中添加、删除和排序,并且有各种不同的类型,每种类型都有自己的一组选项和工作方式。您不受每种类型的层的数量限制,可以有多个图块层、路径层或实例层等。每种类型的层都有自己的{}属性窗口{},您可以在其中根据层类型设置不同的设置。您还可以切换层的可见性,在运行时处理不可见层{}而不是{}(但您可以随时使用适当的层函数{}{}layer_set_visible{}{}使它们再次可见)。",
"Filter/Effects":"滤镜/效果",
"Finally you can give the instance some creation code which will run directly after the object creation event code, and is unique to this instance (so you can, say, set a variable in the object which all instance will have then modify it in the creation code so that it\u0027s a unique value for one instance). Clicking this will chain a {}script window{} to the instance where you can add any functions or modify any variables and this code will be run directly after the instance has been created and the instance {}Create Event{} has been run. Note that you can toggle inheritance of creation code on or off {}independently {}of the instance inheritance.":"最后,您可以为实例提供一些创建代码,该代码将在对象创建事件代码之后直接运行,并且对该实例是唯一的(因此,您可以在对象中设置一个变量,然后所有实例都将在创建代码中对其进行修改,使其成为一个实例的唯一值)。单击此选项会将一个{}脚本窗口{}链接到实例,您可以在其中添加任何函数或修改任何变量,此代码将在创建实例并运行实例{}创建事件{}之后直接运行。请注意,您可以独立于实例继承{}打开或关闭创建代码的继承。",
+ "Finally, for particle systems, you can also set the blend colour and the rotation of the entire particle system.":"最后,对于粒子系统,您还可以设置整个粒子系统的混合颜色和旋转。",
+ "For sequences, you can set the animation speed and the initial {}playhead{} frame, as well as the colour to blend with it (white by default) and the position in the room. You can change the characteristics of sprite assets too, setting a colour to blend it with (white by default), or rotating and flipping it. You can also scale sprites along either or both the axis, and set their position within the room. If the sprite has sub-images, you can choose the animation speed as well as set the initial frame to be shown.":"对于序列,您可以设置动画速度和初始 {} 播放头 {} 帧,以及与之混合的颜色 (默认为白色) 以及房间中的位置。您也可以更改精灵资源的特征,设置与其混合的颜色 (默认为白色),或旋转和翻转它。您还可以沿一个或两个轴缩放精灵,并设置它们在房间内的位置。如果精灵有子图像,您可以选择动画速度以及设置要显示的初始帧。",
+ "From here you can give the placed asset (\"element\") a unique name, however you cannot use this name as an identifier in your game, instead you can pass it into {}{}layer_sprite_get_id{}{} for sprites and {}{}layer_text_get_id{}{} for text (however, names for sequences and particle systems cannot be used at runtime). You can also set whether it is to inherit from the parent room and change the sprite, sequence, font or particle system that you want it to display.":"从这里,您可以为放置的资源 (\" 元素 \") 指定一个唯一的名称,但您不能在游戏中使用该名称作为标识符,而是可以将其传递到精灵的 {}{}layer_sprite_get_id{}{} 和 {}{}layer_text_get_id{}{} 用于文本 (但是,序列和粒子系统的名称不能在运行时使用)。您还可以设置是否从父房间继承并更改您希望其显示的精灵、序列、字体或粒子系统。",
"If you choose a sprite instead, then you can tile that image horizontally or vertically, choose whether to stretch the image so it fills the whole room, and offset the image as you wish. Additionally, if you want to have the background scroll in a direction, you can set the horizontal and/or vertical speed too (each game step it will move along the given axis by the number of pixels that you set here), and you can also re-position the background image by setting the x and y offset values. You can also set the animation speed for the background if the sprite resource that you have selected has multiple sub-images, although this is locked by default to the value that you set in the Sprite Editor for the image used. Finally you can set the depth for the layer explicitly, although again by default this is locked and you can simply drag and reorder the layer order in the Layer Editor to change this value.":"如果您选择的是精灵,则可以水平或垂直图块图像,选择是否拉伸图像以填充整个房间,并根据需要对图像进行偏移。此外,如果你想让背景在一个方向上滚动,你也可以设置水平和/或垂直速度(游戏的每一步都会沿着你在这里设置的像素数沿给定轴移动),你也可以通过设置x和y偏移值来重新定位背景图像。如果选定的精灵资源具有多个子图像,也可以设置背景的动画速度,尽管默认情况下该速度锁定为您在精灵编辑器中为使用的图像设置的值。最后,您可以显式设置层的深度,尽管默认情况下该深度再次处于锁定状态,您只需在层编辑器中拖动并重新排序层顺序即可更改此值。",
"If you choose a sprite instead, then you can tile that image horizontally or vertically, choose whether to stretch the image so it fills the whole room, and offset the image as you wish. Additionally, if you want to have the background scroll in a direction, you can set the horizontal and/or vertical speed too (each game step it will move along the given axis by the number of pixels that you set here), and you can also re-position the background image by setting the x and y offset values. You can also set the animation speed for the background if the sprite resource that you have selected has multiple sub-images, although this is locked by default to the value that you set in {}The Sprite Editor{} for the image used. Finally you can set the depth for the layer explicitly, although again by default this is locked and you can simply drag and reorder the layer order in the Layer Editor to change this value.":"如果您选择的是精灵,则可以水平或垂直图块图像,选择是否拉伸图像以填充整个房间,并根据需要对图像进行偏移。此外,如果你想让背景在一个方向上滚动,你也可以设置水平和/或垂直速度(游戏的每一步都会沿着你在这里设置的像素数沿给定轴移动),你也可以通过设置x和y偏移值来重新定位背景图像。如果选定的精灵资源具有多个子图像,也可以设置背景的动画速度,尽管默认情况下该速度锁定为您在{}精灵编辑器{}中为使用的图像设置的值。最后,您可以显式设置层的深度,尽管默认情况下该深度再次处于锁定状态,您只需在层编辑器中拖动并重新排序层顺序即可更改此值。",
"If you right click {} in the Room Editor window while manipulating a path then you\u0027ll get the following options:":"如果您在操作路径时右键单击\"房间编辑器\"窗口中的{},则将获得以下选项:",
@@ -21,8 +30,10 @@
"In the layer properties shown within the {}Inspector{}, you can apply a filter or effect to the selected layer. This will be applied as a \"single layer\" effect, i.e. its effect will only be applied on that particular layer and not on other layers below it.":"在{}检查器{}中显示的层属性中,可以将滤镜或效果应用于选定的层。这将作为\"单层\"效果应用,即其效果将仅应用于该特定层,而不会应用于其下的其他层。",
"In the layer properties shown within {}The Inspector{}, you can apply a filter or effect to the selected layer. This will be applied as a \"single layer\" effect, i.e. its effect will only be applied to that particular layer and not on other layers below it.":"在{}检查器{}中显示的层属性中,可以将滤镜或效果应用于选定的层。这将作为\"单层\"效果应用,即其效果将仅应用于该特定层,而不会应用于其下的其他层。",
"It is worth noting that each asset on the layer is automatically flagged for exporting when the game is made. However, especially when working with {}inheritance{}, it may be that you don\u0027t want specific assets to be added to the room in the final game. If that is the case, then simply un-checking the \"{}Export{}\" checkbox to the left of the asset in the layer properties list will prevent it from being exported as part of the executable. It is important to note, however, that if you have any code that references that asset, then the game will not run correctly, so use this feature with care.":"值得注意的是,在制作游戏时,层上的每个资源都会被自动标记为要导出。但是,尤其是在处理{}继承{}时,您可能不希望在最终游戏中将特定资源添加到房间中。如果是这种情况,则只需取消选中层属性列表中资源左侧的\"{}导出{}\"复选框即可阻止其作为可执行文件的一部分导出。但是,重要的是要注意,如果您有任何引用该资源的代码,则游戏将无法正确运行,因此请谨慎使用此功能。",
+ "It is worth noting that each asset on the layer is automatically flagged for exporting when the game is made. However, especially when working with {}inheritance{}, it may be that you don\u0027t want specific assets to be added to the room in the final game. If that is the case, then simply un-checking the {} checkbox to the left of the asset in the Element List will prevent it from being exported as part of the executable. It is important to note, however, that if you have any code that references that asset, then the game will not run correctly, so use this feature with care.":"值得注意的是,在制作游戏时,图层上的每个资产都会自动标记为导出。但是,特别是在使用 {} 继承 {} 时,您可能不希望将特定资产添加到最终游戏中的房间中。如果是这种情况,则只需取消选中元素列表中资源左侧的 {} 复选框即可阻止其作为可执行文件的一部分导出。但需要注意的是,如果您有任何引用该资产的代码,那么游戏将无法正确运行,因此请谨慎使用此功能。",
"It is worth noting that each asset on the layer is automatically flagged for exporting when the game is made. However, especially when working with {}inheritance{}, it may be that you don\u0027t want specific sprites to be added to the room in the final game. If that is the case, then simply un-checking the \"{}Export{}\" checkbox to the left of the sprite in the layer properties list will prevent it from being exported as part of the executable. It is important to note, however, that if you have any code that references that asset, then the game will not run correctly, so use this feature with care.":"值得注意的是,在制作游戏时,层上的每个资源都会被自动标记为要导出。然而,尤其是在处理{}继承{}时,你可能不希望在最终游戏中将特定的精灵添加到房间中。如果是这种情况,那么只需取消选中层属性列表中精灵左侧的\"{}导出{}\"复选框将阻止它作为可执行文件的一部分导出。但是,重要的是要注意,如果您有任何引用该资源的代码,则游戏将无法正确运行,因此请谨慎使用此功能。",
"It is worth noting that each instance on a layer is automatically flagged for exporting when the game is made. However, especially when working with inheritance, it may be that you don\u0027t {}want {}specific instances to be added to the room in the final game (or you may have a debug instance in every room and simply want to exclude it from the final game). If that is the case, then simply un-checking the \"{}Export{}\" checkbox to the left of the instance in the list will prevent it from being exported as part of the executable. It is important to note, however, that if you have any code that references the instance, {}then the game will not run correctly{}, so use this feature with care.":"值得注意的是,当制作游戏时,层上的每个实例都会自动标记为要导出。然而,特别是在处理继承时,您可能不{}希望{}在最终游戏中将多个特定实例添加到房间中(或者您可能在每个房间中都有一个调试实例,只是希望将其从最终游戏中排除)。如果是这种情况,则只需取消选中列表中实例左侧的\"{}导出{}\"复选框即可阻止将其作为可执行文件的一部分导出。但是,需要注意的是,如果您有任何引用该实例的代码,则{}游戏将无法正常运行{},因此请谨慎使用此功能。",
+ "It is worth noting that each instance on a layer is automatically flagged for exporting when the game is made. However, especially when working with inheritance, it may be that you don\u0027t {}want {}specific instances to be added to the room in the final game (or you may have a debug instance in every room and simply want to exclude it from the final game). If that is the case, then simply un-checking the {} checkbox to the left of the instance in the Element List will prevent it from being exported as part of the executable. It is important to note, however, that if you have any code that references the instance, {}then the game will not run correctly{}, so use this feature with care.":"值得注意的是,在制作游戏时,层上的每个实例都会自动标记为导出。不过,特别是在使用继承时,您可能不希望将特定实例添加到最终游戏中的房间 (或者您可能在每个房间中都有一个调试实例,而只是想将其排除) 从最后一场比赛开始)。如果是这种情况,则只需取消选中元素列表中实例左侧的 {} 复选框即可阻止其作为可执行文件的一部分导出。但请务必注意,如果您有任何引用该实例的代码,{} 那么游戏将无法正确运行 {},因此请谨慎使用此功能。",
"It is worth noting that you can also add points to the path by clicking the left mouse button {}, as well as remove points using the right mouse button {}, or select a point by clicking on it and dragging it around, {}all within the actual room editor{}, making creating and editing paths very easy (although you can still edit the path in the {}Path Editor{} as normal too). If you hold down {} / {} + {} on different path points, then they will all be selected and you can move them together or delete them all from the menu option (explained below).":"值得注意的是,您还可以通过单击鼠标左键{}将点添加到路径中,也可以使用鼠标右键删除点{},或者通过单击并拖动一个点来选择它,所有这些都是在{}实际的房间编辑器{}中进行的,这使得创建和编辑路径非常容易(尽管您仍然可以像往常一样在{}路径编辑器{}中编辑路径)。如果您在不同的路径点上按住{}/{}+{},则它们都将被选中,您可以将它们一起移动或从菜单选项中全部删除(如下所述)。",
"It is worth noting that you can also add points to the path by clicking the left mouse button {}, as well as remove points using the right mouse button {}, or select a point by clicking on it and dragging it around, {}all within the actual room editor{}, making creating and editing paths very easy (although you can still edit the path in {}The Path Editor{} as normal too). If you hold down {} / {} + {} on different path points, then they will all be selected and you can move them together or delete them all from the menu option (explained below).":"值得注意的是,您还可以通过单击鼠标左键{}向路径添加点,以及使用鼠标右键{}删除点,或者通过单击并拖动点来选择点,{}所有这些都在实际的房间编辑器{}内,使创建和编辑路径非常容易(尽管你仍然可以在{}路径编辑器{}中正常编辑路径)。如果在不同的路径点上按住{}/{}+{},然后它们都将被选中,您可以将它们移动到一起或从菜单选项中删除它们(如下解释)。",
"Layer Types And Properties":"图层类型和属性",
@@ -31,6 +42,7 @@
"Note that you can drag layers up or down in the window to re-order them, and you can select and move multiple layers too using either {} + {} to select from one layer to another (including all those in between) or {} / {} + {} to select layers one at a time. If you place the layers on top of a layer folder, they will be moved and set as sub-layers of the folder you dropped them on to. You can also lock layers so that they cannot be edited by mistake using the lock button {}.":"请注意,您可以在窗口中向上或向下拖动层以重新排序,也可以使用 {}+{} 从一个层选择到另一个层 (包括中间的所有层) 或使用 {}/{}+{} 一次选择一个层来选择和移动多个层。如果将层放置在层文件夹的顶部,它们将被移动并设置为放置它们的文件夹的子层。您还可以使用锁定按钮 {} 锁定层,以防止错误地编辑它们。",
"Note that you can toggle the inheritance for a background from this window too by clicking the button at the very top.":"请注意,您也可以通过单击最上面的按钮从该窗口切换背景的继承。",
"Once you place an asset in the room, you have a certain amount of control over how it looks by double clicking {} on it to open the asset properties window:":"将资源放入房间后,您可以通过在其上双击{}以打开资源属性窗口来对其外观进行一定程度的控制:",
+ "Sprite assets are similar to tiles, only they can be fully animated - if the sprite used has sub-images they will be shown - without the restrictions that are in place for tiles, ie: they aren\u0027t forced to a grid and animations can be any length and speed.":"精灵资源与图块类似,只是它们可以完全动画化 - 如果使用的精灵具有子图像,它们将被显示 - 没有图块的限制,即:它们不会被强制到网格并且动画可以可以是任意长度和速度。",
"The Tile Editing window also permits you to select {}Brushes{}, {}Animated Tiles{} and {}Auto Tiles{} from the Libraries tab, all of which are covered in the section on the {}Tile Set Editor{}.":"图块编辑窗口还允许您从库选项卡中选择{}画笔{}、{}动画图块{}和{}自动图块{},所有这些都在{}图块集编辑器{}上的一节中介绍。",
"The fill tool permits you to fill an entire tilemap layer or a selection of tiles with the current tile brush. The brush you use can be a single tile or a composite brush made up of multiple tiles, or even a tile from the animation library and clicking {} on a layer will then fill in the tiles using the chosen brush. If you have not used the Selection Tool then the fill will work on all consecutive {}empty {}tiles, or all consecutive tiles {}of the same index{}. If you have a selection within the layer, then fill will be constrained to within that selection.":"填充工具允许您用当前的拼贴画笔填充整个拼贴图层或选定的拼贴。您使用的画笔可以是单个图块或由多个图块组成的复合画笔,甚至可以是动画库中的图块,然后单击层上的{} 将使用所选的画笔填充图块。如果您尚未使用选择工具,则填充将在所有连续的{}空的{}图块上进行,或在{}同一索引{}的所有连续图块上进行。如果在层中有选区,则填充将被约束为在该选区内。",
"The layer list can be ordered by clicking {} and dragging an instance in the list to the position required, but it is worth noting that this is purely for organisational purposes within the room editor and if you want to set a specific creation order, please use the {}Creation Order Window{}, which can be opened from the {}Room Properties{} window, or from the {}Room context menu{}.":"可以通过单击{} 并将列表中的实例拖动到所需位置来对层列表进行排序,但值得注意的是,这纯粹是出于房间编辑器内的组织目的,如果您想要设置特定的创建顺序,请使用{}创建顺序窗口{},该窗口可以从{}房间属性{}窗口或从{}房间上下文菜单{}打开。",
@@ -51,16 +63,24 @@
"With the eraser tool you can use the left mouse button {} to erase a given tile in the Room Editor. Essentially, all this does is set the tile index to 0, which is the reserved \"empty\" tile.":"使用橡皮擦工具,您可以使用鼠标左键{}擦除房间编辑器中的给定图块。实际上,所有这些操作都是将图块索引设置为0,即保留的\"空\"图块。",
"With the eraser tool you can use the left mouse button {} to erase a given tile in the room editor. Essentially, all this does is set the tile index to 0, which is the reserved \"empty\" tile.":"使用橡皮擦工具,您可以使用鼠标左键{}擦除房间编辑器中的给定图块。实际上,所有这些操作都是将图块索引设置为0,即保留的\"空\"图块。",
"With this tool you can enable/disable {}inheritance{} for specific tiles on a given layer. For this to work, the room must first be a child room and the layer must have it\u0027s inheritance switched {}on {}in the layer properties. When in this state, the room editor will colour all inherited tiles red by default, and clicking the right mouse button {} will switch off inheritance for that tile, and clicking the left mouse button {} will switch it back on again. In this way you can re-use elements from \"base\" rooms, only selectively changing the tiles that you require while inheriting all the rest.":"使用此工具,您可以为给定层上的特定图块启用/禁用{}继承{}。要实现这一点,房间必须首先是一个子房间,并且层的继承必须在层属性{}中{}打开。在此状态下,房间编辑器将默认将所有继承的图块涂成红色,单击鼠标右键{}将关闭该图块的继承,单击鼠标左键{}将重新打开它。通过这种方式,您可以重复使用\"基本\"房间中的元素,只需有选择地更改所需的图块,同时继承所有其余的图块。",
+ "You aren\u0027t limited to the number of each type of layer, and can have multiple tile layers, or path layers, or instance layers, etc. Each type of layer has its own {}properties {}where you can set different things depending on the layer type.":"您不受每种类型层的数量限制,并且可以拥有多个图块层、路径层或实例层等。每种类型的层都有自己的 {} 属性 {},您可以根据需要设置不同的内容关于图层类型。",
"You can add a new Filter/Effect layer by clicking on the {} button. This will add the new layer, and then open up the asset layer properties window:":"您可以通过单击{} 按钮添加新的滤镜/效果层。这将添加新层,然后打开资源层属性窗口:",
"You can add a new asset layer by clicking on the {} button. This will add the new layer, and then open up the asset layer properties window:":"您可以通过单击{}按钮来添加新的资源层。这将添加新层,然后打开资源层属性窗口:",
+ "You can add a new asset layer by clicking on the {} button. This will add the new layer, open the {}Element List{} on the side and display layer properties in {}The Inspector{}:":"您可以通过点击 {} 按钮添加新的资源层。这将添加新层,打开侧面的 {} 元素列表 {} 并在 {} 检查器 {} 中显示层属性:",
"You can add a new background layer by clicking on the {} button. This will add the new layer, and then open up the background properties window:":"您可以通过单击{} 按钮来添加新的背景层。这将添加新层,然后打开背景属性窗口:",
"You can add a new instance layer by clicking on the {} button. This will add the new layer, and then open up the instance properties window:":"您可以通过点击{} 按钮来添加新的实例层。这将添加新层,然后打开实例属性窗口:",
+ "You can add a new instance layer by clicking on the {} button. This will add the new layer, open the {}Element List{} on the side and display layer properties in {}The Inspector{}:":"您可以通过点击 {} 按钮添加新的实例层。这将添加新层,打开侧面的 {} 元素列表 {} 并在 {} 检查器 {} 中显示层属性:",
"You can add a new path layer by clicking on the {} button. This will add the new layer, and then open up the path properties window:":"您可以通过单击{}按钮来添加新的路径层。这将添加新层,然后打开路径属性窗口:",
"You can add a new tile layer by clicking on the {} button. This will add the new layer and adds a single {}tile map{} to it, then opens up the {}Tile Layer Properties{} window and the {}Tile Editing {}window:":"您可以通过单击{}按钮添加新的图块层。这将添加新层并向其添加单个{}图块地图{},然后打开{}图块层属性{}窗口和{}图块编辑{}窗口:",
"You can add a new {}tile map{} layer by clicking on the {} button. This will add the new layer, and then open up the {}Tile Map Layer Properties{} window and the {}Tile Editing {}window:":"您可以通过单击{}按钮添加新的{0}图块地图{1}层。这将添加新的层,然后打开{}图块地图层属性{}窗口和{}图块编辑{}窗口:",
+ "You can add more instances to a layer by opening up {}The Asset Browser{} and then dragging objects from there into the room, or alternatively you can select an instance from the Asset Browser and then press and hold {} to preview the resource \"in-situ\", and if you additionally click the left mouse button {} you can add the instance and even \"paint\" it into the room layer by maintaining the button pressed and moving the mouse.":"您可以通过打开 {} 资源浏览器 {} 然后将对象从资源浏览器拖到房间中来向层添加更多实例,或者您也可以从资源浏览器中选择一个实例,然后按住 {} 预览资源 \" 原位\",如果您另外单击鼠标左键 {},您可以添加实例,甚至可以通过按住按钮并移动鼠标来将其 \" 绘制 \" 到房间图层中。",
+ "You can also toggle the layer\u0027s visibility, with invisible layers {}not {}being processed at runtime (but you can make them visible again at any time using the function {}{}layer_set_visible{}{}).":"您还可以切换图层的可见性,不可见图层 {} 不会 {} 在运行时处理 (但您可以随时使用函数 {}{}layer_set_visible{}{} 让它们再次可见)。",
"You can create Single-Layer FX using {}The Inspector{}.":"您可以使用{}检查器{}创建单层FX。",
+ "You can drag {}Sequences{} into an asset layer, which are animated \"collections\" of sprites, sounds and instances that will play when the room is entered. You can also drag {}Particle Systems{}, which contain emitters that \"emit\" particles according to predefined formulas which results in an animation.":"您可以将 {} 序列 {} 拖到资产层中,它们是精灵、声音和实例的动画 \" 集合\",在进入房间时将播放。您还可以拖动 {} 粒子系统 {},其中包含根据预定义公式 \" 发射 \" 粒子的发射器,从而产生动画。",
+ "You can rename any layer from this editor by doing a slow double click on the name (note that you cannot use anything except letters numbers and the underbar {}_{} character for names) and you can also switch its visibility on or off by clicking the eye icon {}. If the room has inherited layers from a parent room, you can toggle the inheritance from the button at the bottom, but note that this will affect all layers (see {}Room Inheritance{} for more information on inheritance). You can also use {} or {} / {} and left click {} on multiple layers to select them for duplication or deletion (these options are also available from the right mouse {} menu).":"您可以通过缓慢双击名称来重命名此编辑器中的任何图层 (请注意,您不能使用除字母数字和下划线 {}_{} 字符之外的任何名称),您还可以通过以下方式打开或关闭其可见性:单击眼睛图标 {}。如果房间继承了父房间的层,您可以通过底部的按钮切换继承,但请注意,这将影响所有层 (有关继承的详细信息,请参阅 {} 房间继承 {})。您还可以使用 {} 或 {}/{},然后在多个图层上左键单击 {} 以选择它们进行复制或删除 (这些选项也可以从鼠标右键 {} 菜单中找到)。",
"{}An asset layer contains graphical assets (sprites, sequences and particle systems) that are placed into the room independently of instances, and you can place them by either dragging them in from the {}Asset Browser{} or by selecting the one you want in the Asset Browser and then using {} + {} to \"paint\" them. Sprite assets are similar to tiles, only they can be fully animated - if the sprite used has sub-images they will be shown - without the restrictions that are in place for tiles, ie: they aren\u0027t forced to a grid and animations can be any length and speed. Sequences are \"collections\" of sprites, sounds and instances that will play when the room is entered. Particle systems contain emitters that \"emit\" particles according to predefined formulas which results in an animation.":"{}资源层包含独立于实例放置到房间中的图形资源(精灵、序列和粒子系统),您可以通过将它们从{}资源浏览器{}拖入其中,或通过在资源浏览器中选择所需资源,然后使用 {}+{} 对其进行绘制来放置它们。精灵资源类似于图块,只是它们可以完全动画-如果使用的精灵有子图像,它们将被显示-没有图块的限制,即:它们不会强制到网格,动画可以是任何长度和速度。序列是当进入房间时将播放的精灵、声音和实例的\"集合\"。粒子系统包含发射器,这些发射器根据预定义的公式发射粒子,从而生成动画。",
"{}An asset layer contains graphical assets (sprites, sequences and particle systems) that are placed into the room independently of instances, and you can place them by either dragging them in from {}The Asset Browser{} or by selecting the one you want in the Asset Browser and then using {} + {} to \"paint\" them. Sprite assets are similar to tiles, only they can be fully animated - if the sprite used has sub-images they will be shown - without the restrictions that are in place for tiles, ie: they aren\u0027t forced to a grid and animations can be any length and speed. Sequences are \"collections\" of sprites, sounds and instances that will play when the room is entered. Particle systems contain emitters that \"emit\" particles according to predefined formulas which results in an animation.":"{}资源层包含独立于实例放置到房间中的图形资源(精灵、序列和粒子系统),您可以通过将它们从{}资源浏览器{}拖入其中,或通过在资源浏览器中选择所需资源,然后使用 {}+{} 对其进行绘制来放置它们。精灵资源类似于图块,只是它们可以完全动画-如果使用的精灵有子图像,它们将被显示-没有图块的限制,即:它们不会强制到网格,动画可以是任何长度和速度。序列是当进入房间时将播放的精灵、声音和实例的\"集合\"。粒子系统包含发射器,这些发射器根据预定义的公式发射粒子,从而生成动画。",
+ "{}An asset layer contains graphical assets (sprites, sequences, text and particle systems) that are placed into the room independently of instances, and you can place them by either dragging them in from {}The Asset Browser{} or by selecting the one you want in the Asset Browser and then using {} + {} to \"paint\" them.":"{} 资产层包含独立于实例放置到房间中的图形资产 (精灵、序列、文本和粒子系统),您可以通过从 {} 资产浏览器 {} 中拖动它们或选择在资源浏览器中找到您想要的一个,然后使用 {}+{} 来 \" 绘制 \" 它们。",
"{}An asset layer is simply a graphical asset (sprite or sequence) that has been placed into the room independently of instances, and you can place them by either dragging them in from the {}Asset Browser{} or by selecting the one you want in the Asset Browser and then using {} + {} to \"paint\" them. Sprite assets are similar to tiles, only they can be fully animated - if the sprite used has sub-images they will be shown - without the restrictions that are in place for tiles, ie: they aren\u0027t forced to a grid and animations can be any length and speed. Sequences are \"collections\" of sprites, sounds and instances that will play when the room is entered.":"{}资源层只是一个独立于实例放置到房间中的图形资源(精灵或序列),您可以通过将它们从{}资源浏览器{}拖入其中,或通过在资源浏览器中选择所需资源,然后使用{}+{} 对它们进行绘制来放置它们。精灵资源类似于图块,只是它们可以完全动画-如果使用的精灵有子图像,它们将被显示-没有图块的限制,即:它们不会强制到网格,动画可以是任何长度和速度。序列是当进入房间时将播放的精灵、声音和实例的\"集合\"。",
"{}Assets{}{}Assets{}":"{}资源{}{}资源{}",
"{}AutoTile{}":"{}自动图块{}",
@@ -70,6 +90,7 @@
"{}Fill{}":"{}填充{}",
"{}Filter/Effect{}{}Filter/Effect{}":"{}滤镜/效果{}{}滤镜/效果{}",
"{}Flip{}":"{}翻转{}",
+ "{}For text, you can change the multi-line string that appears, its colour, rotation, scale, and position, same as a sequence or sprite graphic. Text-specific options can also be edited, such as the {}origin{} (which acts as a negative offset), {}frame size{} (only used when wrapping is enabled), {}wrapping{}, {}alignment{}, {}character spacing{} and {}line spacing{}. This text functionality is similar to {}Text in Sequences{}, refer to that page for more information on text editing behaviour, especially {}Resize Behaviour{}.":"{} 对于文本,您可以更改显示的多行字符串及其颜色、旋转、比例和位置,与序列或精灵图形相同。还可以编辑特定于文本的选项,例如 {} 原点 {}( 充当负偏移)、{} 帧大小 {}( 仅在启用换行时使用)、{} 换行 {}、{} 对齐 {}、{} 字符间距 {} 和 {} 行间距 {}。此文本功能类似于 {} 序列中的文本 {},请参阅该页面以了解有关文本编辑行为的更多信息,尤其是 {} 调整大小行为 {}。",
"{}From here you can give the asset a unique name, set whether it is to inherit from the parent room, or change the sprite or sequence that you want it to display. For sequeunces, you can set the animation speed and the initial {}playhead{} frame, as well as the colour to blend with it (white by default) and the position in the room. You can change the characteristics of sprite assets too, setting a colour to blend it with (white by default), or rotating and flipping it. You can also scale sprites along either or both the axis, and set their position within the room. If the sprite has sub-images, you can choose the animation speed as well as set the initial frame to be shown.":"{}您可以在此处为资源指定唯一的名称,设置是否从父房间继承,或更改您希望其显示的精灵或序列。对于保留效果,您可以设置动画速度和初始 {}播放头{} 帧,以及要与之混合的颜色(默认情况下为白色)以及在房间中的位置。 您还可以更改精灵资源的特征,将其设置为与之混合的颜色(默认情况下为白色),或旋转和翻转。您还可以沿其中一个或两个轴缩放精灵,并设置它们在房间内的位置。如果精灵有子图像,您可以选择动画速度以及设置要显示的初始帧。",
"{}From here you can give the asset a unique name, set whether it is to inherit from the parent room, or change the sprite, sequence or particle system that you want it to display. For sequences, you can set the animation speed and the initial {}playhead{} frame, as well as the colour to blend with it (white by default) and the position in the room. You can change the characteristics of sprite assets too, setting a colour to blend it with (white by default), or rotating and flipping it. You can also scale sprites along either or both the axis, and set their position within the room. If the sprite has sub-images, you can choose the animation speed as well as set the initial frame to be shown. Finally, for particle systems, you can also set the blend colour and the rotation of the entire particle system.":"{}您可以在此处为资源指定唯一的名称,设置它是否继承自父房间,或更改您希望其显示的精灵、序列或粒子系统。对于序列,您可以设置动画速度和初始{}播放头{}帧,以及要与其混合的颜色(默认情况下为白色)以及在房间中的位置。您还可以更改精灵资源的特征,将其设置为与之混合的颜色(默认情况下为白色),或旋转和翻转。您还可以沿其中一个或两个轴缩放精灵,并设置它们在房间内的位置。如果精灵有子图像,您可以选择动画速度以及设置要显示的初始帧。最后,对于粒子系统,还可以设置整个粒子系统的混合颜色和旋转。",
"{}Here you can open the layer properties window for the selected layer, delete the layer, rename the layer, or add a {}sub layer{}. If you choose to add a sub layer, the new layer will be created under it, tabbed to the right. You can then choose to have the sub layer inherit its properties from the parent layer, and also set whether it should inherit the visibility from the parent layer.":"{}您可以在此打开所选层的层属性窗口、删除层、重命名层或添加{}子层{}。如果选择添加子层,则会在子层下创建新层,并将其放置在右侧的选项卡中。然后,可以选择让子层继承父层的属性,还可以设置子层是否应该继承父层的可见性。",
@@ -87,16 +108,25 @@
"{}Rectangle{}":"{}矩形{}",
"{}Rotate{}":"{}旋转{}",
"{}Selection{}":"{}选择{}",
+ "{}The image above shows the Layer Editor, with the current layers listed at the top, and the different buttons for creating layers at the bottom.":"{} 上图显示了图层编辑器,当前图层列在顶部,用于创建图层的不同按钮列在底部。",
"{}The image above shows the Layer Editor, with the current layers listed at the top, and the different buttons for creating layers at the bottom. You can rename any layer from this editor by doing a slow double click on the name (note that you cannot use anything except letters numbers and the underbar {}_{} character for names) and you can also switch its visibility on or off by clicking the eye icon {}. If the room has inherited layers from a parent room, you can toggle the inheritance from the button at the bottom, but note that this will affect all layers (see {}Room Inheritance{} for more information on inheritance). You can also use {} or {} / {} and left click {} on multiple layers to select them for duplication or deletion (these options are also available from the right mouse {} menu).":"{}上图显示了层编辑器,当前层在顶部列出,用于创建层的不同按钮在底部。您可以通过在名称上缓慢地双击来重命名此编辑器中的任何层(请注意,您不能使用除字母、数字和下划线{}\"_\"{}字符以外的任何名称),您还可以通过单击眼睛图标{}来打开或关闭其可见性。如果房间继承了父房间的层,您可以通过底部的按钮切换继承,但请注意,这将影响所有层(有关继承的更多信息,请参阅{}房间继承{})。您也可以使用{}或{}/{},然后在多个层上左键单击{}以选择要复制或删除的层(这些选项也可以从鼠标右键{}菜单中选择)。",
"{}The image above shows the layer editor, with the current layers being listed at the top, and the different buttons for creating layers at the bottom. You can rename any layer from this editor by doing a slow double click on the name (note that you cannot use anything except letters numbers and the underbar \"_\" character for names) and you can also switch its visibility on or off by clicking the eye icon {}. If the room has inherited layers from a parent room, you can toggle the inheritance from the button at the bottom, but note that this will affect all layers (see {}here{} for more information on inheritance). You can also use {} or {} / {} and left click {} on multiple layers to select them for duplication or deletion (these options are also available from the right mouse {} menu).":"{}上图显示了层编辑器,当前层在顶部列出,用于创建层的不同按钮在底部。您可以通过在名称上缓慢地双击来重命名此编辑器中的任何层(请注意,您不能使用除字母、数字和下划线\"_\"字符以外的任何名称),您还可以通过单击眼睛图标{}来打开或关闭其可见性。如果房间继承了父房间的层,您可以通过底部的按钮切换继承,但请注意,这将影响所有层(有关继承的更多信息,请参阅{}此处{})。您也可以使用{}或{}/{},然后在多个层上左键单击{}以选择要复制或删除的层(这些选项也可以从鼠标右键{}菜单中选择)。",
"{}The image above shows the layer editor, with the current layers being listed at the top, and the different buttons for creating layers at the bottom. You can rename any layer from this editor by doing a slow double click on the name (note that you cannot use anything except letters numbers and the underbar \"_\" character for names) and you can also switch its visibility on or off by clicking the eye icon {}. If the room has inherited layers from a parent room, you can toggle the inheritance from the button at the bottom, but note that this will affect all layers (see {}Room Inheritance{} for more information on inheritance). You can also use {} or {} / {} and left click {} on multiple layers to select them for duplication or deletion (these options are also available from the right mouse {} menu).":"{}上图显示了层编辑器,当前层在顶部列出,用于创建层的不同按钮在底部。您可以通过在名称上缓慢地双击来重命名此编辑器中的任何层(请注意,您不能使用除字母、数字和下划线\\\"_\\\"字符以外的任何名称),您还可以通过单击眼睛图标{}来打开或关闭其可见性。如果房间继承了父房间的层,您可以通过底部的按钮切换继承,但请注意,这将影响所有层(有关继承的更多信息,请参阅{}房间继承{})。您也可以使用{}或{}/{},然后在多个层上左键单击{}以选择要复制或删除的层(这些选项也可以从鼠标右键{}菜单中选择)。",
+ "{}The sidebar shows a list of all the instances that are currently on the layer. See: {}Element List{}":"{} 侧边栏显示当前位于该层上的所有实例的列表。请参阅:{} 元素列表 {}",
"{}This means that all \"affected\" layers will have the selected filter applied to them (here, \"Desaturate\") as they are below an FX layer. Any layers above the FX layer will remain unaffected.":"{}这意味着所有\"受影响\"的层都将应用选定的滤镜(这里是\"去饱和化\"),因为它们位于FX层之下。FX层上方的任何层都将保持不受影响。",
"{}This window simply shows a list of all the instances that are currently on the layer. You can add more instances to a layer by opening up the {}Asset Browser{} and then dragging objects from there into the room, or alternatively you can select an instance from the Asset Browser and then press and hold {} to preview the resource \"in-situ\", and if you additionally click the left mouse button {} you can add the instance and even \"paint\" it into the room layer by maintaining the button pressed and moving the mouse.":"{}此窗口仅显示当前层上的所有实例的列表。您可以通过打开{}资源浏览器{}并将对象从其中拖动到房间来向层添加更多实例,或者也可以从资源浏览器中选择一个实例,然后按住{} 以\"就地\"预览资源,如果另外单击鼠标左键{} ,则可以添加实例,甚至通过按住按钮并移动鼠标将其\"绘制\"到房间层中。",
"{}Tile Maps{}{}Tile Maps{}":"{}图块地图{}{}图块地图{}",
"{}Tiles{}{}Tiles{}":"{}图块{}{}图块{}",
+ "{}You can also edit an asset element by selecting it and modifying its properties in {}The Inspector{}.":"{} 您还可以通过选择资产元素并在 {} 检查器 {} 中修改其属性来编辑该资产元素。",
+ "{}You can also edit an instance by selecting it and modifying its properties in {}The Inspector{}.":"{} 您还可以通过在 {} 检查器 {} 中选择实例并修改其属性来编辑实例。",
+ "{}You can place text by dragging a {}Font asset{} into the room, or pressing the {} icon in the {}Layer Toolbox{} at the top and then clicking in the room where you want to place the text. The default text that appears on a new text element can be changed from the {}Room Editor Preferences{}.":"{} 您可以通过将 {} 字体资源 {} 拖动到房间中,或按顶部 {} 图层工具箱 {} 中的 {} 图标,然后点击要放置文本的房间来放置文本。新文本元素上显示的默认文本可以通过 {} 房间编辑器首选项 {} 进行更改。",
"{}{}IMPORTANT{}{} There is a minimum and maximum layer depth of -16000 to 16000. Anything placed on a layer outside that range will not be drawn although all events will still run as normal for anything on the layer.":"{}{}重要{}{} 有一个最小和最大的层深在-16000到16000之间。放置在该范围之外的层上的任何内容都不会被绘制,尽管该层上的所有事件仍将正常运行。",
"{}{}IMPORTANT{}{} There is a minimum and maximum layer depth of {}-16000{} to {}16000{}. Anything placed on a layer outside that range will not be drawn although all events will still run as normal for anything on the layer.":"{}{}重要{}{} 有一个最小和最大的层深在 {}-16000{} 到 {}16000{} 之间。放置在该范围之外的层上的任何内容都不会被绘制,尽管该层上的所有事件仍将正常运行。",
"{}{}NOTE{}{} If you use the Selection Tool {} to select a group of tiles in the Room Editor canvas and then either cut or copy them, they will temporarily become the current brush for painting.":"{}{}注意{}{} 如果您使用选择工具{}在房间编辑器画布中选择一组瓷砖,然后剪切或复制它们,它们将暂时成为当前绘画画笔。",
"{}{}NOTE{}{} In the actual editor window where you place the different assets on their layers, you can hold down \"{}P{}\" + click anywhere to instantly select an asset and skip to the layer that it has been placed on.":"{}{}注意{}{} 在放置不同资源的实际编辑窗口中,您可以按住\"{}P{}\"并在任意位置单击,以立即选择资源并跳到已放置该资源的层。",
- "{}{}NOTE{}{} You can toggle the inheritance for a background from this window too by clicking the button at the very top.":"{}{}注意{}{} 您也可以通过单击最上面的按钮从该窗口切换背景的继承。"
+ "{}{}NOTE{}{} In the room canvas where you place the different assets on their layers, you can hold down \"{}P{}\" + click anywhere to instantly select an asset and skip to the layer that it has been placed on.":"{}{} 注意 {}{} 在房间画布中,您将不同的资源放置在其层上,您可以按住 \"{}P{}\" 并点击任意位置以立即选择资源并跳到其所在的层被放置在.",
+ "{}{}NOTE{}{} In-game, this name is a handle to the instance. See {}Data Types{} for more info.":"{}{} 注意{}{} 在游戏中,此名称是实例的句柄。如需了解更多信息,请参阅 {} 数据类型 {}。",
+ "{}{}NOTE{}{} Text elements can be modified at runtime using {}Text Element Functions{}.":"{}{} 注意{}{} 可以使用 {} 文本元素函数 {} 在运行时修改文本元素。",
+ "{}{}NOTE{}{} You can toggle the inheritance for a background from this window too by clicking the button at the very top.":"{}{}注意{}{} 您也可以通过单击最上面的按钮从该窗口切换背景的继承。",
+ "{}{}TIP{}{} The image above shows an asset layer with text inside it, and an {}Outline filter{} applied to it through {}The Inspector{}. Filters/effects can be used in this way to apply visual effects to any type of layer.":"{}{} 提示{}{} 上图显示了一个资产层,其中包含文本,以及通过 {} 检查器 {} 应用于该层的 {} 大纲过滤器 {}。可以通过这种方式使用滤镜 / 效果将视觉效果应用于任何类型的图层。"
}
\ No newline at end of file
diff --git a/language/zh/www/The_Asset_Editors/Room_Properties/Room_Properties.json b/language/zh/www/The_Asset_Editors/Room_Properties/Room_Properties.json
index 117fc9c1c..947217b6d 100644
--- a/language/zh/www/The_Asset_Editors/Room_Properties/Room_Properties.json
+++ b/language/zh/www/The_Asset_Editors/Room_Properties/Room_Properties.json
@@ -3,15 +3,20 @@
"A room has to have a size and this is defined by the values that you input for its width and height in pixels.":"房间必须有大小,这是由您为其宽度和高度输入的值(以像素为单位)定义的。",
"After that you have the option to {}Clear Display Buffer{}. This option, when checked, pre-fills the {}display buffer{} with a colour before drawing anything else for a particular frame. If you know that your views are going to be covering the whole screen at all times or that you have a fullscreen, opaque background being drawn, then you can un-check this, which saves a redraw and so helps optimise your game.":"之后,您可以选择{}清除显示缓冲区{}。如果选中此选项,则在为特定帧绘制任何其他内容之前,会使用颜色预先填充{}显示缓冲区{}。如果你知道你的视窗将一直覆盖整个屏幕,或者你有一个全屏的,不透明的背景被绘制,那么你可以取消选中这个选项,这样可以节省重画,从而帮助优化你的游戏。",
"Before you can use the built in physics functions in your games, you must tell {}GameMaker{} that the room is a physics room. To do this, you must tick the option to {}Enable Physics {}at the top of the {}Room Physics{} section (you can also toggle the inheritance of this section independently of the rest of the room settings). Once you have done that you can then continue on to set up the physics world properties, which are some basic properties that you must have pre-defined before your room will allow physics instances to work as such. For a more precise control over the world you can use code (see the {}Physics Functions{} for more information).":"在您的游戏中使用内置物理功能之前,您必须告诉 {}GameMaker{} 该房间是一个物理室。为此,您必须勾选 {} 房间物理 {} 部分顶部的 {} 启用物理 {} 选项 (您也可以独立于其他房间设置切换此部分的继承)。完成此操作后,您可以继续设置物理世界属性,这些属性是一些基本属性,您必须先预定义这些属性,然后您的房间才能允许物理实例按此方式工作。为了更精确地控制世界,你可以使用代码 (有关更多信息,请参阅 {} 物理函数 {})。",
+ "Camera and View Port Properties":"相机和视口属性",
"Cameras And Viewports":"摄影机和视口",
+ "Cameras also have the {}Object Following {}option. This is for when you want the camera to \"follow\" (i.e. maintain the view focused on) a certain object. To do this you must click {} on the menu icon and select an object from the list that pops up (if there are multiple instances of this object in the room, only one of them is followed by the camera). The camera will now keep track of the x and y position of that instance to follow it.":"相机还具有 {} 对象跟随 {} 选项。这适用于当您希望相机 \" 跟随 \"( 即保持视图聚焦) 某个对象时。为此,您必须点击菜单图标上的 {},然后从弹出的列表中选择一个对象 (如果房间中有该对象的多个实例,则摄像机仅跟踪其中一个)。相机现在将跟踪该实例的 x 和 y 位置以跟随它。",
+ "Cameras, Views and View Ports":"相机、视图和视口",
"Clear Display Buffer":"清除显示缓冲区",
"Finally you can indicate the {}horizontal{} and {}vertical speed {}at which the camera moves when the character has reached the buffer zone, and this has a default value of -1. This default value is basically \"instantaneous\" and means that the moment the follow instance is outside the horizontal border or vertical border buffer zone, the view will skip to its current position. Now, this is not always what you want and so you can set the vertical and horizontal scrolling speed for the camera by setting the values to something other than -1. Note that a value of 0 will cause the view to not move at all, and any other positive value is how many pixels it will move in any frame, so setting the horizontal speed to 5 will have the view follow the object at 5 pixels per frame horizontally.":"最后,您可以指示角色到达缓冲区时摄影机移动的{}水平{}和{}垂直速度{},其默认值为-1。这个缺省值基本上是\"瞬时\"的,意味着当下面的实例超出水平边框或垂直边框缓冲区时,视图将跳到其当前位置。现在,这并不总是您想要的,因此您可以通过将值设置为-1以外的值来设置相机的垂直和水平滚动速度。请注意,值为0将导致视图完全不移动,任何其他正值都是它将在任何帧中移动的像素数,因此将水平速度设置为5将使视图以每帧5像素的水平方向跟随对象。",
+ "Finally you can indicate the {}horizontal{} and {}vertical speed {}at which the camera moves when the character has reached the buffer zone, and this has a default value of -1. This default value is basically \"instantaneous\" and means that the moment the follow instance is outside the horizontal border or vertical border buffer zone, the view will move. Now, this is not always what you want and so you can set the vertical and horizontal scrolling speed for the camera by setting the values to something other than -1. Note that a value of 0 will cause the view to not move at all, and any other positive value is how many pixels it will move in any frame, so setting the horizontal speed to 5 will have the view follow the object at 5 pixels per frame horizontally.":"最后,您可以指定角色到达缓冲区时相机移动的 {} 水平 {} 和 {} 垂直速度 {},默认值为 -1。这个默认值基本上是 \" 瞬时 \" 的,意味着当跟随实例超出水平边界或垂直边界缓冲区时,视图就会移动。现在,这并不总是您想要的,因此您可以通过将值设置为 -1 以外的值来设置相机的垂直和水平滚动速度。请注意,值为 0 将导致视图根本不移动,任何其他正值都是它将在任何帧中移动多少像素,因此将水平速度设置为 5 将使视图以每帧 5 像素的速度跟随对象水平框架。",
"Finally you must set the ratio of{} Pixels To Meters{} for {}GameMaker{} to use as a base for all its physics calculations. This is because the physics functions work on real-world measurements, which is why we must set this value, and you\u0027ll want to adjust this setting until the average pixel size of the objects you are using translates roughly into simulated physics objects of an appropriate size.":"最后,您必须为 {}GameMaker{} 设置 {} 像素与米{}的比率,以用作其所有物理计算的基础。这是因为物理函数适用于真实世界的测量,这就是我们必须设置此值的原因,您需要调整此设置,直到您正在使用的对象的平均像素大小大致转换为适当大小的模拟物理对象。",
"For clearing views, please see {}Clear Viewport Background{}.":"有关清除视图,请参阅{}清除视窗背景{}。",
"However if you have multiple views that, when on-screen leave open spaces, or your background has transparent parts - you can check this so any empty areas are filled in with the draw colour of your choice. Currently this colour can only be set through code using {}{}window_set_colour(){}{}.":"但是,如果您有多个视图,当屏幕上留有空白处,或者您的背景有透明部分时-您可以选中此选项,以便使用您选择的绘制颜色填充任何空白区域。 目前,此颜色只能通过代码使用{}{}window_set_color(){}{}进行设置。",
"Instance Creation Order":"实例创建顺序",
"It should be noted that enabling physics in a room means that all physics enabled instances in the room {}must use the physics functions and variables to move{}. Basically, you have \"traditional\" movement, where you can set the X/Y position of an instance or set its speed and direction, and then you have the \"physics\" movement, which requires physical forces and impulses to move around. These systems are {}mutually exlusive{}, and you cannot move a physics instance using non-physics functions and you cannot move a non-physics instance using the physics functions.":"需要注意的是,在房间中启用物理意味着房间中所有启用物理的实例都{}必须使用物理函数和变量来移动{}。基本上,你有\"传统的\"移动,你可以设置一个实例的X/Y位置或设置它的速度和方向,然后你就有了\"物理\"移动,它需要物理力和脉冲来四处移动。这些系统是{}互不相关的{},您不能使用非物理函数移动物理实例,也不能使用物理函数移动非物理实例。",
"Normally, when you leave a room and return to the same room later, that room is reset to its initial settings. This is usually fine for most games but it may not be what you want in, for example, an RPG or any non-linear game, where you want to come and go between rooms and have them be the way you left it the last time. Checking the box labelled {}Persistent {}will do exactly that. The room status will be remembered and when you return to it later, it will be exactly the same as you left it, with it only being reset to the start state when the game is restarted. Note that there is {}one {}exception to this - if you marked certain objects as being persistent, instances of this object will {}not {}stay in the room but move to the next room.":"通常,当您离开房间并稍后返回同一房间时,该房间将被重置为其初始设置。这通常适用于大多数游戏,但它可能不是你想要的,例如,RPG或任何非线性游戏,在这些游戏中,你想在房间之间来回穿梭,让它们保持上次离开时的样子。选中标记为{}持续{}的框就可以做到这一点。房间状态将被记住,当您稍后返回它时,它将与您离开它时完全相同,只有在游戏重新开始时才会重新设置为开始状态。请注意,这有{}一个{}例外--如果您将某些对象标记为永久对象,则此对象的实例将{}不会{}留在房间中,而会移动到下一个房间。",
+ "Object Following":"物体跟随",
"Persistent":"持续",
"Please realise that the overall screen area is {}always defined as a rectangular area{}, so your ports, even when offset, will form a rectangle, with any empty spaces being filled in by the window colour of the {}display buffer{}, meaning that in these circumstances you should always have {}Clear Display Buffer{} checked or else you will get odd artefacts drawn in the spaces between ports. The image below illustrates this, where there are two offset view ports visible, yet they make a square window, and \"underneath\" there are lines being drawn to the display buffer:":"请注意,整个屏幕区域{}始终定义为矩形区域{},因此您的端口即使在偏移时也会形成一个矩形,任何空白区域都将由{}显示缓冲区{}的窗口颜色填充,这意味着在这些情况下,您应该始终选中{}清除显示缓冲区{},否则您将在端口之间的空间中绘制奇怪的人工制品。下图说明了这一点,其中有两个可见的偏移视图口,但它们形成了一个正方形窗口,并且在其下面绘制了到显示缓冲区的线:",
"Room Physics":"房间物理",
@@ -20,9 +25,13 @@
"The final button in the Room Properties permits you to open the {}Instance Creation Order{} window:":"房间属性中的最后一个按钮允许您打开{}实例创建顺序{}窗口:",
"The next set of properties for the room that you can define are those relating to the room {}Camera{} and {}Viewports{}. Camera views give a mechanism for drawing different parts of your room at different places on the screen, or for drawing just a part of your room to cover the whole screen. For example, in most platform games, the camera view follows the main character, as, if you could see the whole level on the screen, your character would be too small to see and there would be no surprises for the player. Camera views can also be used in multi-player games or co-op games, as they permit you to create a split-screen setup in which in one part of the screen you see one player and in another part you see the other player. This can all be easily achieved in {}GameMaker{} using camera views.":"您可以为房间定义的下一组属性是与房间{}相机{}和{}视口{}. 相机视图相关的属性,这些属性提供了一种机制,用于在屏幕上的不同位置绘制房间的不同部分,或仅绘制房间的一部分以覆盖整个屏幕。例如,在大多数平台游戏中,相机视图跟随主要角色,因为如果你可以在屏幕上看到整个关卡,你的角色会太小而看不到,对玩家来说不会有任何惊喜。摄像机视图也可以用于多人游戏或合作游戏,因为它们允许您创建一个分屏设置,在屏幕的一个部分可以看到一个玩家,在另一个部分可以看到另一个玩家。这一切都可以在使用摄像头视图的{}GameMaker{}中轻松实现。",
"The normal behaviour for a camera is to only move when the instance being followed gets too close to a \"buffer\" zone that makes an invisible boundary around the edge of the view. This zone can be defined by you using the {}Horizontal Border {}and {}Vertical Border {}values, so - for example - setting these values to 64 will mean that the view will not start to move and follow the character until it reaches 64 pixels from the edge of the view.":"摄影机的正常行为是,只有当被跟踪的实例太靠近在视图边缘形成不可见边界的\"缓冲区\"时才移动。您可以使用{}水平边框{}和{}垂直边框{}值来定义该区域,因此,例如,将这些值设置为64将意味着,在距离视图边缘达到64像素之前,视图不会开始移动和跟随字符。",
+ "The normal behaviour for a camera is to only move when the instance being followed gets too close to a \"buffer\" zone that makes an invisible boundary around the edge of the view. This zone can be defined by you using the {}Horizontal Border {}and {}Vertical Border {}values, so - for example - setting these values to 64 will mean that the view will not start to move and follow the character until it reaches 64 pixels from the edge of the view. The exact point that is checked against this buffer zone is the point at the {}x{} and {}y{} position for the instance being followed, and it does not make use of its {}mask{}.":"相机的正常行为是仅在所跟踪的实例太靠近 \" 缓冲区 \" 区域 (该区域在视图边缘周围形成不可见边界) 时才移动。您可以使用 {} 水平边框 {} 和 {} 垂直边框 {} 值来定义该区域,因此,例如,将这些值设置为 64 将意味着视图不会开始移动并跟随角色,直到角色移动为止。距离视图边缘达到 64 像素。针对此缓冲区检查的确切点是所跟踪实例的 {}x{} 和 {}y{} 位置处的点,并且不使用其 {} 掩码 {}。",
+ "Width, Height & Creation Code":"宽度、高度和创建代码",
"Width, Height & Other Options":"宽度、高度和其他选项",
"You can then add the {}Creation Code{}, should you require it. Creation code is added from the button at the bottom (along with the inherit toggle to say whether the room should inherit it\u0027s creation code or not), and if you click it you will open a code or visual editor. This editor allows you to input functions/actions and code that will be run at the {}start {}of the room, after the create event of all instances but before their room start event (for more information on event order, please see {}here{}). This code will run every time you enter the room, unless the room is flagged as persistent, in which case it will only be run once when the room is first entered, but not on subsequent visits to the room.":"然后,如果需要,您可以添加 {}创建代码{}。创建代码是从底部的按钮添加的(与继承切换一起,表示房间是否应该继承它的创建代码),如果您单击它,您将打开一个代码或可视化编辑器。通过该编辑器,您可以输入在房间开始时、所有实例的创建事件之后、房间{}开始{}事件之前运行的函数/动作和代码(有关事件顺序的更多信息,请参阅{}此处{})。此代码将在您每次进入房间时运行,除非房间被标记为持久的,在这种情况下,它将只在第一次进入房间时运行一次,而不是在以后访问房间时运行。",
"You can then add the {}{}{}Room Creation Code{}, should you require it. Creation code is added from the button at the bottom (along with the inherit toggle to say whether the room should inherit it\u0027s creation code or not), and if you click it you will open a code or visual editor. This editor allows you to input functions/actions and code that will be run at the {}start {}of the room, after the create event of all instances but before their room start event (for more information on event order, please see {}here{}). This code will run every time you enter the room, unless the room is flagged as persistent, in which case it will only be run once when the room is first entered, but not on subsequent visits to the room.":"然后,如果需要,您可以添加{}{}{}房间创建代码{}。创建代码是从底部的按钮添加的(与继承切换一起,表示房间是否应该继承它的创建代码),如果您单击它,您将打开一个代码或可视化编辑器。通过该编辑器,您可以输入在房间开始时、所有实例的创建事件之后、房间{}开始{}事件之前运行的函数/动作和代码(有关事件顺序的更多信息,请参阅{}此处{})。此代码将在您每次进入房间时运行,除非房间被标记为持久的,在这种情况下,它将只在第一次进入房间时运行一次,而不是在以后访问房间时运行。",
+ "You can then add the {}{}{}Room Creation Code{}, should you require it. Creation code is added from the button at the bottom (along with the inherit toggle to say whether the room should inherit its creation code or not), and if you click it you will open a code or visual editor. This editor allows you to input functions/actions and code that will be run at the {}start {}of the room, after the create event of all instances but before their room start event (for more information on event order, please see {}here{}). This code will run every time you enter the room, unless the room is flagged as persistent, in which case it will only be run once when the room is first entered, but not on subsequent visits to the room.":"然后,您可以根据需要添加 {}{}{} 房间创建代码 {}。创建代码是从底部的按钮添加的 (以及继承切换来说明房间是否应该继承其创建代码),如果单击它,您将打开一个代码或可视化编辑器。此编辑器允许您输入将在房间的 {} 开始 {}、所有实例的创建事件之后但其房间开始事件之前运行的函数 / 操作和代码 (有关事件顺序的更多信息,请参阅 {} 这里 {})。此代码将在您每次进入房间时运行,除非该房间被标记为持久,在这种情况下,它只会在第一次进入房间时运行一次,但不会在后续访问该房间时运行。",
+ "{}At the top of the view properties there is a box labeled {}Enable Viewports{}. This {}must be flagged{} before any of the camera views can be used in your game.":"{} 视图属性顶部有一个标记为 {} 启用视口 {} 的框。在您的游戏中使用任何摄像头视图之前,{} 必须标记 {}。",
"{}At the top of the view properties you can toggle the view inheritance on or off, then there is a box labeled {}Enable Viewports{}. This {}must be flagged{} before any of the camera views can be used in your game.":"{}在视图属性的顶部,您可以打开或关闭视图继承,然后会有一个标记为{}启用视窗{}的框。必须先标记此{},然后才能在游戏中使用任何相机视图。",
"{}Cameras also have the {}Object Following {}option. This is for when you want the camera to \"follow\" (ie: maintain the view focused on) a certain object. To do this you must click {} on the menu icon and select an object from the list that pops up (if there are multiple instances of this object in the room, only one of them is followed by the camera).":"{}相机也有{}对象跟随{}选项。这适用于当你想让相机“跟随”(即:保持聚焦于)某个对象的时候。为此,您必须单击菜单图标上的{} ;并从弹出的列表中选择一个对象(如果房间中有该对象的多个实例,则摄像机只跟在其中一个实例后面)。",
"{}NOTE{} If you are using automatic aspect ratio correction (as set in the {}Game Options{}), then you should {}always {}have this checked otherwise you can get odd effects over the \"letterbox\" that your game is drawn in. If you do not use this option then you can un-check this and get a small boost to your games performance (especially noticeable on Android and other mobile platforms).":"{}注意{}:如果您使用的是自动宽高比校正(如在{}游戏选项{}中设置的),则应{}始终{}选中此选项,否则您可能会在游戏所在的\"信箱\"上获得奇怪的效果。如果你不使用这个选项,那么你可以取消选中这个选项,并对你的游戏性能进行小幅提升(特别是在Android和其他移动平台上尤其明显)。",
@@ -35,6 +44,7 @@
"{}The View Port{}: The area of the physical screen where the camera view will be displayed":"{}视口{}:显示摄像头视图的物理屏幕区域",
"{}The View{}: What the camera sees, based on the position, projection and rotation of the camera":"{}视图{}:基于摄像头的位置、投影和旋转,摄像头看到的内容",
"{}The next thing you must do is set up the {}Gravity {}of the world. The strength and direction of this is calculated as a {}vector{} of the x/y position that you set around a (0, 0) point. So, an x of 0 and a y of 1 will set the gravity direction as being {}down {}with a force of 1 meter per second (for a more detailed explanation see - {}The Physics World{}).":"{}你必须做的下一件事就是设置这个世界的{}重力{}。其强度和方向计算为围绕(0,0)点设置的x/y位置的{}向量{}。因此,x为0,y为1,将重力方向设置为{}向下{},力为每秒1米(有关更详细的解释,请参阅{}物理世界{})。",
+ "{}The {}Room Properties{} section is where you can set the inheritance toggle for the settings, change options such as persistency, the room\u0027s size and manage viewports. This is shown in {}The Inspector{} when you select a room asset in {}The Asset Browser{}.":"{} 在 {} 房间属性 {} 部分,您可以设置设置的继承切换、更改持久性、房间大小等选项以及管理视口。当您在 {} 资产浏览器 {} 中选择房间资产时,这会显示在 {} 检查器 {} 中。",
"{}The {}Room Properties{} section is where you can set the inheritance toggle for the settings, change options such as persistency, the room\u0027s size and manage viewports. This is visible when you select a room asset in {}The Asset Browser{}.":"{}在{}房间属性{}部分,您可以设置设置的继承切换,更改选项(如持久性、房间大小)和管理视口。当您在{}资源浏览器{}中选择房间资源时,此部分可见。",
"{}This window lists all the instances in the room in the order that they will be created (from top to bottom). Should you require a specific instance to be created before any other, you can simply click {} and drag it to the position your require. Note that instances will be created in the order given from top to bottom of the list.":"{}此窗口按照创建的顺序(从上到下)列出房间中的所有实例。如果您需要在创建任何其他实例之前创建特定实例,只需单击{} 并将其拖动到您需要的位置即可。请注意,实例将按照列表从上到下的顺序创建。",
"{}{}The next checkbox is the one that says {}Clear Viewport Background{}, which is similar to the {}Clear Display Buffer{} option given above but for viewports specifically. When enabled, it clears the {}application surface{} with the window colour before drawing each frame. This ensures that you don\u0027t see any unintended graphics through transparent areas in your background, such as the contents of any previous frames. It\u0027s important to enable this option (along with \"{}Enable Viewports{}\") if your background contains any transparency.":"{}{}下一个复选框显示{}清除视区背景{},这类似于上面给出的{}清除显示缓冲区{}选项,只是专门针对视区。启用后,它会在绘制每个帧之前用窗口颜色清除{}应用程序表面{}。这可确保您不会通过背景中的透明区域看到任何意外的图形,例如任何先前帧的内容。如果您的背景包含任何透明度,启用此选项(以及\"{}启用视窗{}\")是很重要的。"
diff --git a/language/zh/www/The_Asset_Editors/Rooms.json b/language/zh/www/The_Asset_Editors/Rooms.json
index 222b2f816..0d066d45e 100644
--- a/language/zh/www/The_Asset_Editors/Rooms.json
+++ b/language/zh/www/The_Asset_Editors/Rooms.json
@@ -1,22 +1,28 @@
{
"Apart from the in-editor tools, you will also see a drop down menu at the top of the IDE.":"除了编辑器中的工具,您还将在IDE的顶部看到一个下拉菜单。",
+ "At the top of the list, you can filter the list with a search string. This string is checked against both the instance identifiers and the asset names. ":"在列表顶部,您可以使用搜索字符串过滤列表。该字符串会根据实例标识符和资产名称进行检查。",
"At the top of the main Room Editor canvas you have a few controls to deal with how things are displayed. They are:":"在主房间编辑器画布的顶部,您可以使用几个控件来处理内容的显示方式。它们是:",
"Below is a brief overview of each of the Room Editor sections:":"以下是房间编辑器各部分的简要概述:",
"Certain layer types will have additional tools added to the top of the IDE in the {}Layer Toolbox{} (for example, tile layers or path layers). The exact tools will change based on the layer type currently being edited, and so are explained on the page explaining each layer, {}here{}.":"某些图层类型将在IDE顶部的{}图层工具箱{}中添加其他工具(例如,图块层或路径层)。确切的工具将根据当前正在编辑的层类型而变化,因此在{}此处{}解释每个层的页面上进行了说明。",
"Certain layer types will have additional tools added to the top of the IDE in the {}Layer Toolbox{} (for example, tile layers or path layers). The exact tools will change based on the layer type currently being edited, and so are explained on the {}Layer Types And Properties{} page.":"某些图层类型将在IDE顶部的{}图层工具箱{}中添加其他工具(例如,图块层或路径层)。确切的工具将根据当前正在编辑的层类型而变化,因此在{}图层类型和属性{}解释每个层的页面上进行了说明。",
+ "Certain layer types will have additional tools added to the top of the IDE in the {}Layer Toolbox{}, for example, tile layers, asset layers (for text) and path layers. The exact tools will change based on the layer type currently being edited, and so are explained on the {}Layer Types And Properties{} page.":"某些图层类型将在 IDE 顶部的 {} 图层工具箱 {} 中添加其他工具,例如图块图层、资源图层 (用于文本) 和路径图层。确切的工具将根据当前正在编辑的图层类型而变化,因此在 {} 图层类型和属性 {} 页面上进行了说明。",
+ "Clicking on any element in the list will show you its properties in the Inspector:":"单击列表中的任何元素都会在检查器中显示其属性:",
"Filters and Effects":"滤镜和效果",
"For paths you can create a new path layer and path resource right from within the Room Editor - or create a new path asset and then drag it into the main editor window as you would for an instance - and then edit the path and its connections in the editor window too. For tile sets, you can \"paint\" them in from the Tile Set Editor.":"对于路径,您可以直接在房间编辑器中创建一个新的路径层和路径资源-或者创建一个新的路径资源,然后像创建实例一样将其拖到主编辑器窗口中-然后也在编辑器窗口中编辑路径及其连接。对于瓷砖集,您可以从图块集编辑器中\"绘制\"它们。",
"For paths you can create a new path layer and path resource right from within the Room Editor- or create a new path resource and then drag it into the main editor window as you would for an instance - and then edit the path and its connections in the editor window too. For tile sets, you can \"paint\" them in from the tile set editor.":"对于路径,您可以直接从房间编辑器中创建新的路径层和路径资源-或者创建一个新的路径资源,然后将其拖动到主编辑器窗口中,就像您对实例所做的那样-然后也可以在编辑器窗口中编辑路径及其连接。对于图块集,您可以从图块集编辑器中对其进行绘制。",
"Layer Types And Properties":"图层类型和属性",
"Layers are created by clicking the appropriate button for the type of layer you want to create, which are:":"图层是通过单击要创建的图层类型的相应按钮来创建的,这些图层包括:",
+ "Layers are created by clicking the appropriate button for the type of layer you want to create, which are:":"通过单击您要创建的图层类型的相应按钮来创建图层,这些按钮是:",
"Note that you can select and move or delete multiple assets from the same layer by holding down {} / {} + {} on the ones you want, and most resources in the room editor will permit you to rotate and scale them (singly or as a group) by clicking and holding {} along the outside edges or corners and dragging the mouse. You can also double click {} on any single asset (tiles, instances, sprites) to have the editor pan to it and open up the properties window for the selected asset in the Inspector.":"请注意,您可以通过在所需资源上按住{} / {} + {}来选择并移动或删除同一层中的多个资源,而房间编辑器中的大多数资源将允许您通过沿外边或外角单击并按住{} 并拖动鼠标来旋转和缩放它们(单独或作为一组)。您还可以在任何单个资源(图块、实例、精灵)上双击{} ,让编辑器平移到它,并在检查器中打开所选资源的属性窗口。",
"Note that you can toggle {}inheritance{} for the layer editor which will affect layer order and visibility. The visibility itself can be set by clicking the eye icon {} beside each of the layers, or you can click the one at the very top to enable/disable all layers at once. You also have the possibility to \"lock\" a layer (or all of them) so that they cannot be changed by clicking the padlock icon {}. Note that layers which are flagged as invisible will {}not{} be shown when the game is run.":"请注意,您可以切换图层编辑器的{}继承{},这将影响图层顺序和可见性。可见性本身可以通过单击每个图层旁边的眼睛图标{}来设置,或者您可以单击最上面的图标来一次启用/禁用所有图层。您还可以锁定一个图层(或所有图层),这样就不能通过点击挂锁图标{}来更改它们。请注意,当游戏运行时,标记为隐形的图层将{}不会{}显示。",
"Room Inheritance":"房间继承",
"Room Menu":"房间菜单",
+ "The Element List appears when a valid type of layer (i.e. one that holds elements) is selected. This includes Instance Layers that hold Object Instances, and Asset Layers that hold visual assets of various types.":"当选择有效类型的图层 (即包含元素的图层) 时,会出现元素列表。这包括保存对象实例的实例层和保存各种类型的视觉资源的资源层。",
"The Inspector window will show layer properties depending on the currently selected layer in the Layer Editor.":"检查器窗口将根据图层编辑器中当前选定的层显示图层属性。",
"The Inspector window will show layer properties depending on the currently selected layer in the layer editor.":"检查器窗口将根据图层编辑器中当前选定的层显示图层属性。",
"The Room Editor":"房间编辑器",
"The Room Editor places things onto layers within the room. Each layer is at a discrete \"depth\", where those that appear at the bottom of the list in the layer window will be drawn under those that appear near the top.":"房间编辑将东西放在房间内的各个图层上。每一层都有一个离散的 \"depth\",出现在图层窗口列表底部的图层将被绘制在靠近顶部的图层下面。",
+ "The Room Manager":"客房经理",
"The center of the Room Editor window is taken up with the area where all the actual editing takes place. Here is where you\u0027ll be placing your instances and assets, drawing your tiles, or positioning your paths. You can zoom in and out using the mouse wheel or the room controls at the top, and you can pan around by holding the middle mouse button {} down and moving the mouse around or using {} + {} while moving.":"房间编辑器窗口的中心是所有实际编辑发生的区域。这里是您放置实例和资源,绘制瓷砖或定位路径的地方。您可以使用鼠标滚轮或顶部的房间控件进行放大和缩小,您可以通过按住鼠标中键 {} 并移动鼠标或在移动时使用 {}+{} 来平移。",
"The center of the room editor window is taken up with the area where all the actual editing takes place. Here is where you\u0027ll be placing your instances and assets, drawing your tiles, or positioning your paths. You can zoom in and out using the mouse wheel or the room controls at the top, and you can pan around by holding the middle mouse button {} down and moving the mouse around or using {} + {} while moving.":"房间编辑器窗口的中心被所有实际编辑发生的区域占据。这里是您放置实例和资源、绘制图块或定位路径的位置。您可以使用鼠标滚轮或顶部的房间控件进行放大和缩小,也可以通过按住鼠标中键{}向下移动鼠标或在移动时使用{}+{} 来平移鼠标。",
"The room editor is where you create your game {}rooms{}. Every game requires {}at least one room to run{}, and in the room you can place instances, sprites, tiles, paths and backgrounds. Each of these different assets can be placed on their own unique {}layer {}which can then be ordered however you wish in the {}Layers Editor{}. Due to the complexity of the room editor, we\u0027ll give you first a brief overview of the most important features, and then you can find more in-depth details from the section links listed below.":"您可以在房间编辑器中创建游戏{}房间{}。每个游戏需要{}至少一个房间来运行{},您可以在房间中放置实例、精灵、图块、路径和背景。这些不同的资源中的每一个都可以放置在它们自己的独特的{}层{}上,然后可以在{}层编辑器{}中随心所欲地进行排序。由于房间编辑器的复杂性,我们将首先简要概述最重要的功能,然后您可以从下面列出的部分链接中找到更深入的详细信息。",
@@ -27,11 +33,14 @@
"The user interface for the Room Editor is simple to navigate and split in various discrete sections. Those parts of the editor that are docked - {}The Inspector{} that shows the {}room or layer properties{} and the {}Layer Editor{} - can also be removed from the dock by simply dragging them out into the workspace, and they can be added back into the docks again by dragging them to the sides or the bottom of the workspace.":"房间编辑器的用户界面易于导航,并可拆分成不同的独立部分。编辑器中停靠的那些部分-显示{2}房间或层属性{3}的{}检查器{}和{}层编辑器{}-也可以从停靠区中移除,只需将它们拖到工作区中,然后通过将它们拖到工作区的侧面或底部,就可以将它们重新添加到停靠区中。",
"The user interface for the room editor is simple to navigate and split in various discrete sections. Those parts of the editor that are docked - the {}Inspector{} that shows the {}room or layer properties{} and the {}layer editor{} - can also be removed from the dock by simply dragging them out into the workspace, and they can be added back into the docks again by dragging them to the sides or the bottom of the workspace.":"房间编辑器的用户界面易于导航,并可拆分成不同的独立部分。编辑器中停靠的那些部分-显示{2}房间或层属性{3}的{}检查器{}和{}层编辑器{}-也可以从停靠区中移除,只需将它们拖到工作区中,然后通过将它们拖到工作区的侧面或底部,就可以将它们重新添加到停靠区中。",
"The user interface for the room editor is simple to navigate and split in various discrete sections. Those parts of the editor that are docked - {}The Inspector{} that shows the {}room or layer properties{} and the {}layer editor{} - can also be removed from the dock by simply dragging them out into the workspace, and they can be added back into the docks again by dragging them to the sides or the bottom of the workspace.":"房间编辑器的用户界面易于导航,并可拆分为多个独立的部分。编辑器停靠的部分-显示 {} 房间或图层属性 {} 的 {} 检查器 {} 和 {} 图层编辑器 {}- 也可以通过简单地将其拖到工作区中从停靠区中移除,并且可以通过将它们拖到工作区的侧面或底部来将它们再次添加回坞站中。",
+ "The {} menu can be used to detach the list or attach it to any of the four sides of the Room Canvas. You can resize the sidebar by dragging its edge facing the Room Canvas, and clicking on the edge will close the sidebar.":"{} 菜单可用于分离列表或将其附加到 Room Canvas 四个侧面的任意一侧。您可以通过拖动面向房间画布的边缘来调整侧边栏的大小,然后单击边缘将关闭侧边栏。",
"This layer is for placing tiles from {}tile sets{} as {}tile map{}{}s{}.":"此图层用于将{}图块集{} 中的图块放置为{}图块地图{}{}{}。",
"This layer is for placing {}instances{} that will be used in the room.":"该图层用于放置将在房间中使用的{}实例{}。",
"This layer is for showing and adding {}paths{} in the room.":"此图层用于展示和添加房间内的{}路径{}。",
"This layer is for visual assets to be added to the room, like {}sprites{} and {}sequences{}.":"该图层用于将可视资源添加到房间,如{}精灵{}和{}序列{}。",
"This layer is for visual assets to be added to the room, like {}sprites{}, {}sequences{} and {}particles{}.":"该图层用于将可视资源添加到房间,如{}精灵{}、{}序列{}和{}粒子{}。",
+ "This layer is for visual assets to be added to the room, like {}sprites{}, {}sequences{}, {}text{} and {}particles{}.":"该层用于将视觉资源添加到房间,例如 {} 精灵 {}、{} 序列 {}、{} 文本 {} 和 {} 粒子 {}。",
+ "This list will show you all the elements present in the selected layer. Each entry in the list contains a {} checkbox that enables/disables that element. It then shows its icon, asset name and the identifier of that element.":"该列表将显示所选图层中存在的所有元素。列表中的每个条目都包含一个用于启用 / 禁用该元素的 {} 复选框。然后它会显示其图标、资产名称和该元素的标识符。",
"This type of layer defines a background, which is essentially a single colour or sprite image that may be tiled over the whole room.":"这种类型的图层定义了一个背景,它本质上是可以图块在整个房间上的单色或精灵图像。",
"This type of layer defines a {}filter/effect{} that is applied to all layers below it.":"此类型的图层定义了应用于其下所有图层的{}滤镜/效果{}。",
"When creating asset layers or instance layers, you can place the asset or instance by simply dragging it from the Asset Browser and then dropping it where you want it to be positioned. Alternatively you can select an asset or instance from the Asset Browser and then press and hold {} to preview the resource \"in-situ\", and if you additionally click the left mouse button {} you can add the instance and even \"paint\" it into the room layer by maintaining the button pressed and dragging the mouse. Note that by default instances and sprites that are added to a room in this way will be snapped to the defined room grid settings, but you can hold down {} / {} to have the instance follow the mouse precisely and not snap (releasing {} / {} will permit snapping again).":"创建资源层或实例层时,只需从资源浏览器中拖动资源或实例,然后将其放在希望放置的位置,即可放置资源或实例。或者,您可以从资源浏览器中选择资源或实例,然后按住{} 以\"就地\"预览资源,如果另外单击鼠标左键{} ,则可以添加实例,甚至通过按住按钮并拖动鼠标将其\"绘制\"到房间层中。请注意,默认情况下,以这种方式添加到房间的实例和精灵将捕捉到定义的房间网格设置,但您可以按住 {} / {}以使实例精确地跟随鼠标而不捕捉(释放{} / {} 将允许再次捕捉)。",
@@ -51,7 +60,11 @@
"{}Background{}":"{}背景{}",
"{}Convert Image To Tile Map{}: The Convert Image To Tile Map option is a powerful tool that can be used to import a single image and then extract the tiles used from the image and recreate it as a tile map layer in the Room Editor, creating the required tile set and sprite as part of process. When you select this tool, you will be asked to supply an uncompressed image file ({}PNG{}, {}GIF {}or {}BMP{}) which will then be loaded. On load you will be presented with the {}Image Import{} tool:{} {}Here you are given options on how to split up the tile when creating the tile set, and you can set the cell width and height as well as any offsets required around the edges. You can also set the approximate width (in pixels) for the final sprite that is created. For example, if the tile set is made up of 64x64 tile cells and you set a width here of 200, the final sprite that is created for use in the tile set will be 192 pixels wide (i.e.: 3 tile cells). If you leave it at the default value of 0, then {}GameMaker{} will attempt to make as \"square\" a sprite as possible with approximately the same number of horizontal and vertical tile cells.{} {} After setting the way the image is to be split, clicking the swatch beside the {}Remove Colour{} option will open the colour picker and permit you to select a colour that is to be removed from the final sprite. This is usually a background colour that you want to remove and setting this swatch to anything other than 100% transparent (alpha 0) will remove the selected colour on import.{} {} Finally, you have the option to name the sprite, tile set and tile map layer that will be created for you by this tool. When you finalise the import, a sprite with all the images laid out in a grid will be created, as well as a tile set from this sprite. In the room, a new tile map layer will be created and the image reproduced using the generated tile set. Note that the tool will {}not {}duplicate tiles and will instead recognise when a cell has image data that coincides with another cell (this includes rotated tiles). You can see this in the following image where only one flower tile has been created and one crate tile too, yet there are multiple instances of both, with some instances rotated in the base image:{} {} ":"{}将图像转换为图块映射{}: 将图像转换为图块映射选项是一个强大的工具,可用于导入单个图像,然后从图像中提取使用的图块,并将其重新创建为房间编辑器中的图块贴图层,创建所需的图块集和精灵作为过程的一部分。当您选择此工具时,系统将要求您提供一个未压缩的图像文件({}PNG{}、{}GIF{}或{}BMP{}),然后将加载该文件。加载后,您将看到{}图像导入{}工具:{}{}在这里,您可以选择在创建图块集时如何拆分图块,您可以设置单元格宽度和高度以及围绕边缘所需的任何偏移量。还可以设置创建的最终精灵的近似宽度(以像素为单位)。例如,如果图块集由64x64图块单元格组成,而您在此处设置的宽度为200,则为在图块集中使用而创建的最终精灵将是192像素宽(即:3个图块单元格)。如果您将其保留为默认值0,则{}GameMaker{}将尝试使用大致相同数量的水平和垂直图块单元格使精灵尽可能地呈正方形。{}{}设置图像拆分方式后,单击{}移除颜色{}选项旁边的样本将打开颜色选择器,并允许您选择要从最终精灵中移除的颜色。这通常是您想要移除的背景颜色,将此样例设置为100%透明(Alpha 0)以外的任何颜色都会在导入时移除选定的颜色。{}{}最后,您可以选择命名将由此工具为您创建的精灵、图块集和图块贴图层。当您完成导入时,将创建一个在网格中布局所有图像的精灵,以及从此精灵设置的图块。在房间中,将创建一个新的图块地图层,并使用生成的图块集重现图像。请注意,该工具{}不会{}复制图块,而是会识别一个单元格的图像数据是否与另一个单元格一致(包括旋转的图块)。您可以在下图中看到这一点,其中只创建了一个鲜花图块和一个板条箱图块,但两者都有多个实例,其中一些实例在基础图像中旋转:{}{}",
"{}Convert Image To Tile Map{}: The Convert Image To Tile Map option is a powerful tool that can be used to import a single image and then extract the tiles used from the image and recreate it as a tile map layer in the room editor, creating the required tile set and sprite as part of process. When you select this tool, you will be asked to supply an uncompressed image file ({}PNG{}, {}GIF {}or {}BMP{}) which will then be loaded. On load you will be presented with the {}Image Import{} tool:{} {}Here you are given options on how to split up the tile when creating the tile set, and you can set the cell width and height as well as any offsets required around the edges. You can also set the approximate width (in pixels) for the final sprite that is created. For example, if the tile set is made up of 64x64 tile cells and you set a width here of 200, the final sprite that is created for use in the tile set will be 192 pixels wide (ie: 3 tile cells). If you leave it at the default value of 0, then {}GameMaker{} will attempt to make as \"square\" a sprite as possible with approximately the same number of horizontal and vertical tile cells.{} {} After setting the way the image is to be split, clicking the swatch beside the {}Remove Colour{} option will open the colour picker and permit you to select a colour that is to be removed from the final sprite. This is usually a background colour that you want to remove and setting this swatch to anything other than 100% transparent (alpha 0) will remove the selected colour on import.{} {} Finally, you have the option to name the sprite, tile set and tile map layer that will be created for you by this tool. When you finalise the import, a sprite with all the images laid out in a grid will be created, as well as a tile set from this sprite. In the room, a new tile map layer will be created and the image reproduced using the generated tile set. Note that the tool will {}not {}duplicate tiles and will instead recognise when a cell has image data that coincides with another cell (this includes rotated tiles). You can see this in the following image where only one flower tile has been created and one crate tile too, yet there are multiple instances of both, with some instances rotated in the base image:{} {} ":"{}将图像转换为图块映射{}: 将图像转换为图块映射选项是一个强大的工具,可用于导入单个图像,然后从图像中提取使用的图块,并将其重新创建为房间编辑器中的图块贴图层,创建所需的图块集和精灵作为过程的一部分。当您选择此工具时,系统将要求您提供一个未压缩的图像文件({}PNG{}、{}GIF{}或{}BMP{}),然后将加载该文件。加载后,您将看到{}图像导入{}工具:{}{}在这里,您可以选择在创建图块集时如何拆分图块,您可以设置单元格宽度和高度以及围绕边缘所需的任何偏移量。还可以设置创建的最终精灵的近似宽度(以像素为单位)。例如,如果图块集由64x64图块单元格组成,而您在此处设置的宽度为200,则为在图块集中使用而创建的最终精灵将是192像素宽(即:3个图块单元格)。如果您将其保留为默认值0,则{}GameMaker{}将尝试使用大致相同数量的水平和垂直图块单元格使精灵尽可能地呈正方形。{}{}设置图像拆分方式后,单击{}移除颜色{}选项旁边的样本将打开颜色选择器,并允许您选择要从最终精灵中移除的颜色。这通常是您想要移除的背景颜色,将此样例设置为100%透明(Alpha 0)以外的任何颜色都会在导入时移除选定的颜色。{}{}最后,您可以选择命名将由此工具为您创建的精灵、图块集和图块贴图层。当您完成导入时,将创建一个在网格中布局所有图像的精灵,以及从此精灵设置的图块。在房间中,将创建一个新的图块地图层,并使用生成的图块集重现图像。请注意,该工具{}不会{}复制图块,而是会识别一个单元格的图像数据是否与另一个单元格一致(包括旋转的图块)。您可以在下图中看到这一点,其中只创建了一个鲜花图块和一个板条箱图块,但两者都有多个实例,其中一些实例在基础图像中旋转:{}{}",
+ "{}Element List{}{}Element List{}":"{} 元素列表 {}{} 元素列表 {}",
+ "{}Elements in this list can be re-ordered by clicking {} and dragging them to the position required. For instances, this is purely for organisational purposes within the Room Editor and if you want to set a specific creation order, use the {}Instance {}{}Creation Order {}menu, which can be opened from the {}Room Properties{} in the Inspector, or from the {}Room context menu{}.":"{} 可以通过点击 {} 并将其拖动到所需位置来重新排序此列表中的元素。例如,这纯粹是为了在 Room Editor 中进行组织,如果您想要设置特定的创建顺序,请使用 {} 实例 {}{} 创建顺序 {} 菜单,该菜单可以从 {}Room Properties{中打开} 在检查器中,或从 {} 房间上下文菜单 {}。",
"{}Filter/Effect{}":"{}滤镜/效果{}",
+ "{}Inspector (Layer Properties){}{}Inspector (Layer Properties){}":"{} 检查器 (层属性 ){}{} 检查器 (层属性 ){}",
+ "{}Inspector (Room Properties){}{}Inspector (Room Properties){}":"{} 检查器 (房间属性 ){}{} 检查器 (房间属性 ){}",
"{}Instance Creation Order{}: This will open the {}Instance Creation Order Window {}(which can also be opened by using the button in the {}Room Properties{}{} {}window):{} {}This window lists all the instances in the room in the order that they will be created (from top to bottom). Should you require a specific instance to be created before any other, you can simply click {} and drag it to the position your require. ":"{}实例创建顺序{}:这将打开{}实例创建顺序窗口{}(也可以通过使用{}房间属性{}{}{}窗口中的按钮打开):{}{}此窗口按创建顺序(从上到下)列出房间中的所有实例。如果您需要在创建任何其他实例之前创建特定实例,只需单击{}并将其拖动到您需要的位置即可。",
"{}Instance Creation Order{}: This will open the {}Instance Creation Order Window {}(which can also be opened by using the button in the {}Room Properties{} window):{} {}This window lists all the instances in the room in the order that they will be created (from top to bottom). Should you require a specific instance to be created before any other, you can simply click {} and drag it to the position you require. ":"{}实例创建顺序{}:这将打开{}实例创建顺序窗口{}(也可以通过使用{}房间属性{}窗口中的按钮打开):{}{}此窗口按创建顺序(从上到下)列出房间中的所有实例。如果您需要在创建任何其他实例之前创建特定实例,只需单击{}并将其拖动到您需要的位置即可。",
"{}Instance Creation Order{}: This will open the {}Instance Creation Order Window {}(which can also be opened by using the button in the {}Room Properties{} window):{} {}This window lists all the instances in the room in the order that they will be created (from top to bottom). Should you require a specific instance to be created before any other, you can simply click {} and drag it to the position your require. ":"{}实例创建顺序{}:将打开{}实例创建顺序窗口{}(也可以使用{}房间属性{}窗口中的按钮打开):{}{}此窗口按创建顺序(从上到下)列出房间中的所有实例。如果您需要先创建特定实例,只需单击{}并将其拖动到所需位置即可。",
@@ -72,6 +85,8 @@
"{}The Room Editor{}":"{}房间编辑器{}",
"{}The Room Editor{} is where you create your game {}rooms{}. Every game requires {}at least one room to run{}, and in the room you can place instances, sprites, tiles, paths, backgrounds, sequences and particle systems. Each of these different assets can be placed on their own unique {}layer {}which can then be ordered however you wish in the {}Layer Editor{}. Due to the complexity of the Room Editor, we\u0027ll give you first a brief overview of the most important features, and then you can find more in-depth details from the section links listed below.":"您可以在{}房间编辑器{}中创建游戏{}房间{}。每个游戏需要{}至少一个房间来运行{},您可以在房间中放置实例、精灵、图块、路径、背景和粒子系统。这些不同的资源中的每一个都可以放置在它们自己的独特的{}层{}上,然后可以在{}层编辑器{}中随心所欲地进行排序。由于房间编辑器的复杂性,我们将首先简要概述最重要的功能,然后您可以从下面列出的部分链接中找到更深入的详细信息。",
"{}The Room Editor{} is where you create your game {}rooms{}. Every game requires {}at least one room to run{}, and in the room you can place instances, sprites, tiles, paths, backgrounds, sequences and particle systems. Each of these different assets can be placed on their own unique {}layer {}which can then be ordered however you wish in the {}Layers Editor{}. Due to the complexity of the room editor, we\u0027ll give you first a brief overview of the most important features, and then you can find more in-depth details from the section links listed below.":"{} 房间编辑器 {} 是您创建游戏 {} 房间 {} 的地方。每个游戏都需要 {} 至少一个房间来运行 {},在房间中您可以放置实例,精灵,瓷砖,路径,背景,序列和粒子系统。这些不同的资源中的每一个都可以放置在它们自己独特的 {} 层 {} 上,然后可以在 {} 层编辑器 {} 中按照您的意愿对其进行排序。由于房间编辑器的复杂性,我们将给予您最重要功能的简要概述,然后您可以从下面列出的部分链接中找到更深入的详细信息。",
+ "{}The Room Editor{} is where you create your game {}rooms{}. Every game requires {}at least one room to run{}, and in the room you can place instances, sprites, tiles, paths, backgrounds, sequences, text and particle systems. Each of these different assets can be placed on their own unique {}layer {}which can then be ordered however you wish in the {}Layer Editor{}. Due to the complexity of the Room Editor, we\u0027ll give you first a brief overview of the most important features, and then you can find more in-depth details from the section links listed below.":"{} 房间编辑器 {} 是您创建游戏 {} 房间 {} 的地方。每个游戏都需要 {} 至少一个房间来运行 {},您可以在房间中放置实例、精灵、图块、路径、背景、序列、文本和粒子系统。这些不同的资产中的每一个都可以放置在自己独特的 {} 层 {} 上,然后可以在 {} 层编辑器 {} 中按照您的意愿进行排序。由于房间编辑器的复杂性,我们将首先向您简要概述最重要的功能,然后您可以从下面列出的部分链接找到更深入的详细信息。",
+ "{}The Room Manager{}":"{}房间管理器{}",
"{}The distance that assets \"snap\" to guides, as well as other properties, can be set in the {}Room Editor Preferences{}.":"{}资源与参考线的距离以及其他属性可在{}房间编辑器首选项{}中设置。",
"{}The room editor is itself a {}workspace{} and as such you can click {} on the tab and drag it off of the main window into a new window of its own - perhaps in another display, for example. You can also place it back into the main window by dragging the tab to the top of the IDE and releasing the mouse button.":"{}房间编辑器本身就是一个{}工作区{},因此您可以单击选项卡上的{} ,并将其从主窗口拖到它自己的新窗口中--例如,在另一个显示中。也可以通过将选项卡拖到IDE的顶部并释放鼠标按钮,将其放回到主窗口中。",
"{}These menus are explained below:":"{}这些菜单的说明如下:",
diff --git a/language/zh/www/The_Asset_Editors/Scripts.json b/language/zh/www/The_Asset_Editors/Scripts.json
index 147e025b2..72b76b095 100644
--- a/language/zh/www/The_Asset_Editors/Scripts.json
+++ b/language/zh/www/The_Asset_Editors/Scripts.json
@@ -2,10 +2,12 @@
"A script asset can be renamed by right-clicking {} on it in the {}Asset Browser{} and selecting {}Rename{}, but note that the script name must conform to the scripting rules for assets, so they can only be alpha-numeric, must start with a letter, and the only symbol they can contain is the \"_\" under-bar symbol. The script editor in other places cannot be renamed and will have a name specific to what is being edited, like an object event for example.":"通过在{1}资源浏览器{2}中右键单击脚本资源{}并选择{}重命名{},可以重命名脚本资源,但请注意,脚本名称必须符合资源的脚本规则,因此它们只能是字母数字,必须以字母开头,并且它们可以包含的唯一符号是下划线符号 \"_\"。其他位置的脚本编辑器无法重命名,并且将具有特定于正在编辑的内容的名称,例如对象事件。",
"Clicking this will replace the next search string found in the script with the given replace string. Note that the \"next\" term is considered the next one after the current cursor position, and you can skip to different ones using arrow buttons at the top right of the search window.":"单击此项将用给定的替换字符串替换脚本中的下一个搜索字符串。请注意,\"下一个\"术语被视为当前光标位置之后的下一个术语,您可以使用搜索窗口右上角的箭头按钮跳到不同的术语。",
"Clicking this will replace {}all {}examples of the search string within the script using the given replace string.":"单击此项将使用给定的替换字符串替换脚本中{}所有{}搜索到的字符串。",
+ "Code Completion":"代码完成",
"Code Snippets":"代码片段",
"Editing Code":"编辑代码",
"Error Reporting":"错误报告",
"Feather Data Types":"语法检查数据类型",
+ "Feather Directives":"羽毛指令",
"Feather Features":"语法检查功能",
"For information on the rest of the right-click {} menu options, see the section on {}Editing{}, below.":"有关右键单击{}菜单选项其余部分的信息,请参阅下面的{}编辑{}部分。",
"GML Code Scripts ":"GML 代码脚本",
@@ -17,10 +19,12 @@
"Note that if you are editing code from an {}object event {}in the script editor and you have maximised the script editor or have it on a separate window or workspace, then the right-click {} editor menu will have some extra options:":"请注意,如果您正在脚本编辑器中编辑来自{}对象事件{}的代码,并且已最大化脚本编辑器或已将其放置在单独的窗口或工作区中,则右键单击{}编辑器菜单将具有一些额外的选项:",
"Note that if you want to do a {}global {}search (ie: search the whole project rather than the current script or event), then you can press {} / {} + {} + \"F\".":"请注意,如果要执行 {} 全局 {} 搜索 (即:搜索整个项目而不是当前脚本或事件),则可以按 {}/{}+{}+\" F\"。",
"On creating a script asset, you may be asked to choose between {}GML Visual{} and {}GML Code{}. See {}GameMaker Language{} for more information.":"创建脚本资源时,可能会要求您在 {}GML 可视化 {} 和 {}GML 代码 {} 之间进行选择。有关详细信息,请参阅 {}GameMaker 语言 {}。",
+ "The Code Editor":"代码编辑器",
"The Script Editor":"脚本编辑器",
"The gutter will also mark any line of the script that has had a {}breakpoint {}added. A breakpoint is simply a place in the script where you want the {}debugger{} to pause the execution of your game when it is reached. You can toggle a breakpoint from any line of any script or object event by pressing \"{}f9{}\" or using the right-click {} menu. When you add a breakpoint, it will show up like this in the gutter:":"行号还将标记添加了 {} 断点 {} 的脚本的任何行。断点只是脚本中您希望 {} 调试器 {} 在到达时暂停游戏执行的位置。通过按 \"{}f9{}\" 或使用右键单击 {} 菜单,可以从任何脚本或对象事件的任何行切换断点。添加断点时,它将显示在行号中,如下所示:",
"The information bar at the bottom of the IDE shows you the current line number you are on and the position along the line. It is also where you can see the code helper, which is a line of text that shows the function you are currently editing along with the arguments it requires. As you fill in the function in the editor, the arguments will highlight to show you which one you are currently editing.":"IDE 底部的信息栏将显示您当前所在的行号以及沿该行的位置。在这里您还可以看到代码帮助器,它是一行文本,显示您当前正在编辑的函数及其所需的参数。在编辑器中填写函数时,参数将突出显示,以显示当前正在编辑的参数。",
"The main code editor is where you\u0027ll write all your code to create the script asset or fill an object event. The actual edition of your code is covered in the section on {}Editing{} further down this page.":"主代码编辑器是您编写所有代码以创建脚本资源或填充对象事件的位置。您的代码的实际版本将在本页后面的{}编辑{}一节中介绍。",
+ "The new {}Code Editor{} can be enabled from the {}preferences{} and is used to edit scripts when enabled. Read {}this section{} for all details for the new {}Code Editor{}.":"新的 {} 代码编辑器 {} 可以从 {} 首选项 {} 启用,启用后可用于编辑脚本。请阅读 {} 本节 {},了解新的 {} 代码编辑器 {} 的所有详细信息。",
"The script editor is where you write your GameMaker Language code, which is the built-in programming language that {}GameMaker{} uses (see the {}GameMaker Language{} section for more details). Once you become more familiar with {}GameMaker{} and want to use it to its fullest extent, it is advisable to start learning to use this language, as it greatly expands your possibilities when creating games.":"您可以在脚本编辑器中编写 GameMaker 语言代码,这是 {}GameMaker{} 使用的内置编程语言 (有关详细信息,请参阅 {}GameMaker 语言 {} 部分)。一旦您越来越熟悉 {}GameMaker{} 并希望最充分地使用它,建议您开始学习使用此语言,因为它极大地扩展了创建游戏时的可能性。",
"The script editor opens in a window with tabs across the top to let you have multiple scripts or events in one window (although this behaviour can be changed from the {}Preferences{} to give a new window to each script or event). You can click {} on a tab and then drag it to change the tab order, or - if you prefer - you can pull it out of the current window and place it on the workspace to create a new window for that script (or add it to a different window), and you can also maximise the script editor to create a new workspace too. If you drag a script tab out of the {}IDE{} window, then a new IDE will be spawned to hold this script resource, and it can be used as you would the Main window. ":"脚本编辑器将在顶部带有选项卡的窗口中打开,使您可以在一个窗口中拥有多个脚本或事件 (尽管此行为可以从 {} 首选项 {} 更改为为每个脚本或事件提供一个新窗口)。您可以单击选项卡上的 {},然后拖动它以更改选项卡顺序,或者,如果您愿意,也可以将其从当前窗口中拉出并放置在工作区中,以便为该脚本创建新窗口 (或将其添加到其他窗口),还可以最大化脚本编辑器以创建新工作区。如果将脚本选项卡拖出 {}IDE{} 窗口,则将生成一个新的 IDE 来保存此脚本资源,并且可以像使用主窗口一样使用它。",
"The {}Gutter {}is used to show the line numbers for your code and also to convey some specific pieces of information about the state of the code. Most importantly, if you make a {}typo{} or construct the code incorrectly, then the {}GameMaker{} {}IDE{} will inform you of the issue by flagging the line of code with a red exclamation mark {} showing a {}syntax{} error. You can then mouse over the symbol to get a brief description of what the issue is:":"{}行号{} 用于显示代码的行号,以及传达有关代码状态的某些特定信息。最重要的是,如果您输入 {} 错误 {} 或构造的代码不正确,{}GameMaker{}{}IDE{} 将通过使用红色感叹号 {} 标记代码行来通知您此问题,该感叹号显示 {} 语法 {} 错误。然后,可以将鼠标悬停在符号上,以获取问题的简要说明:",
@@ -36,11 +40,14 @@
"{}Gutter{}{}Gutter{}":"{}行号{}{}行号{}",
"{}Here you can perform a {}local {}search for the keyword you input and once you have entered your search term, you can then use the arrows at the top right of the search window to skip from one found term to the next in the script. You can change how the search operation is carried out by toggling the following buttons:":"{}您可以在此处执行{}本地{}搜索输入的关键字,输入搜索词后,可以使用搜索窗口右上角的箭头从找到的一个词跳到脚本中的下一个词。通过切换以下按钮,可以更改执行搜索操作的方式:",
"{}Information{}{}Information{}":"{}信息{}{}信息{}",
+ "{}Legacy Code Editor{}":"{} 旧版代码编辑器 {}",
"{}Main Code Editor{}{}Main Code Editor{}":"{}主代码编辑器{}{}主代码编辑器{}",
"{}Restore to workspace{}: This will take the script editor out of a maximised/workspace state and re-chain it to the object in the workspace.":"{}恢复到工作区{}:这将使脚本编辑器脱离最大化/工作区状态,并将其重新链接到工作区中的对象。",
"{}Script / Event Tab{}{}Script / Event Tab{}":"{}脚本/事件选项卡{}{}脚本/事件选项卡{}",
"{}Search / Replace{}{}Search / Replace{}":"{}搜索/替换{}{}搜索/替换{}",
"{}The Script Editor{}":"{}脚本编辑器{}",
+ "{}This section deals with the {}Legacy Code Editor{} for Script assets. This editor is used for creating custom script assets, as well as for coding {}object events{}, for adding {}room creation code{}, and for many other things.":"{} 本部分介绍脚本资源的 {} 旧版代码编辑器 {}。该编辑器用于创建自定义脚本资源、编写 {} 对象事件 {}、添加 {} 房间创建代码 {} 以及许多其他功能。",
"{}This section deals with the {}script editor{} (also called the {}text editor{}) which is where you type in all the code that your game will require to run. This editor is used for creating custom script assets, as well as for coding {}object events{}, for adding {}room creation code{}, and for many other things.":"{}本节介绍{}脚本编辑器{}(也称为{}文本编辑器{}),您可以在该编辑器中键入运行游戏所需的所有代码。此编辑器用于创建自定义脚本资源,以及编码{}对象事件{}、添加{}房间创建代码{}和许多其他内容。",
- "{}You can find more information on Syntax errors (and general errors when testing or compiling your code) from the following section:":"{}有关语法错误(以及测试或编译代码时的一般错误)的详细信息,请参阅以下部分:"
+ "{}You can find more information on Syntax errors (and general errors when testing or compiling your code) from the following section:":"{}有关语法错误(以及测试或编译代码时的一般错误)的详细信息,请参阅以下部分:",
+ "{}{}NOTE{}{} On creating a script asset, you may be asked to choose between {}GML Visual{} and {}GML Code{}. See {}GameMaker Language{} for more information.":"{}{} 注意 {}{} 创建脚本资源时,系统可能会要求您在 {}GML Visual{} 和 {}GML Code{} 之间进行选择。请参阅 {}GameMaker 语言 {} 了解更多信息。"
}
\ No newline at end of file
diff --git a/language/zh/www/The_Asset_Editors/Sequence_Properties/Broadcast_Messages.json b/language/zh/www/The_Asset_Editors/Sequence_Properties/Broadcast_Messages.json
index ff79ded98..8d7a45fe0 100644
--- a/language/zh/www/The_Asset_Editors/Sequence_Properties/Broadcast_Messages.json
+++ b/language/zh/www/The_Asset_Editors/Sequence_Properties/Broadcast_Messages.json
@@ -1,8 +1,11 @@
{
+ "A sequence {}moment {}is a position on the timeline where the sequence can call a {}function{}. This is a {}scripted function{} that must have no parameters and when the moment (frame) on the timeline is reached, this function will be called. To set a moment, you simply move the playhead to the required position and then click the {}Add Moment{} button, and in the dialog that opens you give the name of the function to call.":"序列 {} 时刻 {} 是时间轴上序列可以调用 {} 函数 {} 的位置。这是一个必须没有参数的 {} 脚本函数 {},当到达时间轴上的时刻 (帧) 时,将调用该函数。要设置时刻,您只需将播放头移动到所需位置,然后点击 {}Add Moment{} 按钮,然后在打开的对话框中输入要调用的函数的名称。",
"Below is a brief example of how this event can be checked:":"以下是如何检查此事件的简单示例:",
"Both {}Sequences{} and {}Sprites{} can generate what are called {}broadcast messages{} at any point along their length. These messages are simple strings that are added to specific frames along the animation timeline, and when that point in the timeline is reached, then the string will be broadcast out to all instances that listen for it. Any instance that has a {}Broadcast Message Event{} (found in the \"{}Other{}\" event category) will receive the message string when it is reached in the timeline, at which point it\u0027s up to you to have some code that will parse it and react accordingly. Note too that sequences can also listen for broadcast messages, but this requires you to first set up the listener method using code (see the GML section on {}Sequence Events And Moments{} for more information).":"{}序列{}和{}精灵{}可以在其长度的任何点生成所谓的{}广播消息{}。这些消息是简单的字符串,添加到动画时间线的特定帧中,当到达时间线中的那个点时,该字符串将广播给所有侦听它的实例。任何具有{}广播消息事件{}的实例(在\"{}其他{}\"事件类别中找到)将在时间线中到达消息字符串时接收该消息字符串,此时,您需要有一些代码来解析它并做出相应的反应。还要注意,序列也可以侦听广播消息,但这需要您首先使用代码设置侦听器方法(有关详细信息,请参阅GML中的{}序列事件和时刻{}一节)。",
"Broadcast Messages":"广播消息",
+ "Broadcast Messages & Moments":"广播消息和瞬间",
"Message Event Struct":"消息事件结构",
+ "Moments":"时刻",
"Note that the broadcast message event of an instance will receive multiple strings for each of the times a broadcast message is sent. You do not need to act on all of them, and can have different instances listening for different broadcast strings. However, you may have an instance that is listening for messages that may be received at the same time. When this happens, the event will be triggered multiple times - {}once for each message string{}.":"注意,实例的广播消息事件将在每次发送广播消息时接收多个字符串。您不需要对所有广播进行操作,并且可以让不同的实例监听不同的广播字符串。但是,您可能有一个实例正在侦听可能同时收到的消息 当发生这种情况时,事件将被多次触发-{}每个消息字符串一次{}。",
"Once added, the message will be shown in the Dope Sheet (or in the sprite frame view). To edit it, you must click the right mouse button {} on the message icon to open a list of all the messages that overlap the frame (there can only be one message on a frame, but placing multiple messages on consecutive frames will cause them to overlap visually, making it harder to select the one you want and you can have a message and a {}moment{} on the same frame too), and then selecting one from this list will open the message dialog where you can edit it or remove it.":"添加后,消息将显示在\"关键帧表\"(或精灵帧视图)中。要编辑它,您必须单击鼠标右键{}在消息图标上打开与帧重叠的所有消息的列表(一个帧上只能有一条消息,但将多条消息放置在连续帧上会导致它们在视觉上重叠,从而使您更难选择所需的消息,您也可以在同一帧上看到一条消息和一个{}时刻{}),然后从列表中选择一个将打开消息对话框,您可以在其中编辑或删除它。",
"This contains the ID of the layer element (sequence/sprite/instance) that fired the message. You can then use this ID value to find out what kind of element generated the message using the function {}{}layer_get_element_type(){}{} and to use the other relevant functions to target it, or perform an action like play a sound, as required.":"这包含触发消息的层元素(序列 / 精灵 / 实例)的 ID。然后,您可以使用此 ID 值来确定使用函数 {}{}layer_get_element_type(){}{} 生成消息的元素类型并根据需要使用其他相关功能来瞄准它,或执行诸如播放声音之类的动作。",
@@ -10,5 +13,6 @@
"This will be the string \"{}sequence event{}\" for a message sent from a Sequence and \"{}sprite event{}\" for a message sent from a Sprite.":"对于从序列发送的消息,这将是字符串\"{}sequence event{}\",对于从精灵发送的消息则是字符串\"{}sprite event{}\"。",
"To add a Broadcast Message to the sequence or sprite timeline you simply click the {} button. This will open a dialog where you can add the message to be broadcast:":"添加广播消息到序列或精灵时间线,只需单击{}按钮这一点将打开一个对话框,您可以在其中添加要广播的消息:",
"When a Broadcast Message event is triggered, there will be a special {}DS Map{} created and stored in the built-in variable {}event_data{}. This variable ID is a built-in {}global {}scope variable, but will only contain DS map data in the event that triggered it - in this case the Broadcast Message event - and will return -1 at all other times. The keys that the event will have are as follows:":"当触发广播消息事件时,将有一个特殊的{}DS映射{}创建并存储在内置变量{}event_data{}中。此变量ID是一个内置的{}全局{}范围变量,但仅在触发它的事件中包含DS映射数据-在这种情况下,广播消息事件将在所有其他时间返回-1。事件将具有的键如下:",
+ "{}When adding a moment function, you can click the {} button to go to the script with the specified function, or you can click the {} button to create a new script asset with an empty function ready for editing. You can also remove the moment and the function call it contains by clicking the {} button.":"{} 添加矩函数时,您可以点击 {} 按钮转到具有指定函数的脚本,也可以点击 {} 按钮创建一个新的脚本资源,其中包含可供编辑的空函数。您还可以通过点击 {} 按钮删除该时刻及其包含的函数调用。",
"{}{}NOTE{}{} Setting the {}image_index {}of an instance directly to a frame will {}not{} trigger any Broadcast Messages that may be present on that frame of the object\u0027s sprite.":"{}{}注意{}{} 将实例的 {}image_index{} 直接设置为帧将{}不{}触发对象精灵的该帧上可能存在的任何广播消息。"
}
\ No newline at end of file
diff --git a/language/zh/www/The_Asset_Editors/Sequence_Properties/Sound_in_Sequences.json b/language/zh/www/The_Asset_Editors/Sequence_Properties/Sound_in_Sequences.json
index 8d5591901..ce17134f5 100644
--- a/language/zh/www/The_Asset_Editors/Sequence_Properties/Sound_in_Sequences.json
+++ b/language/zh/www/The_Asset_Editors/Sequence_Properties/Sound_in_Sequences.json
@@ -10,13 +10,18 @@
"Contents":"内容",
"Emitters":"发射器",
"Every sound track in a sequence gets an audio emitter as well as an audio bus. You can move the audio emitter around on the sequence canvas to {}Position{} it.":"序列中的每个音轨都有一个音频发射器和一个音频总线。您可以在序列画布上移动音频发射器,以{}定位{}它。",
+ "Finally, the emitter\u0027s falloff parameters ({}Falloff Factor{}, {}Falloff Ref{} and {}Falloff Max{}) can also be changed by adding a {}Falloff{} parameter track. This parameter track contains a channel for each of the falloff parameters.":"最后,还可以通过添加 {}Falloff{} 参数轨道来更改发射器的衰减参数 ({}Falloff Factor{}、{}Falloff Ref{} 和 {}Falloff Max{})。该参数轨道包含每个衰减参数的通道。",
"For example, if you added an audio emitter to your sequence at position (0, 0) and you add an instance of that sequence to a room at a position (100, 200) then {}GameMaker{} will place the audio emitter at (100, 200), or (100 + 0, 200 + 0). If you have another audio emitter in another sequence at position (10, -30) and you add an instance of this sequence at (400, 50), this emitter will end up at the position (410, 20), or (400 + 10, 50 + (-30)). If you animated the emitter\u0027s position in the sequence, {}GameMaker{} will update its final position accordingly.":"例如,如果将音频发射器添加到序列的位置(0,0),并将该序列的实例添加到房间的位置(100,200)然后{}GameMaker{}将音频发射器放置在(100,200),或(100 + 0,200 + 0).如果你有另一个音频发射器在另一个序列中的位置(10,-30),你添加一个这个序列的实例在(400,50),此发射器将在位置(410,20)或(400 + 10,50 +(-30))处结束。如果您在序列中设置了发射器位置的动画,{}GameMaker{}将相应地更新其最终位置。",
+ "IDE Audio Listener":"IDE 音频监听器",
"In {}The Inspector{} you can edit all general sound and emitter properties of a sound track as well as the settings of all its effects.":"在{}检查器{}中,您可以编辑音轨的所有常规声音和发射器属性,以及其所有效果的设置。",
"Inspector":"检查器",
"Once your sequence is finished, you can add it to an asset layer in {}The Room Editor{}, creating one or more {}instances{} of it. A sequence instance will include an audio emitter for each sound track in the sequence, positioned relative to the instance\u0027s position.":"序列完成后,您可以将其添加到{}房间编辑器{}中的资源层,创建一个或多个{}实例{}。序列实例将包括序列中每个音轨的音频发射器,其位置相对于实例的位置。",
"Reordering Audio Effects":"重新排序音频效果",
"So you can place two instances of the same sequence in a room and the audio emitter in one will be heard on one side and the other one on the other side (despite the two emitters both having the same \"local\" position).":"因此,您可以在房间中放置相同序列的两个实例,其中一个中的音频发射器将在一侧听到,另一个将在另一侧听到(尽管两个发射器都具有相同的\"本地\"位置)。",
"Sound tracks can be added to sequences, together with audio effects on that track. The simplest way to do this is by dragging a sound asset into the Canvas at the position where you want the sound to play.":"可以将声音轨道添加到序列中,并在该轨道上添加音频效果。最简单的方法是将声音资源拖到画布中希望播放声音的位置。",
+ "The Sequence Editor uses the following setup for previewing audio in sequences: ":"序列编辑器使用以下设置来预览序列中的音频:",
+ "The audio falloff model is set to {}{}audio_falloff_linear_distance_clamped{}. This is not automatically set in your game, you need to set it explicitly by calling {}{}audio_falloff_set_model{}{}.{}":"音频衰减模型设置为 {}{}audio_falloff_linear_distance_clamped{}。这不会在您的游戏中自动设置,您需要通过调用 {}{}audio_falloff_set_model{}{} 显式设置。{}",
+ "The audio listener is positioned at the sequence\u0027s {}(0, 0, 0){} position, looking into the screen and facing \"up\" along the negative y axis. This is equivalent to calling {}{}audio_listener_orientation(0, 0, 1, 0, -1, 0){} in {}GML Code{}.{}":"音频监听器位于序列的 {}(0, 0, 0){} 位置,看着屏幕并沿负 y 轴 \" 朝上\"。这相当于在 {}GML 代码 {} 中调用 {}{}audio_listener_orientation(0, 0, 1, 0, -1, 0){}。{}",
"This page covers the following topics: ":"本页涵盖以下主题:",
"To reorder audio effects, click and hold the left mouse button on an effect track to drag it to its new position: ":"若要重新排序音频效果,请在效果轨道上单击并按住鼠标左键,将其拖到新位置:",
"You add all {}Audio Effects{}, except for the equaliser effect, as parameter tracks to audio asset tracks.":"您可以将所有{}音频效果{}(均衡器效果除外)作为参数轨道添加到音频资源轨道。",
@@ -30,6 +35,8 @@
"{}Sound in Sequences{}":"{}声音序列{}",
"{}{}NOTE{}{} All properties shown above apply to the emitter except the {}Loop Mode{}, which is a property of the {}sound instance{}.":"{}{}注意{}{}上面显示的所有属性都适用于发射器,但{}循环模式{}除外,它是{}声音实例{}的属性。",
"{}{}NOTE{}{} Dragging parameter tracks only works for audio effect parameter tracks, not the bus track or any other type of parameter track.":"{}{}注意{}{}拖动参数轨道仅适用于音频效果参数轨道,而不适用于总线轨道或任何其他类型的参数轨道。",
+ "{}{}NOTE{}{} The HTML5 platform {}is very limited in terms of falloff model support. The falloff model used for preview in the IDE {}{}reflects the most important properties (ref distance and max distance) {}at the cost of not reflecting the falloff factor, which is limited between 0 and 1 for linear falloff models in Web Audio.{}{}":"{}{} 注意{}{}HTML5 平台 {} 在衰减模型支持方面非常有限。用于在 IDE 中预览的衰减模型 {}{} 反映了最重要的属性 (参考距离和最大距离 ){},但代价是不反映衰减因子,对于 Web 中的线性衰减模型,衰减因子限制在 0 到 1 之间声音的。{}{}",
"{}{}NOTE{}{} The position will influence how loud and from which direction the sound is heard. For this to work correctly, you also need to set an appropriate audio falloff model and update the listener position and orientation to where you want the sound to be heard. See {}Audio Emitters{} for more details.":"{}{}注意{}{}位置会影响声音的大小和方向。要使其正常工作,您还需要设置适当的音频衰减模型,并将收听者的位置和方向更新到您希望听到声音的位置。有关详细信息,请参阅{}音频发射器{}。",
+ "{}{}NOTE{}{} When you add a sequence to a room in {}The Room Editor{}, the audio listener is positioned at the {}room\u0027s{} origin (i.e. the top-left corner) and the audio emitters created for the sequence\u0027s audio tracks are offset by the position and rotation of the sequence instance.":"{}{} 注意{}{} 当您在 {} 房间编辑器 {} 中向房间添加序列时,音频监听器位于 {} 房间 {} 的原点 (即左上角),并且音频监听器位于 {} 房间的 {} 原点 (即左上角) 为序列的音轨创建的发射器会根据序列实例的位置和旋转进行偏移。",
"{}{}NOTE{}{} You can add a maximum number of {}8{} audio effect tracks, as limited by the number of effect slots of the {}AudioBus Struct{}.":"{}{}注意{}{}您最多可以添加{}8{}个音频效果轨道,这受{}AudioBus Struct{}的效果插槽数量限制。"
}
\ No newline at end of file
diff --git a/language/zh/www/The_Asset_Editors/Sequence_Properties/Text_in_Sequences.json b/language/zh/www/The_Asset_Editors/Sequence_Properties/Text_in_Sequences.json
index 8f130387a..7f3cf7423 100644
--- a/language/zh/www/The_Asset_Editors/Sequence_Properties/Text_in_Sequences.json
+++ b/language/zh/www/The_Asset_Editors/Sequence_Properties/Text_in_Sequences.json
@@ -31,6 +31,7 @@
"You can also modify parameters for SDF effects: ":"也可以修改SDF效果的参数:",
"You can modify and animate all the usual parameters that are provided for a sprite track, like Position, Rotation, Scale, Origin and Colour Multiply. Using these parameters you can move and rotate your text, make it bigger or smaller, and change its colour and alpha.":"您可以修改和设置为精灵轨道提供的所有常用参数的动画,如\"位置\"、\"旋转\"、\"比例\"、\"原点\"和\"颜色倍增\"。使用这些参数,您可以移动和旋转文本,使其变大或变小,并更改其颜色和 alpha。",
"{}Alignment{}: Here you can change how your text is aligned within the frame horizontally (left, centre, right, justified) and vertically (bottom, top, middle). This only applies when the {}Wrap{} option is enabled.":"{}对齐方式{}:在这里,您可以更改文本在框架内的水平对齐方式(左、中、右、对齐)和垂直对齐方式(下、上、中)。这仅在启用{}包裹{}选项时适用。",
+ "{}Alignment{}: Here you can change how your text is aligned within the frame horizontally (left, centre, right, justified) and vertically (bottom, top, middle). When using justified alignment in unwrapped mode, the length of the longest line of text will determine the frame width that the text is justified against.":"{} 对齐方式{}:您可以在此处更改文本在框架内的水平 (左、中、右、两端对齐) 和垂直 (下、上、中) 对齐方式。在展开模式下使用对齐对齐时,最长文本行的长度将决定文本对齐的框架宽度。",
"{}Character Spacing{}: This is the space between each character (in pixels).{} {} ":"{}字符间距{}:这是每个字符之间的间距(以像素为单位)。{} {}",
"{}Click and drag in the canvas{}: This creates a \"wrapped\" text track, meaning the text only displays inside a frame. The size of this frame is set by dragging while creating the text track. Its size can also be changed later via parameter tracks or the Inspector. {}{} It is recommended to use wrapped text tracks as it makes it much easier to align your text and get consistent results while animating.":"{}在画布中单击并拖动{}:这将创建一个\"环绕\"文本轨道,这意味着文本只显示在框架内。此框架的大小是通过在创建文本轨道时拖动来设置的。它的大小也可以在以后通过参数轨道或检查器进行更改。{}{}建议使用换行文字轨道,因为这样可以更轻松地对齐文本,并在制作动画时获得一致的结果。",
"{}Click once in the canvas{}: This creates an \"unwrapped\" text track. This means the text can be as long as you want and it will stay on one line. Wrapping can easily be enabled later through the {}Inspector{}.{} {}{} ":"{}在画布中单击一次{}:这将创建一个\"展开\"的文本轨道。这意味着文本可以是您想要的长度,并且将保持在一行上。以后可以通过{}检查器{}轻松启用换行。{} {}{}",
@@ -56,6 +57,8 @@
"{}Thickness{}: This is the number of pixels to modify the thickness of each {}glyph{} in the text. It can range from -32 to 32.":"{}粗细 (Thickness){}:这是修改文本中每个{}边框{}粗细的像素数。范围为-32到32。",
"{}To edit the text for a track at any time, simply select that track, go into the Inspector and modify the {}Text{} field again.":"{}要随时编辑轨道的文本,只需选择该轨道,进入检查器,然后再次修改{}文本{}字段。",
"{}When SDF is enabled, add parameter tracks to use and animate these effects. These parameters are listed in the {}Parameters{} section below.":"{}启用SDF后,添加参数轨迹以使用这些效果并设置其动画。这些参数在下面的{}参数{}部分中列出。",
+ "{}Wrap{}: This controls whether the text should automatically wrap within the defined frame. When this is enabled, your text will automatically move to the next line when it hits the end of the frame, and will always be cut off if the text happens to be longer than the height of the frame.":"{} 换行{}:控制文本是否应在定义的框架内自动换行。启用此功能后,文本到达框架末尾时将自动移动到下一行,并且如果文本恰好长于框架高度,则文本将始终被截断。",
"{}Wrap{}: This controls whether the text should automatically wrap within the defined frame. When this is enabled, your text will automatically move to the next line when it hits the end of the frame, and will always be cut off if the text happens to be longer than the height of the frame. When this is disabled, all of your text will be displayed on a single line, and the frame will not be displayed in the canvas anymore.":"{}换行{}:这控制文本是否应在定义的框架内自动换行。启用此选项后,当文本到达框架的末尾时,文本将自动移动到下一行,如果文本恰好长于框架的高度,文本将始终被截断。禁用此选项后,所有文本都将显示在一行上,并且框架将不再显示在画布中。",
- "{}{}NOTE{}{} The Inspector should open automatically when you create or select a text track, but if your Inspector is closed, you can open it manually from {}The Windows Menu{} at the top.":"{}{}注意{}{}当您创建或选择文本轨道时,检查器应自动打开,但如果检查器已关闭,您可以从顶部的{}Windows菜单{}手动打开它。"
+ "{}{}NOTE{}{} The Inspector should open automatically when you create or select a text track, but if your Inspector is closed, you can open it manually from {}The Windows Menu{} at the top.":"{}{}注意{}{}当您创建或选择文本轨道时,检查器应自动打开,但如果检查器已关闭,您可以从顶部的{}Windows菜单{}手动打开它。",
+ "{}{}TIP{}{} Text can also be created directly within a room by creating an {}Asset Layer{}, and then dragging in a font asset or using the {} tool from the Layer Toolbox. Text placed in rooms will follow behaviour similar to text in Sequences as described on this page.":"{}{} 提示{}{} 还可以通过创建 {} 资源层 {},然后拖入字体资源或使用层工具箱中的 {} 工具,直接在房间内创建文本。放置在房间中的文本将遵循与本页所述的序列中的文本类似的行为。"
}
\ No newline at end of file
diff --git a/language/zh/www/The_Asset_Editors/Sequence_Properties/The_Track_Panel.json b/language/zh/www/The_Asset_Editors/Sequence_Properties/The_Track_Panel.json
index b637c9cd7..aa059f440 100644
--- a/language/zh/www/The_Asset_Editors/Sequence_Properties/The_Track_Panel.json
+++ b/language/zh/www/The_Asset_Editors/Sequence_Properties/The_Track_Panel.json
@@ -110,6 +110,7 @@
"{}Snap Right{}":"{}置于右侧{}",
"{}Snap Top{}":"{}置于顶部{}",
"{}Sounds{}: {}Pitch {}and {}Volume as well as Bus and Audio Effects.{}":"{}声音{}:{}音高{}和{}音量以及总线和音频效果。{}",
+ "{}Sounds{}: {}Pitch {}and {}Volume, (emitter) Falloff settings as well as Bus and Audio Effects.{}":"{}声音 {}:{} 音调 {} 和 {} 音量、(发射器) 衰减设置以及总线和音频效果。{}",
"{}Sounds{}: {}Pitch {}and {}Volume{}.":"{}声音{}:{}音高{}和{}音量{}。",
"{}Split Window{}":"{}拆分窗口{}",
"{}Sprites and Objects{}: {}Origin{}, {}Scale{}, {}Image Index{}, {}Image Speed{}, and {}Colour Multiply{}.":"{}精灵和对象{}:{}原点{}、{}比例{}、{}图像索引{}、{}图像速度{}和{}色彩倍增{}。",
@@ -123,5 +124,6 @@
"{}Volume{}: The volume parameter only applies to {}sound {}asset tracks and can be used to set the gain of the sound (the actual sound asset gain won\u0027t be changed, as it\u0027s essentially an emitter that is used for the asset track in sequences). The volume value is calculated as a percentage, where 0% is no volume and 100% is full volume.":"{} 音量{}:音量参数仅适用于 {} 声音 {} 资源音轨,可用于设置声音的增益(实际的声音资源增益不会改变,因为它本质上是一个发射器,用于资源音轨的序列)。体积值以百分比计算,其中 0% 为无音量,100% 为满音量。",
"{}What your sequences do are governed by the assets and parameters that have been added to the {}Track Panel{}. You can add a track to the editor by either:":"{}您的序列操作由已添加到{}轨道面板{}的资源和参数控制。您可以通过以下任一方式将轨道添加到编辑器:",
"{}What your sequences do is governed by the assets and parameters that have been added to the {}Track Panel{}. You can add a track to the editor by either:":"{}您的序列操作由已添加到{}轨道面板{}的资源和参数控制。您可以通过以下任一方式将轨道添加到编辑器:",
- "{}You\u0027ll notice too that in the image above you can use the arrow buttons on either side of the parameter key marker to quickly skip between key frames in the dope sheet too, without having to position the playhead manually.":"{}您也会注意到,在上面的图像中,您可以使用参数关键帧标记两侧的箭头按钮快速跳过关键帧表中的关键帧,而无需手动定位播放头。"
+ "{}You\u0027ll notice too that in the image above you can use the arrow buttons on either side of the parameter key marker to quickly skip between key frames in the dope sheet too, without having to position the playhead manually.":"{}您也会注意到,在上面的图像中,您可以使用参数关键帧标记两侧的箭头按钮快速跳过关键帧表中的关键帧,而无需手动定位播放头。",
+ "{}{}NOTE{}{} Some parameter tracks may have a \"link\" icon {} next to their values, which means they can be linked together. This is done by clicking the icon to enable/disable linking, and when enabled, editing one value will also set the other.":"{}{} 注意{}{} 某些参数轨道的值旁边可能有一个 \" 链接 \" 图标 {},这意味着它们可以链接在一起。这是通过单击图标启用 / 禁用链接来完成的,启用后,编辑一个值也将设置另一个值。"
}
\ No newline at end of file
diff --git a/language/zh/www/The_Asset_Editors/Sequences.json b/language/zh/www/The_Asset_Editors/Sequences.json
index ec515961c..40f154389 100644
--- a/language/zh/www/The_Asset_Editors/Sequences.json
+++ b/language/zh/www/The_Asset_Editors/Sequences.json
@@ -8,6 +8,7 @@
"Below you can find an overview of each of the features of the Sequence Editor, and at the bottom of this page are links to pages that explain the three main features mentioned above in more depth:":"您可以在下面找到序列编辑器的每个功能的概述,并且在此页面的底部是指向更深入地解释上述三个主要功能的页面的链接:",
"Below you can find an overview of each of the features of the sequence editor, and at the bottom of this page are links to pages that explain the three main features mentioned above in more depth:":"下面您可以找到序列编辑器的每个功能的概述,并且在此页面的底部是指向页面的链接,这些页面更深入地解释了上述三个主要功能:",
"Broadcast Messages":"广播消息",
+ "Broadcast Messages & Moments":"广播消息和时刻",
"Clipping Masks":"剪切蒙版",
"Due to the initial complexity of the Sequence Editor, we have only given a brief overview of the features available here, but we have additional pages listed below that go into more depth about its features and how they can be used:":"由于序列编辑器的初始复杂性,我们只对此处提供的功能进行了简要概述,但下面列出了更多页面,这些页面更深入地介绍了序列编辑器的功能以及如何使用这些功能:",
"Each asset added to the canvas can be manipulated in multiple ways - rotated, transformed, or translated - based on how you interact with it, as each asset will have a {}bounding box{} and {}transform {}gizmos{}{} as well as {}bounding box controls{}. All this is explained in more detail on the page about the {}Sequence Editor Canvas{}.":"添加到画布中的每个资源都可以基于与其交互的方式以多种方式进行操作(旋转、转换或转换),因为每个资源将具有{}边界框{}和{}转换{}小工具{}{}以及{}边界框控件{}。所有这些都将在关于{}序列编辑器画布{}的页面上进行更详细的说明。",
diff --git a/language/zh/www/The_Asset_Editors/Shaders.json b/language/zh/www/The_Asset_Editors/Shaders.json
index 35c217941..d767723ca 100644
--- a/language/zh/www/The_Asset_Editors/Shaders.json
+++ b/language/zh/www/The_Asset_Editors/Shaders.json
@@ -11,9 +11,11 @@
"Mac and Ubuntu (Linux)":"Mac 和 Ubuntu (Linux)",
"Shader Constants":"着色器常量",
"Shader Functions":"着色器函数",
+ "The Code Editor":"代码编辑器",
"The Fragment Shader is the programmable shader stage in the rendering pipeline that deals with \"fragments\" - the interpolated pixels used to texture any given polygon - and they are responsible for outputting the final pixel colour of each rendered triangle pixel. Basically it works like this: the Fragment Shader receives as its input all those fragments (the individual pixels of the triangle being rendered) that have been passed along the pipeline by the Vertex Shader. It can then process these fragments to change the colour and alpha of the final destination pixel that will be drawn to the screen.":"片段着色器是渲染管道中的可编程着色器阶段,用于处理 \"片段\"--用于对任何给定的多边形进行纹理的插值像素--它们负责输出每个渲染的三角形像素的最终颜色。基本上,它是这样工作的:片段着色器接收所有由顶点着色器沿管道传递的片段(正在渲染的三角形的单个像素)作为其输入。然后,它可以处理这些片段,以改变将被绘制到屏幕上的最终目标像素的颜色和透明度。",
"The Shader Editor":"着色器编辑器",
"The Vertex Shader is the programmable shader stage in the rendering pipeline that handles the processing of individual vertices (the points of the triangles used to render any image), and when you are rendering a geometry - like a sprite or a surface - {}GameMaker{} creates a stream of vertices - called a {}Vertex Buffer {}- that defines the geometry of these triangles. A sprite for example would have a geometry of two triangles (normally called {}polygons{}) rendered together to form a \"quad\". This vertex stream from the Vertex Buffer is fed as an input to the Vertex Shader, which can process the vertices data in a programmable way. The Vertex Shader output is used by the GPU to assemble triangles, which are then properly clipped and culled to the view port and view camera, and then sent on to the rasterizer block of the GPU which generates a new output stream, constituted by something called {}Fragments{}. These are tiny data structures, each of which is relative to a single pixel that appears on the screen.":"顶点着色器是渲染管道中的可编程着色器阶段,它处理单个顶点(用于渲染任何图像的三角形的点),当你正在渲染一个几何体--如精灵或表面--{}GameMaker{}创建一个顶点流-- 称为{}Vertex Buffer {}--定义 这些三角形的几何。例如,一个精灵会有一个由两个三角形(通常称为{}多边形{})组成的几何体,并被渲染成一个 \"四边形\"。这个来自顶点缓冲器的顶点流被作为输入输入到顶点着色器,它可以以可编程的方式处理顶点数据。顶点着色器的输出被GPU用来组装三角形,然后对其进行适当的剪裁,并对视图端口和视图相机进行剪裁,然后被发送到GPU的光栅化器块,该块产生一个新的输出流,由称为{}Fragments{}的东西组成。这些都是微小的数据结构,每一个都是相对于出现在屏幕上的一个像素的。",
+ "The new {}Code Editor{} can be enabled from the {}preferences{} and is used to edit shader files when enabled. Both the vertex and fragment shaders will appear in the same editor one after another (unless the \"{}Show all documents in single view{}\" {}preference{} is disabled, in which case you can switch the opened shader file from the {}Navigation Bar{}).":"新的 {} 代码编辑器 {} 可以从 {} 首选项 {} 启用,启用后用于编辑着色器文件。顶点着色器和片段着色器将相继出现在同一个编辑器中 (除非 \"{} 在单一视图中显示所有文档 {}\"{} 首选项 {} 被禁用,在这种情况下,您可以从 {} 导航栏 {})。",
"To create a shader resource, simply right click {} inside the {}Asset Browser{} and select {}Create -> Shader{}. Once you have created the base shader, you can then use the right mouse {} menu on the new resource to select the shader type before continuing to edit the code:":"要创建一个着色器资源,只需在{1}Asset Browser{2}内右击{} ,选择{}Create -> Shader{}。一旦你创建了基础着色器,你就可以在新资源上使用鼠标右键{}菜单来选择着色器类型,然后继续编辑代码:",
"When writing GLSL ES shaders, it is recommended to follow the {}official language specification{} as closely as possible to avoid errors as some target platforms can be stricter than others (such as the HTML5 and GX.games targets, which can be more restrictive than other platforms such as Windows, macOS, etc. when it comes to language limitations).":"在编写GLSL ES着色器时,建议尽可能地遵循{}官方语言规范{} ,以避免错误 ,因为一些目标平台 可能比其他平台更严格 (例如HTML5和GX.games目标,在涉及语言限制时可能比 其他平台如Windows、macOS等更严格)。",
"Windows and Xbox":"Windows 和 Xbox",
diff --git a/language/zh/www/The_Asset_Editors/Sprites.json b/language/zh/www/The_Asset_Editors/Sprites.json
index 3c2197e21..314549615 100644
--- a/language/zh/www/The_Asset_Editors/Sprites.json
+++ b/language/zh/www/The_Asset_Editors/Sprites.json
@@ -71,6 +71,7 @@
"{}NOTE{} This option is only available for {}bitmap{} sprites and will be greyed out for SWF or skeleton animation sprites.":"{}注意{} 该选项仅适用于{}位图{}精灵,对于SWF或骨骼动画精灵,该选项将被置为灰色。",
"{}Nine Slice{}{}Nine Slice{}":"{}九宫切片{}{}九宫切片{}",
"{}Once added, the message will be shown in the Frame View, and you can click the right mouse button {} on it to open a menu where you can delete the message or edit it. For more information on Broadcast Messages please see {}here{}.":"{}一旦添加,信息将显示在框架视图中,你可以点击鼠标右键{} ,打开一个菜单,你可以删除该信息或编辑它。关于广播信息的更多信息,请见{}这里{}。",
+ "{}Once added, the message will be shown in the Frame View, and you can click the right mouse button {} on it to open a menu where you can delete the message or edit it. See {}Broadcast Messages & Moments{} for more info.":"{} 添加后,该消息将显示在 Frame View 中,您可以在其上点击鼠标右键 {} 打开一个菜单,您可以在其中删除该消息或对其进行编辑。请参阅 {} 广播消息和广播消息时刻 {} 了解更多信息。",
"{}Once added, the message will be shown in the Frame View, and you can click the right mouse button {} on it to open a menu where you can delete the message or edit it. See {}Broadcast Messages{} for more info.":"{}添加后,消息将显示在框架视图中,您可以在其上单击鼠标右键{}以打开一个菜单,您可以在其中删除或编辑消息。有关详细信息,请参阅{}广播消息{}。",
"{}Playback Controls{}{}Playback Controls{}":"{}播放控制{}{}播放控制{}",
"{}Precise (per frame){}: This creates a precise collision mask on a per-frame basis (i.e.: the mask will change to conform to the outline of each different frame). Note that the precise mask will be clipped to the {}bounding box{} if the Mode is set to Manual and you change the default values. This is by far the slowest type of collision mask to resolve and should be avoided except in very, very specific and infrequent cases.":"{}精确(每帧){}:这将在每帧的基础上创建精确的碰撞掩码(即:遮罩将改变以符合每个不同帧的轮廓)。注意,如果模式设置为手动并且您更改默认值,精确遮罩将被剪切到{}边界框{}。这是迄今为止解决冲突遮罩的最慢类型,应该避免,除非在非常,非常具体和罕见的案例。",
diff --git a/language/zh/www/The_Asset_Editors/The_Asset_Editors.json b/language/zh/www/The_Asset_Editors/The_Asset_Editors.json
index 01a33cabd..7d217fd88 100644
--- a/language/zh/www/The_Asset_Editors/The_Asset_Editors.json
+++ b/language/zh/www/The_Asset_Editors/The_Asset_Editors.json
@@ -3,6 +3,7 @@
"Extensions":"扩展",
"Fonts":"字体",
"Images":"图像",
+ "In the course of development you will need to use some - or even all - of these editors, and remembering what everything does can sometimes be a bit daunting. To help out, you can find each of the different editors listed below, and clicking any of them will take you to a page that explains in detail what it is and how to use it.":"在开发过程中,您将需要使用其中一些甚至全部编辑器,并且记住所有内容的作用有时可能会有点令人畏惧。为了提供帮助,您可以找到下面列出的每个不同的编辑器,单击其中任何一个都会将您带到一个页面,该页面详细解释了它是什么以及如何使用它。",
"Notes":"笔记",
"Objects":"物体",
"Particle Systems":"粒子系统",
@@ -14,8 +15,10 @@
"Sounds":"声音",
"Sprites":"精灵",
"The Asset Editors":"资源编辑器",
+ "There are also {}General Asset Editors{} which allow you to edit various types of assets.":"还有 {} 常规资源编辑器 {},可让您编辑各种类型的资源。",
"Tile Sets":"图块集合",
"Timelines":"时间线",
+ "{}GameMaker{} has a number of different assets that you can create (in {}The Asset Browser{}) which you can edit using each of the specific asset editors listed below.":"{}GameMaker{} 拥有许多可供您创建的不同资源 (在 {} 资源浏览器 {} 中),您可以使用下面列出的每个特定资源编辑器来编辑这些资源。",
"{}GameMaker{} has a number of different editors which you can use to add, remove and edit the different assets that your game requires. In the course of development you will need to use some - or even all - of these editors, and remembering what everything does can sometimes be a bit daunting. To help out, you can find each of the different editors listed below, and clicking any of them will take you to a page that explains in detail what it is and how to use it.":"{}GameMaker{}有许多不同的编辑器,您可以使用它们来添加、删除和编辑游戏所需的不同资源。在开发过程中,您将需要使用一些——甚至全部——这些编辑器,并且记住每件事情所做的有时可能有点令人生畏。为了帮助解决这个问题,你可以找到下面列出的每一个不同的编辑器,点击其中的任何一个都会带你进入一个详细解释它是什么以及如何使用它的页面。",
"{}The Asset Editors{}":"{}资源编辑器{}"
}
\ No newline at end of file
diff --git a/language/zh/www/The_Asset_Editors/The_Text_Editor.json b/language/zh/www/The_Asset_Editors/The_Text_Editor.json
new file mode 100644
index 000000000..aeb75dd01
--- /dev/null
+++ b/language/zh/www/The_Asset_Editors/The_Text_Editor.json
@@ -0,0 +1,65 @@
+{
+ "Also see the preferences:":"另请参阅首选项:",
+ "Code Editor Preferences":"代码编辑器首选项",
+ "Code Snippets ":"代码片段",
+ "Contents":"内容",
+ "Each file that the editor can open and edit is referred to as a \"document\", e.g. each event in an object is a separate document, the vertex and fragment shaders are two documents, a room\u0027s Creation Code is a document, and so on.":"编辑器可以打开和编辑的每个文件都称为 \" 文档\",例如对象中的每个事件都是一个单独的文档,顶点和片段着色器是两个文档,房间的创建代码是一个文档,等等。",
+ "Editing Code":"编辑代码",
+ "Editor Frame":"编辑器框架",
+ "Feather Data Types":"羽毛数据类型",
+ "Feather Directives":"羽毛指令",
+ "Feather Features":"羽毛特点",
+ "Finally you have a drop-down to change the language of the document (where it says \"{}GML{}\" for a GML Code document). When switching between GML Code and GML Visual, only the focused event will be modified. The languages that appear in the list will depend on the type of document that is open.":"最后,您可以通过一个下拉菜单来更改文档的语言 (其中显示 \"{}GML{}\" 表示 GML 代码文档)。当在 GML Code 和 GML Visual 之间切换时,只有焦点事件会被修改。列表中显示的语言取决于打开的文档的类型。",
+ "Further Reading":"进一步阅读",
+ "Gutter":"装订线",
+ "Here you can change which asset you are working on, the document within that asset being edited, and focus on a particular variable or function definition in the active document.":"您可以在此处更改正在处理的资产、正在编辑的资产中的文档,并关注活动文档中的特定变量或函数定义。",
+ "Horizontal Scrollbar":"水平滚动条",
+ "Hovering over a part of the minimap will temporarily display the code at that position, as seen on the left in the image above. The preview will continue to be displayed until your mouse cursor leaves the minimap area.":"将鼠标悬停在小地图的一部分上将暂时显示该位置的代码,如上图左侧所示。预览将继续显示,直到鼠标光标离开小地图区域。",
+ "If your game contains any {}Included Files{} or {}Extension{} files of the formats given below, they will be editable in the {}Code Editor{} through the right-click menu:":"如果您的游戏包含下列格式的任何 {} 包含文件 {} 或 {} 扩展 {} 文件,则可以通过右键菜单在 {} 代码编辑器 {} 中编辑它们:",
+ "JSDoc Script Comments":"JSDoc 脚本注释",
+ "Navigation Bar":"导航栏",
+ "Notes":"笔记",
+ "Read these pages to learn more about writing code in the {}Code Editor{}:":"阅读这些页面,了解有关在 {} 代码编辑器 {} 中编写代码的更多信息:",
+ "Shaders":"着色器",
+ "The gutter is a vertical column that appears to the left of your code, where the line numbers are displayed:":"装订线是出现在代码左侧的垂直列,其中显示行号:",
+ "The horizontal scrollbar appears at the bottom of the frame, to scroll left or right. This has the following parts:":"水平滚动条出现在框架底部,可向左或向右滚动。这有以下部分:",
+ "The leftmost drop-down menu controls the zoom level of all {}Code Editor{}s in the current session. This does not persist across sessions, as such it is only meant for temporary use during the current IDE session. To change the size of your text permanently, modify the {}Code Editor Preferences{} or the DPI in the {}General Preferences{}.":"最左侧的下拉菜单控制当前会话中所有 {} 代码编辑器 {} 的缩放级别。这不会跨会话持续存在,因此它仅适用于当前 IDE 会话期间的临时使用。要永久更改文本大小,请修改 {} 代码编辑器首选项 {} 或 {} 常规首选项 {} 中的 DPI。",
+ "The rightmost edge of the Editor Frame displays a vertical scrollbar, which has some additional functionality beyond just scrolling.":"编辑器框架的最右边缘显示一个垂直滚动条,除了滚动之外,它还有一些附加功能。",
+ "The {}Code Editor{} always opens in a new workspace tab, containing the editor itself, with a frame around it:":"{} 代码编辑器 {} 始终在新的工作区选项卡中打开,其中包含编辑器本身,周围有一个框架:",
+ "Then, the current line and column number of the text cursor are displayed (\"{}Ln Y, Col X{}\"). Clicking on this opens the \"{}Go To Line{}\" dialog (which can also be opened with {}CTRL/CMD + G{}).":"然后,显示文本光标的当前行号和列号 (\"{}Ln Y, Col X{}\")。点击此按钮将打开 \"{}Go To Line{}\" 对话框 (也可以使用 {}CTRL/CMD + G{} 打开)。",
+ "This is the most important part of the Editor Frame.":"这是编辑器框架中最重要的部分。",
+ "This page covers all parts of the Editor Frame. For information on writing code inside the editor, see {}Editing Code{} and {}Code Completion{}.":"此页面涵盖了编辑器框架的所有部分。有关在编辑器内编写代码的信息,请参阅 {} 编辑代码 {} 和 {} 代码完成 {}。",
+ "Timelines":"时间线",
+ "To the right of the scrollbar itself, you will see \"{}OVR{}\" if you pressed {}insert{} to enable Overwrite Mode. When in Insert Mode, nothing is shown here.":"如果您按 {}insert{} 启用覆盖模式,您将在滚动条右侧看到 \"{}OVR{}\"。当处于插入模式时,此处不显示任何内容。",
+ "Vertical Scrollbar":"垂直滚动条",
+ "Workspace Tab Menu":"工作区选项卡菜单",
+ "You can enable the \"{}Show diagnostics on scrollbar{}\" {}preference{} to display diagnostics (i.e. errors, warnings and suggestions) as small lines on the scrollbar:":"您可以启用 \"{} 在滚动条上显示诊断信息 {}\"{} 首选项 {},以在滚动条上以小线形式显示诊断信息 (即错误、警告和建议):",
+ "You will mostly use this to edit {}Object Events{} and {}Scripts{}, however it is also used for:":"您主要使用它来编辑 {} 对象事件 {} 和 {} 脚本 {},但它也可用于:",
+ "{} Right-clicking the workspace tab for the {}Code Editor{} will display the following options:":"{} 右键点击{} 代码编辑器 {} 的工作区选项卡将显示以下选项:",
+ "{}Asset Selection{}: The first drop-down lets you change the asset being edited. This can be any of the assets listed at the top of the page. You can click the {} button to add a new asset from a list of supported assets.{} {} {}{}{}{}ALT/OPT {}{}+ 1{}{} opens this dropdown, and {}{}{}{}{}{}ALT/OPT{}{}{}{} + SHIFT + 1{}{} opens the \"Create Asset\" menu. ":"{} 资产选择 {}:第一个下拉列表可让您更改正在编辑的资产。这可以是页面顶部列出的任何资产。您可以点击 {} 按钮从支持的资源列表中添加新资源。{}{}{}{}{}{}ALT/OPT{}{}+ 1{}{} 打开此下拉列表,然后 {}{}{}{}{}{}ALT/OPT{}{}{}{}+ SHIFT + 1{}{} 打开 \" 创建资源 \" 菜单。",
+ "{}By default, this contains a minimap next to the scrollbar (which can be disabled or resized in the {}Code Editor Preferences{}). This displays a preview of your code, to give you a general idea of the code structure, so you can jump between different parts of the document.":"{} 默认情况下,滚动条旁边包含一个小地图 (可以在 {} 代码编辑器首选项 {} 中禁用或调整其大小)。这将显示代码的预览,让您大致了解代码结构,以便您可以在文档的不同部分之间跳转。",
+ "{}Contextual{}: Moving right, the contextual rail will show the {} {}Quick Fixes{} button when the text cursor is placed over a {}syntax error{}.":"{} 上下文 {}:向右移动,当文本光标置于 {} 语法错误 {} 上时,上下文栏将显示 {}{}Quick Fixes{} 按钮。",
+ "{}Copy Full Path{}: Copies the full path to the asset being edited to your clipboard":"{} 复制完整路径 {}:将正在编辑的资源的完整路径复制到剪贴板",
+ "{}Creation code{} of a room, and the creation code of a {}room instance{}":"房间的 {} 创建代码 {} 以及 {} 房间实例 {} 的创建代码",
+ "{}Declaration Selection{}: The third drop-down lets you jump to a declaration within the open document, for example, a variable or a function being declared.{} {} {}{}{}{}{}{}{}ALT/OPT{}{}{}{}{} + 3{}{} opens this dropdown. ":"{} 声明选择 {}:第三个下拉列表可让您跳转到打开文档中的声明,例如正在声明的变量或函数。{}{}{}{}{}{}{}{}{}ALT/OPT{}{}{}{}{}+ 3{}{} 打开此下拉菜单。",
+ "{}Document Selection{}: The second drop-down lets you change the document being edited. This is most useful in objects, as each event is a different document, you can change the event in focus. You can click the {} button to add a new document (which, in case of an object, adds a new event).{} {} For Shaders, this shows the Vertex and Fragment Shader files, and for Timelines it shows the moments.{} {} {}{}{}{}{}{}{}ALT/OPT{}{}{}{}{} + 2{}{} opens this dropdown, and {}{}{}{}{}{}ALT/OPT{}{}{}{} + SHIFT + 2{}{} opens the \"Create Document\" menu. ":"{} 文档选择 {}:第二个下拉列表可让您更改正在编辑的文档。这在对象中最有用,因为每个事件都是不同的文档,您可以更改焦点事件。您可以点击 {} 按钮添加新文档 (如果是对象,则添加新事件)。{}{} 对于着色器,这会显示顶点和片段着色器文件,对于时间轴,它会显示时刻 .{}{}{}{}{}{}{}{}{}ALT/OPT{}{}{}{}{}+ 2{}{} 打开此下拉菜单,然后 {}{}{}{}{}{}ALT/OPT{}{}{}{}+ SHIFT + 2{}{} 打开 \" 创建文档 \" 菜单。",
+ "{}Extension{} files":"{} 扩展 {} 文件",
+ "{}Folding{}: Folding buttons ({}) appear on the edge of the gutter, allowing you to fold documents, {}{}{} bracket blocks and regions within a document. {} {}Additionally, {}switch{} cases and {}multiline comments{} are also foldable.{} {} ":"{} 折叠 {}:折叠按钮 ({}) 显示在装订线边缘,允许您折叠文档、{}{ }{} 括号块和文档内的区域。{}{} 此外,{}switch{} 大小写和 {} 多行注释 {} 也是可折叠的。{}{}",
+ "{}Included Files Supported Formats{}{}Included Files Supported Formats{}":"{} 包含的文件支持的格式 {}{} 包含的文件支持的格式 {}",
+ "{}Line Numbers{}: The rightmost rail within the gutter shows line numbers for the open document.":"{} 行号 {}:装订线内最右侧的栏显示打开文档的行号。",
+ "{}Open in Explorer{}: {}Shows the asset being edited in your operating system\u0027s file browser{}":"{} 在资源管理器中打开 {}:{} 显示正在操作系统的文件浏览器中编辑的资源 {}",
+ "{}Orientation{}: The bar then contains a drop-down menu to detach the Navigation Bar into its own draggable window, or attach it to any of the four sides of the frame. Clicking this button will cycle through each option, or you can click on the arrow to select the option you need. {} {}Changing this will also update its corresponding {}preference{}, meaning any future {}Code Editor{} windows will use this new orientation. Inversely, changing the preference will update the orientation used in editor windows.{} {} ":"{}方向 {}:该栏包含一个下拉菜单,用于将导航栏分离到其自己的可拖动窗口中,或将其附加到框架四个边中的任意一侧。单击此按钮将循环显示每个选项,或者您可以单击箭头选择您需要的选项。{}{} 更改此设置还将更新其相应的 {} 首选项 {},这意味着未来的任何 {} 代码编辑器 {} 窗口都将使用此新方向。相反,更改首选项将更新编辑器窗口中使用的方向。{}{}",
+ "{}Show in Asset Browser{}: {}Selects the asset being edited in {}The Asset Browser{}{}":"{} 在资源浏览器中显示 {}:{} 选择正在 {} 资源浏览器 {}{} 中编辑的资源",
+ "{}Show in Inspector{}: {}Shows the asset being edited in the {}The Inspector{}{}":"{} 在检查器中显示 {}:{} 显示正在 {} 检查器 {}{} 中编辑的资源",
+ "{}Splitter{}: The final, rightmost button on this bar is the Splitter. Clicking and dragging this in either direction will let you split the {}Code Editor{} into a duplicate view, which will display the same document(s) open in the main editor.":"{}拆分{}:此栏上最后一个、最右侧的按钮是 \"拆分\"。单击并向任一方向拖动它可以将 {} 代码编辑器 {} 拆分为一个重复视图,该视图将显示在主编辑器中打开的相同文档。",
+ "{}The Code Editor{}":"{} 代码编辑器 {}",
+ "{}The gutter is further divided into different \"rails\", which are the columns from left to right:":"{} 装订线进一步分为不同的 \" 轨道\",即从左到右的列:",
+ "{}The scrollbar also allows overscroll, allowing you to scroll past the end of the document (or the last document) to make editing more convenient. This can be enabled from the {}preferences{}.":"{} 滚动条还允许过度滚动,让您可以滚动到文档末尾 (或最后一个文档),以便更方便地进行编辑。可以从 {} 首选项 {} 启用此功能。",
+ "{}The {}Code Editor{} is used to edit text files in your {}GameMaker{} projects.":"{}{} 代码编辑器 {} 用于编辑 {}GameMaker{} 项目中的文本文件。",
+ "{}These are the {}Code Editor{}-specific options:":"{} 这些是 {} 代码编辑器 {} 特定的选项:",
+ "{}This bar contains the following parts:":"{} 该栏包含以下部分:",
+ "{}Togglables{}: The left-most gutter is highlighted and contains {}bookmarks{} and {}breakpoints{}. When editing a GML document, clicking on this rail next to a line of code will create a breakpoint.":"{} 可切换{}:最左侧的装订线突出显示,包含 {} 书签 {} 和 {} 断点 {}。编辑 GML 文档时,单击代码行旁边的此栏将创建一个断点。",
+ "{}{}NOTE{}{} Changing the active document when you have split views open will remove those split views and reset the editor to a single view.":"{}{} 注意{}{} 当您打开拆分视图时更改活动文档将会删除这些拆分视图并将编辑器重置为单个视图。",
+ "{}{}NOTE{}{} Closing an editor window will automatically save any unsaved changes in open documents.":"{}{} 注意{}{} 关闭编辑器窗口将自动保存打开文档中所有未保存的更改。",
+ "{}{}NOTE{}{} The {}Code Editor{} is currently opt-in. Enable it in the {}Code Editor Preferences{}.{} {} While it is disabled, assets with text documents like {}Objects{}, {}Scripts{}, {}Notes{} etc. will open their respective editors, which make use of the {}Legacy Code Editor{}. ":"{}{} 注意{}{} 当前可选择加入 {} 代码编辑器 {}。在 {} 代码编辑器首选项 {} 中启用它。{}{} 禁用该功能后,包含 {} 对象 {}、{} 脚本 {}、{} 注释 {} 等文本文档的资源将打开其各自的编辑器,它使用 {} 旧版代码编辑器 {}。"
+}
\ No newline at end of file
diff --git a/language/zh/www/The_Asset_Editors/Timelines.json b/language/zh/www/The_Asset_Editors/Timelines.json
index 9958f871f..c167fd2c3 100644
--- a/language/zh/www/The_Asset_Editors/Timelines.json
+++ b/language/zh/www/The_Asset_Editors/Timelines.json
@@ -1,8 +1,11 @@
{
"For example, assume you want to make a guard and that this guard should move 20 time steps to the left, then 10 upwards, then 20 to the right, then 10 downwards and then finally stop. To achieve this you can make a timeline where you start with setting a motion to the left. You would then create moment 20 (a \"moment\" is just another way of saying \"game step\" or \"game frame\") and set a motion upward, then at moment 30 a motion to the right, at moment 50 a motion downwards and finally at moment 60 you would stop the motion. Once that is done, you can assign this timeline to the guard object and the guard instance will do exactly what you planned when placed in a room. You could even set an alarm in the time line so that it is repeated after a certain length of time and in this way your guard can patrol an area. You can also use a time line to control your game more globally, for example by creating an invisible controller object, then a time line that at certain moments creates enemies, and then assigning it to the controller object and placing an instance into the room. This is an easy way to get timed spawns of the enemies in a space shoorter game or something like that.":"例如,假设您要设置一个后卫,并且该后卫应该向左移动 20 步,然后向上移动 10 步,然后向右移动 20 步,然后向下移动 10 步,最后停止。要实现这一点,可以创建一个时间轴,从左侧开始设置运动。然后你会创建 20 分钟 (\" 一瞬间 \" 只是 \" 游戏步骤 \" 或 \" 游戏画面 \" 的另一种说法) 并向上设置一个运动,然后在 30 分钟时向右运动,在 50 分钟时向下运动,最后在 60 分钟时停止运动。完成此操作后,可以将此时间轴指定给保护对象,保护实例将完全按照放置在房间中时的计划执行。你甚至可以在时间线上设置一个警报,这样在一段时间后它会重复,这样你的警卫就可以在一个区域巡逻。也可以使用时间线更全局地控制游戏,例如,通过创建一个不可见的控制器对象,然后创建一个在某些时刻创建敌人的时间线,然后将其指定给控制器对象并将实例放入房间。这是一个简单的方法来获得敌人的时间生成在空间推进器游戏或类似的东西。",
"Here you give your timeline resource a {}name{}. This must only contain alpha-numeric characters or the \"_\" under-bar and cannot start with a number, as it will be used to reference your timeline through code. This name will also be the unique timeline ID which can be used in GML Visual actions or code functions to identify the timeline.":"在此为时间线资源指定 {} 名称 {}。此名称只能包含字母数字字符或 \"_\" 下划线,并且不能以数字开头,因为它将用于通过代码引用时间线。此名称也将是唯一的时间线 ID,可用于 GML 可视操作或代码函数以标识时间线。",
+ "In most games you will want certain things to happen at precise moments in time. Now, you can try to achieve this by using the alarm events but when things get too complicated this won\u0027t work any more, especially as you are limited to only twelve alarms. That\u0027s why we have the {}timeline {}asset. In a timeline you specify which actions must happen at certain moments in game time, and you can use all the actions that are also available for an object in its different events or code to define this. Once you create a time line you can then assign it to an object, and the instance of that object will then execute the actions at the indicated moments of time when placed or created within a room.":"在大多数游戏中,您会希望某些事情在精确的时刻发生。现在,您可以尝试通过使用警报事件来实现此目的,但是当事情变得太复杂时,这将不再起作用,特别是当您仅限于十二个警报时。这就是我们拥有 {} 时间轴 {} 资产的原因。在时间轴中,您可以指定在游戏时间的特定时刻必须发生哪些操作,并且您可以使用对象在其不同事件或代码中也可用的所有操作来定义这一点。创建时间线后,您可以将其分配给一个对象,然后该对象的实例将在放置或创建在房间内时在指定的时刻执行操作。",
"On adding a new moment, you may be asked to choose between {}GML Visual{} and {}GML Code{}. See {}GameMaker Language{} for more information.":"添加新时刻时,可能会要求您在 {}GML 可视化 {} 和 {}GML 代码 {} 之间进行选择。有关详细信息,请参阅 {}GameMaker 语言 {}。",
+ "The Code Editor":"代码编辑器",
"The Timeline Editor":"时间线编辑器",
+ "The new {}Code Editor{} can be enabled from the {}preferences{} and is used to edit Timelines when enabled. Moments are managed from the {}Navigation Bar{} under the Document menu.":"新的 {} 代码编辑器 {} 可以从 {} 首选项 {} 启用,启用后可用于编辑时间轴。时刻可以通过文档菜单下的 {} 导航栏 {} 进行管理。",
"The timeline editor permits you to use {} + {} select all moments between the first click {} and the second click {}, or you can use {} / {} + {} to click on single moments to select them independently. Timeline moments can be edited using the right mouse button {} menu on one of the selected elements:":"时间线编辑器允许您使用 {}+{} 选择第一次单击 {} 和第二次单击 {} 之间的所有时刻,或者您可以使用 {}/{}+{} 单击单个时刻来独立选择这些时刻。可以使用选定元素之一上的鼠标右键 {} 菜单编辑时间轴时刻:",
"The timeline editor permits you to use {} + {} to select all moments between the first click {} and the second click {}, or you can use {} / {} + {} to click on single moments to select them independently. Timeline moments can be edited using the right mouse button {} menu on one of the selected elements:":"时间线编辑器允许您使用 {}+{} 选择第一次单击 {} 和第二次单击 {} 之间的所有时刻,也可以使用 {}/{}+{} 点击单个时刻以独立选择它们。可以使用鼠标右键 {} 菜单在所选元素之一上编辑时间线时刻:",
"To create a time line, right click {} on {}Asset Browser{} and select \"Create Timeline\". This will open the window pictured at the top of this page with the following sections:":"要创建时间线,请在{1}资源浏览器{2}上右键单击{},然后选择\"创建时间线\"。这将打开本页顶部的窗口,其中包含以下部分:",
@@ -23,5 +26,6 @@
"{}Name{}{}Name{}":"{}名称{}{}名称{}",
"{}Remove{}: This will remove the selected moment (or moments) from the timeline.":"{}删除{}:这将从时间轴中删除选定的时刻(或多个时刻)。",
"{}Select All{}: With this option you can select all the moments in a timeline. Selected moments can then be removed, merged, duplicated, cut, or copied.":"{}全选{}:使用此选项,您可以选择时间线中的所有时刻。然后可以删除、合并、复制、剪切或复制选定的力矩。",
- "{}The Timeline Editor{}":"{}时间线编辑器{}"
+ "{}The Timeline Editor{}":"{}时间线编辑器{}",
+ "{}{}IMPORTANT{}{} Timelines have been replaced by {}Sequences{} and currently only exist for legacy purposes. {}Moments can be programmed{} in a Sequence for functions to be executed at given frames in the Sequence.":"{}{} 重要提示{}{} 时间线已被 {} 序列 {} 取代,目前仅用于遗留目的。{} 可以在序列中对时刻进行编程 {},以便在序列中的给定帧处执行函数。"
}
\ No newline at end of file
diff --git a/language/zh/www/The_IDE/General_Asset_Editors.json b/language/zh/www/The_IDE/General_Asset_Editors.json
new file mode 100644
index 000000000..f5e881d1a
--- /dev/null
+++ b/language/zh/www/The_IDE/General_Asset_Editors.json
@@ -0,0 +1,7 @@
+{
+ "This includes the following:":"这包括以下内容:",
+ "This section covers tools used for asset editing within the IDE, which are not limited to any single type of {}The Asset Editors{}.":"本部分介绍用于在 IDE 中编辑资产的工具,这些工具不限于任何单一类型的 {} 资产编辑器 {}。",
+ "{}Both the {}Code Editor{} and the Inspector can be used together at the same time, using the Inspector to edit basic asset information, and the {}Code Editor{} to edit text documents in assets such as {}Objects{}, {}Scripts{}, {}Notes{}, etc.":"{}{} 代码编辑器 {} 和检查器可以同时一起使用,使用检查器编辑基本资产信息,使用 {} 代码编辑器 {} 编辑资产中的文本文档,例如 {} 对象 {}、{} 脚本 {}、{} 注释 {} 等。",
+ "{}General Asset Editors{}":"{} 常规资源编辑器 {}",
+ "{}{}NOTE{}{} The {}Code Editor{} is currently opt-in. Enable it in the {}Code Editor Preferences{}.{} {} While it is disabled, assets with text documents like {}Objects{}, {}Scripts{}, {}Notes{} etc. will open their respective editors, which make use of the {}Legacy Code Editor{}. ":"{}{} 注意{}{} 当前可选择加入 {} 代码编辑器 {}。在 {} 代码编辑器首选项 {} 中启用它。{}{} 禁用该功能后,包含 {} 对象 {}、{} 脚本 {}、{} 注释 {} 等文本文档的资源将打开其各自的编辑器,它使用 {} 旧版代码编辑器 {}。"
+}
\ No newline at end of file
diff --git a/language/zh/www/The_IDE/The_IDE.json b/language/zh/www/The_IDE/The_IDE.json
index 3bf6b3d65..e88657ada 100644
--- a/language/zh/www/The_IDE/The_IDE.json
+++ b/language/zh/www/The_IDE/The_IDE.json
@@ -1,7 +1,12 @@
{
"Additional IDE Tools":"附加 IDE 工具",
"GameMaker\u0027s {}I{}ntegrated {}D{}evelopment {}E{}nvironment (or IDE) is the main interface where you create your games and make use of all functionality provided by the software. Essentially, the program itself -- from the Start Screen to every editor window you use to make your game -- is known and referred to as the {}IDE{} throughout the manual and various tutorials.":"GameMaker 的{}{}集成{}{}开发环境(或 IDE) 是创建游戏和利用软件提供的所有功能的主界面。从本质上讲,程序本身 -- 从开始屏幕到您用来制作游戏的每个编辑器窗口 -- 在手册和各种教程中被称为{}IDE{}。",
+ "General Asset Editors":"一般资产编辑器",
"IDE Input And Navigation":"IDE 输入和导航",
"Preferences And Features":"偏好及功能",
- "The following sections cover information regarding the IDE:":"以下各节介绍有关 IDE 的信息:"
+ "The following sections cover information regarding the IDE:":"以下各节介绍有关 IDE 的信息:",
+ "This covers navigating the IDE and all inputs you can use to make the best of the program":"这涵盖了 IDE 导航以及可用来充分利用该程序的所有输入",
+ "This covers other major parts of the IDE that are not covered by any of the previous categories":"这涵盖了前面任何类别未涵盖的 IDE 的其他主要部分",
+ "This covers {}The Code Editor{} and {}The Inspector{}, which together allow you to edit various assets to create your game":"其中包括 {} 代码编辑器 {} 和 {} 检查器 {},它们一起允许您编辑各种资源来创建游戏",
+ "This section covers all the IDE and platform preferences, along with other minor IDE features":"本节涵盖所有 IDE 和平台首选项,以及其他次要 IDE 功能"
}
\ No newline at end of file
diff --git a/patch/main.js b/patch/main.js
index 47a4b8dd1..9bd1e8d67 100644
--- a/patch/main.js
+++ b/patch/main.js
@@ -496,7 +496,7 @@ window.setInterval(function(){
iframe.find("head:not('.isImport')").append(cssHtml).addClass("isImport")
//这么做只是为了方便移植修改
- const css1="div.footer a,h4,caption"
+ const css1="div.footer a,h4,caption,blockquote"
const css2="p,h1,h2,h3,td,li,a,div.dropspotnote,figcaption,.expandtext"
const css3="th,.warning,.important,.optional"