功能描述
消息翻译目前仅支持手动调接口翻译文本消息内容,图片、视频、文件、语音、自定义消息等非文本内容均不支持翻译。
效果展示
您可以使用文本消息翻译功能,实现如下图所示的翻译效果:
说明:
接口说明
翻译文本
接口参数说明如下:
入参 | 含义 | 说明 |
sourceTextList | 待翻译文本列表 | 1. 支持一次批量传入多条待翻译文本。 2. 请使用 UTF-8 格式编码,非 UTF-8 格式编码字符会翻译失败。 3. HTML 标记等非常规翻译文本可能会翻译失败。 4. 单次请求的文本长度总和需要低于 2000 字符(1个汉字、1个字母、1个标点或空格都计为 1 个字符)。 |
sourceLanguage | 源语言 | 可以设置为特定语言或 “auto”。“auto” 表示自动识别源语言。传空默认为 “auto”。 |
targetLanguage | 目标语言 | |
callback | 翻译结果回调 | 结果的 key 为待翻译文本, value 为翻译后文本。 |
示例代码如下:
List<String> textList = new ArrayList<>();textList.add("早上好");textList.add("中午好");textList.add("晚上好");String targetLanguage = "en";V2TIMManager.getMessageManager().translateText(textList, null, targetLanguage, new V2TIMValueCallback<HashMap<String, String>>() {@Overridepublic void onSuccess(HashMap<String, String> translateHashMap) {// 翻译文本成功,translateHashMap 为 {"早上好": "Good morning", "中午好": "Good afternoon", "晚上好": "Good evening"}}@Overridepublic void onError(int code, String desc) {// 翻译文本失败}});
NSArray *sourceText = @[@"早上好", @"中午好", @"晚上好"];NSString *targetLanguage = @"en";[[V2TIMManager sharedInstance] translateText:sourceTextsourceLanguage:niltargetLanguage:targetLanguagecompletion:^(int code, NSString *desc, NSDictionary<NSString *,NSString *> *result) {if (code == 0) {// 翻译文本成功,result 为 @{@"早上好": @"Good morning", @"中午好": @"Good afternoon", @"晚上好": @"Good evening"}} else {// 翻译文本失败}}];
template <class T>class ValueCallback final : public V2TIMValueCallback<T> {public:using SuccessCallback = std::function<void(const T&)>;using ErrorCallback = std::function<void(int, const V2TIMString&)>;ValueCallback() = default;~ValueCallback() override = default;void SetCallback(SuccessCallback success_callback, ErrorCallback error_callback) {success_callback_ = std::move(success_callback);error_callback_ = std::move(error_callback);}void OnSuccess(const T& value) override {if (success_callback_) {success_callback_(value);}}void OnError(int error_code, const V2TIMString& error_message) override {if (error_callback_) {error_callback_(error_code, error_message);}}private:SuccessCallback success_callback_;ErrorCallback error_callback_;};V2TIMStringVector textList;textList.PushBack(u8"早上好");textList.PushBack(u8"中午好");textList.PushBack(u8"晚上好");V2TIMString targetLanguage = u8"en";auto callback = new ValueCallback<V2TIMStringToV2TIMStringMap>{};callback->SetCallback([=](const V2TIMStringToV2TIMStringMap& result) {// 翻译文本成功,result 为 {{"早上好", "Good morning"}, {"中午好", "Good afternoon"}, {"晚上好", "Good evening"}}delete callback;},[=](int error_code, const V2TIMString& error_message) {// 翻译文本失败delete callback;});V2TIMManager::GetInstance()->GetMessageManager()->TranslateText(textList, "", targetLanguage, callback);
文本翻译语言支持
源语言 | 支持的目标语言 |
zh(简体中文) | en(英语)、ja(日语)、ko(韩语)、fr(法语)、es(西班牙语)、it(意大利语)、de(德语)、tr(土耳其语)、ru(俄语)、pt(葡萄牙语)、vi(越南语)、id(印尼语)、th(泰语)、ms(马来语) |
zh-TW(繁体中文) | en(英语)、ja(日语)、ko(韩语)、fr(法语)、es(西班牙语)、it(意大利语)、de(德语)、tr(土耳其语)、ru(俄语)、pt(葡萄牙语)、vi(越南语)、id(印尼语)、th(泰语)、ms(马来语) |
en(英语) | zh(中文)、ja(日语)、ko(韩语)、fr(法语)、es(西班牙语)、it(意大利语)、de(德语)、tr(土耳其语)、ru(俄语)、pt(葡萄牙语)、vi(越南语)、id(印尼语)、th(泰语)、ms(马来语)、ar(阿拉伯语)、hi(印地语) |
ja(日语) | zh(中文)、en(英语)、ko(韩语) |
ko(韩语) | zh(中文)、en(英语)、ja(日语) |
fr(法语) | zh(中文)、en(英语)、es(西班牙语)、it(意大利语)、de(德语)、tr(土耳其语)、ru(俄语)、pt(葡萄牙语) |
es(西班牙语) | zh(中文)、en(英语)、fr(法语)、it(意大利语)、de(德语)、tr(土耳其语)、ru(俄语)、pt(葡萄牙语) |
it(意大利语) | zh(中文)、en(英语)、fr(法语)、es(西班牙语)、de(德语)、tr(土耳其语)、ru(俄语)、pt(葡萄牙语) |
de(德语) | zh(中文)、en(英语)、fr(法语)、es(西班牙语)、it(意大利语)、tr(土耳其语)、ru(俄语)、pt(葡萄牙语) |
tr(土耳其语) | zh(中文)、en(英语)、fr(法语)、es(西班牙语)、it(意大利语)、de(德语)、ru(俄语)、pt(葡萄牙语) |
ru(俄语) | zh(中文)、en(英语)、fr(法语)、es(西班牙语)、it(意大利语)、de(德语)、tr(土耳其语)、pt(葡萄牙语) |
pt(葡萄牙语) | zh(中文)、en(英语)、fr(法语)、es(西班牙语)、it(意大利语)、de(德语)、tr(土耳其语)、ru(俄语) |
vi(越南语) | zh(中文)、en(英语) |
id(印尼语) | zh(中文)、en(英语) |
th(泰语) | zh(中文)、en(英语) |
ms(马来语) | zh(中文)、en(英语) |
ar(阿拉伯语) | en(英语) |
hi(印地语) | en(英语) |