乘风破浪,遇见最美Windows 11之现代Windows桌面应用开发 - Azure认知服务翻译器及支持语言清单
什么是Azure认知服务翻译器
https://azure.microsoft.com/zh-cn/services/cognitive-services/translator/

Azure认知服务翻译器是一种基于云的机器翻译服务,你通过简单的REST API调用便可使用该服务来翻译文本。该服务使用先进的神经机器翻译技术并提供统计机器翻译技术。“自定义翻译器”是“翻译器”的扩展,用于构建神经翻译系统。可以将自定义的翻译系统与“翻译器”或Microsoft语音服务配合使用来翻译文本。
支持语言清单
https://docs.microsoft.com/en-us/azure/cognitive-services/translator/language-support
https://docs.microsoft.com/zh-cn/azure/cognitive-services/translator/language-support
| 英语描述 | 英语代号 | 语言编码 | 中文描述 |
|---|---|---|---|
| Detect language | Detect | N/A | 自动检测 |
| Afrikaans | Afrikaans | af |
南非荷兰语 |
| Albanian | Albanian | sq |
阿尔巴尼亚语 |
| Amharic | Amharic | am |
阿姆哈拉语 |
| Arabic | Arabic | ar |
阿拉伯语 |
| Armenian | Armenian | hy |
亚美尼亚语 |
| Assamese | Assamese | as |
阿萨姆语 |
| Azerbaijani (Latin) | Azerbaijani_Latin | az |
阿塞拜疆语(拉丁语) |
| Bangla | Bengali | bn |
孟加拉语 |
| Bashkir | Bashkir | ba |
巴什基尔语 |
| Basque | Basque | eu |
巴斯克语 |
| Bosnian (Latin) | Bosnian_Latin | bs |
波斯尼亚语(拉丁语系) |
| Bulgarian | Bulgarian | bg |
保加利亚语 |
| Cantonese (Traditional) | Cantonese | yue |
粤语(繁体) |
| Catalan | Catalan | ca |
加泰罗尼亚语 |
| Chinese (Literary) | Chinese_Literature | lzh |
中文(文学) |
| Chinese Simplified | Simplified_Chinese | zh-Hans |
简体中文 |
| Chinese Traditional | Chinese_Traditional | zh-Hant |
中文(繁体) |
| Croatian | Croatian | hr |
克罗地亚语 |
| Czech | Czech | cs |
捷克语 |
| Danish | Danish | da |
丹麦语 |
| Dari | Dari | prs |
达里语 |
| Divehi | Divehi | dv |
马尔代夫语 |
| Dutch | Dutch | nl |
荷兰语 |
| English | English | en |
英语 |
| Estonian | Estonian | et |
爱沙尼亚语 |
| Faroese | Faroese | fo |
法罗语 |
| Fijian | Fijian | fj |
斐济语 |
| Filipino | Filipino | fil |
菲律宾语 |
| Finnish | Finnish | fi |
芬兰语 |
| French | French | fr |
法语 |
| French (Canada) | French_Canada | fr-CA |
法语(加拿大) |
| Galician | Galician | gl |
加利西亚语 |
| Georgian | Georgian | ka |
格鲁吉亚语 |
| German | German | de |
德语 |
| Greek | Greek | el |
希腊语 |
| Gujarati | Gujarati | gu |
古吉拉特语 |
| Haitian Creole | Haitian_Creole | ht |
海地克里奥尔语 |
| Hebrew | Hebrew | he |
希伯来语 |
| Hindi | Hindi | hi |
印地语 |
| Hmong Daw (Latin) | White_Hmong | mww |
白苗语(拉丁语) |
| Hungarian | Hungarian | hu |
匈牙利语 |
| Icelandic | Icelandic | is |
冰岛语 |
| Indonesian | Indonesian | id |
印度尼西亚语 |
| Inuinnaqtun | Inuktun_language | ikt |
因纽纳敦语 |
| Inuktitut | Inuktitut | iu |
因纽特语 |
| Inuktitut (Latin) | Inuktitut_Latin | iu-Latn |
因纽特语(拉丁语) |
| Irish | Irish_language | ga |
爱尔兰语 |
| Italian | Italian | it |
意大利语 |
| Japanese | Japanese | ja |
日语 |
| Kannada | Kannada | kn |
卡纳达语 |
| Kazakh | Kazakh | kk |
哈萨克语 |
| Khmer | Khmer | km |
高棉语 |
| Klingon | Klingon | tlh-Latn |
克林贡语 |
| Klingon (plqaD) | Klingon_plqaD | tlh-Piqd |
克林贡语(plqaD) |
| Korean | Korean | ko |
朝鲜语 |
| Kurdish (Central) | Kurdish_Central | ku |
中库尔德语(阿拉伯语) |
| Kurdish (Northern) | Kurdish_Northern | kmr |
南库尔德语(拉丁语) |
| Kyrgyz (Cyrillic) | Kyrgyz_Cyrillic | ky |
吉尔吉斯语(西里尔语) |
| Lao | Laotian | lo |
老挝语 |
| Latvian | Latvian | lv |
拉脱维亚语 |
| Lithuanian | Lithuanian | lt |
立陶宛语 |
| Macedonian | Macedonian | mk |
马其顿语 |
| Malagasy | Malagasy | mg |
马达加斯加语 |
| Malay (Latin) | Malay | ms |
马来语(拉丁语系) |
| Malayalam | Malayalam | ml |
马拉雅拉姆语 |
| Maltese | Maltese | mt |
马耳他语 |
| Maori | Maori | mi |
毛利语 |
| Marathi | Marathi | mr |
马拉地语 |
| Mongolian (Cyrillic) | Mongolian_Cyrillic | mn-Cyrl |
蒙古语(西里尔文) |
| Mongolian (Traditional) | Mongolian_Traditional | mn-Mong |
蒙古语(传统) |
| Myanmar | Burmese | my |
缅甸(缅甸语) |
| Nepali | Nepali | ne |
尼泊尔语 |
| Norwegian | Norwegian | nb |
挪威语 |
| Odia | Odia_language | or |
奥里亚语 |
| Pashto | Pashto | ps |
普什图语 |
| Persian | Persian | fa |
波斯语 |
| Polish | Polish | pl |
波兰语 |
| Portuguese (Brazil) | Portuguese_Brazil | pt |
葡萄牙语(巴西) |
| Portuguese (Portugal) | Portuguese_Portugal | pt-PT |
葡萄牙语(葡萄牙) |
| Punjabi | Punjabi | pa |
旁遮普语 |
| Queretaro Otomi | Queretaro_Otomi | otq |
克雷塔罗奥托米语 |
| Romanian | Romanian | ro |
罗马尼亚语 |
| Russian | Russian | ru |
俄语 |
| Samoan (Latin) | Samoan_Latin | sm |
萨摩亚语(拉丁语) |
| Serbian (Cyrillic) | Serbian_Cyrillic | sr-Cyrl |
塞尔维亚语(西里尔) |
| Serbian (Latin) | Serbian_Latin | sr-Latn |
塞尔维亚语(拉丁) |
| Slovak | Slovakian | sk |
斯洛伐克语 |
| Slovenian | Slovenian | sl |
斯洛文尼亚语 |
| Somali (Arabic) | Somali_Arabic | so |
索马里语 |
| Spanish | Spanish | es |
西班牙语 |
| Swahili (Latin) | Swahili_Latin | sw |
斯瓦希里语(拉丁语) |
| Swedish | Swedish | sv |
瑞典语 |
| Tahitian | Tahitian | ty |
塔希提语 |
| Tamil | Tamil | ta |
泰米尔语 |
| Tatar (Latin) | Tatar_Latin | tt |
鞑靼语(拉丁语) |
| Telugu | Telugu | te |
泰卢固语 |
| Thai | Thai | th |
泰语 |
| Tibetan | Tibetan | bo |
藏语 |
| Tigrinya | Tigrinya | ti |
提格里尼亚语 |
| Tongan | Tonga | to |
汤加语 |
| Turkish | Turkish | tr |
土耳其语 |
| Turkmen (Latin) | Turkmen_Latin | tk |
土库曼语(拉丁语) |
| Ukrainian | Ukrainian | uk |
乌克兰语 |
| Upper Sorbian | Kamisobe_language | hsb |
上索布语 |
| Urdu | Urdu | ur |
乌尔都语 |
| Uyghur (Arabic) | Uyghur_Arabic | ug |
维吾尔语(阿拉伯语) |
| Uzbek (Latin) | Uzbek_Latin | uz |
乌兹别克语(拉丁文) |
| Vietnamese | Vietnamese | vi |
越南语 |
| Welsh | Welsh | cy |
威尔士语 |
| Yucatec Maya | Yucatan_Mayan | yua |
尤卡坦玛雅语 |
| Zulu | Zulu | zu |
祖鲁语 |
如果你是把语言编码做枚举值,那么需要把其中的-换成_,使用的时候,再转换回来。
另外,这里面有些语言编码属于C#的关键词,做枚举使用的时候,需要加@符号。属于关键词的包括:
@as@is
API对接
API根节点
string EndPoint = "https://api.cognitive.microsofttranslator.com";
API相对路径
string TransApiPath = "/translate"
请求地址
string GetApiAddress(string fromLangCode, string toLangCode)
{
var apiAddress = $"{EndPoint}{TransApiPath}?api-version=3.0&from={fromLangCode}&to={toLangCode}";
return apiAddress;
}
示例:
POST https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&from=zh-Hans&to=yue
如果需要自动检测源语言,那么fromLangCode就直接不传即可。
string GetApiAddress(string toLangCode)
{
var apiAddress = $"{EndPoint}{TransApiPath}?api-version=3.0&to={toLangCode}";
return apiAddress;
}
示例:
POST https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&to=yue
请求信息
请求方式
POST
请求头:
ContentType:application/jsonAccept:application/json
请求授权:
在请求头里面添加授权信息:
Ocp-Apim-Subscription-Key:xxxxxxxxxxxxxxxxxxxxOcp-Apim-Subscription-Region:xxxx
上行结构
public class TransTextItem
{
public string Text;
}
var transBody = new List<TransTextItem>();
var transTextItem = new TransTextItem
{
Text = "你是中国人吗?"
};
transBody.add(transTextItem);
示例:
[
{
"text": "你是中国人吗?"
},
{
"text": "你是中国人吗?"
}
]
下行结构
public class TransResultItem
{
public string Text { get; set; }
public string To { get; set; }
}
public class TransDetectItem
{
public string Language { get; set; }
public string Score { get; set; }
}
public class TransResultGroup
{
public TransResultItem Translations { get; set; }
public TransDetectItem DetectedLanguage { get; set; }
}
var transResult = HttpClient.Result as TransResultGroup[];
示例:
[
{
"translations": [
{
"text": "Are you Chinese?",
"to": "en"
}
]
},
{
"translations": [
{
"text": "Are you Chinese?",
"to": "en"
}
]
}
]
或者:
[
{
"detectedLanguage": {
"language": "zh-Hans",
"score": 1.0
},
"translations": [
{
"text": "É chinês?",
"to": "pt-PT"
}
]
},
{
"detectedLanguage": {
"language": "zh-Hans",
"score": 1.0
},
"translations": [
{
"text": "É chinês?",
"to": "pt-PT"
}
]
}
]
异常情况的结构:
public class TransErrorItem
{
public string Code { get; set; }
public string Message { get; set; }
}
public class TransResultError
{
public TransErrorItem Error { get; set; }
}
var transResult = HttpClient.Result as TransResultError;
{
"error": {
"code": 400035,
"message": "The source language is not valid."
}
}
历史小知识
波斯尼亚语和克罗地亚语
波斯尼亚语是波斯尼亚和黑塞哥维那的官方语言,属于印欧语系斯拉夫语族的南斯拉夫语支,基于舒特方言。在南斯拉夫社会主义联邦共和国因为内战瓦解前,并没有波斯尼亚语这样的说法,当时塞尔维亚人、克罗地亚人与波斯尼亚人,都是使用一种称为塞尔维亚-克罗地亚语的南斯拉夫官方语言。在内战的过程当中语言也产生了变化,虽然各族群在语言上的差异极微小,但是克罗地亚人主张其语言为不同于塞尔维亚语的克罗地亚语,波斯尼亚人也开始称他们所使用的语言为波斯尼亚语。

浙公网安备 33010602011771号