天天看點

一行CSS實作全站中文簡繁轉換

一行CSS實作全站中文簡繁轉換

一、直接解密

就是這麼一行css:

font-variant-east-asian: traditional;      

表示目前文字使用繁體變體。

再加粗顯示一下:

font-variant-east-asian: traditional;

例如:​

body {
    font-variant-east-asian: traditional;
}      

就可以讓整個頁面的簡體中文變成繁體。

二、需要字型支援-OS X和iOS有效

卧槽,css居然有這麼炫酷的能力,那為何沒幾個人知道呢?

關鍵問題就在于這種效果需要字型本身包含繁體變體。

而在Windows系統中的幾個預設字型都沒有包含繁體變體,而OS X,也就是iMac或者 Mac Pro,以及iOS系統,也就是蘋果手機,iPad等裝置的預設中文字型是包含繁體變體的。

是以,目前,在沒有任何外界幹預的情況下,一行CSS讓網站轉變成繁體,隻在OS X和iOS系統中有效。

如果您通路本文的正好就是使用這些作業系統的裝置,可以點選下面這個按鈕,看看文章内容有沒有1鍵變繁體:

//zxx: 如果你看到這段文字,說明你現在通路是體驗糟糕的垃圾盜版網站,你可以通路原文獲得很好的體驗:https://www.zhangxinxu.com/wordpress/?p=9779(作者張鑫旭)

windows系統與蘋方字型

windows系統中其實是有些字型包含繁體特征的,可惜是日文字型,例如Windows系統内置的”Yu Gothic”(遊黑體日)字型,但是,能夠轉換的也僅僅是日語中的部分漢字。

一行CSS實作全站中文簡繁轉換

什麼微軟雅黑、華文字型,各種宋體楷體全部都沒有繁體特征。

Android裝置的預設中文字型也沒有繁體變體,是以,Android裝置下 font-variant-east-asian:traditional 也是看不到效果的。

蘋方字型

好在有一個比較知名的中文字型是包含繁體變體的,這個字型就是“蘋方字型”,Apple公司目前很多系統的預設中文字型。

是以,如果Windows使用者安裝了蘋方字型,也是可以一鍵變成繁體的。

例如我自己的Windows 10電腦就安裝了蘋方字型,隻要設定字型是蘋方,然後設定字型特征是繁體,就可以讓簡體中文變成繁體中文了:

body {
    font-family: 'PingFang SC';
    font-variant-east-asian: traditional;
}      

如果大家足夠細心,就會發現本部落格右側側邊欄(移動端則在文章評論的後面)新增了一個簡繁體轉換的功能,可以體驗下瞬間簡繁體轉換的效果:

一行CSS實作全站中文簡繁轉換

如果沒有,說明你的裝置沒有安裝蘋方字型,因為此簡繁體轉換功能提前 判斷了目前系統是否安裝了PingFang SC字型 才呈現的。

這個功能剛加的,這就叫學以緻用,本身就是個增強的功能,可以讓Mac系統,iPhone以及安裝了蘋方字型的Windows系統使用者可以一鍵使用語言切換能力,關鍵成本極低,是非常劃算的買賣。

三、變化的隻是字形

傳統的簡體變繁體是通過改變文字本身字元内容實作的,例如起點中文網這裡的繁體:

一行CSS實作全站中文簡繁轉換

而本文的 font-variant-east-asian 屬性實作的繁體效果則原始的字元還是簡體中文,隻是視覺呈現的是繁體而已,如下圖所示:

一行CSS實作全站中文簡繁轉換

四、結語

如果可以讓使用者或者網站内置蘋方字型,那麼簡繁體轉換這個功能直接就可以大結局了。

不過,蘋方字型的體積太大了,一個字重字型就10M,總共有7個字重,完整的蘋方字型要70M。

APP内置這個字型?或者indexDB默默存下蘋方字型?

其實,默默加載一個10M的東西也不是不可行。

做好存儲即可,然後轉繁體就一行CSS事情,這可比搞語言包進行切換什麼的成本低多了。

尤其以後5G時代,幾十M東西都是秒下。

說不定,後生之年會見證Web中各種中文字型版式橫飛的場面。

本文完〜