kde-l10n/uk/scripts/kdelibs/kdelibs4/kdelibs4.js

66 lines
2.1 KiB
JavaScript
Raw Normal View History

// 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)