;===========================================
;   新規言語ファイル作成手順
;===========================================

新たな言語DLLのコンパイル環境を整える手順を説明します。

普段からVisualStudioを使用している人は、プロジェクトファイルを読んだだけで手を加える箇所は大体想像がつくと思いますので、さらりと目を通すだけで問題ないかと思われます。

VisualStudioの製品パッケージを持っていなくても、MicrosoftのWEBからVisualStudio 2010 Express を入手してくればコンパイルは可能かと思います。(未確認ですが…)
また、MinGやBuilderのような他の開発環境への移行も試していませんので、その辺りに関する質問にはお答え出来ません。ご了承ください。



[1]----------------------------------------------------------------------------
	公開されている"en"か"jp"のフォルダセットどちらかを新規言語ID名に変更してコピーします。(日本語リソースを改変するなら"jp"、それ以外なら"en"をコピー。)

	例えば、日本語リソースを改変して栃木弁リソースを作したいとき… "jp" --> "tochigi"

	[ディレクトリ]
	  <p6vwemu3_dll_jp>  --[名前を変えてフォルダごとコピー]--> <p6vwemu3_dll_tochigi>
	  <pc6001vw3_dll_jp> --[名前を変えてフォルダごとコピー]--> <pc6001vw3_dll_tochigi>
	  <p6vwemu3_dll_en>
	  <pc6001vw3_dll_en>
	  <source>


[2]----------------------------------------------------------------------------
	コピーしたフォルダ内にはVisualStudio2008/2010のプロジェクトファイルが存在するので、どちらか使用する方のファイル名を新規言語ID名に変更します。
	ソリューションファイル名は変更しないで下さい。

	<p6vwemu3_dll_tochigi>
	  "p6vwemu3_dll_2010.sln"
	  "p6vwemu3_dll_2010_jp.vcxproj" --[rename]--> "p6vwemu3_dll_2010_tochigi.vcxproj"
	  "p6vwemu3_dll_2010_jp.vcxproj.filters" --[rename]--> "p6vwemu3_dll_2010_tochigi.vcxproj.filters"

	<pc6001vw3_dll_tochigi>
	  "pc6001vw3_dll_2010.sln"
	  "pc6001vw3_dll_2010_jp.vcxproj" --[rename]--> "pc6001vw3_dll_2010_tochigi.vcxproj"
	  "pc6001vw3_dll_2010_jp.vcxproj.filters" --[rename]--> "pc6001vw3_dll_2010_tochigi.vcxproj.filters"
	(※ VisualStudio2013など新しいバージョンを使用している場合は、2010のソリューションを、一旦、使用しているVisualStudioのバージョンに変更してから作業を行ってください。)


[3]----------------------------------------------------------------------------
	ソースフォルダ内にある、変更元リソースファイルを新規言語IDで改名コピーします。

	<source>
	  "resource.h"
	  "resource2.h"
	  "script_jp.rc"  --[rename copy]--> "script_tochigi.rc"
	  "script2_jp.rc" --[rename copy]--> "script2_tochigi.rc"
	  "script_en.rc"
	  "script2_en.rc"

[4]----------------------------------------------------------------------------
	ソリューションファイルをテキストエディタで開いて、関連付けされているプロジェクトファイル名を新規言語IDに変更します。"*********_jp.vcxproj" --> "**********_tochigi.vcxproj"

	<p6vwemu3_dll_tochigi>
	  "p6vwemu3_dll_2010.sln" --[edit]--> Project("{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}") = "p6vwemu3_dll_2010", "p6vwemu3_dll_2010_tochigi.vcxproj", "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}"

	<pc6001vw3_dll_tochigi>
	  "pc6001vw3_dll_2010.sln" --[edit]--> Project("{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}") = "pc6001vw3_dll_2010", "pc6001vw3_dll_2010_tochigi.vcxproj", "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}"



