アプリケーションの国際化対応の話題スレ

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
国際化対応の際の問題全般を扱うスレです。
2デフォルトの名無しさん:05/03/10 15:10:49
ドイツとかフランスで、小数点区切りに . じゃなくて , 使うのは
マジでやめて欲しい。
地域設定をドイツにして Excel で =pi() って入れると、
3,1415 のように表示されるのを真似ろ、ってくらいなら難しくは
ないけど、Excel の CSV 形式入出力をミミックしろとか言われても
ヤヤコシクてやってられん(CSV 形式ってカンマ区切り形式って
覚えてたんだが、欧州ロケールじゃちっともカンマで区切って
ないじゃんかよぅ)
3デフォルトの名無しさん:05/03/10 15:17:31
TSVに統一すればいいジャン

---------------------- 終了 -----------------
4デフォルトの名無しさん:05/03/10 16:31:54
3/10が3月10日なのか10月3日なのかはっきりしてくれ
5デフォルトの名無しさん:05/03/10 21:38:08
そこで10, Marですよ
6デフォルトの名無しさん:05/03/10 22:17:21
XMLだろ。
7デフォルトの名無しさん:05/03/11 00:19:10
当方洋物ソフトの日本語化をやってるんだが

8pt MS Sans Serif で定義したダイアログ テンプレート上で
無理やり日本語表示すると
・2000→文字化け
・XP→異常に汚い
韓国語版や中国語版の Windows ではハングルも漢字もちゃんと
表示できるんじゃん。なぜ日本語版だけ弱いんだろう…
OS X とかはサスガにそういう事ないんだろうなぁ、と隣の芝生を
青く見てみたり
8デフォルトの名無しさん:05/03/11 00:39:04
9デフォルトの名無しさん:05/03/11 00:47:17
10デフォルトの名無しさん:05/03/12 04:47:57
Windows で同じ 0x005c が、日本語環境では¥マーク、韓国語環境では
ウォンマーク、それ以外(含む英語)ではバックスラッシュが表示される
のはどうかと思う。外人に日本語OSを見せると必ずたまげる
(文字化けしてると思うらしい)
っても、今さら変えられないか。
11デフォルトの名無しさん:05/03/12 05:15:40
\マークはプログラムやTeXなどで頻繁に使うからね
12デフォルトの名無しさん:05/03/12 14:32:41
Java ってよく知らないんだけど、文字列型が Unicode になってるから
国際化が楽、とか聞いた記憶があるんですが、本当の所どうなんでしょう?

文字型は 16 bit 幅? UTF-16 でサロゲートペアで BMP 外の文字を
扱うんだとしたら、Windows のMBCS 処理みたく文字列操作の関数とか
いろいろヤヤこしそうだけど、そういうのもスッキリしてるのかしらん?
どうせメモリなんて数 GB 積める時代だし、文字型 = 32 bit として、
内部表現 UTF-32 などにしたら CJK Extension-B 領域とかも楽に処理
できそうだなー、なんて思うんですが
13デフォルトの名無しさん:05/03/12 15:20:58
知らないなら語るな。
14デフォルトの名無しさん:05/03/12 15:31:52
半可通が跋扈するイソターネットはここでつね?
15デフォルトの名無しさん:05/03/12 15:38:44
Win32APIにUTF-32版さえ加わってくれればUTF-32を使うんだがなぁ。
16デフォルトの名無しさん:05/03/12 15:41:04
http://pc5.2ch.net/test/read.cgi/tech/1109171258/
のスレでやればいいじゃん
17デフォルトの名無しさん:05/03/12 15:47:19
日付、通貨、文字の方向、文字のソート順
単に文字コードだけの問題じゃないんだよね・・・
18デフォルトの名無しさん:05/03/12 15:58:08
>>17
外国語のソートで先頭のtheとかaとか冠詞を無視するやつがあるね。
ラテン語なんぞ性別無視してソートできるのかな。
19デフォルトの名無しさん:05/03/12 16:05:45
>>17にあることなら
ほとんど解決できる問題だね。

Javaなら大抵国際化に対応してる感じだね。

Currencyクラスで通過を設定できる
Localeクラスで国や言語を設定できる。
Localeクラスのフィールドにはすでにいくつか素十ヶ国の言語、国を
表すオブジェクトが用意されており知られた国のロケールは即座に簡単に対応できる。
Dateクラス、CalendarクラスのコンストラクタにもLocaleクラスの
オブジェクトを設定することで国毎に異なる日付フォーマットを
簡単に設定できる。

ResourceBundleクラスで
プロパティファイルを言語毎にわけて管理できる。
config_ja.properties
config_ja_JP.properties
config_us.properties
みたいな感じで

あとは各国の言語に詳しい人間に任せれば済んでしまう問題だね。
20デフォルトの名無しさん:05/03/12 22:48:02
> Javaなら大抵国際化に対応してる感じだね。

冗談キツい
21デフォルトの名無しさん:05/03/12 22:56:43
言語・ロケールさえ決定してしまえばどうにかなると思っている英語圏に人間が多いのが痛い。
日本語でもShift_JIS、EUC-JP、JISなど複数の文字エンコーディングが混在していることまで
アタマが回ってないとしか思えない実装が多いな。
22デフォルトの名無しさん:05/03/13 01:07:46
あと、何でもかんでも国際化すりゃいいってもんでもない。
本文が Shift JIS な出力データに、勝手にプログラムが勝手に UTF-8 な日本語で付加情報をつけたり・・・。

