問題タブ [globalization]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - .NET での 10 進数型の操作に関する問題
私は .NET で少し奇妙な問題を抱えており、10 進数型を扱っています。私の Web アプリケーションでは、次のグローバリゼーション設定を使用しています。
これを念頭に置いて、次のことを考慮してください。小数値 123.00 は、GBP で £123.00、EUR 123.00 になります (コンマに注意してください)。私が抱えている問題は、10 進数の 123,00 (EUR) から GBP に戻そうとすると、123,000 になるので発生します。これは大きな問題です。
このシナリオでは、アプリケーションは検出されたカルチャに基づいてルックアップ テーブルを参照し、その通貨で価格を表示します。問題が発生するのは、ユーザーが選択を行い、123,00 ユーロから 123,000 ユーロに変換される支払いゲートウェイにデータを送信する準備が整ったときだけです。
これを克服する方法はありますか?
asp.net - ASP.NET ローカリゼーションの問題
Web サイトにローカリゼーションを追加することに成功しました。翌日に来て、それは動作しません。たくさんの投稿を読んだ後、自分自身のトラブルシューティングを行いました。ページが page.aspx.en-US.resx を無視することがわかりました。ページの標準の resx がないため、デザイナーにあるラベルのキャプションが表示されます。en-US を取り出して、デフォルト (page.aspx.resx) にしました。ページには、リソース ファイルにある文字列が正しく表示されます。私は MSDN のチュートリアルを使用しました。同じチュートリアルをインターネット全体で見つけることができます。MSDN のチュートリアルにも貢献しました。認証または偽装を使用している場合は、web.config を介して APP_LocalResources フォルダーへのアクセスを許可する必要があります。
昨日見つけて問題を解決しましたが、現在は page.aspx.en-US.resx を使用していません。デフォルトでない限り、非常に奇妙です。誰かが解決策や提案を持っていますか?
asp.net - ASP.NET はカルチャ設定をどこから取得しますか?
ASP.NET アプリケーションでは、カルチャを lv-LV に設定しています。すべて問題ありませんが、デフォルトの短い日付形式は「yyyy.mm.dd」のようです。クライアントは、それを「dd.mm.yyyy」(実際には LV 標準) にしたいと考えています。ASP.NET は特定のカルチャの日付/時刻設定をどこで取得しますか? 他のカルチャに影響を与えることなく、単一のカルチャに対してどのように変更できますか (アプリケーションはローカライズ可能である必要があります)。
asp.net-mvc - パラメータをモデルにマッピングする際に使用される言語は?
InvariantCulture (16.4) に 10 進形式の値を投稿しましたが、ドイツのシステムでモデルに到達しなかったことに驚きました。
ドイツ語の形式 (16,4) を使用する必要がありました。パラメーターの解析に使用される言語を構成する方法はありますか?
編集:ソースコードにデバッグした後、ValueProviderDictionary に言語固有の部分が見つかりました
PopulateDictionary。そこにあるドキュメントには次のように書かれています。
- リクエスト フォームの送信 (文化を意識する必要があります)
- RouteData からの値 (入力された URL またはルートのデフォルト値からの値である可能性があります)
- URI クエリ文字列
1.CurrentCulture を取得 2./3. InvariantCultureを取る
これは私にはうまくいきません。値を投稿したり、クエリ文字列に入れたりすると、Culture の使用に関して別の動作は期待できません。ユーザーが解析可能な値を手で入力する場合は必要になるかもしれませんが、リストボックスの値を入力する場合は奇妙です。両方のバージョンを切り替えることができれば、理想的な解決策になると思います。
とにかく、PopulateDictionary が呼び出される前に CultureInfo.CurrentCulture を設定する方法を見つける必要がありました。それが私がやった方法です:
language-agnostic - ウェブサイトはローカリゼーション設定をどのように扱うべきですか? (「よくある UI の誤解と煩わしさは何ですか?」より)
元の投稿のコメントで非常に多くの議論を引き起こしたので、私はこれをそれ自体の質問として取り上げることにしました。
SO の多くの人々 (開発者) がローカリゼーションを受けていないのは興味深いことです。これがどのように機能するかについての私の見解です:
私が調べたすべてのブラウザー (およびそこにいる .NET 開発者も) で、ユーザーのカルチャ設定を見ると、それは次の形式になっています: language-Culture.
したがって、次のようになります。
- en-GB - 英語 - イギリスの文化
- en-US - 英語 - 米国文化
- en - 英語 - 不変の文化。
- fr-FR – フランス語 – フランス文化
- fr-CH – フランス語 – スイス文化
- de-CH – ドイツ語 – スイス文化
- de-DE – ドイツ語 – ドイツ文化
.NET フレームワークがサポートする完全なリストについては、MSDNを参照してください。
私が Web サイトにアクセスすると、en 部分から英語が必要であることを認識し、英国に傾斜したもの (数字の形式、日付の形式) に興味があることを認識します。したがって、google.com にアクセスして google.de に移動すると (IP アドレスが原因で)、google.de がすべてを英語で表示する場合はまったく問題ありませんが、google.de はドイツ語であるため完全に間違っています。IP アドレスはほとんど制御できませんが、言語と文化の設定は完全に制御できます。興味がある方は、Microsoft の新しい検索エンジン (bing.com) が適切に処理します。Microsoft が Google と同じように検索を行う方法を学ぶか、Google が Microsoft と同様にローカライズする方法を学ぶことができることを期待しましょう ;)
詳細については、 MSDNに別の優れた記事があります。
では、サイトがローカリゼーションをどのように扱うべきかについて、あなたの推奨事項は何ですか?
asp.net-mvc - asp.net mvc でのローカル リソースとグローバル リソースの単体テスト
MVC で簡単に使用できるように、GetGlobalResourceObject と GetLocalResourceObjet をラップするクラスがあります。モデル検証クラスは、エラー メッセージをリソース ファイルから動的に読み込みます。問題は単体テストです。コードは「~/」を使用しており、ソリューションを実行するとすべてが正しく機能しますが、「System.Web.HttpException: The application relative virtual path '~/」というエラーが常に表示されるため、単体テストの作成方法がわかりません。 ' アプリケーションへのパスが不明なため、絶対パスにすることはできません。」
例外をスローするコードは次のとおりで、式を評価してグローバル リソース オブジェクトを返すために使用されます。
このコードやリソース ファイルを使用する他のコードをテストする方法について何かアイデアはありますか?
sql - グローバル化された日付/時刻形式 (おそらく ISO8601) から SQL Server の datetime 型への変換
SQL が解析して別のオフセットに変換できる日時を表す文字列形式はありますか (EST -> UTC など)。
次のようなユーザーからの文字列があります。
文字列を対応する UTC に変換し、日時フィールドに格納できるようにしたいと考えています。そのような:
これが得られるはずです:
つまり、最初の文字列を指定して、値が '2009-06-26 18:30' の日時を格納したいと考えています。
また、サーバーがユーザーと同じタイムゾーンにないことを想定する必要があります (したがって、オフセット datediff(gettime(), getutctime()) を検出することはできません)。
convert(...) と cast(... as datetime) を使用してみましたが、うまくいきませんでした。
SQL Server 2005 でこれを行う方法はありますか?
c# - ブラウザーでのグローバリゼーション、キャッシュ制御、および HTTP 日付
ブラウザーと、ブラウザーが HTTP ヘッダーで日付を送信する方法についての教育が必要です。ユーザーのブラウザやローカライズが違うと文字列比較ができなくなるのではないかと心配です。
現在、リクエストを処理するために次のようなコードがあります。
目標:壊れたくない。
そこで、いくつかのブラウザーからの要求ヘッダーを調べました。
英語を母国語として IE を使用すると、次のようになります。
言語としてフランス語 (ベルギー) を使用して IE を使用する場合 (「Tue」ではなく「mar」を期待していたでしょう):
何があっても、私は Firefox からこれを取得します:
日付はすべて英語の略語と単一の形式 (RFC 1123) を使用しているように見えるので、これは私には良さそうに見えますが、これがすべての主要なブラウザー、すべてのグローバリゼーションおよびオペレーティング システムに当てはまるかどうかはわかりません (私はWindows マシンでのテストにアクセスできます)。
私はそれを正しくやっていますか?
asp.net - HttpContext.GetGlobalResourceObjectは常にnullを返します
App_GlobalResourcesフォルダーに2つのファイルを作成しました。
どちらにも「SiteTitleSeparator」の値が含まれています。
これが私がやろうとしていることです(次の行は常にnullを返します):
ページのCultureプロパティが設定されていることに注意してください。
VBとC#の両方での回答を歓迎します。
c# - Process.Start カルチャの指定
1 つの webapplication には、呼び出されると、firebird データベースに接続する通常のアプリケーションを開始し、とりわけデータベースからいくつかの日付を解析する IHttpHandler があります。
デスクトップから実行すると、アプリケーションは問題なく実行されます。しかし、 httpHandler から開始すると、間違ったカルチャで終わり、日付の解析に失敗します。web.config と CurrentThread.CurrentCulture の両方にカルチャを設定しましたが、それでも間違ったものになってしまいます。これはすべて、カルチャが sv-SE に設定された英語の Windows Server 2003 から実行されます。
特定のカルチャで System.Diganotics.Process.Start を使用してアプリケーションを開始する方法はありますか? 新しく開始されたプロセスが使用するカルチャがない場合は?