針對再幾十年後可能會消失的台語,Max想幫台語做點事情,整理一下台語常用字,對其他字型的開發者會有所幫助。如果有了不缺字的字體,對於在使用字體的創作者或接收訊息的民眾,也有助於推廣台語。
Max最近在幫一個免費的「內海字體」補缺字時,想補一些台語常用字到字型裡,順便來學一些教育部推薦的台語用字。
聽說台語本來就有些字,是「有音無字」,因為數位化的需要有一個符號給聲音,所以要幫音配上新的字,讓台語能更容易流傳下去。
要如何找出常見的「台灣方言字」有那些?
題外話,在解決上面的問題時,Google 了一下,發現有趣的字:「𡳞」。
《康熙字典·尸部·十二》𡳞:《字彙》良慎切,音吝。閩人謂隂也。
國語發音: lìn ㄌㄧㄣˋ
白話文解釋:雄性動物的生殖器叫「𡳞」(lān),10幾年前曾經有段時間流行用LP來代表這個方言字。
這個字的 unicode 是 0x21CDE,超過大多數字型檔案編碼格式 ISO 10646-1 (Unicdoe, BMP) 的範圍 0x110000。
真人發音:
http://163.28.84.216/Entry/Detail/?title=??
相關的「生理構造」的台語:
https://twblg.dict.edu.tw/holodict_new/index/cimu_level4.jsp?level1=5&level2=19
網路上的資料很亂也很多,比較有參考性的,應該是參考教育部提供的:
臺灣閩南語推薦用字700字表
http://language.moe.gov.tw/files/people_files/700iongji_107.05.03.pdf
pdf 截圖:
Max整理,教育部提供推薦用700字裡出現的中文字如下:
㧒㧳㪗㾪䆀䉔䘼䩉䫀䫌一丁丈三上下不且世丟丩个中串丸久乍乜也乳乾亁亂了予事二亍互五井些交亦亭亮人什仁仇今仍仔他仙仝代令以件任份企伊伍休伙伨伯伸似但佇位住佑佔何佗佚作你佮佳使來例依便俊俗保信修俳倉個倌們倒候倚借倡倦倩倯偆假偌做停偝健偶偷傖備債傷傻傾僅僎像僐僫僱價儂儉元兄先光克免兒兜入內全兩公六共具冇冊再冒冗冤冬冰冷凊凋凍凝凡凳凹出刀刁分列刡刣別刨利刪刮到制刷刺刻剁則前剔剝剩剪割創剾力功加劣努勁勇動務勞勢勤勥勼勾勿包化北匙匿區十午半卑卒協南博卜卡印即卵卷卻厚厝原厭厲去參又叉及友反取受叢口古叨只叫可司吃合同名吐向吝吞否吮吵吸吹吻吼呃呆呈呢呣周味呵呸呼命咁和咍咒咖咧咬咱咳咽咾品哈哉哖員哥哨哪哭哮唇唌唔唚唱唸啃啄商啉問啞啡啥啾喉喊喙喜喝喪喫單嗆嗇嗉嗍嗝嗽嘆嘉嘛嘮嘴噍器噯噴嚏嚥嚨嚴囂囈囊四囝回囡囥困固圈國圍園圓土在地圾均坉坎坐坦垃垢埔埕執培埽堆報場堵塌塗塞填境墊墓墘增壁壓壞壯壺夏外多夜夠夢夥大天太夫央夯失夾奇奈契奕套女奶奸她好如妄妗妥妳妻姆姑姒委姥娘娶婆婚婦婿媠媳媵媽嫁嫣嫩子孔字孝季孤孩學宅守安宓官定客宰害家容寂密富寒寞察寡實寫寬寮寶寸將尋對導小少尖尚尪就尻尾尿屁屈屎屐展屜山岫峇峘崁崖嶺川巡巢工左巧己已巴巷巾市布師帳帶常帽幫干平年幸幹幻幼幾庇床序底店度庭廁廣廳延建弄式弓引弱張強彆彈彎形彩影彳彼往待很後得徙徛從徦微心必忍志忙忝忠快念怎怒怕思急性怨怪怹恁恂恨息悔悲悶悾悿情惜惡惰惱想愈意愚愛愜感愣慕慢慣憋憐憑憚懇應懍懶懷懸戇戍成我戒或戚截戲戳戴房所手才扑打扔托扛扣扦扭扯扱扲扶批找承抄把抌抑抒抓投折抨抵抽抾抿拂拄拈拉拊拌拍拑拓拔拖拗拚招拜拫拭拳拼拾拿持指按挑挖挨挩挪挲挵挼挽挾捀捅捉捋捌捎捏捒捔捧捨捲捶捷掀掃掉掌掏掔掘掙掛掞掠採探掣接推掰揀揉揍提換握揣揤揪揬揭揹揻搓搔搗搙搜搝搞搡搦搪搬搭搰搵摒摔摕摘摭摸摻撆撋撏撒撚撞撥撨撫撿擁擅擊擋擘擠擤擦擱擲擺擼擽攃攄攏攑攕攙攜攝攢攪支收改放故敆敏敕教敢散敧敨敲整數文斗料斜斟斡新斵斷方於旁旋日旦早明昏易星春昧昨是時晏晚晝晡晨景智暗暝暫曉曲更曷書曾替最會月有朋服朗望期木未本朵李杙杜束杯東板枋果枝枵柄某柑柔查柴校栽桃桌桶桿梔條梢梯械梳棄棰棵椅椆椒楔楚楬業榔槍槓樁樓標模樣樹橂橐橛機橫檳櫼欄欉欣欲欶欺款歆歇歌歕歡止正此步武歪歲歸歹死殕殘殺殼毋母每毒比毛毯民氣水汁求汆汗汙汝池汫沃沉沒沓沙沛沬油治沾況泔法泛泡泥注洗洘洞洩洲活派流浪海浸涎涕液涼淀淋淘淚淡淨混清減渣渥港湊湧湯準溜溢溪滇滑滯滾滿漂漆漉漏漚漛漢漩漫漬漱漿潔潘潛潮澆澹激濃濕濛濟瀾灑灣火灰灶炊炎炒炕炤炸為烆烏烘無焢焦然焿煎煏煞煠照煩煮熟熠熬熱熻熾燃燒燕燙燜營爁爆爍爛爪爬爭爸爻爽爾爿牆片牌牙牛牡牢物特牽犯狀狂狗狡狹猛猜猴猶獃獅獎獪玄玩玫珠班現球理瑰璇環瓜瓶瓷甌甘甜生產甥用甫甭田由甲男界畏留番畫異當疏疕疲疶疼痀病症痛痟痰瘋瘠瘡瘤瘦癟癢癩登發白百的皆皮益盒盛盞盤目盲直相盹眉看眗真眠眯眼睏睜睡睭瞄瞇瞌瞑矣知短石矺砝破硞硩硬碌碗碰碼碾磁磅磕磨礁礙礤社祖神票秀私秤秫移稀程稍稠種稻穀積穡穩穴空穿突窄窒窗窯竈立竘站竟章端竹笑笚笛笨第筆等筊筋筒筷箍算箠管箬箱箸節範篤簏簽簿籠籤米粉粒粕粗粟粢粽精粿糊糋糍糕糖糜糞糟糬糾紀紅紋紐紗紙紛索紮累細紲終結絚給絲經綠綱綴緊線緣編緩緻縒縖縛縫縮總織繞繡繩繫繼續罔罩罵美羞群羨羹翁習翕翻老考者而耍耐耳聘聚聞聰聲職聽肉肚肝股肥育背胎胖胡胭能胿脂脆脊脖脣脫脯脹腦腳腹膎膝膨臆臉臊臨自臭至致臺舂舅與舉舊舌舐舒舔舖舞航船艱色芎芓芡芫芬花芳苗若苦英苴茈茉茨茫茶草荏荒荽莉莢莦莫菜菠華菸萄萬落著葡葩葫蒸蒼蓋蓬蔗蔥蕉蕊蕩薄薅薐薑薟薦薯薰藏藥蘋蘸虎虐處號虧虬虯虼蚊蚓蚤蚪蚯蚱蚵蚶蚻蛋蛙蛛蛤蛻蛾蜆蜈蜊蜍蜘蜜蜢蜷蝌蝦蝴蝶蝸螂螺螿蟆蟑蟧蟮蟲蟳蟾蠅蠓蠔蠣蠩蠻行街衣表衫袂袋袖被裁裂裕裙補裝裡製褪褫褲要覆見規覓覕視親覺觀解觱觳觸言計討記許詛詞話誌認誓誕誘語誠說課調請諷謎講謝謳譀譏識議護讀變讚豆豎豐豬貝負貧貨貫貯貴買費貼賊賢賬賭賰賺賽赤赫走起趁趄越趒趕趖趟趨足趺跋跌跍跑跔跙跟跤路跳跺踅踏踮踹蹄蹔蹛蹣蹲躡身躲軀軁車軟較載輕輦輩輪輾轉辛辣辦迌迎近返迵迷退逃逆透逐逗這通逝速造逢連進遇遊運過遏遐道達遠遢適遮遲遷選還邊邋那部都鄉酌配酒酸醃醉醜釀釁采里重野量金針釣釦鈕鈴鈷鉎鉗鉛鉸銀銑鋏鋪錄錐錢錯鍊鍋鎖鎮鏟鏡鏽鐘鐤鐵鑢鑰鑷鑽鑿長門閃開閑閒間閘閣閩關阮阻阿附陌降限院陣除陰陳陶陷陽階際隨隻雄雅雙雜雞難雨雪零雷雺電霆霉霎霜霧露霸青靜非靠面靴鞋鞭音響頁頂項順須頑頓領頦頭頰頷頸願顛類顧顫風颱飛食飯飲飼飽餈餒餓餘餾餿首香馦馬駐騎騙驚骨骯骹骿髒體高鬃鬆鬚鬥鬱鬼魄魚魩魷鮭鮮鯷鰇鱗鳥鴆鴨鴿鵝鹹鹽麗麵麻麼黃黏黑黜點黹鼎鼓鼠鼻齒齧龜,𠕇𠢕𠲿𢓜𣍐𤆬𤏸𤞚𤺪𥰔𥴊𨑨𩟗
最後的這幾字,應該大多數的字型都會缺字,因為是編列在「中日韓統一表意文字擴展區B 」,只要使用FontForge 開啟字型檔案後,需要重新編碼成 Unicode Full 格式之後,新的字型檔就可以支援擴充字了:
- 𠕇(20547)
- 𠢕(20895)
- 𠲿(20cbf)
- 𢓜(224dc)
- 𣍐(23350)
- 𤆬(241ac)
- 𤏸(243f8)
- 𤞚(2479a)
- 𤺪(24eaa)
- 𥰔(25c14)
- 𥴊(25d0a)
- 𨑨(28468)
- 𩟗(297d7)
上面有些字,在台灣真的還滿常用的,像是 魩和蟳。
有些字很傳神,像是
- 「頦」,下巴。
- 「鰇」魚比魷魚還傳神,台語的發聲也和溫柔的柔同音。
- 軁,軁磅空nǹg pōng-khang(過山洞)、軁人縫nǹg lâng phāng(鑽人縫)。 2. 鑽營。指巴結有權勢的人。例:伊真𠢕軁。I tsin gâu nǹg. (他很會鑽營)
- 𥴊. 部首:竹. 音讀, kám. 釋義, 1. 圓型盛物的淺竹筐。多說成「𥴊仔」(kám-á)。
- 䆀 ㆠㄞ ˋ bái 。 釋義, 醜。 惡劣、糟糕。
- 趒部首:走. 音讀, tiô. 釋義, 1. 彈跳、跳動。例:氣甲趒起來。Khì kah tiô–khí-lâi. (氣得跳腳。)
- 欶. 部首:欠. 音讀, suh. 釋義, 吸。例:欶管suh-kóng(吸管)、欶薰suh hun(吸煙)。 異用字, 𠲿、嗍.
要如何得知上面台語常用字的清單,很簡單,先把教育部的 PDF 開啟,全選並複製後,再把結果放到一個文字檔裡。接著當然不可能自己用人眼+人腦去比對,用程式來就行了,Max牌小程式原始碼如下:
def get_word_set(file_path): input_file = open(file_path, 'r') output_filepath = file_path + ".tmp" output_file = open(output_filepath, 'w') my_set = set() previous_line = None for x_line in input_file: new_line = x_line for char in new_line: if not char in my_set: my_set.add(char) previous_line = x_line input_file.close() my_set = sorted(my_set) for item in my_set: output_string = "%s(%s)\n" % (item,str(hex(ord(item)))[2:]) output_file.write(output_string) output_file.close() if __name__ == '__main__': filename = "tw_700.txt" my_set = get_word_set(filename)
程式說明:我用的文字檔名稱為 tw_700.txt,比對的結果會輸出到 tw_700.txt.tmp 檔案裡。
如果你想知道某一個字型檔案,有沒有缺特定的字,可以服用下面的程式碼:
from os import listdir, remove from os.path import join, exists def output_to_file(myfile, myfont_set): for item in myfont_set: try: output_string = "%s(%s)" % (chr(item),str(hex(item))[2:]) except Exception as exc: print("error item:%d" %(item)) print("error item(hex):%s" %(str(hex(item)))) raise myfile.write(output_string) def load_unicode_from_file(filename_input): mycode = 0 myfile = open(filename_input, 'r') left_part = 'Encoding: ' left_part_length = len(left_part) for x_line in myfile: if left_part == x_line[:left_part_length]: right_part = x_line[left_part_length:] if ' ' in right_part: mychar_array = right_part.split(' ') if len(mychar_array) > 0: mycode = int(mychar_array[0]) #print("bingo") break myfile.close() return mycode def load_files_to_set_dict(ff_folder): my_set = set() my_dict = {} files = listdir(ff_folder) for f in files: if '.glyph' in f: unicode_info = load_unicode_from_file(join(ff_folder,f)) if unicode_info > 0 and unicode_info < 0x110000: my_set.add(unicode_info) my_dict[unicode_info] = f return my_set, my_dict target_ff = 'NaikaiFont-Medium.sfdir' target_unicode_set, target_dict = load_files_to_set_dict(target_ff) source_unicode_set = set() # common taiwaness terms source_string = '㧒㧳㪗㾪䆀䉔䘼䩉䫀䫌一丁丈三上下不且世丟丩个中串丸久乍乜也乳乾亁亂了予事二亍互五井些交亦亭亮人什仁仇今仍仔他仙仝代令以件任份企伊伍休伙伨伯伸似但佇位住佑佔何佗佚作你佮佳使來例依便俊俗保信修俳倉個倌們倒候倚借倡倦倩倯偆假偌做停偝健偶偷傖備債傷傻傾僅僎像僐僫僱價儂儉元兄先光克免兒兜入內全兩公六共具冇冊再冒冗冤冬冰冷凊凋凍凝凡凳凹出刀刁分列刡刣別刨利刪刮到制刷刺刻剁則前剔剝剩剪割創剾力功加劣努勁勇動務勞勢勤勥勼勾勿包化北匙匿區十午半卑卒協南博卜卡印即卵卷卻厚厝原厭厲去參又叉及友反取受叢口古叨只叫可司吃合同名吐向吝吞否吮吵吸吹吻吼呃呆呈呢呣周味呵呸呼命咁和咍咒咖咧咬咱咳咽咾品哈哉哖員哥哨哪哭哮唇唌唔唚唱唸啃啄商啉問啞啡啥啾喉喊喙喜喝喪喫單嗆嗇嗉嗍嗝嗽嘆嘉嘛嘮嘴噍器噯噴嚏嚥嚨嚴囂囈囊四囝回囡囥困固圈國圍園圓土在地圾均坉坎坐坦垃垢埔埕執培埽堆報場堵塌塗塞填境墊墓墘增壁壓壞壯壺夏外多夜夠夢夥大天太夫央夯失夾奇奈契奕套女奶奸她好如妄妗妥妳妻姆姑姒委姥娘娶婆婚婦婿媠媳媵媽嫁嫣嫩子孔字孝季孤孩學宅守安宓官定客宰害家容寂密富寒寞察寡實寫寬寮寶寸將尋對導小少尖尚尪就尻尾尿屁屈屎屐展屜山岫峇峘崁崖嶺川巡巢工左巧己已巴巷巾市布師帳帶常帽幫干平年幸幹幻幼幾庇床序底店度庭廁廣廳延建弄式弓引弱張強彆彈彎形彩影彳彼往待很後得徙徛從徦微心必忍志忙忝忠快念怎怒怕思急性怨怪怹恁恂恨息悔悲悶悾悿情惜惡惰惱想愈意愚愛愜感愣慕慢慣憋憐憑憚懇應懍懶懷懸戇戍成我戒或戚截戲戳戴房所手才扑打扔托扛扣扦扭扯扱扲扶批找承抄把抌抑抒抓投折抨抵抽抾抿拂拄拈拉拊拌拍拑拓拔拖拗拚招拜拫拭拳拼拾拿持指按挑挖挨挩挪挲挵挼挽挾捀捅捉捋捌捎捏捒捔捧捨捲捶捷掀掃掉掌掏掔掘掙掛掞掠採探掣接推掰揀揉揍提換握揣揤揪揬揭揹揻搓搔搗搙搜搝搞搡搦搪搬搭搰搵摒摔摕摘摭摸摻撆撋撏撒撚撞撥撨撫撿擁擅擊擋擘擠擤擦擱擲擺擼擽攃攄攏攑攕攙攜攝攢攪支收改放故敆敏敕教敢散敧敨敲整數文斗料斜斟斡新斵斷方於旁旋日旦早明昏易星春昧昨是時晏晚晝晡晨景智暗暝暫曉曲更曷書曾替最會月有朋服朗望期木未本朵李杙杜束杯東板枋果枝枵柄某柑柔查柴校栽桃桌桶桿梔條梢梯械梳棄棰棵椅椆椒楔楚楬業榔槍槓樁樓標模樣樹橂橐橛機橫檳櫼欄欉欣欲欶欺款歆歇歌歕歡止正此步武歪歲歸歹死殕殘殺殼毋母每毒比毛毯民氣水汁求汆汗汙汝池汫沃沉沒沓沙沛沬油治沾況泔法泛泡泥注洗洘洞洩洲活派流浪海浸涎涕液涼淀淋淘淚淡淨混清減渣渥港湊湧湯準溜溢溪滇滑滯滾滿漂漆漉漏漚漛漢漩漫漬漱漿潔潘潛潮澆澹激濃濕濛濟瀾灑灣火灰灶炊炎炒炕炤炸為烆烏烘無焢焦然焿煎煏煞煠照煩煮熟熠熬熱熻熾燃燒燕燙燜營爁爆爍爛爪爬爭爸爻爽爾爿牆片牌牙牛牡牢物特牽犯狀狂狗狡狹猛猜猴猶獃獅獎獪玄玩玫珠班現球理瑰璇環瓜瓶瓷甌甘甜生產甥用甫甭田由甲男界畏留番畫異當疏疕疲疶疼痀病症痛痟痰瘋瘠瘡瘤瘦癟癢癩登發白百的皆皮益盒盛盞盤目盲直相盹眉看眗真眠眯眼睏睜睡睭瞄瞇瞌瞑矣知短石矺砝破硞硩硬碌碗碰碼碾磁磅磕磨礁礙礤社祖神票秀私秤秫移稀程稍稠種稻穀積穡穩穴空穿突窄窒窗窯竈立竘站竟章端竹笑笚笛笨第筆等筊筋筒筷箍算箠管箬箱箸節範篤簏簽簿籠籤米粉粒粕粗粟粢粽精粿糊糋糍糕糖糜糞糟糬糾紀紅紋紐紗紙紛索紮累細紲終結絚給絲經綠綱綴緊線緣編緩緻縒縖縛縫縮總織繞繡繩繫繼續罔罩罵美羞群羨羹翁習翕翻老考者而耍耐耳聘聚聞聰聲職聽肉肚肝股肥育背胎胖胡胭能胿脂脆脊脖脣脫脯脹腦腳腹膎膝膨臆臉臊臨自臭至致臺舂舅與舉舊舌舐舒舔舖舞航船艱色芎芓芡芫芬花芳苗若苦英苴茈茉茨茫茶草荏荒荽莉莢莦莫菜菠華菸萄萬落著葡葩葫蒸蒼蓋蓬蔗蔥蕉蕊蕩薄薅薐薑薟薦薯薰藏藥蘋蘸虎虐處號虧虬虯虼蚊蚓蚤蚪蚯蚱蚵蚶蚻蛋蛙蛛蛤蛻蛾蜆蜈蜊蜍蜘蜜蜢蜷蝌蝦蝴蝶蝸螂螺螿蟆蟑蟧蟮蟲蟳蟾蠅蠓蠔蠣蠩蠻行街衣表衫袂袋袖被裁裂裕裙補裝裡製褪褫褲要覆見規覓覕視親覺觀解觱觳觸言計討記許詛詞話誌認誓誕誘語誠說課調請諷謎講謝謳譀譏識議護讀變讚豆豎豐豬貝負貧貨貫貯貴買費貼賊賢賬賭賰賺賽赤赫走起趁趄越趒趕趖趟趨足趺跋跌跍跑跔跙跟跤路跳跺踅踏踮踹蹄蹔蹛蹣蹲躡身躲軀軁車軟較載輕輦輩輪輾轉辛辣辦迌迎近返迵迷退逃逆透逐逗這通逝速造逢連進遇遊運過遏遐道達遠遢適遮遲遷選還邊邋那部都鄉酌配酒酸醃醉醜釀釁采里重野量金針釣釦鈕鈴鈷鉎鉗鉛鉸銀銑鋏鋪錄錐錢錯鍊鍋鎖鎮鏟鏡鏽鐘鐤鐵鑢鑰鑷鑽鑿長門閃開閑閒間閘閣閩關阮阻阿附陌降限院陣除陰陳陶陷陽階際隨隻雄雅雙雜雞難雨雪零雷雺電霆霉霎霜霧露霸青靜非靠面靴鞋鞭音響頁頂項順須頑頓領頦頭頰頷頸願顛類顧顫風颱飛食飯飲飼飽餈餒餓餘餾餿首香馦馬駐騎騙驚骨骯骹骿髒體高鬃鬆鬚鬥鬱鬼魄魚魩魷鮭鮮鯷鰇鱗鳥鴆鴨鴿鵝鹹鹽麗麵麻麼黃黏黑黜點黹鼎鼓鼠鼻齒齧龜,' for char in source_string: source_unicode_set.add(ord(char)) diff_set_more = target_unicode_set - source_unicode_set diff_set_lost = source_unicode_set - target_unicode_set diff_set_common = source_unicode_set & target_unicode_set print("output compare result to file...") filename_output = "diff_base_sub_%s.txt" % (target_ff) outfile = open(filename_output, 'w') sorted_set=sorted(diff_set_lost) output_to_file(outfile,sorted_set) outfile.close()
程式說明:請先使用FontForge 開啟字型檔,並另存為 FontForge 資料夾格式的專案。並在程式碼裡指定你的 FontForge 資料夾名稱。
如果是你比較2個字型檔之間的缺字,建議先使用FontForge開啟後,另存為資料夾格式的 FontForge 的專案,使用下面文章裡附的程式來比對:
比較不同字形檔之間的缺字差異:
https://max-everyday.com/2020/02/font-glyph-set-compare/
相關文章:
常見的「台灣客家語常用字」整理
https://max-everyday.com/2020/03/common-hakka-words/
免費商用字體整理
https://max-everyday.com/2020/02/free-commercial-fonts/
幫字型檔補缺字
https://max-everyday.com/2020/02/how-to-add-new-glyph-to-font/
內海字體 (NaikaiFont)
https://max-everyday.com/2020/03/naikaifont/