Отображение из локали в USB LANGID
Я использую libusb в среде POSIXy (в частности, FreeBSD, но я надеюсь быть достаточно переносимым).
Я хочу получить некоторые строки с устройства USB, используя libusb_get_string_descriptor
но я не уверен, какое значение я должен использовать для langid
, Мне известен официальный список http://www.usb.org/developers/docs/USB_LANGIDs.pdf но есть ли простой способ сопоставить результат, например, с setlocale(LC_MESSAGES, NULL)
а LANGID в этом PDF?
Это даже правильный подход? Пример кода, который я видел, кажется, все извлекает первую строку, не беспокоясь о выборе языка.
1 ответ
Я не смог найти ни одного сопоставления, как вы описали, и я не уверен, что кто-либо создал его, особенно потому, что названия языков не являются стандартными для всех операционных систем.
По моему (по общему признанию ограниченному) опыту, устройства имеют тенденцию игнорировать langid и всегда будут возвращать одну и ту же строку для данного индекса. Однако я нахожусь в США и не имею доступа к оборудованию, предназначенному для поддержки нескольких языков, так что это может быть не так во всем мире.
Тем не менее, каждое USB-устройство (которое вообще поддерживает строковые дескрипторы) должно предоставлять как минимум одно поддерживаемое значение langid для нулевого индекса строки, так что вы можете сначала получить его (с langid 0) для использования по умолчанию.