subversion、おまいだよ(w
23デフォルトの名無しさん:05/03/13 02:33:12
文字のソートって難しそうだけど、データベース関連とかどうやってるの?
日本語や中国語が混在したテキストで画数順とかに並べるのって簡単なの?
例えば読み順で並べ替えとか簡単にできるような仕組みがあるんですか?

Win32 ソフト開発しかやってないうちは Unicode コードポイント順に
ソートしてるんだけど、東欧のアクセント文字とか中国語とか、かなり
デタラメに並ぶので非常に評判が悪い
24デフォルトの名無しさん:05/03/13 15:47:13
Unicodeの文字照合ってTRになってたろ。
25デフォルトの名無しさん:05/03/14 11:39:08
TR って何?
26デフォルトの名無しさん:05/03/14 12:59:49
Technical Reportsのことではないかと。
http://www.unicode.org/unicode/reports/
27デフォルトの名無しさん:05/03/14 13:08:45
28デフォルトの名無しさん:05/03/15 13:21:16
GB 18030 対応ってどうよ?

中国市場で売るには、GB 18030 エンコードをサポートしなきゃ
だめよん、って法律があるって聞いたんですが、実際に発売中止に
なったという話は Windows ME 以外には聞いたことない
ユニコードすら通らないアプリも多いんだから、今中国で売ってる
ソフトが全部対応済みとは思えんのだが…
29デフォルトの名無しさん:05/03/15 13:23:21
このスレ意味わからん
簡単に説明してくれ
30デフォルトの名無しさん:05/03/15 22:10:25
>>28
libcレベルの話ならwchar_tが4オクテットあるシステムならGB18030なlocale
を用意すればOK。wchar_tが2オクテットしかないWindowsについては知らん。
31デフォルトの名無しさん:05/03/16 00:40:05
>>30
Windows は wchar に格納されるのは UTF-16 エンコードされてるんで
コード自体は問題なく格納される。サロゲート ペアの文字もエディット
コントロールなどでちゃんと1文字づつ編集できる

なのだが問題はOSのUIが標準で使ってるフォントに GB 18030 で拡張
された文字のグリフが入ってない事。データを渡しても□□□□
みたいに表示される(.NET Windows Form のデフォルト フォントもそうだ)

非Windows 系のOSの標準UIフォントってちゃんと多言語対応してんの?
32デフォルトの名無しさん:05/03/16 01:16:54
GB18030サポートパッケージとそのSDK入れれ
簡体字中国語版Windowsには標準で入ってるんだろ
33デフォルトの名無しさん:05/03/16 11:29:33
GB 18030 インストールすると SimSun-18030 ってゆーフォントが追加
されるんだけど、ダイアログとかにそのフォントを使ってやらないと
ダメじゃん。自動で Tahoma に Fontlink してくれたらいいのに

で、それなら、という事で UI のフォントを全部 SimSun-18030 固定で
作ると、小サイズの英文や日本語のビットマップが入ってないので、
今度は 8 - 9 pt の非中国語表示がガタガタになるという
(+ Simsun (Founder Extended) だと表示できる非BMPのコードポイント
の表示もダメになっちゃう)
あちらを立てればこちらが立たず。Longhorn 待ちというのがFA?
34デフォルトの名無しさん:05/03/16 15:17:49
メニューがOSによって英語になったり日本語になったりするソフトはどのようにすれば作れるのですか?
35デフォルトの名無しさん:05/03/16 15:21:23
>>34
WindowsでもLinuxでもSunOSでもMacOSでも動くプログラムの作り方?
36デフォルトの名無しさん:05/03/16 15:22:11
GetLang()="日本語"なら日本語のメニューを作成する
GetLang()="英語語"なら英語のメニューを作成する
37デフォルトの名無しさん:05/03/17 03:46:49
>>34
.NET だと言語サブフォルダにUIだけ含めたサテライトDLL入れて実現可
フレームワークが勝手にOS言語拾って切り替えてくれる
EXE 置いてあるフォルダの下に ja-JP とか en とかあったらたぶんそれだ
MFC も同じような感じで言語DLLを拾ってくれる機能があったはず

Mac や Linux はどうやってんの?
38デフォルトの名無しさん:05/03/17 05:11:08
C++Builderの場合はどうしたらよいのでしょうか?
39sage:05/03/17 05:59:02
>>37
gettext
英語の文字列を埋め込んどいて、それを元に引っ張ってくる感じ
40デフォルトの名無しさん:05/03/17 23:39:43
>>33
あれ、リンクしてくれなかったっけ? と思ったらMingLiU-HKSCSとごっちゃにしてた
スマン
41デフォルトの名無しさん:05/03/17 23:40:14
>>37
Win32にでも言語の数だけリソース入れとけばOSがテキトーに選んで拾ってくれる
42デフォルトの名無しさん:2005/03/24(木) 02:23:42
そーいやぁ想像を超えるすごい国際化してるソフトを思い出した
値段を入れる欄に100と入れると自動的に\100と表示される
でもって同じソフトを英語OSにインストールしてそのデータファイルを
開くと、同じ物が$100と表示されるという
43デフォルトの名無しさん:2005/03/24(木) 04:29:29
どうせ実はエクセルというMSに対する皮肉と見た
44デフォルトの名無しさん:2005/03/24(木) 06:37:10
テキストファイルでも100円が100ウォンに化ける罠
45デフォルトの名無しさん:2005/03/24(木) 15:18:55
>>41
そういやーそうだった
しかし VS .NET 2003 になっても未だにフル Unicode でソース
やらリソース書いてすっきり国際化、ってわけにはいかんのは
ちと残念
.NET の .cs ファイルとかデフォルトで Unicode エンコーディング
にしちゃえばいいのに、とか素人は考えるのだが...
46デフォルトの名無しさん:2005/03/24(木) 16:24:48
Visual SourceSafe 6.0 がUTF-8非対応っていう罠があったりするんだよね。
47デフォルトの名無しさん:2005/03/24(木) 16:30:19
オープンソースで国際化の参考になるやつはありますか?
(OpenOfficeとかFirefoxとかではない、単純で理解しやすいものが希望です)
48デフォルトの名無しさん:2005/03/24(木) 17:20:08
ワードプロセッサのような、言語ごとの記法(禁則処理とか、ハイフンとか、
縦書きとか双方向テキストとか)までは考えなくていい、単なるメッセージ
のみの置き換えのことなら、それこそgettext使ってるものならなんでも
よいでしょう。
49デフォルトの名無しさん:2005/03/25(金) 09:57:11
おまいら、Unicode でデータ書くとき UTF-16 にする? それとも UTF-8?
あるいはまんま UTF-32?

UTF-8 にすると非ASCII 文字は3バイト以上になるから…と思ってると
案外ASCIIの割合が大きくてファイル サイズは大して変らないって
経験あり
Windows メモ帳の"Unicode"は UTF-16 LE (BOM付き)だから、なんとなく
それにあわせてるが、世の中一般ではやってるのは何?
50デフォルトの名無しさん:2005/03/25(金) 10:24:27
UTF-32は聞いたことがないな
51デフォルトの名無しさん:2005/03/25(金) 11:34:19
UTF-8。
UTF-16はもう死滅すべきものではないかと思うんだが。
52デフォルトの名無しさん:2005/03/25(金) 11:46:24
UTF-8はBOM付ける派? つけない派?
53デフォルトの名無しさん:2005/03/25(金) 19:54:47
自分はブラ着けずに寝る派です
54デフォルトの名無しさん:2005/03/26(土) 10:03:55
>>53
地味に面白い。
おまえのようなセンスの人間と仕事をしたい
55デフォルトの名無しさん:2005/03/27(日) 12:30:17
>>50
つ【http://www.unicode.org/reports/tr19/tr19-9.html

>>53
や・ら・な・い・か?
56デフォルトの名無しさん:2005/03/28(月) 15:19:59
せっかくインターネットをしてるのに情報源はほとんど日本ばかり。
寂しい話だよな。ネットやマシンについて詳しいのに だ。
インターネットでやり取りされる70%以上は英語だ。
遊びで使うならともかく 最低限のこととして言語部の国際化くらいはしようぜ!
57デフォルトの名無しさん:2005/03/28(月) 15:47:05
>56
日本語覚えてから言え。
58デフォルトの名無しさん:2005/03/28(月) 21:12:42
>>56
同意 インターネットをすると日本はひょっこりひょうたん島って感じやな
59デフォルトの名無しさん:2005/03/28(月) 23:35:46
>>56
お前が言っている国際化とソフトウェアにおける国際化は全くの別物なのだが。
60デフォルトの名無しさん:2005/04/05(火) 09:59:01
WindowsでOSの言語を知りたい場合、どのようにすればよいのでしょうか?
61デフォルトの名無しさん:2005/04/05(火) 10:09:58
マイコンピュータのところを見て、
我的電脳って書いてあったら中国語版。
62デフォルトの名無しさん:2005/04/05(火) 10:24:42
WindowsでWindowsAPIを使ってOSの言語を知りたい場合、どのようにすればよいのでしょうか? 
63デフォルトの名無しさん:2005/04/05(火) 11:23:17
GetLocaleInfo
64デフォルトの名無しさん:2005/04/06(水) 03:08:03
Windows OS の言語とは別にコンパネから「標準と形式」、「場所」の2箇所の
設定ができるけど、これを取得するにはどうすんの?
あとマルチリンガル ユーザ インタフェースってのが MSDN にあるけど
これ入れると GetLocaleInfo ってだまされるの?
65デフォルトの名無しさん:2005/04/24(日) 14:59:24
Linuxの現在のOSの仕様言語を取得する方法を教えてください
66デフォルトの名無しさん:2005/04/24(日) 15:19:01
仕様言語って?
67デフォルトの名無しさん:2005/04/24(日) 15:19:32
犬板に帰れクズ
68デフォルトの名無しさん:2005/04/24(日) 16:54:31
こまるのが日付の表示フォーマット
m/d/y
なのか
d/m/y
なのか表示だけでは判断できない事がある
69デフォルトの名無しさん:2005/04/24(日) 17:33:19
>>68
そんな貴方にISO 8601。
70デフォルトの名無しさん:2005/04/24(日) 18:01:28
>>65
localeのことなら、プロセスごとに指定できる。
分野(日付時刻・エラーメッセージ・通貨単位・文字照合規則etc.)
ごとに個別指定もできる。
71デフォルトの名無しさん:2005/04/25(月) 05:52:39
C++のロケール(stl::locale)回りについて、詳しい参考文献かサイトがあれば教えてください。
72デフォルトの名無しさん:2005/04/26(火) 02:38:27
12-04-03

mm/dd/yy
dd/mm/yy
73デフォルトの名無しさん:2005/05/16(月) 06:50:09
多国語に対応する場合、どうやるのが定石ですか?
リソースDLLを各国語ごとに用意して起動時に読み込み?
74デフォルトの名無しさん:2005/05/16(月) 21:08:44
UNICODEも一つの方言になりかねなさそうだな
75デフォルトの名無しさん:2005/05/16(月) 21:09:31
yy/mm/ddもあるよ
76デフォルトの名無しさん:2005/05/16(月) 22:41:42
>>72
dd/mm/yy は少数派な希ガス。
77デフォルトの名無しさん:2005/05/16(月) 23:54:56
>>73
MFC開発関係のスレで聞いた方が良いと思うぞ。
ちなみに、先日、客にDLLを作成しますと言ったら、工数がかかるから止めてくれと言われてしまったよ。
とほほ。
78デフォルトの名無しさん:2005/05/18(水) 14:54:18
C++Builderを使っています。
79デフォルトの名無しさん:2005/05/19(木) 02:17:34
なら、C++ Builderのスレか、Windows開発のスレだ。
80デフォルトの名無しさん:2005/06/01(水) 06:29:19
Delphiでの国際化対応の話はここでいいのでしょうか?
81デフォルトの名無しさん:2005/06/11(土) 13:18:10
それではどうぞ
82デフォルトの名無しさん:2005/07/07(木) 18:52:18
>>77
リソースをDLLに分けるのってアホらしくない?
UIかえたらそのつど整合性保たなきゃいけないし。

Unicodeでソース内部で保持しておいて
言語とID指定してmapから取り出すほうが簡単なんだけど...
ただ、リソースの編集とかはできなくなりますが...
83デフォルトの名無しさん:2005/07/08(金) 22:49:57
別にexeに統合したってかまわないし
84デフォルトの名無しさん:2005/07/20(水) 02:52:43
WindowsXPで中国語にトライしています。
Windowsの国を判断し、フォントと文字を切り替えるようにしています。
日本語でコンパイルし、地域と言語オプションの地域オプションと詳細を中国語にし
て起動すると、
簡字体中国語が正しく表示されません。
中国語でCBuilderを起動し(文字がくちゃくちゃ)調べると、フォントプロパ
ティの文字セットのところが空白になっていました。
もともと日本語にしてあったので、当然かもしれませんが。
そこでフォントプロパティの文字セットを中国語にすると表示されました。
フォントプロパティの文字セットをソフトで切り替えたいのですが、
どなたかフォントプロパティの文字セットを設定する方法ご存じありませんか。
8577:2005/08/24(水) 21:45:32
>>82

OSのバージョンによって、読み出されるリソースの優先順位が異なるからさ。
NT4.0とか、Win2kのインターナショナル版とか、ちゃんとサポートしろといわれたら
DLL決めうちでリソース選択するしかない。
英語+日本語ぐらいならあんまり変なことにならないけど、四カ国語ぐらいサポートする場合はさ。

が、確認してないけど最新のMFCでは問題ないという噂もあるけどさ。
86デフォルトの名無しさん:2005/09/19(月) 07:40:55
http://www.codeproject.com/cpp/mult_lang_support.asp
(AfxSetResourceHandleを使って)上記通りにやると
ツールバーのツールチップ、ステータスバー
の文字列がおかしいな...とVC6で思ってて
VC7.1で試したらあっさりOKに...
8782:2005/09/19(月) 12:15:00
>>83
たぶん文字(Unicode)リソースをexeに統合という意味だよね。
DLL統合してもメモリからロードできないみたいだし...orz
>>85
そんな事情があったのね。thx.
とにかく明示的にロードしろと、次のバージョンではすっきり記述できるようになってたらいいな...
88デフォルトの名無しさん:2005/09/19(月) 21:16:29
scpとrsyncのファイル名に関するI18Nを目論んでいます。
とりあえずはcygwin(cp932)とLinux(EUC-JP設定/UTF-8設定どちらでも)とMacOSXで
cp932相当の文字セットが扱えることが目標です。で、以下のどっちでやるのが正義(ぉ)でしょう?
1) ローカル/リモート双方で、環境依存文字コード⇔UTF-8 NFC 変換する。
⇒ 正義っぽい。でもリモート側も対応バイナリをインストールしてないとNG。
2) ローカル側でローカル⇔リモート変換する。リモート側は単なるバイト列として扱う。
⇒リモート側が未対応でも動く。でもぶっちゃけ美しくない。
89デフォルトの名無しさん:2005/09/19(月) 21:42:08
ガキ。随分安直な正義だな。あとそれのどこがI18Nなん? なんか違うような。
9088:2005/09/19(月) 21:58:10
どうもNGワード使ってしまったみたいなんで、そこはスルーで。
(本気で「正義」と思ってるわけじゃないです。為念)
あと、一応多言語対応の枠組みが定められればI18Nになると思ってたんですが、
誤解があったらご指摘ください。
ttp://www.atmarkit.co.jp/icd/root/63/50872763.html
ここからはそれほど外れてないと理解してるのですが。
91デフォルトの名無しさん:2005/11/13(日) 21:47:52
ホッシュ ホッシュ
92sage:2006/02/14(火) 15:06:39
test
93デフォルトの名無しさん:2006/02/14(火) 19:16:24
ほsyr
94デフォルトの名無しさん:2006/02/16(木) 00:57:45
95デフォルトの名無しさん:2006/02/17(金) 22:22:29
MinGWで作成されてるアプリケーションのメッセージカタログを翻訳したら、作者に
「MinGWは国際化でいろいろ問題あるから、どうにかしようと思っている。gettextかなぁと思うんだけど、どう?」
と軽く聞かれました。

