A new Web-based localization tool
By Duncan Moore on September 21st, 2007
As Heri at Montreal Tech Watch reported, we recently rolled our own Web-based localization tool. Specifically, it lets you easily translate into any number of languages any application that uses Gettext. (We’re using Gettext to enable internationalization of CakeMail, which is currently in beta.)
We created this translation tool because we found that using desktop Gettext editors didn’t facilitate an agile workflow. When you’re making iterative improvements while simultaneously translating the whole shebang into another language, it can get ugly pretty quickly if there are several people using different local copies of the master file instead of accessing the same file through a Web interface…
However, just after our lead programmer, George, whipped up this nifty little translator, we realized we had reinvented the wheel somewhat: turns out there are already a few Web-based Gettext editors out there (Rosetta/Launchpad, Pootle, IRMA and Kartouche). On the other hand, from what we can tell so far, the existing tools may not offer all the features people want or need. For example, a hosted tool’s translation licensing policies may not be appropriate for everyone; other tools may require that you install the server and run it yourself. And the WordPress Codex mentions the following:
Note: many translators have found Rosetta to be a good starting point, but once it comes time to proofread the entire list of translations, many have opted to switch hand-editing the PO file or using a program like poEdit or KBabel, since the Rosetta UI lacks a search feature and other things that become essential when proofreading and editing.
So now the question is: is there room for another Web-based Gettext editor? You tell us. If you’re using Gettext, we want to hear from you. What are the current tools not offering that you need or want? Leave a comment below or drop us a line at hi@thecodekitchen.com.
Our Gettext translator tool would be free for non-profit open-source projects. Initial features include:
- Simultaneous read/write by several users anywhere in the world
- Permission-based access
- Unlimited languages per project
- Search/find within entire language file
- Journaling and unlimited undo (revert to any previous version)
- Integration of screen shots and notes to provide translators and editors with the all-important context of a given message
- Live updates to the language database from within the app
- SSL encryption
Below is a very preliminary mockup of the interface (Note that the tool won’t actually be called Translator–that’s just a placeholder name):
Update: Source code is now available on Sourceforge.
Filed under: Translation Tool –
36 Responses to “A new Web-based localization tool”
Feed for this Entry Trackback Address-
Oct 11th, 2007 at 7:59 am
Your UI mockup looks really good.
There are a few main features that web-based translation tools only do 80% well:
1. Good support for distributed translation: multiple simultaneous authors, conflict resolution, unlimited undo
2. Good support for proofreading: search and replace, spell-checking, statistics
3. Control of translations: option to self-host, permissions, branching translations
4. Tight integration with workflow: open API, modification of sourceRight now, desktop applications get most of this right. If you’ve got your translations checked into a source repository, you can get all four of these things. But you lose the ability to have outside contributors help with localization.
Since this is a toolchain product, having all of these is pretty vital to getting good adoption. If I weren’t to use existing desktop tools, I’d probably go for a free software tool that would let me add missing features that are important to me. After all, the people who are the customers of this product are programmers, so it’s reasonable to expect that a popular tool will get a lot of community support.
-
Nov 19th, 2007 at 3:09 pm
Hi Duncan,
How about this wild feature: just point and click any web page text to translate it? Anyone could do Wiki style editing and the final translation could be determined by voting/heurestics to prevent vandalism.
For example, translation ids could be embedded to web page code using Javascript and then a click causes a pop-up Javascript window loading where you can instantly translate text to another language. Or a simple search could find the original text string.
Ps. If you want some (commercial) testing ground for your product I could have one small client doing Russian translations for few websites. I think we are going wth in-house tool unless we find something similar you have described here.
-
Nov 22nd, 2007 at 7:15 pm
Duncan,
Well, you could always put the translations under a permissive license, like Wikipedia does for its articles. I don’t think you have to make it a web standard at first, especially since web standards often need a reference implementation before you start the process.
What’s probably going to be the biggest issue for translation like this is having to revert spam. I guess you could have trusted translators (maybe registered users or power users?) since random people updating your translations probably isn’t the way to go.
You might also have a UI issue when people accidentally double-click on some text.
Simon
-
Nov 22nd, 2007 at 9:06 pm
Well, you could supply the same interface as libgettext, but make it database-backed. Because all of your translations are already stored in a database with your current tool, right? Or, the simpler hack would be to atomically replace the .mo files after someone has done a translation.
I’m not sure generic automated spam detection would work so well with something like this. Maybe you’d want to run the translated text past an online dictionary, to see if it matches up a high percentage of the right words?
Evan’s idea of building a reputation system is a good idea.
-
Nov 23rd, 2007 at 6:15 am
My great vision:
- Each text editor has Wikipedia-like account (can be anonymous too)
- All entries are stored in the database
- You can plug-in the translation machine to any web server (PHP/Python/Java). it uses its own backend and the embedding is done with simple server-side hooks and few Javascript files
- Everyone can edit entries. However, there is some kind of trust mechanism preventing vandalism. For example, anonymous edits need to be confirmed and users need to earn some trust points to make non-reviewed edits
- The site texts can be rolled out regularly (once in a day) or manually by generating gettext .po files from the database
- The web page itself may have Javascript-based pop-up interface for text editing. For example, in the bottom right corner you have an icon which opens a dialog box with text editing capabilities:
- Choose languages (you can see few languages at a time)
- Browse language entries for this page. The dialog loads them asynchronously via AJAX
- Click any text to see its translation information in the target languages. The matching between actual web page visible text and gettext database entry can be done by heurestic matching (regexp can fill those %s in gettext) or by hidden embedded translation information on the page (e.g. a javascript snipped containing page entry -> gettext id mappings)
- You can change the text instantly. However, the change is visible only for yourself until it’s reviewed and rolled out
- You can save entries to database, see entry history and other version control and translation management specific actions using asynchronous Javascript calls
-
Aug 21st, 2009 at 8:27 am
Интересный блог- ещё зайду
- Aug 23rd, 2009 at 1:26 am
-
Aug 24th, 2009 at 6:50 am
Какие положительные результаты

