StudyDroid Translation – A review of my experiences with Android’s i18n system

Posted by admin on September 6, 2009 under Uncategorized | Be the First to Comment

It’s interesting how much of the internet, and android applications, are in English. It seems to have become the default language of the internet. Of course it made sense when I was first releasing StudyDroid to make it in English. I speak English, the G1 had only been released in America, and the primary users were English-speaking Americans.

However, over the last couple of months I have seen a huge surge in users from France, Germany, Japan, China, and all over Europe and Asia, while the American user base (which still makes up the majority of users) has grown much more slowly. This is obviously due to the rapid growth in the past couple of months in android phones in foreign areas.

This did pose a unique problem that I hadn’t encountered before, how to translate my Android App. This was something I wasn’t really prepared for. I am still a student, and while my classes have prepared me well for many of the obstacles that I’ve had to overcome while developing StudyDroid, translation and internationalization are things that you don’t really learn about. So I did my homework on Android’s translation system. I’ve had a little experience using gettext and CSV files in ZEND’s translation object in PHP, but I found Android’s XML system interesting.

Android has adopted their Strings.xml system to work with internationalization. You can see the detailed documentation here but, basically, you need all of your strings to be in a translated strings.xml file in a properly named folder. This system at first seems to make sense, but I’m wondering if something similar to Zend’s $translator->_() system wouldn’t be easier for something as important as Internationalization.

Obviously if I has started out by using good programming practices and put all of my static strings into a strings.xml file, this would have made my life very easy, just pop the file to a translator, and cut and paste it into the right folder. But let’s be real here, of course I didn’t do this and just hard coded all my strings into the code itself because if was easier at the time. So I had to cut and paste all of my strings into a blank strings.xml file and name them individually. This complicated XML file then had to be forwarded to translators who cut the English out and  put in their respective languages. Retrofitting my code would have been much simpler if all I had to do was wrap _() around the printable strings and then use a tool like poedit to scrape my code for translatable strings.

This system also poses problems for updates. When I add new buttons or text for the new features that I’m coding, I can’t just wrap  my strings in a function and know that everything will be handled. I have to make a new string variable in the XML and then make sure that every single translated XML file has, at the very least, a reference to my string, lest my app display the dreaded, and highly uninformative “Force Close” window. An object with the translation object inside it, that would just display the English text if no translation was found would be much easier and more stable.

tl;dr : Android needs to seriously reconsider their i18n  system, and if you’re making a new app, start out by having all of your printable strings in the strings.xml file. You’ll thank yourself later.

P.S. I’d like to thank all the translators again. Thank you guys for your work swimming around and trying to make sense of  my strings.xml files.

Chinese (Traditional) – HiAPK.com
Chinese (Simplified)   - HiAPK.com
Czech                        – Martin Janda
Italian                       - Luca F
Spanish                     - Pepe Rodriguez

StudyDroid 2.1.0

Posted by admin on September 2, 2009 under Uncategorized | Be the First to Comment

Hey everyone, and happy ‘welcome back to school’ to you crazy semester kids.

Studydroid 2.1.0 is now on the market. New features include Touch scrolling for long cards and Internationalization to Chinese, Czech, Italian and Spanish.

I’ve also released some behind the scenes fixes for bugs on my server that should make logging in and syncing easier and more reliable.

As usual if you notices any bugs please post them in the error forum.

Now Let’s all give a nice big group hug to our wonderful translators for this version. They’ve put blood sweat and tears into making sure that you can read StudyDroid comfortably in your own language.

Chinese (Traditional) – HiAPK.com
Chinese (Simplified) – HiAPK.com
Czech – Martin Janda
Italian – Luca F
Spanish – Pepe Rodriguez

Don’t get lazy though my Studious Linguists, StudyDroid still needs translators, so If you’re tired of studying in my boring old American English, then contact me either on the forums or at dryawgmoth@gmail.con

Calling all Multilingual studiers!

Posted by admin on August 7, 2009 under Uncategorized | Be the First to Comment

Hello, Bonjour, Gutentag, Nî hâo, Hola, Privet, G’Day, Konnichi wa

Studydroid is going international! That’s right, soon you will be able to study in your own native language.

