This is a Android Studio/ IntelliJ IDEA plugin to localize your Android app, translate your string resources automactically.

Overview

#Android Localizationer

This is a Android Studio/ IntelliJ IDEA plugin to localize your Android app, translate your string resources automactically.

Translate all your strings in your string resources(e.g. strings.xml) to your target languages automactically. Help developers localize their Android app easily, with just one click.

##Usage

Right click the strings resource file, choose 'Convert to other languages'.
img
Then check the target languages.
img
After clicking OK, the string resources will be translated and created in the correct value folder.

##Feature

  • Filter the strings you don't wanna translate by adding NAL_ prefix to the string key, case sensitive. Change:
    <string name="flurry_id">FLURRY_ID</string>
    to
    <string name="NAL_flurry_id">FLURRY_ID</string>

  • Filter the strings you don't wanna translate by adding filter rule in plugin settings interface

  • Set client id or client secret for Microsoft Translator, in case of running out of quota.

    img

  • Set Google API key to use Google Translation API, you need to do this, at the Public API access section of the Credentials page, create a new Browser key. Please NOTE that this is a paid service.

More features are coming, please check Todo.

##Warning

  • Currently, Android Localizationer only support translate English to other languages
  • The result may not meet your standards due to the Translation API that this plugin is using, so keep your string resources as simple as possible

##Downloads You can download the plugin here.

To Install the plugin, please check IntelliJ IDEA Web Help.

##ChangeLog Version 0.1.5

Version 0.1.4

Version 0.1.3

  • Fix bug: translation fails when there are too many string resources
  • Fix bug: translation fails when there are special symbols, like
  • Fix bug: translation fails when there are special tags, like <u>
  • Fix Java escape problems in MS Translator

Version 0.1.2

  • Add Google Translation API support. Please NOTE that this is a paid service.
  • Fix bug: show error when opening the translated strings.xml file

Version 0.1.1

  • Fix bug: when translate to more than one language, only the first target language will be translated correctly
  • Fix bug: filter rule in plugin settings cannot be filtered
  • Fix bug: wrongly show 'Quota exceed' error dialog when both not running out of quota and no strings need to be translated

Version 0.1.0

  • Add filter rule setting in plugin settings interface, filter strings you don't wanna translate
  • Fix a possible throwable when automatically open the translated strings.xml file

Version 0.0.3

  • Only show 'Convert to other languages' menu on strings.xml files, current only strings.xml file under values or values-en folders.*
  • Add an icon before 'Convert to other languages' menu*
  • Add a plugin settings interface, client id and client secret for Microsoft Translator can be set by users*
  • Popup error message when Microsoft Translator quota exceed or client id/ client secret is invalid

Version 0.0.2

  • Fix string error on the popup dialog

Version 0.0.1

  • Publish project

##Todo

  • Multiple translation engine
  • Plugin Settings
    • Choose the translation engine (translation API) you wanna use
    • Set translation engine (translation API)'s application key, in case of the API is runing out of quota
    • Filter the string key that you don't wanna translate, e.g. app_name, some_api_key
  • Only show the Convert to other languages in the popup menu when right clicking the string resources, like Google's Translation Editor does
  • Support more source languages
  • Support string arrays

##License

Copyright 2014-2016 Wesley Lin

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

	http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
You might also like...
A surgical debugging tool to uncover the layers under your app.
A surgical debugging tool to uncover the layers under your app.

Scalpel DEPRECATED! Android Studio 4.0's layout inspector now includes a live-updating 3D view. Use it! A surgical debugging tool to uncover the layer

Automated-build-android-app-with-github-action - CI/CD Automated Build Android App Bundle / APK / Signed With Github Action
Automated-build-android-app-with-github-action - CI/CD Automated Build Android App Bundle / APK / Signed With Github Action

Automated Build Android With Using Github Action Project Github Action Script Us

This Android app adds splash screen slides to make a great intro for an app.

IntroApp This Android app adds splash screen slides to make a great intro for an app. Short description Adding Welcome / Intro screens in your app is

The metrics layer for your data

metriql metriql lets you define your business metrics and share them across different data tools. It uses dbt for the transformation layer and integra

Taskbar puts a start menu and recent apps tray on top of your screen that's accessible at any time
Taskbar puts a start menu and recent apps tray on top of your screen that's accessible at any time

Taskbar puts a start menu and recent apps tray on top of your screen that's accessible at any time, increasing your productivity and turning your Andr

Combines tools for fast android app devlopment

Android - Rapid Test Driven Development Combine tools to generate most of the boilerplate code. Examples how to test different aspects of an android a

A cli tool that helps signing and zip aligning single or multiple Android application packages (APKs) with either debug or provided release certificates. It supports v1, v2 and v3 Android signing scheme has an embedded debug keystore and auto verifies after signing.
proguard resource for Android by wechat team

