問題タブ [setlocale]
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.
php - PHP setlocale は、Windows で他のスクリプトによって変更されましたか?
背景: Windows Server で実行されているイントラネット CMS。イントラネットから生成した一部のレポートに、setlocale
そのスクリプト用に構成されたレポートが含まれていないと、ユーザーから苦情が寄せられることがあります。これは、März
(ドイツ語) を取得する代わりにMarch
(英語) を取得することを意味します。
私が持っているPHPスクリプトのすぐ上に:
setlocale(LC_TIME, 'de_DE','deu');
これが返されますstring(19) "German_Germany.1252"
。これは 99.9% の確率で問題なく動作します。
PHP ページに次の警告があります。
ロケール情報は、スレッドごとではなく、プロセスごとに保持されます。Windows 上の IIS や Apache などのマルチスレッド サーバー API で PHP を実行している場合、スクリプト自体が setlocale() を呼び出すことはありませんが、スクリプトの実行中にロケール設定が突然変更されることがあります。これは、同じプロセスの異なるスレッドで同時に実行されている他のスクリプトが原因で発生し、setlocale() を使用してプロセス全体のロケールを変更します。
これは私にとって何を意味するのでしょうか?スクリプトが実行される一瞬で、他のスクリプトが私の設定を上書きして英語に設定されますか?
とにかく、これをまともな方法で克服するにはどうすればよいですか?
NBこれに関して同様の質問がありますが、私の質問には完全には答えていません。
php - Web サイトで言語を指定する
サイトでロケールを設定するにはどうすればよいですか? つまり、ウェブサイトのテストでは、言語を設定していないと表示されます..
私はこのようにhtmlで試しました:
しかし、誰かがその方法ではないと言った、テストでもまだ言語が設定されていないと言っている
php - PHP 数値セパレータ、setlocale
最近、非常に興味深い問題に出会いました。Web サイトに次のコードがあり、10 桁、ピリオド (.)、2 桁から 4 桁で構成される数値を生成します。また、gettext 関数を使用して、ページを他の 2 つの異なる言語に翻訳します。
ここまでは順調ですね。がen_UK$lang
と等しい場合、必要なものが得られます (1234567891.1234)。
しかし、がit_ITまたはde_DE$lang
と等しい場合は、フォーマットを 10 桁に変更し、その後にCOMMAが続き、その後に 2 ~ 4 桁 (1234567891,1234) が続きます。$my_number
なぜこれが起こるのですか?どうもありがとう :)
windows-xp - "libstdc++.dll" および "libgcc_s_dw2-1.dll" 内の "msvcr.dll" ではなく "msvcr100.dll" をリンクするように MinGW をトリガーする方法は?
プラットフォーム: Windows XP; MingGW (gcc v.4.7.2)
トピックで述べたように、どうすればこれを達成できますか?
なんで?アプリケーションを MinGW でコンパイルすると、Windowsx XP でマルチスレッド アプリケーションがクラッシュすることがわかりました。バックトレースによると、アプリケーションは「msvcrt.dll」に組み込まれている「setlocale」関数でクラッシュします。
Visual Studio 2010 でアプリケーションをコンパイルしようとしましたが、依存関係ウォーカーが明らかにしたように、「msvcr100.dll」がリンクされており、「setlocale」関数のより堅牢なバージョンが含まれている可能性があるため、そのようなクラッシュはないと判断しました。
ここでバックトレース:
私の質問は、「libstdc++.dll」および「libgcc_s_dw2-1.dll」内の「msvcr100.dll」に対してリンクするように MinGW をトリガーする方法です。
私はすでにスペックファイルを次のように適応させています:
*libgcc: %{mthreads:-lmingwthrd} -lmingw32 %{shared-libgcc:-lgcc_s} %{!shared-libgcc:-lgcc_eh} -lgcc -lmoldname -lmingwex -lmsvcr100
しかし、言及されたdllはまだdllの記述内にリンクされているため、これは役に立ちません。埋め込まれた画像を見てください:
これまでありがとう!
Br
php - PHP: setlocale() が機能しない
php -r 'setlocale(LC_ALL, "ru"); echo date("F", time()), "\n";'
ロシア語ロケールを設定しているにもかかわらず、「June」を英語で出力します。
(ロシアの月名で) 必要に応じて機能しないのはなぜですか?