diff --git a/data/fonts/noto_sans_arabic.ttf b/data/fonts/arabic.ttf similarity index 100% rename from data/fonts/noto_sans_arabic.ttf rename to data/fonts/arabic.ttf diff --git a/data/fonts/chinese.ttf b/data/fonts/chinese.ttf new file mode 100644 index 00000000..1099b177 Binary files /dev/null and b/data/fonts/chinese.ttf differ diff --git a/data/fonts/japanese.ttf b/data/fonts/japanese.ttf new file mode 100644 index 00000000..2db73b47 Binary files /dev/null and b/data/fonts/japanese.ttf differ diff --git a/data/fonts/korean.ttf b/data/fonts/korean.ttf new file mode 100644 index 00000000..f2820647 Binary files /dev/null and b/data/fonts/korean.ttf differ diff --git a/data/fonts/noto_sans_kr.otf b/data/fonts/noto_sans_kr.otf deleted file mode 100644 index d8fe0a1f..00000000 Binary files a/data/fonts/noto_sans_kr.otf and /dev/null differ diff --git a/data/fonts/noto_sans_sc.otf b/data/fonts/noto_sans_sc.otf deleted file mode 100644 index 82030c37..00000000 Binary files a/data/fonts/noto_sans_sc.otf and /dev/null differ diff --git a/data/ui_scripts/settings/language.lua b/data/ui_scripts/settings/language.lua index d0d80626..f6db3917 100644 --- a/data/ui_scripts/settings/language.lua +++ b/data/ui_scripts/settings/language.lua @@ -116,6 +116,61 @@ if (lang == 5 or lang == 6 or lang == 17) then } end +local arabicfont = RegisterFont("fonts/arabic.ttf", 30) +local koreanfont = RegisterFont("fonts/korean.ttf", 30) +local polrusfont = RegisterFont("polrus/fonts/default.otf", 30) +local japanesefont = RegisterFont("fonts/japanese.ttf", 30) +local chinesefont = RegisterFont("fonts/chinese.ttf", 30) + +local function setchinesefont(lang) + if (lang ~= CoD.Language.Traditional_chinese and lang ~= CoD.Language.Simplified_chinese) then + return + end + + LUI.MenuGenericButtons.ButtonLabelFont.Font = chinesefont + LUI.MenuGenericButtons.ButtonLabelFont.Height = 22 + overrideyoffset = 1 +end + +local function setjapanesefont(lang) + if (lang ~= CoD.Language.Japanese_full and lang ~= CoD.Language.Japanese_partial) then + return + end + + LUI.MenuGenericButtons.ButtonLabelFont.Font = japanesefont + LUI.MenuGenericButtons.ButtonLabelFont.Height = 18 + overrideyoffset = 1 +end + +local function setkoreanfont(lang) + if (lang ~= CoD.Language.Korean) then + return + end + + LUI.MenuGenericButtons.ButtonLabelFont.Font = koreanfont + LUI.MenuGenericButtons.ButtonLabelFont.Height = 25 + overrideyoffset = 1 +end + +local function setarabicfont(lang) + if (lang ~= CoD.Language.Arabic) then + return + end + + LUI.MenuGenericButtons.ButtonLabelFont.Font = arabicfont + LUI.MenuGenericButtons.ButtonLabelFont.Height = 28 + overrideyoffset = 0 +end + +local function setpolrusfont(lang) + if (lang ~= CoD.Language.Russian and lang ~= CoD.Language.Russian_partial and lang ~= CoD.Language.Polish) then + return + end + + LUI.MenuGenericButtons.ButtonLabelFont.Font = polrusfont + overrideyoffset = nil +end + LUI.MenuBuilder.registerType("choose_language_menu", function(a1) local menu = LUI.MenuTemplate.new(a1, { menu_title = "@LUA_MENU_CHOOSE_LANGUAGE", @@ -131,22 +186,22 @@ LUI.MenuBuilder.registerType("choose_language_menu", function(a1) local prevheight = LUI.MenuGenericButtons.ButtonLabelFont.Height local id = languages[i].id - if (not usingspeciallanguage()) then - if (id == 5 or id == 6 or id == 17) then - LUI.MenuGenericButtons.ButtonLabelFont.Font = RegisterFont("polrus/fonts/default.otf", 30) - elseif (id >= 8 and id < 12) then - LUI.MenuGenericButtons.ButtonLabelFont.Font = RegisterFont("fonts/noto_sans_sc.otf", 30) - overrideyoffset = 0 - LUI.MenuGenericButtons.ButtonLabelFont.Height = 17 - elseif (id == 12) then - LUI.MenuGenericButtons.ButtonLabelFont.Font = RegisterFont("fonts/noto_sans_arabic.ttf", 30) - LUI.MenuGenericButtons.ButtonLabelFont.Height = 28 - overrideyoffset = 0 - elseif (id == 15) then - LUI.MenuGenericButtons.ButtonLabelFont.Font = RegisterFont("fonts/noto_sans_kr.otf", 30) - LUI.MenuGenericButtons.ButtonLabelFont.Height = 18 - overrideyoffset = 0 - end + local lang = Engine.GetCurrentLanguage() + + if (lang == CoD.Language.Traditional_chinese or lang == CoD.Language.Simplified_chinese) then + setjapanesefont(id) + setkoreanfont(id) + setarabicfont(id) + elseif (lang == CoD.Language.Japanese_full or lang == CoD.Language.Japanese_partial) then + setchinesefont(id) + setkoreanfont(id) + setarabicfont(id) + elseif (lang ~= CoD.Language.Arabic and lang ~= CoD.Language.Korean) then + setpolrusfont(id) + setchinesefont(id) + setjapanesefont(id) + setkoreanfont(id) + setarabicfont(id) end local button = menu:AddButton("", function()