Saturday, October 5, 2013

How to set different languages for individual Android apps

Unfortunately, there are Android apps that will not run properly, or sometimes at all, if your system language and locale are set differently than what the app expects. It is frustrating to be forced to set your phone to display in a language you aren't comfortable with. Worse yet is when two different apps each demand different system languages.

(Though not an Android app, the worst offender is Adobe Creative Suite. I have a workstation set to Japanese just so that Illustrator and Acrobat will run.)

Some apps that misbehave without ja-JP


The new Google Maps app and Google Now are two in particular that eventually drove me to change my phone's language and locale to Japanese. Even if Google allowed separating these two fundamentally different concepts, there would still be issues with these apps. Also, Sony's Xperia contact app will organize all non-English contacts under a single symbol icon.

I have confirmed with folks at Google that not all Now features are available, such as disaster alerts, unless language and locale are set to Japanese. I've also had some generally wonky behavior with Google Now when my system is set to en-US.

With Maps, if I search for a station name in Japanese, such as 東京駅, the station is found just fine, but then all the information gets displayed in English, and when you check your search history, there is not record of searching for 東京駅 but for "Tokyo Station," and to make matters worse, this is sometimes displayed in 2-byte font romaji (which is not English), breaking expected functionality.

The text "Tokyo" and "TOKYO" are not the same thing!

App Settings Xposed module to the rescue


The Xposed framework is just awesome. It allows you to tinker with individual apps and system files without have to actually tinker with them. For example, old the b-mobile signal bars fix required decompiling, patching, then recompiling. The new fix just uses an Xposed module.

With the App Settings module, you can change all sorts of app behavior, including screen resolution, orientation, and fullscreen settings, as well as many other options, including revoking individual permissions. You can make an app resident in memory, so you won't ever complain when a hangout request causes your candy crush game to close and you lose your progress. Version 2.2 of the Xposed framework now includes a repository of modules that you can download from within the app.
  • Android 4.03 - 4.3
  • Root
  • Xposed Installer (v 2.2 or higher; apk)

Instructions

  1. Download and install the most recent version of the Xposed installer.
  2. Launch the Xposed installer, tap "Framework" and tap "Install/Update".
  3. Reboot the phone.
  4. Launch the Xposed installer, tap Download, and the refresh icon 🔃, then search for or scroll down to App Settings.
  5. Select it and tap download and install.
  6. From the Xposed installer main menu, enable App Settings by tapping the check box, then tap the module and chose the app to modify from the menu.
From there, I think it'll be pretty self explanatory.


3 comments:

  1. Hey I just came through your blog its very informative. You share really very good information.languages problem is also is a big issue. Your information is very useful.
    Android Tablet Apps Download

    ReplyDelete
  2. Meh. One reason I stick with ios. Language fragmentation.

    ReplyDelete
  3. I'm also looking for a way to change language settings for individual apps. It makes no sense to force users to use a single language. Different apps for different needs. E.g tax, parking or gps nav apps in my native language, but games (wow armory) in english. Btw same applies to TTS engines. It's currently a mess. If this is what distinguishes Android from iOS then...

    ReplyDelete