01/10/2025 10:53:00
Notice Module
I. Overview
The notice module is the information notification system provided by MSDK for games. The notice system only provides data. The specific UI style needs to be customized by the user. Through Notice console configuration, the following text, image, URL and other information can be released.
The following diagram is a simple notice display:
II. Access Guide
Precondition
- Unity layer's CShalp file has been imported to Unity project
- Import the related files of iOS and Android into Unity project directory: Assets/Plugins/iOS (Android)
- Follow the steps below to complete access to the notice module.
2.1 Configure the Callback
1) Function description
MSDK notice module's callback; the game needs to register a callback function for processing;
2) Interface declaration
/// <summary>
/// Notice's callback interface
/// </summary>
public static event OnMSDKRetEventHandler<MSDKNoticeRet> NoticeRetEvent;
class MSDKNoticeObserver
{
public:
// Notice's callback interface
virtual void OnLoadNoticeData (const MSDKNoticeRet ¬iceRet) {};
};
3) Demo code
MSDKNotice.NoticeRetEvent += OnNoticeRetEvent;
public void OnNoticeRetEvent (MSDKNoticeRet noticeRet)
{
string methodTag = "";
if (noticeRet.MethodNameId == (int) MSDKMethodNameID.MSDK_NOTICE_LOAD_DATA) {
methodTag = "LoadNotice";
}
SampleInstance.showRetDialog (methodTag, noticeRet);
}
//Need to remove the listener when destroying it
private void OnDestroy()
{
MSDKNotice.NoticeRetEvent -= OnNoticeRetEvent;
}
MSDKNotice:: SetNoticeObserver (new MyNoticeObserver ());
class MyNoticeObserver: public MSDKNoticeObserver {
public:
void OnLoadNoticeData (const MSDKNoticeRet ¬iceRet) {
String ret = MSDKUtils::FormatJson(MSDKJsonManager::ToJson(noticeRet));
UMSDKDemoBase::showNormalAlert(ret);
}
};
4) Data structure
MSDKNoticeRet explanation
Inherited from MSDKBaseRet; contain the basic information
member variable name | type | Description |
---|---|---|
NoticeInfoList | List | notice list; refer to MSDKNoticeInfo struct |
MSDKNoticeInfo explanation
notice's struct, including various notice information
member variable name | type | Description |
---|---|---|
NoticeId | int | notice id |
NoticeType | int | notice type |
NoticeGroup | string | notice group; defined and used by the game |
BeginTime | int | the starting time |
EndTime | int | The end time |
Order | int | queue number |
Language | string | language |
TextInfo | MSDKNoticeTextInfo | text information |
PicUrlList | List | image link address |
WebUrl | string | page notice link |
ExtraJson | string | extension field; user-defined parameters in Feiying System->Notice Management->Notice Configuration can be returned through this field. MSDK only transparently transmits this field |
Description: extraJson in MSDKNoticeRet can return the values of the input parameters, including: noticeGroup, language, region and partition. These parameters can be used to identify which drawn notice is empty when multiple notice draws are made and one of the drawn notices is empty.
MSDKNoticeTextInfo: Detailed text description of the notice
member variable name | type | Description |
---|---|---|
noticeTitle | string | notice title |
noticeContent | string | notice text |
noticeRedirectUrl | string | the notice's redirection link |
2.2 Get Notice Data
1) Function description
Get the configured notice information
2) Interface declaration
public static void LoadNoticeData (string noticeGroup, string language, int region, string partition, string extra);
static void LoadNoticeData (const String ¬iceGroup, const String &language, int region,
const String &partition, const String &extra);
3) Parameter description
Parameter name | Parameter type | Description |
---|---|---|
noticeGroup | string | notice group; the backend fill out notices and divide them into groups and then draw the corresponding notice information |
language | string | the language of the notice.Some languages' shortcodes A language may have multiple shortcodes. Be careful not to fill in them wrongly in the input parameters. For example, simplified Chinese has several shortcodes, such as zh-CN, zh-ID, and zh-IE |
region | int | region,for example: North America, Asia Pacific, South America, etc.; configured and defined by the game itself |
partition | string | game zone; configured and defined by the game itself |
extra | string | an extension field, which is directly transmitted transparently to the backend, in json format. The filtering fields configured in the Notice management system must pass a description in extra, otherwise the corresponding notice cannot be drawn |
4) Call example
MSDKNotice.LoadNoticeData ("1", "zh-CN", "1", "0");
MSDKNotice:: LoadNoticeData ("1", "zh-CN", "1", "0", "extra params");
III. Configuration Notice
[info]The address of the notice management: SDK Access->Notice Management in the left menu in http://dev.ied.com/
3.1 Configure Notices at the Management Console
The issued notice should pay attention to whether the environment is a test environment or a formal environment
After the management system selects the notice language, the content of the notice language box will display "Selected. Please see the notice content tab", and the selected notice language will be displayed at the top of the notice content box.
Field | Corresponding variable | -- | Field | Corresponding variable |
---|---|---|---|---|
Notice type | noticeType | Notice group | noticeGroup | |
Beginning time | beginTime | End time | endTime | |
Notice language | language | Notice content | contentType | |
Text | textInfo | Image | picUrlList | |
Webpage | webUrl | Notice ranking | order |
[info]
The "Local time zone" field must be set correctly, otherwise it will affect the issue time of the notice
Set a whitelist for the notice. You can set the visibility of the notice to the specified user
If the set parameter is a user-defined parameter, the backend will not filter notices based on the user-defined parameter but will return it to the game when drawing notices
The return examples of the user-defined parameter configuration and drawing are as follows:
IV. Notice filter field rules
4.1 Overview
The notice filtering field rule is controlled by the MSDK backend logic. The backend filter and issue the notice data according to the filtering fields transparently transmitted from the Feiying configuration notice. When the client gets the notice data, it can only get the notice data that meets the filtering rule. The game itself chooses whether to configure the filtering fields.
4.2 Filtering field types
1) Fixed filtering fields
The fixed filtering fields include operation system, channel, openid, device id, version number, partition
, among which, except that partition
needs to be transparently transmitted through the partition
parameter when the notice data is gotten, other fixed filtering fields are all automatically assembled into the backend request and don't need the game to transmit parameters.
[info] Version number acquisition description
Android reads versionCode and versionName in AndroidManifest.xml; iOS reads CFBundleVersionKey (i.e. versionCode) and CFBundleShortVersionString (i.e. versionName) in info.plist
2) User-defined (Extra) filtering fields
User-defined (Extra)
filtering fields support up to 10 fields, which can be numbers or English characters and are set according to the game-defined configuration. Any notice that sets user-defined (Extra)
filtering fields must be passed in via the Json forma in extra
when the client get it; otherwise, the corresponding notice cannot be drawn.
[warning] Special description of user-defined (Extra) filtering fields
If Feiying configures user-defined (Extra) filtering fields
- When the game client gets notices, the corresponding data must be passed in via the json format in
extra
. The client can get notices that conform to theuser-defined (Extra)
filtering fields and all other notices that don't setuser-defined (Extra)
filtering fields (if other filtering fields are set, other filtering field rules need to be met).
- When the game client gets notice data, if
extra
is not passed, then the client can only get notices which don't setuser-defined (Extra)
filtering fields.
4.3 Example of filtering rules
1) Configure the operation system filtering
1、 Configure filtering field-operation system
is Android
. The notice configuration UI is as shown below:
2、 When the game client gets notice data, it doesn't need to transparently transmit the operation system parameter. MSDK will assemble the parameter into the request by itself. Only when operation system
is Android, that is, os=1, the corresponding notices can be obtained by the client. The backend request example is as follows:
request url : https://hktest.itop.qq.com/v2/notice/get_notice?channelid=3&gameid=11&os=&seq=11-ad1e7e0c-db53-47d8-8c0a-46f4db9a2c2e-1585646332-91&ts=1585646332&version=5.9.000.2031&sig=b3286fc66bada707aaf7c4fda46e500e with postBody : {"language":"zh-CN","device_info":{"uuid":"0efd653e-8966-4eb2-b3a0-0804ec585ae5","device_language":"zh","app_version":"4.1.1316(1)","screen_dpi":3.0,"resolution":"1080*1920","trade_mark":"OPPO","manufacturer":"OPPO","model":"OPPO R9 Plusm A","apn":"null#WIFI","ram_info":"3770527744","rom_info":"58177896448","cpu_info":"1804","imei":"862022039840336","qimei":"862022039840336","oaid":"","xid":""},"region":156,"partition":"0","last_time":0,"extra_info":{"versionCode":"1","versionName":"4.1.1316"}} opt:3 reqSeq:10101, reqTime:0
2) Configure the openid filtering field
1、 Configure filtering field-openid
and upload TXT file. The Notice configuration UI is shown in the figure below:
2、 When the game client gets notice data, it doesn't need to transparently transmit the openid
parameter, but the login status is needed so that MSDK assembles openid
into the request. Only when openid
matches the openid
configured by Feiying can the corresponding notices be gotten. The backend request example is as follows:
request url : https://hktest.itop.qq.com/v2/notice/get_notice?channelid=2&gameid=11&os=1&seq=11-ad1e7e0c-db53-47d8-8c0a-46f4db9a2c2e-1585641369-68&ts=1585641369&version=5.9.000.2031&sig=764ae7e85ade2fdd913951282c20c01f with postBody : {"language":"zh-CN","device_info":{"uuid":"0efd653e-8966-4eb2-b3a0-0804ec585ae5","device_language":"zh","app_version":"4.1.1316(1)","screen_dpi":3.0,"resolution":"1080*1920","trade_mark":"OPPO","manufacturer":"OPPO","model":"OPPO R9 Plusm A","apn":"null#WIFI","ram_info":"3770527744","rom_info":"58177896448","cpu_info":"1804","imei":"862022039840336","qimei":"862022039840336","oaid":"","xid":""},"region":156,"partition":"0","last_time":0,"extra_info":{"versionCode":"1","versionName":"4.1.1316"},"token":"745C7327CE7121D79A119E56B9AD81ED","openid":"8820471424767347317"} opt:3 reqSeq:10071, reqTime:0
3) Configure filtering fields - user-defined (Extra) fields
1、 Configure filtering field - user-defined (Extra) field
as myExtra1
. The notice configuration UI is shown in the figure below:
2、 When the game client gets notice data, it must pass in {"myExtra1":"myValue1"}
in the Json format in extra
, so as to get the corresponding notice. The example of the client transmitting parameters is shown as follows:
3、 A backend request example is shown as follows:
request url : https://hktest.itop.qq.com/v2/notice/get_notice?channelid=2&gameid=11&os=1&seq=11-ad1e7e0c-db53-47d8-8c0a-46f4db9a2c2e-1585549132-37&ts=1585549132&version=5.9.000.2031&sig=1efefb378ac29b7e2e201044b7d342f4 with postBody : {"language":"zh-CN","device_info":{"uuid":"0efd653e-8966-4eb2-b3a0-0804ec585ae5","device_language":"zh","app_version":"4.1.1316(1)","screen_dpi":3.0,"resolution":"1080*1920","trade_mark":"OPPO","manufacturer":"OPPO","model":"OPPO R9 Plusm A","apn":"null#WIFI","ram_info":"3770527744","rom_info":"58177896448","cpu_info":"1804","imei":"862022039840336","qimei":"862022039840336","oaid":"","xid":""},"region":156,"partition":"0","last_time":0,"extra_info":{"versionCode":"1","versionName":"4.1.1316","myExtra1":"myValue1"},"token":"745C7327CE7121D79A119E56B9AD81ED","openid":"8820471424767347317"} opt:3 reqSeq:10011, reqTime:0
4) Example of configuring multiple filtering rules
If multiple filtering rules are configured, when the game client gets notice data, it needs to satisfy all filtering rules before it can draw the corresponding notice. The filtering rules of the fixed filtering fields and user-defined (Extra)
are the same and can be mixed.
1、 If filtering field-operating system +openid
are configured at the same time, the game client can get the corresponding notice only when operating system
must be Android
and openid
matches the Feiying configuration. The Feiying configuration and the backend request are shown as follows:
request url : https://hktest.itop.qq.com/v2/notice/get_notice?channelid=2&gameid=11&os=1&seq=11-ad1e7e0c-db53-47d8-8c0a-46f4db9a2c2e-1585641369-68&ts=1585641369&version=5.9.000.2031&sig=764ae7e85ade2fdd913951282c20c01f with postBody : {"language":"zh-CN","device_info":{"uuid":"0efd653e-8966-4eb2-b3a0-0804ec585ae5","device_language":"zh","app_version":"4.1.1316(1)","screen_dpi":3.0,"resolution":"1080*1920","trade_mark":"OPPO","manufacturer":"OPPO","model":"OPPO R9 Plusm A","apn":"null#WIFI","ram_info":"3770527744","rom_info":"58177896448","cpu_info":"1804","imei":"862022039840336","qimei":"862022039840336","oaid":"","xid":""},"region":156,"partition":"0","last_time":0,"extra_info":{"versionCode":"1","versionName":"4.1.1316"},"token":"745C7327CE7121D79A119E56B9AD81ED","openid":"8820471424767347317"} opt:3 reqSeq:10071, reqTime:0
2、 When two filtering fields - user-defined (Extra)
are configured at the same time, the Feiying configuration is shown in the figure below:
When the game client gets notice data, it must pass in {"myExtra1":"myValue1","myExtra2":"myValue2"}
in the Json format in extra
. An example of the client transmitting parameters is shown as follows:
The backend request is shown as follows:
request url : https://hktest.itop.qq.com/v2/notice/get_notice?channelid=2&gameid=11&os=1&seq=11-ad1e7e0c-db53-47d8-8c0a-46f4db9a2c2e-1585549269-41&ts=1585549269&version=5.9.000.2031&sig=31de3f361c7752891c3cfd11ee94bf06 with postBody : {"language":"zh-CN","device_info":{"uuid":"0efd653e-8966-4eb2-b3a0-0804ec585ae5","device_language":"zh","app_version":"4.1.1316(1)","screen_dpi":3.0,"resolution":"1080*1920","trade_mark":"OPPO","manufacturer":"OPPO","model":"OPPO R9 Plusm A","apn":"null#WIFI","ram_info":"3770527744","rom_info":"58177896448","cpu_info":"1804","imei":"862022039840336","qimei":"862022039840336","oaid":"","xid":""},"region":156,"partition":"0","last_time":0,"extra_info":{"versionCode":"1","versionName":"4.1.1316","myExtra1":"myValue1","myExtra2":"myValue2"},"token":"745C7327CE7121D79A119E56B9AD81ED","openid":"8820471424767347317"} opt:3 reqS
[warning] Special Description:
When the game client get notice data, it must pass in{"myExtra1":"myValue1","myExtra2":"myValue2"}
inextra
in json format before it can get notices which are separately configured withmyExtra1
ormyExtra2
. Fixed filtering fields also apply to this rule.
V. Others
5.1 Some region' code
region ID | Chinese name | English | region ID | Chinese name | English name |
---|---|---|---|---|---|
4 | 阿富汗 | Afghanistan | 438 | 列支敦士登 | Liechtenstein |
8 | 阿尔巴尼亚 | Albania | 440 | 立陶宛 | Lithuania |
10 | 南极洲 | Antarctica | 442 | 卢森堡 | Luxembourg |
12 | 阿尔及利亚 | Algeria | 446 | 澳门 | Macao |
16 | 美属萨摩亚 | American Samoa | 450 | 马达加斯加 | Madagascar |
20 | 安道尔 | Andorra | 454 | 马拉维 | Malawi |
24 | 安哥拉 | Angola | 458 | 马来西亚 | Malaysia |
28 | 安提瓜和巴布达 | Antigua and Barbuda | 462 | 马尔代夫 | Maldives |
31 | 阿塞拜疆 | Azerbaijan | 466 | 马里 | Mali |
32 | 阿根廷 | Argentina | 470 | 马耳他 | Malta |
36 | 澳洲 | Australia | 474 | 马提尼克 | Martinique |
40 | 奥地利 | Austria | 478 | 毛里塔尼亚 | Mauritania |
44 | 巴哈马 | Bahamas | 480 | 毛里求斯 | Mauritius |
48 | 巴林 | Bahrain | 484 | 墨西哥 | Mexico |
50 | 孟加拉国 | Bangladesh | 492 | 摩纳哥 | Monaco |
51 | 亚美尼亚 | Armenia | 496 | 蒙古国 | Mongolia |
52 | 巴巴多斯 | Barbados | 498 | 摩尔多瓦 | Moldova, Republic of |
56 | 比利时 | Belgium | 499 | 黑山 | Montenegro |
60 | 百慕大 | Bermuda | 500 | 蒙特塞拉特 | Montserrat |
64 | 不丹 | Bhutan | 504 | 摩洛哥 | Morocco |
68 | 玻利维亚 | Bolivia, Plurinational State of | 508 | 莫桑比克 | Mozambique |
70 | 波斯尼亚和黑塞哥维那 | Bosnia and Herzegovina | 512 | 阿曼 | Oman |
72 | 博茨瓦纳 | Botswana | 516 | 纳米比亚 | Namibia |
74 | 布韦岛 | Bouvet Island | 520 | 瑙鲁 | Nauru |
76 | 巴西 | Brazil | 524 | 尼泊尔 | Nepal |
84 | 伯利兹 | Belize | 528 | 荷兰 | Netherlands |
86 | 英属印度洋领地 | British Indian Ocean Territory | 531 | 库拉索 | Curaçao |
90 | 所罗门群岛 | Solomon Islands | 533 | 阿鲁巴 | Aruba |
92 | 英属维尔京群岛 | Virgin Islands, British | 534 | 圣马丁 | Sint Maarten (Dutch part) |
96 | 文莱 | Brunei Darussalam | 535 | 荷兰加勒比区 | Bonaire, Sint Eustatius and Saba |
100 | 保加利亚 | Bulgaria | 540 | 新喀里多尼亚 | New Caledonia |
104 | 缅甸 | Myanmar | 548 | 瓦努阿图 | Vanuatu |
108 | 布隆迪 | Burundi | 554 | 新西兰 | New Zealand |
112 | 白俄罗斯 | Belarus | 558 | 尼加拉瓜 | Nicaragua |
116 | 柬埔寨 | Cambodia | 562 | 尼日尔 | Niger |
120 | 喀麦隆 | Cameroon | 566 | 尼日利亚 | Nigeria |
124 | 加拿大 | Canada | 570 | 纽埃 | Niue |
132 | 佛得角 | Cabo Verde | 574 | 诺福克岛 | Norfolk Island |
136 | 开曼群岛 | Cayman Islands | 578 | 挪威 | Norway |
140 | 中非 | Central African Republic | 580 | 北马里亚纳群岛 | Northern Mariana Islands |
144 | 斯里兰卡 | Sri Lanka | 581 | 美国本土外小岛屿 | United States Minor Outlying Islands |
148 | 乍得 | Chad | 583 | 密克罗尼西亚联邦 | Micronesia, Federated States of |
152 | 智利 | Chile | 584 | 马绍尔群岛 | Marshall Islands |
156 | 中国 | China | 585 | 帕劳 | Palau |
158 | 中国台湾省 | Taiwan, Province of China | 586 | 巴基斯坦 | Pakistan |
162 | 圣诞岛 | Christmas Island | 591 | 巴拿马 | Panama |
166 | 科科斯(基林)群岛 | Cocos (Keeling) Islands | 598 | 巴布亚新几内亚 | Papua New Guinea |
170 | 哥伦比亚 | Colombia | 600 | 巴拉圭 | Paraguay |
174 | 科摩罗 | Comoros | 604 | 秘鲁 | Peru |
175 | 马约特 | Mayotte | 608 | 菲律宾 | Philippines |
178 | 刚果(布) | Congo | 612 | 皮特凯恩群岛 | Pitcairn |
180 | 刚果(金) | Congo, the Democratic Republic of the | 616 | 波兰 | Poland |
184 | 库克群岛 | Cook Islands | 620 | 葡萄牙 | Portugal |
188 | 哥斯达黎加 | Costa Rica | 624 | 几内亚比绍 | Guinea-Bissau |
191 | 克罗地亚 | Croatia | 626 | 东帝汶 | Timor-Leste |
192 | 古巴 | Cuba | 630 | 波多黎各 | Puerto Rico |
196 | 塞浦路斯 | Cyprus | 634 | 卡塔尔 | Qatar |
203 | 捷克 | Czechia | 638 | 留尼汪 | Réunion |
204 | 贝宁 | Benin | 642 | 罗马尼亚 | Romania |
208 | 丹麦 | Denmark | 643 | 俄罗斯 | Russian Federation |
212 | 多米尼克 | Dominica | 646 | 卢旺达 | Rwanda |
214 | 多米尼加 | Dominican Republic | 652 | 圣巴泰勒米 | Saint Barthélemy |
218 | 厄瓜多尔 | Ecuador | 654 | 圣赫勒拿、阿森松和特里斯坦-达库尼亚 | Saint Helena, Ascension and Tristan da Cunha |
222 | 萨尔瓦多 | El Salvador | 659 | 圣基茨和尼维斯 | Saint Kitts and Nevis |
226 | 赤道几内亚 | Equatorial Guinea | 660 | 安圭拉 | Anguilla |
231 | 埃塞俄比亚 | Ethiopia | 662 | 圣卢西亚 | Saint Lucia |
232 | 厄立特里亚 | Eritrea | 663 | 法属圣马丁 | Saint Martin (French part) |
233 | 爱沙尼亚 | Estonia | 666 | 圣皮埃尔和密克隆 | Saint Pierre and Miquelon |
234 | 法罗群岛 | Faroe Islands | 670 | 圣文森特和格林纳丁斯 | Saint Vincent and the Grenadines |
238 | 福克兰群岛 | Falkland Islands (Malvinas) | 674 | 圣马力诺 | San Marino |
239 | 南乔治亚和南桑威奇群岛 | South Georgia and the South Sandwich Islands | 678 | 圣多美和普林西比 | Sao Tome and Principe |
242 | 斐济 | Fiji | 682 | 沙特阿拉伯 | Saudi Arabia |
246 | 芬兰 | Finland | 686 | 塞内加尔 | Senegal |
248 | 奥兰 | Åland Islands | 688 | 塞尔维亚 | Serbia |
250 | 法国 | France | 690 | 塞舌尔 | Seychelles |
254 | 法属圭亚那 | French Guiana | 694 | 塞拉利昂 | Sierra Leone |
258 | 法属波利尼西亚 | French Polynesia | 702 | 新加坡 | Singapore |
260 | 法属南方和南极洲领地 | French Southern Territories | 703 | 斯洛伐克 | Slovakia |
262 | 吉布提 | Djibouti | 704 | 越南 | Viet Nam |
266 | 加蓬 | Gabon | 705 | 斯洛文尼亚 | Slovenia |
268 | 格鲁吉亚 | Georgia | 706 | 索马里 | Somalia |
270 | 冈比亚 | Gambia | 710 | 南非 | South Africa |
275 | 巴勒斯坦 | Palestine, State of | 716 | 津巴布韦 | Zimbabwe |
276 | 德国 | Germany | 724 | 西班牙 | Spain |
288 | 加纳 | Ghana | 728 | 南苏丹 | South Sudan |
292 | 直布罗陀 | Gibraltar | 729 | 苏丹 | Sudan |
296 | 基里巴斯 | Kiribati | 732 | 西撒哈拉 | Western Sahara |
300 | 希腊 | Greece | 740 | 苏里南 | Suriname |
304 | 格陵兰 | Greenland | 744 | 斯瓦尔巴和扬马延 | Svalbard and Jan Mayen |
308 | 格林纳达 | Grenada | 748 | 斯威士兰 | Swaziland |
312 | 瓜德罗普 | Guadeloupe | 752 | 瑞典 | Sweden |
316 | 关岛 | Guam | 756 | 瑞士 | Switzerland |
320 | 危地马拉 | Guatemala | 760 | 叙利亚 | Syrian Arab Republic |
324 | 几内亚 | Guinea | 762 | 塔吉克斯坦 | Tajikistan |
328 | 圭亚那 | Guyana | 764 | 泰国 | Thailand |
332 | 海地 | Haiti | 768 | 多哥 | Togo |
334 | 赫德岛和麦克唐纳群岛 | Heard Island and McDonald Islands | 772 | 托克劳 | Tokelau |
336 | 梵蒂冈 | Holy See | 776 | 汤加 | Tonga |
340 | 洪都拉斯 | Honduras | 780 | 特立尼达和多巴哥 | Trinidad and Tobago |
344 | 香港 | Hong Kong | 784 | 阿联酋 | United Arab Emirates |
348 | 匈牙利 | Hungary | 788 | 突尼斯 | Tunisia |
352 | 冰岛 | Iceland | 792 | 土耳其 | Turkey |
356 | 印度 | India | 795 | 土库曼斯坦 | Turkmenistan |
360 | 印尼 | Indonesia | 796 | 特克斯和凯科斯群岛 | Turks and Caicos Islands |
364 | 伊朗 | Iran, Islamic Republic of | 798 | 图瓦卢 | Tuvalu |
368 | 伊拉克 | Iraq | 800 | 乌干达 | Uganda |
372 | 爱尔兰 | Ireland | 804 | 乌克兰 | Ukraine |
376 | 以色列 | Israel | 807 | 马其顿 | Macedonia, the former Yugoslav Republic of |
380 | 意大利 | Italy | 818 | 埃及 | Egypt |
384 | 科特迪瓦 | Côte d'Ivoire | 826 | 英国 | United Kingdom |
388 | 牙买加 | Jamaica | 831 | 根西 | Guernsey |
392 | 日本 | Japan | 832 | 泽西 | Jersey |
398 | 哈萨克斯坦 | Kazakhstan | 833 | 马恩岛 | Isle of Man |
400 | 约旦 | Jordan | 834 | 坦桑尼亚 | Tanzania, United Republic of |
404 | 肯尼亚 | Kenya | 840 | 美国 | United States of America |
408 | 朝鲜 | Korea, Democratic People's Republic of | 850 | 美属维尔京群岛 | Virgin Islands, U.S. |
410 | 韩国 | Korea, Republic of | 854 | 布基纳法索 | Burkina Faso |
414 | 科威特 | Kuwait | 858 | 乌拉圭 | Uruguay |
417 | 吉尔吉斯斯坦 | Kyrgyzstan | 860 | 乌兹别克斯坦 | Uzbekistan |
418 | 老挝 | Lao People's Democratic Republic | 862 | 委内瑞拉 | Venezuela, Bolivarian Republic of |
422 | 黎巴嫩 | Lebanon | 876 | 瓦利斯和富图纳 | Wallis and Futuna |
426 | 莱索托 | Lesotho | 882 | 萨摩亚 | Samoa |
428 | 拉脱维亚 | Latvia | 887 | 也门 | Yemen |
430 | 利比里亚 | Liberia | 894 | 赞比亚 | Zambia |
434 | 利比亚 | Libya |
5.2 Some language abbreviation code (language)
abbreviation code | Language | -- | abbreviation code | Language |
---|---|---|---|---|
af-ZA | Afrikaans | ar-AE | Arabic (United Arab Emirates) | |
ar-BH | Arabic (Bahrain) | ar-DZ | Arabic (Algeria) | |
ar-EG | Arabic (Egypt) | ar-IQ | Arabic (Iraq) | |
ar-JO | Arabic (Jordan) | ar-KW | Arabic (Kuwait) | |
ar-LB | Arabic (Lebanon) | ar-LY | Arabic (Libya) | |
ar-MA | Arabic (Morocco) | ar-OM | Arabic (Oman) | |
ar-QA | Arabic (Qatar) | ar-SA | Arabic (Saudi Arabia) | |
ar-SY | Arabic (Syria) | ar-TN | Arabic (Tunisia) | |
ar-YE | Arabic (Yemen) | ar-AZ | Azerbaijani (Cyrillic) | |
be-BY | Belgian | bg-BG | Bulgarian | |
bs-BA | Bosnian (Bosnia and Herzegovina) | ca-ES | Catalan | |
cs-CZ | Czech | cy-GB | Welsh | |
da-DK | Danish | de-AT | German (Austria) | |
de-CH | German (Switzerland) | de-DE | German (Germany) | |
de-IE | German | de-LI | German (Liechtenstein) | |
de-LU | German (Luxembourg) | de-LU | German (Luxembourg) | |
de-US | German | dv-MV | Divehi | |
el-GR | Greek | en-AU | English (Australia) | |
en-BZ | English (Belize) | en-CA | English (Canada) | |
en-CB | English (Caribbean) | en-CN | Experience Service English | |
en-GB | English (UK) | en-GLOBAL | en-GLOBAL | |
en-ID | English | en-IE | English | |
en-JM | English (Jamaica) | en-NZ | English (New Zealand) | |
en-PH | English (Philippines) | en-SG | Singaporean | |
en-TT | English (Trinidad) | en-US | English (United States) | |
en-ZA | English (South Africa) | en-ZW | English (Zimbabwe) | |
es-AR | Spanish (Argentina) | es-BO | Spanish (Bolivia) | |
es-CL | Spanish (Chile) | es-CO | Spanish (Colombia) | |
es-CR | Spanish (Costa Rica) | es-DO | Spanish (Dominican Republic) | |
es-EC | Spanish (Ecuador) | es-ES | Spanish (International) | |
es-GT | Spanish (Guatemala) | es-HN | Spanish (Honduras) | |
es-IE | Spain | es-MX | Spanish (Mexico) | |
es-NI | Spanish (Nicaragua) | es-PA | Spanish (Panama) | |
es-PE | Spanish (Peru) | es-PR | Spanish (Puerto Rico (USA)) | |
es-PY | Spanish (Paraguay) | es-SA | Spanish South America | |
es-SV | Spanish (El Salvador) | es-US | Spanish | |
es-UY | Spanish (Uruguay) | es-VE | Spanish (Venezuela) | |
eslt-IE | Spain | et-EE | Estonian | |
eu-ES | Basque | fa-IR | French | |
fi-FI | Finnish | fo-FO | Faroese | |
fr-BE | French (Belgium) | fr-CA | French (Canada) | |
fr-CH | French (Switzerland) | fr-FR | French (France) | |
fr-IE | French | fr-LU | French (Luxembourg) | |
fr-MC | French (Monaco) | gl-ES | Gasilian | |
gu-IN | Gujarati | he-IL | Hebrew | |
hi-IN | Hindi | hr-BA | Croatian (Bosnia, Herzegovina) | |
hr-HR | Croatian | hu-HU | Hungarian | |
hy-AM | Armenian | id-ID | Indonesian | |
is-IS | Icelandic | it-CH | Italian (Switzerland) | |
it-IT | Italian (Italy) | ja-IE | Japanese | |
ja-JP | Japanese | ka-GE | Georgian | |
kk-KZ | Kazakh | kn-IN | Kanara | |
ko-ES | ko-ES | ko-KR | Korean | |
kok-IN | Konkani | ky-KG | Kyrgyz (Cyrillic) | |
lt-LT | Lithuanian | lv-LV | Latvian | |
mi-NZ | Maori | mk-MK | Macedonian (FYROM) | |
mn-MN | Mongolian (Cyrillic) | mr-IN | Marathi | |
ms-BN | Malay (Brunei Darussalam) | ms-MY | Malay (Malaysia) | |
mt-MT | Maltese | my-SG | Malay | |
nb-NO | Norwegian (Burkmel) | nl-BE | Dutch (Belgium) | |
nl-NL | Dutch (Netherlands) | nn-NO | Norwegian (Nynorsk) | |
ns-ZA | Northern Sotho | pa-IN | Punjabi | |
pl-PL | Polish | pt-BR | Portuguese (Brazil) | |
pt-IE | Portuguese | pt-PT | Portuguese (Portugal) | |
pt-SA | Portuguese South America | ptlt-IE | Portugal | |
qu-BO | Quechua (Bolivia) | qu-EC | Quechua (Ecuador) | |
qu-PE | Quechua (Peru) | ro-RO | Romanian | |
ru-IE | Russian | ru-RU | Russian | |
sa-IN | Sanskrit | se-FI | Summers (Finland) | |
se-NO | Summers (Norway) | se-SE | Summers (Sweden) | |
sk-SK | Slovak | sl-SI | Slovenian | |
sq-AL | Albanian | sr-BA | Serbian (Latin, Cyrillic) | |
sr-SP | Serbia (Latin, Cyrillic) | sv-FI | Swedish (Finland) | |
sv-SE | Swedish | sw-KE | Swahili | |
syr-SY | Syriac | ta-IN | Tamil | |
te-IN | Telugu | th-TH | Thai | |
tl-PH | Tagalog (Philippines) | tn-ZA | Tswana | |
tr-IE | Turkish | tr-TR | Turkish | |
tt-RU | Tatar | uk-UA | Ukrainian | |
ur-PK | Udu | ur-UZ | Uzbek (Latin, Cyrillic) | |
vi-ES | vi-ES | vi-EXP | vi-EXP | |
vi-VN | Vietnamese | xh-ZA | Bantu | |
zh-CN | Simplified Chinese | zh-CNEXP | zh-CNEXP | |
zh-ES | zh-ES | zh-GLOBAL | zh-GLOBAL | |
zh-HK | Chinese (Hong Kong) | zh-ID | Simplified Chinese | |
zh-IE | Simplified Chinese | zh-MO | Chinese (Macau) | |
zh-SG | Chinese (Singapore) | zh-TW | Chinese (Traditional) | |
zu-ZA | Zulu |
All rights reserved.