2009-04-10 15 views
2

すべての文字列がソースコードにハードコードされている大きなMFCプロジェクトをローカライズしようとしています。 (私たちが他の市場に展開する前に、当時はやってみるのが一番簡単でした)私はローカリゼーションツールを見てきましたが、必ずすべての文字列を.rcファイルに入れて、または単にそれが行われたと仮定します。私がチェックしたもののうち、appTranslatorだけが問題であるかもしれないことを示唆し、結果として得られるソースコードの語彙を減らすための便利な機能をいくつか提供しています。MFCでストリングを文字列に挿入するにはどうすればよいですか?

何百人ものファイルを手作業でやっていて、途中で間違いを起こすよりも良いアイデアはありますか?

何らかの製品がありますか?

誰でもこれをやった経験がありますか?

答えて

2

確かめるのは面倒なプロセスです。私は何年も前のような努力に参加しました。我々は手動でそれをしました。あなたはおそらく最小限の膨満できれいなすべての読み込み、チェックなどを行ういくつかの共通のコードを書くことができます。

私はあなたのためにそれを行う製品のことを知らない。

LoadString()メンバーを使用すると、CStringsがあなたの友人かもしれません。

私はCStringから派生させるか、デフォルト値(おそらく現在のハードコードされた値)とその他のエラー条件をカプセル化し、ハードコードされた文字列の代わりに使用するコードを書くでしょう。

CStringを使用しない場合は、std :: stringから派生し、グローバルLoadString()を使用することもできます。ツール用として

: 彼らはあなたのケースのために働くと確信していない。そして、あなたがそれらを検索して置き換えることができ http://technet.microsoft.com/en-us/sysinternals/bb896653.aspxhttp://www.modelmakertools.com/articles/hard-coded-strings.html

を明らかに、このツールは、あなたのexeファイル内のすべての文字列を見つけることができます。

ツールを書くことはかなり簡単だと思います。「文字を探し、それが元の.cppまたは.hファイルに対応するrcファイルにエントリを作成します。テキストの置き換えやコメントの挿入などができます。#includeのリソースID /名前に行番号とファイル名を使用することができます。

+0

おかげで、が、あなたが言及したツールは、彼らが私が必要とすることをするように見えません。私はたぶん数日でPerlで何かを書くことができましたが、ツールを購入するほうが安く、簡単で、信頼性が高いと思っていました。 –

+0

私の場合は、ファイル内のすべての文字列を行番号などと共に一覧表示するためのツールを一緒に投げて、残りの部分を手動で実行します。一度の使用のためにそれを研磨することは、私の意見では返品を減らすことです。私はあなたの仕事を羨ましくない...幸運 – Tim

2

私はそれも知っています後半ちょうど検索エンジンのために。
は、リソースIDからそれを初期化するのCStringの機能があります。

CString((LPCTSTR)IDS_RESOURCE_ID) 
+0

これはまだ手ですべてをすることを意味し、これは私が避けようとしていたものです。 –

+0

2つの方法があります。手動ですべてを文字列テーブルに入れる方法は承認された方法です。これはダイアログでは難しいですが。完成したexeファイルで検索/置換を行うだけの変換ツールもあります。 –

関連する問題