I have spent the last few days painstakingly going String by String and putting them in the String.xml file so that all of the printable text can be translated into other languages.

The Problem: I speak English. That’s about it. (Blame the U.S. education system) I will be taking a crack at German and French since I have a little experience in those, but I will need help in every single language.

The Solution: YOU! If you speak another language, even if you’ve never translated anything before, you can help!

Here’s how it would work. I send you the Strings.xml file (I’ll have a backup here in English for reference) and you just swap out the words for their meaning in another language.

What do you get out of it? A nice big hug and recognition on the site and in the app itself.

If you’re interested in helping out either contact me here on the forums or by email at dryawgmoth@gmail.com.

-Varx

Note: The packs are already international since the site is written in UTF-8. This update is just to translate menus, errors, and status menus.

Posted by rlbeard on August 2, 2009 under Uncategorized | Be the First to Comment

Here is Video #2 with a view of the new features from Study Droid.

StudyDroid 2.0.2

Posted by admin on July 21, 2009 under Uncategorized | 3 Comments to Read

Hey everyone,

Studydroid 2.0.2 is out, and here you were thinking you’d have to wait all summer Wink . 2.0.2 includes portrait mode for studying, a slightly faster syncing algorithm, and unordered lists. Stay tuned for more updates as the summer rolls on. I was going to release all of the “Summer of Studying” updates in one big update at the end of September, but I figured that I’d release them in smaller updates so that all you crazy kids taking summer school (like me >.< ) could get a head start on your classmates.

As usual report any bugs on the bugs board, or nifty new ideas on the Feature Request Board.

-Varx

P.S. Thanks to all bug scouts *BONK* who e-mailed me regarding the bugs in 2.0.1 . 2.0.2. should hopefully fix them. You guys are awesome. Keep the reports coming. The faster you report, the faster I can sneak in and fix it before anyone notices.

Card Reordering online

Posted by admin on June 27, 2009 under Uncategorized | Be the First to Comment

Hey everyone,

You can now reorder the cards in a pack with a fancy ajax form. If you own a pack, You’ll see a new link on the bottom of the View Pack page that says “Change Card Order”. That will take you to the new page where you can rearrange the cards by clicking and dragging them. Just don’t forget to hit SAVE in the lower right to save your changes.

As always if you have any questions or see any bugs don’t hesitate to post them on the forums

Studydroid 1.7

Posted by admin on May 24, 2009 under Uncategorized | 2 Comments to Read

Hey everyone,

I just uploaded StudyDroid 1.7 to the market. It includes:
-Trackball scrolling for longer cards
-Username memory

As usual report any bugs or errors you encounter in the bugs forum.

This is the last update I’m going to release until I start working on the “Summer of Studying” in a few weeks. For now I need to study for my finals while all you kids on the semester system enjoy your summer vacation. Cool

-Varx

TeX Support

Posted by admin on May 5, 2009 under News | 5 Comments to Read

Hey everyone,

The website can now offer Tex support through combination of our image card system and MimeTeX*. To make a math card, create a new blank image card, and instead of uploading an image, type [TEX] (case sensitive) followed by the the TeX code. For Example [TEX]a^2+b^2=c^2. StudyDroid will run the TeX script through MimeTeX and make an image card of the formula.

This feature is currently in beta and might be buggy. So please post any questions or comments you have.

LaTeX is a special formatting language for formatting math formulas and other hard to recreate symbols. For more information on LaTeX check out http://www.latex-project.org/or the wikipedia article http://en.wikipedia.org/wiki/LaTeX

*MimeTeX is a cgi script version of LaTeX. There are some minor differences, but the average user shouldn’t notice any difference on simple TeX. for more information on MimeTeX check out http://www.forkosh.com/mimetex.html

StudyDroid 1.5.0 now on the market

Posted by admin on February 26, 2009 under Uncategorized | Read the First Comment

StudyDroid 1.5.0 includes:

-A slightly faster sync algorithm
-Experimental Image Card support (Report any errors in the error forum)

Check out This pack for a sample of the image feature.

StudyDroid 1.2.1 is Live

Posted by admin on February 23, 2009 under Uncategorized | Be the First to Comment

StudyDroid 1.2.1 is on the market!

It includes:
-A more Informative Pack List
-A card ListView and Search for faster card browsing