4

asp.net、c#、silverlight、XBAPに基づくアプリケーションの国際化の一環として、最初にアプローチを評価しています。GNU gettext()(POファイル)とMicrosoftのリソース(resx)ベースのアプローチのどちらかを選択する必要があります。したがって、この時点で、MSの方法を使用する必要がある場合に、.csファイル、aspx、ascx、xaml(silverlight)ファイルからリソースファイル(resx)にローカライズ可能な文字列を自動的に抽出する最良の方法を理解しようとしています。

私は以下のオプションを念頭に置いています:

  1. リソースリファクタリングツールですが、ページヘッダーなどのように(翻訳する必要があるかどうかに関係なく)すべての文字列を抽出します。特定の文字列をマークしたり除外したりすることはできません。または、各文字列を手動で選択してから抽出する必要があります(右クリックして[抽出]をクリックします)。
  2. Resharperのローカリゼーション支援。ここでは自動抽出は表示されませんが、文字列ごとに手動で抽出する必要があります。

少し手作業で介入する必要があることは知っていますが、gettext()(gnu gettext()c#またはかなりローカルまたはMSのローカリゼーションアプローチの間で、正しい方向を選択するのに役立つアドバイスがあります。

4

1 に答える 1

7

どちらのアプローチにも長所と短所があります。話し合いましょう。

FairlyLocal

GNU Gettext最初に、最初の調整が必要です。

  1. ライブラリとツールをダウンロードして、プロジェクトに関連する場所にダンプします
  2. サイトのベースページオブジェクトを変更する(手動介入)
  3. xgettextを実行して.poファイルを更新するビルド後のステップをWebプロジェクトに追加します

第二に、文字列の抽出はFairlyLocalそれ自体で処理されています。 第3に、POファイルはによって広く知られているため、文字列の翻訳は社内で行うことも、外部委託することもできますlinguists第4に、いくつかのUTF-8文字(存在する場合)のレンダリングは、Webフォント{eot(trident)、svg(webkit、、geckoprestoます。第5に、ロケールを維持する必要があります(のようにpa-IN languageCode-countryCode)。第六に、 POファイル用にいくつかのコンバーターが利用可能です。第7に、デフォルトロジックは、値のdefault-locale(en-US)リソースにフォールバックします。問題ビルドスクリプトが生成する.poファイルは、デフォルトではUTF8ではありません。翻訳されたテキストに特殊文字を正しく表示させる場合は、POEdit(または同様のもの)でそれらを開き、最初に編集するときにエンコードを明示的に変更する必要があります

MSローカリゼーション

まず、文字列の抽出は。を使用すると非常に簡単Resource Refactoring Toolです。次に、 resgen.exeコマンドラインツールを使用して、.resxファイルをlinguists使いやすくすることができます。

resgen /compile examplestrings.xx.resx,examplestrings.xx.txt

第3に、.NET内のローカリゼーション(ASP.NETProperまたはASP.NETMVCに固有ではない)は、標準のフォールバックメカニズムを実装します。第四に、への依存はありませんGNU Gettext Utils第5に、 CurrentUICultureおよびCurrentCultureを使用して、から、などへのStringsローカリゼーションを実現でき第六に、ここでもウェブフォントが推奨されます。DatesCurrency

ありがとう。

于 2012-12-27T07:34:53.273 に答える