アカウント名:
パスワード:
GPLで公開しているWindowsのソフトが動かないとメールが来たことがある。イタリアからだった。調べたら小数点が","なので、とりあえず、コントロールパネルで言語をEnglishにしてくれと返事をした。時間ができたら、直しておかないと。
ライブラリ任せに出来る(ユーザーがタッチしない)からこそ、問題になりえます。
以前、自分とこで作った「日英両対応ソフト」が、イタリアで使えるかって質問が来たので「英語表示になるけどたぶん使えるよ」って答えたけど、実際には使えなかったことがありました。
原因は、データファイルや設定ファイル(テキスト形式)のフォーマット。言語設定に関係なく共通のファイルで、浮動小数点数を小数点はピリオドで記述してたんですが、「文字列→数値」の変換を、Localeに合わせてよきに計らわれたせいで、イタリア語設定では、小数点ピリオド表記の文字列変換できなくなっていたという…
対策として、setlocale で LC_NUMERIC をいじる方法もありますが、UIとしての画面掲示用では、言語設定に基づいた数値→文字変換は欲しいので断念。結局、ファイル入出力(serialize/deserialize)専用の独自関数を作って逃げました。ロケールに従うライブラリ関数は、言語依存なUIのために使うのは便利ですが、言語非依存な部分には使ってはいけないってことで。
そういうこともあってか、最近の言語だとsetlocaleのように大域的な設定にするのではなく、個々の関数がロケールオブジェクトを引数に取るような作りになっているので、その点改善されていると言えますね。
#CはCでも、VCなら_locale_tとかあるのは知っているけど使ったことはない。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
にわかな奴ほど語りたがる -- あるハッカー
","処理はめんどい (スコア:1, 興味深い)
GPLで公開しているWindowsのソフトが動かないとメールが来たことがある。イタリアからだった。調べたら小数点が","なので、とりあえず、コントロールパネルで言語をEnglishにしてくれと返事をした。時間ができたら、直しておかないと。
Re:","処理はめんどい (スコア:1, 参考になる)
下手に独自処理を入れるとどつぼにはまるよ?
Re:","処理はめんどい (スコア:4, 参考になる)
ライブラリ任せに出来る(ユーザーがタッチしない)からこそ、問題になりえます。
以前、自分とこで作った「日英両対応ソフト」が、イタリアで使えるかって質問が来たので
「英語表示になるけどたぶん使えるよ」って答えたけど、実際には使えなかったことがありました。
原因は、データファイルや設定ファイル(テキスト形式)のフォーマット。
言語設定に関係なく共通のファイルで、浮動小数点数を小数点はピリオドで記述してたんですが、
「文字列→数値」の変換を、Localeに合わせてよきに計らわれたせいで、
イタリア語設定では、小数点ピリオド表記の文字列変換できなくなっていたという…
対策として、setlocale で LC_NUMERIC をいじる方法もありますが、UIとしての画面掲示用では、言語設定に基づいた数値→文字変換は欲しいので断念。結局、ファイル入出力(serialize/deserialize)専用の独自関数を作って逃げました。
ロケールに従うライブラリ関数は、言語依存なUIのために使うのは便利ですが、言語非依存な部分には使ってはいけないってことで。
Re:","処理はめんどい (スコア:1)
そういうこともあってか、最近の言語だとsetlocaleのように大域的な設定にするのではなく、個々の関数がロケールオブジェクトを引数に取るような作りになっているので、その点改善されていると言えますね。
#CはCでも、VCなら_locale_tとかあるのは知っているけど使ったことはない。