📄 hxlang.h
字号:
/* ***** BEGIN LICENSE BLOCK *****
* Version: RCSL 1.0/RPSL 1.0
*
* Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved.
*
* The contents of this file, and the files included with this file, are
* subject to the current version of the RealNetworks Public Source License
* Version 1.0 (the "RPSL") available at
* http://www.helixcommunity.org/content/rpsl unless you have licensed
* the file under the RealNetworks Community Source License Version 1.0
* (the "RCSL") available at http://www.helixcommunity.org/content/rcsl,
* in which case the RCSL will apply. You may also obtain the license terms
* directly from RealNetworks. You may not use this file except in
* compliance with the RPSL or, if you have a valid RCSL with RealNetworks
* applicable to this file, the RCSL. Please see the applicable RPSL or
* RCSL for the rights, obligations and limitations governing use of the
* contents of the file.
*
* This file is part of the Helix DNA Technology. RealNetworks is the
* developer of the Original Code and owns the copyrights in the portions
* it created.
*
* This file, and the files included with this file, is distributed and made
* available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
* EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES,
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
*
* Technology Compatibility Kit Test Suite(s) Location:
* http://www.helixcommunity.org/content/tck
*
* Contributor(s):
*
* ***** END LICENSE BLOCK ***** */
/***************************************************************************
Abstraction:
Contains a listing of ISO-639 compliant langauge tags and their
equivalent LanguageID. Language & sub-language contants are defined
in "olenls.h", and this file maps langIDs to ISO-639 compliant tags.
THIS IS A STATIC LIBRARY, no need to instantiate objects from this
class.
This class defines a static array mapping ISO-639 language tags
language IDs. LangIDs are a 16bit number composing of a primary
langauge and a sub-language. For instance, the lang French-Canadian
would have a primary language of "French" and a sub-lang of
"Canadian". See "olenls.h" for more details on langIDs.
**************************************************************************
To use this class, if you have a languageID and want to get it's
ISO-639 tag:
LANGID SomeLangID = MAKELANGID(LANG_FRENCH, SUBLANG_FRENCH_GIBBERISH)
UINT16 nIndex = CHXLang::FindClosest( SomeLangID )
Now, since "LANG_FRENCH/SUBLANG_FRENCH_GIBBERISH" doesn't exist,
the FindClosest() function will return the closest matching language,
mainly, French (LANG_FRENCH, SUBLANG_NEUTRAL).
If French didn't exist, then the function returns -1 as the index. If
we used "FindExact()" in the above example, we'd get -1 returned
since "LANG_FRENCH/SUBLANG_FRENCH_GIBBERISH" doesn't exist.
GetCount() returns the # of languages in the database.
A langauge index goes from 0 to GetCount()-1.
Once we have the index, we can get the ISO-639 tag using:
const char* szISOtag = CHXLang::GetISO639( nIndex );
NULL is returned if the index is out-of-range. You can iterate all
the langauges in the database with:
for(UINT16 nIdx=0; nIdx < CHXLang::GetCount(); nIdx++)
{
printf("%d = %s \n", nIdx, CHXLang::GetISO639(nIdx);
}
*/
#ifndef _RPLANG_H_
#define _RPLANG_H_
#ifdef _WINDOWS
# include <windows.h>
#endif
#include "hxtypes.h"
#ifndef LANG_ENGLISH
#define LANG_ENGLISH 0x09
#endif
#ifndef SUBLANG_ENGLISH_US
#define SUBLANG_ENGLISH_US 0x01
#endif
//We need to define a MAKELCID and MAKELANGID for non windows systems.
#ifndef MAKELCID
#define MAKELCID(a) ((UINT32)(((UINT8)(a)) | (((UINT32)((UINT8)(0))) << 16)))
#endif
#ifndef MAKELANGID
#define MAKELANGID(a, b) ((((UINT8)(b))<<10) | (UINT8)(a))
#endif
#ifndef LANG_ARMENIAN
#define LANG_ARMENIAN 0x2b
#endif
#ifndef LANG_ASSAMESE
#define LANG_ASSAMESE 0x4d
#endif
#ifndef LANG_AZERI
#define LANG_AZERI 0x2c
#endif
#ifndef SUBLANG_AZERI_LATIN
#define SUBLANG_AZERI_LATIN 0x01 // Azeri (Latin)
#endif
#ifndef SUBLANG_AZERI_CYRILLIC
#define SUBLANG_AZERI_CYRILLIC 0x02 // Azeri (Cyrillic)
#endif
#ifndef LANG_BASQUE
#define LANG_BASQUE 0x2d
#endif
#ifndef LANG_BELARUSIAN
#define LANG_BELARUSIAN 0x23
#endif
#ifndef LANG_BENGALI
#define LANG_BENGALI 0x45
#endif
#ifndef SUBLANG_CHINESE_MACAU
#define SUBLANG_CHINESE_MACAU 0x05 // Chinese (Macau)
#endif
#ifndef SUBLANG_ENGLISH_PHILIPPINES
#define SUBLANG_ENGLISH_PHILIPPINES 0x0d // English (Philippines)
#endif
#ifndef SUBLANG_ENGLISH_ZIMBABWE
#define SUBLANG_ENGLISH_ZIMBABWE 0x0c // English (Zimbabwe)
#endif
#ifndef LANG_FARSI
#define LANG_FARSI 0x29
#endif
#ifndef SUBLANG_FRENCH_MONACO
#define SUBLANG_FRENCH_MONACO 0x06 // French (Monaco)
#endif
#ifndef LANG_MACEDONIAN
#define LANG_MACEDONIAN 0x2f
#endif
#ifndef LANG_GEORGIAN
#define LANG_GEORGIAN 0x37
#endif
#ifndef LANG_GUJARATI
#define LANG_GUJARATI 0x47
#endif
#ifndef LANG_HINDI
#define LANG_HINDI 0x39
#endif
#ifndef LANG_KANNADA
#define LANG_KANNADA 0x4b
#endif
#ifndef LANG_KAZAK
#define LANG_KAZAK 0x3f
#endif
#ifndef LANG_MALAY
#define LANG_MALAY 0x3e
#endif
#ifndef LANG_MALAYALAM
#define LANG_MALAYALAM 0x4c
#endif
#ifndef SUBLANG_MALAY_MALAYSIA
#define SUBLANG_MALAY_MALAYSIA 0x01 // Malay (Malaysia)
#endif
#ifndef SUBLANG_MALAY_BRUNEI_DARUSSALAM
#define SUBLANG_MALAY_BRUNEI_DARUSSALAM 0x02 // Malay (Brunei Darussalam)
#endif
#ifndef LANG_MARATHI
#define LANG_MARATHI 0x4e
#endif
#ifndef LANG_NEPALI
#define LANG_NEPALI 0x61
#endif
#ifndef LANG_ORIYA
#define LANG_ORIYA 0x48
#endif
#ifndef LANG_PUNJABI
#define LANG_PUNJABI 0x46
#endif
#ifndef LANG_SANSKRIT
#define LANG_SANSKRIT 0x4f
#endif
#ifndef LANG_SWAHILI
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -