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
