The branch, master, has been updated.

- Log -----------------------------------------------------------------

commit 813c00a21f99ccc584f650ee82b81b6ea5d8055e
Author: Vincent van Ravesteijn <[email protected]>
Date:   Mon May 13 12:47:22 2013 +0200

    Use [[Context]] for the msgid of some strings

diff --git a/src/LyX.cpp b/src/LyX.cpp
index a8849ca..e678e98 100644
--- a/src/LyX.cpp
+++ b/src/LyX.cpp
@@ -1066,7 +1066,7 @@ int parse_version(string const &, string const &, string 
&)
 {
        cout << "LyX " << lyx_version
               << " (" << lyx_release_date << ")" << endl;
-       cout << to_utf8(bformat(_("Built on %1$s, %2$s"),
+       cout << to_utf8(bformat(_("Built on %1$s[[date]], %2$s[[time]]"),
                from_ascii(__DATE__), from_ascii(__TIME__))) << endl;
 
        cout << lyx_version_info << endl;
diff --git a/src/frontends/qt4/GuiAbout.cpp b/src/frontends/qt4/GuiAbout.cpp
index acabad2..8ceed8f 100644
--- a/src/frontends/qt4/GuiAbout.cpp
+++ b/src/frontends/qt4/GuiAbout.cpp
@@ -138,7 +138,7 @@ static QString buildinfo()
        QTextStream out(&res);
        out << "LyX " << lyx_version
                << " (" << lyx_release_date << ")" << endl;
-       out << toqstr(bformat(_("Built on %1$s, %2$s"),
+       out << toqstr(bformat(_("Built on %1$s[[date]], %2$s[[time]]"),
                from_ascii(__DATE__), from_ascii(__TIME__))) << endl;
 
        out << lyx_version_info << endl;

commit fec57fe959dd4897a37281d85a1ba8ef85f78912
Author: Vincent van Ravesteijn <[email protected]>
Date:   Mon May 13 12:46:33 2013 +0200

    Implement the use of [[Context]] for placeholders
    
    When placeholders are used, the context can indicate what will be
    substituted for the placeholder (e.g. "%1$s[[date]], %1$s[[time]]).

diff --git a/README.localization b/README.localization
index 52280f9..2f77eec 100644
--- a/README.localization
+++ b/README.localization
@@ -71,8 +71,9 @@ appear in your translations! Please take them exactly as they 
are or you may
 experience crashes when running LyX.
 
 [[Context]] is used to distinguish otherwise identical strings, which could
-have different translations depending on the Context. [[Context]] appears only
-in msgid string and should not be repeated in the translated version.
+have different translations depending on the Context. It can also be used to
+indicate what is substituted for a placeholder. [[Context]] appears only in
+msgid string and should not be repeated in the translated version.
 
 {} refer to counters and must not be translated. An example would be:
 msgid "Algorithm \\arabic{theorem}"
diff --git a/src/support/Messages.cpp b/src/support/Messages.cpp
index ea6ec0d..5c8d45f 100644
--- a/src/support/Messages.cpp
+++ b/src/support/Messages.cpp
@@ -34,17 +34,26 @@ void cleanTranslation(docstring & trans)
          Some english words have different translations, depending on
          context. In these cases the original string is augmented by
          context information (e.g. "To:[[as in 'From page x to page
-         y']]" and "To:[[as in 'From format x to format y']]". This
-         means that we need to filter out everything in double square
-         brackets at the end of the string, otherwise the user sees
-         bogus messages. If we are unable to honour the request we
-         just return what we got in.
+         y']]" and "To:[[as in 'From format x to format y']]". Also, 
+         when placeholders are used, the context can indicate what will
+         be substituted for the placeholder (e.g. "%1$s[[date]], %1$s
+         [[time]]). This means that we need to filter out everything 
+         in double square brackets at the end of the string, otherwise
+         the user sees bogus messages. If we are unable to honour the
+         request we just return what we got in.
        */
-       size_t const pos1 = trans.find(from_ascii("[["));
-       if (pos1 != docstring::npos) {
-               size_t const pos2 = trans.find(from_ascii("]]"), pos1);
-               if (pos2 != docstring::npos) 
-                       trans.erase(pos1, pos2 - pos1 + 2);
+       static docstring const ctx_start = from_ascii("[[");
+       static docstring const ctx_end = from_ascii("]]");
+       while (true) {
+               size_t const pos1 = trans.find(ctx_start);
+               if (pos1 != docstring::npos) {
+                       size_t const pos2 = trans.find(ctx_end, pos1);
+                       if (pos2 != docstring::npos) {
+                               trans.erase(pos1, pos2 - pos1 + 2);
+                               continue;
+                       }
+               }
+               break;
        }
 }
 

-----------------------------------------------------------------------

Summary of changes:
 README.localization            |    5 +++--
 src/LyX.cpp                    |    2 +-
 src/frontends/qt4/GuiAbout.cpp |    2 +-
 src/support/Messages.cpp       |   29 +++++++++++++++++++----------
 4 files changed, 24 insertions(+), 14 deletions(-)


hooks/post-receive
-- 
The LyX Source Repository

Reply via email to