generic: remove translation scripts

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
Ivailo Monev 2021-06-26 12:38:42 +03:00
parent d03eb8e743
commit 07244fe449
140 changed files with 0 additions and 283568 deletions

View file

@ -17,4 +17,3 @@ endif()
set(CURRENT_LANG ar)
macro_optional_add_subdirectory( messages )
macro_optional_add_subdirectory( scripts )

View file

@ -1 +0,0 @@
add_subdirectory(kdelibs)

View file

@ -1 +0,0 @@
kde4_install_ts_files(${CURRENT_LANG} kdelibs4)

View file

@ -1,34 +0,0 @@
// kdelibs4.js of Arabic KDE translation.
// ------------------------------
// Given a flat list of pairs of comma-separated country codes and strings,
// pick the string corresponding to the referent country
// (defined by Transcript config field 'dialect' or KDE locale).
// If no given country matches referent, signals fallback.
function select_by_country (/*COUNTRIES1, STRING1, ...*/)
{
if (arguments.length % 2 != 0)
throw Error("Picker by country given odd number of arguments.");
// Choose referent country from Transcript or KDE config.
ref_country = Ts.getConfString("dialect");
if (ref_country == undefined) {
ref_country = Ts.localeCountry();
}
// Go through all countries-string pairs.
for (var i = 0; i < arguments.length; i += 2) {
var countries = arguments[i].split(",");
var str = arguments[i + 1];
for (var j = 0; j < countries.length; j += 1) {
if (countries[j] == ref_country) {
return str;
}
}
}
throw Ts.fallback();
}
Ts.setcall("by-country", select_by_country);
// NOTE: You can replace "by-country" in the line above with any UTF-8 string,
// e.g. one in your language so that it blends nicely inside POs.

View file

@ -17,4 +17,3 @@ endif()
set(CURRENT_LANG ast)
macro_optional_add_subdirectory( messages )
macro_optional_add_subdirectory( scripts )

View file

@ -17,4 +17,3 @@ endif()
set(CURRENT_LANG be)
macro_optional_add_subdirectory( messages )
macro_optional_add_subdirectory( scripts )

View file

@ -18,4 +18,3 @@ set(CURRENT_LANG ca)
macro_optional_add_subdirectory( messages )
macro_optional_add_subdirectory( data )
macro_optional_add_subdirectory( scripts )

View file

@ -1 +0,0 @@
add_subdirectory(kdelibs)

View file

@ -1 +0,0 @@
kde4_install_ts_files(${CURRENT_LANG} kdelibs4)

View file

@ -1,39 +0,0 @@
// 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("propietats", 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.

View file

@ -18,4 +18,3 @@ set(CURRENT_LANG de)
macro_optional_add_subdirectory( messages )
macro_optional_add_subdirectory( data )
macro_optional_add_subdirectory( scripts )

View file

@ -1 +0,0 @@
add_subdirectory(kdelibs)

View file

@ -1,7 +0,0 @@
This directory contains scripts, which are needed at runtime to provide
a correct german translation.
One example for a runtime-depency is the fuzzy clock applet, where some
translations for the time-strings are beeing computed at runtime using
these scripts.
DISTRIBUTORS: PLEASE DON'T FORGET TO PACKAGE AND INSTALL THESE SCRIPTS!

View file

@ -1 +0,0 @@
kde4_install_ts_files(${CURRENT_LANG} kdelibs4)

View file

@ -1,40 +0,0 @@
// 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("Eigenschaft", 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.

View file

@ -17,4 +17,3 @@ endif()
set(CURRENT_LANG eo)
macro_optional_add_subdirectory( messages )
macro_optional_add_subdirectory( scripts )

View file

@ -17,4 +17,3 @@ endif()
set(CURRENT_LANG fi)
macro_optional_add_subdirectory( messages )
macro_optional_add_subdirectory( scripts )

View file

@ -1 +0,0 @@
add_subdirectory(kdelibs)

View file

@ -1,7 +0,0 @@
This directory contains scripts, which are needed at runtime to provide
a correct Finnish translation.
One example for a runtime-depency is the fuzzy clock applet, where some
translations for the time-strings are beeing computed at runtime using
these scripts.
DISTRIBUTORS: PLEASE DON'T FORGET TO PACKAGE AND INSTALL THESE SCRIPTS!

View file

@ -1,2 +0,0 @@
kde4_install_ts_files(${CURRENT_LANG} kgeography)
kde4_install_ts_files(${CURRENT_LANG} step_qt)

View file

@ -1 +0,0 @@
Ts.loadProps("kgeography");

View file

@ -1,30 +0,0 @@
=:Alueet:gen=Alueiden::
=:Alueet (oblastit):gen=Alueiden (oblastien)::
=:Departementit:gen=Departementtien::
=:Emiirikunnat:gen=Emiirikuntien::
=:Federaatiopiirit:gen=Federaatiopiirien::
=:Hallintoalueet:gen=Hallintoalueiden::
=:Historialliset provinssit:gen=Historiallisten provinssien::
=:Itsehallintoalueet:gen=Itsehallintoalueiden::
=:Kantonit:gen=Kantonien::
=:Kreivikunnat:gen=Kreivikuntien::
=:Kunnallispiirit:gen=Kunnallispiirien::
=:Kunnat:gen=Kuntien::
=:Kuvernoraatit:gen=Kuvernoraattien::
=:Läänit:gen=Läänien::
=:Maakunnat:gen=Maakuntien::
=:Maanosat:gen=Maanosien::
=:Maat:gen=Maiden::
=:Osavaltiot:gen=Osavaltioiden::
=:Osavaltiot ja alueet:gen=Osavaltioiden ja alueiden::
=:Osavaltiot ja territoriot:gen=Osavaltioiden ja territorioiden::
=:Periferiat:gen=Periferioiden::
=:Piirit:gen=Piirien::
=:Piirikunnat:gen=Piirikuntien::
=:Pitäjät:gen=Pitäjien::
=:Prefektuurit:gen=Prefektuurien::
=:Provinssit:gen=Provinssien::
=:Provinssit ja territoriot:gen=Provinssien ja territorioiden::
=:Subjektit:gen=Subjektien::
=:Valtameret ja valuma-alueet:gen=Valtamerten ja valuma-alueiden::
=:Vyöhykkeet:gen=Vyöhykkeiden::

View file

@ -1 +0,0 @@
Ts.loadProps("step_qt");

View file

@ -1,15 +0,0 @@
=:Ankkuri:gen=Ankkurin::
=:Elastinen kappale:gen=Elastisen kappaleen::
=:Hiukkanen:gen=Hiukkasen::
=:Jousi:gen=Jousen::
=:Jäljitin:gen=Jäljittimen::
=:Kaasu:gen=Kaasun::
=:Kiekko:gen=Kiekon::
=:Kuvaaja:gen=Kuvaajan::
=:Laatikko:gen=Laatikon::
=:Mittari:gen=Mittarin::
=:Monikulmio:gen=Monikulmion::
=:Muistiinpano:gen=Muistiinpanon::
=:Säädin:gen=Säätimen::
=:Tanko:gen=Tangon::
=:Varattu hiukkanen:gen=Varatun hiukkasen::

View file

@ -1 +0,0 @@
kde4_install_ts_files(${CURRENT_LANG} kdelibs4)

View file

