国際化プログラミングにおける一般的な注意点
画像とメディア

アイコン、バナーその他にメッセージが埋めこまれた画像を使うべきではありません。
代わりに、メッセージ無しの画像をツールチップテキストやラベルと共に使うことことが望ましいです。
ツールチップテキストやラベルはテキストデータであり、各言語のものを作るのは簡単です(単純な翻訳となります)。
しかし画像の各言語のバージョンを作るには、デザインツールが必要であり時間も多くかかります。


図1) ツールチップテキストやラベルを使ったメッセージ無しの画像の例
テキストデータを翻訳し切り替えるのみで十分です。


図2) メッセージが埋めこまれた画像の例
このファイルの別の言語のバージョンを作る必要があります。

動画や音声といったメディアについては、それらの各言語のバージョンを作る必要がありますが、しかし上書きをすべきではありません。
メディアファイルを切り替える機能を作ることがよい解決策です。
メディアの切り替えには、言語や国コードを使ってメディアファイルの命名や配置の規則を作り、ロケール機能を使う必要があります。
ロケールについては、各プログラミングの章を参照してください。

以下はJSP内で各ユーザーの言語に対応してメディアファイルを切り替える簡単な例です。

<%
String mediaDirPath = "***";
String voiceDir = "voices";
String voiceFileName = "foo.wav";
String lang = request.getLocale().toString();
if (!new File(mediaDirPath + "/" + voiceDir + "/" + lang  + "/" + voiceFileName)
   .exists()){ 
    lang = "en";
}
%>
<a href="<%=voiceDir + "/" + lang  + "/" + voiceFileName%>">My Voice!</a>

* 'request.getLocale().toString()' は 'en', 'ja', ... (言語コード)を返します。
* メディアファイル(.wav)は以下のように配置されます。
.../voices
     en/foo.wav  ... 英語の音声ファイル(デフォルト)
     ja/foo.wav  ... 日本語の音声ファイル
      ....

国際化プログラミングトップへ


Copyright (C) 2012 Kokusaika JP, Inc.
本ドキュメントを無断で転載および引用することを禁じます。