[5]----------------------------------------------------------------------------
	今度はプロジェクトファイルとフィルタファイルをテキストエディタで開いて、リンクするリソースファイル名と出力DLL名を新規言語IDに変更します。

	<p6vwemu3_dll_tochigi>
	  "p6vwemu3_dll_2010_tochigi.vcxproj"
	      --[edit]--> <OutputFile>..\source\lang\p6vwemu3tochigi.dll</OutputFile>
	      --[edit]--> <ResourceCompile Include="..\source\script2_tochigi.rc" />
	  "p6vwemu3_dll_2010_tochigi.vcxproj.filters"
	      --[edit]--> <ResourceCompile Include="..\source\script2_tochigi.rc" />


	<pc6001vw3_dll_tochigi>
	  "pc6001vw3_dll_2010_tochigi.vcxproj"
	      --[edit]--> <OutputFile>..\source\lang\pc6001vw3tochigi.dll</OutputFile>
	      --[edit]--> <ResourceCompile Include="..\source\script_tochigi.rc" />
	  "pc6001vw3_dll_2010_tochigi.vcxproj.filters"
	      --[edit]--> <ResourceCompile Include="..\source\script_tochigi.rc" />

	(※ "<OutputFile>"は何箇所もあるので、全て書き換えます。)


[6]----------------------------------------------------------------------------
	ここまで出来たら、一旦、"tochigi"ソリューションを開いてReleaseでコンパイルしてみる。
	"source/lang/"フォルダに目的のDLLが出来ていたらコンパイル環境の構築成功。

	  --build--> "source/lang/p6vwemu3tochigi.dll"
	  --build--> "source/lang/pc6001vw3tochigi.dll"

	エミュレータ実行フォルダの"lang"パスに上のDLLをコピーする。
	エミュレータのシステムメニューを起動し、言語選択リストに"tochigi"が出てきたらOK。

