Home

Awesome

English 简体中文 繁體中文

Nowar Sans for World of Warcraft

This is Nowar Sans, font packs for World of Warcraft and WoW Classic that support all client languages. Nowar Sans is based on Noto Sans and Source Han Sans.

Make Love, Not Warcraft.<br> 要有爱,不要魔兽争霸。<br> 要愛,不要魔獸。

Nowar Sans

Multilingual support

Download the Fonts

Latest release at GitHub

Mirrors: Gitee (Release Repo)

Nowar Sans is shipped in 7 weights and 5 regional variants, with several features. More weights (any number from 200 to 900!) can be built form source.

Weights

Font weights

Regional Variants

Bliz and Neut are “standard variants” with regional Chinese character orthographies.

European and 한국어简体中文繁體中文Note
BlizMainland China (UI)Mainland ChinaTaiwanActs like WoW’s default fallback setting.
NeutClassical (UI)Mainland ChinaTaiwanPrefers classical orthography on fallback.

CL is the “classical variant” with classical Chinese character orthography (aka Kāngxī Dictionary forms).

European and 한국어中文
CLClassical (UI)Classical

PSimp and PSimpChat are special variants for 繁體中文 that remap traditional Chinese character to simplified ones.

Common Fonts繁體中文 Text, Combat and Tooltip Fonts繁體中文 Chat FontsEuropean, 简体中文 and 한국어
PSimpMainland China (UI, Remapped)Mainland China (Remapped)Mainland ChinaN/A
PSimpChatMainland China (UI, Remapped)Mainland China (Remapped)Mainland China (Remapped)N/A

Features

TagNameDescription
OSFOldstyleOldstyle (non-lining), proportional figure.
RPRoleplaying (U+4E36) is mapped to the same glyph as · (U+00B7, MIDDLE DOT).
SCSmallcapsSmall capitals for Latin.

Pre-built feature variants: Bliz,RP, Neut,OSF, Neut,SC.

PTR Cross Language Distributions (XLang)

CyR (Cyrillic Romanisation), Pinyin and Romaja are “cross-language variants” for PTR realms that transliterate or transcript Cyrillic, Chinese and Hanguel characters to Latin letters.

VariantDescriptionExample
CyRReplace Cyrillic letters with underlined smapp-capital Latin letters, using the ISO 9:1995 (or GOST 2002) systemR̲ᴜ̲s̲s̲ᴋ̲ɪ̲ᴊ̲ (Русский)
PinyinAppend small-capital Hànyǔ Pīnyīn to Chinese characters汉ʜᴀ̀ɴ字ᴢɪ̀
RomajaAppend small-capital Romaja to Hanguel characters한ʜᴀɴ글ɢᴜᴇʟ

Due to the technical limitation, the CyR is implemented as feature variant and is applied to all languages (we can not distinguish cyrillic chat font from latin chat font – they are both ARAILN) while Pinyin and Romaja are implemented as regional variant and are applied to non-Chinese or non-Korean languages (applying to native language will heavily break UI layout).

VariantImplementationApplied to
CyRFeature variantAll languages
PinyinRegional variant (based on Neut)All except 简体中文 and 繁體中文
RomajaRegional variant (based on Neut)All except 한국어

As a result, the XLang variants can be confusing and thus are distributed under a dedicated tag with an -xlang suffix.

DistributionCyRPinyinRomaja
Pinyin,Romaja,CyR
Pinyin,CyR
Romaja,CyR
Neut,CyR
Pinyin,Romaja
Pinyin
Romaja

How to Build

Dependencies

Note:

Build Feature Variant

Prepare submodules:

git submodule update --init --recursive

Prepare Node.js dependency:

npm install

Run configure.py to generate Makefile:

python configure.py

Put Source Han Sans variable OTF files to source/shs/.

Then make a specific variant:

make <region>,<features>-<weight> -j<threads>

Note: Features must be sorted alphabetically. (OSF, RP, SC).

e.g.

make CN,OSF,RP-400 -j4

The output is out/NowarSans-<region>,<features>-<weight>-<version>.7z.

Customise Weight

Any number from 200 to 900 (both included) is valid weight value for Nowar Sans. Numbers from 100 (included) to 200 (excluded) are also available, but CJK part will be same weight as 200.

To build a font pack with customised weight value, modify configure.py:

class Config:
    # put your weight here
    fontPackWeight = [ <your_weight> ]

Then, run python configure.py to generate Makefile. The new weight (with optional feature) can be built by:

make <region>,<features>-<weight> -j<threads>

Create Regional Variant

To build exactly what you need, modify configure.py:

class Config:
    # put your variant here
    fontPackRegion = [ <your_region> ]

# define the variant here.
regionalVariant = { ... }

For example, the “CNmulti” multi-orthography variant,

European简体中文繁體中文한국어
CNmultiMainland China (UI)Mainland ChinaTaiwanS. Korea (UI)
class Config:
    fontPackRegion = [ "CNmulti" ]

regionalVariant = {
    "CNmulti": {
        "base": "CN",
        "enUS": True,
        "ruRU": True,
        "zhCN": "CN",
        "zhTW": "TW",
        "koKR": "KR",
    }
}

Then, run python configure.py to generate Makefile. The new regional variant (with optional feature) can be built by:

make <region>,<features>-<weight> -j<threads>

e.g.

make CNmulti-400 -j4
make CNmulti,OSF-400 -j4

Credit

Latin, Greek and Cyrillic characters are built from Noto Source, the source “code” for Noto Sans by Google.

CJK Ideographs, Kana and Hangul are from Source Han Sans by Adobe.

The traditional Chinese to simplified Chinese conversion table is from Open Chinese Convert project.

Build Noto Sans Variable-OTF from Source

First of all, prepare the repo.

git clone --recursive https://github.com/googlefonts/noto-source.git
cd noto-source
./build setup

Then activate the build environment.

source env/bin/activate

To build the font, call the fontmake command.

fontmake -g src/NotoSans-MM.glyphs -o variable-cff2

The output is in variable_otf/.