といってもプログラミング上の国際化の手法とかよくわからないので、どなたか詳しい方、
教えてもらえませんか?

gettextでバッチリならそれでいいですし、他にもっと楽/現実的/今風なものがあれば、
それを知りたいのです。
96デフォルトの名無しさん:2006/02/27(月) 10:57:04
Windowsってややこしいよ。
日本語版Windowsってコードページ932(Shift-JIS)だけど、この設定って具体的に
どこに影響してるの??
この設定がShift-JISだから、RegsiterClassAで登録したウィンドウの文字絡みの
メッセージ(例えば、WM_CHAR)などでは、Shift-JISコードでやってくることになるの?
これを変えれるかわからんけど、日本語EUCに変えたら日本語EUCでメッセージやってくるのかな?
他にもSakuraエディタ?だけっかなで、フォントの情報みるとMSゴシックとかUnicodeフォントってなってるんだが、
これも意味わからん。どこでどんな変換されてるのか。
97デフォルトの名無しさん:2006/02/27(月) 11:00:56
>>96だけど、
Sakuraエディタじゃない、フォントインストーラSakuraだった。
後、MSゴシックはShift-JISになってた。嘘だった。
98デフォルトの名無しさん:2006/02/27(月) 17:12:07
>>96
簡体、日本語、韓国語、ドイツ語、英語、の共通アプリ開発したときに調べたが。
その程度でややこしいとか言ってたら、Windowsで国際化対応アプリは作れないぞ。
99デフォルトの名無しさん:2006/02/27(月) 17:45:02
>>96
地域・言語の設定の影響がありそうなところををざっと考えて
WideCharToMultiByte/MultiByteToWideChar(CP_ACP/CP_THREAD_ACP)や
日付・時刻の書式関数、文字列比較、CharNext/CharPrevとかが思いついた。
100デフォルトの名無しさん:2006/02/28(火) 08:03:43
>>96だけど。まじ、むずいよ。ググっても日本語の資料は余りない。英語読むしかないなら読むけど。
WindowsのMUI版あれば、色々実験できるけど。今は日本語版でGetLocaleInfoやらGetACP,GetOEMCPなどを
地域オプション変えたらどう変わるか調べてる。システムロケールからユーザーロケール、スレッドロケールなどややこしい。
DrawTextなどで文字列描画するときは、コードページ関係ないのかな?選択したフォントの文字コード次第かもね。

