1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-19 12:28:22 +01:00

slovak stuff

This commit is contained in:
kojima
2001-01-26 19:31:11 +00:00
parent 2cf8c125a5
commit 25b82b5b8c
10 changed files with 3875 additions and 1008 deletions

View File

@@ -9,6 +9,7 @@ Changes since version 0.63.1:
- Fixed broken panels.
- Renamed se.po to sv.po
- New version of wkdemenu.pl (from Malcolm Cowe <malk@bruhaha.co.uk>)
- new updated Slovak translations (Jan Tomka/judas@hell <tomka@oalevice.sk>)
Changes since version 0.63.0:

View File

@@ -5,7 +5,7 @@ nlsdir = $(NLSDIR)
CLEANFILES = $(CATALOGS)
EXTRA_DIST = pt.po hr.po fr.po ko.po cs.po ja.po zh_TW.Big5.po es.po\
zh_CN.po fi.po it.po ru.po de.po hu.po bg.po
zh_CN.po fi.po it.po ru.po de.po hu.po bg.po sk.po
POTFILES = \
$(top_builddir)/WPrefs.app/main.c \

View File

@@ -20,4 +20,5 @@ ru.po Russian Igor P. Roboul <igor@srcso.sochi.su>
de.po German Bernd Eggert <Bernd.Eggert@t-online.de>
hu.po Hungarian Horvath Szabolcs <horvathsz@penguinpowered.com>
bg.po Bulgarian Slavei Karadjov <slaff@exco.net>
menu.sk Slovak judas@hell <tomka@oalevice.sk>

2115
WPrefs.app/po/sk.po Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -62,6 +62,7 @@ menu.zh_TW.Big5 Chinese Li Wei Jih <lwj83@cs.ccu.edu.tw>
menu.zh_CN Chinese Wang Jian <wangjian2@asiainfo.com>
menu.pl Polish Maciej Friedel <tytus@tytus.itma.pwr.wroc.pl>
menu.bg Bulgarian Slavei Karadjov <slaff@exco.net>
menu.sk Slovak judas@hell <tomka@oalevice.sk>

230
WindowMaker/menu.sk Normal file
View File

@@ -0,0 +1,230 @@
/* Slovak root menu for WindowMaker
* (C) 2001 judas@hell
*
* Original translation by judas@hell on Jan 22 2001
* Currently maintained by judas@hell <tomka@oalevice.sk>
*
* Version history:
* mnu-ver WM-ver author email date
* 0.10 0.63.1 judas@hell <tomka@oalevice.sk> Jan 22 2001
*
*/
/*
* Syntax je:
*
* <Názov> [SHORTCUT <Klávesová skratka>] <Príkaz> <Parametre>
*
* <Názov> je µubovoµný re»azec, ktorý sa pou¾ije ako názov polo¾ky. Ak obsahuje
* medzery, musí by» uzavretý v zátvorkách.
*
* SHORTCUT udáva klávesovú skratku pre danú polo¾ku. <Klávesová skratka> má
* rovnakú syntax ako v súbore $HOME/GNUstep/Defaults/WindowMaker, napr.
* RootMenuKey alebo MiniaturizeKey.
*
* Nemô¾ete uda» klávesovú skratku pre polo¾ky typu MENU A OPEN_MENU.
*
* <Príkaz> je jeden z nasledujúcich:
* MENU - zaèína definíciu (sub)menu
* END - ukonèuje definíciu (sub)menu
* OPEN_MENU - vlo¾í menu zo súboru, rúry alebo adresáru(ov),
* eventuálne pred ka¾dú polo¾ku vlo¾í príkaz
* WORKSPACE_MENU - vlo¾í submenu operácií pracovnej plochy. Len jedno
* takéto menu je povolené
* EXEC <príkaz> - vykoná externý príkaz
* SHEXEC <príkaz> - vykoná príkaz shelu (napr. gimp > /dev/null)
* EXIT - ukonèí mana¾éra okien
* RESTART [<mana¾ér okien>] - re¹tartuje WindowMaker alebo spustí iný
* mana¾ér okien
* REFRESH - obnoví obrazovku
* ARRANGE_ICONS - vyrovná ikony na pracovnej ploche
* SHUTDOWN - zabije v¹etkých klientov (a ukonèí sedenie X systému)
* SHOW_ALL - zobrazí v¹etky okná na pracovnej ploche
* HIDE_OTHERS - skryje v¹etky okná na pracovnej ploche okrem
* aktívneho (alebo posledného aktívneho)
* SAVE_SESSION - ulo¾í aktuálny stav pracovnej plochy, èo zahàòa v¹etky
* spustené aplikácie, ich nastavenia (geometria,
* umiestnenie na obrazovke, pracovná plocha, na ktorej sa
* nachádzajú, Dok alebo sponka, odkiaµ boli spustené, èi
* sú minimalizované, zrolované alebo skryté. Tie¾ sa ulo¾í
* plocha, na ktorej sa u¾ívateµ nachádza. Pri ka¾dom ¹tarte
* WindowMakeru sa tieto nastavenia obnovia a¾ kým sa nepou-
* ¾ije znova SAVE_SESSION alebo CLEAR_SESSION. Ak je
* SaveSessionOnExit = Yes; v súbore domén WindowMakeru,
* potom sa toto v¹etko ukladá pri ka¾dom ukonèení
* WindowMakeru, èím sa prepí¹u predchádzajúce SAVE_SESSION
* a CLEAR_SESSION (viï ni¾¹ie).
* CLEAR_SESSION - zma¾e ulo¾ené sedenie. Toto nemá úèinok, keï je
* nastavené SaveSessionOnExit.
* INFO - zobrazí panel Info
*
* Syntax príkazu OPEN_MENU:
* 1. Vkladanie menu zo súboru.
* // otvorí súbor.menu, ktorý musí obsahova» definíciu menu a toto
* // vlo¾í na aktuálnu pozíciu
* OPEN_MENU súbor.menu
* 2. Vkladanie menu z rúry
* // spustí program a jeho ¹tandardný výstup pou¾ije ako definíciu menu.
* // Výstup menu musí by» korektná definícia menu.
* // Medzera medzi '|' a samotným príkazom nie je povinná.
* // Pou¾ite '||' namiesto '|' ak chcete, aby sa menu obnovovalo
* // pri ka¾dom otvorení. Mô¾e to by» pomalé.
* OPEN_MENU | príkaz
* OPEN_MENU || príkaz
* 3. Vkladanie menu z adresára
* // Otvorí jeden alebo viac adresárov vytvorí menu z podadresárov a
* // spustiteµných súborov zoradených v abecednom poradí.
* OPEN_MENU /nejaký/adresár [/ïal¹í/adresár ...]
* 4. Vkladanie adresára s príkazom
* // Otvorí jeden alebo viac adresárov a vytvorí menu zo v¹etkých
* // podadresárov a súborov s právom èítania, zoradených v abecednom
* // poradí, prièom pred ka¾dý vlo¾í príkaz.
* OPEN_MENU [voµby] /nejaký/adr [/ïal¹í/adr ...] WITH príkaz -voµby
* Voµby:
* -noext odstráni» zvy¹ok mena súboru za powslednou
* bodkou (príponu)
*
* <Parametre> sú odovzdané aplikácii, ktorá sa má vykona».
*
* ** Voµby príkazového riadku príkazu EXEC:
* %s - nahradi» aktuálnym výberom
* %a(titul[,výzva]) - otvorí dialóg s daným titulom, prípadne i výzvou a
* nahradí sa v príkaze textom, ktorý zadáte
* %w - nahradí sa identifikaèným èíslom (XID) aktuálneho okna
* %W - nahradí sa èíslom aktuálnej pracovnej plochy
*
* Vlo¾i» ¹peciálne znaky (ako % a ") mô¾ete pomocou znaku \ :
* xterm -T "\"Ahoj svet\""
*
* Tie¾ je povolené pou¾íva» ¹peciálne kombinácie znakov, ako napr. \n
*
* Ka¾dý príkaz MENU musí ma» na konci zodpovedajúci príkaz END.
*
* Príklad:
*
* "Test" MENU
* "XTerm" EXEC xterm
* // vytvorí submenu s obsahom adresára /usr/openwin/bin
* "XView apps" OPEN_MENU "/usr/openwin/bin"
* // aplikácie X11 v rôznych adresároch
* "X11 apps" OPEN_MENU /usr/X11/bin $HOME/bin/X11
* // nastaví obrázky pozadia
* "Pozadie" OPEN_MENU -noext $HOME/images /usr/share/images WITH wmsetbg -u -t
* // vlo¾í menu definované v súbore style.menu
* "©týl" OPEN_MENU style.menu
* "Test" END
*/
#include "wmmacros"
"Aplikácie" MENU
"Informácie" MENU
"Panel Info" INFO_PANEL
"Panel Legal" LEGAL_PANEL
"Systémová konzola" EXEC xconsole
"Za»a¾enie systému" SHEXEC xosview || xload
"Zoznam procesov" EXEC xterm -e top
"Prehliadaè manuálov" EXEC xman
"Informácie" END
"Spusti»..." SHEXEC %a(Spusti»,Zadajte príkaz:)
"XTerm" EXEC xterm -sb
"Rxvt" EXEC rxvt -bg black -fg white -fn fixed
"Pracovné plochy" WORKSPACE_MENU
"Aplikácie" MENU
"Grafika" MENU
"Gimp" SHEXEC gimp >/dev/null
"XV" EXEC xv
"XPaint" EXEC xpaint
"XFig" EXEC xfig
"Grafika" END
"Správca súborov Xfm" EXEC xfm
"Správca súborov OffiX" EXEC files
"LyX" EXEC lyx
"Netscape" EXEC netscape
"Ghostview" EXEC ghostview %a(GhostView,Zadajte meno súboru)
"Acrobat" EXEC /usr/local/Acrobat3/bin/acroread %a(Acrobar,Zadajte meno PDF súboru)
"TkDesk" EXEC tkdesk
"Aplikácie" END
"Editory" MENU
"XFte" EXEC xfte
"XEmacs" SHEXEC xemacs || emacs
"XJed" EXEC xjed
"NEdit" EXEC nedit
"Xedit" EXEC xedit
"VIM" EXEC xterm -e vim
"Editory" END
"Rôzne" MENU
"Xmcd" SHEXEC xmcd 2> /dev/null
"CD prehrávaè" EXEC xplaycd
"Mixer" EXEC xmixer
"Rôzne" END
"Nástroje" MENU
"Kalkulaèka" EXEC xcalc
"Vlastnosti okien" SHEXEC xprop | xmessage -center -title 'xprop' -file -
"Výber fontu" EXEC xfontsel
"Emulátor terminálu" EXEC xminicom
"Lupa" EXEC xmag
"Paleta" EXEC xcmap
"Zabi» okno" EXEC xkill
"Nástenka" EXEC xclipboard
"Nástroje" END
"Výber" MENU
"Kopírova»" SHEXEC echo '%s' | wxcopy
"Posla» po¹tu" EXEC xterm -name mail -T "Pine" -e pine %s
"Prehliada» web" EXEC netscape %s
"Hµada» v manuáli" SHEXEC MANUAL_SEARCH(%s)
"Výber" END
"Pracovná plocha" MENU
"Skry» ostatné" HIDE_OTHERS
"Zobrazi» v¹etky" SHOW_ALL
"Vyrovna» ikony" ARRANGE_ICONS
"Obnovi» obrazovku" REFRESH
"Uzamknú»" EXEC xlock -allowroot -usefirst
"Ulo¾i» sedenie" SAVE_SESSION
"Zmaza» sedenie" CLEAR_SESSION
"Pracovná plocha" END
"Vzhµad" MENU
"Témy" OPEN_MENU -noext THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle
"©týly" OPEN_MENU -noext STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle
"Sady ikon" OPEN_MENU -noext ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons
"Pozadie" MENU
"Jedna farba" MENU
"Èierna" WS_BACK '(solid, black)'
"Modrá" WS_BACK '(solid, "#505075")'
"Indigo" WS_BACK '(solid, "#243e6c")'
"Námornícka modrá" WS_BACK '(solid, "#224477")'
"Fialová" WS_BACK '(solid, "#554466")'
"P¹enièná" WS_BACK '(solid, "wheat4")'
"Tmavosivá" WS_BACK '(solid, "#333340")'
"Vínová" WS_BACK '(solid, "#400020")'
"Jedna farba" END
"Prechod farieb" MENU
"Západ slnka" WS_BACK '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)'
"Obloha" WS_BACK '(vgradient, blue4, white)'
"Odtiene modrej" WS_BACK '(vgradient, "#7080a5", "#101020")'
"Odtiene indiga" WS_BACK '(vgradient, "#746ebc", "#242e4c")'
"Odtiene fialovej" WS_BACK '(vgradient, "#654c66", "#151426")'
"Odtiene p¹eniènej" WS_BACK '(vgradient, "#a09060", "#302010")'
"Odtiene sivej" WS_BACK '(vgradient, "#636380", "#131318")'
"Odtiene vínovej" WS_BACK '(vgradient, "#600040", "#180010")'
"Prechod farieb" END
"Obrázky" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t
"Pozadie" END
"Ulo¾i» tému" SHEXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Meno témy,Zadajte názov súboru:)"
"Ulo¾i» sadu ikon" SHEXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(Meno sady ikon,Zadajte názov súboru:)"
"Konfiguraèný nástroj" EXEC /usr/local/GNUstep/Apps/WPrefs.app/WPrefs
"Vzhµad" END
"Koniec" MENU
"Re¹tartova»" RESTART
"Spusti» BlackBox" RESTART blackbox
"Spusti» kwm" RESTART kwm
"Spusti» IceWM" RESTART icewm
"Koniec" EXIT
"Koniec" END
"Aplikácie" END

