Localized first webmaker.org node.js app

Yes! The first webmaker.org node.js app is now localized.

On Thursday June 27th, 2013 the webmaker team gathered together and have a lots of meeting and session about what we have done the past 9 weeks and what are the plan for the next 9 weeks.

Again I got to be in the localization (L10n) session and we talked about the high level, and including questions from the team about what is our approach on many aspects. 

The questions that we mainly want to answer on the localization of the webmaker apps are:

1. One string file for one app or per page
We are using node.js and the module that we use is the i18n-abide where this module will use the global function `gettext` to look for the string in the file under the specified directory for the locales.

The main question of this question is that are we going to put all the string of the whole app in one string file? or are we going to have a different string file for each page for easy maintenance?

This question is not answered, but I have done the login.webmaker.org app and it's localized. This app I have tried by put every string in just one file, but with this app there is only one page so we do not really know if for other app that have many pages will impact on the page load if everything is in one place.

2. What format files we want?
    Plist? PO? or any other?
The question here is that what file format for the string we want to use? because transifex support different file format and what would be the best one for our L10n?

For the meanwhile we have go ahead with .plist since the format is fully support by Transifex and Apple.

3. Different resources for each project or one for all app?
In transifex we have an option to create a project and inside that project we have section to upload our resources. The question is that are we going to create one project call "Webmaker" and have different resources for each app or just create different project for each project?

For now I have create different project for each app, but this is not final yet but it is the best idea to go by different project for each app.

4. How do we deal with complex DOM

This was one of the biggest challenge and hardest to answer, but now I have an answer for this after I have done the login app.

with the gettext function from the i18n-abide. It doesn't seem to work for different language than English on require.js file.

The best approach on this is to take off all of the string that we have in any of the javascript file and put them in an HTML file, so we can easily use gettext function.

There are many more questions that the team asked and we need to answered that all, but for now I can tell you that using i18n-abide with .plist file lead me to a succeed on localized the very first app of webmaker.org.


There was a real problem that I faced during the time that I'm trying to integrated the i18n-abide with this app because this app was using EJS template system. EJS is what we were using on the login.webmaker.org and it was not fully compatible with the i18n-abide and I have to file a bug to convert everything on that app to use nunjucks instead.

My next plan is to localize the next app we have. I don't know which one we are going to do, but I would love to finish everything in one month even though they give me time till end of August.