Forms、UserControls、デフォルトの Winform Controls、および DevExpress コントロールを含む WinForm アプリケーションのローカライズを実装する方法を探しています。
このアプリケーションには 2 つの重要な要件があります。
- 実行時に言語を変更する可能性
- お客様が翻訳を変更する可能性
- 新しい言語と新しい翻訳を追加する可能性
リソースは埋め込まれており、編集できないため、resource.resx を使用することは、この要件に対する適切なソリューションではありません。
おそらく、この「問題」を解決するために利用できるライブラリ、記事、またはそのようなものが既にあるのでしょうか?それ以外の場合、これらの要件を処理するための最良のアプローチは何ですか?
データベース ソリューションについて考えていましたが、パフォーマンスに関しては少し心配です。みたいなことを考えていました
- BaseForm と BaseUserControl を実装する
- this.controls を反復し、すべてのコントロールのキャプション/テキストを取得する load メソッドを実装します (ネストされたコントロールの場合も) q: textbox.text ではなく label.text であることを確認する方法
- データベースにクエリを実行して、翻訳されたキャプションを取得します
- クエリされたキャプションがデータベースにない場合は、後で翻訳するためにキャプションを含む新しい行を作成します
これまでのところ、考え抜かれていません;)