AndResGuard Read this in other languages: English, 简体中文. AndResGuard is a tooling for reducing your apk size, it works like the ProGuard for Java sour

A super fast build tool for Android, an alternative to Instant Run
A super fast build tool for Android, an alternative to Instant Run

Freeline Freeline is a super fast build tool for Android and an alternative to Instant Run. Caching reusable class files and resource indices, it enab

Comments
  • Escaped characters

    Escaped characters

    Hi, great work but it seems like it is ignoring escaped characters.

    e.g. doesn't seems like it is translated as "doesn\'t" and not as " doesn't"

    And \n newline is also translated. It should be taken out and translated line by line.

    Thanks

    opened by piratezstick 0
  • how can i use the xml convert to excel file function?

    how can i use the xml convert to excel file function?

    input from excel and output to excel

    select outputExcel checkbox,Export the selected language to excel.path is project res/values-xx.xls. select inputExcel checkbox,Input the selected language from excel.path is must project res/values-xx.xls. if select outputExcel or inputExcel, will not translate.

    I did not found this function,how can i use it?

    waitting for your answer

    opened by duanjiefei 0
  • Language conversion -> NullPointerException

    Language conversion -> NullPointerException

    null java.lang.NullPointerException at java.io.StringReader.(StringReader.java:50) at com.google.gson.JsonParser.parse(JsonParser.java:45) at language_engine.bing.BingTranslationApi.getAccessToken(BingTranslationApi.java:64) at data.task.GetTranslationTask.getTranslationEngineResult(GetTranslationTask.java:178) at data.task.GetTranslationTask.run(GetTranslationTask.java:102) at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:726) at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:176) at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:556) at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:501) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:66) at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:163) at com.intellij.openapi.progress.impl.ProgressManagerImpl$1.run(ProgressManagerImpl.java:137) at com.intellij.openapi.application.impl.ApplicationImpl$2.run(ApplicationImpl.java:334) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)

    opened by mengcuiguang 2
  • cant convert to more than 5 languages at once or get nullpointer

    cant convert to more than 5 languages at once or get nullpointer

    cant convert to more than 5 languages at once or get nullpointer

    java.lang.NullPointerException at java.util.ArrayList.addAll(ArrayList.java:577) at data.task.GetTranslationTask.run(GetTranslationTask.java:93) at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:726) at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:176) at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:556) at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:501) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:66) at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:163) at com.intellij.openapi.progress.impl.ProgressManagerImpl$1.run(ProgressManagerImpl.java:137) at com.intellij.openapi.application.impl.ApplicationImpl$2.run(ApplicationImpl.java:334) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)

    opened by Photogad 0
Android Resource Manager application to manage and analysis your app resources with many features like image resize, Color, Dimens and code Analysis

Android Resource Manager application to manage and analysis your app resources with many features like image resize, Color, Dimens and code Analysis

Amr Hesham 26 Nov 16, 2022
TaggerString is very light library which allows to build dynamic string resource in much more readable way.

TaggerString TaggerString is very light library which allows to build dynamic string resource in much more readable way. I guess that every Android de

polok 241 Jun 3, 2022
A command line tool that helps bulk manage resources in an Android project

Resource Mover ResourceMover is a command line tool that helps bulk manage resources in an Android project. Installation Clone project Build CLI jar u

Shopify 4 Dec 24, 2021
Android Studio Arctic Fox (Canary) for Apple Sillicon

This is a unofficial canary version of Android Studio Arctic Fox on the Apple Silicon. (e.g M1 Chip)

Dora Lee 249 Oct 23, 2022
Android Studio's Vector Drawable conversion tool in convenient packaging.

Vector Drawable Tool This repository is simply a repackaging of the vector drawable tool from the Android Studio source code. The included Gradle file

Ryan Harter 55 Sep 26, 2022
Localization tool for Android Studio Projects

Android Strings Resource Language Diff tool In the event any additional languages are intended to be supported by your app. You can use this strings-d

Braxton Nunnally 1 Mar 24, 2022
A tool to install components of the Android SDK into a Maven repository or repository manager to use with the Android Maven Plugin, Gradle and other tools.

Maven Android SDK Deployer Original author including numerous fixes and changes: Manfred Moser [email protected] at simpligility technologies i

simpligility 1.4k Dec 27, 2022
A tool to install components of the Android SDK into a Maven repository or repository manager to use with the Android Maven Plugin, Gradle and other tools.

Maven Android SDK Deployer Original author including numerous fixes and changes: Manfred Moser [email protected] at simpligility technologies i

simpligility 1.4k Dec 27, 2022
An android library that handles the closing of your app interactively.

Shutdown A library that handles the closing of your app interactively. Overview of Shutdown library Shutdown library handles the closing of your app i

Emmanuel Kehinde 56 Oct 5, 2022