@ -1,500 +0,0 @@
=/7Digital/hakumuoto=7Digitalista//
=:Aasia:Asia:elat=Aasiasta:gen=Aasian:illat=Aasiaan:iness=Aasiassa:part=Aasiaa::
=/Acronym Database/Lyhennetietokanta/hakumuoto=Lyhennetietokannasta//
=:Activity Bar:Aktiviteettipalkki:elat=Aktiviteettipalkista:gen=Aktiviteettipalkin:yleisnimi=kyllä::
=:Africa:Afrikka:elat=Afrikasta:gen=Afrikan:illat=Afrikkaan:iness=Afrikassa:part=Afrikkaa::
=:Ajastin:Timer:elat=Ajastimesta:gen=Ajastimen:yleisnimi=kyllä::
=:Akkujen valvontasovelma:Battery Monitor:elat=Akkujen valvontasovelmasta:gen=Akkujen valvontasovelman:yleisnimi=kyllä::
=:Akku vähissä:Battery Low:elat=Akkujen valvontasovelmasta:gen=Akkujen valvontasovelman:yleisnimi=kyllä::
=/Akonotes list plasmoid/Akonotes-luettelo/gen=Akonotes-luettelon//
=/Akonotes note plasmoid/Akonotes-muistiinpano/gen=Akonotes-muistiinpanon//
=/Akregator/elat=Akregatorista/gen=Akregatorin//
=:Alaska:elat=Alaskasta:gen=Alaskan:illat=Alaskaan:iness=Alaskassa:part=Alaskaa::
=:Alberta:elat=Albertasta:gen=Albertan:illat=Albertaan:iness=Albertassa:part=Albertaa::
=:Algeria:elat=Algeriasta:gen=Algerian:illat=Algeriaan:iness=Algeriassa:part=Algeriaa::
=/All Music Guide/hakumuoto=All Music Guidesta//
=:Amarok:elat=Amarokista:gen=Amarokin::
=/Amazon/hakumuoto=Amazonista//
=/Amazon MP3/hakumuoto=Amazonin MP3-haulla//
=/amor/elat=amorista/gen=amorin//
=:Analog Clock:Analoginen kello:elat=Analogisesta kellosta:gen=Analogisen kellon:yleisnimi=kyllä::
=/Application dashboard/Sovelluskojelauta/elat=Sovelluskojelaudasta/gen=Sovelluskojelaudan//
=:Application Launcher Menu:Sovellusten käynnistysvalikko:elat=Sovellusten käynnistysvalikosta:gen=Sovellusten käynnistysvalikon:yleisnimi=kyllä::
=:Application Launcher:Sovelluskäynnistin:elat=Sovelluskäynnistimestä:gen=Sovelluskäynnistimen:yleisnimi=kyllä::
=:Arabia:elat=Arabiasta:gen=Arabian:illat=Arabiaan:iness=Arabiassa:part=Arabiaa::
=/Ark/elat=Arkista/gen=Arkin//
=:Artikulate Pronunciation Trainer:Artikulate ääntämisen harjoitteluohjelma:elat=Artikulate ääntämisen harjoitteluohjelmasta:gen=Artikulate ääntämisen harjoitteluohjelman::
=/Ask Jeeves/hakumuoto=Ask Jeeves -haulla//
=/Baidu/hakumuoto=Baidulla//
=:Bangarang:elat=Bangarangista:gen=Bangarangin::
=:Belgia:Belgium:elat=Belgiasta:gen=Belgian:illat=Belgiaan:iness=Belgiassa:part=Belgiaa::
=:Benelux:elat=Beneluxista:gen=Beneluxin:illat=Beneluxiin:iness=Beneluxissa:part=Beneluxia::
=/Beolingus Online Dictionary/Beolingus-verkkosanakirja/hakumuoto=Beolingus-verkkosanakirjasta//
=:Binaarikello:Binary Clock:elat=Binaarikellosta:gen=Binaarikellon:yleisnimi=kyllä::
=/Bing/hakumuoto=Bingillä//
=:Black Board:Liitutaulu:elat=Liitutaulusta:gen=Liitutaulun:yleisnimi=kyllä::
=/Blinken/elat=Blinkenistä/gen=Blinkenin//
=/Blip.tv/hakumuoto=Blip.tv:stä//
=:Blogilo:elat=Blogilosta:gen=Blogilon::
=/Bomber/elat=Bomberista/gen=Bomberin//
=/Bookmark Editor/Kirjanmerkkimuokkain/elat=Kirjanmerkkimuokkaimesta/gen=Kirjanmerkkimuokkaimen//
=:Bookmarks:Kirjanmerkit:elat=Kirjanmerkeistä:gen=Kirjanmerkkien:yleisnimi=kyllä::
=:Bouncy Ball:Pomppupallo:elat=Pomppupallosta:gen=Pomppupallon:yleisnimi=kyllä::
=/Bovo/elat=Bovosta/gen=Bovon//
=:Braindump:elat=Braindumpista:gen=Braindumpin::
=:Brasilia:Brazil:elat=Brasiliasta:gen=Brasilian:illat=Brasiliaan:iness=Brasiliassa:part=Brasiliaa::
=:Britannia:United Kingdom:elat=Britanniasta:gen=Britannian:illat=Britanniaan:iness=Britanniassa:part=Britanniaa::
=:Bubblemon:Valvontakupla:elat=Valvontakuplasta:gen=Valvontakuplan:yleisnimi=kyllä::
=:Calculator:Laskin:elat=Laskimesta:gen=Laskimen:yleisnimi=kyllä::
=:Calendar:Kalenteri:elat=Kalenterista:gen=Kalenterin:yleisnimi=kyllä::
=:Calligra Author:elat=Calligra Authorista:gen=Calligra Authorin::
=:Calligra Sheets:elat=Calligra Sheetsistä:gen=Calligra Sheetsin::
=:Calligra Words:elat=Calligra Wordsistä:gen=Calligra Wordsin::
=:Cantor:elat=Cantorista:gen=Cantorin::
=/Cervisia/elat=Cervisiasta/gen=Cervisian//
=:Character Selector:Merkkivalitsin:elat=Merkkivalitsimesta:gen=Merkkivalitsimen:yleisnimi=kyllä::
=:Chile:elat=Chilestä:gen=Chilen:illat=Chileen:iness=Chilessä:part=Chileä::
=:China:Kiina:elat=Kiinasta:gen=Kiinan:illat=Kiinaan:iness=Kiinassa:part=Kiinaa::
=/CHM Backend/CHM-taustaosa/elat=CHM-taustaosasta//
=:Choqok:elat=Choqokista:gen=Choqokin::
=/CIA World Fact Book/CIA World Factbook/hakumuoto=CIA World Factbookista//
=/CiteSeer: Scientific Literature Digital Library/CiteSeer: tieteellisten tekstien digitaalinen kirjasto/hakumuoto=CiteSeeristä, tieteellisten tekstien digitaalisesta kirjastosta//
=|CNRTL/TILF French dictionary|CNRTL/TILF ranskankielinen sanakirja|hakumuoto=CNRTL/TILF:sta, ranskankielinen sanakirjasta||
=:Colombia:Kolumbia:elat=Kolumbiasta:gen=Kolumbian:illat=Kolumbiaan:iness=Kolumbiassa:part=Kolumbiaa::
=:Color Picker:Värivalitsin:elat=Värivalitsimesta:gen=Värivalitsimen:yleisnimi=kyllä::
=/ComicBook Backend/Taustaosa sarjakuvia varten/elat=Taustaosasta sarjakuvia varten//
=:Comic Strip:Sarjakuvastrippi:elat=Sarjakuvastripistä:gen=Sarjakuvastripin:yleisnimi=kyllä::
=:Community:Yhteisö:elat=Yhteisösovelmasta:gen=Yhteisösovelman:yleisnimi=kyllä::
=:Connection editor:Yhteysmuokkain:elat=Yhteysmuokkaimesta:gen=Yhteysmuokkaimen:yleisnimi=kyllä::
=:Contact Theme Editor:Yhteystietoteemamuokkain:elat=Yhteystietoteemamuokkaimesta:gen=Yhteystietoteemamuokkaimen::
=/CPAN - Comprehensive Perl Archive Network/CPAN Comprehensive Perl Archive Network/hakumuoto=CPANista (Comprehensive Perl Archive Network)//
=/CTAN Catalog/CTAN-katalogi/hakumuoto=CPAN-katalogista//
=/CTAN - Comprehensive TeX Archive Network/CTAN Comprehensive TeX Archive Network/hakumuoto=CTANista (Comprehensive TeX Archive Network)//
=/Current Application Control/Nykyinen sovellusohjain/elat=Nykyisestä sovellusohjaimesta/gen=Nykyisen sovellusohjaimen//
=/Debian Backports Search/Debianin Backports-tietokanta/hakumuoto=Debianin Backports-tietokannasta//
=/Debian BTS Bug Search/Debianin vikajärjestelmän haku/hakumuoto=Debianin vikajärjestelmän haulla//
=/Debian Package Search/Debianin pakettihaku/hakumuoto=Debianin pakettihaulla//
=:Default Desktop:Oletustyöpöytä:gen=Oletustyöpöydän:yleisnimi=kyllä::
=:Desktop Dashboard:Kojelauta:elat=Kojelaudasta:gen=Kojelaudan::
=:Device Notifier:Laiteilmoitin:elat=Laiteilmoittimesta:gen=Laiteilmoittimen:yleisnimi=kyllä::
=/dict.cc Translation: English to German/dict.cc-käännös englannista saksaksi/hakumuoto=dict.cc:stä käännöstä englannista saksaksi//
=/dict.cc Translation: German to English/dict.cc-käännös saksasta englanniksi/hakumuoto=dict.cc:stä käännöstä saksasta englanniksi//
=/Dictionary of the Galician Academy (RAG)/Galician Akatemian sanakirja (RAG)/hakumuoto=Galician Akatemian sanakirjasta (RAG)//
=/Dictionary of the Spanish Academy (RAE)/Espanjan Akatemian sanakirja (RAE)/hakumuoto=Espanjan Akatemian sanakirjasta (RAE)//
=:Dictionary:Sanakirja:elat=Sanakirjasta:gen=Sanakirjan:yleisnimi=kyllä::
=:digiKam:elat=digiKamista:gen=digiKamin::
=:Digitaalinen kello:Digital Clock:elat=Digitaalisesta kellosta:gen=Digitaalisen kellon:yleisnimi=kyllä::
=/Digital Object Identifier/hakumuoto=Digital Object Identifier -haulla//
=/DjVu Backend/DjVu-taustaosa/elat=DjVu-taustaosasta//
=/DocBook - The Definitive Guide/DocBook The Definitive Guide/hakumuoto=DocBook The Definitive Guide -teoksesta//
=/Dolphin/elat=Dolphinista/gen=Dolphinin//
=/Dragon Player/Dragon-soitin/elat=Dragon-soittimesta/gen=Dragon-soittimen//
=/Duck Duck Go/hakumuoto=Duck Duck Golla//
=/Duck Duck Go -tietohaku/Duck Duck Go Info/hakumuoto=Duck Duck Go -tietohaulla//
=/Duck Duck Go -tuotehaku/Duck Duck Go Shopping/hakumuoto=Duck Duck Go -tuotehaulla//
=/DVI Backend/DVI-taustaosa/elat=DVI-taustaosasta//
=:Eastern US:Itä-Yhdysvallat:elat=Itä-Yhdysvalloista:gen=Itä-Yhdysvaltojen:illat=Itä-Yhdysvaltoihin:iness=Itä-Yhdysvalloissa:part=Itä-Yhdysvaltoja::
=/Ecosia search engine/Ecosia-hakukone/hakumuoto=Ecosia-hakukoneella//
=:Egypt:Egypti:elat=Egyptistä:gen=Egyptin:illat=Egyptiin:iness=Egyptissä:part=Egyptiä::
=:Elämä:Life:elat=Elämästä:gen=Elämän::
=:England:Englanti:elat=Englannista:gen=Englannin:illat=Englantiin:part=Englantia::
=/EPub Backend/EPub-taustaosa/elat=EPub-taustaosasta//
=:Epätarkka kello:Fuzzy Clock:elat=Epätarkasta kellosta:gen=Epätarkan kellon:yleisnimi=kyllä::
=:Esikatselin:Previewer:elat=Esikatselimesta:gen=Esikatselimen:yleisnimi=kyllä::
=:Etelä-Afrikka:South Africa:elat=Etelä-Afrikasta:gen=Etelä-Afrikan:illat=Etelä-Afrikkaan:iness=Etelä-Afrikassa:part=Etelä-Afrikkaa::
=:Etelä-Amerikka:South America:elat=Etelä-Amerikasta:gen=Etelä-Amerikan:illat=Etelä-Amerikkaan:iness=Etelä-Amerikassa:part=Etelä-Amerikkaa::
=/Ethicle/hakumuoto=Ethiclellä//
=:Eurooppa:Europe:elat=Euroopasta:gen=Euroopan:illat=Eurooppaan:iness=Euroopassa:part=Eurooppaa::
=:Eyes:Silmät:elat=Silmistä:gen=Silmien:yleisnimi=kyllä::
=/Facebook/hakumuoto=Facebookista//
=/Feedster/hakumuoto=Feedsterillä//
=/Fiction Book -taustaosa/Fiction Book Backend/elat=Fiction Book -taustaosasta//
=/Fifteen Puzzle/Puzzle 15/elat=Puzzle 15:stä/gen=Puzzle 15:n//
=/Filelight/elat=Filelightista/gen=Filelightin//
=:File Watcher:Tiedostonkatselin:elat=Tiedostonkatselimesta:gen=Tiedostonkatselimen:yleisnimi=kyllä::
=/Flickr Creative Commons/hakumuoto=Flickr Creative Commons -haulla//
=/Flickr/hakumuoto=Flickristä//
=:Flow:elat=Flowsta:gen=Flown::
=:Folder:Kansio:gen=Kansion:yleisnimi=kyllä::
=/Font Viewer/Fonttikatselin/elat=Fonttikatselimesta/gen=Fonttikatselimen//
=:France:Ranska:elat=Ranskasta:gen=Ranskan:illat=Ranskaan:iness=Ranskassa:part=Ranskaa::
=:Freecell:Vapaakenttä:gen=Vapaakentän::
=/Freecode/hakumuoto=Freecodesta//
=/FreeDB/hakumuoto=FreeDB:stä//
=/Free On-Line Dictionary of Computing/hakumuoto=Free On-Line Dictionary of Computing -sanastosta//
=|FSF/UNESCO Free Software Directory|FSF/UNESCO:n vapaiden ohjelmien hakemisto|hakumuoto=FSF/UNESCO:n vapaiden ohjelmien hakemistosta||
=:Gabon:elat=Gabonista:gen=Gabonin:illat=Gaboniin:iness=Gabonissa:part=Gabonia::
=/GitHub/hakumuoto=GitHubista//
=/Gitorious/hakumuoto=Gitoriousista//
=:Golf:gen=Golfin::
=/Google Advanced Search/Googlen tarkennettu haku/hakumuoto=Googlen tarkennetulla haulla//
=/Google Code/hakumuoto=Google Code -haulla//
=/Google/gen=Googlen/hakumuoto=Googlella//
=/Google Groups/Googlen keskusteluryhmät/hakumuoto=Googlen keskusteluryhmistä//
=/Google Image Search/Googlen kuvahaku/hakumuoto=Googlen kuvahaulla//
=/Google (I'm Feeling Lucky)/Google (kokeilen onneani)/hakumuoto=Googlen kokeilen onneani -haulla//
=/Google Maps/Google Maps (kartat)/hakumuoto=Google Mapsista (kartoista)//
=/Google Movies/Googlen elokuvahaku/hakumuoto=Googlen elokuvahaulla//
=/Google News/Googlen uutiset/hakumuoto=Googlen uutisista//
=/Google Shopping/hakumuoto=Google Shoppingilla//
=/Granatier/elat=Granatierista/gen=Granatierin//
=:Grandfather:Isoisä:gen=Isoisän::
=:Grandfather's Clock:Isoisän kello:gen=Isoisän kellon::
=/Great Dictionary of the Catalan Language (GRan Enciclopèdia Catalana)/Katalaanin suuri sanakirja (GRan Enciclopèdia Catalana)/hakumuoto=Katalaanin suuresta sanakirjasta (GRan Enciclopèdia Catalana)//
=/Grid Desktop/Ruudukollinen työpöytä/gen=Ruudukollisen työpöydän//
=:Groenland:Grönlanti:elat=Grönlannista:gen=Grönlannin:illat=Grönlantiin:iness=Grönlannissa:part=Grönlantia::
=/Grouping Desktop/Ryhmitelty työpöytä/gen=Ryhmitellyn työpöydän//
=/Grouping Panel/Ryhmitelty paneeli/gen=Ryhmitellyn paneelin//
=/Gwenview/elat=Gwenviewstä/gen=Gwenviewn//
=:Gypsy:Mustalainen:gen=Mustalaisen::
=/Hakuikkuna/Search Box/elat=Hakuikkunasta/gen=Hakuikkunan//
=:Hard Disk I/O Monitor:Kiintolevyjen käyttöilmaisin:gen=Kiintolevyjen käyttöilmaisimen:yleisnimi=kyllä::
=:Hardware Info:Laitteistotiedot:elat=Laitteistotiedoista:gen=Laitteistotietojen:yleisnimi=kyllä::
=:Homerun:elat=Homerunista:gen=Homerunin::
=:Homerun Kicker:elat=Homerun Kickerista:gen=Homerun Kickerin::
=:Homerun Launcher:Homerun-käynnistin:gen=Homerun-käynnistimen::
=:Hylly:Shelf:elat=Hyllystä:gen=Hyllyn:yleisnimi=kyllä::
=/HyperDictionary.com/hakumuoto=HyperDictionary.com:ista//
=/HyperDictionary.com Thesaurus/HyperDictionary.com-synonyymisanakirja/hakumuoto=HyperDictionary.com-synonyymisanakirjasta//
=:Hämähäkki:Spider:gen=Hämähäkin::
=:Icon:Kuvake:elat=Kuvakkeesta:gen=Kuvakkeen:yleisnimi=kyllä::
=:Icon-Only Task Manager:Kuvaketehtävienhallinta:gen=Kuvaketehtävienhallinnan:yleisnimi=kyllä::
=:Icon View:Kuvakenäkymä:elat=Kuvakenäkymästä:yleisnimi=kyllä::
=/Identi.ca Groups/Identi.ca-ryhmähaku/hakumuoto=Identi.ca-ryhmähaulla//
=/Identi.ca Notices/Identi.ca-tekstihaku/hakumuoto=Identi.ca-tekstihaulla//
=/Identi.ca People/Identi.ca-ihmishaku/hakumuoto=Identi.ca-ihmishaulla//
=/IETF Requests for Comments/IETF-kommenttipyynnöt (RFC)/hakumuoto=IETF-kommenttipyynnöistä (RFC)//
=:Ikkunaluettelo:Window List:elat=Ikkunaluettelosta:gen=Ikkunaluettelon:yleisnimi=kyllä::
=/Ikkunasääntöjen asetusosio/Window-Specific Settings Configuration Module/elat=Ikkunasääntöjen asetusosiosta//
=/Ikkunoiden kehysten asetukset/Window Decoration Control Module/elat=Ikkunoiden kehysten asetuksista//
=:Ilmoitusalue:System Tray:elat=Ilmoitusalueesta:gen=Ilmoitusalueen:yleisnimi=kyllä::
=/Image Backend/Kuvataustaosa/elat=Kuvataustaosasta//
=:India:Intia:elat=Intiasta:gen=Intian:illat=Intiaan:iness=Intiassa:part=Intiaa::
=:Indonesia:elat=Indonesiasta:gen=Indonesian:illat=Indonesiaan:iness=Indonesiassa:part=Indonesiaa::
=:Input Method Panel:Syötemenetelmäpaneeli:elat=Syötemenetelmäpaneelista:gen=Syötemenetelmäpaneelin:yleisnimi=kyllä::
=:Instant Messaging Contact List:Pikaviestinnän yhteystietoluettelo:gen=Pikaviestinnän yhteystietoluettelon:yleisnimi=kyllä::
=:Instant Messaging Presence:Pikaviestinnän läsnäolo:gen=Pikaviestinnän läsnäolon:yleisnimi=kyllä::
=/Internet Book List/hakumuoto=Internet Book Listista//
=/Internet Movie Database/hakumuoto=Internet Movie Databasesta//
=:Iran:elat=Iranista:gen=Iranin:illat=Iraniin:iness=Iranissa:part=Irania::
=:Island:Islanti:elat=Islannista:gen=Islannin:illat=Islantiin:iness=Islannissa:part=Islantia::
=:Italia:Italy:elat=Italiasta:gen=Italian:illat=Italiaan:iness=Italiassa:part=Italiaa::
=/Jamendo/hakumuoto=Jamendosta//
=:Japan:Japani:elat=Japanista:gen=Japanin:illat=Japaniin:iness=Japanissa:part=Japania::
=:Jovie:elat=Joviesta:gen=Jovien::
=/JuK/elat=JuKista/gen=JuKin//
=:Järjestelmäasetukset:System Settings:elat=Järjestelmäasetuksista:gen=Järjestelmäasetusten:yleisnimi=kyllä::
=:Järjestelmäkuorman valvonta:System Load Viewer:elat=Järjestelmäkuorman valvonnasta:gen=Järjestelmäkuorman valvonnan:yleisnimi=kyllä::
=/Järjestelmän valvonta/System Monitor/elat=Järjestelmän valvonnasta/gen=Järjestelmän valvonnan//
=:Jätä viesti:Leave A Note:elat=Viestinjättämissovelmasta:gen=Viestinjättämissovelman:yleisnimi=kyllä::
=/K3b/elat=K3b:stä/gen=K3b:n//
=/KAddressBook/elat=KAddressBookista/gen=KAddressBookin//
=:Kaffeine:elat=Kaffeinesta:gen=Kaffeinen::
=/Kajongg/elat=Kajonggista/gen=Kajonggin//
=/KAlarm/elat=KAlarmista/gen=KAlarmin//
=:KAlgebra:elat=KAlgebrasta:gen=KAlgebran::
=/Kalzium concentration Calculator/Kalziumin konsentraatiolaskin/gen=Kalziumin konsentraatiolaskimen//
=/Kalzium/elat=Kalziumista/gen=Kalziumin//
=/Kalzium gas Calculator/Kalziumin kaasulaskin/gen=Kalziumin kaasulaskimen//
=/Kanagram/elat=Kanagramista/gen=Kanagramin//
=/Kapman/elat=Kapmanista/gen=Kapmanin//
=/Karbon/elat=Karbonista/gen=Karbonin//
=:Kartesio:elat=Kartesiosta:gen=Kartesion::
=/Kate/elat=Katesta/gen=Katen//
=/Kate Part/Kate-osa/elat=Kate-osasta//
=/Kate Session Applet/Kate-istuntosovelma/elat=Kate-istuntosovelmasta/gen=Kate-istuntosovelman//
=/KAtomic/elat=KAtomicista/gen=KAtomicin//
=:Kazakstan:elat=Kazakstanista:gen=Kazakstanin:illat=Kazakstaniin:iness=Kazakstanissa:part=Kazakstania::
=:KBibTeX:elat=KBibTeXistä:gen=KBibTeXin::
=/KBlackBox/elat=KBlackBoxista/gen=KBlackBoxin//
=/KBlocks/elat=KBlocksista/gen=KBlocksin//
=/KBounce/elat=KBouncesta/gen=KBouncen//
=/KBreakOut/elat=KBreakOutista/gen=KBreakOutin//
=/KBruch/elat=KBruchista/gen=KBruchin//
=/KCachegrind/elat=KCachegrindistä/gen=KCachegrindin//
=/KCalc/elat=KCalcista/gen=KCalcin//
=/KCharSelect/elat=KCharSelectistä/gen=KCharSelectin//
=:KColorEdit:elat=KColorEditistä:gen=KColorEditin::
=/KDE Accessibility Tool/KDE:n esteettömyystyökalu/elat=KDE:n esteettömyystyökalusta/gen=KDE:n esteettömyystyökalun//
=/KDE API Documentation/KDE:n API-dokumentaatio/hakumuoto=KDE:n API-dokumentaatiosta//
=/KDE App -haku/KDE App Search/hakumuoto=KDE App -haulla//
=/KDE Bell Control Module/KDE:n äänimerkin asetusmoduuli/elat=KDE:n äänimerkin asetusmoduulista//
=/KDE Bug Database Bug Number Search/KDE-vikailmoitustietokannan numerohaku/hakumuoto=KDE-vikailmoitustietokannan numerohaulla//
=/KDE Bug Database Fulltext Search/KDE-vikailmoitustietokannan tekstihaku/hakumuoto=KDE-vikailmoitustietokannan tekstihaulla//
=/KDE Clock Control Module/KDE:n kelloasetukset/elat=KDE:n kelloasetuksista//
=/KDE Desktop Theme Module/KDE:n työpöytäteeman asetukset/elat=KDE:n työpöytäteeman asetuksista//
=/KDE Forums/KDE:n foorumit/hakumuoto=KDE:n foorumeilta//
=/KDE Hotkeys Configuration Module/KDE Hotkeys-asetusosio/elat=KDE Hotkeys-asetusosiosta//
=/KDE Info Center/KDE:n tietokeskus/elat=KDE:n tietokeskuksesta/gen=KDE:n tietokeskuksen//
=/KDE Joystick Control Module/Peliohjainten hallinta/elat=Peliohjainten hallinnasta//
=/KDE Keyboard Control Module/KDE:n näppäimistöasetukset/elat=KDE:n näppäimistöasetuksista/gen=KDE:n näppäimistöasetusten//
=/KDE Look/hakumuoto=KDE Lookista//
=/KDE Menu Editor/KDE:n valikkomuokkain/elat=KDE:n valikkomuokkaimesta/gen=KDE:n valikkomuokkaimen//
=/KDE:n ajankäytön seurantatyökalu/KTimeTracker/elat=KDE:n ajankäytön seurantatyökalusta/gen=KDE:n ajankäytön seurantatyökalun//
=:Kdenlive:elat=Kdenlivestä:gen=Kdenliven::
=:KDE Observatory:KDE-observatorio:elat=KDE-observatoriosta:gen=KDE-observatorion::
=/KDE Projects/hakumuoto=KDE Projectsista//
=/KDE Resources configuration module/KDE:n resurssimääritysosio/elat=KDE:n resurssimääritysosiosta//
=/KDE Screen Ruler/KDE-viivain/elat=KDE-viivaimesta/gen=KDE-viivaimen//
=/KDE Style Module/KDE:n tyyliosio/elat=KDE:n tyyliosiosta//
=/KDE TechBase/KDE:n TechBase/hakumuoto=KDE:n TechBasesta//
=:KDE Telepathy -yhteystietoluettelo:KDE Telepathy Contact List:elat=KDE Telepathy -yhteystietoluettelosta:gen=KDE Telepathy -yhteystietoluettelon::
=/KDE UserBase/KDE:n UserBase/hakumuoto=KDE:n UserBasesta//
=/KDevelop/elat=KDevelopista/gen=KDevelopin/part=KDevelopia//
=/KDevelop Platform/KDevelop-alusta/elat=KDevelop-alustasta//
=/KDE Wallet Control Module/KDE-lompakon asetusosio/elat=KDE-lompakon asetusosiosta//
=/KDE Wallet Manager/KDE:n lompakonhallinta/elat=KDE:n lompakonhallinnasta/gen=KDE:n lompakonhallinnan//
=/KDiamond/elat=KDiamondista/gen=KDiamondin//
=/kdiff3/elat=kdiff3:sta/gen=kdiff3:n//
=/KDiskFree/elat=KDiskFreestä/gen=KDiskFreen//
=:Kexi:elat=Kexistä:gen=Kexin::
=:Keyboard:Näppäimistö:elat=Näppäimistösovelmasta:gen=Näppäimistösovelman:yleisnimi=kyllä::
=/KFileReplace/elat=KFileReplacesta/gen=KFileReplacen//
=:KFind:elat=KFindista:gen=KFindin::
=/KFloppy/elat=KFloppystä/gen=KFloppyn//
=/KFourInLine/Neljän suora/elat=Neljän suorasta/gen=Neljän suoran//
=/KGeography/elat=KGeographystä/gen=KGeographyn//
=/KGet Barchart Applet/KGetin pylväskaaviosovelma/elat=KGetin pylväskaaviosovelmasta/gen=KGetin pylväskaaviosovelman//
=/KGet/elat=KGetistä/gen=KGetin//
=/KGet Panelbar Applet/KGetin paneelisovelma/elat=KGetin paneelisovelmasta/gen=KGetin paneelisovelman//
=/KGet Piechart Applet/KGetin piirakkakaaviosovelma/elat=KGetin piirakkakaaviosovelmasta/gen=KGetin piirakkakaaviosovelman//
=/KGoldrunner/elat=KGoldrunnerista/gen=KGoldrunnerin//
=/KGpg/Kgpg/elat=KGpg:stä/gen=KGpg:n//
=/KHangMan/elat=KHangManista/gen=KHangManin//
=/Kig/elat=Kigistä/gen=Kigin//
=/Kigo/elat=Kigosta/gen=Kigon//
=/Kile/elat=Kilestä/gen=Kilen//
=/Killbots/elat=Killbotsista/gen=Killbotsin//
=/KImageMapEditor/elat=KImageMapEditorista/gen=KImageMapEditorin//
=:KIMToy:elat=KIMToysta:gen=KIMToyn::
=/Kiriki/elat=Kirikistä/gen=Kirikin//
=/Kiten/elat=Kitenistä/gen=Kitenin//
=:Kitenin kanjiselain:kitenkanjibrowser:elat=Kitenin kanjiselaimesta:gen=Kitenin kanjiselaimen::
=/Kitenin radikaalivalitsin/kitenradselect/elat=Kitenin radikaalivalitsimesta/gen=Kitenin radikaalivalitsimen//
=/KJots/elat=KJotsista/gen=KJotsin//
=/KJumpingCube/elat=KJumpingCubesta/gen=KJumpingCuben//
=/Kleopatra/elat=Kleopatrasta/gen=Kleopatran//
=/KLettres/elat=KLettresistä/gen=KLettresin//
=/Klickety/elat=Klicketystä/gen=Klicketyn//
=/KLinkStatus/elat=KLinkStatuksesta/gen=KLinkStatuksen//
=/Klipper/elat=Klipperistä/gen=Klipperin//
=:Klondike:gen=Klondiken::
=/KMagnifier/elat=KMagnifierista/gen=KMagnifierin//
=/KMahjongg/elat=KMahjonggista/gen=KMahjonggin//
=/KMail/elat=KMailista/gen=KMailin//
=/KMines/elat=KMinesista/gen=KMinesin//
=/KMix/elat=KMixistä/gen=KMixin//
=/KMouseTool/elat=KMouseToolista/gen=KMouseToolin//
=/KMouth/elat=KMouthista/gen=KMouthin//
=/KmPlot/elat=KmPlotista/gen=KmPlotin//
=/KNetWalk/elat=KNetWalkista/gen=KNetWalkin//
=:Knights:elat=Knightsista:gen=Knightsin::
=/KNode/elat=KNodesta/gen=KNoden//
=/KNotes/elat=KNotesista/gen=KNotesin//
=/Kolf/elat=Kolfista/gen=Kolfin//
=/Kollision/elat=Kollisionista/gen=Kollisionin//
=/Kolor Lines/elat=Kolor Linesista/gen=Kolor Linesin//
=/KolourPaint/elat=KolourPaintista/gen=KolourPaintin//
=/Kommander/elat=Kommanderista/gen=Kommanderin//
=/Kompare/elat=Komparesta/gen=Komparen//
=:Konekirjoituksen harjoitteluohjelma:Typewriting Trainer:elat=Konekirjoituksen harjoitteluohjelmasta:gen=Konekirjoituksen harjoitteluohjelman:yleisnimi=kyllä::
=/Konqueror/elat=Konquerorista/gen=Konquerorin//
=:Konqueror Profiles:Konqueror-profiilit:elat=Konqueror-profiilisovelmasta:gen=Konqueror-profiilisovelman::
=/Konquest/elat=Konquestista/gen=Konquestin//
=/Konsole/elat=Konsolesta/gen=Konsolen//
=:Konsole Profiles:Konsole-profiilit:elat=Konsole-profiilisovelmasta:gen=Konsole-profiilisovelman::
=/Kontact/elat=Kontactista/gen=Kontactin//
=/Konversation/elat=Konversationista/gen=Konversationin//
=/Kopete/elat=Kopetesta/gen=Kopeten/illat=Kopeteen//
=/KOrganizer/elat=KOrganizerista/gen=KOrganizerin//
=/KPatience/elat=KPatiencesta/gen=KPatiencen//
=:KPhotoAlbum:elat=KPhotoAlbumista:gen=KPhotoAlbumin::
=/KPPP/elat=KPPP:stä/gen=KPPP:n//
=/KRDC/elat=KRDC:stä/gen=KRDC:n//
=:Krecipes:elat=Krecipesista:gen=Krecipesin::
=/KReversi/elat=KReversistä/gen=KReversin//
=:Krita:elat=Kritasta:gen=Kritan::
=:Kronometer:elat=Kronometeristä:gen=Kronometerin::
=:Krusader:elat=Krusaderista:gen=Krusaderin::
=/KsCD/gen=KsCD:stä//
=:KsirK:elat=KsirKistä:gen=KsirKin::
=/KSnakeDuel/elat=KSnakeDuelista/gen=KSnakeDuelin//
=/KSnapshot/elat=KSnapshotista/gen=KSnapshotin//
=/KSpaceDuel/elat=KSpaceDuelista/gen=KSpaceDuelin//
=/KSquares/elat=KSquaresista/gen=KSquaresin//
=/KStars/elat=KStarsista/gen=KStarsin//
=/KSudoku/elat=KSudokusta/gen=KSudokun//
=/KSystemlog/elat=KSystemlogista/gen=KSystemlogin//
=/KTeaTime/elat=KTeaTimesta/gen=KTeaTimen//
=/KTimer/elat=KTimerista/gen=KTimerin//
=:KTnef:elat=KTnefistä:gen=KTnefin::
=:KTorrent:elat=KTorrentista:gen=KTorrentin::
=/KTuberling/elat=KTuberlingista/gen=KTuberlingin//
=/KTurtle/elat=KTurtlesta/gen=KTurtlen//
=/KTux/elat=KTuxista/gen=KTuxin//
=/Kubrick/elat=Kubrickista/gen=Kubrickin//
=/KUIViewer/elat=KUIVieweristä/gen=KUIViewerin//
=/KUser/elat=KUserista/gen=KUserin//
=:Kuvakehys:Picture Frame:elat=Kuvakehyksestä:gen=Kuvakehyksen:yleisnimi=kyllä::
=/KWatchGnuPG/gen=KWatchGnuPG:stä//
=/KWordQuiz/elat=KWordQuizistä/gen=KWordQuizin//
=/KWrite/elat=KWritesta/gen=KWriten//
=:Käännin:Translator:elat=Kääntimestä:gen=Kääntimen:yleisnimi=kyllä::
=/LabPlot2/elat=LabPlot2:sta/gen=LabPlot2:n//
=/Lancelot/elat=Lancelotista/gen=Lancelotin//
=:Lancelot Launcher:Lancelot-käynnistin:elat=Lancelot-käynnistimestä:gen=Lancelot-käynnistimen::
=/Latest Qt Online Documentation/Uusin Qt-dokumentaatio/hakumuoto=uusimmasta Qt-dokumentaatiosta//
=:LCD Weather Station:LCD-sääasema:elat=LCD-sääasemasta:gen=LCD-sääaseman::
=:LCD Weather Station (QML):LCD-sääasema (QML):elat=LCD-sääasemasta (QML):gen=LCD-sääaseman (QML)::
=/LEO - Translate Between French and German/LEO käännös ranskasta saksaan/hakumuoto=LEO:sta käännöstä ranskasta saksaan//
=/LEO - Translate Between German and French/LEO käännös saksasta ranskaan/hakumuoto=LEO:sta käännöstä saksasta ranskaan//
=/LEO-Translate/LEO-käännös/hakumuoto=LEO-käännöshaulla//
=/Lokalize/elat=Lokalizesta/gen=Lokalizen//
=/LSkat/elat=LSkatista/gen=LSkatin//
=/Luna/elat=Lunasta/gen=Lunan//
=:Lähi-itä:Middle East:elat=Lähi-idästä:gen=Lähi-idän:illat=Lähi-itään:part=Lähi-itää::
=:Länsi-Australia:Occidental Australia:elat=Länsi-Australiasta:gen=Länsi-Australian:illat=Länsi-Australiaan:iness=Länsi-Australiassa:part=Länsi-Australiaa::
=:Länsi-Yhdysvallat:Western US:elat=Länsi-Yhdysvalloista:gen=Länsi-Yhdysvaltojen:illat=Länsi-Yhdysvaltoihin:iness=Länsi-Yhdysvalloissa:part=Länsi-Yhdysvaltoja::
=/Maailmankello/World Clock/gen=Maailmankellon//
=:Madagascar:Madagaskar:elat=Madagaskarista:gen=Madagaskarin:illat=Madagaskariin:iness=Madagaskarissa:part=Madagaskaria::
=/Magnatune/hakumuoto=Magnatunesta//
=:Magnifique:Suurennuslasi:elat=Suurennuslasista:gen=Suurennuslasin:yleisnimi=kyllä::
=/Marble Virtual Globe/Marble-maapallo/elat=Marble-maapallosta/gen=Marble-maapallon//
=/Massif Visualizer/Massif-visualisointi/elat=Massif-visualisoinnista/gen=Massif-visualisoinnin//
=:Media Player:Mediasoitin:elat=Mediasoittimesta:gen=Mediasoittimen:yleisnimi=kyllä::
=:Meksiko:Mexico:elat=Meksikosta:gen=Meksikon:illat=Meksikoon:iness=Meksikossa:part=Meksikoa::
=/Meritaistelu/Naval Battle/elat=Meritaistelusta/gen=Meritaistelun//
=/Merriam-Webster Dictionary/MerriamWebster-sanakirja/hakumuoto=MerriamWebster-sanakirjasta//
=/Merriam-Webster Thesaurus/MerriamWebster-synonyymit/hakumuoto=MerriamWebster-synonyymihaulla//
=:Messageviewer Header Theme Editor:Viestikatselimen otsaketeemamuokkain:elat=Viestikatselimen otsaketeemamuokkaimesta:gen=Viestikatselimen otsaketeemamuokkaimen::
=/MetaCrawler/hakumuoto=MetaCrawlerilla//
=:Microblogging:Mikroblogaussovelma:elat=Mikroblogaussovelmasta:gen=Mikroblogaussovelman:yleisnimi=kyllä::
=/Microsoft Developer Network -haku/Microsoft Developer Network Search/hakumuoto=Microsoft Developer Network -haulla//
=/Mod3/gen=Mod3:n//
=/Molar mass calculator/Moolimassalaskin/gen=Moolimassalaskimen//
=:Mongolia:elat=Mongoliasta:gen=Mongolian:illat=Mongoliaan:iness=Mongoliassa:part=Mongoliaa::
=:Muistilappu:Notes:gen=Muistilapun:yleisnimi=kyllä::
=/Multitran - Translate Between Dutch and Russian/Multitran käännä hollannista venäjään/hakumuoto=Multitranista käännöstä hollannista venäjään//
=/Multitran - Translate Between English and Russian/Multitran käännä englannista venäjään/hakumuoto=Multitranista käännöstä englannista venäjään//
=/Multitran - Translate Between French and Russian/Multitran käännä ranskasta venäjään/hakumuoto=Multitranista käännöstä ranskasta venäjään//
=/Multitran - Translate Between German and Russian/Multitran käännä saksasta venäjään/hakumuoto=Multitranista käännöstä saksasta venäjään//
=/Multitran - Translate Between Italian and Russian/Multitran käännä italiasta venäjään/hakumuoto=Multitranista käännöstä italiasta venäjään//
=/Multitran - Translate Between Spanish and Russian/Multitran käännä espanjasta venäjään/hakumuoto=Multitranista käännöstä espanjasta venäjään//
=:Muon Discover:elat=Muon Discoverista:gen=Muon Discoverin::
=/Muon Package Manager/Muon-paketinhallinta/elat=Muon-paketinhallinnasta/gen=Muon-paketinhallinnan//
=/Muon Software Center/Muon-sovellusvalikoima/elat=Muon-sovellusvalikoimasta/gen=Muon-sovellusvalikoiman//
=:Muon Update Manager:Muon-päivitystenhallinta:elat=Muon-päivitystenhallinnasta:gen=Muon-päivitystenhallinnan::
=:Nepomuk Shell:Nepomuk-kuori:elat=Nepomuk-kuoresta:gen=Nepomuk-kuoren::
=/Netcraft/hakumuoto=Netcraftistä//
=:Network Management:Verkonhallinta:gen=Verkonhallinnan:yleisnimi=kyllä::
=:New South Wales:Uusi Etelä-Wales:elat=Uudesta Etelä-Walesista:gen=Uuden Etelä-Walesin:illat=Uuteen Etelä-Walesiin:iness=Uudessa Etelä-Walesissa:part=Uutta Etelä-Walesia::
=/Newspaper Layout/Sanomalehtiasettelu/elat=Sanomalehtiasettelusta/gen=Sanomalehtiasettelun//
=:News:Uutiset:elat=Uutissovelmasta:gen=Uutisten:yleisnimi=kyllä::
=:New Zealand:Uusi-Seelanti:elat=Uudesta-Seelannista:gen=Uuden-Seelannin:illat=Uuteen-Seelantiin:iness=Uudessa-Seelannissa:part=Uutta-Seelantia::
=:Niger:elat=Nigeristä:gen=Nigerin:illat=Nigeriin:iness=Nigerissä:part=Nigeriä::
=:North America:Pohjois-Amerikka:elat=Pohjois-Amerikasta:gen=Pohjois-Amerikan:illat=Pohjois-Amerikkaan:iness=Pohjois-Amerikassa:part=Pohjois-Amerikkaa::
=:Oikoluku:Spell Check:elat=Oikoluvusta:gen=Oikoluvun:yleisnimi=kyllä::
=/Okteta/elat=Oktetasta/gen=Oktetan//
=/Okular/elat=Okularista/gen=Okularin//
=:Ontario:elat=Ontariosta:gen=Ontarion:illat=Ontarioon:iness=Ontariossa:part=Ontariota::
=/openDesktop.org/hakumuoto=openDesktop.org-haulla//
=/Open Directory/hakumuoto=Open Directorystä//
=/OpenDocument Text -taustaosa/OpenDocument Text Backend/elat=OpenDocument Text -taustaosasta//
=/OpenPGP Key Search/OpenPGP-avainhaku/hakumuoto=OpenPGP-avainhaulla//
=:Pacific:Tyynimeri:elat=Tyynestämerestä:gen=Tyynenmeren:illat=Tyyneenmereen:iness=Tyynellämerellä:part=Tyyntämerta::
=:Pager (QML):Sivutin (QML):elat=Sivuttimesta:gen=Sivuttimen:yleisnimi=kyllä::
=:Pager:Sivutin:elat=Sivuttimesta:gen=Sivuttimen:yleisnimi=kyllä::
=:Pairs Editor:Pairs-muokkain:elat=Pairs-muokkaimesta:gen=Pairs-muokkaimen::
=:Pakistan:elat=Pakistanista:gen=Pakistanin:illat=Pakistaniin:iness=Pakistanissa:part=Pakistania::
=/Palapeli/elat=Palapelistä/gen=Palapelin//
=:Paneeli:Panel:gen=Paneelin:yleisnimi=kyllä::
=:Paneelivälilevy:Panel Spacer:elat=Paneelivälilevystä:gen=Paneelivälilevyn:yleisnimi=kyllä::
=:Papouasie:Papua:elat=Papuasta:gen=Papuan:illat=Papuaan:iness=Papuassa:part=Papuaa::
=:Paraguay:elat=Paraguaysta:gen=Paraguayn:illat=Paraguayhin:iness=Paraguayssa:part=Paraguayta::
=/Parley/elat=Parleystä/gen=Parleyn//
=:Pastebin:elat=Pastebinistä:gen=Pastebinin:yleisnimi=kyllä::
=/PDF Backend/PDF-taustaosa/elat=PDF-taustaosasta//
=/PHP Search/PHP-haku/hakumuoto=PHP-haulla//
=:Picmi:elat=Picmistä:gen=Picmin::
=:Pikakäynnistin:Quicklaunch:elat=Pikakäynnistimestä:gen=Pikakäynnistimen:yleisnimi=kyllä::
=:Plan:elat=Planista:gen=Planin::
=:Plan WorkPackage Handler:Plan-työpakettien käsittelijä:elat=Plan-työpakettien käsittelijästä:gen=Plan-työpakettien käsittelijän::
=:Plasma Desktop Shell:Plasma-työpöytäkuori:gen=Plasma-työpöytäkuoren::
=/Plasma-taustakuvakatselin/Viewer for Plasma wallpapers/elat=Plasma-taustakuvakatselimesta/gen=Plasma-taustakuvakatselimen//
=/Plucker Document Backend/Plucker-taustaosa/elat=Plucker-taustaosasta//
=:Preussi:Prussia:elat=Preussista:gen=Preussin:illat=Preussiin:iness=Preussissa:part=Preussia::
=/PS Backend/PS-taustaosa/elat=PS-taustaosasta//
=/Puhelinluettelohaku/Telephonebook Search Provider/hakumuoto=puhelinluettelohaulla//
=/Puhesyntetisaattorin hallinta/Text-to-Speech Control Module/elat=Puhesyntetisaattorin hallinnasta//
=:Puunäkymä:Tree View:elat=Puunäkymästä:yleisnimi=kyllä::
=/Python Reference Manual/hakumuoto=Python Reference Manualista//
=/QRZ.com Callsign Database/QRZ.com-kutsumerkkitietokanta/hakumuoto=QRZ.com-kutsumerkkitietokannasta//
=/Qt4 Documentation/Qt4-dokumentaatio/hakumuoto=Qt4-dokumentaatiosta//
=:Quebec:elat=Quebecistä:gen=Quebecin:illat=Quebeciin:iness=Quebecissä:part=Quebeciä::
=/Qwant/hakumuoto=Qwantilla//
=/Qwant Images/Qwant-kuvahaku/hakumuoto=Qwant-kuvahaulla//
=/Qwant News/Qwant-uutiset/hakumuoto=Qwant-uutisista//
=/Qwant Shopping/Qwant-tuotehaku/hakumuoto=Qwant-tuotehaulla//
=/Qwant Social/hakumuoto=Qwant Socialista//
=/Qwant Videos/Qwant-videohaku/hakumuoto=Qwant-videohaulla//
=/rekonq/elat=rekonqista/gen=rekonqin//
=/Rocs/elat=Rocsista/gen=Rocsin//
=:Roskakori:Trashcan:elat=Roskakorista:gen=Roskakorin:yleisnimi=kyllä::
=/RPM-Find/RPM-haku/hakumuoto=RPM-haulla//
=/Ruby Application Archive/Ruby-sovellusarkisto/hakumuoto=Ruby-sovellusarkistosta//
=:Russia:Venäjä:elat=Venäjältä:gen=Venäjän:illat=Venäjälle:iness=Venäjällä:part=Venäjää::
=:SameGame:elat=SameGamesta:gen=SameGamen::
=:Scandinavia:Skandinavia:elat=Skandinaviasta:gen=Skandinavian:illat=Skandinaviaan:iness=Skandinaviassa:part=Skandinaviaa::
=/Shisen-Sho/elat=Shisen-Shosta/gen=Shisen-Shon//
=:Siberia:Siperia:elat=Siperasta:gen=Siperian:illat=Siperiaan:iness=Siperiassa:part=Siperiaa::
=:Simon:elat=Simonista:gen=Simonin::
=:Simple Simon:Yksinkertainen Simon:gen=Yksinkertaisen Simonin::
=:Social News:Sosiaaliset uutiset:gen=Sosiaalisten uutisten:yleisnimi=kyllä::
=/Solid Device Actions Editor/Solid-laitetoimintojen editori/elat=Solid-laitetoimintojen editorista//
=/SourceForge/hakumuoto=SourceForgesta//
=/Sovelmakojelauta/Widget Dashboard/elat=Sovelmakojelaudasta/gen=Sovelmakojelaudan//
=/SSL Configuration Module/SSL-asetusosio/elat=SSL-asetusosiosta//
=:Stage:elat=Stagesta:gen=Stagen::
=:Step:elat=Stepistä:gen=Stepin::
=:Storage Service Manager:Tallennuspalvelun hallinta:elat=Tallennuspalvelun hallinnasta:gen=Tallennuspalvelun hallinnan:yleisnimi=kyllä::
=/Sweeper/elat=Sweeperistä/gen=Sweeperin//
=:Sääennuste (QML):Weather Forecast (QML):elat=Sääennusteesta (QML):gen=Sääennusteen (QML):yleisnimi=kyllä::
=:Sääennuste:Weather Forecast:elat=Sääennusteesta:gen=Sääennusteen:yleisnimi=kyllä::
=:Task Manager:Tehtävienhallinta:elat=Tehtävienhallinnasta:gen=Tehtävienhallinnan:yleisnimi=kyllä::
=/Technorati/hakumuoto=Technoratista//
=/Technorati Tags/Technorati-tunnisteet/hakumuoto=Technorati-tunnistehaulla//
=/Teletekst Search Provider/Teleteksti-palveluntarjoaja/hakumuoto=Teleteksti-palveluntarjoajalta//
=/TIFF Backend/TIFF-taustaosa/elat=TIFF-taustaosasta//
=/TV Tome/hakumuoto=TV Tome -haulla//
=:TXT-taustaosa:Txt Backend:elat=TXT-taustaosasta::
=/Umbrello UML Modeller/Umbrello UML-mallinnus/elat=Umbrello UML-mallinnuksesta/gen=Umbrello UML-mallinnuksen//
=:Unit Converter:Yksikkömuunnin:elat=Yksikkömuuntimesta:gen=Yksikkömuuntimen:yleisnimi=kyllä::
=:United States:Yhdysvallat:elat=Yhdysvalloista:gen=Yhdysvaltojen:illat=Yhdysvaltoihin:iness=Yhdysvalloissa:part=Yhdysvaltoja::
=/Urban Dictionary/hakumuoto=Urban Dictionarysta//
=/U.S. Patent Database/Yhdysvaltojen patenttitietokanta/hakumuoto=Yhdysvaltojen patenttitietokannasta//
=:Verkkoselain:Web Browser:elat=Verkkoselaimesta:gen=Verkkoselaimen:yleisnimi=kyllä::
=:Vietnam:elat=Vietnamista:gen=Vietnamin:illat=Vietnamiin:iness=Vietnamissa:part=Vietnamia::
=/Vimeo/hakumuoto=Vimeosta//
=/Voila/hakumuoto=Voilalla//
=/Web Slice/Web-siivu/elat=Web-siivusta/gen=Web-siivun//
=/Wikia/hakumuoto=Wikiasta//
=/Wikipedia - The Free Encyclopedia/Wikipedia, vapaa tietosanakirja/hakumuoto=Wikipediasta, vapaasta tietosanakirjasta//
=/Wikisanakirja, vapaa sanakirja/Wiktionary - The Free Dictionary/hakumuoto=Wikisanakirjasta, vapaasta sanakirjasta//
=/Wolfram Alpha/hakumuoto=Wolfram Alphasta//
=/WordReference.com English Dictionary/WordReference.comin englannin kielen sanasto/hakumuoto=WordReference.comin englannin kielen sanastosta//
=/WordReference.com Translation: English to French/WordReference.com-käännös englannista ranskaksi/hakumuoto=WordReference.com-käännöstä englannista ranskaksi//
=/WordReference.com Translation: English to Italian/WordReference.com-käännös englannista italiaksi/hakumuoto=WordReference.com-käännöstä englannista italiaksi//
=/WordReference.com Translation: English to Spanish/WordReference.com-käännös englannista espanjaksi/hakumuoto=WordReference.com-käännöstä englannista espanjaksi//
=/WordReference.com Translation: French to English/WordReference.com-käännös ranskasta englanniksi/hakumuoto=WordReference.com-käännöstä ranskasta englanniksi//
=/WordReference.com Translation: Italian to English/WordReference.com-käännös italiasta englanniksi/hakumuoto=WordReference.com-käännöstä italiasta englanniksi//
=/WordReference.com Translation: Spanish to English/WordReference.com-käännös espanjasta englanniksi/hakumuoto=WordReference.com-käännöstä espanjasta englanniksi//
=/XPS Backend/XPS-taustaosa/elat=XPS-taustaosasta//
=/Yahoo/hakumuoto=Yahoosta//
=/Yahoo Images/Yahoon kuvahaku/hakumuoto=Yahoon kuvahaulla//
=/Yahoo Local/Yahoon paikallishaku/hakumuoto=Yahoon paikallishaulla//
=/Yahoo Shopping/Yahoon tuotehaku/hakumuoto=Yahoon tuotehaulla//
=/Yahoo Video/Yahoon videohaku/hakumuoto=Yahoon videohaulla//
=/YouTube/hakumuoto=YouTubesta//
=:Yukon:gen=Yukonin::
=:Zair:Zaire:elat=Zairesta:gen=Zairen:illat=Zaireen:iness=Zairessa:part=Zairea::
=:Zanshin Todo:Zanshin-tehtävät:elat=Zanshin-tehtävistä:gen=Zanshin-tehtävien::

View file

@ -1,169 +0,0 @@
function commonNameToLowerFirst(phr) {
var str = Ts.subs(0);
var pval = Ts.getProp(str, "yleisnimi");
if (pval == "kyllä") {
return Ts.toLowerFirst(phr);
}
else {
return phr;
}
}
Ts.setcall("yleisnimi_pienellä", commonNameToLowerFirst);
// Converts the first character in the string to lower case
function toLowerFirst(str)
{
return Ts.toLowerFirst(str);
}
Ts.setcall("pieni_alkukirjain", toLowerFirst);
function conditionalHyphen(str1, str2)
{
var spaceBeforeHyphen = false;
if (str1.indexOf(' ') != -1) {
spaceBeforeHyphen = true;
// Simple logic for detecting if str1 consists of only an HTML 'a' tag
// In that case only check for user visible whitespaces inside the tag.
// This is to prevent "foo -bar" behaviour when "foo-bar" is wanted.
// This obviously catches only the most basic cases.
// Also it is assumed that this kind of link string is never used as
// the first parameter to this function if it is meant to be displayed
// as plain text (i.e. not as a link).
if (str1.length > 4 && str1[0] == '<' && str1[1] == 'a' && str1[2] == ' ') {
var tagEnd = str1.indexOf('>', 3);
if (tagEnd != -1) {
var textStart = tagEnd + 1;
var endTagStart = str1.indexOf('<', textStart);
if (endTagStart != -1 && str1.length == endTagStart+4 &&
str1[endTagStart+1] == '/' &&
str1[endTagStart+2] == 'a' && str1[endTagStart+3] == '>')
{
str1Text = str1.substring(textStart, endTagStart-1);
if (str1Text.indexOf(' ') != -1) {
spaceBeforeHyphen = true;
}
else {
spaceBeforeHyphen = false;
}
}
}
}
}
if (spaceBeforeHyphen) {
return str1 + " -" + str2;
} else {
return str1 + "-" + str2;
}
}
Ts.setcall("yhdysmerkki", conditionalHyphen);
// 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("aseta", setMsgstrProps);
// NOTE: You can replace "aseta" in the line above with any UTF-8 string,
// e.g. one in your language so that it blends nicely inside POs.
// The following things are copied from the croation kdelibs4.js and used for
// noun cases
// ------------------------------
// Create a scripting call linked to property key in pmaps.
// If the call name starts with lowercase letter,
// another call with the first letter in uppercase will be defined,
// which will upcase the first letter in the property value before
// returning it.
function create_pgetter (cname, pkey)
{
if (!Ts.hascall(cname)) {
Ts.setcall(cname,
function (phr) {
if (this.pkey.constructor == Array) {
for (var i = 0; i < this.pkey.length; ++i) {
var pval = Ts.getProp(phr, this.pkey[i]);
if (pval != undefined) {
return pval;
}
}
return undefined;
} else {
return Ts.getProp(phr, this.pkey);
}
},
{"pkey" : pkey});
cname_uc = Ts.toUpperFirst(cname);
if (cname_uc != cname) {
Ts.setcall(cname_uc,
function (phr) {
return Ts.toUpperFirst(Ts.acall(this.cname_lc, phr));
},
{"cname_lc" : cname});
}
}
}
// ------------------------------
// Predefined property getters.
// Call names with corresponding pmap keys for predefined getters.
// The first letter in the call name should be in lowercase;
// see the comment to create_pgetter() function for the reason.
var call_name_to_prop = {
"nom" : "nom", // nominative case // is this really needed?
"gen" : "gen", // genitive case
"part" : "part", // partitive case
"elat" : "elat", // elative case
"adess" : "adess", // adessive case
"iness": "iness", // inessive case
"illat" : "illat", // illative case
"hakumuoto" : "hakumuoto",
// "lok" : ["lok", "dat"], // locative case (forwarded to dative if missing)
// commented and left here for the purpose of example
};
for (cname in call_name_to_prop) {
create_pgetter(cname, call_name_to_prop[cname]);
}
// ------------------------------
// Property maps to be available to all apps.
Ts.loadProps("general");

View file

@ -18,4 +18,3 @@ set(CURRENT_LANG fr)
macro_optional_add_subdirectory( messages )
macro_optional_add_subdirectory( data )
macro_optional_add_subdirectory( scripts )

View file

@ -1 +0,0 @@
kde4_install_ts_files(${CURRENT_LANG} kgeography)

View file

@ -1,73 +0,0 @@
_genitif_ = {}
_genitif_['de'] = 'de '
_genitif_['du'] = 'du '
_genitif_['d'] = 'd\''
_genitif_['de l'] = 'de l\''
_genitif_['de l\''] = 'de l\''
_genitif_['de la'] = 'de la '
_genitif_['des'] = 'des '
_datif_ = {}
_datif_['de'] = 'à '
_datif_['du'] = 'au '
_datif_['d'] = 'à '
_datif_['de l'] = 'à l\''
_datif_['de la'] = 'à la '
_datif_['des'] = 'aux '
_nominatif_ = {}
_nominatif_['de'] = ''
_nominatif_['du'] = 'le '
_nominatif_['d'] = ''
_nominatif_['de l'] = 'l\''
_nominatif_['de la'] = 'la '
_nominatif_['des'] = 'les '
_directif_ = {}
_directif_['de'] = 'à '
_directif_['du'] = 'au '
_directif_['d'] = 'en '
_directif_['de l'] = 'en '
_directif_['de la'] = 'en '
_directif_['des'] = 'aux '
_forms_ = {}
_forms_['directif'] = _directif_
_forms_['nominatif'] = _nominatif_
_forms_['datif'] = _datif_
_forms_['genitif'] = _genitif_
_genitif_ = {};
function addDictGenderLike (key, base) {
_genitif_[key] = base;
}
function dynamicSetGenderLike (base) {
addDictGenderLike(Ts.msgstrf(), base);
Ts.fallback();
}
Ts.setcall("pose-genre-etendu", dynamicSetGenderLike);
function getGenderLike (cas, key) {
gender_like = _genitif_[key];
if ( gender_like )
{
caster = _forms_[cas];
if ( caster )
{
ret = caster[gender_like] + key;
}
else
{
ret = gender_like + key;
}
}
else
{
ret = key;
}
return ret
}
Ts.setcall("get-genre-etendu", getGenderLike);
Ts.setcall("majus-initiale", Ts.toUpperFirst);

View file

@ -17,4 +17,3 @@ endif()
set(CURRENT_LANG ga)
macro_optional_add_subdirectory( messages )
macro_optional_add_subdirectory( scripts )

View file

@ -1 +0,0 @@
add_subdirectory(kdelibs)

View file

@ -1 +0,0 @@
kde4_install_ts_files(${CURRENT_LANG} kdelibs4)

View file

@ -1,131 +0,0 @@
// kdelibs4.js of Irish KDE translation
// ------------------------------
// Global dictionary of property getters.
var _propgetters_ = {};
// ------------------------------
// Property getter object contains the following data attributes:
// - callname: the name of the getter call as exposed to PO files
// - values: dictionary of values of this property per phrase
//
function Propgetter (callname)
{
this.callname = callname;
this.values = {};
this.getprop = getprop;
// Set the PO call.
Ts.setcall(callname, getprop, this);
}
// Property getter method attached to getter objects.
// If the property is not found, fallback is signalled.
//
function getprop (phrase)
{
if (phrase in this.values) {
return this.values[phrase];
}
throw Ts.fallback();
}
// ------------------------------
// Set properties of the phrase given by the finalized msgstr in the PO file.
// The arguments to the call are as many keys followed by their value
// as desired (i.e. number of arguments must be even).
//
// The property keys become property getters which can be used to retrive
// the value at a later point. If the getter for a given key already exists,
// the new value is added into its overrides.
//
// The call always signals fallback.
//
function setprops (/*...*/)
{
if (arguments.length % 2 != 0)
throw Error("Property setter given odd number of arguments.");
for (var i = 0; i < arguments.length; i += 2) {
var pkey = arguments[i];
var pval = arguments[i + 1];
// Either create new, or select existing getter.
var pgetr;
if (!_propgetters_[pkey]) {
// Create new getter for this property.
pgetr = new Propgetter(pkey);
}
else {
// Get previously defined getter.
pgetr = _propgetters_[pkey];
}
// Associate the property value to finalized msgstr.
pgetr.values[Ts.msgstrf()] = pval;
}
throw Ts.fallback();
}
Ts.setcall("properties", setprops);
// ------------------------------
// Standard message dialogs come with cookie-cutter "Yes", "No", etc. buttons,
// but we can't translate them properly like that.
// Instead, attach the proper answers to the message caption/text in the PO,
// and then retrieve them in filtering messages for message dialog buttons
// in kdelibs4.po (those with context "@action:button filter-...").
// Dictionary of answers.
var _answers_ = {};
// Set answers as key-value pairs, as many as needed.
// The call always signals fallback.
function setAnswers (/*...*/)
{
if (arguments.length % 2 != 0)
throw Error("Answers setter given odd number of arguments.");
for (var i = 0; i < arguments.length; i += 2) {
var akey = arguments[i];
var answer = arguments[i + 1];
_answers_[akey] = answer;
}
throw Ts.fallback();
}
Ts.setcall("set-answers", setAnswers);
// msgid "Blah, blah...?"
// msgstr ""
// "Eh laddy, blah, blah...?"
// "|/|"
// "$[set-answers no '&Nay!' yes '&Arr!']"
// Get an answer by key.
// Signals fallback if the answer with the given key is not set.
// Deletes the answer from the dictionary, so that it doesn't happen
// that it gets retrieved in a later, unrelated question.
function getAnswer (akey)
{
answer = _answers_[akey];
if (!answer) throw Ts.fallback();
delete _answers_[akey];
return answer;
}
Ts.setcall("get-answer", getAnswer);
// msgctxt "@action:button filter-yes"
// msgid "%1"
// msgstr "%1|/|$[get-answer yes]"
// Reset all answers, so that they don't get used for the wrong question.
// Always signals fallback.
function resetAnswers ()
{
_answers_ = {};
}
Ts.setcall("reset-answers", resetAnswers);
// msgctxt "@action:button post-filter"
// msgid "."
// msgstr ".|/|$[reset-answers]"

View file

@ -17,4 +17,3 @@ endif()
set(CURRENT_LANG hne)
macro_optional_add_subdirectory( messages )
macro_optional_add_subdirectory( scripts )

View file

@ -17,4 +17,3 @@ endif()
set(CURRENT_LANG hr)
macro_optional_add_subdirectory( messages )
macro_optional_add_subdirectory( scripts )

View file

@ -1 +0,0 @@
add_subdirectory(kdelibs)

View file

@ -1 +0,0 @@
kde4_install_ts_files(${CURRENT_LANG} kdelibs4)

View file

@ -1,30 +0,0 @@
=/Choqok/_b=j/_r=m/aku=Choqok/dat=Choqoku/gen=Choqoka/ins=Choqokom/lok=Choqoku/nom=Choqok//
=/Datoteka/File/_b=j/_r=ž/aku=datoteku/dat=datoteci/gen=datoteke/ins=datotekom/lok=datoteci/nom=Datoteka//
=/Desktop/Radna površina/_b=j/_r=ž/aku=radnu površinu/dat=radnoj površini/gen=radne površine/ins=radnom površinom/nom=Radna površina//
=/Family/Obitelj/_b=j/_r=m/aku=obitelj/dat=obitelji/gen=obitelji/ins=obitelji/lok=obitelji/nom=Obitelj//
=/File Location/Lokacija datoteke/_b=j/_r=ž/aku=lokaciju datoteke/dat=lokaciji datoteke/gen=lokacije datoteke/ins=lokacijom datoteke/lok=lokaciji datoteke/nom=Lokacija datoteke//
=/FontConfig Match/FontConfig podudaranje/_b=j/_r=s/aku=FontConfig podudaranje/dat=FontConfig podudaranju/gen=FontConfig podudaranja/ins=FontConfig podudaranjem/lok=FontConfig podudaranju/nom=FontConfig podudaranje//
=/Ghostscript/_b=j/_r=m/aku=Ghostscript/dat=Ghostscriptu/gen=Ghostscripta/ins=Ghostscriptom/lok=Ghostscriptu/nom=Ghostscript//
=/Gwenview/_b=j/_r=m/aku=Gwenview/dat=Gwenviewu/gen=Gwenviewa/ins=Gwenviewom/lok=Gwenviewu/nom=Gwenview//
=/Icon/Ikona/_b=j/_r=ž/aku=ikonu/dat=ikoni/gen=ikone/ins=ikonom/lok=ikoni/nom=ikona//
=/K3b/_b=j/_r=m/aku=K3b/dat=K3b-u/gen=K3b-a/ins=K3b-om/lok=K3b-u/nom=K3b//
=/KDE Wallet Manager/KDE-ov upravitelj novčanika/_b=j/_r=m/aku=KDE-ovog upravitelja novčanika/dat=KDE-ovom upravitelju novčanika/gen=KDE-ovog upravitelja novčanika/ins=KDE-ovim upraviteljem novčanika/nom=KDE-ov upravitelj novčanika//
=/KDiskFree/_b=j/_r=m/aku=KDiskFreea/dat=KDiskFreeu/gen=KDiskFreea/ins=KDiskFreeom/lok=KDiskFreeu/nom=KDiskFree//
=/KGpg/_b=j/_r=m/aku=KGpg/dat=KGpg-u/gen=KGpg-a/ins=KGpg-om/lok=KGpg-u/nom=KGpg//
=/KMail/_b=j/_r=m/aku=KMail/dat=KMailu/gen=KMaila/ins=KMailom/lok=KMailu/nom=KMail//
=/KMix/_b=j/_r=m/aku=KMix/dat=KMixu/gen=KMixa/ins=KMixom/nom=KMix//
=/KRuler/_b=j/_r=m/aku=KRuler/dat=KRuleru/gen=KRulera/ins=KRulerom/lok=KRuleru/nom=KRuler//
=/KSnapshot/_b=j/_r=m/aku=KSnapshot/dat=KSnapshotu/gen=KSnapshota/ins=KSnapshotom/lok=KSnapshotu/nom=KSnapshot//
=/KTimeTracker/_b=j/_r=m/aku=KTimeTracker/dat=KTimeTrackeru/gen=KTimeTrackera/ins=KTimeTrackerom/lok=KTimeTrackeru/nom=KTimeTracker//
=/KTorrent/_b=j/_r=m/aku=KTorrent/dat=KTorrentu/gen=KTorrenta/ins=KTorrentom/lok=KTorrentu/nom=KTorrent//
=/Kate/_b=j/_r=m/aku=Kate/dat=Kateu/gen=Katea/ins=Kateom/nom=Kate//
=/Kgpg/_b=j/_r=m/aku=KGpg/dat=KGpg-u/gen=KGpg-a/ins=KGpg-om/lok=KGpg-u/nom=KGpg//
=/Konsole/_b=j/_r=ž/aku=Konsoleu/dat=Konsolei/gen=Konsole/ins=Konsoleom/lok=Konsolei/nom=Konsole//
=/Okular/_b=j/_r=m/aku=Okular/dat=Okularu/gen=Okulara/ins=Okularom/lok=Okularu/nom=Okular//
=/PDF/_b=j/_r=m/aku=PDF/dat=PDF-u/gen=PDF-a/ins=PDF-om/lok=PDF-u/nom=PDF//
=/Power Management/Upravljanje potrošnjom energije/_b=j/_r=s/aku=upravljanje potrošnjom energije/dat=upravljanju potrošnjom energije/gen=upravljanja potrošnjom energije/ins=upravljanjem potrošnjom energije/nom=Upravljanje potrošnjom energije//
=/Stil/Style/_b=j/_r=m/aku=stil/dat=stilu/gen=stila/ins=stilom/lok=stilu/nom=Stil//
=/SuperKaramba/_b=j/_r=ž/aku=SuperKarambu/dat=SuperKarambi/gen=SuperKarambe/ins=SuperKarambom/lok=SuperKarambi/nom=SuperKaramba//
=/Upravitelj novčanika/Wallet Manager/_b=j/_r=m/aku=upravitelja novčanika/dat=upravitelju novčanika/gen=upravitelja novčanika/ins=upraviteljem novčanika/nom=Upravitelj novčanika//
=/Web Browser/Web preglednik/_b=j/_r=m/aku=web preglednik/dat=web pregledniku/gen=web preglednika/ins=web preglednikom/nom=web preglednik//
=/digiKam/_b=j/_r=m/aku=digiKam/dat=digiKamu/gen=digiKama/ins=digiKamom/lok=digiKamu/nom=digiKam//

View file

@ -1,98 +0,0 @@
// kdelibs4.js of Croatian KDE translation
// ------------------------------
// Create a scripting call linked to property key in pmaps.
// If the call name starts with lowercase letter,
// another call with the first letter in uppercase will be defined,
// which will upcase the first letter in the property value before
// returning it.
function create_pgetter (cname, pkey)
{
if (!Ts.hascall(cname)) {
Ts.setcall(cname,
function (phr) {
if (this.pkey.constructor == Array) {
for (var i = 0; i < this.pkey.length; ++i) {
var pval = Ts.getProp(phr, this.pkey[i]);
if (pval != undefined) {
return pval;
}
}
return undefined;
} else {
return Ts.getProp(phr, this.pkey);
}
},
{"pkey" : pkey});
cname_uc = Ts.toUpperFirst(cname);
if (cname_uc != cname) {
Ts.setcall(cname_uc,
function (phr) {
return Ts.toUpperFirst(Ts.acall(this.cname_lc, phr));
},
{"cname_lc" : cname});
}
}
}
// ------------------------------
// Select one of three forms according to the gender of the phrase.
function select_by_gender (phrase, form_m, form_f, form_n)
{
// Select gender (throws fallback if phrase not found).
var gender = Ts.getProp(phrase, "_r");
if (gender == "m") {
return form_m;
} else if (gender == "ž") {
return form_f;
} else if (gender == "s") {
return form_n;
} else {
throw Ts.fallback();
}
}
Ts.setcall("po-rodu", select_by_gender);
// ------------------------------
// Select one of six forms according to the gender and number of the phrase.
function select_by_number_gender (phrase,
form_m, form_f, form_n, // singulars
form_mp, form_fp, form_np) // plurals
{
number = Ts.getProp(phrase, "_b");
if (number == "j") { // singular
return select_by_gender(phrase, form_m, form_f, form_n);
} else if (number == "m") { // plural
return select_by_gender(phrase, form_mp, form_fp, form_np);
} else {
throw Ts.fallback();
}
}
Ts.setcall("po-rodu-broju", select_by_number_gender);
// ------------------------------
// Predefined property getters.
// Call names with corresponding pmap keys for predefined getters.
// The first letter in the call name should be in lowercase;
// see the comment to create_pgetter() function for the reason.
var call_name_to_prop = {
"_r" : "_r", // gender
"_b" : "_b", // number
"nom" : "nom", // nominative case
"gen" : "gen", // genitive case
"dat" : "dat", // dative case
"aku" : "aku", // accusative case
"vok" : "vok", // vocative case
"ins" : "ins", // instrumental case
"lok" : ["lok", "dat"], // locative case (forwarded to dative if missing)
};
for (cname in call_name_to_prop) {
create_pgetter(cname, call_name_to_prop[cname]);
}
// ------------------------------
// Property maps to be available to all apps.
Ts.loadProps("general");

View file

@ -1,7 +0,0 @@
# Padeži.
/nom/.*/rti # nominativ obavezan i mora da se slaže s prevodom
/gen|dat|aku|vok|ins|lok/.*/
# Gramatička svojstva.
/_r/m|ž|s/r # rod, obavezan
/_b/j|m/r # broj, obavezan

View file

@ -17,4 +17,3 @@ endif()
set(CURRENT_LANG ja)
macro_optional_add_subdirectory( messages )
macro_optional_add_subdirectory( scripts )

View file

@ -1 +0,0 @@
add_subdirectory(kdelibs)

View file

@ -1 +0,0 @@
kde4_install_ts_files(${CURRENT_LANG} kgeography)

View file

@ -1,4 +0,0 @@
// kgeography.js of Japanese KDE translation
// Currently no KGeography-specific calls needed,
// but let this empty file remain here for possible future needs.

View file

@ -1 +0,0 @@
kde4_install_ts_files(${CURRENT_LANG} kdelibs4)

View file

@ -1,225 +0,0 @@
// kdelibs4.js of Japanese KDE translation
// Maintained by Chusslove Illich <caslav.ilic@gmx.net>
// +++ Global dictionary of states.
// _states_[state], if defined, is set to some value for the state.
var _states_ = {};
// *** Set global states to values.
// : setStates(state1 value1 state2 value2 ...)
// Returns empty string.
function setStates (/*...*/) {
var f = "setStates: ";
if (arguments.length % 2 != 0) {
throw Error(f + "must have even number of arguments");
}
for (var i = 0; i < arguments.length; i += 2) {
var state = arguments[i];
var val = arguments[i + 1];
_states_[state] = val;
}
return "";
}
// *** Get global state value; empty string if not defined.
function getState (state) {
if (state in _states_) {
return _states_[state];
}
return "";
}
// *** Set properties to the phrase given by current msgstrf.
// : setMsgstrProperties(prop1 value1 prop2 value2...)
// Returns empty string.
function setMsgstrProperties (/*...*/) {
var f = "setMsgstrProperties: ";
if (arguments.length % 2 != 0) {
throw Error(f + "must have even number of arguments");
}
var phrase = Ts.msgstrf();
for (var i = 0; i < arguments.length; i += 2) {
var property = arguments[i];
var val = arguments[i + 1];
Ts.setProp(phrase, property, val);
}
return "";
}
// *** Get property value of the given phrase; empty string if not defined.
function getProperty (phrase, property) {
var val = Ts.getProp(phrase, property);
if (!val) {
return "";
}
return val;
}
// *** Get form of the given phrase.
// A "form" is taken to be a special type of property which defaults to the
// phrase itself when not defined. Hence, if the requested form has not been
// defined, phrase is returned as is.
function getFormProperty (phrase, formm) {
var val = Ts.getProp(phrase, formm);
if (!val) {
return phrase;
}
return val;
}
// *** Select one of the strings according to the test value.
// : selectByValue(testvalue value1 str1 value2 str2 ... defaultstr)
// Select the string to the first value equal to the test value,
// or returns default string if there is no match.
function selectByValue (/*...*/) {
var f = "selectByValue: ";
if (arguments.length % 2 != 0) {
throw Error(f + "must have even number of arguments.");
}
if (arguments.length < 2)
throw Error(f + "must have at least two arguments.");
var testval = arguments[0];
for (var i = 1; i < arguments.length - 1; i += 2) {
var val = arguments[i];
var str = arguments[i + 1];
if (testval == val) {
return str;
}
}
// Return the default choice if no other returned before.
return arguments[arguments.length - 1];
}
// *** Return first non-empty string among the arguments, or empty if all empty.
// : firstNonEmpty(str1 str2 ...)
function firstNonEmpty (/*...*/) {
for (var i = 0; i < arguments.length; ++i) {
if (arguments[i].length > 0) {
return arguments[i];
}
}
return "";
}
// *** Return the finalized ordinary msgstr.
function theMsgstr () {
return Ts.msgstrf();
}
// *** If the first character in the phrase is non-Japanese, return
// the phrase with space added to the start, otherwise return as is.
function spaceOnDemandLeft (phrase) {
if (phrase.length == 0) {
return phrase;
}
var firstChar = phrase.charAt(0);
if (firstChar != " " && firstChar < "\u2E00") {
return " " + phrase;
}
return phrase;
}
// *** If the last character in the phrase is non-Japanese, return
// the phrase with space added to the end, otherwise return as is.
function spaceOnDemandRight (phrase) {
if (phrase.length == 0) {
return phrase;
}
var lastChar = phrase.charAt(phrase.length - 1);
if (lastChar != " " && lastChar < "\u2E00") {
return phrase + " ";
}
return phrase;
}
// *** Combination of spaceOnDemandLeft and spaceOnDemandRight: both first
// and last characters are checked, and spaces added where needed.
function spaceOnDemandBoth (phrase) {
return spaceOnDemandLeft(spaceOnDemandRight(phrase));
}
// *** Strip the accelerator marker, composed of an ASCII alphanumeric
// within parenthesis (with or without an ampersand in front).
stripAccRx = /\((&|&amp;)?[a-zA-Z0-9]\)/;
function stripAccelerator (phrase) {
return phrase.replace(stripAccRx, "");
}
// ==> Exports to PO calls
Ts.setcall("~set", setStates);
Ts.setcall("~get", getState);
Ts.setcall("~setProps", setMsgstrProperties);
Ts.setcall("~getProp", getProperty);
Ts.setcall("~getForm", getFormProperty);
Ts.setcall("~case", selectByValue);
Ts.setcall("~first", firstNonEmpty);
Ts.setcall("~this", theMsgstr);
Ts.setcall("~spacerL", spaceOnDemandLeft);
Ts.setcall("~spacerR", spaceOnDemandRight);
Ts.setcall("~spacerB", spaceOnDemandBoth);
Ts.setcall("~stripAccel", stripAccelerator);
// ------------------------------
// When verbs such as "Configure" are used as the positive answer in question
// dialogs, "設定する", as opposed to "設定しない (Do Not Configure)", would
// be more appropriate than "設定". However, it would sound funny if the same
// translation is used in other contexts (e.g. @title:window), so we cannot
// do it safely.
// Instead, attach the proper answers to the message caption/text in the PO,
// and then retrieve them in filtering messages for message dialog buttons
// in kdelibs4.po (those with context "@action:button filter-...").
// Dictionary of answers.
var _answers_ = {};
// Set answers as key-value pairs, as many as needed.
// The call always signals fallback.
function setAnswers (/*...*/)
{
if (arguments.length % 2 != 0)
throw Error("Answers setter given odd number of arguments.");
for (var i = 0; i < arguments.length; i += 2) {
var akey = arguments[i];
var answer = arguments[i + 1];
_answers_[akey] = answer;
}
throw Ts.fallback();
}
Ts.setcall("set-answers", setAnswers);
// msgid "... Would you like to configure it now?"
// msgstr ""
// "... 今設定しますか?"
// "|/|"
// "$[set-answers yes '設定する(&Y)' no '設定しない(&N)']"
// Get an answer by key.
// Signals fallback if the answer with the given key is not set.
// Deletes the answer from the dictionary, so that it doesn't happen
// that it gets retrieved in a later, unrelated question.
function getAnswer (akey)
{
answer = _answers_[akey];
if (!answer) throw Ts.fallback();
delete _answers_[akey];
return answer;
}
Ts.setcall("get-answer", getAnswer);
// msgctxt "@action:button filter-yes"
// msgid "%1"
// msgstr "%1|/|$[get-answer yes]"
// Reset all answers, so that they don't get used for the wrong question.
// Always signals fallback.
function resetAnswers ()
{
_answers_ = {};
}
Ts.setcall("reset-answers", resetAnswers);
// msgctxt "@action:button post-filter"
// msgid "."
// msgstr ".|/|$[reset-answers]"

View file

@ -17,4 +17,3 @@ endif()
set(CURRENT_LANG ko)
macro_optional_add_subdirectory( messages )
macro_optional_add_subdirectory( scripts )

View file

@ -1 +0,0 @@
add_subdirectory(kdelibs)

View file

@ -1 +0,0 @@
kde4_install_ts_files(${CURRENT_LANG} kdelibs4)

View file

@ -1,94 +0,0 @@
// kdelibs4.js of Korean KDE translation
// This script is distributed under GNU General Public License, version 2 or later.
// Copyright (C) Chusslove Ilich, 2007. (for strip accelerator part)
// Copyright (C) Park Shinjo, 2007. (rest of all)
//
stripAccRx = /\((&|&amp;)?[a-zA-Z0-9]\)/;
lstJosa = [["가","이","이(가)",false],
["를","을","을(를)",false],
["는","은","은(는)",false],
["와","과","과(와)",false],
["","이","(이)",false],
["","으","(으)", true]];
// *** Detect the provided word is Hangeul.
function isHangeul(code)
{
if (code >= 0xac00 && code <= 0xd7af) return true;
else return false;
}
// *** Strip the accelerator marker, composed of an ASCII alphanumeric
// within parenthesis (with or without an ampersand in front).
function stripAccelerator(phrase)
{
return phrase.replace(stripAccRx, "");
}
// *** Detect the phrase has 종성(Final jamo). It will be used in
// detection of 을/를, 이/가.
function getFinalJamoType(phrase, rieul)
{
var code = phrase.charCodeAt(phrase.length - 1);
if (!isHangeul(code)) return 2;
code -= 0xac00;
code %= 28;
if (rieul && code == 8) return 0;
switch (code) {
case 0:
return 0;
default:
return 1;
}
}
// Functions in below attach appropriate 조사(postposition)
// according to the word. It only affects Hangeul, if non-Hangeul
// word is provided, then fallback string is used.
function attachJosa(type, phrase, marker)
{
var i = getFinalJamoType(phrase, lstJosa[type][3]);
if (marker) phrase = marker + phrase + marker;
return phrase + lstJosa[type][i];
}
function attachIGa(phrase, marker)
{
return attachJosa(0, phrase, marker);
}
function attachEulReul(phrase, marker)
{
return attachJosa(1, phrase, marker);
}
function attachEunNeun(phrase, marker)
{
return attachJosa(2, phrase, marker);
}
function attachWaGwa(phrase, marker)
{
return attachJosa(3, phrase, marker);
}
function attachI(phrase, marker)
{
return attachJosa(4, phrase, marker);
}
function attachEu(phrase, marker)
{
return attachJosa(5, phrase, marker);
}
// ==> Exports to PO calls
Ts.setcall("~stripAccel", stripAccelerator);
Ts.setcall("을를", attachEulReul);
Ts.setcall("이가", attachIGa);
Ts.setcall("은는", attachEunNeun);
Ts.setcall("와과", attachWaGwa);
Ts.setcall("이", attachI);
Ts.setcall("으", attachEu);

View file

@ -17,4 +17,3 @@ endif()
set(CURRENT_LANG ku)
macro_optional_add_subdirectory( messages )
macro_optional_add_subdirectory( scripts )

View file

@ -17,4 +17,3 @@ endif()
set(CURRENT_LANG lt)
macro_optional_add_subdirectory( messages )
macro_optional_add_subdirectory( scripts )

View file

@ -1,2 +0,0 @@
add_subdirectory(kdelibs)
add_subdirectory(kdeplasma-addons)

View file

@ -1 +0,0 @@
kde4_install_ts_files(${CURRENT_LANG} libplasma)

View file

@ -1,50 +0,0 @@
function getProperty (prop, key) {
return _dict_[key][prop];
}
Ts.setcall("get-case", getProperty);
function lowerCaseFirstLetter(string)
{
return string.charAt(0).toLowerCase() + string.slice(1);
}
_dict_ = {};
function addDictCases (key, kil, nau, gal, ina, vie) {
if (!_dict_[key])
_dict_[key] = {};
_dict_[key]["vardininkas"] = lowerCaseFirstLetter(key);
_dict_[key]["kilmininkas"] = lowerCaseFirstLetter(kil);
_dict_[key]["naudininkas"] = lowerCaseFirstLetter(nau);
_dict_[key]["galininkas"] = lowerCaseFirstLetter(gal);
_dict_[key]["įnagininkas"] = lowerCaseFirstLetter(ina);
_dict_[key]["vietininkas"] = lowerCaseFirstLetter(vie);
_dict_[key]["Kilmininkas"] = kil
_dict_[key]["Naudininkas"] = nau;
_dict_[key]["Galininkas"] = gal;
_dict_[key]["Įnagininkas"] = ina;
_dict_[key]["Vietininkas"] = vie;
}
function addCapitalDictCases (key, kil, nau, gal, ina, vie) {
if (!_dict_[key])
_dict_[key] = {};
_dict_[key]["vardininkas"] = key;
_dict_[key]["kilmininkas"] = kil;
_dict_[key]["naudininkas"] = nau;
_dict_[key]["galininkas"] = gal;
_dict_[key]["įnagininkas"] = ina;
_dict_[key]["vietininkas"] = vie;
_dict_[key]["Kilmininkas"] = kil
_dict_[key]["Naudininkas"] = nau;
_dict_[key]["Galininkas"] = gal;
_dict_[key]["Įnagininkas"] = ina;
_dict_[key]["Vietininkas"] = vie;
}
function dynamicSetCases (kil, nau, gal, ina, vie) {
addDictCases(Ts.msgstrf(), kil, nau, gal, ina, vie);
Ts.fallback();
}
Ts.setcall("set-cases", dynamicSetCases);
Ts.load("plasmoids")

View file

@ -1,98 +0,0 @@
// Use addCapitalDictCases where first letter is never lowercase (to avoid things like cPU or kDE).
addDictCases("2D grafikai", "2D grafikų", "2D grafikams", "2D grafikus", "2D grafikais", "2D grafikuose");
addDictCases("Akys", "Akių", "Akims", "Akis", "Akimis", "Akyse");
addDictCases("Aknotes pastabos plazmoidas", "Aknotes pastabos plazmoido", "Aknotes pastabos plazmoidui", "Aknotes pastabos plazmoidą", "Aknotes pastabos plazmoidu", "Aknotes pastabos plazmoide");
addDictCases("Aknotes sąrašo plazmoidas", "Aknotes sąrašo plazmoido", "Aknotes sąrašo plazmoidui", "Aknotes sąrašo plazmoidą", "Aknotes sąrašo plazmoidu", "Aknotes sąrašo plazmoide");
addDictCases("Analoginis laikrodis", "Analoginio laikrodžio", "Analoginiui laikrodžiui", "Analoginį laikrodį", "Analoginiu laikrodžiu", "Analoginiame laikrodyje");
addDictCases("Aparatinės įrangos informacija", "Aparatinės įrangos informacijos", "Aparatinės įrangos informacijai", "Aparatinės įrangos informaciją", "Aparatinės įrangos informacija", "Aparatinės įrangos informacijoje");
addDictCases("Aplankas", "Aplanko", "Aplankui", "Aplanką", "Aplanku", "Aplanke");
addDictCases("Atminties būsena", "Atminties būsenos", "Atminties būsenai", "Atminties būseną", "Atminties būsena", "Atminties būsenoje");
addDictCases("Baterijos stebėtojas", "Baterijos stebėtojo", "Baterijos stebėtojui", "Baterijos stebėtoją", "Baterijos stebėtoju", "Baterijos stebėtojuje");
addDictCases("Bendruomenė", "Bendruomenės", "Bendruomenei", "Bendruomenę", "Bendruomene", "Bendruomenėje");
addCapitalDictCases("Chemija: ar žinojote", "Chemija: ar žinojote", "Chemija: ar žinojote", "Chemija: ar žinojote", "Chemija: ar žinojote", "Chemija: ar žinojote");
addCapitalDictCases("CPU apkrovos stebėtojas", "CPU apkrovos stebėtojo", "CPU apkrovos stebėtojui", "CPU apkrovos stebėtoją", "CPU apkrovos stebėtoju", "CPU apkrovos stebėtojuje");
addDictCases("Dabar grojama", "Dabar grojama", "Dabar grojama", "Dabar grojama", "Dabar grojama", "Dabar grojama");
addDictCases("Dabartinės programos valdymas", "Dabartinės programos valdymo", "Dabartinės programos valdymui", "Dabartinės programos valdymą", "Dabartinės programos valdymu", "Dabartinės programos valdyme");
addDictCases("Numatytas darbastalis", "Numatyto darbastalio", "Numatytam darbastaliui", "Numatytą darbastalį", "Numatyty darbastaliu", "Numatytame darbastalyje");
addDictCases("Dvejetainis laikrodis", "Dvejetainio laikrodžio", "Dvejetainiam laikrodžiui", "Dvejetainį laikrodį", "Dvejetainiu laikrodžiu", "Dvejetainiame laikrodyje");
addCapitalDictCases("Facebook", "Facebook", "Facebook", "Facebook", "Facebook", "Facebook");
addDictCases("Failų stebėtojas", "Failų stebėtojo", "Failų stebėtojui", "Failų stebėtoją", "Failų stebėtoju", "Failų stebėtojuje");
addDictCases("Gauta žinutė", "Gautos žinutės", "Gautai žinutei", "Gautą žinutę", "Gauta žinute", "Gautoje žinutėje");
addDictCases("Gyvybė", "Gyvybės", "Gyvybei", "Gyvybę", "Gyvybe", "Gyvybėje");
addDictCases("Greitas paleidimas", "Greito paleidimo", "Greitam paleidimui", "Greitą paleidimą", "Greitu paleidimu", "Greitame paleidime");
addDictCases("Greitųjų žinučių kontaktas", "Greitųjų žinučių kontakto", "Greitųjų žinučių kontaktui", "Greitųjų žinučių kontaktą", "Greitųjų žinučių kontaktu", "Greitųjų žinučių kontakte");
addDictCases("Greitųjų žinučių buvimas", "Greitųjų žinučių buvimo", "Greitųjų žinučių buvimui", "Greitųjų žinučių buvimą", "Greitųjų žinučių buvimu", "Greitųjų žinučių buvime");
addDictCases("Įvesties metodo skydelis", "Įvesties metodo skydelio", "Įvesties metodo skydeliui", "Įvesties metodo skydelį", "Įvesties metodo skydeliu", "Įvesties metodo skydelyje");
addDictCases("Kalendorius", "Kalendoriaus", "Kalendoriui", "Kalendorių", "Kalendoriu", "Kalendoriuje");
addCapitalDictCases("KAlgebra", "KAlgebra", "KAlgebra", "KAlgebrą", "KAlgebra", "KAlgebra");
addCapitalDictCases("Kate sesijų programėlė", "Kate sesijų programėlės", "Kate sesijų programėlei", "Kate sesijų programėlę", "Kate sesijų programėle", "Kate sesijų programėlėje");
addCapitalDictCases("KDE observatorija", "KDE observatorijos", "KDE observatorijai", "KDE observatoriją", "KDE observatorija", "KDE observatorijoje");
addCapitalDictCases("KDevelop sesijos", "KDevelop sesijų", "KDevelop sesijoms", "KDevelop sesijas", "KDevelop sesijomis", "KDevelop sesijose");
addCapitalDictCases("KGet skritulinės diagramos programėlė", "KGet skritulinės diagramos programėlės", "KGet skritulinės diagramos programėlei", "KGet skritulinės diagramos programėlę", "KGet skritulinės diagramos programėle", "KGet skritulinės diagramos programėlėje");
addCapitalDictCases("KGet stulpelinės diagramos programėlė", "KGet stulpelinės diagramos programėlės", "KGet stulpelinės diagramos programėlei", "KGet stulpelinės diagramos programėlę", "KGet stulpelinės diagramos programėle", "KGet stulpelinės diagramos programėlėje");
addDictCases("Klaviatūra", "Klaviatūros", "Klaviatūrai", "Klaviatūrą", "Klaviatūra", "Klaviatūroje");
addDictCases("Klaviatūros išdėstymas", "Klaviatūros išdėstymo", "Klaviatūros išdėstymui", "Klaviatūros išdėstymą", "Klaviatūros išdėstymu", "Klaviatūros išdėstyme");
addCapitalDictCases("Konqueror profiliai", "Konqueror profilių", "Konqueror profiliams", "Konqueror profilius", "Konqueror profiliais", "Konqueror profiliuose");
addDictCases("Konsole profiliai", "Konsole profilių", "Konsole profiliams", "Konsole profilius", "Konsole profiliais", "Konsole profiliuose");
addCapitalDictCases("KTorrent", "KTorrent", "KTorrent", "KTorrent", "KTorrent", "KTorrent");
addDictCases("Laikmatis", "Laikmačio", "Laikmačiui", "Laikmatį", "Laikmačiu", "Laikmatyje");
addDictCases("Laikraščio išdėstymas", "Laikraščio išdėstymo", "Laikraščio išdėstymui", "Laikraščio išdėstymą", "Laikraščio išdėstymu", "Laikraščio išdėstyme");
addCapitalDictCases("Lancelot paleidiklis", "Lancelot paleidiklio", "Lancelot paleidikliui", "Lancelot paleidiklį", "Lancelot paleidikliu", "Lancelot paleidiklyje");
addDictCases("Langų sąrašas", "Langų sąrašo", "Langų sąrašui", "Langų sąrašą", "Langų sąrašu", "Langų sąraše");
addCapitalDictCases("LCD orų stotelė", "LCD orų stotelės", "LCD orų stotelei", "LCD orų stotelę", "LCD orų stotele", "LCD orų stotelėje");
addDictCases("Lenta", "Lentos", "Lentai", "Lentą", "Lenta", "Lentoje");
addDictCases("Lentyna", "Lentynos", "Lentynai", "Lentyną", "Lentyna", "Lentynoje");
addCapitalDictCases("Luna", "Luna", "Luna", "Luna", "Luna", "Luna");
addCapitalDictCases("Magnifique", "Magnifique", "Magnifique", "Magnifique", "Magnifique", "Magnifique");
addDictCases("Media leistuvė", "Media leistuvės", "Media leistuvei", "Media leistuvę", "Media leistuve", "Media leistuvėje");
addDictCases("Mikrotinklaraštis", "Mikrotinklaraščio", "Mikrotinklaraščiui", "Mikrotinklaraštį", "Mikrotinklaraščiu", "Mikrotinklaraštyje");
addDictCases("Naujienos", "Naujienų", "Naujienoms", "Naujienas", "Naujienomis", "Naujienose");
addDictCases("Netikslus laikrodis", "Netikslaus laikrodžio", "Netiksliam laikrodžiui", "Netikslų laikrodį", "Netiksliu laikrodžiu", "Netiksliame laikrodyje");
addDictCases("Orų prognozė", "Orų prognozės", "Orų prognozei", "Orų prognozę", "Orų prognoze", "Orų prognozėje");
addCapitalDictCases("Padėti", "Padėti", "Padėti", "Padėti", "Padėti", "Padėti");
addDictCases("Paieškos laukas", "Paieškos lauko", "Paieškos laukui", "Paieškos lauką", "Paieškos lauku", "Paieškos lauke");
addCapitalDictCases("Palikti pranešimą", "Palikti pranešimą", "Palikti pranešimą", "Palikti pranešimą", "Palikti pranešimą", "Palikti pranešimą");
addCapitalDictCases("Parley", "Parley", "Parley", "Parley", "Parley", "Parley");
addDictCases("Pasaulio laikrodis", "Pasaulio laikrodžio", "Pasaulio laikrodžiui", "Pasaulio laikrodį", "Pasaulio laikrodžiu", "Pasaulio laikrodyje");
addCapitalDictCases("Pastebin", "Pastebin", "Pastebin", "Pastebin", "Pastebin", "Pastebin");
addDictCases("Paveikslėlių rėmelis", "Paveikslėlių rėmelio", "Paveikslėlių rėmeliui", "Paveikslėlių rėmelį", "Paveikslėlių rėmeliu", "Paveikslėlių rėmelyje");
addDictCases("Penkiolika dalių", "Penkiolika dalių", "Penkiolika dalių", "Penkiolika dalių", "Penkiolika dalių", "Penkiolika dalių");
addDictCases("Peržiūriklis", "Peržiūriklio", "Peržiūrikliui", "Peržiūriklį", "Peržiūrikliu", "Peržiūriklyje");
addDictCases("Pranešimai apie įrenginius", "Pranešimų apie įrenginius", "Pranešimams apie įrenginius", "Pranešimus apie įrenginius", "Pranešimais apie įrenginius", "Pranešimuose apie įrenginius");
addDictCases("Pranešimai", "Pranešimų", "Pranešimams", "Pranešimus", "Pranešimais", "Pranešimuose");
addCapitalDictCases("Prisimink pieną", "Prisimink pieną", "Prisimink pieną", "Prisimink pieną", "Prisimink pieną", "Prisimink pieną");
addDictCases("Programų paleidiklio meniu", "Programų paleidiklio meniu", "Programų paleidiklio meniu", "Programų paleidiklio meniu", "Programų paleidiklio meniu", "Programų paleidiklio meniu");
addDictCases("Programų paleidiklis", "Programų paleidiklio", "Programų paleidikliui", "Programų paleidiklį", "Programų paleidikliu", "Programų paleidiklyje");
addDictCases("Pulto skirtukas", "Pulto skirtuko", "Pulto skirtukui", "Pulto skirtuką", "Pulto skirtuku", "Pulto skirtuke");
addDictCases("Puslapiuotojas", "Puslapiuotojo", "Puslapiuotojui", "Puslapiuotoją", "Puslapiuotoju", "Puslapiuotojuje");
addCapitalDictCases("Qalculate!", "Qalculate!", "Qalculate!", "Qalculate!", "Qalculate!", "Qalculate!");
addCapitalDictCases("Rasti ir paleisti", "Rasti ir paleisti", "Rasti ir paleisti", "Rasti ir paleisti", "Rasti ir paleisti", "Rasti ir paleisti");
addDictCases("Rašybos tikrinimas", "Rašybos tikrinimo", "Rašybos tikrinimui", "Rašybos tikrinimą", "Rašybos tikrinimu", "Rašybos tikrinime");
addDictCases("Rodyti darbastalį", "Rodyti darbastalį", "Rodyti darbastalį", "Rodyti darbastalį", "Rodyti darbastalį", "Rodyti darbastalį");
addCapitalDictCases("RSSNOW", "RSSNOW", "RSSNOW", "RSSNOW", "RSSNOW", "RSSNOW");
addDictCases("Simbolių parinkiklis", "Simbolių parinkiklio", "Simbolių parinkikliui", "Simbolių parinkiklį", "Simbolių parinkikliu", "Simbolių parinkiklyje");
addDictCases("Sistemos apkrovos žiūriklis", "Sistemos apkrovos žiūriklio", "Sistemos apkrovos žiūrikliui", "Sistemos apkrovos žiūriklį", "Sistemos apkrovos žiūrikliu", "Sistemos apkrovos žiūriklyje");
addDictCases("Sistemos dėklas", "Sistemos dėklo", "Sistemos dėklui", "Sistemos dėklą", "Sistemos dėklu", "Sistemos dėkle");
addDictCases("Sistemos stebėtojas", "Sistemos stebėtojo", "Sistemos stebėtojui", "Sistemos stebėtoją", "Sistemos stebėtoju", "Sistemos stebėtojuje");
addDictCases("Socialinės naujienos", "Socialinių naujienų", "Socialinėms naujienoms", "Socialines naujienas", "Socialinėms naujienoms", "Socialinėse naujienose");
addDictCases("Skaičiuotuvas", "Skaičiuotuvo", "Skaičiuotuvui", "Skaičiuotuvą", "Skaičiuotuvu", "Skaičiuotuve");
addDictCases("Skaitmeninis laikrodis", "Skaitmeninio laikrodžio", "Skaitmeniniui laikrodžiui", "Skaitmeninį laikrodį", "Skaitmeniniu laikrodžiu", "Skaitmeniniame laikrodyje");
addDictCases("Skydelis", "Skydelio", "Skydeliui", "Skydelį", "Skydeliu", "Skydelyje");
addDictCases("Spalvų parinkiklis", "Spalvų parinkiklio", "Spalvų parinkikliui", "Spalvų parinkiklį", "Spalvų parinkikliu", "Spalvų parinkiklyje");
addDictCases("Šiukšliadėžė", "Šiukšliadėžės", "Šiukšliadėžei", "Šiukšliadėžę", "Šiukšliadėže", "Šiukšliadėžėje");
addDictCases("Šokinėjantis kamuolys", "Šokinėjančio kamuolio", "Šokinėjančiam kamuoliui", "Šokinėjantį kamuolį", "Šokinėjančiu kamuoliu", "Šokinėjančiame kamuolyje");
addDictCases("Techninės įrangos temperatūra", "Techninės įrangos temperatūros", "Techninės įrangos temperatūrai", "Techninės įrangos temperatūrą", "Techninės įrangos temperatūra", "Techninės įrangos temperatūroje");
addDictCases("Tik ženkliukų užduočių tvarkytuvė", "Tik ženkliukų užduočių tvarkytuvės", "Tik ženkliukų užduočių tvarkytuvei", "Tik ženkliukų užduočių tvarkytuvę", "Tik ženkliukų užduočių tvarkytuve", "Tik ženkliukų užduočių tvarkytuvėje");
addDictCases("Tinklo stebėjimo priemonė", "Tinklo stebėjimo priemonės", "Tinklo stebėjimo priemonei", "Tinklo stebėjimo priemonę", "Tinklo stebėjimo priemone", "Tinklo stebėjimo priemonėje");
addDictCases("Tinklo valdymas", "Tinklo valdymo", "Tinklo valdymui", "Tinklo valdymą", "Tinklo valdymu", "Tinklo valdyme");
addDictCases("Užduočių tvarkyklė", "Užduočių tvarkyklės", "Užduočių tvarkyklei", "Užduočių tvarkyklę", "Užduočių tvarkykle", "Užduočių tvarkyklėje");
addDictCases("Užrakinti/atsijungti", "Užrakinti/atsijungti", "Užrakinti/atsijungti", "Užrakinti/atsijungti", "Užrakinti/atsijungti", "Užrakinti/atsijungti");
addDictCases("Užrašai", "Užrašų", "Užrašams", "Užrašus", "Užrašais", "Užrašuose");
addDictCases("Veiklos", "Veiklų", "Veikloms", "Veiklas", "Veiklomis", "Veiklose");
addDictCases("Veiklų juosta", "Veiklų juostos", "Veiklų juostai", "Veiklų juostą", "Veiklų juosta", "Veiklų juostoje");
addDictCases("Vienetų konvertuoklis", "Vienetų konvertuoklio", "Vienetų konvertuokliui", "Vienetų konvertuoklį", "Vienetų konvertuokliu", "Vienetų konvertuoklyje");
addDictCases("Ženkliukas", "Ženkliuko", "Ženkliukui", "Ženkliuką", "Ženkliuku", "Ženkliuke");
addDictCases("Žiniatinklio naršyklė", "Žiniatinklio naršyklės", "Žiniatinklio naršyklei", "Žiniatinklio naršyklę", "Žiniatinklio naršykle", "Žiniatinklio naršyklėje");
addDictCases("Žinių bazė", "Žinių bazės", "Žinių bazei", "Žinių bazę", "Žinių baze", "Žinių bazėje");
addDictCases("Žymelės", "Žymelių", "Žymelėms", "Žymeles", "Žymelėmis", "Žymelėse");
addDictCases("Žodynas", "Žodyno", "Žodynui", "Žodyną", "Žodynu", "Žodyne");

View file

@ -1 +0,0 @@
kde4_install_ts_files(${CURRENT_LANG} plasma_applet_fuzzy_clock)

View file

@ -1,18 +0,0 @@
function getProperty (prop, key) {
return _dict_[key][prop];
}
Ts.setcall("get-case", getProperty);
_dict_ = {};
function addDictCases (key, gen, next) {
if (!_dict_[key])
_dict_[key] = {};
_dict_[key]["kilmininkas"] = gen;
_dict_[key]["kitavalanda"] = next;
}
function dynamicSetCases (gen, next) {
addDictCases(Ts.msgstrf(), gen, next);
Ts.fallback();
}
Ts.setcall("set-cases", dynamicSetCases);

View file

@ -17,4 +17,3 @@ endif()
set(CURRENT_LANG lv)
macro_optional_add_subdirectory( messages )
macro_optional_add_subdirectory( scripts )

View file

@ -1 +0,0 @@
add_subdirectory(kdelibs)

View file

@ -1 +0,0 @@
kde4_install_ts_files(${CURRENT_LANG} kdelibs4)

View file

@ -1,38 +0,0 @@
// kdelibs4.js of Latvian KDE translation (copied from Ukrainian)
// ------------------------------
// 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("pēc-konteksta", select_by_context);

View file

@ -17,4 +17,3 @@ endif()
set(CURRENT_LANG mai)
macro_optional_add_subdirectory( messages )
macro_optional_add_subdirectory( scripts )

View file

@ -17,4 +17,3 @@ endif()
set(CURRENT_LANG nb)
macro_optional_add_subdirectory( messages )
macro_optional_add_subdirectory( scripts )

View file

@ -1 +0,0 @@
add_subdirectory(kdelibs)

View file

@ -1 +0,0 @@
kde4_install_ts_files(${CURRENT_LANG} kdelibs4)

View file

@ -1,39 +0,0 @@
// 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("egenskap", 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.

View file

@ -17,4 +17,3 @@ endif()
set(CURRENT_LANG nl)
macro_optional_add_subdirectory( messages )
macro_optional_add_subdirectory( scripts )

View file

@ -1 +0,0 @@
add_subdirectory(kdelibs)

View file

@ -1 +0,0 @@
kde4_install_ts_files(${CURRENT_LANG} kdelibs4)

View file

@ -1,39 +0,0 @@
// 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("eigenschap", 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.

View file

@ -17,4 +17,3 @@ endif()
set(CURRENT_LANG nn)
macro_optional_add_subdirectory( messages )
macro_optional_add_subdirectory( scripts )

View file

@ -1 +0,0 @@
add_subdirectory(kdelibs)

View file

@ -1 +0,0 @@
kde4_install_ts_files(${CURRENT_LANG} step)

View file

@ -1,95 +0,0 @@
// Følgjande funksjonar er for å få rette artiklar og/eller norske ord på funksjonane i Step.
function bytUt (str)
{
switch(str)
{
case "Partikkel":
return "ein partikkel";
case "Ladd partikkel":
return "ein ladd partikkel";
case "Plate":
return "ei plate";
case "Boks":
return "boks";
case "Mangekant":
return "ein mangekant";
case "Fjør":
return "ei fjør";
case "Lineær motor":
return "ein lineær motor";
case "Sirkulær motor":
return "ein sirkulær motor";
case "Gass":
return "gass";
case "Fleksibel lekam":
return "ein fleksibel lekam";
case "Vektkraft":
return "ei vektkraft";
case "Tyngdekraft":
return "ei tyngdekraft";
case "Coulombkraft":
return "ei coulombkraft";
case "Anker":
return "eit anker";
case "Plugg":
return "ein plugg";
case "Stav":
return "ein stav";
case "Merknad":
return "ein merknad";
case "Målar":
return "ein målar";
case "Spor":
return "eit spor";
case "Graf":
return "ein graf";
case "Kontrollar":
return "ein kontrollar";
case "Particle":
return "ein partikkel";
case "ChargedParticle":
return "ein ladd partikkel";
case "Disk":
return "ei plate";
case "Box":
return "boks";
case "Polygon":
return "ein mangekant";
case "Spring":
return "ei fjør";
case "LinearMotor":
return "ein lineær motor";
case "CircularMotor":
return "ein sirkulær motor";
case "Gas":
return "gass";
case "SoftBody":
return "ein fleksibel lekam";
case "WeightForce":
return "ei vektkraft";
case "GravitationForce":
return "ei tyngdekraft";
case "CoulombForce":
return "ei coulombkraft";
case "Anchor":
return "eit anker";
case "Pin":
return "ein plugg";
case "Stick":
return "ein stav";
case "Note":
return "ein merknad";
case "Meter":
return "ein målar";
case "Tracer":
return "eit spor";
case "Graph":
return "ein graf";
case "Controller":
return "ein kontrollar";
default:
return str;
}
}
Ts.setcall("bytUt", bytUt);

View file

@ -1 +0,0 @@
kde4_install_ts_files(${CURRENT_LANG} kdelibs4)

View file

@ -1,101 +0,0 @@
// 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) {
return Ts.getProp(str,"bunden");
}
// Tilhøyrande pronomen (denne, dette, desse)
function pron(str) {
return Ts.getProp(str,"pron");
}
// 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);

