Translator.java 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package com.elexlab.cybercontroller.services;
  2. import com.huawei.hmf.tasks.OnFailureListener;
  3. import com.huawei.hmf.tasks.OnSuccessListener;
  4. import com.huawei.hmf.tasks.Task;
  5. import com.huawei.hms.mlsdk.common.MLApplication;
  6. import com.huawei.hms.mlsdk.common.MLException;
  7. import com.huawei.hms.mlsdk.translate.MLTranslatorFactory;
  8. import com.huawei.hms.mlsdk.translate.cloud.MLRemoteTranslateSetting;
  9. import com.huawei.hms.mlsdk.translate.cloud.MLRemoteTranslator;
  10. public class Translator {
  11. private MLRemoteTranslator mlRemoteTranslator;
  12. public Translator(){
  13. init();
  14. }
  15. private void init(){
  16. // 使用自定义的参数配置创建文本翻译器。
  17. MLRemoteTranslateSetting setting = new MLRemoteTranslateSetting
  18. .Factory()
  19. // 设置源语言的编码,使用ISO 639-1标准(中文繁体使用BCP-47标准)。此设置为可选项,如果不设置,将自动检测语种进行翻译。
  20. .setSourceLangCode("en")
  21. // 设置目标语言的编码,使用ISO 639-1标准(中文繁体使用BCP-47标准)。
  22. .setTargetLangCode("zh")
  23. .create();
  24. mlRemoteTranslator = MLTranslatorFactory.getInstance().getRemoteTranslator(setting);
  25. }
  26. public void translate(String sourceText,OnSuccessListener<String> onSuccessListener){
  27. final Task<String> task = mlRemoteTranslator.asyncTranslate(sourceText);
  28. task.addOnSuccessListener(new OnSuccessListener<String>() {
  29. @Override
  30. public void onSuccess(String text) {
  31. // 识别成功的处理逻辑。
  32. if(onSuccessListener != null){
  33. onSuccessListener.onSuccess(text);
  34. }
  35. }
  36. }).addOnFailureListener(new OnFailureListener() {
  37. @Override
  38. public void onFailure(Exception e) {
  39. e.printStackTrace();
  40. // 识别失败的处理逻辑。
  41. try {
  42. MLException mlException = (MLException)e;
  43. // 获取错误码,开发者可以对错误码进行处理,根据错误码进行差异化的页面提示。
  44. int errorCode = mlException.getErrCode();
  45. // 获取报错信息,开发者可以结合错误码,快速定位问题。
  46. String errorMessage = mlException.getMessage();
  47. } catch (Exception error) {
  48. // 转换错误处理。
  49. }
  50. }
  51. });
  52. }
  53. }