我正在研究跨平台的C ++应用程序。它是多语言的,必须以usera语言显示所有消息。为了检测语言环境,我正在使用setlocale(LC_ALL,“”)调用。它返回当前的语言和国家/地区,例如我的情况是“ ru_RU.UTF-8”。
当我从终端启动应用程序时,一切都可以在MacOS 10.9.1中正常工作。当我从Finder运行我的应用程序时,setlocale总是返回默认语言环境(“ C”)。我怀疑这是因为Finder未设置LANG环境变量。
在C ++应用程序中的MacOS X下检测用户语言环境的正确方法是什么?