View file

@ -1,185 +0,0 @@
# skjermelement.pmap
=|3D Earth Model|3D-globus|pron=denne|bunden=3D-globusen||
=|Activity Bar|Aktivitetslinje|pron=denne|bunden=aktivitetslinja||
=|aKademy Group Photo|Gruppebilete frå aKademy|pron=dette|bunden=gruppebiletet||
=|Albums|Album|pron=dette|bunden=albumet||
=|Amarok Search|Amarok-søk|pron=dette|bunden=Amarok-søket||
=|Analog Clock|Analog klokke|pron=denne|dobbelbest=den|bunden=analoge klokka||
=|Application Launcher Menu|Programstartmeny|pron=denne|bunden=menyen||
=|Application Launcher|Programstartar|pron=denne|bunden=programstartaren||
=|Applications|Program|pron=dette|bunden=programmet||
=|Battery Monitor|Batteriovervaking|pron=denne|bunden=batteriovervakinga||
=|BbalL|BbalL|pron=denne|bunden=BbalLen||
=|Binary Clock|Binærklokke|pron=denne|bunden=binærklokka||
=|BlankDesktop|Tomt skrivebord|pron=dette|bunden=skrivebordet||
=|Blue Marble|Blå kule|pron=denne|dobbelbest=den|bunden=blåe kula||
=|Bookmarks|Bokmerke|pron=dette|bunden=bokmerket||
=|Calculator|Kalkulator|pron=denne|bunden=kalkulatoren||
=|Calendar|Kalender|pron=denne|bunden=kalenderen||
=|Character Selector|Teiknveljar|pron=denne|bunden=teiknveljaren||
=|Chemical Data|Kjemiske data|dobbelbest=dei|pron=desse|bunden=kjemiske dataa||
=|Chemistry: Did You Know|Kjemi: Visste du at …|pron=desse|bunden=kjemitipsa||
=|Cloud|Sky|pron=denne|bunden=skya||
=|Cluttered Desktop|Rotete skrivebord|pron=dette|bunden=skrivebordet||
=|Color|Farge|pron=denne|bunden=fargen||
=|Color Picker|Fargeveljar|pron=denne|bunden=fargeveljaren||
=|Comic Strip|Teikneserie|pron=denne|bunden=teikneserien||
=|Command Line|Kommandolinje|pron=denne|bunden=kommandolinja||
=|Command Watch|Kommandoovervaking|pron=denne|bunden=kommandoovervakinga||
=|Commit Log|Innsendingslogg|pron=denne|bunden=innsendingsloggen||
=|Contacts|Kontaktar|pron=denne|bunden=kontaktoversikta||
=|Current Track Info|Informasjon om gjeldande spor|pron=denne|bunden=sporinformasjonen||
=|Darkstat|Darkstat|pron=dette|bunden=Darkstat-elementet||
=|Dashboard|Kontrollpult|pron=denne|bunden=kontrollpulten||
=|Dashboard Widget|Kontrollpult-element|pron=dette|bunden=kontrollpult-elementet||
=|Default Plasma Animator|Standard Plasma-animatør|pron=denne|bunden=Plasma-animatøren||
=|Desktop Sessions|Skrivebordssøkter|pron=denne|bunden=skrivebordsøktveljaren||
=|Desktop|Skrivebord|pron=dette|bunden=skrivebordet||
=|Device Notifier|Einingsvarslar|pron=denne|bunden=einingsvarslaren||
=|Dictionary|Ordbok|pron=denne|bunden=ordboka||
=|Digital Clock|Digital klokke|pron=denne|dobbelbest=den|bunden=digitale klokka||
=|Embedded Task Launcher|Innebygd oppgåvekøyrar|pron=denne|bunden=oppgåvekøyraren||
=|Embedded Titlebar|Innebygd tittellinje for det aktive vindauget|pron=denne|bunden=tittellinja||
=|Embedded Window|Innebygd vindauge|dobbelbest=det|pron=dette|bunden=innebygde vindauget||
=|Eyes|Auge|pron=desse|bunden=auga||
=|Facebook|Facebook|pron=dette|bunden=Facebook-elementet||
=|Fifteen Puzzle|Spelet femten|pron=dette|bunden=spelet||
=|File manager|Filhandsamar|pron=denne|bunden=filhandsamaren||
=|File Watcher|Filovervaking|pron=denne|bunden=filovervakinga||
=|Flickr|Flickr|pron=dette|bunden=Flickr-elementet||
=|Folder View|Mappevising|pron=denne|bunden=mappevisinga||
=|Fuzzy Clock|Uklar klokke|pron=denne|dobbelbest=den|bunden=uklare klokka||
=|Google Gadgets|Google-tenester|pron=denne|bunden=Google-tenesta||
=|GoogleGadgets|Google-tenester|pron=denne|bunden=Google-tenesta||
=|Grid Cell|Rutenett-celle|pron=denne|bunden=rutenett-cella||
=|Grid|Rutenett|pron=dette|bunden=rutenettet||
=|Home|Heim|pron=denne|bunden=heimen||
=|Icon|Ikon|pron=dette|bunden=ikonet||
=|Image|Bilete|pron=dette|bunden=biletet||
=|Incoming Message|Nye meldingar|pron=denne|bunden=meldingsvarslaren||
=|Internal Extender Container|Intern utvidingsbehaldar|pron=denne|bunden=utvidingsbehaldaren||
=|JavaScript Runner|JavaScript-køyrar|pron=denne|bunden=JavaScript-køyraren||
=|JavaScript Widget|JavaScript-element|pron=dette|bunden=JavaScript-elementet||
=|JavaApplet|Java-element|pron=dette|bunden=Java-elementet||
=|KAlgebra|KAlgebra|pron=denne|bunden=kalkulatoren||
=|Kate Session Applet|Kate-øktveljar|pron=denne|bunden=Kate-øktveljaren||
=|Kate Sessions|Kate-øktveljar|pron=denne|bunden=Kate-øktveljaren||
=|Kepas|Kepas|pron=dette|bunden=Kepas-elementet||
=|Keyboard Leds|Tastaturlys|pron=desse|bunden=tastaturlysa||
=|KGet barchart applet|KGet-søylediagram|pron=dette|bunden=søylediagrammet||
=|KGet panelbar applet|KGet-panellinje|pron=denne|bunden=panellinja||
=|KGet piechart applet|KGet-kakediagram|pron=dette|bunden=kakediagrammet||
=|Konq Profiles Applet|Konqueror-profilar|pron=denne|bunden=Konqueror-profilveljaren||
=|Konqueror Profiles|Konqueror-profilar|pron=denne|bunden=Konqueror-profilveljaren||
=|Konqueror Sessions|Konqueror-øktveljar|pron=denne|bunden=Konqueror-øktveljaren||
=|Konsolator|Konsoll|pron=denne|bunden=konsollen||
=|Konsole Profiles Applet|Konsoll-profilar|pron=denne|bunden=Konsoll-profilveljaren||
=|Konsole Profiles|Konsoll-profilar|pron=denne|bunden=Konsoll-profilveljaren||
=|Konsole Sessions|Konsoll-øktveljar|pron=denne|bunden=Konsoll-øktveljaren||
=|KTimetracker Applet|KTidtakar|pron=denne|bunden=tidtakaren||
=|KTorrent Plasma Applet|KTorrent|pron=dette|bunden=KTorrent-elementet||
=|Lancelot Launcher|Lancelot programstartar|pron=denne|bunden=programstartaren||
=|Lancelot Part|Lancelot-del|pron=denne|bunden=Lancelot-delen||
=|Last.Fm Events|Last.fm-hendingar|pron=desse|bunden=Last.fm-hendingane||
=|LCD Weather Station|Vêrstasjon|pron=denne|bunden=vêrstasjonen||
=|Leave A Note|Legg igjen kommentar|pron=denne|bunden=kommentartavla||
=|Life|Livsimulator|pron=denne|bunden=livsimulatoren||
=|Lock/Logout|Lås / logg ut|pron=dette|bunden=låse- og utloggingselementet||
=|Luna|Månefaseindikator|pron=denne|bunden=månefaseindikatoren||
=|Lyrics Applet|Songtekst|pron=denne|bunden=songtekstinformasjonen||
=|MacOS Dashboard Widgets|MacOS kontrollpult-element|pron=dette|bunden=kontrollpult-elementet||
=|Media Devices|Medieeiningar|pron=denne|bunden=medieeiningsoversikta||
=|Media Player|Mediespelar|pron=denne|bunden=mediespelaren||
=|Menubar|Menylinje|pron=denne|bunden=menylinja||
=|MID Control|Mobile Internett-einingar|pron=denne|bunden=einingskontrollen||
=|Moodbar|Stemningslinje|pron=denne|bunden=stemningslinja||
=|Nepomuk Desktop Search Runner|Skrivebordssøk|pron=dette|bunden=skrivebordssøket||
=|Network Monitor|Nettverksovervaking|pron=denne|bunden=nettverksovervakinga||
=|Network Settings|Nettverksinnstillingar|pron=desse|bunden=nettverksinnstillingane||
=|Networks|Nettverk|pron=dette|bunden=nettverket||
=|New Device Notifier|Varsling om nye einingar|pron=denne|bunden=einingsvarslinga||
=|News|Nyheiter|pron=denne|bunden=nyheitshentaren||
=|Notes|Notat|pron=dette|bunden=notatet||
=|Now Playing|Spelar no|pron=denne|bunden=musikkvisaren||
=|Pager|Skrivebordsbyttar|pron=denne|bunden=skrivebordsbyttaren||
=|Panel|Panel|pron=dette|bunden=panelet||
=|Panel Spacer|Panelmellomrom|pron=dette|bunden=mellomrommet||
=|Parley|Parley|pron=dette|bunden=ordkortet||
=|Pastebin|Teksttavle|pron=denne|bunden=teksttavla||
=|Paste|Tekstbitar|pron=desse|bunden=tekstbitane||
=|Pattern|Mønster|pron=dette|bunden=mønsteret||
=|Peachy Applet|Peachy-dokk|pron=denne|bunden=dokken||
=|Picture Frame|Biletramme|pron=denne|bunden=biletramma||
=|PlasmoBiff|PlasmoBiff|pron=dette|bunden=PlasmoBiff-elementet||
=|Playlist Information|Spelelisteinformasjon|pron=denne|bunden=spelelisteinformasjonen||
=|PowerSave|Straumsparar|pron=denne|bunden=straumspararen||
=|Previewer|Snøggvisar|pron=denne|bunden=snøggvisaren||
=|QEdje|QEdje|pron=dette|bunden=QEdje-elementet||
=|Quicklaunch|Snøggstartar|pron=denne|bunden=snøggstartaren||
=|Quiz|Spørjeleik|pron=denne|bunden=spørjeleiken||
=|Recent Documents|Nyleg brukte dokument|pron=denne|bunden=dokumentoversikta||
=|RSSNOW|RSSNOW|pron=denne|bunden=kjeldevisaren||
=|Sample Rotating Applet|Eksempel på roterande element|dobbelbest=det|pron=dette|bunden=roterande elementet||
=|Screen Management Applet|Skjermhandsamar|pron=denne|bunden=skjermhandsamaren||
=|Script|Skript|pron=dette|bunden=skriptet||
=|Service Info|Tenestemeny|pron=denne|bunden=tenestemenyen||
=|Show Dashboard|Vis kontrollpult|pron=dette|bunden=kontrollpult-ikonet||
=|Show Desktop|Vis skrivebord|pron=dette|bunden=skrivebordsikonet||
=|Show Widget Dashboard|Vis kontrollpult|pron=dette|bunden=kontrollpult-ikonet||
=|SlideInSlideOutExample|Gli inn og ut-eksempel|pron=dette|bunden=inn- og utglidingseksempelet||
=|Songkick Concert Information|Songkick konsertinformasjon|pron=denne|bunden=konsertinformasjonen||
=|Spell Checker Runner|Stavekontroll|pron=denne|bunden=stavekontrollen||
=|StockWatch|Aksjeovervaking|pron=denne|bunden=aksjeovervakinga||
=|System Command|Systemkommando|pron=denne|bunden=kommandokøyraren||
=|System Monitor - CPU|Systemovervaking prosessor|pron=denne|bunden=prosessorovervakinga||
=|System Monitor - Hard Disk|Systemovervaking harddisk|pron=denne|bunden=harddiskovervakinga||
=|System Monitor - Hardware Info|Systemovervaking maskinvareinfo|pron=denne|bunden=maskinvareovervakinga||
=|System Monitor - Network|Systemovervaking nettverk|pron=denne|bunden=nettverksovervakinga||
=|System Monitor|Systemovervaking|pron=denne|bunden=systemovervakinga||
=|System Monitor - Temperature|Systemovervaking temperatur|pron=denne|bunden=temperaturovervakinga||
=|System|System|pron=dette|bunden=systemet||
=|System Tray|Systemtrau|pron=dette|bunden=systemtrauet||
=|Task Manager|Oppgåvehandsamar|pron=denne|bunden=oppgåvehandsamaren||
=|The Earth|Jorda|pron=denne|bunden=jordkloden||
=|Timer|Tidsur|pron=dette|bunden=tidsuret||
=|Train Clock|Togklokke|pron=denne|bunden=togklokka||
=|Trashcan|Papirkorg|pron=denne|bunden=papirkorga||
=|Microblogging|Mikroblogging|pron=denne|bunden=mikroblogginga||
=|Unit Converter|Einingskonvertering|pron=denne|bunden=einingskonverteraren||
=|UnitConverter|Einingskonvertering|pron=denne|bunden=einingskonverteraren||
=|Video Player|Videospelar|pron=denne|bunden=videospelaren||
=|Video|Video|pron=denne|bunden=videospelaren||
=|Weather Applet|Vêrmelding|pron=denne|bunden=vêrmeldinga||
=|Webbrowser History|Nettlesarlogg|pron=denne|bunden=nettlesarloggen||
=|Web Browser|Nettlesar|pron=denne|bunden=nettlesaren||
=|Web Widgets|Vevelement|pron=dette|bunden=vevelementet||
=|Web Widget|Vevelement|pron=dette|bunden=vevelementet||
=|WiFi Signal Strength Meter|Signalstyrke for trådlaustilkopling|pron=denne|bunden=signalstyrkemålaren||
=|Wikipedia Applet|Wikipedia-element|pron=dette|bunden=Wikipedia-elementet||
=|Window Manager|Vindaugshandsamar|pron=denne|bunden=vindaugshandsamaren||
=|World Clock|Verdsklokke|pron=denne|bunden=verdsklokka||
=|Desktop Applet|Skrivebordselement|pron=dette|bunden=skrivebordselementet||
=|EncodeDecode|Kod og dekod|pron=dette|bunden=kodings- og dekodingselementet||
=|Example Falcon Runner|Eksempel på Falcon-køyrar|pron=denne|bunden=Falcon-køyraren||
=|Example Python Applet|Eksempel på Python-element|pron=dette|bunden=Python-elementet||
=|Example Python Runner|Eksempel på Python-køyrar|pron=denne|bunden=Python-køyraren||
=|Example Ruby Runner|Eksempel på Ruby-køyrar|pron=denne|bunden=Ruby-køyraren||
=|File Manager|Filhandsamar|pron=denne|bunden=filhandsamaren||
=|KMLDonkey|KMLDonkey|pron=dette|bunden=KMLDonkey-elementet||
=|Separator|Skilje|pron=dette|bunden=skiljet||
=|Test Applet|Testelement|pron=dette|bunden=testelementet||
=|Toggle Desktop Effects|Skrivebordseffektar på/av|pron=denne|bunden=effektbrytaren||
=|Web Shortcuts|Vevsnarvegar|pron=desse|bunden=vevsnarvegane||
=|Xesam Search|Xesam-søk|pron=dette|bunden=Xesam-søket||
=|Album cover|Plateomslag|pron=dette|bunden=plateomslaget||
=|Black Board|Tavle|pron=denne|bunden=tavla||
=|Bouncy Ball|Sprettball|pron=denne|bunden=sprettballen||
=|Bubblemon|Bobleovervaking|pron=denne|bunden=bobleovervakinga||
=|Collection|Samling|pron=denne|bunden=samlinga||
=|Globe|Globus|pron=denne|bunden=globusen||
=|Lyrics|Songtekst|pron=denne|bunden=songteksten||
=|Pager|Skrivebordsbytar|pron=denne|bunden=skrivebordsbytaren||
=|Playlist|Speleliste|pron=denne|bunden=spelelista||
=|Desktop Activitiy|Skrivebord-aktivitet|pron=dette|bunden=skrivebordet||
=|Newspaper Activitiy|Avis-aktivitet|pron=denne|bunden=avisa||
=|Folder View Activitiy|Mappevising-aktivitet|pron=denne|bunden=mappevisinga||

