| main | 一期一会 >>

スポンサーサイト

一定期間更新がないため広告を表示しています


  • 2009.04.28 Tuesday
  • -
  • -
  • -
  • -
  • by スポンサードリンク

VB6での他国語化

いやーまたまた旧に寒くなってしまいました。

近所の小学校ではインフルエンザがまた蔓延しだして学級閉鎖寸前らしいです。



うーむ、しかしこれから3月になって暖かくなってくると憂鬱なことが・・・
私、春になると1ヶ月くらい毎日頭痛に襲われるんですよね。
朝は平気なのに夕方になるとガンガンと・・・



まぁそんな話はさて置き

本日は仕事でVB6を使うことになりまして、というか1年くらいやってまして
ベースは日本語で作ったんですが海外にも出したいらしく?
色々とネットサーフィンした結果、情報が少ないため調べた内容を備忘録として残したいと思います。


あ、


多少知識のある前提で書きますのでご容赦ください。

ってか文章書くの下手なので解りづらかったらすみません^^;



現在では.NET等で多国語化も容易に可能ですが
VB6ではstringリソースに中国語の翻訳を入れてもタダでは表示できません。
あ、ただ地域と言語を換えても無駄です。(実証済み^^;


それはなぜか?


日本語版VB6に付属しているActiveXコントロールがSHIFT-JISでビルドされているからです。




とまぁ、これだけでは語弊があるので詳細に書くと

ocxファイル(ActiveXコントロール本体)はASCIIでビルドされていて
日本語環境では***jp.dllというサテライトDLLと呼ばれるものでSHIFT-JISにすり替えられています。




要は基本英語版で作ってあって他国版は別のファイルから必要部分を読み込んで使用しているってことです。


じゃあどうすればいいの?


そう、***jp.dllを対象言語用のDLLに換えてそれを参照するように変換すればいいんです。



でも他国用はどこで手に入れるんでしょうか?
ちゃんとマイクロソフトが用意してましたw


IPDK(International Package and Deployment Kit)という代物がMSDNに公開されています。

ではIPDKの使用方法を説明します。

1:インストール

上記サイトでIPDK、必要に応じてSP用修正ファイルをダウンロードします。

IPDKをインストールします。

C:¥以下に無条件(非常にウザイ)でIPDKというフォルダが作成されます。

その中に対応する言語のフォルダが作成されています。
修正ファイルをダウンロードした場合はその中身をフォルダ内に上書きしてください。


2:インストーラにディストリビューションウィザードを使用している場合(初心者向け)

コマンドプロンプトを開きます。
IPDKフォルダをカレントフォルダにします。

以下のコマンドを打ち込みます。

例:簡体字中国語へ変換
>PDWizLoc.exe "C;¥MyApp.exe" CHS

構文
>PDWizLoc.exe "インストーラファイルのフルパス" <変換後の言語> <第2言語>

変換後の言語 に関しては Japaneseフォルダ下のipdktool.htmに記載されています。

これでインストーラ内の関係ファイル全てを置き換えてくれます。

至って簡単w


3:サードパーティのインストーラを使用している場合(アプリ本体のみ変換)

・現在のロケールIDとサテライトDLLを確認
コマンドプロンプトを開きます。
IPDKフォルダをカレントフォルダにします。

以下のコマンドを打ち込みます。
>VBLOCAL MYAPP.EXE

これでロケールIDとサテライトDLLが表示されます。
日本語環境でビルドしたものなら
Primary DLL: vb6jp.dll
Primary LCID: 0x411

と表示されるでしょう。


・ロケールIDとサレライトDLLの変更
コマンドプロンプトを開きます。
IPDKフォルダをカレントフォルダにします。

以下のコマンドを打ち込みます。

例:簡体字中国語へ変換
>VBLOCAL MYAPP.EXE vb6chs.dll 0x804

構文
>VBLOCAL <exe ファイル名> <primary .dll> <primary LCID> [<secondary .dll> <secondary LCID>]


vb6chs.dllというファイルはvb6jp.dllの中国語版です。


これでアプリ本体の中国語対応が完了です。

後は他ocxファイル等も同じように変換して各国フォルダから使用するサテライトDLLをコピーして一緒にパッケージすればOKです。
他言語OS上で実行してみるとちゃんと外国語が表示されることを確認できると思います。


もちろんアプリ本体のstringリソースには中国語が入ってることが前提です。
(日本語vb6標準のリソースエディタでは中国語入力できませんが・・・これは機会があれば書きませう)



以上がVB6での他国語化の手順です。


ここで注意!!!

表現として多国語化と他国語化がありますが間違えないでください。


これはあくまで全てのstringリソースを対象言語にする場合のみ有効です。

複数の言語を同時に表示したい場合はこの手段は使えません。
何故なら文字コードが1つしか使えないからです。

いろいろ出したい場合はUnicodeでビルドされたActiveXが必要です。



ググると色々でますが・・・・有償です。(泣


と、まぁ解る人にしか解らないことですが参考になればと思います。



では本日はこれまで


バイバイ!


スポンサーサイト


  • 2009.04.28 Tuesday
  • -
  • 01:45
  • -
  • -
  • -
  • by スポンサードリンク

コメント
全然わかんない〜(^−^
  • Ruvy
  • 2009/03/03 12:12 PM
まぁ畑が違えば全然サッパリだろうね(>_<
  • しみず
  • 2009/03/05 10:11 AM

竿も玉もア○ルも全部隅々まで見られてガマン汁ドクドクっすよヽ( ´ー`)ノ
オマ○コたっぷり見るのもいいけど、見せる方にハマリそう(笑)

日本語vb6標準のリソースエディタでは中国語入力できませんが・・・これは機会があれば書きませう
↑↑
ぜひ書いてください!!
お願いします。
  • Erica
  • 2014/10/20 4:57 PM
コメントする









この記事のトラックバックURL
トラックバック
calendar
    123
45678910
11121314151617
18192021222324
252627282930 
<< June 2017 >>
selected entries
categories
archives
recent comment
recommend
links
profile
search this site.
sponsored links
others
mobile
qrcode
powered
無料ブログ作成サービス JUGEM
2008JUGEMキャラコングランプリ
キャラクターデザイン:磯崎洋助/「おしゃれひつじ」