Migdal

なめくじ
なめくじ

Posted on

アラビア語カタカナ表記:変換用プログラムコード(Javascript)

前の記事で紹介した、アラビア語カタカナ表記について、アラビア文字のテキストをカタカナに変換するプログラムを作成しました。

半角カタカナへの変換にも対応しています。

以下はそのJavascriptコードです。

const transliterationList=[
    ['أ','ア゚','ア゚'],['إ','イ゚','イ゚'],['ئ','イ゚','イ゚'],
  ['ؤ','ウ゚','ゥ゚'],['آ','ッァー','ッァー'],['ا','',''],
    ['ب','','ブ'],['ت','',''],['ث','セ゚',''],
    ['ج','','ジ'],['ح','',''],['خ','',''],
    ['د','','デ'],['ذ','','テ゚'],['ر','',''],
    ['ز','','ズ'],['س','',''],['ش','',''],
    ['ص','','ソ'],['ض','','ド'],['ط','',''],
    ['ظ','ト゚','ゾ'],['ع','ア゙','ア゙'],['غ','','ゴ'],
    ['ف','',''],['ق','',''],['ك','',''],
    ['ل','',''],['م','',''],['ن','',''],
    ['ه','',''],['و','',''],['ي','',''],
    ['ى','',''],['ی','',''],['ء','',''],
    ['ة','',''],['پ','','ペ'],
    ['گ','','ギ'],['چ','',''],['ژ','','ヅ'],
    ['ْ','',''],['ََ','ァン','ァン'],['ِِ','ィン','ィン'],
    ['ُُ','ゥン','ゥン'],['َ','',''],['ِ','',''],
    ['ُ','',''],['ً','ァン','ァン'],['ِ','ィン','ィン'],
    ['ٌ','ゥン','ゥン'],['ّ','',''],['ـٰ','ァー','ァー'],
    ['ٰ','ァー','ァー'],['ـ','','~'],['ٱ','',''],
    [' ','',''],[',','',''],['.','',''],
    ['!','','!'],['؟','','?']
];
function arabic_katakana_transliterate(str,hankaku=false){
    let r=str;
    transliterationList.forEach(d=>r=r.replaceAll(d[0],d[hankaku?2:1]));
    return r;
}
Enter fullscreen mode Exit fullscreen mode

デモ画面はこちら

補足

今回の制作にあたって、前の記事で作成した文字変換表と一部変更・追加になった部分があります。

プログラムで変換する都合上、複数のカタカナ表記ができたものは一本化しました。

また、一部のペルシャ文字も変換できます。ただし、これはあくまでアラビア語の文章の中にペルシャ語が入った時の互換性に対応するためのものであり、ペルシャ語の文章を翻字しようとするものではないことに注意してください。

元の字 発音 カタカナ 備考
ت [t] 「タ」から変更。口の縦の開き具合を咽頭化音と差別化するため、より縦に狭い音のカタカナを採用
ث [θ] セ゚ 「サ゚」から変更。理由は同上
د [d] 「ダ」から変更。理由は同上
ذ [ð] テ゚ 「タ゚」から変更。理由は同上
ظ [ðˁ] ト゚ 一本化
ة [t],[h] 一本化。tとhの間っぽい文字を採用。元はtともhとも発音する字である
أ [ʔ] ア゚ 一本化。元の表記が明確な方を採用した
إ/ئ [ʔ] イ゚ 一本化。理由は同上
ؤ [ʔ] ウ゚ 一本化。理由は同上
ـّ (子音重複) 一本化。半角表記では、フォントによって半角の幅になる事がある「〃」の方を採用した
(スペース) - デジタルでは元々全角スペースへの変換としていたが、ひらがなが途中で改行されてしまうため、単語の区切れをより明確化するために変更。手書きの場合は必要なし
پ [p] ペルシャ文字
چ [tʃ] ペルシャ文字
ژ [ʒ] ペルシャ文字
گ [g] ペルシャ文字

Top comments (0)