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