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  
    	);







     
  • 相关阅读:
    Linux workqueue疑问【转】
    Java中基础类库使用
    Sdut 2164 Binomial Coeffcients (组合数学) (山东省ACM第二届省赛 D 题)
    python中使用mahotas包实现高斯模糊
    ZOJ1372 POJ 1287 Networking 网络设计 Kruskal算法
    Android 属性动画(Property Animation) 全然解析 (下)
    MySQL搜索: WHERE 多条件
    点滴记录——Centos 6.5 yum安装Ganglia
    标准linuxserver搭建
    检查ORACLE的警告文件的脚本
  • 原文地址:https://www.cnblogs.com/rogerroddick/p/2846691.html
Copyright © 2011-2022 走看看