Windows2000以降OS内部はUnicodeになったらしいけど、まだ、MSゴシックなどのフォントの文字コードはShift-JIS
っぽいから、どのみち、コードページ変換テーブルは必要ってことか?

俺にはややこしすぎてギブアップ。


101デフォルトの名無しさん:2006/07/04(火) 13:58:51
bcc32でコマンドラインプログラムを作成しているのですが、ソースコードをユニコードで書けば
できあがるソフトもユニコードになるのでしょうか?

102デフォルトの名無しさん:2006/07/05(水) 01:48:51
gettext、特に PO ファイルの書き方について詳細に解説してる日本語のページとか書籍って無い?
GNU のマニュアルを読んでみたけど英語力に自信なくて…
103デフォルトの名無しさん:2006/07/05(水) 04:56:07
>>101
否。

ソースコードの文字コードと実行時の文字コードは無関係。
wchar_tとか、あるいはWindows APIならTCHARとかのことを知れ。
104デフォルトの名無しさん:2006/07/05(水) 19:10:10
105102:2006/07/11(火) 09:31:38
>>104
日本語訳なんてのがあったんデスカ… ありがとう
106デフォルトの名無しさん:2006/10/23(月) 14:03:48
Windowsの現在の設定言語はどこで取得できますか?
107デフォルトの名無しさん:2006/10/23(月) 16:19:29
GetSystemDefaultLangIDあるいはGetUserDefaultLangIDだろう。
なおLangIDではなくLCID版もある。
108デフォルトの名無しさん:2006/11/03(金) 07:24:21
setlocale で利用可能なロケール文字列の一覧を取得する標準的な方法はありますか?
とりあえず Linux の locale コマンドの実装をみてみると
ロケール情報が入っているディレクトリの中のファイル名から一覧を取得しているようです。
できればもっとポータブルな方法を探しています。Windows でも使えるような。
また、ロケール文字列のフォーマットについては何か C/C++ の標準で決まっているのでしょうか?
ロケール文字列についてはプラットフォーム依存ですか?
109 【豚】 【259円】 :2007/01/01(月) 10:50:10
C++Builderなのですが、メニューを2つの言語に対応させるには、どのようにするのは、標準的な方法なのでしょうか?
110デフォルトの名無しさん:2007/01/02(火) 11:50:54
>>109
C++Builderスレできけ

サンプルで入っている方法(フォーム丸ごと切り替え)使うか、
コンポーネントやライブラリを使うか
下記の関西学院大学の国際交流・国際協力支援団体 クラブ ジョーディー(CLUB GEORDIE)
の裕福な医者の娘さんは、
日頃はブランド物を重装備してボルボを乗り回しておりますが、
貧困問題や難民問題に関する活動を行うときは きちんと地味な格好を装っている
たいへん良識ある女性です。
また、高橋の愛ちゃんらの陰口を言いふらして追い詰めていた たいへん心優しい女性です。

★TPOに合わせてブランド物と地味な格好を使い分けているか、みんなで注目しましょう!
★人の陰口を言っているか、みんなで注目しましょう!!




> 関西学院大学 クラブ ジョーディー副代表:原田摩耶(病院勤務)

関西学院大学 クラブ ジョーディーHP http://www.club-geordie.com/dantaigaiyou.html
原田整形外科HP http://www.hh.iij4u.or.jp/~ryhara/
112デフォルトの名無しさん:2007/04/08(日) 19:19:15
普通に妬みやんけ
113デフォルトの名無しさん:2007/04/17(火) 18:37:31
最近はUTF-8で書くのがはやっているのですか?
114デフォルトの名無しさん:2007/04/18(水) 02:05:39
うちの開発の害虫さんは、英語が出来ません。
で、保守は海外に出したいと思ってます。

ソースのコメントはどうすればよいでしょうか。
115デフォルトの名無しさん:2007/04/18(水) 04:42:18
国内に出せばおk
116デフォルトの名無しさん:2007/04/20(金) 00:51:59
予算がありません。
117デフォルトの名無しさん:2007/04/28(土) 16:01:20
英語でFA
小学生じゃないんだからさ
118デフォルトの名無しさん:2007/04/30(月) 20:08:06
コメントはつけない
119デフォルトの名無しさん:2007/05/07(月) 11:44:59
i18n の話をしているところで
ソースの文字コードだの、コメントの言語だの
素っ頓狂な話を始める人が後を絶ちません。
120デフォルトの名無しさん:2007/05/07(月) 15:31:35
ソースの文字コードは意外な盲点だと思うぜ
そりゃメッセージカタログ化するのが正道だけどさ
121デフォルトの名無しさん:2007/05/20(日) 09:02:19
>>109
gettext for delphiと、TnTでいけるかも
122デフォルトの名無しさん:2007/06/02(土) 14:41:39
>>121
>>109ではないのですけど、これですか?

GNU Gettext for Borland Delphi, C++ Builder and Kylix
http://dybdahl.dk/dxgettext/

よさそうですね。
つか、gettextってDelphiからも使えたのか・・・
GPL感染とかってないのかな?
123デフォルトの名無しさん:2007/06/02(土) 17:09:22
>>122
LGPL版使うとか
124デフォルトの名無しさん:2007/06/03(日) 05:23:25
国際化対応すれば、登録済みのデータも自動翻訳してくれると思っているアホ上司。
それ真に受けて顧客に説明してしまった馬鹿営業。

あのプロジェクトどうなったかな〜
125デフォルトの名無しさん:2007/09/30(日) 17:03:41
プログラムをunicodeで書けば、unicode対応の環境ならどこでも書いたとおり出力できますか?
126デフォルトの名無しさん:2007/09/30(日) 17:09:27
>>125
出力に使うライブラリの対応も必要でしょう。
127デフォルトの名無しさん:2008/01/22(火) 15:39:52
どのWindowsにも必ず入っているフォントってありませんか?
128デフォルトの名無しさん:2008/01/22(火) 16:29:04
SYSTEM_FONTやDEFAULT_GUI_FONTとか使えば?
129デフォルトの名無しさん:2008/02/05(火) 18:36:01
Windows XP & VisualC++2005 & GDI+です。
T'\' をGDI+でDrawStringするとフォントによって '\' になったり '\' になったりします。
T'男' をDrawStringしてもちゃんと表示されるフォントでも T'\' が '\' になるのは解せないです。

これはやっぱり選べるフォントを制限したりするしかないのでしょうか?
それとも T'\' を T'¥' に変換?
日本語だけならこういう対策もいいのですけど、
サポートする全部の言語で何か対策しないといけないのでしょうか?
130デフォルトの名無しさん:2008/02/05(火) 20:17:18
フォントの問題だろうな。
0x5Cを半角円記号として表示させたければ、
そういうフォントを選べばいいだけだろ。

> T'男' をDrawStringしてもちゃんと表示されるフォントでも T'\' が '\' になる
欧文フォントを指定しているが、フォントリンクで日本語の文字も表示できている状態だと思う。
131デフォルトの名無しさん:2008/02/05(火) 21:19:38
フォントも書かずに、質問とな!!
132デフォルトの名無しさん:2008/02/06(水) 02:42:49
(Unicode的に)本来 U+005C は REVERSE SOLIDUS (バックスラッシュ)。
YEN SIGN に見えるのは、MSが過去の互換性とのかねあいで、あえてそういうフォントにしているだけ。
ちなみに本物の YEN SIGN は U+00A5。これは、Unicodeを扱う場合ならフォントを問わないはず。
(対応するフォントが無い可能性はあるかもしれんが)
CP932の範疇でやるなら「¥」が無難と思われ。
133129:2008/02/06(水) 09:40:08
皆さんありがとうございます。

>>130
そういう理由だと思っているのですが、言語とフォントはユーザーが指定できるので、
その対策があるのかなと思った次第です。

>>132
現在通貨記号はlocaleconvで取得したlconvのcurrency_symbolで拾ってきています。
円記号を持ち出したのは一例で、本来やりたいのは、ロケールに応じた通貨記号を出したいということでした。
currency_symbolはcharですしUnicode的にはよくないのかもしれませんけど。
locale=jpnの場合はU+00A5が得られるような適切な取得方法って他にあるのでしょうか?
134129:2008/02/06(水) 09:47:18
そうそう、全部のフォントで確実に表示されるというところまでは求めてないです。
表示の大半は半角数値なので欧文フォントを指定することが多いと思われます。
jpnの場合にMS明朝とMSゴシックの2つだけに縛られてしまうのはあまりに酷いと思ったので。
大半のフォントで\が出るならOKです。
135デフォルトの名無しさん:2008/02/06(水) 20:24:24
Win32 APIのGetLocaleInfoWで日本語を指定するとU+A5を取得できた。
Aなら5Cになるし使えると思う。ただ、標準Cライブラリとの対応付けが面倒かもしれない。
#include <windows.h>
#include <iostream>
#include <locale>
int main()
{
std::wcout.imbue(std::locale("")); //VC++ 2005だとだめだったと思うけど
WCHAR c[6];
GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SCURRENCY, c, sizeof c / sizeof c[0]);
std::wcout << std::hex << static_cast<UINT>(c[0]) << L'\n';

LCID lcidja = MAKELCID(MAKELANGID(LANG_JAPANESE, SUBLANG_DEFAULT), SORT_DEFAULT);
std::wcout << std::hex << lcidja << L'\n';
std::wcout << std::hex << GetUserDefaultLCID() << L'\n'; //日本ならlcidjaと同じ値になることの確認

GetLocaleInfoW(lcidja, LOCALE_SCURRENCY, c, sizeof c / sizeof c[0]);
std::wcout << std::hex << static_cast<UINT>(c[0]) << L'\n';
std::wcout << c << '\n';

CHAR mbs[6];
GetLocaleInfoA(lcidja, LOCALE_SCURRENCY, mbs, sizeof mbs);
std::wcout << mbs << '\n';
std::wcout << std::hex << static_cast<UINT>(mbs[0]) << std::endl;
}
136デフォルトの名無しさん:2008/05/03(土) 11:59:05
MBCSのプログラミングってアホみたいに複雑でワロタ。
http://msdn.microsoft.com/ja-jp/library/zz3x65c7(VS.80).aspx

こんなバグ量産するような方式は使ってられない。
もうWin9xなんて切り捨てていい時代だから、
これからはUnicodeコンパイル一本でいくべきだと思った。
137デフォルトの名無しさん:2008/05/03(土) 18:09:19
>>136
Unicodeが簡単だと思っているなら大間違いだ。
むしろUnicodeの方がたちが悪い。
138デフォルトの名無しさん:2008/05/03(土) 19:02:08
>>137
Unicode + その他たくさんの野良コード扱うより
Unicode 一本に絞った方が簡単になるのは自明だろう。
本当にたちが悪くなると思ったんなら
是非ともその理由が知りたいところだ、書いてくれないか。
139デフォルトの名無しさん:2008/05/03(土) 19:16:06
rubyがSJISを使える理由を考えてみたらどう?
140デフォルトの名無しさん:2008/05/03(土) 20:57:50
アホだな。内部処理をUnicodeにするかMBCSにするかの話だろ。
1文字2バイト固定のUnicodeの方がバグが少なくなるのは自明だろうが。
I/FがUnicodeのCOMコンポーネントを使うならなおさらだ。
141デフォルトの名無しさん:2008/05/03(土) 21:19:18
漢字の字形を区別する必要があるならSJISその他の日本語用文字コード、
それに目を瞑ってでも複数の言語を同時に使う必要があるならUnicode。
箸とスプーンは使い分ける。
142デフォルトの名無しさん:2008/05/03(土) 21:39:52
>>140
Unicode(UTF-16)は2バイト固定じゃないぞ。
本来は21bitの文字コードだから、2バイトで足りない文字は4バイト使う。
複雑度はMBCSと変わらん。
143デフォルトの名無しさん:2008/05/03(土) 21:43:10
>>141
いやだからー、外部表現と内部処理の話は別な。
内部Unicode処理でも出力や表示にSJIS使うこともできる。

>>136で言ってるのはUnicode/MBCSの両方でコンパイルできるように#ifdef切ってソース分けるのはもう嫌だということ。
なぜならMBCSではバイト単位の文字配列を文字境界を意識して複雑なプログラミングをしないといけないからだ。
Win9xに対応するためだけにそんなバクチを打ってられるかということだ。

>>142
いやそういう意味じゃなくて内部Unicodeなら文字配列が文字単位だから
1文字1要素として扱えるでしょという話。
144デフォルトの名無しさん:2008/05/03(土) 21:48:50
>>143
なにを言ってるのか意味がわからん。
MBCSで1バイト単位の配列を使うのも、UTF-16で2バイト単位の配列を
使うのも一緒。1要素で1文字が表せるとは限らない。
145デフォルトの名無しさん:2008/05/03(土) 21:53:15
>>143
外部のSJISを内部のUnicodeに変換する時点で字形を
区別できなくなるものがあるでしょ?
逆向きでも似たような問題が出るし。
146デフォルトの名無しさん:2008/05/03(土) 22:43:36
>>144
Unicodeならwchar_tを使うから必ず1文字1要素。
MBCSならcharだから1文字は1要素か2要素か分からないので、
バイト配列の要素がリードバイトかどうかを_isleadbyte()などを使って調べる必要がある。
147デフォルトの名無しさん:2008/05/03(土) 22:58:36
>>146
Unicodeは合成文字があるから1文字1要素ではない。可変長
文字区切りはステートマシンで判断する必要があるが、アルゴリズムは
MBCSより複雑
148デフォルトの名無しさん:2008/05/03(土) 23:12:19
よってMBCSで十分。
UNICODE信者はカエレ。
149デフォルトの名無しさん:2008/05/03(土) 23:26:09
そこでMBCSなUnicode符号化、UTF-8ですよ。
150デフォルトの名無しさん:2008/05/03(土) 23:46:59
>>146
UTF-16は可変長コードだと何度言えば…
wchar_tでも1文字1要素ではない。1文字1〜2要素。

固定長と勘違いしてる人多いな。
151デフォルトの名無しさん:2008/05/04(日) 01:04:40
>>150
> wchar_tでも1文字1要素ではない。1文字1〜2要素。
そんなこと決まってるのか?

元々 wchar_t は1文字1要素であるべきなんじゃないの?
Windows だと歴史的な理由で UTF-16 になっちゃってるだけで。
152デフォルトの名無しさん:2008/05/04(日) 01:14:40
そんなこと決まっていないね。
151の言う通り。

もっとも、例えUTF-32でも結合文字列があるから、
場合によっては1文字1要素として扱えないこともあるはず。
153デフォルトの名無しさん:2008/05/04(日) 01:21:02
WindowsでいうUnicodeはUCS-2の範囲だから2バイト固定と考えて良い。
だからwchar_tは1文字1要素。
他のOSは知らん。
154デフォルトの名無しさん:2008/05/04(日) 01:40:28
>>153
残念でした。Windows 2000からUTF-16です。
少なくともDrawTextやWideCharToMultiByte、UniscribleあたりはUTF-16に対応している。
155デフォルトの名無しさん:2008/05/04(日) 12:26:07
>>154
WindowsではUTF16といってもUCS2の範囲の文字しかサポートしてないということじゃないのか?
でなければUNICODEコンパイルではisleadbyte()が使えないのに、
もしwchar_t配列の中に2バイトと4バイトの文字が混ざっているとしたら
どうやって文字境界を判別できるというのか。
156デフォルトの名無しさん:2008/05/04(日) 15:15:04
サロゲートペア入門
Vistaから増えたUnicode環境で使用できる日本語漢字の対応方法
http://codezine.jp/a/article/aid/1592.aspx
157デフォルトの名無しさん:2008/05/04(日) 15:42:01
サロゲートペアよりも合成文字の方がやっかいだと思う。
158デフォルトの名無しさん:2008/05/04(日) 15:53:31
ケンタッキーフライドチキンとか
159デフォルトの名無しさん:2008/05/05(月) 01:34:14
サロゲートと結合文字の処理は.NETでも開発者まかせみたいだし、ある程度妥協が必要かも。

・サロゲートペア304文字はどうせマイナーな漢字だけだから入力の時点で強制削除。
・結合文字はJIS0213に規定されてる200種類ぐらいを等価の1文字に置換。その他は結合せず放置。
とした上でwchar_tの1要素1文字を実現するのはどうか?

どこかに真面目に処理してる実装例はないものかね。
160デフォルトの名無しさん:2008/05/05(月) 02:02:55
Vistaのメモ帳(っていうかEditコントロール?)は真面目にやってるね。
「は」と「゜」の合成で「ぱ」にするとちゃんと1文字になって、BackSpaceで削ると
「は」になる。
161デフォルトの名無しさん:2008/05/06(火) 23:10:31
windowsのwchar_t(UCS2)を素直に使おうかどうか迷ってます。
あまり問題にならないなら使いたいのですけど、
特定の言語では困るなんて事例があれば聞きたいです。
162デフォルトの名無しさん:2008/05/08(木) 00:10:22
>>155
IS_SURROGATE_PAIRか何か
163デフォルトの名無しさん:2008/05/12(月) 15:27:46
VisualStudioでは各国語のリソースDLLを作るのが普通なの?
gettext的な手段の方がユーザサイドで対応できる分、優れている気がする。
164デフォルトの名無しさん:2008/05/12(月) 19:47:18
リソース追加だってユーザサイドで対応できるだろう。
俺が配布してた日本語・英語対応のツールでも、台湾人が勝手に
中国語リソース追加して再配布してたよ。
165デフォルトの名無しさん:2008/05/12(月) 20:04:18
敷居が上がる上に色がつくけどな
166デフォルトの名無しさん:2008/05/15(木) 21:19:21
WindowsのサテライトDLLは便利なんだが、ユーザー別で指定した言語
にしたい場合(例:日本語OSで一時的に英語表示で動かしたい等)には、
むしろ邪魔なんだが、サテライトDLLをロードしてくる挙動をMFCアプリ
ケーション内でオーバーライドしたい場合、なんかいい方法を知ら
ないか?

http://msdn.microsoft.com/ja-jp/library/8fkteez0.aspx

ユーザーのデフォルト言語を設定するSetUserDefaultUILanguage()なんて
APIは存在しないので、とりあえずCWinApp派生クラスのコンストラクタ
内で、

SetThreadLocale(MAKELCID(MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_US),SORT_DEFAULT));

とかやったみたが、ダメだった。
167デフォルトの名無しさん:2008/05/17(土) 10:11:46
>gettext的な手段
ってなに?
168デフォルトの名無しさん:2008/05/17(土) 10:52:44
169デフォルトの名無しさん:2008/05/17(土) 20:24:49
サンクス
170デフォルトの名無しさん:2008/05/18(日) 10:00:14
メッセージカタログってのもあるよ。
171デフォルトの名無しさん:2008/05/19(月) 15:10:48
サロゲートペアや合成文字を処理するのに使う.NETのSystem.Globalization.StringInfoクラスみたいなのを
Win32で記述したものはないんですかね。
172デフォルトの名無しさん:2008/06/28(土) 15:35:42
日本語化職人が見てるかもしれないから残しとく

gettextを使ってるソフトの日本語化(Win)

・.moファイルとは日本語翻訳ファイル(バイナリ形式)
・編集するのは.moを変換する前の.poファイル(テキスト形式)じゃないと出来ない。
・PoMoConverterを使うとGUIで分かりやすく.moと.poを相互変換できる。
・.poファイルの編集はPoedit(テキストエディッタで開いて直接弄っても出来る)
・Poeditで文字化けするときはリンク先http://wiki.livedoor.jp/lab1092/d/Tips011a
・.poから.moへの変換はPoeditでもPoMoConverterでも
173デフォルトの名無しさん:2008/06/29(日) 10:02:42
まとめ乙
174デフォルトの名無しさん:2008/07/11(金) 22:44:29
多言語対応の必要があって、gettextについて調べてみた。
ググってすぐ見つかる例では英語の文章をそのままキーにしてるみたいだけど、
例えばキーが動詞+目的語みたいな英文の場合、
GUIのボタンのラベルの場合 -> 多分直訳でOK
その他の表示メッセージの場合 -> 多分〜して下さいと訳す必要がある。
というような文脈による違いがあると思う。
そのへんはどうやって解決するのがスタンダードなやり方なんだろう。
メッセージのカテゴリを示すような複合キーがどうしても必要な気がする。
175デフォルトの名無しさん:2008/07/12(土) 12:24:29
そりゃメッセージごとにキーを定義して文章本体はカタログに移すんでしょ。
キーはたとえば
MSG_HOGE_HOGE (普通のメッセージ), TIT_HOGE_HOGE (ウィンドウタイトル),
TT_HOGE_HOGE (ツールチップ)とか。
176デフォルトの名無しさん:2008/07/12(土) 14:41:50
>>175
なんか違うツールの話をされてる気がする。

gettextでもソースに埋め込むリテラルを英文じゃなく、
抽象的なキー文字列にすれば、曖昧さはなくなるだろうけど、
そんな例はググってもでないので一般的じゃないんじゃないかと。
177デフォルトの名無しさん:2008/07/12(土) 22:27:44
だったらそれは君の要求が一般的じゃないということでは。
何をもって一般的というかは人それぞれだけど、君の定義ではそうなんだろう。
178デフォルトの名無しさん:2008/11/27(木) 00:12:46
プログラムをUnicodeかMBCSかどっちで作るか迷う
いまどきMBCSもないよな?
179デフォルトの名無しさん:2009/02/26(木) 20:37:59
いまどき、MFCのサテライトDLLで多言語化を実装してるんですが、一つ問題が発生しました。
リソースの識別子の最大値が65535となってて、これを超える場合っていったいどうすればいいんでしょうか?
180デフォルトの名無しさん:2009/02/26(木) 20:38:29
いまどき、MFCのサテライトDLLで多言語化を実装してるんですが、一つ問題が発生しました。
リソースの識別子の最大値が65535となってて、これを超える場合っていったいどうすればいいんでしょうか?
181デフォルトの名無しさん:2009/04/09(木) 03:48:39
ちょw
182デフォルトの名無しさん:2009/09/21(月) 03:27:55
Windows、Linux両方対応で
Unicodeを扱えるアプリを作ろうと思っているんですが、
文字型には何を使えば良いのでしょうか?

UTF-8を使ってchar。 Windows APIを呼び出すときは
W系APIを使う必要があるから、charからwchar_tに変換。

これでいいのでしょうか?
183デフォルトの名無しさん:2009/09/21(月) 03:28:14
age
184デフォルトの名無しさん:2009/09/22(火) 18:06:30
>>182
UTF-8 なら uint8_t だろ。
Windows API 呼び出すんなら UTF-16 だから uint16_t だろ。
単純に考えればな。

char や wchar_t 使ってると符号やサイズの違いで混乱しそうだ。
185デフォルトの名無しさん:2009/09/22(火) 21:24:50
c++0xではchar/char16_tだな
VCは今後どうする気なんだろう
186デフォルトの名無しさん:2009/09/23(水) 16:08:29
>>182
理想的には両プラットフォームで wchar_t かな。サイズが違うけど、そ
こは違ってもいいようにコードを組む。

現実的に考えると、Windows は wchar_t (UTF-16)にして、Linux では
wchar_t を使わずに uint16_t (UTF-16) にするとか。ICU がそんな感じ
で、双方に対して UChar という型を typedef している。

187デフォルトの名無しさん:2009/09/26(土) 04:09:53
でもwchar_tは互換性が・・・

wchar_tで国際化といえば、
UTF-16かUTF-32になるとおもうけど。

そうすると、文字列のバイトの中に\0が含まれることになる。

なので、printfとかfopenとか、そういうなじみのある関数が全部使えない。
もちろんcharとwchar_tで型が違うから\0の問題以前にコンパイルエラーだけどね。
188デフォルトの名無しさん:2009/09/26(土) 08:57:54
wprintfは標準にあるよ!
189デフォルトの名無しさん:2009/09/26(土) 09:50:50
だけど、wfopenは標準にないよ。

だから日本語パスを使うときはいちいち変換しなきゃならない。
190デフォルトの名無しさん:2009/09/26(土) 10:29:58
さらにいうのなら、Linuxなんかではシステムのエンコードが
UTF-8になっており、これならfopenでそのままファイルが開ける。
だからソースコードをほとんど変更することなくUNICODE化が可能。

そのせいで内部データ型としてcharのままなソフトが大半
1バイト文字圏の人にとっては何もする必要がなく、
そういうソフトが今も作られ維持されているので
日本語化という作業がいつまでたってもなくならない。
  ↑
※この日本語化というのは、文字を1バイトづつ処理したりとか
文字列の長さ=バイトであつかうような間違った処理の修正

普通に書いたら、世界各国で何の問題も無く動いた。
むしろ問題起こす方が難しいって状況になるのはいつの日か
191デフォルトの名無しさん:2009/09/26(土) 15:20:36
>190
西欧でも全部が1バイト範囲内にはならないんだから真面目に UTF-8 で書いていれば
※に書かれているような作業は必要ないんじゃない?
192デフォルトの名無しさん:2009/09/26(土) 18:29:36
UNIXのファイル名にエンコーディングなんか決まってないが。
/と'\0'以外何でも使えるバイト列。
193デフォルトの名無しさん:2009/09/26(土) 21:58:37
問題は、UTF16、UTF32の文字を1バイトづつ見たときに
\0 が含まれているってことなんだがな。
194デフォルトの名無しさん:2009/09/26(土) 22:04:17
> 真面目に UTF-8 で書いていれば

それが大変な作業なんだろ。
システムのファイル名がUTF8だと保証されているわけじゃないし、
標準ライブラリに含まれてるわけじゃないし。
195デフォルトの名無しさん:2009/09/27(日) 01:59:58
UTF-8でもOSXだとNFDになってるからまた面倒だったり
196デフォルトの名無しさん:2009/09/27(日) 03:10:37
バカしかいないねこのスレ
197デフォルトの名無しさん:2009/09/27(日) 09:29:10
>>196
それを書き込んだ時点でオマエのバカの一員になるわけだが。
198デフォルトの名無しさん:2009/09/27(日) 12:57:20
文字コードがUTF8でもUTF16でもいいんだけど、
完璧に一文字ずつ操作する方法ってどうするの?
もちろんNFDもちゃんと考慮する。
199デフォルトの名無しさん:2009/09/27(日) 13:01:21
イケメンしかいないねこのスレ
200デフォルトの名無しさん:2009/09/30(水) 17:03:51
UTF32なら1文字32bitだから、コードが書きやすい!と
思っていたら、合成文字なんてのがあるのなorz
201デフォルトの名無しさん:2009/10/01(木) 19:33:03
>>198
NFDでもNFCでも一文字ずつ操作する処理は同じ。
NFCでも合成文字やdecompositionは出て来るから文字は可変長、NFDの場合に比べて頻度が減るだけ。
202デフォルトの名無しさん:2009/10/01(木) 19:47:06
> NFDでもNFCでも一文字ずつ操作する処理は同じ。

(苦笑)

同じってのはわかったから、そのやり方をどうやるかが
質問の内容だろう。
203デフォルトの名無しさん:2009/10/01(木) 20:08:43
>>202
ステートマシン回すのは必要なんだけど、ここのスペースでは書けないでしょ。
OSに備わってる機能使っても良いし、ICUで言えばBreakIterator使ったりしても良い。
最適化したり、1から書いたりするのはその辺経験してからの話
204デフォルトの名無しさん:2009/10/01(木) 20:16:33
>>203
ウザイなw

じゃあ俺が変わりにどうやるか教えてあげよう。

1.OSに備わっている機能を使う(それが何かは、誰かが説明してくれるだろうさw)
2.ICUを使う場合はBreakIteratorを使う。

これぐらい、小さなスペースでかけないものか?

これを参考にして、他の方法を書いてみな。
205デフォルトの名無しさん:2009/10/01(木) 23:03:03
どちらかというと >>202=204 の方がウザい
206デフォルトの名無しさん:2009/10/02(金) 11:29:21
なんでバカが上から目線なの?
207デフォルトの名無しさん:2009/10/02(金) 11:38:09
自分のことか?
208デフォルトの名無しさん:2010/01/16(土) 04:04:32
LinuxならUTF-8で書けばいいの?
209デフォルトの名無しさん:2010/02/10(水) 10:50:40
Windowsでのプログラミングですが、unicodeでプログラムを書けば各国語版のWindowsで動くのでしょうか?
210デフォルトの名無しさん:2010/02/10(水) 17:57:05
プログラムをunicodeで書くとはどのような状況のことでしょうか
211デフォルトの名無しさん:2010/02/11(木) 14:10:21
動くだけなら動くでしょう
しかし実用に耐えうるかどうかは別問題
国際化は動けばいいというだけのものではありません
212デフォルトの名無しさん:2010/03/19(金) 17:05:21
Windowsでタイムゾーンと夏時間が有効かどうかを調べる方法を教えてください。
213デフォルトの名無しさん:2010/03/20(土) 04:12:43
GetTimeZoneInformation
214デフォルトの名無しさん:2010/03/20(土) 04:16:34
typedef struct _TIME_ZONE_INFORMATION {
    LONG Bias;
    WCHAR StandardName[ 32 ];
    SYSTEMTIME StandardDate;
    LONG StandardBias;
    WCHAR DaylightName[ 32 ];
    SYSTEMTIME DaylightDate;
    LONG DaylightBias;
} TIME_ZONE_INFORMATION, *PTIME_ZONE_INFORMATION, *LPTIME_ZONE_INFORMATION;
215デフォルトの名無しさん:2010/09/24(金) 23:57:19
国際化ねえ
216デフォルトの名無しさん:2010/09/25(土) 00:23:47
internationalization hey
217 忍法帖【Lv=1,xxxP】 :2011/06/23(木) 08:46:25.27
gencat
218デフォルトの名無しさん:2011/08/26(金) 14:13:41.07
ログ復活
219デフォルトの名無しさん:2011/08/27(土) 05:36:24.66
英語版Windowsを使っているのですが、メニューなどが文字化けするソフトと、きちんと日本語で表示されるソフトがあるのですが、
英語版Windowsでメニューなどが文字化けしないようにするにはどこに気をつければよいのでしょうか?
220デフォルトの名無しさん:2011/08/27(土) 13:55:19.62
>>219
自分で国際化対応の機能を作らない。
日時の表示、金額の表示、フォント設定、単語の順番。
それらにOSやライブラリで提供されている機能を使う

ソースコードに日本語を書かない。
表示される文字をソースコードに書かない。
すべてプログラム外から取ってくる。
Unicodeを使う。Windows9x系は諦める。
221デフォルトの名無しさん:2011/08/31(水) 21:56:52.64
UNICODEとか国際化のうちじゃ極一端しか役に立たないよな。
それよか順番を指定できる出力機能が重要だよね。

format("%2 %1") % "World" % "Hello";

とやって"Hello World"と出力されるとかね。
とりあえず外に吐き出した文字を出力させてるだけだと、
「"read"になる事ができませんでした」とか文法の狂ったとんでもないメッセージを吐く。
222デフォルトの名無しさん:2011/08/31(水) 22:09:38.14
printfに引数の順番を
入れ替える機能がなかったことが悔やまれる。
223デフォルトの名無しさん:2011/08/31(水) 22:27:58.65
>>222
printf("%2$s %1$s¥n","world!","Hello"); // --> "Hello world!"
224デフォルトの名無しさん:2011/08/31(水) 22:29:43.20
>>223
あー、俺が言ってるのはC言語の本物のprintfね、ニセprintfの話はしてないから(ぷ
225デフォルトの名無しさん:2011/09/01(木) 00:33:16.25
printf自体に実装すると、printfが重くなるから、
せめてC99とか規格改訂の際に順番指定できる補助用の
sprintf作って欲しかった。何で作らないんだろうな。
226阪神金本を支持する市民の党:2011/10/30(日) 11:09:14.61
アメリカって乳児の死亡率、日本の2倍らしいな
医療技術うんぬんじゃなくて、お金がなくて病院に行けないらしい
TPPに参加してアメリカに乗っ取られたら
日本もやがてこうなるんじゃないか。

国際化とか言って、レベルの低いほうに合わせてどうするんだ…
227デフォルトの名無しさん:2011/10/30(日) 12:30:16.91
ネトウヨ王に俺はなるまで読んだ
228デフォルトの名無しさん:2011/11/28(月) 19:19:46.90

気になるか?
まあ、お前ごときどうせ株なんか知らんだろうし、どうにも出来んし説明してやろう。

崩壊してんのは、株取引のほうだ。
すでに年金すら韓銀砲で溶けてる。今なお溶かし続けてる。
後、多分だが金持ってる外国人や富裕層はとっくに韓国から亡命(まあ似たようなもん)してる
どこまで持ちこたえるか知らんが、ウォンは貧弱だから安くなりすぎても、高くなりすぎても死亡
すると紙クズと化したウォンを、ハゲタカファンドに捨て値でおもちゃにされてゲームオーバーだ


そしたらまず銀行が閉鎖されて、預金が降ろせなくなるだろうな。
そこからがパニックの引き金になるだろ、あとは想像に任せる。まあしたくもないくらい地獄だろうが

韓国がIMF入り以外で、自力で浮き上がろうとしたら、これら問題をどうにかする必要があるのだが
首脳陣がそこまで脳ミソ使ってるのかまでは、知らん。


あとそうなったらおそらく円持ってる在日強制召還。これはお前らの問題だな、日本人?復興にいそがしいからまた今度な
これくらいだな、まあ後は勝手に調べてくれ。


229デフォルトの名無しさん:2012/03/08(木) 23:15:06.36
竹島って本当はどっちの国の領土なの?(´・ω・`)
230デフォルトの名無しさん:2012/03/08(木) 23:20:45.67
>>229
もともとは韓国領だったが、
日本の植民地支配から、
日本が勝手に領有権を主張しだした。
現在は国際的にも韓国領と認識されている。
231デフォルトの名無しさん:2012/03/08(木) 23:21:13.37
>>230
詳しい解説サンクス
これなら韓国が怒るのも当然の気がする(´・ω・`)
232デフォルトの名無しさん:2012/03/09(金) 03:59:52.90
ID出る板でやらないとおもしろさ半減だぞ
233デフォルトの名無しさん:2012/03/09(金) 16:05:06.01
>>230
こんにちは半白さん
234片山博文MZボット ◆0lBZNi.Q7evd
FormatMessageとunicowsは使える。
FormatMessageは引数の順番が変わってもOKだし、
unicows使ったらUnicodeアプリをWin9xに移植できるもんね。