Internationalization 从区域设置到USB LANGID的映射

Internationalization 从区域设置到USB LANGID的映射,internationalization,usb,locale,libusb,setlocale,Internationalization,Usb,Locale,Libusb,Setlocale,我在POSIXy环境中使用libusb(特别是FreeBSD,但我希望它相当便携) 我想使用libusb\u get\u string\u描述符从USB设备获取一些字符串,但我不确定应该为langid使用什么值。我知道来自的官方列表,但是是否有一种简单的方法可以在例如setlocale(LC_MESSAGES,NULL)的结果和本PDF中的LANGIDs之间进行映射 这是正确的方法吗?我看到的示例代码似乎都能获取第一个字符串,而不必担心语言选择。我无法找到您描述的任何映射,我也不确定是否有人创建

我在POSIXy环境中使用libusb(特别是FreeBSD,但我希望它相当便携)

我想使用
libusb\u get\u string\u描述符
从USB设备获取一些字符串,但我不确定应该为
langid
使用什么值。我知道来自的官方列表,但是是否有一种简单的方法可以在例如
setlocale(LC_MESSAGES,NULL)
的结果和本PDF中的LANGIDs之间进行映射


这是正确的方法吗?我看到的示例代码似乎都能获取第一个字符串,而不必担心语言选择。

我无法找到您描述的任何映射,我也不确定是否有人创建了映射,特别是因为语言名称在操作系统中不是标准的

根据我的经验(无可否认是有限的),设备倾向于忽略langid,并且总是为给定的索引返回相同的字符串。然而,我在美国,无法使用设计用于支持多种语言的设备,因此,在世界范围内这可能不是真的


也就是说,每个USB设备(完全支持字符串描述符)都需要在字符串索引0上提供至少一个受支持的langid,因此您可以首先(使用langid 0)将其作为默认值使用。

POSIX没有指定区域设置ID的格式。因此它将不可移植。(我见过使用不同区域设置标识符的各种系统)