View file

@ -17,4 +17,3 @@ endif()
set(CURRENT_LANG pl)
macro_optional_add_subdirectory( messages )
macro_optional_add_subdirectory( scripts )

View file

@ -1 +0,0 @@
kde4_install_ts_files(${CURRENT_LANG} kgeography)

View file

@ -1,23 +0,0 @@
# general.pmap
# Polish language, general directory entries for KGeography.
# Contains:
# * cases of different region types
#
# Usage: =:directory entry:key=value::
# Case names are given in Polish.
=:Kraje:mianownik=Kraje:dopelniacz=Krajów:celownik=Krajom:biernik=Kraje:narzednik=Krajami:miejscownik=Krajach::
=:Regiony:mianownik=Regiony:dopelniacz=Regionów:celownik=Regionom:biernik=Regiony:narzednik=Regionami:miejscownik=Regionach::
=:Prowincje:mianownik=Prowincje:dopelniacz=Prowincji:celownik=Prowncjom:biernik=Prowincje:narzednik=Prowincjami:miejscownik=Prowincjach::
=:Okręgi:mianownik=Okręgi:dopelniacz=Okręgów:celownik=Okręgom:biernik=Okręgi:narzednik=Okręgami:miejscownik=Okręgach::
=:Prefektury:mianownik=Prefektury:dopelniacz=Prefektur:celownik=Prefekturom:biernik=Prefektury:narzednik=Prefekturami:miejscownik=Prefekturach::
=:Parafie:mianownik=Parafie:dopelniacz=Parafii:celownik=Parafiom:biernik=Parafie:narzednik=Parafiami:miejscownik=Parafiach::
=:Stany:mianownik=Stany:dopelniacz=Stanów:celownik=Stanom:biernik=Stany:narzednik=Stanami:miejscownik=Stanach::
=:Prowincje lub terytoria:mianownik=Prowincje lub terytoria:dopelniacz=Prowincji lub terytoriów:celownik=Prowincjom lub terytoriom:biernik=Prowincje lub terytoria:narzednik=Prowincjami lub terytoriami:miejscownik=Prowincjach lub terytoriach::
=:Dystrykty:mianownik=Dystrykty:dopelniacz=Dystryktów:celownik=Dystryktom:biernik=Dystrykty:narzednik=Dystryktami:miejscownik=Dystryktach::
=:Departamenty:mianownik=Departamenty:dopelniacz=Departamentów:celownik=Departamentom:biernik=Departamenty:narzednik=Departamentami:miejscownik=Deparamentach::
=:Regiony autonomiczne:mianownik=Regiony autonomiczne:dopelniacz=Regionów autonomicznych:celownik=Regionom autonomicznym:biernik=Regiony autonomiczne:narzednik=Regionami autonomicznymi:miejscownik=Regionach autonomicznych::
=:Landy:mianownik=Landy:dopelniacz=Landów:celownik=Landom:biernik=Landy:narzednik=Landami:miejscownik=Landach::
=:Gminy:mianownik=Gminy:dopelniacz=Gmin:celownik=Gminom:biernik=Gminy:narzednik=Gminami:miejscownik=Gminach::
=:Obwody:mianownik=Obwody:dopelniacz=Obwodów:celownik=Obwodom:biernik=Obwody:narzednik=Obwodami:miejscownik=Obwodach::
=:Komitaty:mianownik=Komitaty:dopelniacz=Komitatów:celownik=Komitatom:biernik=Komitaty:narzednik=Komitatami:miejscownik=Komitatach::
=:Województwa:mianownik=Województwa:dopelniacz=Województw:celownik=Województwom:biernik=Województwa:narzednik=Województwami:miejscownik=Województwach::

