Skip to content

Instantly share code, notes, and snippets.

@tscontenna
Last active June 7, 2024 06:19
Show Gist options
  • Save tscontenna/819e4f609a802876c4a1bbb9a2a612de to your computer and use it in GitHub Desktop.
Save tscontenna/819e4f609a802876c4a1bbb9a2a612de to your computer and use it in GitHub Desktop.
効率的なコーディングのためのローマ字ルール

ja_roman_cs

効率的なコーディングのためのローマ字ルール

ソフトウェア開発において、コーディングルールはたくさんありますが一般的には英語がベースとなり、
日本語など英語以外の言語を扱う場合の規定は含まれないものがほとんどです。

変数名、ファイル名、その他あらゆる箇所において、 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

ラ行は常に R とする。 L は使わない。

じ、ず、ぢ、づは以下の通り

zi, zu, di, du

これも元の日本語に戻せるように。

j が使用されることは無い

これを許すと 「じ」に対し ji, zi の 2パターン、 「じゅ」に対して ju, jyu, zyu の3パターンができ、脆弱になります。

長音のためにハイフンを用いない。また英語風のh,w,oo,oeなどを用いない。

ハイフンを無暗に使うと単語境界が分かりにくくなり、他のシステム上の命名規則との衝突も起きやすくなります。
英語風長音は復元時に違う単語になる恐れがあり、日本語かどうかも分かりにくくなります。

  • おおきい : 〇 ookii , × ohki , × o-ki-
  • しょうひょう : 〇 syouhyou , × shohyo, × sho-hyo-
  • ふうそく: 〇 huusoku, × fu-soku, × fusoku
  • ちょうど: 〇 tyoudo, × tyowdo, × tyohdo
  • しゅうり: 〇 syuuri, × syuwri, × shoori, × shoeri

ンの次がM,P,Bのときに、ンをmにしない

nをmで置き換えるのはヘボン式のルールですが、使用されないケースが多々あり、日本語の記法としては不適格です。

  • かんぷ(還付) : 〇 Kanpu, × Kampu
  • コンボ: 〇 Konbo, × Kombo, ◎ Combo (本来の英語表記)
  • しんまい(新米): ○ sinmai, × simmai
  • シャンプー : ○ syanpuu, × syampuu, × shampuu, ◎ shampoo (英語表記)

本ルールはあくまでコードで日本語を使わなければならない時の代替記法ですので、英語圏の人に発音しやすくする配慮は無用です。
英語にできる語句なら最初から英語を用います。

Nの重ね字は使用しないが、読み違えが発生する恐れのあるものについて配慮する。

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登録記法+日本語)

日本語にまつわる諸問題

  • コンパイラ、エディタ、ビューアの非対応。
    開発言語が対応していても編集ソフトやプラグイン類が正常動作しないケースがあります。
    今使用しているソフトがセーフでも将来導入する何かが問題を起こすかもしれません。
  • 日本語そのものの難しさに起因するもの
    • 誤変換。 「並行」と「平行」、「依る」「因る」など紛らわしい変換
    • 送り仮名の不一致。「取り消し」と「取消し」のように、同じ語句に対して複数の記法がある
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment