2017-01-01 524 views
0

私はPOSIXy環境(特にFreeBSDではlibusbを使用していますが、かなり移植性がありたい)です。ロケールからUSBへのマッピングLANGID

libusb_get_string_descriptorを使用してUSBデバイスから一部の文字列を取得したいのですが、langidにはどのような値を使用するべきかわかりません。私はhttp://www.usb.org/developers/docs/USB_LANGIDs.pdfから公式リストを知っていますが、結果の間に簡単な方法でマップすることができます。 setlocale(LC_MESSAGES, NULL)とこのPDFのLANGID?

これは正しいアプローチですか?私が見たサンプルコードは、言語の選択について心配することなく、最初の文字列をすべてフェッチするように見えます。

+0

POSIXはロケールIDの形式を指定しません。したがって、移植性はありません。 (私はさまざまなロケール識別子を使ってさまざまなシステムを見てきました) –

答えて

0

あなたが説明したようなマッピングを見つけることができず、言語名がOS全体で標準ではないため、誰も作ったことがないと思います。

私の(確かに限られた)経験では、デバイスはlangidを無視する傾向があり、指定されたインデックスに対して常に同じ文字列を返します。しかし、私は米国にいるため、複数の言語をサポートするように設計された機器にアクセスすることはできません。したがって、これは世界中では当てはまりません。

つまり、すべてのUSBデバイス(文字列記述子をサポートする)は、少なくとも1つのサポートされているlangidを文字列インデックス0に指定する必要があるため、最初に(langid 0で)デフォルトとして使用する。

関連する問題