├── demo.png
├── .gitignore
├── requirements.txt
├── .github
└── workflows
│ └── build.yml
├── README.md
├── test
├── index.css
└── index.html
├── LICENSE
└── config
├── name.json
└── name-twp.json
/demo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ayaka14732/FanWunMing/HEAD/demo.png
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .vscode
2 | .mypy_cache
3 | __pycache__
4 |
5 | /fonts
6 | /output
7 |
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | git+https://github.com/ayaka14732/opencc-font-generator@16c223f7bcaf9d4a9a8e8d5c8e7519931b0c1e5b#egg=OpenCCFontGenerator
2 |
--------------------------------------------------------------------------------
/.github/workflows/build.yml:
--------------------------------------------------------------------------------
1 | name: Build
2 |
3 | on:
4 | push
5 |
6 | jobs:
7 | build:
8 | runs-on: macos-latest
9 | steps:
10 | - uses: actions/checkout@v2
11 | - name: Install otfcc
12 | run: |
13 | brew tap caryll/tap
14 | brew install otfcc-mac64
15 | - name: Set up Python
16 | uses: actions/setup-python@v2
17 | with:
18 | python-version: '3.11'
19 | - name: Install dependencies
20 | run: |
21 | pip install -U pip
22 | pip install -U wheel
23 | pip install "opencc<1.2"
24 | pip install -r requirements.txt
25 | - name: Build
26 | run: |
27 | ./build.sh
28 | - name: Copy license file
29 | run: cp LICENSE output
30 | - name: Upload font files
31 | uses: actions/upload-artifact@v2
32 | with:
33 | name: FanWunMing
34 | path: output/*
35 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Fan Wun Ming 繁媛明朝 [](https://github.com/ayaka14732/FanWunMing/actions?query=workflow%3ABuild)
2 |
3 | 
4 |
5 | Fan Wun Ming is a Simplified-Chinese-to-Traditional-Chinese font based on [GenYoMin](https://github.com/ButTaiwan/genyo-font). This font can handle the one-to-many problem in the conversion between Simplified Chinese and Traditional Chinese. GenYoMin itself is a free font based on Source Han Serif.
6 | 「繁媛明朝」是基於[源樣明體](https://github.com/ButTaiwan/genyo-font)開發的簡轉繁字型,能處理「一簡對多繁」。源樣明體是基於思源宋體的開放原始碼字型。
7 |
8 | ## Design 設計
9 |
10 | See [_Correctly Implement a Simplified-Chinese-To-Traditional-Chinese Font_](https://ayaka.shn.hk/s2tfont/hant/) (in Chinese).
11 | 參見[《正確實現簡轉繁字型》](https://ayaka.shn.hk/s2tfont/hant/)。
12 |
13 | ## Download 下載
14 |
15 | See [release page](https://github.com/ayaka14732/FanWunMing/releases).
16 | 見[發佈頁](https://github.com/ayaka14732/FanWunMing/releases)。
17 |
18 | ## Build 構建
19 |
20 | See [build script](.github/workflows/build.yml).
21 | 參見[建置腳本](.github/workflows/build.yml)。
22 |
23 | ## License 授權條款
24 |
25 | This Font Software is licensed under the SIL Open Font License, Version 1.1.
26 | 本字型以 SIL Open Font License 版本 1.1 發佈。
27 |
28 | ## See Also 另見
29 |
30 | Sans-serif font: [Fan Wun Hak](https://github.com/ayaka14732/FanWunHak).
31 | 無襯線字體:[繁媛黑體](https://github.com/ayaka14732/FanWunHak)。
32 |
--------------------------------------------------------------------------------
/test/index.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: "FanWunMing-Test";
3 | font-weight: 100;
4 | src: url("../output/FanWunMing-EL.ttf") format("truetype");
5 | }
6 | @font-face {
7 | font-family: "FanWunMing-Test";
8 | font-weight: 300;
9 | src: url("../output/FanWunMing-L.ttf") format("truetype");
10 | }
11 | @font-face {
12 | font-family: "FanWunMing-Test";
13 | font-weight: 400;
14 | src: url("../output/FanWunMing-R.ttf") format("truetype");
15 | }
16 | @font-face {
17 | font-family: "FanWunMing-Test";
18 | font-weight: 500;
19 | src: url("../output/FanWunMing-M.ttf") format("truetype");
20 | }
21 | @font-face {
22 | font-family: "FanWunMing-Test";
23 | font-weight: 600;
24 | src: url("../output/FanWunMing-SB.ttf") format("truetype");
25 | }
26 | @font-face {
27 | font-family: "FanWunMing-Test";
28 | font-weight: 700;
29 | src: url("../output/FanWunMing-B.ttf") format("truetype");
30 | }
31 | @font-face {
32 | font-family: "FanWunMing-Test";
33 | font-weight: 900;
34 | src: url("../output/FanWunMing-H.ttf") format("truetype");
35 | }
36 |
37 | @font-face {
38 | font-family: "FanWunMing-Test-TW";
39 | font-weight: 100;
40 | src: url("../output/FanWunMing-TW-EL.ttf") format("truetype");
41 | }
42 | @font-face {
43 | font-family: "FanWunMing-Test-TW";
44 | font-weight: 300;
45 | src: url("../output/FanWunMing-TW-L.ttf") format("truetype");
46 | }
47 | @font-face {
48 | font-family: "FanWunMing-Test-TW";
49 | font-weight: 400;
50 | src: url("../output/FanWunMing-TW-R.ttf") format("truetype");
51 | }
52 | @font-face {
53 | font-family: "FanWunMing-Test-TW";
54 | font-weight: 500;
55 | src: url("../output/FanWunMing-TW-M.ttf") format("truetype");
56 | }
57 | @font-face {
58 | font-family: "FanWunMing-Test-TW";
59 | font-weight: 600;
60 | src: url("../output/FanWunMing-TW-SB.ttf") format("truetype");
61 | }
62 | @font-face {
63 | font-family: "FanWunMing-Test-TW";
64 | font-weight: 700;
65 | src: url("../output/FanWunMing-TW-B.ttf") format("truetype");
66 | }
67 | @font-face {
68 | font-family: "FanWunMing-Test-TW";
69 | font-weight: 900;
70 | src: url("../output/FanWunMing-TW-H.ttf") format("truetype");
71 | }
72 |
73 | :lang(en) { font-family: sans-serif, sans-serif; }
74 | :lang(zh-CN) { font-family: 'FanWunMing-Test', serif; }
75 | :lang(zh-CN).tw { font-family: 'FanWunMing-Test-TW', serif; }
76 |
77 | .w100 { font-weight: 100; }
78 | .w300 { font-weight: 300; }
79 | .w400 { font-weight: 400; }
80 | .w500 { font-weight: 500; }
81 | .w600 { font-weight: 600; }
82 | .w700 { font-weight: 700; }
83 | .w900 { font-weight: 900; }
84 |
--------------------------------------------------------------------------------
/test/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
错综复杂
15 |错综复杂
16 | 17 |松赞干布
19 |松赞干布
20 |夸夸其谈
21 |夸夸其谈
22 |夸父逐日
23 |夸父逐日
24 |之子于归,远送于野
25 |之子于归,远送于野
26 |我干什么不干你事
27 |我干什么不干你事
28 |我发现太后的头发很干燥
29 |我发现太后的头发很干燥
30 |赞叹沙河涌汹涌的波浪
31 |赞叹沙河涌汹涌的波浪
32 |经理发现理发的人不多
33 |经理发现理发的人不多
34 | 35 |下面
37 |下面
38 |下面条
39 |下面条
40 | 41 |在搜索字段使用通配符
43 |在搜索字段使用通配符
44 |开放源代码的简转繁字体
45 |开放源代码的简转繁字体
46 |鼠标里面的硅二极管坏了,导致光标分辨率降低
47 |鼠标里面的硅二极管坏了,导致光标分辨率降低
48 |我们在老挝的服务器的硬盘需要使用互联网算法软件解决异步的问题
49 |我们在老挝的服务器的硬盘需要使用互联网算法软件解决异步的问题
50 |为什么你在床里面睡着?
51 |为什么你在床里面睡着?
52 |他站起来问:“老师,‘有条不紊’的‘紊’是什么意思?”
53 |他站起来问:“老师,‘有条不紊’的‘紊’是什么意思?”
54 |台式机
55 |台式机
56 |着装污染虚伪发泄棱柱群众里面
57 |着装污染虚伪发泄棱柱群众里面
58 |内存
59 |内存
60 |海内存知己
61 |海内存知己
62 | 63 |诶
65 |诶
66 |瑸
67 |瑸
68 | 69 |裏
71 |裏
72 |裡
73 |裡
74 |僞
75 |僞
76 | 77 |朱轩荫兰皋,翠幕映洛湄。
79 |朱轩荫兰皋,翠幕映洛湄。
80 |朱轩荫兰皋,翠幕映洛湄。
81 |朱轩荫兰皋,翠幕映洛湄。
82 |朱轩荫兰皋,翠幕映洛湄。
83 |朱轩荫兰皋,翠幕映洛湄。
84 |朱轩荫兰皋,翠幕映洛湄。
85 |朱轩荫兰皋,翠幕映洛湄。
86 |朱轩荫兰皋,翠幕映洛湄。
87 |朱轩荫兰皋,翠幕映洛湄。
88 |朱轩荫兰皋,翠幕映洛湄。
89 |朱轩荫兰皋,翠幕映洛湄。
90 |朱轩荫兰皋,翠幕映洛湄。
91 |朱轩荫兰皋,翠幕映洛湄。
92 | 93 | 94 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | This Font Software is licensed under the SIL Open Font License, 2 | Version 1.1. 3 | 4 | This license is copied below, and is also available with a FAQ at: 5 | http://scripts.sil.org/OFL 6 | 7 | ----------------------------------------------------------- 8 | SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 9 | ----------------------------------------------------------- 10 | 11 | PREAMBLE 12 | The goals of the Open Font License (OFL) are to stimulate worldwide 13 | development of collaborative font projects, to support the font 14 | creation efforts of academic and linguistic communities, and to 15 | provide a free and open framework in which fonts may be shared and 16 | improved in partnership with others. 17 | 18 | The OFL allows the licensed fonts to be used, studied, modified and 19 | redistributed freely as long as they are not sold by themselves. The 20 | fonts, including any derivative works, can be bundled, embedded, 21 | redistributed and/or sold with any software provided that any reserved 22 | names are not used by derivative works. The fonts and derivatives, 23 | however, cannot be released under any other type of license. The 24 | requirement for fonts to remain under this license does not apply to 25 | any document created using the fonts or their derivatives. 26 | 27 | DEFINITIONS 28 | "Font Software" refers to the set of files released by the Copyright 29 | Holder(s) under this license and clearly marked as such. This may 30 | include source files, build scripts and documentation. 31 | 32 | "Reserved Font Name" refers to any names specified as such after the 33 | copyright statement(s). 34 | 35 | "Original Version" refers to the collection of Font Software 36 | components as distributed by the Copyright Holder(s). 37 | 38 | "Modified Version" refers to any derivative made by adding to, 39 | deleting, or substituting -- in part or in whole -- any of the 40 | components of the Original Version, by changing formats or by porting 41 | the Font Software to a new environment. 42 | 43 | "Author" refers to any designer, engineer, programmer, technical 44 | writer or other person who contributed to the Font Software. 45 | 46 | PERMISSION & CONDITIONS 47 | Permission is hereby granted, free of charge, to any person obtaining 48 | a copy of the Font Software, to use, study, copy, merge, embed, 49 | modify, redistribute, and sell modified and unmodified copies of the 50 | Font Software, subject to the following conditions: 51 | 52 | 1) Neither the Font Software nor any of its individual components, in 53 | Original or Modified Versions, may be sold by itself. 54 | 55 | 2) Original or Modified Versions of the Font Software may be bundled, 56 | redistributed and/or sold with any software, provided that each copy 57 | contains the above copyright notice and this license. These can be 58 | included either as stand-alone text files, human-readable headers or 59 | in the appropriate machine-readable metadata fields within text or 60 | binary files as long as those fields can be easily viewed by the user. 61 | 62 | 3) No Modified Version of the Font Software may use the Reserved Font 63 | Name(s) unless explicit written permission is granted by the 64 | corresponding Copyright Holder. This restriction only applies to the 65 | primary font name as presented to the users. 66 | 67 | 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font 68 | Software shall not be used to promote, endorse or advertise any 69 | Modified Version, except to acknowledge the contribution(s) of the 70 | Copyright Holder(s) and the Author(s) or with their explicit written 71 | permission. 72 | 73 | 5) The Font Software, modified or unmodified, in part or in whole, 74 | must be distributed entirely under this license, and must not be 75 | distributed under any other license. The requirement for fonts to 76 | remain under this license does not apply to any document created using 77 | the Font Software. 78 | 79 | TERMINATION 80 | This license becomes null and void if any of the above conditions are 81 | not met. 82 | 83 | DISCLAIMER 84 | THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 85 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF 86 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 87 | OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE 88 | COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 89 | INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL 90 | DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 91 | FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM 92 | OTHER DEALINGS IN THE FONT SOFTWARE. 93 | -------------------------------------------------------------------------------- /config/name.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "platformID": 3, 4 | "encodingID": 1, 5 | "languageID": 1028, 6 | "nameID": 1, 7 | "nameString": "繁媛明朝