[7]----------------------------------------------------------------------------
	リソースの改変開始。
	テキストエディタでリソースファイルを開いて編集。
	どこで使われている文字列かは何となく想像がつくと思うので特に説明は無し。

	"source/script_jp.rc"  : Resource of system menu.     "PC6001VW3.exe"
	"source/script2_jp.rc" : Resource of emulator module. "p6vwemu3.exe"

	なお、"resource.h"、"resource2.h" はリソースID定義なので改変しない。

	リソースファイル内の "IDS_LANGUAGE_CODE" (LCID) は使用する言語に合わせて番号定義する。
	栃木弁は日本語なので(おぃ)、"0x0411"。


	アフリカーンス語               af        0x0436
	アルバニア語                   sq        0x041C
	アラビア語 (U.A.E.)            ar-ae     0x3801
	アラビア語 (バーレーン)        ar-bh     0x3C01
	アラビア語 (アルジェリア)      ar-dz     0x1401
	アラビア語 (エジプト)          ar-eg     0x0C01
	アラビア語 (イラク)            ar-iq     0x0801
	アラビア語 (ヨルダン)          ar-jo     0x2C01
	アラビア語 (クウェート)        ar-kw     0x3401
	アラビア語 (レバノン)          ar-lb     0x3001
	アラビア語 (リビア)            ar-ly     0x1001
	アラビア語 (モロッコ)          ar-ma     0x1801
	アラビア語 (オマーン)          ar-om     0x2001
	アラビア語 (カタール)          ar-qa     0x4001
	アラビア語 (サウジアラビア)    ar-sa     0x0401
	アラビア語 (シリア)            ar-sy     0x2801
	アラビア語 (チュニジア)        ar-tn     0x1C01
	アラビア語 (イエメン)          ar-ye     0x2401
	バスク語                       eu        0x042D
	ベラルーシ語                   be        0x0423
	ブルガリア語                   bg        0x0402
	カタロニア語                   ca        0x0403
	中国語 (中華人民共和国)        zh-cn     0x0804
	中国語 (香港)                  zh-hk     0x0C04
	中国語 (シンガポール)          zh-sg     0x1004
	中国語 (台湾)                  zh-tw     0x0404
	クロアチア語                   hr        0x041A
	チェコ語                       cs        0x0405
	デンマーク語                   da        0x0406
	オランダ語                     nl        0x0413
	オランダ語 (ベルギー)          nl-be     0x0813
	英語 (オーストラリア)          en-au     0x0C09
	英語 (ベリーズ)                en-bz     0x2809
	英語 (カナダ)                  en-ca     0x1009
	英語 (アイルランド)            en-ie     0x1809
	英語 (ジャマイカ)              en-jm     0x2009
	英語 (ニュージーランド)        en-nz     0x1409
	英語 (南アフリカ)              en-za     0x1C09
	英語 (トリニダード)            en-tt     0x2C09
	英語 (U.K.)                    en-gb     0x0809
	英語 (U.S.)                    en-us     0x0409
	エストニア語                   et        0x0425
	ペルシャ語                     fa        0x0429
	フィンランド語                 fi        0x040B
	フェロー語                     fo        0x0438
	フランス語 (フランス)          fr        0x040C
	フランス語 (ベルギー)          fr-be     0x080C
	フランス語 (カナダ)            fr-ca     0x0C0C
	フランス語 (ルクセンブルグ)    fr-lu     0x140C
	フランス語 (スイス)            fr-ch     0x100C
	ゲール語 (スコットランド)      gd        0x043C
	ドイツ語 (ドイツ)              de        0x0407
	ドイツ語 (オーストリア)        de-at     0x0C07
	ドイツ語 (リヒテンシュタイン)  de-li     0x1407
	ドイツ語 (ルクセンブルグ)      de-lu     0x1007
	ドイツ語 (スイス)              de-ch     0x0807
	ギリシャ語                     el        0x0408
	ヘブライ語                     he        0x040D
	ヒンズー語                     hi        0x0439
	ハンガリー語                   hu        0x040E
	アイスランド語                 is        0x040F
	インドネシア語                 in        0x0421
	イタリア語 (イタリア)          it        0x0410
	イタリア語 (スイス)            it-ch     0x0810
	日本語                         ja        0x0411
	韓国語                         ko        0x0412
	ラトビア語                     lv        0x0426
	リトアニア語                   lt        0x0427
	マケドニア語 (FYROM)           mk        0x042F
	マレー語 (マレーシア)          ms        0x043E
	マルタ語                       mt        0x043A
	ノルウェー語 (ブークモール)    no        0x0414
	ポーランド語                   pl        0x0415
	ポルトガル語 (ポルトガル)      pt        0x0816
	ポルトガル語 (ブラジル)        pt-br     0x0416
	レトロマン語                   rm        0x0417
	ルーマニア語                   ro        0x0418
	ルーマニア語 (モルドバ)        ro-mo     0x0818
	ロシア語                       ru        0x0419
	ロシア語 (モルドバ)            ru-mo     0x0819
	セルビア語 (キリル文字)        sr        0x0C1A
	ツワナ語                       tn        0x0432
	スロベニア語                   sl        0x0424
	スロバキア語                   sk        0x041B
	ソルビア語                     sb        0x042E
	スペイン語 (スペイン)          es        0x040A
	スペイン語 (アルゼンチン)      es-ar     0x2C0A
	スペイン語 (ボリビア)          es-bo     0x400A
	スペイン語 (チリ)              es-cl     0x340A
	スペイン語 (コロンビア)        es-co     0x240A
	スペイン語 (コスタリカ)        es-cr     0x140A
	スペイン語 (ドミニカ共和国)    es-do     0x1C0A
	スペイン語 (エクアドル)        es-ec     0x300A
	スペイン語 (グアテマラ)        es-gt     0x100A
	スペイン語 (ホンジュラス)      es-hn     0x480A
	スペイン語 (メキシコ)          es-mx     0x080A
	スペイン語 (ニカラグア)        es-ni     0x4C0A
	スペイン語 (パナマ)            es-pa     0x180A
	スペイン語 (ペルー)            es-pe     0x280A
	スペイン語 (プエルトリコ)      es-pr     0x500A
	スペイン語 (パラグアイ)        es-py     0x3C0A
	スペイン語 (エルサルバドル)    es-sv     0x440A
	スペイン語 (ウルグアイ)        es-uy     0x380A
	スペイン語 (ベネズエラ)        es-ve     0x200A
	ソト語                         sx        0x0430
	スウェーデン語                 sv        0x041D
	スウェーデン語 (フィンランド)  sv-fi     0x081D
	タイ語                         th        0x041E
	トルコ語                       tr        0x041F
	ツォンガ語                     ts        0x0431
	ウクライナ語                   uk        0x0422
	ウルドゥー語 (パキスタン)      ur        0x0420
	ベトナム語                     vi        0x042A
	コーサ語                       xh        0x0434
	イディッシュ語                 ji        0x043D
	ズールー語                     zu        0x0435

[8]----------------------------------------------------------------------------
	機能表示ビットマップの変更。
	画面の下部に表示される機能表示はデフォルトでは"func.bmp"が使用されているが、
	ファイル名後部に言語IDが付加されているファイルが有ればそちらを優先して
	読み込むようになっている。("func_jp.bmp","func_en.bmp" など…)
	言語を"tochigi"の時は、"func_tochig.bmp"を優先して読み込もうとする。
	日本語・英語以外の言語を使用するときには修正画像を準備する。

[9]----------------------------------------------------------------------------
	リソースの修正が終わったらコンパイルしてシステムを立ち上げてみる。

	以降、Try and Error.

