2010-06-11 28 views
1

我似乎無法找到一種方法來轉換或查找子語言字符串中的本地標識符。該網站顯示的映射:Microsoft sublanguage string to locale identifier

http://msdn.microsoft.com/en-us/library/dd318693(v=VS.85).aspx

我希望用戶輸入一個子語言字符串,如「法國(FR)」,並從中得到當地的標識符,在這種情況下將是0x0484。或者相反,如果用戶輸入0x0480,然後返回法語(FR)。

有沒有人遇到過這個問題,並可以指出我在正確的方向嗎?

否則,我將編寫幾個映射語句來硬編碼它,並在發生任何更改時維護將來的版本。

順便說一句,我在Windows平臺的C++編碼。 乾杯

回答

2

一個好的起點將是LCIDToLocaleName函數,它是相反的 - LocaleNameToLCID。請注意,這些允許在LCID和RFC4646語言環境名稱之間進行轉換;要獲取可讀的國家和語言名稱,請使用GetLocaleInfoExLOCALE_SENGLISH*標誌。如果您需要本地化名稱而不是英語,請改用LOCALE_SLOCALIZED *常量。

+0

+1謝謝,我已經越過那一個,但我正在尋找一些更人類可讀的東西。其中一些RFC4646代碼比記住4個字符的十六進制LCID更難,哈哈。如果我很快就找不到更合適的答案,那麼請注意你的正確:) – Jacob 2010-06-11 03:45:34

+0

我會給你這一個,因爲你讓我朝着正確的方向前進。我發佈了我實際用於博客> http://corner1001.wordpress.com/2010/07/02/windows-system-languages/的代碼的裸骨頭,所以我希望它可以幫助其他人 – Jacob 2010-07-02 09:12:41