Android 12에서는 앱을 모국어로 자동 번역할 수 있습니다.

click fraud protection

Google은 앱을 모국어로 자동 번역할 수 있는 Android 12의 새로운 UI 번역 기능을 개발 중입니다.

25억 명이 넘는 활성 사용자를 보유한 Android는 전 세계적으로 가장 널리 사용되는 운영 체제입니다. OS 자체는 수십 가지 언어로 현지화되었지만 많은 타사 앱의 경우에는 그렇지 않습니다. 대기업은 자체적으로 앱을 현지화하거나 전문 번역 서비스를 고용할 수 있지만 이러한 옵션은 소규모 팀이나 독립적인 앱 개발자에게는 경제적으로 적합하지 않습니다. 기껏해야 소규모 팀이나 인디 앱 개발자가 원어민의 번역을 크라우드 소싱할 수 있고 최악의 경우 기계 번역 서비스를 사용하여 작업을 수행할 수 있습니다. 그러나 이는 향후 변경될 수 있습니다. 안드로이드 12, Google이 앱의 UI를 사용자의 모국어로 자동 번역하기 위한 프레임워크를 개발하고 있음을 시사하는 증거를 확인했습니다.

APK 분해는 애플리케이션의 향후 업데이트에 포함될 기능을 예측할 수 있는 경우가 많지만 여기서 언급한 기능 중 일부가 향후 릴리스에 포함되지 않을 수도 있습니다. 이는 이러한 기능이 현재 라이브 빌드에서 구현되지 않았으며 향후 빌드에서 개발자가 언제든지 가져올 수 있기 때문입니다.

이번 주 초에 우리는 다음이 포함된 미출시 Android 12 빌드를 얻었습니다. 몇 가지 새로운 기능과 UI 변경. 릴리스를 조사하는 동안 우리는 프레임워크에서 새로운 클래스와 관련된 수많은 새로운 클래스를 발견했습니다. "번역 서비스." 이 Android 빌드에 추가된 두 가지 새로운 권한을 발견하면서 검색이 시작되었습니다. 12: BIND_TRANSLATION_SERVICE 그리고 MANAGE_UI_TRANSLATION. Android의 SystemUI는 기본적으로 값으로 정의되는 후자 권한을 보유한 앱에 바인딩하기 위해 전자 권한을 보유합니다. config_defaultTranslationService. 아마도 Google 번역이나 기기 개인화 서비스와 같은 앱을 번역 서비스로 설정할 수 있지만 Google은 이를 제3자 앱에 공개할 수도 있습니다.

MANAGE_UI_TRANSLATION 권한에는 지원되는 보호 수준 중 하나로 정의된 "역할"이 있습니다. 기억하시겠지만 Android 10에는 "역할"는 특정 권한이 있어야 하는 앱을 정의합니다. Google이 "번역가"를 역할로 추가할 수도 있지만 사용자가 설치한 앱에 이 역할을 부여할 수 있는지 여부는 알 수 없습니다.

어쨌든 우리는 프레임워크 코드에서 이러한 권한에 대한 참조를 발견했습니다. 새로운 번역 코드는 스크린샷이나 최근 앱이 아닌 활동 내의 보기에 작동합니다. 패널. 스크린샷이나 최근 앱 패널 내의 텍스트 번역은 이미 Google Lens를 통해 수행될 수 있으며, 장치 개인화 서비스와 함께 텍스트를 번역할 수 있습니다. 최근 앱 패널에서 바로 번역됨. 한편, Android의 인텐트 시스템은 이미 번역할 텍스트의 기본 공유를 허용합니다. 그러나 이 새로운 프레임워크는 더 복잡하고 낮은 수준인 것으로 보이며, 우리는 이것이 직접적인 목표를 갖고 있다고 믿습니다. 앱의 UI 내에서 텍스트를 번역하고, 텍스트를 인라인으로 대체하여 번역이 더욱 자연스러운 느낌을 갖도록 합니다.

