『Fy Mascot』-ランゲージファイルを作る

はじめに

『Fy Mascot』には、来るべきグローバルな世の中に対応するため多言語に対応しています 。

セリフに関しては、Unicodeで処理しているのでフォントさえ対応していれば基本的には表示可能です。ただし、右から左に記述する言語は未対応です。

また、プロパティシートの文章やメニューの文字、ダイアログボックスの内容は『ランゲージファイル』として分かれて保存されており、これを切り替えることでさまざまな言語に対応できるようになっています。標準では日本語と英語に対応していますが、『ランゲージファイル』を追加することで他の言語にも対応できます。

picture

『ランゲージファイル』は『Fy Mascot』のプログラムルートの『language』フォルダに保存されています。実際に作成する際は、デフォルトで添付されている『ランゲージファイル』のデータを参考にするとわかりやすいと思います。

ランゲージファイル

ランゲージファイルは『Fy Mascot』の他の情報ファイルなどと同じくXML形式のテキストファイルです。

ランゲージファイルのコンフィグレーション部分の構成は以下のようになっています。

picture

初回起動時のランゲージファイルは以下の設定ファイルの情報をもとに選択されます。

(ファイル名は自由).xml
<?xml version="1.0" encoding="UTF-8"?>
<document>
   <type>LANGUAGE</type>
   <information>
      <name>言語名(英字)</name>
      <version>バージョン</version>
      <craftsman>制作者</craftsman>
   </information>
   <configuration>
      <data>設定情報...</data>
      <property>アイテム...</property>
      <menus>アイテム...</menus>
      <dialogs>アイテム...</dialogs>
   </configuration>
</document>

DATA

『ランゲージファイル』の設定情報を記述します。

 <data>
   <label>言語名(プロパティシートで選択肢に表示、必ず英字)</label>
   <id>ロケールID(LCID)</id>
   <font>フォント</font>
   <fontsize>フォントサイズ</fontsize>
   <charset>文字セット</charset>
</data>

<id>にはロケールIDとよばれる数字を記述します。ロケールIDはマイクロソフトが定めた言語をあらわすコードで、GetSystemDefaultLCID関数の戻り値などに利用されています。例えば、1041が日本語、1033が英語、のように定められています。

フォントにはフォント名を記述します。『Fy Mascot』を実行するWindowsに入っている必要があるので、標準的なフォント(日本語ならMSゴシック、英語ならTahomaなど)をお勧めします。

文字セットは以下のものから適切なものを選択します。

言語 文字セット
英語、ドイツ語、フランス語など
(西ヨーロッパ文字)
WESTERN
日本語 JAPANESE
ハングル文字 HANGUEL
中国語(繁体字) TCHINESE
中国語(簡体字) SCHINESE
ギリシャ語 GREEK
トルコ語 TURKISH
タイ語 THAI
東欧語 EEUROPEAN
ロシア語 RUSSIA
ベトナム語 VIETNAMESE
バルト語 BALTIC

PROPERTY

プロパティシートとそのツールチップのテキストです。

ツリーの大分類(『本体』,『キャラクター』,『テーマ』,『オプション』,『バージョン』)を<labels>に、各プロパティシートの内容を<sheets>に記述します。

picture
<property>
   <labels>
      <items>
         <item id="1">アイテム1</item>
         <item id="2">アイテム2</item>
         ...
      </items>
   </labels>
   <sheets>
      <sheet label="xxxxx">アイテムX</sheet>
      <sheet label="yyyyy">アイテムY</sheet>
      ...
   </sheets>
</property>

<sheets>の中に<sheet label=”○○”>の形で各ページの内容を記述します。<label>にツリーに表示される項目名、<items>にシート内の各項目が記述されます。

<sheet label="system1">
   <label>タイトル</label>
   <items>
      <item id="1">アイテム1</item>
      <item id="2">アイテム2</item>
      ...
   </items>
</sheet>

一つ一つのアイテムは、ID(数字)で管理されており、そのツールチップ(カーソルをあてていると表示される説明)はID+100000となっています。例えば、『system2』のシートで独り言を言わせるかどうかのチェックボックスのIDは2なのですが、そのツールチップは100002となります。

<item id="2">独り言</item>
<item id="100002">キャラクターに独り言を言わせるか設定します。</item>

MENUS

メニューの項目のテキストです。 クリックで表示されるメインメニュー<main>と右クリックで表示されるインフォメーションリストのアイテムを記述します。

<menus>
   <menu label="main">アイテム...</menu>
   <menu label="information">アイテム...</menu>
</menus>

DIALOGS

ダイアログの内容のテキストです。 システムでのダイアログと設定でのダイアログごとに設定します。

<dialogs>
   <dialog label="main">アイテム...</dialog>
   <dialog label="sheet">アイテム...</dialog>
</dialogs>

初回起動時のランゲージファイル

『Fy Mascot』では、初回起動時にシステムのロケールIDを使って適切な言語(ランゲージファイル)を選択するようになっています。

Windows ではロケール ID と呼ばれるID(数字)でシステムの言語を管理しています。例えば日本語は『1041』です。このロケールIDと言語ファイルの対応が『language』フォルダに中にある『language.ini』というテキストファイルに記述されています。このテキストファイルは、メモ帳等で編集することができます。

picture

例えば『1041=japanese.xml』で、日本語のロケールIDである『1041』に対応する言語ファイルを『japanese.xml』に設定しています。他の言語も同様に設定できます。また、『OTHER=1033』の行で、リストにないロケールIDだった場合はロケールIDが1033(英語)のランゲージファイルを選択するようにしています。

※1 例えばすでにある日本語でも、独自の言い回しのオリジナルのランゲージファイル(大阪弁とか)を作って、初回起動時に選択させることもできます。

※2 このリストにないランゲージファイルも設定のプロパティシートで選ぶことができます。

※3 二回目以降はセーブデータを初期化しない限りは、選択されているランゲージファイルが選択されます。