diff options
author | David Schulz <david.schulz@digia.com> | 2012-12-12 11:20:30 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2012-12-14 11:02:47 +0100 |
commit | d64c4662f01ffc94c68e7c9f7abdb6309e67e489 (patch) | |
tree | b94b144024105df1dc8cd1399ce6dbc14f743e08 /doc/src/examples/arrowpad.qdoc | |
parent | a0a4c06736a71fedb69f01c1c4c423173a2a665e (diff) |
QtBase: Removed moved linguist examples.
Linguist examples are now in qttools.
Change-Id: I8abfff50d81cda143a080711bf9583e7be777009
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Diffstat (limited to 'doc/src/examples/arrowpad.qdoc')
-rw-r--r-- | doc/src/examples/arrowpad.qdoc | 223 |
1 files changed, 0 insertions, 223 deletions
diff --git a/doc/src/examples/arrowpad.qdoc b/doc/src/examples/arrowpad.qdoc deleted file mode 100644 index 39c0558117..0000000000 --- a/doc/src/examples/arrowpad.qdoc +++ /dev/null @@ -1,223 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Free Documentation License Usage -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. Please review the following information to ensure -** the GNU Free Documentation License version 1.3 requirements -** will be met: http://www.gnu.org/copyleft/fdl.html. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \example linguist/arrowpad - \title Arrow Pad Example - - This example is a slightly more involved and introduces a key \e - {Qt Linguist} concept: "contexts". It also shows how to use two - or more languages. - - \image linguist-arrowpad_en.png - - We will use two translations, French and Dutch, although there is no - effective limit on the number of possible translations that can be used - with an application. The relevant lines of \c arrowpad.pro are - - \snippet examples/linguist/arrowpad/arrowpad.pro 0 - \codeline - \snippet examples/linguist/arrowpad/arrowpad.pro 1 - - Run \c lupdate; it should produce two identical message files - \c arrowpad_fr.ts and \c arrowpad_nl.ts. These files will contain all the source - texts marked for translation with \c tr() calls and their contexts. - - See the \l{Qt Linguist manual} for more information about - translating Qt application. - - \section1 Line by Line Walkthrough - - In \c arrowpad.h we define the \c ArrowPad subclass which is a - subclass of QWidget. In the screenshot above, the central - widget with the four buttons is an \c ArrowPad. - - \snippet examples/linguist/arrowpad/arrowpad.h 0 - \snippet examples/linguist/arrowpad/arrowpad.h 1 - \snippet examples/linguist/arrowpad/arrowpad.h 2 - - When \c lupdate is run it not only extracts the source texts but it - also groups them into contexts. A context is the name of the class in - which the source text appears. Thus, in this example, "ArrowPad" is a - context: it is the context of the texts in the \c ArrowPad class. - The \c Q_OBJECT macro defines \c tr(x) in \c ArrowPad like this: - - \snippet doc/src/snippets/code/doc_src_examples_arrowpad.cpp 0 - - Knowing which class each source text appears in enables \e {Qt - Linguist} to group texts that are logically related together, e.g. - all the text in a dialog will have the context of the dialog's class - name and will be shown together. This provides useful information for - the translator since the context in which text appears may influence how - it should be translated. For some translations keyboard - accelerators may need to be changed and having all the source texts in a - particular context (class) grouped together makes it easier for the - translator to perform any accelerator changes without introducing - conflicts. - - In \c arrowpad.cpp we implement the \c ArrowPad class. - - \snippet examples/linguist/arrowpad/arrowpad.cpp 0 - \snippet examples/linguist/arrowpad/arrowpad.cpp 1 - \snippet examples/linguist/arrowpad/arrowpad.cpp 2 - \snippet examples/linguist/arrowpad/arrowpad.cpp 3 - - We call \c ArrowPad::tr() for each button's label since the labels are - user-visible text. - - \image linguist-arrowpad_en.png - - \snippet examples/linguist/arrowpad/mainwindow.h 0 - \snippet examples/linguist/arrowpad/mainwindow.h 1 - - In the screenshot above, the whole window is a \c MainWindow. - This is defined in the \c mainwindow.h header file. Here too, we - use \c Q_OBJECT, so that \c MainWindow will become a context in - \e {Qt Linguist}. - - \snippet examples/linguist/arrowpad/mainwindow.cpp 0 - - In the implementation of \c MainWindow, \c mainwindow.cpp, we create - an instance of our \c ArrowPad class. - - \snippet examples/linguist/arrowpad/mainwindow.cpp 1 - - We also call \c MainWindow::tr() twice, once for the action and - once for the shortcut. - - Note the use of \c tr() to support different keys in other - languages. "Ctrl+Q" is a good choice for Quit in English, but a - Dutch translator might want to use "Ctrl+A" (for Afsluiten) and a - German translator "Strg+E" (for Beenden). When using \c tr() for - \uicontrol Ctrl key accelerators, the two argument form should be used - with the second argument describing the function that the - accelerator performs. - - Our \c main() function is defined in \c main.cpp as usual. - - \snippet examples/linguist/arrowpad/main.cpp 2 - \snippet examples/linguist/arrowpad/main.cpp 3 - - We choose which translation to use according to the current locale. - QLocale::system() can be influenced by setting the \c LANG - environment variable, for example. Notice that the use of a naming - convention that incorporates the locale for \c .qm message files, - (and TS files), makes it easy to implement choosing the - translation file according to locale. - - If there is no QM message file for the locale chosen the original - source text will be used and no error raised. - - \section1 Translating to French and Dutch - - We'll begin by translating the example application into French. Start - \e {Qt Linguist} with \c arrowpad_fr.ts. You should get the seven source - texts ("\&Up", "\&Left", etc.) grouped in two contexts ("ArrowPad" - and "MainWindow"). - - Now, enter the following translations: - - \list - \li \c ArrowPad - \list - \li \&Up - \&Haut - \li \&Left - \&Gauche - \li \&Right - \&Droite - \li \&Down - \&Bas - \endlist - \li \c MainWindow - \list - \li E\&xit - \&Quitter - \li Ctrl+Q - Ctrl+Q - \li \&File - \&Fichier - \endlist - \endlist - - It's quickest to press \uicontrol{Alt+D} (which clicks the \uicontrol {Done \& Next} - button) after typing each translation, since this marks the - translation as done and moves on to the next source text. - - Save the file and do the same for Dutch working with \c arrowpad_nl.ts: - - \list - \li \c ArrowPad - \list - \li \&Up - \&Omhoog - \li \&Left - \&Links - \li \&Right - \&Rechts - \li \&Down - Omlaa\&g - \endlist - \li \c MainWindow - \list - \li E\&xit - \&Afsluiten - \li Ctrl+Q - Ctrl+A - \li File - \&Bestand - \endlist - \endlist - - We have to convert the \c tt1_fr.ts and \c tt1_nl.ts translation source - files into QM files. We could use \e {Qt Linguist} as we've done - before; however using the command line tool \c lrelease ensures that - \e all the QM files for the application are created without us - having to remember to load and \uicontrol File|Release each one - individually from \e {Qt Linguist}. - - Type - - \snippet doc/src/snippets/code/doc_src_examples_arrowpad.qdoc 1 - - This should create both \c arrowpad_fr.qm and \c arrowpad_nl.qm. Set the \c - LANG environment variable to \c fr. In Unix, one of the two following - commands should work - - \snippet doc/src/snippets/code/doc_src_examples_arrowpad.qdoc 2 - - In Windows, either modify \c autoexec.bat or run - - \snippet doc/src/snippets/code/doc_src_examples_arrowpad.qdoc 3 - - When you run the program, you should now see the French version: - - \image linguist-arrowpad_fr.png - - Try the same with Dutch, by setting \c LANG=nl. Now the Dutch - version should appear: - - \image linguist-arrowpad_nl.png - - \section1 Exercises - - Mark one of the translations in \e {Qt Linguist} as not done, i.e. - by unchecking the "done" checkbox; run \c lupdate, then \c lrelease, - then the example. What effect did this change have? - - Set \c LANG=fr_CA (French Canada) and run the example program again. - Explain why the result is the same as with \c LANG=fr. - - Change one of the accelerators in the Dutch translation to eliminate the - conflict between \e \&Bestand and \e \&Boven. -*/ |