Writing Source Code for Translation
|
||||||||||||||||||||||||||||
| Active Translation | |||
|---|---|---|---|
| n | No Translation | French | English |
| 0 | "0 message(s) saved" | "0 message sauvegardé" | "0 messages saved" |
| 1 | "1 message(s) saved" | "1 message sauvegardé" | "1 message saved" |
| 2 | "2 message(s) saved" | "2 messages sauvegardés" | "2 messages saved" |
| 37 | "37 message(s) saved" | "37 messages sauvegardés" | "37 messages saved" |
This idiom is more flexible than the traditional approach; e.g.,
n == 1 ? tr("%n message saved") : tr("%n messages saved")
because it also works with target languages that have several plural forms (e.g., Irish has a special "dual" form that should be used when n is 2), and it handles the n == 0 case correctly for languages such as French that require the singular. See the Qt Linguist Manual for details.
Instead of %n, you can use %Ln to produce a localized representation of n. The conversion uses the default locale, set using QLocale::setDefault(). (If no default locale was specified, the "C" locale is used.)
A summary of the rules used to translate strings containing plurals can be found in the Translation Rules for Plurals document.
Typically, your application's main() function will look like this:
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QTranslator qtTranslator;
qtTranslator.load("qt_" + QLocale::system().name(),
QLibraryInfo::location(QLibraryInfo::TranslationsPath));
app.installTranslator(&qtTranslator);
QTranslator myappTranslator;
myappTranslator.load("myapp_" + QLocale::system().name());
app.installTranslator(&myappTranslator);
...
return app.exec();
}
Note the use of QLibraryInfo::location() to locate the Qt translations. Developers should request the path to the translations at run-time by passing QLibraryInfo::TranslationsPath to this function instead of using the QTDIR environment variable in their applications.
Qt Linguist Manual, Hello tr Example, Translation Rules for Plurals
[Previous: Internationalization with Qt] [Internationalization with Qt] [Next: Translation Rules for Plurals]
| Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. | Qt 4.6 | |
| Copyright © 2012 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD. | ||
| Vous avez déniché une erreur ? Un bug ? Une redirection cassée ? Ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP ! | ||
Copyright © 2000-2012 - www.developpez.com