Kaydet (Commit) af2abfe3 authored tarafından Eike Rathke's avatar Eike Rathke

documentation and define on-the-fly ID ranges

Change-Id: I7d42480b0e0d57634647a002c55bd0c3c968bb28
üst d87cb77b
...@@ -54,14 +54,18 @@ ...@@ -54,14 +54,18 @@
And of course 2 lists aren't enough, so Windows Vista needs an extra one. And of course 2 lists aren't enough, so Windows Vista needs an extra one.
Which at least seems to include values of other versions of Windows. Which at least seems to include values of other versions of Windows.
Language Identifier Constants and Strings Language Identifier Constants and Strings
http://msdn2.microsoft.com/en-us/library/ms776294.aspx http://msdn.microsoft.com/en-us/library/ms776294.aspx
Hey, yet another list, maybe this one will not move around? It seems to be ! Hey, yet another list, maybe this one will not move around? It seems to be
quite complete.. ! quite complete..
Language Identifier Constants and Strings (Windows) ! Language Identifier Constants and Strings (Windows)
http://msdn.microsoft.com/en-us/library/dd318693(VS.85).aspx ! http://msdn.microsoft.com/en-us/library/dd318693.aspx
!
! Use THAT ^^^ as of 2013-09-17 it includes also Windows 8
For completeness, you can never have enough lists:
List of supported locale identifiers in Word List of supported locale identifiers in Word
Applies to Microsoft Word 2000 and 2002
http://support.microsoft.com/default.aspx?scid=KB;en-us;q221435 http://support.microsoft.com/default.aspx?scid=KB;en-us;q221435
*/ */
...@@ -380,7 +384,10 @@ typedef unsigned short LanguageType; ...@@ -380,7 +384,10 @@ typedef unsigned short LanguageType;
*! LANGUAGE_SYSTEM and then to effective system language */ *! LANGUAGE_SYSTEM and then to effective system language */
#define LANGUAGE_PROCESS_OR_USER_DEFAULT 0x0400 #define LANGUAGE_PROCESS_OR_USER_DEFAULT 0x0400
/* And now the extensions we define, valid from
/* And now the extensions we define,
* with primary language IDs from 0x200 to 0x3FF valid in blocks from
*
* 0x0610 to 0x07FF with sublanguage ID 0x01 (default) * 0x0610 to 0x07FF with sublanguage ID 0x01 (default)
* 0x0A00 to 0x0BFF with sublanguage ID 0x02 * 0x0A00 to 0x0BFF with sublanguage ID 0x02
* ... * ...
...@@ -390,6 +397,23 @@ typedef unsigned short LanguageType; ...@@ -390,6 +397,23 @@ typedef unsigned short LanguageType;
* 0xFA00 to 0xFBFF with sublanguage ID 0x3E * 0xFA00 to 0xFBFF with sublanguage ID 0x3E
* 0xFE00 to 0xFFFF with sublanguage ID 0x3F * 0xFE00 to 0xFFFF with sublanguage ID 0x3F
* *
* Of which we define reserved blocks:
* All primary language IDs 0x3E0 to 0x3FF with any sublanguage ID, not to be
* assigned as user-defined IDs:
*
* 0x07E0 to 0x07FF with sublanguage ID 0x01, first on-the-fly block
* 0x0BE0 to 0x0BFF with sublanguage ID 0x02, second on-the-fly block
* ...
* 0x83E0 to 0x83FF with sublanguage ID 0x20
* 0x87E0 to 0x87FF with sublanguage ID 0x21
* ...
* 0xFBE0 to 0xFBFF with sublanguage ID 0x3E, last on-the-fly block
* 0xFFE0 to 0xFFFF with sublanguage ID 0x3F, 32 privateuse and specials
*
* This leaves room for 480 user-defined primary language IDs (instead of 512)
* with primary bitmask comparability, and 1984 on-the-fly IDs (instead of 0)
* with arbitrary assignment.
*
* Obsolete OOo user defines now have other values assigned by MS, and * Obsolete OOo user defines now have other values assigned by MS, and
* different name. Mapping an obsolete value to ISO code should work provided * different name. Mapping an obsolete value to ISO code should work provided
* that such a mapping exists in i18nlangtag/source/isolang/isolang.cxx, but * that such a mapping exists in i18nlangtag/source/isolang/isolang.cxx, but
...@@ -560,6 +584,15 @@ typedef unsigned short LanguageType; ...@@ -560,6 +584,15 @@ typedef unsigned short LanguageType;
#define LANGUAGE_USER_NGAEBERE 0x0689 #define LANGUAGE_USER_NGAEBERE 0x0689
#define LANGUAGE_USER_ENGLISH_UK_OED 0x8C09 /* makeLangID( 0x23, getPrimaryLanguage( LANGUAGE_ENGLISH_UK)) */ #define LANGUAGE_USER_ENGLISH_UK_OED 0x8C09 /* makeLangID( 0x23, getPrimaryLanguage( LANGUAGE_ENGLISH_UK)) */
/* Primary language ID range for on-the-fly assignment. */
#define LANGUAGE_ON_THE_FLY_START 0x03E0
#define LANGUAGE_ON_THE_FLY_END 0x03FF
/* Sublanguage ID range for on-the-fly assignment. */
#define LANGUAGE_ON_THE_FLY_SUB_START 0x01
#define LANGUAGE_ON_THE_FLY_SUB_END 0x3E
/* 0xFFE0 to 0xFFFF reserved for privateuse and specials. */
#define LANGUAGE_USER_PRIV_JOKER 0xFFEB /* privateuse "*" (sic! bad! nasty!), primary 0x3eb, sub 0x3f */ #define LANGUAGE_USER_PRIV_JOKER 0xFFEB /* privateuse "*" (sic! bad! nasty!), primary 0x3eb, sub 0x3f */
#define LANGUAGE_USER_PRIV_COMMENT 0xFFEC /* privateuse "x-comment", primary 0x3ec, sub 0x3f */ #define LANGUAGE_USER_PRIV_COMMENT 0xFFEC /* privateuse "x-comment", primary 0x3ec, sub 0x3f */
#define LANGUAGE_USER_PRIV_DEFAULT 0xFFED /* privateuse "x-default", primary 0x3ed, sub 0x3f */ #define LANGUAGE_USER_PRIV_DEFAULT 0xFFED /* privateuse "x-default", primary 0x3ed, sub 0x3f */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment