rendered paste body#!/usr/bin/perl -w
eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
if 0; # not running under some shell
#----IMPORTANT--------------------------------------------------------
# This script may contain bugs so use with caution.
# If you find bugs or have improvement suggestions, please drop me an email :)
#----Information-------------------------------------------------------
#This script is part of the Root Actions -servicemenu for kde.
#Written by kubicle <mail.kubicle@gmail.com>
#----Disclaimer-------------------------------------------------------
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.
#----Instructions-----------------------------------------------------
#This script should be placed along your $PATH for the servicemenu to work, some possible locations are:
# /usr/local/bin and /usr/bin.
#Also make sure the script is executable for the users that shall use the servicemenu.
#---------------------------------------------------------------------
########### DIALOG MESSAGES, TRANSLATABLE STRINGS #############
sub copy_dialog_msgs {
&get_kde_language;
%COPYTITLE = (
"ca" => "Copia",
"cs" => "Koprovat",
"el" => "",
"en_US" => "Copy",
"fi" => "Kopioi",
"fr" => "Copier",
"gl" => "Copiar",
"hu" => "Msols",
"it" => "Copia",
"lt" => "Kopijuoti",
"nb" => "Kopier",
"nn" => "Kopier",
"pl" => "Kopiuj",
"pt" => "Copiar",
"pt_PT" => "Copiar",
"ru" => "",
"sr" => "",
"sr\@latin" => "Kopiraj",
"tr" => "Kopyala",
"xx" => "Your string, xx is the country abbreviation"
);
%COPYMSG = (
"ca" => "Nom de fitxer:",
"cs" => "Nzev souboru:",
"el" => " ",
"en_US" => "Filename:",
"fi" => "Tiedoston nimi",
"fr" => "Nom du fichier:",
"gl" => "Nome do ficheiro:",
"hu" => "Fjl neve:",
"it" => "Nome del file:",
"lt" => "Failo pavadinimas:",
"nb" => "Filnavn:",
"nn" => "Filnamn:",
"pl" => "Nazwa pliku:",
"pt" => "Nome do ficheiro:",
"pt_PT" => "Nome do ficheiro:",
"ru" => " :",
"sr" => " :",
"sr\@latin" => "Ime fajla:",
"tr" => "Dosya ad:",
"xx" => "Your string, xx is the country abbreviation"
);
$COPYTITLE = ($COPYTITLE{"$KDELANG"} or $COPYTITLE{"$KDELANGSHT"} or $COPYTITLE{"en_US"});
$COPYMSG = ($COPYMSG{"$KDELANG"} or $COPYMSG{"$KDELANGSHT"} or $COPYMSG{"en_US"});
return 0;
}
sub rename_dialog_msgs {
&get_kde_language;
%RENAMETITLE = (
"ca" => "Mou/Reanomena",
"cs" => "Pesunout/Pejmenovat",
"de" => "Umbenennen",
"el" => "/",
"en_US" => "Move/Rename",
"es" => "Renombrar",
"fi" => "Nime uudelleen",
"fr" => "Renommer",
"gl" => "Cambiar o nome",
"hu" => "Mozgats/tnevezs",
"it" => "Muovi/Rinomina",
"lt" => "Perkelti/pervadinti",
"nb" => "Flytt/Omdp",
"nl" => "Hernoemen",
"nn" => "Flytt/Omdyp",
"pl" => "Przenie/Zmie nazw",
"pt" => "Mudar o nome",
"pt_PT" => "Mudar o nome",
"ru" => "/",
"sr" => "/",
"sr\@latin" => "Premesti/preimenuj",
"tr" => "Ta/Yeniden simlendir",
"xx" => "Your string, xx is the country abbreviation"
);
%RENAMEMSG = (
"ca" => "Nom nou:",
"cs" => "Nov jmno:",
"de" => "Neuer Name:",
"el" => " :",
"en_US" => "New name:",
"es" => "Nombre nuevo:",
"fi" => "Uusi nimi:",
"fr" => "Nouveau nom :",
"gl" => "Novo nome:",
"hu" => "j nv:",
"it" => "Nuovo nome:",
"lt" => "Naujas pavadinimas:",
"nb" => "Nytt navn:",
"nl" => "Nieuwe naam:",
"nn" => "Nytt namn:",
"pl" => "Nowa nazwa:",
"pt" => "Novo nome:",
"pt_PT" => "Novo nome:",
"ru" => " :",
"sr" => " :",
"sr\@latin" => "Novo ime:",
"tr" => "Yeni isim:",
"xx" => "Your string, xx is the country abbreviation"
);
$RENAMETITLE = ($RENAMETITLE{"$KDELANG"} or $RENAMETITLE{"$KDELANGSHT"} or $RENAMETITLE{"en_US"});
$RENAMEMSG = ($RENAMEMSG{"$KDELANG"} or $RENAMEMSG{"$KDELANGSHT"} or $RENAMEMSG{"en_US"});
return 0;
}
sub delete_dialog_msgs {
&get_kde_language;
%DELETETITLE = (
"ca" => "Avs",
"cs" => "Varovn",
"de" => "Achtung",
"el" => "",
"en_US" => "Warning",
"es" => "Aviso",
"fi" => "Varoitus",
"fr" => "Attention",
"gl" => "Aviso",
"hu" => "Figyelem",
"it" => "Attenzione",
"lt" => "Perspjimas",
"nb" => "Advarsel",
"nl" => "Waarschuwing",
"nn" => "Advarsel",
"pl" => "Ostrzeenie",
"pt" => "Ateno",
"pt_PT" => "Ateno",
"ru" => "",
"sr" => "",
"sr\@latin" => "Upozorenje",
"tr" => "Uyar",
"xx" => "Your string, xx is the country abbreviation"
);
%DELETEMSG = (
"ca" => "Esteu segur que voleu esborrar-lo completament?: ",
"cs" => "Jste si jisti, e chcete nenvratn smazat: ",
"de" => "Mchten Sie die folgenden Dateien dauerhaft lschen: ",
"el" => " : ",
"en_US" => "Are you sure you wish to permanently delete: ",
"es" => "Estas seguro de querer borrarlo por completo?",
"fi" => "Haluatko varmasti kokonaan poistaa: ",
"fr" => "tes-vous sr de vouloir supprimer dfinitivement :",
"gl" => "Est seguro de que o quere borrar definitivamente?",
"hu" => "Biztosan trlni akarod?",
"it" => "Sei sicuro di voler eliminare in modo definitivo: ",
"lt" => "Ar tikrai norite galutinai itrinti: ",
"nb" => "Er du sikker p at du vil slette permanent: ",
"nl" => "Bent u zeker dat u permanent wil verwijderen: ",
"nn" => "Er du sikker p at du vil slette permanent: ",
"pl" => "Czy na pewno chcesz nieodwracalnie usun: ",
"pt" => "Tem a certeza que quer apagar definitivamente? ",
"pt_PT" => "Tem a certeza que quer apagar definitivamente? ",
"ru" => " , :",
"sr" => " : ",
"sr\@latin" => "elite li zaista da obriete: ",
"tr" => "Bu dosyay kalc olarak silmek istediinize emin misiniz: ",
"xx" => "Your string, xx is the country abbreviation"
);
$DELETETITLE = ($DELETETITLE{"$KDELANG"} or $DELETETITLE{"$KDELANGSHT"} or $DELETETITLE{"en_US"});
$DELETEMSG = ($DELETEMSG{"$KDELANG"} or $DELETEMSG{"$KDELANGSHT"} or $DELETEMSG{"en_US"});
return 0;
}
sub ownership_dialog_msgs {
&get_kde_language;
%OWNERTITLE = (
"ca" => "Estableix UID:GID",
"cs" => "Nastavit UID:GIG",
"de" => "Eigentmer ndern",
"el" => " UID:GID",
"en_US" => "Set UID:GID",
"es" => "Establecer UID:GID",
"fi" => "Anna UID:GID",
"fr" => "Modifier UID:GID",
"gl" => "Establecer UID:GID",
"hu" => "UID:GID belltsa",
"it" => "Cambia UID:GID",
"lt" => "Nustatyti UID:GID",
"nb" => "Sett UID:GID",
"nl" => "Wijzig UID:GID",
"nn" => "Set UID:GID",
"pl" => "Ustawienie UID:GID",
"pt" => "Atribuir UID:GID",
"pt_PT" => "Atribuir UID:GID",
"ru" => " UID:GID",
"sr" => " :",
"sr\@latin" => "Postavi UID:GID",
"tr" => "UID:GID'i ayarla",
"xx" => "Your string, xx is the country abbreviation"
);
%OWNERMSG = (
"ca" => "Canvia propietari a: ",
"cs" => "Zmnit vlastnka na: ",
"de" => "Neuer Eigentmer: ",
"el" => " : ",
"en_US" => "Change ownership to: ",
"es" => "Cambiar propietario a: ",
"fi" => "Vaihda omistajaksi: ",
"fr" => "Attribuer : ",
"gl" => "Facer dono a: ",
"hu" => "Fjl tulajdonosnak megvltoztatsa: ",
"it" => "Cambia proprietario: ",
"lt" => "Pakeisti nuosavyb : ",
"nb" => "Sett eierskap til: ",
"nl" => "Wijzig eigenaar in: ",
"nn" => "Set eigarskap til: ",
"pl" => "Zmie wasno na: ",
"pt" => "Alterar dono para: ",
"pt_PT" => "Alterar dono para: ",
"ru" => " :",
"sr" => " : ",
"sr\@latin" => "Promeni vlasnika: ",
"tr" => "Dosyann sahibini deitir: ",
"xx" => "Your string, xx is the country abbreviation"
);
$OWNERTITLE = ($OWNERTITLE{"$KDELANG"} or $OWNERTITLE{"$KDELANGSHT"} or $OWNERTITLE{"en_US"});
$OWNERMSG = ($OWNERMSG{"$KDELANG"} or $OWNERMSG{"$KDELANGSHT"} or $OWNERMSG{"en_US"});
return 0;
}
sub recursion_dialog_msgs {
&get_kde_language;
%RECURSIONTITLE = (
"ca" => "Aplico els canvis recursivament?",
"cs" => "Aplikovat zmny na vechny?",
"el" => " ;",
"en_US" => "Apply changes recursively?",
"fi" => "Toteutetaanko muutokset rekursiivisesti?",
"fr" => "Appliquer rcursivement les modifications ?",
"gl" => "Aplicar os cambios de forma recursiva?",
"hu" => "A vltozsok az alknyvtr(ak)ra is kiterjedjenek?",
"it" => "Applico i cambiamenti?",
"lt" => "Taikyti pakeitimus rekursyviai?",
"nb" => "Endre rekursivt?",
"nn" => "Endra rekursivt?",
"pl" => "Wprowadzi zmiany rekursywnie?",
"pt" => "Aplicar alteraes recursivamente?",
"pt_PT" => "Aplicar alteraes recursivamente?",
"ru" => " ?",
"sr" => " ?",
"sr\@latin" => "Da primenim izmene rekurzivno?",
"tr" => "Deiiklikler zyinelemeli olarak uygulansn m?",
"xx" => "Your string, xx is the country abbreviation"
);
%RECURSIONMSG = (
"ca" => "Voleu aplicar els canvis recursivament a totes les subcarpetes i fitxers? \n(Useu-lo amb precauci)",
"cs" => "Jste si jisti, e chcete zmny aplikovat na vechny soubory a podsloky? \n(Pouvejte z rozmyslem)",
"el" => " - ; \n ( )",
"en_US" => "Do you wish to apply the changes recursively to all sub-folders and files? \n(Use with caution)",
"fi" => "Haluatko ulottaa muutokset rekursiivisesti alikansioihin ja tiedostoihin? \n(Kyt varoen)",
"fr" => "Voulez-vous appliquer les modifications rcursivement tous les rpertoires et fichiers ? \n( utiliser avec prcaution)",
"gl" => "Quere aplicar os cambios de forma recursiva a todos os cartafoles e ficheiros contidos?\n(sese con coidado)",
"hu" => "Szeretnd, ha a vltoztatsok minden alknyvtrra s az ott lv fjlokra is kiterjedjenek? \n(Lgy vatos)",
"it" => "Vuoi applicare i cambiamenti a tutte le sottocartelle e ai files? \n(Da utilizzare con cautela)",
"lt" => "Ar norite pritaikyti pakeitums rekursyviai visiems paaplankiams ir failams? \n(Naudoti atsargiai)",
"nb" => "Vil du gjre endringene gjeldende rekursivt i alle undermapper og filer? \n(Vr forsiktig)",
"nn" => "Vil du gjere endringane gjeldande rekursivt i alle undermapper og filer? \n(Vr forsiktig)",
"pl" => "Czy chcesz wprowadzi zmiany rekursywnie dla wszystkich podfolderw i plikw? \n(Uywaj z ostronoci)",
"pt" => "Deseja aplicar as alteraes recursivamente a todos os sub-directrios e ficheiros? \n(Usar com cuidado)",
"pt_PT" => "Deseja aplicar as alteraes recursivamente a todos os sub-directrios e ficheiros? \n(Usar com cuidado)",
"ru" => " ",
"sr" => " ? \n( )",
"sr\@latin" => "elite li da primenite izmene rekurzivno na sve potfascikle i fajlove? \n(Koristite ovo paljivo)",
"tr" => "Deiiklikleri tm altdizinlere ve dosyalara zyinelemeli olarak uygulamak istiyor musunuz? \n(Dikkatli kullann",
"xx" => "Your string, xx is the country abbreviation"
);
$RECURSIONTITLE = ($RECURSIONTITLE{"$KDELANG"} or $RECURSIONTITLE{"$KDELANGSHT"} or $RECURSIONTITLE{"en_US"});
$RECURSIONMSG = ($RECURSIONMSG{"$KDELANG"} or $RECURSIONMSG{"$KDELANGSHT"} or $RECURSIONMSG{"en_US"});
return 0;
}
sub root_reminder_msgs {
&get_kde_language;
%ROOTREMINDER = (
"ca" => "OBERT COM A ROOT",
"cs" => "OTEVENO JAKO ROOT",
"el" => " ",
"en_US" => "OPENED AS ROOT",
"fi" => "AVATTU PKYTTJN",
"fr" => "OUVERT EN ROOT",
"gl" => "ABERTO COMA ROOT",
"hu" => "RENDSZERGAZDAKNT MEGNYITVA",
"it" => "APERTO COME ROOT",
"lt" => "ATVERTA ROOT TEISMIS",
"nb" => "PNET SOM ROOT",
"nn" => "OPNA SOM ROOT",
"pl" => "OTWARTO JAKO ADMINISTRATOR",
"pt" => "ABERTO COMO ROOT",
"pt_PT" => "ABERTO COMO ROOT",
"ru" => " root",
"sr" => " ",
"sr\@latin" => "OTVORENO KAO KOREN",
"tr" => "YETKL KULLANICI OLARAK AILDI",
"xx" => "Your string, xx is the country abbreviation"
);
$ROOTREMINDER = ($ROOTREMINDER{"$KDELANG"} or $ROOTREMINDER{"$KDELANGSHT"} or $ROOTREMINDER{"en_US"});
return 0;
}
sub open_dialog_msgs {
&get_kde_language;
%OPENTITLE = (
"ca" => "Programa",
"cs" => "Program",
"de" => "Programm",
"el" => "",
"en_US" => "Program",
"es" => "Programa",
"fi" => "Ohjelma",
"fr" => "Programme",
"gl" => "Programa",
"hu" => "Program",
"it" => "Programma",
"lt" => "Programa",
"nb" => "Program",
"nl" => "Programma",
"nn" => "Program",
"pl" => "Program",
"pt" => "Programa",
"pt_PT" => "Programa",
"ru" => "",
"sr" => "",
"sr\@latin" => "Program",
"tr" => "Program",
"xx" => "Your string, xx is the country abbreviation"
);
%OPENMSG = (
"ca" => "Obre amb: ",
"cs" => "Otevt s: ",
"de" => "ffnen mit: ",
"el" => " : ",
"en_US" => "Open with: ",
"es" => "Abrir con: ",
"fi" => "Avaa ohjelmalla: ",
"fr" => "Ouvrir avec : ",
"gl" => "Abrir con: ",
"hu" => "Megnyits ezzel: ",
"it" => "Apri con: ",
"lt" => "Atverti su: ",
"nb" => "pne med: ",
"nl" => "Openen met: ",
"nn" => "Opna med: ",
"pl" => "Otwrz z: ",
"pt" => "Abrir com: ",
"pt_PT" => "Abrir com: ",
"ru" => " : ",
"sr" => " : ",
"sr\@latin" => "Otvori pomou: ",
"tr" => "Birlikte a: ",
"xx" => "Your string, xx is the country abbreviation"
);
$OPENTITLE = ($OPENTITLE{"$KDELANG"} or $OPENTITLE{"$KDELANGSHT"} or $OPENTITLE{"en_US"});
$OPENMSG = ($OPENMSG{"$KDELANG"} or $OPENMSG{"$KDELANGSHT"} or $OPENMSG{"en_US"});
return 0;
}
sub permission_dialog_msgs {
&get_kde_language;
%PERMTITLE = (
"ca" => "Permisos",
"cs" => "Oprvnn",
"de" => "Berechtigungen",
"el" => "",
"en_US" => "Permissions",
"es" => "Permisos",
"fi" => "Kyttoikeudet",
"fr" => "Droits d'accs",
"gl" => "Permisos",
"hu" => "Jogosultsgok",
"it" => "Permessi",
"lt" => "Leidimai",
"nb" => "Rettigheter",
"nl" => "Toegengsrechten",
"nn" => "Rettigheiter",
"pl" => "Uprawnienia",
"pt" => "Permisses",
"pt_PT" => "Permisses",
"ru" => "",
"sr" => "",
"sr\@latin" => "Dozvole",
"tr" => "Yetkiler",
"xx" => "Your string, xx is the country abbreviation"
);
%PERMMSG = (
"ca" => "Seleccioneu els permisos: ",
"cs" => "Zvolit oprvnn",
"de" => "Berechtigungen auswhlen: ",
"el" => " : ",
"en_US" => "Choose permissions: ",
"es" => "Elegir permisos: ",
"fi" => "Valitse kyttoikeudet: ",
"fr" => "Choisissez les droits d'accs : ",
"gl" => "Escoller os permisos: ",
"hu" => "Add meg a jogosultsgokat: ",
"it" => "Permessi di accesso: ",
"lt" => "Pasirinkite leidimus: ",
"nb" => "Velg rettigheter: ",
"nl" => "Toegangsrechten instellen: ",
"nn" => "Velg rettigheiter: ",
"pl" => "Wybierz uprawnienia: ",
"pt" => "Escolher permisses: ",
"pt_PT" => "Escolher permisses: ",
"ru" => " : ",
"sr" => " : ",
"sr\@latin" => "Izaberite dozvole: ",
"tr" => "Yetkileri belirle: ",
"xx" => "Your string, xx is the country abbreviation"
);
%OWN = (
"ca" => "Propietari:",
"cs" => "Vlastnk:",
"de" => "Besitzer:",
"el" => ":",
"en_US" => "Owner:",
"es" => "Propietario:",
"fi" => "Omistaja:",
"fr" => "Propritaire :",
"gl" => "Dono:",
"hu" => "Tulajdonos:",
"it" => "Proprietario:",
"lt" => "Savininkas:",
"nb" => "Eier:",
"nl" => "Eigenaar:",
"nn" => "Eigar:",
"pl" => "Waciciel:",
"pt" => "Dono:",
"pt_PT" => "Dono:",
"ru" => ":",
"sr" => ":",
"sr\@latin" => "Vlasnik:",
"tr" => "Sahip:",
"xx" => "Your string, xx is the country abbreviation"
);
%GRP = (
"ca" => "Grup:",
"cs" => "Skupina:",
"de" => "Gruppe:",
"el" => ":",
"en_US" => "Group:",
"es" => "Grupo:",
"fi" => "Ryhm:",
"fr" => "Groupe :",
"gl" => "Grupo:",
"hu" => "Csoport:",
"it" => "Gruppo:",
"lt" => "Grup:",
"nb" => "Gruppe:",
"nl" => "Groep:",
"nn" => "Gruppe:",
"pl" => "Grupa:",
"pt" => "Grupo:",
"pt_PT" => "Grupo:",
"ru" => ":",
"sr" => ":",
"sr\@latin" => "Grupa:",
"tr" => "Grup",
"xx" => "Your string, xx is the country abbreviation"
);
%ALL = (
"ca" => "Altres:",
"cs" => "Ostatn:",
"de" => "Alle Benutzer:",
"el" => ":",
"en_US" => "Others:",
"es" => "Todos:",
"fi" => "Kaikki:",
"fr" => "Autres :",
"gl" => "Outros:",
"hu" => "Mindenki:",
"it" => "Tutti:",
"lt" => "Kiti:",
"nb" => "Andre:",
"nl" => "Anderen:",
"nn" => "Andre:",
"pl" => "Wszyscy:",
"pt" => "Todos:",
"pt_PT" => "Todos:",
"ru" => ":",
"sr" => ":",
"sr\@latin" => "Ostali:",
"tr" => "Dierleri:",
"xx" => "Your string, xx is the country abbreviation"
);
%SPC = (
"ca" => "Especial:",
"cs" => "Speciln:",
"de" => "Spezial:",
"el" => ":",
"en_US" => "Special:",
"es" => "Especial:",
"fi" => "Erityiset:",
"fr" => "Spcial :",
"gl" => "Especial:",
"hu" => "Klnleges:",
"it" => "Avanzati:",
"lt" => "Specials:",
"nb" => "Spesielt:",
"nl" => "Speciaal:",
"nn" => "Spesielt:",
"pl" => "Specjalne:",
"pt" => "Especial:",
"pt_PT" => "Especial:",
"ru" => ":",
"sr" => ":",
"sr\@latin" => "Posebno:",
"tr" => "zel:",
"xx" => "Your string, xx is the country abbreviation"
);
%READ = (
"ca" => "lectura",
"cs" => "ten",
"de" => "Lesen",
"el" => "",
"en_US" => "readable",
"es" => "Lectura",
"fi" => "lukuoikeus",
"fr" => "Lecture",
"gl" => "lectura",
"hu" => "Olvashat",
"it" => "leggibile",
"lt" => "skaitomas",
"nb" => "lesbar",
"nl" => "Leesbaar",
"nn" => "lesbar",
"pl" => "tylko do odczytu",
"pt" => "Permisso de leitura",
"pt_PT" => "Permisso de leitura",
"ru" => " ",
"sr" => "",
"sr\@latin" => "itanje",
"tr" => "okunabilir",
"xx" => "Your string, xx is the country abbreviation"
);
%WRITE = (
"ca" => "escriptura",
"cs" => "zpis",
"de" => "Schreiben",
"el" => "",
"en_US" => "writable",
"es" => "Escritura",
"fi" => "kirjoitusoikeus",
"fr" => "criture",
"gl" => "escritura",
"hu" => "rhat",
"it" => "scrivibile",
"lt" => "raomas",
"nb" => "skrivbar",
"nl" => "Schrijfbaar",
"nn" => "skrivbar",
"pl" => "do odczytu i zapisu",
"pt" => "Permisso de escrita",
"pt_PT" => "Permisso de escrita",
"ru" => " ",
"sr" => "",
"sr\@latin" => "upis",
"tr" => "yazlabilir",
"xx" => "Your string, xx is the country abbreviation"
);
%EXEC = (
"ca" => "executable",
"cs" => "sputn",
"de" => "Ausfhren",
"el" => "",
"en_US" => "executable",
"es" => "Ejecutable",
"fi" => "suoritusoikeus",
"fr" => "Excution",
"gl" => "executable",
"hu" => "Futtathat",
"it" => "eseguibile",
"lt" => "vykdomas",
"nb" => "kjrbar",
"nl" => "Uitvoerbaar",
"nn" => "kyrbar",
"pl" => "wykonywalny",
"pt" => "Executvel",
"pt_PT" => "Executvel",
"ru" => "",
"sr" => "",
"sr\@latin" => "izvrna",
"tr" => "altrlabilir",
"xx" => "Your string, xx is the country abbreviation"
);
%SUID = (
"ca" => "estableix bit d'ID d'usuari",
"cs" => "nastavit uivatelsk ID",
"de" => "User-ID-Bit setzen",
"el" => " ID bit ",
"en_US" => "set user ID bit",
"es" => "Establecer el bit-ID de usuario",
"fi" => "aseta SUID-bitti",
"fr" => "Donner l'UID",
"gl" => "establecer o bit de identificacin do usuario",
"hu" => "UID belltsa",
"it" => "inserisci bit UID",
"lt" => "nustatyti vartotojo UID bit",
"nb" => "sett bruker-ID",
"nl" => "User ID instellen",
"nn" => "set brukar-ID",
"pl" => "ustaw ID uytkownika",
"pt" => "Definir o bit ID de utilizador",
"pt_PT" => "Definir o bit ID de utilizador",
"ru" => " UID ",
"sr" => " ",
"sr\@latin" => "stavi UID",
"tr" => "kullanc ID bitini ayarla",
"xx" => "Your string, xx is the country abbreviation"
);
%SGID = (
"ca" => "estableix bit d'ID de grup",
"cs" => "nastavit skupinov ID",
"de" => "Gruppen-ID-Bit setzen",
"el" => " ID bit ",
"en_US" => "set group ID bit",
"es" => "Establecer el bit-ID de grupo",
"fi" => "aseta SGID-bitti",
"fr" => "Donner le GID",
"gl" => "establecer o bit de identificacin do grupo",
"hu" => "GID belltsa",
"it" => "inserisci bit GID",
"lt" => "nustatyti grups GID bit",
"nb" => "sett gruppe-ID",
"nl" => "Groep ID instellen",
"nn" => "set gruppe-ID",
"pl" => "ustaw ID grupy",
"pt" => "Definir o bit ID de grupo",
"pt_PT" => "Definir o bit ID de grupo",
"ru" => " GID ",
"sr" => " ",
"sr\@latin" => "stavi GID",
"tr" => "grup ID bitini ayarla",
"xx" => "Your string, xx is the country abbreviation"
);
%STICK = (
"ca" => "estableix bit d'adherit",
"cs" => "Sticky",
"de" => "Sticky-Bit setzen",
"el" => " sticky bit",
"en_US" => "set sticky bit",
"es" => "Establecer el bit-Sticky",
"fi" => "aseta sticky-bitti",
"fr" => "Allouer le bit collant",
"gl" => "establecer o bit de adhesin",
"hu" => "Sticky bit belltsa",
"it" => "inserisci bit Sticky",
"lt" => "nustatyti lipn bit",
"nb" => "klebrig",
"nl" => "Vastgezet",
"nn" => "klebrig",
"pl" => "ustaw parametr 'sticky'",
"pt" => "Definir o bit 'sticky'",
"pt_PT" => "Definir o bit 'sticky'",
"ru" => " ",
"sr" => " ",
"sr\@latin" => "stavi lepljivu",
"tr" => "yapkan biti ayarla",
"xx" => "Your string, xx is the country abbreviation"
);
%SPCTITLE = (
"ca" => "Avs",
"cs" => "Varovn",
"de" => "Achtung",
"el" => "",
"en_US" => "Warning",
"es" => "Aviso",
"fi" => "Varoitus",
"fr" => "Attention",
"gl" => "Aviso",
"hu" => "Figyelem",
"it" => "Attenzione",
"lt" => "Dmesio",
"nb" => "Advarsel",
"nl" => "Waarschuwing",
"nn" => "Advarsel",
"pl" => "Ostrzeenie",
"pt" => "Ateno",
"pt_PT" => "Ateno",
"ru" => "",
"sr" => "",
"sr\@latin" => "Upozorenje",
"tr" => "Dikkat",
"xx" => "Your string, xx is the country abbreviation"
);
%SPCMSG = (
"ca" => "Heu seleccionat establir permisos especials, esteu segur que voleu continuar?",
"cs" => "Zvolili jste speciln prva, jste si jisti e chcete pokraovat?",
"de" => "Sie haben eine spezielle Berechtigung ausgewhlt. Mchten Sie wirklich fortfahren?",
"el" => " , ;",
"en_US" => "You have chosen to set special permissions, are you sure you wish to continue?",
"es" => "Has seleccionado establecer permisos especiales, estas seguro de continuar?",
"fi" => "Valitsit asetettavaksi erityisi kyttoikeuksia. Oletko varma, ett haluat jatkaa?",
"fr" => "Vous avez choisi de modifier les droits tendus, tes-vous sr de vouloir continuer ?",
"gl" => "Escolleu establecer permisos especiais, quere continuar?",
"hu" => "Biztos, hogy meg akarod vltoztatni ezeket a klnleges felhasznli jogosultsgokat?",
"it" => "Hai scelto di utilizzare dei permessi avanzati, sei sicuro di voler continuare?",
"lt" => "Js pasirinkote nustatyti ypatingus leidimus, ar tikrai norite tsti?",
"nb" => "Du har valgt spesielle bits. Vil du virkelig fortsette?",
"nl" => "U heeft ervoor gekozen speciale toegangsrechten in te stellen, bent u zeker dat u verder wilt gaan?",
"nn" => "Du har valgt spesielle bits. Vil du verkeleg fortsette?",
"pl" => "Wybrae ustawienie specjalnych uprawnie. Czy na pewno kontynuowa?",
"pt" => "Escolheu definir as permisses especiais, tem a certeza que quer continuar?",
"pt_PT" => "Escolheu definir as permisses especiais, tem a certeza que quer continuar?",
"ru" => " , , ?",
"sr" => " , ?",
"sr\@latin" => "Postavili ste posebne dozvole, elite li zaista da nastavite?",
"tr" => "zel yetki ayarlar yapmay setiniz, devam etmek istediinize emin misiniz?",
"xx" => "Your string, xx is the country abbreviation"
);
########### DIALOG MESSAGES END #####################################
$PERMTITLE = ($PERMTITLE{"$KDELANG"} or $PERMTITLE{"$KDELANGSHT"} or $PERMTITLE{"en_US"});
$PERMMSG = ($PERMMSG{"$KDELANG"} or $PERMMSG{"$KDELANGSHT"} or $PERMMSG{"en_US"});
$OWN = ($OWN{"$KDELANG"} or $OWN{"$KDELANGSHT"} or $OWN{"en_US"});
$GRP = ($GRP{"$KDELANG"} or $GRP{"$KDELANGSHT"} or $GRP{"en_US"});
$ALL = ($ALL{"$KDELANG"} or $ALL{"$KDELANGSHT"} or $ALL{"en_US"});
$SPC = ($SPC{"$KDELANG"} or $SPC{"$KDELANGSHT"} or $SPC{"en_US"});
$READ = ($READ{"$KDELANG"} or $READ{"$KDELANGSHT"} or $READ{"en_US"});
$WRITE = ($WRITE{"$KDELANG"} or $WRITE{"$KDELANGSHT"} or $WRITE{"en_US"});
$EXEC = ($EXEC{"$KDELANG"} or $EXEC{"$KDELANGSHT"} or $EXEC{"en_US"});
$SUID = ($SUID{"$KDELANG"} or $SUID{"$KDELANGSHT"} or $SUID{"en_US"});
$SGID = ($SGID{"$KDELANG"} or $SGID{"$KDELANGSHT"} or $SGID{"en_US"});
$STICK = ($STICK{"$KDELANG"} or $STICK{"$KDELANGSHT"} or $STICK{"en_US"});
$SPCTITLE = ($SPCTITLE{"$KDELANG"} or $SPCTITLE{"$KDELANGSHT"} or $SPCTITLE{"en_US"});
$SPCMSG = ($SPCMSG{"$KDELANG"} or $SPCMSG{"$KDELANGSHT"} or $SPCMSG{"en_US"});
return 0;
}
#Find out the language used in kde
sub get_kde_language {
if ( exists $ENV{KDEHOME}) {
$KDEGLOBALFILE = "$ENV{KDEHOME}/share/config/kdeglobals";
}
else {
$KDEGLOBALFILE = "~/.kde/share/config/kdeglobals";
}
# use kreadconfig to get the languages set for kde. Use cut to get only the primary language and discard encoding.
chomp($KDELANG = `$CONFIGCOMMAND --group Locale --key Language --file $KDEGLOBALFILE | cut -d ':' -f 1 | cut -d '.' -f 1`);
# If $KDEGLOBALFILE contains no language info, kreadconfig will print nothing. Read the LANG environment variable instead.
if( $KDELANG eq ""){
$KDELANG = $ENV{LANG};
}
chomp($KDELANGSHT = substr("$KDELANG",0,2));
return 0;
}
sub get_kde_path {
if ( exists $ENV{KDEDIR} ) {
$KDEBINPATH = "$ENV{KDEDIR}/bin/";
}
else {
$KDEBINPATH = "/usr/bin/";
}
}
# Print error message if called without arguments (if the script is run directly)
if ( $#ARGV lt 0 ) {
die "This script is not meant to be run directly. It will run with the necessary arguments when called from the .desktop files when a root action is selected by right-clicking item(s) in konqueror/dolphin.\n" ;
}
# Check whether kdesudo is installed, and use it instead of kdesu to get root privileges.
&get_kde_path ;
if ( `which kdesudo` ) {
$SUCOMMAND = "$KDEBINPATH"."kdesudo -d --noignorebutton --"}
elsif ( `which kdesu` ) {
$SUCOMMAND = "$KDEBINPATH"."kdesu -d --"}
else { $SUCOMMAND = "xdg-su -c"}
$DIALOGCOMMAND = "$KDEBINPATH"."kdialog" ;
$CONFIGCOMMAND = "$KDEBINPATH"."kreadconfig" ;
#---Start root actions---
$EXECNAME = $0 ;
$ACTION = shift @ARGV ;
$TARGET = join("' '", @ARGV) ;
&{$ACTION} or die ;
#---Root konsole subroutines---
sub root_konsole_here {
$APPNAME = shift @ARGV ;
$WORKDIR = shift @ARGV ;
exec "$SUCOMMAND \"$EXECNAME\" do_root_konsole \"$APPNAME\" \"$WORKDIR\"";
exit $?;
}
sub do_root_konsole {
if ( $> eq 0 ) {
#get root reminder string
&root_reminder_msgs;
#Get the terminal and working directory
$APPNAME = shift @ARGV ;
if ( -x $KDEBINPATH.$APPNAME ) {
$TERMINAL = $KDEBINPATH.$APPNAME ; }
else {
$TERMINAL = $APPNAME ; }
$APPNAME =~ tr/a-z/A-Z/ ;
$WORKDIR = shift @ARGV ;
exec "$TERMINAL --workdir \'$WORKDIR\' --caption \"$APPNAME $ROOTREMINDER\"" ;
exit $?;
}
}
#---End root konsole subroutines---
#---Open with subroutines---
sub custom_open_with {
#Get program
&open_dialog_msgs;
$APPNAME = `$DIALOGCOMMAND --title "$OPENTITLE" --inputbox "$OPENMSG" program` ;
if ( $? eq 0 ) {
chomp $APPNAME ;
exec "$SUCOMMAND \"$EXECNAME\" do_open_with \"$APPNAME\" \"$TARGET\"";
exit $?;
}
}
sub open_with {
$APPNAME = shift @ARGV ;
$TARGET = join("' '", @ARGV) ;
if ( $APPNAME eq "kate" ) {
system "which kate" ;
if ( $? ne 0 ) {
$APPNAME = "kwrite"; }
}
exec "$SUCOMMAND \"$EXECNAME\" do_open_with \"$APPNAME\" \"$TARGET\"";
exit $?;
}
sub do_open_with {
#If running as root, open the files
if ( $> eq 0 ) {
#get root reminder string
&root_reminder_msgs;
#Which program? (first argument)
$APPNAME = shift @ARGV ;
if ( -x $KDEBINPATH.$APPNAME ) {
$CPROGRAM = $KDEBINPATH.$APPNAME ; }
else {
$CPROGRAM = $APPNAME ;}
$APPNAME =~ tr/a-z/A-Z/ ;
shift;
#Create Target file string
$TARGET = join("' '", @ARGV) ;
exec "$CPROGRAM --caption \"$APPNAME $ROOTREMINDER\" \"$TARGET\"" ;
exit $?;
}
}
#---End open with subroutines---
#---Copy subroutines---
sub root_copy {
©_dialog_msgs;
$OLDNAME = $ARGV[0];
$NEWNAME = `$DIALOGCOMMAND --title "$COPYTITLE" --inputbox "$COPYMSG" \"$OLDNAME\"` ;
chop $NEWNAME;
if ( $? eq 0 && $OLDNAME ne $NEWNAME ) {
exec "$SUCOMMAND \"$EXECNAME\" do_copy \"$OLDNAME\" \"$NEWNAME\"";
exit $?;
}
}
sub do_copy {
#If running as root, rename the file
if ( $> eq 0 ) {
#get the arguments)
$OLDNAME = $ARGV[0] ;
$NEWNAME = $ARGV[1] ;
`cp -pr \"$OLDNAME\" \"$NEWNAME\"`;
}
}
#---End copy subroutines---
#---Rename subroutines---
sub root_rename {
# If more than one file is selected, and a batch rename application is installed, open it
$BATCHRENAMER = shift @ARGV ;
$TARGET = join("' '", @ARGV) ;
chomp($RENAMERPATH = `which $BATCHRENAMER`);
if ( $#ARGV > 0 && -x $RENAMERPATH ) {
exec "$SUCOMMAND \"$EXECNAME\" do_open_with \"$BATCHRENAMER\" \"$TARGET\"";
exit $?;
}
# else we'll use a simple rename script
else {
&rename_dialog_msgs;
$OLDNAME = $ARGV[0];
$NEWNAME = `$DIALOGCOMMAND --title "$RENAMETITLE" --inputbox "$RENAMEMSG" \"$OLDNAME\"` ;
chop $NEWNAME;
if ( $? eq 0 && $OLDNAME ne $NEWNAME ) {
exec "$SUCOMMAND \"$EXECNAME\" do_rename \"$OLDNAME\" \"$NEWNAME\"";
exit $?;
}
}
}
sub do_rename {
#If running as root, rename the file
if ( $> eq 0 ) {
#get the arguments)
$OLDNAME = $ARGV[0] ;
$NEWNAME = $ARGV[1] ;
`mv \'$OLDNAME\' \'$NEWNAME\'`;
}
}
#---End rename subroutines---
#---Deletion subroutines---
sub root_delete {
#Create a viewer friendly list of files to be deleted for the warning dialog
$TARGETLIST = join("\\n", @ARGV);
#Show warning dialog
&delete_dialog_msgs;
system "$DIALOGCOMMAND --title \'$DELETETITLE\' --warningcontinuecancel \'$DELETEMSG\\n$TARGETLIST\'" ;
#Is deletion confirmed?
if ( $? eq 0 ) {
# kdesu will run the command as regular user if 'Ignore' is chosen from kdesu dialog.
# To prevent unwanted deletion of files, we'll run 'do_delete' instead of 'rm -r', 'do delete'
# will exit if it's run as normal user, therefore the files writable for user are safe when clicking 'Ignore'
exec "$SUCOMMAND \"$EXECNAME\" do_delete \"$TARGET\"";
}
}
sub do_delete {
#If running as root, remove the files targeted
if ( $> eq 0 ) {
`rm -r --preserve-root \'$TARGET\'` ;
}
exit 0;
}
#---End deletion subroutines---
#---Ownership subroutines---
sub root_ownership {
#chown target files to root
# If only one directory selected, ask whether to apply the changes recursively
$RECURSIVE = "0" ;
if ( $#ARGV < 1 && -d $ARGV[0]) {
&recursion_dialog_msgs ;
system "$DIALOGCOMMAND --title \'$RECURSIONTITLE\' --yesno \'$RECURSIONMSG\'";
if ( $? eq 0 ) {
$RECURSIVE = "1" ;
}
}
# Same as with delete, we don't want kdesu to run 'chown' when 'Ignore' is pressed in the kdesu dialog, so we use 'do_ownership' instead
exec "$SUCOMMAND \"$EXECNAME\" do_ownership \"$RECURSIVE\" 0:0 \"$TARGET\"";
exit $?;
}
sub user_ownership {
# If only one directory selected, ask whether to apply the changes recursively
$RECURSIVE = "0" ;
if ( $#ARGV < 1 && -d $ARGV[0]) {
&recursion_dialog_msgs ;
system "$DIALOGCOMMAND --title \'$RECURSIONTITLE\' --yesno \'$RECURSIONMSG\'";
if ( $? eq 0 ) {
$RECURSIVE = "1" ;
}
}
#Create a list of user GIDs, so we can pick only the primary group
@GROUPS = split ' ', $);
exec "$SUCOMMAND \"$EXECNAME\" do_ownership \"$RECURSIVE\" $>:$GROUPS[0] \"$TARGET\"";
exit $?;
}
sub custom_ownership {
#Get custom UID:GID
$RECURSIVE = "0" ;
if ( $#ARGV < 1 && -d $ARGV[0]) {
&recursion_dialog_msgs ;
system "$DIALOGCOMMAND --title \'$RECURSIONTITLE\' --yesno \'$RECURSIONMSG\'";
if ( $? eq 0 ) {
$RECURSIVE = "1" ;
}
$? = "0" ;
}
&ownership_dialog_msgs;
$UIDGID=`$DIALOGCOMMAND --title "$OWNERTITLE" --inputbox "$OWNERMSG" user:group` ;
if ( $? eq 0 ) {
chop $UIDGID;
exec "$SUCOMMAND \"$EXECNAME\" do_ownership \"$RECURSIVE\" \"$UIDGID\" \"$TARGET\"";
exit $?;
}
}
sub do_ownership {
#If running as root, make the ownership changes to targeted files
if ( $> eq 0 ) {
#get recursion choice (first argument)
$RECURSIVE = shift @ARGV ;
#get the UID:GID numbers (second argument)
$UIDGID = shift @ARGV ;
shift;
#Create Target list
$TARGET = join("' '", @ARGV) ;
if ( $RECURSIVE eq 1 ) {
`chown --preserve-root -R \'$UIDGID\' \'$TARGET\'` ;
}
else {
`chown --preserve-root \'$UIDGID\' \'$TARGET\'` ;
}
}
}
#---End ownership subroutines---
#---Permissions subroutines---
sub root_permissions {
#chmod target files to root
$STOTAL = 0 ;
$RECURSIVE = "0" ;
# Get current permissions of target files
@CURPERM = `ls -ld \'$TARGET\' | cut -d ' ' -f1`;
$ORCUR = $OWCUR = $OXCUR = $GRCUR = $GWCUR= $GXCUR = $ARCUR = $AWCUR = $AXCUR = $SSCUR = $SGCUR = $STCUR = "on";
# Analyze permissions, set to off if permission is not set, so only permissions that are present for all chosen files are on by default
foreach $CUR (@CURPERM) {
if (substr($CUR, 1, 1) eq "-") { $ORCUR = "off"; }
if (substr($CUR, 2, 1) eq "-") { $OWCUR = "off"; }
if (substr($CUR, 3, 1) eq "-") { $OXCUR = $SSCUR = "off"; }
elsif (substr($CUR, 3, 1) eq "x") { $SSCUR = "off"; }
elsif (substr($CUR, 3, 1) eq "S") { $OXCUR = "off"; }
if (substr($CUR, 4, 1) eq "-") { $GRCUR = "off"; }
if (substr($CUR, 5, 1) eq "-") { $GWCUR = "off"; }
if (substr($CUR, 6, 1) eq "-") { $GXCUR = $SGCUR = "off"; }
elsif (substr($CUR, 6, 1) eq "x") { $SGCUR = "off"; }
elsif (substr($CUR, 6, 1) eq "S") { $GXCUR = "off"; }
if (substr($CUR, 7, 1) eq "-") { $ARCUR = "off"; }
if (substr($CUR, 8, 1) eq "-") { $AWCUR = "off"; }
if (substr($CUR, 9, 1) eq "-") { $AXCUR = $STCUR = "off"; }
elsif (substr($CUR, 9, 1) eq "x") { $STCUR = "off"; }
elsif (substr($CUR, 9, 1) eq "T") { $AXCUR = "off"; }
}
#Check whether user wishes to change permissions recursively
if ( $#ARGV < 1 && -d $ARGV[0]) {
&recursion_dialog_msgs ;
system "$DIALOGCOMMAND --title \'$RECURSIONTITLE\' --yesno \'$RECURSIONMSG\'";
if ( $? eq 0 ) {
$RECURSIVE = "1" ; }
}
if ( $RECURSIVE eq 1 ) {
&permission_dialog_msgs;
chomp($PERMLIST=`$DIALOGCOMMAND --title "$PERMTITLE" --checklist "$PERMMSG" u:r "$OWN $READ" $ORCUR u:w "$OWN $WRITE" $OWCUR u:X "$OWN $EXEC" $OXCUR g:r "$GRP $READ" $GRCUR g:w "$GRP $WRITE" $GWCUR g:X "$GRP $EXEC" $GXCUR o:r "$ALL $READ" $ARCUR o:w "$ALL $WRITE" $AWCUR o:X "$ALL $EXEC" $AXCUR u:s "$SPC $SUID" $SSCUR g:s "$SPC $SGID" $SGCUR o:t "$SPC $STICK" $STCUR`);
if ( $? eq 0 ) {
#Calculate permission set for chmod
@PERMLIST = split(" ", $PERMLIST);
$USTR = "u=";
$GSTR = "g=";
$OSTR = "o=";
$STOTAL = "0" ;
foreach $PERM (@PERMLIST) {
$UGO = substr($PERM, 1, 1);
$VAL = substr($PERM, 3, 1);
if ($VAL eq "s" || $VAL eq "t") {
$STOTAL = "1" ; }
if ($UGO eq "u") {
$USTR = $USTR . $VAL; }
elsif ($UGO eq "g") {
$GSTR = $GSTR . $VAL; }
else { $OSTR = $OSTR . $VAL; }
}
$CHMOD = "$USTR,$GSTR,$OSTR";
}
}
else {
&permission_dialog_msgs;
chomp($PERMLIST=`$DIALOGCOMMAND --title "$PERMTITLE" --checklist "$PERMMSG" u:4 "$OWN $READ" $ORCUR u:2 "$OWN $WRITE" $OWCUR u:1 "$OWN $EXEC" $OXCUR g:4 "$GRP $READ" $GRCUR g:2 "$GRP $WRITE" $GWCUR g:1 "$GRP $EXEC" $GXCUR o:4 "$ALL $READ" $ARCUR o:2 "$ALL $WRITE" $AWCUR o:1 "$ALL $EXEC" $AXCUR s:4 "$SPC $SUID" $SSCUR s:2 "$SPC $SGID" $SGCUR s:1 "$SPC $STICK" $STCUR`);
if ( $? eq 0 ) {
#Calculate permission set for chmod
@PERMLIST = split(" ", $PERMLIST);
$UTOTAL = 0;
$GTOTAL = 0;
$OTOTAL = 0;
$STOTAL = 0;
foreach $PERM (@PERMLIST) {
$UGO = substr($PERM, 1, 1);
$VAL = substr($PERM, 3, 1);
if ($UGO eq "u") {
$UTOTAL = $UTOTAL + $VAL; }
elsif ($UGO eq "g") {
$GTOTAL = $GTOTAL + $VAL; }
elsif ($UGO eq "o") {
$OTOTAL = $OTOTAL + $VAL; }
else { $STOTAL = $STOTAL + $VAL; }
}
$CHMOD = "$STOTAL$UTOTAL$GTOTAL$OTOTAL";
}
}
if ($STOTAL ne 0 ) {
system "$DIALOGCOMMAND --title \'$SPCTITLE\' --warningcontinuecancel \'$SPCMSG\'";
}
if ( $? eq 0 ) {
exec "$SUCOMMAND \"$EXECNAME\" do_permissions \"$RECURSIVE\" \"$CHMOD\" \"$TARGET\"";
exit $?;
}
}
sub do_permissions {
#If running as root, make the permission changes to targeted files
if ( $> eq 0 ) {
#get the chmod number (first argument)
$RECURSIVE = shift @ARGV ;
$CHMOD = shift @ARGV ;
shift;
#Create Target list
$TARGET = join("' '", @ARGV) ;
if ( $RECURSIVE eq 1 ) {
`chmod --preserve-root -R \'$CHMOD\' \'$TARGET\'` ;
}
else {
`chmod --preserve-root \'$CHMOD\' \'$TARGET\'` ;
}
}
}
#---End permissions subroutines---