View file

@ -1,19 +0,0 @@
// Polish language functions for Kgeography
function getCase (prop, key) {
return Ts.getProp(key, prop);
}
function getCaseLower (prop, key) {
str = Ts.getProp(key, prop);
return str.toLowerCase();
}
// Directory entry with first capital letter
Ts.setcall("przypadek-wielkie", getCase);
// Lower case directory entry
Ts.setcall("przypadek-male", getCaseLower);
// Load cases for different region types
Ts.loadProps("general");

View file

@ -18,4 +18,3 @@ set(CURRENT_LANG ru)
macro_optional_add_subdirectory( messages )
macro_optional_add_subdirectory( data )
macro_optional_add_subdirectory( scripts )

View file

@ -1 +0,0 @@
add_subdirectory(kdelibs)

View file

@ -1 +0,0 @@
kde4_install_ts_files(${CURRENT_LANG} kdelibs4)

View file

@ -1,58 +0,0 @@
// kdelibs4.js of Russian KDE translation
// 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;
}
//// Returns the phrase with all uppercase characters
//// replaced with lowercase ones.
//function toLowerCase (str)
//{
// return str.toLowerCase();
//}
//--------------------------------------------------------------------
// This pair of functions can be used for storing/restoring
// any additional form. This is reasonable, because in most
// cases only 2 forms are used.
function setStash(text)
{
Ts.setProp(Ts.msgstrf(), "S", text);
}
function inStash(arg)
{
return Ts.getProp(arg, "S")
}
//--------------------------------------------------------------------
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("wo-prefix", without_prefix);
//Ts.setcall("tolower", toLowerCase);
Ts.setcall("store", setStash)
Ts.setcall("restore", inStash)
Ts.setcall("replace-pairs", replaceMultiplePairs)

