有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

功能描述

消息翻译目前仅支持手动调接口翻译文本消息内容,图片、视频、文件、语音、自定义消息等非文本内容均不支持翻译。
说明
文本翻译是增值付费功能,处于内测阶段,您可通过即时通信 IM 文本消息翻译插件交流群联系我们为您开通体验完整功能。
该功能仅增强版 7.0 及以上版本支持。

翻译文本

您可以调用 translateText (Android / iOS & Mac / Windows) 接口翻译文本。
接口参数说明如下:
入参
含义
说明
sourceTextList
待翻译文本列表
1. 支持一次批量传入多条待翻译文本。
2. 请使用 UTF-8 格式编码,非 UTF-8 格式编码字符会翻译失败。
3. HTML 标记等非常规翻译文本可能会翻译失败。
4. 单次请求的文本长度总和需要低于 2000 字符(1个汉字、1个字母、1个标点或空格都计为 1 个字符)。
sourceLanguage
源语言
可以设置为特定语言或 “auto”。“auto” 表示自动识别源语言。传空默认为 “auto”。
targetLanguage
目标语言
支持的目标语言有多种。详情参见下文 文本翻译语言支持
callback
翻译结果回调
结果的 key 为待翻译文本, value 为翻译后文本。
示例代码如下:
Android
iOS & Mac
Windows
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>>() {
@Override
public void onSuccess(HashMap<String, String> translateHashMap) {
// 翻译文本成功,translateHashMap 为 {"早上好": "Good morning", "中午好": "Good afternoon", "晚上好": "Good evening"}
}

@Override
public void onError(int code, String desc) {
// 翻译文本失败
}
});
NSArray *sourceText = @[@"早上好", @"中午好", @"晚上好"];
NSString *targetLanguage = @"en";
[[V2TIMManager sharedInstance] translateText:sourceText
sourceLanguage:nil
targetLanguage:targetLanguage
completion:^(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(英语)