-
Aug 30th, 2009 at 5:19 pm
How did it cost to start up this blog…I want to start my own.
-
Aug 31st, 2009 at 4:47 am
А я бы выразился, что скорее всего здесь коментаторы школьняги. Автор отлично пишет! Так держать! Кстати кому интересно - я обитаю тут.
-
Sep 24th, 2009 at 6:01 am
Природа сказала женщине: будь прекрасной, если можешь, мудрой, если хочешь, но благоразумной ты должна быть непременно. Пьер Огюстен Бомарше
-
Oct 5th, 2009 at 3:50 pm
hgajmqtswcta
-
Nov 1st, 2009 at 12:17 pm
Hi
Is there any news related to this promising translation tool ?
Has it been discontinuated ? Is it temporary stopped ? Has it been released internaly only ? -
Nov 13th, 2009 at 12:27 pm
Текст реально порадовал. Постеру респект. В поддержку темы тоже делюсь тем, что близко мне - фото знаменитостей, Заходите - не пожалеете
-
Nov 15th, 2009 at 8:23 pm
Текст реально понравился. Автору респект. В поддержку темы тоже делюсь тем, что близко мне - http://www.порно-онлайн.su, Заходите - не пожалеете
-
Jan 30th, 2010 at 6:55 am
Is there any progress with working on this tool? Any sources? Post is quite old and can’t find sources on sourceforge.

-
Mar 3rd, 2010 at 6:37 am
I guess not Croogie… I have build the same, but al the words are in a database, to generate po and mo files
( wich is faster….) i’m stuck too -
Nov 16th, 2010 at 5:31 am
Hi! thanks for the article? will it manage to deal with Unicodes? we would like to have our web-site on translation services translated into many languages but found that most of the software do not support Unicode.
-
Jan 13th, 2011 at 6:08 am
http://collaborative-inline-translations.crowdin.net/ is something similar. Comparison of currently available tools for web apps localization would be great : )
-
Apr 5th, 2011 at 1:43 am
It has to be expired soon or it is a lifetime service?…
is it upgraded?
its so unbelievable it has a translator…oh my god.technology,technology. -
Jul 18th, 2011 at 2:18 pm
I’m usually invstigating on the internet regarding tips that can help me personally. Thx!
-
Aug 2nd, 2011 at 3:04 pm
Hi pal, your website utes design is actually understandable as well as virtuous and i also enjoy it. Your website content tend to be outstanding. Fulfill maintain them returning. Greets!!!
-
Nov 4th, 2011 at 4:27 pm
security in network http://infraud.cc
- Nov 4th, 2011 at 10:24 pm
-
Nov 10th, 2011 at 8:11 pm
I really relate to that post. Thanks for the info.
-
Jan 5th, 2012 at 3:27 am
It never ceases to surprize me that, having a bit of extra browsing internet, it is possible to uncover a few of the most special blogs. It’s frustrating that even more blogs like this, arent listed at the top when I look with yahoo on the net, I’ve added you to my bookmarks, I also have a pal, that may genuinely get pleasure from this page, so ill send them, a link to your internet site, also. I am particular they’ll certainly really like it.
-
Jan 13th, 2012 at 7:04 pm
Downtown Kissimmee and CelebrationTake a stroll about the charming downtown streets of Kissimmee andofficial Chanel on line retailer. This store provides a lot more usefulness in our everyday living by supporting us make our purchasesnegotiate the costs and will strike very good discounts. Also, in this kind of situations, you’ll be able to always request images with thewholesale Chanel bags from. One particular very simple and easy choice make use of is definitely the world-wide-web. You will discover lots ofupdates on new launches and various good issues taking place at Chanel.So should you be looking at obtaining genuine chanel bags outlet some others, there now lies an easy resolution to the website, and that’s, the official Chanel on the internet retail store thatretailers as part of your locality. You have to note here that not all countries have these boutiques. When youspecifically towards the brand Chanel, and do gross sales of Chanel merchandise only. Then in addition there are quite a few multi-brandmirror, it absolutely is amid the way far better Chanel purses that help in storing many things within themarkets in some cities of the world, wherever all shops, lined one following one other promote only and only handbags.
-
Jan 13th, 2012 at 8:21 pm
you’ve an ideal blog here! would you like to make some invite posts on my weblog?
- 1 Pingback on Sep 24th, 2007 at 11:21 am
- 2 Pingback on Nov 3rd, 2007 at 11:04 pm
- 3 Pingback on Jan 6th, 2008 at 9:45 pm
- 4 Trackback on Aug 10th, 2009 at 3:08 am
- 5 Pingback on Jul 13th, 2010 at 3:53 pm