106
WindowMaker/plmenu.sk Normal file
View File

@@ -0,0 +1,106 @@
("Aplikácie",
("Info",
("Panel Info", INFO_PANEL),
("Panel Legal", LEGAL_PANEL),
("Systémová konzola", EXEC, "xconsole"),
("Za»a¾enie systému", SHEXEC, "xosview || xload"),
("Zoznam procesov", EXEC, "xterm -e top"),
("Prehliadaè manuálov", EXEC, "xman")
),
("Spusti»...", SHEXEC, "%a(Spusti»,Zadajte príkaz:)"),
("XTerm", EXEC, "xterm -sb"),
("Rxvt", EXEC, "rxvt -bg black -fg white -fn fixed"),
("Pracovné plochy", WORKSPACE_MENU),
("Aplikácie",
("Grafika",
("Gimp", SHEXEC, "gimp >/dev/null"),
("XV", EXEC, "xv"),
("XPaint", EXEC, "xpaint"),
("XFig", EXEC, "xfig")
),
("Správca súborov Xfm", EXEC, "xfm"),
("Správca súborov OffiX", EXEC, "files"),
("LyX", EXEC, "lyx"),
("Netscape", EXEC, "netscape"),
("Ghostview", EXEC, "ghostview %a(Enter file to view)"),
("Acrobat", EXEC, "/usr/local/Acrobat3/bin/acroread %a(Enter PDF to view)"),
("TkDesk", EXEC, "tkdesk")
),
("Editory",
("XFte", EXEC, "xfte"),
("XEmacs", SHEXEC, "xemacs || emacs"),
("XJed", EXEC, "xjed"),
("NEdit", EXEC, "nedit"),
("Xedit", EXEC, "xedit"),
("VIM", EXEC, "xterm -e vim")
),
("Rôzne",
("Xmcd", SHEXEC, "xmcd 2> /dev/null"),
("CD prehrávaè", EXEC, "xplaycd"),
("Mixer", EXEC, "xmixer")
),
("Nástroje",
("Kalkulaèka", EXEC, "xcalc"),
("Vlastnosti okien", SHEXEC, "xprop | xmessage -center -title 'xprop' -file -"),
("Výber fontu", EXEC, "xfontsel"),
("Emulátor terminálu", EXEC, "xminicom"),
("Lupa", EXEC, "xmag"),
("Paleta", EXEC, "xcmap"),
("Zabi» okno", EXEC, "xkill"),
("Hodiny", EXEC, "asclock -shape"),
("Nástenka", EXEC, "xclipboard")
),
("Výber",
("Kopírova»", SHEXEC, "echo '%s' | wxcopy"),
("Posla» po¹tu", EXEC, "xterm -name mail -T Pine -e pine %s"),
("Prehliada» web", EXEC, "netscape %s"),
("Hµada» v manuáli", EXEC, "MANUAL_SEARCH(%s)")
),
("Pracovná plocha",
("Skry» ostatné", HIDE_OTHERS),
("Zobrazi» v¹etky", SHOW_ALL),
("Vyrovna» ikony", ARRANGE_ICONS),
("Obnovi» obrazovku", REFRESH),
("Uzamknú»", EXEC, "xlock -allowroot -usefirst"),
("Ulo¾i» sedenie", SAVE_SESSION),
("Zmaza» sedenie", CLEAR_SESSION)
),
("Vzhµad",
("Témy", OPEN_MENU, "-noext #wmdatadir#/Themes $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle"),
("©týly", OPEN_MENU, "-noext #wmdatadir#/Styles $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle"),
("Sada ikon", OPEN_MENU, "-noext #wmdatadir#/IconSets $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons"),
("Pozadie",
("Jedna farba",
("Èierna", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, black)'"),
("Modrá", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#505075\")'"),
("Indigo", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#243e6c\")'"),
("Námornícka modrá", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#224477\")'"),
("Fialová", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#554466\")'"),
("P¹enièná", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, wheat4)'"),
("Tmavosivá", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#333340\")'"),
("Vínová", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#400020\")'")
),
("Prechod farieb",
("Západ slnka", EXEC, "wdwrite WindowMaker WorkspaceBack '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)'"),
("Obloha", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, blue4, white)'"),
("Odtiene modrej", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#7080a5\", \"#101020\")'"),
("Odtiene indiga", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#746ebc\", \"#242e4c\")'"),
("Odtiene fialovej", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#654c66\", \"#151426\")'"),
("Odtiene p¹eniènej", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#a09060\", \"#302010\")'"),
("Odtiene sivej", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#636380\", \"#131318\")'"),
("Odtiene vínovej", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#600040\", \"#180010\")'")
),
("Obrázky", OPEN_MENU, "-noext #wmdatadir#/Backgrounds $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t")
),
("Ulo¾i» tému", SHEXEC, "getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/\"%a(Theme name)\""),
("Ulo¾i» sadu ikon", SHEXEC, "geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/\"%a(IconSet name)\""),
("Konfiguraèný nástroj", EXEC, "/usr/local/GNUstep/Apps/WPrefs.app/WPrefs")
),
("Koniec",
("Re¹tartova»", RESTART),
("Spusti» BlackBox", RESTART, blackbox),
("Spusti» kwm", RESTART, kwm),
("Spusti» IceWM", RESTART, icewm),
("Koniec", EXIT)
)
)

View File

@@ -32,7 +32,8 @@ ro.po Romanian Andrei Vuta <gigi_man@manag.pub.ro>
da.po Danish Birger Langkjer <langkjer@post3.tele.dk>
zh_TW.Big5.po Chinese Li Wei Jih <lwj83@cs.ccu.edu.tw>
zh_CN.po Chinese Wang Jian <larkw@263.net>
sk.po Slovak Milan Hromada <mhromada@elas.sk>
sk.po Slovak judas@hell <tomka@oalevice.sk>
Milan Hromada <mhromada@elas.sk>
bg.po Bulgarian Slavei Karadjov <slaff@exco.net>
hu.po Hungarian HORVATH Szabolcs <horvaths@inf.elte.hu>

1710
po/sk.po

File diff suppressed because it is too large Load Diff

View File

@@ -1,357 +1,357 @@
#!/usr/bin/perl
#
#
# kde2wmaker.pl:
#
#
# This script, made for users of Window Maker (http://windowmaker.org) is to
# be used along with KDE (http://www.kde.org).
#
#
# The default directory, /usr/share/applnk, will contain various
# sub-directories such as Development, Editors, Internet, etc. If for some
# reason, you wish to use an alternate (parent) directory that contains the
# various applnk files, it can be specified on the command line.
#
# The directory, if an alternate is specified, MUST be a parent directory to
# any/all sub-directories.
#
# Usage: kde2wmaker.pl [ Options... ]
#
# Options:
#
# -d <KDE App.kdelnk dir>
# -f <output menufile>
# -t <X terminal application>
#
# When the script is run, it will write out a proper Window Maker "External
# Menu" entry, that can be included in the menu. When the External Menu has
# been correctly configured, the root menu will display a sub-menu containing
# all of the KDE related items found. The script only needs to be run when/if
# KDE is updated.
#
#
# Installation and Configuration:
#
# 1) If /usr/bin/perl is not the location of the perl binary on your system,
# the first line should be changed to reflect upon it's location.
# 2) Run the script.
# 3) Configure Window Maker's menu by editing ~/GNUstep/Defaults/WMRootMenu
# This could be done with any text editor, or by using WPrefs. Insert
# the following line (if done with a text editor) into the WMRootMenu file.
# ("External Menu", OPEN_MENU, "$HOME/.kde2wmaker.menu"),
# If done using WPrefs, simply "Add External Menu" from the drop down menu,
# then type: $HOME/.kde2wmaker.menu into the "Menu Path/Directory List"
# textbox.
# 4) Some KDE entries, such as "Pine" will require a terminal to
# execute it. There is a terminal variable below. You may use any
# terminal, XTerm is the default. Any command line options such as:
# -fg -bg, etc. can be specified in this variable as well.
#
#
# Michael Hokenson - logan@dct.com
#
#
#---------------------------------------------------------------------
#
# 21st January 2001.
#
# This script has been competely re-written to allow recursion of the
# KDE menu directories to an arbitrary depth, fixing a major
# functional limitation in the original script. To do this, I have
# rewritten the code to traverse directories recursively, introducing
# a subroutine, process_dir() to carry out the task.
#
# wkdemenu.pl provides an excellent extension to the user interface in
# Window Maker, working well with the "Generated Submenu" feature.
#
#
# Summary of New Features
# -----------------------
#
# Added support for menus of arbitrary depth.
#
# Added basic internationalisation based on KDE's language
# setting. The language is taken from "~/.kde/share/config/kdeglobals"
# or from "~/.kderc".
#
# Corrected the generation of menu names, incorporating
# internationalisation, where appropriate.
#
# Changed the double quotes to two single quotes in application names
# so that they do not break the Menu parser in Window Maker.
#
# Stripped off the arguments to commands on the Exec= line, except in
# a few KDE specific cases (e.g. kfmclient). The extra options are
# only usable by KDE and were preventing many applications from
# launching, since they could parse the option %c or %s, for example.
# This "feature" will probably need a more formal or interactive way
# of specifying exceptions in the future.
#
# Added a command line option for specifying the X terminal to
# use. This still defaults to xterm, but could be used to specify
# aterm, etc.
#
#
# To Do
# -----
#
# Programmatically determine the system location for the KDE menu
# directory.
#
# Organise the output alphabetically, with directories appearing
# before files.
#
# Find a better way to parse the Exec= lines. In the short term,
# provide a user mechanism for generating exceptions to the curtailing
# of command line options. In the longer term, emulate what KDE does
# with these command line features.
#
# Optimise the code. This is my first proper PERL script, and I'm sure
# there's a better way. =)
#
#
# Malcolm Cowe, malk@271m.net.
###
### Variables
###
### The External Menu file, this should NEVER point to the root menu file
$menufile = "$ENV{'HOME'}/.kde2wmaker.menu";
### Base directory, location of all the KDE AppName.kdelnk files +
### Malcolm Cowe, 21/01/2001.
### Change the base directory default to point at the system files,
### not the user files. Need to find a way of determining the prefix
### programmatically.
$prefix="/usr";
$basedir = $prefix."/share/applnk";
### - Malcolm Cowe, 21/01/2001.
### Terminal to use. May be specified on the command line with the -t
### switch.
$term = "xterm";
### Print to STDOUT, default is YES, a filename is specified
$stdout = 1;
### + Malcolm Cowe, 21/01/2001.
### KDE Locale Support
### Support for KDE internationalisation so that menu entries appear
### in the language chosen by the user. Also gets around some problems
### with the KDE applnk file format.
### The Locale is stored in one of two places, depending on the
### version of KDE that is running.
$kde2cf="$ENV{'HOME'}/.kde/share/config/kdeglobals";
$kde1cf="$ENV{'HOME'}/.kderc";
$kdeLanguage = "";
### Open the file, if it exists, otherwise provide a default language.
unless(open KDERC, $kde2cf) {
unless(open KDERC, $kde1cf) {
$kdeLanguage = "C";
}
}
if ( $kdeLanguage == ""){
$kdeLanguage = "C";
### Search through the contents of the file
while($line = <KDERC>) {
chomp($line);
### Grab the Language
if($line =~ /^Language=/) {
$kdeLanguage = $line;
$kdeLanguage =~ s/Language=//;
($kdeLanguage) = split /:/,$kdeLanguage;
last;
}
}
close(KDERC);
}
### - Malcolm Cowe, 21/01/2001.
###
### Begin Main Iteration.
###
### Process command line arguments
foreach $arg(@ARGV) {
if($last) {
if($last eq "-d") {
$basedir = $arg;
}
elsif($last eq "-f") {
$menufile = $arg;
$stdout = 0;
}
### + Malcolm Cowe, 21/01/2001.
elsif($last eq "-t") {
$term = $arg;
}
### - Malcolm Cowe, 21/01/2001.
undef($last);
} elsif($arg =~ /^-/) {
### + Malcolm Cowe, 21/01/2001.
if($arg =~ /^-[dfst]$/) {
$last = $arg;
} else {
die("Unknown option: $arg\n\nUsage: kde2wmaker.pl [ Options... ]\n".
"\n\tOptions:\n\n".
"\t\t-d <KDE App.kdelnk dir>\n".
"\t\t-f <output menufile>\n".
"\t\t-t <X terminal application>\n");
### - Malcolm Cowe, 21/01/2001.
&Usage;
}
}
}
### Make sure the KDE Menu's Top Level Directory exists.
if(-d $basedir) {
### See if there is an old menu file. If there is, rename it
unless($stdout) {
if(-e $menufile) {
print STDERR "\tFound $menufile, renaming\n\n";
rename $menufile, "$menufile.old";
}
open(MENUFILE,"> $menufile");
}
### Start the main menu entry
if($stdout) {
### + Malcolm Cowe, 21/01/2001.
print STDOUT "\"KDE Applications\" MENU\n";
process_dir (STDOUT, $basedir);
print STDOUT "\"KDE Applications\" END\n";
} else {
print MENUFILE "\"KDE Applications\" MENU\n";
process_dir (MENUFILE, $basedir);
print MENUFILE "\"KDE Applications\" END\n";
### - Malcolm Cowe, 21/01/2001.
}
} else {
### Error out :/
print STDERR "ERROR:\n\t$basedir not found\n\tTry another directory.\n";
exit(0);
}
# End of Main Iteration.
### + Malcolm Cowe, 21/01/2001.
### process_dir() works it's way through each file and directory in
### the tree and generates the menu output to be used by Window Maker.
sub process_dir {
my $OUT = @_[0];
my $path = @_[1];
my $item;
my @tld;
my ($gotLang, $gotDef, $gotExec);
my $inDesktop;
### tld == Top Level Directory.
opendir(TLD, $path) || return;
@tld = readdir(TLD);
closedir(TLD);
foreach $item(@tld) {
$gotLang = 0;
$gotDef = 0;
$gotExec = 0;
$inDesktop = 0;
### Ignore hidden files and directories.
unless($item =~ /^\./) {
if (-d "$path/$item") {
print $OUT "\"$item\" MENU\n";
process_dir($OUT, "$path/$item");
print $OUT "\"$item\" END\n";
}
else {
# Process the contents of the applnk file to generate a menu
# entry for the application.
open(SUB,"$path/$item");
### Search through the contents of the file
while($line = <SUB>) {
chomp($line);
### Get the application's name. This is stored in the
### [Desktop Entry] section of the applnk description.
###
### The application's name can have one of these forms:
### Name=
### Name[]=
### Name[language]=
###
### Get the default name anyway (one of the first two, just
### in case there is no language specific entry).
if ($inDesktop) {
# Make sure we are in fact still in the [Desktop Entry]
# section.
if ($line =~ /^\[/) {
$inDesktop = 0;
}
### Extract the Name of the Application
elsif ($line =~ /^Name=/ && (!$gotDef || !gotLang)) {
$pname = $line;
$pname =~ s/^Name=//s;
$pname =~ s/\"/\'\'/g;
$gotDef = 1;
}
elsif ($line =~ /^Name\[\]=/ && (!$gotDef || !gotLang)) {
$pname = $line;
$pname =~ s/^Name\[\]=//s;
$pname =~ s/\"/\'\'/g;
$gotDef = 1;
}
elsif ($line =~ /^Name\[$kdeLanguage\]=/ && !$gotLang) {
$pname = $line;
$pname =~ s/^Name\[$kdeLanguage\]=//s;
$pname =~ s/\"/\'\'/g;
$gotLang = 1;
}
### Grab the command
if($line =~ /^Exec=/ && !$gotExec) {
$pargs = $line;
$pargs =~ s/^Exec=//s;
# Strip off all command line options unless the
# application is "kfmclient".
if ($pargs !~ /^kfmclient/
&& $pargs !~ /^kcmshell/
&& $pargs !~ /^kdesu/){
($pargs) = split(/\s/, $pargs);
}
$gotExec = 1;
}
### If Terminal=1, then we need to execute a term
if($line =~ /^Terminal=1$/) {
$pargs = "$term -T \"$pname\" -e $pargs";
}
}
elsif ($line =~ /^\[Desktop\ Entry\]/ ||
$line =~ /^\[KDE\ Desktop\ Entry\]/) {
$inDesktop = 1;
}
}
close(SUB);
### Begin printing menu items
print $OUT "\t\"$pname\" EXEC $pargs\n";
}
}
}
return;
}
### - Malcolm Cowe, 21/01/2001.
#!/usr/bin/perl
#
#
# kde2wmaker.pl:
#
#
# This script, made for users of Window Maker (http://windowmaker.org) is to
# be used along with KDE (http://www.kde.org).
#
#
# The default directory, /usr/share/applnk, will contain various
# sub-directories such as Development, Editors, Internet, etc. If for some
# reason, you wish to use an alternate (parent) directory that contains the
# various applnk files, it can be specified on the command line.
#
# The directory, if an alternate is specified, MUST be a parent directory to
# any/all sub-directories.
#
# Usage: kde2wmaker.pl [ Options... ]
#
# Options:
#
# -d <KDE App.kdelnk dir>
# -f <output menufile>
# -t <X terminal application>
#
# When the script is run, it will write out a proper Window Maker "External
# Menu" entry, that can be included in the menu. When the External Menu has
# been correctly configured, the root menu will display a sub-menu containing
# all of the KDE related items found. The script only needs to be run when/if
# KDE is updated.
#
#
# Installation and Configuration:
#
# 1) If /usr/bin/perl is not the location of the perl binary on your system,
# the first line should be changed to reflect upon it's location.
# 2) Run the script.
# 3) Configure Window Maker's menu by editing ~/GNUstep/Defaults/WMRootMenu
# This could be done with any text editor, or by using WPrefs. Insert
# the following line (if done with a text editor) into the WMRootMenu file.
# ("External Menu", OPEN_MENU, "$HOME/.kde2wmaker.menu"),
# If done using WPrefs, simply "Add External Menu" from the drop down menu,
# then type: $HOME/.kde2wmaker.menu into the "Menu Path/Directory List"
# textbox.
# 4) Some KDE entries, such as "Pine" will require a terminal to
# execute it. There is a terminal variable below. You may use any
# terminal, XTerm is the default. Any command line options such as:
# -fg -bg, etc. can be specified in this variable as well.
#
#
# Michael Hokenson - logan@dct.com
#
#
#---------------------------------------------------------------------
#
# 21st January 2001.
#
# This script has been competely re-written to allow recursion of the
# KDE menu directories to an arbitrary depth, fixing a major
# functional limitation in the original script. To do this, I have
# rewritten the code to traverse directories recursively, introducing
# a subroutine, process_dir() to carry out the task.
#
# wkdemenu.pl provides an excellent extension to the user interface in
# Window Maker, working well with the "Generated Submenu" feature.
#
#
# Summary of New Features
# -----------------------
#
# Added support for menus of arbitrary depth.
#
# Added basic internationalisation based on KDE's language
# setting. The language is taken from "~/.kde/share/config/kdeglobals"
# or from "~/.kderc".
#
# Corrected the generation of menu names, incorporating
# internationalisation, where appropriate.
#
# Changed the double quotes to two single quotes in application names
# so that they do not break the Menu parser in Window Maker.
#
# Stripped off the arguments to commands on the Exec= line, except in
# a few KDE specific cases (e.g. kfmclient). The extra options are
# only usable by KDE and were preventing many applications from
# launching, since they could parse the option %c or %s, for example.
# This "feature" will probably need a more formal or interactive way
# of specifying exceptions in the future.
#
# Added a command line option for specifying the X terminal to
# use. This still defaults to xterm, but could be used to specify
# aterm, etc.
#
#
# To Do
# -----
#
# Programmatically determine the system location for the KDE menu
# directory.
#
# Organise the output alphabetically, with directories appearing
# before files.
#
# Find a better way to parse the Exec= lines. In the short term,
# provide a user mechanism for generating exceptions to the curtailing
# of command line options. In the longer term, emulate what KDE does
# with these command line features.
#
# Optimise the code. This is my first proper PERL script, and I'm sure
# there's a better way. =)
#
#
# Malcolm Cowe, malk@271m.net.
###
### Variables
###
### The External Menu file, this should NEVER point to the root menu file
$menufile = "$ENV{'HOME'}/.kde2wmaker.menu";
### Base directory, location of all the KDE AppName.kdelnk files +
### Malcolm Cowe, 21/01/2001.
### Change the base directory default to point at the system files,
### not the user files. Need to find a way of determining the prefix
### programmatically.
$prefix="/usr";
$basedir = $prefix."/share/applnk";
### - Malcolm Cowe, 21/01/2001.
### Terminal to use. May be specified on the command line with the -t
### switch.
$term = "xterm";
### Print to STDOUT, default is YES, a filename is specified
$stdout = 1;
### + Malcolm Cowe, 21/01/2001.
### KDE Locale Support
### Support for KDE internationalisation so that menu entries appear
### in the language chosen by the user. Also gets around some problems
### with the KDE applnk file format.
### The Locale is stored in one of two places, depending on the
### version of KDE that is running.
$kde2cf="$ENV{'HOME'}/.kde/share/config/kdeglobals";
$kde1cf="$ENV{'HOME'}/.kderc";
$kdeLanguage = "";
### Open the file, if it exists, otherwise provide a default language.
unless(open KDERC, $kde2cf) {
unless(open KDERC, $kde1cf) {
$kdeLanguage = "C";
}
}
if ( $kdeLanguage == ""){
$kdeLanguage = "C";
### Search through the contents of the file
while($line = <KDERC>) {
chomp($line);
### Grab the Language
if($line =~ /^Language=/) {
$kdeLanguage = $line;
$kdeLanguage =~ s/Language=//;
($kdeLanguage) = split /:/,$kdeLanguage;
last;
}
}
close(KDERC);
}
### - Malcolm Cowe, 21/01/2001.
###
### Begin Main Iteration.
###
### Process command line arguments
foreach $arg(@ARGV) {
if($last) {
if($last eq "-d") {
$basedir = $arg;
}
elsif($last eq "-f") {
$menufile = $arg;
$stdout = 0;
}
### + Malcolm Cowe, 21/01/2001.
elsif($last eq "-t") {
$term = $arg;
}
### - Malcolm Cowe, 21/01/2001.
undef($last);
} elsif($arg =~ /^-/) {
### + Malcolm Cowe, 21/01/2001.
if($arg =~ /^-[dfst]$/) {
$last = $arg;
} else {
die("Unknown option: $arg\n\nUsage: kde2wmaker.pl [ Options... ]\n".
"\n\tOptions:\n\n".
"\t\t-d <KDE App.kdelnk dir>\n".
"\t\t-f <output menufile>\n".
"\t\t-t <X terminal application>\n");
### - Malcolm Cowe, 21/01/2001.
&Usage;
}
}
}
### Make sure the KDE Menu's Top Level Directory exists.
if(-d $basedir) {
### See if there is an old menu file. If there is, rename it
unless($stdout) {
if(-e $menufile) {
print STDERR "\tFound $menufile, renaming\n\n";
rename $menufile, "$menufile.old";
}
open(MENUFILE,"> $menufile");
}
### Start the main menu entry
if($stdout) {
### + Malcolm Cowe, 21/01/2001.
print STDOUT "\"KDE Applications\" MENU\n";
process_dir (STDOUT, $basedir);
print STDOUT "\"KDE Applications\" END\n";
} else {
print MENUFILE "\"KDE Applications\" MENU\n";
process_dir (MENUFILE, $basedir);
print MENUFILE "\"KDE Applications\" END\n";
### - Malcolm Cowe, 21/01/2001.
}
} else {
### Error out :/
print STDERR "ERROR:\n\t$basedir not found\n\tTry another directory.\n";
exit(0);
}
# End of Main Iteration.
### + Malcolm Cowe, 21/01/2001.
### process_dir() works it's way through each file and directory in
### the tree and generates the menu output to be used by Window Maker.
sub process_dir {
my $OUT = @_[0];
my $path = @_[1];
my $item;
my @tld;
my ($gotLang, $gotDef, $gotExec);
my $inDesktop;
### tld == Top Level Directory.
opendir(TLD, $path) || return;
@tld = readdir(TLD);
closedir(TLD);
foreach $item(@tld) {
$gotLang = 0;
$gotDef = 0;
$gotExec = 0;
$inDesktop = 0;
### Ignore hidden files and directories.
unless($item =~ /^\./) {
if (-d "$path/$item") {
print $OUT "\"$item\" MENU\n";
process_dir($OUT, "$path/$item");
print $OUT "\"$item\" END\n";
}
else {
# Process the contents of the applnk file to generate a menu
# entry for the application.
open(SUB,"$path/$item");
### Search through the contents of the file
while($line = <SUB>) {
chomp($line);
### Get the application's name. This is stored in the
### [Desktop Entry] section of the applnk description.
###
### The application's name can have one of these forms:
### Name=
### Name[]=
### Name[language]=
###
### Get the default name anyway (one of the first two, just
### in case there is no language specific entry).
if ($inDesktop) {
# Make sure we are in fact still in the [Desktop Entry]
# section.
if ($line =~ /^\[/) {
$inDesktop = 0;
}
### Extract the Name of the Application
elsif ($line =~ /^Name=/ && (!$gotDef || !gotLang)) {
$pname = $line;
$pname =~ s/^Name=//s;
$pname =~ s/\"/\'\'/g;
$gotDef = 1;
}
elsif ($line =~ /^Name\[\]=/ && (!$gotDef || !gotLang)) {
$pname = $line;
$pname =~ s/^Name\[\]=//s;
$pname =~ s/\"/\'\'/g;
$gotDef = 1;
}
elsif ($line =~ /^Name\[$kdeLanguage\]=/ && !$gotLang) {
$pname = $line;
$pname =~ s/^Name\[$kdeLanguage\]=//s;
$pname =~ s/\"/\'\'/g;
$gotLang = 1;
}
### Grab the command
if($line =~ /^Exec=/ && !$gotExec) {
$pargs = $line;
$pargs =~ s/^Exec=//s;
# Strip off all command line options unless the
# application is "kfmclient".
if ($pargs !~ /^kfmclient/
&& $pargs !~ /^kcmshell/
&& $pargs !~ /^kdesu/){
($pargs) = split(/\s/, $pargs);
}
$gotExec = 1;
}
### If Terminal=1, then we need to execute a term
if($line =~ /^Terminal=1$/) {
$pargs = "$term -T \"$pname\" -e $pargs";
}
}
elsif ($line =~ /^\[Desktop\ Entry\]/ ||
$line =~ /^\[KDE\ Desktop\ Entry\]/) {
$inDesktop = 1;
}
}
close(SUB);
### Begin printing menu items
print $OUT "\t\"$pname\" EXEC $pargs\n";
}
}
}
return;
}
### - Malcolm Cowe, 21/01/2001.