國際化程式設計中Locale相關概念的一些解釋

2021-04-16 14:26:40 字數 1723 閱讀 9696

locales

一般常用的並且容易造成混淆的

locale有3

種:system locale, user locale, thread locale

1.system locale

:系統區域設定。決定了非

unicode

程式所使用的**頁,如下:

對應的code page

可以用getacp

和getoemcp

來獲得。

system locale

無法被api

修改,但是可以用

getsystemdefaultlcid

和getsystemdefaultlangid

獲得。lcid

和langid

後面會解釋。

2.user locale

:使用者區域設定,決定了各種標準和格式的定義,如數字,日期等,如下:

是不能被

api修改的,只能由使用者設定。可以通過

getuserdefaultlcid

和getuserdefaultlangid

獲得。同樣的,區別後面會提到。

3.thread locale

:執行緒相關的區域。初始值為當前的

user locale

,可以使用

getthreadlocale

和setthreadlocale

獲取和修改。

1.langid

language id

,也就是語言

id。代表不同的語言,比如

english

,chinese

,等等。

lang id (16 bit)=primary language id(10 bit) + sub language id(6 bit)

,如下:

sub language id:6

primary language id:10

primarylanguage

代表主語言,比如英語

sub language

代表子語言,也就是語言的亞種,如美式英語

(en-us)

,或者英式英語

(en-gb)

,對應的子語言為

us/gb

。 2.

lcid

locale identifier

,代表locale

資訊,等價於

langid (16 bit) + sort id (4bit) + reserved (12)

,如下:

reserved : 16

sort id : 4

lang id: 16

作者: atfield

國際化程式設計中Locale相關概念的一些解釋

locales 一般常用的並且容易造成混淆的 locale有3 種 system locale,user locale,thread locale 1.system locale 系統區域設定。決定了非 unicode 程式所使用的 頁,如下 對應的code page 可以用getacp 和geto...

國際化程式設計中Locale相關概念的一些解釋

locales 一般常用的並且容易造成混淆的 locale有3 種 system locale,user locale,thread locale 1.system locale 系統區域設定。決定了非 unicode 程式所使用的 頁,如下 對應的code page 可以用getacp 和geto...

國際化程式設計中Locale相關概念的一些解釋

locales 一般常用的並且容易造成混淆的 locale有3 種 system locale,user locale,thread locale 1.system locale 系統區域設定。決定了非 unicode 程式所使用的 頁,如下 對應的code page 可以用getacp 和geto...