05/15/2024 15:19:45

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:

King notice example

II. Access Guide

Precondition

  1. Unity layer's CShalp file has been imported to Unity project
  2. Import the related files of iOS and Android into Unity project directory: Assets/Plugins/iOS (Android)
  3. 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

C#
C++
/// <summary>
/// Notice's callback interface 
/// </summary>
public static event OnMSDKRetEventHandler<MSDKNoticeRet>  NoticeRetEvent;
class MSDKNoticeObserver
{
public:
// Notice's callback interface 
    virtual void OnLoadNoticeData (const MSDKNoticeRet &noticeRet) {}; 
};

3) Demo code

C#
C++
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 &noticeRet) {
        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

C#
C++
public static void LoadNoticeData (string noticeGroup, string language, int region, string partition, string extra);
static void LoadNoticeData (const String &noticeGroup, 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

C#
C++
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:

Notice-defined field configuration

Notice-defined field return

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

  1. 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 the user-defined (Extra)filtering fields and all other notices that don't set user-defined (Extra)filtering fields (if other filtering fields are set, other filtering field rules need to be met).
  2. When the game client gets notice data, if extra is not passed, then the client can only get notices which don't set user-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:

Filtering field-operation system-Feiying configuration example

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:

Filtering field-operation system-backend request example

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:

Filtering field-openid-Feiying configuration example

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:

Filtering field-openid-backend request example

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:

Filtering field - user-defined (Extra) - Feiying configuration example

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:

Filtering field - user-defined (Extra) - client input parameter example

3、 A backend request example is shown as follows:

Filtering field - user-defined (Extra) - backend request example

 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:

Filtering field-operation system +openid- Feiying configuration example

Filtering field-operation system +openid- backend request example

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:

Two filtering fields - user-defined (Extra) - Feiying configuration example

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:

Two filtering fields-user-defined (Extra)-client input parameter example

The backend request is shown as follows:

Two filtering fields - user-defined (Extra) - backend request example

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"} in extra in json format before it can get notices which are separately configured with myExtra1 or myExtra2. 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



Copyright © 2024 MSDK.
All rights reserved.

results matching ""

    No results matching ""