すべてのカテゴリ » インターネット・パソコン » 技術・プログラミング

質問

終了

プログラミングのコツを教えてください。

【やりたいこと】
1つのソースコードで
日本語環境、英語環境を選ばせる
(TOPページでUI上で環境選択させて共通化)

今、C++で記述されているプログラムを英語環境でも動作するように、
英語環境用にプログラミングして作るのではく、TOPページで環境を選択させて
選べるようにして共通化しようと思っています。
(UIのみを英語にすればいいので)

【コツがあれば知りたい】
コードの記述で、UIだけの変更ですが、Aボタンが押下されたときは
100行から200行までの処理を実行させるとか、
結構手間の要する作業で、非常に時間がかかっています。
従来日本語用のUIでやっていた処理を置き換えるが結構難しいです。。
また、人が作ったプログラミングなので、プログラム暦のない私にとって
かなり理解するもの苦しいです。

何か、プログラミングをする上で、コツみたいのはありますでしょうか?

漠然とした内容で恐縮ですが、プログラミングに長けた人のご意見を参考にしたく、
苦渋の決断で質問させていただきました。

よろしくお願いします。

【開発環境】
Micorosoft Visual C 6.0
Windows2000

  • 質問者:初心者
  • 質問日時:2008-12-14 15:30:19
  • 0

回答してくれたみんなへのお礼

皆さん、ご回答ありがとうございました。

非常に勉強になりました。
今後ともよろしくお願いします。

VC++は経験が無いのですが、リソースファイルのような物は無いのでしょうか?

アプリケーションを多言語対応する場合、UI部分を別途リソースファイルに全て記述します。
例えば、"確認ボタン"を他言語対応する場合はこうします。

まず、日本語のリソースファイル(仮にjapanese.resource)に
 CAP_BTN_SUBMIT="確認"
と定義します。
同様に英語のリソースファイル(仮にenglish.resource)に
 CAP_BTN_SUBMIT="OK"
と定義しておきます。

プログラムの方は、選択言語によって読み込むリソースファイル名を切り替えます。
日本語を選択した場合はjapanese.resource、英語を選択した場合はenglish.resourceですね。
その後、指定されたリソースファイルを読み込みます。
読み込んだデータから、CAP_BTN_SUBMITの値を取得します。
取得した値を、確認ボタンに表示します。

・指定されたリソースファイルを読み込む。
・読み込んだデータからボタンのキャプションの値を取得する。
・取得した値をボタンに表示する。
この3つの作業は言語を問わずに共通化できます。

このやり方なら、後から対応言語が増えても
 ・新規言語のリソースファイルを用意する。
 ・言語選択でリソースファイル名を切り替える処理を追加する。
だけで対応できるようになります。

この回答の満足度
  
とても参考になり、非常に満足しました。回答ありがとうございました。
お礼コメント

ありがとうございます。

対応をしてみようと思います。
感謝です。

並び替え:

やりたいことがよくわかりませんが表示文字列を替えるだけでいいのでしょうか。
でしたら、文字列を外部ファイルにしておいて設定ファイルで切り替えるだけで
済むような気がします。

これでしたらプログラムを変更する必要なく文字列の変更だけで済みます。
UI(ボタンとか見かけ)自体を変更する場合も同様です。

この回答の満足度
  
とても参考になり、非常に満足しました。回答ありがとうございました。
お礼コメント

ご回答、ありがとうございます。

UI上の文字列を変更できれば、それでよいです。
外部ファイルにしておいて、それをうまく利用してみようと思います。
やり方がわからないので、調べてみます。

ボタンを押したときに処理をするので、ボタン上の文字列のみを変えていく
という発想が生まれませんでした。

非常に参考になりました。ありがとうございました。

処理系をどこで分岐させるか、ですね。
ジャンプテーブルを設定しておいて、各モジュールに処理を飛ばしています。
モジュール自体は、サブルーチンごとにファイルを作っておけば、デバックが楽です。

  • 回答者:右365度 (質問から4分後)
  • 1
この回答の満足度
  
とても参考になり、非常に満足しました。回答ありがとうございました。
お礼コメント

ご回答ありがとうございます。

ジャンプテーブルの設定とは、フラグ?のようなものでしょうか?
実際の実装でのイメージは、どんなものでしょうか?

関連する質問・相談

Sooda!からのお知らせ

一覧を見る