システムを開発するとき、多言語対応を意識していますでしょうか?

一度日本語専用でゴリゴリに作ってしまったシステムを後から多言語対応しようと思うと非常に手間(工数)がかかります。工数がかかるという事は、開発サイドだけで無く、お客様サイドにも負担が発生してしまうので、将来的な国際展開を見据える可能性がある場合は、初期段階から多言語を意識した作りにしておきたいですね。

今回は、まちいろが多言語対応するときに意識しているポイントについてお話させていただきます。

利用フレームワーク選定とi18nお作法の理解

多言語対応時は、メッセージリソースの切替など必要ですが、利用するプログラミング言語や開発フレームワーク側でどのような対応を行うのが一般的か調査しておく必要があります。

i18nはプログラム変更なしで、各言語、各地域に適合できるようにするソフトウェア開発の設計手法なので、各フレームワークでのi18n実現化方法に準拠していきたいものです。

まちいろではPlay frameworkを利用しているため、Playが用意している多言語対応の仕組みを活用し、その仕組みに準拠して開発するようにしています。

Playの多言語対応では、メッセージファイルの外部化をしておけば、利用者の言語(端末の言語設定)に応じて、自動的に読み込むメッセージファイルを切り替えてくれるようになりますので、メッセージをプログラム内やHTMLファイル内にベタで書かず外部ファイル化しておくと、多言語対応はスムーズにできます。

Play frameworkでは、設定ファイル(application.conf)にて以下のように対応言語をカンマ区切りで指定しておきます。

[text]
application.langs=”ja,en,en-US,fr,zh_CN”
[/text]

jaとかっていうのは、ロケールコードです。同じ国でも中国語の文字(簡体字と繁体字)のように、文字が異なるケースがあるので注意してください。

メッセージファイルは、言語ごとに別で用意しておきます。conf/messages.ja、conf/messages.zh_CNといった具合です。メッセージが増えてきたら、各言語ファイルに追加していく必要があるので、そこが忘れやすいところだったりはします。

HTML側は以下のように記述します。

[html]

&{‘views.common.title’}

[/html]

メッセージファイルでは、プロパティ形式で記述します。値の部分を言語に合わせた文字に置き換えていきます。

[text]
views.common.title = 販売管理システム
[/text]

文字コードはUTF-8

データベース側、HTMLの文字コードどは当然「UTF-8」にしておいてください。

画面設計時の注意点

メニューの文字はできるだけテキストベースにしておきましょう。

忘れやすい部分としては、JavaScriptも注意が必要です。できるだけJavaScriptでのalert()メッセージは出さないようにするか、出す必要がある場合は、JS用のメッセージファイルを作ってそれを言語に合わせて読み込まれる対応が必要となってしまいます。

また、アイコンなどを活用して、文字ではなく、視覚的に一目で分かりやすくする工夫も有効だと思います。説明不要なUI、マニュアル不要のUIは多言語対応に限らず重要なポイントですね。

以上、多言語対応時のポイントでした。多言語対応は手間もありますが、最初から意識して開発チームの習慣化しておけば難しくありませんね。皆さんで日本発の世界に通用するアプリケーションをどんどん開発していきましょう!