Comments (29)
猜测是在中文系统下,telegram会使用SimSun,但英文系统下会使用Open Sans。所以在英文系统中需要使用修改过的配置文件。
中文系统下会使用 Open Sans + SimSun,英文系统下会使用 Open Sans + MS UI Gothic。
所以只需要 Hook 掉 SimSun 和 MS UI Gothic 这两个字体就可以解决问题。
这是我给出的配置,建议设置为软件默认的配置:
{
"fonts": {
"MS UI Gothic": {
"replace": "Microsoft Yahei UI",
"#size": 0,
"#width": 0,
"#weight": 0,
"#italic": false,
"#underLine": false,
"#strikeOut": false
},
"SimSun": {
"replace": "Microsoft Yahei UI",
"#size": 0,
"#width": 0,
"#weight": 0,
"#italic": false,
"#underLine": false,
"#strikeOut": false
}
},
"debug": false
}
from fontmod.
我建議直接設定這四個字型
- Open Sans
- Open Sans Regular
- Open Sans Semibold
- Open Sans Bold
這樣即使換語系或系統字型改了配置文件大概也不需要更動
只要系統裡面有要換的字型就好了
from fontmod.
I seems that TG use different fonts when the system language is English. The config in README.md does not works on my computer, but the config file of @phoenixlzx works perfectly.
Windows 10 Version 1607 (OS Build 15007.1000)
Language: English
from fontmod.
@iamCristYe 你说的是对的,不同语言环境下使用的默认字体是不同的。我加入debug模式就是因为这个问题,打开后可以看到具体使用了哪些字体。
from fontmod.
What do you mean?
from fontmod.
see https://github.com/telegramdesktop/tdesktop/blob/master/Telegram/Resources/telegram.qrc#L3-L5
from fontmod.
But the old version does load Open Sans.
[CreateFont] name = "Microsoft YaHei UI", size = -12
[CreateFont] name = "Open Sans", size = 0
[CreateFont] name = "Open Sans", size = 0
[CreateFont] name = "Open Sans Semibold", size = 0
[CreateFont] name = "微软雅黑", size = 0
[CreateFont] name = "微软雅黑", size = 0
[CreateFont] name = "微软雅黑", size = 0
[CreateFont] name = "微软雅黑", size = 0
[CreateFont] name = "微软雅黑", size = 0
[CreateFont] name = "微软雅黑", size = 0
[CreateFont] name = "微软雅黑 Light", size = 0
[CreateFont] name = "微软雅黑 Light", size = 0
[CreateFont] name = "微软雅黑 Light", size = 0
[CreateFont] name = "微软雅黑 Light", size = 0
[CreateFont] name = "微软雅黑 Light", size = 0
[CreateFont] name = "微软雅黑 Light", size = 0
[CreateFont] name = "宋体", size = 0
[CreateFont] name = "宋体", size = 0
[CreateFont] name = "新宋体", size = 0
[CreateFont] name = "新宋体", size = 0
[CreateFont] name = "等线", size = 0
[CreateFont] name = "等线", size = 0
[CreateFont] name = "等线", size = 0
[CreateFont] name = "等线", size = 0
[CreateFont] name = "等线", size = 0
[CreateFont] name = "等线 Light", size = 0
[CreateFont] name = "等线 Light", size = 0
[CreateFont] name = "等线 Light", size = 0
[CreateFont] name = "等线 Light", size = 0
[CreateFont] name = "等线 Light", size = 0
[CreateFont] name = "仿宋", size = 0
[CreateFont] name = "仿宋", size = 0
[CreateFont] name = "楷体", size = 0
[CreateFont] name = "楷体", size = 0
[CreateFont] name = "黑体", size = 0
[CreateFont] name = "黑体", size = 0
[CreateFont] name = "Open Sans", size = 0
[CreateFont] name = "Open Sans", size = 0
[CreateFont] name = "Open Sans Semibold", size = 0
[CreateFont] name = "Open Sans", size = -13
[CreateFont] name = "Open Sans Semibold", size = -13
[CreateFont] name = "Open Sans", size = -14
[CreateFont] name = "Open Sans", size = -14
[CreateFont] name = "Open Sans Semibold", size = -14
[CreateFont] name = "Open Sans", size = -17
[CreateFont] name = "Open Sans", size = -23
[CreateFont] name = "Open Sans", size = -24
[CreateFont] name = "Open Sans", size = -16
[CreateFont] name = "Open Sans", size = -15
[CreateFont] name = "Open Sans Semibold", size = -28
[CreateFont] name = "Open Sans Semibold", size = -20
[CreateFont] name = "Open Sans Semibold", size = -15
[CreateFont] name = "Open Sans Semibold", size = -18
[CreateFont] name = "Open Sans", size = -19
[CreateFont] name = "Open Sans Semibold", size = -16
[CreateFont] name = "Open Sans", size = -11
[CreateFont] name = "Open Sans", size = -12
[CreateFont] name = "SimSun", size = -13
[CreateFont] name = "Consolas", size = -16
[CreateFont] name = "Consolas", size = -13
[CreateFont] name = "SimSun", size = -12
[CreateFont] name = "SimSun", size = -16
[CreateFont] name = "SimSun", size = -13
[CreateFont] name = "Adobe Gothic Std B", size = -13
[CreateFont] name = "Arial", size = -13
[CreateFont] name = "MS UI Gothic", size = -13
[CreateFont] name = "Segoe UI Emoji", size = -13
[CreateFont] name = "Open Sans", size = -8
[CreateFont] name = "Open Sans", size = -12
[CreateFont] name = "Open Sans", size = -8
[CreateFont] name = "Open Sans", size = -8
[CreateFont] name = "Open Sans", size = -8
[CreateFont] name = "Open Sans", size = -16
[CreateFont] name = "Open Sans", size = -16
[CreateFont] name = "Open Sans", size = -16
[CreateFont] name = "Arial", size = -13
[CreateFont] name = "Open Sans", size = -8
[CreateFont] name = "Open Sans", size = -16
Maybe the old version loads the font installed in system?
from fontmod.
[CreateFont] name = "Segoe UI", size = -12
[CreateFont] name = "Segoe UI", size = -12
[CreateFont] name = "Open Sans", size = 0
[CreateFont] name = "Open Sans", size = 0
[CreateFont] name = "Open Sans Semibold", size = 0
[CreateFont] name = "Open Sans", size = 0
[CreateFont] name = "Open Sans", size = 0
[CreateFont] name = "Open Sans Semibold", size = 0
[CreateFont] name = "Open Sans", size = -26
[CreateFont] name = "Open Sans Semibold", size = -26
[CreateFont] name = "Open Sans", size = -28
[CreateFont] name = "Open Sans", size = -30
[CreateFont] name = "Open Sans Semibold", size = -56
[CreateFont] name = "Open Sans Semibold", size = -40
[CreateFont] name = "Open Sans", size = -34
[CreateFont] name = "Open Sans Semibold", size = -28
[CreateFont] name = "Open Sans Semibold", size = -44
[CreateFont] name = "Open Sans Semibold", size = -34
[CreateFont] name = "Open Sans", size = -32
[CreateFont] name = "Open Sans Semibold", size = -32
[CreateFont] name = "Open Sans", size = -22
[CreateFont] name = "Open Sans", size = -38
[CreateFont] name = "Open Sans Semibold", size = -30
[CreateFont] name = "Open Sans", size = -24
[CreateFont] name = "Open Sans Semibold", size = -36
[CreateFont] name = "Open Sans", size = -48
[CreateFont] name = "Consolas", size = -16
[CreateFont] name = "Consolas", size = -26
[CreateFont] name = "MS Shell Dlg 2", size = -11
[CreateFont] name = "MS Shell Dlg 2", size = -26
[CreateFont] name = "Arial", size = -26
[CreateFont] name = "MS UI Gothic", size = -26
[CreateFont] name = "Gulim", size = -26
[CreateFont] name = "SimSun", size = -26
[CreateFont] name = "MS Shell Dlg 2", size = -26
[CreateFont] name = "Arial", size = -26
[CreateFont] name = "MS UI Gothic", size = -26
[CreateFont] name = "Gulim", size = -26
[CreateFont] name = "SimSun", size = -26
[CreateFont] name = "Open Sans", size = -8
[CreateFont] name = "Open Sans", size = -12
[CreateFont] name = "Open Sans", size = -11
[CreateFont] name = "Open Sans", size = -11
[CreateFont] name = "Open Sans", size = -22
[CreateFont] name = "MS Shell Dlg 2", size = -36
[CreateFont] name = "Arial", size = -36
[CreateFont] name = "MS UI Gothic", size = -36
[CreateFont] name = "Gulim", size = -36
[CreateFont] name = "SimSun", size = -36
[CreateFont] name = "Open Sans", size = -8
[CreateFont] name = "Open Sans", size = -8
[CreateFont] name = "Open Sans", size = -8
[CreateFont] name = "Open Sans", size = -16
[CreateFont] name = "Open Sans", size = -16
[CreateFont] name = "Open Sans", size = -16
[CreateFont] name = "Open Sans", size = -16
[CreateFont] name = "MS Shell Dlg 2", size = -26
[CreateFont] name = "Open Sans", size = -8
[CreateFont] name = "Open Sans", size = -8
[CreateFont] name = "Open Sans", size = -16
[CreateFont] name = "Open Sans", size = -16
[CreateFont] name = "PMingLiU", size = -26
[CreateFont] name = "Segoe UI Emoji", size = -26
[CreateFont] name = "Open Sans", size = -26
[CreateFont] name = "MS Shell Dlg 2", size = -26
[CreateFont] name = "Arial", size = -26
[CreateFont] name = "MS UI Gothic", size = -26
[CreateFont] name = "Gulim", size = -26
[CreateFont] name = "SimSun", size = -26
[CreateFont] name = "Courier New", size = -26
[CreateFont] name = "Arial", size = -26
[CreateFont] name = "MS UI Gothic", size = -26
Windows 10 Version 1607 (OS Build 14393.693)
Language: English
from fontmod.
I'm not asking you paste the log file. I mean the old version loads Open Sans.
from fontmod.
Previously, the config which TGFont provided in README.md only can replace the font in main program window, but do not include other floating windows, like setting window or picture sending confirm window.
Now the config file @phoenixlzx provided can works perfectly, and can replace all the Telegram Desktop's windows, whatever it is main window or floating window.
I think developer can consider use this config file as example or recommend format to user, so that user can get the best experience by using TGFont.
Add: My system is using Chinese language.
from fontmod.
I started this project because Telegram uses "SimSun" as Chinese font, which is ugly. In systems with other language, Telegram will not use this font so the example config doesn't work. That's why I added the debug mode. Turn it on and you can see what fonts does Telegram use in TGFont.log.
from fontmod.
So Could you use any other DLL File instead of winmm.dll
? In my opinion, It is not safe to use winmm.dll
hijack Telegram Executable file, It not safe for any Windows Platform.
from fontmod.
@wbsdty331 No. Because I can't find other better hijacking method.
from fontmod.
If you cannot understand simplified Chinese, please let me know.
在我安装Windows 10 1703英文版之后,必须使用phoenixlzx的config才能正常工作。请考虑将改config作为默认的config。
猜测是在中文系统下,telegram会使用SimSun,但英文系统下会使用Open Sans。所以在英文系统中需要使用修改过的配置文件。
from fontmod.
@m13253 好奇怪啊……我把你配置文件里的MS UI Gothic换成Open Sans也能用欸
---Update---
换成Open Sans之后聊天正文是对的,但标题不对……你说为啥用MS UI Gothic就可以了?
from fontmod.
我把你配置文件里的MS UI Gothic换成Open Sans也能用欸
区别在于,前者保留原来的英文字体,后者英文随着中文一起替换了。
我更偏好英文用英文字体,只替换中文。
换成Open Sans之后聊天正文是对的,但标题不对……你说为啥用MS UI Gothic就可以了?
标题是 Open Sans SemiBold,不是 Open Sans。
这要怪微软当年「字族」「字面」不分的老 bug。
from fontmod.
@m13253 因为 Telegram 的英文字体用的是 Open Sans,MS UI Gothic 应该跟你系统的区域设置有关,可能设置的是日本?
from fontmod.
@m13253 我的理解是这样:其实 Telegram 的代码里只使用了 Open Sans 一种字体,在中文字体缺失的情况下,系统会查找相应的替补字体:在英文系统中日语字体的优先级高于中文字体,所以内容以 MS UI Gothic 显示了;在中文系统中则是正常由 SimSun 显示。当我在配置文件中使用 Open Sans 时所有的内容因为最先设置的字体是 Open Sans 所以都被替换成雅黑了,而使用 MS UI Gothic 时则是只有 Open Sans 无法显示的需要用 MS UI Gothic 的字体才被替换成了雅黑。这就是为什么你说
所以只需要 Hook 掉 SimSun 和 MS UI Gothic 这两个字体就可以解决问题。
顺便一提,你那个 json 直接复制粘贴会挂……我看了半天才看出倒数第四行多了个逗号……
顺便@ysc3839,感觉那个配置文件挺好的,能解决英文系统用户的问题,不如就作为默认配置吧。顺便一问,为什么 Release 里不直接放 winmm.dll 这个文件名?
from fontmod.
@iamCristYe 这是 font fallback,而且不是系统处理的,是 Qt 处理的。
关于默认配置,我一开始是不打算弄这个的,让用户根据需要手动修改配置。
文件名的话没有任何原因,我就喜欢这样。
from fontmod.
MS UI Gothic 应该跟你系统的区域设置有关,可能设置的是日本?
我设置的是美国。
from fontmod.
关于默认配置,我一开始是不打算弄这个的,让用户根据需要手动修改配置。
虽然我希望能开箱即用。
无论你的系统区域是**(那么宋体会排在前),或者港台(他们肯定不想替换成雅黑,不是我们讨论的问题),或者非中文地区(那么日文字体会排在前),都能即用是最好的。
from fontmod.
@m13253 这是可以实现的。但是还是让用户自己配置比较好。
from fontmod.
在我的英文系统中确实仅替换MS UI Gothic就OK了。
from fontmod.
Telegram 的字型寫在這裡
https://github.com/telegramdesktop/tdesktop/blob/master/Telegram/Resources/qrc/telegram.qrc
from fontmod.
最新版本中变得不可用?
from fontmod.
@iamCristYe Version 1.1.23 没有问题
from fontmod.
@ysc3839 抱歉是我系统从英文换到了中午但没有更改配置文件造成误报……sorry
from fontmod.
@m13253 应你的要求,已经更新了配置文件。
73ae574
from fontmod.
@m13253 应你的要求,已经更新了配置文件。
感谢!看上去同时照顾了中日韩多地的体验呢!👍
from fontmod.
Related Issues (20)
- [Question] How to use the overridings ? HOT 7
- [Feature Request] Support GDI+ HOT 9
- 请问FontMod64.dll和FontMod32.dll,Win10 64位专业版用哪个?还是两个一起用? HOT 5
- TG Desktop 2.8.5 Beta 不允许 DLL 注入了 HOT 6
- Telegram 2.8.8 stable breaks everything HOT 1
- Telegram 2.8.8 似乎不再载入 `winmm.dll` HOT 2
- Telegram 2.8.5+ don't allow any .dll-s near Telegram.exe HOT 5
- 用在最新telegram上不起作用 HOT 5
- 无法修改字体大小,不会自动生成配置文件FontMod.yaml HOT 1
- Workaround: Telegram Desktop HOT 10
- MyGetStockObject 方法遗漏了 DEFAULT_GUI_FONT
- Linux Arch HOT 1
- 無法替換為特定字型
- fonts won't apply on FontMod v3 HOT 5
- font can not be changed in newest telegram version(x64 v4.6.1) HOT 6
- 英文系统,telegram修复不管用呀
- [Request] Enable GitHub Discussions for sharing experiences and working examples HOT 1
- Fontmod 3.x
- exe程序无法应用Fonts文件夹的字体文件 HOT 18
- Registry font-editing does not working anymore. Is there any workaround about that? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fontmod.