View file

@ -18,4 +18,3 @@ set(CURRENT_LANG sr)
macro_optional_add_subdirectory( messages )
macro_optional_add_subdirectory( data )
macro_optional_add_subdirectory( scripts )

View file

@ -1,23 +0,0 @@
# Compile and install all pmap files.
find_package(PythonInterp)
if(PYTHONINTERP_FOUND)
set(_cmpscript ${CMAKE_CURRENT_SOURCE_DIR}/ts-pmap-compile.py)
file(GLOB_RECURSE _subtsfiles RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.pmap)
foreach(_subtsfile ${_subtsfiles})
get_filename_component(_subtspath ${_subtsfile} PATH)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${_subtspath})
set(_tsfile ${CMAKE_CURRENT_SOURCE_DIR}/${_subtsfile})
set(_tscfile ${CMAKE_CURRENT_BINARY_DIR}/${_subtsfile}c)
add_custom_command(OUTPUT ${_tscfile}
COMMAND ${PYTHON_EXECUTABLE} -B ${_cmpscript}
${_tsfile} ${_tscfile}
DEPENDS ${_tsfile})
string(REPLACE "/" ";" _subpathlst ${_subtsfile})
list(GET _subpathlst 1 _tsmodule)
install(FILES ${_tscfile}
DESTINATION ${KDE4_LOCALE_INSTALL_DIR}/${CURRENT_LANG}/LC_SCRIPTS/${_tsmodule})
set(_tscfiles ${_tscfiles} ${_tscfile})
string(REPLACE "/" "-" _target ${_subtsfile})
add_custom_target("pmapc-${CURRENT_LANG}_${_target}" ALL DEPENDS ${_tscfiles})
endforeach()
endif()

