數字縮寫生成器

保留首尾字母、用中間字母數量替換中段,把單詞轉換為數字縮寫。可調最小詞長、可選小寫輸出,支援整句轉換。

internationalization 變成 i18n,其他詞同理。 輸入一個單詞或一整句話。每個足夠長的單詞會保留首尾字母,中間的字母用數量替代。較短的詞保持原樣,結果依然可讀。

數字縮寫是怎麼壓縮一個單詞的

i18n 這種寫法

數字縮寫(numeronym)是用數字來縮短的詞。軟體圈使用的這一種只有一條規則:保留第一個字母,保留最後一個字母,中間的全部字母用被省略的字元數替代。internationalization 在開頭的 i 和結尾的 n 之間有十八個字母,於是寫作 i18n。accessibility 得到 a11y,localization 得到 l10n,Kubernetes 得到 k8s。

這一慣例通常追溯到 1980 年代的 DEC 公司,員工用這種方式縮短冗長的內部術語;後來它隨開源專案擴散開來——這些專案需要把同樣幾個笨重的概念重複上千次。它能流行是因為足夠機械:與首字母縮略詞不同,沒有什麼需要發明、也沒有什麼需要記憶。給定完整單詞,所有人推匯出的縮寫都一樣;給定縮寫和上下文,讀者通常能還原出原詞。

為什麼要設最小詞長

只有長詞才划算。把規則套用到 "hello" 會得到 h3o,省下兩個字元,卻把可辨識度全賠進去了。更糟的是短縮寫會頻繁碰撞:幾十個常見的五字母單詞共享同樣的首字母、尾字母和長度,縮寫便不再指向任何東西。

因此本工具設有最小詞長,預設為五。低於閾值的單詞原樣通過,這正是你可以整句貼上而結果仍然可讀的原因。把最小值調到八或十,就能得到實踐中常見的保守風格:只縮寫真正笨重的術語,周圍的行文保持原樣。

什麼時候有幫助,什麼時候有害

在已經共享同一套詞彙的人之間,數字縮寫是好用的行話。在無障礙團隊裡,a11y 比完整單詞輸入更快、閱讀更快,含義也從不含糊。它們也很適合做識別符號:短、純 ASCII、在專案內無歧義,足夠穩定,可用於包名、目錄名和配置鍵。

它們在新人和搜尋面前會失效。沒接觸過這個術語的讀者無法展開它,而且不像首字母縮略詞那樣有大寫字母提示「這裡有個縮寫」。螢幕閱讀器可能把 a11y 逐字念出而非當作一個詞;在文件裡搜尋 "localization" 也匹配不到只寫 l10n 的頁面。務實的折中就是優秀文件一直在用的做法:首次出現時寫完整術語,後面用括號給出數字縮寫,此後自由使用簡寫。

開源說明:使用原生 JavaScript 實現,不依賴第三方庫。

常見問題

什麼是數字縮寫?
用數字縮短的詞。在軟體領域指保留首尾字母、中間用被省略的字母數替代,例如 i18n。
為什麼 internationalization 寫作 i18n?
開頭的 i 和結尾的 n 之間有十八個字母。同樣的規則讓 accessibility 變成 a11y,localization 變成 l10n。
為什麼最小詞長預設是五?
低於這個長度幾乎省不下字元,還會與許多其他詞碰撞。設為五既能保持短詞可讀,又能縮短真正的長詞。
能處理帶重音的字母和 emoji 嗎?
可以。計數按 Unicode 碼點進行,帶重音的字元各算一個字母,emoji 也不會被拆成碎片。
標點符號會怎樣?
單詞周圍的標點會被保留,只縮短字母部分,因此 "accessibility," 會保留逗號,變成 "a11y,"。
程式碼裡該用數字縮寫嗎?
在已經共享這套詞彙的專案內做識別符號是可以的。寫文件時請先寫完整術語,並在括號中引入數字縮寫。