A few weeks ago, we had an awesome insane idea: to translate Qt Creator into French. It turned out to be a terrible idea, because it was much more work than what we originally thought.
We started to translate the strings and it didn’t take us long to realize how huge Creator really is, and the list of strings to translate seemed endless. We ended up asking for help in one of the French Qt communities, Qt.developpez.com. Their response was amazing, they worked like crazy on the translations, and thanks to them, the next version of Qt will provide a French version of the tools. From Qt 4.6.0 on, you will have a French version of Qt Designer and of Qt Assistant. Qt Creator 1.3.0 is available in French entirely, including the integrations and the less known plugins.
The translation of thousands of strings, by non-profesionnals, in only a few weeks, have been quite a challenge
. Thanks to Jonathan Courtois, Alp Mestan, Florent Renault, Pierre Rossi for their amazing work on translations. Thanks to Yoann Lopes for the review of some of the tools.
Thanks to great efforts from the community, Qt Creator has translations for German, Spanish, Italian, Japanese, Polish, Russian, Slovenian and now French. Everybody is welcome to participate in those translations or to create a new translation via the GIT repository on gitorious. If you would like to help the French translation, you are welcome on the forums of developpez.net to meet the other translators.
Il y a quelques semaines, nous avons eu une idée
Grâce aux efforts de la communauté, Qt Creator est traduit en Allemand, Espagnol, Italien, Japonais, Polonais, Russe, Slovène, et maintenant Français. Tout le monde peut aider à ces traductions, ou créer de nouvelles traductions, via le dépôt GIT sur gitorious. Si vous désirez aider la traduction française, vous êtes les bienvenus sur les forums de developpez.net pour rencontrer les autres traducteurs.
Possibly related posts:
11 comments
Good on you for stressing Qt’s i18n support and using it in a deployed tool, good on Qt.developpez.com for delivering the goods out of the kindness of their hearts.
Good language choice, there seems to me that beside English, French is the most used language to discuss Qt on the web.
Thanks for making tools that make i18n less of a pain in the butt.
Community power at work!!!
Wow, I was surprised when Qt Creator opened in french, but I didn’t knew french was the only language translated, I thought it was localized for every major language !
Still, there are a few items untranslated: all the “Build” menu is still in english, and at some place some commands are still in english (like “close project”/”start debugging”).
Good work though !
I have divided by 3 (!?) my translation time by using google translate with the following Qt code (main excerpts). Would be easy to integrate to Linguist I guess…
void LinguistExtension::Init()
{
m_http = new QHttp(this);
connect(m_http, SIGNAL(done(bool)), this, SLOT(_TranslationDone(bool)));
}
void LinguistExtension::Translate(const QString& text, const QString& langTo) // langTo == “fr”, “es”, etc.
{
QString fromLang = “en”;
QString url = QString(“/translate_a/t?client=t&sl=” + fromLang + “&tl=” + langTo);
QHttpRequestHeader header = QHttpRequestHeader(“POST”, url, 1, 1);
header.setValue(“Host”, “www.google.com”);
header.setValue(“User-Agent”, “Mozilla/5.0″);
header.setValue(“Accept-Encoding”, “deflate”);
header.setContentLength(text.length());
header.setValue(“Connection”, “Close”);
// Text to be translated
QByteArray ba(“text=”);
ba.append(text.toUtf8());
m_http->setHost(“www.google.com”);
m_http->request(header, ba);
}
void LinguistExtension::_TranslationDone(bool error)
{
QString result0 = QString::fromUtf8(m_http->readAll());
QRegExp regex(“\\{\”trans\”:\”(.*)\”,\”orig\”:”, Qt::CaseSensitive, QRegExp::RegExp2);
regex.setMinimal(true);
int pos = 0;
QString result;
while ((pos = regex.indexIn(result0, pos)) != -1)
{
QString t = regex.cap(1);
result += t;
pos += regex.matchedLength();
}
if (result.startsWith(“\”"))
result = result.mid(1);
if (result.endsWith(“\”"))
result.truncate(result.length() – 1);
// Adjust a bit the google result
// (could be improved)
result.replace(” \\n “, “\n”); // Google often adds spaces around a \n
result.replace(“\\n “, “\n”);
result.replace(” \\n”, “\n”);
result.replace(“\\n”, “\n”);
// Replace attempts of smart quotes
result.replace(QString(QChar((unsigned short)0×2018)), “\”");
result.replace(QString(QChar((unsigned short)0×2019)), “\”");
result.replace(QString(QChar((unsigned short)0xAB)), “\”");
result.replace(QString(QChar((unsigned short)0xBB)), “\”");
result.replace(QString(QChar((unsigned short)0x300E)), “\”");
result.replace(QString(QChar((unsigned short)0x300F)), “\”");
result.replace(QString(QChar((unsigned short)0x201E)), “\”");
result.replace(QString(QChar((unsigned short)0x201C)), “\”");
result.replace(” \\u2029 “, “\n”);
result.replace(” \\u2029″, “\n”);
result.replace(“\\u2029 “, “\n”);
result.replace(“\\u2029″, “\n”);
result.replace(“\\u003c/ “, “”);
result.replace(“\\u003e”, “>”);
result.replace(” …”, “…”);
result.replace(“\\x3c”, “”);
result.replace(“\\\”", “\”");
result.replace(“
Slovaque is Slovakian, not Slovenian. The right French translation for Slovenian is Slovène. Anyways, I was translating Qt Creater 1.3 and also Qt 4.6 into Slovenian during this summer. Really a huge pile of strings to translate. Thankfully KDE Lokalize did a great job helping with its translation memory, filled with translations from KDE. Hope all developers from Slovenia like it and as many check it out and help imrove it further. I still have some bits like Assistant and Linguist to translate but I’ll try to find some time to finish it in the comming days.
Jure Repinc: oops, I have fixed the French translation of Slovenian. Thanks for reporting the mistake
@Philippe: Small side not, QHttp is deprecated, use QNetworkAccessManager
@divide: As you can read in this post, French is not the only translation, but one of 8 languages in which Qt Creator is translated.
merci beaucoup!
How can I change the language to Qt Creator?
Comments on this entry are closed.