Development/Tutorials/Localization/Message Appearance: Difference between revisions

    From KDE TechBase
    m (Lliehu siirsi sivun Tutorials/Localization/Understanding How Messages Appear to Translators uudelle nimelle Development/Tutorials/Localization/Message Appearance: Moving to the intended place. Accidentally moved to the wrong place earlier.)
    (5 intermediate revisions by the same user not shown)
    Line 1: Line 1:
    = Abstract =
    {{TutorialBrowser|


    This page is a short summary that tries to show how translators see the translatable messages. This is intended primarily for developers who want to see what kind of context information can be seen in the translation files and how not everything that can be seen by reading the source code is visible to translators. The information that translators see about a given message also depends on where the message comes from.
    series=Localization|


    For more information one can always look at the generated template (pot) files, either by opening them in any text editor or with [http://userbase.kde.org/Lokalize Lokalize]. In KDE infrastructure they are in [[Getting_Started/Sources/Subversion|SVN]] under branches/stable/l10n-kde4/templates and trunk/l10n-kde4/templates.
    name=Understanding How Messages Appear to Translators|


    == Messages coming from i18n() and friends ==
    pre=[[../i18n|Writing Applications With Localization in Mind]]|
     
    }}
     
    == Abstract ==
     
    By reading the source code it can be hard to see how translators would see (or not see) the context of a message. This page is a short summary that lists the major points of what can be seen from the PO files and gives a few examples.
     
    == Introduction ==
     
    Not all context information that can be seen or figured by reading the source code is extracted to the PO files. Because the amount and type of extracted information depends on from where and how the message is extracted, the rest of this page is divided into different sources of translatable messages.
     
    The goal of this page is only to serve as an introduction and quick reference for this topic. For more information one can always look at the generated template (.pot) files, either by opening them in any text editor or with [http://userbase.kde.org/Lokalize Lokalize]. In KDE infrastructure they can be found in [[Getting_Started/Sources/Subversion|SVN]] under branches/stable/l10n-kde4/templates and trunk/l10n-kde4/templates.
     
    == Messages translated using i18n() and friends ==


    For these messages translators will only see the following:
    For these messages translators will only see the following:
    Line 20: Line 34:
    <syntaxhighlight lang="cpp-qt">
    <syntaxhighlight lang="cpp-qt">
    QString msg = i18nc("%1 and %2 are file names", "Do you want to replace %1 with %2?",
    QString msg = i18nc("%1 and %2 are file names", "Do you want to replace %1 with %2?",
                      oldFile, newFile)
                        oldFile, newFile);
    </syntaxhighlight>
    </syntaxhighlight>


    Line 27: Line 41:
    [[File:What_Translators_See_i18n.png]]
    [[File:What_Translators_See_i18n.png]]


    == Messages in UI files ==
    == Messages in .ui files ==


    For these messages translators will see everything that they see for messages coming from i18n() and friends. They will additionally see the following:
    For these messages translators will see everything that they see for messages coming from i18n() and friends. They will additionally see the following:

    Revision as of 21:11, 21 July 2013

    Understanding How Messages Appear to Translators
    Tutorial Series   Localization
    Previous   Writing Applications With Localization in Mind
    What's Next   n/a
    Further Reading   n/a

    Abstract

    By reading the source code it can be hard to see how translators would see (or not see) the context of a message. This page is a short summary that lists the major points of what can be seen from the PO files and gives a few examples.

    Introduction

    Not all context information that can be seen or figured by reading the source code is extracted to the PO files. Because the amount and type of extracted information depends on from where and how the message is extracted, the rest of this page is divided into different sources of translatable messages.

    The goal of this page is only to serve as an introduction and quick reference for this topic. For more information one can always look at the generated template (.pot) files, either by opening them in any text editor or with Lokalize. In KDE infrastructure they can be found in SVN under branches/stable/l10n-kde4/templates and trunk/l10n-kde4/templates.

    Messages translated using i18n() and friends

    For these messages translators will only see the following:

    • the source string (and plural form if i18np is used)
    • the context parameter if i18nc is used
    • the code comment beginning with "i18n:" if used
    • list of file names and row numbers the messages appears in
    • the order in which the messages were extracted (sometimes useful, but not a replacement for other context information)

    If the message appears in many places, the context information from all the places is shown.

    For example this message:

    QString msg = i18nc("%1 and %2 are file names", "Do you want to replace %1 with %2?",
                        oldFile, newFile);
    

    Appears like this in Lokalize:

    Messages in .ui files

    For these messages translators will see everything that they see for messages coming from i18n() and friends. They will additionally see the following:

    • the type and name of the widget the message it appears in
    • the name of the property the message is a value for

    Examples:

    For example from "property (displayFormat), widget (QDateEdit, dateEdit)" it could be inferred that the translatin should use the specific format that QDate's toString() accepts. Some translators cannot infer this, though, so it is good to additionally use "(qtdt-format)" as context as said on page Development/Tutorials/Localization/i18n.

    Messages in .kcfg files

    All the things mentioned in the first section also apply here. Additionally the following context information is automatically added:

    • the tag the string is for
    • the name of the entry the tag is for
    • the name of the group the entry belongs to

    Example: