列表数组输出和 IBM 的 Watson Java SDK
List array output and IBM's Watson Java SDK
我目前正在使用 IBM 的 Watson 和他们的 Java SDK 使用 Maven 导入的翻译器,我目前很难弄清楚如何将翻译后的文本输出到文本框中.翻译结果返回给我:
[{
"translation": "Hello, World !"
}]
我想我没有在我的代码中正确调用某些东西:
LanguageTranslation service = new LanguageTranslation();
service.setUsernameAndPassword("<username>", "<password>");
TranslationResult translationResult = service.translate(txt_input.getText(), "en", "fr");
txt_translation.setText(translationResult.getTranslations().toString());
我想我没有在我的代码中正确调用某些东西。根据the documentation,翻译文本returns作为翻译列表,但我不确定如何让它只输出我输入内容的翻译。有什么建议吗?
编辑:我仍在努力解决这个问题。我试过:
java.util.List<Translation> translationText = translationResult.getTranslations();
txt_translation.setText(translationText.toString());
添加和不添加 toString()。仍然像以前那样出现。
translationResult.getTranslations()
returns List<Translation>
,因此它是您应该迭代的 Translation
列表。例如,为了获得第一个翻译,您应该使用:
translationResult.getTranslations().get(0)
,其中 returns Translation
,然后使用 getTranslation()
以获得翻译文本。
例如,第一语言的翻译应该可以通过以下方式访问:
translationResult.getTranslations().get(0).getTranslation()
请注意,对于您的具体示例,仅说您希望从 "en" 到 "fr" 是行不通的。你必须先 select 一个现有的翻译模型,就像这样
LanguageTranslation service = new LanguageTranslation();
service.setUsernameAndPassword("xxx", "xxx");
//System.out.println(service.getModels()); // <<< get your model from here
//TranslationResult translationResult = service.translate("Hello World!", "en", "fr"); //<< does not work OOTB
TranslationResult translationResult = service.translate("Hello World!", "en-fr-conversational");
System.out.println(translationResult.getTranslations().get(0).getTranslation());
所以你会
Bonjour monde !
我目前正在使用 IBM 的 Watson 和他们的 Java SDK 使用 Maven 导入的翻译器,我目前很难弄清楚如何将翻译后的文本输出到文本框中.翻译结果返回给我:
[{
"translation": "Hello, World !"
}]
我想我没有在我的代码中正确调用某些东西:
LanguageTranslation service = new LanguageTranslation();
service.setUsernameAndPassword("<username>", "<password>");
TranslationResult translationResult = service.translate(txt_input.getText(), "en", "fr");
txt_translation.setText(translationResult.getTranslations().toString());
我想我没有在我的代码中正确调用某些东西。根据the documentation,翻译文本returns作为翻译列表,但我不确定如何让它只输出我输入内容的翻译。有什么建议吗?
编辑:我仍在努力解决这个问题。我试过:
java.util.List<Translation> translationText = translationResult.getTranslations();
txt_translation.setText(translationText.toString());
添加和不添加 toString()。仍然像以前那样出现。
translationResult.getTranslations()
returns List<Translation>
,因此它是您应该迭代的 Translation
列表。例如,为了获得第一个翻译,您应该使用:
translationResult.getTranslations().get(0)
,其中 returns Translation
,然后使用 getTranslation()
以获得翻译文本。
例如,第一语言的翻译应该可以通过以下方式访问:
translationResult.getTranslations().get(0).getTranslation()
请注意,对于您的具体示例,仅说您希望从 "en" 到 "fr" 是行不通的。你必须先 select 一个现有的翻译模型,就像这样
LanguageTranslation service = new LanguageTranslation();
service.setUsernameAndPassword("xxx", "xxx");
//System.out.println(service.getModels()); // <<< get your model from here
//TranslationResult translationResult = service.translate("Hello World!", "en", "fr"); //<< does not work OOTB
TranslationResult translationResult = service.translate("Hello World!", "en-fr-conversational");
System.out.println(translationResult.getTranslations().get(0).getTranslation());
所以你会
Bonjour monde !