zoukankan      html  css  js  c++  java
  • NLS编程

    NLS(National Language Support)

    Background(背景)

    Each language has a language name and a language identifierthat indicate the particular code page (ANSI, DOS, Macintosh) used to represent the geographical location for the language on the operating system. 

    Data Type(数据类型)

    typedef WORD LANGID;
    typedef DWORD LCID;
    typedef DWORD LCTYPE;


    Usage(使用)

    Each locale has a unique identifier, a 32-bit value that consists of a language identifier and a sort order identifier. The locale identifier is a standard international numeric abbreviation and has the components necessary to uniquely identify one of the installed operating system-defined locales. 

    The following illustration shows the format of the bits in a locale identifier.
    +-------------+---------+-------------------------+
    |   Reserved  | Sort ID |      Language ID        |
    +-------------+---------+-------------------------+
    31         20 19     16 15                      0   bit

    The following illustration shows the format of the bits in a language identifier. 
    +-------------------------+-------------------------+
    |     SubLanguage ID      |   Primary Language ID   |
    +-------------------------+-------------------------+
    15                    10  9                         0   bit

    Get LCID(locale indentifier)

    LCID GetThreadLocale(void);


    Modify customed LCID for thread
    BOOL SetThreadLocale ( LCID Locale );

    Compose LCID
    DWORD MAKELCID(
    	  WORD wLanguageID,  
    	  WORD wSortID
    	);
    for sort order identifier, please refer to link.

    Compose LANGID
    WORD MAKELANGID(
    	  USHORT usPrimaryLanguage,  
    	  USHORT usSubLanguage       
    	);

    for languange identifier constants and strings, please refer to  link


    Example:
    SetThreadLocale(MAKELCID(MAKELANGID(LANG_GERMAN, SUBLANG_GERMAN), SORT_GERMAN_PHONE_BOOK));

    Extract Sort Identifier
    WORD SORTIDFROMLCID(
    	  LCID lcid  
    	);

    Extract Language Identifer
    	WORD LANGIDFROMLCID(
    	  LCID lcid  
    	);

    Extract Primary language identfier
    	WORD PRIMARYLANGID(
    	  WORD lgid  
    	);
    

    Extract a sublanguage identifier
    	WORD SUBLANGID(
    	  WORD lgid  
    	);







     
  • 相关阅读:
    JAVA-初步认识-第五章-数组-常见操作-最值2
    JAVA-初步认识-第五章-数组-常见操作-最值
    JAVA-初步认识-第五章-数组-常见操作-遍历
    JAVA-初步认识-第五章-数组-第二种定义格式
    JAVA-初步认识-第四章-数组-常见问题
    JAVA-初步认识-第四章-内存图解
    日期加1程序
    发生了COMException 异常来自 HRESULT:0x80040228
    设置窗体的可见性无效
    DotNetBar RibbonControl 控件动态添加项
  • 原文地址:https://www.cnblogs.com/rogerroddick/p/2846691.html
Copyright © 2011-2022 走看看