ヌメロニム生成

最初と最後の文字を残し、中間を文字数に置き換えて単語をヌメロニムに変換します。最小語長の調整、小文字化オプション、文章全体の変換に対応。

internationalization は i18n になります。ほかの語も同じ要領で。 単語でも文章全体でも入力できます。十分に長い単語は最初と最後の文字を残し、その間の文字は個数に置き換えられます。短い語はそのまま残るため、結果は読める形を保ちます。

ヌメロニムはどのように単語を圧縮するのか

i18n というパターン

ヌメロニムとは、数字を使って短縮した語のことです。ソフトウェア分野で使われる方式の規則はひとつだけ。最初の文字を残し、最後の文字を残し、その間のすべてを省略した文字数に置き換えます。internationalization は先頭の i と末尾の n の間に十八文字あるので i18n になります。accessibility は a11y、localization は l10n、Kubernetes は k8s です。

この慣習は 1980 年代の DEC 社に遡るとされ、社員が長い社内用語をこの方法で短縮していました。その後、同じ数個の扱いにくい概念を何千回も書く必要があったオープンソースのプロジェクトを通じて広まります。定着した理由は機械的だからです。頭字語と違い、発明するものも覚えるものもありません。完全な語が与えられれば誰でも同じ略記を導け、略記と文脈が与えられれば読み手はたいてい元の語を復元できます。

最小語長が重要な理由

圧縮が割に合うのは長い語だけです。"hello" に規則を当てはめると h3o となり、二文字節約する代わりに識別性をすべて失います。さらに悪いことに、短いヌメロニムは頻繁に衝突します。五文字の一般的な語は、頭文字・末尾・長さが同じものが何十とあるため、略記が何も指し示さなくなります。

そこで本ツールには最小語長があり、既定値は 5 です。しきい値より短い語はそのまま通過するので、文章をまるごと貼り付けても読める結果が得られます。最小値を 8 や 10 に上げると、実務でよく見る保守的なスタイルになります。本当に扱いにくい術語だけを略し、周囲の文章はそのままにするやり方です。

役立つ場面と害になる場面

すでに語彙を共有している人どうしの専門用語としては、ヌメロニムはよく機能します。アクセシビリティのチームでは a11y のほうが入力も読み取りも速く、意味が揺らぐこともありません。識別子としても優秀です。短く、ASCII で安全、プロジェクト内で一意、パッケージ名・ディレクトリ名・設定キーに使える程度に安定しています。

一方、新規参加者と検索には弱いのが弱点です。その術語を知らない読者は展開できず、頭字語のように「ここは略記だ」と知らせる大文字の手がかりもありません。スクリーンリーダーは a11y を単語ではなく文字列として読み上げることがあり、文書内で "localization" を検索しても l10n としか書かれていないページはヒットしません。現実的な妥協策は、良いドキュメントがすでに実践している方法です。初出では完全な術語を書き、直後の括弧内にヌメロニムを示し、以降は短縮形を自由に使います。

オープンソースに関する注記:バニラ JavaScript で実装。サードパーティライブラリは使用していません。

よくある質問

ヌメロニムとは何ですか?
数字を使って短縮した語のことです。ソフトウェアでは、最初と最後の文字を残し中間を省略した文字数に置き換えることを指します。i18n がその例です。
なぜ internationalization は i18n と書くのですか?
先頭の i と末尾の n の間に十八文字あるためです。同じ規則で accessibility は a11y、localization は l10n になります。
最小語長の既定値が 5 なのはなぜですか?
それより短いとほとんど文字数を節約できず、他の多くの語と衝突します。5 なら短い語の可読性を保ちつつ、長い語だけを短縮できます。
アクセント付き文字や絵文字にも対応しますか?
対応します。計数は Unicode コードポイント単位で行うため、アクセント付き文字は 1 文字として数えられ、絵文字が分断されることもありません。
約物はどうなりますか?
語の前後の約物は保持され、文字部分だけが短縮されます。そのため "accessibility," はカンマを保ったまま "a11y," になります。
コード内でヌメロニムを使ってもよいですか?
語彙をすでに共有しているプロジェクト内の識別子としては問題ありません。ドキュメントでは初出に完全な術語を書き、括弧でヌメロニムを導入してください。