Magellan Linux

Contents of /trunk/mlivecdbuild/profiles/openvpn-i686/custom-files/fluxbox-generate_menu_custom.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 582 - (show annotations) (download) (as text)
Sat Oct 13 11:42:09 2007 UTC (16 years, 6 months ago) by niro
File MIME type: application/x-sh
File size: 52020 byte(s)
-added openvpn profile

1 #!/bin/sh
2 #
3 # generate_menu for Fluxbox
4 #
5 # Copyright (c) 2005 Dung N. Lam <dnlam@users.sourceforge.net>
6 # Copyright (c) 2002-2004 Han Boetes <han@mijncomputer.nl>
7 #
8 # Permission is hereby granted, free of charge, to any person obtaining a
9 # copy of this software and associated documentation files (the "Software"),
10 # to deal in the Software without restriction, including without limitation
11 # the rights to use, copy, modify, merge, publish, distribute, sublicense,
12 # and/or sell copies of the Software, and to permit persons to whom the
13 # Software is furnished to do so, subject to the following conditions:
14 #
15 # The above copyright notice and this permission notice shall be included in
16 # all copies or substantial portions of the Software.
17 #
18 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
21 # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23 # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
24 # DEALINGS IN THE SOFTWARE.
25 #
26 # $Id: fluxbox-generate_menu_custom.sh,v 1.1 2007-10-13 11:42:09 niro Exp $
27
28 #
29 # Portability notes:
30 # To guarantee this script works on all platforms that support fluxbox
31 # please keep the following restrictions in mind:
32 #
33 # - don't use [ "a" == "a" ]; use [ "a" = "a" ] (found with help from FreeBSD user relaxed)
34 # - don't use if ! command;, use command; if [ $? -ne 0 ];
35 # - don't use [ -e file ] use [ -r file ]
36 # - don't use $(), use ``
37 # - don't use ~, use ${HOME}
38 # - don't use id -u or $UID, use whoami
39 # - getopts won't work on all platforms, but the config-file can
40 # compensate for that.
41 # - OpenBSD and Solaris grep do not have the -m option
42 # - various software like grep/sed/perl may be not present or not
43 # the version you have. for example grep '\W' only works on gnu-grep.
44 # Keep this in mind, use bare basic defaults.
45 # - Do _NOT_ suggest to use #!/bin/bash. Not everybody uses bash.
46 # Non portable features like getopts in this script can be achieved in
47 # other ways.
48
49
50 WHOAMI=`whoami`
51 [ "$WHOAMI" = root ] && PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
52
53 # Check for Imlib2-support
54 if fluxbox -info 2> /dev/null | grep -q "^IMLIB"; then
55 PNG_ICONS="yes"
56 else
57 # better assume to assume "no"
58 PNG_ICONS="no"
59 fi
60
61 # Functions
62 display_usage() {
63 cat << EOF
64 Usage: fluxbox-generate_menu [-kgrBh] [-t terminal] [-w url] [-b browser]
65 [-m menu-title] [-o /path] [-u /path] [-p /path] [-n /path] [-q /path]
66 [-d /path ] [-ds] [-i /path] [-is]
67 EOF
68 }
69
70 display_help() {
71 display_usage
72 cat << EOF
73
74 Options:
75
76 -k Insert a kde menu
77 -g Add a gnome menu
78 -B enable backgrounds menu
79 -r Don't remove empty menu-entries; for templates
80
81 -d other path(s) to recursively search for *.desktop files
82 -ds wider search for *.desktop files (takes more time)
83 -i other path(s) to search for icons
84 e.g., "/usr/kde/3.3/share/icons/crystalsvg/16x16/*"
85 -is wider search for icons (worth the extra time)
86 -in skip icon search
87
88 -t Favourite terminal
89 -w Homepage for console-browsers. Default is fluxbox.org
90 -b Favourite browser
91 -m Menu-title; default is "Fluxbox"
92 -o Outputfile; default is ~/.fluxbox/menu
93 -u user sub-menu; default is ~/.fluxbox/usermenu
94
95 -h Display this help
96 -a Display the authors of this script
97
98 Only for packagers:
99
100 -p prefix; default is /usr
101 -n Gnome-prefix; /opt, /usr, /usr/X11R6 and /usr/local autodetected
102 -q KDE-prefix; idem dito
103
104
105 Files:
106 ~/.fluxbox/usermenu your own submenu which will be included in the menu
107 ~/.fluxbox/menuconfig rc file for fluxbox-generate_menu
108
109 EOF
110 }
111
112 display_authors() {
113 cat << EOF
114
115 fluxbox-generate_menu was brought to you by:
116
117 Henrik Kinnunen: Project leader.
118 Han Boetes: Packaging, debugging and scripts.
119 Simon Bowden: Cleanups and compatibility for sun.
120 Jeramy B. Smith: Packaging assistance, gnome and kde menu system.
121 Filippo Pappalardo: Italian locales and -t option.
122 $WHOAMI: Innocent bystander.
123
124 EOF
125 }
126
127 # some which's have a reliable return code, some don't
128 # Lets figure out which which we have.
129 if which this_program_does_not_exist-no_really-aA1zZ9 2> /dev/null 1> /dev/null; then
130 # can't rely on return value
131 find_it() {
132 file=`which $1 2> /dev/null`
133 if [ -x "$file" ]; then
134 if [ $# -gt 1 ]; then
135 shift
136 "$@"
137 fi
138 return 0
139 else
140 return 1
141 fi
142 }
143
144 find_it_options() {
145 file=`which $1 2> /dev/null`
146 if [ -x "$file" ]; then
147 return 0
148 else
149 return 1
150 fi
151 }
152
153 else
154 # can rely on return value
155 find_it() {
156 which $1 > /dev/null 2>&1 && shift && "$@"
157 }
158
159 find_it_options() {
160 which $1 > /dev/null 2>&1
161 }
162 fi
163
164 #echo "replaceWithinString: $1, $2, $3" >&2
165 #echo ${1//$2/$3} # causes error in BSD even though not used
166 replaceWithinString(){
167 echo $1 | awk "{ gsub(/$2/, \"$3\"); print }"
168 }
169
170 convertIcon(){
171 if [ ! -f "$1" ] ; then
172 echo "Icon file not found: $1" >&2
173 return 1
174 fi
175
176 if [ "$1" = "$2" ]; then
177 # $dnlamVERBOSE "Files are in the same location: $1 = $2" >&2
178 # not really an error; just nothing to do.
179 return 0;
180 fi
181
182 local BASENAME
183 BASENAME="${1##*/}"
184
185 # make sure it is an icon by checking if it has an extension
186 if [ "$BASENAME" = "${BASENAME%%.*}" ]; then
187 # $dnlamVERBOSE "File $1 does not have a filename extention." >&2
188 return 1;
189 fi
190
191 # don't have to convert xpm files
192 case "$1" in
193 *.xpm)
194 echo "$1"
195 return 0;
196 ;;
197 esac
198
199 # may not have to convert png if imlib is enabled
200 if [ "$PNG_ICONS" = "yes" ]; then
201 case "$1" in
202 *.png)
203 echo "$1"
204 return 0;
205 ;;
206 esac
207 fi
208
209 # convert all others icons and save it as xpm format under directory $2
210 entry_icon="$2/${BASENAME%.*}.xpm"
211 if [ -f "${entry_icon}" ]; then
212 : echo "File exists. To overwrite, type: convert \"$1\" \"$entry_icon\"" >&2
213 else
214 if which convert &> /dev/null; then
215 convert "$1" "$entry_icon"
216 # echo convert "$1" , "$entry_icon" >> $ICONMAPPING
217 else
218 echo "Please install ImageMagick's convert utility" >&2
219 fi
220 fi
221 echo "$entry_icon"
222 }
223
224 removePath(){
225 execname="$1"
226 progname="${execname%% *}"
227 # separate program name and its parameters
228 if [ "$progname" = "$execname" ]; then
229 # no params
230 # remove path from only program name
231 execname="${progname##*/}"
232 else
233 params="${execname#* }"
234 # remove path from only program name
235 execname="${progname##*/} $params"
236 fi
237 echo $execname
238 }
239
240 doSearchLoop(){
241 for ICONPATH in "$@"; do
242 ## $dnlamVERBOSE ": $ICONPATH" >> $ICONMAPPING
243 [ -d "$ICONPATH" ] || continue
244 #echo -n "."
245 # # $dnlamVERBOSE ":: $ICONPATH/$temp_icon" >> $ICONMAPPING
246 if [ -f "$ICONPATH/$temp_icon" ]; then
247 echo "$ICONPATH/$temp_icon"
248 return 0;
249 else # try different extensions;
250 # remove extension
251 iconNOext="${temp_icon%%.*}"
252 [ -d "$ICONPATH" ] && for ICONEXT in .xpm .png .gif ; do
253 ## echo "::: $ICONPATH/$iconNOext$ICONEXT" >> $ICONMAPPING
254 if [ -f "$ICONPATH/$iconNOext$ICONEXT" ]; then
255 echo "$ICONPATH/$iconNOext$ICONEXT"
256 return 0;
257 fi
258 done
259 fi
260 done
261 #echo "done"
262 return 1
263 }
264
265 doSearch(){
266 # remove '(' from '(fluxbox ...) | ...'
267 execname=`replaceWithinString "$1" "\("`
268 temp_icon="$2"
269 # $dnlamVERBOSE "# Searching for icon $temp_icon for $execname" >> $ICONMAPPING
270
271 # check in $ICONMAPPING before searching directories
272 entry_icon=`grep "^\"${execname}\"" $ICONMAPPING | head -n 1 | grep -o '<.*>'`
273 if [ -n "$entry_icon" ]; then
274 entry_icon=`replaceWithinString "$entry_icon" "<"`
275 entry_icon=`replaceWithinString "$entry_icon" ">"`
276 echo $entry_icon
277 return 0;
278 fi
279 # echo "$ICONMAPPING for $execname: $entry_icon"
280
281 # the following paths include a user-defined variable, listing paths to search for icons
282 # echo -n "for $temp_icon"
283 eval doSearchLoop $USER_ICONPATHS \
284 "$FB_ICONDIR" \
285 "/usr/share/${execname%% *}" \
286 ${OTHER_ICONPATHS} \
287
288
289 }
290
291 searchForIcon(){
292 # remove '&' and everything after it
293 entry_exec="${1%%&*}"
294 entry_icon="$2"
295 # $dnlamVERBOSE echo "searchForIcon \"$entry_exec\" \"$entry_icon\"" >&2
296
297 # get the basename and parameters of entry_exec -- no path
298 entry_exec=`removePath "${entry_exec}"`
299 [ -z "$entry_exec" ] && { echo "Exec is NULL $1 with icon $2"; return 1; }
300
301 # search for specified icon if it does not exists
302 if [ -n "$entry_icon" ] && [ ! "$entry_exec" = "$entry_icon" ] && [ ! -f "$entry_icon" ]; then
303 # to search for icon in other paths,
304 # get basename
305 temp_icon="${entry_icon##*/}"
306 # remove parameters
307 temp_icon="${temp_icon#* }"
308 # clear entry_icon until temp_icon is found
309 unset entry_icon
310
311 if [ ! -f "$entry_icon" ]; then
312 entry_icon=`doSearch "$entry_exec" "$temp_icon"`
313 fi
314 fi
315
316 # remove parameters
317 execname="${entry_exec%% *}"
318
319 # echo "search for icon named $execname.{xpm,png,gif}"
320 if [ ! -f "$entry_icon" ]; then
321 entry_icon=`doSearch "$entry_exec" "$execname"`
322 fi
323
324 # ----------- done with search ------------
325 # $dnlamVERBOSE echo "::: $entry_icon" >&2
326
327 # convert icon file, if needed
328 if [ -f "$entry_icon" ] && [ -n "yes$ConvertIfNecessary" ]; then
329 entry_icon=`convertIcon "$entry_icon" "$HOME/.fluxbox/icons"`
330 # $dnlamVERBOSE echo ":::: $entry_icon" >&2
331 fi
332
333 # remove path to icon; just get basename
334 icon_base="${entry_icon##*/}"
335 # remove extension
336 icon_base="${icon_base%%.*}"
337 # echo "^.${entry_exec}.[[:space:]]*<.*/${icon_base}\....>"
338 if [ -f "$entry_icon" ]; then
339 # if icon exists and entry does not already exists, add it
340 if ! grep -q -m 1 "^.${entry_exec}.[[:space:]]*<.*/${icon_base}\....>" $ICONMAPPING 2> /dev/null; then
341 echo -e "\"${entry_exec}\" \t <${entry_icon}>" >> $ICONMAPPING
342 else
343 : echo "# mapping already exists for ${entry_exec}" >> $ICONMAPPING
344 fi
345 else
346 echo "# No icon file found for $entry_exec" >> $ICONMAPPING
347 fi
348 }
349
350 toSingleLine(){ echo "$@"; }
351 createIconMapping(){
352 # $dnlamVERBOSE "# creating `date`" >> $ICONMAPPING
353 # $dnlamVERBOSE "# using desktop files in $@" >> $ICONMAPPING
354 # $dnlamVERBOSE "# searching for icons in `eval toSingleLine $OTHER_ICONPATHS`" >> $ICONMAPPING
355 # need to determine when to use .fluxbox/icons/$execname.xpm over those listed in iconmapping
356 # $dnlamVERBOSE echo "createIconMapping: $@"
357 for DIR in "$@" ; do
358 if [ -d "$DIR" ]; then
359 # $dnlamVERBOSE echo "# ------- Looking in $DIR" >&2
360 # >> $ICONMAPPING
361 find "$DIR" -type f -name "*.desktop" | while read DESKTOP_FILE; do
362 # echo $DESKTOP_FILE;
363 #entry_name=`grep '^[ ]*Name=' $DESKTOP_FILE | head -n 1`
364 #entry_name=${entry_name##*=}
365 entry_exec=`grep '^[ ]*Exec=' "$DESKTOP_FILE" | head -n 1`
366 entry_exec=${entry_exec##*=}
367 entry_exec=`replaceWithinString "$entry_exec" "\""`
368 if [ -z "$entry_exec" ]; then
369 entry_exec=${DESKTOP_FILE%%.desktop*}
370 fi
371
372 entry_icon=`grep '^[ ]*Icon=' "$DESKTOP_FILE" | head -n 1`
373 entry_icon=${entry_icon##*=}
374
375 # $dnlamVERBOSE echo "--- $entry_exec $entry_icon" >&2
376 case "$entry_icon" in
377 "" | mime_empty | no_icon )
378 : echo "no icon for $entry_exec"
379 ;;
380 *)
381 searchForIcon "$entry_exec" "$entry_icon"
382 ;;
383 esac
384 done
385 fi
386 done
387 # $dnlamVERBOSE "# done `date`" >> $ICONMAPPING
388 }
389
390 lookupIcon() {
391 if [ ! -f "$ICONMAPPING" ]; then
392 echo "!!! Icon map file not found: $ICONMAPPING" >&2
393 return 1
394 fi
395
396 execname="$1"
397 shift
398 [ -n "$1" ] && echo "!! Ignoring extra paramters: $*" >&2
399
400 [ -z "$execname" ] && { echo "execname is NULL; cannot lookup"; return 1; }
401 execname=`removePath "$execname"`
402
403 #echo "grepping ${execname}"
404 iconString=`grep "^\"${execname}\"" $ICONMAPPING | head -n 1 | grep -o '<.*>'`
405 # $dnlamVERBOSE "lookupIcon $execname, $iconString" >&2
406
407 if [ -z "$iconString" ] ; then
408 iconString=`grep "^\"${execname%% *}" $ICONMAPPING | head -n 1 | grep -o '<.*>'`
409 fi
410
411 if [ -z "$iconString" ] && [ -z "$PARSING_DESKTOP" ] ; then
412 ## $dnlamVERBOSE "lookupIcon: Searching ... should only be needed for icons not gotten from *.desktop (manual-created ones): $execname" >&2
413 searchForIcon "$execname" "$execname"
414 [ -n "$entry_icon" ] && iconString="<$entry_icon>"
415 fi
416
417 # [ -n "$iconString" ] && echo " Found icon for $execname: $iconString" >&2
418 echo $iconString
419 }
420
421 append() {
422 if [ -z "${INSTALL}" ]; then
423 # $dnlamVERBOSE echo "append: $*" >&2
424 iconString="`echo $* | grep -o '<.*>'`"
425 # echo "iconString=$iconString" >&2
426 if [ -z "$iconString" ] && [ -z "$NO_ICON" ]; then
427 echo -n " $* " >> ${MENUFILENAME}
428 # get the program name between '{}' from parameters
429 execname="$*"
430 execname=${execname#*\{}
431 execname=${execname%%\}*}
432 # $dnlamVERBOSE echo "execname=$execname" >&2
433 # if execname hasn't changed from original $*, then no '{...}' was given
434 if [ ! "$execname" = "$*" ]; then
435 case "$execname" in
436 $DEFAULT_TERM*)
437 # remove quotes
438 execname=`replaceWithinString "$execname" "\""`
439 # remove "$DEFAULT_TERM -e "
440 # needed in case calling another program (e.g., vi) via "xterm -e"
441 execname=${execname##*$DEFAULT_TERM -e }
442 ;;
443 esac
444 # lookup execname in icon map file
445 iconString=`lookupIcon "$execname"`
446 #[ -n "$iconString" ] || echo "No icon found for $execname"
447 fi
448 echo "${iconString}" >> ${MENUFILENAME}
449 else
450 echo " $*" >> ${MENUFILENAME}
451 fi
452 else
453 echo " $*" >> ${MENUFILENAME}
454 fi
455 }
456
457 append_menu() {
458 echo "$*" >> ${MENUFILENAME}
459 }
460
461 append_submenu() {
462 [ "${REMOVE}" ] && echo >> ${MENUFILENAME} # only an empty line in templates
463 append_menu "[submenu] ($1)"
464 }
465
466 append_menu_end() {
467 append_menu '[end]'
468 [ "${REMOVE}" ] && echo >> ${MENUFILENAME} # only an empty line in templates
469 }
470
471 menu_entry() {
472 if [ -f "$1" ]; then
473 # space&tab here
474 entry_name=`grep '^[ ]*Name=' "$1" | head -n 1 | cut -d = -f 2`
475 entry_exec=`grep '^[ ]*Exec=' "$1" | head -n 1 | cut -d = -f 2`
476 if [ -n "$entry_name" -a -n "$entry_exec" ]; then
477 append "[exec] ($entry_name) {$entry_exec}"
478 fi
479 fi
480 }
481
482 menu_entry_dir() {
483 for b in "$*"/*.desktop; do
484 menu_entry "${b}"
485 done
486 }
487
488 menu_entry_dircheck() {
489 if [ -d "$*" ]; then
490 menu_entry_dir "$*"
491 fi
492 }
493
494
495 # recursively build a menu from the listed directories
496 # the dirs are merged
497 recurse_dir_menu () {
498 ls "$@"/ 2>/dev/null | sort | uniq | while read name; do
499 for dir in "$@"; do
500 if [ -n "$name" -a -d "$dir/$name" ]; then
501 # recurse
502 append_submenu "${name}"
503 # unfortunately, this is messy since we can't easily expand
504 # them all. Only allow for 3 atm. Add more if needed
505 recurse_dir_menu ${1:+"$1/$name"} ${2:+"$2/$name"} ${3:+"$3/$name"}
506 append_menu_end
507 break; # found one, it'll pick up all the rest
508 fi
509 # ignore it if it is a file, since menu_entry_dir picks those up
510 done
511 done
512
513 # Make entries for current dir after all submenus
514 for dir in "$@"; do
515 menu_entry_dircheck "${dir}"
516 done
517 }
518
519
520 normal_find() {
521 while [ "$1" ]; do
522 find_it $1 append "[exec] ($1) {$1}"
523 shift
524 done
525 }
526
527 cli_find() {
528 while [ "$1" ]; do
529 find_it $1 append "[exec] ($1) {${DEFAULT_TERM} -e $1}"
530 shift
531 done
532 }
533
534 clean_up() {
535 [ -f "$ICONMAPPING" ] && rm -f "$ICONMAPPING"
536
537 # Some magic to clean up empty menus
538 rm -f ${MENUFILENAME}.tmp
539 touch ${MENUFILENAME}.tmp
540 counter=10 # prevent looping in odd circumstances
541 until [ $counter -lt 1 ] || \
542 cmp ${MENUFILENAME} ${MENUFILENAME}.tmp 2>&1 > /dev/null; do
543 [ -s ${MENUFILENAME}.tmp ] && mv ${MENUFILENAME}.tmp ${MENUFILENAME}
544 counter=`expr $counter - 1`
545 grep -v '^$' ${MENUFILENAME}|sed -e "/^\[submenu].*/{
546 n
547 N
548 /^\[submenu].*\n\[end]/d
549 }"|sed -e "/^\[submenu].*/{
550 N
551 /^\[submenu].*\n\[end]/d
552 }" > ${MENUFILENAME}.tmp
553 done
554 rm -f ${MENUFILENAME}.tmp
555 }
556
557 # menu defaults (if translation forget to set one of them)
558 ABOUTITEM='About'
559 BACKGROUNDMENU='Backgrounds'
560 BACKGROUNDMENUTITLE='Set the Background'
561 BROWSERMENU='Browsers'
562 BURNINGMENU='Burning'
563 CONFIGUREMENU='Configure'
564 EDITORMENU='Editors'
565 EDUCATIONMENU='Education'
566 EXITITEM='Exit'
567 FBSETTINGSMENU='fluxbox menu'
568 FILEUTILSMENU='File utils'
569 FLUXBOXCOMMAND='Fluxbox Command'
570 GAMESMENU='Games'
571 GNOMEMENUTEXT='Gnome-menus'
572 GRAPHICMENU='Graphics'
573 KDEMENUTEXT='KDE-menus'
574 LOCKSCREEN='Lock screen'
575 MISCMENU='Misc'
576 MULTIMEDIAMENU='Multimedia'
577 MUSICMENU='Audio'
578 NETMENU='Net'
579 NEWS='News'
580 OFFICEMENU='Office'
581 RANDOMBACKGROUND='Random Background'
582 REGENERATEMENU='Regen Menu'
583 RELOADITEM='Reload config'
584 RESTARTITEM='Restart'
585 RUNCOMMAND='Run'
586 SCREENSHOT='Screenshot'
587 STYLEMENUTITLE='Choose a style...'
588 SYSTEMSTYLES='System Styles'
589 SYSTEMTOOLSMENU='System Tools'
590 TERMINALMENU='Terminals'
591 TOOLS='Tools'
592 USERSTYLES='User Styles'
593 VIDEOMENU='Video'
594 WINDOWMANAGERS='Window Managers'
595 WINDOWNAME='Window name'
596 WORKSPACEMENU='Workspace List'
597 XUTILSMENU='X-utils'
598
599 # Check translation
600 case ${LC_ALL} in
601 ru_RU*) #Russian locales
602
603 # Ah my Russian hero. Please help me update the translation
604 # $ cp fluxbox-generate-menu.in fluxbox-generate-menu.in.orig
605 # $ $EDITOR fluxbox-generate-menu.in
606 # $ diff u fluxbox-generate-menu.in.orig fluxbox-generate-menu.in > fbgm.diff
607 # email fbgm.diff to han@mijncomputer.nl
608
609 BACKGROUNDMENU='ïÂÏÉ'
610 BACKGROUNDMENUTITLE='õÓÔÁÎÏ×ÉÔØ ÏÂÏÉ'
611 BROWSERMENU='âÒÁÕÚÅÒÙ'
612 CONFIGUREMENU='îÁÓÔÒÏÊËÁ'
613 EDITORMENU='òÅÄÁËÔÏÒÙ'
614 EXITITEM='÷ÙÊÔÉ'
615 FBSETTINGSMENU='FB-ÎÁÓÔÒÏÊËÉ'
616 FILEUTILSMENU='æÁÊÌÏ×ÙÅ ÕÔÉÌÉÔÙ'
617 FLUXBOXCOMMAND='÷ÙÐÏÌÎÉÔØ ËÏÍÁÎÄÕ'
618 GAMESMENU='éÇÒÙ'
619 GNOMEMENUTEXT='Gnome-ÍÅÎÀ'
620 GRAPHICMENU='çÒÁÆÉËÁ'
621 KDEMENUTEXT='KDE-ÍÅÎÀ'
622 LOCKSCREEN='úÁÂÌÏËÉÒÏ×ÁÔØ ÜËÒÁÎ'
623 MISCMENU='ðÒÏÞÅÅ'
624 MUSICMENU='ú×ÕË'
625 NETMENU='óÅÔØ'
626 OFFICEMENU='ïÆÉÓÎÙÅ ÐÒÉÌÏÖÅÎÉÑ'
627 RANDOMBACKGROUND='óÌÕÞÁÊÎÙÅ ÏÂÏÉ'
628 REGENERATEMENU='óÏÚÄÁÔØ ÍÅÎÀ ÚÁÎÏ×Ï'
629 RELOADITEM='ðÅÒÅÎÁÓÔÒÏÉÔØ'
630 RESTARTITEM='ðÅÒÅÚÁÐÕÓÔÉÔØ'
631 RUNCOMMAND='÷ÙÐÏÌÎÉÔØ'
632 SCREENSHOT='óÎÉÍÏË ÜËÒÁÎÁ'
633 STYLEMENUTITLE='÷ÙÂÅÒÉÔÅ ÓÔÉÌØ'
634 SYSTEMSTYLES='óÉÓÔÅÍÎÙÅ ÓÔÉÌÉ'
635 TERMINALMENU='ôÅÒÍÉÎÁÌÙ'
636 TOOLS='õÔÉÌÉÔÙ'
637 USERSTYLES='ðÏÌØÚÏ×ÁÔÅÌØÓËÉÅ ÓÔÉÌÉ'
638 WINDOWMANAGERS='íÅÎÅÄÖÅÒÙ ÏËÏÎ'
639 WINDOWNAME='éÍÑ ÏËÎÁ'
640 WORKSPACEMENU='òÁÂÏÞÉÅ ÐÒÏÓÔÒÁÎÓÔ×Á'
641 XUTILSMENU='X-ÕÔÉÌÉÔÙ'
642 ;;
643
644 cs_CZ.ISO*) # Czech locales (ISO-8859-2 encodings)
645 ABOUTITEM='O programu...'
646 BACKGROUNDMENU='Pozadí'
647 BACKGROUNDMENUTITLE='Nastavení pozadí'
648 BROWSERMENU='Prohlí¾eèe'
649 BURNINGMENU='Vypalování'
650 CONFIGUREMENU='Konfigurace'
651 EDITORMENU='Editory'
652 EXITITEM='Ukonèit'
653 FBSETTINGSMENU='Fluxbox Menu'
654 FILEUTILSMENU='Souborové utility'
655 FLUXBOXCOMMAND='Pøíkaz Fluxboxu'
656 GAMESMENU='Hry'
657 GNOMEMENUTEXT='Gnome-menu'
658 GRAPHICMENU='Grafika'
659 KDEMENUTEXT='KDE-menu'
660 LOCKSCREEN='Zamknout obrazovku'
661 MISCMENU='Rùzné'
662 MULTIMEDIAMENU='Multimédia'
663 MUSICMENU='Audio'
664 NETMENU='Internet'
665 NEWS='News'
666 OFFICEMENU='Kanceláø'
667 RANDOMBACKGROUND='Náhodné pozadí'
668 REGENERATEMENU='Obnovení menu'
669 RELOADITEM='Obnovení konfigurace'
670 RESTARTITEM='Restart'
671 RUNCOMMAND='Spustit program...'
672 SCREENSHOT='Screenshot'
673 STYLEMENUTITLE='Volba stylu...'
674 SYSTEMTOOLSMENU='Systémové utility'
675 SYSTEMSTYLES='Systémové styly'
676 TERMINALMENU='Terminály'
677 TOOLS='Nástroje'
678 USERSTYLES='U¾ivatelské styly'
679 VIDEOMENU='Video'
680 WINDOWMANAGERS='Okenní mana¾ery'
681 WINDOWNAME='Jméno okna'
682 WORKSPACEMENU='Seznam ploch'
683 XUTILSMENU='X-utility'
684 ;;
685
686 de_DE*) # german locales
687 BACKGROUNDMENU='Hintergrundbilder'
688 BACKGROUNDMENUTITLE='Hintergrundbild setzen'
689 BROWSERMENU='Internet-Browser'
690 CONFIGUREMENU='Einstellungen'
691 EDITORMENU='Editoren'
692 EXITITEM='Beenden'
693 FBSETTINGSMENU='Fluxbox-Einstellungen'
694 FILEUTILSMENU='Datei-Utilities'
695 FLUXBOXCOMMAND='Fluxbox Befehl'
696 GAMESMENU='Spiele'
697 GNOMEMENUTEXT='Gnome-Menues'
698 GRAPHICMENU='Grafik'
699 KDEMENUTEXT='Kde-Menues'
700 LOCKSCREEN='Bildschirmsperre'
701 MISCMENU='Sonstiges'
702 MUSICMENU='Musik'
703 NETMENU='Netzwerk'
704 OFFICEMENU='Bueroprogramme'
705 RANDOMBACKGROUND='Zufaelliger Hintergrund'
706 REGENERATEMENU='Menu-Regeneration'
707 RELOADITEM='Konfiguration neu laden'
708 RESTARTITEM='Neustarten'
709 RUNCOMMAND='Ausführen'
710 SCREENSHOT='Bildschirmfoto'
711 STYLEMENUTITLE='Einen Stil auswaehlen...'
712 SYSTEMSTYLES='Systemweite Stile'
713 TERMINALMENU='Terminals'
714 TOOLS='Helfer'
715 USERSTYLES='Eigene Stile'
716 WINDOWMANAGERS='Window Manager'
717 WINDOWNAME='Window Name'
718 WORKSPACEMENU='Arbeitsflaechenliste'
719 XUTILSMENU='X-Anwendungen'
720 ;;
721 sv_SE*) #Swedish locales
722 # Ah my Swedish hero. Please help me update the translation
723 # $ cp fluxbox-generate-menu.in fluxbox-generate-menu.in.orig
724 # $ $EDITOR fluxbox-generate-menu.in
725 # $ diff u fluxbox-generate-menu.in.orig fluxbox-generate-menu.in > fbgm.diff
726 # email fbgm.diff to han@mijncomputer.nl
727
728 BACKGROUNDMENU='Bakgrunder'
729 BACKGROUNDMENUTITLE='Sätt bakgrund'
730 BROWSERMENU='Webbläsare'
731 CONFIGUREMENU='Konfiguration'
732 EDITORMENU='Editorer'
733 EXITITEM='Avsluta'
734 FBSETTINGSMENU='FB-inställningar'
735 FILEUTILSMENU='Filverktyg'
736 FLUXBOXCOMMAND='Fluxbox kommando'
737 GAMESMENU='Spel'
738 GNOMEMENUTEXT='Gnome-menyer'
739 GRAPHICMENU='Grafik'
740 KDEMENUTEXT='KDE-menyer'
741 LOCKSCREEN='Lås skärm'
742 MISCMENU='Blandat'
743 MULTIMEDIAMENU='Multimedia'
744 MUSICMENU='Musik'
745 NETMENU='Internet'
746 OFFICEMENU='Office'
747 RANDOMBACKGROUND='Slumpmässig bakgrund'
748 REGENERATEMENU='Generera meny'
749 RELOADITEM='Ladda om konfig'
750 RESTARTITEM='Starta om'
751 RUNCOMMAND='Kör'
752 SCREENSHOT='Skärmdump'
753 STYLEMENUTITLE='Välj en stil'
754 SYSTEMSTYLES='Stiler'
755 TERMINALMENU='Terminaler'
756 TOOLS='Verktyg'
757 USERSTYLES='Stiler'
758 VIDEOMENU='Video'
759 WINDOWMANAGERS='Fönsterhanterare'
760 WINDOWNAME='Fönsternamn'
761 WORKSPACEMENU='Arbetsytor'
762 XUTILSMENU='X-program'
763 ;;
764 nl_*) #Nederlandse locales
765 BACKGROUNDMENU='Achtergrond'
766 BACKGROUNDMENUTITLE='Kies een achtergrond'
767 BROWSERMENU='Browsers'
768 CONFIGUREMENU='Instellingen'
769 EDITORMENU='Editors'
770 EXITITEM='Afsluiten'
771 FBSETTINGSMENU='FB-Instellingen'
772 FILEUTILSMENU='Verkenners'
773 FLUXBOXCOMMAND='Fluxbox Commando'
774 GAMESMENU='Spelletjes'
775 GNOMEMENUTEXT='Gnome-menu'
776 GRAPHICMENU='Grafisch'
777 KDEMENUTEXT='KDE-menu'
778 LOCKSCREEN='Scherm op slot'
779 MISCMENU='Onregelmatig'
780 MUSICMENU='Muziek'
781 NETMENU='Internet'
782 OFFICEMENU='Office'
783 RANDOMBACKGROUND='Willekeurige Achtergrond'
784 REGENERATEMENU='Nieuw Menu'
785 RELOADITEM='Vernieuw instellingen'
786 RESTARTITEM='Herstart'
787 RUNCOMMAND='Voer uit'
788 SCREENSHOT='Schermafdruk'
789 STYLEMENUTITLE='Kies een stijl'
790 SYSTEMSTYLES='Systeem Stijlen'
791 TERMINALMENU='Terminals'
792 TOOLS='Gereedschap'
793 USERSTYLES='Gebruikers Stijlen'
794 WINDOWMANAGERS='Venster Managers'
795 WINDOWNAME='Venster Naam'
796 WORKSPACEMENU='Werkveld menu'
797 XUTILSMENU='X-Gereedschap'
798 ;;
799 fi_FI*) #Finnish locales
800 BACKGROUNDMENU='Taustakuvat'
801 BACKGROUNDMENUTITLE='Määritä taustakuva'
802 BROWSERMENU='Selaimet'
803 CONFIGUREMENU='Asetukset'
804 EDITORMENU='Editorit'
805 EXITITEM='Lopeta'
806 FBSETTINGSMENU='Fluxboxin säädöt'
807 FILEUTILSMENU='Tiedostotyökalut'
808 FLUXBOXCOMMAND='Komentorivi'
809 GAMESMENU='Pelit'
810 GNOMEMENUTEXT='Gnomen valikot'
811 GRAPHICMENU='Grafiikka'
812 KDEMENUTEXT='KDE:n valikot'
813 LOCKSCREEN='Lukitse työpöytä'
814 MISCMENU='Sekalaista'
815 MUSICMENU='Musiikki'
816 NETMENU='Verkko'
817 OFFICEMENU='Toimistotyökalut'
818 RANDOMBACKGROUND='Satunnainen taustakuva'
819 REGENERATEMENU='Päivitä valikko'
820 RELOADITEM='Päivitä'
821 RESTARTITEM='Käynnistä uudelleen'
822 RUNCOMMAND='Suorita'
823 SCREENSHOT='Kuvakaappaus'
824 STYLEMENUTITLE='Valitse tyyli'
825 SYSTEMSTYLES='Järjestelmän tyylit'
826 TERMINALMENU='Terminaalit'
827 TOOLS='Työkalut'
828 USERSTYLES='Käyttäjän tyylit'
829 WINDOWMANAGERS='Ikkunanhallintaohjelmat'
830 WINDOWNAME='Ikkunan nimi'
831 WORKSPACEMENU='Työalueet'
832 XUTILSMENU='X-Ohjelmat'
833 ;;
834 ja_JP*) #Japanese locales
835 # Ah my Japanese hero. Please help me update the translation
836 # $ cp fluxbox-generate-menu.in fluxbox-generate-menu.in.orig
837 # $ $EDITOR fluxbox-generate-menu.in
838 # $ diff u fluxbox-generate-menu.in.orig fluxbox-generate-menu.in > fbgm.diff
839 # email fbgm.diff to han@mijncomputer.nl
840
841 BACKGROUNDMENU='ÇØ·Ê'
842 BACKGROUNDMENUTITLE='ÇطʤÎÀßÄê'
843 BROWSERMENU='¥Ö¥é¥¦¥¶'
844 CONFIGUREMENU='ÀßÄê'
845 EDITORMENU='¥¨¥Ç¥£¥¿'
846 EXITITEM='½ªÎ»'
847 FBSETTINGSMENU='Fluxbox¤ÎÀßÄê'
848 FILEUTILSMENU='¥Õ¥¡¥¤¥ëÁàºî'
849 FLUXBOXCOMMAND='Fluxbox¥³¥Þ¥ó¥É'
850 GAMESMENU='¥²¡¼¥à'
851 GNOMEMENUTEXT='Gnome¥á¥Ë¥å¡¼'
852 GRAPHICMENU='²èÁü'
853 KDEMENUTEXT='KDE¥á¥Ë¥å¡¼'
854 LOCKSCREEN='¥¹¥¯¥ê¡¼¥ó¥í¥Ã¥¯'
855 MISCMENU='¤¤¤í¤¤¤í'
856 MUSICMENU='²»³Ú'
857 NETMENU='¥Í¥Ã¥È¥ï¡¼¥¯'
858 OFFICEMENU='¥ª¥Õ¥£¥¹(Office)'
859 RANDOMBACKGROUND='ÇØ·Ê(¥é¥ó¥À¥à)'
860 REGENERATEMENU='¥á¥Ë¥å¡¼ºÆ¹½À®'
861 RELOADITEM='ºÆÆɤ߹þ¤ß'
862 RESTARTITEM='ºÆµ¯Æ°'
863 RUNCOMMAND='¥³¥Þ¥ó¥É¤Î¼Â¹Ô'
864 SCREENSHOT='¥¹¥¯¥ê¡¼¥ó¥·¥ç¥Ã¥È'
865 STYLEMENUTITLE='¥¹¥¿¥¤¥ëÁªÂò...'
866 SYSTEMSTYLES='¥¹¥¿¥¤¥ë'
867 TERMINALMENU='¥¿¡¼¥ß¥Ê¥ë'
868 TOOLS='¥Ä¡¼¥ë'
869 USERSTYLES='¥¹¥¿¥¤¥ë'
870 WINDOWMANAGERS='¥¦¥£¥ó¥É¥¦¥Þ¥Í¡¼¥¸¥ã'
871 WINDOWNAME='¥¦¥£¥ó¥É¥¦Ì¾'
872 WORKSPACEMENU='¥ï¡¼¥¯¥¹¥Ú¡¼¥¹'
873 XUTILSMENU='X¥æ¡¼¥Æ¥£¥ê¥Æ¥£'
874 ;;
875 fr_FR*) # french locales
876 # Ah my french hero. Please help me update the translation
877 # $ cp fluxbox-generate-menu.in fluxbox-generate-menu.in.orig
878 # $ $EDITOR fluxbox-generate-menu.in
879 # $ diff u fluxbox-generate-menu.in.orig fluxbox-generate-menu.in > fbgm.diff
880 # email fbgm.diff to han@mijncomputer.nl
881
882 BACKGROUNDMENU="Fond d'écran"
883 BACKGROUNDMENUTITLE="Changer le fond d'écran"
884 BROWSERMENU='Navigateurs'
885 CONFIGUREMENU='Configurer'
886 EDITORMENU='Editeurs'
887 EXITITEM='Sortir'
888 FBSETTINGSMENU='Configurer Fluxbox'
889 FILEUTILSMENU='Outils fichiers'
890 FLUXBOXCOMMAND='Commande Fluxbox'
891 GAMESMENU='Jeux'
892 GNOMEMENUTEXT='Menus Gnome'
893 GRAPHICMENU='Graphisme'
894 KDEMENUTEXT='Menus KDE'
895 LOCKSCREEN="Verouiller l'écran"
896 MISCMENU='Divers'
897 MUSICMENU='Musique'
898 NETMENU='Réseau'
899 OFFICEMENU='Bureautique'
900 RANDOMBACKGROUND="Fond d'écran aléatoire"
901 REGENERATEMENU='Régénérer le menu'
902 RELOADITEM='Recharger la configuration'
903 RESTARTITEM='Redémarrer Fluxbox'
904 RUNCOMMAND='Run'
905 SCREENSHOT="Capture d'écran"
906 STYLEMENUTITLE='Choisir un style...'
907 SYSTEMSTYLES='Styles Systeme'
908 TERMINALMENU='Terminaux'
909 TOOLS='Outils'
910 USERSTYLES='Styles Utilisateur'
911 WINDOWMANAGERS='Gestionnaires de fenêtres'
912 WINDOWNAME='Nom de la fenetre'
913 WORKSPACEMENU='Liste des bureaux'
914 XUTILSMENU='Outils X'
915 ;;
916 it_IT*) # italian locales
917 BACKGROUNDMENU='Sfondi'
918 BACKGROUNDMENUTITLE='Imposta lo sfondo'
919 BROWSERMENU='Browsers'
920 CONFIGUREMENU='Configurazione'
921 EDITORMENU='Editori'
922 EXITITEM='Esci'
923 FBSETTINGSMENU='Preferenze'
924 FILEUTILSMENU='Utilità'
925 FLUXBOXCOMMAND='Comando Fluxbox'
926 GAMESMENU='Giochi'
927 GNOMEMENUTEXT='Gnome'
928 GRAPHICMENU='Grafica'
929 KDEMENUTEXT='KDE'
930 LOCKSCREEN='Blocca lo schermo'
931 MISCMENU='Varie'
932 MUSICMENU='Musica'
933 NETMENU='Internet'
934 OFFICEMENU='Office'
935 RANDOMBACKGROUND='Sfondo casuale'
936 REGENERATEMENU='Rigenera il menu'
937 RELOADITEM='Rileggi la configurazione'
938 RESTARTITEM='Riavvia'
939 RUNCOMMAND='Esegui'
940 SCREENSHOT='Schermata'
941 STYLEMENUTITLE='Scegli uno stile'
942 SYSTEMSTYLES='Stile'
943 TERMINALMENU='Terminali'
944 TOOLS='Attrezzi'
945 USERSTYLES='Stile'
946 WINDOWMANAGERS='Gestori finestre'
947 WINDOWNAME='Nome della finestra'
948 WORKSPACEMENU='Aree di lavoro'
949 XUTILSMENU='Utilità X'
950 ;;
951 ro_RO*) # Romanian locales
952 # Ah my Romanian hero. Please help me update the translation
953 # $ cp fluxbox-generate-menu.in fluxbox-generate-menu.in.orig
954 # $ $EDITOR fluxbox-generate-menu.in
955 # $ diff u fluxbox-generate-menu.in.orig fluxbox-generate-menu.in > fbgm.diff
956 # email fbgm.diff to han@mijncomputer.nl
957
958 BACKGROUNDMENU='Fundaluri'
959 BACKGROUNDMENUTITLE='Alege fundalul'
960 BROWSERMENU='Navigatoare'
961 CONFIGUREMENU='Configurare'
962 EDITORMENU='Editoare'
963 EXITITEM='Iesire'
964 FBSETTINGSMENU='Meniul Fluxbox'
965 FILEUTILSMENU='Utilitare de fisier'
966 FLUXBOXCOMMAND='Comanda Fluxbox'
967 GAMESMENU='Jocuri'
968 GNOMEMENUTEXT='Meniu Gnome'
969 GRAPHICMENU='Grafica'
970 KDEMENUTEXT='Meniu KDE'
971 LOCKSCREEN='Incuie ecranul'
972 MISCMENU='Diverse'
973 MULTIMEDIAMENU='Multimedia'
974 MUSICMENU='Muzica'
975 NETMENU='Retea'
976 OFFICEMENU='Office'
977 RANDOMBACKGROUND='Fundal aleator'
978 REGENERATEMENU='Regenereaza meniul'
979 RELOADITEM='Reincarca configuratia'
980 RESTARTITEM='Restart'
981 RUNCOMMAND='Lanseaza'
982 SCREENSHOT='Captura ecran'
983 STYLEMENUTITLE='Alege un stil...'
984 SYSTEMSTYLES='Stiluri sistem'
985 TERMINALMENU='Terminale'
986 TOOLS='Unelte'
987 USERSTYLES='Stiluri utilizator'
988 WINDOWMANAGERS='WindowManagers'
989 WINDOWNAME='Nume fereastra'
990 WORKSPACEMENU='Lista workspace-uri'
991 XUTILSMENU='Utilitare X'
992 ;;
993 es_ES*) # spanish locales
994
995 ABOUTITEM='Acerca'
996 BACKGROUNDMENU='Fondos'
997 BACKGROUNDMENUTITLE='Seleccionar Fondo'
998 BROWSERMENU='Navegadores'
999 BURNINGMENU='Herramientas de grabación'
1000 CONFIGUREMENU='Configurar'
1001 EDITORMENU='Editores'
1002 EDUCATIONMENU='Educación'
1003 EXITITEM='Salir'
1004 FBSETTINGSMENU='Menú fluxbox'
1005 FILEUTILSMENU='Utilidades'
1006 FLUXBOXCOMMAND='Comandos de Fluxbox'
1007 GAMESMENU='Juegos'
1008 GNOMEMENUTEXT='Menús Gnome'
1009 GRAPHICMENU='Gráficos'
1010 KDEMENUTEXT='Menús KDE'
1011 LOCKSCREEN='Bloquear Pantalla'
1012 MISCMENU='Varios'
1013 MULTIMEDIAMENU='Multimedia'
1014 MUSICMENU='Música'
1015 NETMENU='Red'
1016 NEWS='Noticias'
1017 OFFICEMENU='Oficina'
1018 RANDOMBACKGROUND='Fondo Aleatoreo'
1019 REGENERATEMENU='Regenerar Menú'
1020 RELOADITEM='Reconfigurar'
1021 RESTARTITEM='Reiniciar'
1022 RUNCOMMAND='Ejecutar'
1023 SCREENSHOT='Captura de Pantalla'
1024 STYLEMENUTITLE='Escoge un Estilo...'
1025 SYSTEMSTYLES='Estilos del Sistema'
1026 TERMINALMENU='Terminales'
1027 TOOLS='Herramienta'
1028 USERSTYLES='Estilos del Usuario'
1029 VIDEOMENU='Video'
1030 WINDOWMANAGERS='Gestores de Ventanas'
1031 WINDOWNAME='Nombre de Ventana'
1032 WORKSPACEMENU='Lista de Escritorios'
1033 XUTILSMENU='Utilidades X'
1034 ;;
1035 pl_PL*) # Polish locales
1036 # Ah my Russian hero. Please help me update the translation
1037 # $ cp fluxbox-generate-menu.in fluxbox-generate-menu.in.orig
1038 # $ $EDITOR fluxbox-generate-menu.in
1039 # $ diff u fluxbox-generate-menu.in.orig fluxbox-generate-menu.in > fbgm.diff
1040 # email fbgm.diff to han@mijncomputer.nl
1041
1042 BACKGROUNDMENU='Tapety'
1043 BACKGROUNDMENUTITLE='Ustaw tapetê'
1044 BROWSERMENU='Przegl±darki'
1045 CONFIGUREMENU='Konfiguracja'
1046 EDITORMENU='Edytory'
1047 EXITITEM='Wyj¶cie'
1048 FBSETTINGSMENU='Menu Fluxbox'
1049 FILEUTILSMENU='Narzêdzia do plików'
1050 FLUXBOXCOMMAND='Polecenia Fluxbox'
1051 GAMESMENU='Gry'
1052 GNOMEMENUTEXT='Menu Gnome'
1053 GRAPHICMENU='Grafika'
1054 KDEMENUTEXT='Menu KDE'
1055 LOCKSCREEN='Zablokuj ekran'
1056 MISCMENU='Ró¿ne'
1057 MULTIMEDIAMENU='Multimedia'
1058 MUSICMENU='Muzyka'
1059 NETMENU='Sieæ'
1060 OFFICEMENU='Aplikacje biurowe'
1061 RANDOMBACKGROUND='Losowa tapeta'
1062 REGENERATEMENU='Wygeneruj menu'
1063 RELOADITEM='Od¶wie¿ konfiguracjê'
1064 RESTARTITEM='Restartuj'
1065 RUNCOMMAND='Uruchom...'
1066 SCREENSHOT='Zrzut ekranu'
1067 STYLEMENUTITLE='Wybierz styl...'
1068 SYSTEMSTYLES='Style systemowe'
1069 TERMINALMENU='Terminale'
1070 TOOLS='Narzêdzia'
1071 USERSTYLES='Style u¿ytkownika'
1072 WINDOWMANAGERS='Menad¿ery okien'
1073 WINDOWNAME='Nazwy okien'
1074 WORKSPACEMENU='Lista pulpitów'
1075 XUTILSMENU='Narzêdzia X'
1076 ;;
1077 pt_PT*) # Portuguese locales
1078 ABOUTMENU="Sobre"
1079 BACKGROUNDMENU='Imagens de Fundo'
1080 BACKGROUNDMENUTITLE='Definir Imagem de Fundo'
1081 BROWSERMENU='Browsers'
1082 BURNINGMENU='Ferramentas de Gravação'
1083 CONFIGUREMENU='Configuração'
1084 EDITORMENU='Editores'
1085 EDUCATIONMENU='Educação'
1086 EXITITEM='Sair'
1087 FBSETTINGSMENU='Menu Fluxbox'
1088 FILEUTILSMENU='Utilitários de Ficheiros'
1089 FLUXBOXCOMMAND='Comando Fluxbox'
1090 GAMESMENU='Jogos'
1091 GNOMEMENUTEXT='Menu Gnome'
1092 GRAPHICMENU='Gráficos'
1093 KDEMENUTEXT='Menu KDE'
1094 LOCKSCREEN='Trancar Ecrã'
1095 MISCMENU='Misc.'
1096 MULTIMEDIAMENU='Multimédia'
1097 MUSICMENU='Áudio'
1098 NETMENU='Rede'
1099 NEWS='Notícias'
1100 OFFICEMENU='Escritório'
1101 RANDOMBACKGROUND='Imagem Aleatória'
1102 REGENERATEMENU='Regenerar Menu'
1103 RELOADITEM='Recarregar configuração'
1104 RESTARTITEM='Reiniciar'
1105 RUNCOMMAND='Executar'
1106 SCREENSHOT='Capturar Ecrã'
1107 STYLEMENUTITLE='Escolha um estilo...'
1108 SYSTEMSTYLES='Estilos do Sistema'
1109 SYSTEMTOOLSMENU='Ferramentas de Sistema'
1110 TERMINALMENU='Terminais'
1111 TOOLS='Ferramentas'
1112 USERSTYLES='Estilos do Utilizador'
1113 VIDEOMENU='Vídeo'
1114 WINDOWMANAGERS='Gestores de Janelas'
1115 WINDOWNAME='Nome da Janela'
1116 WORKSPACEMENU='Lista de Áreas de Trabalho'
1117 XUTILSMENU='Utilitários X'
1118 ;;
1119 nb_NO*) # Norwegian locales
1120 ABOUTITEM='Om'
1121 BACKGROUNDMENU='Bakgrunner'
1122 BACKGROUNDMENUTITLE='Velg bakgrunn'
1123 BROWSERMENU='Nettlesere'
1124 CONFIGUREMENU='Oppsett'
1125 EDITORMENU='Tekstredigeringsprogram'
1126 EDUCATIONMENU='Lek og lær'
1127 EXITITEM='Avslutt'
1128 FBSETTINGSMENU='FluxBox-meny'
1129 FILEUTILSMENU='Filverktøy'
1130 FLUXBOXCOMMAND='FluxBox-kommando'
1131 GAMESMENU='Spill'
1132 GNOMEMENUTEXT='Gnome-menyer'
1133 GRAPHICMENU='Grafikk'
1134 KDEMENUTEXT='KDE-menyer'
1135 LOCKSCREEN='LÃ¥s skjermen'
1136 MISCMENU='Diverse'
1137 MULTIMEDIAMENU='Multimedia'
1138 MUSICMENU='Lyd'
1139 NETMENU='Nett'
1140 NEWS='Nyheter'
1141 OFFICEMENU='Kontor'
1142 RANDOMBACKGROUND='Tilfeldig bakgrunn'
1143 REGENERATEMENU='Regen Menu'
1144 RELOADITEM='Last oppsett på nytt'
1145 RESTARTITEM='Start på nytt'
1146 RUNCOMMAND='Kjør'
1147 SCREENSHOT='Ta bilde'
1148 STYLEMENUTITLE='Velg en stil . . .'
1149 SYSTEMSTYLES='System-stiler'
1150 TERMINALMENU='Terminaler'
1151 TOOLS='Verktøy'
1152 USERSTYLES='Bruker-stiler'
1153 VIDEOMENU='Video'
1154 WINDOWMANAGERS='Vindusbehandlere'
1155 WINDOWNAME='Vindunavn'
1156 WORKSPACEMENU='Liste over arbeidsområder'
1157 XUTILSMENU='X-verktøy'
1158 ;;
1159 *)
1160 ;;
1161 esac
1162
1163 # Set Defaults
1164 MENUFILENAME="${MENUFILENAME:=${HOME}/.fluxbox/menu}"
1165 MENUTITLE="${MENUTITLE:=Fluxbox}"
1166 HOMEPAGE="${HOMEPAGE:=fluxbox.org}"
1167 USERMENU="${USERMENU:=${HOME}/.fluxbox/usermenu}"
1168
1169 # Read the menuconfig file if it exists or else create it.
1170 # But not during install time, use envvar for sun
1171 if [ ! "${INSTALL}" = Yes ]; then
1172 if [ -r ${HOME}/.fluxbox/menuconfig ]; then
1173 . ${HOME}/.fluxbox/menuconfig
1174 else
1175 if [ ! "$WHOAMI" = root ]; then # this is only for users.
1176 if touch ${HOME}/.fluxbox/menuconfig; then
1177 cat << EOF > ${HOME}/.fluxbox/menuconfig
1178 # This file is read by fluxbox-generate_menu. If you don't like a
1179 # default you can change it here. Don't forget to remove the # in front
1180 # of the line.
1181
1182 # Your favourite terminal. Put the command in quotes if you want to use
1183 # options. Put a backslash in before odd chars
1184 # MY_TERM='Eterm --tint \#123456'
1185 # MY_TERM='aterm -tint \$(random_color)'
1186
1187 # Your favourite browser. You can also specify options.
1188 # MY_BROWSER=mozilla
1189
1190 # Name of the outputfile
1191 # MENUFILENAME=${HOME}/.fluxbox/menu
1192
1193 # MENUTITLE=\`fluxbox -version|cut -d " " -f-2\`
1194
1195 # standard url for console-browsers
1196 # HOMEPAGE=fluxbox.org
1197
1198 # location with your own menu-entries
1199 # USERMENU=~/.fluxbox/usermenu
1200
1201 # Put the launcher you would like to use here
1202 # LAUNCHER=fbrun
1203 # LAUNCHER=fbgm
1204
1205 # Options for fbrun
1206 # FBRUNOPTIONS='-font 10x20 -fg grey -bg black -title run'
1207
1208 # --- PREFIX'es
1209 # These are prefixes; So if fluxbox is installed in /usr/bin/fluxbox
1210 # your prefix is: /usr
1211
1212 # fluxbox-generate already looks in /usr/X11R6, /usr, /usr/local and /opt so
1213 # there should be no need to specify them.
1214 #
1215 # PREFIX=/usr
1216 # GNOME_PREFIX=/opt/gnome
1217 # KDE_PREFIX=/opt/kde
1218
1219
1220 # Sepparate the list of background-dirs with semicolumns ':'
1221 # BACKGROUND_DIRS="${HOME}/.fluxbox/backgrounds/:/usr/share/fluxbox/backgrounds/:/usr/share/wallpapers"
1222
1223
1224 # --- Boolean variables.
1225 # Setting a variable to ``no'' won't help. Comment them out if you don't
1226 # want them. Setting are overruled by the command-line options.
1227
1228 # Include all backgrounds in your backgrounds-directory
1229 # BACKGROUNDMENUITEM=yes
1230
1231 # Include kde-menus
1232 # KDEMENU=yes
1233
1234 # Include gnome-menus
1235 # GNOMEMENU=yes
1236
1237 # Don't cleanup the menu
1238 # REMOVE=no
1239
1240 EOF
1241 else
1242 echo "Warning: I couldn't create ${HOME}/.fluxbox/menuconfig" >&2
1243 fi
1244 fi
1245 fi
1246 fi
1247
1248 testoption() {
1249 if [ -z "$3" -o -n "`echo $3|grep '^-'`" ]; then
1250 echo "Error: The option $2 requires an argument." >&2
1251 exit 1
1252 fi
1253 case $1 in
1254 ex) # executable
1255 if find_it "$3"; then
1256 :
1257 else
1258 echo "Error: The option $2 needs an executable as argument, and \`$3' is not." >&2
1259 fi
1260 ;;
1261 di) # directory
1262 if [ -d "$3" ]; then
1263 :
1264 else
1265 echo "Error: The option $2 needs a directory as argument, and \`$3' is not." >&2
1266 fi
1267 ;;
1268 fl) # file
1269 if [ -r "$3" ]; then
1270 :
1271 else
1272 echo "Error: The option $2 needs a readable file as argument, and \`$3' is not." >&2
1273 fi
1274 ;;
1275 sk) # skip
1276 :
1277 ;;
1278 esac
1279 }
1280
1281 # Get options.
1282 while [ $# -gt 0 ]; do
1283 case "$1" in
1284 -B) BACKGROUNDMENUITEM=yes; shift;;
1285 -k) KDEMENU=yes; shift;;
1286 -g) GNOMEMENU=yes; shift;;
1287 -in) NO_ICON=yes; shift;;
1288 -is) OTHER_ICONPATHS="
1289 /usr/share/icons,
1290 /usr/share/icons/mini,
1291 /usr/share/pixmaps,
1292 /usr/local/share/icons,
1293 /usr/local/share/icons/mini,
1294 /usr/local/share/pixmaps,
1295 /usr/share/xclass/icons,
1296 /usr/share/xclass/pixmaps,
1297 /usr/local/share/xclass/icons,
1298 /usr/local/share/xclass/pixmaps,
1299 /usr/X11R6/share/icons/default/16x16,
1300 /usr/X11R6/share/icons/kde/16x16,
1301 /usr/X11R6/share/icons/hicolor/16x16,
1302 /usr/local/X11R6/share/icons/default/16x16,
1303 /usr/local/X11R6/share/icons/kde/16x16,
1304 /usr/local/X11R6/share/icons/hicolor/16x16,
1305 "
1306 shift;;
1307 -ds) OTHER_DESKTOP_PATHS="
1308 /usr/share/mimelnk
1309 /usr/share/applications
1310 /usr/share/xsessions
1311 /usr/share/services
1312 "
1313 # /usr/share/apps \
1314 shift;;
1315 -i) USER_ICONPATHS=${2};
1316 #needs testing
1317 for aPath in $2; do
1318 testoption di $1 $aPath;
1319 done
1320 shift 2;;
1321 -d) USER_DESKTOP_PATHS=${2};
1322 #needs testing
1323 for aPath in $2; do
1324 testoption di $1 $aPath;
1325 done
1326 shift 2;;
1327 -t) MY_TERM=${2}; testoption ex $1 $2; shift 2;;
1328 -b) MY_BROWSER=${2}; testoption ex $1 $2; shift 2;;
1329 -o) MENUFILENAME=${2}; shift 2; CHECKINIT=NO ;;
1330 -p) PREFIX=${2}; testoption di $1 $2; shift 2;;
1331 -n) GNOME_PREFIX=${2}; testoption di $1 $2; shift 2;;
1332 -q) KDE_PREFIX=${2}; testoption di $1 $2; shift 2;;
1333 -m) MENUTITLE=${2}; testoption sk $1 $2; shift 2;;
1334 -w) HOMEPAGE=${2}; testoption sk $1 $2; shift 2;;
1335 -u) USERMENU=${2}; testoption fl $1 $2; shift 2;;
1336 -r) REMOVE=no; shift;;
1337 -h) display_help ; exit 0 ;;
1338 -a) display_authors ; exit 0 ;;
1339 --*) echo "fluxbox-generate_menu doesn't recognize -- gnu-longopts."
1340 echo 'Use fluxbox-generate_menu -h for a long help message.'
1341 display_usage
1342 exit 1 ;;
1343 -[a-zA-Z][a-zA-Z]*)
1344 # split concatenated single-letter options apart
1345 FIRST="$1"; shift
1346 set -- `echo "$FIRST" | sed 's/^-\(.\)\(.*\)/-\1 -\2/'` "$@"
1347 ;;
1348 -*)
1349 echo 1>&2 "fluxbox-generate_menu: unrecognized option "\`"$1'"
1350 display_usage
1351 exit 1
1352 ;;
1353 *)
1354 break
1355 ;;
1356 esac
1357 done
1358
1359 # Check defaults
1360
1361 # Can we actually create ${MENUFILENAME}
1362 touch ${MENUFILENAME} 2> /dev/null
1363 if [ $? -ne 0 ]; then
1364 echo "Fatal error: can't create or write to $MENUFILENAME" >&2
1365 exit 1
1366 fi
1367
1368 # backup menu
1369 if [ -w "${MENUFILENAME}" ]; then
1370 if [ -f ${MENUFILENAME}.firstbak ]; then
1371 cp ${MENUFILENAME} ${MENUFILENAME}.firstbak
1372 fi
1373 if [ -s "${MENUFILENAME}" ]; then
1374 mv ${MENUFILENAME} ${MENUFILENAME}.bak
1375 fi
1376 fi
1377
1378 # prefix
1379 PREFIX="${PREFIX:=/usr}"
1380 if [ -z "${PREFIX}" -o ! -d "${PREFIX}" ]; then
1381 PREFIX=`which fluxbox | sed 's,/bin/fluxbox$,,'`
1382 fi
1383
1384
1385 # gnome prefix
1386 for GNOME_PREFIX in "${GNOME_PREFIX}" /usr/local /usr/X11R6 /usr /opt "${PREFIX}"; do
1387 if [ -n "${GNOME_PREFIX}" -a -d "$GNOME_PREFIX/share/gnome" ]; then
1388 break;
1389 fi
1390 done
1391 # Will remain $PREFIX if all else fails
1392
1393 # kde prefix
1394 for KDE_PREFIX in "${KDE_PREFIX}" /usr/local /usr/X11R6 /usr /opt "${PREFIX}"; do
1395 if [ -n "${KDE_PREFIX}" -a -d "$KDE_PREFIX/share/applnk" ]; then
1396 break;
1397 fi
1398 done
1399
1400 if [ -z "${INSTALL}" ] && [ -z "${NO_ICON}" ]; then
1401 # [ -z "$dnlamVERBOSE" ] && dnlamVERBOSE=": echo" # for debugging
1402 FB_ICONDIR="$HOME/.fluxbox/icons"
1403 [ -r "$FB_ICONDIR" ] || mkdir "$FB_ICONDIR"
1404 ICONMAPPING="$HOME/.fluxbox/iconmapping"
1405
1406 if [ "$GNOMEMENU" ] ; then
1407 OTHER_DESKTOP_PATHS="\"$HOME/.gnome/apps\" \"${GNOME_PREFIX}/share/gnome/apps\" $OTHER_DESKTOP_PATHS"
1408 #[ "OTHER_ICONPATHS" ] && OTHER_ICONPATHS=
1409 fi
1410 if [ "$KDEMENU" ] ; then
1411 OTHER_DESKTOP_PATHS="\"$HOME/.kde/share/applnk\" \"${KDE_PREFIX}/share/applnk\" $OTHER_DESKTOP_PATHS"
1412 [ "OTHER_ICONPATHS" ] && OTHER_ICONPATHS="\"$HOME\"/.kde/share/icons/{,*} $OTHER_ICONPATHS"
1413 fi
1414 [ "$GNOMEMENU$KDEMENU" ] && OTHER_DESKTOP_PATHS="\"$ETCAPPLNK\" $OTHER_DESKTOP_PATHS"
1415
1416 checkDirs(){
1417 #echo checkDirs: $* >&2
1418 local CHECKED_DIRS=""
1419 for DIR in "$@"; do
1420 if [ -d "$DIR" ]; then
1421 # todo: should check if there are duplicates
1422 CHECKED_DIRS="$CHECKED_DIRS \"$DIR\""
1423 fi
1424 done
1425 #echo checkDirs - $CHECKED_DIRS >&2
1426 echo $CHECKED_DIRS
1427 }
1428
1429 OTHER_ICONPATHS=`eval checkDirs $OTHER_ICONPATHS`
1430 OTHER_DESKTOP_PATHS=`eval checkDirs $OTHER_DESKTOP_PATHS`
1431
1432 # $dnlamVERBOSE "Using USER_DESKTOP_PATHS=\"$USER_DESKTOP_PATHS\" and USER_ICONPATHS=\"$USER_ICONPATHS\""
1433 # $dnlamVERBOSE "Using OTHER_ICONPATHS=$OTHER_ICONPATHS"
1434 # $dnlamVERBOSE "Using OTHER_DESKTOP_PATHS=$OTHER_DESKTOP_PATHS"
1435 # $dnlamVERBOSE "Calling function: createIconMapping"
1436
1437 # $dnlamVERBOSE "Creating $ICONMAPPING" >&2
1438 touch "$ICONMAPPING"
1439 eval createIconMapping $USER_DESKTOP_PATHS $OTHER_DESKTOP_PATHS
1440 # $dnlamVERBOSE "Done createIconMapping."
1441 fi
1442
1443 # directory for the backgrounds
1444 if [ -z "$BACKGROUND_DIRS" ]; then
1445 BACKGROUND_DIRS="${HOME}/.fluxbox/backgrounds/:${PREFIX}/share/fluxbox/backgrounds/"
1446 fi
1447
1448 # find the default terminal
1449 if find_it_options $MY_TERM; then
1450 DEFAULT_TERM=$MY_TERM
1451 else
1452 [ -n "$MY_TERM" ] && echo "Warning: you chose an invalid term." >&2
1453 #The precise order is up for debate.
1454 for term in Eterm urxvt urxvtc aterm rxvt wterm xterm konsole gnome-terminal; do
1455 if find_it $term; then
1456 DEFAULT_TERM=$term
1457 break
1458 fi
1459 done
1460 fi
1461 # a unix system without any terms. that's odd
1462 if [ -z "$DEFAULT_TERM" ]; then
1463 cat << EOF >&2
1464
1465 Warning: I can't find any terminal-emulators in your PATH. Please fix
1466 your PATH or specify your favourite terminal-emulator with the -t option
1467
1468 EOF
1469 DEFAULT_TERM=xterm
1470 fi
1471
1472 DEFAULT_TERMNAME=`echo $DEFAULT_TERM|awk '{print $1}'`
1473 DEFAULT_TERMNAME=`basename $DEFAULT_TERMNAME`
1474
1475
1476 # find the default browser
1477 if find_it_options $MY_BROWSER; then
1478 DEFAULT_BROWSER=$MY_BROWSER
1479 else
1480 [ -n "$MY_BROWSER" ] && echo "Warning: you chose an invalid browser." >&2
1481 #The precise order is up for debate.
1482 for browser in firefox mozilla-firefox mozilla-firebird MozillaFirebird opera skipstone mozilla galeon konqueror dillo netscape w3m amaya links lynx; do
1483 if find_it $browser; then
1484 DEFAULT_BROWSER=$browser
1485 break
1486 fi
1487 done
1488 fi
1489 DEFAULT_BROWSERNAME=`echo $DEFAULT_BROWSER|awk '{print $1}'`
1490 DEFAULT_BROWSERNAME=`basename $DEFAULT_BROWSERNAME`
1491
1492
1493 # Start of menu
1494 cat << EOF > ${MENUFILENAME}
1495 # Generated by fluxbox-generate_menu
1496 #
1497 # If you read this it means you want to edit this file manually, so here
1498 # are some useful tips:
1499 #
1500 # - You can add your own menu-entries to ~/.fluxbox/usermenu
1501 #
1502 # - If you miss apps please let me know and I will add them for the next
1503 # release.
1504 #
1505 # - The -r option prevents removing of empty menu entries and lines which
1506 # makes things much more readable.
1507 #
1508 # - To prevent any other app from overwriting your menu
1509 # you can change the menu name in .fluxbox/init to:
1510 # session.menuFile: /home/you/.fluxbox/my-menu
1511
1512 EOF
1513
1514 echo "[begin] (${MENUTITLE})" >> ${MENUFILENAME}
1515
1516 append "[exec] (${DEFAULT_TERMNAME}) {${DEFAULT_TERM}}"
1517
1518 case "$DEFAULT_BROWSERNAME" in
1519 links|w3m|lynx) append "[exec] (${DEFAULT_BROWSERNAME}) {${DEFAULT_TERM} -e ${DEFAULT_BROWSER} ${HOMEPAGE}}" ;;
1520 firefox|firebird|mozilla|phoenix|galeon|dillo|netscape|amaya) append "[exec] (${DEFAULT_BROWSERNAME}) {${DEFAULT_BROWSER}}" ;;
1521 konqueror) append "[exec] (konqueror) {kfmclient openProfile webbrowsing}" ;;
1522 opera) append "[exec] (opera) {env QT_XFT=true opera}" ;;
1523 MozillaFirebird) append "[exec] (firebird) {MozillaFirebird}" ;;
1524 MozillaFirefox) append "[exec] (firefox) {MozillaFirefox}" ;;
1525 *) append "[exec] ($DEFAULT_BROWSERNAME) {$DEFAULT_BROWSER}" ;;
1526 esac
1527
1528 find_it "${LAUNCHER}" append "[exec] (${RUNCOMMAND}) {${LAUNCHER} $FBRUNOPTIONS}"
1529
1530 # We'll only use this once
1531 ETCAPPLNK=/etc/X11/applnk
1532 PARSING_DESKTOP="true"
1533 # gnome menu
1534 if [ "${GNOMEMENU}" ]; then
1535 append_submenu "${GNOMEMENUTEXT}"
1536 recurse_dir_menu "${GNOME_PREFIX}/share/gnome/apps" "$HOME/.gnome/apps" ${ETCAPPLNK}
1537 append_menu_end
1538 unset ETCAPPLNK
1539 fi
1540
1541 # kde submenu
1542 if [ -d "${KDE_PREFIX}/share/applnk/" -a "${KDEMENU}" ]; then
1543 append_submenu "${KDEMENUTEXT}"
1544 recurse_dir_menu "${KDE_PREFIX}/share/applnk" "$HOME/.kde/share/applnk" ${ETCAPPLNK}
1545 append_menu_end
1546 unset ETCAPPLNK
1547 fi
1548 unset PARSING_DESKTOP
1549
1550 #User menu
1551 if [ -r "${USERMENU}" ]; then
1552 cat ${USERMENU} >> ${MENUFILENAME}
1553 fi
1554
1555 # livecd default menu
1556 if [ -r "${LIVECDMENU}" ]; then
1557 cat ${LIVECDMENU} >> ${MENUFILENAME}
1558 fi
1559
1560 append "[separator]"
1561 append "[exec] (Reboot) {sudo /sbin/reboot}"
1562 append "[exec] (Shutdown) {sudo /sbin/halt}"
1563
1564 append_menu_end
1565
1566 # this function removes empty menu items. It can not yet remove nested
1567 # empty submenus :\
1568
1569 if [ ! "${REMOVE}" ]; then
1570 clean_up
1571 fi
1572
1573 # escapes any parentheses in menu label
1574 # e.g., "[exec] (konqueror (web))" becomes "[exec] (konqueror (web\))"
1575 sed 's/(\(.*\)(\(.*\)))/(\1 (\2\\))/' $MENUFILENAME > menu.tmp
1576 mv -f menu.tmp $MENUFILENAME
1577
1578 if [ -z "$INSTALL" ]; then
1579 if [ -z "$CHECKINIT" ]; then
1580 INITMENUFILENAME=`awk '/menuFile/ {print $2}' $HOME/.fluxbox/init`
1581 INITMENUFILENAME=`replaceWithinString "$INITMENUFILENAME" "~" "$HOME"`
1582 if [ ! "$INITMENUFILENAME" = "$MENUFILENAME" ]; then
1583 echo "Note: In $HOME/.fluxbox/init, your \"session.menuFile\" does not point to $MENUFILENAME but to $INITMENUFILENAME" >&2
1584 fi
1585 fi
1586 echo "Menu successfully generated: $MENUFILENAME"
1587 #echo " Make sure \"session.menuFile: $MENUFILENAME\" is in $HOME/.fluxbox/init."
1588 echo 'Use fluxbox-generate_menu -h to read about all the latest features.'
1589 fi