diff --git a/README.md b/README.md index bb58171..be87ee0 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Nowar Sans for _Warcraft III_ -This is Nowar Sans, font packs for _Warcraft III_ that support all game languages. Nowar Sans is based on [Noto Sans](https://github.com/googlei18n/noto-fonts) and [Source Han Sans](https://github.com/adobe-fonts/source-han-sans). +This is Nowar Sans, font packs for _Warcraft III_ (both _Reforged_ and _Classic_) that support all game languages. Nowar Sans is based on [Noto Sans](https://github.com/googlei18n/noto-fonts) and [Source Han Sans](https://github.com/adobe-fonts/source-han-sans). Looking for font pack for _World of Warcraft_ or _WoW Classic_? Try [Nowar Sans for _World of Warcraft_](https://github.com/nowar-fonts/Nowar-Sans). @@ -10,20 +10,13 @@ Looking for font pack for _World of Warcraft_ or _WoW Classic_? Try [Nowar Sans > > Yàoài不要bùyào魔獸móshòu。 -## Features - -### Multilingual Support - -![Preview](images/preview.jpg) - -### Chat in 日本語Nihongo - -![Nihongo](images/nihongo.jpg) - ## Installation Guide 1. Choose a flavor (see below) and download it at [the download page](https://github.com/nowar-fonts/Nowar-Sans-War3/releases). 2. Unpack `NowarSansWar3---.7z` to `Warcraft III/` (or `Warcraft III Public Test/`). + +### Extra Steps for _Warcraft III Classic_ (1.31 or earlier) + 3. Search and launch Registry Editor and navigate to `HKCU\Software\Blizzard Entertainment\Warcraft III` (or `...\Warcraft III Public Test`). 4. Create a DWORD entry of name `Allow Local Files` and value `1`. @@ -66,7 +59,7 @@ GB is a special offer that supports a superset of Chinese national standard GB 1 | -- | ------------------- | -------------- | ------------------- | ------ | | GB | Mainland China (UI) | Mainland China | Mainland China (UI) | N/A | -* European: English, Español (AL), Português, Deutsch, Español (EU), Français, Italiano, and Русский. +* European: Deutsch, English, Español (EU), Español (AL), Français, Italiano, Polski, Português, and Русский. * UI: Ambiguous punctations are treated as European; CJK puctations are half-width. ### Features diff --git a/configure.py b/configure.py index 4a0b7d5..30615e8 100644 --- a/configure.py +++ b/configure.py @@ -333,6 +333,16 @@ def GetLatinFont(weight, region, feature): encoding = "unspec" ) +def GetLatinBoldFont(weight, region, feature): + return Namespace( + weight = weight + 200, + width = 5, + family = "Latin", + region = regionalVariant[region]["Latn"], + feature = feature, + encoding = "unspec" + ) + def GetHansFont(weight, region, feature): return Namespace( weight = weight, @@ -417,19 +427,36 @@ def ParamToArgument(conf): fontlist = { "FRIZQT__": GetLatinFont(w, r, fea), "THOWR___": GetLatinFont(w, r, fea), + "BLQ55Web": GetLatinFont(w, r, fea), + "BLQ85Web": GetLatinBoldFont(w, r, fea), + "NimrodMT": GetLatinFont(w, r, fea), } if regionalVariant[r]["Hans"]: - fontlist.update({ "dfst-m3u": GetHansFont(w, r, fea) }) + fontlist.update({ + "dfst-m3u": GetHansFont(w, r, fea), + "arheigb_bd": GetHansFont(w, r, fea), + }) if regionalVariant[r]["Hant"]: - fontlist.update({ "dffn_b31": GetHantFont(w, r, fea) }) + fontlist.update({ + "dffn_b31": GetHantFont(w, r, fea), + "arheiu20m": GetHantFont(w, r, fea), + "DFHeiLt": GetHantFont(w, r, fea), + "arlishuu20_db": GetHantFont(w, r, fea), + }) if regionalVariant[r]["ja"]: fontlist.update({ "tt5500m_": GetJapaneseFont(w, r, fea) }) if regionalVariant[r]["ko"]: - fontlist.update({ "DFHeiMd": GetKoreanFont(w, r, fea) }) + fontlist.update({ + "DFHeiMd": GetKoreanFont(w, r, fea), + "2002": GetKoreanFont(w, r, fea), + "2002B": GetKoreanFont(w, r, fea), + "bl": GetKoreanFont(w, r, fea), + "DFKGothicMd": GetKoreanFont(w, r, fea), + }) makefile["rule"][pack] = { "depend": [ "out/{}/Fonts/{}.ttf".format(target, f) for f in fontlist ], @@ -515,6 +542,36 @@ def ParamToArgument(conf): "command": [ "python set-encoding.py {}".format(ParamToArgument(enc)) ] } + # Latin + for w, wd, fea in product(config.fontPackWeight + [ w + 200 for w in config.fontPackWeight ], [3, 5, 7], powerset(config.fontPackFeature)): + param = Namespace( + family = "Latin", + weight = w, + width = wd, + feature = fea, + ) + makefile["rule"]["build/nowar/{}.otf".format(GenerateFilename(param))] = { + "depend": ["build/nowar/{}.otd".format(GenerateFilename(param))], + "command": [ "otfccbuild -O3 --keep-average-char-width $< -o $@ 2>/dev/null" ] + } + dep = ResolveDependency(param) + makefile["rule"]["build/nowar/{}.otd".format(GenerateFilename(param))] = { + "depend": [ + "build/noto/{}.otd".format(GenerateFilename(dep["Latin"])), + ], + "command": [ + "mkdir -p build/nowar/", + "python merge.py {}".format(ParamToArgument(param)) + ] + } + makefile["rule"]["build/noto/{}.otd".format(GenerateFilename(dep["Latin"]))] = { + "depend": [ "source/noto/{}.otf".format(GenerateFilename(dep["Latin"])) ], + "command": [ + "mkdir -p build/noto/", + "otfccdump --glyph-name-prefix latn --ignore-hints $< -o $@", + ] + } + # dump `makefile` dict to actual “GNU Makefile” makedump = "" diff --git a/images/nihongo.jpg b/images/nihongo.jpg deleted file mode 100644 index 856dbf3..0000000 Binary files a/images/nihongo.jpg and /dev/null differ diff --git a/images/preview.jpg b/images/preview.jpg deleted file mode 100644 index 6308785..0000000 Binary files a/images/preview.jpg and /dev/null differ diff --git a/source/noto/NotoSans-Black.otf b/source/noto/NotoSans-Black.otf new file mode 100644 index 0000000..ebcd59f Binary files /dev/null and b/source/noto/NotoSans-Black.otf differ diff --git a/source/noto/NotoSans-BoldItalic.otf b/source/noto/NotoSans-BoldItalic.otf deleted file mode 100644 index f349147..0000000 Binary files a/source/noto/NotoSans-BoldItalic.otf and /dev/null differ diff --git a/source/noto/NotoSans-CondensedBlack.otf b/source/noto/NotoSans-CondensedBlack.otf new file mode 100644 index 0000000..4cdae9e Binary files /dev/null and b/source/noto/NotoSans-CondensedBlack.otf differ diff --git a/source/noto/NotoSans-CondensedBoldItalic.otf b/source/noto/NotoSans-CondensedBoldItalic.otf deleted file mode 100644 index 05dd2ec..0000000 Binary files a/source/noto/NotoSans-CondensedBoldItalic.otf and /dev/null differ diff --git a/source/noto/NotoSans-CondensedItalic.otf b/source/noto/NotoSans-CondensedItalic.otf deleted file mode 100644 index 10c1f0d..0000000 Binary files a/source/noto/NotoSans-CondensedItalic.otf and /dev/null differ diff --git a/source/noto/NotoSans-CondensedLightItalic.otf b/source/noto/NotoSans-CondensedLightItalic.otf deleted file mode 100644 index 7f90881..0000000 Binary files a/source/noto/NotoSans-CondensedLightItalic.otf and /dev/null differ diff --git a/source/noto/NotoSans-CondensedMediumItalic.otf b/source/noto/NotoSans-CondensedMediumItalic.otf deleted file mode 100644 index dfce1e6..0000000 Binary files a/source/noto/NotoSans-CondensedMediumItalic.otf and /dev/null differ diff --git a/source/noto/NotoSans-CondensedSemiBold.otf b/source/noto/NotoSans-CondensedSemiBold.otf new file mode 100644 index 0000000..feabd27 Binary files /dev/null and b/source/noto/NotoSans-CondensedSemiBold.otf differ diff --git a/source/noto/NotoSans-Italic.otf b/source/noto/NotoSans-Italic.otf deleted file mode 100644 index fe1614a..0000000 Binary files a/source/noto/NotoSans-Italic.otf and /dev/null differ diff --git a/source/noto/NotoSans-LightItalic.otf b/source/noto/NotoSans-LightItalic.otf deleted file mode 100644 index 40747a0..0000000 Binary files a/source/noto/NotoSans-LightItalic.otf and /dev/null differ diff --git a/source/noto/NotoSans-MediumItalic.otf b/source/noto/NotoSans-MediumItalic.otf deleted file mode 100644 index 4e8ead2..0000000 Binary files a/source/noto/NotoSans-MediumItalic.otf and /dev/null differ diff --git a/source/noto/NotoSans-SemiBold.otf b/source/noto/NotoSans-SemiBold.otf new file mode 100644 index 0000000..fc8d35e Binary files /dev/null and b/source/noto/NotoSans-SemiBold.otf differ diff --git a/source/noto/NotoSans-SemiCondensedBlack.otf b/source/noto/NotoSans-SemiCondensedBlack.otf new file mode 100644 index 0000000..e4a788d Binary files /dev/null and b/source/noto/NotoSans-SemiCondensedBlack.otf differ diff --git a/source/noto/NotoSans-SemiCondensedBoldItalic.otf b/source/noto/NotoSans-SemiCondensedBoldItalic.otf deleted file mode 100644 index f8362cb..0000000 Binary files a/source/noto/NotoSans-SemiCondensedBoldItalic.otf and /dev/null differ diff --git a/source/noto/NotoSans-SemiCondensedItalic.otf b/source/noto/NotoSans-SemiCondensedItalic.otf deleted file mode 100644 index ffb9100..0000000 Binary files a/source/noto/NotoSans-SemiCondensedItalic.otf and /dev/null differ diff --git a/source/noto/NotoSans-SemiCondensedLightItalic.otf b/source/noto/NotoSans-SemiCondensedLightItalic.otf deleted file mode 100644 index 286e942..0000000 Binary files a/source/noto/NotoSans-SemiCondensedLightItalic.otf and /dev/null differ diff --git a/source/noto/NotoSans-SemiCondensedMediumItalic.otf b/source/noto/NotoSans-SemiCondensedMediumItalic.otf deleted file mode 100644 index 87ada8d..0000000 Binary files a/source/noto/NotoSans-SemiCondensedMediumItalic.otf and /dev/null differ diff --git a/source/noto/NotoSans-SemiCondensedSemiBold.otf b/source/noto/NotoSans-SemiCondensedSemiBold.otf new file mode 100644 index 0000000..65eefc6 Binary files /dev/null and b/source/noto/NotoSans-SemiCondensedSemiBold.otf differ