mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-22 01:59:02 +00:00
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]]).
This commit is contained in:
parent
b79c88034e
commit
fec57fe959
@ -71,8 +71,9 @@ appear in your translations! Please take them exactly as they are or you may
|
|||||||
experience crashes when running LyX.
|
experience crashes when running LyX.
|
||||||
|
|
||||||
[[Context]] is used to distinguish otherwise identical strings, which could
|
[[Context]] is used to distinguish otherwise identical strings, which could
|
||||||
have different translations depending on the Context. [[Context]] appears only
|
have different translations depending on the Context. It can also be used to
|
||||||
in msgid string and should not be repeated in the translated version.
|
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:
|
{} refer to counters and must not be translated. An example would be:
|
||||||
msgid "Algorithm \\arabic{theorem}"
|
msgid "Algorithm \\arabic{theorem}"
|
||||||
|
@ -34,17 +34,26 @@ void cleanTranslation(docstring & trans)
|
|||||||
Some english words have different translations, depending on
|
Some english words have different translations, depending on
|
||||||
context. In these cases the original string is augmented by
|
context. In these cases the original string is augmented by
|
||||||
context information (e.g. "To:[[as in 'From page x to page
|
context information (e.g. "To:[[as in 'From page x to page
|
||||||
y']]" and "To:[[as in 'From format x to format y']]". This
|
y']]" and "To:[[as in 'From format x to format y']]". Also,
|
||||||
means that we need to filter out everything in double square
|
when placeholders are used, the context can indicate what will
|
||||||
brackets at the end of the string, otherwise the user sees
|
be substituted for the placeholder (e.g. "%1$s[[date]], %1$s
|
||||||
bogus messages. If we are unable to honour the request we
|
[[time]]). This means that we need to filter out everything
|
||||||
just return what we got in.
|
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("[["));
|
static docstring const ctx_start = from_ascii("[[");
|
||||||
if (pos1 != docstring::npos) {
|
static docstring const ctx_end = from_ascii("]]");
|
||||||
size_t const pos2 = trans.find(from_ascii("]]"), pos1);
|
while (true) {
|
||||||
if (pos2 != docstring::npos)
|
size_t const pos1 = trans.find(ctx_start);
|
||||||
trans.erase(pos1, pos2 - pos1 + 2);
|
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user