Fonts/localizations: refinements
* Use font replacements from csv * Add 'Apply built-in fonts' button for languages with fallback fonts * Arabic localization: Workaround for forced RTL text conversion * Czech localization: Fixes * Russian Partial localization: Fix Y offset in built-in fonts
This commit is contained in:
parent
3dee271fb2
commit
72eda99c65
@ -10,129 +10,169 @@ game:addlocalizedstring("MENU_japanese_full", "日本語")
|
||||
game:addlocalizedstring("MENU_japanese_partial", "日本語(一部)")
|
||||
game:addlocalizedstring("MENU_traditional_chinese", "繁體中文")
|
||||
game:addlocalizedstring("MENU_simplified_chinese", "简体中文")
|
||||
game:addlocalizedstring("MENU_arabic", "العربية")
|
||||
game:addlocalizedstring("MENU_czech", "České")
|
||||
game:addlocalizedstring("MENU_arabic", "ةيبرعلا")
|
||||
game:addlocalizedstring("MENU_czech", "Čeština") -- text only (English dubbing)
|
||||
game:addlocalizedstring("MENU_spanishna", "Español (América Latina)") -- text only (English dubbing)
|
||||
game:addlocalizedstring("MENU_korean", "한국어")
|
||||
game:addlocalizedstring("MENU_english_safe", "English (Safe)")
|
||||
game:addlocalizedstring("MENU_russian_partial", "Русский (Англ. озвучка)") -- text only (English dubbing)
|
||||
|
||||
LUI.addmenubutton("pc_controls", {
|
||||
index = 4,
|
||||
text = "@LUA_MENU_CHOOSE_LANGUAGE",
|
||||
description = Engine.Localize("@LUA_MENU_CHOOSE_LANGUAGE_DESC"),
|
||||
callback = function()
|
||||
LUI.FlowManager.RequestAddMenu(nil, "choose_language_menu")
|
||||
end
|
||||
index = 4,
|
||||
text = "@LUA_MENU_CHOOSE_LANGUAGE",
|
||||
description = Engine.Localize("@LUA_MENU_CHOOSE_LANGUAGE_DESC"),
|
||||
callback = function()
|
||||
LUI.FlowManager.RequestAddMenu(nil, "choose_language_menu")
|
||||
end
|
||||
})
|
||||
|
||||
local universalfont = RegisterFont("fallback/fonts/default.otf", 30)
|
||||
local universalfont = RegisterFont("fonts/mix.ttf", 30)
|
||||
|
||||
local function setuniversalfont(lang)
|
||||
LUI.MenuGenericButtons.ButtonLabelFont.Font = universalfont
|
||||
LUI.MenuGenericButtons.ButtonLabelFont.Font = universalfont
|
||||
end
|
||||
|
||||
local function togglecustomfonts()
|
||||
LUI.FlowManager.RequestAddMenu(nil, "generic_yesno_popup", false, nil, true, {
|
||||
popup_title = Engine.Localize("@MENU_CCS_RESTART_CONFIRMATION_TITLE"),
|
||||
message_text = Engine.Localize("@MENU_HDR_REBOOT_DESC"),
|
||||
yes_action = function()
|
||||
config.set("disable_custom_fonts", not config.get("disable_custom_fonts"))
|
||||
updater.relaunch()
|
||||
end
|
||||
})
|
||||
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),
|
||||
menu_width = 240,
|
||||
uppercase_title = true
|
||||
})
|
||||
local menu = LUI.MenuTemplate.new(a1, {
|
||||
menu_title = "@LUA_MENU_CHOOSE_LANGUAGE",
|
||||
menu_list_divider_top_offset = -(LUI.H1MenuTab.tabChangeHoldingElementHeight + H1MenuDims.spacing),
|
||||
menu_width = 240,
|
||||
uppercase_title = true
|
||||
})
|
||||
|
||||
local languages = Engine.GetSupportedLanguages()
|
||||
local originalfont = LUI.MenuGenericButtons.ButtonLabelFont.Font
|
||||
local languages = Engine.GetSupportedLanguages()
|
||||
local originalfont = LUI.MenuGenericButtons.ButtonLabelFont.Font
|
||||
|
||||
for i = 1, #languages do
|
||||
local id = languages[i].id
|
||||
for i = 1, #languages do
|
||||
local id = languages[i].id
|
||||
|
||||
local lang = Engine.GetCurrentLanguage()
|
||||
local lang = Engine.GetCurrentLanguage()
|
||||
|
||||
setuniversalfont(id)
|
||||
|
||||
local button = menu:AddButton("", function()
|
||||
LUI.FlowManager.RequestAddMenu(nil, "choose_language_confirm_popup", false, nil, true, {
|
||||
language = languages[i].id
|
||||
})
|
||||
end, languages[i].id == Engine.GetCurrentLanguage(), true, nil, {
|
||||
desc_text = Engine.Localize("LOCALE_" .. (languages[i].id))
|
||||
})
|
||||
if language.isasian or not language.isnonlatin() or not config.get("disable_custom_fonts") then
|
||||
setuniversalfont(id)
|
||||
end
|
||||
|
||||
local label = button:getFirstDescendentById("text_label")
|
||||
label:setText(Engine.ToUpperCase(languages[i].name))
|
||||
end
|
||||
local button = menu:AddButton("", function()
|
||||
LUI.FlowManager.RequestAddMenu(nil, "choose_language_confirm_popup", false, nil, true, {
|
||||
language = languages[i].id
|
||||
})
|
||||
end, languages[i].id == lang, true, nil, {
|
||||
desc_text = Engine.Localize("LOCALE_" .. (languages[i].id))
|
||||
})
|
||||
|
||||
LUI.MenuGenericButtons.ButtonLabelFont.Font = originalfont
|
||||
local label = button:getFirstDescendentById("text_label")
|
||||
label:setText(Engine.ToUpperCase(languages[i].name))
|
||||
end
|
||||
|
||||
LUI.Options.InitScrollingList(menu.list, nil, {
|
||||
rows = 10
|
||||
})
|
||||
LUI.MenuGenericButtons.ButtonLabelFont.Font = originalfont
|
||||
|
||||
LUI.Options.AddOptionTextInfo(menu)
|
||||
menu:AddBackButton()
|
||||
LUI.Options.InitScrollingList(menu.list, nil, {
|
||||
rows = 10
|
||||
})
|
||||
|
||||
return menu
|
||||
LUI.Options.AddOptionTextInfo(menu)
|
||||
|
||||
if language.isnonlatin() and config.get("language") ~= "czech" then
|
||||
if (config.get("disable_custom_fonts")) then
|
||||
menu:AddHelp({
|
||||
name = "add_button_helper_text",
|
||||
button_ref = "button_alt2",
|
||||
helper_text = Engine.Localize("@LUA_MENU_FALLBACK_ENABLE"),
|
||||
side = "right",
|
||||
clickable = true
|
||||
}, togglecustomfonts)
|
||||
else
|
||||
menu:AddHelp({
|
||||
name = "add_button_helper_text",
|
||||
button_ref = "button_alt2",
|
||||
helper_text = Engine.Localize("@LUA_MENU_FALLBACK_DISABLE"),
|
||||
side = "right",
|
||||
clickable = true
|
||||
}, togglecustomfonts)
|
||||
end
|
||||
end
|
||||
|
||||
menu:AddBackButton()
|
||||
|
||||
return menu
|
||||
end)
|
||||
|
||||
-- global patch
|
||||
LUI.UIButtonText.IsOffsetedLanguage = function()
|
||||
return false
|
||||
-- rup patch
|
||||
if config.get("language") == "russian_partial" and config.get("disable_custom_fonts") then
|
||||
LUI.UIButtonText.IsOffsetedLanguage = function()
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
-- pol/rus patch
|
||||
if not (config.get("disable_custom_fonts")) then
|
||||
-- global patch
|
||||
LUI.UIButtonText.IsOffsetedLanguage = function()
|
||||
return false
|
||||
end
|
||||
|
||||
if (not Engine.InFrontend()) then
|
||||
local weaponinfodef = LUI.MenuBuilder.m_definitions["WeaponInfoHudDef"]
|
||||
LUI.MenuBuilder.m_definitions["WeaponInfoHudDef"] = function(...)
|
||||
local rus = CoD.Language.Russian
|
||||
CoD.Language.Russian = 1337
|
||||
local pol = CoD.Language.Polish
|
||||
CoD.Language.Polish = 1338
|
||||
local res = weaponinfodef(...)
|
||||
CoD.Language.Russian = rus
|
||||
CoD.Language.Polish = pol
|
||||
return res
|
||||
end
|
||||
else
|
||||
local levelselectmenu = LUI.sp_menus.LevelSelectMenu
|
||||
local setupinfobox = levelselectmenu.SetupInfoBoxLeftForArcadeMode
|
||||
levelselectmenu.SetupInfoBoxLeftForArcadeMode = function(...)
|
||||
local rus = CoD.Language.Russian
|
||||
CoD.Language.Russian = 1337
|
||||
local pol = CoD.Language.Polish
|
||||
CoD.Language.Polish = 1338
|
||||
local res = setupinfobox(...)
|
||||
CoD.Language.Russian = rus
|
||||
CoD.Language.Polish = pol
|
||||
return res
|
||||
end
|
||||
end
|
||||
|
||||
-- ara/ces/pol/rus patch
|
||||
|
||||
local lang = Engine.GetCurrentLanguage()
|
||||
if (lang == 5 or lang == 6 or lang == 12 or lang == 13 or lang == 17) then
|
||||
local scale = function (size)
|
||||
return size * 720 / 1080
|
||||
end
|
||||
|
||||
CoD.TextSettings.SP_HudAmmoStatusText = {
|
||||
Font = RegisterFont("fonts/bank.ttf", 16),
|
||||
Height = 16
|
||||
}
|
||||
|
||||
CoD.TextSettings.SP_HudAmmoCounterFont = {
|
||||
Font = RegisterFont("fonts/bank.ttf", 34),
|
||||
Height = 34
|
||||
}
|
||||
|
||||
CoD.TextSettings.HudAmmoCounterFont = {
|
||||
Font = RegisterFont("fonts/bank.ttf", 105),
|
||||
Height = 64
|
||||
}
|
||||
|
||||
CoD.TextSettings.H2TitleFont = {
|
||||
Font = RegisterFont("fonts/bank.ttf", 56),
|
||||
Height = scale(56)
|
||||
}
|
||||
-- pol/rus patch
|
||||
if not Engine.InFrontend() then
|
||||
local weaponinfodef = LUI.MenuBuilder.m_definitions["WeaponInfoHudDef"]
|
||||
LUI.MenuBuilder.m_definitions["WeaponInfoHudDef"] = function(...)
|
||||
local rus = CoD.Language.Russian
|
||||
CoD.Language.Russian = 1337
|
||||
local pol = CoD.Language.Polish
|
||||
CoD.Language.Polish = 1338
|
||||
local res = weaponinfodef(...)
|
||||
CoD.Language.Russian = rus
|
||||
CoD.Language.Polish = pol
|
||||
return res
|
||||
end
|
||||
else
|
||||
local levelselectmenu = LUI.sp_menus.LevelSelectMenu
|
||||
local setupinfobox = levelselectmenu.SetupInfoBoxLeftForArcadeMode
|
||||
levelselectmenu.SetupInfoBoxLeftForArcadeMode = function(...)
|
||||
local rus = CoD.Language.Russian
|
||||
CoD.Language.Russian = 1337
|
||||
local pol = CoD.Language.Polish
|
||||
CoD.Language.Polish = 1338
|
||||
local res = setupinfobox(...)
|
||||
CoD.Language.Russian = rus
|
||||
CoD.Language.Polish = pol
|
||||
return res
|
||||
end
|
||||
end
|
||||
|
||||
-- ara/pol/rus patch
|
||||
if language.ispolrus() or language.isarabic() then
|
||||
local scale = function(size)
|
||||
return size * 720 / 1080
|
||||
end
|
||||
|
||||
CoD.TextSettings.SP_HudAmmoStatusText = {
|
||||
Font = RegisterFont("fonts/mix_gothic.ttf", 16),
|
||||
Height = 16
|
||||
}
|
||||
|
||||
CoD.TextSettings.SP_HudAmmoCounterFont = {
|
||||
Font = RegisterFont("fonts/mix_gothic.ttf", 34),
|
||||
Height = 34
|
||||
}
|
||||
|
||||
CoD.TextSettings.HudAmmoCounterFont = {
|
||||
Font = RegisterFont("fonts/mix_gothic.ttf", 105),
|
||||
Height = 64
|
||||
}
|
||||
|
||||
CoD.TextSettings.H2TitleFont = {
|
||||
Font = RegisterFont("fonts/mix_gothic.ttf", 56),
|
||||
Height = scale(56)
|
||||
}
|
||||
end
|
||||
end
|
||||
|
5
data/zone_source/h2_mod_pre_gfx.csv
Normal file
5
data/zone_source/h2_mod_pre_gfx.csv
Normal file
@ -0,0 +1,5 @@
|
||||
stringtable,font_replacements.csv
|
||||
ttf,fonts/ibmplexsansarabic-semibold_custom.ttf
|
||||
ttf,fonts/mix.ttf
|
||||
ttf,fonts/mix_gothic.ttf
|
||||
ttf,fonts/mix_open.ttf
|
|
23
data/zonetool/h2_mod_pre_gfx/font_replacements.csv
Normal file
23
data/zonetool/h2_mod_pre_gfx/font_replacements.csv
Normal file
@ -0,0 +1,23 @@
|
||||
arabic,fonts/bank.ttf,fonts/mix_gothic.ttf,
|
||||
arabic,fonts/default.otf,fonts/mix.ttf,
|
||||
arabic,fonts/defaultBold.otf,fonts/ibmplexsansarabic-semibold_custom.ttf,
|
||||
czech,fonts/bank.ttf,fonts/mix_gothic.ttf,
|
||||
czech,fonts/default.otf,fonts/mix.ttf,
|
||||
czech,fonts/defaultBold.otf,fonts/mix_open.ttf,
|
||||
japanese_full,fonts/default.otf,fonts/mix.ttf,
|
||||
japanese_full,fonts/defaultBold.otf,fonts/mix_open.ttf,
|
||||
japanese_partial,fonts/default.otf,fonts/mix.ttf,
|
||||
japanese_partial,fonts/defaultBold.otf,fonts/mix_open.ttf,
|
||||
polish,fonts/bank.ttf,fonts/mix_gothic.ttf,
|
||||
polish,fonts/default.otf,fonts/mix.ttf,
|
||||
polish,fonts/defaultBold.otf,fonts/mix_open.ttf,
|
||||
russian,fonts/bank.ttf,fonts/mix_gothic.ttf,
|
||||
russian,fonts/default.otf,fonts/mix.ttf,
|
||||
russian,fonts/defaultBold.otf,fonts/mix_open.ttf,
|
||||
russian_partial,fonts/bank.ttf,fonts/mix_gothic.ttf,
|
||||
russian_partial,fonts/default.otf,fonts/mix.ttf,
|
||||
russian_partial,fonts/defaultBold.otf,fonts/mix_open.ttf,
|
||||
simplified_chinese,fonts/default.otf,fonts/mix.ttf,
|
||||
simplified_chinese,fonts/defaultBold.otf,fonts/mix_open.ttf,
|
||||
traditional_chinese,fonts/default.otf,fonts/mix.ttf,
|
||||
traditional_chinese,fonts/defaultBold.otf,fonts/mix_open.ttf,
|
|
@ -1,23 +1,25 @@
|
||||
{
|
||||
"LOCALE_0": "إنجليزي",
|
||||
"LOCALE_1": "فرنسي",
|
||||
"LOCALE_2": "ألمانية",
|
||||
"LOCALE_3": "إيطالي",
|
||||
"LOCALE_4": "الأسبانية",
|
||||
"LOCALE_5": "الروسية",
|
||||
"LOCALE_6": "تلميع",
|
||||
"LOCALE_7": "البرتغالية",
|
||||
"LOCALE_8": "اليابانية",
|
||||
"LOCALE_9": "الياباني (جزئي)",
|
||||
"LOCALE_10": "الصينية التقليدية",
|
||||
"LOCALE_11": "الصينية المبسطة",
|
||||
"LOCALE_12": "عربي",
|
||||
"LOCALE_13": "التشيكية",
|
||||
"LOCALE_14": "الإسبانية (أمريكا اللاتينية)",
|
||||
"LOCALE_15": "الكورية",
|
||||
"LOCALE_16": "اللغة الإنجليزية (آمنة)",
|
||||
"LOCALE_17": "(جزئي) الروسية",
|
||||
"LOCALE_0": "يزيلجنإ",
|
||||
"LOCALE_1": "يسنرف",
|
||||
"LOCALE_2": "ةيناملأ",
|
||||
"LOCALE_3": "يلاطيإ",
|
||||
"LOCALE_4": "ةينابسألا",
|
||||
"LOCALE_5": "ةيسورلا",
|
||||
"LOCALE_6": "عيملت",
|
||||
"LOCALE_7": "ةيلاغتربلا",
|
||||
"LOCALE_8": "ةينابايلا",
|
||||
"LOCALE_9": ")يئزج( ينابايلا",
|
||||
"LOCALE_10": "ةيديلقتلا ةينيصلا",
|
||||
"LOCALE_11": "ةطسبملا ةينيصلا",
|
||||
"LOCALE_12": "يبرع",
|
||||
"LOCALE_13": "ةيكيشتلا",
|
||||
"LOCALE_14": ")ةينيتاللا اكيرمأ( ةينابسإلا",
|
||||
"LOCALE_15": "ةيروكلا",
|
||||
"LOCALE_16": ")ةنمآ( ةيزيلجنإلا ةغللا",
|
||||
"LOCALE_17": "ةيسورلا )يئزج(",
|
||||
"LUA_MENU_FALLBACK_DISABLE": "ةيئدبملا طوطخلا عجرتسا",
|
||||
"LUA_MENU_FALLBACK_ENABLE": "ةصّصخم طوطخ مدختسا",
|
||||
|
||||
"LUA_MENU_CAMPAIGN_UNLOCKED_ALL_TITLE": ".ﻡﺎﻬﻤﻟﺍ ﻊﻴﻤﺟ ﺢﺘﻓ",
|
||||
"LUA_MENU_CANCEL_UNLOCK_CAPS": "ﺢﺘﻔﻟﺍ ءﺎﻐﻟﺇ"
|
||||
"LUA_MENU_CAMPAIGN_UNLOCKED_ALL_TITLE": "ﻓﺘﺢ ﺟﻤﻴﻊ ﺍﻟﻤﻬﺎﻡ.",
|
||||
"LUA_MENU_CANCEL_UNLOCK_CAPS": "ﺇﻟﻐﺎء ﺍﻟﻔﺘﺢ"
|
||||
}
|
@ -17,6 +17,8 @@
|
||||
"LOCALE_15": "Korejština",
|
||||
"LOCALE_16": "Angličtina (bezrizikový)",
|
||||
"LOCALE_17": "Ruština (částečně)",
|
||||
"LUA_MENU_FALLBACK_DISABLE": "Používat výchozí písma",
|
||||
"LUA_MENU_FALLBACK_ENABLE": "Používat písma h2-mod",
|
||||
"PRESENCE_SP_AF_CAVES": "Jako za starých časů",
|
||||
"PRESENCE_SP_AF_CAVES_SYSTEM_DIALOG": "Jako za starých časů",
|
||||
"MENU_SP_AF_CAVES": "Jako za starých časů",
|
||||
@ -210,7 +212,6 @@
|
||||
"CONTINGENCY_LINE3": "Sgt. Gary 'Roach' Sanderson",
|
||||
"CONTINGENCY_LINE4": "Task Force 141",
|
||||
"CONTINGENCY_LINE5": "14 mil SV od Petropavlovska, Rusko",
|
||||
"CONTINGENCY_TIME_TO_ENTER_SUB": "CONTINGENCY_TIME_TO_ENTER_SUB",
|
||||
"CONTINGENCY_OBJ_DEFEND_SUB": "Drž nepřátele od ponorky.",
|
||||
"CONTINGENCY_OBJ_ENTER_SUB": "Dostaň se k ponorce dříve než odpluje.",
|
||||
"CONTINGENCY_OBJ_CONTROL_SUB": "Zmocni se ponorky.",
|
||||
@ -569,7 +570,7 @@
|
||||
"LUA_MENU_DEATHS_CAPS": "ÚMRTÍ",
|
||||
"LUA_MENU_DEFAULT": "Základní",
|
||||
"LUA_MENU_DEFENDS": "Obrana",
|
||||
"LUA_MENU_DEFENDS_CAPS": "OBRANA",
|
||||
"LUA_MENU_DEFENDS_CAPS": "OBRANA",
|
||||
"LUA_MENU_DIFFICULTY": "Obtížnost",
|
||||
"LUA_MENU_DIFFICULTYCOMPLETED": "Dokončeno na",
|
||||
"LUA_MENU_DISABLED": "Vypnuto",
|
||||
@ -4061,6 +4062,7 @@
|
||||
"ELEVATOR_USE_HINT": "Stiskni a podrž &&1 pro použití výtahu.",
|
||||
"ELEVATOR_FLOOR_SELECT_HINT": "Stiskni a podrž &&1 pro výběr podlaží.",
|
||||
"MENU_PASSWORD2": "Heslo:",
|
||||
"PLATFORM_SAVE_AND_QUIT": "ULOŽIT A UKONČIT",
|
||||
"PLATFORM_QUIT": "Ukončit",
|
||||
"PLATFORM_BACK": "Zpět",
|
||||
"PLATFORM_YES": "Ano",
|
||||
@ -4574,9 +4576,7 @@
|
||||
"MENU_WARNING": "VAROVÁNÍ",
|
||||
"MENU_CAPTURE_LIMIT": "Limit ukořistění: ",
|
||||
"MENU_CONTINUE_RESTART": "Pokračovat v restartu?",
|
||||
"MENU_RESTART_TEXT_1": "Pokud nyní restartuješ, ztratíš ",
|
||||
"MENU_RESTART_TEXT_2": "veškerý postup získaný ",
|
||||
"MENU_RESTART_TEXT_3": "v této misi.",
|
||||
"MENU_RESTART_TEXT_1": "Pokud nyní restartuješ, ztratíš veškerý postup získaný v této misi.",
|
||||
"MENU_CONTINUE_SAVING": "Pokračovat v uložení?",
|
||||
"MENU_SAVEQUIT_TEXT_1": "Pokud nyní uložíš hru, ",
|
||||
"MENU_SAVEQUIT_TEXT_2": "ztratíš veškerý postup ",
|
||||
|
@ -12,11 +12,13 @@
|
||||
"LOCALE_10": "Traditional Chinese",
|
||||
"LOCALE_11": "Simplified Chinese",
|
||||
"LOCALE_12": "Arabic",
|
||||
"LOCALE_13": "Czech",
|
||||
"LOCALE_13": "Czech\nOriginally translated by Ctihy\nPorted and corrected by VladWinner",
|
||||
"LOCALE_14": "Spanish (Latin America)",
|
||||
"LOCALE_15": "Korean",
|
||||
"LOCALE_16": "English (Safe)",
|
||||
"LOCALE_17": "Russian (Partial)",
|
||||
"LUA_MENU_FALLBACK_DISABLE": "Apply built-in fonts",
|
||||
"LUA_MENU_FALLBACK_ENABLE": "Apply h2-mod fonts",
|
||||
|
||||
"UPDATER_POPUP_NO_UPDATES_AVAILABLE": "No updates available",
|
||||
"MENU_CCS_NEW_PATCH_NOTICE": "An update is available, proceed with installation?",
|
||||
|
@ -17,6 +17,8 @@
|
||||
"LOCALE_15": "Coréen",
|
||||
"LOCALE_16": "Anglais (sécuritaire)",
|
||||
"LOCALE_17": "Russe (partiel)",
|
||||
"LUA_MENU_FALLBACK_DISABLE": "Restaurer les polices par défaut",
|
||||
"LUA_MENU_FALLBACK_ENABLE": "Utiliser les polices de h2-mod",
|
||||
|
||||
"UPDATER_POPUP_NO_UPDATES_AVAILABLE": "Aucune mise à jour disponible",
|
||||
"MENU_CCS_NEW_PATCH_NOTICE": "Une mise à jour est disponible,\npoursuivre l'installation ?",
|
||||
|
@ -17,6 +17,8 @@
|
||||
"LOCALE_15": "Koreanisch",
|
||||
"LOCALE_16": "Englisch (Sicher)",
|
||||
"LOCALE_17": "Russisch (Untertitelt)",
|
||||
"LUA_MENU_FALLBACK_DISABLE": "Auf Vorgabeschriften zurücksetzen",
|
||||
"LUA_MENU_FALLBACK_ENABLE": "h2-mod Schriften verwenden",
|
||||
|
||||
"LUA_MENU_CAMPAIGN_UNLOCKED_ALL_TITLE": "Alle Missionen freischalten",
|
||||
"LUA_MENU_CANCEL_UNLOCK_CAPS": "Freischalten abbrechen"
|
||||
|
@ -17,6 +17,8 @@
|
||||
"LOCALE_15": "Coreano",
|
||||
"LOCALE_16": "Inglese (sicuro)",
|
||||
"LOCALE_17": "Russo (parziale)",
|
||||
"LUA_MENU_FALLBACK_DISABLE": "Ripristina caratteri predefiniti",
|
||||
"LUA_MENU_FALLBACK_ENABLE": "Usare caratteri di h2-mod",
|
||||
|
||||
"LUA_MENU_CAMPAIGN_UNLOCKED_ALL_TITLE": "Sblocca tutte le missioni",
|
||||
"LUA_MENU_CANCEL_UNLOCK_CAPS": "Annulla sblocco",
|
||||
|
@ -17,6 +17,8 @@
|
||||
"LOCALE_15": "韓国語",
|
||||
"LOCALE_16": "英語(検閲)",
|
||||
"LOCALE_17": "ロシア語(一部)",
|
||||
"LUA_MENU_FALLBACK_DISABLE": "デフォルトに戻す",
|
||||
"LUA_MENU_FALLBACK_ENABLE": "h2-mod フォントを使用します",
|
||||
|
||||
"LUA_MENU_CAMPAIGN_UNLOCKED_ALL_TITLE": "全ミッションをアンロック",
|
||||
"LUA_MENU_CANCEL_UNLOCK_CAPS": "アンロックをキャンセル"
|
||||
|
@ -17,6 +17,8 @@
|
||||
"LOCALE_15": "韓国語",
|
||||
"LOCALE_16": "英語(検閲)",
|
||||
"LOCALE_17": "ロシア語(一部)",
|
||||
"LUA_MENU_FALLBACK_DISABLE": "デフォルトに戻す",
|
||||
"LUA_MENU_FALLBACK_ENABLE": "h2-mod フォントを使用します",
|
||||
|
||||
"LUA_MENU_CAMPAIGN_UNLOCKED_ALL_TITLE": "全ミッションをアンロック",
|
||||
"LUA_MENU_CANCEL_UNLOCK_CAPS": "アンロックをキャンセル"
|
||||
|
@ -17,6 +17,8 @@
|
||||
"LOCALE_15": "한국어",
|
||||
"LOCALE_16": "영어(검열)",
|
||||
"LOCALE_17": "러시아어(일부)",
|
||||
"LUA_MENU_FALLBACK_DISABLE": "기본 글꼴로 되돌리기",
|
||||
"LUA_MENU_FALLBACK_ENABLE": "h2-mod 글꼴 사용",
|
||||
|
||||
"LUA_MENU_CAMPAIGN_UNLOCKED_ALL_TITLE": "모든 임무 잠금 해제",
|
||||
"LUA_MENU_CANCEL_UNLOCK_CAPS": "잠금 해제 취소"
|
||||
|
@ -17,6 +17,8 @@
|
||||
"LOCALE_15": "Koreański",
|
||||
"LOCALE_16": "Angielski (cenzuralny)",
|
||||
"LOCALE_17": "Rosyjski (częściowy)",
|
||||
"LUA_MENU_FALLBACK_DISABLE": "Przywróć wbudowane czcionki",
|
||||
"LUA_MENU_FALLBACK_ENABLE": "Aplikuj h2-mod czcionki",
|
||||
|
||||
"LUA_MENU_CAMPAIGN_UNLOCKED_ALL_TITLE": "Odblokuj wszystkie misje",
|
||||
"LUA_MENU_CANCEL_UNLOCK_CAPS": "Anuluj odblokowanie"
|
||||
|
@ -17,6 +17,8 @@
|
||||
"LOCALE_15": "Coreano",
|
||||
"LOCALE_16": "Inglês (Censurado)",
|
||||
"LOCALE_17": "Russo (Parcial)",
|
||||
"LUA_MENU_FALLBACK_DISABLE": "Repor fontes predefinidas",
|
||||
"LUA_MENU_FALLBACK_ENABLE": "Usar fontes do h2-mod",
|
||||
|
||||
"LUA_MENU_CAMPAIGN_UNLOCKED_ALL_TITLE": "Desbloquear todas as missões",
|
||||
"LUA_MENU_CANCEL_UNLOCK_CAPS": "Cancelar desbloqueio"
|
||||
|
@ -17,6 +17,8 @@
|
||||
"LOCALE_15": "Корейский",
|
||||
"LOCALE_16": "Английский цензурный",
|
||||
"LOCALE_17": "Русский (английская озвучка)",
|
||||
"LUA_MENU_FALLBACK_DISABLE": "Вернуться к встроенным шрифтам",
|
||||
"LUA_MENU_FALLBACK_ENABLE": "Применить шрифты от h2-mod",
|
||||
|
||||
"UPDATER_POPUP_NO_UPDATES_AVAILABLE": "У вас установлены все последние обновления",
|
||||
"MENU_CCS_NEW_PATCH_NOTICE": "Доступно обновление клиента игры,\nначать установку сейчас?",
|
||||
|
@ -17,6 +17,8 @@
|
||||
"LOCALE_15": "Корейский",
|
||||
"LOCALE_16": "Английский цензурный",
|
||||
"LOCALE_17": "Русский (английская озвучка)",
|
||||
"LUA_MENU_FALLBACK_DISABLE": "Вернуться к встроенным шрифтам",
|
||||
"LUA_MENU_FALLBACK_ENABLE": "Применить шрифты от h2-mod",
|
||||
|
||||
"UPDATER_POPUP_NO_UPDATES_AVAILABLE": "У вас установлены все последние обновления",
|
||||
"MENU_CCS_NEW_PATCH_NOTICE": "Доступно обновление клиента игры,\nначать установку сейчас?",
|
||||
|
@ -17,6 +17,8 @@
|
||||
"LOCALE_15": "韩语",
|
||||
"LOCALE_16": "英语 (审查制度)",
|
||||
"LOCALE_17": "俄语(拉丁美洲)",
|
||||
"LUA_MENU_FALLBACK_DISABLE": "恢复为默认字体",
|
||||
"LUA_MENU_FALLBACK_ENABLE": "使用 h2-mod 字体",
|
||||
|
||||
"LUA_MENU_CAMPAIGN_UNLOCKED_ALL_TITLE": "解锁全部任务",
|
||||
"LUA_MENU_CANCEL_UNLOCK_CAPS": "取消解锁"
|
||||
|
@ -17,6 +17,8 @@
|
||||
"LOCALE_15": "Coreano",
|
||||
"LOCALE_16": "Inglés (censura)",
|
||||
"LOCALE_17": "Ruso (parcial)",
|
||||
"LUA_MENU_FALLBACK_DISABLE": "Restaurar tipografías predeterminadas",
|
||||
"LUA_MENU_FALLBACK_ENABLE": "Usar tipografías de h2-mod",
|
||||
|
||||
"LUA_MENU_CAMPAIGN_UNLOCKED_ALL_TITLE": "Desbloquear todas las misiones",
|
||||
"LUA_MENU_CANCEL_UNLOCK_CAPS": "Cancelar desbloqueo"
|
||||
|
@ -17,6 +17,8 @@
|
||||
"LOCALE_15": "Coreano",
|
||||
"LOCALE_16": "Inglés (censura)",
|
||||
"LOCALE_17": "Ruso (parcial)",
|
||||
"LUA_MENU_FALLBACK_DISABLE": "Restaurar tipografías predeterminadas",
|
||||
"LUA_MENU_FALLBACK_ENABLE": "Usar tipografías de h2-mod",
|
||||
|
||||
"LUA_MENU_CAMPAIGN_UNLOCKED_ALL_TITLE": "Desbloquear todas las misiones",
|
||||
"LUA_MENU_CANCEL_UNLOCK_CAPS": "Cancelar desbloqueo"
|
||||
|
@ -17,6 +17,8 @@
|
||||
"LOCALE_15": "韓文",
|
||||
"LOCALE_16": "英文 (審查制度)",
|
||||
"LOCALE_17": "俄文(部份)",
|
||||
"LUA_MENU_FALLBACK_DISABLE": "還原為預設字型",
|
||||
"LUA_MENU_FALLBACK_ENABLE": "使用 h2-mod 字型",
|
||||
|
||||
"LUA_MENU_CAMPAIGN_UNLOCKED_ALL_TITLE": "解鎖所有任務",
|
||||
"LUA_MENU_CANCEL_UNLOCK_CAPS": "取消解鎖"
|
||||
|
@ -32,6 +32,7 @@ namespace config
|
||||
|
||||
std::unordered_map<std::string, field_definition_t> field_definitions =
|
||||
{
|
||||
{define_field("disable_custom_fonts", field_type::boolean, false)},
|
||||
{define_field("language", field_type::string, language::get_default_language(), language::is_valid_language)},
|
||||
};
|
||||
}
|
||||
|
@ -82,6 +82,12 @@ namespace fonts
|
||||
loaded = true;
|
||||
auto& replacements = get_font_replacements();
|
||||
|
||||
const auto disabled = config::get<bool>("disable_custom_fonts");
|
||||
if (disabled.has_value() && disabled.value() && language::current() != game::LANGUAGE_CZECH)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
const auto table = get_font_replacements_table();
|
||||
if (table == nullptr)
|
||||
{
|
||||
|
@ -234,6 +234,14 @@ namespace ui_scripting
|
||||
lua["io"]["readfile"] = filesystem::safe_io_func<std::string>(
|
||||
static_cast<std::string(*)(const std::string&)>(utils::io::read_file));
|
||||
|
||||
auto language_table = table();
|
||||
language_table["isnonlatin"] = language::is_non_latin;
|
||||
language_table["ispolrus"] = language::is_polrus;
|
||||
language_table["isarabic"] = language::is_arabic;
|
||||
language_table["isasian"] = language::is_asian;
|
||||
|
||||
lua["language"] = language_table;
|
||||
|
||||
using game = table;
|
||||
auto game_type = game();
|
||||
lua["game"] = game_type;
|
||||
|
Loading…
Reference in New Issue
Block a user