効率的なコーディングのためのローマ字ルール
ソフトウェア開発において、コーディングルールはたくさんありますが一般的には英語がベースとなり、
日本語など英語以外の言語を扱う場合の規定は含まれないものがほとんどです。
変数名、ファイル名、その他あらゆる箇所において、 Unicodeで日本語を使えるものはたくさんありますが、 日本語にまつわる諸問題のために別のトラブルに遭うケースは少なくありません。 原則としてユーザが目にする箇所を除く開発時の語句について、 一切のマルチバイト文字を使用しない前提で、ローマ字の用法に関して記載します。
- ファイル名
- 変数名
- 配列やオブジェクトのプロパティや、添え字 (
foo["property"]
) など。 - URLの一部に入りうるスラグ、パラメータ
- その他、cssのクラス名や sass変数、mix-in など マクロ、関数、サブルーチンの類。
PCを用いたときのローマ字入力の方式になるべく合わせる。 ヘボン式(hepbarn-style)は避け、サ行、タ行の扱いは訓令式に合わせる。 これは英語表記との混同を避け、元の語句を正確に読み取れるようにするためです。
必ず元の表現に回復可能にします。
これにより他の原稿や日本語のテキストを探しやすくします。
- けいり (経理) : 〇 keiri, × keeri, × ke-ri, × keri
- とうし (投資) : 〇 tousi, × toosi, × to-si, × tosi (都市に見えるため)
- ゆうき (勇気) : 〇 yuuki, × yuki (これも「雪」と区別がつかなくなる)
- もじとは (文字とは) : 〇 mozi-toha, × mozi-towa
- これを : 〇 kore-wo, × kore-o
zi, zu, di, du
これも元の日本語に戻せるように。
これを許すと 「じ」に対し ji, zi の 2パターン、 「じゅ」に対して ju, jyu, zyu の3パターンができ、脆弱になります。
ハイフンを無暗に使うと単語境界が分かりにくくなり、他のシステム上の命名規則との衝突も起きやすくなります。
英語風長音は復元時に違う単語になる恐れがあり、日本語かどうかも分かりにくくなります。
- おおきい : 〇 ookii , × ohki , × o-ki-
- しょうひょう : 〇 syouhyou , × shohyo, × sho-hyo-
- ふうそく: 〇 huusoku, × fu-soku, × fusoku
- ちょうど: 〇 tyoudo, × tyowdo, × tyohdo
- しゅうり: 〇 syuuri, × syuwri, × shoori, × shoeri
nをmで置き換えるのはヘボン式のルールですが、使用されないケースが多々あり、日本語の記法としては不適格です。
- かんぷ(還付) : 〇 Kanpu, × Kampu
- コンボ: 〇 Konbo, × Kombo, ◎ Combo (本来の英語表記)
- しんまい(新米): ○ sinmai, × simmai
- シャンプー : ○ syanpuu, × syampuu, × shampuu, ◎ shampoo (英語表記)
本ルールはあくまでコードで日本語を使わなければならない時の代替記法ですので、英語圏の人に発音しやすくする配慮は無用です。
英語にできる語句なら最初から英語を用います。
y, aiueo, n の前。
音がつながって元の語句に戻せなくなる場合があります。
- きんゆう(金融): 〇 kinnyuu, × kinyu (記入に見える)
- さんいん(山陰): ○ sannin, × sanin
- いんねん(因縁): ○ innnen, △ innen
- 信用金庫: 〇 sinnyou-kinko , × sinyou-kinko
し尿と読めるのでイメージが悪くなります。
credit-bank , trust-bank など英語表現の使用も検討。
サニン、イネンという言葉は一般的な日本語としてはほとんど使われないため、
強いてnを重ねなくても読み間違える恐れは無いですが、
付けるように統一したほうがバグ予防としては効果的です。
- かし(菓子): ○ kasi, × kashi
- きち(基地) : ○ kiti, × kichi
- くつ(靴): ○ kutu, × kutsu
(この表記に不都合がある場合は base, shoes など英語への置き換えを検討する)
- とっぷう(突風): ○ toppuu, × totupuu × toxtupuu
- がっち(合致): ○ gatti, × gatchi, × gacchi
(この表記に不都合がある場合は equal, identical, match など英語への置き換えを検討する)
会社名、商標などはその登録を調べます。
地名はISO登録を探し、もしあればそちらを使用します。
公式の見解がヘボン式ルールと必ずしも一致していませんので常に調査を必要とします。
人名については複数の記法が混乱しているため、都度本人や関係者に確認を取る必要があります。
- 大阪: 〇 Osaka, × Ohsaka , × oosaka
- 東京: 〇 Tokyo, × Toukyou, × To-kyo-
- オンキョー(会社名) : 〇 Onkyo, × Onkyou
- フルタ(会社名): 〇 Furuta , × Huruta
- サンヨー(会社名): ○ Sanyo, × Sanyou, × Sannyo
これら、ルールの異なる表記については日本語のローマ字表記ではなく、むしろ英語であると考えて取り扱います。 後述の連結処理の際なども別格の語句として取り扱います。
自分で使用する単語を決められる場合は、複数の記法がある単語はなるべく避けます。 ルールが統一適用されていれば問題は無いですが、それでも慣れない人によるミスや、諸事情で取り込めないケースがありえます。
- 一覧: itiran ( ichiran ) → list、items
- 写真: syasin ( shashin, shasin , syashin) → photo, picture, image など
また連語で濁点が入るかどうか怪しい単語も可能なら避けます。
- 親会社(おやがいしゃ/おやかいしゃ) → parent-company または単に parent
- 中敷(なかしき/なかじき) → inner-sole , insole
同音異義語が考えられるときも意味がぶれないように別のものを考えます
- 使用 (仕様) → tukaikata , use, specification
前後に別の語句を補うことで明白になるならそれを補うことを検討します。
- 記事(生地?) kizi → toukou-kizi (投稿記事)
- 服(福?) huku → ihuku (衣服)
- 漢字 (感じ?) kanzi → kanzi-chars ( この語句に限っては世界的認知があるため kanji でもかまわない)
「の」「を」など助詞または「~する」などを付けられる箇所について キャメルケースやスネークケースなどで分割します。
- 公開設定: koukaiSettei , koukai_settei, koukai-settei
後半だけでは単語としておかしくなるものはなるべく続けて書きます。
- 契約先: 〇 keiyakusaki, × keiyaku_saki (「先」だけでは意味が通らない)
- 担当者: 〇 tantousya, × tantou_sya
- 店舗名: 〇 tenpomei, △ tenpo_mei
最後のケースは「名」が「名称」の略であると考えると「店舗の名称」として通るため、切っても不自然ではありません。
ただし他の場面で登場する ~名 の語句との統一性が求められます。
英語でよくある filename なのか fileName なのかと同じ問題であるので同じ方法で対応を考えます。
異なるルールが適用される単語が連結されるときはハイフンかアンダーバーで切ります。
- バター焼き: butter-yaki (英語+日本語)
- 健康サンダル: kenkou-sandals (英語+日本語)
- 東京都: Tokyo-to (ISO登録記法+日本語)
- コンパイラ、エディタ、ビューアの非対応。
開発言語が対応していても編集ソフトやプラグイン類が正常動作しないケースがあります。
今使用しているソフトがセーフでも将来導入する何かが問題を起こすかもしれません。 - 日本語そのものの難しさに起因するもの
- 誤変換。 「並行」と「平行」、「依る」「因る」など紛らわしい変換
- 送り仮名の不一致。「取り消し」と「取消し」のように、同じ語句に対して複数の記法がある