// Følgjande funksjonar er for å få rette klokkeslett i den uklare klokka.
//
// Set properties of the phrase given by the finalized msgstr in the PO file.
// The arguments to the call are consecutive pairs of keys and values,
// as many as needed (i.e. total number of arguments must be even).
//
// The property keys are registered as PO calls taking single argument,
// which can be used to retrive the property values for this msgstr
// when it is later used as placeholder replacement in another message.
//
// Always signals fallback.
//
function setMsgstrProps (/*KEY1, VALUE1, ...*/)
{
if (arguments.length % 2 != 0)
throw Error("Property setter given odd number of arguments.");
// Collect finalized msgstr.
phrase = Ts.msgstrf()
// Go through all key-value pairs.
for (var i = 0; i < arguments.length; i += 2) {
var pkey = arguments[i];
var pval = arguments[i + 1];
// Set the value of the property for this phrase.
Ts.setProp(phrase, pkey, pval);
// Set the PO call for getting this property, if not already set.
if (!Ts.hascall(pkey)) {
Ts.setcall(pkey,
function (phr) { return Ts.getProp(phr, this.pkey) },
{"pkey" : pkey});
}
}
throw Ts.fallback();
}
Ts.setcall("eigenskap", setMsgstrProps);
// NOTE: You can replace "properties" in the line above with any UTF-8 string,
// e.g. one in your language so that it blends nicely inside POs.
// Nokre generelle tekstfunksjonar.
// Til store bokstavar
function rop (str) {
return str.toUpperCase();
}
// Til små bokstavar
function kviskra (str) {
return str.toLowerCase();
}
// Til liten forbokstav
function litenfor (str) {
return Ts.toLowerFirst(str);
}
// Til stor forbokstav
function storfor (str) {
return Ts.toUpperFirst(str);
}
// Transcript-integrering for tekstfunksjonar
Ts.setcall("rop", rop);
Ts.setcall("kviskra", kviskra);
Ts.setcall("litenfor", litenfor);
Ts.setcall("storfor", storfor);
// Handtering av namn på skjermelement
Ts.loadProps("skjermelement");
// Formatering av namn på skjermelement
// Bunden form av namnet.
function bunden(str) {
var svar = Ts.getProp(str, "bunden");
if (!svar) {
throw Ts.fallback();
}
return svar;
}
// Tilhøyrande pronomen (denne, dette, desse)
function pron(str) {
var svar = Ts.getProp(str,"pron");
if (!svar) {
throw Ts.fallback();
}
return svar;
}
// Ev. dobbeltbestemming («Set opp *den* uklare klokka»),
// men ikkje gje feil om «dobbelbest» ikkje er definert.
function dobbelbest(str) {
var svar = Ts.getProp(str,"dobbelbest");
if (!svar)
return "";
else
return svar+" ";
}
Ts.setcall("bunden", bunden);
Ts.setcall("pron", pron);
Ts.setcall("dobbelbest", dobbelbest);