Fallback fonts + localizations (#262)

* Fallback fonts + localizations

* cannot find address on h1 [skip]

* fix build

* fix language menu

* small fix

* improved regular font

* format LUI stuff [skip ci]

Co-authored-by: m <mjkzyalt@gmail.com>
This commit is contained in:
Vlad 2022-09-25 18:12:58 +03:00 committed by GitHub
parent 637913f7cb
commit 367548e86e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
43 changed files with 1983 additions and 901 deletions

Binary file not shown.

View File

@ -8,7 +8,7 @@ local container = LUI.UIVerticalList.new({
top = 20,
right = 200,
width = 200,
spacing = 5,
spacing = 5
})
function canasktojoin(userid)
@ -46,14 +46,14 @@ function addrequest(request)
local invite = LUI.UIElement.new({
leftAnchor = true,
rightAnchor = true,
height = 75,
height = 75
})
invite:registerAnimationState("move_in", {
leftAnchor = true,
height = 75,
width = 200,
left = -220,
left = -220
})
invite:animateToState("move_in", 100)
@ -71,9 +71,9 @@ function addrequest(request)
color = {
r = 0,
b = 0,
g = 0,
g = 0
},
alpha = 0.6,
alpha = 0.6
})
local border = LUI.UIImage.new({
@ -81,7 +81,7 @@ function addrequest(request)
leftAnchor = true,
rightAnchor = true,
bottomAnchor = true,
material = RegisterMaterial("btn_focused_rect_innerglow"),
material = RegisterMaterial("btn_focused_rect_innerglow")
})
border:setup9SliceImage(10, 5, 0.25, 0.12)
@ -95,7 +95,7 @@ function addrequest(request)
top = paddingvalue,
left = paddingvalue,
right = -paddingvalue,
bottom = -paddingvalue,
bottom = -paddingvalue
})
local avatarmaterial = discord.getavatarmaterial(request.userid)
@ -119,15 +119,15 @@ function addrequest(request)
font = CoD.TextSettings.BodyFontBold.Font
})
username:setText(string.format("%s^7#%s requested to join your game!",
truncatename(request.username, 18), request.discriminator))
username:setText(string.format("%s^7#%s requested to join your game!", truncatename(request.username, 18),
request.discriminator))
local buttons = LUI.UIElement.new({
leftAnchor = true,
rightAnchor = true,
topAnchor = true,
top = 37,
height = 18,
height = 18
})
local createbutton = function(text, left)
@ -137,7 +137,7 @@ function addrequest(request)
topAnchor = true,
height = 18,
width = 85,
material = RegisterMaterial("btn_focused_rect_innerglow"),
material = RegisterMaterial("btn_focused_rect_innerglow")
})
local center = LUI.UIText.new({
@ -219,7 +219,7 @@ function addrequest(request)
color = {
r = 92 / 255,
g = 206 / 255,
b = 113 / 255,
b = 113 / 255
}
})
@ -229,7 +229,7 @@ function addrequest(request)
bottom = -3,
left = 3,
width = 0,
height = 2,
height = 2
})
bar:animateToState("closing", timeout)

View File

