Используя библиотеку ICU с C ++, я делаю:
char const *lang = Locale::getDefault().getLanguage();
Если я пишу небольшую тестовую программу и запускаю ее в своей системе Mac, я получаю en
для lang
.Однако внутри большого группового проекта, над которым я работаю, я получаю root
.У кого-нибудь есть идеи, почему?Я нашел это:
http://userguide.icu -project.org / locale / resources
, поэтому я предполагаю, что при работе в более крупной системе некоторые ресурсы ICUне найдены, но я не знаю, какие ресурсы, почему они не найдены или как это исправить.
Дополнительная информация
/usr/bin/locale
возвращает:
LANG="en_US.ISO8859-1"
LC_COLLATE="C"
LC_CTYPE="C"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL="C"
Если я напишу небольшую программу на C:
char const *lang = setlocale( LC_ALL, "" ):
Я получу en_US.ISO8859-1
.
OS : Mac OS X 10.6.4(Снежный барс)
Версия ICU : 4.3.4 (последняя версия доступна через MacPorts).
Небольшая помощь?Спасибо.