mirror of
https://bitbucket.org/smil3y/kde-l10n.git
synced 2025-02-27 12:32:51 +00:00
66 lines
No EOL
2.1 KiB
JavaScript
66 lines
No EOL
2.1 KiB
JavaScript
// kdelibs4.js of Ukrainian KDE translation
|
|
|
|
// ------------------------------
|
|
// Pick a phrase depending on a dynamic context field.
|
|
// Input is the keyword of the context field, followed by pairs of
|
|
// regex matcher on context value and corresponding phrase,
|
|
// and optionally followed by default phrase in case the value does not match.
|
|
// If the value does not match and default phrase is not given,
|
|
// fallback is signaled.
|
|
// If requested dynamic context field does not exist, fallback is signaled.
|
|
function select_by_context (/* ctxt_key,
|
|
valrx_1, phrase_1, ..., valrx_N, phrase_N
|
|
[, default_phrase]*/)
|
|
{
|
|
if (arguments.length < 1)
|
|
throw Error("Selector by context takes at least the context keyword.");
|
|
|
|
var ctxtkey = arguments[0];
|
|
var ctxtval = Ts.dynctxt(ctxtkey);
|
|
|
|
var phrase;
|
|
for (var i = 1; i < arguments.length; i += 2) {
|
|
if (ctxtval.match(RegExp(arguments[i]))) {
|
|
phrase = arguments[i + 1];
|
|
break;
|
|
}
|
|
}
|
|
if (phrase == undefined) {
|
|
if (arguments.length % 2 == 0) {
|
|
phrase = arguments[arguments.length - 1];
|
|
} else {
|
|
throw Ts.fallback();
|
|
}
|
|
}
|
|
|
|
return phrase;
|
|
}
|
|
Ts.setcall("за-контекстом", select_by_context);
|
|
|
|
// Return the phrase without the given prefix if it has it,
|
|
// or the full phrase otherwise.
|
|
// Thanks to Chusslove Ilich from Serbian team
|
|
function without_prefix (prefix, phrase)
|
|
{
|
|
if (phrase.indexOf(prefix) == 0) {
|
|
phrase = phrase.substr(prefix.length);
|
|
}
|
|
return phrase;
|
|
}
|
|
Ts.setcall("без-префікса", without_prefix);
|
|
|
|
// Simple replacer. Thanks to Alexander Potashev from Russian team
|
|
function replaceMultiplePairs(/* text, pattern1, replacement1, ... */)
|
|
{
|
|
if (arguments.length % 2 != 1)
|
|
throw Error("replaceMultiplePairs requires odd number of arguments.");
|
|
|
|
var text = arguments[0];
|
|
for (var i = 1; i < arguments.length; i += 2)
|
|
{
|
|
text = text.replace(arguments[i], arguments[i + 1]);
|
|
}
|
|
|
|
return text;
|
|
}
|
|
Ts.setcall("заміна-пар", replaceMultiplePairs) |