]> git.rm.cloudns.org Git - xonotic/xonotic.git/commitdiff
feat: Noto Sans CJK fonts for CJK languages, selecting variants according to prvm_lan...
authorNaitLee <naitlee@disroot.org>
Sat, 8 Feb 2025 15:15:37 +0000 (23:15 +0800)
committerNaitLee <naitlee@disroot.org>
Sat, 8 Feb 2025 15:15:37 +0000 (23:15 +0800)
Signed-off-by: NaitLee <naitlee@disroot.org>
data/font-notosanscjk.pk3dir/fetch-fonts.sh [new file with mode: 0755]
data/font-notosanscjk.pk3dir/font-cjk.cfg [new file with mode: 0644]
data/font-notosanscjk.pk3dir/fonts/NotoSansCJK-Medium.otf [new file with mode: 0644]
data/font-notosanscjk.pk3dir/fonts/NotoSansCJKhk-Medium.otf [new file with mode: 0644]
data/font-notosanscjk.pk3dir/fonts/NotoSansCJKkr-Medium.otf [new file with mode: 0644]
data/font-notosanscjk.pk3dir/fonts/NotoSansCJKsc-Medium.otf [new file with mode: 0644]
data/font-notosanscjk.pk3dir/fonts/NotoSansCJKtc-Medium.otf [new file with mode: 0644]
data/font-xolonium.pk3dir/font-xolonium.cfg

diff --git a/data/font-notosanscjk.pk3dir/fetch-fonts.sh b/data/font-notosanscjk.pk3dir/fetch-fonts.sh
new file mode 100755 (executable)
index 0000000..e24f47c
--- /dev/null
@@ -0,0 +1,10 @@
+#!/bin/env bash
+weight=Medium
+mkdir -vp fonts
+# fetch from the newest github resources
+for v in SimplifiedChinese,sc TraditionalChinese,tc TraditionalChineseHK,hk Jananese,jp Korean,kr; do
+    curl -o "fonts/NotoSansCJK${v#*,}-${weight}.otf" "https://raw.githubusercontent.com/notofonts/noto-cjk/main/Sans/OTF/${v%,*}/NotoSansCJK${v#*,}-${weight}.otf"
+done
+# move jp variant as the default
+mv "fonts/NotoSansCJKjp-${weight}.otf" "fonts/NotoSansCJK-${weight}.otf"
+
diff --git a/data/font-notosanscjk.pk3dir/font-cjk.cfg b/data/font-notosanscjk.pk3dir/font-cjk.cfg
new file mode 100644 (file)
index 0000000..82dc7e1
--- /dev/null
@@ -0,0 +1,23 @@
+// run before setfont cfg files, e.g. font-xolonium.cfg, and after switching language
+// pick a correct cjk font variant by locale
+
+// jp variant by default
+set font_cjk_variant ""
+
+// medium weight fits the game well
+set font_cjk_weight Medium
+
+// font variants 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
+
+// won't error expanding unset cvar for non-cjk locale
+alias font_cjk_pickvariant rpn /font_cjk_variant /font_cjk_variant_${prvm_language} load =
+font_cjk_pickvariant
+
+// use this cvar in setfont commands
+set font_cjk fonts/NotoSansCJK${font_cjk_variant}-${font_cjk_weight}.otf
+
diff --git a/data/font-notosanscjk.pk3dir/fonts/NotoSansCJK-Medium.otf b/data/font-notosanscjk.pk3dir/fonts/NotoSansCJK-Medium.otf
new file mode 100644 (file)
index 0000000..56c4d17
Binary files /dev/null and b/data/font-notosanscjk.pk3dir/fonts/NotoSansCJK-Medium.otf differ
diff --git a/data/font-notosanscjk.pk3dir/fonts/NotoSansCJKhk-Medium.otf b/data/font-notosanscjk.pk3dir/fonts/NotoSansCJKhk-Medium.otf
new file mode 100644 (file)
index 0000000..1b0428b
Binary files /dev/null and b/data/font-notosanscjk.pk3dir/fonts/NotoSansCJKhk-Medium.otf differ
diff --git a/data/font-notosanscjk.pk3dir/fonts/NotoSansCJKkr-Medium.otf b/data/font-notosanscjk.pk3dir/fonts/NotoSansCJKkr-Medium.otf
new file mode 100644 (file)
index 0000000..6a9c887
Binary files /dev/null and b/data/font-notosanscjk.pk3dir/fonts/NotoSansCJKkr-Medium.otf differ
diff --git a/data/font-notosanscjk.pk3dir/fonts/NotoSansCJKsc-Medium.otf b/data/font-notosanscjk.pk3dir/fonts/NotoSansCJKsc-Medium.otf
new file mode 100644 (file)
index 0000000..00b01df
Binary files /dev/null and b/data/font-notosanscjk.pk3dir/fonts/NotoSansCJKsc-Medium.otf differ
diff --git a/data/font-notosanscjk.pk3dir/fonts/NotoSansCJKtc-Medium.otf b/data/font-notosanscjk.pk3dir/fonts/NotoSansCJKtc-Medium.otf
new file mode 100644 (file)
index 0000000..c6ec7b6
Binary files /dev/null and b/data/font-notosanscjk.pk3dir/fonts/NotoSansCJKtc-Medium.otf differ
index 2f98e326f4515dd706b7d9d1bd48d4a2fd053b06..4c55013bad8eac8c5ef3ee737915a976c7b4bba8 100644 (file)
@@ -1,12 +1,16 @@
 // must be loaded AFTER config.cfg
 set menu_font_cfg font-xolonium.cfg
+set font_unicode fonts/unifont
+exec font-cjk.cfg
+
 loadfont console fonts/unifont,fonts/xolonium-regular.otf,gfx/vera-sans $con_textsize
-loadfont notify fonts/xolonium-regular.otf,fonts/unifont,gfx/vera-sans $con_notifysize
-loadfont chat fonts/xolonium-regular.otf,fonts/unifont,gfx/vera-sans $con_chatsize
-loadfont centerprint fonts/xolonium-regular.otf,fonts/unifont,gfx/vera-sans 9
-loadfont infobar fonts/xolonium-regular.otf,fonts/unifont,gfx/vera-sans 8 12 $scr_loadingscreen_barheight $scr_infobar_height
-loadfont user0 fonts/xolonium-regular.otf,fonts/unifont,gfx/vera-sans 12 // menu font
-loadfont user1 fonts/xolonium-regular.otf,fonts/unifont,gfx/vera-sans 4 6 8 10 12 14 16 20 24 28 32 $hud_fontsize // csqc font
-loadfont user2 fonts/xolonium-bold.otf,fonts/unifont,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,fonts/unifont,gfx/vera-sans 12 16 // menu boldfont
+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
 scoreboard_columns_set
+