From a63684eb4c22437a6414acc42a7033838295a6a0 Mon Sep 17 00:00:00 2001 From: Please-Pick-a-Name Date: Sat, 8 Jun 2024 20:27:03 +0000 Subject: [PATCH 1/6] Translate contributing.md via GitLocalize --- docs/zh/contributing.md | 43 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 docs/zh/contributing.md diff --git a/docs/zh/contributing.md b/docs/zh/contributing.md new file mode 100644 index 00000000..49129ce3 --- /dev/null +++ b/docs/zh/contributing.md @@ -0,0 +1,43 @@ +# 为BeamMP文档做出贡献 + +BeamMP使用[Material for MkDocs](https://squidfunk.github.io/mkdocs-material)作为其主题。这是一个[MkDocs](https://www.mkdocs.org)的主题。其完整文档可以在其各自的站点找到。 + +## Getting Started + +To help contribute to these docs you can take one of two approaches as set out below: + +### 1. 编辑原始Markdown文件 + +编辑原始Markdown文件是最快的方法,也是快速编辑(例如拼写、语法或新内容片段)的最佳方法。这种方法确实需要事先了解Markdown知识,但是因为您需要了解您的贡献将有何影响。 + +If this is the approach you wish to take then please follow these steps: + +1. 单击您想编辑的页面上的编辑。 +2. 将项目分叉(Fork)到您自己的 GitHub 帐户中。 +3. Make the changes you see fit. +4. 将您的更改提交(Commit)到您的分支。 +5. [在此处](https://github.com/BeamMP/Docs)针对我们的存储库(Repository)提出拉取请求(Pull Request)。 + +创建拉取请求后,BeamMP模组团队之一将审查您的拉取请求并批准它或请求进行一些更改。如果请求进行更改并且您已完成更改,我们将重新审核您的 Pull 请求。然后,您的更改将合并到存储库中,并作为我们持续集成的一部分自动部署。 + +### 2. Make edits with live preview + +以这种方式编辑我们的文档仍将采用与选项 1 类似的方法,但您能以这种方式预览您的更改。 + +1. 单击您想编辑的页面上的编辑。 +2. 将项目分叉(Fork)到您自己的 GitHub 帐户中。 +3. 将项目复制(Clone)到本地。 +4. 根据[此处](https://squidfunk.github.io/mkdocs-material/getting-started/)的指南设置MkDocs素材 +5. 运行`mkdocs serve`以从您的分叉所在的位置启动实时重新加载的文档服务器。 +6. Make the changes that you see fit. +7. 将您的更改提交(Commit)到您的分支。 +8. [在此处](https://github.com/BeamMP/Docs)针对我们的存储库(Repository)提出拉取请求(Pull Request)。 + +## Project layout + +``` +mkdocs.yml # The configuration file. +docs/ + index.md # The documentation homepage. + ... # Other markdown pages, images and other files. +``` From 22095561eaa4d7557b8a3618f1f780563e0563db Mon Sep 17 00:00:00 2001 From: mt-gitlocalize Date: Sat, 8 Jun 2024 20:27:04 +0000 Subject: [PATCH 2/6] Translate contributing.md via GitLocalize --- docs/zh/contributing.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/zh/contributing.md b/docs/zh/contributing.md index 49129ce3..d585b827 100644 --- a/docs/zh/contributing.md +++ b/docs/zh/contributing.md @@ -2,25 +2,25 @@ BeamMP使用[Material for MkDocs](https://squidfunk.github.io/mkdocs-material)作为其主题。这是一个[MkDocs](https://www.mkdocs.org)的主题。其完整文档可以在其各自的站点找到。 -## Getting Started +## 入门 -To help contribute to these docs you can take one of two approaches as set out below: +为了帮助为这些文档做出贡献,您可以采取以下两种方法之一: ### 1. 编辑原始Markdown文件 编辑原始Markdown文件是最快的方法,也是快速编辑(例如拼写、语法或新内容片段)的最佳方法。这种方法确实需要事先了解Markdown知识,但是因为您需要了解您的贡献将有何影响。 -If this is the approach you wish to take then please follow these steps: +如果您希望采用这种方法,请按照以下步骤操作: 1. 单击您想编辑的页面上的编辑。 2. 将项目分叉(Fork)到您自己的 GitHub 帐户中。 -3. Make the changes you see fit. +3. 做出您认为合适的更改。 4. 将您的更改提交(Commit)到您的分支。 5. [在此处](https://github.com/BeamMP/Docs)针对我们的存储库(Repository)提出拉取请求(Pull Request)。 创建拉取请求后,BeamMP模组团队之一将审查您的拉取请求并批准它或请求进行一些更改。如果请求进行更改并且您已完成更改,我们将重新审核您的 Pull 请求。然后,您的更改将合并到存储库中,并作为我们持续集成的一部分自动部署。 -### 2. Make edits with live preview +### 2. 通过实时预览进行编辑 以这种方式编辑我们的文档仍将采用与选项 1 类似的方法,但您能以这种方式预览您的更改。 @@ -29,11 +29,11 @@ If this is the approach you wish to take then please follow these steps: 3. 将项目复制(Clone)到本地。 4. 根据[此处](https://squidfunk.github.io/mkdocs-material/getting-started/)的指南设置MkDocs素材 5. 运行`mkdocs serve`以从您的分叉所在的位置启动实时重新加载的文档服务器。 -6. Make the changes that you see fit. +6. 进行您认为合适的更改。 7. 将您的更改提交(Commit)到您的分支。 8. [在此处](https://github.com/BeamMP/Docs)针对我们的存储库(Repository)提出拉取请求(Pull Request)。 -## Project layout +## 项目布局 ``` mkdocs.yml # The configuration file. From 24764a4986fc274edcc311da1e05ced60d1a9518 Mon Sep 17 00:00:00 2001 From: Please-Pick-a-Name Date: Sat, 8 Jun 2024 20:27:05 +0000 Subject: [PATCH 3/6] Translate snippets.md via GitLocalize --- docs/zh/beamng/snippets.md | 162 +++++++++++++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 docs/zh/beamng/snippets.md diff --git a/docs/zh/beamng/snippets.md b/docs/zh/beamng/snippets.md new file mode 100644 index 00000000..883fc771 --- /dev/null +++ b/docs/zh/beamng/snippets.md @@ -0,0 +1,162 @@ +!!!警告“该网站正在建设当中!“ + +``` +该网站仍在积极开发中。 + +觉得你能帮上忙?点击页面右侧的铅笔即可! + +这也可以在任何页面上完成。 +``` + +# BeamNG.drive代码片段 + +## Lua代码片段 + +### Drawing a marker & Vehicle detection + +Drawing markers in the map can be one of the best ways to indicate to the user that there is some form of interaction that they can do there. + +Drawing a marker is fairly easy. Here is an example of how the bus route marker is drawn: + +```Lua + local function createBusMarker(markerName) + local marker = createObject('TSStatic') + marker:setField('shapeName', 0, "art/shapes/interface/position_marker.dae") + marker:setPosition(vec3(0, 0, 0)) + marker.scale = vec3(1, 1, 1) + marker:setField('rotation', 0, '1 0 0 0') + marker.useInstanceRenderData = true + marker:setField('instanceColor', 0, '1 1 1 0') + marker:setField('collisionType', 0, "Collision Mesh") + marker:setField('decalType', 0, "Collision Mesh") + marker:setField('playAmbient', 0, "1") + marker:setField('allowPlayerStep', 0, "1") + marker:setField('canSave', 0, "0") + marker:setField('canSaveDynamicFields', 0, "1") + marker:setField('renderNormals', 0, "0") + marker:setField('meshCulling', 0, "0") + marker:setField('originSort', 0, "0") + marker:setField('forceDetail', 0, "-1") + marker.canSave = false + marker:registerObject(markerName) + scenetree.MissionGroup:addObject(marker) + return marker + end + + -- this can then be called in a loop to setup your markers. + -- NOTE: You should only do this once as part of your setup and not called on each frame. + if #markers == 0 then + for k,v in pairs(nameMarkers) do + local mk = scenetree.findObject(v) + if mk == nil then + log('I', logTag,'Creating marker '..tostring(v)) + mk = createBusMarker(v) + ScenarioObjectsGroup:addObject(mk.obj) + end + table.insert(markers, mk) + end + end +``` + +Here is a custom marker example from [BeamNG-FuelStations](https://github.com/BeamMP/BeamNG-FuelStations/tree/master): + +```Lua + local stations = [ + { "location": [ -778.813, 485.973, 23.46 ], "type":"gas" }, + { "location": [ 617.164, -192.107, 53.2 ], "type":"ev" }, + ] + + local function IsEntityInsideArea(pos1, pos2, radius) + return pos1:distance(pos2) < radius + end + + local onUpdate = function (dt) + for k, spot in pairs(stations) do -- loop through all spots on the current map + local bottomPos = vec3(spot.location[1], spot.location[2], spot.location[3]) + local topPos = bottomPos + vec3(0,0,2) -- offset vec to get top position (2m tall) + + local spotInRange = false -- is this spot in range? used for color + local spotCompatible = false -- is this spot compatible? + + if activeVeh then -- we have a car and its ours (if in mp) + local vehPos = activeVeh:getPosition() + + spotInRange = IsEntityInsideArea(vec3(vehPos.x, vehPos.y,vehPos.z), bottomPos, 1.5) + + spotCompatible = activeFuelType == "any" or spot.type == "any" or activeFuelType == spot.type + end + + local spotColor = (spotInRange and spotCompatible) and activeColorMap[spot.type] or inactiveColorMap[spot.type] or ColorF(1,1,1,0.5) + + debugDrawer:drawCylinder(bottomPos:toPoint3F(), topPos:toPoint3F(), 1, spotColor) --bottom, top, radius, color + end + end +``` + +### guihooks示例 + +#### Toast通知,位于屏幕右上角 + +![image](https://github.com/StanleyDudek/Docs/assets/49531350/c8a87842-b95a-4eca-84dc-93072ecc9158) + +```lua +--guihooks.trigger('toastrMsg', {type, title, msg, config = {timeOut}}) +guihooks.trigger('toastrMsg', {type = "info", title = "Info Message:", msg = "Info Message Text Here", config = {timeOut = 5000}}) +guihooks.trigger('toastrMsg', {type = "warning", title = "Warning Message:", msg = "Warning Message Text Here", config = {timeOut = 5000}}) +guihooks.trigger('toastrMsg', {type = "error", title = "Error Message:", msg = "Error Message Text Here", config = {timeOut = 5000}}) +``` + +#### Message notifications, top left of screen by default in Messages app + +![image](https://github.com/StanleyDudek/Docs/assets/49531350/6baef813-50cb-43c3-9c59-0de550b014b6) + +```lua +--guihooks.trigger('Message', {msg, ttl, category, icon}) --requires Messages app +guihooks.trigger('Message', {msg = "Message Text Here", ttl = 5.0, category = "arrow_upward", icon = "arrow_upward"}) +guihooks.trigger('Message', {msg = "Message Text Here", ttl = 5.0, category = "arrow_downward", icon = "arrow_downward"}) +guihooks.trigger('Message', {msg = "Message Text Here", ttl = 5.0, category = "flag", icon = "flag"}) +guihooks.trigger('Message', {msg = "Message Text Here", ttl = 5.0, category = "check", icon = "check"}) +guihooks.trigger('Message', {msg = "Message Text Here", ttl = 5.0, category = "check_circle", icon = "check_circle"}) +guihooks.trigger('Message', {msg = "Message Text Here", ttl = 5.0, category = "warning", icon = "warning"}) +guihooks.trigger('Message', {msg = "Message Text Here", ttl = 5.0, category = "error", icon = "error"}) +guihooks.trigger('Message', {msg = "Message Text Here", ttl = 5.0, category = "directions_car", icon = "directions_car"}) +guihooks.trigger('Message', {msg = "Message Text Here", ttl = 5.0, category = "star", icon = "star"}) +guihooks.trigger('Message', {msg = "Message Text Here", ttl = 5.0, category = "timeline", icon = "timeline"}) +guihooks.trigger('Message', {msg = "Message Text Here", ttl = 5.0, category = "save", icon = "save"}) +guihooks.trigger('Message', {msg = "Message Text Here", ttl = 5.0, category = "settings", icon = "settings"}) +``` + +#### 位于中心,大,小型短暂显示 + +![image](https://github.com/StanleyDudek/Docs/assets/49531350/d0cf754f-83f8-4d15-9159-27350da127de) ![image](https://github.com/StanleyDudek/Docs/assets/49531350/1df6fc9b-756f-484e-b8d9-5df346dc4c26) + +```lua +--guihooks.trigger('ScenarioFlashMessage', {{msg, ttl, sound, big}} ) -- requires RaceCountdown ui app +guihooks.trigger('ScenarioFlashMessage', {{"Message", 5.0, 0, true}} ) +guihooks.trigger('ScenarioFlashMessage', {{"Message Text Here", 5.0, 0, false}} ) + +--countdown example, when all executed at once, the items are queued and will follow eachother after the previous ttl expires +guihooks.trigger('ScenarioFlashMessage', {{"3", 1.0, "Engine.Audio.playOnce('AudioGui', 'event:UI_Countdown1')", true}}) +guihooks.trigger('ScenarioFlashMessage', {{"2", 1.0, "Engine.Audio.playOnce('AudioGui', 'event:UI_Countdown2')", true}}) +guihooks.trigger('ScenarioFlashMessage', {{"1", 1.0, "Engine.Audio.playOnce('AudioGui', 'event:UI_Countdown3')", true}}) +guihooks.trigger('ScenarioFlashMessage', {{"GO!", 3.0, "Engine.Audio.playOnce('AudioGui', 'event:UI_CountdownGo')", true}}) + +--another sound example +guihooks.trigger('ScenarioFlashMessage', {{"Teleported!", 3.0, "Engine.Audio.playOnce('AudioGui', 'event:UI_Checkpoint')", false}}) +``` + +#### 位于中心,中型持续显示 + +![image](https://github.com/StanleyDudek/Docs/assets/49531350/6290e018-6b3d-4674-98f2-34282a723258) + +```lua +--guihooks.trigger('ScenarioRealtimeDisplay', {msg = msg} ) -- requires Race Realtime Display ui app +guihooks.trigger('ScenarioRealtimeDisplay', {msg = "Message Text Here"} ) +--these messages persist, clear with a blank string +--if you are running live data, this is a good one to update rapidly (think timers, distance calcs, et cetera) +guihooks.trigger('ScenarioRealtimeDisplay', {msg = ""} ) +``` + +## IMGUI代码片段 + +## CEF UI代码片段 From d1814953c155a4d8cfb7d27066e7da7438893326 Mon Sep 17 00:00:00 2001 From: mt-gitlocalize Date: Sat, 8 Jun 2024 20:27:06 +0000 Subject: [PATCH 4/6] Translate snippets.md via GitLocalize --- docs/zh/beamng/snippets.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/zh/beamng/snippets.md b/docs/zh/beamng/snippets.md index 883fc771..23c8c459 100644 --- a/docs/zh/beamng/snippets.md +++ b/docs/zh/beamng/snippets.md @@ -12,11 +12,11 @@ ## Lua代码片段 -### Drawing a marker & Vehicle detection +### 绘制标记和车辆检测 -Drawing markers in the map can be one of the best ways to indicate to the user that there is some form of interaction that they can do there. +在地图中绘制标记可能是向用户表明他们可以在那里进行某种形式的交互的最佳方式之一。 -Drawing a marker is fairly easy. Here is an example of how the bus route marker is drawn: +绘制标记相当容易。以下是如何绘制公交车路线标记的示例: ```Lua local function createBusMarker(markerName) @@ -58,7 +58,7 @@ Drawing a marker is fairly easy. Here is an example of how the bus route marker end ``` -Here is a custom marker example from [BeamNG-FuelStations](https://github.com/BeamMP/BeamNG-FuelStations/tree/master): +以下是来自[BeamNG-FuelStations](https://github.com/BeamMP/BeamNG-FuelStations/tree/master)的自定义标记示例: ```Lua local stations = [ @@ -97,7 +97,7 @@ Here is a custom marker example from [BeamNG-FuelStations](https://github.com/Be #### Toast通知,位于屏幕右上角 -![image](https://github.com/StanleyDudek/Docs/assets/49531350/c8a87842-b95a-4eca-84dc-93072ecc9158) +![图像](https://github.com/StanleyDudek/Docs/assets/49531350/c8a87842-b95a-4eca-84dc-93072ecc9158) ```lua --guihooks.trigger('toastrMsg', {type, title, msg, config = {timeOut}}) @@ -106,9 +106,9 @@ guihooks.trigger('toastrMsg', {type = "warning", title = "Warning Message:", msg guihooks.trigger('toastrMsg', {type = "error", title = "Error Message:", msg = "Error Message Text Here", config = {timeOut = 5000}}) ``` -#### Message notifications, top left of screen by default in Messages app +#### 消息通知,消息应用程序中默认位于屏幕左上角 -![image](https://github.com/StanleyDudek/Docs/assets/49531350/6baef813-50cb-43c3-9c59-0de550b014b6) +![图像](https://github.com/StanleyDudek/Docs/assets/49531350/6baef813-50cb-43c3-9c59-0de550b014b6) ```lua --guihooks.trigger('Message', {msg, ttl, category, icon}) --requires Messages app @@ -128,7 +128,7 @@ guihooks.trigger('Message', {msg = "Message Text Here", ttl = 5.0, category = "s #### 位于中心,大,小型短暂显示 -![image](https://github.com/StanleyDudek/Docs/assets/49531350/d0cf754f-83f8-4d15-9159-27350da127de) ![image](https://github.com/StanleyDudek/Docs/assets/49531350/1df6fc9b-756f-484e-b8d9-5df346dc4c26) +![图像](https://github.com/StanleyDudek/Docs/assets/49531350/d0cf754f-83f8-4d15-9159-27350da127de)![图像](https://github.com/StanleyDudek/Docs/assets/49531350/1df6fc9b-756f-484e-b8d9-5df346dc4c26) ```lua --guihooks.trigger('ScenarioFlashMessage', {{msg, ttl, sound, big}} ) -- requires RaceCountdown ui app @@ -147,7 +147,7 @@ guihooks.trigger('ScenarioFlashMessage', {{"Teleported!", 3.0, "Engine.Audio.pla #### 位于中心,中型持续显示 -![image](https://github.com/StanleyDudek/Docs/assets/49531350/6290e018-6b3d-4674-98f2-34282a723258) +![图像](https://github.com/StanleyDudek/Docs/assets/49531350/6290e018-6b3d-4674-98f2-34282a723258) ```lua --guihooks.trigger('ScenarioRealtimeDisplay', {msg = msg} ) -- requires Race Realtime Display ui app From 308601a8405a1e021d9b191ef6eeebb628a4c995 Mon Sep 17 00:00:00 2001 From: mt-gitlocalize Date: Sat, 8 Jun 2024 20:27:08 +0000 Subject: [PATCH 5/6] Translate getting-started.md via GitLocalize --- docs/zh/game/getting-started.md | 39 +++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 docs/zh/game/getting-started.md diff --git a/docs/zh/game/getting-started.md b/docs/zh/game/getting-started.md new file mode 100644 index 00000000..b60f1b89 --- /dev/null +++ b/docs/zh/game/getting-started.md @@ -0,0 +1,39 @@ +# 入门 + +--- + +## **开始之前** + +BeamMP is only compatible with legitimate, Steam versions of the game. "Cracked" copies are not supported. + +--- + +## **安装** + +BeamMP is natively compatible only with Windows at the moment. + +### **Windows安装** + +1. Go to [beammp.com](https://beammp.com/) and click the "Download client" button. +2. Extract the `BeamMP_Installer.zip` archive. +3. Launch `BeamMP_Installer.exe` and follow the instructions. +4. The BeamMP Launcher icon should appear on your desktop. If not, just search for “BeamMP” in the windows search bar. +5. Once the launcher has started, you should see a terminal window, shortly after BeamNG.drive should automatically start. **Do not** close the terminal window. +6. Once BeamNG launches, in the main menu, click the `Multiplayer` button to start multiplayer. +7. You will be prompted to login or play as a guest (not all servers will allow guests). You can create an account on our [forum](https://forum.beammp.com) and then login to BeamMP with the same credentials. +8. Select any server you like, and press `Connect`. Enjoy! + +Note: *As you are loading into a map with multiple vehicles spawned it might take longer than expected to join.* + +## **Linux安装** + +BeamMP should work with `wine`, but is not officially supported (yet). + +--- + +## **Known Issues** + +- If you don’t see the “Multiplayer” button. Make sure that the BeamMP mod is activated in the “Mod Manager” then try pressing CTRL + L. +- It's also important that BeamMP is the **only** mod activated in the “Mod Manager” as otherwise this can cause issues. + +If you need further help with installation, you are welcome to create a post on our [forum](https://forum.beammp.com) or ask on our [Discord server](https://discord.gg/beammp). From 48cbacc8296f1cdb18d0fa80d5d5a5e619ba2a8b Mon Sep 17 00:00:00 2001 From: Please-Pick-a-Name Date: Sat, 8 Jun 2024 20:27:09 +0000 Subject: [PATCH 6/6] Translate getting-started.md via GitLocalize --- docs/zh/game/getting-started.md | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/docs/zh/game/getting-started.md b/docs/zh/game/getting-started.md index b60f1b89..616bac00 100644 --- a/docs/zh/game/getting-started.md +++ b/docs/zh/game/getting-started.md @@ -4,36 +4,36 @@ ## **开始之前** -BeamMP is only compatible with legitimate, Steam versions of the game. "Cracked" copies are not supported. +BeamMP仅与Steam正版的游戏版本兼容。不支持”盗版“版本。 --- ## **安装** -BeamMP is natively compatible only with Windows at the moment. +BeamMP目前仅与Windows系统原生兼容。 ### **Windows安装** -1. Go to [beammp.com](https://beammp.com/) and click the "Download client" button. -2. Extract the `BeamMP_Installer.zip` archive. -3. Launch `BeamMP_Installer.exe` and follow the instructions. -4. The BeamMP Launcher icon should appear on your desktop. If not, just search for “BeamMP” in the windows search bar. -5. Once the launcher has started, you should see a terminal window, shortly after BeamNG.drive should automatically start. **Do not** close the terminal window. -6. Once BeamNG launches, in the main menu, click the `Multiplayer` button to start multiplayer. -7. You will be prompted to login or play as a guest (not all servers will allow guests). You can create an account on our [forum](https://forum.beammp.com) and then login to BeamMP with the same credentials. -8. Select any server you like, and press `Connect`. Enjoy! +1. 访问[beammp.com](https://beammp.com/)并点击“Download Client”按钮。 +2. 解压`BeamMP_Installer.zip`。 +3. 运行`BeamMP_Installer.exe`并按照说明进行操作。 +4. BeamMP启动器图标应将出现在您的桌​​面上。如果没有,只需在Windows搜索栏中搜索“BeamMP”即可。 +5. 启动器运行后,您应该会看到一个终端窗口,随即 BeamNG.drive将自动运行。**请勿**关闭终端窗口。 +6. BeamNG启动后,在主菜单中点击`联机模式`即可开始多人游戏。 +7. 系统将提示您登录或以访客身份游玩(并非所有服务器都允许访客)。您可以在我们的[论坛](https://forum.beammp.com)上创建一个帐户,然后使用相同的凭据登录BeamMP。 +8. 选择您感兴趣的任何服务器,然后点击`连接` 。尽情享受吧! -Note: *As you are loading into a map with multiple vehicles spawned it might take longer than expected to join.* +注意:*当您加载到已有多辆载具的地图时,加入可能需要比预期更长的时间。* ## **Linux安装** -BeamMP should work with `wine`, but is not officially supported (yet). +BeamMP应该可以用`wine`来使用,但(还)没有官方支持。 --- -## **Known Issues** +## **已知问题** -- If you don’t see the “Multiplayer” button. Make sure that the BeamMP mod is activated in the “Mod Manager” then try pressing CTRL + L. -- It's also important that BeamMP is the **only** mod activated in the “Mod Manager” as otherwise this can cause issues. +- 如果您未看到”联机模式“按钮。确保BeamMP模组已在“模组管理器”中激活,然后尝试按下CTRL+L。 +- 另外,请确保BeamMP是“模组管理器”中**唯一**激活的模组,否则可能会导致问题。 -If you need further help with installation, you are welcome to create a post on our [forum](https://forum.beammp.com) or ask on our [Discord server](https://discord.gg/beammp). +如果您需要更多安装帮助,欢迎您在我们的[论坛](https://forum.beammp.com)上发帖或在我们的[Discord服务器](https://discord.gg/beammp)上提问(仅英文)。