@ -57,12 +57,7 @@ function updateinfobarvisibility()
infobar:animateToState("hud_on")
end
local validstates = {
"hud_on",
"active",
"nosignal",
"scrambled"
}
local validstates = {"hud_on", "active", "nosignal", "scrambled"}
infobar:animateToState("minimap_off")
for i = 1, #validstates do
@ -78,7 +73,7 @@ function populateinfobar(infobar)
if (Engine.GetDvarBool("cg_infobar_fps")) then
infobar:addElement(infoelement({
label = "FPS: ",
label = Engine.Localize("@MPHUD_FPS"),
getvalue = function()
return game:getfps()
end,
@ -89,9 +84,9 @@ function populateinfobar(infobar)
if (Engine.GetDvarBool("cg_infobar_ping")) then
infobar:addElement(infoelement({
label = "Latency: ",
label = Engine.Localize("@MPHUD_LATENCY"),
getvalue = function()
return game:getping() .. " ms"
return game:getping() .. Engine.Localize("@MPHUD_LATENCY_MS")
end,
width = 115,
interval = 100

View File

@ -71,37 +71,25 @@ pcdisplay.CreateOptions = function(menu)
LUI.Options.AddButtonOptionVariant(menu, luiglobals.GenericButtonSettings.Variants.Common, "@MENU_BRIGHTNESS",
"@MENU_BRIGHTNESS_DESC1", nil, nil, nil, pcdisplay.OpenBrightnessMenu, nil, nil, nil)
local reddotbounds = {
step = 0.2,
max = 4,
min = 0.2
}
LUI.Options.AddButtonOptionVariant(
menu,
GenericButtonSettings.Variants.Slider,
"@LUA_MENU_RED_DOT_BRIGHTNESS",
"@LUA_MENU_RED_DOT_BRIGHTNESS_DESC",
function()
return (Engine.GetDvarFloat( "r_redDotBrightnessScale" ) -
reddotbounds.min) / (reddotbounds.max - reddotbounds.min)
end,
function()
Engine.SetDvarFloat("r_redDotBrightnessScale",
math.min(reddotbounds.max,
math.max(reddotbounds.min, Engine.GetDvarFloat("r_redDotBrightnessScale") - reddotbounds.step))
)
end,
function()
Engine.SetDvarFloat("r_redDotBrightnessScale",
math.min(reddotbounds.max,
math.max(reddotbounds.min, Engine.GetDvarFloat("r_redDotBrightnessScale") + reddotbounds.step))
)
end
)
LUI.Options.AddButtonOptionVariant(menu, GenericButtonSettings.Variants.Slider, "@LUA_MENU_RED_DOT_BRIGHTNESS",
"@LUA_MENU_RED_DOT_BRIGHTNESS_DESC", function()
return (Engine.GetDvarFloat("r_redDotBrightnessScale") - reddotbounds.min) /
(reddotbounds.max - reddotbounds.min)
end, function()
Engine.SetDvarFloat("r_redDotBrightnessScale", math.min(reddotbounds.max, math.max(reddotbounds.min,
Engine.GetDvarFloat("r_redDotBrightnessScale") - reddotbounds.step)))
end, function()
Engine.SetDvarFloat("r_redDotBrightnessScale", math.min(reddotbounds.max, math.max(reddotbounds.min,
Engine.GetDvarFloat("r_redDotBrightnessScale") + reddotbounds.step)))
end)
createdivider(menu, "TELEMETRY")
createdivider(menu, Engine.Localize("@LUA_MENU_TELEMETRY"))
LUI.Options.CreateOptionButton(menu, "cg_infobar_ping", "@LUA_MENU_LATENCY", "@LUA_MENU_LATENCY_DESC", {{
text = "@LUA_MENU_ENABLED",

View File

@ -52,8 +52,7 @@ function getmodname(path)
game:addlocalizedstring(data.description, data.description)
game:addlocalizedstring(data.author, data.author)
game:addlocalizedstring(data.version, data.version)
desc = Engine.Localize("@LUA_MENU_MOD_DESC",
data.description, data.author, data.version)
desc = Engine.Localize("@LUA_MENU_MOD_DESC", data.description, data.author, data.version)
name = data.name
end)
end
@ -67,7 +66,8 @@ LUI.MenuBuilder.registerType("mods_menu", function(a1)
exclusiveController = 0,
menu_width = 400,
menu_top_indent = LUI.MenuTemplate.spMenuOffset,
showTopRightSmallBar = true
showTopRightSmallBar = true,
uppercase_title = true
})
local modfolder = game:getloadedmod()

View File

@ -1,3 +1,5 @@
require("language")
if (game:issingleplayer()) then
return
end
@ -11,8 +13,8 @@ end
-- defined in mp_hud/hudutils.lua
function GetGameModeName()
return Engine.Localize(Engine.TableLookup(GameTypesTable.File,
GameTypesTable.Cols.Ref, GameX.GetGameMode(), GameTypesTable.Cols.Name))
return Engine.Localize(Engine.TableLookup(GameTypesTable.File, GameTypesTable.Cols.Ref, GameX.GetGameMode(),
GameTypesTable.Cols.Name))
end
function NeverAllowChangeTeams()

View File

@ -0,0 +1,97 @@
local available_languages = {"english", "english_safe", "french", "german", "italian", "polish", "portuguese",
"russian", "spanish", "simplified_chinese", "traditional_chinese", "japanese_partial",
"korean"}
local current_language = "english"
LUI.UIButtonText.IsOffsetedLanguage = function()
return false
end
function get_current_language()
current_language = game:getcurrentgamelanguage()
end
function set_language(value)
local file_path = "players2/default/language"
local file = io.open(file_path, "w")
file:write(value)
file:close()
end
function does_zone_folder_exists(language)
return io.directoryexists("zone/" .. language)
end
get_current_language()
LUI.addmenubutton("pc_controls", {
index = 4,
text = "@MENU_LANGUAGE",
description = Engine.Localize("@LUA_MENU_CHOOSE_LANGUAGE"),
callback = function()
LUI.FlowManager.RequestAddMenu(nil, "choose_language_menu")
end
})
LUI.MenuBuilder.registerType("choose_language_menu", function(a1)
local menu = LUI.MenuTemplate.new(a1, {
menu_title = "@LUA_MENU_CHOOSE_LANGUAGE",
menu_list_divider_top_offset = -(LUI.H1MenuTab.tabChangeHoldingElementHeight + H1MenuDims.spacing),
uppercase_title = true
})
function createdivider(menu, text)
local element = LUI.UIElement.new({
leftAnchor = true,
rightAnchor = false,
left = 10,
right = 0,
topAnchor = true,
bottomAnchor = false,
top = 0,
bottom = 33.33
})
element.scrollingToNext = true
element:addElement(LUI.MenuBuilder.BuildRegisteredType("h1_option_menu_titlebar", {
title_bar_text = text
}))
menu.list:addElement(element)
end
createdivider(menu, "^2" .. Engine.Localize("@LUA_MENU_DOWNLOAD") .. ": ^7https://docs.h1.gg/languages")
for i = 1, #available_languages do
if does_zone_folder_exists(available_languages[i]) then
menu:AddButton(Engine.Localize(string.format("MENU_%s", available_languages[i])), function()
LUI.yesnopopup({
title = Engine.Localize("@MENU_NOTICE"),
text = Engine.Localize("MENU_" .. current_language) .. "" ..
Engine.Localize("MENU_" .. available_languages[i]) .. "\n\n" ..
Engine.Localize("@LUA_MENU_CONFIRM_LANGUAGE") .. " " ..
Engine.Localize("@MENU_APPLY_LANGUAGE_SETTINGS"),
callback = function(result)
if (result) then
set_language(available_languages[i])
updater.relaunch()
else
LUI.FlowManager.RequestLeaveMenu(popup)
end
end
})
end, available_languages[i] == current_language, true, nil, {
desc_text = Engine.Localize("LOCALE_" .. (available_languages[i]))
})
end
end
LUI.Options.InitScrollingList(menu.list, nil, {
rows = 12
})
LUI.Options.AddOptionTextInfo(menu)
menu:AddBackButton()
return menu
end)

View File

@ -5,33 +5,27 @@ if (not SystemLinkJoinMenu) then
return
end
local columns = {
{
local columns = {{
offset = 40,
text = "@MENU_HOST_NAME",
dataindex = 0
},
{
}, {
offset = 500,
text = "@MENU_MAP",
dataindex = 1
},
{
offset = 700,
}, {
offset = 725,
text = "@MENU_TYPE1",
dataindex = 3
},
{
offset = 950,
}, {
offset = 920,
text = "@MENU_NUMPLAYERS",
dataindex = 2
},
{
offset = 1100,
}, {
offset = 1070,
text = "@MENU_PING",
dataindex = 4
},
{
}, {
offset = 10,
image = "s1_icon_locked",
customelement = function(value, offset)
@ -52,8 +46,7 @@ local columns = {
})
end,
dataindex = 5
}
}
}}
function textlength(text, font, height)
local _, _, width = luiglobals.GetTextDimensions(text, font, height)
@ -140,7 +133,8 @@ SystemLinkJoinMenu.AddServerButton = function(menu, controller, index)
local element = columns[i].customelement(value, columns[i].offset)
button.textHolder:addElement(element)
else
SystemLinkJoinMenu.MakeText(button.textHolder, columns[i].offset, gettext(i), luiglobals.Colors.h1.medium_grey)
SystemLinkJoinMenu.MakeText(button.textHolder, columns[i].offset, gettext(i),
luiglobals.Colors.h1.medium_grey)
end
end
@ -199,7 +193,7 @@ function menu_systemlink_join(f19_arg0, f19_arg1)
bottom = 58,
font = CoD.TextSettings.BodyFont.Font,
width = 300,
alignment = LUI.Alignment.Right,
alignment = LUI.Alignment.Right
})
menu:addElement(playercount)
@ -210,7 +204,7 @@ function menu_systemlink_join(f19_arg0, f19_arg1)
bottom = 58 - 25,
font = CoD.TextSettings.BodyFont.Font,
width = 300,
alignment = LUI.Alignment.Right,
alignment = LUI.Alignment.Right
})
menu:addElement(servercount)

View File

@ -1,2 +1,14 @@
deu_h1_mod_common
eng_h1_mod_common
ens_h1_mod_common
fra_h1_mod_common
h1_mod_common
ita_h1_mod_common
jpp_h1_mod_common
kor_h1_mod_common
pol_h1_mod_common
por_h1_mod_common
rus_h1_mod_common
sch_h1_mod_common
spa_h1_mod_common
tch_h1_mod_common

View File

@ -0,0 +1 @@
localize,german
1 localize german

View File

@ -0,0 +1 @@
localize,english_safe
1 localize english_safe

View File

@ -0,0 +1 @@
localize,french
1 localize french

View File

@ -1 +1,2 @@
localize,english
ttf,fonts/default.otf
1 localize english
2 ttf fonts/default.otf

View File

@ -0,0 +1 @@
localize,italian
1 localize italian

View File

@ -0,0 +1 @@
localize,japanese_partial
1 localize japanese_partial

View File

@ -0,0 +1 @@
localize,korean
1 localize korean

View File

@ -0,0 +1 @@
localize,polish
1 localize polish

View File

@ -0,0 +1 @@
localize,portuguese
1 localize portuguese

View File

@ -0,0 +1 @@
localize,russian
1 localize russian

View File

@ -0,0 +1 @@
localize,simplified_chinese
1 localize simplified_chinese

View File

@ -0,0 +1 @@
localize,spanish
1 localize spanish

View File

@ -0,0 +1 @@
localize,traditional_chinese
1 localize traditional_chinese

Binary file not shown.

View File

@ -49,5 +49,47 @@
"LUA_MENU_SAVE": "Save changes",
"LUA_MENU_SAVE_DESC": "Save changes.",
"LUA_MENU_SETTINGS": "Settings",
"LUA_MENU_EDIT_STATS": "Edit Stats"
"LUA_MENU_EDIT_STATS": "Edit Stats",
"UPDATER_POPUP_NO_UPDATES_AVAILABLE": "No updates available",
"UPDATER_POPUP_AVAILABLE_UPDATE_TEXT": "An update is available, proceed with installation?",
"UPDATER_POPUP_SUCCESSFUL": "Update successful",
"UPDATER_POPUP_RESTART_POPUP_TEXT": "Update requires restart",
"UPDATER_POPUP_CHECKING_FOR_UPDATES": "Checking for updates...",
"MPHUD_FPS": "FPS: ",
"MPHUD_LATENCY": "Latency: ",
"MPHUD_LATENCY_MS": " ms",
"LUA_MENU_TELEMETRY": "TELEMETRY",
"MENU_ENGLISH": "English",
"MENU_ENGLISH_SAFE": "English (Safe)",
"MENU_FRENCH": "Français",
"MENU_GERMAN": "Deutsch",
"MENU_ITALIAN": "Italiano",
"MENU_JAPANESE_PARTIAL": "日本語(一部)",
"MENU_KOREAN": "한국어",
"MENU_POLISH": "Polski",
"MENU_PORTUGUESE": "Português",
"MENU_RUSSIAN": "Русский",
"MENU_SIMPLIFIED_CHINESE": "简体中文",
"MENU_SPANISH": "Español",
"MENU_TRADITIONAL_CHINESE": "繁體中文",
"LOCALE_ENGLISH": "English",
"LOCALE_ENGLISH_SAFE": "English (Safe)",
"LOCALE_FRENCH": "French",
"LOCALE_GERMAN": "German",
"LOCALE_ITALIAN": "Italian",
"LOCALE_JAPANESE_PARTIAL": "Japanese (Partial)",
"LOCALE_KOREAN": "Korean",
"LOCALE_POLISH": "Polish",
"LOCALE_PORTUGUESE": "Portuguese",
"LOCALE_RUSSIAN": "Russian",
"LOCALE_SIMPLIFIED_CHINESE": "Simplified Chinese",
"LOCALE_SPANISH": "Spanish",
"LOCALE_TRADITIONAL_CHINESE": "Traditional Chinese",
"LUA_MENU_CHOOSE_LANGUAGE": "Choose your language",
"MENU_APPLY_LANGUAGE_SETTINGS": "Apply language settings?"
}

View File

@ -0,0 +1,95 @@
{
"CUSTOM_DEPOT_EULA_1": "Dear User,",
"CUSTOM_DEPOT_EULA_2": "By using this feature, you acknowledge that you are over the age of 18 years old, and that any sort of gambling is allowed in your country. (even if they do not involve real money)",
"CUSTOM_DEPOT_EULA_3": "The H1-mod team is not responsible if you break any law within your country, and the sole responsibility will be upon you to respect the same.",
"CUSTOM_DEPOT_EULA_4": "The H1-mod team will never include real money transactions within the modified systems. The only way to get currency, should you wish to, is by playing the game.",
"CUSTOM_DEPOT_EULA_5": "Best regards,",
"CUSTOM_DEPOT_EULA_6": "The H1-mod team.",
"LUA_MENU_FPS": "FPS Counter",
"LUA_MENU_FPS_DESC": "Show FPS counter.",
"LUA_MENU_LATENCY": "Server Latency",
"LUA_MENU_LATENCY_DESC": "Show server latency.",
"LUA_MENU_RED_DOT_BRIGHTNESS": "Red Dot Brightness",
"LUA_MENU_RED_DOT_BRIGHTNESS_DESC": "Adjust the brightness of red dot reticles.",
"MENU_SYSINFO_CUSTOMER_SUPPORT_URL": "https://h1.gg/",
"MENU_MODS": "MODS",
"MENU_MODS_DESC": "Load installed mods.",
"LUA_MENU_MOD_DESC_DEFAULT": "Load &&1.",
"LUA_MENU_MOD_DESC": "&&1\nAuthor: &&2\nVersion: &&3",
"LUA_MENU_LOADED_MOD": "Loaded mod: ^2&&1",
"LUA_MENU_AVAILABLE_MODS": "Available mods",
"LUA_MENU_UNLOAD": "Unload",
"LUA_MENU_UNLOAD_DESC": "Unload the currently loaded mod.",
"PLATFORM_SHADER_PRECACHE_ASK": "Would you like to populate the shader cache? It may cause crashes with certain GPUs (e.g. RTX cards) but will improve performance if successful.",
"MENU_NO_DONT_ASK": "No, don't ask me again",
"LUA_MENU_SERVERLIST": "SERVER LIST",
"MENU_NUMPLAYERS": "Players",
"MENU_PING": "Ping",
"SERVERLIST_PLAYER_COUNT": "&&1 Players",
"SERVERLIST_SERVER_COUNT": "&&1 Servers",
"LUA_MENU_STATS": "Stats",
"LUA_MENU_STATS_DESC": "Edit player stats settings.",
"LUA_MENU_UNLOCKALL_ITEMS": "Unlock all items",
"LUA_MENU_UNLOCKALL_ITEMS_DESC": "Whether items should be locked based on the player's stats or always unlocked.",
"LUA_MENU_UNLOCKALL_LOOT": "Unlock all loot",
"LUA_MENU_UNLOCKALL_LOOT_DESC": "Whether loot should be locked based on the player's stats or always unlocked.",
"LUA_MENU_UNLOCKALL_CLASSES": "Unlock all classes",
"LUA_MENU_UNLOCKALL_CLASSES_DESC": "Whether classes should be locked based on the player's stats or always unlocked.",
"LUA_MENU_PRESTIGE": "Prestige",
"LUA_MENU_PRESTIGE_DESC": "Edit prestige level.",
"LUA_MENU_RANK": "Rank",
"LUA_MENU_RANK_DESC": "Edit rank.",
"LUA_MENU_UNSAVED_CHANGES": "You have unsaved changes: are you sure you want to exit?",
"LUA_MENU_SAVE": "Save changes",
"LUA_MENU_SAVE_DESC": "Save changes.",
"LUA_MENU_SETTINGS": "Settings",
"LUA_MENU_EDIT_STATS": "Edit Stats",
"UPDATER_POPUP_NO_UPDATES_AVAILABLE": "No updates available",
"UPDATER_POPUP_AVAILABLE_UPDATE_TEXT": "An update is available, proceed with installation?",
"UPDATER_POPUP_SUCCESSFUL": "Update successful",
"UPDATER_POPUP_RESTART_POPUP_TEXT": "Update requires restart",
"UPDATER_POPUP_CHECKING_FOR_UPDATES": "Checking for updates...",
"MPHUD_FPS": "FPS: ",
"MPHUD_LATENCY": "Latency: ",
"MPHUD_LATENCY_MS": " ms",
"LUA_MENU_TELEMETRY": "TELEMETRY",
"MENU_ENGLISH": "English",
"MENU_ENGLISH_SAFE": "English (Safe)",
"MENU_FRENCH": "Français",
"MENU_GERMAN": "Deutsch",
"MENU_ITALIAN": "Italiano",
"MENU_JAPANESE_PARTIAL": "日本語(一部)",
"MENU_KOREAN": "한국어",
"MENU_POLISH": "Polski",
"MENU_PORTUGUESE": "Português",
"MENU_RUSSIAN": "Русский",
"MENU_SIMPLIFIED_CHINESE": "简体中文",
"MENU_SPANISH": "Español",
"MENU_TRADITIONAL_CHINESE": "繁體中文",
"LOCALE_ENGLISH": "English",
"LOCALE_ENGLISH_SAFE": "English (Safe)",
"LOCALE_FRENCH": "French",
"LOCALE_GERMAN": "German",
"LOCALE_ITALIAN": "Italian",
"LOCALE_JAPANESE_PARTIAL": "Japanese (Partial)",
"LOCALE_KOREAN": "Korean",
"LOCALE_POLISH": "Polish",
"LOCALE_PORTUGUESE": "Portuguese",
"LOCALE_RUSSIAN": "Russian",
"LOCALE_SIMPLIFIED_CHINESE": "Simplified Chinese",
"LOCALE_SPANISH": "Spanish",
"LOCALE_TRADITIONAL_CHINESE": "Traditional Chinese",
"LUA_MENU_CHOOSE_LANGUAGE": "Choose your language",
"MENU_APPLY_LANGUAGE_SETTINGS": "Apply language settings?"
}

View File

@ -0,0 +1,76 @@
{
"LUA_MENU_FPS": "Compteur d'IPS",
"LUA_MENU_FPS_DESC": "Afficher le compteur d'IPS.",
"LUA_MENU_LATENCY": "Latence du serveur",
"LUA_MENU_LATENCY_DESC": "Afficher la latence du serveur",
"LUA_MENU_RED_DOT_BRIGHTNESS": "Luminosité du point rouge",
"LUA_MENU_RED_DOT_BRIGHTNESS_DESC": "Ajustez la luminosité du point rouge des réticules.",
"MENU_MODS": "MODS",
"MENU_MODS_DESC": "Charger les mods installés.",
"LUA_MENU_MOD_DESC_DEFAULT": "Charger &&1.",
"LUA_MENU_MOD_DESC": "&&1\nAuteur: &&2\nVersion: &&3",
"LUA_MENU_LOADED_MOD": "Mod chargé: ^2&&1",
"LUA_MENU_AVAILABLE_MODS": "Mods disponibles",
"LUA_MENU_UNLOAD": "Décharger",
"LUA_MENU_UNLOAD_DESC": "Déchargez le mod actuellement chargé.",
"PLATFORM_SHADER_PRECACHE_ASK": "Souhaitez-vous remplir le cache de shader ? Cela peut provoquer des plantages avec certains GPU (par exemple, les cartes RTX), mais améliorera les performances en cas de succès.",
"MENU_NO_DONT_ASK": "Non, ne plus me le demander",
"LUA_MENU_SERVERLIST": "LISTE DES SERVEURS",
"MENU_NUMPLAYERS": "Joueurs",
"MENU_PING": "Latence",
"SERVERLIST_PLAYER_COUNT": "&&1 Joueurs",
"SERVERLIST_SERVER_COUNT": "&&1 Serveurs",
"LUA_MENU_STATS": "Stats",
"LUA_MENU_STATS_DESC": "Modifier les paramètres des statistiques du joueur.",
"LUA_MENU_UNLOCKALL_ITEMS": "Déverrouiller tous les éléments",
"LUA_MENU_UNLOCKALL_ITEMS_DESC": "Si les éléments doivent être verrouillés en fonction des statistiques du joueur ou toujours déverrouillés.",
"LUA_MENU_UNLOCKALL_LOOT": "Débloquez tout le butin",
"LUA_MENU_UNLOCKALL_LOOT_DESC": "Si le butin doit être verrouillé en fonction des statistiques du joueur ou toujours déverrouillé.",
"LUA_MENU_UNLOCKALL_CLASSES": "Débloquer toutes les classes",
"LUA_MENU_UNLOCKALL_CLASSES_DESC": "Si les classes doivent être verrouillées en fonction des statistiques du joueur ou toujours déverrouillées.",
"LUA_MENU_PRESTIGE": "Prestige",
"LUA_MENU_PRESTIGE_DESC": "Modifier le niveau de prestige.",
"LUA_MENU_RANK": "Grade",
"LUA_MENU_RANK_DESC": "Modifier le grade.",
"LUA_MENU_UNSAVED_CHANGES": "Vous avez des modifications non enregistrées, êtes-vous sûr de vouloir quitter ?",
"LUA_MENU_SAVE": "Sauvegarder les modifications",
"LUA_MENU_SAVE_DESC": "Sauvegarder les modifications.",
"LUA_MENU_SETTINGS": "Paramètres",
"LUA_MENU_EDIT_STATS": "Modifier les statistiques",
"UPDATER_POPUP_NO_UPDATES_AVAILABLE": "Aucune mise à jour disponible",
"UPDATER_POPUP_AVAILABLE_UPDATE_TEXT": "Une mise à jour est disponible,\npoursuivre l'installation ?",
"UPDATER_POPUP_SUCCESSFUL": "Mise à jour réussie",
"UPDATER_POPUP_RESTART_POPUP_TEXT": "La mise à jour nécessite un redémarrage",
"UPDATER_POPUP_CHECKING_FOR_UPDATES": "Vérification des mises à jour...",
"MPHUD_FPS": "IPS: ",
"MPHUD_LATENCY": "Latence: ",
"MPHUD_LATENCY_MS": " ms",
"LUA_MENU_TELEMETRY": "TÉLÉMÉTRIE",
"LOCALE_ENGLISH": "Anglais",
"LOCALE_ENGLISH_SAFE": "Anglais (sécuritaire)",
"LOCALE_FRENCH": "Français",
"LOCALE_GERMAN": "Allemand",
"LOCALE_ITALIAN": "Italien",
"LOCALE_JAPANESE_PARTIAL": "Japonais (partiel)",
"LOCALE_KOREAN": "Coréen",
"LOCALE_POLISH": "Polonais",
"LOCALE_PORTUGUESE": "Portugais",
"LOCALE_RUSSIAN": "Russe",
"LOCALE_SIMPLIFIED_CHINESE": "Chinois simplifié",
"LOCALE_SPANISH": "Espagnol",
"LOCALE_TRADITIONAL_CHINESE": "Chinois traditionnel",
"LUA_MENU_CHOOSE_LANGUAGE": "Choisissez la langue",
"LUA_MENU_MULTIPLAYER_CAPS": "H1-MOD: MULTIJOUEUR\n",
"MENU_MULTIPLAYER_CAPS": "H1-MOD: MULTIJOUEUR\n",
"PLATFORM_SYSTEM_LINK_TITLE": "LISTE DES SERVEURS"
}

View File

@ -0,0 +1,15 @@
{
"LOCALE_ENGLISH": "Englisch",
"LOCALE_ENGLISH_SAFE": "Englisch (Sicher)",
"LOCALE_FRENCH": "Französisch",
"LOCALE_GERMAN": "Deutsch",
"LOCALE_ITALIAN": "Italienisch",
"LOCALE_JAPANESE_PARTIAL": "Japanisch (Untertitelt)",
"LOCALE_KOREAN": "Koreanisch",
"LOCALE_POLISH": "Polnisch",
"LOCALE_PORTUGUESE": "Portugiesisch",
"LOCALE_RUSSIAN": "Russisch",
"LOCALE_SIMPLIFIED_CHINESE": "Vereinfachtes Chinesisch",
"LOCALE_SPANISH": "Spanisch",
"LOCALE_TRADITIONAL_CHINESE": "Traditionelles Chinesisch"
}

View File

@ -0,0 +1,23 @@
{
"MENU_MODS_DESC": "Abilita mod installate.",
"LUA_MENU_MOD_DESC_DEFAULT": "Abilita &&1.",
"LUA_MENU_MOD_DESC": "&&1\nAutore: &&2\nVersione: &&3",
"LUA_MENU_LOADED_MOD": "Mod attiva: ^2&&1",
"LUA_MENU_AVAILABLE_MODS": "Mod disponibili",
"LUA_MENU_UNLOAD": "Disabilita",
"LUA_MENU_UNLOAD_DESC": "Disabilita la mod attualmente attiva.",
"LOCALE_ENGLISH": "Inglese",
"LOCALE_ENGLISH_SAFE": "Inglese (sicuro)",
"LOCALE_FRENCH": "Francese",
"LOCALE_GERMAN": "Tedesco",
"LOCALE_ITALIAN": "Italiano",
"LOCALE_JAPANESE_PARTIAL": "Giapponese (parziale)",
"LOCALE_KOREAN": "Coreano",
"LOCALE_POLISH": "Polacco",
"LOCALE_PORTUGUESE": "Portoghese",
"LOCALE_RUSSIAN": "Russo",
"LOCALE_SIMPLIFIED_CHINESE": "Cinese semplificato",
"LOCALE_SPANISH": "Spagnolo",
"LOCALE_TRADITIONAL_CHINESE": "Cinese tradizionale"
}

View File

@ -0,0 +1,15 @@
{
"LOCALE_ENGLISH": "英語",
"LOCALE_ENGLISH_SAFE": "英語(検閲)",
"LOCALE_FRENCH": "フランス語",
"LOCALE_GERMAN": "ドイツ語",
"LOCALE_ITALIAN": "イタリア語",
"LOCALE_JAPANESE_PARTIAL": "日本語(一部)",
"LOCALE_KOREAN": "韓国語",
"LOCALE_POLISH": "ポーランド語",
"LOCALE_PORTUGUESE": "ポルトガル語",
"LOCALE_RUSSIAN": "ロシア語",
"LOCALE_SIMPLIFIED_CHINESE": "簡体字中国語",
"LOCALE_SPANISH": "スペイン語",
"LOCALE_TRADITIONAL_CHINESE": "繁体字中国語"
}

View File

@ -0,0 +1,15 @@
{
"LOCALE_ENGLISH": "영어",
"LOCALE_ENGLISH_SAFE": "영어(검열)",
"LOCALE_FRENCH": "프랑스어",
"LOCALE_GERMAN": "독일어",
"LOCALE_ITALIAN": "이탈리아어",
"LOCALE_JAPANESE_PARTIAL": "일본어(일부)",
"LOCALE_KOREAN": "한국어",
"LOCALE_POLISH": "폴란드어",
"LOCALE_PORTUGUESE": "포르투갈어",
"LOCALE_RUSSIAN": "러시아어",
"LOCALE_SIMPLIFIED_CHINESE": "중국어(간체)",
"LOCALE_SPANISH": "스페인어",
"LOCALE_TRADITIONAL_CHINESE": "중국어(번체)"
}

View File

@ -0,0 +1,15 @@
{
"LOCALE_ENGLISH": "Angielski",
"LOCALE_ENGLISH_SAFE": "Angielski (cenzuralny)",
"LOCALE_FRENCH": "Francuski",
"LOCALE_GERMAN": "Niemiecki",
"LOCALE_ITALIAN": "Włoski",
"LOCALE_JAPANESE_PARTIAL": "Japoński (częściowy)",
"LOCALE_KOREAN": "Koreański",
"LOCALE_POLISH": "Polski",
"LOCALE_PORTUGUESE": "Portugalski",
"LOCALE_RUSSIAN": "Rosyjski",
"LOCALE_SIMPLIFIED_CHINESE": "Chiński uproszczony",
"LOCALE_SPANISH": "Hiszpański",
"LOCALE_TRADITIONAL_CHINESE": "Chiński tradycyjny"
}

View File

@ -0,0 +1,15 @@
{
"LOCALE_ENGLISH": "Inglês",
"LOCALE_ENGLISH_SAFE": "Inglês (Censurado)",
"LOCALE_FRENCH": "Français",
"LOCALE_GERMAN": "Alemão",
"LOCALE_ITALIAN": "Italiano",
"LOCALE_JAPANESE_PARTIAL": "Japonês (Parcial)",
"LOCALE_KOREAN": "Coreano",
"LOCALE_POLISH": "Polonês",
"LOCALE_PORTUGUESE": "Português",
"LOCALE_RUSSIAN": "Russo",
"LOCALE_SIMPLIFIED_CHINESE": "Chinês simplificado",
"LOCALE_SPANISH": "Español",
"LOCALE_TRADITIONAL_CHINESE": "Chinês tradicional"
}

View File

@ -0,0 +1,595 @@
{
"CUSTOM_DEPOT_EULA_1": "Уважаемый игрок,",
"CUSTOM_DEPOT_EULA_2": "Используя эту функцию, вы подтверждаете, что вам исполнилось 18 лет и что в вашей стране разрешены азартные игры и сюрприз-механики (даже если они в них не вовлечены реальные деньги)",
"CUSTOM_DEPOT_EULA_3": "Команда H1-mod не несет ответственности, если вы нарушите какой-либо закон у себя в стране, и вы несете исключительную ответственность за соблюдение правил.",
"CUSTOM_DEPOT_EULA_4": "Команда H1-mod никогда не добавит микротранзакции с реальными деньгами в свой мод. Единственный способ получить внутриигровую валюту, если вы того захотите, это играть в игру.",
"CUSTOM_DEPOT_EULA_5": "С наилучшими пожеланиями,",
"CUSTOM_DEPOT_EULA_6": "Команда H1-mod.",
"LUA_MENU_FPS": "Счетчик кадров",
"LUA_MENU_FPS_DESC": "Показывать частоту кадров в секунду (FPS).",
"LUA_MENU_LATENCY": "Задержка до сервера",
"LUA_MENU_LATENCY_DESC": "Показывать пинг до сервера.",
"LUA_MENU_RED_DOT_BRIGHTNESS": "Яркость коллиматора",
"LUA_MENU_RED_DOT_BRIGHTNESS_DESC": "Регулировка яркости красной точки коллиматорных прицелов.",
"MENU_MODS": "МОДЫ",
"MENU_MODS_DESC": "Запуск установленных модов.",
"LUA_MENU_MOD_DESC_DEFAULT": "Запустить &&1.",
"LUA_MENU_MOD_DESC": "&&1\nАвтор: &&2\nВерсия: &&3.",
"LUA_MENU_LOADED_MOD": "Запущенный мод: ^3&&1",
"LUA_MENU_AVAILABLE_MODS": "Доступные моды",
"LUA_MENU_UNLOAD": "Выгрузить",
"LUA_MENU_UNLOAD_DESC": "Выгрузить из игры запущенный сейчас мод.",
"PLATFORM_SHADER_PRECACHE_ASK": "Хотите скомпилировать шейдеры? С некоторыми видеокартами (например, серии GeForce RTX, GTX 16xx) это может привести к вылетам игры, но в общем случае повысит производительность.",
"MENU_NO_DONT_ASK": "Нет, больше не спрашивать",
"LUA_MENU_SERVERLIST": "Список серверов",
"MENU_NUMPLAYERS": "Игроки [+боты]",
"MENU_PING": "Пинг",
"SERVERLIST_PLAYER_COUNT": "Игроков: &&1",
"SERVERLIST_SERVER_COUNT": "Серверов: &&1",
"LUA_MENU_STATS": "Статистика",
"LUA_MENU_STATS_DESC": "Изменение статистических показателей игрока.",
"LUA_MENU_UNLOCKALL_ITEMS": "Открыть все предметы",
"LUA_MENU_UNLOCKALL_ITEMS_DESC": "Определяет, должны ли камуфляжи и базовые предметы открываться в соответствии со статистикой игрока или всегда быть разблокированы.",
"LUA_MENU_UNLOCKALL_LOOT": "Открыть все трофеи",
"LUA_MENU_UNLOCKALL_LOOT_DESC": "Определяет, должно ли оружие из DLC (не включая DLC-камуфляжи) открываться по правилам или всегда быть разблокировано.",
"LUA_MENU_UNLOCKALL_CLASSES": "Открыть все классы",
"LUA_MENU_UNLOCKALL_CLASSES_DESC": "Определяет, должны ли дополнительные классы открываться при достижении нового уровня престижа или всегда быть разблокированы.",
"LUA_MENU_PRESTIGE": "Престиж",
"LUA_MENU_PRESTIGE_DESC": "Изменение уровня престижа.",
"LUA_MENU_RANK": "Ранг",
"LUA_MENU_RANK_DESC": "Изменение ранга.",
"LUA_MENU_UNSAVED_CHANGES": "Изменения не были сохранены, вы уверены, что хотите выйти?",
"LUA_MENU_SAVE": "Сохранить изменения",
"LUA_MENU_SAVE_DESC": "Внесение изменений в игру.",
"LUA_MENU_SETTINGS": "Параметры",
"LUA_MENU_EDIT_STATS": "Корректировка статистики",
"UPDATER_POPUP_NO_UPDATES_AVAILABLE": "У вас установлены все последние обновления",
"UPDATER_POPUP_AVAILABLE_UPDATE_TEXT": "Доступно обновление клиента игры,\nначать установку сейчас?",
"UPDATER_POPUP_SUCCESSFUL": "Обновление завершено",
"UPDATER_POPUP_RESTART_POPUP_TEXT": "Для применения изменений необходим перезапуск игры",
"UPDATER_POPUP_CHECKING_FOR_UPDATES": "Проверка наличия обновлений...",
"MPHUD_FPS": "К/С: ",
"MPHUD_LATENCY": "Задержка: ",
"MPHUD_LATENCY_MS": " мс",
"LUA_MENU_TELEMETRY": "ТЕЛЕМЕТРИЯ",
"LOCALE_ENGLISH": "Английский",
"LOCALE_ENGLISH_SAFE": "Английский цензурный",
"LOCALE_FRENCH": "Французский",
"LOCALE_GERMAN": "Немецкий",
"LOCALE_ITALIAN": "Итальянский",
"LOCALE_JAPANESE_PARTIAL": "Японский (английская озвучка)",
"LOCALE_KOREAN": "Корейский",
"LOCALE_POLISH": "Польский",
"LOCALE_PORTUGUESE": "Португальский",
"LOCALE_RUSSIAN": "Русский",
"LOCALE_SIMPLIFIED_CHINESE": "Китайский упрощенный",
"LOCALE_SPANISH": "Испанский",
"LOCALE_TRADITIONAL_CHINESE": "Китайский традиционный",
"LUA_MENU_DOWNLOAD": "Скачать",
"LUA_MENU_MULTIPLAYER_CAPS": "H1-MOD: СЕТЕВАЯ ИГРА\n",
"MENU_MULTIPLAYER_CAPS": "H1-MOD: СЕТЕВАЯ ИГРА",
"PLATFORM_SYSTEM_LINK_TITLE": "СПИСОК СЕРВЕРОВ",
"MPUI_MP44": "MP-44",
"WEAPON_AT4": "AT4",
"WEAPON_BARRETT": "Barrett .50",
"WEAPON_BERETTA": "M9",
"WEAPON_COLT1911": "M1911 .45",
"WEAPON_COLT45": "M1911 .45",
"WEAPON_DESERTEAGLE55": "Командирский Дезерт Игл",
"WEAPON_DESERTEAGLEGOLD": "Золотой Дезерт Игл",
"WEAPON_HK79": "HK79",
"WEAPON_MELEESHOVEL": "Могильщик",
"WEAPON_MP44": "MP-44",
"WEAPON_MP5_SILENCER": "MP5 с глушителем",
"WEAPON_NO_AMMO_CAPS": "НЕТ ПАТРОНОВ",
"WEAPON_NO_FRAG_GRENADE": "Осколочных гранат не осталось",
"WEAPON_NO_SPECIAL_GRENADE": "Особых гранат не осталось",
"WEAPON_P90_SILENCER": "P90 с глушителем",
"WEAPON_SILENCER_ATTACHMENT": "с глушителем",
"WEAPON_USP": "USP .45",
"EXE_SAY": "^3Всем^7",
"EXE_SAYTEAM": "^5Команде^7",
"MENU_SB_TOOLTIP_BTN_REFRESH": "Обновить список",
"MENU_TYPE1": "Режим",
"SERVERLIST_ADD_TO_BLACKLIST": "Добавить в ЧС",
"SERVERLIST_REMOVE_FROM_BLACKLIST": "Убрать из ЧС",
"LUI_MENU_BLACKLIST": "Черный список",
"MPUI_ATDM_RECIPE_NAME": "Usilenie",
"MPUI_BALL_RECIPE_NAME": "Stancija svjazi",
"MPUI_CONF_RECIPE_NAME": "Ubijstvo podtverzhdeno",
"MPUI_CTF_PRO_RECIPE_NAME": "Zahvat flaga PRO",
"MPUI_CTF_RECIPE_NAME": "Zahvat flaga",
"MPUI_DD_RECIPE_NAME": "Unichtozhenie",
"MPUI_DEATHMATCH_RECIPE_NAME": "Kazhdyj za sebja",
"MPUI_DOMINATION_RECIPE_NAME": "Prevoshodstvo",
"MPUI_GUN_RECIPE_NAME": "Oruzhie",
"MPUI_HEADQUARTERS_RECIPE_NAME": "Shtab",
"MPUI_HP_RECIPE_NAME": "Opornyj punkt",
"MPUI_INFECT_RECIPE_NAME": "Zarazhenie",
"MPUI_JUGG_RECIPE_NAME": "Dzhaggernaut",
"MPUI_KINGS_RECIPE_NAME": "Koroli",
"MPUI_KOTM_RECIPE_NAME": "Gora",
"MPUI_OIC_RECIPE_NAME": "Poslednij patron",
"MPUI_SABOTAGE_RECIPE_NAME": "Sabotazh",
"MPUI_SD_RECIPE_NAME": "NiU",
"MPUI_SOTF_FFA_RECIPE_NAME": "Ohota KZS",
"MPUI_SOTF_RECIPE_NAME": "Ohota",
"MPUI_SR_RECIPE_NAME": "NiS",
"MPUI_TWAR_RECIPE_NAME": "Impuls",
"MPUI_WAR_RECIPE_NAME": "Komandnyj boj",
"MPUI_XTDM_RECIPE_NAME": "XTDM",
"CLASS_SPETSNAZ_CLASSES": "КЛАССЫ СПЕЦНАЗА",
"LOOT_DEC_CHAR_REWARD_02": "ЧАД",
"LOOT_DEC_COSTUME_15": "ЧАД",
"LOOT_DEC_ITEMSET_32_SPECIAL": "ЧАД",
"LUA_MENU_SCOREBOARD_MARINES": "%d · МОРПЕХИ",
"LUA_MENU_SCOREBOARD_MARINES_LOST": "%d · МОРПЕХИ ПРОИГРАЛИ",
"MPUI_MARINES_DESERT": "Морпехи",
"MPUI_MARINES_SHORT": "Морпехи",
"MPUI_OPFOR": "Оппозиция",
"MPUI_OPFOR_SHORT": "Оппозиция",
"MPUI_SPETSNAZ": "Спецназ",
"MPUI_SPETSNAZ_SHORT": "Спецназ",
"CGAME_COMPLAINTDISMISSED": "Жалоба отклонена",
"CGAME_COMPLAINTFILED": "Жалоба учтена",
"CGAME_COMPLAINTSERVERHOST": "Нельзя пожаловаться на хост",
"CGAME_COMPLAINTTEAMKILLFILE": "Отправить жалобу на игрока &&1 за убийство товарища по команде?",
"CGAME_CONNECTIONINTERUPTED": "Связь прервана",
"CGAME_CONTINUE_SAVING": "Сохранить и выйти",
"CGAME_CRUSH": "раздавлен",
"CGAME_FALLING": "упал",
"CGAME_HEAD_SHOT": "выстрел в голову",
"CGAME_MISSIONOBJECTIVES": "ЦЕЛИ ЗАДАНИЯ",
"CGAME_NOSPECTATORVOICECHAT": "Зрители не могут использовать голосовую связь.",
"CGAME_PRESSYESNO": "Для ответа ДА нажмите '&&1', для ответа НЕТ - '&&2'",
"CGAME_PRONE_BLOCKED": "Движение лежа заблокировано",
"CGAME_PRONE_BLOCKED_WEAPON": "С этим оружием нельзя лечь",
"CGAME_RESTART_WARNING": "Если начать игру заново, \nвесь прогресс в текущем \nзадании будет утрачен\n\nНачать заново?",
"CGAME_SAVE_WARNING": "Если вы сохраните игру сейчас,\nвесь прогресс с момента последней\nконтрольной точки будет утрачен\n\nСохранить игру?",
"CGAME_SB_ASSISTS": "Помощь",
"CGAME_SB_DEATHS": "Смерти",
"CGAME_SB_KILLS": "Убийства",
"CGAME_SB_PING": "Пинг",
"CGAME_SERVERHOSTTEAMKILLED": "Вас убил хост вашей же команды",
"CGAME_SPECTATOR": "ЗРИТЕЛЬ",
"CGAME_SPECTATORS": "Зрители",
"CGAME_TEAMMATE": "НАПАРНИК",
"CGAME_UNKNOWN": "неизвестно",
"CGAME_WAITINGFORSERVERLOAD": "Ожидание загрузки новой карты на сервере",
"CGAME_YOUKILLED": "Вы убили игрока &&1",
"CGAME_YOUWEREKILLED": "Вас убил игрок &&1",
"CLANS_OFFENSIVENAME": "Имя клана отвергнуто: запрещенный текст",
"DEPOT_NEXT_DEPOT_CREDIT": "До след. начисления",
"DLC_MAPS": "Загружаемые карты",
"EXE_DISCONNECTED": "Соединение с сервером разорвано",
"EXE_ERR_BAD_GAME_FOLDER": "Указана неверная папка с игрой.",
"EXE_ERR_CORRECT_FOLDER": "Убедитесь, что игра запущена из правильной папки.",
"EXE_ERR_HIGH_PING_ONLY": "Этот сервер предназначен только для игроков с большим пингом.",
"EXE_ERR_HUNK_ALLOC_FAILED": "Не удалось выделить &&1 Мб.",
"EXE_ERR_LOW_PING_ONLY": "Этот сервер предназначен только для игроков с небольшим пингом.",
"EXE_ERR_WRONG_MAP_VERSION_NUM": "Неверная версия карты '&&1'.",
"EXE_FAVORITES": "Избранное",
"EXE_GAMEISENDING": "Не удалось войти - игра уже заканчивается",
"EXE_HOST_HANDLE_ERROR": "Не удалось обеспечить защищенную связь с сервером.",
"EXE_INVALIDUPDATESERVERDOWNLOAD": "Загруженное обновление повреждено",
"EXE_KEYWAIT": "Нажмите ESC для отмены или BACKSPACE для сброса",
"EXE_SERVERFILTER": "Фильтр: &&1",
"EXE_SERVERKILLED": "Сервер остановлен.",
"EXE_SHADERPRELOAD": "Подгрузка шейдеров... &&1%",
"EXE_SV_INFO_FRIENDLY_FIRE": "Огонь по своим",
"EXE_SV_INFO_GAMETYPE": "Режим игры",
"EXE_SV_INFO_KILLCAM": "Повтор",
"EXE_SV_INFO_NAME": "имя",
"EXE_SV_INFO_PASSWORD": "С паролем",
"EXE_SV_INFO_PING": "пинг",
"EXE_TIMEDOUT": "Время ожидания запроса истекло",
"EXE_YES": "Да",
"GAME_CHEATSNOTENABLED": "На этом сервере отключены чит-коды.",
"GAME_CROUCH_BLOCKED": "Здесь нельзя пригнуться",
"GAME_DIFFICULTY_HARD": "Сложность: Закаленный",
"GAME_DIFFICULTY_MEDIUM": "Сложность: Рядовой",
"GAME_DIFFICULTY_UNKNOWN": "Сложность: Неизвестна",
"GAME_DROPPEDFORINACTIVITY": "Отключен от сервера из-за бездействия.",
"GAME_INVALIDGAMETYPE": "Неверный режим игры.",
"GAME_NOSPECTATORCALLVOTE": "Зрители не могут начинать голосование.",
"GAME_NOSPECTATORVOTE": "Зрители не могут голосовать.",
"GAME_OBJECTIVECOMPLETED": "Задача выполнена.",
"GAME_OBJECTIVEFAILED": "Цель не достигнута.",
"GAME_OBJECTIVESUPDATED": "Новая цель.",
"GAME_SPECTATOR": "Зритель",
"GAME_VOTE_GAMETYPE": "Режим: ",
"KEY_COMMAND": "Command",
"KEY_ENTER": "Enter",
"KEY_ESCAPE": "Escape",
"KEY_KP_MINUS": "- (цифр.)",
"KEY_KP_PLUS": "+ (цифр.)",
"KEY_KP_STAR": "* (цифр.)",
"KEY_MOUSE1": "ЛКМ",
"KEY_MOUSE2": "ПКМ",
"KEY_MOUSE3": "СКМ",
"KEY_USE": "использовать",
"LUA_MENU_ADVANCED_VIDEO": "Параметры графики",
"LUA_MENU_AIM_ASSIST_LOCKON_DESC": "Поворот оружия в сторону цели во время движения.",
"LUA_MENU_AIM_ASSIST_SLOWDOWN_DESC": "Замедление движений прицела при наведении оружия на цель.",
"LUA_MENU_AUTO_MANTLE_DESC": "Автоматически цепляться за уступ при прыжке рядом с ним.",
"LUA_MENU_BOTS_REGULAR": "Рядовой",
"LUA_MENU_CHALLENGE_XP": "&&1 XP",
"LUA_MENU_CHANGE_FACTION": "Смена фракции",
"LUA_MENU_CHANGE_TEAM": "Смена команды",
"LUA_MENU_CHANGE_TEAM_CAPS": "ВЫБОР КОМАНДЫ",
"LUA_MENU_CHOOSE_CLASS": "Смена класса",
"LUA_MENU_CHOOSE_CLASS_CAPS": "ВЫБОР КЛАССА",
"LUA_MENU_COLOR_BLIND_DESC": "Включение и отключение цветовой схемы для людей с пониженной чувствительностью к цвету.",
"LUA_MENU_COMPLETE": "ЗАВЕРШЕНО",
"LUA_MENU_CONFIRMS": "Жетоны",
"LUA_MENU_CONFIRMS_CAPS": "ЖЕТОНЫ",
"LUA_MENU_CONFIRM_REDEEM_DUPLICATES_CAPS": "ОБМЕНЯТЬ ДУБЛИКАТЫ ПРЕДМЕТОВ (&&1) НА ОПЫТ?",
"LUA_MENU_CONF_CAPS": "УБИЙСТВО ПОДТВЕРЖДЕНО",
"LUA_MENU_CONF_RECIPE_DESC": "Версия на основе режима Убийство подтверждено",
"LUA_MENU_CONF_RECIPE_NAME": "Версия У.П.",
"LUA_MENU_CREATE_A_CLASS": "Создание классов",
"LUA_MENU_CREATE_A_CLASS_CAPS": "ИЗМЕНИТЬ КЛАСС",
"LUA_MENU_DATE": "&&2.&&1.&&3",
"LUA_MENU_DAYS": "&&1 д",
"LUA_MENU_DAYS_HOURS_MINUTES_SECONDS": "&&1 д &&2 ч &&3 м &&4 с",
"LUA_MENU_DEATHMATCH": "Каждый за себя",
"LUA_MENU_DEATHMATCH_CAPS": "КАЖДЫЙ ЗА СЕБЯ",
"LUA_MENU_DEATHMATCH_RECIPE_DESC": "Версия на основе режима Каждый за себя",
"LUA_MENU_DEATHMATCH_RECIPE_NAME": "Версия Каждый за себя",
"LUA_MENU_DEFENDS": "Защиты",
"LUA_MENU_DEFENDS_CAPS": "ЗАЩИТЫ",
"LUA_MENU_DESC_LEADERBOARD_CONF": "Убийство подтверждено - список лидеров",
"LUA_MENU_DESC_LEADERBOARD_DM": "Каждый за себя - список лидеров",
"LUA_MENU_DESC_LEADERBOARD_DOM": "Превосходство - список лидеров",
"LUA_MENU_DESC_LEADERBOARD_SOTF_FFA": "Охота КЗС - список лидеров",
"LUA_MENU_DISPLAY_OPTIONS": "Интерфейс",
"LUA_MENU_DM_HARDCORE": "Каждый за себя. Хардкор",
"LUA_MENU_DOMINATION": "Превосходство",
"LUA_MENU_DOMINATION_CAPS": "ПРЕВОСХОДСТВО",
"LUA_MENU_DOMINATION_RECIPE_DESC": "Версия на основе режима Превосходство",
"LUA_MENU_DOMINATION_RECIPE_NAME": "Версия Превосходство",
"LUA_MENU_END_GAME": "Выйти из боя",
"LUA_MENU_ENVIRONMENT_KILLS": "Убито предметами окружения",
"LUA_MENU_FREE_ONLY": "Свободная камера",
"LUA_MENU_GAME_SETUP": "Параметры боя",
"LUA_MENU_GAME_SETUP_CAPS": "ПАРАМЕТРЫ БОЯ",
"LUA_MENU_GRAPHICS": "Изображение",
"LUA_MENU_GRAPHIC_OPTIONS": "Изображение",
"LUA_MENU_HEALTH_AND_DAMAGE": "Здоровье и урон",
"LUA_MENU_KILLCAM_FINAL_CAPS": "ПОСЛЕДНЕЕ УБИЙСТВО",
"LUA_MENU_KILLS": "Убийства",
"LUA_MENU_KILLS_CAPS": "УБИЙСТВА",
"LUA_MENU_LEAVE_GAME_TITLE": "Покинуть бой?",
"LUA_MENU_LOSING": "Вы проигрываете",
"LUA_MENU_LOSSES_CAPS": "ПОРАЖЕНИЯ",
"LUA_MENU_MELEEKILLS": "С ножа",
"LUA_MENU_MODE_WINDOWED_NO_BORDER": "В окне (без границ)",
"LUA_MENU_OPTIMAL_VIDEO_AUDIO": "Сбросить настройки изображения",
"LUA_MENU_OPTIONS_UPPER_CASE": "НАСТРОЙКИ",
"LUA_MENU_PLAY_TIME": "Всего наиграно",
"LUA_MENU_PRESET_CLASSES": "Готовые классы",
"LUA_MENU_PRESET_CLASSES_CAPS": "ГОТОВЫЕ КЛАССЫ",
"LUA_MENU_RATIO_CAPS": "У/С",
"LUA_MENU_RECIPE_LOAD_CUSTOM": "Загрузить свою версию",
"LUA_MENU_REPORT_DEFEAT": "Поражение",
"LUA_MENU_REPORT_DEFEAT_CAPS": "ПОРАЖЕНИЕ",
"LUA_MENU_REPORT_VICTORY": "Победа",
"LUA_MENU_REPORT_VICTORY_CAPS": "ПОБЕДА",
"LUA_MENU_RESTORE_EACH_SETTING": "Вернуть параметры управления к значениям по умолчанию?",
"LUA_MENU_RESTRICTIONS_TACTICAL_CAPS": "ОГРАНИЧЕНИЯ НА ТАКТИЧЕСКОЕ ОРУЖИЕ",
"LUA_MENU_RESTRICT_TACTICAL": "Ограничение на тактическое оружие",
"LUA_MENU_ROTATION": "Несколько",
"LUA_MENU_RULES_EDIT_DEF_CLASSES": "Список заготовленных классов",
"LUA_MENU_RULES_FAST": "Быстро",
"LUA_MENU_RULES_GUN_CQC": "Холодное",
"LUA_MENU_RULES_GUN_MELEE": "Холодное",
"LUA_MENU_RULES_GUN_MELEE_RPG": "Холодное, РПГ",
"LUA_MENU_RULES_GUN_PROGRESSION_END": "Последнее оружие",
"LUA_MENU_RULES_GUN_RPG_MELEE": "РПГ, холодное",
"LUA_MENU_RULES_HEADSHOTS_ONLY": "Только попадания в голову",
"LUA_MENU_RULES_NORMAL": "По умолчанию",
"LUA_MENU_RULES_RETURN_TIME": "Время автовозврата флага",
"LUA_MENU_RULES_SETBACK_LEVELS": "Потеря уровня от ножа",
"LUA_MENU_RULES_STREAK_GRACE_PERIOD": "Отсрочка серии",
"LUA_MENU_RULES_TEAMKILL_KICK": "Исключение за убийство союзников",
"LUA_MENU_RULES_TEAM_SWITCH": "Смена команды посреди игры",
"LUA_MENU_RULES_TOGGLE_ROTATION_OFF": "Указать одну карту",
"LUA_MENU_RULES_TOGGLE_ROTATION_ON": "Указать несколько карт",
"LUA_MENU_RULES_UNLIMITED": "Без ограничений",
"LUA_MENU_SAS": "S.A.S",
"LUA_MENU_SD_RECIPE_DESC": "Версия на основе режима Найти и Уничтожить",
"LUA_MENU_SD_RECIPE_NAME": "Версия Найти и уничтожить",
"LUA_MENU_SETBACKS": "Откаты",
"LUA_MENU_SPAWN_SETTINGS": "Возрождение",
"LUA_MENU_SR_RECIPE_DESC": "Версия на основе Найти и спасти",
"LUA_MENU_SR_RECIPE_NAME": "Версия Найти и спасти",
"LUA_MENU_SUPPLY_DROP_MTX": "Редкий ящик снабжения",
"LUA_MENU_SYSTEM_INFO": "Другое",
"LUA_MENU_SYSTEM_INFO_CAPS": "ДРУГОЕ",
"LUA_MENU_VERSUS": "VS",
"LUA_MENU_VIDEO_OPTIONS": "Отображение",
"LUA_MENU_VIDEO_OPTIONS_CAPS": "ОТОБРАЖЕНИЕ",
"LUA_MENU_WAR_RECIPE_DESC": "Версия на основе режима Командный бой",
"LUA_MENU_WAR_RECIPE_NAME": "Версия Командный бой",
"LUA_MENU_WEAPON_ATTRIBUTE_HEADER": "СВОЙСТВА",
"LUA_MENU_WEAPON_STAT_MOBILITY": "МОБИЛЬН.",
"LUA_MENU_WEAPPERF_KILLS": "Убийства",
"LUA_MENU_WIN_PERCENTAGE": "% побед",
"LUA_MENU_WL_RATIO": "Победы/поражения",
"LUA_MP_FRONTEND_SCORE_PER_MINUTE_CAPS": "Очков в минуту",
"MENU_ACT_I": "Акт I",
"MENU_ACT_II": "Акт II",
"MENU_ACT_III": "Акт III",
"MENU_ADVANCED_VIDEO": "Параметры графики",
"MENU_AIM_DOWN_THE_SIGHT": "Прицелиться",
"MENU_AIM_DOWN_THE_SIGHT_AUTOAIM": "Автонаведение при прицеливании",
"MENU_ALLOW_ENEMY_SPECTATING": "Наблюдение за противником: ",
"MENU_APPLY_SETTINGS": "Применить новые значения?",
"MENU_AUTOAIM": "Автонаведение",
"MENU_A_GAME_TYPE_WILL_BE_SELECTED_AT_RANDOM": "Режим игры будет выбран случайно.",
"MENU_BRIGHTNESS": "Яркость изображения",
"MENU_BUTTON_LAYOUT": "Раскладка кнопок",
"MENU_CAMPAIGN_ARCADE_CHEAT_UNLOCKED_DESC_GERMAN_SKU": "Вы получили доступ к чит-кодам игры.\n\nАктивировать их можно в главном меню или меню паузы.\n ",
"MENU_CAPTURE_AND_HOLD_THE": "Зарабатывайте очки, захватывая и удерживая указанные позиции. ",
"MENU_CCS_RESTART_BUTTON_LABEL": "Перезапустить",
"MENU_CHANGE_GAME_TYPE": "Изменить режим игры",
"MENU_CHANGE_RATE_OF_FIRE": "Изменить темп стрельбы",
"MENU_CHANGE_WEAPON": "Сменить оружие",
"MENU_CHEAT_ENABLED": "Чит-код активирован",
"MENU_COMPLETED": "Пройдено",
"MENU_COMPLETED_CHEAT": "Доступен чит-код",
"MENU_COMPLETED_HARDENED": "Пройдено (Закаленный)",
"MENU_COMPLETED_REGULAR": "Пройдено (Рядовой)",
"MENU_COMPLETED_SKILLED": "Пройдено (Опытный)",
"MENU_COMPLETED_VETERAN": "Пройдено (Ветеран)",
"MENU_CONF_DESC": "Зарабатывайте очки, убивая противников и собирая их жетоны.",
"MENU_CORRUPT_SAVEDATA_MESSAGE": "Сохраненные данные не были загружены, поскольку они повреждены. В случае продолжения они будут удалены.",
"MENU_CREATE_A_CLASS_CAPS": "СОЗДАНИЕ КЛАССОВ",
"MENU_CUSTOM": "Свои",
"MENU_CUSTOM_N": "Свой (&&1)",
"MENU_DEATHS": "Смерти",
"MENU_DEFAULT_ALT": "Станд. перевернутая",
"MENU_DIFFICULTY_HARDENED": "Сложность: Закаленный",
"MENU_DIFFICULTY_REGULAR": "Сложность: Рядовой",
"MENU_DIFFICULTY_WARNING": "Вам рекомендуется другой уровень сложности. Хотите продолжить на этом?",
"MENU_DISPLAY_MODE": "Режим вывода",
"MENU_DOF": "Глубина резкости",
"MENU_EXTRA": "Ультра",
"MENU_FILL_MEMORY_TEXTURES": "Заполнить оставшуюся память",
"MENU_FIRE_RATE": "Темп стрельбы:",
"MENU_FRAG_EQUIPMENT": "Граната/снаряжение",
"MENU_FREE_FOR_ALL": "Каждый за себя",
"MENU_FREE_LOOK": "Своб. обзор",
"MENU_FRIENDLY_FIRE": "Огонь по своим: ",
"MENU_GAME_OPTIONS": "Правила игры",
"MENU_GAME_SETUP_CAPS": "ПАРАМЕТРЫ БОЯ",
"MENU_GAME_TYPE": "Режим игры: ",
"MENU_GAME_TYPE1": "Режим игры",
"MENU_GAME_TYPES": "Режимы игры",
"MENU_GAME_TYPE_SETTINGS": "Настройки режима игры",
"MENU_GO_TO_CROUCH": "Пригнуться",
"MENU_GO_TO_PRONE": "Лечь",
"MENU_GRAPHICS": "Изображение",
"MENU_HARDENED": "Закаленный",
"MENU_HIGH": "Высок.",
"MENU_HP_DESC": "Зарабатывайте очки, захватывая и удерживая опорные пункты. ",
"MENU_INSANE": "Безумн.",
"MENU_INSPECT_WEAPON": "Осмотреть оружие",
"MENU_INTEL": "ЧИТ-КОДЫ",
"MENU_JOIN_SERVER_CAP": "ПОДКЛЮЧИТЬСЯ",
"MENU_JUMP_STANCE_UP": "Прыгнуть/Подняться",
"MENU_KILLS": "Убийства",
"MENU_KILLSTREAK_REWARD_SLOT_1": "Награды за серию убийств - ячейка 1",
"MENU_KILLSTREAK_REWARD_SLOT_2": "Награды за серию убийств - ячейка 2",
"MENU_KILLSTREAK_REWARD_SLOT_3": "Награды за серию убийств - ячейка 3",
"MENU_KILLSTREAK_REWARD_SLOT_4": "Награды за серию убийств - ячейка 4",
"MENU_KILLSTREAK_REWARD_SLOT_5": "Награды за серию убийств - ячейка 5",
"MENU_LARGE": "Больш.",
"MENU_LAST_CHECKPOINT": "Посл. контрольная точка",
"MENU_LAUNCH_WITHOUT_MODS": "Запустить без модов",
"MENU_LEADERBOARD": "Список лидеров",
"MENU_LEAVE_GAME_RANKED2": "игры лишит вас бонуса за матч и",
"MENU_LEAVE_GAME_RANKED3": "будет засчитан как поражение.",
"MENU_LEGACY": "Классика",
"MENU_LOAD_MISSION": "Загрузить задание?",
"MENU_LOAD_RECIPE_CAPS": "ЗАГРУЗИТЬ ВЕРСИЮ",
"MENU_LOAD_RECIPE_FROM_DISK": "Загрузить версию с диска",
"MENU_LOOK_INVERSION": "Инверсия обзора",
"MENU_LOSSES": "Проигрыши",
"MENU_LOWER_DIFFICULTY": "Понизить сложность",
"MENU_MELEE_CAPS": "ХОЛОДНОЕ",
"MENU_MISSES": "Промахи",
"MENU_MODIFIERS": "Модификаторы",
"MENU_NORMAL_MAP_RESOLUTION": "Разрешение карт нормалей",
"MENU_NO_CONTROLLER_INITIAL": "У вас не подключен геймпад. Переключиться на схему управления клавиатурой и мышью?",
"MENU_ONLINE_STATS": "Сетевая статистика",
"MENU_OPTIONS": "Настройки",
"MENU_OPTIONS_UPPER_CASE": "НАСТРОЙКИ",
"MENU_PAUSED_CAP": "ПАУЗА",
"MENU_PRESTIGE_RESET_TITLE2": "Подробнее",
"MENU_PRESTIGE_RESET_WARNING3": "Обратного пути нет...",
"MENU_PRIVATE_MATCH": "Закрытый матч",
"MENU_QUIT": "Выйти",
"MENU_RATIO": "У/С",
"MENU_RECIPE_CHANGE_BASE_CAPS": "СМЕНИТЬ ТИП ВЕРСИИ",
"MENU_RECIPE_LOAD_CUSTOM": "Загрузить свою версию",
"MENU_RECIPE_SAVE_CUSTOM": "Сохранить свою версию",
"MENU_RECIPE_SETUP_CAPS": "НАСТРОЙКА ВЕРСИИ",
"MENU_RECRUIT": "Новобранец",
"MENU_REGULAR": "Рядовой",
"MENU_REGULAR_CAPS": "РЯДОВОЙ",
"MENU_REMOVE_FROM_FAVORITES": "Убрать из избранного",
"MENU_REPORT_CHEATING": "Читерство",
"MENU_RESET_SYSTEM_DEFAULTS": "Оптимальные настройки игры",
"MENU_RESTART_LEVEL_Q": "Начать уровень сначала?",
"MENU_RESTORE_DEFAULTS": "Системные настройки будут возвращены к значениям по умолчанию, продолжить?",
"MENU_RESTORE_EACH_SETTING": "Все параметры будут возвращены к значениям по умолчанию, продолжить?",
"MENU_RESUMEGAME_NOSAVE": "Продолжить без сохранения",
"MENU_RESUMEGAME_Q_DESC": "Хотите возобновить прохождение задания?",
"MENU_RESUME_CREDITS": "Продолжить",
"MENU_SAVEDATA_CORRUPTED": "Невозможно возобновить игру, т.к. поврежден файл сохранения. Пожалуйста, перезапустите уровень из меню выбора задания.",
"MENU_SCORE_LOSING": "Вы проигрываете &&1 - &&2",
"MENU_SCORE_LOSING_WITH": "Вы проигрываете с &&1 из &&2 очков.",
"MENU_SCORE_WINNING": "Вы ведете &&1 - &&2",
"MENU_SCORE_WINNING_WITH": "Вы ведете с &&1 из &&2 очков.",
"MENU_SCREENSHOT": "Скриншот",
"MENU_SEARCHINGFORGAMES_100MS": "Поиск игр - пинг 100 мс",
"MENU_SEARCHINGFORGAMES_150MS": "Поиск игр - пинг 150 мс",
"MENU_SEARCHINGFORGAMES_200MS": "Поиск игр - пинг 200 мс",
"MENU_SEARCHINGFORGAMES_250MS": "Поиск игр - пинг 250 мс",
"MENU_SEARCHINGFORGAMES_300MS": "Поиск игр - пинг 300 мс",
"MENU_SEARCHINGFORGAMES_350MS": "Поиск игр - пинг 350 мс",
"MENU_SEARCHINGFORGAMES_50MS": "Поиск игр - пинг 50 мс",
"MENU_SEARCHINGFORGAMES_NMS": "Поиск игр: пинг <&&1 мс",
"MENU_SELECT_DIFFICULTY": "Выбор сложности",
"MENU_SELECT_GAME_TYPE": "Выбрать режим игры",
"MENU_SELECT_LEVEL": "Выбрать уровень",
"MENU_SELECT_MATCH_TYPE": "Выбрать тип матча",
"MENU_SELECT_NEXT_MISSION": "Выбрать следующее задание",
"MENU_SET_MAP_PREFERENCES": "Укажите, на каких картах вы предпочитаете играть",
"MENU_SHARED": "Урон обоим",
"MENU_SPECTATOR": "Зритель",
"MENU_SPECTATOR_MODE": "Режим зрителя",
"MENU_SPECULAR_MAP": "Карта бликов",
"MENU_SPECULAR_MAP_RESOLUTION": "Разрешение карт бликов",
"MENU_SPRINT_HOLD_BREATH": "Бег/Задержка дыхания",
"MENU_SPRINT_STEADY_SNIPER_RIFLE": "Бег/Удержание прицела",
"MENU_STANDARD_4_3": "Стандартное 4:3",
"MENU_TEXTURE_RESOLUTION": "Разрешение текстур",
"MENU_UNLOCK": "Открыть",
"MENU_VERY_LOW": "Очень низк.",
"MENU_VIDEO": "Отображение",
"MENU_VIEW_FRIENDLY_FIRE": "Огонь по своим:",
"MENU_WARNING": "Внимание",
"MENU_WARNING_CHECKPOINT_RESET_TITLE": "Откат к началу задания",
"MENU_WIDE_16_10": "Широкое 16:10",
"MENU_WIDE_16_9": "Широкое 16:9",
"MENU_WIDE_21_9": "Сверхширокое 21:9",
"MENU_WINS": "Победы",
"MENU_WLRATIO": "Победы/Поражения",
"MENU_YES": "Да",
"MPUI_ACCURACY_FRIENDS": "Меткость (Друзья)",
"MPUI_ACCURACY_GLOBAL": "Меткость (Все игроки)",
"MPUI_BOTS_REGULAR": "Рядовой",
"MPUI_CHANGE_GAMETYPEMAP": "Сменить режим игры/карту",
"MPUI_CHANGE_GAME_TYPE": "Изменить режим игры",
"MPUI_CHANGE_GAME_TYPEMAP": "Сменить режим/карту",
"MPUI_COMBATRECORD_GAMEMODESTAT_CONFIRMS": "Жетоны",
"MPUI_COMBATRECORD_GAMEMODESTAT_DEFENDS": "Защиты",
"MPUI_CONF": "Убийство подтверждено",
"MPUI_CONF_CAPS": "УБИЙСТВО ПОДТВЕРЖДЕНО",
"MPUI_CONF_RECIPE_DESC": "Версия на основе режима Убийство подтверждено",
"MPUI_DD": "Уничтожение",
"MPUI_DD_CAPS": "УНИЧТОЖЕНИЕ",
"MPUI_DEATHMATCH": "Каждый за себя",
"MPUI_DEATHMATCH_CAPS": "КАЖДЫЙ ЗА СЕБЯ",
"MPUI_DESC_CHANGE_GAMETYPE": "Выбрать другой режим игры.",
"MPUI_DESC_CHANGE_RULES": "Изменить правила матча.",
"MPUI_DESC_GAME_SETUP": "Сменить карту, режим и правила игры.",
"MPUI_DESC_LEADERBOARD_CONF": "Убийство подтверждено - список лидеров",
"MPUI_DESC_LEADERBOARD_DM": "Каждый за себя - список лидеров",
"MPUI_DESC_LEADERBOARD_DOM": "Превосходство - список лидеров",
"MPUI_DOMINATION": "Превосходство",
"MPUI_DOMINATION_CAPS": "ПРЕВОСХОДСТВО",
"MPUI_ENABLED_NO_BLEED": "Без ограничений",
"MPUI_FRIENDY_FIRE_PRE": "Огонь по своим:",
"MPUI_HARDCORE_PRE": "Хардкор:",
"MPUI_HARDPOINT": "Каждый за себя",
"MPUI_HITS": "Попадания",
"MPUI_LOSING_CAPS": "ТЕРЯЕМ",
"MPUI_LOSSES": "Поражения",
"MPUI_MISSES": "Промахи",
"MPUI_N_XP": "&&1 XP",
"MPUI_RANK": "Уровень",
"MPUI_RATIO": "У/С",
"MPUI_RECOMMENDEDPLAYERS": "Рекоменд. лимит игроков: &&1",
"MPUI_ROUND_SWITCH_PRE": "Смена сторон:",
"MPUI_RULES_FRIENDLY_FIRE": "Огонь по своим:",
"MPUI_RULES_HARDCORE": "Хардкор:",
"MPUI_RULES_INSTANT": "Сразу",
"MPUI_RULES_OLDSCHOOL": "Режим \"Старая школа\":",
"MPUI_RULES_ROUND_SWITCH": "Смена сторон:",
"MPUI_RULES_SHARED": "Урон обоим",
"MPUI_RULES_SPECTATING": "Вид от:",
"MPUI_RULES_TOGGLE_ROTATION_OFF": "Отключить ротацию карт",
"MPUI_RULES_TOGGLE_ROTATION_ON": "Включить ротацию карт",
"MPUI_RUSSIAN": "Русский",
"MPUI_SPECTATE": "Смотреть",
"MPUI_SPECTATING_PRE": "Вид от:",
"MPUI_SPECTATOR": "Зритель",
"MPUI_WAR_HARDCORE": "Командный бой. Хардкор",
"MPUI_WAR_RECIPE_DESC": "Версия на основе режима Командный бой",
"MPUI_WINLOSSRATIO": "Победы/поражения",
"MPUI_WINS": "Победы",
"MPUI_YES": "Да",
"MP_DEATHMATCH": "Каждый за себя",
"MP_DEATHMATCH_TIMER": "Каждый за себя - &&1",
"MP_HALFTIME": "Конец раунда",
"MP_IED_PRESS_LEFT_TRIGGER_TO_DETONATE": "Нажмите левый триггер, чтобы активировать детонатор",
"MP_INVALIDGAMETYPE": "Неверный режим игры.",
"MP_JOINED_ONE": "%s присоединяется к первому отряду",
"MP_KILLCAM": "ПОВТОР",
"MP_MATCH_BEGINS_IN_VAL": "Бой начнется через &&1 с",
"MP_MELEE": "Холодное",
"MP_NOSPECTATORCALLVOTE": "Зрители не могут начинать голосование.",
"MP_NOSPECTATORVOTE": "Зрители не могут голосовать.",
"MP_PLAY_TYPE": "Выберите режим",
"MP_SWITCHING_SIDES": "СМЕНА СТОРОН",
"MP_TEAMKILL": "Убийство своего",
"MP_THE_SERVER_DOES_NOT_HAVE": "На сервере нет этой карты.",
"MP_VOTE_GAMETYPE": "Режим игры: &&1",
"MP_VOTE_TEMPBAN": "Временно забанить: &&1",
"MP_ZOOM": "^3[{+ads}]^7 Смена кратности",
"PLATFORM_EMBLEM_LAYER_DOWN_KBM": "Опустить слой",
"PLATFORM_EMBLEM_LAYER_UP_KBM": "Поднять слой",
"PLATFORM_FOV": "Угол обзора (FOV)",
"PLATFORM_HOLD_TO_SKIP": "Удерж. \u0001 для пропуска",
"PLATFORM_HOLD_TO_SKIP_KEYBOARD": "Удерж. ^2ENTER^7 для пропуска\n",
"PLATFORM_LOW_AMMO_NO_RELOAD": "Мало боеприпасов",
"PLATFORM_LOW_AMMO_NO_RELOAD_CAPS": "МАЛО БОЕПРИПАСОВ",
"PLATFORM_MDAO": "Затенение методом MDAO",
"PLATFORM_PLAY_ONLINE": "Сетевая игра",
"PLATFORM_RELOAD_CAPS": "ПЕРЕЗАРЯДКА",
"PLATFORM_SSAO": "Затенение методом SSAO",
"PLATFORM_UI_ADAPTER": "Видеокарта",
"PLATFORM_UI_ANTI_ALIASING_OPTIONS": "Настройки сглаживания",
"PLATFORM_UI_CACHED_SPOT_SHADOWS": "Кэшировать точечные тени",
"PLATFORM_UI_CACHED_SUN_SHADOWS": "Кэшировать тени от солнца",
"PLATFORM_UI_DEDICATED_VIDEO_MEMORY": "Загрузка видеопамяти",
"PLATFORM_UI_HEADER_PLAY_MP_CAPS": "СЕТЕВАЯ ИГРА",
"PLATFORM_UI_IMAGE_QUALITY": "Разрешение картинки",
"PLATFORM_UI_NATIVE_RENDER_RESOLUTION": "Отрисовка в родном разрешении",
"PLATFORM_UI_NATIVE_RENDER_RESOLUTION_OPTION": "Родное (&&1 x &&2)",
"PLATFORM_UI_POST_AA": "Постобработка",
"PLATFORM_UI_SHADER_PRELOAD_AFTER_CINEMATIC": "Во время роликов",
"PLATFORM_UI_VIDEO_ADAPTER": "Видеокарта",
"PLATFORM_YES": "Да",
"PRESENCE_CONF_TDM": "Убийство подтверждено",
"PRESENCE_C_DOM": "Превосходство. Классика",
"PRESENCE_C_DOM_SYSTEM_DIALOG": "Превосходство, классика",
"PRESENCE_FFA": "Каждый за себя",
"PRESENCE_FFA_SYSTEM_DIALOG": "Каждый за себя",
"PRESENCE_HC_DOM": "Превосходство. Хардкор",
"PRESENCE_HC_FFA": "Каждый за себя. Хардкор",
"PRESENCE_HC_FFA_SYSTEM_DIALOG": "Каждый за себя, хардкор",
"SPLASHES_CAPTURE": "Плеймейкер!",
"SPLASHES_LAST_MAN_DEFUSE": "Крепкая хватка",
"SPLASHES_TAG_COLLECTOR": "Инкассатор",
"XBOXLIVE_DESTROYPARTY": "Распустить команду?"
}

View File

@ -0,0 +1,15 @@
{
"LOCALE_ENGLISH": "英语",
"LOCALE_ENGLISH_SAFE": "英语 (审查制度)",
"LOCALE_FRENCH": "法语",
"LOCALE_GERMAN": "德语",
"LOCALE_ITALIAN": "意大利语",
"LOCALE_JAPANESE_PARTIAL": "日语(部分)",
"LOCALE_KOREAN": "韩语",
"LOCALE_POLISH": "波兰语",
"LOCALE_PORTUGUESE": "葡萄牙语",
"LOCALE_RUSSIAN": "俄语",
"LOCALE_SIMPLIFIED_CHINESE": "简体中文",
"LOCALE_SPANISH": "西班牙语",
"LOCALE_TRADITIONAL_CHINESE": "繁体中文"
}

View File

@ -0,0 +1,15 @@
{
"LOCALE_ENGLISH": "Inglés",
"LOCALE_ENGLISH_SAFE": "Inglés (censura)",
"LOCALE_FRENCH": "Français",
"LOCALE_GERMAN": "Alemán",
"LOCALE_ITALIAN": "Italiano",
"LOCALE_JAPANESE_PARTIAL": "Japonés (parcial)",
"LOCALE_KOREAN": "Coreano",
"LOCALE_POLISH": "Polaco",
"LOCALE_PORTUGUESE": "Portugués",
"LOCALE_RUSSIAN": "Ruso",
"LOCALE_SIMPLIFIED_CHINESE": "Chino simplificado",
"LOCALE_SPANISH": "Español",
"LOCALE_TRADITIONAL_CHINESE": "Chino tradicional"
}

View File

@ -0,0 +1,15 @@
{
"LOCALE_ENGLISH": "英文",
"LOCALE_ENGLISH_SAFE": "英文 (審查制度)",
"LOCALE_FRENCH": "法文",
"LOCALE_GERMAN": "德文",
"LOCALE_ITALIAN": "義大利文",
"LOCALE_JAPANESE_PARTIAL": "日文(部份)",
"LOCALE_KOREAN": "韓文",
"LOCALE_POLISH": "波蘭文",
"LOCALE_PORTUGUESE": "葡萄牙文",
"LOCALE_RUSSIAN": "俄文",
"LOCALE_SIMPLIFIED_CHINESE": "簡體中文",
"LOCALE_SPANISH": "西班牙文",
"LOCALE_TRADITIONAL_CHINESE": "繁體中文"
}

View File

@ -32,7 +32,7 @@ namespace filesystem
{
static const auto* loc_language = game::Dvar_FindVar("loc_language");
const auto id = loc_language->current.integer;
return id == 5 || id == 6 || id == 8 || id == 9 || id == 10 || id == 11 || id == 12 || id == 13 || id == 15;
return id == 5 || id == 6 || id == 8 || id == 9 || id == 10 || id == 11 || id == 13 || id == 15;
}
void fs_startup_stub(const char* name)

View File

@ -30,6 +30,8 @@
#include <utils/io.hpp>
#include <utils/binary_resource.hpp>
#include "steam/steam.hpp"
namespace ui_scripting
{
namespace
@ -344,6 +346,11 @@ namespace ui_scripting
::game::Dvar_SetFromStringByNameFromSource("virtualLobbyPresentable", "1", ::game::DvarSetSource::DVAR_SOURCE_INTERNAL);
};
game_type["getcurrentgamelanguage"] = [](const game&)
{
return steam::SteamApps()->GetCurrentGameLanguage();
};
auto server_list_table = table();
lua["serverlist"] = server_list_table;

View File

@ -12,7 +12,7 @@ function startupdatecheck(popup, autoclose)
end
if (not updater.getupdatecheckstatus()) then
popup.text:setText("Error: " .. updater.getlasterror())
popup.text:setText(Engine.Localize("@MENU_ERROR") .. ": " .. updater.getlasterror())
return
end
@ -22,13 +22,13 @@ function startupdatecheck(popup, autoclose)
return
end
popup.text:setText("No updates available")
popup.text:setText(Engine.Localize("UPDATER_POPUP_NO_UPDATES_AVAILABLE"))
return
end
LUI.yesnopopup({
title = "NOTICE",
text = "An update is available, proceed with installation?",
title = Engine.Localize("@MENU_NOTICE"),
text = Engine.Localize("UPDATER_POPUP_AVAILABLE_UPDATE_TEXT"),
callback = function(result)
if (result) then
startupdatedownload(popup, autoclose)
@ -55,7 +55,7 @@ function startupdatedownload(popup, autoclose)
end
file = previousfile
popup.text:setText("Downloading file " .. updater.getcurrentfile() .. "...")
popup.text:setText(Engine.Localize("@EXE_DOWNLOADING") .. " " .. updater.getcurrentfile() .. "...")
end)
Engine.GetLuiRoot():registerEventHandler("update_done", function(element, event)
@ -66,17 +66,17 @@ function startupdatedownload(popup, autoclose)
end
if (not updater.getupdatedownloadstatus()) then
popup.text:setText("Error: " .. updater.getlasterror())
popup.text:setText(Engine.Localize("@MENU_ERROR") .. ": " .. updater.getlasterror())
return
end
popup.text:setText("Update successful")
popup.text:setText(Engine.Localize("UPDATER_POPUP_SUCCESSFUL"))
if (updater.isrestartrequired()) then
LUI.confirmationpopup({
title = "RESTART REQUIRED",
text = "Update requires restart",
buttontext = "RESTART",
title = Engine.Localize("@MENU_CCS_RESTART_CONFIRMATION_TITLE"),
text = Engine.Localize("UPDATER_POPUP_RESTART_POPUP_TEXT"),
buttontext = Engine.Localize("@MENU_CCS_RESTART_BUTTON_LABEL"),
callback = function()
updater.relaunch()
end
@ -97,7 +97,7 @@ function updaterpopup(oncancel)
return LUI.openpopupmenu("generic_waiting_popup_", {
oncancel = oncancel,
withcancel = true,
text = "Checking for updates..."
text = Engine.Localize("UPDATER_POPUP_CHECKING_FOR_UPDATES")
})
end

View File

@ -25,12 +25,12 @@ namespace steam
const char* apps::GetCurrentGameLanguage()
{
return "english";
return language;
}
const char* apps::GetAvailableGameLanguages()
{
return "english";
return language;
}
bool apps::BIsSubscribedApp(unsigned int appID)

View File

@ -1,5 +1,10 @@
#pragma once
#include "component/console.hpp"
#include <utils/io.hpp>
#define LANGUAGE_FILE "players2/default/language"
namespace steam
{
class apps
@ -7,6 +12,24 @@ namespace steam
public:
~apps() = default;
char language[0x30] = { 0 };
apps()
{
std::string content;
if (::utils::io::read_file(LANGUAGE_FILE, &content))
{
#if DEBUG
console::info("Language switched to \"%s\".\n", content.data());
#endif
strcpy_s(language, sizeof(language), content.data());
return;
}
// default to english if no file is found
strcpy_s(language, sizeof(language), "english");
}
virtual bool BIsSubscribed();
virtual bool BIsLowViolence();
virtual bool BIsCybercafe();