// run before execing font cfg files (e.g. font-xolonium.cfg) and after switching language
-// pick a correct cjk font variant by locale
-// jp variant by default (for non-cjk languages)
-set font_cjk_variant ""
-
-// medium weight fits the game well
-set font_cjk_weight Medium
-
-// font variants mapped by locale
-set font_cjk_variant_zh_CN sc
-set font_cjk_variant_zh_HK hk
-set font_cjk_variant_zh_TW tc
-set font_cjk_variant_ja_JP ""
-set font_cjk_variant_ko kr
-
-// this won't error expanding unset cvar for non-cjk locale, keeping default for non-cjk languages
-alias font_cjk_pickvariant rpn /font_cjk_variant /font_cjk_variant_${prvm_language} load =
-font_cjk_pickvariant
+// cjk font variants by locale:
+// zh_CN sc
+// zh_HK hk
+// zh_TW tc
+// ja_JP jp
+// ko kr
// use this cvar in loadfont commands
-set font_cjk fonts/NotoSansCJK${font_cjk_variant}-${font_cjk_weight}.otf
-
+set font_cjk fonts/NotoSansCJK${font_cjk_variant}-Medium.otf
// must be loaded AFTER config.cfg
set menu_font_cfg font-xolonium.cfg
-// pick a cjk font corresponding to prvm_language, we have $font_cjk
-exec font-cjk.cfg
+exec font-cjk.cfg // sets font_cjk
-// ultimate fallback font & console font
-set font_unicode fonts/unifont
+set font_fallbacks ""
+alias font_fallback0 "set font_fallbacks fonts/unifont"
+alias font_fallback1 "set font_fallbacks $font_cjk,fonts/unifont"
+font_fallback$font_cjk_enable
loadfont console fonts/unifont,fonts/xolonium-regular.otf,gfx/vera-sans $con_textsize
-loadfont notify fonts/xolonium-regular.otf,$font_cjk,$font_unicode,gfx/vera-sans $con_notifysize
-loadfont chat fonts/xolonium-regular.otf,$font_cjk,$font_unicode,gfx/vera-sans $con_chatsize
-loadfont centerprint fonts/xolonium-regular.otf,$font_cjk,$font_unicode,gfx/vera-sans 9
-loadfont infobar fonts/xolonium-regular.otf,$font_cjk,$font_unicode,gfx/vera-sans 8 12 $scr_loadingscreen_barheight $scr_infobar_height
-loadfont user0 fonts/xolonium-regular.otf,$font_cjk,$font_unicode,gfx/vera-sans 12 // menu font
-loadfont user1 fonts/xolonium-regular.otf,$font_cjk,$font_unicode,gfx/vera-sans 4 6 8 10 12 14 16 20 24 28 32 $hud_fontsize // csqc font
-loadfont user2 fonts/xolonium-bold.otf,$font_cjk,$font_unicode,gfx/vera-sans 4 6 8 10 12 14 16 20 24 28 32 $hud_fontsize // csqc bold font
-loadfont user3 fonts/xolonium-bold.otf,$font_cjk,$font_unicode,gfx/vera-sans 12 16 // menu boldfont
+loadfont notify fonts/xolonium-regular.otf,$font_fallbacks,gfx/vera-sans $con_notifysize
+loadfont chat fonts/xolonium-regular.otf,$font_fallbacks,gfx/vera-sans $con_chatsize
+loadfont centerprint fonts/xolonium-regular.otf,$font_fallbacks,gfx/vera-sans 9
+loadfont infobar fonts/xolonium-regular.otf,$font_fallbacks,gfx/vera-sans 8 12 $scr_loadingscreen_barheight $scr_infobar_height
+loadfont user0 fonts/xolonium-regular.otf,$font_fallbacks,gfx/vera-sans 12 // menu font
+loadfont user1 fonts/xolonium-regular.otf,$font_fallbacks,gfx/vera-sans 4 6 8 10 12 14 16 20 24 28 32 $hud_fontsize // csqc font
+loadfont user2 fonts/xolonium-bold.otf,$font_fallbacks,gfx/vera-sans 4 6 8 10 12 14 16 20 24 28 32 $hud_fontsize // csqc bold font
+loadfont user3 fonts/xolonium-bold.otf,$font_fallbacks,gfx/vera-sans 12 16 // menu boldfont
scoreboard_columns_set
+unset font_cjk
+unset font_fallbacks
+unalias font_fallback0
+unalias font_fallback1