View file

@ -1,3 +0,0 @@
include(CMakeInclude.cmake)
add_subdirectory(kdebase)
add_subdirectory(kdelibs)

View file

@ -1 +0,0 @@
kde4_install_ts_files(${CURRENT_LANG} kfontinst)

View file

@ -1,53 +0,0 @@
// ------------------------------
// The headed name is a noun followed by attributes.
// There are two formats:
// "head, attr1 attr2..." (basic)
// "head (attr11 attr12 ..., attr21 attr22 ..., ...)" (compound)
function headed_name_to_case (gcase, composed)
{
var p = composed.lastIndexOf("("); // in case of (...) in the head
if (p < 0) {
// The basic format.
// Assume there may be no comma or attributes, so check thoroughly.
p = composed.lastIndexOf(","); // in case of comma in the head
if (p < 0) {
return getprop(composed, gcase);
}
var head = composed.substr(0, p);
var final = getprop(head, gcase);
var attrs = composed.substr(p + 1).split(" ").filter(Boolean);
if (attrs.length > 0) {
var gender = getprop(head, "_род");
var number = ""
if (hasprop(head, "_број")) {
number = getprop(head, "_број");
}
for (var i = 0; i < attrs.length; i += 1) {
attrs[i] = getprop(attrs[i], gcase + "-" + gender + number);
}
final += ", " + attrs.join(" ");
}
return final;
}
else {
// The compound format.
// Assume valid, skip checks.
var head = composed.substr(0, p);
var pp = composed.indexOf(")", p);
var attrs = composed.substring(p + 1, pp).split(",")
var gender = getprop(head, "_род");
var number = ""
if (hasprop(head, "_број")) {
number = getprop(head, "_број");
}
for (var i = 0; i < attrs.length; i += 1) {
var subattrs = attrs[i].split(" ").filter(Boolean);
for (var j = 0; j < subattrs.length; j += 1) {
subattrs[j] = getprop(subattrs[j], gcase + "-" + gender + number);
}
attrs[i] = subattrs.join(" ");
}
return getprop(head, gcase) + " (" + attrs.join(", ") + ")";
}
}
Ts.setcall("главорепи", headed_name_to_case);

View file

@ -1 +0,0 @@
kde4_install_ts_files(${CURRENT_LANG} kdelibs4)

View file

