CodingTeam is a free and easy to use forge designed for you. Your projects need simplicity and intuitivity!

CodingTeam

Blog: Miscellaneous

Feed subscription: or .

Categories

 

Some statistics about CodingTeam.net

Here are some cool statistics about CodingTeam.net usage (generated on 28th march 2010). There are currently 304 projects registered on CodingTeam.net.

Top categories.

User involvement.

  • Number of users: 1,276
  • Users who own one or more project: 249 (19.5%)
  • Users without any project: 1,027 (80.5%)
  • Users involved in one or more project: 283 (22.2%)
  • Users without any project involvement: 993 (77.8%)

Miscellaneous.

  • Number of posts in the forums: 2,436
  • Number of bugs reported: 1,097
  • Number of strings to translate: 335
  • Number of translated strings: 1,492
  • Number of news: 386
  • Number of downloads: 495

The fact is that a lot of users on CodingTeam.net are somewhat inactive. But the few users that are really involved seem to be huge workers (we have more than 3,200 commits since the 0.9 release (all past commits aren't counted)).

Each time I release a new version of CodingTeam, a lot of users come to CodingTeam.net to see how it works. CodingTeam.net not being a test setup may be the reason for a large part of these 77.8% inactive users: They register, see their project rejected, and stop here. Maybe it would be a good solution to create a CodingTeam demo, opened to all, allowing everyone to test, to see and to make their own advice without installing anything. Statistics are cool, interpreting them is harder.

And, last but not least, as I'm very busy this month, there won't be a Project of the Month entry for march 2010.

Translate your projects via CodingTeam

It's time to start this blog with an interesting subject: online translation inside CodingTeam. This post is a full introduction to this new feature in the CodingTeam software forge.

As it stands in the release notes for the 0.9.2:

CodingTeam 0.9.2 reintroduces the gettext-based online translation system. It was already in our forge up to the 0.42 but this had disappeared with the full-rewrite of the 0.9. Now, you can easily translate your software online with CodingTeam! The process is simple: you upload a gettext translation model (a .pot file) and then users can translate all your strings in their language. If you already have a gettext translation file (a .po), you can upload it to automatically translate all the strings in the database. When you want to get the translated strings in order to release your software, just export the translation file for all available languages and it's done! And by the way, to prepare the next release, you will import your new .pot file, which will cause the automatical update of your strings database (deleted strings will be deactivated).

This feature is very new and we release it early to get feebacks on this implementation, in order to make it better and better with the time. But here it is, you can now translate your softwares with CodingTeam!

Thus I write this step-by-step howto in order to fully explain this feature, its use and operation to the CodingTeam users and more generally to anyone who may be interested.

Before starting, it is necessary to mention some important points. First, CodingTeam is a software forge, that means that you can do everything to develop your software in one place with varied tools from bugs tracker to source code management. This software can be used, if you have a free software (as in freedom) project, on the CodingTeam.net website!

The method used to implement internationalization (also known as i18n) inside the CodingTeam software forge is based on gettext. It's the GNU library for internationalization and localization. gettext is somewhat a de facto standard to develop multilingual programs. The use of this library is very simple. Programmers put their strings in the gettext function (commonly aliased _). Then, they run xgettext that generates a .pot file wich is a template (it means that this file contains the list of translatable strings extracted from the sources). Afterwards, the translator derives a .po file from this template with msginit or msgmerge and the translation is made in this file. He just send it back to the developer who uses msgfmt to generate a .mo file wich is a binary. These binary files will be used by the program.

With CodingTeam, all the translation work can be made online. The fact is that a lot of people are unwilling to use gettext. Therefore in the context of free software, an easy-to-use appliance can only increase the number of translators who will contribute to your project! And, in an enterprise, it's just necessary to save time.

First step: upload a .pot file.

Just click on the "Administration" link to enter the panel and select your base language.

If you're going to import a template of translatable strings of your programs currently written in English, thus your base lang is English. Just import this file and you're done, strings are now ready to be translated.

English is now hidden in the list of the internationalization homepage. This is because you won't translate strings that are already translated!

Second step: upload a .po file.

Now, you can import an existing translation files if you have it. Just fill this form and this language will be updated.

It's useful in order to maintain on a CodingTeam forge the translation that you've already started elsewhere. The .po import is designed for that and for prehistoric animals that still contribute to translation without using online interfaces.

Third step: translate a string.

The third step is the most interesting of all. Here is the translation string view:

You can see the string that you have to translate and the current proposed translation. If you are registered on the forge, you can add your own proposition (and tag it as translation, correction or reformulation). You can also see where this string is located in the sources (file and line number), this kind of information can be very useful to understand the meaning of a sentence taken out of context.

And below you have the revision history for this translation. Indeed, CodingTeam's internationalization system works as a sum of suggestions, the last one is the translation that ends up being used. Thus, to limit abuse, administrators can delete any suggestions.

When someone contribute to translations, this work is shown in the project's timeline (and therefore in the dashboards). You can also get (through this timeline's entry) a summary of all translation work made in a day by all translaters on all languages.

Fourth step: export a .po file.

Once translation work is finished, you can export the translated .po files. You will just have to compile .mo files from them.

Well done!


Well, you know everything you should know about CodingTeam's online translation system!

But, as I said in the release notes, this feature is very new. It lacks a lot of functionality and can be improved by the time. Some of the needed (and planned!) things to make this internationalization system better are:

  • linking the source code repository and the internationalization system (update on commit, build and commit translation files…)
  • handling plural forms

If you have another great idea, feel free to write it here!

First post!

Alright, here is the first post on the CodingTeam blog!

To celebrate this new release (and this new year), I open this blog. This will not contain releases notes, there is already the project news for that. So, let me explain the goal of this blog. It's intended to be a place for the CodingTeam community (formed by users and administrators) to get news about the project and where they will be able to participate in the future of the project, by writing their advices on the posts. This will also be a place where people will find informations and news about the project.

This blog will be updated monthly with subjects related to CodingTeam or the software forges in general, so you don't have to know everything about CodingTeam in order to read this blog. This blog will also speak about projects that use CodingTeam, in a "Project of the Month" category. By the way, if you are using CodingTeam for your project(s), feel free to contact me!

The releases notes of the new 0.9.2 release can be found here and you can download it here.

Thus, the appointment is made! See you soon.

page 2 of 2 -