Google 번역 및 장치 개인화 서비스의 최신 버전을 조사했지만 이 새로운 API를 통합했다는 증거를 찾지 못했습니다. 이 API는 Google 번역을 직접 사용하지 않고 다른 API 엔드포인트를 사용할 가능성이 있습니다. 이 기능이 우리의 추측에 따라 구현된다면 Google이 이 기능에 대해 사용자에게 비용을 청구할지는 의심스럽습니다. 그러나 Google 번역이 제공하는 UI 번역을 Pixel 전용 기능으로 활성화할 수도 있습니다. 그러나 프레임워크가 AOSP에 적용될 것으로 보이므로 OEM이 Google의 번역 서비스를 사용하지 않으려면 자체 번역 서비스를 정의할 수도 있습니다.

다음과 같은 타사 앱 올트랜스 수년 동안 자체 UI 번역 기능을 제공해 왔습니다. Xposed Framework로 구동되는 이러한 모드는 Android 12의 UI 번역이 작동할 것이라고 생각하는 방식과 유사하게 작동하며, 앱의 뷰에 직접 연결하여 텍스트를 번역하고 교체합니다. 그러나 공유 키는 무료 제한을 매우 빠르게 초과하므로 이러한 모드를 사용하려면 사용자가 번역 서비스를 위한 자체 API 키를 가져와야 합니다. 하지만 Google이 UI 번역 프레임워크를 Android 12에 직접 구축하는 것처럼 보이면 사용자는 앱을 모국어로 번역하기 위해 더 이상 기기를 루팅할 필요가 없습니다. 이를 통해 전 세계 사용자가 수천 개의 앱에 더 쉽게 액세스할 수 있게 되기를 바랍니다.

Xposed Framework를 사용하여 AllTrans는 앱 내의 텍스트 보기에 연결되어 Microsoft의 번역기를 사용하여 텍스트를 번역합니다.

개발자는 자동화된 UI 번역의 이점도 누릴 수 있습니다. 앱을 번역할 리소스가 없거나 기계 번역을 사용하고 싶지 않은 개발자는 OS에서 작업을 처리하도록 할 수 있습니다. 기계 번역된 앱을 출시하면 번역이 좋지 않다고 개발자를 비난하는 사용자로부터 부정적인 리뷰를 받을 수 있습니다. OS가 스스로 앱을 번역하도록 지시하면 사용자가 잘못된 부분에 대한 책임을 어디에 두어야 하는지 더 잘 이해할 수 있으므로 좌절감이 줄어듭니다. 번역된 텍스트.

우리는 이 기능이 앱 내의 UI를 번역하기 위한 것이라고 확신하지만, 기능이 실제로 작동하는 것을 보기 전까지는 100% 확신할 수 없습니다. 이 기능의 또 다른 용도는 OS 내에서 UI를 번역하거나 시스템 앱만 번역하는 것이지만 그럴 가능성은 거의 없다고 생각합니다. OS는 이미 널리 현지화되어 있으며 장치가 공장에서 출고되기 전이나 OTA를 통해 현지화가 완료될 수 있기 때문입니다. 업데이트. 반면에 Google과 OEM은 앱이 어떤 언어를 지원하는지 설명할 수 없으므로 이 기능은 격차를 메우는 데 도움이 될 것입니다. Google이 이 기능을 뷰 수준에서 개발하고 있다는 점을 고려하면 모든 앱에서 사용할 수 있도록 만들고 OS보다는 앱에서 사용할 가능성이 더 높습니다. 하지만 이 기능이 출시될 때까지 우리는 확실히 알 수 없으며 이는 Android 12 안정 릴리스에서 발생할 수도 있고 발생하지 않을 수도 있습니다.

개발자 덕분에 퀴니899 그리고 kdrag0n 이 코드를 분석하는 데 도움을 주셔서 감사합니다. 또한 사용할 수 있는 라이센스를 제공해 주신 PNF Software에도 감사드립니다. JEB 디컴파일러, Android 애플리케이션을 위한 전문가 수준의 리버스 엔지니어링 도구입니다.