Giter Club home page Giter Club logo

Comments (29)

m13253 avatar m13253 commented on June 4, 2024 6

猜测是在中文系统下,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.

bestpika avatar bestpika commented on June 4, 2024 3

我建議直接設定這四個字型

  • Open Sans
  • Open Sans Regular
  • Open Sans Semibold
  • Open Sans Bold

這樣即使換語系或系統字型改了配置文件大概也不需要更動
只要系統裡面有要換的字型就好了

from fontmod.

bennyyip avatar bennyyip commented on June 4, 2024 2

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.

ysc3839 avatar ysc3839 commented on June 4, 2024 1

@iamCristYe 你说的是对的,不同语言环境下使用的默认字体是不同的。我加入debug模式就是因为这个问题,打开后可以看到具体使用了哪些字体。

from fontmod.

ysc3839 avatar ysc3839 commented on June 4, 2024

What do you mean?

from fontmod.

septs avatar septs commented on June 4, 2024

see https://github.com/telegramdesktop/tdesktop/blob/master/Telegram/Resources/telegram.qrc#L3-L5

from fontmod.

ysc3839 avatar ysc3839 commented on June 4, 2024

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.

septs avatar septs commented on June 4, 2024
[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.

ysc3839 avatar ysc3839 commented on June 4, 2024

I'm not asking you paste the log file. I mean the old version loads Open Sans.

from fontmod.

LenKiMo avatar LenKiMo commented on June 4, 2024

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.

ysc3839 avatar ysc3839 commented on June 4, 2024

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.

wbsdty331 avatar wbsdty331 commented on June 4, 2024

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.

ysc3839 avatar ysc3839 commented on June 4, 2024

@wbsdty331 No. Because I can't find other better hijacking method.

from fontmod.

iamCristYe avatar iamCristYe commented on June 4, 2024

If you cannot understand simplified Chinese, please let me know.
在我安装Windows 10 1703英文版之后,必须使用phoenixlzx的config才能正常工作。请考虑将改config作为默认的config。
猜测是在中文系统下,telegram会使用SimSun,但英文系统下会使用Open Sans。所以在英文系统中需要使用修改过的配置文件。

from fontmod.

iamCristYe avatar iamCristYe commented on June 4, 2024

@m13253 好奇怪啊……我把你配置文件里的MS UI Gothic换成Open Sans也能用欸
---Update---
换成Open Sans之后聊天正文是对的,但标题不对……你说为啥用MS UI Gothic就可以了?

from fontmod.

m13253 avatar m13253 commented on June 4, 2024

我把你配置文件里的MS UI Gothic换成Open Sans也能用欸

区别在于,前者保留原来的英文字体,后者英文随着中文一起替换了。
我更偏好英文用英文字体,只替换中文。

换成Open Sans之后聊天正文是对的,但标题不对……你说为啥用MS UI Gothic就可以了?

标题是 Open Sans SemiBold,不是 Open Sans。
这要怪微软当年「字族」「字面」不分的老 bug。

from fontmod.

ysc3839 avatar ysc3839 commented on June 4, 2024

@m13253 因为 Telegram 的英文字体用的是 Open Sans,MS UI Gothic 应该跟你系统的区域设置有关,可能设置的是日本?

from fontmod.

iamCristYe avatar iamCristYe commented on June 4, 2024

@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.

ysc3839 avatar ysc3839 commented on June 4, 2024

@iamCristYe 这是 font fallback,而且不是系统处理的,是 Qt 处理的。
关于默认配置,我一开始是不打算弄这个的,让用户根据需要手动修改配置。
文件名的话没有任何原因,我就喜欢这样。

from fontmod.

m13253 avatar m13253 commented on June 4, 2024

MS UI Gothic 应该跟你系统的区域设置有关,可能设置的是日本?

我设置的是美国。

from fontmod.

m13253 avatar m13253 commented on June 4, 2024

关于默认配置,我一开始是不打算弄这个的,让用户根据需要手动修改配置。

虽然我希望能开箱即用。
无论你的系统区域是**(那么宋体会排在前),或者港台(他们肯定不想替换成雅黑,不是我们讨论的问题),或者非中文地区(那么日文字体会排在前),都能即用是最好的。

from fontmod.

ysc3839 avatar ysc3839 commented on June 4, 2024

@m13253 这是可以实现的。但是还是让用户自己配置比较好。

from fontmod.

shikkoku avatar shikkoku commented on June 4, 2024

在我的英文系统中确实仅替换MS UI Gothic就OK了。

from fontmod.

bestpika avatar bestpika commented on June 4, 2024

Telegram 的字型寫在這裡
https://github.com/telegramdesktop/tdesktop/blob/master/Telegram/Resources/qrc/telegram.qrc

from fontmod.

iamCristYe avatar iamCristYe commented on June 4, 2024

最新版本中变得不可用?

from fontmod.

ysc3839 avatar ysc3839 commented on June 4, 2024

@iamCristYe Version 1.1.23 没有问题

from fontmod.

iamCristYe avatar iamCristYe commented on June 4, 2024

@ysc3839 抱歉是我系统从英文换到了中午但没有更改配置文件造成误报……sorry

from fontmod.

ysc3839 avatar ysc3839 commented on June 4, 2024

@m13253 应你的要求,已经更新了配置文件。
73ae574

from fontmod.

m13253 avatar m13253 commented on June 4, 2024

@m13253 应你的要求,已经更新了配置文件。

感谢!看上去同时照顾了中日韩多地的体验呢!👍

from fontmod.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.