Software & Game Localization

Android Localization

Through my Software and Game Localization course this year, I’ve learnt to localize and internationalize iOS, Windows, Java and some other applications, and I’ve also learnt to utilize Unity game engine to localize games. However, for the final project, our group (Nuan, Dana, and me) decided to localize Simple Weather, an Android weather app, using Android Studio.

The course didn’t cover Android Studio, but the logic seems similar. In fact, the international and localization function is well built, which is easy to use.

 

Introduction of  Simple Weather:

Simple Weather is a weather app, forecasting the next 5 days’ weather. Its color changes along with the weather condition. And all the weather data are from a free API (www.openweathermap.org).

 

How to localize an application in Android Studio:

  1. Find your strings in xml files in layout folder;
  2. View the file in Text format;
  3. Select a string, press “alt” + “enter”, and select “Extract string resource”, then click “OK”. The string is automatically imported to your string.xml file, you can translate it in Translation Editor;
  4. Right click string.xml, select “Open Translation Editor”;
  5. In translation Editor, click the globe icon to add a target language, and you can start translating now!
  6. Finally, you need to write some code for testing in MainActivity.java and onCreate() function.

 

Problems and Troubleshooting

  1. Version of Android Studio

Before starting this Android project, our professor told us the trick is to download the version of Studio that works with the project. However, we didn’t. We started with the latest version 3.0.1, since we didn’t find out which version our app was originally built in. However, the compatibility is poor. For example, we couldn’t view the design tab in Chinese. So, we downgraded the studio to 2.3, which worked well with our app.

 

  1. Quitting problem on emulators

It is difficult to localize an app without a functional emulator. Out app quits all the time during testing. The only solution I found is to walk between the school and my home. Whenever I change my location, the app stopped quitting. I thought it might because of my internet environment, so I tried my hotspot, but it didn’t help. However, my teammate Nuan later found out that if we change the system language of the phone (emulator) back to English, then the app no longer quits.

 

  1. Internet connection on emulators

Since the app uses an API, internet connection is indispensable. But the connection on Android Studio emulators are not stable. Therefore, we employed Genymotion —- a professional Android emulator, which promises internet connection all the time. However, this new emulator still didn’t solve the quitting problem. In fact, for the whole time, we seldom had our app not quitting and internet connection at the same time on one emulator.

 

  1. Array Strings

The units of temperature are in a string array, which cannot be found in layout files. The way to localize them is to edit their code to make them strings first. And then translate them as other strings.

 

  1. API

API is our biggest problem. It should have been easy since the API itself has already been translated into many languages. The only thing we need to do is to type in the key for accessing the API, and type in the language code to select a language for the data. Normally, you need you register to get a key, which will work in a week. We contacted the developer and got a key for testing, so that we did not need to wait. However, the API was not fully localized. Many strings were not translated at all, and all the Asian languages were shown as corrupted characters. In order to have a more completed result, we did another Spanish version of the app.

During our final presentation, we brought up the API problem, and our professor suggested that we can extract the original English variables from the API in Android Studio, and treat them as string array to localize.

Although the app was not technically fully localized. But we’ve experienced the self-learning and troubleshooting through the localization process.  And I want to thank my professor, teammates and the API developer for their support and help.

Here is a video of our final project:es_SimpleWeather

Thanks for watching!