번역 기능을 구축하는 방법

배경



프로그래머는 탐욕스러운 독자이거나 그래야 합니다. 소프트웨어 세계의 최신 업데이트를 따라잡으려면 책, 포럼 기사, 뉴스 등을 지속적으로 스크롤해야 합니다.
이 과정은 확실히 정신적으로 풍요롭지만 한 가지 주요 장애물인 언어로 인해 피곤하고 지루한 과정이 될 수도 있습니다. 저는 다른 언어로 쓰여진 기사를 읽는 데 많은 어려움을 겪었습니다. 제가 읽고 있는 내용을 이해하기 위해 제가 이해할 수 없는 모든 단어를 사전에서 찾고 있었기 때문입니다.

소란스럽지 않고 소란스럽지 않습니다. 이해하지 못하는 외국어 텍스트를 선택하고 원하는 언어로 즉시 번역하십시오.
이제 개발 부분으로 가보겠습니다. 언어학자가 아니었기 때문에 앱의 번역 기능을 혼자서 개발하는 데 어려움을 겪을 것이라는 것을 알았습니다.
운 좋게도 저는 HMS Core ML Kit의 번역 서비스라는 훌륭한 도우미를 얻었습니다. real-time and on-device 번역을 지원하여 인터넷 연결이 없는 경우에도 번역이 가능합니다. 번역 서비스 덕분에 언어 장벽은 과거의 일이 되었습니다.
이제 위 데모의 소스 코드를 사용하여 이 기능을 어떻게 개발했는지 설명하겠습니다.

개발 프로세스


준비



필요한 준비를 자세히 설명합니다here. 여기에는 다음이 포함됩니다.
  • 앱 정보를 구성합니다.
  • 서비스를 활성화합니다.
  • 서비스의 SDK를 통합합니다.
  • 난독화 스크립트를 구성합니다.
  • 필요한 권한을 선언합니다.

  • 기능 구축



    1) 액세스 토큰을 통해 앱 인증 정보를 설정합니다.

    MLApplication.getInstance().setAccessToken("your access token");
    


    또는 API 키:

    MLApplication.getInstance().setApiKey("your ApiKey");
    


    2) 실시간 번역기를 만듭니다.

    MLLocalTranslateSetting setting = new MLLocalTranslateSetting
            .Factory()
            .setSourceLangCode(mSourceLangCode)
            .setTargetLangCode(mTargetLangCode)
            .create();
    this.localTranslator = 
    MLTranslatorFactory.getInstance().getLocalTranslator(setting);
    


    3) 서비스에서 지원하는 언어를 쿼리합니다.

    MLTranslateLanguage.getCloudAllLanguages().addOnSuccessListener(new OnSuccessListener<Set<String>>() {
        @Override
        public void onSuccess(Set<String> result) {
            // Callback when the supported languages are obtained.
        }
    });
    


    4) 텍스트를 번역합니다.

    localTranslator.preparedModel(downloadStrategy, modelDownloadListener).addOnSuccessListener(new OnSuccessListener<Void>() {
        @Override
        public void onSuccess(Void aVoid) {
    
            final Task<String> task = localTranslator.asyncTranslate(input);
    
            task.addOnSuccessListener(new OnSuccessListener<String>() {
                @Override
                public void onSuccess(String text) {
                    displaySuccess(text, true);
                }
            }).addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(Exception e) {
                    displayFailure(e);
                }
            });
    
        }
    }).addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(Exception e) {
            displayFailure(e);
        }
    });
    


    5) 번역이 완료되면 번역가가 점유한 리소스를 해제합니다.

    if (localTranslator != null) {
        localTranslator.stop();
    }
    


    그리고 번역 기능이 내장되어 있습니다.
    전자책 리더 외에도 번역 서비스를 사용하여 외국 도로 표지판과 방문객을 위한 메뉴를 번역할 수 있는 여행 앱과 같이 번역 기능을 통해 큰 이점을 얻을 수 있는 다른 앱이 많이 있습니다. 번역은 앱에서 사용되는 언어에 익숙하지 않은 사용자를 돕기 위해 교육용 앱에도 유용합니다.
    이것으로 데모 전자책 리더 개발 여정을 마칩니다. 번역 기능 사용에 대한 다른 아이디어나 제안 사항이 있습니까? 의견 섹션에 자유롭게 의견을 제공하십시오.

    참조


  • Why Translation Apps and Services are More Important Now
  • Why Translation is Important In A World Where English is Everywhere
  • ML Kit
  • 좋은 웹페이지 즐겨찾기