2016-01-19 17 views
16

私はC#2.0(VS2005)で書かれた1つのプログラムを保守しています。それはかなり大きなコードベースを持っていて、多くの著者が、それはほぼ内部のアプリですが、現在それを使っている私たちの顧客の1人です。C#.NETと外部コンポーネントの翻訳

アプリケーションは多言語対応であり、独自のフォームとコンポーネントの翻訳は正常に動作します。しかし、WeifenLuoのDockPanel Suiteがあり、それを別の言語(zh-CN)に翻訳する必要があります。中国語の人がリソースファイルを自分の言語に翻訳したので、今ではアプリケーションに含めて使用しようとしています。私はそれで失敗している - アプリ全体が中国語ですが、このコンポーネントは英語のままです。非翻訳リソースファイルはgithubの上で見つけることができます:https://github.com/dockpanelsuite/dockpanelsuite/blob/master/WinFormsUI/Docking/Strings.resx

それを行うには?私はほとんどすべて、単純なアプローチを試みた - Strings.zh-CN.resxとしてRESXを追加し、その後、VS2013 ExpressでDockPanelSuiteを開いて、(alでコンパイルし、サテライトアセンブリとしてそれを使用しようとちょうどresgenをもilmergeを試してみました)、何も作品ツールチップなどはまだ英語になっています。

もデバッガで、ステッピングしようとしたが、デバッガがtooltip = Strings.DockPaneCaption_ToolTipAutoHideで破ったが、それが何をどのように、私はこだわっていると私にはわからないStrings.Designer.cs

で定義されたゲッターにステップしませんでしたそれ。何か案が?どうもありがとう!

+0

私は本当に完全にあなたの問題を理解していないが、私は助けることができる一つのことを説明する:「それはゲッターにステップしませんでした」 - それはしません。セッターやゲッターをデバッグするには、特別な方法が必要です。これをチェックしてください:http://stackoverflow.com/questions/4408110/debugging-automatic-properties – Ian

+0

問題は別の言語リソースを別のDLLにコンポーネントに「挿入」できないことです。それはまだ英語を使用します。 –

答えて

6

私は非常に単純なプロセスでのデモアプリケーションでラベルを変換することができました:

  • Gitは
  • ライブラリーのクローンをコピー& Strings.resxが
  • 文字列にコピーの名前を変更するファイル貼り付けます.pt - BR.resx
  • コンパイルが、それは完了だ

(私の場合、私は、 "閉じる" のラベルを翻訳しました) enter image description here

しかし、このプロジェクトは多く Strings.resxファイルが含まれてい

enter image description here

あなたはそれらのすべてを変更しましたか?あるいは、あなたはただ一つを変えましたか? (多分私は私の最初の試みを行ったように間違ったものが、)

+0

こんにちは、お返事ありがとうございます。 良い点ですが、間違っていないと、すべての "テーマ"が.dllを分離してしまい、私はそれらを使用していません。しかし、もちろん、私はどのファイルの文字列が来るかを見るために各resxを更新しようとしました。私が使用しているファイルから来て、翻訳しようとしています (リソース内の "Auto hide" WinFormsUI文字列が私のアプリケーションに登場しました)。 –