-// run before execing font cfg files (e.g. font-xolonium.cfg) and after switching language
-// pick a correct cjk font variant by locale
+// generated by make-cfg.sh, do not edit
-// jp variant by default (for non-cjk languages)
-set font_cjk_variant ""
+// run before execing font cfg files (e.g. font-xolonium.cfg) and after switching language
+// pick a correct cjk font variant by locale as a cvar $font_cjk
// medium weight fits the game well
-set font_cjk_weight Medium
+set _font_cjk_weight Medium
+
+// jp as default variant for non-cjk languages
+set _font_cjk_variant jp
-// 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
+alias _font_cjk_variant_ast _font_cjk_variant jp
+alias _font_cjk_variant_id_ID _font_cjk_variant jp
+alias _font_cjk_variant_de _font_cjk_variant jp
+alias _font_cjk_variant_de_CH _font_cjk_variant jp
+alias _font_cjk_variant_en _font_cjk_variant jp
+alias _font_cjk_variant_en_AU _font_cjk_variant jp
+alias _font_cjk_variant_en_GB _font_cjk_variant jp
+alias _font_cjk_variant_es _font_cjk_variant jp
+alias _font_cjk_variant_fr _font_cjk_variant jp
+alias _font_cjk_variant_gl _font_cjk_variant jp
+alias _font_cjk_variant_ga _font_cjk_variant jp
+alias _font_cjk_variant_it _font_cjk_variant jp
+alias _font_cjk_variant_la _font_cjk_variant jp
+alias _font_cjk_variant_hu _font_cjk_variant jp
+alias _font_cjk_variant_nl _font_cjk_variant jp
+alias _font_cjk_variant_pl _font_cjk_variant jp
+alias _font_cjk_variant_pt _font_cjk_variant jp
+alias _font_cjk_variant_pt_BR _font_cjk_variant jp
+alias _font_cjk_variant_ro _font_cjk_variant jp
+alias _font_cjk_variant_fi _font_cjk_variant jp
+alias _font_cjk_variant_sv _font_cjk_variant jp
+alias _font_cjk_variant_tr _font_cjk_variant jp
+alias _font_cjk_variant_cs _font_cjk_variant jp
+alias _font_cjk_variant_el _font_cjk_variant jp
+alias _font_cjk_variant_be _font_cjk_variant jp
+alias _font_cjk_variant_bg _font_cjk_variant jp
+alias _font_cjk_variant_ru _font_cjk_variant jp
+alias _font_cjk_variant_sr _font_cjk_variant jp
+alias _font_cjk_variant_uk _font_cjk_variant jp
-// 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
+// variant by cjk languages
+alias _font_cjk_variant_zh_CN _font_cjk_variant sc
+alias _font_cjk_variant_zh_HK _font_cjk_variant hk
+alias _font_cjk_variant_zh_TW _font_cjk_variant tc
+alias _font_cjk_variant_ja_JP _font_cjk_variant jp
+alias _font_cjk_variant_ko _font_cjk_variant kr
+
+// pick a variant by current language
+_font_cjk_variant_${prvm_language}
// 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}-${_font_cjk_weight}.otf
+
+// clean up
+unset _font_cjk_variant
+unset _font_cjk_weight
+unalias _font_cjk_variant_ast
+unalias _font_cjk_variant_id_ID
+unalias _font_cjk_variant_de
+unalias _font_cjk_variant_de_CH
+unalias _font_cjk_variant_en
+unalias _font_cjk_variant_en_AU
+unalias _font_cjk_variant_en_GB
+unalias _font_cjk_variant_es
+unalias _font_cjk_variant_fr
+unalias _font_cjk_variant_gl
+unalias _font_cjk_variant_ga
+unalias _font_cjk_variant_it
+unalias _font_cjk_variant_la
+unalias _font_cjk_variant_hu
+unalias _font_cjk_variant_nl
+unalias _font_cjk_variant_pl
+unalias _font_cjk_variant_pt
+unalias _font_cjk_variant_pt_BR
+unalias _font_cjk_variant_ro
+unalias _font_cjk_variant_fi
+unalias _font_cjk_variant_sv
+unalias _font_cjk_variant_tr
+unalias _font_cjk_variant_cs
+unalias _font_cjk_variant_el
+unalias _font_cjk_variant_be
+unalias _font_cjk_variant_bg
+unalias _font_cjk_variant_ru
+unalias _font_cjk_variant_sr
+unalias _font_cjk_variant_uk
+unalias _font_cjk_variant_zh_CN
+unalias _font_cjk_variant_zh_HK
+unalias _font_cjk_variant_zh_TW
+unalias _font_cjk_variant_ja_JP
+unalias _font_cjk_variant_ko
--- /dev/null
+#!/bin/env bash
+cfg="font-cjk.cfg"
+languages=$(awk '{ if (substr($1, 1, 2) != "zh" && substr($1, 1, 2) != "ja" && substr($1, 1, 2) != "ko") print $1 }' <"../xonotic-data.pk3dir/languages.txt")
+
+printf "" >"$cfg"
+
+cat >>"$cfg" <<EOF
+// generated by make-cfg.sh, do not edit
+
+// run before execing font cfg files (e.g. font-xolonium.cfg) and after switching language
+// pick a correct cjk font variant by locale as a cvar \$font_cjk
+
+// medium weight fits the game well
+set _font_cjk_weight Medium
+
+// jp as default variant for non-cjk languages
+set _font_cjk_variant jp
+
+EOF
+
+for lang in $languages; do
+ echo "alias _font_cjk_variant_${lang} _font_cjk_variant jp" >>"$cfg"
+done
+
+cat >>"$cfg" <<EOF
+
+// variant by cjk languages
+alias _font_cjk_variant_zh_CN _font_cjk_variant sc
+alias _font_cjk_variant_zh_HK _font_cjk_variant hk
+alias _font_cjk_variant_zh_TW _font_cjk_variant tc
+alias _font_cjk_variant_ja_JP _font_cjk_variant jp
+alias _font_cjk_variant_ko _font_cjk_variant kr
+
+// pick a variant by current language
+_font_cjk_variant_\${prvm_language}
+
+// use this cvar in loadfont commands
+set font_cjk fonts/NotoSansCJK\${_font_cjk_variant}-\${_font_cjk_weight}.otf
+
+// clean up
+unset _font_cjk_variant
+unset _font_cjk_weight
+
+EOF
+
+for lang in $languages zh_CN zh_HK zh_TW ja_JP ko; do
+ echo "unalias _font_cjk_variant_${lang}" >>"$cfg"
+done
+