SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

C#による多言語対応アプリケーション開発のコツ

Visual C# 2008で多言語対応を行う

  • このエントリーをはてなブックマークに追加

 C#言語(以下、C#)とVisual C# 2008(以下、VC#)を用いると、驚くほど簡単に多言語対応アプリケーションを作成することができます。しかし、多言語対応アプリケーションを作るための文書はネット上に散見していて、まとまった情報を手に入れることが難しいのが現状です。そこで本稿では、オープンソースソフトウェアの日本語化を通じて筆者が知った多言語化に関するTipsをまとめてみようと思います。

  • このエントリーをはてなブックマークに追加

0.はじめに

 C#言語(以下、C#)とVisual C# 2008(以下、VC#)を用いると、驚くほど簡単に多言語対応アプリケーションを作成することができます。

 しかし、多言語対応アプリケーションを作るための文書はネット上に散見していて、まとまった情報を手に入れることが難しいのが現状です。

 そこで本稿では、オープンソースソフトウェアの日本語化を通じて筆者が知った多言語化に関するTipsをまとめてみようと思います。

1.イントロダクション

.NET以前の多言語化

 .NET環境が登場する前は、多言語化を行うために利用するツールと言えば、もっぱらgettextを用いたものでした。gettextを使うと、プログラマは、標準的な関数名にgettext独特のsuffixを付け加えればよく、gettextはそれ以上の手間を要求しないことが大きなアドバンテージとなっていました。

 多言語化については別途用意した言語ファイルを用いて行うことができたため、翻訳作業にプログラマ以外の人間が参加できるという点もgettextの大きな特徴で、これも手伝い、オープンソースソフトウェアを中心に広く普及しました。

 これはプログラム中に多言語対応したメッセージを埋め込まなくてよいという、画期的な方法でした。こうして、プログラム自体はひとつで、言語ファイルを入れ替えることによって多言語に対応するというスタイルが定着したのです。

.NET環境下における多言語化

 さて、本稿で取り上げるC#とVC#による多言語化の手法も、基本的にはこの考え方と同じです。

 アプリケーションの内部には多言語化されたメッセージを埋め込まず、リソースという形で多言語のメッセージを用意しておきます。後は、このリソースをコンパイルし、プログラムと共に配布すれば、プログラムが実行時に自動的に必要な言語のファイルを読み込んでくれるという仕組みです。

 しかも、.NET環境下においては、海外で作成された(多言語化を考慮していない)アプリケーションであっても、gettextのようにすべての表示関数にsuffixを付け足すような手間なく、多言語化対応が可能になっています。

 これは、特にWindowsフォームアプリケーションや、既定のコンポーネントを利用したプログラムにおいて顕著で、多言語化の敷居は、従来よりぐっと下がったと言えます。

2.対象読者と開発環境

 対象読者として、C#によるプログラミング経験があり、アプリケーションの多言語化について興味を持っている人を想定しています。また開発環境として、前述のとおりVisual C# Express Edition 2008 SP1を用います。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
3.Windows Form Application とコンポーネントの多言語化

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

太田 晃(オオタ アキラ)

 ブログ(http://repse.blogspot.com/)では、coLinux上にMinGWを用いてクロスコンパイル環境を構築し、そのうえでSDLやOpenGLを使ってWindows向けのプログラムを書くとか、海外のソフトウェアを(勝手に)日本語化するとか、Windowsのインデックスサービ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3288 2008/12/19 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング