Translate ui-apps.md via GitLocalize

This commit is contained in:
TheHawk
2026-04-07 12:38:34 +00:00
committed by gitlocalize-app[bot]
parent 2b64ab8d4b
commit 8b4569664d
+27 -26
View File
@@ -39,14 +39,14 @@ ui\modules\apps\ExampleApp\app.html
<span style="display: block">Messages:</span>
<!-- Scroll Area -->
<!-- Область прокрутки -->
<ul bng-nav-scroll style="margin: 0; padding: 0; overflow-y: auto; width: 100%; height: 100%; background-color: #37373740;">
<!-- Iterate over the messages and display them -->
<!-- Перебор сообщений и их отображение -->
<li ng-repeat="message in messages track by $index" style="display: flex; align-items: center; height: 35px;">
<span style="padding: 0 0.2em; width: 100%;">{{ message }}</span>
<!-- Button to delete the message, this calls the `deleteMessage` function in `app.js` -->
<!-- Кнопка для удаления сообщения, вызывает функцию `deleteMessage` в `app.js` -->
<md-button md-no-ink class="md-icon-button md-warn" ng-click="deleteMessage($index)">
<md-icon class="material-icons">delete</md-icon>
</md-button>
@@ -74,7 +74,8 @@ angular.module('beamng.apps')
$scope.message = ''
$scope.messages = []
// Setup the streams we want. For now, we only want the engine information. You can add more, you'll just have to look around to find the different streams
// Настраиваем потоки, которые нам нужны. Пока что нам нужна только информация о двигателе.
// Можно добавить больше, нужно будет просто поискать доступные потоки.
let steamList = ['engineInfo']
StreamsManager.add(steamList)
@@ -82,16 +83,16 @@ angular.module('beamng.apps')
StreamsManager.remove(steamList)
})
// Do I even need to put this comment here explaining what this function does?
// Well, I have done it for a lot of other things when they weren't needed. I'll leave this one be...
// Нужно ли вообще писать этот комментарий, объясняя, что делает эта функция?
// Ну, я писал комментарии для многих других вещей, даже когда это было не нужно. Пусть уж этот останется...
$scope.$on('streamsUpdate', function(event, streams) {
if (!streams.engineInfo) // Early return... You probably noticed that without this useless comment though
if (!streams.engineInfo) // Ранний выход... Наверное, ты и без этого бесполезного комментария понял
return;
// `lua/vehicle/controller/vehicleController.lua:538` (or use console.log)
// `lua/vehicle/controller/vehicleController.lua:538` (или можно использовать console.log)
let gear = streams.engineInfo[5]
// Update the gear name in HTML if needed
// Обновляем название передачи в HTML при необходимости
if ($scope.gearName !== gear)
$scope.gearName = gear
})
@@ -103,7 +104,7 @@ angular.module('beamng.apps')
if ($scope.message == '')
return
// Forward the message to the Lua extension to modify it
// Передаём сообщение в Lua-расширение, чтобы оно его изменило
bngApi.engineLua('extensions.exampleMod.modifyMessage("' + $scope.message + '")')
$scope.message = ''
}
@@ -112,7 +113,7 @@ angular.module('beamng.apps')
$scope.messages.splice(idx, 1)
}
// The `modifyMessage` function will call this hook with the modified data
// Функция `modifyMessage` вызовет этот хук с изменёнными данными
$scope.$on('MessageReady', function(_, modifiedMessage) {
$scope.messages.push(modifiedMessage)
});
@@ -134,7 +135,7 @@ end
^ Это упрощенная версия lua, просто показывающая функцию.
Основное внимание здесь уделяется использованию <b>guihooks.trigger</b> , который запускает событие AngularJS, определенное с помощью `$scope.$on()` . Как вы можете видеть в самом низу файла Javascript, событие называется MessageReady и будет выполнено функцией <b>guihooks.trigger</b> с полезной нагрузкой сообщения, а затем будет помещено в переменную `$scope.messages` для отображения тегом li с помощью <b>ng-repeat</b> в файле <b>Html.</b>
Основное внимание здесь уделяется использованию <b>guihooks.trigger</b>, который запускает событие AngularJS, определенное с помощью `$scope.$on()`. Как вы можете видеть в самом низу файла Javascript, событие называется MessageReady и будет выполнено функцией <b>guihooks.trigger</b> с полезной нагрузкой сообщения, а затем будет помещено в переменную `$scope.messages` для отображения тегом li с помощью <b>ng-repeat</b> в файле <b>Html</b>.
Полный файл lua находится ниже
@@ -144,15 +145,15 @@ lua\ge\extensions\exampleMod.lua
local M = {}
--[[
This is the entry point of our extension, this is what the game loads from our `modScript.lua`.
In the modScript file, you can load more extensions and put them in the same directory as this file.
Это точка входа нашего расширения — именно её загружает игра из файла `modScript.lua`.
В файле modScript можно загружать больше расширений и помещать их в ту же директорию, что и этот файл.
In this file, we will communicate with the following:
1. Our vehicle extension. That extension tells this extension when to send it data, and we send it. Take a look at `vehicle/extensions/auto/exampleVehicleExtension.lua`
2. Input. Take a look at `core/input/actions/myActions.json`. When the bounded key is pressed, it will call `onActionKeyDown` (a function we export below)
В этом файле мы будем взаимодействовать со следующими компонентами:
1. Наше расширение для автомобиля. Оно сообщает этому расширению, когда нужно отправить данные, и мы их отправляем. См. `vehicle/extensions/auto/exampleVehicleExtension.lua`
2. Ввод. См. `core/input/actions/myActions.json`. Когда привязанная клавиша нажата, вызывается `onActionKeyDown` (функция, экспортируемая ниже)
]]
-- Game Function Hooks
-- Хуки игровых функций
--------------------------------------------
local function onExtensionLoaded()
log('D', "onExtensionLoaded", "Called")
@@ -162,7 +163,7 @@ local function onExtensionUnloaded()
log('D', "onExtensionUnloaded", "Called")
end
-- Custom Functions
-- Пользовательские функции
--------------------------------------------
local function onActionKeyDown()
log('D', "onActionKeyDown", "Pressed!")
@@ -171,8 +172,8 @@ end
local function onVehicleExtensionLoaded(vehID)
log('D', "onVehicleExtensionLoaded", "Sending some data to the vehicle")
local veh = be:getObjectByID(vehID) -- If you don't have the ID, you can also use `be:getPlayerVehicle(0)` to get the current vehicle.
if not veh then return end -- The usual error checking
local veh = be:getObjectByID(vehID) -- Если у вас нет ID, можно также использовать `be:getPlayerVehicle(0)`, чтобы получить текущий автомобиль.
if not veh then return end -- Обычная проверка на ошибки
local data = {
["name"] = "Daniel W"
@@ -186,7 +187,7 @@ local function modifyMessage(message)
guihooks.trigger('MessageReady', message)
end
-- Export Interface
-- Экспорт интерфейса
--------------------------------------------
M.onExtensionLoaded = onExtensionLoaded
M.onExtensionUnloaded = onExtensionUnloaded
@@ -195,13 +196,13 @@ M.onActionKeyDown = onActionKeyDown
M.onVehicleExtensionLoaded = onVehicleExtensionLoaded
M.modifyMessage = modifyMessage
--[[ Other functions could include:
--[[ Другие функции могут включать:
- onPreRender(dtReal, dtSim, dtRaw)
- onUpdate(dtReal, dtSim, dtRaw)
- onClientPreStartMission(levelPath)
- onClientPostStartMission(levelPath)
To find all of these, search the following in `BeamNG.Drive/lua`: `extensions.hook(`
Чтобы найти все возможные функции, выполните поиск в `BeamNG.Drive/lua` по следующему выражению: `extensions.hook(`
--]]
return M
@@ -252,7 +253,7 @@ ui\modules\apps\ExampleApp\app.json
}
```
Директива должна быть такой же, как в файле <b>Javascript.</b>
Директива должна быть такой же, как в файле <b>Javascript</b>
# Функции Javascript, предоставляемые BeamNG для UI-приложений
@@ -260,7 +261,7 @@ ui\modules\apps\ExampleApp\app.json
bngApi.engineLua("lua_path.function()")
```
Полезно для запуска функции lua с аргументами или без них.
Полезно для запуска функции lua с аргументами или без них
# Функции Lua, предоставляемые BeamNG для UI-приложений