@ -1,613 +0,0 @@
// kdelibs4.js of Serbian KDE translation
// ------------------------------
// Property getter object contains the following data attributes:
// - callname: the name of the getter call as exposed to PO files
// - propkey: the key of the property as used in pmap files
// - overrides: dictionary of values of this property for certain phrases,
// which were manually set in the PO file
function Propgetter (callname, propkey)
{
this.callname = callname;
this.propkey = propkey;
this.overrides = {};
this.getbase = Propgetter_getbase;
this.getprop = Propgetter_getprop;
this.getprop_uc = Propgetter_getprop_uc;
this.getform = Propgetter_getform;
this.getform_uc = Propgetter_getform_uc;
}
// Base of property/form getter methods attached to getter objects.
// First the property for the given phrase is looked up in overrides,
// and then in Transcript property map (read from pmap files).
// If the property is not found, fallback is signalled if retself is false,
// otherwise the phrase itself is returned.
function Propgetter_getbase (phrase, retself)
{
if (phrase in this.overrides) {
return this.overrides[phrase];
}
else {
var prop = Ts.getProp(phrase, this.propkey)
if (prop != undefined)
return prop;
}
if (retself) {
return phrase;
}
throw Ts.fallback();
}
// Property getter method attached to getter objects.
function Propgetter_getprop (phrase)
{
return this.getbase(phrase, false);
}
// As previous, but returns the property with the first letter upcased.
function Propgetter_getprop_uc (phrase)
{
var val = this.getprop(phrase);
// The second argument is indicating the number of alternatives per
// alternatives directive -- in case the first letter is within
// an alternatives directive, all alternatives in that directive
// should be processed.
return Ts.toUpperFirst(val, 2);
}
// Form getter method attached to getter objects.
function Propgetter_getform (phrase)
{
return this.getbase(phrase, true);
}
// As previous, but returns the form with the first letter upcased.
function Propgetter_getform_uc (phrase)
{
var val = this.getform(phrase);
// See the comment in Propgetter_getprop_uc().
return Ts.toUpperFirst(val, 2);
}
// ------------------------------
// Exposing property getters to PO.
// Contains all global property getters.
var _propgetters_ = {};
// Set PO calls for given property getter object.
function setcalls_prop (pgetr)
{
// Default call.
Ts.setcall(pgetr.callname, pgetr.getprop, pgetr);
// "Open with $[callname %1]"
// Form call.
Ts.setcall(pgetr.callname + "/ф", pgetr.getform, pgetr);
// "Open with $[callname/ф %1]"
// The calls which capitalize the first letter of the value,
// named as the default calls but with the first letter capitalized.
// Only set if the first letter of the call name is actually lowercase.
callname_uc = Ts.toUpperFirst(pgetr.callname);
if (callname_uc != pgetr.callname) {
Ts.setcall(callname_uc, pgetr.getprop_uc, pgetr);
// "$[Callname %1] starting..."
Ts.setcall(callname_uc + "/ф", pgetr.getform_uc, pgetr);
// "$[Callname/ф %1] starting..."
}
// Record getter objects globally.
// Only for the original name, since the uppercase/form variants are not
// used when properties are being set (when the global store is needed).
_propgetters_[pgetr.callname] = pgetr;
}
// Set property value of phrase.
function setprop (phrase, pkey, pval)
{
// Either create new, or select existing getter.
var pgetr;
if (!_propgetters_[pkey]) {
// Populate new getter if not already defined.
pgetr = new Propgetter(pkey, pkey);
// Expose calls to PO.
setcalls_prop(pgetr);
}
else {
// Get previously defined getter.
pgetr = _propgetters_[pkey];
}
// Add the property into overrides of selected getter.
pgetr.overrides[phrase] = pval;
}
// Get property value of phrase.
// Signals fallback if the property/phrase combination is not defined.
function getprop (phrase, pkey)
{
if (_propgetters_[pkey]) {
return _propgetters_[pkey].getprop(phrase);
}
throw Ts.fallback();
}
// Get form of the phrase, or phrase itself if no such form.
function getform (phrase, fkey)
{
if (_propgetters_[fkey]) {
return _propgetters_[fkey].getform(phrase);
}
return phrase;
}
// Returns true if the phrase has the property.
function hasprop (phrase, pkey)
{
pg = _propgetters_[pkey];
if (!pg) {
return false;
}
if (!pg.overrides[phrase] && !Ts.getProp(phrase, pg.propkey)) {
return false;
}
return true;
}
// ------------------------------
// Predefined property getters.
// Call names and corresponding keys in pmap for predefined getters.
// The first letter in a call name should be lowercase; for each call
// another call with the first letter in uppercase will be defined,
// which will upcase the first letter in the property value before
// returning it.
var call_name_to_prop = {
// Nouns.
"_изв" : "_izvor", // english original
"_род" : "_rod", // gender
"_број" : "_broj", // number
"ном" : "n", // nominative case
"ген" : "g", // genitive case
"дат" : "d", // dative case
"аку" : "a", // accusative case
"инс" : "i", // instrumental case
"лок" : "l", // locative case
// Expressive variants.
"наредбено" : "_narb", // command
"списковно" : "_spis", // listed
// Adjectives.
"ном-м" : "nm", // nominative, masculine
"ген-м" : "gm", // genitive, masculine
"дат-м" : "dm", // dative, masculine
"аку-м" : "am", // accusative, masculine
"инс-м" : "im", // instrumental, masculine
"лок-м" : "lm", // locative, masculine
"ном-ж" : "nz", // nominative, feminine
"ген-ж" : "gz", // genitive, feminine
"дат-ж" : "dz", // dative, feminine
"аку-ж" : "az", // accusative, feminine
"инс-ж" : "iz", // instrumental, feminine
"лок-ж" : "lz", // locative, feminine
"ном-с" : "ns", // nominative, neuter
"ген-с" : "gs", // genitive, neuter
"дат-с" : "ds", // dative, neuter
"аку-с" : "as", // accusative, neuter
"инс-с" : "is", // instrumental, neuter
"лок-с" : "ls", // locative, neuter
"ном-мк" : "nmk", // nominative, masculine, plural
"ген-мк" : "gmk", // genitive, masculine, plural
"дат-мк" : "dmk", // dative, masculine, plural
"аку-мк" : "amk", // accusative, masculine, plural
"инс-мк" : "imk", // instrumental, masculine, plural
"лок-мк" : "lmk", // locative, masculine, plural
"ном-жк" : "nzk", // nominative, feminine, plural
"ген-жк" : "gzk", // genitive, feminine, plural
"дат-жк" : "dzk", // dative, feminine, plural
"аку-жк" : "azk", // accusative, feminine, plural
"инс-жк" : "izk", // instrumental, feminine, plural
"лок-жк" : "lzk", // locative, feminine, plural
"ном-ск" : "nsk", // nominative, neuter, plural
"ген-ск" : "gsk", // genitive, neuter, plural
"дат-ск" : "dsk", // dative, neuter, plural
"аку-ск" : "ask", // accusative, neuter, plural
"инс-ск" : "isk", // instrumental, neuter, plural
"лок-ск" : "lsk", // locative, neuter, plural
};
// Create getter objects for predefined getters.
for (cname in call_name_to_prop) {
// Create getter object as defined above.
var pgetr = new Propgetter(cname, call_name_to_prop[cname]);
// Expose calls to PO.
setcalls_prop(pgetr);
}
// Special handling for instrumental case, when used for tool application:
// don't pass it along as-is if same as nominative case of the phrase,
// since the sentence can get very different, yet semantically correct meaning.
// Instead, pass genitive case with the preposition "by the help of".
{
var pgetr = new Propgetter("инс-п", "i");
// Replace default getter method.
pgetr.getprop = function (phrase)
{
var prop_ins = _propgetters_["инс"].getprop(phrase);
var prop_nom = _propgetters_["ном"].getprop(phrase);
if (prop_ins == prop_nom) {
var prop_gen = _propgetters_["ген"].getprop(phrase);
return "помоћу " + prop_gen;
}
else {
return prop_ins;
}
}
setcalls_prop(pgetr);
}
// ------------------------------
// Set properties of the given phrase.
// The arguments to the call are the phrase, and a list of as many keys
// followed by their value as desired (i.e. number of elements must be even).
// Keys may also be comma-separated lists instead of a single key, in order
// not to have to repeat the same value when it corresponds to several keys.
//
// The property keys become property getters which can be used to retrive
// the value at a later point. If the getter for a given key already exists,
// the new value is added into its overrides.
//
// Returns undefined.
//
function setprops (phrase, keyvals)
{
if (keyvals.length % 2 != 0)
throw Error("Property setter given odd number of key/value elements.");
for (var i = 0; i < keyvals.length; i += 2) {
// Several keys may be given for a single prop, comma-separated.
var pkeys = keyvals[i].split(",");
var pval = keyvals[i + 1];
// Set the value to each property key.
for (var j = 0; j < pkeys.length; j += 1) {
setprop(phrase, pkeys[j], pval);
}
}
}
// Manually set properties of the phrase given by the finalized msgstr
// in the PO file and signal fallback.
// For the rest of the behavior, see setprops()
function setprops_msgstrf (/*...*/)
{
if (arguments.length % 2 != 0)
throw Error("Msgstr property setter given odd number of arguments.");
setprops(Ts.msgstrf(), arguments);
throw Ts.fallback();
}
Ts.setcall("својства", setprops_msgstrf);
// "$[callname prop1 value1 prop2 value2 ...]"
// Manually set properties of the phrase given by the finalized msgstr
// in the PO file and return empty string.
// For the rest of the behavior, see setprops()
function setprops_msgstrf_e (/*...*/)
{
if (arguments.length % 2 != 0)
throw Error("Msgstr property setter given odd number of arguments.");
setprops(Ts.msgstrf(), arguments);
return "";
}
Ts.setcall("својства/п", setprops_msgstrf_e);
// "$[callname prop1 value1 prop2 value2 ...]"
// ------------------------------
// Manual plural handling.
// Only first three forms, as the fourth form is most likely not needed
// when the plural needs to be scripted.
// The first argument should be the proper value, not the substitution string
// (i.e. do not call as $[~ %1 ...] but as $[~ ^1 ...]).
function plural3 (n, form0, form1, form2)
{
if (n % 10 == 1 && n % 100 != 11)
return form0;
else if (n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20))
return form1;
else
return form2;
}
Ts.setcall("множ", plural3);
// "...and %2 $[callname ^2 file fila files]"
// ------------------------------
// General choice-by-case.
function select_by_case (/* test, case1, choice1, ..., [default_choice] */)
{
if (arguments.length < 1)
throw Error("Choice by case takes at least the test value.");
for (var i = 1; i < arguments.length - 1; i += 2) {
if (arguments[0] == arguments[i]) {
return arguments[i + 1];
}
}
// No case matched, see if we have a default.
if ((arguments.length - 1) % 2 != 0) {
return arguments[arguments.length - 1];
} else {
throw Ts.fallback();
}
}
Ts.setcall("када", select_by_case);
// "Do you want to %1 $[callname %1 open 'this bar' access 'thisu baru']"
// ------------------------------
// Select one of three forms according to the gender of the phrase.
function select_by_gender (phrase, form_m, form_f, form_n)
{
// Select gender (throws fallback if phrase not found).
var gender = getprop(phrase, "_род");
if (gender == "м") {
return form_m;
}
else if (gender == "ж") {
return form_f;
}
else if (gender == "с") {
return form_n;
}
else {
throw Ts.fallback();
}
}
Ts.setcall("по-роду", select_by_gender);
// "Delete $[callname %1 this thisa thiso] %1?"
// ------------------------------
// Select one of two forms according to the number of the phrase.
function select_by_number (phrase, form_s, form_p)
{
// Select number (default to singular if not found).
var number = "ј";
if (hasprop(phrase, "_број")) {
number = getprop(phrase, "_број");
}
if (number == "к") { // plural
return form_p;
} else {
return form_s;
}
}
Ts.setcall("по-броју", select_by_number);
// "%1 $[callname %1 waalks waalk] by the river."
// ------------------------------
// Select one of six forms according to the gender and number of the phrase.
function select_by_number_gender (phrase,
form_ms, form_fs, form_ns, // singulars
form_mp, form_fp, form_np) // plurals
{
// Select number (default to singular if not found).
var number = "ј";
if (hasprop(phrase, "_број")) {
number = getprop(phrase, "_број");
}
if (number == "к") { // plural
return select_by_gender(phrase, form_mp, form_fp, form_np);
} else {
return select_by_gender(phrase, form_ms, form_fs, form_ns);
}
}
Ts.setcall("по-роду-броју", select_by_number_gender);
// "Delete $[callname %1 this thisa thiso thees theesa theeso] %1?"
// ------------------------------
// Select one the form according to the case and gender of another argument.
function select_by_case_gender (gcase, gphrase, phrase) // plurals
{
var gender = getprop(gphrase, "_род");
return getprop(phrase, gcase + "-" + gender);
}
Ts.setcall("по-падежу-роду", select_by_case_gender);
// "Delete $[callname case %2 %1] [case %2]?"
// ------------------------------
// Object to query whether a character is one of expected letters.
letter_arr = (""
+ "абвгдђежзијклљмнњопрстћуфхцчџшАБВГДЂЕЖЗИЈКЛЉМНЊОПРСТЋУФХЦЧЏШ"
+ "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
).split("");
letter = {};
for (var i = 0; i < letter_arr.length; ++i) {
letter[letter_arr[i]] = 1;
}
// ------------------------------
// Split phrase into words and intersections,
// where words are taken as contiguous segments of letters.
// The return value is a tuple of arrays of words and intersections.
// There is always one more of intersections than words, so that
// the original phrase can be reassembled as
// intrs[0] + words[0] + ... + intrs[n - 2] + words[n - 2] + intrs[n - 1].
function split_phrase (phrase)
{
intrs = [];
words = [];
var i = 0;
while (i < phrase.length) {
var i1 = i;
while (i1 < phrase.length && !letter[phrase[i1]]) {
++i1;
}
intrs.push(phrase.substring(i, i1));
var i2 = i1;
while (i2 < phrase.length && letter[phrase[i2]]) {
++i2;
}
if (i2 > i1) {
words.push(phrase.substring(i1, i2));
if (i2 == phrase.length) {
intrs.push("");
}
}
i = i2;
}
return [words, intrs];
}
// ------------------------------
// Apply call to each word in the phrase.
// The call must accept the word as the last argument.
function apply_to_word (/* phrase, callname, ...args before word... */)
{
if (arguments.length < 2)
throw Error("Applicator takes at least the phrase and the call name.");
phrase = arguments[0];
calln = arguments[1];
cargs = [calln];
for (var i = 2; i < arguments.length; ++i) {
cargs.push(arguments[i]);
}
lst = split_phrase(phrase);
words = lst[0];
intrs = lst[1];
nwords = [];
for (var i = 0; i < words.length; ++i) {
cargs.push(words[i]);
nwords.push(Ts.acall.apply(Ts, cargs));
cargs.pop();
}
str = ""
for (var i = 0; i < nwords.length; ++i) {
str += intrs[i] + nwords[i];
}
str += intrs[nwords.length];
return str;
}
Ts.setcall("на-реч", apply_to_word);
// "Repeat until $[callname casecall %1], and on this date..."
// ------------------------------
// Decline person's name into given case.
// Parse name into first and last name, determine gender according to
// first name, decline according to gender and assemble.
// If name cannot be fully declined, returns original name if retself is true,
// otherwise signals fallback.
// TODO: Just delegates to ordinary getters for the time being.
function decline_person_name_base (gcase, fullname, retself)
{
if (retself) {
return getform(fullname, gcase);
}
else {
return getprop(fullname, gcase);
}
}
// Decline person's name, signal fallback if not possible.
function decline_person_name (gcase, fullname)
{
return decline_person_name_base(gcase, fullname, false);
}
Ts.setcall("именски", decline_person_name);
// "You have invited $[callname case %1] to the party."
// Decline person's name, return as-is if not possible.
function decline_person_name_nf (gcase, fullname)
{
return decline_person_name_base(gcase, fullname, true);
}
Ts.setcall("именски/ф", decline_person_name_nf);
// "You have invited $[callname case %1] to the party."
// ------------------------------
// Match style attributes to gender of the font family name,
// for the requested grammatical case.
// The message must have dynamic context 'family' equal to the family name,
// so that its gender can be obtained.
// Style string may be composed of several space-separated attributes.
// Family name and style attributes are expected in the nominative case.
// Returns composed style string in the proper gender/case.
function match_style_to_font (compstyle, gcase)
{
var family = Ts.dynctxt("family");
if (!family) {
throw Ts.fallback();
}
var gender = getprop(family, "_род");
var number = ""
if (hasprop(family, "_број")) {
number = getprop(family, "_број");
}
var styles = compstyle.split(" ");
var final = "";
for (var i = 0; i < styles.length; i += 1) {
final += " " + getprop(styles[i], gcase + "-" + gender + number);
}
return final.substr(1); // to remove initial space
}
Ts.setcall("стил-према-фонту", match_style_to_font);
// ------------------------------
// 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);
// ------------------------------
// Load property maps.
Ts.loadProps("trapnakron");
// // Do not load fonts pmap if the user requested so.
// if (!Ts.getConfBool("translate-fonts", true)) {
// }

File diff suppressed because it is too large Load diff

View file

@ -1,296 +0,0 @@
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# Script that compiles Transcript property maps from text to binary format.
# Binary format greately speeds up loading of property maps at runtime.
# http://techbase.kde.org/Localization/Concepts/Transcript
#
# Usage:
# ts-pmap-compile.py file.pmap file.pmapc
#
# Works with Python >= 2.6 and >= 3.0.
import locale
import os
import re
import struct
import sys
cmdname = os.path.basename(sys.argv[0])
lenc = locale.getpreferredencoding()
def error (msg, code=1):
sys.stderr.write(("%s: error: %s\n" % (cmdname, msg)).encode(lenc))
sys.exit(code)
def count_lines (text, tolen):
return text.count("\n", 0, tolen) + 1
def norm_keystr (text):
# Must do the same as normKeystr() in kdelibs/kdecore/ktranscript.cpp
return re.sub("[\s&]", "", text).lower()
def trim_smart (text):
return re.sub("^\s*\n|\n\s*$", "", text)
def read_pmap (fname):
# Adapted directly from C++ code.
fh = open(fname, "rb")
s = "".join([l.decode("utf8") for l in fh.readlines()])
fh.close()
s_nextEntry, s_nextKey, s_nextValue = 1, 2, 3
pmap = []
class END_PROP_PARSE (Exception): pass
try:
slen = len(s)
state = s_nextEntry
ekeys = [] # holds keys for current entry
props = [] # holds properties for current entry
pkey = "" # holds current property key
i = 0
while True:
i_checkpoint = i
if state == s_nextEntry:
while s[i].isspace():
i += 1
if i >= slen: raise END_PROP_PARSE
if i + 1 >= slen:
error("unexpected end of file %s" % fname)
if s[i] != '#':
# Separator characters for this entry.
key_sep = s[i]
prop_sep = s[i + 1]
if key_sep.isalpha() or prop_sep.isalpha():
error("separator characters must not be letters "
"at %s:%d" % (fname, count_lines(s, i)))
# Reset all data for current entry.
ekeys = []
props = []
pkey = ""
i += 2
state = s_nextKey
else:
# This is a comment, skip to EOL, don't change state.
while s[i] != '\n':
i += 1
if i >= slen: raise END_PROP_PARSE
elif state == s_nextKey:
ip = i
# Proceed up to next key or property separator.
while s[i] != key_sep and s[i] != prop_sep:
i += 1
if i >= slen: raise END_PROP_PARSE
if s[i] == key_sep:
# This is a property key,
# record for when the value gets parsed.
pkey = norm_keystr(s[ip:i])
i += 1
state = s_nextValue
else: # if (s[i] == prop_sep
# This is an entry key, or end of entry.
ekey = norm_keystr(s[ip:i])
if ekey:
# An entry key.
ekeys.append(ekey)
i += 1
state = s_nextKey
else:
# End of entry.
if len(ekeys) < 1:
error("no entry key for entry ending "
"at %s:%d" % (fname, count_lines(s, i)))
# Put collected properties into global store.
pmap.append((ekeys, props))
i += 1
state = s_nextEntry
elif state == s_nextValue:
ip = i
# Proceed up to next property separator.
while s[i] != prop_sep:
i += 1
if i >= slen: raise END_PROP_PARSE
if s[i] == key_sep:
error("property separator inside property value "
"at %s:%d" % (fname, count_lines(s, i)))
# Extract the property value and store the property.
pval = trim_smart(s[ip:i])
props.append((pkey, pval))
i += 1
state = s_nextKey
else:
error("internal error 10 "
"at %s:%d" % (fname, count_lines(s, i)))
# To avoid infinite looping and stepping out.
if i == i_checkpoint or i >= slen:
error("internal error 20 "
"at %s:%d" % (fname, count_lines(s, i)))
except END_PROP_PARSE:
if state != s_nextEntry:
error("unexpected end of file in %s" % fname)
return pmap
# Convert integer to 32-bit big-endian byte sequence.
def int_bin_32 (val):
return struct.pack(">i", val)[-4:]
# Convert integer to 64-bit big-endian byte sequence.
def int_bin_64 (val):
return struct.pack(">q", val)[-8:]
# Convert string to UTF-8 byte sequence,
# preceded by its length in 32-bit big-endian.
def str_bin_32 (val):
val_enc = val.encode("utf8")
return int_bin_32(len(val_enc)) + val_enc
# Concatenate byte sequence.
def catb (seq):
return bytes().join(seq)
# Binary map format 00.
def write_map_bin_00 (fh, pmap):
# Magic bytes.
fh.write("TSPMAP00".encode("ascii"))
# Number of entries.
fh.write(int_bin_32(len(pmap)))
for ekeys, props in pmap:
# Number of phrase keys and all phrase keys.
fh.write(int_bin_32(len(ekeys)))
for ekey in ekeys:
fh.write(str_bin_32(ekey))
# Number of properties and all properties.
fh.write(int_bin_32(len(props)))
for pkey, pval in props:
fh.write(str_bin_32(pkey))
fh.write(str_bin_32(pval))
# Binary map format 01.
def write_map_bin_01 (fh, pmap):
offset0 = 0
binint32len = len(int_bin_32(0))
binint64len = len(int_bin_64(0))
# Magic bytes.
mbytestr = "TSPMAP01".encode("ascii")
offset0 += len(mbytestr)
# Compute length of binary representation of all entry keys
# additionally equipped with offsets to corresponding property blobs.
offset0 += binint32len
offset0 += binint64len
binekeyslen = 0
for ekeys, d1 in pmap:
binekeyslen += sum([len(str_bin_32(x)) + binint64len for x in ekeys])
offset0 += binekeyslen
# Construct binary representations of all unique property keys.
offset0 += binint32len
offset0 += binint64len
allpkeys = set()
for d1, props in pmap:
allpkeys.update([x[0] for x in props])
binpkeys = catb(map(str_bin_32, sorted(allpkeys)))
offset0 += len(binpkeys)
# Construct binary representations of properties for each entry.
# Compute byte offsets for each of these binary blobs, in the given order.
binprops = []
plength = 0
poffset = offset0 + binint32len
for d1, props in pmap:
cbinprops = catb(sum([list(map(str_bin_32, x)) for x in props], []))
cbinprops = catb([int_bin_32(len(props)), int_bin_32(len(cbinprops)),
cbinprops])
offset = poffset + plength
binprops.append([cbinprops, offset])
poffset = offset
plength = len(cbinprops)
# Construct binary representations of all entry keys with property offsets.
allekeys = []
binekeys = []
for (ekeys, d1), (d2, offset) in zip(pmap, binprops):
binoffset = int_bin_64(offset)
cbinekeys = catb([str_bin_32(x) + binoffset for x in ekeys])
binekeys.append(cbinekeys)
allekeys.extend(ekeys)
binekeys = catb(binekeys)
assert(binekeyslen == len(binekeys))
# Write everything out.
fh.write(mbytestr)
fh.write(int_bin_32(len(allekeys)))
fh.write(int_bin_64(len(binekeys)))
fh.write(binekeys)
fh.write(int_bin_32(len(allpkeys)))
fh.write(int_bin_64(len(binpkeys)))
fh.write(binpkeys)
fh.write(int_bin_32(len(pmap)))
for cbinprops, d1 in binprops:
fh.write(cbinprops)
def main ():
if len(sys.argv) != 3:
error("usage: %s INPUT_FILE OUTPUT_FILE" % cmdname)
try:
import psyco
psyco.full()
except ImportError:
pass
ifile = sys.argv[1]
ofile = sys.argv[2]
pmap = read_pmap(ifile)
ofh = open(ofile, "wb")
write_map_bin_01(ofh, pmap)
ofh.close()
if __name__ == '__main__':
main()

View file

@ -17,4 +17,3 @@ endif()
set(CURRENT_LANG sr@ijekavian)
macro_optional_add_subdirectory( messages )
macro_optional_add_subdirectory( scripts )

View file

@ -1,23 +0,0 @@
# Compile and install all pmap files.
find_package(PythonInterp)
if(PYTHONINTERP_FOUND)
set(_cmpscript ${CMAKE_CURRENT_SOURCE_DIR}/ts-pmap-compile.py)
file(GLOB_RECURSE _subtsfiles RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.pmap)
foreach(_subtsfile ${_subtsfiles})
get_filename_component(_subtspath ${_subtsfile} PATH)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${_subtspath})
set(_tsfile ${CMAKE_CURRENT_SOURCE_DIR}/${_subtsfile})
set(_tscfile ${CMAKE_CURRENT_BINARY_DIR}/${_subtsfile}c)
add_custom_command(OUTPUT ${_tscfile}
COMMAND ${PYTHON_EXECUTABLE} -B ${_cmpscript}
${_tsfile} ${_tscfile}
DEPENDS ${_tsfile})
string(REPLACE "/" ";" _subpathlst ${_subtsfile})
list(GET _subpathlst 1 _tsmodule)
install(FILES ${_tscfile}
DESTINATION ${KDE4_LOCALE_INSTALL_DIR}/${CURRENT_LANG}/LC_SCRIPTS/${_tsmodule})
set(_tscfiles ${_tscfiles} ${_tscfile})
string(REPLACE "/" "-" _target ${_subtsfile})
add_custom_target("pmapc-sr_ijekavian_${_target}" ALL DEPENDS ${_tscfiles})
endforeach()
endif()

Some files were not shown because too many files have changed in this diff Show more