2011 年 3 月 3 日 のアーカイブ

ローカライズ作業とは何だ

2011 年 3 月 3 日 木曜日

生まれて来たのはなぜだ♪~、教えてボクらは誰さ♪~
という訳で、今回の記事は webOS の日本語化を更に進めるための、ローカライズ作業について書きますね。

もう皆さんお気付きかと思いますが、webOS 2.x.x になって、各アプリごとのresourcesフォルダ以下の構造に、多少の変更が加えられています。

まず1.x.xの頃はどうだったかを振り返ってみますと

◆1.x.x のフォルダ構成

com.palm.app.アプリ名
    └──resources    
          └──ja_jp    
              ├──appinfo.json    
              ├──strings.json    
              ├──stylesheets    
              │       └──*.css    
              └──views    
                  ├─ビュー名1    
                  │   └──*.html
                  ├─ビュー名2    
                  :   └──*.html
                  :
                  └─ビュー名n
                      └──*.html

以上のようにリソースは「言語_国」と一対の構造でしたよね。
ところが、2.x.xでは「言語」を親として、そこにそれぞれの「国」がぶら下がる、という構造に変更されたみたいです。

◆2.x.x のフォルダ構成

例えば「日本語」の場合、この言葉を使うのは「日本」だけですから、フォルダ構造は以下のようになります

(単一の国で使用される言語の場合)

com.palm.app.アプリ名
    └──resources    
          └──ja    
             ├──appinfo.json    
             ├──strings.json    
             ├──stylesheets    
             │         └──*.css    
             └──views    
                  ├─ビュー名1    
                  │  └──*.html
                  ├─ビュー名2    
                  :  └──*.html
                  :
                  └─ビュー名n
                     └──*.html

ところが「スペイン語」のように、その言葉を使う国が複数存在する場合、フォルダ構造は以下のように、ちょいと複雑になってきます。

(複数の国で使用される言語の場合)

com.palm.app.アプリ名
    └──resources    
          └──es    
             ├─es
             │    ├──appinfo.json
             │    └──strings.json
             │
             ├─mx
             │    ├──appinfo.json
             │    └──strings.json
             │
             ├──appinfo.json *1
             ├──strings.json *1    
             │
             ├──stylesheets    
             │            └──*.css    
             └──views    
                 ├─ビュー名1    
                 │      └──*.html
                 ├─ビュー名2    
                 :      └──*.html
                 :
                 └─ビュー名n
                    └──*.html

*1 : 国によらずその言語共通の部分

◆strings.jsonの内部構造と翻訳方法

次に、strings.jsonの内部構造とその翻訳方法について、このファイルの中身は

“オリジナルの英文” : “それを翻訳した文” ,

という書式のレコード(行)が、ASCIIコード昇順に列記されたものです。
例えば以下のような構造になっています


{
     ” (Default Calendar)”: ” (デフォルトのカレンダ)”,
     ” and “: ” と “,
     ・
     ・
     ・
     “year(s)”: “年間”,
}

以上のように、1レコード(行)ずつ手作業で翻訳する作業になります。

◆ビュー(html)の翻訳方法

ビュー(html)には、strings.jsonのような規則性は有りません
翻訳すべき英文表記の文字列部分を見つけ、ひとつひとつ地道に翻訳する作業となります

<div id=”pav_no_calendars_msg” class=”palm-body-text”>
          You do not have calendars enabled for this account.
</div>

というような英文表記の文字列部分があれば、例えば

<div id=”pav_no_calendars_msg” class=”palm-body-text”>
          あなたはこのアカウントでカレンダを有効にできません.
</div>

という風に書き変えて行く作業となります

以上、説明しましたことは webOS 自体のローカライズに留まらず、海外のアプリを日本語化するときにも応用できる基礎知識です。