commit b46cddab1bc34877ae7d7ea2dc3645c0e03b4284 Author: Хирецкий Михаил Date: Tue May 7 11:21:54 2019 +0300 init diff --git a/16x16.fnt b/16x16.fnt new file mode 100644 index 0000000..1cee5e5 Binary files /dev/null and b/16x16.fnt differ diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..b7b5f53 --- /dev/null +++ b/COPYING @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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 of the License, 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 St, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..96b3a62 --- /dev/null +++ b/Makefile @@ -0,0 +1,103 @@ +ifneq ($(BINDIR),) +BINDIR := $(BINDIR)/ +else +BINDIR := $(dir $(firstword $(wildcard /usr/bin/gfxboot-compile) $(wildcard /usr/bin/mkbootmsg) $(wildcard ../../gfxboot-compile) $(wildcard ../../mkbootmsg))) +endif +ifneq ($(PRIVBINDIR),) +PRIVBINDIR := $(PRIVBINDIR)/ +else +PRIVBINDIR := $(dir $(firstword $(wildcard /usr/share/gfxboot/bin/keymapchars) $(wildcard ../../keymapchars))) +endif + +ifneq (,$(wildcard $(BINDIR)gfxboot-compile)) +MKBOOTMSG = $(BINDIR)gfxboot-compile +else +#MKBOOTMSG = $(BINDIR)mkbootmsg +MKBOOTMSG = $(BINDIR)gfxboot-compile +endif +KEYMAPCHARS = $(PRIVBINDIR)keymapchars +BFLAGS = -O -v -L ../.. +INCLUDES = $(wildcard *.inc) +# Filter out Arabic, Indic languages, and Thai, which we cannot render, and +# Dzongkha and Mongolian, which ought to be rendered vertically. +# gfxboot has no bidirectional text support yet +# (https://bugs.launchpad.net/ubuntu/+source/gfxboot/+bug/212491) so +# right-to-left languages (Arabic) won't work. This can be worked-around +# by displaying RTL text in visual format (which works well for Hebrew and should +# be considered for use in other languages where applicable) +TRANSLATIONS = $(addsuffix .tr,en $(filter-out ar bn bo dz gu hi km ml mn my ne pa ta th ug, $(notdir $(basename $(wildcard po/*.po))))) + +DEFAULT_LANG = + +PIC_COMMON = back.jpg + +FILES_CORE = init + +INST_EXT = langlist $(TRANSLATIONS) 16x16.fnt $(PIC_COMMON) + +FILES_INST = $(FILES_CORE) $(INST_EXT) + +FILES_BOOT = $(FILES_CORE) langlist $(TRANSLATIONS) 16x16.fnt \ + $(PIC_COMMON) + +FILES_BOOT_EN = $(FILES_CORE) en.tr 16x16.fnt $(PIC_COMMON) + +ifdef DEFAULT_LANG +FILES_INST += lang +FILES_BOOT += lang +FILES_BOOT_EN += lang $(patsubst boot/%,%,$(wildcard boot/$(DEFAULT_LANG).tr)) +endif + +.PHONY: all themes font clean po + +all: themes + +boot install: po + mkdir -p $@ + +po: + make -C po + +themes: bootdir installdir + +bootdir: boot.config boot $(INCLUDES) + @cp -a po/*.tr boot + @for i in $(FILES_BOOT) ; do [ -f $$i ] && cp $$i boot ; done ; true + @echo en >boot/langlist + $(MKBOOTMSG) $(BFLAGS) -l boot/log -c $< boot/init +ifdef DEFAULT_LANG + @echo $(DEFAULT_LANG) >boot/lang + @echo $(DEFAULT_LANG) >>boot/langlist +endif + @cd boot && echo $(FILES_BOOT_EN) | sed -e "s/ /\n/g" | cpio --quiet -o >message + +installdir: install.config install $(INCLUDES) + @cp -a po/*.tr install + @for i in $(FILES_INST) ; do [ -f $$i ] && cp $$i install ; done ; true + $(MKBOOTMSG) $(BFLAGS) -l install/log -c $< install/init +ifdef DEFAULT_LANG + @echo $(DEFAULT_LANG) >install/lang +endif + @cd install && find | sed -e "s/ /\n/g" | grep -v bootlogo | cpio --quiet -o >bootlogo + @tar -C install -czf install/bootlogo.tar.gz bootlogo $(INST_EXT) + +font: + cat po/*.po >tmp.txt + gfxboot-font -v -l 16 \ + -p /usr/share/fonts/droid:/usr/share/fonts/unifont \ + -a 0x2022-0x2023 \ + -c ISO-8859-15 -c ISO-8859-2 -c koi8-r \ + `$(KEYMAPCHARS) keytables.inc` \ + -t tmp.txt \ + -t install/log -t boot/log \ + -t langlist -t langnames.inc \ + -f "DroidSans":size=13 \ + -f unifont:prop=2:space_width=4:size=16 \ + 16x16.fnt >16x16.fnt.log + rm -f tmp.txt + +clean: + make -C po clean + rm -f bootdir installdir *~ *.log + rm -rf boot install + diff --git a/TODO b/TODO new file mode 100644 index 0000000..9ad0bb7 --- /dev/null +++ b/TODO @@ -0,0 +1,4 @@ +suck language list out of localechooser at d-i build time +font reduction may need to be tweaked +fix zh_CN/zh_TW/pt_BR preseeding (maybe a localechooser fix) +simpler logo handling (black background, small logo pasted into it) diff --git a/back.jpg b/back.jpg new file mode 100644 index 0000000..a2acbb2 Binary files /dev/null and b/back.jpg differ diff --git a/boot.config b/boot.config new file mode 100644 index 0000000..e9cf00d --- /dev/null +++ b/boot.config @@ -0,0 +1,31 @@ +%% include system.inc + +%% include timeout.inc +%% include common.inc + +%% include po/text.inc +%% include window.inc +%% include button.inc +%% include help.inc +%% include main.inc +%% include menuconfig.inc +%% include xmenu.inc +%% include dia_video.inc +%% include dia_lang.inc +%% include dia_keymap.inc +%% include dia_modes.inc +%% include dia_help.inc +%% include dia_profile.inc +%% include dia_audio.inc +%% include dia_options.inc +%% include dia_fulloptions.inc +%% include dia_videomodes.inc +%% include dia_access.inc +%% include panel.inc +%% include keytables.inc +%% include timezones.inc +%% include langnames.inc +%% include locale.inc +%% include splash.inc + + diff --git a/button.inc b/button.inc new file mode 100644 index 0000000..372ef54 --- /dev/null +++ b/button.inc @@ -0,0 +1,116 @@ +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% button handling +% +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Button templates. +% +% [ x y width height label selected hotkey action ] +% +/button.ok { [ 0 0 90 25 txt_ok false 0 0 ] } def +/button.cancel { [ 0 0 90 25 txt_cancel false keyEsc 0 ] } def +/button.reboot { [ 0 0 90 25 txt_reboot false 0 0 ] } def +/button.continue { [ 0 0 90 25 txt_continue false 0 0 ] } def +% /button.eject { [ 0 0 90 25 "Eject" false 0 0 ] } def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Set default button. +% +% ( button ) => ( button ) +% +/button.default { + dup 5 true put +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Make it _not_ the default button. +% +% ( button ) => ( button ) +% +/button.notdefault { + dup 5 false put +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Set button position. +% +% ( button x y ) ==> ( button ) +% +/button.moveto { + rot dup 0 5 -1 roll put exch over 1 rot put +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Assign action to button. +% +% ( button action ) => ( button ) +% +/button.setaction { + over 7 rot put +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Draw button. +% +% ( button ) ==> ( ) +% +/button.show { + /bt.x over 0 get def + /bt.y over 1 get def + /bt.width over 2 get def + /bt.height over 3 get def + /bt.text over 4 get def + /bt.default exch 5 get def + + bt.text strsize + bt.height sub neg 2 div /bt.y.textofs exch def + bt.width sub neg 2 div /bt.x.textofs exch def + + bt.x bt.y moveto + currentpoint currentpoint currentpoint + + currentpoint bt.width bt.height window.current .color.bg get setcolor fillrect moveto + + bt.default { + black black + } { + window.current .color.bg get dup + } ifelse + bt.width bt.height drawborder + moveto 1 1 rmoveto white black bt.width 2 sub bt.height 2 sub drawborder + moveto + % 2 2 rmoveto white black bt.width 4 sub bt.height 4 sub drawborder + + window.current .color.fg get setcolor + moveto bt.x.textofs bt.y.textofs rmoveto bt.text show +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Press button. +% +% ( button ) ==> ( ) +% +/button.press { + /bt.x over 0 get def + /bt.y over 1 get def + /bt.width over 2 get def + /bt.height exch 3 get def + + bt.x 3 add bt.y 3 add moveto + bt.width 7 sub bt.height 7 sub savescreen + 1 1 rmoveto dup restorescreen free + + bt.x 1 add bt.y 1 add moveto black white bt.width 2 sub bt.height 2 sub drawborder + % bt.x 2 add bt.y 2 add moveto black white bt.width 4 sub bt.height 4 sub drawborder +} def + + diff --git a/common.inc b/common.inc new file mode 100644 index 0000000..d60d74e --- /dev/null +++ b/common.inc @@ -0,0 +1,1467 @@ +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% Main part. +% +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +% max command line length +/cmdlinelength 512 def +/boot.ed .undef def + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% Install source is 64bit? +% +% ( ) ==> ( true|false ) +% +/64bit_source { + % 64 bit dir exists and is != 32 bit dir + 64bit_boot_dir 32bit_boot_dir ne + 64bit_boot_dir .undef ne and +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% Are we a dvd? +% +% ( ) ==> ( true|false ) +% +/is_dvd { + % check only once + is_dvd.result .undef ne { is_dvd.result return } if + + /is_dvd.result + mediatype m_cdrom eq { + 0x10 readsector + dup 0x50 add getdword exch free + 9 shr % iso size in MB + 720 gt % assume dvd if > 720 MB + } { + false + } ifelse + def + + is_dvd.result return +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% Are we a live image? +% +% ( ) ==> ( true|false ) +% +/is_live { + % check only once + true return + is_live.result .undef ne { is_live.result return } if + + /is_live.result "/casper/filesystem.manifest" filesize .undef ne def + + is_live.result return +} def + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% Install source is 32 & 64bit? +% +% ( ) ==> ( true|false ) +% +/32+64bit_source { + 32bit_boot_dir .undef ne + % uncomment next line to automatically warn about 32bit software on 64bit machines, too + % 64bit_boot_dir .undef ne and +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% Enough memory? +% +% ( ) ==> ( true|false ) +% +/enough_mem { + biosmem 4 20 shl lt + biosmem 200 20 shl ge or + syslinux not or +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% Check if there are boot directories for 32 & 64bit. +% +% Assumes 32bit to be in *i386* and 64bit in *x86_64*. +% +% ( ) ==> ( ) +% +/check_arch_boot_dir { + getcwd dup .undef ne { + /64bit.tmp 256 string def + + dup "i386" strstr 0 ne over "x86_64" strstr 0 ne or { + dup "i386" strstr { + /32bit_boot_dir exch def + /64bit_boot_dir 32bit_boot_dir "i386" "x86_64" strreplace + } { + /64bit_boot_dir exch def + /32bit_boot_dir 64bit_boot_dir "x86_64" "i386" strreplace + } ifelse + + dup "%s/isolinux.cfg" 64bit.tmp sprintf + 64bit.tmp filesize .undef ne { def } { free pop } ifelse + + } { + /32bit_boot_dir over def + /64bit_boot_dir exch def + } ifelse + + 64bit.tmp free + + % font.normal setfont + % 0 400 moveto 32bit_boot_dir print + % 0 420 moveto 64bit_boot_dir print dtrace + + } { + pop + } ifelse +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% input event handling +% +% ( key ) ==> ( input_buffer menu_entry action ) +% +% key +% bit 0-7 ascii +% bit 8-15 scan code +% bit 16-32 status bits (ctrl, shift...) +% +% action +% 0: ok, stay in input loop +% 1: switch to text mode +% >=2: start linux +% +/KeyEvent { + % timeout + + dup 0 eq { boot.buf buildcmdline 2 return } if + + debug 4 ge { + % print keycode somewhere + -1 settransparentcolor + white setcolor + 500 0 moveto dup print " " print + } if + + dup 0xff00 and 16 shl over 0xff and dup 0xe0 eq { pop 0 } if add /key exch def + 16 shr 0xffff and /keystat exch def + + key keyTab eq keyStatus statusShift and 0 ne and { + /key keyShiftTab def + } if + + key + + config.keymap .km.map get { mapkey } if + + dup 0xffffff and dup { exch } if pop + + debug 4 ge { + % print mapped key somewhere + -1 settransparentcolor + white setcolor + 500 20 moveto dup print " " print + } if + + % some special keys + debug.input + + % put key through normal input queue + window.input + + pop + + window.action actExit eq { + /window.action actNothing def + "" -1 1 return + } if + + window.action actCloseInfo eq { + /window.action actNothing def + "" -1 3 return + } if + + window.action actPassword eq { + /window.action actNothing def + password.dialog { + password.dialog .ed.buffer.list get 0 get + } { "" } ifelse + -1 3 return + } if + + window.action actStart eq { + /window.action actNothing def + boot.buf buildcmdline 2 return + } if + + window.action actRedraw eq { + /window.action actNothing def + main.redraw + } if + + window.action actRedrawPanel eq { + /window.action actNothing def + panel.show + } if + + boot.buf menu.indices menu.entry get 0 +} def + + +/bc.cmd cmdlinelength string def + +% ( option_string ) ==> ( cmdline menu_entry ) +% +% grub: +% just return +% +% syslinux & lilo: +% check if the commmand line starts with the current kernel name or +% "linux"; if not, put the kernel name in front of the command line. (This +% is to keep compatibility with the old scheme requiring the user to write +% the kernel name explicitly.) +% +/buildcmdline { + menu.entry 0 lt { -1 return } if + menu.entry menu.texts length ge { -1 return } if + + /bc.opts exch def + /bc.kernel menu.texts menu.entry get def + + grub { + + /bc.addkernel false def + + } { + + /bc.addkernel true def + + [ bc.kernel "linux" ] 0 over length 1 sub 1 exch { + over exch get + + bc.opts over eq { + /bc.addkernel false def + } { + bc.opts over strstr 1 eq { + bc.opts over length get ' ' eq { + /bc.addkernel false def + } if + } if + } ifelse + + pop + + bc.addkernel not { exit } if + + } for + + pop + + % special case: option is identical to label + bc.kernel "apic" eq { /bc.addkernel true def } if + + } ifelse + + syslinux { + /add_suffix .undef def + + } if + + % getcwd 0 300 moveto show trace + + bc.addkernel { + bc.kernel + dup "linux" eq add_suffix .undef ne and { + add_suffix exch "%s%s " + } { + "%s " + } ifelse + bc.cmd sprintf + } { + bc.cmd 0 0 put + } ifelse + + cmdline.hidden "" ne { + /add_suffix 32 string def + + video.modes.list .undef ne { + video.modes.list xmenu.video .xm_current get get + dup .vm_mode get 0 ge { + dup .vm_height get exch .vm_width get + ",%04d%04d.spl" add_suffix sprintf + } { pop } ifelse + } if + + add_suffix 1 add filesize .undef eq { + add_suffix 0 0 put % empty string + } if + + add_suffix { + /bc.tmp cmdline.hidden length add_suffix length add string def + cmdline.hidden "initrd" bootopt.find dup .undef ne { + skipnonspaces + dup + dup 0 get over 0 0 put + add_suffix cmdline.hidden "%s%s" bc.tmp sprintf + 0 exch put + "%s" bc.tmp dup length add sprintf + } { + pop + bc.tmp cmdline.hidden strcpy pop + } ifelse + + bc.tmp "%s " bc.cmd dup length add sprintf + + bc.tmp free /bc.tmp .undef def + } { + cmdline.hidden "%s " bc.cmd dup length add sprintf + } ifelse + } if + + bc.opts "%s " bc.cmd dup length add sprintf + + xmenu.fulloptions { + fulloptions.option .undef ne { + fulloptions.option "%s " bc.cmd dup length add sprintf + } if + } if + + syslinux { + + menu.args menu.entry get "hd0" ne { + video.modes.list .undef ne { + video.modes.list xmenu.video .xm_current get get .vm_mode get + + dup 0 ge { + 0x200 add "vga=0x%x " bc.cmd dup length add sprintf + } if + } if + + /calculate.param { + "calculate=" bc.cmd dup length add sprintf + /calculate.param { "," bc.cmd dup length add sprintf } def + } def + + config.lang { + config.lang "en_US" ne { + calculate.param + config.lang lang.getlocale + "lang:%s" + bc.cmd dup length add sprintf + } if + } if + + config.lang { + config.lang "en_US" ne { + calculate.param + config.lang lang.gettimezone + "timezone:%s" + bc.cmd dup length add sprintf + } if + } if + + xmenu.resolution { + xmenu.resolution .xm_current get dup 0 ne { + calculate.param + resolution.alltexts exch get + "resolution:%s" + bc.cmd dup length add sprintf + } { pop } ifelse + } if + + audio.use { + xmenu.audio { + xmenu.audio .xm_current get dup 0 ne { + calculate.param + audio.values exch get + "audio:%s" + bc.cmd dup length add sprintf + } { pop } ifelse + } if + } if + + video_modes.selected.append .undef ne { + video_modes.selected.append 0 get 0 ne { + calculate.param + video_modes.selected.append "%s" bc.cmd dup length add sprintf + } if + } if + + fulloptions.cmd_composite dup 0 get 0 ne { + calculate.param + "%s" bc.cmd dup length add sprintf + } { pop } ifelse + + modes.selected.replace .undef ne { + modes.selected.replace "=" strstr dup 0 ne { + modes.selected.replace exch strndup /bc.tmp exch def % e.g. "file=" + bc.cmd { + dup 0 get 0 eq { exit } if + dup getword + dup "=" strstr dup 0 ne { over exch 0 put } { pop } ifelse + dup bc.tmp eq exch free { + bc.tmp free + dup strdup /bc.tmp exch def + bc.tmp modes.selected.replace "%s%s" 4 index sprintf + bc.tmp free /bc.tmp .undef def + exch pop exit + } if + exch pop + skipspace + } loop + pop + bc.tmp free /bc.tmp .undef def + } { + pop + } ifelse + } if + } if + } if + + xmenu.access { + access.option .undef ne { + access.option "%s " bc.cmd dup length add sprintf + } if + } if + + xmenu.profile { + profile.options xmenu.profile .xm_current get get dup "" ne { + "%s " bc.cmd dup length add sprintf + } { pop } ifelse + } if + + timeout.hidden { + "maybe-ubiquity " bc.cmd dup length add sprintf + } if + + bc.cmd dropspaces + + debug 3 ge { + 0 0 moveto white setcolor + bc.cmd print "<< (press ESC) " print trace + } if + + bc.cmd menu.indices menu.entry get +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% ( menu_entries_array cmdline_args_array defaultentry ) == > ( ) +/MenuInit { + colorbits 8 le { + 0 setcolor 0 0 moveto screen.size fillrect loadpalette + } if + + init + + /menu.entry -1 def + + /menu.dentry exch def + + menuconfig.init + + "audio" getgfxconfig dup .undef ne { + "true" eq { + /audio.use true def + } { + /audio.use false def + } ifelse + } { pop } ifelse + "foreground" getgfxconfig dup .undef ne { + strtol + /menu.text.select over def + /boot.text.options over def + /boot.text.normal over def + /panel.high exch def + } { pop } ifelse + "background" getgfxconfig dup .undef ne { + strtol + /menu.text.normal over def + /panel.normal over def + /title.bg exch def + } { pop } ifelse + "screen-colour" getgfxconfig dup .undef ne { + strtol + /menu.bar.color over def + /xmenu.dark exch def + } { pop } ifelse + "composite-labels" getgfxconfig dup .undef ne { + /fulloptions.composite [ + 2 index + { + skipspace dup 0 get 0 eq { exit } if + getword exch + } loop + pop + ] def + pop + } { pop } ifelse + "access-options" getgfxconfig dup .undef ne { + /access.optionnames [ + .undef + 3 index + { + skipspace dup 0 get 0 eq { exit } if + getword exch + } loop + pop + ] def + pop + } { pop } ifelse + "access-options-v1" getgfxconfig dup .undef ne { + /access.options.v1 exch def + } { pop } ifelse + "hidden-timeout" getgfxconfig dup .undef ne { + % If >= 1, display just the main and access logos and wait for a + % keypress; if timeout expires, boot without showing the menu. + % If >= 2, as above, but don't display the splash image (hack for + % Ubuntu 10.04 LTS, so please don't rely on it permanently). + strtol + dup 1 ge { /timeout.hidden true def } if + 2 ge { /timeout.hidden.showsplash false def } if + } { pop } ifelse + + menu.bar.color setcolor 0 0 moveto screen.size fillrect + + % Hack for Ubuntu 10.04 LTS. Should be replaced by better logo handling + % in general. + timeout.hidden.showsplash not { + /background.file.orig background.file def + "blank.pcx" findfile + /background.file over def setimage + } if + + % Move the logo down 84 pixels to centre it. This is obviously a gross + % hack. To fix this, we need to move to smaller logo images which are + % positioned on the screen in code, rather than doing the positioning in + % the image files. + timeout.hidden { + 0 0 moveto 0 0 0 84 image + 0 84 + } { 0 0 } ifelse + moveto 0 0 clip.size image + + /menu.args exch def + /menu.texts exch def + /menu.humans exch def + /menu.indices exch def + /menu.labels exch def + + timeout.hidden { + window.splash + dup window.init + window.show + } { + window.main + dup window.init + window.show + + 32+64bit_source not { + + 64bit { + 64bit_source not { notimeout /timeout.hidden false def 32bit_popup } if + } { + 64bit_source { notimeout /timeout.hidden false def 64bit_popup } if + } ifelse + + } if + + lang.displayed not { panel.lang } if + } ifelse + + 50 sound.setvolume + "startup.mod" findfile dup .undef ne { + /player.startup 0 def + player.startup over mod.load + player.startup 0 mod.play + free + } { pop } ifelse +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Setup boot option input field. +% +% ( ) == > ( ) +% +/bootoptions.init { + window.current .color.fg get setcolor + window.current .ed.font get setfont + + boot.show { boot.ed edit.hidecursor } if + menu.args menu.entry get + bootpromptmap + + boot.show { + ed.color setcolor + boot.ed over edit.init + "" ne { boot.ed ' ' edit.input } if + } { + "%s" boot.ed 3 get sprintf + } ifelse + +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Split command line into hidden and normal part. +% +% ( cmdline_args ) == > ( new_cmdline_args ) +% +/bootpromptmap { + /cmdline exch def + + cmdline "showopts" getoption + dup "" eq { + cmdline.shown 0 0 put + pop cmdline "%s" cmdline.shown sprintf + cmdline.hidden 0 0 put + } { + "showopts" length add skipspaces + "%s" cmdline.shown sprintf + cmdline "%s" cmdline.hidden sprintf + cmdline.hidden "showopts" getoption 0 0 put + } ifelse + + cmdline.shown dropspaces + cmdline.hidden dropspaces + + cmdline.shown +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Get boot option. +% +% ( cmdline option_name ) ==> ( option_start ) +% +/getoption { + /go.name exch def + /go.cmdline exch def + /go.pos 0 def + { + go.cmdline go.pos add go.name strstr dup { + 1 sub /go.pos exch def + + go.cmdline go.pos iswordboundary + go.cmdline go.pos go.name length add iswordboundary + and { + go.cmdline go.pos add exit + } { + /go.pos go.pos 1 add def + } ifelse + } { + pop "" exit + } ifelse + } loop +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +/redrawmenu { + menu.visible.entries menu.texts length lt menu.scrollbar and { + /menu.vsb.height1 + menu.shift + menu.sb.height mul menu.texts length div + def + + /menu.vsb.height3 + menu.texts length menu.visible.entries menu.shift add sub + menu.sb.height mul menu.texts length div + def + + lightgray setcolor + menu.sb.x menu.sb.y menu.vsb.height1 add moveto + menu.sb.width menu.sb.height menu.vsb.height1 menu.vsb.height3 add sub + fillrect + + menu.vsb.height1 0 ne { + menu.sb.x menu.sb.y moveto + currentpoint menu.sb.width menu.vsb.height1 image + } if + + menu.vsb.height3 0 ne { + menu.sb.x menu.sb.y menu.sb.height menu.vsb.height3 sub add moveto + currentpoint menu.sb.width menu.vsb.height3 image + } if + + } if + + menu.text.normal setcolor + + /x menu.start.x def + /y menu.start.y def + + 0 1 menu.visible.entries 1 sub { + x y moveto currentpoint menu.bar.width menu.bar.height image + menu.texts exch menu.shift add get menuitemmap + menu.start.x + y menu.text.yofs add + moveto + currentfont exch font.large setfont show setfont + /y y menu.item.height add def + } for + +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% ( entry status ) ==> ( ) +% +% status: +% false not selected +% true selected +% +/MenuSelect { + /menu.status exch def + + /menu.idx over def + + menu.shift sub + menu.item.height mul menu.start.y add + menu.start.x exch + moveto + + currentpoint + menu.status { + menu.bar.color setcolor + currenttransparency + 70 settransparency + menu.bar.width menu.bar.height + fillrect + settransparency + } { + currentpoint menu.bar.width menu.bar.height image + } ifelse + moveto + + menu.status { + menu.text.select + } { + menu.text.normal + } ifelse + setcolor + menu.texts menu.idx get menuitemmap + 0 menu.text.yofs rmoveto + currentfont exch font.large setfont show setfont + + menu.status { + % init boot options + keepbootoptions .undef eq { bootoptions.init } if + + % set help context + "main" help.setcontext + menu.texts menu.idx get + dup help.findpage "" eq { + pop + } { + help.setcontext + } ifelse + + % update installation modes menu + menu.idx video_modes.filter + menu.idx fulloptions.filter + menu.idx modes.filter + } if + +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% ( text errorcode ) ==> ( ) +% errorcode: +% 0 normal info +% 1 fatal error +% 2 missing kernel +% 3 disk change +% 4 disk change failed +% + +/info.tmpmsg 127 string def + +/InfoBoxInit { + /info.type exch def + /info.msg exch def + + window.dialog + + info.type 1 eq { + dup .title.bg red put + dup .title txt_error_title put + dup .buttons + [ + button.reboot button.default actCloseInfo button.setaction + ] put + } { + dup .title txt_info_title put + dup .buttons + [ + button.ok button.default actCloseInfo button.setaction +% button.cancel button.notdefault actCloseInfo button.setaction + ] put + } ifelse + + syslinux info.type 3 eq and { + dup .title txt_change_disk_title put + 0 getinfo 1 add txt_insert_disk info.tmpmsg sprintf + /info.msg info.tmpmsg def + } if + + syslinux info.type 4 eq and { + dup .title txt_change_disk_title put + 1 getinfo 15 not and { + 0 getinfo 1 add + txt_insert_disk3 info.tmpmsg sprintf + } { + 0 getinfo 1 add 1 getinfo 1 add + txt_insert_disk2 info.tmpmsg sprintf + } ifelse + /info.msg info.tmpmsg def + } if + + dup .text info.msg put + + dup window.init + window.show + +} def + + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% ( time ) ==> ( ) +% /Timer { pop } def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% ( label correct_password ) ==> ( ) +% +/PasswordInit { + /password.key exch def pop + + /dia window.dialog def + + /password.dialog dia def + + dia .title txt_password_title put + dia .text "" put + + % Must all be of same size! + dia .ed.list 1 array put + dia .ed.buffer.list [ 31 string ] put + dia .ed.text.list [ txt_password ] put + + dia .ed.focus 0 put + + dia .ed.width 200 put + + dia .ed.font font.normal pwmode put + + dia .buttons + [ button.ok button.default actPassword button.setaction ] + put + + dia window.init + dia window.show + +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% ( password ) ==> ( error ) +% +% error: +% true password ok +% false wrong password +% +% ****** FIXME: test result seems to be unused +% +/PasswordDone { + + password.key eq +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% ( text ) == > ( new_text ) +% If text is in menu.texts (it should be), return the corresponding item +% from menu.humans. Otherwise, return text as-is. +/menuitemmap { + 0 menu.texts { + 2 index eq { menu.humans over get rot pop exch exit } if + 1 add + } forall pop + translate + + % Remove ^ from the string; eventually, this should define hotkeys, but it + % doesn't yet. + dup length string /menuitemmap.text exch def + /menuitemmap.idx 0 def + { + dup '^' ne { + menuitemmap.text menuitemmap.idx rot put + /menuitemmap.idx inc + } { pop } ifelse + } forall + menuitemmap.text menuitemmap.idx 0 put + + menuitemmap.text +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% ( color0 color1 width height ) ==> ( ) +/drawborder { + currentpoint /db.y0 exch def /db.x0 exch def + + /db.y1 exch 1 sub db.y0 add def + /db.x1 exch 1 sub db.x0 add def + /db.col1 exch def + /db.col0 exch def + + db.x0 db.y1 moveto + + db.col0 setcolor + db.x0 db.y0 lineto db.x1 db.y0 lineto + + db.col1 setcolor + db.x1 db.y1 lineto db.x0 db.y1 lineto +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% ( color0 color1 color2 width height ) ==> ( ) +% draw frame with shadow +% color0: upper left, color1: lower right, color2: shadow +/drawborder3 { + currentpoint /db.y0 exch def /db.x0 exch def + + /db.y1 exch 1 sub db.y0 add def + /db.x1 exch 1 sub db.x0 add def + /db.col2 exch def + /db.col1 exch def + /db.col0 exch def + + db.x0 db.y1 moveto + + db.col0 setcolor + db.x0 db.y0 lineto db.x1 db.y0 lineto + + db.col1 setcolor + db.x1 db.y1 lineto db.x0 db.y1 lineto + + db.col2 -1 ne { + db.col2 setcolor + 1 1 rmoveto + db.x1 1 add db.y1 1 add lineto + db.x1 1 add db.y0 1 add lineto + } if +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% ( color0 color1 width height ) ==> ( ) +/drawborder4 { + 3 index 4 1 roll rot dup 3 index 3 index + currentpoint 6 2 roll + 1 1 rmoveto drawborder + moveto drawborder +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% center text +% ( text width height ) ==> ( ) +/centertext { + 3 -1 roll strsize + 4 2 roll + 4 1 roll exch 4 1 roll sub 2 div neg 3 1 roll sub 2 div neg +} def + + +% Allocate and define a new color. +% +% ( palette ) ==> ( color ) +% +/newcolor { + colorbits 8 le { + newcolor.count .undef eq { /newcolor.count 0 def } if + max_image_colors newcolor.count add + dup rot setpalette + /newcolor.count newcolor.count 1 add def + } if + def +} def + + +/boot.pos.init { + /boot.label.len txt_bootoptions strsize pop def + /boot.pos { boot.label.len 10 add small_layout { 410 } { 510 } ifelse } def + /boot.ed.width screen.size pop boot.pos pop sub 20 sub def + /boot.ed.height fontheight 2 add def + + boot.ed .undef ne { + boot.ed 2 get free + boot.pos exch 10 add + boot.ed 0 rot put + boot.ed 1 rot put + % save background behind boot parameters field + boot.ed dup 0 get exch 1 get + over over moveto boot.ed.width boot.ed.height savescreen + boot.ed 2 rot put + } if +} def + +/init { + small_layout { + /head.x 70 def + /head.y 141 def + } { + /head.x 234 def + /head.y 185 def + } ifelse + + timeout.init + + % set default language + "lang" findfile dup { + /tmp over length 1 add 2 max string def + tmp exch { + dup ' ' eq over '\n' eq or { pop pop exit } if + over exch 0 exch put + 1 add + } forall + tmp dup setlang pop setkeymap + /lang.displayed true def + } { + pop + "en_US" dup setlang pop setkeymap + } ifelse + + font.large setfont + + /menu.text.xofs 10 def + /menu.text.yofs 2 def + /menu.item.height fontheight dup 12 div add def + /menu.bar.height fontheight menu.text.yofs dup add add def + + font.normal setfont + + /menu.text.normal lightblue def + /menu.text.select white def + /boot.text.options white def + /boot.text.normal white def + /infobox.bg lightgray def + /infobox.text.normal black def + + /menu.bar.color black def + + small_layout { + /frame1.pos { 80 208 } def + /frame1.size { 480 160 } def + /frame4.pos { 560 62 } def + } { + /frame1.pos { 160 288 } def + /frame1.size { 480 170 } def + /frame4.pos { 640 62 } def + } ifelse + + /frame4.size { 22 264 } def + + /menu.start.x menu.position.x def + /menu.start.y menu.position.y def + + /menu.bar.width frame1.size pop 20 sub def + /menu.max.entries 8 def + /menu.scrollbar false def + + boot.pos.init + + /boot.buf.size cmdlinelength def + /boot.buf boot.buf.size string def + + % no boot options line initially + /boot.show false def + + /ms.size { 22 22 } def + /ms.up { 0 480 } def + /ms.down { 23 480 } def + +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Some special debug & test keys. +% +% ( key_in ) ==> ( key_out ) +% +/debug.input { + dup keyShiftF4 eq debug 3 ge and { + currentcolor white setcolor + currentpoint 0 0 moveto + 64 string biosmem "mem = %u " 2 index sprintf dup show free + moveto setcolor + pop 0 + } if + + dup keyShiftF3 eq syslinux and debug 3 ge and { + currentcolor white setcolor + currentpoint 0 0 moveto + "eject " print bootdrive eject print + moveto setcolor + pop 0 + } if + + dup keyShiftF5 eq syslinux and debug 3 ge and { + currentcolor white setcolor + currentpoint 100 0 moveto + bootdrive print + moveto setcolor + pop 0 + } if + + dup keyShiftF8 eq debug 3 ge and { + currentcolor white setcolor + + currentpoint 300 0 moveto + 0 memsize print "/" print print " " print + moveto + + currentpoint 300 20 moveto + 1 memsize print "/" print print " " print + moveto + + currentpoint 300 40 moveto + 2 memsize print "/" print print " " print + moveto + + setcolor + pop 0 + } if + + dup keyShiftF9 eq debug 3 ge and { + dumpmem + pop 0 + } if + + dup keyShiftF10 eq { + /debug debug 1 add def "" + pop 0 + } if + + dup keyShiftF11 eq { + /transp transp 0x10 sub 0 max def + pop 0 + } if + + dup keyF11 eq debug 1 ge and { + + dtrace + + 0 1 screen.size exch pop { + 0 1 screen.size pop { + over moveto + currentpoint 8 shl screen.size exch pop div 8 shl exch 8 shl screen.size pop div add + screen.size add currentpoint add sub 8 shl screen.size add div 2 div 16 shl add + setcolor + putpixel + } for + pop + } for + + pop 0 + } if + + dup keyF12 eq debug 3 ge and { + % mouse support testing + + 1 keepmode + + /mouse xxx def + red setcolor + mouse .undef eq { + 700 580 moveto "no mouse" show + } { + { + mouse getdword 16 shl 16 shr screen.size pop 2 div add + mouse getdword 16 shr neg screen.size exch pop 2 div add + moveto 4 4 fillrect + + mouse 4 add getdword 7 and + dup 1 and { red setcolor } if + dup 2 and { blue setcolor } if + dup 4 and { green setcolor } if + + 3 and 3 eq { exit } if + + } loop + } ifelse + pop 0 + } if + + dup keyShiftF12 eq { + /transp transp 0x10 add 0x100 min def + pop 0 + } if + +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Show exit popup. +% +% ( ) ==> ( ) +% +/exit_popup { + window.dialog + + dup .title txt_exit_title put + dup .text txt_exit_dialog put + dup .buttons [ + button.ok button.default actExit button.setaction + button.cancel button.notdefault actNothing button.setaction + ] put + dup window.init + window.show + +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Show help window. +% +% ( ) ==> ( ) +% +/show_help { + window.help + + dup window.init + window.show + +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Show dvd popup. +% +% ( ) ==> ( ) +% +/dvd_popup { + window.dialog + + dup .title txt_dvd_warning_title put + dup .text txt_dvd_warning2 put + dup .buttons [ +% button.eject button.default actEject actNoClose or button.setaction + button.continue button.default actNothing button.setaction + ] put + dup window.init + window.show + +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Warn that we are about to install 32bit software on a 64bit system. +% +% ( ) ==> ( ) +% +/32bit_popup { + window.dialog + + dup .title "Cool computer, but..." put + dup .text "You are about to install 32-bit software on a 64-bit computer." put + dup .buttons [ + button.continue button.default actNothing button.setaction + ] put + dup window.init + window.show + +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Warn that we are about to install 64bit software on a 32bit system. +% +% ( ) ==> ( ) +% +/64bit_popup { + window.dialog + + dup .title "Cool software, but..." put + dup .text "This is a 32-bit computer. You cannot use 64-bit software on it." put + dup .buttons [ + button.reboot button.default actReboot actNoClose or button.setaction + ] put + dup window.init + window.show + +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Warn that we don't have enough memory. +% +% ( ) ==> ( ) +% +/nomem_popup { + window.dialog + + dup .title "Cool computer, but..." put + dup .text + "Sorry, but SUSE Linux 10.1 LiveCD needs at least 256MB main memory." + put + dup .buttons [ + button.reboot button.default actReboot actNoClose or button.setaction + ] put + dup window.init + window.show + +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Show "power off" popup. +% +% ( ) ==> ( ) +% +/power_off { + window.dialog + + dup .title txt_power_off_title put + dup .text txt_power_off put + dup .buttons [ + button.ok button.notdefault actPowerOff actNoClose or button.setaction + button.cancel button.default actNothing button.setaction + ] put + dup window.init + window.show + +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Search for option in cmdline. +% Returns .undef if not found. +% +% ( cmdline option_name ) ==> ( option_start ) +% +/bootopt.find { + /bo.opt exch def + /bo.cmdline exch def + + { + bo.cmdline bo.opt strstr + dup { + dup 1 eq { + true + } { + dup 2 sub bo.cmdline exch get ' ' eq + } ifelse + + { + bo.cmdline over bo.opt length add 1 sub get + dup '=' eq + over ' ' eq or + exch 0 eq or + } { + false + } ifelse + + bo.cmdline rot add exch + + { + 1 sub exit + } { + /bo.cmdline exch def + } ifelse + } { + pop + .undef exit + } ifelse + } loop + +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Global variables. +% + +/transp 0 def + +640 480 16 findmode setmode not { + 640 480 32 findmode setmode not { + 640 400 4 findmode setmode not { + false .end + } if + } if +} if + +% /with_transp vscreen.size exch pop screen.size exch pop div 1 gt colorbits 8 gt and def + +/clip.size { screen.size } def + +/small_layout screen.size pop 640 eq def + +/access.file "access.pcx" findfile def +access.file dup .undef ne { + setimage image.size /access.height exch def /access.width exch def +} { + pop /access.height .undef def /access.height .undef def +} ifelse + +"splash.pcx" findfile +dup .undef eq { pop "back.jpg" findfile } if +/background.file over def setimage loadpalette +/max_image_colors image.colors def + +% 7 dup 0xffffff setpalette setcolor + +% color & font definitions must be global + +/black 0x000000 newcolor +/white 0xffffff newcolor +/blue 0x0000a0 newcolor +/red 0xc00000 newcolor +/green 0x009000 newcolor +/yellow 0xffff20 newcolor +/lightgray 0xd8deed newcolor +/dotcolor 0xa9bbcd newcolor +/lightdotcolor 0xeff2f6 newcolor +/somegreen 0x78a424 newcolor + +/lightblue 0x7da3d1 def + +%% include theme_colors.inc +%% include theme_positions.inc + +/font.normal "16x16.fnt" findfile def +/font.large font.normal def + +/cmdline.hidden cmdlinelength string def +/cmdline.shown cmdlinelength string def + +/debug 0 def + +check_arch_boot_dir + + + diff --git a/dia_access.inc b/dia_access.inc new file mode 100644 index 0000000..0796d64 --- /dev/null +++ b/dia_access.inc @@ -0,0 +1,201 @@ +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% Accessibility mode selector. +% +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +/access.option .undef def + +/.access.none 0 def +/.access.v1 1 def +/.access.v2 2 def +/.access.v3 3 def +/.access.brltty 4 def +/.access.m1 5 def +/.access.m2 6 def + +/access.alloptionnames [ + .undef + "v1" "v2" "v3" "brltty" + "m1" "m2" +] def + +/access.optionnames [ access.alloptionnames { } forall ] def + +% Custom kernel options. Feel free to extend as needed. Keep this in sync +% with MenuInit. +/access.options.v1 "access=v1" def + +/access.alltexts [ + /txt_access_none + /txt_access_v1 /txt_access_v2 /txt_access_v3 /txt_access_brltty + /txt_access_m1 /txt_access_m2 +] def + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Initialise accessibility menu. +% +% ( ) ==> ( ) +% +/access.init { + /xmenu.access .xm_size array def + /xmenu xmenu.access def + + xmenu .xm_current .access.none put + + xmenu .xm_list [ + access.optionnames { + 0 1 access.alloptionnames length 1 sub { + over access.alloptionnames 2 index get eq { + access.alltexts exch get exch pop exit + } { + pop + } ifelse + } for + } forall + ] put + + /access.optionmap [ + 0 1 access.optionnames length 1 sub { + 0 1 access.alloptionnames length 1 sub { + access.optionnames 2 index get access.alloptionnames 2 index get eq { + [ 2 index rot ] exch exit + % leaves [ optionindex alloptionindex ] optionindex + } { + pop + } ifelse + } for + pop + } for + ] def + + xmenu .xm_title /txt_access put + + /access.soundfiles [ + access.optionnames { + dup .undef ne { + /access.tmpfilename 32 string def + "access%s.mod" access.tmpfilename sprintf + access.tmpfilename findfile + } if + } forall + ] def + + pmenu.init +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Update accessibility status. +% +% ( ) ==> ( ) +% +/access.update { + /xmenu xmenu.access def + + access.optionnames xmenu .xm_current get get dup .undef eq { + pop + /access.option .undef def + } { + dup "brltty" eq { + pop /access.option "braille=ask" def + } { + dup "v1" eq { + pop /access.option access.options.v1 def + } { + dup length 7 add string /access.option exch def + "access=%s" access.option sprintf + } ifelse + } ifelse + } ifelse + + /window.action actRedrawPanel def + + pmenu.update +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Select an accessibility menu item. +% +% ( ) ==> ( ) +% +/access.select { + /xmenu xmenu.access def + + access.soundfiles xmenu .xm_current get get dup .undef ne { + /player.access 1 def + player.access exch mod.load + player.access 0 mod.play + } { pop } ifelse +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Handle keyboard input. +% +% ( key_in ) ==> ( key_out ) +% +/access.input { + dup 0 eq { return } if + + dup 0xff and '0' sub + dup 0 lt { return } if + + dup access.optionmap { + dup 1 get 2 index eq { + 0 get dup xmenu .xm_list get length lt { + xmenu.select + pop + 0 + } { + pop + } ifelse + } { + pop + } ifelse + } forall +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Show window. +% +% ( ) => ( ) +% +/panel.access { + "access" help.setcontext + + window.xmenu + dup .xmenu xmenu.access put + dup .xmenu.update /access.update put + dup .xmenu.select /access.select put + dup .xmenu.input /access.input put + dup window.init + window.show +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Return width of panel entry. +% +% ( ) => ( width ) +% +/panel.access.width { + /xmenu xmenu.access def + + pmenu.width +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Redraw panel entry. +% +% ( panel ) => ( ) +% +/panel.access.update { + /xmenu xmenu.access def + + pmenu.panel.update +} def diff --git a/dia_audio.inc b/dia_audio.inc new file mode 100644 index 0000000..3ad1b3e --- /dev/null +++ b/dia_audio.inc @@ -0,0 +1,95 @@ +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% audio selection dialog. +% +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Some global vars. +% +/audio.use false def +/audio.default 0 def +/audio.changed false def + +/audio.values [ + "alsa" + "pulseaudio" +] def + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Build menu list. +% +% ( ) ==> ( ) +% +/audio.init { + /xmenu.audio .xm_size array def + + /xmenu xmenu.audio def + + xmenu .xm_list [ + "ALSA" + "PulseAudio" + ] put + + xmenu .xm_current 0 put + xmenu .xm_title /txt_audio put + + pmenu.init +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Update audio selection menu. +% +% ( ) ==> ( ) +% +/audio.update { + /xmenu xmenu.audio def + + /window.action actRedrawPanel def + + pmenu.update +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Show audio selection menu. +% +% ( ) => ( ) +% +/panel.audio { + "audio" help.setcontext + + window.xmenu + dup .xmenu xmenu.audio put + dup .xmenu.update /audio.update put + dup window.init + window.show +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Return width of panel entry. +% +% ( ) => ( width ) +% +/panel.audio.width { + /xmenu xmenu.audio def + + pmenu.width +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Redraw panel entry. +% +% ( panel ) => ( ) +% +/panel.audio.update { + /xmenu xmenu.audio def + + pmenu.panel.update +} def + + diff --git a/dia_fulloptions.inc b/dia_fulloptions.inc new file mode 100644 index 0000000..20100a0 --- /dev/null +++ b/dia_fulloptions.inc @@ -0,0 +1,227 @@ +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% Panel boot options selector. +% +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +/fulloptions.option .undef def +/fulloptions.composite .undef def +/xmenu.fulloptions .undef def + +/.fulloptions.expert 0 def +/.fulloptions.acpi_off 1 def +/.fulloptions.noapic 2 def +/.fulloptions.nolapic 3 def +/.fulloptions.edd_on 4 def +/.fulloptions.nodmraid 5 def +/.fulloptions.nomodeset 6 def +/.fulloptions.nox 7 def +/.fulloptions.docache 8 def +/.fulloptions.nocomposite 9 def + +% These strings are intentionally not translatable. +/txt_acpi_off "acpi=off" def +/txt_noapic "noapic" def +/txt_nolapic "nolapic" def +/txt_edd_on "edd=on" def +/txt_nodmraid "nodmraid" def +/txt_nomodeset "nomodeset" def +/txt_nox "No-X" def +/txt_docache "RAM" def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Initialise boot options menu. +% +% ( ) ==> ( ) +% +/fulloptions.init { + /xmenu.fulloptions .xm_size array def + /xmenu xmenu.fulloptions def + + is_live { + /.fulloptions.acpi_off dec + /.fulloptions.noapic dec + /.fulloptions.nolapic dec + /.fulloptions.edd_on dec + /.fulloptions.nodmraid dec + /.fulloptions.nomodeset dec + /.fulloptions.nox dec + /.fulloptions.docache dec + /.fulloptions.nocomposite dec + xmenu .xm_current .fulloptions.acpi_off put + } { + xmenu .xm_current .fulloptions.expert put + } ifelse + + xmenu .xm_list [ + is_live not { /txt_expert_mode } if + /txt_acpi_off /txt_noapic /txt_nolapic /txt_edd_on /txt_nodmraid + /txt_nomodeset + /txt_nox + /txt_docache + /txt_no_composite + ] put + /fulloptions.label_no_composite true def + + xmenu .xm_title /txt_other_options put + xmenu .xm_check 1 put + xmenu .xm_allselected xmenu .xm_list get length array put + 0 1 xmenu .xm_list get length 1 sub { + xmenu .xm_allselected get exch false put + } for + + pmenu.init + menu.entry fulloptions.filter +} def + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Filter displayed options when a menu item changes. +% +% ( index ) ==> ( ) +% +/fulloptions.filter { + xmenu.fulloptions .undef eq { pop return } if + fulloptions.composite .undef eq { pop return } if + fulloptions.composite length 0 eq { pop return } if + + menu.labels exch get + + dup length 3 add string /fulloptions.tmp.label exch def + " %s " fulloptions.tmp.label sprintf + + /fulloptions.label_no_composite false def + fulloptions.composite { + dup length 3 add string /fulloptions.tmp.check exch def + " %s " fulloptions.tmp.check sprintf + fulloptions.tmp.check fulloptions.tmp.label strstr 0 ne + { /fulloptions.label_no_composite true def } if + fulloptions.tmp.check free + } forall + fulloptions.tmp.label free + + xmenu + /xmenu xmenu.fulloptions def + + xmenu .xm_list get free + xmenu .xm_list [ + /txt_acpi_off /txt_noapic /txt_nolapic /txt_edd_on /txt_nodmraid + /txt_nomodeset + /txt_nox + /txt_docache + fulloptions.label_no_composite { /txt_no_composite } if + ] put + pmenu.init + + /xmenu exch def % restore + +} def + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Change boot options status. +% +% ( ) ==> ( ) +% +/fulloptions.change { + /xmenu xmenu.fulloptions def + + /fulloptions.option 0 string def + + xmenu .xm_allselected get + 0 1 xmenu .xm_allselected get length 1 sub { + over over get { + .undef + is_live not { over .fulloptions.expert eq { pop "priority=low" } if } if + over .fulloptions.acpi_off eq { pop "acpi=off" } if + over .fulloptions.noapic eq { pop "noapic" } if + over .fulloptions.nolapic eq { pop "nolapic" } if + over .fulloptions.edd_on eq { pop "edd=on" } if + over .fulloptions.nodmraid eq { pop "nodmraid" } if + over .fulloptions.nomodeset eq { pop "nomodeset" } if + over .fulloptions.nox eq { pop "nox" } if + over .fulloptions.docache eq { pop "docache" } if + dup { + % append new option string + dup length fulloptions.option length add 1 add string + /fulloptions.newoption exch def + dup fulloptions.option "%s %s" fulloptions.newoption sprintf + fulloptions.option free + /fulloptions.option fulloptions.newoption def + } if + pop + } if + pop + } for + pop + + fulloptions.option length { + /fulloptions.option inc + } { + /fulloptions.option .undef def + } ifelse +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Update boot options status. +% +% ( ) ==> ( ) +% +/fulloptions.update { + fulloptions.change + /window.action actRedrawPanel def + pmenu.update +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Show window. +% +% ( ) => ( ) +% +/panel.fulloptions { + "fulloptions" help.setcontext + + window.xmenu + dup .xmenu xmenu.fulloptions put + dup .xmenu.change /fulloptions.change put + dup .xmenu.update /fulloptions.update put + dup window.init + window.show +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Return width of panel entry. +% +% ( ) => ( width ) +% +/panel.fulloptions.width { + /xmenu xmenu.fulloptions def + + pmenu.width +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Redraw panel entry. +% +% ( panel ) => ( ) +% +/panel.fulloptions.update { + /xmenu xmenu.fulloptions def + + pmenu.panel.update +} def + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Get composite option +% +% ( ) => ( str ) +% +/fulloptions.cmd_composite { + fulloptions.label_no_composite { + xmenu.fulloptions .xm_allselected get .fulloptions.nocomposite get { "composite:off" } { "" } ifelse + } { "" } ifelse +} def diff --git a/dia_help.inc b/dia_help.inc new file mode 100644 index 0000000..1b2664d --- /dev/null +++ b/dia_help.inc @@ -0,0 +1,54 @@ +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% Panel help entry. +% +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Show help window. +% +% ( ) => ( ) +% +/panel.help { + help.context "opt" eq boot.ed 5 get .undef ne and { + findbootoption + help.mapcontext + dup help.findpage + "" eq { pop } { help.setcontext } ifelse + } if + show_help +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Return width of help entry. +% +% ( ) => ( width ) +% +/panel.help.width { + txt_help strsize pop +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Redraw panel entry. +% +% ( panel ) => ( ) +% +/panel.help.update { + panel.text.moveto + + txt_help show +} def + +/panel.tab.update { + panel.text.moveto + txt_bootoptions show +} def + +/panel.tab.width { + txt_bootoptions strsize pop +} def + +/panel.help { +} def diff --git a/dia_keymap.inc b/dia_keymap.inc new file mode 100644 index 0000000..b4bc295 --- /dev/null +++ b/dia_keymap.inc @@ -0,0 +1,99 @@ +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% Keymap selection dialog. +% +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +/keymap.inited false def +/keymap.explicit false def + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Build keymap list. +% +% ( ) ==> ( ) +% +/keymap.init { + /xmenu.keymap .xm_size array def + /xmenu xmenu.keymap def + /keymap.inited true def + + xmenu .xm_current 0 put + xmenu .xm_list [ keymaps { .km.display get } forall ] put + + xmenu .xm_title /txt_keymap put + + % setkeymap is called by init before panel.init, so config.keymap must be + % set by now + keymap.langchanged + + pmenu.init +} def + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Language changed; update keymap. +% +% ( ) ==> ( ) +% +/keymap.langchanged { + keymap.inited { + /keymap.tmp.cnt 0 def + keymaps { + config.keymap eq { + xmenu.keymap .xm_current keymap.tmp.cnt put exit + } if + /keymap.tmp.cnt inc + } forall + } if +} def + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Update keymap. +% +% ( ) ==> ( ) +% +/keymap.update { + /xmenu xmenu.keymap def + + /config.keymap keymaps xmenu .xm_current get get def + /keymap.explicit true def + + window.action actRedraw eq { pmenu.update } if +} def + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Show keymap menu. +% +% ( ) => ( ) +% +/panel.keymap { + "keymap" help.setcontext + + window.xmenu + dup .xmenu xmenu.keymap put + dup .xmenu.update /keymap.update put + dup window.init + window.show +} def + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Return width of panel entry. +% +% ( ) => ( width ) +% +/panel.keymap.width { + /xmenu xmenu.keymap def + + pmenu.width +} def + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Redraw panel entry. +% +% ( panel ) => ( ) +% +/panel.keymap.update { + /xmenu xmenu.keymap def + + pmenu.panel.update +} def diff --git a/dia_lang.inc b/dia_lang.inc new file mode 100644 index 0000000..180912c --- /dev/null +++ b/dia_lang.inc @@ -0,0 +1,233 @@ +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% Language selection dialog. +% +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Some global vars. +% + +% fallback if there is no "langlist" +/lang.items [ "en_US" ] def +/lang.names [ "English (United States)" ] def +/lang.displayed false def + +/.la.language 0 def +/.la.locale 1 def +/.la.name 2 def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Get language name. +% +% Returns locale if not found. +% +% ( locale ) ==> ( name ) +% +/lang.getdefname { + lang.defaultnames { + dup .la.language get 2 index eq { .la.name get exch pop exit } { pop } ifelse + } forall +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Get locale code (ll_CC). +% +% Returns locale if not found. +% +% ( locale ) ==> ( ll_CC ) +% +/lang.getlocale { + lang.defaultnames { + dup .la.language get 2 index eq { .la.locale get exch pop exit } { pop } ifelse + } forall +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Parse "langlist" file. +% +% ( ) ==> ( ) +% +/lang.parsedata { + /lang.default 0 def + + "langlist" findfile dup { /lang.data exch def } { pop return } ifelse + + /la.tmp.datalen lang.data length def + /la.tmp.str lang.data cvs def + + la.tmp.datalen 0 eq { return } if + la.tmp.str la.tmp.datalen 1 sub get '\n' ne { return } if + + '\n' seteotchar + + /lang.items [ + + /la.tmp.len 0 def + /la.tmp.cnt 0 def + { + la.tmp.str la.tmp.len add strdup + dup dup length 0 put + /la.tmp.len over length 1 add la.tmp.len add def + + dup 0 get '*' eq { 1 add /lang.default la.tmp.cnt def } if + + la.tmp.len la.tmp.datalen ge { exit } if + + /la.tmp.cnt inc + } loop + + ] def + + ' ' seteotchar + + /lang.names [ + + lang.items { + + dup dup length add + + dup 0 get { + dup 0 0 put 1 add + exch pop + } { + pop lang.getdefname + } ifelse + + } forall + + ] def + + 0 seteotchar + +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Build language list. +% +% ( ) ==> ( ) +% +/lang.init { + /xmenu.lang .xm_size array def + /xmenu xmenu.lang def + + lang.parsedata + + xmenu .xm_current lang.default put + xmenu .xm_list lang.names put + + xmenu .xm_title /txt_language put + + % make menu smaller if there are more than 19 language entries + %lang.items length 19 gt { + % xmenu .xm_vspace 2 put + %} if + + % start with current lang + + /la.tmp.found false def + + /la.tmp.cnt 0 def + lang.items { + config.lang eq { + xmenu .xm_current la.tmp.cnt put /la.tmp.found true def exit + } if + /la.tmp.cnt inc + } forall + + la.tmp.found not { + % Try without the country code. + config.lang "_" strstr dup 0 ne { + 1 sub + config.lang strdup dup rot 0 put + /la.tmp.cnt 0 def + lang.items { + over eq { + xmenu .xm_current la.tmp.cnt put exit + } if + /la.tmp.cnt inc + } forall + free + } { + pop + } ifelse + } if + + pmenu.init +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Update language. +% +% ( ) ==> ( ) +% +/lang.update { + /xmenu xmenu.lang def + + lang.items xmenu .xm_current get get + dup + setlang { /window.action actRedraw def } if + setkeymap + keymap.langchanged + + window.action actRedraw eq { pmenu.update } if +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Clean up after language menu has been undrawn. +% +% ( ) => ( ) +% +/lang.cleanup { + /lang.displayed true def +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Show language menu. +% +% ( ) => ( ) +% +/panel.lang { + "keytable" help.setcontext + + window.xmenu + dup .xmenu xmenu.lang put + dup .xmenu.update /lang.update put + dup .xmenu.cleanup /lang.cleanup put + dup window.init + window.show +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Return width of panel entry. +% +% ( ) => ( width ) +% +/panel.lang.width { + /xmenu xmenu.lang def + + pmenu.width +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Redraw panel entry. +% +% ( panel ) => ( ) +% +/panel.lang.update { + /xmenu xmenu.lang def + + pmenu.panel.update +} def + + diff --git a/dia_modes.inc b/dia_modes.inc new file mode 100644 index 0000000..c617eef --- /dev/null +++ b/dia_modes.inc @@ -0,0 +1,213 @@ +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% Panel installation modes selector. +% +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +/modes.selected.append .undef def +/modes.selected.replace .undef def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Initialise installation modes menu. +% +% ( ) ==> ( ) +% +/modes.init { + /xmenu.modes .xm_size array def + /xmenu xmenu.modes def + + xmenu .xm_current 0 put + + /modes.gfxconfig listgfxconfig def + + /modes.rawlabels [ + modes.gfxconfig { + dup 0 get 6 strndup dup "label " eq exch free { 1 get } { pop } ifelse + } forall + ] def + /modes.append [ + modes.gfxconfig { + 0 get /modes.tmp.key exch def + modes.tmp.key 6 strndup dup "label " eq exch free { + modes.tmp.key 6 add dup length 8 add string /modes.tmp.str exch def + "append %s" modes.tmp.str sprintf + modes.tmp.str getgfxconfig + modes.tmp.str free + } if + } forall + ] def + /modes.replace [ + modes.gfxconfig { + 0 get /modes.tmp.key exch def + modes.tmp.key 6 strndup dup "label " eq exch free { + modes.tmp.key 6 add dup length 9 add string /modes.tmp.str exch def + "replace %s" modes.tmp.str sprintf + modes.tmp.str getgfxconfig + modes.tmp.str free + } if + } forall + ] def + /modes.applies [ + modes.gfxconfig { + 0 get /modes.tmp.key exch def + modes.tmp.key 6 strndup dup "label " eq exch free { + modes.tmp.key 6 add dup length 9 add string /modes.tmp.str exch def + "applies %s" modes.tmp.str sprintf + modes.tmp.str getgfxconfig + modes.tmp.str free + } if + } forall + ] def + modes.rawlabels length 0 eq { + /modes.rawlabels [ txt_mode_normal ] def + /modes.append [ .undef ] def + /modes.replace [ .undef ] def + /modes.applies [ .undef ] def + } if + /modes.map .undef def + + menu.entry modes.filter + + xmenu .xm_title /txt_modes put +} def + + +/mydebug { + 380 400 moveto -300 0 rmoveto + currentpoint 300 fontheight image + 380 400 moveto menu.humans menu.entry get showright + + 380 420 moveto -300 0 rmoveto + currentpoint 300 fontheight image + menu.texts menu.entry get "#%s#" timeout.buf sprintf + 380 420 moveto timeout.buf showright + + /my.buf 128 string def + 0 440 moveto + currentpoint 640 fontheight image + menu.args menu.entry get "#%s#" my.buf sprintf + 0 440 moveto my.buf show + + 380 380 moveto -300 0 rmoveto + currentpoint 300 fontheight image + 380 380 moveto menu.labels menu.entry get showright + +} def + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Update installation modes status. +% +% ( ) ==> ( ) +% +/modes.update { + /xmenu xmenu.modes def + + modes.map xmenu .xm_current get get + modes.append over get /modes.selected.append exch def + modes.replace over get /modes.selected.replace exch def + + /window.action actRedrawPanel def + + pmenu.update +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Filter displayed modes when a menu item changes. +% +% ( index ) ==> ( ) +% +/modes.filter { + %mydebug + + modes.rawlabels .undef eq { pop return } if + + menu.labels exch get + dup length 3 add string /modes.tmp.label exch def + " %s " modes.tmp.label sprintf + + xmenu % save + /xmenu xmenu.modes def + + modes.map { + /modes.tmp.oldidx modes.map xmenu .xm_current get get def + } { + /modes.tmp.oldidx .undef def + } ifelse + + modes.map free + % mapping of current menu index to underlying option index + /modes.map [ + 0 1 modes.rawlabels length 1 sub { + modes.applies over get dup .undef ne { + dup length 3 add string /modes.tmp.applies exch def + " %s " modes.tmp.applies sprintf + modes.tmp.applies modes.tmp.label strstr 0 eq { pop } if + modes.tmp.applies free + } { + pop + } ifelse + } for + ] def + + modes.tmp.label free + + xmenu .xm_list get free + xmenu .xm_list [ + modes.map { modes.rawlabels exch get translate } forall + ] put + + xmenu .xm_current 0 put + 0 1 modes.map length 1 sub { + modes.map over get modes.tmp.oldidx eq { + xmenu .xm_current rot put exit + } { + pop + } ifelse + } for + + pmenu.init + + /xmenu exch def % restore +} def + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Show window. +% +% ( ) ==> ( ) +% +/panel.modes { + "modes" help.setcontext + + window.xmenu + dup .xmenu xmenu.modes put + dup .xmenu.update /modes.update put + dup window.init + window.show +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Return width of panel entry. +% +% ( ) => ( width ) +% +/panel.modes.width { + /xmenu xmenu.modes def + + pmenu.width +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Redraw panel entry. +% +% ( panel ) => ( ) +% +/panel.modes.update { + /xmenu xmenu.modes def + + pmenu.panel.update +} def diff --git a/dia_options.inc b/dia_options.inc new file mode 100644 index 0000000..22fe788 --- /dev/null +++ b/dia_options.inc @@ -0,0 +1,30 @@ +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% Panel 'more options' entry. +% +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Show help window. +% +% ( ) => ( ) +% +/panel.options { + /panel panel.full def + + boot.show not { + /boot.show true def + boot.setup + + boot.window .color.fg get setcolor + boot.window .ed.font get setfont + + boot.ed 3 get + boot.ed over edit.init + "" ne { boot.ed ' ' edit.input } if + } if + + main.redraw + + panel.fulloptions +} def diff --git a/dia_profile.inc b/dia_profile.inc new file mode 100644 index 0000000..61c2e24 --- /dev/null +++ b/dia_profile.inc @@ -0,0 +1,139 @@ +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% Profile selection dialog. +% +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Some global vars. +% + +% fallback if we can't parse "profiles" +/profile.options [ "" ] def +/profile.items [ "Broken Profiles" ] def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Parse "profiles" file. +% +% ( ) ==> ( ) +% +/profile.parsedata { + /pf.tmp.datalen profile.data length def + /pf.tmp.str profile.data cvs def + + /profile.default 0 def + + pf.tmp.datalen 0 eq { return } if + pf.tmp.str pf.tmp.datalen 1 sub get '\n' ne { return } if + + '\n' seteotchar + + /profile.items [ + + /pf.tmp.len 0 def + /pf.tmp.cnt 0 def + { + pf.tmp.str pf.tmp.len add strdup + dup dup length 0 put + /pf.tmp.len over length 1 add pf.tmp.len add def + + dup 0 get '*' eq { 1 add /profile.default pf.tmp.cnt def } if + + pf.tmp.len pf.tmp.datalen ge { exit } if + + /pf.tmp.cnt inc + } loop + + ] def + + ' ' seteotchar + + /profile.options [ + + profile.items { + dup length add + dup 0 0 put + 1 add + } forall + + ] def + + 0 seteotchar + +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Build profile list. +% +% ( ) ==> ( ) +% +/profile.init { + /xmenu.profile .xm_size array def + /xmenu xmenu.profile def + + profile.parsedata + + xmenu .xm_current profile.default put + xmenu .xm_list profile.items put + + pmenu.init +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Update profile. +% +% ( ) ==> ( ) +% +/profile.update { + /xmenu xmenu.profile def + + /window.action actRedrawPanel def + + pmenu.update +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Show profile menu. +% +% ( ) => ( ) +% +/panel.profile { + "profile" help.setcontext + + window.xmenu + dup .xmenu xmenu.profile put + dup .xmenu.update /profile.update put + dup window.init + window.show +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Return width of panel entry. +% +% ( ) => ( width ) +% +/panel.profile.width { + /xmenu xmenu.profile def + + pmenu.width +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Redraw panel entry. +% +% ( panel ) => ( ) +% +/panel.profile.update { + /xmenu xmenu.profile def + + pmenu.panel.update +} def + + diff --git a/dia_resolution.inc b/dia_resolution.inc new file mode 100644 index 0000000..caeb72e --- /dev/null +++ b/dia_resolution.inc @@ -0,0 +1,117 @@ +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% Resolution mode selector. +% +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +/resolution.option .undef def + +% Custom kernel options. Feel free to extend as needed. Keep this in sync +% with MenuInitj + +/resolution.auto 0 def + +/resolution.alltexts [ + "Auto" "640x480" "800x480" "800x600" "1024x576" + "1024x600" "1024x768" "1200x800" "1280x720" + "1280x768" "1280x800" "1280x1024" "1360x768" + "1366x768" "1368x768" "1400x1050" "1440x900" + "1600x768" "1600x900" "1600x1200" "1680x945" + "1680x1050" "1920x1080" "1920x1200" "2048x1152" + "2560x1440" "2560x1600" +] def + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Initialise resolutionibility menu. +% +% ( ) ==> ( ) +% +/resolution.init { + /xmenu.resolution .xm_size array def + /xmenu xmenu.resolution def + + xmenu .xm_current resolution.auto put + + xmenu .xm_list [ + resolution.alltexts { + exec + } forall + ] put + + xmenu .xm_title /txt_resolution put + xmenu .xm_current resolution.auto put + + pmenu.init +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Update accessibility status. +% +% ( ) ==> ( ) +% +/resolution.update { + /xmenu xmenu.resolution def + + /window.action actRedrawPanel def + + pmenu.update +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Show window. +% +% ( ) => ( ) +% +/panel.resolution { + "resolution" help.setcontext + + window.xmenu + dup .xmenu xmenu.resolution put + dup .xmenu.update /resolution.update put + dup window.init + window.show +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Return width of panel entry. +% +% ( ) => ( width ) +% +/panel.resolution.width { + /xmenu xmenu.resolution def + + pmenu.width +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Redraw panel entry. +% +% ( panel ) => ( ) +% +/panel.resolution.update { + /xmenu xmenu.resolution def + + pmenu.panel.update +} def + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Recalculate panel entry. +% +% ( panel ) => ( ) +/panel.resolution.recalculate { + /xmenu xmenu.resolution def + + panel.text.moveto + xmenu.sizes + xmenu .xm_panel_x currentpoint pop xmenu.hspace sub put + % try to ensure that the menu doesn't overflow the screen + xmenu .xm_x + xmenu .xm_panel_x get + screen.size pop xmenu.columns xmenu.widthupto 10 add sub + min put +} def diff --git a/dia_video.inc b/dia_video.inc new file mode 100644 index 0000000..a834035 --- /dev/null +++ b/dia_video.inc @@ -0,0 +1,204 @@ +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% Video mode selection dialog. +% +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Some global vars. +% +% video mode array fields +/.vm_mode 0 def +/.vm_width 1 def +/.vm_height 2 def +/.vm_depth 3 def + +%% include dia_resolution.inc + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Create sort key for video modes. +% Supports up to 16383x16383x56 in multiples of 8 bits of depth. +% +% ( vm_index ) ==> ( sort_index ) +% +/vmsortindex { + video.modes.list exch get + dup + .vm_width get 14 shl + over .vm_height get add 3 shl + exch .vm_depth get 3 shr add +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Swap video mode entries. +% (Helper for video mode sorting.) +% +% ( vm_index_1 vm_index_2 ) ==> ( ) +% +/vmsortexch { + over video.modes.list exch get + over video.modes.list exch get + video.modes.list + 5 -1 roll rot put + video.modes.list 3 1 roll put +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Build video mode list. +% +% ( ) ==> ( ) +% +/video.init { + /xmenu.video .xm_size array def + + /xmenu xmenu.video def + + % build list of video modes + /video.modes.list [ + [ -1 0 0 0 ] % special: default VGA mode + + 0 1 videomodes { + videomodeinfo dup .undef eq { + pop pop pop pop + } { + [ + over 0xbfff and 6 2 roll + 0x4000 and % fb support + over 0x10 ge and % >= 16 color bits + 2 index 400 ge and % height >= 400 + 3 index 600 ge and % width >= 600 + { ] } { pop pop pop pop pop } ifelse + } ifelse + } for + + ] def + + % sort video.modes.list + + video.modes.list length 3 gt { + 0 1 video.modes.list length 2 sub { + dup 1 add 1 video.modes.list length 1 sub { + over vmsortindex over vmsortindex gt { + over over vmsortexch + } if + pop + } for + pop + } for + } if + + % uniquify video.modes.list + + video.modes.list length 1 gt { + /video.modes.list [ + video.modes.list 0 get + 1 1 video.modes.list length 1 sub { + video.modes.list over 1 sub get + video.modes.list 2 index get + + over .vm_width get over .vm_width get ne + 2 index .vm_height get 2 index .vm_height get ne or + rot .vm_depth get rot .vm_depth get ne or { + video.modes.list exch get + } { + pop + } ifelse + } for + ] def + } if + + % create mode strings + + /video.modes.text [ + video.modes.list { + dup .vm_width get + dup 0 eq { + pop pop "VGA" + } { + over .vm_depth get rot .vm_height get rot + "%d x %d x %d" 32 string dup 6 1 roll sprintf + } ifelse + } forall + ] def + + % add to menu + + xmenu .xm_list video.modes.text put + + % select largest mode the monitor supports + + monitorsize exch 800 max exch 600 max % at least 800x600 + + xmenu .xm_current 0 put + % video.modes.list { + % dup .vm_width get 3 index le + % exch .vm_height get 3 index le and { + % xmenu .xm_current over over get 1 add put + % } { + % exit + % } ifelse + % } forall + + pop pop + + pmenu.init +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Update video mode. +% +% ( ) ==> ( ) +% +/video.update { + /xmenu xmenu.video def + + /window.action actRedrawPanel def + + pmenu.update +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Show video menu. +% +% ( ) => ( ) +% +/panel.video { + "videomode" help.setcontext + + window.xmenu + dup .xmenu xmenu.video put + dup .xmenu.update /video.update put + dup window.init + window.show +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Return width of video entry. +% +% ( ) => ( width ) +% +/panel.video.width { + /xmenu xmenu.video def + + pmenu.width +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Redraw panel entry. +% +% ( panel ) => ( ) +% +/panel.video.update { + /xmenu xmenu.video def + + pmenu.panel.update +} def + + diff --git a/dia_videomodes.inc b/dia_videomodes.inc new file mode 100644 index 0000000..7497dd1 --- /dev/null +++ b/dia_videomodes.inc @@ -0,0 +1,212 @@ +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% Panel installation video modes selector. +% +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +/video_modes.selected.append .undef def +/video_modes.selected.replace .undef def +/video_modes.submenu.idx 0 def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Initialise installation video modes menu. +% +% ( ) ==> ( ) +% +/video_modes.init { + /xmenu.video_modes .xm_size array def + /xmenu xmenu.video_modes def + + xmenu .xm_current 0 put + + /video_modes.gfxconfig listgfxconfig def + + /video_modes.rawlabels [ + video_modes.gfxconfig { + dup 0 get 6 strndup dup "label " eq exch free { 1 get } { pop } ifelse + } forall + /video_modes.submenu.resolution + ] def + /video_modes.append [ + video_modes.gfxconfig { + 0 get /video_modes.tmp.key exch def + video_modes.tmp.key 6 strndup dup "label " eq exch free { + video_modes.tmp.key 6 add dup length 8 add string /video_modes.tmp.str exch def + "append %s" video_modes.tmp.str sprintf + video_modes.tmp.str getgfxconfig + video_modes.tmp.str free + } if + } forall + .undef + ] def + /video_modes.replace [ + video_modes.gfxconfig { + 0 get /video_modes.tmp.key exch def + video_modes.tmp.key 6 strndup dup "label " eq exch free { + video_modes.tmp.key 6 add dup length 9 add string /video_modes.tmp.str exch def + "replace %s" video_modes.tmp.str sprintf + video_modes.tmp.str getgfxconfig + video_modes.tmp.str free + } if + } forall + .undef + ] def + /video_modes.applies [ + video_modes.gfxconfig { + 0 get /video_modes.tmp.key exch def + video_modes.tmp.key 6 strndup dup "label " eq exch free { + video_modes.tmp.key 6 add dup length 9 add string /video_modes.tmp.str exch def + "applies %s" video_modes.tmp.str sprintf + video_modes.tmp.str getgfxconfig + video_modes.tmp.str free + } if + } forall + .undef + ] def + + video_modes.rawlabels length 1 eq { + /video_modes.rawlabels [ /txt_mode_normal /txt_resolution ] def + /video_modes.append [ .undef .undef ] def + /video_modes.replace [ .undef .undef ] def + /video_modes.applies [ .undef .undef ] def + } if + /video_modes.map .undef def + + menu.entry video_modes.filter + + xmenu .xm_title /txt_videodrv put + resolution.init + +} def + + +/video_modes.submenu.resolution.buf 64 string def +/video_modes.submenu.resolution { + /txt_resolution exec "\x09%s" video_modes.submenu.resolution.buf sprintf + video_modes.submenu.resolution.buf +} def + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Update installation modes status. +% +% ( ) ==> ( ) +% +/video_modes.update { + /xmenu xmenu.video_modes def + xmenu .xm_current get video_modes.submenu.idx eq { + xmenu 0 xmenu.oldentry put + panel.resolution + } { + video_modes.map xmenu .xm_current get get + video_modes.append over get /video_modes.selected.append exch def + video_modes.replace over get /video_modes.selected.replace exch def + + /window.action actRedrawPanel def + + pmenu.update + } ifelse +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Filter displayed modes when a menu item changes. +% +% ( index ) ==> ( ) +% +/video_modes.filter { + video_modes.rawlabels .undef eq { pop return } if + + menu.labels exch get + dup length 3 add string /video_modes.tmp.label exch def + " %s " video_modes.tmp.label sprintf + + xmenu % save + /xmenu xmenu.video_modes def + + video_modes.map { + /video_modes.tmp.oldidx video_modes.map xmenu .xm_current get get def + } { + /video_modes.tmp.oldidx .undef def + } ifelse + + video_modes.map free + % mapping of current menu index to underlying option index + /video_modes.map [ + 0 1 video_modes.rawlabels length 1 sub { + video_modes.applies over get dup .undef ne { + dup length 3 add string /video_modes.tmp.applies exch def + " %s " video_modes.tmp.applies sprintf + video_modes.tmp.applies video_modes.tmp.label strstr 0 eq { pop } if + video_modes.tmp.applies free + } { + pop + } ifelse + } for + ] def + + video_modes.tmp.label free + + xmenu .xm_list get free + xmenu .xm_list [ + video_modes.map { video_modes.rawlabels exch get translate } forall + ] put + + xmenu .xm_current 0 put + 0 1 video_modes.map length 1 sub { + video_modes.map over get video_modes.tmp.oldidx eq { + xmenu .xm_current rot put exit + } { + pop + } ifelse + } for + + xmenu .xm_list get length 1 sub + /video_modes.submenu.idx exch def + + pmenu.init + + /xmenu exch def % restore +} def + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Show window. +% +% ( ) ==> ( ) +% +/panel.video_modes { + "video_modes" help.setcontext + + window.xmenu + dup .xmenu xmenu.video_modes put + dup .xmenu.update /video_modes.update put + dup window.init + window.show +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Return width of panel entry. +% +% ( ) => ( width ) +% +/panel.video_modes.width { + /xmenu xmenu.video_modes def + + pmenu.width +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Redraw panel entry. +% +% ( panel ) => ( ) +% +/panel.video_modes.update { + /xmenu xmenu.video_modes def + + dup pmenu.panel.update + + panel.resolution.recalculate +} def diff --git a/help.inc b/help.inc new file mode 100644 index 0000000..c5e605d --- /dev/null +++ b/help.inc @@ -0,0 +1,716 @@ +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% help system +% +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +% global vars used by help system + + +/help.context "main" def + +/help.light white def +/help.dark black def +/help.font font.normal def +/help.normal.bg lightgray def +/help.normal.fg black def +/help.highlight.fg green def +/help.link.fg blue def +/help.link.selected.fg white def +/help.link.selected.bg blue def + +/help.x 20 def +/help.y 50 def +/help.width 600 def +/help.height 380 def + +clip.size pop 800 eq { + /help.x 120 def + /help.y 90 def + /help.width 560 def + /help.height 359 def +} if + +/help.text.x help.x 10 add def +/help.text.y help.y 30 add def + +/help.text.width help.width 20 sub def +/help.text.height help.height help.text.y sub help.y add 4 sub def +/help.text.rightmargin help.text.x help.text.width add def + +/help.title.x help.x 10 add def +/help.title.y help.y 3 add def +/help.title.height 20 def +/help.title.font font.normal def + +/help.hist.page 16 array def +/help.hist.startrow help.hist.page length array def +/help.hist.selectedlink help.hist.page length array def + + +% for boot option lookup +/bo.opt.max 32 def +/bo.opt bo.opt.max 3 add string def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Map help context. +% +% ( context ) ==> ( new_context ) +% +/help.mapcontext { + dup "o_vncpassword" eq { pop "o_vnc" } if + dup "o_hostip" eq { pop "network" } if + dup "o_netmask" eq { pop "network" } if + dup "o_gateway" eq { pop "network" } if + dup "o_pci" eq { pop "o_acpi" } if + + syslinux not { + % only help, startup, keytable and option pages + dup "o_" strstr 1 ne { + dup "help" ne + over "startup" ne and + over "keytable" ne and + over "profile" ne and { pop "opt" } if + } if + } if +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Set help context. +% +% ( context ) ==> ( ) +% +/help.setcontext { + help.mapcontext /help.context exch def +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Find boot option the cursor is positioned at. +% +% ( ) ==> ( option ) +% +/findbootoption { + /bo.buf boot.ed 3 get def + /bo.len boot.ed 4 get def + /bo.pos boot.ed 5 get 0 get def + + { + bo.pos 0 eq { exit } if + bo.buf bo.pos 1 sub get ' ' le { exit } if + /bo.pos dec + } loop + + /bo.buf bo.buf bo.pos add def + + bo.buf 0 get ' ' le { "" return } if + + % "o_" + option name is the help text label + "o_" 3 bo.opt snprintf + + 0 1 bo.opt.max 1 sub { + dup + bo.buf exch get + dup ' ' le over '=' eq or { pop pop exit } if + over bo.opt 2 add exch rot put + bo.opt 3 add exch 0 put + } for + + bo.opt + +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Find help page. +% +% returns help page or empty string if no page was found +% +% ( label ) ==> ( help_text ) +% +/help.findpage { + dup length 3 add dup string + "\x12%s\x14" + 3 1 roll dup 5 1 roll snprintf + help.getmessages over strstr + dup { help.getmessages exch 1 sub add } { pop "" } ifelse + exch free +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Find help page. +% +% returns n-th help page or empty string if no page was found +% +% ( n ) ==> ( help_text ) +% +/help.findpagebyindex { + help.getmessages exch + { + dup "\x04" strstr + dup { add } { pop pop "" exit } ifelse + } repeat +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Init & display help page. +% +% ( help_text start_row selected_link ) ==> ( ) +% +/help.initpage { + /help.selectedlink exch def + /help.startrow exch def + + /help.currenttext over def + + title.bg setcolor + help.x 1 add help.y 1 add moveto + help.width 2 sub help.title.height 1 sub fillrect + + help.text.x help.text.y moveto + currentmaxrows 0 setmaxrows exch formattext setmaxrows + + white setcolor + currenteotchar 16 seteotchar + help.title.x help.title.y moveto currenttitle + currentfont help.title.font setfont exch show setfont + seteotchar + + getlinks { help.selectedlink setlink } if + + help.updatepage + + % 500 0 moveto gettextrows print + % 400 0 moveto getlinks print + +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Redraw help page. +% +% ( ) ==> ( ) +% +/help.updatepage { + help.normal.bg setcolor + help.text.x help.text.y moveto + help.text.width help.text.height fillrect + + help.normal.fg help.highlight.fg help.link.fg help.link.selected.fg settextcolors + + help.startrow setstartrow + + help.text.x help.text.y moveto + help.currenttext show + + 0 setstartrow + + true help.selectedlink help.redrawlink + +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Used to iterate over all help pages. +% +% get the n-th page starting from current pos +% +% ( n ) ==> ( help_text ) +% +/help.test { + help.test.cnt add + dup 1 lt { pop 1 } if + /help.test.cnt over def + help.findpagebyindex + dup "" eq { + % one page back + pop help.test.cnt 1 sub /help.test.cnt over def + help.findpagebyindex + } if +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Redraw link. +% +% selected: true or false. +% +% ( selected n ) ==> ( ) +% +% +/help.redrawlink { + getlinks 0 eq { pop pop return } if + getlink + dup help.startrow lt + over help.startrow help.text.rows add ge or { + 5 { pop } repeat return + } if + help.startrow sub lineheight mul help.text.y add + moveto + rot + + 16 seteotchar + + { + currenttextcolors 4 1 roll pop pop pop + help.link.selected.bg + } { + currenttextcolors 4 2 roll pop pop pop + help.normal.bg + } ifelse + + setcolor over currentpoint rot strsize fillrect moveto + + setcolor show + + 4 seteotchar + + pop +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Select n-th link. +% +% ( n ) ==> ( ) +% +/help.selectlink { + help.selectedlink over eq { + pop + } { + % deselect old link + false help.selectedlink help.redrawlink + + /help.selectedlink over dup setlink def + + % select link + true exch help.redrawlink + } ifelse +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Select first visible link. +% +% No screen update if 'update' is false. +% +% ( update ) ==> ( ) +% +/help.sel.firstlink { + getlinks { + 0 1 getlinks 1 sub { + dup + getlink 4 1 roll pop pop pop + dup help.startrow help.text.rows add ge { + pop pop exit + } if + dup help.startrow ge { + pop + over { help.selectlink } { /help.selectedlink exch dup setlink def } ifelse + exit + } if + pop pop + } for + } if + pop +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Select last visible link. +% +% No screen update if 'update' is false. +% +% ( update ) ==> ( ) +% +/help.sel.lastlink { + getlinks { + getlinks 1 sub -1 0 { + dup + getlink 4 1 roll pop pop pop + dup help.startrow lt { + pop pop exit + } if + dup help.startrow help.text.rows add lt { + pop + over { help.selectlink } { /help.selectedlink exch dup setlink def } ifelse + exit + } if + pop pop + } for + } if + pop +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Push current help context to history. +% +% ( ) ==> ( ) +% +/help.add2history { + help.hist.index help.hist.page length lt { + help.hist.page help.hist.index help.currenttext put + help.hist.startrow help.hist.index help.startrow put + help.hist.selectedlink help.hist.index help.selectedlink put + /help.hist.index help.hist.index 1 add def + } if +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Follow currently selected link. +% +% ( ) ==> ( ) +% +/help.followlink { + getlinks { + help.selectedlink getlink pop pop pop + help.add2history + help.findpage + dup "" eq { + pop + } { + 0 0 help.initpage + } ifelse + } if +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Go back to previous page. +% +% ( ) ==> ( ) +% +/help.prevlink { + help.hist.index 0 gt { + /help.hist.index dec + help.hist.page help.hist.index get + help.hist.startrow help.hist.index get + help.hist.selectedlink help.hist.index get + help.initpage + } if +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Scroll a page down. +% +% ( ) ==> ( ) +% +/help.key.pagedown { + help.startrow + gettextrows help.text.rows gt { + pop + gettextrows help.text.rows sub + help.startrow help.text.rows add + min + } if + + dup help.startrow eq { + pop + true help.sel.lastlink + } { + /help.startrow exch def + false help.sel.firstlink + help.updatepage + } ifelse +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Scroll a page up. +% +% ( ) ==> ( ) +% +/help.key.pageup { + help.startrow + gettextrows help.text.rows gt { + pop + 0 + help.startrow help.text.rows sub + max + } if + + dup help.startrow eq { + pop + true help.sel.firstlink + } { + /help.startrow exch def + false help.sel.firstlink + help.updatepage + } ifelse +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Go to page start. +% +% ( ) ==> ( ) +% +/help.key.home { + help.startrow 0 eq { + true help.sel.firstlink + } { + /help.startrow 0 def + false help.sel.firstlink + help.updatepage + } ifelse +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Go to page end. +% +% ( ) ==> ( ) +% +/help.key.end { + gettextrows help.text.rows sub 0 max + dup help.startrow eq { + pop + true help.sel.lastlink + } { + /help.startrow exch def + false help.sel.lastlink + help.updatepage + } ifelse +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Next link or scroll down. +% +% ( ) ==> ( ) +% +/help.key.down { + help.selectedlink getlinks 1 sub lt { + help.selectedlink 1 add getlink 4 1 roll pop pop pop + dup help.startrow help.text.rows add lt { + % link visible + pop help.selectedlink 1 add help.selectlink + return + } { + help.startrow help.text.rows add eq { + % link visible after scrolling down + /help.selectedlink help.selectedlink 1 add dup setlink def + } if + } ifelse + } if + + % scroll down + + help.startrow help.text.rows add gettextrows lt { + /help.startrow help.startrow 1 add def + help.updatepage + } if +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Previous link or scroll up. +% +% ( ) ==> ( ) +% +/help.key.up { + help.selectedlink 0 gt { + help.selectedlink 1 sub getlink 4 1 roll pop pop pop + % row + dup help.startrow ge { + % link visible + pop help.selectedlink 1 sub help.selectlink + return + } { + help.startrow 1 sub eq { + % link visible after scrolling up + /help.selectedlink help.selectedlink 1 sub dup setlink def + } if + } ifelse + } if + + % scroll up + + help.startrow 0 gt { + /help.startrow dec + help.updatepage + } if +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Jump to a given page number. +% +% ( n ) ==> ( ) +% +/help.gotopage { + help.findpagebyindex + dup help.currenttext eq { + pop + } { + help.add2history + 0 0 help.initpage + } ifelse +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Handle keyboard input. +% +% ( key_in ) ==> ( key_out ) +% +/help.input { + dup 0 eq { return } if + + dup keyEsc eq { /window.action actNothing def window.done } if + dup keyCtrlDown eq { 1 help.test 0 0 help.initpage } if + dup keyCtrlUp eq { -1 help.test 0 0 help.initpage } if + dup keyDown eq { help.key.down } if + dup keyUp eq { help.key.up } if + dup keyPgDown eq { help.key.pagedown } if + dup keyPgUp eq { help.key.pageup } if + dup keyHome eq { help.key.home } if + dup keyEnd eq { help.key.end } if + dup keyRight eq { help.followlink } if + dup keyEnter eq { help.followlink } if + dup keyLeft eq { help.prevlink } if + dup 0xff and '\x08' eq { help.prevlink } if + dup 0xff and ' ' eq { help.key.pagedown } if + dup 0xff and '-' eq { help.key.pageup } if + dup keyF1 eq { 1 help.gotopage } if + dup keyF2 eq { 2 help.gotopage } if + dup keyF3 eq { 3 help.gotopage } if + dup keyF4 eq { 4 help.gotopage } if + dup keyF5 eq { 5 help.gotopage } if + dup keyF6 eq { 6 help.gotopage } if + dup keyF7 eq { 7 help.gotopage } if + dup keyF8 eq { 8 help.gotopage } if + dup keyF9 eq { 9 help.gotopage } if + dup keyF10 eq { 10 help.gotopage } if + pop 0 +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Recalculate some sizes and redraw help screen. +% +% ( ) ==> ( ) +% +/help.reinit { + help.normal.bg setcolor + help.x help.y moveto + help.width help.height fillrect + + help.x 1 add help.y 1 add help.title.height add moveto + help.dark help.light + help.width 2 sub help.height 2 sub help.title.height sub + drawborder + + help.font setfont + + /help.text.rows help.text.height lineheight div def + help.text.rows setmaxrows + + help.text.rightmargin settextwrap +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Initialize help window. +% +% ( window ) ==> ( ) +% +/help.init { + /help.tmp exch def + + help.x 1 sub help.y 1 sub moveto + help.light help.dark + help.width 2 add help.height 2 add + over over + savescreen + help.tmp .saved rot put + drawborder + + help.reinit + + 4 seteotchar + + /help.hist.index 0 def + + /help.test.cnt 1 def + + help.context help.findpage dup "" eq { pop 1 help.findpagebyindex } if + 0 0 help.initpage +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Draw help window. +% +% ( window ) ==> ( ) +% +/help.show { + window.push +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Close current help window. +% +% ( ) ==> ( ) +% +/help.done { + 0 settextwrap + 0 seteotchar + 0 setmaxrows +} def + + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Create new help window. +% +% ( ) ==> ( window ) +% +/window.help { + widget.size array + dup .type t_help put + + dup .x help.x put + dup .y help.y put + +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Find help texts. +% +% ( ) ==> ( start_of_help_messages ) +% +/help.getmessages { + + help.messages .undef eq { + % find help texts + /help.messages + help.file free /help.file .undef def + 16 string dup config.lang "%s.hlp" 2 index sprintf + findfile exch free + dup .undef eq { + pop 16 string + dup config.lang 1 get config.lang 0 get "%c%c.hlp" 3 index sprintf + findfile exch free + } if + dup .undef eq { pop "en.hlp" findfile } if + dup .undef eq { pop "" } if + /help.file over def + cvs + def + } if + + help.messages + +} def + + diff --git a/install.config b/install.config new file mode 100644 index 0000000..66503a6 --- /dev/null +++ b/install.config @@ -0,0 +1,30 @@ +%% include system.inc + +%% include timeout.inc +%% include common.inc + +%% include po/text.inc +%% include window.inc +%% include button.inc +%% include help.inc +%% include main.inc +%% include menuconfig.inc +%% include xmenu.inc +%% include dia_video.inc +%% include dia_lang.inc +%% include dia_keymap.inc +%% include dia_modes.inc +%% include dia_help.inc +%% include dia_profile.inc +%% include dia_audio.inc +%% include dia_options.inc +%% include dia_fulloptions.inc +%% include dia_access.inc +%% include dia_videomodes.inc +%% include panel.inc +%% include timezones.inc +%% include keytables.inc +%% include langnames.inc +%% include locale.inc +%% include splash.inc + diff --git a/keytables.inc b/keytables.inc new file mode 100644 index 0000000..732c203 --- /dev/null +++ b/keytables.inc @@ -0,0 +1,1384 @@ +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% Keyboard mappings. +% +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +/.km.name 0 def +/.km.map 1 def +/.km.display 2 def +/.km.locales 3 def +/.km.model 4 def + +/keymap.by [ + [ 0x56 0x3c 0x3e 0x7c ] +] def + +/keymap.bg [ + [ 0x56 0x3c 0x3e 0x7c ] +] def + +/keymap.ba [ + [ 0x02 0x31 0x21 0x00 ] + [ 0x03 0x32 0x22 0x00 ] + [ 0x04 0x33 0x23 0x00 ] + [ 0x05 0x34 0x24 0x00 ] + [ 0x06 0x35 0x25 0x2a ] + [ 0x07 0x36 0x26 0x00 ] + [ 0x08 0x37 0x2f 0x00 ] + [ 0x09 0x38 0x28 0x2e ] + [ 0x0a 0x39 0x29 0x00 ] + [ 0x0b 0x30 0x3d 0x00 ] + [ 0x0c 0x27 0x3f 0x00 ] + [ 0x0d 0x2b 0x2a 0x00 ] + [ 0x10 0x71 0x51 0x5c ] + [ 0x11 0x77 0x57 0x7c ] + [ 0x12 0x65 0x45 0x00 ] + [ 0x13 0x72 0x52 0xb6 ] + [ 0x14 0x74 0x54 0x00 ] + [ 0x15 0x7a 0x5a 0x00 ] + [ 0x16 0x75 0x55 0x00 ] + [ 0x17 0x69 0x49 0x00 ] + [ 0x18 0x6f 0x4f 0xf8 ] + [ 0x19 0x70 0x50 0xfe ] + [ 0x1a 0x00 0x00 0xf7 ] + [ 0x1b 0x00 0x00 0xd7 ] + [ 0x1e 0x61 0x41 0xe6 ] + [ 0x1f 0x73 0x53 0x00 ] + [ 0x20 0x64 0x44 0x00 ] + [ 0x21 0x66 0x46 0x5b ] + [ 0x22 0x67 0x47 0x5d ] + [ 0x23 0x68 0x48 0x00 ] + [ 0x25 0x6b 0x4b 0x00 ] + [ 0x26 0x6c 0x4c 0x00 ] + [ 0x28 0x00 0x00 0xdf ] + [ 0x29 0x60 0x7e 0xac ] + [ 0x2b 0x00 0x00 0xa4 ] + [ 0x2c 0x79 0x59 0x00 ] + [ 0x2d 0x78 0x58 0x00 ] + [ 0x2e 0x63 0x43 0xa2 ] + [ 0x2f 0x76 0x56 0x40 ] + [ 0x30 0x62 0x42 0x7b ] + [ 0x31 0x6e 0x4e 0x7d ] + [ 0x32 0x6d 0x4d 0x5e ] + [ 0x33 0x2c 0x3b 0x3c ] + [ 0x34 0x2e 0x3a 0x3e ] + [ 0x35 0x2d 0x5f 0x00 ] + [ 0x56 0x3c 0x3e 0x7c ] +] def + +/keymap.cz [ + [ 0x02 0x2b 0x31 0x21 ] + [ 0x03 0x00 0x32 0x40 ] + [ 0x04 0x00 0x33 0x23 ] + [ 0x05 0x00 0x34 0x24 ] + [ 0x06 0x00 0x35 0x25 ] + [ 0x07 0x00 0x36 0x5e ] + [ 0x08 0xfd 0x37 0x26 ] + [ 0x09 0xe1 0x38 0x2a ] + [ 0x0a 0xed 0x39 0x7b ] + [ 0x0b 0xe9 0x30 0x7d ] + [ 0x0c 0x3d 0x25 0x5c ] + [ 0x0d 0x00 0x00 0x5f ] + [ 0x10 0x71 0x51 0x5c ] + [ 0x11 0x77 0x57 0x7c ] + [ 0x12 0x65 0x45 0x00 ] + [ 0x13 0x72 0x52 0xb6 ] + [ 0x14 0x74 0x54 0x00 ] + [ 0x15 0x7a 0x5a 0x00 ] + [ 0x16 0x75 0x55 0x00 ] + [ 0x17 0x69 0x49 0x00 ] + [ 0x18 0x6f 0x4f 0xf8 ] + [ 0x19 0x70 0x50 0xfe ] + [ 0x1a 0xfa 0x2f 0x5b ] + [ 0x1b 0x29 0x28 0x5d ] + [ 0x1e 0x61 0x41 0x7e ] + [ 0x1f 0x73 0x53 0x00 ] + [ 0x20 0x64 0x44 0x00 ] + [ 0x21 0x66 0x46 0x5b ] + [ 0x22 0x67 0x47 0x5d ] + [ 0x23 0x68 0x48 0x60 ] + [ 0x24 0x6a 0x4a 0x27 ] + [ 0x25 0x6b 0x4b 0x00 ] + [ 0x26 0x6c 0x4c 0x00 ] + [ 0x27 0x00 0x22 0x24 ] + [ 0x28 0xa7 0x21 0x27 ] + [ 0x29 0x3b 0x2a 0x60 ] + [ 0x2b 0x00 0x27 0x5c ] + [ 0x2c 0x79 0x59 0xb0 ] + [ 0x2d 0x78 0x58 0x23 ] + [ 0x2e 0x63 0x43 0x26 ] + [ 0x2f 0x76 0x56 0x40 ] + [ 0x30 0x62 0x42 0x7b ] + [ 0x31 0x6e 0x4e 0x7d ] + [ 0x32 0x6d 0x4d 0x5e ] + [ 0x33 0x2c 0x3f 0x3c ] + [ 0x34 0x2e 0x3a 0x3e ] + [ 0x35 0x2d 0x5f 0x2a ] + [ 0x56 0x5c 0x7c 0x2f ] +] def + +/keymap.dk [ + [ 0x02 0x31 0x21 0xa1 ] + [ 0x03 0x32 0x22 0x40 ] + [ 0x04 0x33 0x23 0xa3 ] + [ 0x05 0x34 0xa4 0x24 ] + [ 0x06 0x35 0x25 0xbd ] + [ 0x07 0x36 0x26 0xa5 ] + [ 0x08 0x37 0x2f 0x7b ] + [ 0x09 0x38 0x28 0x5b ] + [ 0x0a 0x39 0x29 0x5d ] + [ 0x0b 0x30 0x3d 0x7d ] + [ 0x0c 0x2b 0x3f 0xb1 ] + [ 0x0d 0x00 0x00 0x7c ] + [ 0x10 0x71 0x51 0x40 ] + [ 0x11 0x77 0x57 0x00 ] + [ 0x12 0x65 0x45 0x00 ] + [ 0x13 0x72 0x52 0xae ] + [ 0x14 0x74 0x54 0xfe ] + [ 0x15 0x79 0x59 0x00 ] + [ 0x16 0x75 0x55 0x00 ] + [ 0x17 0x69 0x49 0x00 ] + [ 0x18 0x6f 0x4f 0x00 ] + [ 0x19 0x70 0x50 0xfe ] + [ 0x1a 0xe5 0xc5 0x00 ] + [ 0x1e 0x61 0x41 0xaa ] + [ 0x1f 0x73 0x53 0xdf ] + [ 0x20 0x64 0x44 0xf0 ] + [ 0x21 0x66 0x46 0x00 ] + [ 0x22 0x67 0x47 0x00 ] + [ 0x23 0x68 0x48 0x00 ] + [ 0x25 0x6b 0x4b 0x00 ] + [ 0x26 0x6c 0x4c 0x00 ] + [ 0x27 0xe6 0xc6 0x00 ] + [ 0x28 0xf8 0xd8 0x00 ] + [ 0x29 0xbd 0xa7 0xbe ] + [ 0x2b 0x27 0x2a 0x00 ] + [ 0x2c 0x7a 0x5a 0xab ] + [ 0x2d 0x78 0x58 0xbb ] + [ 0x2e 0x63 0x43 0xa9 ] + [ 0x2f 0x76 0x56 0x00 ] + [ 0x30 0x62 0x42 0x00 ] + [ 0x32 0x6d 0x4d 0xb5 ] + [ 0x33 0x2c 0x3b 0x00 ] + [ 0x34 0x2e 0x3a 0xb7 ] + [ 0x35 0x2d 0x5f 0x00 ] + [ 0x56 0x3c 0x3e 0x5c ] +] def + +/keymap.de [ + [ 0x02 0x31 0x21 0xb9 ] + [ 0x03 0x32 0x22 0xb2 ] + [ 0x04 0x33 0xa7 0xb3 ] + [ 0x05 0x34 0x24 0xbc ] + [ 0x06 0x35 0x25 0xbd ] + [ 0x07 0x36 0x26 0xac ] + [ 0x08 0x37 0x2f 0x7b ] + [ 0x09 0x38 0x28 0x5b ] + [ 0x0a 0x39 0x29 0x5d ] + [ 0x0b 0x30 0x3d 0x7d ] + [ 0x0c 0xdf 0x3f 0x5c ] + [ 0x10 0x71 0x51 0x40 ] + [ 0x11 0x77 0x57 0x00 ] + [ 0x12 0x65 0x45 0x00 ] + [ 0x13 0x72 0x52 0xb6 ] + [ 0x14 0x74 0x54 0x00 ] + [ 0x15 0x7a 0x5a 0x00 ] + [ 0x16 0x75 0x55 0x00 ] + [ 0x17 0x69 0x49 0x00 ] + [ 0x18 0x6f 0x4f 0xf8 ] + [ 0x19 0x70 0x50 0xfe ] + [ 0x1a 0xfc 0xdc 0x00 ] + [ 0x1b 0x2b 0x2a 0x00 ] + [ 0x1e 0x61 0x41 0xe6 ] + [ 0x1f 0x73 0x53 0x00 ] + [ 0x20 0x64 0x44 0xf0 ] + [ 0x21 0x66 0x46 0x00 ] + [ 0x22 0x67 0x47 0x00 ] + [ 0x23 0x68 0x48 0x00 ] + [ 0x24 0x6a 0x4a 0x00 ] + [ 0x25 0x6b 0x4b 0x00 ] + [ 0x26 0x6c 0x4c 0x00 ] + [ 0x27 0xf6 0xd6 0x00 ] + [ 0x28 0xe4 0xc4 0x00 ] + [ 0x29 0x00 0xb0 0x00 ] + [ 0x2b 0x23 0x27 0x00 ] + [ 0x2c 0x79 0x59 0xbb ] + [ 0x2d 0x78 0x58 0xab ] + [ 0x2e 0x63 0x43 0xa2 ] + [ 0x2f 0x76 0x56 0x00 ] + [ 0x30 0x62 0x42 0x00 ] + [ 0x31 0x6e 0x4e 0x00 ] + [ 0x32 0x6d 0x4d 0xb5 ] + [ 0x33 0x2c 0x3b 0xb7 ] + [ 0x34 0x2e 0x3a 0x00 ] + [ 0x35 0x2d 0x5f 0x00 ] + [ 0x56 0x3c 0x3e 0x7c ] +] def + +/keymap.us [ + [ 0x56 0x3c 0x3e 0x7c ] +] def + +/keymap.gb [ + [ 0x02 0x31 0x21 0xb9 ] + [ 0x03 0x32 0x22 0xb2 ] + [ 0x04 0x33 0xa3 0xb3 ] + [ 0x05 0x34 0x24 0x00 ] + [ 0x06 0x35 0x25 0xbd ] + [ 0x07 0x36 0x5e 0xbe ] + [ 0x08 0x37 0x26 0x7b ] + [ 0x09 0x38 0x2a 0x5b ] + [ 0x0a 0x39 0x28 0x5d ] + [ 0x0b 0x30 0x29 0x7d ] + [ 0x0c 0x2d 0x5f 0x5c ] + [ 0x0d 0x3d 0x2b 0x00 ] + [ 0x10 0x71 0x51 0x40 ] + [ 0x11 0x77 0x57 0x00 ] + [ 0x13 0x72 0x52 0xb6 ] + [ 0x14 0x74 0x54 0x00 ] + [ 0x15 0x79 0x59 0x00 ] + [ 0x16 0x75 0x55 0x00 ] + [ 0x17 0x69 0x49 0x00 ] + [ 0x18 0x6f 0x4f 0xf8 ] + [ 0x19 0x70 0x50 0xfe ] + [ 0x1a 0x5b 0x7b 0x00 ] + [ 0x1b 0x5d 0x7d 0x00 ] + [ 0x1e 0x61 0x41 0xe6 ] + [ 0x1f 0x73 0x53 0xdf ] + [ 0x20 0x64 0x44 0xf0 ] + [ 0x21 0x66 0x46 0x00 ] + [ 0x22 0x67 0x47 0x00 ] + [ 0x23 0x68 0x48 0x00 ] + [ 0x25 0x6b 0x4b 0x00 ] + [ 0x26 0x6c 0x4c 0x00 ] + [ 0x27 0x3b 0x3a 0x00 ] + [ 0x28 0x27 0x40 0x00 ] + [ 0x29 0x60 0xac 0x7c ] + [ 0x2b 0x23 0x7e 0x00 ] + [ 0x2c 0x7a 0x5a 0xab ] + [ 0x2d 0x78 0x58 0xbb ] + [ 0x2e 0x63 0x43 0xa2 ] + [ 0x2f 0x76 0x56 0x00 ] + [ 0x30 0x62 0x42 0x00 ] + [ 0x32 0x6d 0x4d 0xb5 ] + [ 0x33 0x2c 0x3c 0x00 ] + [ 0x34 0x2e 0x3e 0xb7 ] + [ 0x35 0x2f 0x3f 0x00 ] + [ 0x56 0x5c 0x7c 0x7c ] +] def + +/keymap.es [ + [ 0x02 0x31 0x21 0x7c ] + [ 0x03 0x32 0x22 0x40 ] + [ 0x04 0x33 0xb7 0x23 ] + [ 0x05 0x34 0x24 0x7e ] + [ 0x06 0x35 0x25 0xbd ] + [ 0x07 0x36 0x26 0xac ] + [ 0x08 0x37 0x2f 0x7b ] + [ 0x09 0x38 0x28 0x5b ] + [ 0x0a 0x39 0x29 0x5d ] + [ 0x0b 0x30 0x3d 0x7d ] + [ 0x0c 0x27 0x3f 0x5c ] + [ 0x0d 0xa1 0xbf 0x00 ] + [ 0x10 0x71 0x51 0x40 ] + [ 0x11 0x77 0x57 0x00 ] + [ 0x12 0x65 0x45 0x00 ] + [ 0x13 0x72 0x52 0xb6 ] + [ 0x14 0x74 0x54 0x00 ] + [ 0x15 0x79 0x59 0x00 ] + [ 0x16 0x75 0x55 0x00 ] + [ 0x17 0x69 0x49 0x00 ] + [ 0x18 0x6f 0x4f 0xf8 ] + [ 0x19 0x70 0x50 0xfe ] + [ 0x1a 0x00 0x00 0x5b ] + [ 0x1b 0x2b 0x2a 0x5d ] + [ 0x1e 0x61 0x41 0xe6 ] + [ 0x1f 0x73 0x53 0xdf ] + [ 0x20 0x64 0x44 0xf0 ] + [ 0x21 0x66 0x46 0x00 ] + [ 0x22 0x67 0x47 0x00 ] + [ 0x23 0x68 0x48 0x00 ] + [ 0x25 0x6b 0x4b 0x00 ] + [ 0x26 0x6c 0x4c 0x00 ] + [ 0x27 0xf1 0xd1 0x7e ] + [ 0x28 0x00 0x00 0x7b ] + [ 0x29 0xba 0xaa 0x5c ] + [ 0x2b 0xe7 0xc7 0x7d ] + [ 0x2c 0x7a 0x5a 0xab ] + [ 0x2d 0x78 0x58 0xbb ] + [ 0x2e 0x63 0x43 0xa2 ] + [ 0x2f 0x76 0x56 0x00 ] + [ 0x30 0x62 0x42 0x00 ] + [ 0x32 0x6d 0x4d 0xb5 ] + [ 0x33 0x2c 0x3b 0x00 ] + [ 0x34 0x2e 0x3a 0xb7 ] + [ 0x35 0x2d 0x5f 0x00 ] + [ 0x56 0x3c 0x3e 0x7c ] +] def + +/keymap.latam [ + [ 0x02 0x31 0x21 0x7c ] + [ 0x03 0x32 0x22 0x40 ] + [ 0x04 0x33 0x23 0xb7 ] + [ 0x05 0x34 0x24 0x7e ] + [ 0x06 0x35 0x25 0xbd ] + [ 0x07 0x36 0x26 0xac ] + [ 0x08 0x37 0x2f 0x7b ] + [ 0x09 0x38 0x28 0x5b ] + [ 0x0a 0x39 0x29 0x5d ] + [ 0x0b 0x30 0x3d 0x7d ] + [ 0x0c 0x27 0x3f 0x5c ] + [ 0x0d 0xbf 0xa1 0x00 ] + [ 0x10 0x71 0x51 0x40 ] + [ 0x11 0x77 0x57 0x00 ] + [ 0x12 0x65 0x45 0x00 ] + [ 0x13 0x72 0x52 0xb6 ] + [ 0x14 0x74 0x54 0x00 ] + [ 0x15 0x79 0x59 0x00 ] + [ 0x16 0x75 0x55 0x00 ] + [ 0x17 0x69 0x49 0x00 ] + [ 0x18 0x6f 0x4f 0xf8 ] + [ 0x19 0x70 0x50 0xfe ] + [ 0x1b 0x2b 0x2a 0x7e ] + [ 0x1e 0x61 0x41 0xe6 ] + [ 0x1f 0x73 0x53 0xdf ] + [ 0x20 0x64 0x44 0xf0 ] + [ 0x21 0x66 0x46 0x00 ] + [ 0x22 0x67 0x47 0x00 ] + [ 0x23 0x68 0x48 0x00 ] + [ 0x25 0x6b 0x4b 0x00 ] + [ 0x26 0x6c 0x4c 0x00 ] + [ 0x27 0xf1 0xd1 0x7e ] + [ 0x28 0x7b 0x5b 0x00 ] + [ 0x29 0x7c 0xb0 0xac ] + [ 0x2b 0x7d 0x5d 0x00 ] + [ 0x2c 0x7a 0x5a 0xab ] + [ 0x2d 0x78 0x58 0xbb ] + [ 0x2e 0x63 0x43 0xa2 ] + [ 0x2f 0x76 0x56 0x00 ] + [ 0x30 0x62 0x42 0x00 ] + [ 0x32 0x6d 0x4d 0xb5 ] + [ 0x33 0x2c 0x3b 0x00 ] + [ 0x34 0x2e 0x3a 0xb7 ] + [ 0x35 0x2d 0x5f 0x00 ] + [ 0x56 0x3c 0x3e 0x7c ] +] def + +/keymap.ee [ + [ 0x02 0x31 0x21 0xb9 ] + [ 0x03 0x32 0x22 0x40 ] + [ 0x04 0x33 0x23 0xa3 ] + [ 0x05 0x34 0xa4 0x24 ] + [ 0x06 0x35 0x25 0xbd ] + [ 0x07 0x36 0x26 0xac ] + [ 0x08 0x37 0x2f 0x7b ] + [ 0x09 0x38 0x28 0x5b ] + [ 0x0a 0x39 0x29 0x5d ] + [ 0x0b 0x30 0x3d 0x7d ] + [ 0x0c 0x2b 0x3f 0x5c ] + [ 0x0d 0x00 0x00 0x60 ] + [ 0x10 0x71 0x51 0x40 ] + [ 0x11 0x77 0x57 0x00 ] + [ 0x12 0x65 0x45 0x00 ] + [ 0x13 0x72 0x52 0xb6 ] + [ 0x14 0x74 0x54 0x00 ] + [ 0x15 0x79 0x59 0x00 ] + [ 0x16 0x75 0x55 0x00 ] + [ 0x17 0x69 0x49 0x00 ] + [ 0x18 0x6f 0x4f 0xf8 ] + [ 0x19 0x70 0x50 0xfe ] + [ 0x1a 0xfc 0xdc 0x00 ] + [ 0x1b 0xf5 0xd5 0xa7 ] + [ 0x1e 0x61 0x41 0xe6 ] + [ 0x1f 0x73 0x53 0x00 ] + [ 0x20 0x64 0x44 0xf0 ] + [ 0x21 0x66 0x46 0x00 ] + [ 0x22 0x67 0x47 0x00 ] + [ 0x23 0x68 0x48 0x00 ] + [ 0x25 0x6b 0x4b 0x00 ] + [ 0x26 0x6c 0x4c 0x00 ] + [ 0x27 0xf6 0xd6 0x00 ] + [ 0x28 0xe4 0xc4 0x5e ] + [ 0x29 0x00 0x00 0xac ] + [ 0x2b 0x27 0x2a 0xbd ] + [ 0x2c 0x7a 0x5a 0x00 ] + [ 0x2d 0x78 0x58 0xbb ] + [ 0x2e 0x63 0x43 0xa2 ] + [ 0x2f 0x76 0x56 0x00 ] + [ 0x30 0x62 0x42 0x00 ] + [ 0x32 0x6d 0x4d 0xb5 ] + [ 0x33 0x2c 0x3b 0x3c ] + [ 0x34 0x2e 0x3a 0x3e ] + [ 0x35 0x2d 0x5f 0x7c ] + [ 0x56 0x3c 0x3e 0x7c ] +] def + +/keymap.fi [ + [ 0x02 0x31 0x21 0x00 ] + [ 0x03 0x32 0x22 0x40 ] + [ 0x04 0x33 0x23 0xa3 ] + [ 0x05 0x34 0xa4 0x24 ] + [ 0x06 0x35 0x25 0x00 ] + [ 0x07 0x36 0x26 0x00 ] + [ 0x08 0x37 0x2f 0x7b ] + [ 0x09 0x38 0x28 0x5b ] + [ 0x0a 0x39 0x29 0x5d ] + [ 0x0b 0x30 0x3d 0x7d ] + [ 0x0c 0x2b 0x3f 0x5c ] + [ 0x12 0x65 0x45 0x00 ] + [ 0x14 0x74 0x54 0xfe ] + [ 0x17 0x69 0x49 0x00 ] + [ 0x18 0x6f 0x4f 0x00 ] + [ 0x19 0x70 0x50 0x00 ] + [ 0x1a 0xe5 0xc5 0x00 ] + [ 0x1e 0x61 0x41 0x00 ] + [ 0x1f 0x73 0x53 0xdf ] + [ 0x20 0x64 0x44 0xf0 ] + [ 0x25 0x6b 0x4b 0x00 ] + [ 0x26 0x6c 0x4c 0x2d ] + [ 0x27 0xf6 0xd6 0xf8 ] + [ 0x28 0xe4 0xc4 0xe6 ] + [ 0x29 0xa7 0xbd 0x2d ] + [ 0x2b 0x27 0x2a 0x00 ] + [ 0x2c 0x7a 0x5a 0x00 ] + [ 0x2d 0x78 0x58 0xd7 ] + [ 0x31 0x6e 0x4e 0x00 ] + [ 0x32 0x6d 0x4d 0xb5 ] + [ 0x33 0x2c 0x3b 0x00 ] + [ 0x34 0x2e 0x3a 0x00 ] + [ 0x35 0x2d 0x5f 0x00 ] + [ 0x39 0x20 0x20 0xa0 ] + [ 0x56 0x3c 0x3e 0x7c ] +] def + +/keymap.fr_oss [ + [ 0x02 0x26 0x31 0x00 ] + [ 0x03 0xe9 0x32 0x7e ] + [ 0x04 0x22 0x33 0x23 ] + [ 0x05 0x27 0x34 0x7b ] + [ 0x06 0x28 0x35 0x5b ] + [ 0x07 0x2d 0x36 0x7c ] + [ 0x08 0xe8 0x37 0x60 ] + [ 0x09 0x5f 0x38 0x5c ] + [ 0x0a 0xe7 0x39 0x5e ] + [ 0x0b 0xe0 0x30 0x40 ] + [ 0x0c 0x29 0xb0 0x5d ] + [ 0x0d 0x3d 0x2b 0x7d ] + [ 0x10 0x61 0x41 0xe6 ] + [ 0x11 0x7a 0x5a 0xe2 ] + [ 0x12 0x65 0x45 0x00 ] + [ 0x13 0x72 0x52 0xea ] + [ 0x14 0x74 0x54 0xfe ] + [ 0x15 0x79 0x59 0xff ] + [ 0x16 0x75 0x55 0xfb ] + [ 0x17 0x69 0x49 0xee ] + [ 0x18 0x6f 0x4f 0x00 ] + [ 0x19 0x70 0x50 0xf4 ] + [ 0x1b 0x24 0xa3 0xf8 ] + [ 0x1e 0x71 0x51 0xe4 ] + [ 0x1f 0x73 0x53 0xdf ] + [ 0x20 0x64 0x44 0xeb ] + [ 0x21 0x66 0x46 0x00 ] + [ 0x22 0x67 0x47 0x00 ] + [ 0x23 0x68 0x48 0xf0 ] + [ 0x24 0x6a 0x4a 0xfc ] + [ 0x25 0x6b 0x4b 0xef ] + [ 0x26 0x6c 0x4c 0x00 ] + [ 0x27 0x6d 0x4d 0xf6 ] + [ 0x28 0xf9 0x25 0x00 ] + [ 0x29 0xb2 0xb3 0xb9 ] + [ 0x2b 0x2a 0xb5 0x00 ] + [ 0x2c 0x77 0x57 0xab ] + [ 0x2d 0x78 0x58 0xbb ] + [ 0x2e 0x63 0x43 0xa9 ] + [ 0x2f 0x76 0x56 0x00 ] + [ 0x30 0x62 0x42 0x00 ] + [ 0x31 0x6e 0x4e 0xac ] + [ 0x32 0x2c 0x3f 0xbf ] + [ 0x33 0x3b 0x2e 0xd7 ] + [ 0x34 0x3a 0x2f 0xf7 ] + [ 0x35 0x21 0xa7 0xa1 ] + [ 0x56 0x3c 0x3e 0x00 ] +] def + +/keymap.ca [ + [ 0x02 0x31 0x21 0xb1 ] + [ 0x03 0x32 0x22 0x40 ] + [ 0x04 0x33 0x2f 0xa3 ] + [ 0x05 0x34 0x24 0xa2 ] + [ 0x06 0x35 0x25 0xa4 ] + [ 0x07 0x36 0x3f 0xac ] + [ 0x08 0x37 0x26 0xa6 ] + [ 0x09 0x38 0x2a 0xb2 ] + [ 0x0a 0x39 0x28 0xb3 ] + [ 0x0b 0x30 0x29 0xbc ] + [ 0x0c 0x2d 0x5f 0xbd ] + [ 0x0d 0x3d 0x2b 0xbe ] + [ 0x18 0x6f 0x4f 0xa7 ] + [ 0x19 0x70 0x50 0xb6 ] + [ 0x1a 0x00 0x00 0x5b ] + [ 0x1b 0x00 0x00 0x5d ] + [ 0x27 0x3b 0x3a 0x7e ] + [ 0x28 0x00 0x00 0x7b ] + [ 0x29 0x23 0x7c 0x5c ] + [ 0x2b 0x3c 0x3e 0x7d ] + [ 0x32 0x6d 0x4d 0xb5 ] + [ 0x33 0x2c 0x27 0xaf ] + [ 0x34 0x2e 0x2e 0xad ] + [ 0x35 0xe9 0xc9 0x00 ] + [ 0x39 0x20 0x20 0xa0 ] + [ 0x56 0xab 0xbb 0xb0 ] +] def + +/keymap.be [ + [ 0x02 0x26 0x31 0x7c ] + [ 0x03 0xe9 0x32 0x40 ] + [ 0x04 0x22 0x33 0x23 ] + [ 0x05 0x27 0x34 0xbc ] + [ 0x06 0x28 0x35 0xbd ] + [ 0x07 0xa7 0x36 0x5e ] + [ 0x08 0xe8 0x37 0x7b ] + [ 0x09 0x21 0x38 0x5b ] + [ 0x0a 0xe7 0x39 0x7b ] + [ 0x0b 0xe0 0x30 0x7d ] + [ 0x0c 0x29 0xb0 0x5c ] + [ 0x0d 0x2d 0x5f 0x00 ] + [ 0x10 0x61 0x41 0x40 ] + [ 0x11 0x7a 0x5a 0x00 ] + [ 0x12 0x65 0x45 0x00 ] + [ 0x13 0x72 0x52 0xb6 ] + [ 0x14 0x74 0x54 0x00 ] + [ 0x15 0x79 0x59 0x00 ] + [ 0x16 0x75 0x55 0x00 ] + [ 0x17 0x69 0x49 0x00 ] + [ 0x18 0x6f 0x4f 0x00 ] + [ 0x19 0x70 0x50 0xfe ] + [ 0x1a 0x00 0x00 0x5b ] + [ 0x1b 0x24 0x2a 0x5d ] + [ 0x1e 0x71 0x51 0xe6 ] + [ 0x1f 0x73 0x53 0xdf ] + [ 0x20 0x64 0x44 0xf0 ] + [ 0x21 0x66 0x46 0x00 ] + [ 0x22 0x67 0x47 0x00 ] + [ 0x23 0x68 0x48 0x00 ] + [ 0x25 0x6b 0x4b 0x00 ] + [ 0x26 0x6c 0x4c 0x00 ] + [ 0x27 0x6d 0x4d 0x00 ] + [ 0x28 0xf9 0x25 0x00 ] + [ 0x29 0xb2 0xb3 0xac ] + [ 0x2b 0xb5 0xa3 0x00 ] + [ 0x2c 0x77 0x57 0xab ] + [ 0x2d 0x78 0x58 0xbb ] + [ 0x2e 0x63 0x43 0xa2 ] + [ 0x2f 0x76 0x56 0x00 ] + [ 0x30 0x62 0x42 0x00 ] + [ 0x32 0x2c 0x3f 0x00 ] + [ 0x33 0x3b 0x2e 0x00 ] + [ 0x34 0x3a 0x2f 0xb7 ] + [ 0x35 0x3d 0x2b 0x00 ] + [ 0x56 0x3c 0x3e 0x5c ] +] def + +/keymap.hu [ + [ 0x02 0x31 0x27 0x7e ] + [ 0x03 0x32 0x22 0x00 ] + [ 0x04 0x33 0x2b 0x5e ] + [ 0x05 0x34 0x21 0x00 ] + [ 0x06 0x35 0x25 0x2a ] + [ 0x07 0x36 0x2f 0x00 ] + [ 0x08 0x37 0x3d 0x60 ] + [ 0x09 0x38 0x28 0x2e ] + [ 0x0a 0x39 0x29 0x00 ] + [ 0x0b 0xf6 0xd6 0x00 ] + [ 0x0c 0xfc 0xdc 0x00 ] + [ 0x0d 0xf3 0xd3 0x00 ] + [ 0x10 0x71 0x51 0x5c ] + [ 0x11 0x77 0x57 0x7c ] + [ 0x13 0x72 0x52 0xb6 ] + [ 0x14 0x74 0x54 0x00 ] + [ 0x15 0x7a 0x5a 0x00 ] + [ 0x16 0x75 0x55 0x00 ] + [ 0x17 0x69 0x49 0xcd ] + [ 0x18 0x6f 0x4f 0x00 ] + [ 0x19 0x70 0x50 0x00 ] + [ 0x1a 0x00 0x00 0xf7 ] + [ 0x1b 0xfa 0xda 0xd7 ] + [ 0x1e 0x61 0x41 0xe4 ] + [ 0x1f 0x73 0x53 0x00 ] + [ 0x20 0x64 0x44 0x00 ] + [ 0x21 0x66 0x46 0x5b ] + [ 0x22 0x67 0x47 0x5d ] + [ 0x23 0x68 0x48 0x00 ] + [ 0x24 0x6a 0x4a 0xed ] + [ 0x25 0x6b 0x4b 0x00 ] + [ 0x26 0x6c 0x4c 0x00 ] + [ 0x27 0xe9 0xc9 0x24 ] + [ 0x28 0xe1 0xc1 0xdf ] + [ 0x29 0x30 0xa7 0xac ] + [ 0x2b 0x00 0x00 0xa4 ] + [ 0x2c 0x79 0x59 0x3e ] + [ 0x2d 0x78 0x58 0x23 ] + [ 0x2e 0x63 0x43 0x26 ] + [ 0x2f 0x76 0x56 0x40 ] + [ 0x30 0x62 0x42 0x7b ] + [ 0x31 0x6e 0x4e 0x7d ] + [ 0x32 0x6d 0x4d 0x3c ] + [ 0x33 0x2c 0x3f 0x3b ] + [ 0x34 0x2e 0x3a 0x3e ] + [ 0x35 0x2d 0x5f 0x2a ] + [ 0x56 0xed 0xcd 0x3c ] +] def + +/keymap.is [ + [ 0x02 0x31 0x21 0xb9 ] + [ 0x03 0x32 0x22 0xb2 ] + [ 0x04 0x33 0x23 0xb3 ] + [ 0x05 0x34 0x24 0xbc ] + [ 0x06 0x35 0x25 0xbd ] + [ 0x07 0x36 0x26 0xac ] + [ 0x08 0x37 0x2f 0x7b ] + [ 0x09 0x38 0x28 0x5b ] + [ 0x0a 0x39 0x29 0x5d ] + [ 0x0b 0x30 0x3d 0x7d ] + [ 0x0c 0xf6 0xd6 0x5c ] + [ 0x0d 0x2d 0x5f 0x00 ] + [ 0x10 0x71 0x51 0x40 ] + [ 0x11 0x77 0x57 0x00 ] + [ 0x12 0x65 0x45 0x00 ] + [ 0x13 0x72 0x52 0xb6 ] + [ 0x14 0x74 0x54 0x00 ] + [ 0x15 0x79 0x59 0x00 ] + [ 0x16 0x75 0x55 0x00 ] + [ 0x17 0x69 0x49 0x00 ] + [ 0x18 0x6f 0x4f 0xf8 ] + [ 0x19 0x70 0x50 0xfe ] + [ 0x1a 0xf0 0xd0 0x00 ] + [ 0x1b 0x27 0x3f 0x00 ] + [ 0x1e 0x61 0x41 0xe6 ] + [ 0x1f 0x73 0x53 0xdf ] + [ 0x20 0x64 0x44 0xf0 ] + [ 0x21 0x66 0x46 0x00 ] + [ 0x22 0x67 0x47 0x00 ] + [ 0x23 0x68 0x48 0x00 ] + [ 0x25 0x6b 0x4b 0x00 ] + [ 0x26 0x6c 0x4c 0x00 ] + [ 0x27 0xe6 0xc6 0x5e ] + [ 0x29 0x2a 0x00 0xac ] + [ 0x2b 0x2b 0x2a 0x00 ] + [ 0x2c 0x7a 0x5a 0xab ] + [ 0x2d 0x78 0x58 0xbb ] + [ 0x2e 0x63 0x43 0xa2 ] + [ 0x2f 0x76 0x56 0x00 ] + [ 0x30 0x62 0x42 0x00 ] + [ 0x32 0x6d 0x4d 0xb5 ] + [ 0x33 0x2c 0x3b 0x00 ] + [ 0x34 0x2e 0x3a 0xb7 ] + [ 0x35 0xfe 0xde 0x00 ] + [ 0x39 0x20 0x20 0xa0 ] + [ 0x56 0x3c 0x3e 0x7c ] +] def + +/keymap.it [ + [ 0x02 0x31 0x21 0xb9 ] + [ 0x03 0x32 0x22 0xb2 ] + [ 0x04 0x33 0xa3 0xb3 ] + [ 0x05 0x34 0x24 0xbc ] + [ 0x06 0x35 0x25 0xbd ] + [ 0x07 0x36 0x26 0xac ] + [ 0x08 0x37 0x2f 0x7b ] + [ 0x09 0x38 0x28 0x5b ] + [ 0x0a 0x39 0x29 0x5d ] + [ 0x0b 0x30 0x3d 0x7d ] + [ 0x0c 0x27 0x3f 0x60 ] + [ 0x0d 0xec 0x5e 0x7e ] + [ 0x10 0x71 0x51 0x40 ] + [ 0x11 0x77 0x57 0x00 ] + [ 0x12 0x65 0x45 0x00 ] + [ 0x13 0x72 0x52 0xb6 ] + [ 0x14 0x74 0x54 0x00 ] + [ 0x15 0x79 0x59 0x00 ] + [ 0x16 0x75 0x55 0x00 ] + [ 0x17 0x69 0x49 0x00 ] + [ 0x18 0x6f 0x4f 0xf8 ] + [ 0x19 0x70 0x50 0xfe ] + [ 0x1a 0xe8 0xe9 0x5b ] + [ 0x1b 0x2b 0x2a 0x5d ] + [ 0x1e 0x61 0x41 0xe6 ] + [ 0x1f 0x73 0x53 0xdf ] + [ 0x20 0x64 0x44 0xf0 ] + [ 0x21 0x66 0x46 0x00 ] + [ 0x22 0x67 0x47 0x00 ] + [ 0x23 0x68 0x48 0x00 ] + [ 0x25 0x6b 0x4b 0x00 ] + [ 0x26 0x6c 0x4c 0x00 ] + [ 0x27 0xf2 0xe7 0x40 ] + [ 0x28 0xe0 0xb0 0x23 ] + [ 0x29 0x5c 0x7c 0xac ] + [ 0x2b 0xf9 0xa7 0x00 ] + [ 0x2c 0x7a 0x5a 0xab ] + [ 0x2d 0x78 0x58 0xbb ] + [ 0x2e 0x63 0x43 0xa2 ] + [ 0x2f 0x76 0x56 0x00 ] + [ 0x30 0x62 0x42 0x00 ] + [ 0x31 0x6e 0x4e 0xf1 ] + [ 0x32 0x6d 0x4d 0xb5 ] + [ 0x33 0x2c 0x3b 0x00 ] + [ 0x34 0x2e 0x3a 0xb7 ] + [ 0x35 0x2d 0x5f 0x5f ] + [ 0x56 0x3c 0x3e 0xab ] +] def + +/keymap.kz [ + [ 0x56 0x3c 0x3e 0x7c ] +] def + +/keymap.lt [ + [ 0x56 0x3c 0x3e 0x7c ] +] def + +/keymap.lv [ + [ 0x02 0x31 0x21 0xb9 ] + [ 0x03 0x32 0x40 0xb2 ] + [ 0x04 0x33 0x23 0xb3 ] + [ 0x05 0x34 0x24 0x00 ] + [ 0x06 0x35 0x25 0xbd ] + [ 0x07 0x36 0x5e 0xbe ] + [ 0x08 0x37 0x26 0x7b ] + [ 0x09 0x38 0x2a 0x5b ] + [ 0x0a 0x39 0x28 0x5d ] + [ 0x0b 0x30 0x29 0x7d ] + [ 0x0c 0x2d 0x5f 0x5c ] + [ 0x0d 0x3d 0x2b 0x00 ] + [ 0x12 0x65 0x45 0x00 ] + [ 0x13 0x72 0x52 0x00 ] + [ 0x16 0x75 0x55 0x00 ] + [ 0x17 0x69 0x49 0x00 ] + [ 0x18 0x6f 0x4f 0x00 ] + [ 0x1a 0x5b 0x7b 0xab ] + [ 0x1b 0x5d 0x7d 0xbb ] + [ 0x1e 0x61 0x41 0x00 ] + [ 0x1f 0x73 0x53 0x00 ] + [ 0x22 0x67 0x47 0x00 ] + [ 0x25 0x6b 0x4b 0x00 ] + [ 0x26 0x6c 0x4c 0x00 ] + [ 0x28 0x27 0x22 0x00 ] + [ 0x29 0x60 0x7e 0x27 ] + [ 0x2b 0x5c 0x7c 0x60 ] + [ 0x2c 0x7a 0x5a 0x00 ] + [ 0x2e 0x63 0x43 0x00 ] + [ 0x31 0x6e 0x4e 0x00 ] + [ 0x33 0x2c 0x3c 0x00 ] + [ 0x34 0x2e 0x3e 0xb7 ] + [ 0x56 0x3c 0x3e 0x7c ] +] def + +/keymap.nl [ + [ 0x02 0x31 0x21 0xb9 ] + [ 0x03 0x32 0x22 0xb2 ] + [ 0x04 0x33 0x23 0xb3 ] + [ 0x05 0x34 0x24 0xbc ] + [ 0x06 0x35 0x25 0xbd ] + [ 0x07 0x36 0x26 0xbe ] + [ 0x08 0x37 0x5f 0xa3 ] + [ 0x09 0x38 0x28 0x7b ] + [ 0x0a 0x39 0x29 0x7d ] + [ 0x0b 0x30 0x27 0xb0 ] + [ 0x0c 0x2f 0x3f 0x5c ] + [ 0x0d 0xb0 0x00 0x00 ] + [ 0x10 0x71 0x51 0x40 ] + [ 0x11 0x77 0x57 0x00 ] + [ 0x12 0x65 0x45 0x00 ] + [ 0x13 0x72 0x52 0xb6 ] + [ 0x14 0x74 0x54 0xfe ] + [ 0x15 0x79 0x59 0xff ] + [ 0x16 0x75 0x55 0xfc ] + [ 0x17 0x69 0x49 0xef ] + [ 0x18 0x6f 0x4f 0xf2 ] + [ 0x19 0x70 0x50 0xb6 ] + [ 0x1a 0x00 0x00 0x7e ] + [ 0x1b 0x2a 0x7c 0x00 ] + [ 0x1e 0x61 0x41 0xe1 ] + [ 0x1f 0x73 0x53 0xdf ] + [ 0x20 0x64 0x44 0xf0 ] + [ 0x21 0x66 0x46 0xaa ] + [ 0x22 0x67 0x47 0x00 ] + [ 0x23 0x68 0x48 0x00 ] + [ 0x25 0x6b 0x4b 0x00 ] + [ 0x26 0x6c 0x4c 0x00 ] + [ 0x27 0x2b 0xb1 0x00 ] + [ 0x28 0x00 0x00 0x27 ] + [ 0x29 0x40 0xa7 0xac ] + [ 0x2b 0x3c 0x3e 0x00 ] + [ 0x2c 0x7a 0x5a 0xab ] + [ 0x2d 0x78 0x58 0xbb ] + [ 0x2e 0x63 0x43 0xa2 ] + [ 0x2f 0x76 0x56 0x00 ] + [ 0x30 0x62 0x42 0x00 ] + [ 0x31 0x6e 0x4e 0xf1 ] + [ 0x32 0x6d 0x4d 0x00 ] + [ 0x33 0x2c 0x3b 0xb8 ] + [ 0x34 0x2e 0x3a 0xb7 ] + [ 0x35 0x2d 0x3d 0xad ] + [ 0x56 0x5d 0x5b 0x7c ] +] def + +/keymap.no [ + [ 0x02 0x31 0x21 0xa1 ] + [ 0x03 0x32 0x22 0x40 ] + [ 0x04 0x33 0x23 0xa3 ] + [ 0x05 0x34 0xa4 0x24 ] + [ 0x06 0x35 0x25 0xbd ] + [ 0x07 0x36 0x26 0xa5 ] + [ 0x08 0x37 0x2f 0x7b ] + [ 0x09 0x38 0x28 0x5b ] + [ 0x0a 0x39 0x29 0x5d ] + [ 0x0b 0x30 0x3d 0x7d ] + [ 0x0c 0x2b 0x3f 0xb1 ] + [ 0x0d 0x5c 0x00 0x00 ] + [ 0x10 0x71 0x51 0x40 ] + [ 0x11 0x77 0x57 0x00 ] + [ 0x12 0x65 0x45 0x00 ] + [ 0x13 0x72 0x52 0xae ] + [ 0x14 0x74 0x54 0xfe ] + [ 0x15 0x79 0x59 0x00 ] + [ 0x16 0x75 0x55 0x00 ] + [ 0x17 0x69 0x49 0x00 ] + [ 0x18 0x6f 0x4f 0x00 ] + [ 0x19 0x70 0x50 0x00 ] + [ 0x1a 0xe5 0xc5 0x00 ] + [ 0x1e 0x61 0x41 0xaa ] + [ 0x1f 0x73 0x53 0xdf ] + [ 0x20 0x64 0x44 0xf0 ] + [ 0x21 0x66 0x46 0x00 ] + [ 0x22 0x67 0x47 0x00 ] + [ 0x23 0x68 0x48 0x00 ] + [ 0x25 0x6b 0x4b 0x00 ] + [ 0x26 0x6c 0x4c 0x00 ] + [ 0x27 0xf8 0xd8 0x00 ] + [ 0x28 0xe6 0xc6 0x00 ] + [ 0x29 0x7c 0xa7 0xa6 ] + [ 0x2b 0x27 0x2a 0x00 ] + [ 0x2c 0x7a 0x5a 0xab ] + [ 0x2d 0x78 0x58 0xbb ] + [ 0x2e 0x63 0x43 0xa9 ] + [ 0x2f 0x76 0x56 0x00 ] + [ 0x30 0x62 0x42 0x00 ] + [ 0x32 0x6d 0x4d 0xb5 ] + [ 0x33 0x2c 0x3b 0x00 ] + [ 0x34 0x2e 0x3a 0x00 ] + [ 0x35 0x2d 0x5f 0x00 ] + [ 0x39 0x20 0x20 0xa0 ] + [ 0x56 0x3c 0x3e 0xbd ] +] def + +/keymap.pl [ + [ 0x02 0x31 0x21 0xb9 ] + [ 0x03 0x32 0x40 0xb2 ] + [ 0x04 0x33 0x23 0xb3 ] + [ 0x05 0x34 0x24 0xbc ] + [ 0x06 0x35 0x25 0xbd ] + [ 0x07 0x36 0x5e 0xbe ] + [ 0x08 0x37 0x26 0x7b ] + [ 0x09 0x38 0x2a 0x5b ] + [ 0x0a 0x39 0x28 0x5d ] + [ 0x0b 0x30 0x29 0x7d ] + [ 0x0c 0x2d 0x5f 0x5c ] + [ 0x0d 0x3d 0x2b 0x00 ] + [ 0x10 0x71 0x51 0x40 ] + [ 0x11 0x77 0x57 0x00 ] + [ 0x12 0x65 0x45 0x00 ] + [ 0x13 0x72 0x52 0xb6 ] + [ 0x14 0x74 0x54 0x00 ] + [ 0x15 0x79 0x59 0x00 ] + [ 0x16 0x75 0x55 0x00 ] + [ 0x17 0x69 0x49 0x00 ] + [ 0x18 0x6f 0x4f 0xf3 ] + [ 0x19 0x70 0x50 0xfe ] + [ 0x1a 0x5b 0x7b 0x00 ] + [ 0x1b 0x5d 0x7d 0x00 ] + [ 0x1e 0x61 0x41 0x00 ] + [ 0x1f 0x73 0x53 0x00 ] + [ 0x20 0x64 0x44 0xf0 ] + [ 0x21 0x66 0x46 0x00 ] + [ 0x22 0x67 0x47 0x00 ] + [ 0x23 0x68 0x48 0x00 ] + [ 0x25 0x6b 0x4b 0x00 ] + [ 0x26 0x6c 0x4c 0x00 ] + [ 0x27 0x3b 0x3a 0x00 ] + [ 0x28 0x27 0x22 0x00 ] + [ 0x29 0x60 0x7e 0xac ] + [ 0x2b 0x5c 0x7c 0x00 ] + [ 0x2c 0x7a 0x5a 0x00 ] + [ 0x2d 0x78 0x58 0x00 ] + [ 0x2e 0x63 0x43 0x00 ] + [ 0x2f 0x76 0x56 0x00 ] + [ 0x30 0x62 0x42 0x00 ] + [ 0x31 0x6e 0x4e 0x00 ] + [ 0x32 0x6d 0x4d 0xb5 ] + [ 0x33 0x2c 0x3c 0x00 ] + [ 0x34 0x2e 0x3e 0xb7 ] + [ 0x35 0x2f 0x3f 0x00 ] + [ 0x56 0x3c 0x3e 0x7c ] +] def + +/keymap.br [ + [ 0x02 0x31 0x21 0xb9 ] + [ 0x03 0x32 0x40 0xb2 ] + [ 0x04 0x33 0x23 0xb3 ] + [ 0x05 0x34 0x24 0xa3 ] + [ 0x06 0x35 0x25 0xa2 ] + [ 0x07 0x36 0x00 0xac ] + [ 0x08 0x37 0x26 0x7b ] + [ 0x09 0x38 0x2a 0x5b ] + [ 0x0a 0x39 0x28 0x5d ] + [ 0x0b 0x30 0x29 0x7d ] + [ 0x0c 0x2d 0x5f 0x5c ] + [ 0x0d 0x3d 0x2b 0xa7 ] + [ 0x10 0x71 0x51 0x2f ] + [ 0x11 0x77 0x57 0x3f ] + [ 0x12 0x65 0x45 0x00 ] + [ 0x13 0x72 0x52 0xae ] + [ 0x14 0x74 0x54 0x00 ] + [ 0x15 0x79 0x59 0x00 ] + [ 0x16 0x75 0x55 0x00 ] + [ 0x17 0x69 0x49 0x00 ] + [ 0x18 0x6f 0x4f 0xf8 ] + [ 0x19 0x70 0x50 0xfe ] + [ 0x1a 0x00 0x00 0x27 ] + [ 0x1b 0x5b 0x7b 0xaa ] + [ 0x1e 0x61 0x41 0xe6 ] + [ 0x1f 0x73 0x53 0xdf ] + [ 0x20 0x64 0x44 0xf0 ] + [ 0x21 0x66 0x46 0x00 ] + [ 0x22 0x67 0x47 0x00 ] + [ 0x23 0x68 0x48 0x00 ] + [ 0x25 0x6b 0x4b 0x00 ] + [ 0x26 0x6c 0x4c 0x00 ] + [ 0x27 0xe7 0xc7 0x00 ] + [ 0x28 0x00 0x00 0x7e ] + [ 0x29 0x27 0x22 0xac ] + [ 0x2b 0x5d 0x7d 0xba ] + [ 0x2c 0x7a 0x5a 0xab ] + [ 0x2d 0x78 0x58 0xbb ] + [ 0x2e 0x63 0x43 0xa9 ] + [ 0x2f 0x76 0x56 0x00 ] + [ 0x30 0x62 0x42 0x00 ] + [ 0x32 0x6d 0x4d 0xb5 ] + [ 0x33 0x2c 0x3c 0x00 ] + [ 0x34 0x2e 0x3e 0xb7 ] + [ 0x35 0x3b 0x3a 0x00 ] + [ 0x56 0x5c 0x7c 0xba ] + [ 0x59 0x2f 0x3f 0xb0 ] +] def + +/keymap.hr [ + [ 0x02 0x31 0x21 0x7e ] + [ 0x03 0x32 0x22 0x00 ] + [ 0x04 0x33 0x23 0x5e ] + [ 0x05 0x34 0x24 0x00 ] + [ 0x06 0x35 0x25 0xb0 ] + [ 0x07 0x36 0x26 0x00 ] + [ 0x08 0x37 0x2f 0x60 ] + [ 0x09 0x38 0x28 0x2e ] + [ 0x0a 0x39 0x29 0x00 ] + [ 0x0b 0x30 0x3d 0x00 ] + [ 0x0c 0x27 0x3f 0x00 ] + [ 0x0d 0x2b 0x2a 0x00 ] + [ 0x10 0x71 0x51 0x5c ] + [ 0x11 0x77 0x57 0x7c ] + [ 0x12 0x65 0x45 0x00 ] + [ 0x13 0x72 0x52 0xb6 ] + [ 0x14 0x74 0x54 0x00 ] + [ 0x15 0x7a 0x5a 0x00 ] + [ 0x16 0x75 0x55 0x00 ] + [ 0x17 0x69 0x49 0x00 ] + [ 0x18 0x6f 0x4f 0xf8 ] + [ 0x19 0x70 0x50 0xfe ] + [ 0x1a 0x00 0x00 0xf7 ] + [ 0x1b 0x00 0x00 0xd7 ] + [ 0x1e 0x61 0x41 0xe6 ] + [ 0x1f 0x73 0x53 0x00 ] + [ 0x20 0x64 0x44 0x00 ] + [ 0x21 0x66 0x46 0x5b ] + [ 0x22 0x67 0x47 0x5d ] + [ 0x23 0x68 0x48 0x00 ] + [ 0x25 0x6b 0x4b 0x00 ] + [ 0x26 0x6c 0x4c 0x00 ] + [ 0x28 0x00 0x00 0xdf ] + [ 0x29 0x60 0x7e 0xac ] + [ 0x2b 0x00 0x00 0xa4 ] + [ 0x2c 0x79 0x59 0x00 ] + [ 0x2d 0x78 0x58 0x00 ] + [ 0x2e 0x63 0x43 0xa2 ] + [ 0x2f 0x76 0x56 0x40 ] + [ 0x30 0x62 0x42 0x7b ] + [ 0x31 0x6e 0x4e 0x7d ] + [ 0x32 0x6d 0x4d 0x5e ] + [ 0x33 0x2c 0x3b 0x3c ] + [ 0x34 0x2e 0x3a 0x3e ] + [ 0x35 0x2d 0x5f 0x00 ] + [ 0x56 0x3c 0x3e 0x7c ] +] def + +/keymap.pt [ + [ 0x02 0x31 0x21 0xb9 ] + [ 0x03 0x32 0x22 0x40 ] + [ 0x04 0x33 0x23 0xa3 ] + [ 0x05 0x34 0x24 0xa7 ] + [ 0x06 0x35 0x25 0xbd ] + [ 0x07 0x36 0x26 0xac ] + [ 0x08 0x37 0x2f 0x7b ] + [ 0x09 0x38 0x28 0x5b ] + [ 0x0a 0x39 0x29 0x5d ] + [ 0x0b 0x30 0x3d 0x7d ] + [ 0x0c 0x27 0x3f 0x5c ] + [ 0x0d 0xab 0xbb 0x00 ] + [ 0x10 0x71 0x51 0x40 ] + [ 0x11 0x77 0x57 0x00 ] + [ 0x12 0x65 0x45 0x00 ] + [ 0x13 0x72 0x52 0xb6 ] + [ 0x14 0x74 0x54 0x00 ] + [ 0x15 0x79 0x59 0x00 ] + [ 0x16 0x75 0x55 0x00 ] + [ 0x17 0x69 0x49 0x00 ] + [ 0x18 0x6f 0x4f 0xf8 ] + [ 0x19 0x70 0x50 0xfe ] + [ 0x1a 0x2b 0x2a 0x00 ] + [ 0x1e 0x61 0x41 0xe6 ] + [ 0x1f 0x73 0x53 0xdf ] + [ 0x20 0x64 0x44 0xf0 ] + [ 0x21 0x66 0x46 0x00 ] + [ 0x22 0x67 0x47 0x00 ] + [ 0x23 0x68 0x48 0x00 ] + [ 0x25 0x6b 0x4b 0x00 ] + [ 0x26 0x6c 0x4c 0x00 ] + [ 0x27 0xe7 0xc7 0x00 ] + [ 0x28 0xba 0xaa 0x00 ] + [ 0x29 0x5c 0x7c 0xac ] + [ 0x2c 0x7a 0x5a 0xab ] + [ 0x2d 0x78 0x58 0xbb ] + [ 0x2e 0x63 0x43 0xa2 ] + [ 0x2f 0x76 0x56 0x00 ] + [ 0x30 0x62 0x42 0x00 ] + [ 0x32 0x6d 0x4d 0xb5 ] + [ 0x33 0x2c 0x3b 0x00 ] + [ 0x34 0x2e 0x3a 0xb7 ] + [ 0x35 0x2d 0x5f 0x00 ] + [ 0x56 0x3c 0x3e 0x7c ] +] def + +/keymap.ro [ + [ 0x02 0x31 0x21 0x00 ] + [ 0x03 0x32 0x40 0x00 ] + [ 0x04 0x33 0x23 0x00 ] + [ 0x05 0x34 0x24 0x00 ] + [ 0x06 0x35 0x25 0x2a ] + [ 0x07 0x36 0x5e 0x00 ] + [ 0x08 0x37 0x26 0x00 ] + [ 0x09 0x38 0x2a 0x2e ] + [ 0x0a 0x39 0x28 0x00 ] + [ 0x0b 0x30 0x29 0x00 ] + [ 0x0c 0x2d 0x5f 0x00 ] + [ 0x0d 0x3d 0x2b 0x00 ] + [ 0x10 0x71 0x51 0xe2 ] + [ 0x11 0x77 0x57 0xdf ] + [ 0x12 0x65 0x45 0x00 ] + [ 0x14 0x74 0x54 0x00 ] + [ 0x17 0x69 0x49 0xee ] + [ 0x19 0x70 0x50 0xa7 ] + [ 0x1a 0x5b 0x7b 0x00 ] + [ 0x1b 0x5d 0x7d 0x00 ] + [ 0x1e 0x61 0x41 0x00 ] + [ 0x1f 0x73 0x53 0x00 ] + [ 0x20 0x64 0x44 0x00 ] + [ 0x26 0x6c 0x4c 0x00 ] + [ 0x2e 0x63 0x43 0xa9 ] + [ 0x33 0x2c 0x3c 0xab ] + [ 0x34 0x2e 0x3e 0xbb ] + [ 0x56 0x5c 0x7c 0x7c ] +] def + +/keymap.ru [ + [ 0x56 0x3c 0x3e 0x7c ] +] def + +/keymap.sk [ + [ 0x02 0x2b 0x31 0x21 ] + [ 0x03 0x00 0x32 0x40 ] + [ 0x04 0x00 0x33 0x23 ] + [ 0x05 0x00 0x34 0x24 ] + [ 0x06 0x00 0x35 0x25 ] + [ 0x07 0x00 0x36 0x5e ] + [ 0x08 0xfd 0x37 0x26 ] + [ 0x09 0xe1 0x38 0x2a ] + [ 0x0a 0xed 0x39 0x7b ] + [ 0x0b 0xe9 0x30 0x7d ] + [ 0x0c 0x3d 0x25 0x5c ] + [ 0x0d 0x00 0x00 0x5f ] + [ 0x10 0x71 0x51 0x5c ] + [ 0x11 0x77 0x57 0x7c ] + [ 0x12 0x65 0x45 0x00 ] + [ 0x13 0x72 0x52 0xb6 ] + [ 0x14 0x74 0x54 0x00 ] + [ 0x15 0x7a 0x5a 0x00 ] + [ 0x16 0x75 0x55 0x00 ] + [ 0x17 0x69 0x49 0x00 ] + [ 0x18 0x6f 0x4f 0xf8 ] + [ 0x19 0x70 0x50 0xfe ] + [ 0x1a 0xfa 0x2f 0x5b ] + [ 0x1b 0xe4 0x28 0x5d ] + [ 0x1e 0x61 0x41 0x7e ] + [ 0x1f 0x73 0x53 0x00 ] + [ 0x20 0x64 0x44 0x00 ] + [ 0x21 0x66 0x46 0x5b ] + [ 0x22 0x67 0x47 0x5d ] + [ 0x23 0x68 0x48 0x60 ] + [ 0x24 0x6a 0x4a 0x27 ] + [ 0x25 0x6b 0x4b 0x00 ] + [ 0x26 0x6c 0x4c 0x00 ] + [ 0x27 0xf4 0x22 0x24 ] + [ 0x28 0xa7 0x21 0x27 ] + [ 0x29 0x3b 0x2a 0x60 ] + [ 0x2b 0x00 0x29 0x5c ] + [ 0x2c 0x79 0x59 0xb0 ] + [ 0x2d 0x78 0x58 0x23 ] + [ 0x2e 0x63 0x43 0x26 ] + [ 0x2f 0x76 0x56 0x40 ] + [ 0x30 0x62 0x42 0x7b ] + [ 0x31 0x6e 0x4e 0x7d ] + [ 0x32 0x6d 0x4d 0x5e ] + [ 0x33 0x2c 0x3f 0x3c ] + [ 0x34 0x2e 0x3a 0x3e ] + [ 0x35 0x2d 0x5f 0x2a ] + [ 0x39 0x20 0x20 0xa0 ] + [ 0x56 0x5c 0x7c 0x2f ] +] def + +/keymap.si [ + [ 0x02 0x31 0x21 0x00 ] + [ 0x03 0x32 0x22 0x00 ] + [ 0x04 0x33 0x23 0x00 ] + [ 0x05 0x34 0x24 0x00 ] + [ 0x06 0x35 0x25 0x2a ] + [ 0x07 0x36 0x26 0x00 ] + [ 0x08 0x37 0x2f 0x00 ] + [ 0x09 0x38 0x28 0x2e ] + [ 0x0a 0x39 0x29 0x00 ] + [ 0x0b 0x30 0x3d 0x00 ] + [ 0x0c 0x27 0x3f 0x00 ] + [ 0x0d 0x2b 0x2a 0x00 ] + [ 0x10 0x71 0x51 0x5c ] + [ 0x11 0x77 0x57 0x7c ] + [ 0x12 0x65 0x45 0x00 ] + [ 0x13 0x72 0x52 0xb6 ] + [ 0x14 0x74 0x54 0x00 ] + [ 0x15 0x7a 0x5a 0x00 ] + [ 0x16 0x75 0x55 0x00 ] + [ 0x17 0x69 0x49 0x00 ] + [ 0x18 0x6f 0x4f 0xf8 ] + [ 0x19 0x70 0x50 0xfe ] + [ 0x1a 0x00 0x00 0xf7 ] + [ 0x1b 0x00 0x00 0xd7 ] + [ 0x1e 0x61 0x41 0xe6 ] + [ 0x1f 0x73 0x53 0x00 ] + [ 0x20 0x64 0x44 0x00 ] + [ 0x21 0x66 0x46 0x5b ] + [ 0x22 0x67 0x47 0x5d ] + [ 0x23 0x68 0x48 0x00 ] + [ 0x25 0x6b 0x4b 0x00 ] + [ 0x26 0x6c 0x4c 0x00 ] + [ 0x28 0x00 0x00 0xdf ] + [ 0x29 0xb8 0xa8 0xa8 ] + [ 0x2b 0x00 0x00 0xa4 ] + [ 0x2c 0x79 0x59 0x00 ] + [ 0x2d 0x78 0x58 0x00 ] + [ 0x2e 0x63 0x43 0xa2 ] + [ 0x2f 0x76 0x56 0x40 ] + [ 0x30 0x62 0x42 0x7b ] + [ 0x31 0x6e 0x4e 0x7d ] + [ 0x32 0x6d 0x4d 0x5e ] + [ 0x33 0x2c 0x3b 0x3c ] + [ 0x34 0x2e 0x3a 0x3e ] + [ 0x35 0x2d 0x5f 0x00 ] + [ 0x56 0x3c 0x3e 0x7c ] +] def + +/keymap.al [ + [ 0x02 0x31 0x21 0x7e ] + [ 0x03 0x32 0x22 0x00 ] + [ 0x04 0x33 0x23 0x00 ] + [ 0x05 0x34 0x24 0x00 ] + [ 0x06 0x35 0x25 0x2a ] + [ 0x07 0x36 0x5e 0x00 ] + [ 0x08 0x37 0x26 0x60 ] + [ 0x09 0x38 0x2a 0x2e ] + [ 0x0a 0x39 0x28 0x00 ] + [ 0x0b 0x30 0x29 0x00 ] + [ 0x0c 0x2d 0x5f 0x00 ] + [ 0x0d 0x3d 0x2b 0x00 ] + [ 0x10 0x71 0x51 0x5c ] + [ 0x11 0x77 0x57 0x7c ] + [ 0x12 0x65 0x45 0x00 ] + [ 0x13 0x72 0x52 0xb6 ] + [ 0x14 0x74 0x54 0x00 ] + [ 0x15 0x7a 0x5a 0x00 ] + [ 0x16 0x75 0x55 0x00 ] + [ 0x17 0x69 0x49 0x00 ] + [ 0x18 0x6f 0x4f 0xf8 ] + [ 0x19 0x70 0x50 0xfe ] + [ 0x1a 0xe7 0xc7 0xf7 ] + [ 0x1b 0x40 0x27 0xd7 ] + [ 0x1e 0x61 0x41 0xe6 ] + [ 0x1f 0x73 0x53 0x00 ] + [ 0x20 0x64 0x44 0x00 ] + [ 0x21 0x66 0x46 0x5b ] + [ 0x22 0x67 0x47 0x5d ] + [ 0x23 0x68 0x48 0x00 ] + [ 0x25 0x6b 0x4b 0x00 ] + [ 0x26 0x6c 0x4c 0x00 ] + [ 0x27 0xeb 0xcb 0x24 ] + [ 0x28 0x5b 0x7b 0xdf ] + [ 0x29 0x5c 0x7c 0xac ] + [ 0x2b 0x5d 0x7d 0xa4 ] + [ 0x2c 0x79 0x59 0xab ] + [ 0x2d 0x78 0x58 0xbb ] + [ 0x2e 0x63 0x43 0xa2 ] + [ 0x2f 0x76 0x56 0x40 ] + [ 0x30 0x62 0x42 0x7b ] + [ 0x31 0x6e 0x4e 0x7d ] + [ 0x32 0x6d 0x4d 0xa7 ] + [ 0x33 0x2c 0x3b 0x3c ] + [ 0x34 0x2e 0x3a 0x3e ] + [ 0x35 0x2f 0x3f 0x00 ] + [ 0x56 0x3c 0x3e 0x7c ] +] def + +/keymap.rs [ + [ 0x02 0x31 0x21 0x00 ] + [ 0x03 0x32 0x22 0x00 ] + [ 0x04 0x33 0x23 0x00 ] + [ 0x05 0x34 0x24 0x00 ] + [ 0x06 0x35 0x25 0x00 ] + [ 0x07 0x36 0x26 0x00 ] + [ 0x08 0x37 0x2f 0x00 ] + [ 0x09 0x38 0x28 0x38 ] + [ 0x0a 0x39 0x29 0x00 ] + [ 0x0b 0x30 0x3d 0x30 ] + [ 0x0c 0x27 0x3f 0x5f ] + [ 0x0d 0x2b 0x2a 0x00 ] + [ 0x10 0x00 0x00 0x5c ] + [ 0x11 0x00 0x00 0x7c ] + [ 0x13 0x00 0x00 0xb6 ] + [ 0x18 0x00 0x00 0xa7 ] + [ 0x1a 0x00 0x00 0xf7 ] + [ 0x1b 0x00 0x00 0xd7 ] + [ 0x21 0x00 0x00 0x5b ] + [ 0x22 0x00 0x00 0x5d ] + [ 0x29 0x60 0x7e 0xb0 ] + [ 0x2b 0x00 0x00 0xa4 ] + [ 0x2e 0x00 0x00 0xa2 ] + [ 0x2f 0x00 0x00 0x40 ] + [ 0x30 0x00 0x00 0x7b ] + [ 0x31 0x00 0x00 0x7d ] + [ 0x32 0x00 0x00 0x5e ] + [ 0x33 0x2c 0x3b 0x3c ] + [ 0x34 0x2e 0x3a 0x3e ] + [ 0x35 0x2d 0x5f 0x00 ] + [ 0x56 0x3c 0x3e 0x7c ] +] def + +/keymap.se [ + [ 0x02 0x31 0x21 0xa1 ] + [ 0x03 0x32 0x22 0x40 ] + [ 0x04 0x33 0x23 0xa3 ] + [ 0x05 0x34 0xa4 0x24 ] + [ 0x06 0x35 0x25 0x00 ] + [ 0x07 0x36 0x26 0xa5 ] + [ 0x08 0x37 0x2f 0x7b ] + [ 0x09 0x38 0x28 0x5b ] + [ 0x0a 0x39 0x29 0x5d ] + [ 0x0b 0x30 0x3d 0x7d ] + [ 0x0c 0x2b 0x3f 0x5c ] + [ 0x0d 0x00 0x00 0xb1 ] + [ 0x10 0x71 0x51 0x40 ] + [ 0x11 0x77 0x57 0x00 ] + [ 0x12 0x65 0x45 0x00 ] + [ 0x13 0x72 0x52 0xae ] + [ 0x14 0x74 0x54 0xfe ] + [ 0x15 0x79 0x59 0x00 ] + [ 0x16 0x75 0x55 0x00 ] + [ 0x17 0x69 0x49 0x00 ] + [ 0x18 0x6f 0x4f 0x00 ] + [ 0x19 0x70 0x50 0xfe ] + [ 0x1a 0xe5 0xc5 0x00 ] + [ 0x1e 0x61 0x41 0xaa ] + [ 0x1f 0x73 0x53 0xdf ] + [ 0x20 0x64 0x44 0xf0 ] + [ 0x21 0x66 0x46 0x00 ] + [ 0x22 0x67 0x47 0x00 ] + [ 0x23 0x68 0x48 0x00 ] + [ 0x25 0x6b 0x4b 0x00 ] + [ 0x26 0x6c 0x4c 0x00 ] + [ 0x27 0xf6 0xd6 0xf8 ] + [ 0x28 0xe4 0xc4 0xe6 ] + [ 0x29 0xa7 0xbd 0xb6 ] + [ 0x2b 0x27 0x2a 0x27 ] + [ 0x2c 0x7a 0x5a 0xab ] + [ 0x2d 0x78 0x58 0xbb ] + [ 0x2e 0x63 0x43 0xa9 ] + [ 0x2f 0x76 0x56 0x00 ] + [ 0x30 0x62 0x42 0x00 ] + [ 0x32 0x6d 0x4d 0xb5 ] + [ 0x33 0x2c 0x3b 0x00 ] + [ 0x34 0x2e 0x3a 0xb7 ] + [ 0x35 0x2d 0x5f 0x00 ] + [ 0x56 0x3c 0x3e 0x7c ] +] def + +/keymap.ua [ + [ 0x56 0x3c 0x3e 0x7c ] +] def + +/keymaps [ + [ "by" keymap.by "Belarusian" [ "_BY" ] .undef ] + [ "bg" keymap.bg "Bulgarian" [ "_BG" ] .undef ] + [ "ba" keymap.ba "Bosnia" [ "bs_" ] .undef ] + [ "cz" keymap.cz "Czech" [ "_CZ" ] .undef ] + [ "dk" keymap.dk "Danish" [ "_DK" ] .undef ] + [ "de" keymap.de "German" [ "de_" ] .undef ] + [ "us" keymap.us "USA" [ "en_US" "_AU" ] .undef ] + [ "gb" keymap.gb "UK" [ "_GB" ] .undef ] + [ "es" keymap.es "Spanish" [ "_ES" ] .undef ] + [ "latam" keymap.latam "Latin Amer." [ "_UY" "_VE" ] .undef ] + [ "ee" keymap.ee "Estonian" [ "_EE" ] .undef ] + [ "fi" keymap.fi "Finnish" [ "_FI" ] .undef ] + [ "fr_oss" keymap.fr_oss "French" [ "fr_FR" ] .undef ] + [ "ca" keymap.ca "Canada" [ "fr_CA" ] .undef ] + [ "be" keymap.be "Belgian" [ "fr_BE" ] .undef ] + [ "hu" keymap.hu "Hungarian" [ "_HU" ] .undef ] + [ "is" keymap.is "Icelandic" [ "_IS" ] .undef ] + [ "hr" keymap.hr "Croatian" [ "hr_" ] .undef ] + [ "it" keymap.it "Italian" [ "_IT" ] .undef ] + [ "kz" keymap.kz "Kazakh" [ "kk_" ] .undef ] + [ "lv" keymap.lv "Latvian" [ "_LV" ] .undef ] + [ "lt" keymap.lt "Lithuanian" [ "_LT" ] .undef ] + [ "nl" keymap.nl "Dutch" [ "nl_" ] .undef ] + [ "no" keymap.no "Norwegian" [ "_NO" ] .undef ] + [ "pl" keymap.pl "Polish" [ "_PL" ] .undef ] + [ "br" keymap.br "Brazil" [ "_BR" ] "abnt2" ] + [ "pt" keymap.pt "Portuguese" [ "_PT" ] .undef ] + [ "ro" keymap.ro "Romanian" [ "_RO" ] .undef ] + [ "ru" keymap.ru "Russian" [ "_RU" ] .undef ] + [ "sk" keymap.sk "Slovak" [ "_SK" ] .undef ] + [ "si" keymap.si "Slovenian" [ "_SI" ] .undef ] + [ "al" keymap.al "Albanian" [ "_AL" ] .undef ] + [ "rs" keymap.rs "Serbian" [ "sr_" ] .undef ] + [ "se" keymap.se "Swedish" [ "sv_" ] .undef ] + [ "ua" keymap.ua "Ukrainian" [ "_UA" ] .undef ] +] def + + +% set to "us" for safety +/config.keymap keymaps 0 get def diff --git a/langlist b/langlist new file mode 100644 index 0000000..bb66a9c --- /dev/null +++ b/langlist @@ -0,0 +1,38 @@ +be_BY +bg_BG +bs_BA +cs_CZ +da_DK +de_DE +en_AU +en_GB +en_US +es_ES +es_UY +es_VE +et_EE +fr_BE +fr_CA +fr_FR +hr_HR +is_IS +it_IT +kk_KZ +lt_LT +lv_LV +hu_HU +nl_BE +nl_NL +nn_NO +pl_PL +pt_BR +pt_PT +ro_RO +ru_RU +sk_SK +sl_SI +sq_AL +sr_RS +fi_FI +sv_SE +uk_UA diff --git a/langnames.inc b/langnames.inc new file mode 100644 index 0000000..a41d6ea --- /dev/null +++ b/langnames.inc @@ -0,0 +1,40 @@ +/lang.defaultnames [ + [ "be_BY" "be_BY" "Беларуская (Беларусь)" ] + [ "bg_BG" "bg_BG" "Български (България)" ] + [ "bs_BA" "bs_BA" "Bosanski (Bosna i Hercegovina)" ] + [ "cs_CZ" "cs_CZ" "Čeština (Česká republika)" ] + [ "da_DK" "da_DK" "Dansk (Danmark)" ] + [ "de_DE" "de_DE" "Deutsch (Deutschland)" ] + [ "en_AU" "en_AU" "English (Australia)" ] + [ "en_GB" "en_GB" "English (United Kingdom)" ] + [ "en_US" "en_US" "English (United States)" ] + [ "es_ES" "es_ES" "Español (España)" ] + [ "es_UY" "es_UY" "Español (Uruguay)" ] + [ "es_VE" "es_VE" "Español (Venezuela)" ] + [ "et_EE" "et_EE" "Eesti (Eesti)" ] + [ "fi_FI" "fi_FI" "Suomi (Suomi)" ] + [ "fr_BE" "fr_BE" "Français (Belgique)" ] + [ "fr_CA" "fr_CA" "Français (Canada)" ] + [ "fr_FR" "fr_FR" "Français (France)" ] + [ "hr_HR" "hr_HR" "Hrvatski (Hrvatska)" ] + [ "hu_HU" "hu_HU" "Magyar (Magyarország)" ] + [ "is_IS" "is_IS" "Íslenska (Ísland)" ] + [ "it_IT" "it_IT" "Italiano (Italia)" ] + [ "kk_KZ" "kk_KZ" "Қазақ тілі (Қазақстан)" ] + [ "lt_LT" "lt_LT" "Lietuvių (Lietuva)" ] + [ "lv_LV" "lv_LV" "Latviešu (Latvija)" ] + [ "nl_BE" "nl_BE" "Nederlands (België)" ] + [ "nl_NL" "nl_NL" "Nederlands (Nederland)" ] + [ "nn_NO" "nn_NO" "Nynorsk (Noreg)" ] + [ "pl_PL" "pl_PL" "Polski (Polska)" ] + [ "pt_BR" "pt_BR" "Português (Brasil)" ] + [ "pt_PT" "pt_PT" "Português (Portugal)" ] + [ "ro_RO" "ro_RO" "Română (România)" ] + [ "ru_RU" "ru_RU" "Русский (Россия)" ] + [ "sk_SK" "sk_SK" "Slovenčina (Slovenská republika)" ] + [ "sl_SI" "sl_SI" "Slovenščina (Slovenija)" ] + [ "sq_AL" "sq_AL" "Shqip (Shqipëria)" ] + [ "sr_RS" "sr_RS" "Српски (Србија)" ] + [ "sv_SE" "sv_SE" "Svenska (Sverige)" ] + [ "uk_UA" "uk_UA" "Українська (Україна)" ] +] def diff --git a/locale.inc b/locale.inc new file mode 100644 index 0000000..607bc10 --- /dev/null +++ b/locale.inc @@ -0,0 +1,166 @@ +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% Handle translations. +% +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Set language. +% +% ( locale ) ==> ( true|false ) +% +/setlang { + config.lang over eq { pop false return } if + + /config.lang exch def + + /help.messages .undef def + + texts.msgstr { + texts.msgstr dup { free } forall free + /texts.msgstr .undef def + } if + + findtexts + + true +} def + + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Set keyboard map. +% +% ( locale ) ==> ( ) +% +/setkeymap { + config.keymap.locale over eq { pop false return } if + + % Get the full locale if possible. + lang.getlocale + + /config.keymap.locale exch def + + /setkeymap.found false def + + % Look for an exact match first. + keymaps { + dup .km.locales get { + config.keymap.locale exch eq { + dup /config.keymap exch def /setkeymap.found true def exit + } if + } forall + pop + setkeymap.found { exit } if + } forall + + % If that didn't work, try a substring match. + setkeymap.found not { + keymaps { + dup .km.locales get { + config.keymap.locale exch strstr 0 ne { + dup /config.keymap exch def /setkeymap.found true def exit + } if + } forall + pop + setkeymap.found { exit } if + } forall + } if + + % if we couldn't find anything, try without the country + setkeymap.found not { + config.keymap.locale "_" strstr dup 0 ne { + 1 sub + dup string /lang.tmp exch def + lang.tmp cvp config.keymap.locale cvp 2 index memcpy + lang.tmp exch 0 put + keymaps { + dup .km.locales get { + lang.tmp exch strstr 0 ne { + dup /config.keymap exch def /setkeymap.found true def exit + } if + } forall + pop + setkeymap.found { exit } if + } forall + } { + pop + } ifelse + } if + + /keymap.explicit false def +} def + + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Find texts for current language. +% +% ( ) ==> ( ) +% +/findtexts { + texts.file free /texts.file .undef def + 16 string dup config.lang "%s.tr" 2 index sprintf findfile exch free + dup .undef eq { + config.lang length 2 gt { + pop 16 string + dup config.lang 1 get config.lang 0 get "%c%c.tr" 3 index sprintf findfile exch free + } if + } if + dup .undef eq { pop "en.tr" findfile } if + /texts.file over def + dup .undef eq { pop 0 cvp } if + cvs + /ft.len over cvp length def + /ft.str exch def + /ft.pos 0 def + + texts { + ft.pos ft.str length add ft.len lt { + ft.str def + /ft.str ft.str dup length 1 add /ft.pos over ft.pos add def add def + } { + "No Texts!" def + } ifelse + } forall +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Translate menu entry. +% +% ( text ) ==> ( text ) +% +/translate { + translations.init + + texts.msgid .undef eq texts.msgstr .undef eq or { return } if + + 0 1 texts.msgid length 1 sub { + texts.msgid over get 2 index eq { + texts.msgstr over get exch pop exch pop exit + } { pop } ifelse + } for +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Read menu translations. +% +% ( ) ==> ( ) +% +/translations.init { + texts.msgstr { return } if + + texts.msgid .undef eq { + /config.lang.tmp config.lang def + /config.lang "en_US" def + findtexts + /texts.msgid [ texts { exec strdup } forall ] def + /config.lang config.lang.tmp def + } if + findtexts + /texts.msgstr [ texts { exec strdup } forall ] def +} def + diff --git a/main.inc b/main.inc new file mode 100644 index 0000000..12b832b --- /dev/null +++ b/main.inc @@ -0,0 +1,263 @@ +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% Main menu (boot entry + boot options + panel). +% +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Create new main window. +% +% ( ) ==> ( window ) +% +/window.main { + widget.size array + dup .type t_main put + dup .font font.normal put + dup .ed.font font.normal put + dup .color.fg boot.text.normal put + +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Initialize main window. +% +% ( window ) ==> ( ) +% +/main.init { + pop +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Redraw main window. +% (E.g. after selecting a new language.) +% +% ( window ) ==> ( ) +% +/main.redraw { + boot.text.options setcolor + window.current .font get setfont + boot.pos.init + % clear to far right of screen + boot.pos moveto boot.label.len neg 1 neg rmoveto + currentpoint screen.size pop 2 index sub boot.ed.height 2 add image + % redraw boot line + boot.setup + + redrawmenu + /keepbootoptions 1 def + menu.entry true MenuSelect + /keepbootoptions .undef def + + panel.show +} def + + +/boot.setup { + boot.show { + boot.window .ed boot.ed put + } if + + boot.pos.init + boot.pos moveto + + boot.show { + boot.text.options setcolor + txt_bootoptions showright + + currenttransparency + white setcolor + boot.pos moveto 10 boot.ed.height rmoveto + 0xe0 settransparency + boot.ed.width 1 fillrect + settransparency + boot.ed edit.redraw + } if +} def + + +/menu.init { + % None of this may involve showing anything on the screen. + /menu.shift 0 def + /menu.visible.entries menu.texts length menu.max.entries min def + + % get index of default entry + /menu.entry 0 def + 0 1 menu.texts length 1 sub { + dup menu.texts exch get menu.dentry eq { /menu.entry exch def exit } { pop } ifelse + } for + + menu.entry menu.visible.entries sub 0 ge { + /menu.shift menu.entry menu.texts length menu.visible.entries sub min def + } if + + boot.pos.init + + /boot.ed.width screen.size pop boot.pos pop sub 20 sub def + /boot.ed.height fontheight 2 add def + + /boot.ed [ + boot.pos exch 10 add exch 1 sub + % can't save background pixmap yet + .undef + boot.buf + boot.buf.size + .undef + ] def +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Draw main window. +% +% ( window ) ==> ( ) +% +/main.show { + window.push + + menu.init + + menu.visible.entries menu.texts length lt menu.scrollbar and { + /menu.bar.width frame1.size pop frame4.size pop sub def + + -1 settransparentcolor + + frame4.pos moveto black dup frame4.size drawborder + frame4.pos moveto + ms.up ms.size image + frame4.pos moveto frame4.size exch pop 0 exch ms.size exch pop 0 add sub rmoveto + ms.down ms.size image + + /menu.sb.x frame4.pos pop 1 add def + /menu.sb.y frame4.pos exch pop 22 add def + /menu.sb.width frame4.size pop 2 sub def + /menu.sb.height frame4.size exch pop 22 2 mul sub def + + menu.sb.x menu.sb.y 1 sub moveto + menu.sb.x menu.sb.width add menu.sb.y 1 sub lineto + + menu.sb.x menu.sb.y menu.sb.height add moveto + menu.sb.x menu.sb.width add menu.sb.y menu.sb.height add lineto + } if + + boot.text.options setcolor + + window.current .font get setfont + + /boot.window window.current def + + % save background behind boot parameters field + boot.ed dup 0 get exch 1 get + over over moveto boot.ed.width boot.ed.height savescreen + boot.ed 2 rot put + + boot.setup + + redrawmenu + menu.entry true MenuSelect + + panel.init + + "main" help.setcontext + +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Handle keyboard input. +% +% ( key_in ) ==> ( key_out ) +% +/main.input { + dup 0 eq { return } if + + % handle panel entries + panel.input + + dup keyF10 eq { + power_off + pop 0 + } if + + dup keyEsc eq { exit_popup pop 0 } if + + dup keyEnter eq { + /window.action actStart def + pop 0 + } if + + dup keyUp eq { + menu.entry 0 gt { + menu.entry false MenuSelect + menu.entry menu.shift eq { + /menu.shift dec redrawmenu + } if + /menu.entry dec + menu.entry true MenuSelect + } if + pop 0 + } if + + dup keyTab eq { + boot.show not { + /boot.show true def + boot.setup + + ed.color setcolor + boot.window .ed.font get setfont + + boot.ed 3 get + boot.ed over edit.init + "" ne { boot.ed ' ' edit.input } if + } if + + pop 0 + } if + + dup keyDown eq { + menu.entry menu.texts length 1 sub lt { + menu.entry false MenuSelect + menu.visible.entries menu.entry menu.shift sub sub 1 eq { + /menu.shift menu.shift 1 add def redrawmenu + } if + /menu.entry menu.entry 1 add def + menu.entry true MenuSelect + } if + pop 0 + } if + + dup keyPgUp eq { + menu.entry 0 gt { + menu.entry false MenuSelect + /menu.entry 0 def + menu.shift 0 ne { + /menu.shift 0 def redrawmenu + } if + menu.entry true MenuSelect + } if + pop 0 + } if + + dup keyPgDown eq { + menu.entry menu.texts length 1 sub lt { + menu.entry false MenuSelect + /menu.entry menu.texts length 1 sub def + menu.texts length menu.visible.entries sub dup menu.shift ne { + /menu.shift exch def redrawmenu + } { + pop + } ifelse + menu.entry true MenuSelect + } if + pop 0 + } if + + dup 0 ne { + "opt" help.setcontext + } if + +} def + + diff --git a/menuconfig.inc b/menuconfig.inc new file mode 100644 index 0000000..368b03e --- /dev/null +++ b/menuconfig.inc @@ -0,0 +1,221 @@ +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% Read syslinux configuration to get human-readable names for menu items, and +% to decide whether to hide menu items. The configuration used is the same as +% that used by the syslinux simple menu system, so you can use the same +% configuration file for both. +% +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +% ( str2 str1 -- str ) +/menuconfig.append { + over length over length add string /menuconfig.append.tmp exch def + "%s%s" menuconfig.append.tmp sprintf + menuconfig.append.tmp +} def + +% Read a configuration file. If file_name is .undef, look in some standard +% places. +% ( file_name -- file_contents ) +/menuconfig.find { + /menuconfig.find.tmp exch def + menuconfig.find.tmp { + [ + menuconfig.find.tmp + menuconfig.find.tmp "/" menuconfig.append + menuconfig.find.tmp "/syslinux/" menuconfig.append + menuconfig.find.tmp "/isolinux/" menuconfig.append + menuconfig.find.tmp "/boot/isolinux/" menuconfig.append + ] + } { + [ + "syslinux.cfg" + "/syslinux.cfg" + "/syslinux/syslinux.cfg" + "isolinux.cfg" + "/isolinux.cfg" + "/isolinux/isolinux.cfg" + "/boot/isolinux/isolinux.cfg" + ] + } ifelse + { + dup filesize .undef ne { findfile cvs return } if + pop + } forall + .undef +} def + +% Set the human-readable text for the current menu item. +% ( string -- ) +/menuconfig.sethuman { + menuconfig.curlabel .undef eq { pop return } if + + /menuconfig.human exch def + + /menuconfig.idx 0 def + menuconfig.entries { + menuconfig.curlabel eq { + menuconfig.humans menuconfig.idx menuconfig.human put + return + } if + /menuconfig.idx inc + } forall + + % The gfxboot com32 module in syslinux parses the configuration file for + % us, but only gives us the human-readable labels, so we may need to + % translate them back. + /menuconfig.idx 0 def + menuconfig.humans { + menuconfig.human eq { + menuconfig.labels menuconfig.idx menuconfig.curlabel put + return + } if + /menuconfig.idx inc + } forall +} def + +% Remove the current menu item from the menu. +% ( -- ) +/menuconfig.hidelabel { + menuconfig.curlabel .undef eq { return } if + + /menuconfig.idx 0 def + menuconfig.labels { + menuconfig.curlabel eq { + % Copy everything up to here into new arrays. + /menuconfig.newargs menuconfig.args length 1 sub array def + /menuconfig.newentries menuconfig.entries length 1 sub array def + /menuconfig.newhumans menuconfig.humans length 1 sub array def + /menuconfig.newindices menuconfig.indices length 1 sub array def + /menuconfig.newlabels menuconfig.labels length 1 sub array def + menuconfig.idx 0 ne { + 0 1 menuconfig.idx 1 sub { + menuconfig.args over get + menuconfig.newargs 2 index rot put + menuconfig.entries over get + menuconfig.newentries 2 index rot put + menuconfig.humans over get + menuconfig.newhumans 2 index rot put + menuconfig.labels over get + menuconfig.newlabels 2 index rot put + menuconfig.indices over get + menuconfig.newindices 3 1 roll put + } for + } if + + menuconfig.idx menuconfig.labels length 1 sub lt { + % Slide everything else down one place. + menuconfig.idx 1 menuconfig.labels length 2 sub { + menuconfig.args over 1 add get + menuconfig.newargs 2 index rot put + menuconfig.entries over 1 add get + menuconfig.newentries 2 index rot put + menuconfig.humans over 1 add get + menuconfig.newhumans 2 index rot put + menuconfig.labels over 1 add get + menuconfig.newlabels 2 index rot put + menuconfig.indices over 1 add get + menuconfig.newindices 3 1 roll put + } for + } if + + /menuconfig.args menuconfig.newargs def + /menuconfig.entries menuconfig.newentries def + /menuconfig.humans menuconfig.newhumans def + /menuconfig.indices menuconfig.newindices def + /menuconfig.labels menuconfig.newlabels def + + return + } if + /menuconfig.idx inc + } forall +} def + +% ( file_name -- ) +/menuconfig.parse { + % load configuration file; return if not found + menuconfig.find dup .undef eq { pop return } if + + dup { + % skip over any NULs we've left behind; exit if there's really no more + % memory left to go + { + dup cvp length 0 eq { exit } if + dup 0 get 0 ne { exit } if + 1 add + } loop + dup cvp length 0 eq { exit } if + + % break lines at \r or \n + 0 1 2 index length 1 sub { + over over get + dup '\x0d' eq exch '\n' eq or { over exch 0 put exit } { pop } ifelse + } for + + skipspace getword tolower + dup "include" eq { + over skipspace getword dup menuconfig.parse + } if + dup "label" eq { + over skipspace strdup /menuconfig.curlabel exch def + } if + dup "menu" eq { + over skipspace getword tolower + dup "label" eq { over skipspace strdup menuconfig.sethuman } if + dup "hide" eq { menuconfig.hidelabel } if + % items that switch between syslinux menus are unlikely to be useful + % in gfxboot + dup "goto" eq { menuconfig.hidelabel } if + dup "exit" eq { menuconfig.hidelabel } if + free rot pop exch + } if + dup "config" eq { + % used for help menu item, not useful in gfxboot + menuconfig.hidelabel + } if + free + + % skip to end of line + dup length add + } loop pop + free +} def + +% ( menu_entries_array menu_args_array -- menu_indices_array menu_humans_array menu_entries_array menu_args_array ) +% The returned menu_args_array (kernel parameters), menu_entries_array +% (identifiers), menu_humans_array (human-readable names), and +% menu_indices_array (original indices) will have any hidden entries +% removed. +/menuconfig.init { + dup length array /menuconfig.args exch def + dup length array /menuconfig.entries exch def + over length array /menuconfig.labels exch def + over length array /menuconfig.humans exch def + over length array /menuconfig.indices exch def + + % copy input arrays; initialise menuconfig.humans + /menuconfig.idx 0 def + { + menuconfig.args menuconfig.idx rot put + /menuconfig.idx inc + } forall + /menuconfig.idx 0 def + { + dup menuconfig.entries menuconfig.idx rot put + dup menuconfig.labels menuconfig.idx rot put + menuconfig.humans menuconfig.idx rot put + menuconfig.indices menuconfig.idx dup put + /menuconfig.idx inc + } forall + + % we only understand syslinux configuration + syslinux not { + menuconfig.humans menuconfig.entries menuconfig.args return + } if + + /menuconfig.curlabel .undef def + + .undef menuconfig.parse + + menuconfig.labels menuconfig.indices menuconfig.humans menuconfig.entries menuconfig.args +} def diff --git a/panel.inc b/panel.inc new file mode 100644 index 0000000..0c1612c --- /dev/null +++ b/panel.inc @@ -0,0 +1,154 @@ +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% Panel handling. +% +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Some global vars. +% +/panel.size { clip.size pop 24 } def +/panel.y { clip.size exch pop panel.size exch pop sub 10 sub } def +/panel.text.y { panel.y 5 add } def +/panel.font font.normal def +/panel.normal lightblue def +/panel.high white def +/panel.bg lightgray def +/panel.border lightdotcolor def + +/.panel.full 1 def +/.panel.short 2 def +/.panel.both .panel.full .panel.short or def + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Init panel. +% +% ( ) ==> ( ) +% +/panel.init { + + /panel.back 0 panel.y moveto panel.size savescreen def + + % define panel layout + /panel.template [ + + % [ key x label show_func width_func update_func init_func ] + + help.getmessages "" ne { + [ .panel.both [ keyF1 0 "F1" /panel.help /panel.help.width /panel.help.update .undef ] ] + } if + + syslinux { + + [ .panel.both [ keyF2 0 "F2" /panel.lang /panel.lang.width /panel.lang.update /lang.init ] ] + %[ .panel.both [ keyF3 0 "F3" /panel.keymap /panel.keymap.width /panel.keymap.update /keymap.init ] ] + [ .panel.both [ keyF3 0 "F3" /panel.video_modes /panel.video_modes.width /panel.video_modes.update /video_modes.init ] ] + audio.use { + [ .panel.both [ keyF4 0 "F4" /panel.audio /panel.audio.width /panel.audio.update /audio.init ] ] + [ .panel.both [ keyF5 0 "F5" /panel.options /panel.fulloptions.width /panel.fulloptions.update /fulloptions.init ] ] + } { + [ .panel.both [ keyF4 0 "F4" /panel.options /panel.fulloptions.width /panel.fulloptions.update /fulloptions.init ] ] + } ifelse + [ .panel.both [ .undef 0 "Tab" /panel.help /panel.help.width /panel.tab.update .undef ] ] + + + } { + + [ .panel.both [ keyF2 0 "F2" /panel.lang /panel.lang.width /panel.lang.update /lang.init ] ] + "profiles" findfile dup { + /profile.data exch def + [ .panel.both [ keyF3 0 "F3" /panel.profile /panel.profile.width /panel.profile.update /profile.init ] ] + } { pop } ifelse + + } ifelse + + ] def + + % initialize all + panel.template { 1 get 6 get dup .undef ne { exec } { pop } ifelse } forall + + /panel.full [ + panel.template { + dup 0 get .panel.full and 0 ne { 1 get } { pop } ifelse + } forall + ] def + + /panel.short [ + panel.template { + dup 0 get .panel.short and 0 ne { 1 get } { pop } ifelse + } forall + ] def + + /panel panel.short def + + panel.show +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Show panel. +% +% ( ) ==> ( ) +% +/panel.show { + panel.font setfont + +% panel.bg setcolor + 0 panel.y moveto +% currentpoint + panel.back restorescreen +% currenttransparency +% 50 settransparency +% panel.size fillrect +% settransparency +% moveto + +% panel.border setcolor +% 0 -1 rmoveto +% 0 1 clip.size pop 3 div { pop putpixel 3 0 rmoveto } for + + % don't change xmenu + /xmenu xmenu + + /panel.x 0 def + panel { dup { + dup 1 panel.x put + dup 4 get exec over 2 get strsize pop add 20 add panel.x add /panel.x exch def + dup 5 get exec + } { pop } ifelse } forall + + def + +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Handle keyboard input. +% +% ( key_in ) ==> ( key_out ) +% +/panel.input { + panel { dup { + dup 0 get 2 index eq { 3 get exec pop 0 exit } { pop } ifelse + } { pop } ifelse } forall +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Draw panel entry label and move to text field. +% +% ( panel ) => ( ) +% +/panel.text.moveto { + /panel.tmp.x over 1 get 10 add def + /panel.tmp.F exch 2 get def + + panel.tmp.x panel.text.y moveto + panel.high setcolor panel.tmp.F show + panel.normal setcolor + + 6 0 rmoveto +} def + + diff --git a/po/Makefile b/po/Makefile new file mode 100644 index 0000000..809a22f --- /dev/null +++ b/po/Makefile @@ -0,0 +1,14 @@ +POFILES = $(wildcard *.po) +TEXTS = $(addsuffix .tr,$(basename $(wildcard *.po))) + +all: text.inc $(TEXTS) + +%.tr: %.po text.inc + bin/po2txt $< >$@ + +# en.tr uses msgids from bootloader.pot +en.tr text.inc: bootloader.pot + bin/po2txt $< >en.tr + +clean: + rm -f text.inc *.tr *~ diff --git a/po/README b/po/README new file mode 100644 index 0000000..a27800a --- /dev/null +++ b/po/README @@ -0,0 +1,24 @@ +boot loader translations +------------------------ + +o How do I add a new text? + + - Use the gfxboot/po/bin/add_text script; example: + + add_text help 'Help' + + This will define txt_help; the 'txt_' prefix is optional. + +o How do I remove a text that's no longer needed? + + - Use the gfxboot/po/bin/rm_text script; example: + + rm_text help + + This will remove txt_help; the removed lines are stored in the 'old' + directory. + +o How do I add a new language? + + - Copy bootloader.pot to .po. Remember to get .po translated. + diff --git a/po/be.po b/po/be.po new file mode 100644 index 0000000..be1ef74 --- /dev/null +++ b/po/be.po @@ -0,0 +1,317 @@ +# Belarusian translation for gfxboot-theme-ubuntu +# Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 +# This file is distributed under the same license as the gfxboot-theme-ubuntu package. +# FIRST AUTHOR , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: gfxboot-theme-ubuntu\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2006-03-18 12:14:59.394968+00:00\n" +"PO-Revision-Date: 2014-03-04 21:39+0000\n" +"Last-Translator: Mikhail_SaTuRn \n" +"Language-Team: Belarusian \n" +"Language: be\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-12-16 17:20+0000\n" +"X-Generator: Launchpad (build 17286)\n" + +#. ok button label +#. txt_ok +msgid "OK" +msgstr "Добра" + +#. cancel button label +#. txt_cancel +msgid "Cancel" +msgstr "Скасаваць" + +#. reboot button label +#. txt_reboot +msgid "Reboot" +msgstr "Перазагрузіць" + +#. continue button label +#. txt_continue +msgid "Continue" +msgstr "Далей" + +#. txt_bootoptions +msgid "Boot Options" +msgstr "Параметры загрузкі" + +#. window title for exit dialog +#. txt_exit_title (see txt_exit_dialog) +msgid "Exiting..." +msgstr "Выхад..." + +#. txt_exit_dialog +msgid "" +"You are leaving the graphical boot menu and\n" +"starting the text mode interface." +msgstr "" +"Вы пакідаеце графічнае меню загрузкі.\n" +"Будзе запушчаны тэкставы інтэрфейс." + +#. txt_help +msgid "Help" +msgstr "Даведка" + +#. info box title +#. txt_info_title +msgid "Boot loader" +msgstr "Загрузчык" + +#. error box title +#. txt_error_title +msgid "I/O error" +msgstr "Памылка ўводу/вываду" + +#. boot disk change dialog title +#. txt_change_disk_title +msgid "Change Boot Disk" +msgstr "Змяніце загрузачны дыск" + +#. txt_insert_disk +#, c-format +msgid "Insert boot disk %u." +msgstr "Устаўце загрузачны дыск %u." + +#. txt_insert_disk2 +#, c-format +msgid "" +"This is boot disk %u.\n" +"Insert boot disk %u." +msgstr "" +"Гэта загрузачны дыск %u.\n" +"Устаўце дыск %u." + +#. txt_insert_disk3 +#, c-format +msgid "" +"This is not a suitable boot disk.\n" +"Please insert boot disk %u." +msgstr "" +"Гэта непрыдатны загрузачны дыск.\n" +"Калі ласка, устаўце дыск %u." + +#. password dialog title +#. txt_password_title +msgid "Password" +msgstr "Пароль" + +#. Keep the newlines and spaces after ':'! +#. txt_password +msgid "" +"Enter your password: \n" +"\n" +"\n" +msgstr "" +"Увядзіце ваш пароль: \n" +"\n" +"\n" + +#. dvd warning title +#. txt_dvd_warning_title +msgid "DVD Error" +msgstr "Памылка DVD" + +#. txt_dvd_warning2 +msgid "" +"This is a two-sided DVD. You have booted from the second side.\n" +"\n" +"Turn the DVD over then continue." +msgstr "" +"Гэта двухбаковы DVD. Вы загрузіліся з другога боку.\n" +"\n" +"Перавярніце DVD и працягвайце." + +#. power off dialog title +#. txt_power_off_title +msgid "Power Off" +msgstr "Выключыць" + +#. txt_power_off +msgid "Halt the system now?" +msgstr "Выключыць сістэму?" + +#. txt_password +msgid "Password\n" +msgstr "Пароль\n" + +#. button label for other/more options +#. txt_other_options +msgid "Other Options" +msgstr "Іншыя параметры" + +#. label for language selection +#. txt_language +msgid "Locale" +msgstr "Лакаль" + +#. label for keymap selection +#. txt_keymap +msgid "Keymap" +msgstr "Клавіятура" + +#. label for installation mode selection +#. txt_modes +msgid "Modes" +msgstr "Рэжымы" + +#. label for modes menu +#. txt_mode_normal +msgid "Normal" +msgstr "Звычайны" + +#. label for d-i mode menu +#. txt_expert_mode +msgid "Expert mode" +msgstr "Рэжым для экспертаў" + +#. title for accessibility menu +#. txt_access +msgid "Accessibility" +msgstr "Дадатковыя магчымасці" + +#. label for accessibility menu +#. txt_access_none +msgid "None" +msgstr "Няма" + +#. label for accessibility menu +#. txt_access_v1 +msgid "High Contrast" +msgstr "Высокі кантраст" + +#. label for accessibility menu +#. txt_access_v2 +msgid "Magnifier" +msgstr "Экранная лупа" + +#. label for accessibility menu +#. txt_access_v3 +msgid "Screen Reader" +msgstr "Чытанне з экрана" + +#. label for accessibility menu +#. txt_access_brltty +msgid "Braille Terminal" +msgstr "Тэрмінал Брайля" + +#. label for accessibility menu +#. txt_access_m1 +msgid "Keyboard Modifiers" +msgstr "Мадыфікатары клавіятуры" + +#. label for accessibility menu +#. txt_access_m2 +msgid "On-Screen Keyboard" +msgstr "Экранная клавіятура" + +#. label for accessibility menu +#. txt_access_m3 +msgid "Motor Difficulties - switch devices" +msgstr "Абсталяванне пры праблемах з маторыкай" + +#. label for accessibility menu +#. txt_access_all +msgid "Everything" +msgstr "Усё разам" + +#. Installation mode. +#. txt_menuitem_driverupdates +msgid "Use driver update disc" +msgstr "Выкарыстаць дыск з абнаўленнямі драйвераў" + +#. Installation mode. +#. txt_menuitem_workstation +msgid "Install a workstation" +msgstr "Усталяваць працоўную станцыю" + +#. Installation mode. +#. txt_menuitem_server +msgid "Install a server" +msgstr "Усталяваць сервер" + +#. Installation mode. +#. txt_menuitem_oem +msgid "OEM install (for manufacturers)" +msgstr "OEM усталёўка (для вытворцаў)" + +#. Installation mode. +#. txt_menuitem_lamp +msgid "Install a LAMP server" +msgstr "Усталяваць сервер LAMP" + +#. Installation mode. +#. txt_menuitem_ltsp +msgid "Install an LTSP server" +msgstr "Усталяваць сервер LTSP" + +#. Installation mode. +#. txt_menuitem_cli +msgid "Install a command-line system" +msgstr "Усталяваць сістэму без графічнага інтэрфейсу" + +#. Installation mode. +#. txt_menuitem_minimal +msgid "Install a minimal system" +msgstr "Усталяваць сістэму ў мінімальнай камплектацыі" + +#. Installation mode. +#. txt_menuitem_minimalvm +msgid "Install a minimal virtual machine" +msgstr "Усталяваць мінімальную віртуальную машыну" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_check +msgid "^Check disc for defects" +msgstr "^Праверыць дыск на дэфекты" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_rescue +msgid "^Rescue a broken system" +msgstr "^Аднавіць сістэму" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_memtest +msgid "Test ^memory" +msgstr "Тэст ^памяці" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_hd +msgid "^Boot from first hard disk" +msgstr "^Загрузіцца з першага цвёрдага дыска" + +#. Boot option. +#. txt_option_free +msgid "Free software only" +msgstr "Толькі свабоднае праграмнае забеспячэнне" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_dell_factory_recovery +msgid "^Dell Automatic Reinstall" +msgstr "^Аўтаматычная пераўсталёўка Dell" + +#. txt_resolution +msgid "Resolution" +msgstr "Разрозьненьне" + +#. txt_videodrv +msgid "Video" +msgstr "Відэа" + +#. txt_video_driver_auto +msgid "Auto" +msgstr "" + +#. txt_no_composite +msgid "No composite" +msgstr "" + +#. txt_audio +msgid "Audio" +msgstr "Аўдыё" diff --git a/po/bg.po b/po/bg.po new file mode 100644 index 0000000..3916219 --- /dev/null +++ b/po/bg.po @@ -0,0 +1,320 @@ +# translation of bg.po to +# translation of bg.po to Bulgarian +# translation of bootloader.po to Bulgarian +# LANGUAGE translations for boot loader +# Copyright (C) 2004 SUSE LINUX AG +# Copyright (C) 2004 Vdel CREC +# Borislav Mitev , 2004, 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: bg\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2014-01-28 22:11+0000\n" +"Last-Translator: Atanas Kovachki \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-12-16 17:20+0000\n" +"X-Generator: Launchpad (build 17286)\n" + +#. ok button label +#. txt_ok +msgid "OK" +msgstr "Добре" + +#. cancel button label +#. txt_cancel +msgid "Cancel" +msgstr "Откажи" + +#. reboot button label +#. txt_reboot +msgid "Reboot" +msgstr "Рестартирай" + +#. continue button label +#. txt_continue +msgid "Continue" +msgstr "Продължи" + +#. txt_bootoptions +msgid "Boot Options" +msgstr "Параметри на зареждането" + +#. window title for exit dialog +#. txt_exit_title (see txt_exit_dialog) +msgid "Exiting..." +msgstr "Изход..." + +#. txt_exit_dialog +msgid "" +"You are leaving the graphical boot menu and\n" +"starting the text mode interface." +msgstr "" +"Вие напускате графичното меню и\n" +"влизате в текстовия интерфейс." + +#. txt_help +msgid "Help" +msgstr "Помощ" + +#. info box title +#. txt_info_title +msgid "Boot loader" +msgstr "Зареждане на операционна система" + +#. error box title +#. txt_error_title +msgid "I/O error" +msgstr "В/И грешка" + +#. boot disk change dialog title +#. txt_change_disk_title +msgid "Change Boot Disk" +msgstr "Сменете зареждащият диск" + +#. txt_insert_disk +#, c-format +msgid "Insert boot disk %u." +msgstr "Поставете зареждащ диск %u." + +#. txt_insert_disk2 +#, c-format +msgid "" +"This is boot disk %u.\n" +"Insert boot disk %u." +msgstr "" +"Това е зареждащ диск %u.\n" +"Поставете зареждащ диск %u." + +#. txt_insert_disk3 +#, c-format +msgid "" +"This is not a suitable boot disk.\n" +"Please insert boot disk %u." +msgstr "" +"Това не е подходящият зареждащ диск.\n" +"Поставете зареждащ диск %u." + +#. password dialog title +#. txt_password_title +msgid "Password" +msgstr "Парола" + +#. Keep the newlines and spaces after ':'! +#. txt_password +msgid "" +"Enter your password: \n" +"\n" +"\n" +msgstr "" +"Въведете парола си: \n" +"\n" +"\n" + +#. dvd warning title +#. txt_dvd_warning_title +msgid "DVD Error" +msgstr "DVD грешка" + +#. txt_dvd_warning2 +msgid "" +"This is a two-sided DVD. You have booted from the second side.\n" +"\n" +"Turn the DVD over then continue." +msgstr "" +"Това е двустранно DVD. Вие сте заредили от втората страна\n" +"\n" +"Моля, обърнете DVD-то и след това продължете." + +#. power off dialog title +#. txt_power_off_title +msgid "Power Off" +msgstr "Изключи" + +#. txt_power_off +msgid "Halt the system now?" +msgstr "Желаете ли да изключите сега системата?" + +#. txt_password +msgid "Password\n" +msgstr "Парола\n" + +#. button label for other/more options +#. txt_other_options +msgid "Other Options" +msgstr "Други настройки" + +#. label for language selection +#. txt_language +msgid "Locale" +msgstr "Локал" + +#. label for keymap selection +#. txt_keymap +msgid "Keymap" +msgstr "Kлавиатурна подредба" + +#. label for installation mode selection +#. txt_modes +msgid "Modes" +msgstr "Режими" + +#. label for modes menu +#. txt_mode_normal +msgid "Normal" +msgstr "Нормален" + +#. label for d-i mode menu +#. txt_expert_mode +msgid "Expert mode" +msgstr "Експертен режим" + +#. title for accessibility menu +#. txt_access +msgid "Accessibility" +msgstr "Достъпност" + +#. label for accessibility menu +#. txt_access_none +msgid "None" +msgstr "Няма" + +#. label for accessibility menu +#. txt_access_v1 +msgid "High Contrast" +msgstr "Висок контраст" + +#. label for accessibility menu +#. txt_access_v2 +msgid "Magnifier" +msgstr "Лупа" + +#. label for accessibility menu +#. txt_access_v3 +msgid "Screen Reader" +msgstr "Екранен четец" + +#. label for accessibility menu +#. txt_access_brltty +msgid "Braille Terminal" +msgstr "Брайлов терминал" + +#. label for accessibility menu +#. txt_access_m1 +msgid "Keyboard Modifiers" +msgstr "Промяна на клавишите" + +#. label for accessibility menu +#. txt_access_m2 +msgid "On-Screen Keyboard" +msgstr "Екранна клавиатура" + +#. label for accessibility menu +#. txt_access_m3 +msgid "Motor Difficulties - switch devices" +msgstr "Превключващи устройства при нарушена подвижност" + +#. label for accessibility menu +#. txt_access_all +msgid "Everything" +msgstr "Всичко" + +#. Installation mode. +#. txt_menuitem_driverupdates +msgid "Use driver update disc" +msgstr "Използвай актуализазионен диск с драйвери" + +#. Installation mode. +#. txt_menuitem_workstation +msgid "Install a workstation" +msgstr "Инсталирай работна станция" + +#. Installation mode. +#. txt_menuitem_server +msgid "Install a server" +msgstr "Инсталирай сървър" + +#. Installation mode. +#. txt_menuitem_oem +msgid "OEM install (for manufacturers)" +msgstr "OEM-режим на инсталиране (за производители)" + +#. Installation mode. +#. txt_menuitem_lamp +msgid "Install a LAMP server" +msgstr "Инсталирай LAMP сървър" + +#. Installation mode. +#. txt_menuitem_ltsp +msgid "Install an LTSP server" +msgstr "Инсталирай LTSP сървър" + +#. Installation mode. +#. txt_menuitem_cli +msgid "Install a command-line system" +msgstr "Инсталирай системата без графичен интерфейс" + +#. Installation mode. +#. txt_menuitem_minimal +msgid "Install a minimal system" +msgstr "Инсталирай минимална система" + +#. Installation mode. +#. txt_menuitem_minimalvm +msgid "Install a minimal virtual machine" +msgstr "Инсталирай минимална виртуална машина" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_check +msgid "^Check disc for defects" +msgstr "^Провери диска за дефекти" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_rescue +msgid "^Rescue a broken system" +msgstr "Спаси ^повредена система" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_memtest +msgid "Test ^memory" +msgstr "Тествай ^паметта" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_hd +msgid "^Boot from first hard disk" +msgstr "^Зареди от първия твърд диск" + +#. Boot option. +#. txt_option_free +msgid "Free software only" +msgstr "Само безплатен софтуер" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_dell_factory_recovery +msgid "^Dell Automatic Reinstall" +msgstr "^Автоматично преинсталиране на Dell" + +#. txt_resolution +msgid "Resolution" +msgstr "Разделителна способност" + +#. txt_videodrv +msgid "Video" +msgstr "Видео" + +#. txt_video_driver_auto +msgid "Auto" +msgstr "" + +#. txt_no_composite +msgid "No Composite" +msgstr "" + +#. txt_audio +msgid "Audio" +msgstr "Звук" diff --git a/po/bin/add_text b/po/bin/add_text new file mode 100755 index 0000000..54a0536 --- /dev/null +++ b/po/bin/add_text @@ -0,0 +1,99 @@ +#! /usr/bin/perl + +# add a new text to *.po files + +sub usage () { + die "usage: add_text [-b id] [-c comment] id text_line1 text_line2 ... \nexample:\n add_text MENU_LANG Language\n"; +} + +usage if @ARGV < 2; + +my $before_id = ''; +my $comment; + +while ($ARGV[0] =~ /^-/) { + if ($ARGV[0] eq '-b') { + shift; + $before_id = shift; + } elsif ($ARGV[0] eq '-c') { + shift; + $comment = shift; + } else { + usage; + } +} + +$id = shift; +@texts = @ARGV; + +$before_id =~ s/^txt_//; +$id =~ s/^txt_//; + +$_ = join '', @texts; + +push @l, "#. $comment\n" if $comment; +push @l, "#. txt_$id\n"; +push @l, "#, c-format\n" if /%/; + +if(@texts == 1) { + push @l, "msgid \"$texts[0]\"\n" +} +else { + push @l, "msgid \"\"\n"; + for (@texts) { push @l, "\"$_\"\n" } +} + +push @l, "msgstr \"\"\n"; + +print @l; + +print STDERR "Should this entry be added to all *.po files? [Y/n]\n"; + +$_ = ; + +chomp; + +$_ = "\L$_"; + +exit unless $_ eq '' || $_ eq 'y'; + +print "ok\n"; + +for $f ("bootloader.pot", <*.po>) { + open OLD, $f or next; + unless (open NEW, '>', "$f.new") { + close OLD; + next; + } + my @buffer; + for () { + if ($before_id) { + if (/^#\./) { + push @buffer, $_; + if (/^#\. txt_\Q$before_id\E$/) { + print NEW @l, "\n"; + print NEW @buffer; + @buffer = (); + } + } elsif (/^msgid/) { + print NEW @buffer; + @buffer = (); + print NEW; + } elsif (@buffer) { + push @buffer, $_; + } else { + print NEW; + } + } else { + print NEW; + } + } + print NEW @buffer if @buffer; + if (not $before_id) { + print NEW "\n", @l; + } + close NEW; + close OLD; + rename "$f.new", $f; +} + diff --git a/po/bin/change_text b/po/bin/change_text new file mode 100755 index 0000000..4dd887d --- /dev/null +++ b/po/bin/change_text @@ -0,0 +1,105 @@ +#! /usr/bin/perl -w + +# change a string in *.po files + +die "usage: change_text [-c comment] id text_line1 text_line2 ...\n" if @ARGV < 2; + +my $comment; + +if ($ARGV[0] eq '-c') { + shift; + $comment = shift; +} + +my $id = shift; +my @texts = @ARGV; + +$id =~ s/^txt_//; + +sub print_buffer (*$@) { + my $fh = shift; + my $need_fuzzy = shift; + my @buffer = @_; + if ($need_fuzzy) { + if (@buffer and $buffer[0] =~ /^#,/) { + if ($buffer[0] !~ /fuzzy/) { + $buffer[0] =~ s/^#, //; + $buffer[0] = "#, fuzzy, $buffer[0]"; + } + } else { + unshift @buffer, "#, fuzzy\n"; + } + } + print $fh @buffer; +} + +for my $f ("bootloader.pot", <*.po>) { + open OLD, $f or next; + unless (open NEW, '>', "$f.new") { + close OLD; + next; + } + my $state = ''; + my $need_fuzzy = 0; + my @buffer; + for () { + if (/^#\. txt_\Q$id\E$/) { + $state = 'ID'; + $need_fuzzy = 0; + if (defined $comment) { + print NEW "#. $comment\n"; + } else { + print NEW @buffer; + } + @buffer = (); + print NEW; + } elsif (/^#\. txt_/) { + print NEW @buffer; + @buffer = (); + print NEW; + } elsif (/^#\. /) { + $state = 'BUFFER'; + push @buffer, $_; + } elsif ($state eq 'ID' and /^#,/) { + $state = 'BUFFER'; + push @buffer, $_; + } elsif ($state eq 'ID' and /^msgid/) { + $state = 'MSGID'; + if (@texts == 1) { + push @buffer, "msgid \"$texts[0]\"\n"; + } else { + push @buffer, "msgid \"\"\n"; + for my $text (@texts) { + push @buffer, "\"$text\"\n"; + } + } + } elsif ($state eq 'MSGID' and /^msgstr/) { + $state = 'MSGSTR'; + $need_fuzzy = 1 if /^msgstr ".+"/; + push @buffer, $_; + } elsif ($state eq 'MSGSTR' and /^".+"/) { + $need_fuzzy = 1; + push @buffer, $_; + } elsif ($state eq 'MSGSTR' and /^$/) { + print_buffer NEW, $need_fuzzy, @buffer; + @buffer = (); + $state = ''; + $need_fuzzy = 0; + print NEW; + } elsif (/^$/) { + print NEW @buffer; + @buffer = (); + print NEW; + } elsif ($state eq 'BUFFER' or $state eq 'MSGID' or $state eq 'MSGSTR') { + push @buffer, $_; + } else { + print NEW; + } + } + if ($state ne '' and @buffer) { + print_buffer NEW, $need_fuzzy, @buffer; + } + close NEW; + close OLD; + rename "$f.new", $f; +} diff --git a/po/bin/fixpot b/po/bin/fixpot new file mode 100755 index 0000000..1ed9665 --- /dev/null +++ b/po/bin/fixpot @@ -0,0 +1,27 @@ +#! /usr/bin/perl + +while(<>) { + if(/^\s*#|^\s*$/) { $msg[$cnt]{comment} .= $_; next } + if(s/^\s*msgid\b\s*//) { $cnt++; $id = 1 } + if(s/^\s*msgstr\b\s*//) { $id = 2 } + if($id == 1) { $msg[$cnt - 1]{id} .= $_; next } + if($id == 2) { $msg[$cnt - 1]{str} .= $_; next } + + die "oops at line $.\n"; +} + +for (@msg) { + print $_->{comment}; + + next unless defined($_->{id}) && defined($_->{str}); + + if($_->{id} =~ /^\s*""\s*$/ || $_->{str} =~ /^\s*""\s*$/) { + print "msgid ", $_->{id}; + print "msgstr ", $_->{str}; + } + else { + print "msgid ", $_->{str}; + print "msgstr \"\"\n"; + } +} + diff --git a/po/bin/po2txt b/po/bin/po2txt new file mode 100755 index 0000000..7d39dc6 --- /dev/null +++ b/po/bin/po2txt @@ -0,0 +1,182 @@ +#! /usr/bin/perl + +# convert *.po files to texts.* files suitable for gfxboot +# usage: po2txt lang.po >texts.lang +# Note: en.po ist treated specially! + +use Getopt::Long; +use IPC::Open2; + +sub read_texts; +sub join_msg; + +$opt_product = "SUSE Linux"; + +GetOptions( + 'product=s' => \$opt_product +); + + +for $lang (@ARGV) { + $lang = 'en' if $lang eq 'bootloader.pot'; + $lang =~ s/\.po$//; + read_texts $lang; +} + +sub read_texts +{ + local $_; + + my ($lang, @f, $txt, $context, $fuzzy, $t, $p, $ids, $file); + + $lang = shift; + + $file = "$lang.po"; + $file = 'bootloader.pot' if $lang eq 'en'; + + if($lang eq 'en') { + $ids = 1; + } + + open F, $file; + @f = (); + close F; + + map { s//$opt_product/g; } @f; + + $_ = $lang; + s/.*\///; + + for (@f) { + if(/^\s*#\.\s*(txt_\S+)/) { + if($txt) { + @msgstr = @msgid if $ids || $fuzzy || join_msg(\@msgstr) eq ""; + $txts{$txt} = join_msg(\@msgstr); + } + + $txt = $1; + + undef @msgid; + undef @msgstr; + undef $context; + undef $fuzzy; + next; + } + + if(/^\s*#,\s*fuzzy/) { + $fuzzy = 1; + next; + } + + next if /^\s*#.*|^\s*$/; + + if(/^\s*msgid\s*(\".*\")\s*$/) { + push @msgid, $1 unless $1 eq '""'; + $context = 1; + next; + } + + if(/^\s*msgstr\s*(\".*\")\s*$/) { + push @msgstr, $1 unless $1 eq '""'; + $context = 2; + next; + } + + if(/^\s*(\".*\")\s*$/) { + if($context == 1) { + push @msgid, $1; + } + elsif($context == 2) { + push @msgstr, $1; + } + else { + die "format oops in ${lang}.po: $_" + } + } + } + + if($txt) { + @msgstr = @msgid if $ids || $fuzzy || join_msg(\@msgstr) eq ""; + $txts{$txt} = join_msg(\@msgstr); + } + + @txts = sort keys %txts; + + for (@txts) { + $txt = $txts{$_}; + $txt =~ s/\\"/"/g; + $txt =~ s/\\\\/\\/g; + $txt =~ s/\\n/\n/g; + if($lang eq "he") + { + my $bidi_pid = open2(\*BIDI_OUT, \*BIDI_IN, 'fribidi', '--nopad', '--nobreak'); + print BIDI_IN $txt; + close BIDI_IN; + { local $/ = undef; $txt = ; } + $txt =~ s/(.)%/%$1/g; + waitpid $bidi_pid, 0; + } + print "$txt\x00" + } + + if($ids) { + open W, ">text.inc"; + print W "%\n% This file is generated automatically. Editing it is pointless.\n%\n\n"; + print W "/texts [\n"; + $p = pop @txts; + for (@txts) { print W " /$_\n" } + print W " /$p\n] def\n"; + close W; + } + else { + open F, "text.inc"; + for () { + if(/\s+\/(txt_\S+)/) { + $txt_ref{$1} = undef; + } + } + close F; + my (%txt_list, %txt_miss, %txt_unknown, %txt_multi); + for (@txts) { + $txt_list{$_}++; + $txt_multi{$_} = 1 if $txt_list{$_} > 1; + } + for (@txts) { + $txt_unknown{$_} = 1 unless exists $txt_ref{$_}; + } + for (keys %txt_ref) { + $txt_miss{$_} = 1 unless exists $txt_list{$_}; + } + + if(%txt_miss || %txt_unknown || %txt_multi) { + print STDERR "$lang:\n"; + for (sort keys %txt_miss) { + print STDERR " missing: $_\n" + } + for (sort keys %txt_unknown) { + print STDERR " unknown: $_\n" + } + for (sort keys %txt_multi) { + print STDERR " multi: $_\n" + } + } + } + +} + + +sub join_msg +{ + local $_; + my ($s, $msg, $m); + + $msg = shift; + + for $s (@{$msg}) { + $_ = $s; + s/^\"(.*)\"$/$1/; + $m .= $_; + } + + return $m; +} diff --git a/po/bin/rm_text b/po/bin/rm_text new file mode 100755 index 0000000..9b96555 --- /dev/null +++ b/po/bin/rm_text @@ -0,0 +1,63 @@ +#! /usr/bin/perl + +# remove a text from *.po files + +sub drop; + +die "usage: rm_text id\n" if @ARGV != 1; + +$id = shift; +$id = "txt_$id" unless $id =~ /^txt_/; + +mkdir old, 0755; + +for $f ("bootloader.pot", <*.po>) { + if(open F, $f) { + @f = ; + close F; + + ( $new, $old ) = drop @f; + if(open F, ">>old/$f") { + print F @$old; + close F; + + open F, ">$f"; + print F @$new; + close F; + } + } +} + + +sub drop +{ + local $_; + my (@f, @g, $drop_it, @d); + + for (@_) { + push @g, $_; + $drop_it = 1 if /^#\.\s*${id}\s*$/; + if(/^\s*$/) { + if($drop_it) { + push @d, @g; + } + else { + push @f, @g; + } + undef $drop_it; + undef @g; + } + } + + if(@g) { + if($drop_it) { + push @d, @g; + } + else { + push @f, @g; + } + } + + return ( \@f, \@d ); +} + diff --git a/po/bootloader.pot b/po/bootloader.pot new file mode 100644 index 0000000..9f515ad --- /dev/null +++ b/po/bootloader.pot @@ -0,0 +1,295 @@ +# LANGUAGE translations for boot loader +# Copyright (C) 2005 SUSE Linux GmbH +# +msgid "" +msgstr "" +"Project-Id-Version: bootloader\n" +"PO-Revision-Date: 2005-07-27 11:49+0200\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. ok button label +#. txt_ok +msgid "OK" +msgstr "" + +#. cancel button label +#. txt_cancel +msgid "Cancel" +msgstr "" + +#. reboot button label +#. txt_reboot +msgid "Reboot" +msgstr "" + +#. continue button label +#. txt_continue +msgid "Continue" +msgstr "" + +#. txt_bootoptions +msgid "Boot Options" +msgstr "" + +#. window title for exit dialog +#. txt_exit_title (see txt_exit_dialog) +msgid "Exiting..." +msgstr "" + +#. txt_exit_dialog +msgid "" +"You are leaving the graphical boot menu and\n" +"starting the text mode interface." +msgstr "" + +#. txt_help +msgid "Help" +msgstr "" + +#. info box title +#. txt_info_title +msgid "Boot loader" +msgstr "" + +#. error box title +#. txt_error_title +msgid "I/O error" +msgstr "" + +#. boot disk change dialog title +#. txt_change_disk_title +msgid "Change Boot Disk" +msgstr "" + +#. txt_insert_disk +#, c-format +msgid "Insert boot disk %u." +msgstr "" + +#. txt_insert_disk2 +#, c-format +msgid "" +"This is boot disk %u.\n" +"Insert boot disk %u." +msgstr "" + +#. txt_insert_disk3 +#, c-format +msgid "" +"This is not a suitable boot disk.\n" +"Please insert boot disk %u." +msgstr "" + +#. password dialog title +#. txt_password_title +msgid "Password" +msgstr "" + +#. Keep the newlines and spaces after ':'! +#. txt_password +msgid "Enter your password: \n\n\n" +msgstr "" + +#. dvd warning title +#. txt_dvd_warning_title +msgid "DVD Error" +msgstr "" + +#. txt_dvd_warning2 +msgid "" +"This is a two-sided DVD. You have booted from the second side.\n" +"\n" +"Turn the DVD over then continue." +msgstr "" + +#. power off dialog title +#. txt_power_off_title +msgid "Power Off" +msgstr "" + +#. txt_power_off +msgid "Halt the system now?" +msgstr "" + +#. txt_password +msgid "Password\n" +msgstr "" + +#. button label for other/more options +#. txt_other_options +msgid "Other Options" +msgstr "" + +#. label for language selection +#. txt_language +msgid "Locale" +msgstr "" + +#. label for keymap selection +#. txt_keymap +msgid "Keymap" +msgstr "" + +#. label for installation mode selection +#. txt_modes +msgid "Modes" +msgstr "" + +#. label for modes menu +#. txt_mode_normal +msgid "Normal" +msgstr "" + +#. label for d-i mode menu +#. txt_expert_mode +msgid "Expert mode" +msgstr "" + +#. title for accessibility menu +#. txt_access +msgid "Accessibility" +msgstr "" + +#. label for accessibility menu +#. txt_access_none +msgid "None" +msgstr "" + +#. label for accessibility menu +#. txt_access_v1 +msgid "High Contrast" +msgstr "" + +#. label for accessibility menu +#. txt_access_v2 +msgid "Magnifier" +msgstr "" + +#. label for accessibility menu +#. txt_access_v3 +msgid "Screen Reader" +msgstr "" + +#. label for accessibility menu +#. txt_access_brltty +msgid "Braille Terminal" +msgstr "" + +#. label for accessibility menu +#. txt_access_m1 +msgid "Keyboard Modifiers" +msgstr "" + +#. label for accessibility menu +#. txt_access_m2 +msgid "On-Screen Keyboard" +msgstr "" + +#. label for accessibility menu +#. txt_access_m3 +msgid "Motor Difficulties - switch devices" +msgstr "" + +#. label for accessibility menu +#. txt_access_all +msgid "Everything" +msgstr "" + +#. Installation mode. +#. txt_menuitem_driverupdates +msgid "Use driver update disc" +msgstr "" + +#. Installation mode. +#. txt_menuitem_workstation +msgid "Install a workstation" +msgstr "" + +#. Installation mode. +#. txt_menuitem_server +msgid "Install a server" +msgstr "" + +#. Installation mode. +#. txt_menuitem_oem +msgid "OEM install (for manufacturers)" +msgstr "" + +#. Installation mode. +#. txt_menuitem_lamp +msgid "Install a LAMP server" +msgstr "" + +#. Installation mode. +#. txt_menuitem_ltsp +msgid "Install an LTSP server" +msgstr "" + +#. Installation mode. +#. txt_menuitem_cli +msgid "Install a command-line system" +msgstr "" + +#. Installation mode. +#. txt_menuitem_minimal +msgid "Install a minimal system" +msgstr "" + +#. Installation mode. +#. txt_menuitem_minimalvm +msgid "Install a minimal virtual machine" +msgstr "" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_check +msgid "^Check disc for defects" +msgstr "" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_rescue +msgid "^Rescue a broken system" +msgstr "" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_memtest +msgid "Test ^memory" +msgstr "" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_hd +msgid "^Boot from first hard disk" +msgstr "" + +#. Boot option. +#. txt_option_free +msgid "Free software only" +msgstr "" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_dell_factory_recovery +msgid "^Dell Automatic Reinstall" +msgstr "" + +#. txt_resolution +msgid "Resolution" +msgstr "" + +#. txt_videodrv +msgid "Video" +msgstr "" + +#. txt_video_driver_auto +msgid "Auto" +msgstr "" + +#. txt_no_composite +msgid "No composite" +msgstr "" + +#. txt_audio +msgid "Audio" +msgstr "" diff --git a/po/bs.po b/po/bs.po new file mode 100644 index 0000000..263da79 --- /dev/null +++ b/po/bs.po @@ -0,0 +1,317 @@ +# Bosnian translation for gfxboot-theme-ubuntu +# Copyright (c) 2006 Rosetta Contributors and Canonical Ltd 2006 +# This file is distributed under the same license as the gfxboot-theme-ubuntu package. +# FIRST AUTHOR , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: gfxboot-theme-ubuntu\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2006-08-22 03:43:17.138284+00:00\n" +"PO-Revision-Date: 2014-06-21 01:22+0000\n" +"Last-Translator: Samir Ribić \n" +"Language-Team: Bosnian \n" +"Language: bs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-12-16 17:20+0000\n" +"X-Generator: Launchpad (build 17286)\n" + +#. ok button label +#. txt_ok +msgid "OK" +msgstr "Uredu" + +#. cancel button label +#. txt_cancel +msgid "Cancel" +msgstr "Odustani" + +#. reboot button label +#. txt_reboot +msgid "Reboot" +msgstr "Ponovo pokreni" + +#. continue button label +#. txt_continue +msgid "Continue" +msgstr "Nastavi" + +#. txt_bootoptions +msgid "Boot Options" +msgstr "Opcije za pokretanje sistema" + +#. window title for exit dialog +#. txt_exit_title (see txt_exit_dialog) +msgid "Exiting..." +msgstr "Izlazim..." + +#. txt_exit_dialog +msgid "" +"You are leaving the graphical boot menu and\n" +"starting the text mode interface." +msgstr "" +"Napuštate grafički meni i\n" +"pokrećete tekstualni interfejs." + +#. txt_help +msgid "Help" +msgstr "Pomoć" + +#. info box title +#. txt_info_title +msgid "Boot loader" +msgstr "Pokretač sistema" + +#. error box title +#. txt_error_title +msgid "I/O error" +msgstr "Ulazno/izlana greška" + +#. boot disk change dialog title +#. txt_change_disk_title +msgid "Change Boot Disk" +msgstr "Promjenite boot disk" + +#. txt_insert_disk +#, c-format +msgid "Insert boot disk %u." +msgstr "Ubacite boot disk %u." + +#. txt_insert_disk2 +#, c-format +msgid "" +"This is boot disk %u.\n" +"Insert boot disk %u." +msgstr "" +"Ovo je boot disk %u.\n" +"Ubacite boot disk %u." + +#. txt_insert_disk3 +#, c-format +msgid "" +"This is not a suitable boot disk.\n" +"Please insert boot disk %u." +msgstr "" +"Ovo nije kompatibilan boot disk.\n" +"Molimo ubacite boot disk %u." + +#. password dialog title +#. txt_password_title +msgid "Password" +msgstr "Lozinka" + +#. Keep the newlines and spaces after ':'! +#. txt_password +msgid "" +"Enter your password: \n" +"\n" +"\n" +msgstr "" +"Unesite svoju šifru: \n" +"\n" +"\n" + +#. dvd warning title +#. txt_dvd_warning_title +msgid "DVD Error" +msgstr "DVD greška" + +#. txt_dvd_warning2 +msgid "" +"This is a two-sided DVD. You have booted from the second side.\n" +"\n" +"Turn the DVD over then continue." +msgstr "" +"Ovo je dvoslojni DVD.Pokrenuli ste s druge strane.\n" +"\n" +"Okrenite DVD i onda nastavite." + +#. power off dialog title +#. txt_power_off_title +msgid "Power Off" +msgstr "Gašenje" + +#. txt_power_off +msgid "Halt the system now?" +msgstr "Zaustaviti sustav sada?" + +#. txt_password +msgid "Password\n" +msgstr "Lozinka\n" + +#. button label for other/more options +#. txt_other_options +msgid "Other Options" +msgstr "Ostale opcije" + +#. label for language selection +#. txt_language +msgid "Locale" +msgstr "Lokalitet" + +#. label for keymap selection +#. txt_keymap +msgid "Keymap" +msgstr "Raspored tastature" + +#. label for installation mode selection +#. txt_modes +msgid "Modes" +msgstr "Načini rada" + +#. label for modes menu +#. txt_mode_normal +msgid "Normal" +msgstr "Normalno" + +#. label for d-i mode menu +#. txt_expert_mode +msgid "Expert mode" +msgstr "Ekspertski način" + +#. title for accessibility menu +#. txt_access +msgid "Accessibility" +msgstr "Pristupačnost" + +#. label for accessibility menu +#. txt_access_none +msgid "None" +msgstr "Ništa" + +#. label for accessibility menu +#. txt_access_v1 +msgid "High Contrast" +msgstr "Visoki kontrast" + +#. label for accessibility menu +#. txt_access_v2 +msgid "Magnifier" +msgstr "Povećalo" + +#. label for accessibility menu +#. txt_access_v3 +msgid "Screen Reader" +msgstr "Čitač ekrana" + +#. label for accessibility menu +#. txt_access_brltty +msgid "Braille Terminal" +msgstr "Brajev terminal" + +#. label for accessibility menu +#. txt_access_m1 +msgid "Keyboard Modifiers" +msgstr "Modifikatori Tastature" + +#. label for accessibility menu +#. txt_access_m2 +msgid "On-Screen Keyboard" +msgstr "Tastatura na Ekranu" + +#. label for accessibility menu +#. txt_access_m3 +msgid "Motor Difficulties - switch devices" +msgstr "Problemi sa Motorom - promijenite uređaj" + +#. label for accessibility menu +#. txt_access_all +msgid "Everything" +msgstr "Sve" + +#. Installation mode. +#. txt_menuitem_driverupdates +msgid "Use driver update disc" +msgstr "Koristi disk za nadogradnju driver-a" + +#. Installation mode. +#. txt_menuitem_workstation +msgid "Install a workstation" +msgstr "Instaliraj radnu stanicu" + +#. Installation mode. +#. txt_menuitem_server +msgid "Install a server" +msgstr "Instaliraj server" + +#. Installation mode. +#. txt_menuitem_oem +msgid "OEM install (for manufacturers)" +msgstr "OEM instalacije (za proizvođače)" + +#. Installation mode. +#. txt_menuitem_lamp +msgid "Install a LAMP server" +msgstr "Instaliraj LAMP server" + +#. Installation mode. +#. txt_menuitem_ltsp +msgid "Install an LTSP server" +msgstr "Instaliraj LTSP server" + +#. Installation mode. +#. txt_menuitem_cli +msgid "Install a command-line system" +msgstr "Instaliraj sistem komandne-linije" + +#. Installation mode. +#. txt_menuitem_minimal +msgid "Install a minimal system" +msgstr "Instaliraj minimalni sistem" + +#. Installation mode. +#. txt_menuitem_minimalvm +msgid "Install a minimal virtual machine" +msgstr "Instalirajte minimalnu virtualnu mašinu" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_check +msgid "^Check disc for defects" +msgstr "^Provjerite disk na nedostatke ili oštećenja" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_rescue +msgid "^Rescue a broken system" +msgstr "^Spasi oštećen sistem" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_memtest +msgid "Test ^memory" +msgstr "Testiraj ^memoriju" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_hd +msgid "^Boot from first hard disk" +msgstr "^Pokreni sa prvog fiksnog diska" + +#. Boot option. +#. txt_option_free +msgid "Free software only" +msgstr "Samo besplatni softver" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_dell_factory_recovery +msgid "^Dell Automatic Reinstall" +msgstr "^Dell automatska reinstalacija" + +#. txt_resolution +msgid "Resolution" +msgstr "Rezolucija" + +#. txt_videodrv +msgid "Video" +msgstr "Video" + +#. txt_video_driver_auto +msgid "Auto" +msgstr "" + +#. txt_no_composite +msgid "No composite" +msgstr "" + +#. txt_audio +msgid "Audio" +msgstr "Zvuk" diff --git a/po/cs.po b/po/cs.po new file mode 100644 index 0000000..dbdecbc --- /dev/null +++ b/po/cs.po @@ -0,0 +1,319 @@ +# translation of cs.po to Czech +# translation of cs.po to cs_CZ +# translation of bootloader.po to cs_CZ +# LANGUAGE translations for boot loader +# Copyright (C) 2004 SUSE LINUX AG +# Klara Cihlarova , 2004, 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: cs\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-10-09 09:00+0000\n" +"PO-Revision-Date: 2013-12-15 11:40+0000\n" +"Last-Translator: Vojtěch Trefný \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-12-16 17:20+0000\n" +"X-Generator: Launchpad (build 17286)\n" + +#. ok button label +#. txt_ok +msgid "OK" +msgstr "OK" + +#. cancel button label +#. txt_cancel +msgid "Cancel" +msgstr "Zrušit" + +#. reboot button label +#. txt_reboot +msgid "Reboot" +msgstr "Restartovat" + +#. continue button label +#. txt_continue +msgid "Continue" +msgstr "Pokračovat" + +#. txt_bootoptions +msgid "Boot Options" +msgstr "Volby startu" + +#. window title for exit dialog +#. txt_exit_title (see txt_exit_dialog) +msgid "Exiting..." +msgstr "Ukončuje se..." + +#. txt_exit_dialog +msgid "" +"You are leaving the graphical boot menu and\n" +"starting the text mode interface." +msgstr "" +"Opouštíte grafickou nabídku zavádění\n" +"a spouštíte textový režim." + +#. txt_help +msgid "Help" +msgstr "Nápověda" + +#. info box title +#. txt_info_title +msgid "Boot loader" +msgstr "Zavaděč" + +#. error box title +#. txt_error_title +msgid "I/O error" +msgstr "Chyba I/O" + +#. boot disk change dialog title +#. txt_change_disk_title +msgid "Change Boot Disk" +msgstr "Změnit zaváděcí disk" + +#. txt_insert_disk +#, c-format +msgid "Insert boot disk %u." +msgstr "Vložte zaváděcí disk %u." + +#. txt_insert_disk2 +#, c-format +msgid "" +"This is boot disk %u.\n" +"Insert boot disk %u." +msgstr "" +"Toto je zaváděcí disk %u.\n" +"Vložte zaváděcí disk %u." + +#. txt_insert_disk3 +#, c-format +msgid "" +"This is not a suitable boot disk.\n" +"Please insert boot disk %u." +msgstr "" +"Toto není vyhovující zaváděcí disk.\n" +"Prosím vložte zaváděcí disk %u." + +#. password dialog title +#. txt_password_title +msgid "Password" +msgstr "Heslo" + +#. Keep the newlines and spaces after ':'! +#. txt_password +msgid "" +"Enter your password: \n" +"\n" +"\n" +msgstr "" +"Zadejte své heslo: \n" +"\n" +"\n" + +#. dvd warning title +#. txt_dvd_warning_title +msgid "DVD Error" +msgstr "Chyba DVD" + +#. txt_dvd_warning2 +msgid "" +"This is a two-sided DVD. You have booted from the second side.\n" +"\n" +"Turn the DVD over then continue." +msgstr "" +"Toto je oboustranné DVD. Spouštíte systém z druhé strany DVD.\n" +"\n" +"Obraťte prosím DVD a pokračujte." + +#. power off dialog title +#. txt_power_off_title +msgid "Power Off" +msgstr "Vypnout" + +#. txt_power_off +msgid "Halt the system now?" +msgstr "Chcete nyní vypnout systém?" + +#. txt_password +msgid "Password\n" +msgstr "Heslo\n" + +#. button label for other/more options +#. txt_other_options +msgid "Other Options" +msgstr "Další možnosti" + +#. label for language selection +#. txt_language +msgid "Locale" +msgstr "Lokalizace" + +#. label for keymap selection +#. txt_keymap +msgid "Keymap" +msgstr "Klávesnice" + +#. label for installation mode selection +#. txt_modes +msgid "Modes" +msgstr "Režimy" + +#. label for modes menu +#. txt_mode_normal +msgid "Normal" +msgstr "Normální" + +#. label for d-i mode menu +#. txt_expert_mode +msgid "Expert mode" +msgstr "Expertní režim" + +#. title for accessibility menu +#. txt_access +msgid "Accessibility" +msgstr "Zpřístupnění" + +#. label for accessibility menu +#. txt_access_none +msgid "None" +msgstr "Žádné" + +#. label for accessibility menu +#. txt_access_v1 +msgid "High Contrast" +msgstr "Vysoký kontrast" + +#. label for accessibility menu +#. txt_access_v2 +msgid "Magnifier" +msgstr "Lupa" + +#. label for accessibility menu +#. txt_access_v3 +msgid "Screen Reader" +msgstr "Čtečka obrazovky" + +#. label for accessibility menu +#. txt_access_brltty +msgid "Braille Terminal" +msgstr "Braillův terminál" + +#. label for accessibility menu +#. txt_access_m1 +msgid "Keyboard Modifiers" +msgstr "Modifikátory klávesnice" + +#. label for accessibility menu +#. txt_access_m2 +msgid "On-Screen Keyboard" +msgstr "Klávesnice na obrazovce" + +#. label for accessibility menu +#. txt_access_m3 +msgid "Motor Difficulties - switch devices" +msgstr "Pohybové postižení - přepínací zařízení" + +#. label for accessibility menu +#. txt_access_all +msgid "Everything" +msgstr "Vše" + +#. Installation mode. +#. txt_menuitem_driverupdates +msgid "Use driver update disc" +msgstr "Použít disk s aktualizacemi ovladačů" + +#. Installation mode. +#. txt_menuitem_workstation +msgid "Install a workstation" +msgstr "Nainstalovat pracovní stanici" + +#. Installation mode. +#. txt_menuitem_server +msgid "Install a server" +msgstr "Nainstalovat server" + +#. Installation mode. +#. txt_menuitem_oem +msgid "OEM install (for manufacturers)" +msgstr "OEM instalace (pro výrobce)" + +#. Installation mode. +#. txt_menuitem_lamp +msgid "Install a LAMP server" +msgstr "Nainstalovat LAMP server" + +#. Installation mode. +#. txt_menuitem_ltsp +msgid "Install an LTSP server" +msgstr "Nainstalovat LTSP server" + +#. Installation mode. +#. txt_menuitem_cli +msgid "Install a command-line system" +msgstr "Nainstalovat systém jen s příkazovou řádkou" + +#. Installation mode. +#. txt_menuitem_minimal +msgid "Install a minimal system" +msgstr "Nainstalovat minimální systém" + +#. Installation mode. +#. txt_menuitem_minimalvm +msgid "Install a minimal virtual machine" +msgstr "Nainstalovat minimalistický virtuální stroj" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_check +msgid "^Check disc for defects" +msgstr "Zkontrolovat disk na ^chyby" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_rescue +msgid "^Rescue a broken system" +msgstr "Zach^ránit poškozený systém" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_memtest +msgid "Test ^memory" +msgstr "Otestovat pa^měť" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_hd +msgid "^Boot from first hard disk" +msgstr "^Zavést systém z prvního pevného disku" + +#. Boot option. +#. txt_option_free +msgid "Free software only" +msgstr "Pouze svobodný software" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_dell_factory_recovery +msgid "^Dell Automatic Reinstall" +msgstr "Automatická přeinstalace od ^Dell" + +#. txt_resolution +msgid "Resolution" +msgstr "Rozlišení" + +#. txt_videodrv +msgid "Video" +msgstr "Video" + +#. txt_video_driver_auto +msgid "Auto" +msgstr "" + +#. txt_no_composite +msgid "No composite" +msgstr "" + +#. txt_audio +msgid "Audio" +msgstr "Zvuk" diff --git a/po/da.po b/po/da.po new file mode 100644 index 0000000..5e66663 --- /dev/null +++ b/po/da.po @@ -0,0 +1,320 @@ +# translation of da.po to Dansk +# translation of bootloader.pot_[g4TXCa].po to Dansk +# LANGUAGE translations for boot loader +# Copyright (C) 2005 SUSE Linux GmbH +# Martin Møller , 2005. +# M.P. Rommedahl , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: Graphical Ubuntu bootloader - Danish translation\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-10-09 09:00+0000\n" +"PO-Revision-Date: 2013-12-15 11:41+0000\n" +"Last-Translator: Aputsiaĸ Niels Janussen \n" +"Language-Team: dansk-gruppen \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-12-16 17:20+0000\n" +"X-Generator: Launchpad (build 17286)\n" +"X-Poedit-Language: Danish\n" + +#. ok button label +#. txt_ok +msgid "OK" +msgstr "O.k." + +#. cancel button label +#. txt_cancel +msgid "Cancel" +msgstr "Annullér" + +#. reboot button label +#. txt_reboot +msgid "Reboot" +msgstr "Genstart" + +#. continue button label +#. txt_continue +msgid "Continue" +msgstr "Fortsæt" + +#. txt_bootoptions +msgid "Boot Options" +msgstr "Opstartsmuligheder" + +#. window title for exit dialog +#. txt_exit_title (see txt_exit_dialog) +msgid "Exiting..." +msgstr "Afslutter..." + +#. txt_exit_dialog +msgid "" +"You are leaving the graphical boot menu and\n" +"starting the text mode interface." +msgstr "" +"Du forlader nu den grafiske opstartsmenu og\n" +"starter tekstbrugerfladen." + +#. txt_help +msgid "Help" +msgstr "Hjælp" + +#. info box title +#. txt_info_title +msgid "Boot loader" +msgstr "Opstartsindlæser" + +#. error box title +#. txt_error_title +msgid "I/O error" +msgstr "I/O-fejl" + +#. boot disk change dialog title +#. txt_change_disk_title +msgid "Change Boot Disk" +msgstr "Skift opstartsdisk" + +#. txt_insert_disk +#, c-format +msgid "Insert boot disk %u." +msgstr "Indsæt opstartsdisk %u." + +#. txt_insert_disk2 +#, c-format +msgid "" +"This is boot disk %u.\n" +"Insert boot disk %u." +msgstr "" +"Dette er opstartsdisk %u.\n" +"Indsæt opstartsdisk %u." + +#. txt_insert_disk3 +#, c-format +msgid "" +"This is not a suitable boot disk.\n" +"Please insert boot disk %u." +msgstr "" +"Dette er ikke en gyldig opstartsdisk.\n" +"Indsæt venligst opstartsdisk %u." + +#. password dialog title +#. txt_password_title +msgid "Password" +msgstr "Adgangskode" + +#. Keep the newlines and spaces after ':'! +#. txt_password +msgid "" +"Enter your password: \n" +"\n" +"\n" +msgstr "" +"Indtast din adgangskode: \n" +"\n" +"\n" + +#. dvd warning title +#. txt_dvd_warning_title +msgid "DVD Error" +msgstr "Dvd-fejl" + +#. txt_dvd_warning2 +msgid "" +"This is a two-sided DVD. You have booted from the second side.\n" +"\n" +"Turn the DVD over then continue." +msgstr "" +"Dette er en tosidet dvd. Du har startet den op fra den forkerte side.\n" +"\n" +"Vend dvd'en om og prøv igen." + +#. power off dialog title +#. txt_power_off_title +msgid "Power Off" +msgstr "Sluk maskinen" + +#. txt_power_off +msgid "Halt the system now?" +msgstr "Luk systemet ned nu?" + +#. txt_password +msgid "Password\n" +msgstr "Adgangskode\n" + +#. button label for other/more options +#. txt_other_options +msgid "Other Options" +msgstr "Andet" + +#. label for language selection +#. txt_language +msgid "Locale" +msgstr "Lokalitet" + +#. label for keymap selection +#. txt_keymap +msgid "Keymap" +msgstr "Tastatur" + +#. label for installation mode selection +#. txt_modes +msgid "Modes" +msgstr "Tilstande" + +#. label for modes menu +#. txt_mode_normal +msgid "Normal" +msgstr "Normal" + +#. label for d-i mode menu +#. txt_expert_mode +msgid "Expert mode" +msgstr "Ekspert-tilstand" + +#. title for accessibility menu +#. txt_access +msgid "Accessibility" +msgstr "Tilgængelighed" + +#. label for accessibility menu +#. txt_access_none +msgid "None" +msgstr "Ingen" + +#. label for accessibility menu +#. txt_access_v1 +msgid "High Contrast" +msgstr "Høj kontrast" + +#. label for accessibility menu +#. txt_access_v2 +msgid "Magnifier" +msgstr "Forstørrelsesglas" + +#. label for accessibility menu +#. txt_access_v3 +msgid "Screen Reader" +msgstr "Skærmlæser" + +#. label for accessibility menu +#. txt_access_brltty +msgid "Braille Terminal" +msgstr "Blindskriftsterminal" + +#. label for accessibility menu +#. txt_access_m1 +msgid "Keyboard Modifiers" +msgstr "Tastatur-modifikationstaster" + +#. label for accessibility menu +#. txt_access_m2 +msgid "On-Screen Keyboard" +msgstr "Skærmtastatur" + +#. label for accessibility menu +#. txt_access_m3 +msgid "Motor Difficulties - switch devices" +msgstr "Bevægelsesbesvær - omskifteenheder" + +#. label for accessibility menu +#. txt_access_all +msgid "Everything" +msgstr "Alt" + +#. Installation mode. +#. txt_menuitem_driverupdates +msgid "Use driver update disc" +msgstr "Brug driveropdateringsdisk" + +#. Installation mode. +#. txt_menuitem_workstation +msgid "Install a workstation" +msgstr "Installér en arbejdsstation" + +#. Installation mode. +#. txt_menuitem_server +msgid "Install a server" +msgstr "Installér en server" + +#. Installation mode. +#. txt_menuitem_oem +msgid "OEM install (for manufacturers)" +msgstr "OEM-installation (for fabrikanter)" + +#. Installation mode. +#. txt_menuitem_lamp +msgid "Install a LAMP server" +msgstr "Installér en LAMP-server" + +#. Installation mode. +#. txt_menuitem_ltsp +msgid "Install an LTSP server" +msgstr "Installér en LTSP-server" + +#. Installation mode. +#. txt_menuitem_cli +msgid "Install a command-line system" +msgstr "Installér et kommandolinjesystem" + +#. Installation mode. +#. txt_menuitem_minimal +msgid "Install a minimal system" +msgstr "Installér et minimalt system" + +#. Installation mode. +#. txt_menuitem_minimalvm +msgid "Install a minimal virtual machine" +msgstr "Installér en minimal virtuel maskine" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_check +msgid "^Check disc for defects" +msgstr "^Tjek installationsmedie for defekter" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_rescue +msgid "^Rescue a broken system" +msgstr "^Genopret ødelagt system" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_memtest +msgid "Test ^memory" +msgstr "Test ^hukommelse" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_hd +msgid "^Boot from first hard disk" +msgstr "^Start op fra første harddisk" + +#. Boot option. +#. txt_option_free +msgid "Free software only" +msgstr "Kun fri software" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_dell_factory_recovery +msgid "^Dell Automatic Reinstall" +msgstr "^Dell automatisk geninstallation" + +#. txt_resolution +msgid "Resolution" +msgstr "Opløsning" + +#. txt_videodrv +msgid "Video" +msgstr "Video" + +#. txt_video_driver_auto +msgid "Auto" +msgstr "" + +#. txt_no_composite +msgid "No composite" +msgstr "" + +#. txt_audio +msgid "Audio" +msgstr "Lyd" diff --git a/po/de.po b/po/de.po new file mode 100644 index 0000000..8ac9797 --- /dev/null +++ b/po/de.po @@ -0,0 +1,318 @@ +# translation of de.po to +# translation of de.po to German +# LANGUAGE translations for boot loader +# Copyright (C) 2004 SUSE LINUX AG +# Antje Faber , 2004, 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: de\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-10-09 09:00+0000\n" +"PO-Revision-Date: 2013-12-15 11:41+0000\n" +"Last-Translator: Launchpad Translations Administrators \n" +"Language-Team: Novell Language \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-12-16 17:20+0000\n" +"X-Generator: Launchpad (build 17286)\n" + +#. ok button label +#. txt_ok +msgid "OK" +msgstr "OK" + +#. cancel button label +#. txt_cancel +msgid "Cancel" +msgstr "Abbrechen" + +#. reboot button label +#. txt_reboot +msgid "Reboot" +msgstr "Neu starten" + +#. continue button label +#. txt_continue +msgid "Continue" +msgstr "Fortfahren" + +#. txt_bootoptions +msgid "Boot Options" +msgstr "Startoptionen" + +#. window title for exit dialog +#. txt_exit_title (see txt_exit_dialog) +msgid "Exiting..." +msgstr "Wird beendet …" + +#. txt_exit_dialog +msgid "" +"You are leaving the graphical boot menu and\n" +"starting the text mode interface." +msgstr "" +"Sie verlassen das grafische Boot-Menü und\n" +"starten den Textmodus." + +#. txt_help +msgid "Help" +msgstr "Hilfe" + +#. info box title +#. txt_info_title +msgid "Boot loader" +msgstr "Boot-Loader" + +#. error box title +#. txt_error_title +msgid "I/O error" +msgstr "Ein-/Ausgabefehler" + +#. boot disk change dialog title +#. txt_change_disk_title +msgid "Change Boot Disk" +msgstr "Startmedium wechseln" + +#. txt_insert_disk +#, c-format +msgid "Insert boot disk %u." +msgstr "Bitte legen Sie das Startmedium %u ein." + +#. txt_insert_disk2 +#, c-format +msgid "" +"This is boot disk %u.\n" +"Insert boot disk %u." +msgstr "" +"Dies ist das Startmedium %u.\n" +"Bitte legen Sie Startmedium %u ein." + +#. txt_insert_disk3 +#, c-format +msgid "" +"This is not a suitable boot disk.\n" +"Please insert boot disk %u." +msgstr "" +"Dies ist kein verwendbares Startmedium.\n" +"Bitte legen Sie Startmedium %u ein." + +#. password dialog title +#. txt_password_title +msgid "Password" +msgstr "Passwort" + +#. Keep the newlines and spaces after ':'! +#. txt_password +msgid "" +"Enter your password: \n" +"\n" +"\n" +msgstr "" +"Bitte geben Sie Ihr Passwort ein: \n" +"\n" +"\n" + +#. dvd warning title +#. txt_dvd_warning_title +msgid "DVD Error" +msgstr "DVD-Fehler" + +#. txt_dvd_warning2 +msgid "" +"This is a two-sided DVD. You have booted from the second side.\n" +"\n" +"Turn the DVD over then continue." +msgstr "" +"Dies ist eine doppelseitige DVD. Sie haben von der zweiten Seite gestartet.\n" +"\n" +"Drehen Sie die DVD um und fahren Sie dann fort." + +#. power off dialog title +#. txt_power_off_title +msgid "Power Off" +msgstr "Ausschalten" + +#. txt_power_off +msgid "Halt the system now?" +msgstr "System jetzt ausschalten?" + +#. txt_password +msgid "Password\n" +msgstr "Passwort\n" + +#. button label for other/more options +#. txt_other_options +msgid "Other Options" +msgstr "Sonstiges" + +#. label for language selection +#. txt_language +msgid "Locale" +msgstr "Regionales" + +#. label for keymap selection +#. txt_keymap +msgid "Keymap" +msgstr "Tastatur" + +#. label for installation mode selection +#. txt_modes +msgid "Modes" +msgstr "Optionen" + +#. label for modes menu +#. txt_mode_normal +msgid "Normal" +msgstr "Normal" + +#. label for d-i mode menu +#. txt_expert_mode +msgid "Expert mode" +msgstr "Expertenmodus" + +#. title for accessibility menu +#. txt_access +msgid "Accessibility" +msgstr "Zugangshilfen" + +#. label for accessibility menu +#. txt_access_none +msgid "None" +msgstr "Keine" + +#. label for accessibility menu +#. txt_access_v1 +msgid "High Contrast" +msgstr "Hoher Kontrast" + +#. label for accessibility menu +#. txt_access_v2 +msgid "Magnifier" +msgstr "Bildschirmlupe" + +#. label for accessibility menu +#. txt_access_v3 +msgid "Screen Reader" +msgstr "Bildschirmleser" + +#. label for accessibility menu +#. txt_access_brltty +msgid "Braille Terminal" +msgstr "Braille-Terminal" + +#. label for accessibility menu +#. txt_access_m1 +msgid "Keyboard Modifiers" +msgstr "Tastaturmodifikatoren" + +#. label for accessibility menu +#. txt_access_m2 +msgid "On-Screen Keyboard" +msgstr "Bildschirmtastatur" + +#. label for accessibility menu +#. txt_access_m3 +msgid "Motor Difficulties - switch devices" +msgstr "Motorische Probleme – Geräte wechseln" + +#. label for accessibility menu +#. txt_access_all +msgid "Everything" +msgstr "Alle" + +#. Installation mode. +#. txt_menuitem_driverupdates +msgid "Use driver update disc" +msgstr "CD/DVD mit Treiber-Aktualisierungen benutzen" + +#. Installation mode. +#. txt_menuitem_workstation +msgid "Install a workstation" +msgstr "Eine Workstation installieren" + +#. Installation mode. +#. txt_menuitem_server +msgid "Install a server" +msgstr "Einen Server installieren" + +#. Installation mode. +#. txt_menuitem_oem +msgid "OEM install (for manufacturers)" +msgstr "OEM-Installation (für den Vertrieb)" + +#. Installation mode. +#. txt_menuitem_lamp +msgid "Install a LAMP server" +msgstr "Einen LAMP-Server installieren" + +#. Installation mode. +#. txt_menuitem_ltsp +msgid "Install an LTSP server" +msgstr "Einen LTSP-Server installieren" + +#. Installation mode. +#. txt_menuitem_cli +msgid "Install a command-line system" +msgstr "Ein Befehlszeilensystem installieren" + +#. Installation mode. +#. txt_menuitem_minimal +msgid "Install a minimal system" +msgstr "Ein Minimalsystem installieren" + +#. Installation mode. +#. txt_menuitem_minimalvm +msgid "Install a minimal virtual machine" +msgstr "Eine minimale virtuelle Maschine installieren" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_check +msgid "^Check disc for defects" +msgstr "CD/DVD auf Fehler ^prüfen" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_rescue +msgid "^Rescue a broken system" +msgstr "Ein beschädigtes System ^reparieren" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_memtest +msgid "Test ^memory" +msgstr "Arbeits^speicher testen" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_hd +msgid "^Boot from first hard disk" +msgstr "Von der ersten ^Festplatte starten" + +#. Boot option. +#. txt_option_free +msgid "Free software only" +msgstr "Nur Freie Software" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_dell_factory_recovery +msgid "^Dell Automatic Reinstall" +msgstr "^Dell: Automatische Neuinstallation" + +#. txt_resolution +msgid "Resolution" +msgstr "Auflösung" + +#. txt_videodrv +msgid "Video" +msgstr "Video" + +#. txt_video_driver_auto +msgid "Auto" +msgstr "" + +#. txt_no_composite +msgid "No Composite" +msgstr "" + +#. txt_audio +msgid "Audio" +msgstr "Sprache" diff --git a/po/es.po b/po/es.po new file mode 100644 index 0000000..9abcebb --- /dev/null +++ b/po/es.po @@ -0,0 +1,319 @@ +# translation of es.po to +# translation of bootloader.po to +# LANGUAGE translations for boot loader +# Copyright (C) 2004 SUSE LINUX AG +# , 2004 +# Ines Pozo , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: es\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-10-09 09:00+0000\n" +"PO-Revision-Date: 2013-12-15 11:41+0000\n" +"Last-Translator: Paco Molinero \n" +"Language-Team: Novell Language \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-12-16 17:21+0000\n" +"X-Generator: Launchpad (build 17286)\n" + +#. ok button label +#. txt_ok +msgid "OK" +msgstr "Aceptar" + +#. cancel button label +#. txt_cancel +msgid "Cancel" +msgstr "Cancelar" + +#. reboot button label +#. txt_reboot +msgid "Reboot" +msgstr "Reiniciar" + +#. continue button label +#. txt_continue +msgid "Continue" +msgstr "Continuar" + +#. txt_bootoptions +msgid "Boot Options" +msgstr "Opciones de arranque" + +#. window title for exit dialog +#. txt_exit_title (see txt_exit_dialog) +msgid "Exiting..." +msgstr "Saliendo..." + +#. txt_exit_dialog +msgid "" +"You are leaving the graphical boot menu and\n" +"starting the text mode interface." +msgstr "" +"Está saliendo del menú gráfico de arranque e\n" +"iniciando la interfaz en modo texto." + +#. txt_help +msgid "Help" +msgstr "Ayuda" + +#. info box title +#. txt_info_title +msgid "Boot loader" +msgstr "Cargador de arranque" + +#. error box title +#. txt_error_title +msgid "I/O error" +msgstr "Error de E/S" + +#. boot disk change dialog title +#. txt_change_disk_title +msgid "Change Boot Disk" +msgstr "Cambiar el disco de arranque" + +#. txt_insert_disk +#, c-format +msgid "Insert boot disk %u." +msgstr "Inserte el disco de arranque %u." + +#. txt_insert_disk2 +#, c-format +msgid "" +"This is boot disk %u.\n" +"Insert boot disk %u." +msgstr "" +"Este es el disco de arranque %u.\n" +"Inserte el disco de arranque %u." + +#. txt_insert_disk3 +#, c-format +msgid "" +"This is not a suitable boot disk.\n" +"Please insert boot disk %u." +msgstr "" +"Este no es un disco de arranque válido.\n" +"Inserte el disco de arranque %u." + +#. password dialog title +#. txt_password_title +msgid "Password" +msgstr "Contraseña" + +#. Keep the newlines and spaces after ':'! +#. txt_password +msgid "" +"Enter your password: \n" +"\n" +"\n" +msgstr "" +"Introduzca su contraseña: \n" +"\n" +"\n" + +#. dvd warning title +#. txt_dvd_warning_title +msgid "DVD Error" +msgstr "Error en el DVD" + +#. txt_dvd_warning2 +msgid "" +"This is a two-sided DVD. You have booted from the second side.\n" +"\n" +"Turn the DVD over then continue." +msgstr "" +"Este DVD es de doble cara. Ha arrancado desde la segunda cara.\n" +"\n" +"Dé la vuelta al DVD y continúe." + +#. power off dialog title +#. txt_power_off_title +msgid "Power Off" +msgstr "Apagar" + +#. txt_power_off +msgid "Halt the system now?" +msgstr "¿Detener el sistema ahora?" + +#. txt_password +msgid "Password\n" +msgstr "Contraseña\n" + +#. button label for other/more options +#. txt_other_options +msgid "Other Options" +msgstr "Otras opciones" + +#. label for language selection +#. txt_language +msgid "Locale" +msgstr "Ubicación" + +#. label for keymap selection +#. txt_keymap +msgid "Keymap" +msgstr "Teclado" + +#. label for installation mode selection +#. txt_modes +msgid "Modes" +msgstr "Modos" + +#. label for modes menu +#. txt_mode_normal +msgid "Normal" +msgstr "Normal" + +#. label for d-i mode menu +#. txt_expert_mode +msgid "Expert mode" +msgstr "Modo experto" + +#. title for accessibility menu +#. txt_access +msgid "Accessibility" +msgstr "Accesibilidad" + +#. label for accessibility menu +#. txt_access_none +msgid "None" +msgstr "Ninguna" + +#. label for accessibility menu +#. txt_access_v1 +msgid "High Contrast" +msgstr "Contraste alto" + +#. label for accessibility menu +#. txt_access_v2 +msgid "Magnifier" +msgstr "Lupa" + +#. label for accessibility menu +#. txt_access_v3 +msgid "Screen Reader" +msgstr "Lector de pantalla" + +#. label for accessibility menu +#. txt_access_brltty +msgid "Braille Terminal" +msgstr "Terminal Braille" + +#. label for accessibility menu +#. txt_access_m1 +msgid "Keyboard Modifiers" +msgstr "Modificadores de teclado" + +#. label for accessibility menu +#. txt_access_m2 +msgid "On-Screen Keyboard" +msgstr "Teclado en pantalla" + +#. label for accessibility menu +#. txt_access_m3 +msgid "Motor Difficulties - switch devices" +msgstr "Dificultades motoras - dispositivos de conmutación" + +#. label for accessibility menu +#. txt_access_all +msgid "Everything" +msgstr "Todo" + +#. Installation mode. +#. txt_menuitem_driverupdates +msgid "Use driver update disc" +msgstr "Usar disco de actualización de controladores" + +#. Installation mode. +#. txt_menuitem_workstation +msgid "Install a workstation" +msgstr "Instalar una estación de trabajo" + +#. Installation mode. +#. txt_menuitem_server +msgid "Install a server" +msgstr "Instalar un servidor" + +#. Installation mode. +#. txt_menuitem_oem +msgid "OEM install (for manufacturers)" +msgstr "Instalación OEM (para fabricantes)" + +#. Installation mode. +#. txt_menuitem_lamp +msgid "Install a LAMP server" +msgstr "Instalar un servidor LAMP" + +#. Installation mode. +#. txt_menuitem_ltsp +msgid "Install an LTSP server" +msgstr "Instalar un servidor LTSP" + +#. Installation mode. +#. txt_menuitem_cli +msgid "Install a command-line system" +msgstr "Instalar un sistema sin entorno gráfico" + +#. Installation mode. +#. txt_menuitem_minimal +msgid "Install a minimal system" +msgstr "Instalar un sistema mínimo" + +#. Installation mode. +#. txt_menuitem_minimalvm +msgid "Install a minimal virtual machine" +msgstr "Instalar una máquina virtual mínima" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_check +msgid "^Check disc for defects" +msgstr "^Comprobar defectos en el disco" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_rescue +msgid "^Rescue a broken system" +msgstr "^Recuperar un sistema dañado" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_memtest +msgid "Test ^memory" +msgstr "Comprobar la ^memoria" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_hd +msgid "^Boot from first hard disk" +msgstr "^Arrancar desde el primer disco duro" + +#. Boot option. +#. txt_option_free +msgid "Free software only" +msgstr "Solo software libre" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_dell_factory_recovery +msgid "^Dell Automatic Reinstall" +msgstr "Reinstalación automática de ^Dell" + +#. txt_resolution +msgid "Resolution" +msgstr "Resolución" + +#. txt_videodrv +msgid "Video" +msgstr "Vídeo" + +#. txt_video_driver_auto +msgid "Auto" +msgstr "" + +#. txt_no_composite +msgid "No Composite" +msgstr "" + +#. txt_audio +msgid "Audio" +msgstr "Sonido" diff --git a/po/et.po b/po/et.po new file mode 100644 index 0000000..21acc66 --- /dev/null +++ b/po/et.po @@ -0,0 +1,317 @@ +# Estonian translation for gfxboot-theme-ubuntu +# Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 +# This file is distributed under the same license as the gfxboot-theme-ubuntu package. +# FIRST AUTHOR , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: gfxboot-theme-ubuntu\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2006-03-18 12:14:59.394968+00:00\n" +"PO-Revision-Date: 2013-12-15 11:42+0000\n" +"Last-Translator: Launchpad Translations Administrators \n" +"Language-Team: Estonian \n" +"Language: et\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-12-16 17:20+0000\n" +"X-Generator: Launchpad (build 17286)\n" + +#. ok button label +#. txt_ok +msgid "OK" +msgstr "Olgu" + +#. cancel button label +#. txt_cancel +msgid "Cancel" +msgstr "Katkesta" + +#. reboot button label +#. txt_reboot +msgid "Reboot" +msgstr "Taaskäivita" + +#. continue button label +#. txt_continue +msgid "Continue" +msgstr "Jätka" + +#. txt_bootoptions +msgid "Boot Options" +msgstr "Alglaadimise valikud" + +#. window title for exit dialog +#. txt_exit_title (see txt_exit_dialog) +msgid "Exiting..." +msgstr "Väljumine..." + +#. txt_exit_dialog +msgid "" +"You are leaving the graphical boot menu and\n" +"starting the text mode interface." +msgstr "" +"Oled lahkumas graafilisest alglaadimismenüüst ning\n" +"alustad tekstiliidese kasutamist." + +#. txt_help +msgid "Help" +msgstr "Abi" + +#. info box title +#. txt_info_title +msgid "Boot loader" +msgstr "Alglaadur" + +#. error box title +#. txt_error_title +msgid "I/O error" +msgstr "S/V viga" + +#. boot disk change dialog title +#. txt_change_disk_title +msgid "Change Boot Disk" +msgstr "Alglaadimisketta vahetus" + +#. txt_insert_disk +#, c-format +msgid "Insert boot disk %u." +msgstr "Sisesta alglaadimisketas %u." + +#. txt_insert_disk2 +#, c-format +msgid "" +"This is boot disk %u.\n" +"Insert boot disk %u." +msgstr "" +"See on alglaadimisketas %u.\n" +"Sisesta alglaadimisketas %u." + +#. txt_insert_disk3 +#, c-format +msgid "" +"This is not a suitable boot disk.\n" +"Please insert boot disk %u." +msgstr "" +"See pole sobiv alglaadimisketas.\n" +"Palun sisesta alglaadimisketas %u." + +#. password dialog title +#. txt_password_title +msgid "Password" +msgstr "Parool" + +#. Keep the newlines and spaces after ':'! +#. txt_password +msgid "" +"Enter your password: \n" +"\n" +"\n" +msgstr "" +"Sisesta oma parool: \n" +"\n" +"\n" + +#. dvd warning title +#. txt_dvd_warning_title +msgid "DVD Error" +msgstr "DVD viga" + +#. txt_dvd_warning2 +msgid "" +"This is a two-sided DVD. You have booted from the second side.\n" +"\n" +"Turn the DVD over then continue." +msgstr "" +"See on kahepoolne DVD. Sa alustasid laadimist teiselt poolelt.\n" +"\n" +"Pööra DVD ümber ja jätka." + +#. power off dialog title +#. txt_power_off_title +msgid "Power Off" +msgstr "Lülita välja" + +#. txt_power_off +msgid "Halt the system now?" +msgstr "Kas seisata süsteem kohe?" + +#. txt_password +msgid "Password\n" +msgstr "Parool\n" + +#. button label for other/more options +#. txt_other_options +msgid "Other Options" +msgstr "Muud valikud" + +#. label for language selection +#. txt_language +msgid "Locale" +msgstr "Keeleseadistused" + +#. label for keymap selection +#. txt_keymap +msgid "Keymap" +msgstr "Klahvistik" + +#. label for installation mode selection +#. txt_modes +msgid "Modes" +msgstr "Režiim" + +#. label for modes menu +#. txt_mode_normal +msgid "Normal" +msgstr "Tavaline" + +#. label for d-i mode menu +#. txt_expert_mode +msgid "Expert mode" +msgstr "Asjatundjale" + +#. title for accessibility menu +#. txt_access +msgid "Accessibility" +msgstr "Hõlbustus" + +#. label for accessibility menu +#. txt_access_none +msgid "None" +msgstr "Puudub" + +#. label for accessibility menu +#. txt_access_v1 +msgid "High Contrast" +msgstr "Kõrge kontrast" + +#. label for accessibility menu +#. txt_access_v2 +msgid "Magnifier" +msgstr "Luup" + +#. label for accessibility menu +#. txt_access_v3 +msgid "Screen Reader" +msgstr "Ekraanilugeja" + +#. label for accessibility menu +#. txt_access_brltty +msgid "Braille Terminal" +msgstr "Braille terminal" + +#. label for accessibility menu +#. txt_access_m1 +msgid "Keyboard Modifiers" +msgstr "Muuteklahvid" + +#. label for accessibility menu +#. txt_access_m2 +msgid "On-Screen Keyboard" +msgstr "Ekraaniklaviatuur" + +#. label for accessibility menu +#. txt_access_m3 +msgid "Motor Difficulties - switch devices" +msgstr "Raskused mootoriga - vaheta seadmeid" + +#. label for accessibility menu +#. txt_access_all +msgid "Everything" +msgstr "Kõik" + +#. Installation mode. +#. txt_menuitem_driverupdates +msgid "Use driver update disc" +msgstr "Draiveriuuenduste plaadi kasutamine" + +#. Installation mode. +#. txt_menuitem_workstation +msgid "Install a workstation" +msgstr "Paigalda tööjaam" + +#. Installation mode. +#. txt_menuitem_server +msgid "Install a server" +msgstr "Paigalda server" + +#. Installation mode. +#. txt_menuitem_oem +msgid "OEM install (for manufacturers)" +msgstr "OEM-paigaldus (tootjatele)" + +#. Installation mode. +#. txt_menuitem_lamp +msgid "Install a LAMP server" +msgstr "Paigalda LAMP server" + +#. Installation mode. +#. txt_menuitem_ltsp +msgid "Install an LTSP server" +msgstr "Paigalda LTSP server" + +#. Installation mode. +#. txt_menuitem_cli +msgid "Install a command-line system" +msgstr "Paigalda käsureasüsteem" + +#. Installation mode. +#. txt_menuitem_minimal +msgid "Install a minimal system" +msgstr "Paigalda minimaalne süsteem" + +#. Installation mode. +#. txt_menuitem_minimalvm +msgid "Install a minimal virtual machine" +msgstr "Paigalda minimaalne virtuaalmasin" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_check +msgid "^Check disc for defects" +msgstr "Tee plaadile vigade ^kontroll" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_rescue +msgid "^Rescue a broken system" +msgstr "Pa^randa rikutud süsteem" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_memtest +msgid "Test ^memory" +msgstr "^Mälutest" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_hd +msgid "^Boot from first hard disk" +msgstr "Tee ^alglaadimine esimeselt kõvakettalt" + +#. Boot option. +#. txt_option_free +msgid "Free software only" +msgstr "Ainult vaba tarkvara" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_dell_factory_recovery +msgid "^Dell Automatic Reinstall" +msgstr "^Delli automaatne taaspaigaldus" + +#. txt_resolution +msgid "Resolution" +msgstr "Eraldusvõime" + +#. txt_videodrv +msgid "Video" +msgstr "Video" + +#. txt_video_driver_auto +msgid "Auto" +msgstr "" + +#. txt_no_composite +msgid "No composite" +msgstr "" + +#. txt_audio +msgid "Audio" +msgstr "Heli" diff --git a/po/fi.po b/po/fi.po new file mode 100644 index 0000000..1ab8e9c --- /dev/null +++ b/po/fi.po @@ -0,0 +1,318 @@ +# translation of bootloader.fi.po to +# translation of bootloader.po to +# LANGUAGE translations for boot loader +# Copyright (C) 2005 SUSE Linux GmbH +# Jyri Palokangas , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: bootloader.fi\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-10-09 09:00+0000\n" +"PO-Revision-Date: 2013-12-15 11:42+0000\n" +"Last-Translator: Launchpad Translations Administrators \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-12-16 17:20+0000\n" +"X-Generator: Launchpad (build 17286)\n" + +#. ok button label +#. txt_ok +msgid "OK" +msgstr "OK" + +#. cancel button label +#. txt_cancel +msgid "Cancel" +msgstr "Peru" + +#. reboot button label +#. txt_reboot +msgid "Reboot" +msgstr "Käynnistä uudelleen" + +#. continue button label +#. txt_continue +msgid "Continue" +msgstr "Jatka" + +#. txt_bootoptions +msgid "Boot Options" +msgstr "Käynnistysvalinnat" + +#. window title for exit dialog +#. txt_exit_title (see txt_exit_dialog) +msgid "Exiting..." +msgstr "Poistutaan..." + +#. txt_exit_dialog +msgid "" +"You are leaving the graphical boot menu and\n" +"starting the text mode interface." +msgstr "" +"Olet poistumassa graafisesta käynnistysvalikosta ja\n" +"käynnistämässä tekstipohjaisen käyttöliittymän." + +#. txt_help +msgid "Help" +msgstr "Ohje" + +#. info box title +#. txt_info_title +msgid "Boot loader" +msgstr "Käynnistyslataaja" + +#. error box title +#. txt_error_title +msgid "I/O error" +msgstr "Siirräntävirhe" + +#. boot disk change dialog title +#. txt_change_disk_title +msgid "Change Boot Disk" +msgstr "Vaihda käynnistyslevy" + +#. txt_insert_disk +#, c-format +msgid "Insert boot disk %u." +msgstr "Anna käynnistyslevy %u." + +#. txt_insert_disk2 +#, c-format +msgid "" +"This is boot disk %u.\n" +"Insert boot disk %u." +msgstr "" +"Tämä on käynnistyslevy %u.\n" +"Anna käynnistyslevy %u." + +#. txt_insert_disk3 +#, c-format +msgid "" +"This is not a suitable boot disk.\n" +"Please insert boot disk %u." +msgstr "" +"Tämä ei ole kelvollinen käynnistyslevy.\n" +"Aseta käynnistyslevy %u asemaan." + +#. password dialog title +#. txt_password_title +msgid "Password" +msgstr "Salasana" + +#. Keep the newlines and spaces after ':'! +#. txt_password +msgid "" +"Enter your password: \n" +"\n" +"\n" +msgstr "" +"Anna salasanasi: \n" +"\n" +"\n" + +#. dvd warning title +#. txt_dvd_warning_title +msgid "DVD Error" +msgstr "DVD-virhe" + +#. txt_dvd_warning2 +msgid "" +"This is a two-sided DVD. You have booted from the second side.\n" +"\n" +"Turn the DVD over then continue." +msgstr "" +"Tämä on kaksipuoleinen DVD. Olet käynnistänyt kakkospuolelta.\n" +"\n" +"Käännä DVD toisinpäin ja jatka sitten." + +#. power off dialog title +#. txt_power_off_title +msgid "Power Off" +msgstr "Sammuta" + +#. txt_power_off +msgid "Halt the system now?" +msgstr "Pysäytetäänkö järjestelmä nyt?" + +#. txt_password +msgid "Password\n" +msgstr "Salasana\n" + +#. button label for other/more options +#. txt_other_options +msgid "Other Options" +msgstr "Muut valinnat" + +#. label for language selection +#. txt_language +msgid "Locale" +msgstr "Maa-asetukset" + +#. label for keymap selection +#. txt_keymap +msgid "Keymap" +msgstr "Näppäimistö" + +#. label for installation mode selection +#. txt_modes +msgid "Modes" +msgstr "Tilat" + +#. label for modes menu +#. txt_mode_normal +msgid "Normal" +msgstr "Tavallinen" + +#. label for d-i mode menu +#. txt_expert_mode +msgid "Expert mode" +msgstr "Asiantuntijatila" + +#. title for accessibility menu +#. txt_access +msgid "Accessibility" +msgstr "Esteettömyys" + +#. label for accessibility menu +#. txt_access_none +msgid "None" +msgstr "Ei mikään" + +#. label for accessibility menu +#. txt_access_v1 +msgid "High Contrast" +msgstr "Suuri kontrasti" + +#. label for accessibility menu +#. txt_access_v2 +msgid "Magnifier" +msgstr "Suurennuslasi" + +#. label for accessibility menu +#. txt_access_v3 +msgid "Screen Reader" +msgstr "Näytönluku" + +#. label for accessibility menu +#. txt_access_brltty +msgid "Braille Terminal" +msgstr "Pistekirjoituspääte" + +#. label for accessibility menu +#. txt_access_m1 +msgid "Keyboard Modifiers" +msgstr "Asettelun valinnat" + +#. label for accessibility menu +#. txt_access_m2 +msgid "On-Screen Keyboard" +msgstr "Näppäimistö näytöllä" + +#. label for accessibility menu +#. txt_access_m3 +msgid "Motor Difficulties - switch devices" +msgstr "Motoriset vaikeudet - valintalaitteet" + +#. label for accessibility menu +#. txt_access_all +msgid "Everything" +msgstr "Kaikki" + +#. Installation mode. +#. txt_menuitem_driverupdates +msgid "Use driver update disc" +msgstr "Käytä ajuripäivityslevyä" + +#. Installation mode. +#. txt_menuitem_workstation +msgid "Install a workstation" +msgstr "Työasema-asennus" + +#. Installation mode. +#. txt_menuitem_server +msgid "Install a server" +msgstr "Palvelinasennus" + +#. Installation mode. +#. txt_menuitem_oem +msgid "OEM install (for manufacturers)" +msgstr "OEM-asennus (laitevalmistajille)" + +#. Installation mode. +#. txt_menuitem_lamp +msgid "Install a LAMP server" +msgstr "Asenna LAMP-palvelin" + +#. Installation mode. +#. txt_menuitem_ltsp +msgid "Install an LTSP server" +msgstr "Asenna LTSP-palvelin" + +#. Installation mode. +#. txt_menuitem_cli +msgid "Install a command-line system" +msgstr "Asenna komentorivijärjestelmä" + +#. Installation mode. +#. txt_menuitem_minimal +msgid "Install a minimal system" +msgstr "Asenna minimaalinen järjestelmä" + +#. Installation mode. +#. txt_menuitem_minimalvm +msgid "Install a minimal virtual machine" +msgstr "Asenna minimaalinen virtuaalikone" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_check +msgid "^Check disc for defects" +msgstr "^Tarkista levyn virheettömyys" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_rescue +msgid "^Rescue a broken system" +msgstr "^Korjaa rikkinäinen järjestelmä" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_memtest +msgid "Test ^memory" +msgstr "^Muistin tarkistus" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_hd +msgid "^Boot from first hard disk" +msgstr "Käynnistä ^ensimmäiseltä kiintolevyltä" + +#. Boot option. +#. txt_option_free +msgid "Free software only" +msgstr "Vain vapaita ohjelm." + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_dell_factory_recovery +msgid "^Dell Automatic Reinstall" +msgstr "^Dellin automaattinen uudelleenasennus" + +#. txt_resolution +msgid "Resolution" +msgstr "Tarkkuus" + +#. txt_videodrv +msgid "Video" +msgstr "Video" + +#. txt_video_driver_auto +msgid "Auto" +msgstr "" + +#. txt_no_composite +msgid "No composite" +msgstr "" + +#. txt_audio +msgid "Audio" +msgstr "Ääni" diff --git a/po/fr.po b/po/fr.po new file mode 100644 index 0000000..ae5c970 --- /dev/null +++ b/po/fr.po @@ -0,0 +1,321 @@ +# translation of po_bootloader-fr.po to French +# translation of fr.po to +# LANGUAGE translations for boot loader +# Copyright (C) 2004 SUSE LINUX AG +# +# Patricia Vaz , 2004. +# Patricia Vaz , 2004. +# Patricia Vaz , 2005. +# Bruno Patri , 2008. +msgid "" +msgstr "" +"Project-Id-Version: po_bootloader-fr\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-10-09 09:00+0000\n" +"PO-Revision-Date: 2014-07-13 16:46+0000\n" +"Last-Translator: Éfrit \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-12-16 17:20+0000\n" +"X-Generator: Launchpad (build 17286)\n" + +#. ok button label +#. txt_ok +msgid "OK" +msgstr "Ok" + +#. cancel button label +#. txt_cancel +msgid "Cancel" +msgstr "Annuler" + +#. reboot button label +#. txt_reboot +msgid "Reboot" +msgstr "Redémarrer" + +#. continue button label +#. txt_continue +msgid "Continue" +msgstr "Continuer" + +#. txt_bootoptions +msgid "Boot Options" +msgstr "Options d'amorçage" + +#. window title for exit dialog +#. txt_exit_title (see txt_exit_dialog) +msgid "Exiting..." +msgstr "Fermeture..." + +#. txt_exit_dialog +msgid "" +"You are leaving the graphical boot menu and\n" +"starting the text mode interface." +msgstr "" +"Vous quittez le menu d'amorçage graphique et\n" +"accédez à l'interface en mode texte." + +#. txt_help +msgid "Help" +msgstr "Aide" + +#. info box title +#. txt_info_title +msgid "Boot loader" +msgstr "Chargeur d'amorçage" + +#. error box title +#. txt_error_title +msgid "I/O error" +msgstr "Erreur d'E/S" + +#. boot disk change dialog title +#. txt_change_disk_title +msgid "Change Boot Disk" +msgstr "Changer de disque d'amorçage" + +#. txt_insert_disk +#, c-format +msgid "Insert boot disk %u." +msgstr "Insérer le disque d'amorçage %u." + +#. txt_insert_disk2 +#, c-format +msgid "" +"This is boot disk %u.\n" +"Insert boot disk %u." +msgstr "" +"Ceci est le disque d'amorçage %u.\n" +"Insérez le disque d'amorçage %u." + +#. txt_insert_disk3 +#, c-format +msgid "" +"This is not a suitable boot disk.\n" +"Please insert boot disk %u." +msgstr "" +"Ce n’est pas un disque d’amorçage adéquat.\n" +"Veuillez insérer un disque d’amorçage %u." + +#. password dialog title +#. txt_password_title +msgid "Password" +msgstr "Mot de passe" + +#. Keep the newlines and spaces after ':'! +#. txt_password +msgid "" +"Enter your password: \n" +"\n" +"\n" +msgstr "" +"Saisissez votre mot de passe : \n" +"\n" +"\n" + +#. dvd warning title +#. txt_dvd_warning_title +msgid "DVD Error" +msgstr "Erreur de DVD" + +#. txt_dvd_warning2 +msgid "" +"This is a two-sided DVD. You have booted from the second side.\n" +"\n" +"Turn the DVD over then continue." +msgstr "" +"Ceci est un DVD double face. Vous avez amorcé à partir de la seconde face.\n" +"\n" +"Retournez le DVD puis continuez." + +#. power off dialog title +#. txt_power_off_title +msgid "Power Off" +msgstr "Extinction" + +#. txt_power_off +msgid "Halt the system now?" +msgstr "Arrêter le système maintenant ?" + +#. txt_password +msgid "Password\n" +msgstr "Mot de passe\n" + +#. button label for other/more options +#. txt_other_options +msgid "Other Options" +msgstr "Autres options" + +#. label for language selection +#. txt_language +msgid "Locale" +msgstr "Localisation" + +#. label for keymap selection +#. txt_keymap +msgid "Keymap" +msgstr "Agencement du clavier" + +#. label for installation mode selection +#. txt_modes +msgid "Modes" +msgstr "Modes" + +#. label for modes menu +#. txt_mode_normal +msgid "Normal" +msgstr "Normal" + +#. label for d-i mode menu +#. txt_expert_mode +msgid "Expert mode" +msgstr "Mode expert" + +#. title for accessibility menu +#. txt_access +msgid "Accessibility" +msgstr "Accessibilité" + +#. label for accessibility menu +#. txt_access_none +msgid "None" +msgstr "Aucun" + +#. label for accessibility menu +#. txt_access_v1 +msgid "High Contrast" +msgstr "Contraste élevé" + +#. label for accessibility menu +#. txt_access_v2 +msgid "Magnifier" +msgstr "Loupe" + +#. label for accessibility menu +#. txt_access_v3 +msgid "Screen Reader" +msgstr "Lecteur d'écran" + +#. label for accessibility menu +#. txt_access_brltty +msgid "Braille Terminal" +msgstr "Terminal Braille" + +#. label for accessibility menu +#. txt_access_m1 +msgid "Keyboard Modifiers" +msgstr "Modificateurs de clavier" + +#. label for accessibility menu +#. txt_access_m2 +msgid "On-Screen Keyboard" +msgstr "Clavier à l'écran" + +#. label for accessibility menu +#. txt_access_m3 +msgid "Motor Difficulties - switch devices" +msgstr "Difficultés motrices - interrupteurs" + +#. label for accessibility menu +#. txt_access_all +msgid "Everything" +msgstr "Tout" + +#. Installation mode. +#. txt_menuitem_driverupdates +msgid "Use driver update disc" +msgstr "Utiliser le disque de mises à jour de pilotes" + +#. Installation mode. +#. txt_menuitem_workstation +msgid "Install a workstation" +msgstr "Installer un poste de travail" + +#. Installation mode. +#. txt_menuitem_server +msgid "Install a server" +msgstr "Installer un serveur" + +#. Installation mode. +#. txt_menuitem_oem +msgid "OEM install (for manufacturers)" +msgstr "Installation OEM (pour les intégrateurs)" + +#. Installation mode. +#. txt_menuitem_lamp +msgid "Install a LAMP server" +msgstr "Installer un serveur LAMP" + +#. Installation mode. +#. txt_menuitem_ltsp +msgid "Install an LTSP server" +msgstr "Installer un serveur LTSP" + +#. Installation mode. +#. txt_menuitem_cli +msgid "Install a command-line system" +msgstr "Installer un système en ligne de commande" + +#. Installation mode. +#. txt_menuitem_minimal +msgid "Install a minimal system" +msgstr "Installer un sytème minimal" + +#. Installation mode. +#. txt_menuitem_minimalvm +msgid "Install a minimal virtual machine" +msgstr "Installer une machine virtuelle minimale" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_check +msgid "^Check disc for defects" +msgstr "^Vérifier si le disque a des défauts" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_rescue +msgid "^Rescue a broken system" +msgstr "^Récupérer un système endommagé" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_memtest +msgid "Test ^memory" +msgstr "Tester la ^mémoire" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_hd +msgid "^Boot from first hard disk" +msgstr "^Amorcer à partir du premier disque dur" + +#. Boot option. +#. txt_option_free +msgid "Free software only" +msgstr "Uniquement des logiciels libres" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_dell_factory_recovery +msgid "^Dell Automatic Reinstall" +msgstr "^Réinstallation automatique Dell" + +#. txt_resolution +msgid "Resolution" +msgstr "Résolution vidéo" + +#. txt_videodrv +msgid "Video" +msgstr "Vidéo" + +#. txt_video_driver_auto +msgid "Auto" +msgstr "" + +#. txt_no_composite +msgid "No Composite" +msgstr "" + +#. txt_audio +msgid "Audio" +msgstr "Áudio" diff --git a/po/hr.po b/po/hr.po new file mode 100644 index 0000000..8fe1370 --- /dev/null +++ b/po/hr.po @@ -0,0 +1,317 @@ +# Croatian translation for gfxboot-theme-ubuntu +# Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 +# This file is distributed under the same license as the gfxboot-theme-ubuntu package. +# FIRST AUTHOR , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: gfxboot-theme-ubuntu\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2006-03-18 12:14:59.394968+00:00\n" +"PO-Revision-Date: 2012-05-14 16:21+0000\n" +"Last-Translator: Saša Teković \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-12-16 17:21+0000\n" +"X-Generator: Launchpad (build 17286)\n" + +#. ok button label +#. txt_ok +msgid "OK" +msgstr "OK" + +#. cancel button label +#. txt_cancel +msgid "Cancel" +msgstr "Otkaži" + +#. reboot button label +#. txt_reboot +msgid "Reboot" +msgstr "Ponovo pokreni" + +#. continue button label +#. txt_continue +msgid "Continue" +msgstr "Nastavi" + +#. txt_bootoptions +msgid "Boot Options" +msgstr "Mogućnosti podizanja sustava" + +#. window title for exit dialog +#. txt_exit_title (see txt_exit_dialog) +msgid "Exiting..." +msgstr "Izlazak..." + +#. txt_exit_dialog +msgid "" +"You are leaving the graphical boot menu and\n" +"starting the text mode interface." +msgstr "" +"Napuštate grafički izbornik i\n" +"pokrećete tekstualno sučelje." + +#. txt_help +msgid "Help" +msgstr "Pomoć" + +#. info box title +#. txt_info_title +msgid "Boot loader" +msgstr "Boot učitavač" + +#. error box title +#. txt_error_title +msgid "I/O error" +msgstr "I/O greška" + +#. boot disk change dialog title +#. txt_change_disk_title +msgid "Change Boot Disk" +msgstr "Promijenite boot disk" + +#. txt_insert_disk +#, c-format +msgid "Insert boot disk %u." +msgstr "Umetnite boot disk %u." + +#. txt_insert_disk2 +#, c-format +msgid "" +"This is boot disk %u.\n" +"Insert boot disk %u." +msgstr "" +"Ovo je boot disk %u.\n" +"Umetnite boot disk %u." + +#. txt_insert_disk3 +#, c-format +msgid "" +"This is not a suitable boot disk.\n" +"Please insert boot disk %u." +msgstr "" +"Ovo nije ispravan boot disk.\n" +"Molim umetnite boot disk %u." + +#. password dialog title +#. txt_password_title +msgid "Password" +msgstr "Lozinka" + +#. Keep the newlines and spaces after ':'! +#. txt_password +msgid "" +"Enter your password: \n" +"\n" +"\n" +msgstr "" +"Upišite svoju lozinku: \n" +"\n" +"\n" + +#. dvd warning title +#. txt_dvd_warning_title +msgid "DVD Error" +msgstr "DVD greška" + +#. txt_dvd_warning2 +msgid "" +"This is a two-sided DVD. You have booted from the second side.\n" +"\n" +"Turn the DVD over then continue." +msgstr "" +"Ovo je dvoslojni DVD. Podigli ste sustav s druge strane.\n" +"\n" +"Okrenite DVD i nastavite." + +#. power off dialog title +#. txt_power_off_title +msgid "Power Off" +msgstr "Isključivanje" + +#. txt_power_off +msgid "Halt the system now?" +msgstr "Zaustaviti sustav odmah?" + +#. txt_password +msgid "Password\n" +msgstr "Lozinka\n" + +#. button label for other/more options +#. txt_other_options +msgid "Other Options" +msgstr "Opcije" + +#. label for language selection +#. txt_language +msgid "Locale" +msgstr "Lokalno" + +#. label for keymap selection +#. txt_keymap +msgid "Keymap" +msgstr "Raspored tipkovnice" + +#. label for installation mode selection +#. txt_modes +msgid "Modes" +msgstr "Načini" + +#. label for modes menu +#. txt_mode_normal +msgid "Normal" +msgstr "Normalno" + +#. label for d-i mode menu +#. txt_expert_mode +msgid "Expert mode" +msgstr "Napredno" + +#. title for accessibility menu +#. txt_access +msgid "Accessibility" +msgstr "Pristupačnost" + +#. label for accessibility menu +#. txt_access_none +msgid "None" +msgstr "Ništa" + +#. label for accessibility menu +#. txt_access_v1 +msgid "High Contrast" +msgstr "Veliki kontrast" + +#. label for accessibility menu +#. txt_access_v2 +msgid "Magnifier" +msgstr "Povećalo" + +#. label for accessibility menu +#. txt_access_v3 +msgid "Screen Reader" +msgstr "Čitač ekrana" + +#. label for accessibility menu +#. txt_access_brltty +msgid "Braille Terminal" +msgstr "Brailov terminal" + +#. label for accessibility menu +#. txt_access_m1 +msgid "Keyboard Modifiers" +msgstr "Parametri tipkovnice" + +#. label for accessibility menu +#. txt_access_m2 +msgid "On-Screen Keyboard" +msgstr "Tipkovnica na ekranu" + +#. label for accessibility menu +#. txt_access_m3 +msgid "Motor Difficulties - switch devices" +msgstr "Motoričke poteškoće - zamjeni uređaje" + +#. label for accessibility menu +#. txt_access_all +msgid "Everything" +msgstr "Sve" + +#. Installation mode. +#. txt_menuitem_driverupdates +msgid "Use driver update disc" +msgstr "Koristi medij nadograđenih upravljačkih programa" + +#. Installation mode. +#. txt_menuitem_workstation +msgid "Install a workstation" +msgstr "Instaliraj radnu stanicu" + +#. Installation mode. +#. txt_menuitem_server +msgid "Install a server" +msgstr "Instaliraj poslužitelja" + +#. Installation mode. +#. txt_menuitem_oem +msgid "OEM install (for manufacturers)" +msgstr "OEM instalacija (za proizvođače)" + +#. Installation mode. +#. txt_menuitem_lamp +msgid "Install a LAMP server" +msgstr "Instaliraj LAMP poslužitelja" + +#. Installation mode. +#. txt_menuitem_ltsp +msgid "Install an LTSP server" +msgstr "Instaliraj LTSP poslužitelja" + +#. Installation mode. +#. txt_menuitem_cli +msgid "Install a command-line system" +msgstr "Instaliraj komandno-linijski sustav" + +#. Installation mode. +#. txt_menuitem_minimal +msgid "Install a minimal system" +msgstr "Instaliraj minimalni sustav" + +#. Installation mode. +#. txt_menuitem_minimalvm +msgid "Install a minimal virtual machine" +msgstr "Instaliraj minimalni virtualni stroj" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_check +msgid "^Check disc for defects" +msgstr "^Provjeri disk za oštećenja" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_rescue +msgid "^Rescue a broken system" +msgstr "^Spasi uništeni sustav" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_memtest +msgid "Test ^memory" +msgstr "Testiraj ^memoriju" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_hd +msgid "^Boot from first hard disk" +msgstr "^Podigni s prvog čvrstog diska" + +#. Boot option. +#. txt_option_free +msgid "Free software only" +msgstr "Samo slobodni softver" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_dell_factory_recovery +msgid "^Dell Automatic Reinstall" +msgstr "^Dellova automatska reinstalacija" + +#. txt_resolution +msgid "Resolution" +msgstr "Razlučivost" + +#. txt_videodrv +msgid "Video" +msgstr "Video" + +#. txt_video_driver_auto +msgid "Auto" +msgstr "Auto" + +#. txt_no_composite +msgid "No Composite" +msgstr "" + +#. txt_audio +msgid "Audio" +msgstr "Audio" diff --git a/po/hu.po b/po/hu.po new file mode 100644 index 0000000..3515f0c --- /dev/null +++ b/po/hu.po @@ -0,0 +1,320 @@ +# translation of hu.po to Hungarian +# translation of bootloader.hu.po to hungarian +# translation of bootloader.po to hungarian +# LANGUAGE translations for boot loader +# Copyright (C) 2004 SUSE LINUX AG +# Marcel Hilzinger , 2004. +# Szabolcs Varga , 2004, 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: hu\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2013-12-15 11:42+0000\n" +"Last-Translator: Úr Balázs \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-12-16 17:20+0000\n" +"X-Generator: Launchpad (build 17286)\n" + +#. ok button label +#. txt_ok +msgid "OK" +msgstr "OK" + +#. cancel button label +#. txt_cancel +msgid "Cancel" +msgstr "Mégse" + +#. reboot button label +#. txt_reboot +msgid "Reboot" +msgstr "Újraindítás" + +#. continue button label +#. txt_continue +msgid "Continue" +msgstr "Folytatás" + +#. txt_bootoptions +msgid "Boot Options" +msgstr "Paraméterek" + +#. window title for exit dialog +#. txt_exit_title (see txt_exit_dialog) +msgid "Exiting..." +msgstr "Kilépés..." + +#. txt_exit_dialog +msgid "" +"You are leaving the graphical boot menu and\n" +"starting the text mode interface." +msgstr "" +"Kilép a grafikus rendszerindító menüből.\n" +"El fog indulni a szöveges módú felület." + +#. txt_help +msgid "Help" +msgstr "Súgó" + +#. info box title +#. txt_info_title +msgid "Boot loader" +msgstr "Rendszertöltő" + +#. error box title +#. txt_error_title +msgid "I/O error" +msgstr "I/O hiba" + +#. boot disk change dialog title +#. txt_change_disk_title +msgid "Change Boot Disk" +msgstr "Cserélje az indítólemezt" + +#. txt_insert_disk +#, c-format +msgid "Insert boot disk %u." +msgstr "Kérem, helyezze be a(z) %u indítólemezt." + +#. txt_insert_disk2 +#, c-format +msgid "" +"This is boot disk %u.\n" +"Insert boot disk %u." +msgstr "" +"Ez a(z) %u indítólemez.\n" +"Kérem, helyezze be a(z) %u indítólemezt." + +#. txt_insert_disk3 +#, c-format +msgid "" +"This is not a suitable boot disk.\n" +"Please insert boot disk %u." +msgstr "" +"Ez nem egy megfelelő indítólemez.\n" +"Kérem, helyezze be a(z) %u indítólemezt." + +#. password dialog title +#. txt_password_title +msgid "Password" +msgstr "Jelszó" + +#. Keep the newlines and spaces after ':'! +#. txt_password +msgid "" +"Enter your password: \n" +"\n" +"\n" +msgstr "" +"Kérem, adja meg a jelszót: \n" +"\n" +"\n" + +#. dvd warning title +#. txt_dvd_warning_title +msgid "DVD Error" +msgstr "DVD-hiba" + +#. txt_dvd_warning2 +msgid "" +"This is a two-sided DVD. You have booted from the second side.\n" +"\n" +"Turn the DVD over then continue." +msgstr "" +"Ez egy kétoldalas DVD. Ön a rendszerindításhoz a második oldalt használta.\n" +"\n" +"Kérem, fordítsa meg a DVD-t, majd folytassa." + +#. power off dialog title +#. txt_power_off_title +msgid "Power Off" +msgstr "Gép kikapcsolása" + +#. txt_power_off +msgid "Halt the system now?" +msgstr "Ki akarja most kapcsolni a számítógépet?" + +#. txt_password +msgid "Password\n" +msgstr "Jelszó\n" + +#. button label for other/more options +#. txt_other_options +msgid "Other Options" +msgstr "Beállítások" + +#. label for language selection +#. txt_language +msgid "Locale" +msgstr "Nyelvi beállítások" + +#. label for keymap selection +#. txt_keymap +msgid "Keymap" +msgstr "Billentyűzet" + +#. label for installation mode selection +#. txt_modes +msgid "Modes" +msgstr "Módok" + +#. label for modes menu +#. txt_mode_normal +msgid "Normal" +msgstr "Normál" + +#. label for d-i mode menu +#. txt_expert_mode +msgid "Expert mode" +msgstr "Szakértő mód" + +#. title for accessibility menu +#. txt_access +msgid "Accessibility" +msgstr "Akadálymentesítés" + +#. label for accessibility menu +#. txt_access_none +msgid "None" +msgstr "Nincs" + +#. label for accessibility menu +#. txt_access_v1 +msgid "High Contrast" +msgstr "Nagy kontraszt" + +#. label for accessibility menu +#. txt_access_v2 +msgid "Magnifier" +msgstr "Nagyító" + +#. label for accessibility menu +#. txt_access_v3 +msgid "Screen Reader" +msgstr "Képernyőolvasó" + +#. label for accessibility menu +#. txt_access_brltty +msgid "Braille Terminal" +msgstr "Braille terminál" + +#. label for accessibility menu +#. txt_access_m1 +msgid "Keyboard Modifiers" +msgstr "Bilentyűzetmódosítók" + +#. label for accessibility menu +#. txt_access_m2 +msgid "On-Screen Keyboard" +msgstr "Képernyő-billentyűzet" + +#. label for accessibility menu +#. txt_access_m3 +msgid "Motor Difficulties - switch devices" +msgstr "Mozgási nehézségek - kapcsolóeszközök" + +#. label for accessibility menu +#. txt_access_all +msgid "Everything" +msgstr "Minden" + +#. Installation mode. +#. txt_menuitem_driverupdates +msgid "Use driver update disc" +msgstr "Meghajtófrissítő-lemez használata" + +#. Installation mode. +#. txt_menuitem_workstation +msgid "Install a workstation" +msgstr "Munkaállomás telepítése" + +#. Installation mode. +#. txt_menuitem_server +msgid "Install a server" +msgstr "Kiszolgáló telepítése" + +#. Installation mode. +#. txt_menuitem_oem +msgid "OEM install (for manufacturers)" +msgstr "OEM telepítés (gyártók számára)" + +#. Installation mode. +#. txt_menuitem_lamp +msgid "Install a LAMP server" +msgstr "LAMP kiszolgáló telepítése" + +#. Installation mode. +#. txt_menuitem_ltsp +msgid "Install an LTSP server" +msgstr "LTSP kiszolgáló telepítése" + +#. Installation mode. +#. txt_menuitem_cli +msgid "Install a command-line system" +msgstr "Parancssoros rendszer telepítése" + +#. Installation mode. +#. txt_menuitem_minimal +msgid "Install a minimal system" +msgstr "Minimális rendszer telepítése" + +#. Installation mode. +#. txt_menuitem_minimalvm +msgid "Install a minimal virtual machine" +msgstr "Minimális virtuális gép telepítése" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_check +msgid "^Check disc for defects" +msgstr "^Lemez hibaellenőrzése" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_rescue +msgid "^Rescue a broken system" +msgstr "^Sérült rendszer javítása" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_memtest +msgid "Test ^memory" +msgstr "^Memóriateszt" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_hd +msgid "^Boot from first hard disk" +msgstr "^Rendszerindítás az első merevlemezről" + +#. Boot option. +#. txt_option_free +msgid "Free software only" +msgstr "Csak szabad szoftver" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_dell_factory_recovery +msgid "^Dell Automatic Reinstall" +msgstr "^Dell automatikus újratelepítés" + +#. txt_resolution +msgid "Resolution" +msgstr "Felbontás" + +#. txt_videodrv +msgid "Video" +msgstr "Videó" + +#. txt_video_driver_auto +msgid "Auto" +msgstr "" + +#. txt_no_composite +msgid "No composite" +msgstr "" + +#. txt_audio +msgid "Audio" +msgstr "Hang" diff --git a/po/is.po b/po/is.po new file mode 100644 index 0000000..6bf51fb --- /dev/null +++ b/po/is.po @@ -0,0 +1,319 @@ +# Icelandic translation for gfxboot-theme-ubuntu +# Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 +# The translations are Copyright (C) of the contributing translators. +# Copyright (C) 2010, 2014 Free Software Foundation, Inc. +# This file is distributed under the same license as the gfxboot-theme-ubuntu package. +# +# Sveinn í Felli , 2010, 2014. +msgid "" +msgstr "" +"Project-Id-Version: gfxboot-theme-ubuntu\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-10-05 17:50+0000\n" +"PO-Revision-Date: 2014-04-18 20:36+0000\n" +"Last-Translator: Sveinn í Felli \n" +"Language-Team: Icelandic \n" +"Language: is\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-12-16 17:20+0000\n" +"X-Generator: Launchpad (build 17286)\n" + +#. ok button label +#. txt_ok +msgid "OK" +msgstr "Samþykkt" + +#. cancel button label +#. txt_cancel +msgid "Cancel" +msgstr "Hætta Við" + +#. reboot button label +#. txt_reboot +msgid "Reboot" +msgstr "Endurræsa" + +#. continue button label +#. txt_continue +msgid "Continue" +msgstr "Áfram" + +#. txt_bootoptions +msgid "Boot Options" +msgstr "Ræsivalmöguleikar" + +#. window title for exit dialog +#. txt_exit_title (see txt_exit_dialog) +msgid "Exiting..." +msgstr "Hætti..." + +#. txt_exit_dialog +msgid "" +"You are leaving the graphical boot menu and\n" +"starting the text mode interface." +msgstr "" +"Þú ert að fara úr myndrænu viðmóti\n" +"yfir í textaviðmót." + +#. txt_help +msgid "Help" +msgstr "Hjálp" + +#. info box title +#. txt_info_title +msgid "Boot loader" +msgstr "Ræsistjóri" + +#. error box title +#. txt_error_title +msgid "I/O error" +msgstr "Inntaks/úttaksvilla" + +#. boot disk change dialog title +#. txt_change_disk_title +msgid "Change Boot Disk" +msgstr "Skipta um ræsidisk" + +#. txt_insert_disk +#, c-format +msgid "Insert boot disk %u." +msgstr "Settu inn ræsidisk %u." + +#. txt_insert_disk2 +#, c-format +msgid "" +"This is boot disk %u.\n" +"Insert boot disk %u." +msgstr "" +"Þetta er ræsidiskur %u.\n" +"Settu inn ræsidisk %u." + +#. txt_insert_disk3 +#, c-format +msgid "" +"This is not a suitable boot disk.\n" +"Please insert boot disk %u." +msgstr "" +"Þetta er ekki gjaldgengur ræsidiskur.\n" +"Vinsamlegast settu inn ræsidisk %u." + +#. password dialog title +#. txt_password_title +msgid "Password" +msgstr "Lykilorð" + +#. Keep the newlines and spaces after ':'! +#. txt_password +msgid "" +"Enter your password: \n" +"\n" +"\n" +msgstr "" +"Sláðu inn lykilorðið þitt: \n" +"\n" +"\n" + +#. dvd warning title +#. txt_dvd_warning_title +msgid "DVD Error" +msgstr "DVD-villa" + +#. txt_dvd_warning2 +msgid "" +"This is a two-sided DVD. You have booted from the second side.\n" +"\n" +"Turn the DVD over then continue." +msgstr "" +"Þetta er tveggja hliða DVD-diskur. Þú hefur ræst af seinni hliðinni.\n" +"\n" +"Snúðu disknum á hina hliðina og haltu síðan áfram." + +#. power off dialog title +#. txt_power_off_title +msgid "Power Off" +msgstr "Slökkva" + +#. txt_power_off +msgid "Halt the system now?" +msgstr "Stöðva kerfið núna?" + +#. txt_password +msgid "Password\n" +msgstr "Lykilorð\n" + +#. button label for other/more options +#. txt_other_options +msgid "Other Options" +msgstr "Aðrar stillingar" + +#. label for language selection +#. txt_language +msgid "Locale" +msgstr "Landsstaðall" + +#. label for keymap selection +#. txt_keymap +msgid "Keymap" +msgstr "Lyklaborðsvörpun" + +#. label for installation mode selection +#. txt_modes +msgid "Modes" +msgstr "Leiðir" + +#. label for modes menu +#. txt_mode_normal +msgid "Normal" +msgstr "Venjulegt" + +#. label for d-i mode menu +#. txt_expert_mode +msgid "Expert mode" +msgstr "Fyrir sérfræðinga" + +#. title for accessibility menu +#. txt_access +msgid "Accessibility" +msgstr "Auðveldað aðgengi" + +#. label for accessibility menu +#. txt_access_none +msgid "None" +msgstr "Ekkert" + +#. label for accessibility menu +#. txt_access_v1 +msgid "High Contrast" +msgstr "Mikil birtuskil" + +#. label for accessibility menu +#. txt_access_v2 +msgid "Magnifier" +msgstr "Skjástækkun" + +#. label for accessibility menu +#. txt_access_v3 +msgid "Screen Reader" +msgstr "Skjálesari" + +#. label for accessibility menu +#. txt_access_brltty +msgid "Braille Terminal" +msgstr "Skjár með blindraletri" + +#. label for accessibility menu +#. txt_access_m1 +msgid "Keyboard Modifiers" +msgstr "Flýtilyklar" + +#. label for accessibility menu +#. txt_access_m2 +msgid "On-Screen Keyboard" +msgstr "Lyklaborð á skjá" + +#. label for accessibility menu +#. txt_access_m3 +msgid "Motor Difficulties - switch devices" +msgstr "Hreyfihamlaðir - skipta um tæki" + +#. label for accessibility menu +#. txt_access_all +msgid "Everything" +msgstr "Allt" + +#. Installation mode. +#. txt_menuitem_driverupdates +msgid "Use driver update disc" +msgstr "Nota uppfærsludisk fyrir rekla" + +#. Installation mode. +#. txt_menuitem_workstation +msgid "Install a workstation" +msgstr "Setja upp vinnustöð" + +#. Installation mode. +#. txt_menuitem_server +msgid "Install a server" +msgstr "Setja upp þjón" + +#. Installation mode. +#. txt_menuitem_oem +msgid "OEM install (for manufacturers)" +msgstr "OEM uppsetning (fyrir framleiðendur)" + +#. Installation mode. +#. txt_menuitem_lamp +msgid "Install a LAMP server" +msgstr "Setja upp LAMP þjón" + +#. Installation mode. +#. txt_menuitem_ltsp +msgid "Install an LTSP server" +msgstr "Setja upp LTSP þjón" + +#. Installation mode. +#. txt_menuitem_cli +msgid "Install a command-line system" +msgstr "Setja upp skipanalínukerfi" + +#. Installation mode. +#. txt_menuitem_minimal +msgid "Install a minimal system" +msgstr "Setja upp lágmarkskerfi" + +#. Installation mode. +#. txt_menuitem_minimalvm +msgid "Install a minimal virtual machine" +msgstr "Setja upp lágmarkssýndarvél" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_check +msgid "^Check disc for defects" +msgstr "^Leita að villum á diskinum" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_rescue +msgid "^Rescue a broken system" +msgstr "^Bjarga biluðu kerfi" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_memtest +msgid "Test ^memory" +msgstr "^Prófa minni" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_hd +msgid "^Boot from first hard disk" +msgstr "^Keyra af fyrsta harða diski" + +#. Boot option. +#. txt_option_free +msgid "Free software only" +msgstr "Aðeins frjáls hugbúnaður" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_dell_factory_recovery +msgid "^Dell Automatic Reinstall" +msgstr "^Dell sjálfvirk enduruppsetning" + +#. txt_resolution +msgid "Resolution" +msgstr "" + +#. txt_videodrv +msgid "Video" +msgstr "" + +#. txt_video_driver_auto +msgid "Auto" +msgstr "" + +#. txt_no_composite +msgid "No composite" +msgstr "" + +#. txt_audio +msgid "Audio" +msgstr "" diff --git a/po/it.po b/po/it.po new file mode 100644 index 0000000..b536460 --- /dev/null +++ b/po/it.po @@ -0,0 +1,319 @@ +# translation of it.po to +# translation of it.po to +# translation of bootloader.po to +# translation of bootloader.po to +# LANGUAGE translations for boot loader +# Copyright (C) 2004 SUSE LINUX AG +msgid "" +msgstr "" +"Project-Id-Version: it\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-10-09 09:00+0000\n" +"PO-Revision-Date: 2013-12-15 11:41+0000\n" +"Last-Translator: Milo Casagrande \n" +"Language-Team: Novell Language \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-12-16 17:20+0000\n" +"X-Generator: Launchpad (build 17286)\n" + +#. ok button label +#. txt_ok +msgid "OK" +msgstr "OK" + +#. cancel button label +#. txt_cancel +msgid "Cancel" +msgstr "Annulla" + +#. reboot button label +#. txt_reboot +msgid "Reboot" +msgstr "Riavvia" + +#. continue button label +#. txt_continue +msgid "Continue" +msgstr "Continua" + +#. txt_bootoptions +msgid "Boot Options" +msgstr "Opzioni di boot" + +#. window title for exit dialog +#. txt_exit_title (see txt_exit_dialog) +msgid "Exiting..." +msgstr "Uscita..." + +#. txt_exit_dialog +msgid "" +"You are leaving the graphical boot menu and\n" +"starting the text mode interface." +msgstr "" +"Uscita dal menù di boot grafico\n" +"e avvio dell'interfaccia testuale." + +#. txt_help +msgid "Help" +msgstr "Aiuto" + +#. info box title +#. txt_info_title +msgid "Boot loader" +msgstr "Boot loader" + +#. error box title +#. txt_error_title +msgid "I/O error" +msgstr "Errore di I/O" + +#. boot disk change dialog title +#. txt_change_disk_title +msgid "Change Boot Disk" +msgstr "Cambio disco di boot" + +#. txt_insert_disk +#, c-format +msgid "Insert boot disk %u." +msgstr "Inserire il disco di boot %u." + +#. txt_insert_disk2 +#, c-format +msgid "" +"This is boot disk %u.\n" +"Insert boot disk %u." +msgstr "" +"Questo è il disco di boot %u.\n" +"Inserire il disco di boot %u." + +#. txt_insert_disk3 +#, c-format +msgid "" +"This is not a suitable boot disk.\n" +"Please insert boot disk %u." +msgstr "" +"Questo non è il disco di boot adatto.\n" +"Inserire il disco di boot %u." + +#. password dialog title +#. txt_password_title +msgid "Password" +msgstr "Password" + +#. Keep the newlines and spaces after ':'! +#. txt_password +msgid "" +"Enter your password: \n" +"\n" +"\n" +msgstr "" +"Inserire la propria password: \n" +"\n" +"\n" + +#. dvd warning title +#. txt_dvd_warning_title +msgid "DVD Error" +msgstr "Errore del DVD" + +#. txt_dvd_warning2 +msgid "" +"This is a two-sided DVD. You have booted from the second side.\n" +"\n" +"Turn the DVD over then continue." +msgstr "" +"Questo è un DVD a doppia faccia. È stato fatto il boot dalla seconda " +"faccia.\n" +"\n" +"Capovolgere il DVD e continuare." + +#. power off dialog title +#. txt_power_off_title +msgid "Power Off" +msgstr "Spegnimento" + +#. txt_power_off +msgid "Halt the system now?" +msgstr "Arrestare il sistema adesso?" + +#. txt_password +msgid "Password\n" +msgstr "Password\n" + +#. button label for other/more options +#. txt_other_options +msgid "Other Options" +msgstr "Altre opzioni" + +#. label for language selection +#. txt_language +msgid "Locale" +msgstr "Impostazioni nazionali" + +#. label for keymap selection +#. txt_keymap +msgid "Keymap" +msgstr "Tastiera" + +#. label for installation mode selection +#. txt_modes +msgid "Modes" +msgstr "Modalità" + +#. label for modes menu +#. txt_mode_normal +msgid "Normal" +msgstr "Normale" + +#. label for d-i mode menu +#. txt_expert_mode +msgid "Expert mode" +msgstr "Modalità esperto" + +#. title for accessibility menu +#. txt_access +msgid "Accessibility" +msgstr "Accessibilità" + +#. label for accessibility menu +#. txt_access_none +msgid "None" +msgstr "Niente" + +#. label for accessibility menu +#. txt_access_v1 +msgid "High Contrast" +msgstr "Contrasto elevato" + +#. label for accessibility menu +#. txt_access_v2 +msgid "Magnifier" +msgstr "Ingranditore" + +#. label for accessibility menu +#. txt_access_v3 +msgid "Screen Reader" +msgstr "Lettore di schermo" + +#. label for accessibility menu +#. txt_access_brltty +msgid "Braille Terminal" +msgstr "Terminale Braille" + +#. label for accessibility menu +#. txt_access_m1 +msgid "Keyboard Modifiers" +msgstr "Modificatori di tastiera" + +#. label for accessibility menu +#. txt_access_m2 +msgid "On-Screen Keyboard" +msgstr "Tastiera a schermo" + +#. label for accessibility menu +#. txt_access_m3 +msgid "Motor Difficulties - switch devices" +msgstr "Difficoltà motorie - dispositivi interruttore" + +#. label for accessibility menu +#. txt_access_all +msgid "Everything" +msgstr "Tutto" + +#. Installation mode. +#. txt_menuitem_driverupdates +msgid "Use driver update disc" +msgstr "Usa disco di aggiornamento driver" + +#. Installation mode. +#. txt_menuitem_workstation +msgid "Install a workstation" +msgstr "Installa una workstation" + +#. Installation mode. +#. txt_menuitem_server +msgid "Install a server" +msgstr "Installa un server" + +#. Installation mode. +#. txt_menuitem_oem +msgid "OEM install (for manufacturers)" +msgstr "Installazione OEM (per assemblatori)" + +#. Installation mode. +#. txt_menuitem_lamp +msgid "Install a LAMP server" +msgstr "Installa un server LAMP" + +#. Installation mode. +#. txt_menuitem_ltsp +msgid "Install an LTSP server" +msgstr "Installa un server LTSP" + +#. Installation mode. +#. txt_menuitem_cli +msgid "Install a command-line system" +msgstr "Installa un sistema a riga di comando" + +#. Installation mode. +#. txt_menuitem_minimal +msgid "Install a minimal system" +msgstr "Installa un sistema minimale" + +#. Installation mode. +#. txt_menuitem_minimalvm +msgid "Install a minimal virtual machine" +msgstr "Installa un macchina virtuale minimale" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_check +msgid "^Check disc for defects" +msgstr "^Controlla difetti sul disco" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_rescue +msgid "^Rescue a broken system" +msgstr "^Ripristina un sistema danneggiato" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_memtest +msgid "Test ^memory" +msgstr "Test della ^memoria" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_hd +msgid "^Boot from first hard disk" +msgstr "^Boot dal primo disco rigido" + +#. Boot option. +#. txt_option_free +msgid "Free software only" +msgstr "Solo software libero" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_dell_factory_recovery +msgid "^Dell Automatic Reinstall" +msgstr "Reinstallazione automatica ^Dell" + +#. txt_resolution +msgid "Resolution" +msgstr "Risoluzione" + +#. txt_videodrv +msgid "Video" +msgstr "Video" + +#. txt_video_driver_auto +msgid "Auto" +msgstr "" + +#. txt_no_composite +msgid "No Composite" +msgstr "" + +#. txt_audio +msgid "Audio" +msgstr "Audio" diff --git a/po/kk.po b/po/kk.po new file mode 100644 index 0000000..f4828a5 --- /dev/null +++ b/po/kk.po @@ -0,0 +1,317 @@ +# Kazakh translation for gfxboot-theme-ubuntu +# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 +# This file is distributed under the same license as the gfxboot-theme-ubuntu package. +# FIRST AUTHOR , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: gfxboot-theme-ubuntu\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2009-07-01 23:49+0000\n" +"PO-Revision-Date: 2013-05-03 20:21+0000\n" +"Last-Translator: Almas \n" +"Language-Team: Kazakh \n" +"Language: kk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-12-16 17:21+0000\n" +"X-Generator: Launchpad (build 17286)\n" + +#. ok button label +#. txt_ok +msgid "OK" +msgstr "ОК" + +#. cancel button label +#. txt_cancel +msgid "Cancel" +msgstr "Болдырмау" + +#. reboot button label +#. txt_reboot +msgid "Reboot" +msgstr "Қайта жүктеу" + +#. continue button label +#. txt_continue +msgid "Continue" +msgstr "Жалғастыру" + +#. txt_bootoptions +msgid "Boot Options" +msgstr "Жүктелу баптаулары" + +#. window title for exit dialog +#. txt_exit_title (see txt_exit_dialog) +msgid "Exiting..." +msgstr "Шығу..." + +#. txt_exit_dialog +msgid "" +"You are leaving the graphical boot menu and\n" +"starting the text mode interface." +msgstr "" +"Сіз жүктелудің графикалық мәзірінен шықтыңыз және\n" +"мәтіндік режимге ауыстыңыз" + +#. txt_help +msgid "Help" +msgstr "Көмек" + +#. info box title +#. txt_info_title +msgid "Boot loader" +msgstr "Жүктеуші" + +#. error box title +#. txt_error_title +msgid "I/O error" +msgstr "Енгізу/шығару қатесі" + +#. boot disk change dialog title +#. txt_change_disk_title +msgid "Change Boot Disk" +msgstr "Жүктелу дискісін ауыстыру" + +#. txt_insert_disk +#, c-format +msgid "Insert boot disk %u." +msgstr "%u жүктелу дискісін салыңыз." + +#. txt_insert_disk2 +#, c-format +msgid "" +"This is boot disk %u.\n" +"Insert boot disk %u." +msgstr "" +"Бұл - %u жүктелу дискі.\n" +"%u жүктелу дискісін салыңыз." + +#. txt_insert_disk3 +#, c-format +msgid "" +"This is not a suitable boot disk.\n" +"Please insert boot disk %u." +msgstr "" +"Бұл жүктелу дискі жарамайды.\n" +"%u жүктелу дискісін салыңыз." + +#. password dialog title +#. txt_password_title +msgid "Password" +msgstr "Құпия сөз" + +#. Keep the newlines and spaces after ':'! +#. txt_password +msgid "" +"Enter your password: \n" +"\n" +"\n" +msgstr "" +"Құпия сөзіңізді енгізіңіз: \n" +"\n" +"\n" + +#. dvd warning title +#. txt_dvd_warning_title +msgid "DVD Error" +msgstr "DVD қатесі" + +#. txt_dvd_warning2 +msgid "" +"This is a two-sided DVD. You have booted from the second side.\n" +"\n" +"Turn the DVD over then continue." +msgstr "" +"Бұл - екі жақты DVD дискі. Сіз оның екінші жағынан жүктелдіңіз.\n" +"\n" +"DVD дискіні аударып, жалғастырыңыз." + +#. power off dialog title +#. txt_power_off_title +msgid "Power Off" +msgstr "Сөндіру" + +#. txt_power_off +msgid "Halt the system now?" +msgstr "Жүйені қазір тоқтатуды қалайсыз ба?" + +#. txt_password +msgid "Password\n" +msgstr "Құпия сөз\n" + +#. button label for other/more options +#. txt_other_options +msgid "Other Options" +msgstr "Параметрлер" + +#. label for language selection +#. txt_language +msgid "Locale" +msgstr "Жергіліткіші" + +#. label for keymap selection +#. txt_keymap +msgid "Keymap" +msgstr "Пернетақта" + +#. label for installation mode selection +#. txt_modes +msgid "Modes" +msgstr "Режимдер" + +#. label for modes menu +#. txt_mode_normal +msgid "Normal" +msgstr "Қалыпты" + +#. label for d-i mode menu +#. txt_expert_mode +msgid "Expert mode" +msgstr "Кеңейтілген режим" + +#. title for accessibility menu +#. txt_access +msgid "Accessibility" +msgstr "Арн. мүмкін-тер" + +#. label for accessibility menu +#. txt_access_none +msgid "None" +msgstr "Жоқ" + +#. label for accessibility menu +#. txt_access_v1 +msgid "High Contrast" +msgstr "Жоғары контраст" + +#. label for accessibility menu +#. txt_access_v2 +msgid "Magnifier" +msgstr "Экрандағы ұлғайтқыш" + +#. label for accessibility menu +#. txt_access_v3 +msgid "Screen Reader" +msgstr "Экраннан оқу бағдарламасы" + +#. label for accessibility menu +#. txt_access_brltty +msgid "Braille Terminal" +msgstr "Брайль терминалы" + +#. label for accessibility menu +#. txt_access_m1 +msgid "Keyboard Modifiers" +msgstr "Пернетақта модификаторлары" + +#. label for accessibility menu +#. txt_access_m2 +msgid "On-Screen Keyboard" +msgstr "Экрандағы пернетақта" + +#. label for accessibility menu +#. txt_access_m3 +msgid "Motor Difficulties - switch devices" +msgstr "Қозғалысы бұзылған адамдар үшін - ауыстыру құралдары" + +#. label for accessibility menu +#. txt_access_all +msgid "Everything" +msgstr "Барлығын" + +#. Installation mode. +#. txt_menuitem_driverupdates +msgid "Use driver update disc" +msgstr "Драйверлерді жаңарту дискін қолдану" + +#. Installation mode. +#. txt_menuitem_workstation +msgid "Install a workstation" +msgstr "Жұмыс станциясын орнату" + +#. Installation mode. +#. txt_menuitem_server +msgid "Install a server" +msgstr "Серверді орнату" + +#. Installation mode. +#. txt_menuitem_oem +msgid "OEM install (for manufacturers)" +msgstr "OEM орнату режимі (өндірушілер үшін)" + +#. Installation mode. +#. txt_menuitem_lamp +msgid "Install a LAMP server" +msgstr "^LAMP серверін орнату" + +#. Installation mode. +#. txt_menuitem_ltsp +msgid "Install an LTSP server" +msgstr "^LTSP серверін орнату" + +#. Installation mode. +#. txt_menuitem_cli +msgid "Install a command-line system" +msgstr "Тек коммандалық жол бар (графикалық интерфейссіз) жүйені орнату" + +#. Installation mode. +#. txt_menuitem_minimal +msgid "Install a minimal system" +msgstr "Минималды жүйені орнату" + +#. Installation mode. +#. txt_menuitem_minimalvm +msgid "Install a minimal virtual machine" +msgstr "Минималды виртуалды машина орнату" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_check +msgid "^Check disc for defects" +msgstr "^Диск бүтіндігін тексеру" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_rescue +msgid "^Rescue a broken system" +msgstr "Бұзылған жүйені қалпына келтіру режимі" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_memtest +msgid "Test ^memory" +msgstr "^Жадыны тексеру" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_hd +msgid "^Boot from first hard disk" +msgstr "Бірінші қатты дискіден жүктелу" + +#. Boot option. +#. txt_option_free +msgid "Free software only" +msgstr "Тек тегін (еркін) бағдарламаларды орнату" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_dell_factory_recovery +msgid "^Dell Automatic Reinstall" +msgstr "^Dell автоматты орнату" + +#. txt_resolution +msgid "Resolution" +msgstr "Айырымдылығы" + +#. txt_videodrv +msgid "Video" +msgstr "Видео" + +#. txt_video_driver_auto +msgid "Auto" +msgstr "" + +#. txt_no_composite +msgid "No composite" +msgstr "" + +#. txt_audio +msgid "Audio" +msgstr "Аудио" diff --git a/po/lt.po b/po/lt.po new file mode 100644 index 0000000..6aad2f3 --- /dev/null +++ b/po/lt.po @@ -0,0 +1,315 @@ +# LITHUANIAN translations for boot loader +# Copyright (C) 2005 SUSE Linux GmbH +# +msgid "" +msgstr "" +"Project-Id-Version: bootloader\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2014-10-22 11:42+0000\n" +"Last-Translator: Marius Gedminas \n" +"Language-Team: Lithuanian \n" +"Language: lt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-12-16 17:21+0000\n" +"X-Generator: Launchpad (build 17286)\n" + +#. ok button label +#. txt_ok +msgid "OK" +msgstr "Gerai" + +#. cancel button label +#. txt_cancel +msgid "Cancel" +msgstr "Atsisakyti" + +#. reboot button label +#. txt_reboot +msgid "Reboot" +msgstr "Paleisti iš naujo" + +#. continue button label +#. txt_continue +msgid "Continue" +msgstr "Tęsti" + +#. txt_bootoptions +msgid "Boot Options" +msgstr "Papildomi parametrai" + +#. window title for exit dialog +#. txt_exit_title (see txt_exit_dialog) +msgid "Exiting..." +msgstr "Išeinama..." + +#. txt_exit_dialog +msgid "" +"You are leaving the graphical boot menu and\n" +"starting the text mode interface." +msgstr "" +"Paliksite grafinį paleidimo meniu ir\n" +"paleisite tekstinę sąsają." + +#. txt_help +msgid "Help" +msgstr "Pagalba" + +#. info box title +#. txt_info_title +msgid "Boot loader" +msgstr "Sistemų įkėliklis" + +#. error box title +#. txt_error_title +msgid "I/O error" +msgstr "Įvesties/išvesties klaida" + +#. boot disk change dialog title +#. txt_change_disk_title +msgid "Change Boot Disk" +msgstr "Keisti paleidimo diską" + +#. txt_insert_disk +#, c-format +msgid "Insert boot disk %u." +msgstr "Įdėkite %u paleidimo diską." + +#. txt_insert_disk2 +#, c-format +msgid "" +"This is boot disk %u.\n" +"Insert boot disk %u." +msgstr "" +"Tai %u paleidimo diskas.\n" +"Įdėkite %u paleidimo diską." + +#. txt_insert_disk3 +#, c-format +msgid "" +"This is not a suitable boot disk.\n" +"Please insert boot disk %u." +msgstr "" +"Tai netinkamas paleidimo diskas.\n" +"Įdėkite %u paleidimo diską." + +#. password dialog title +#. txt_password_title +msgid "Password" +msgstr "Slaptažodis" + +#. Keep the newlines and spaces after ':'! +#. txt_password +msgid "" +"Enter your password: \n" +"\n" +"\n" +msgstr "" +"Įveskite savo slaptažodį: \n" +"\n" +"\n" + +#. dvd warning title +#. txt_dvd_warning_title +msgid "DVD Error" +msgstr "DVD klaida" + +#. txt_dvd_warning2 +msgid "" +"This is a two-sided DVD. You have booted from the second side.\n" +"\n" +"Turn the DVD over then continue." +msgstr "" +"Tai dvipusis DVD. Paleidote jį iš antrosios pusės.\n" +"\n" +"Apverskite DVD ir tęskite." + +#. power off dialog title +#. txt_power_off_title +msgid "Power Off" +msgstr "Išjungti" + +#. txt_power_off +msgid "Halt the system now?" +msgstr "Ar sustabdyti sistemą dabar?" + +#. txt_password +msgid "Password\n" +msgstr "Slaptažodis\n" + +#. button label for other/more options +#. txt_other_options +msgid "Other Options" +msgstr "Kiti" + +#. label for language selection +#. txt_language +msgid "Locale" +msgstr "Lokalė" + +#. label for keymap selection +#. txt_keymap +msgid "Keymap" +msgstr "Klaviatūra" + +#. label for installation mode selection +#. txt_modes +msgid "Modes" +msgstr "Būdai" + +#. label for modes menu +#. txt_mode_normal +msgid "Normal" +msgstr "Įprastas" + +#. label for d-i mode menu +#. txt_expert_mode +msgid "Expert mode" +msgstr "Eksperto režimas" + +#. title for accessibility menu +#. txt_access +msgid "Accessibility" +msgstr "Prieinamumas" + +#. label for accessibility menu +#. txt_access_none +msgid "None" +msgstr "Nieko" + +#. label for accessibility menu +#. txt_access_v1 +msgid "High Contrast" +msgstr "Labai kontrastingas" + +#. label for accessibility menu +#. txt_access_v2 +msgid "Magnifier" +msgstr "Lupa" + +#. label for accessibility menu +#. txt_access_v3 +msgid "Screen Reader" +msgstr "Ekrano skaitymas balsu" + +#. label for accessibility menu +#. txt_access_brltty +msgid "Braille Terminal" +msgstr "Brailio terminalas" + +#. label for accessibility menu +#. txt_access_m1 +msgid "Keyboard Modifiers" +msgstr "Klaviatūros modifikatoriai" + +#. label for accessibility menu +#. txt_access_m2 +msgid "On-Screen Keyboard" +msgstr "Klaviatūra ekrane" + +#. label for accessibility menu +#. txt_access_m3 +msgid "Motor Difficulties - switch devices" +msgstr "Motorikos sutrikimai - perjungti įrenginius" + +#. label for accessibility menu +#. txt_access_all +msgid "Everything" +msgstr "Viskas" + +#. Installation mode. +#. txt_menuitem_driverupdates +msgid "Use driver update disc" +msgstr "Naudoti valdyklių atnaujinimo diską" + +#. Installation mode. +#. txt_menuitem_workstation +msgid "Install a workstation" +msgstr "Įdiegti darbo vietos variantą" + +#. Installation mode. +#. txt_menuitem_server +msgid "Install a server" +msgstr "Įdiegti serverio variantą" + +#. Installation mode. +#. txt_menuitem_oem +msgid "OEM install (for manufacturers)" +msgstr "OEM įdiegimas (kompiuterių gamintojams ar pardavėjams)" + +#. Installation mode. +#. txt_menuitem_lamp +msgid "Install a LAMP server" +msgstr "Įdiegti LAMP serverio variantą" + +#. Installation mode. +#. txt_menuitem_ltsp +msgid "Install an LTSP server" +msgstr "Įdiegti LTSP serverio variantą" + +#. Installation mode. +#. txt_menuitem_cli +msgid "Install a command-line system" +msgstr "Įdiegti sistemą su komandinės eilutės aplinka" + +#. Installation mode. +#. txt_menuitem_minimal +msgid "Install a minimal system" +msgstr "Įdiegti minimalią sistemą" + +#. Installation mode. +#. txt_menuitem_minimalvm +msgid "Install a minimal virtual machine" +msgstr "Įdiegti minimalią virtualią mašiną" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_check +msgid "^Check disc for defects" +msgstr "^Patikrinti, ar nėra defektų paleidimo laikmenoje" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_rescue +msgid "^Rescue a broken system" +msgstr "Pa^taisyti sugadintą sistemą" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_memtest +msgid "Test ^memory" +msgstr "Patikrinti operatyviąją ^atmintį (RAM)" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_hd +msgid "^Boot from first hard disk" +msgstr "P^aleisti sistemą iš pirmojo kompiuterio disko" + +#. Boot option. +#. txt_option_free +msgid "Free software only" +msgstr "Tik laisva programinė įranga" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_dell_factory_recovery +msgid "^Dell Automatic Reinstall" +msgstr "^Automatinis įdiegimas iš naujo" + +#. txt_resolution +msgid "Resolution" +msgstr "Raiška" + +#. txt_videodrv +msgid "Video" +msgstr "Vaizdas" + +#. txt_video_driver_auto +msgid "Auto" +msgstr "" + +#. txt_no_composite +msgid "No composite" +msgstr "" + +#. txt_audio +msgid "Audio" +msgstr "Audio" diff --git a/po/lv.po b/po/lv.po new file mode 100644 index 0000000..60335c7 --- /dev/null +++ b/po/lv.po @@ -0,0 +1,317 @@ +# Latvian translation for gfxboot-theme-ubuntu +# Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 +# This file is distributed under the same license as the gfxboot-theme-ubuntu package. +# FIRST AUTHOR , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: gfxboot-theme-ubuntu\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2006-03-18 12:14:59.394968+00:00\n" +"PO-Revision-Date: 2013-12-15 11:42+0000\n" +"Last-Translator: Jānis Marks Gailis \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-12-16 17:21+0000\n" +"X-Generator: Launchpad (build 17286)\n" + +#. ok button label +#. txt_ok +msgid "OK" +msgstr "Labi" + +#. cancel button label +#. txt_cancel +msgid "Cancel" +msgstr "Atcelt" + +#. reboot button label +#. txt_reboot +msgid "Reboot" +msgstr "Pārstartēt" + +#. continue button label +#. txt_continue +msgid "Continue" +msgstr "Turpināt" + +#. txt_bootoptions +msgid "Boot Options" +msgstr "Palaišanas opcijas" + +#. window title for exit dialog +#. txt_exit_title (see txt_exit_dialog) +msgid "Exiting..." +msgstr "Iziet..." + +#. txt_exit_dialog +msgid "" +"You are leaving the graphical boot menu and\n" +"starting the text mode interface." +msgstr "" +"Jūs atstājat grafisko sāknēšanas izvēlni un\n" +"palaižat teksta režīma saskarni." + +#. txt_help +msgid "Help" +msgstr "Palīdzība" + +#. info box title +#. txt_info_title +msgid "Boot loader" +msgstr "Palaidējs" + +#. error box title +#. txt_error_title +msgid "I/O error" +msgstr "I/O kļūda" + +#. boot disk change dialog title +#. txt_change_disk_title +msgid "Change Boot Disk" +msgstr "Nomainīt palaišanas disku" + +#. txt_insert_disk +#, c-format +msgid "Insert boot disk %u." +msgstr "Ievietojiet palaišanas disku %u." + +#. txt_insert_disk2 +#, c-format +msgid "" +"This is boot disk %u.\n" +"Insert boot disk %u." +msgstr "" +"Šis ir palaišanas disks %u.\n" +"Ievietojiet palaišanas disku %u." + +#. txt_insert_disk3 +#, c-format +msgid "" +"This is not a suitable boot disk.\n" +"Please insert boot disk %u." +msgstr "" +"Šis nav derīgs palaišanas disks.\n" +"Lūdzu ievietojiet palaišanas disku %u." + +#. password dialog title +#. txt_password_title +msgid "Password" +msgstr "Parole" + +#. Keep the newlines and spaces after ':'! +#. txt_password +msgid "" +"Enter your password: \n" +"\n" +"\n" +msgstr "" +"Ievadiet jūsu paroli: \n" +"\n" +"\n" + +#. dvd warning title +#. txt_dvd_warning_title +msgid "DVD Error" +msgstr "DVD Kļūda" + +#. txt_dvd_warning2 +msgid "" +"This is a two-sided DVD. You have booted from the second side.\n" +"\n" +"Turn the DVD over then continue." +msgstr "" +"Šajā DVD diskā dati ierakstīti no abām pusēm. Jūs esat palaidis to no otras " +"puses.\n" +"Apgrieziet disku otrādi un turpiniet." + +#. power off dialog title +#. txt_power_off_title +msgid "Power Off" +msgstr "Izslēgt" + +#. txt_power_off +msgid "Halt the system now?" +msgstr "Apturēt sistēmu tagad?" + +#. txt_password +msgid "Password\n" +msgstr "Parole\n" + +#. button label for other/more options +#. txt_other_options +msgid "Other Options" +msgstr "Citas opcijas" + +#. label for language selection +#. txt_language +msgid "Locale" +msgstr "Lokāle" + +#. label for keymap selection +#. txt_keymap +msgid "Keymap" +msgstr "Taustiņkarte" + +#. label for installation mode selection +#. txt_modes +msgid "Modes" +msgstr "Režīmi" + +#. label for modes menu +#. txt_mode_normal +msgid "Normal" +msgstr "Normāls" + +#. label for d-i mode menu +#. txt_expert_mode +msgid "Expert mode" +msgstr "Eksperta režīms" + +#. title for accessibility menu +#. txt_access +msgid "Accessibility" +msgstr "Pieejamība" + +#. label for accessibility menu +#. txt_access_none +msgid "None" +msgstr "Nekas" + +#. label for accessibility menu +#. txt_access_v1 +msgid "High Contrast" +msgstr "Spēcīgs kontrasts" + +#. label for accessibility menu +#. txt_access_v2 +msgid "Magnifier" +msgstr "Lupa" + +#. label for accessibility menu +#. txt_access_v3 +msgid "Screen Reader" +msgstr "Ekrāna lasītājs" + +#. label for accessibility menu +#. txt_access_brltty +msgid "Braille Terminal" +msgstr "Braila terminālis" + +#. label for accessibility menu +#. txt_access_m1 +msgid "Keyboard Modifiers" +msgstr "Tastatūras izkārtojuma mainītāji" + +#. label for accessibility menu +#. txt_access_m2 +msgid "On-Screen Keyboard" +msgstr "Ekrāna tastatūra" + +#. label for accessibility menu +#. txt_access_m3 +msgid "Motor Difficulties - switch devices" +msgstr "Motorisko kustību traucējumi - pārslēgšanas ierīces" + +#. label for accessibility menu +#. txt_access_all +msgid "Everything" +msgstr "Viss" + +#. Installation mode. +#. txt_menuitem_driverupdates +msgid "Use driver update disc" +msgstr "Izmantot draiveru atjauninājumu disku" + +#. Installation mode. +#. txt_menuitem_workstation +msgid "Install a workstation" +msgstr "Instalēt darbstaciju" + +#. Installation mode. +#. txt_menuitem_server +msgid "Install a server" +msgstr "Instalēt serveri" + +#. Installation mode. +#. txt_menuitem_oem +msgid "OEM install (for manufacturers)" +msgstr "OEM instalēšana (ražotājiem)" + +#. Installation mode. +#. txt_menuitem_lamp +msgid "Install a LAMP server" +msgstr "Instalēt LAMP serveri" + +#. Installation mode. +#. txt_menuitem_ltsp +msgid "Install an LTSP server" +msgstr "Instalēt LTSP serveri" + +#. Installation mode. +#. txt_menuitem_cli +msgid "Install a command-line system" +msgstr "Instalēt komandrindas sistēmu" + +#. Installation mode. +#. txt_menuitem_minimal +msgid "Install a minimal system" +msgstr "Uzstādīt minimālu sistēmu" + +#. Installation mode. +#. txt_menuitem_minimalvm +msgid "Install a minimal virtual machine" +msgstr "Instalēt minimālu virtuālo mašīnu" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_check +msgid "^Check disc for defects" +msgstr "^Pārbaudīt, vai diskā nav kļūdu" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_rescue +msgid "^Rescue a broken system" +msgstr "^Atjaunot bojātu sistēmu" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_memtest +msgid "Test ^memory" +msgstr "Pārbaudīt operatīvo at^miņu" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_hd +msgid "^Boot from first hard disk" +msgstr "Ielādē^t sistēmu no pirmā diska" + +#. Boot option. +#. txt_option_free +msgid "Free software only" +msgstr "Tikai brīvo programmatūru" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_dell_factory_recovery +msgid "^Dell Automatic Reinstall" +msgstr "^Dell automātiskā pārinstalēšana" + +#. txt_resolution +msgid "Resolution" +msgstr "Izšķirtspēja" + +#. txt_videodrv +msgid "Video" +msgstr "Video" + +#. txt_video_driver_auto +msgid "Auto" +msgstr "" + +#. txt_no_composite +msgid "No composite" +msgstr "" + +#. txt_audio +msgid "Audio" +msgstr "Audio" diff --git a/po/nl_BE.po b/po/nl_BE.po new file mode 100644 index 0000000..fa8f02d --- /dev/null +++ b/po/nl_BE.po @@ -0,0 +1,320 @@ +# translation of bootloader.po to Nederlands +# translation of bootloader.po to Dutch +# translation of nl.po to Dutch +# LANGUAGE translations for boot loader +# Copyright (C) 2004 SUSE LINUX AG +# Proefgelezen op 10-08-2005 door Henk Krus +# Arthur & Ettie Kerkmeester , 2004, 2005. +# Rinse de Vries , 2005. +msgid "" +msgstr "" +"Project-Id-Version: nl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-10-09 09:00+0000\n" +"PO-Revision-Date: 2013-12-18 09:39+0000\n" +"Last-Translator: Hannie Dumoleyn \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-12-16 17:20+0000\n" +"X-Generator: Launchpad (build 17286)\n" + +#. ok button label +#. txt_ok +msgid "OK" +msgstr "OK" + +#. cancel button label +#. txt_cancel +msgid "Cancel" +msgstr "Annuleren" + +#. reboot button label +#. txt_reboot +msgid "Reboot" +msgstr "Herstarten" + +#. continue button label +#. txt_continue +msgid "Continue" +msgstr "Verder" + +#. txt_bootoptions +msgid "Boot Options" +msgstr "Opstartopties" + +#. window title for exit dialog +#. txt_exit_title (see txt_exit_dialog) +msgid "Exiting..." +msgstr "Bezig met afsluiten…" + +#. txt_exit_dialog +msgid "" +"You are leaving the graphical boot menu and\n" +"starting the text mode interface." +msgstr "" +"U verlaat nu het grafische opstartmenu,\n" +"de tekstomgeving wordt gestart." + +#. txt_help +msgid "Help" +msgstr "Hulp" + +#. info box title +#. txt_info_title +msgid "Boot loader" +msgstr "Opstartlader" + +#. error box title +#. txt_error_title +msgid "I/O error" +msgstr "Fout bij in-/uitvoer" + +#. boot disk change dialog title +#. txt_change_disk_title +msgid "Change Boot Disk" +msgstr "Opstartschijf wijzigen" + +#. txt_insert_disk +#, c-format +msgid "Insert boot disk %u." +msgstr "Plaats opstartschijf %u." + +#. txt_insert_disk2 +#, c-format +msgid "" +"This is boot disk %u.\n" +"Insert boot disk %u." +msgstr "" +"Dit is opstartschijf %u.\n" +"Plaats opstartschijf %u." + +#. txt_insert_disk3 +#, c-format +msgid "" +"This is not a suitable boot disk.\n" +"Please insert boot disk %u." +msgstr "" +"Dit is geen geschikte opstartschijf.\n" +"Plaats opstartschijf %u." + +#. password dialog title +#. txt_password_title +msgid "Password" +msgstr "Wachtwoord" + +#. Keep the newlines and spaces after ':'! +#. txt_password +msgid "" +"Enter your password: \n" +"\n" +"\n" +msgstr "" +"Voer uw wachtwoord in: \n" +"\n" +"\n" + +#. dvd warning title +#. txt_dvd_warning_title +msgid "DVD Error" +msgstr "DVD-fout" + +#. txt_dvd_warning2 +msgid "" +"This is a two-sided DVD. You have booted from the second side.\n" +"\n" +"Turn the DVD over then continue." +msgstr "" +"Dit is een dubbelzijdige DVD. U heeft met kant twee opgestart.\n" +"\n" +"Draai de DVD om en ga dan verder." + +#. power off dialog title +#. txt_power_off_title +msgid "Power Off" +msgstr "Computer uitschakelen" + +#. txt_power_off +msgid "Halt the system now?" +msgstr "Wilt u de computer nu uitschakelen?" + +#. txt_password +msgid "Password\n" +msgstr "Wachtwoord\n" + +#. button label for other/more options +#. txt_other_options +msgid "Other Options" +msgstr "Overige opties" + +#. label for language selection +#. txt_language +msgid "Locale" +msgstr "Taalregio" + +#. label for keymap selection +#. txt_keymap +msgid "Keymap" +msgstr "Toetsenbordindeling" + +#. label for installation mode selection +#. txt_modes +msgid "Modes" +msgstr "Modi" + +#. label for modes menu +#. txt_mode_normal +msgid "Normal" +msgstr "Normaal" + +#. label for d-i mode menu +#. txt_expert_mode +msgid "Expert mode" +msgstr "Geavanceerde modus" + +#. title for accessibility menu +#. txt_access +msgid "Accessibility" +msgstr "Toegankelijkheid" + +#. label for accessibility menu +#. txt_access_none +msgid "None" +msgstr "Geen" + +#. label for accessibility menu +#. txt_access_v1 +msgid "High Contrast" +msgstr "Hoog contrast" + +#. label for accessibility menu +#. txt_access_v2 +msgid "Magnifier" +msgstr "Vergrootglas" + +#. label for accessibility menu +#. txt_access_v3 +msgid "Screen Reader" +msgstr "Schermlezer" + +#. label for accessibility menu +#. txt_access_brltty +msgid "Braille Terminal" +msgstr "Braille-terminal" + +#. label for accessibility menu +#. txt_access_m1 +msgid "Keyboard Modifiers" +msgstr "Combinatietoetsen" + +#. label for accessibility menu +#. txt_access_m2 +msgid "On-Screen Keyboard" +msgstr "Schermtoetsenbord" + +#. label for accessibility menu +#. txt_access_m3 +msgid "Motor Difficulties - switch devices" +msgstr "Toetsenbord voor mensen met een motorische beperking" + +#. label for accessibility menu +#. txt_access_all +msgid "Everything" +msgstr "Alles" + +#. Installation mode. +#. txt_menuitem_driverupdates +msgid "Use driver update disc" +msgstr "Schijf met bijgewerkte stuurprogramma's gebruiken" + +#. Installation mode. +#. txt_menuitem_workstation +msgid "Install a workstation" +msgstr "Een werkstation installeren" + +#. Installation mode. +#. txt_menuitem_server +msgid "Install a server" +msgstr "Een server installeren" + +#. Installation mode. +#. txt_menuitem_oem +msgid "OEM install (for manufacturers)" +msgstr "OEM-installatie (voor fabrikanten)" + +#. Installation mode. +#. txt_menuitem_lamp +msgid "Install a LAMP server" +msgstr "Een LAMP-server installeren" + +#. Installation mode. +#. txt_menuitem_ltsp +msgid "Install an LTSP server" +msgstr "Een LTSP-server installeren" + +#. Installation mode. +#. txt_menuitem_cli +msgid "Install a command-line system" +msgstr "Een opdrachtregelsysteem installeren" + +#. Installation mode. +#. txt_menuitem_minimal +msgid "Install a minimal system" +msgstr "Een minimaal systeem installeren" + +#. Installation mode. +#. txt_menuitem_minimalvm +msgid "Install a minimal virtual machine" +msgstr "Een minimale virtuele machine installeren" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_check +msgid "^Check disc for defects" +msgstr "S^chijf op fouten controleren" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_rescue +msgid "^Rescue a broken system" +msgstr "Een beschadigd systeem he^rstellen" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_memtest +msgid "Test ^memory" +msgstr "^Geheugenproef uitvoeren" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_hd +msgid "^Boot from first hard disk" +msgstr "Vanaf de eerste harde schijf ^opstarten" + +#. Boot option. +#. txt_option_free +msgid "Free software only" +msgstr "Alleen vrije software" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_dell_factory_recovery +msgid "^Dell Automatic Reinstall" +msgstr "^Dell automatische herinstallatie" + +#. txt_resolution +msgid "Resolution" +msgstr "Resolutie" + +#. txt_videodrv +msgid "Video" +msgstr "Video" + +#. txt_video_driver_auto +msgid "Auto" +msgstr "Auto" + +#. txt_no_composite +msgid "No Composite" +msgstr "No Composite" + +#. txt_audio +msgid "Audio" +msgstr "Geluid" diff --git a/po/nl_NL.po b/po/nl_NL.po new file mode 100644 index 0000000..fa8f02d --- /dev/null +++ b/po/nl_NL.po @@ -0,0 +1,320 @@ +# translation of bootloader.po to Nederlands +# translation of bootloader.po to Dutch +# translation of nl.po to Dutch +# LANGUAGE translations for boot loader +# Copyright (C) 2004 SUSE LINUX AG +# Proefgelezen op 10-08-2005 door Henk Krus +# Arthur & Ettie Kerkmeester , 2004, 2005. +# Rinse de Vries , 2005. +msgid "" +msgstr "" +"Project-Id-Version: nl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-10-09 09:00+0000\n" +"PO-Revision-Date: 2013-12-18 09:39+0000\n" +"Last-Translator: Hannie Dumoleyn \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-12-16 17:20+0000\n" +"X-Generator: Launchpad (build 17286)\n" + +#. ok button label +#. txt_ok +msgid "OK" +msgstr "OK" + +#. cancel button label +#. txt_cancel +msgid "Cancel" +msgstr "Annuleren" + +#. reboot button label +#. txt_reboot +msgid "Reboot" +msgstr "Herstarten" + +#. continue button label +#. txt_continue +msgid "Continue" +msgstr "Verder" + +#. txt_bootoptions +msgid "Boot Options" +msgstr "Opstartopties" + +#. window title for exit dialog +#. txt_exit_title (see txt_exit_dialog) +msgid "Exiting..." +msgstr "Bezig met afsluiten…" + +#. txt_exit_dialog +msgid "" +"You are leaving the graphical boot menu and\n" +"starting the text mode interface." +msgstr "" +"U verlaat nu het grafische opstartmenu,\n" +"de tekstomgeving wordt gestart." + +#. txt_help +msgid "Help" +msgstr "Hulp" + +#. info box title +#. txt_info_title +msgid "Boot loader" +msgstr "Opstartlader" + +#. error box title +#. txt_error_title +msgid "I/O error" +msgstr "Fout bij in-/uitvoer" + +#. boot disk change dialog title +#. txt_change_disk_title +msgid "Change Boot Disk" +msgstr "Opstartschijf wijzigen" + +#. txt_insert_disk +#, c-format +msgid "Insert boot disk %u." +msgstr "Plaats opstartschijf %u." + +#. txt_insert_disk2 +#, c-format +msgid "" +"This is boot disk %u.\n" +"Insert boot disk %u." +msgstr "" +"Dit is opstartschijf %u.\n" +"Plaats opstartschijf %u." + +#. txt_insert_disk3 +#, c-format +msgid "" +"This is not a suitable boot disk.\n" +"Please insert boot disk %u." +msgstr "" +"Dit is geen geschikte opstartschijf.\n" +"Plaats opstartschijf %u." + +#. password dialog title +#. txt_password_title +msgid "Password" +msgstr "Wachtwoord" + +#. Keep the newlines and spaces after ':'! +#. txt_password +msgid "" +"Enter your password: \n" +"\n" +"\n" +msgstr "" +"Voer uw wachtwoord in: \n" +"\n" +"\n" + +#. dvd warning title +#. txt_dvd_warning_title +msgid "DVD Error" +msgstr "DVD-fout" + +#. txt_dvd_warning2 +msgid "" +"This is a two-sided DVD. You have booted from the second side.\n" +"\n" +"Turn the DVD over then continue." +msgstr "" +"Dit is een dubbelzijdige DVD. U heeft met kant twee opgestart.\n" +"\n" +"Draai de DVD om en ga dan verder." + +#. power off dialog title +#. txt_power_off_title +msgid "Power Off" +msgstr "Computer uitschakelen" + +#. txt_power_off +msgid "Halt the system now?" +msgstr "Wilt u de computer nu uitschakelen?" + +#. txt_password +msgid "Password\n" +msgstr "Wachtwoord\n" + +#. button label for other/more options +#. txt_other_options +msgid "Other Options" +msgstr "Overige opties" + +#. label for language selection +#. txt_language +msgid "Locale" +msgstr "Taalregio" + +#. label for keymap selection +#. txt_keymap +msgid "Keymap" +msgstr "Toetsenbordindeling" + +#. label for installation mode selection +#. txt_modes +msgid "Modes" +msgstr "Modi" + +#. label for modes menu +#. txt_mode_normal +msgid "Normal" +msgstr "Normaal" + +#. label for d-i mode menu +#. txt_expert_mode +msgid "Expert mode" +msgstr "Geavanceerde modus" + +#. title for accessibility menu +#. txt_access +msgid "Accessibility" +msgstr "Toegankelijkheid" + +#. label for accessibility menu +#. txt_access_none +msgid "None" +msgstr "Geen" + +#. label for accessibility menu +#. txt_access_v1 +msgid "High Contrast" +msgstr "Hoog contrast" + +#. label for accessibility menu +#. txt_access_v2 +msgid "Magnifier" +msgstr "Vergrootglas" + +#. label for accessibility menu +#. txt_access_v3 +msgid "Screen Reader" +msgstr "Schermlezer" + +#. label for accessibility menu +#. txt_access_brltty +msgid "Braille Terminal" +msgstr "Braille-terminal" + +#. label for accessibility menu +#. txt_access_m1 +msgid "Keyboard Modifiers" +msgstr "Combinatietoetsen" + +#. label for accessibility menu +#. txt_access_m2 +msgid "On-Screen Keyboard" +msgstr "Schermtoetsenbord" + +#. label for accessibility menu +#. txt_access_m3 +msgid "Motor Difficulties - switch devices" +msgstr "Toetsenbord voor mensen met een motorische beperking" + +#. label for accessibility menu +#. txt_access_all +msgid "Everything" +msgstr "Alles" + +#. Installation mode. +#. txt_menuitem_driverupdates +msgid "Use driver update disc" +msgstr "Schijf met bijgewerkte stuurprogramma's gebruiken" + +#. Installation mode. +#. txt_menuitem_workstation +msgid "Install a workstation" +msgstr "Een werkstation installeren" + +#. Installation mode. +#. txt_menuitem_server +msgid "Install a server" +msgstr "Een server installeren" + +#. Installation mode. +#. txt_menuitem_oem +msgid "OEM install (for manufacturers)" +msgstr "OEM-installatie (voor fabrikanten)" + +#. Installation mode. +#. txt_menuitem_lamp +msgid "Install a LAMP server" +msgstr "Een LAMP-server installeren" + +#. Installation mode. +#. txt_menuitem_ltsp +msgid "Install an LTSP server" +msgstr "Een LTSP-server installeren" + +#. Installation mode. +#. txt_menuitem_cli +msgid "Install a command-line system" +msgstr "Een opdrachtregelsysteem installeren" + +#. Installation mode. +#. txt_menuitem_minimal +msgid "Install a minimal system" +msgstr "Een minimaal systeem installeren" + +#. Installation mode. +#. txt_menuitem_minimalvm +msgid "Install a minimal virtual machine" +msgstr "Een minimale virtuele machine installeren" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_check +msgid "^Check disc for defects" +msgstr "S^chijf op fouten controleren" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_rescue +msgid "^Rescue a broken system" +msgstr "Een beschadigd systeem he^rstellen" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_memtest +msgid "Test ^memory" +msgstr "^Geheugenproef uitvoeren" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_hd +msgid "^Boot from first hard disk" +msgstr "Vanaf de eerste harde schijf ^opstarten" + +#. Boot option. +#. txt_option_free +msgid "Free software only" +msgstr "Alleen vrije software" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_dell_factory_recovery +msgid "^Dell Automatic Reinstall" +msgstr "^Dell automatische herinstallatie" + +#. txt_resolution +msgid "Resolution" +msgstr "Resolutie" + +#. txt_videodrv +msgid "Video" +msgstr "Video" + +#. txt_video_driver_auto +msgid "Auto" +msgstr "Auto" + +#. txt_no_composite +msgid "No Composite" +msgstr "No Composite" + +#. txt_audio +msgid "Audio" +msgstr "Geluid" diff --git a/po/nn.po b/po/nn.po new file mode 100644 index 0000000..d0af7fc --- /dev/null +++ b/po/nn.po @@ -0,0 +1,317 @@ +# Norwegian Nynorsk translation for gfxboot-theme-ubuntu +# Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 +# This file is distributed under the same license as the gfxboot-theme-ubuntu package. +# FIRST AUTHOR , 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: gfxboot-theme-ubuntu\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2007-02-28 07:00:57.592902+00:00\n" +"PO-Revision-Date: 2011-10-21 17:09+0000\n" +"Last-Translator: Martin Myrvold \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-12-16 17:21+0000\n" +"X-Generator: Launchpad (build 17286)\n" + +#. ok button label +#. txt_ok +msgid "OK" +msgstr "OK" + +#. cancel button label +#. txt_cancel +msgid "Cancel" +msgstr "Avbryt" + +#. reboot button label +#. txt_reboot +msgid "Reboot" +msgstr "Start om att" + +#. continue button label +#. txt_continue +msgid "Continue" +msgstr "Hald fram" + +#. txt_bootoptions +msgid "Boot Options" +msgstr "Oppstartalternativ" + +#. window title for exit dialog +#. txt_exit_title (see txt_exit_dialog) +msgid "Exiting..." +msgstr "Avsluttar …" + +#. txt_exit_dialog +msgid "" +"You are leaving the graphical boot menu and\n" +"starting the text mode interface." +msgstr "" +"Du forlet den grafiske oppstartsmenyen \n" +"og går over til tekstmodus." + +#. txt_help +msgid "Help" +msgstr "Hjelp" + +#. info box title +#. txt_info_title +msgid "Boot loader" +msgstr "Oppstartslastar" + +#. error box title +#. txt_error_title +msgid "I/O error" +msgstr "I/U-feil" + +#. boot disk change dialog title +#. txt_change_disk_title +msgid "Change Boot Disk" +msgstr "Byt oppstartsdisk" + +#. txt_insert_disk +#, c-format +msgid "Insert boot disk %u." +msgstr "Set inn oppstartsdisk %u." + +#. txt_insert_disk2 +#, c-format +msgid "" +"This is boot disk %u.\n" +"Insert boot disk %u." +msgstr "" +"Dette er oppstartsdisk %u.\n" +"Set inn oppstartsdisk %u." + +#. txt_insert_disk3 +#, c-format +msgid "" +"This is not a suitable boot disk.\n" +"Please insert boot disk %u." +msgstr "" +"Dette er ikkje ein brukbar oppstartsdisk.\n" +"Set inn oppstartsdisk %u." + +#. password dialog title +#. txt_password_title +msgid "Password" +msgstr "Passord" + +#. Keep the newlines and spaces after ':'! +#. txt_password +msgid "" +"Enter your password: \n" +"\n" +"\n" +msgstr "" +"Skriv passordet ditt: \n" +"\n" +"\n" + +#. dvd warning title +#. txt_dvd_warning_title +msgid "DVD Error" +msgstr "DVD-feil" + +#. txt_dvd_warning2 +msgid "" +"This is a two-sided DVD. You have booted from the second side.\n" +"\n" +"Turn the DVD over then continue." +msgstr "" +"Dette er ei tosidig DVD-plate. Du har starta opp frå side to.\n" +"\n" +"Snu DVD-en og hald fram." + +#. power off dialog title +#. txt_power_off_title +msgid "Power Off" +msgstr "Slå av maskina" + +#. txt_power_off +msgid "Halt the system now?" +msgstr "Vil du avslutta no?" + +#. txt_password +msgid "Password\n" +msgstr "Passord\n" + +#. button label for other/more options +#. txt_other_options +msgid "Other Options" +msgstr "Andre innstillingar" + +#. label for language selection +#. txt_language +msgid "Locale" +msgstr "Locale" + +#. label for keymap selection +#. txt_keymap +msgid "Keymap" +msgstr "Tastaturkart" + +#. label for installation mode selection +#. txt_modes +msgid "Modes" +msgstr "Modus" + +#. label for modes menu +#. txt_mode_normal +msgid "Normal" +msgstr "Vanleg" + +#. label for d-i mode menu +#. txt_expert_mode +msgid "Expert mode" +msgstr "Ekspertmodus" + +#. title for accessibility menu +#. txt_access +msgid "Accessibility" +msgstr "Tilgjenge" + +#. label for accessibility menu +#. txt_access_none +msgid "None" +msgstr "Ingen" + +#. label for accessibility menu +#. txt_access_v1 +msgid "High Contrast" +msgstr "Høgkontrast" + +#. label for accessibility menu +#. txt_access_v2 +msgid "Magnifier" +msgstr "Forstørringsglas" + +#. label for accessibility menu +#. txt_access_v3 +msgid "Screen Reader" +msgstr "Skjermlesar" + +#. label for accessibility menu +#. txt_access_brltty +msgid "Braille Terminal" +msgstr "Blindeskriftterminal" + +#. label for accessibility menu +#. txt_access_m1 +msgid "Keyboard Modifiers" +msgstr "Tastataturendringar" + +#. label for accessibility menu +#. txt_access_m2 +msgid "On-Screen Keyboard" +msgstr "Skjermtastatur" + +#. label for accessibility menu +#. txt_access_m3 +msgid "Motor Difficulties - switch devices" +msgstr "Motoriske vanskar - switcheiningar" + +#. label for accessibility menu +#. txt_access_all +msgid "Everything" +msgstr "Alt" + +#. Installation mode. +#. txt_menuitem_driverupdates +msgid "Use driver update disc" +msgstr "Bruk plate med drivaroppdateringar" + +#. Installation mode. +#. txt_menuitem_workstation +msgid "Install a workstation" +msgstr "Installer ein arbeidsstasjon" + +#. Installation mode. +#. txt_menuitem_server +msgid "Install a server" +msgstr "Installer ein tenar" + +#. Installation mode. +#. txt_menuitem_oem +msgid "OEM install (for manufacturers)" +msgstr "OEM installasjon (for produsentar)" + +#. Installation mode. +#. txt_menuitem_lamp +msgid "Install a LAMP server" +msgstr "Installer ein LAMP-tenar" + +#. Installation mode. +#. txt_menuitem_ltsp +msgid "Install an LTSP server" +msgstr "Installer ein LTSP-tenar" + +#. Installation mode. +#. txt_menuitem_cli +msgid "Install a command-line system" +msgstr "Installer eit kommandolinjesystem" + +#. Installation mode. +#. txt_menuitem_minimal +msgid "Install a minimal system" +msgstr "Installer eit minimalt system" + +#. Installation mode. +#. txt_menuitem_minimalvm +msgid "Install a minimal virtual machine" +msgstr "Installer ei minimal virtuell maskin" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_check +msgid "^Check disc for defects" +msgstr "^Sjekk plata for feil" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_rescue +msgid "^Rescue a broken system" +msgstr "^Reparer eit øydelagt system" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_memtest +msgid "Test ^memory" +msgstr "^Test minnet" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_hd +msgid "^Boot from first hard disk" +msgstr "^Oppstart frå fyrste harddisk" + +#. Boot option. +#. txt_option_free +msgid "Free software only" +msgstr "Berre fri programvare" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_dell_factory_recovery +msgid "^Dell Automatic Reinstall" +msgstr "^Dell automatisk reinstallasjon" + +#. txt_resolution +msgid "Resolution" +msgstr "" + +#. txt_videodrv +msgid "Video" +msgstr "" + +#. txt_video_driver_auto +msgid "Auto" +msgstr "" + +#. txt_no_composite +msgid "No composite" +msgstr "" + +#. txt_audio +msgid "Audio" +msgstr "" diff --git a/po/pl.po b/po/pl.po new file mode 100644 index 0000000..2f573f0 --- /dev/null +++ b/po/pl.po @@ -0,0 +1,315 @@ +# LANGUAGE translations for boot loader +# Copyright (C) 2004 SUSE LINUX AG +# +msgid "" +msgstr "" +"Project-Id-Version: bootloader\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-10-09 09:00+0000\n" +"PO-Revision-Date: 2013-12-15 11:41+0000\n" +"Last-Translator: GTriderXC \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-12-16 17:21+0000\n" +"X-Generator: Launchpad (build 17286)\n" + +#. ok button label +#. txt_ok +msgid "OK" +msgstr "OK" + +#. cancel button label +#. txt_cancel +msgid "Cancel" +msgstr "Anuluj" + +#. reboot button label +#. txt_reboot +msgid "Reboot" +msgstr "Uruchom ponownie" + +#. continue button label +#. txt_continue +msgid "Continue" +msgstr "Kontynuuj" + +#. txt_bootoptions +msgid "Boot Options" +msgstr "Opcje rozruchu" + +#. window title for exit dialog +#. txt_exit_title (see txt_exit_dialog) +msgid "Exiting..." +msgstr "Kończenie..." + +#. txt_exit_dialog +msgid "" +"You are leaving the graphical boot menu and\n" +"starting the text mode interface." +msgstr "" +"Opuszczasz graficzne menu uruchamiania i\n" +"rozpoczynasz tryb interfejsu tekstowego." + +#. txt_help +msgid "Help" +msgstr "Pomoc" + +#. info box title +#. txt_info_title +msgid "Boot loader" +msgstr "Program rozruchowy" + +#. error box title +#. txt_error_title +msgid "I/O error" +msgstr "Błąd wejścia/wyjścia" + +#. boot disk change dialog title +#. txt_change_disk_title +msgid "Change Boot Disk" +msgstr "Zmiana nośnika rozruchowego" + +#. txt_insert_disk +#, c-format +msgid "Insert boot disk %u." +msgstr "Proszę wsunąć nośnik rozruchowy %u." + +#. txt_insert_disk2 +#, c-format +msgid "" +"This is boot disk %u.\n" +"Insert boot disk %u." +msgstr "" +"To jest nośnik rozruchowy %u.\n" +"Proszę wsunąć nośnik rozruchowy %u." + +#. txt_insert_disk3 +#, c-format +msgid "" +"This is not a suitable boot disk.\n" +"Please insert boot disk %u." +msgstr "" +"To nie jest odpowiedni nośnik rozruchowy.\n" +"Proszę wsunąć nośnik rozruchowy %u." + +#. password dialog title +#. txt_password_title +msgid "Password" +msgstr "Hasło" + +#. Keep the newlines and spaces after ':'! +#. txt_password +msgid "" +"Enter your password: \n" +"\n" +"\n" +msgstr "" +"Proszę wprowadzić hasło: \n" +"\n" +"\n" + +#. dvd warning title +#. txt_dvd_warning_title +msgid "DVD Error" +msgstr "Błąd DVD" + +#. txt_dvd_warning2 +msgid "" +"This is a two-sided DVD. You have booted from the second side.\n" +"\n" +"Turn the DVD over then continue." +msgstr "" +"To jest dwustronna płyta DVD. Uruchomiono system z drugiej strony płyty.\n" +"\n" +"Proszę odwrócić płytę DVD i kontynuować." + +#. power off dialog title +#. txt_power_off_title +msgid "Power Off" +msgstr "Wyłącz komputer" + +#. txt_power_off +msgid "Halt the system now?" +msgstr "Zatrzymać działanie systemu?" + +#. txt_password +msgid "Password\n" +msgstr "Hasło\n" + +#. button label for other/more options +#. txt_other_options +msgid "Other Options" +msgstr "Inne opcje" + +#. label for language selection +#. txt_language +msgid "Locale" +msgstr "Ustawienia regionalne" + +#. label for keymap selection +#. txt_keymap +msgid "Keymap" +msgstr "Układ klawiatury" + +#. label for installation mode selection +#. txt_modes +msgid "Modes" +msgstr "Tryby" + +#. label for modes menu +#. txt_mode_normal +msgid "Normal" +msgstr "Zwykły" + +#. label for d-i mode menu +#. txt_expert_mode +msgid "Expert mode" +msgstr "Tryb zaawansowany" + +#. title for accessibility menu +#. txt_access +msgid "Accessibility" +msgstr "Ułatwienia dostępu" + +#. label for accessibility menu +#. txt_access_none +msgid "None" +msgstr "Brak" + +#. label for accessibility menu +#. txt_access_v1 +msgid "High Contrast" +msgstr "Wysoki kontrast" + +#. label for accessibility menu +#. txt_access_v2 +msgid "Magnifier" +msgstr "Lupa" + +#. label for accessibility menu +#. txt_access_v3 +msgid "Screen Reader" +msgstr "Czytnik ekranu" + +#. label for accessibility menu +#. txt_access_brltty +msgid "Braille Terminal" +msgstr "Terminal Braille'a" + +#. label for accessibility menu +#. txt_access_m1 +msgid "Keyboard Modifiers" +msgstr "Modyfikatory klawiatury" + +#. label for accessibility menu +#. txt_access_m2 +msgid "On-Screen Keyboard" +msgstr "Klawiatura ekranowa" + +#. label for accessibility menu +#. txt_access_m3 +msgid "Motor Difficulties - switch devices" +msgstr "Problemy ruchowe - urządzenia przełączające" + +#. label for accessibility menu +#. txt_access_all +msgid "Everything" +msgstr "Wszystko" + +#. Installation mode. +#. txt_menuitem_driverupdates +msgid "Use driver update disc" +msgstr "Użycie nośnika aktualizującego sterowniki" + +#. Installation mode. +#. txt_menuitem_workstation +msgid "Install a workstation" +msgstr "Instalacja stacji roboczej" + +#. Installation mode. +#. txt_menuitem_server +msgid "Install a server" +msgstr "Instalacja serwera" + +#. Installation mode. +#. txt_menuitem_oem +msgid "OEM install (for manufacturers)" +msgstr "Instalacja OEM (dla producentów sprzętu)" + +#. Installation mode. +#. txt_menuitem_lamp +msgid "Install a LAMP server" +msgstr "Instalacja serwera LAMP" + +#. Installation mode. +#. txt_menuitem_ltsp +msgid "Install an LTSP server" +msgstr "Instalacja serwera LTSP" + +#. Installation mode. +#. txt_menuitem_cli +msgid "Install a command-line system" +msgstr "Instalacja systemu opartego o wiersz poleceń" + +#. Installation mode. +#. txt_menuitem_minimal +msgid "Install a minimal system" +msgstr "Instalacja systemu minimalnego" + +#. Installation mode. +#. txt_menuitem_minimalvm +msgid "Install a minimal virtual machine" +msgstr "Instalacja minimalnej maszyny wirtualnej" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_check +msgid "^Check disc for defects" +msgstr "^Sprawdź płytę pod kątem błędów odczytu" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_rescue +msgid "^Rescue a broken system" +msgstr "^Napraw uszkodzony system" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_memtest +msgid "Test ^memory" +msgstr "Sprawdź ^pamięć" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_hd +msgid "^Boot from first hard disk" +msgstr "^Uruchom system z pierwszego dysku twardego" + +#. Boot option. +#. txt_option_free +msgid "Free software only" +msgstr "Tylko wolne oprogramowanie" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_dell_factory_recovery +msgid "^Dell Automatic Reinstall" +msgstr "^Automatyczna reinstalacja Dell" + +#. txt_resolution +msgid "Resolution" +msgstr "Rozdzielczość" + +#. txt_videodrv +msgid "Video" +msgstr "Wideo" + +#. txt_video_driver_auto +msgid "Auto" +msgstr "" + +#. txt_no_composite +msgid "No Composite" +msgstr "" + +#. txt_audio +msgid "Audio" +msgstr "Dźwięk" diff --git a/po/pt.po b/po/pt.po new file mode 100644 index 0000000..9d81f68 --- /dev/null +++ b/po/pt.po @@ -0,0 +1,318 @@ +# translation of pt.po to portuguese +# LANGUAGE translations for boot loader +# Copyright (C) 2005 SUSE Linux GmbH +# Antonio Cardoso Martins , 2005. +# Elisio Andre Martins Catana , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: pt\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-10-09 09:00+0000\n" +"PO-Revision-Date: 2014-10-25 10:23+0000\n" +"Last-Translator: Alfredo Silva \n" +"Language-Team: portuguese\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-12-16 17:21+0000\n" +"X-Generator: Launchpad (build 17286)\n" + +#. ok button label +#. txt_ok +msgid "OK" +msgstr "OK" + +#. cancel button label +#. txt_cancel +msgid "Cancel" +msgstr "Cancelar" + +#. reboot button label +#. txt_reboot +msgid "Reboot" +msgstr "Reiniciar" + +#. continue button label +#. txt_continue +msgid "Continue" +msgstr "Continuar" + +#. txt_bootoptions +msgid "Boot Options" +msgstr "Opções de Arranque" + +#. window title for exit dialog +#. txt_exit_title (see txt_exit_dialog) +msgid "Exiting..." +msgstr "A sair..." + +#. txt_exit_dialog +msgid "" +"You are leaving the graphical boot menu and\n" +"starting the text mode interface." +msgstr "" +"Está a sair do menu gráfico de arranque e\n" +"a iniciar a interface em modo texto." + +#. txt_help +msgid "Help" +msgstr "Ajuda" + +#. info box title +#. txt_info_title +msgid "Boot loader" +msgstr "Carregador de arranque" + +#. error box title +#. txt_error_title +msgid "I/O error" +msgstr "Erro de I/O" + +#. boot disk change dialog title +#. txt_change_disk_title +msgid "Change Boot Disk" +msgstr "Alterar Disco de Arranque" + +#. txt_insert_disk +#, c-format +msgid "Insert boot disk %u." +msgstr "Insira o disco de arranque %u." + +#. txt_insert_disk2 +#, c-format +msgid "" +"This is boot disk %u.\n" +"Insert boot disk %u." +msgstr "" +"Este é o disco de arranque %u.\n" +"Insira o disco de arranque %u." + +#. txt_insert_disk3 +#, c-format +msgid "" +"This is not a suitable boot disk.\n" +"Please insert boot disk %u." +msgstr "" +"Este não é um disco de arranque adequado.\n" +"Por favor insira o disco de arranque %u." + +#. password dialog title +#. txt_password_title +msgid "Password" +msgstr "Palavra-passe" + +#. Keep the newlines and spaces after ':'! +#. txt_password +msgid "" +"Enter your password: \n" +"\n" +"\n" +msgstr "" +"Introduza a sua palavra-passe: \n" +"\n" +"\n" + +#. dvd warning title +#. txt_dvd_warning_title +msgid "DVD Error" +msgstr "Erro de DVD" + +#. txt_dvd_warning2 +msgid "" +"This is a two-sided DVD. You have booted from the second side.\n" +"\n" +"Turn the DVD over then continue." +msgstr "" +"Este é um DVD de dupla face. Iniciou a partir da segunda face.\n" +"\n" +"Vire o DVD para a primeira face e depois continue." + +#. power off dialog title +#. txt_power_off_title +msgid "Power Off" +msgstr "Desligar" + +#. txt_power_off +msgid "Halt the system now?" +msgstr "Pausar agora o sistema?" + +#. txt_password +msgid "Password\n" +msgstr "Senha\n" + +#. button label for other/more options +#. txt_other_options +msgid "Other Options" +msgstr "Outras Opções" + +#. label for language selection +#. txt_language +msgid "Locale" +msgstr "Localização" + +#. label for keymap selection +#. txt_keymap +msgid "Keymap" +msgstr "Mapa de teclas" + +#. label for installation mode selection +#. txt_modes +msgid "Modes" +msgstr "Modos" + +#. label for modes menu +#. txt_mode_normal +msgid "Normal" +msgstr "Normal" + +#. label for d-i mode menu +#. txt_expert_mode +msgid "Expert mode" +msgstr "Modo Avançado" + +#. title for accessibility menu +#. txt_access +msgid "Accessibility" +msgstr "Acessibilidade" + +#. label for accessibility menu +#. txt_access_none +msgid "None" +msgstr "Nenhum" + +#. label for accessibility menu +#. txt_access_v1 +msgid "High Contrast" +msgstr "Contraste Elevado" + +#. label for accessibility menu +#. txt_access_v2 +msgid "Magnifier" +msgstr "Ampliador" + +#. label for accessibility menu +#. txt_access_v3 +msgid "Screen Reader" +msgstr "Leitor de Ecrã" + +#. label for accessibility menu +#. txt_access_brltty +msgid "Braille Terminal" +msgstr "Terminal de Braile" + +#. label for accessibility menu +#. txt_access_m1 +msgid "Keyboard Modifiers" +msgstr "Modificadores de Teclado" + +#. label for accessibility menu +#. txt_access_m2 +msgid "On-Screen Keyboard" +msgstr "Teclado No Ecrã" + +#. label for accessibility menu +#. txt_access_m3 +msgid "Motor Difficulties - switch devices" +msgstr "Dificuldades Motoras - dispositivos comutadores" + +#. label for accessibility menu +#. txt_access_all +msgid "Everything" +msgstr "Tudo" + +#. Installation mode. +#. txt_menuitem_driverupdates +msgid "Use driver update disc" +msgstr "Utilizar o disco de atualização dos controladores" + +#. Installation mode. +#. txt_menuitem_workstation +msgid "Install a workstation" +msgstr "Instalar uma estação de trabalho" + +#. Installation mode. +#. txt_menuitem_server +msgid "Install a server" +msgstr "Instalar um servidor" + +#. Installation mode. +#. txt_menuitem_oem +msgid "OEM install (for manufacturers)" +msgstr "Instalação OEM (para fabricantes)" + +#. Installation mode. +#. txt_menuitem_lamp +msgid "Install a LAMP server" +msgstr "Instalar um servidor LAMP" + +#. Installation mode. +#. txt_menuitem_ltsp +msgid "Install an LTSP server" +msgstr "Instalar um servidor LTSP" + +#. Installation mode. +#. txt_menuitem_cli +msgid "Install a command-line system" +msgstr "Instalar um sistema de linha de comandos" + +#. Installation mode. +#. txt_menuitem_minimal +msgid "Install a minimal system" +msgstr "Instalar um sistema mínimo" + +#. Installation mode. +#. txt_menuitem_minimalvm +msgid "Install a minimal virtual machine" +msgstr "Instalar uma máquina virtual mínima" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_check +msgid "^Check disc for defects" +msgstr "^Verificar se o disco tem defeitos" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_rescue +msgid "^Rescue a broken system" +msgstr "^Reuperar um sistema com problemas" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_memtest +msgid "Test ^memory" +msgstr "Testar a ^memória (RAM)" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_hd +msgid "^Boot from first hard disk" +msgstr "Arrancar a partir do ^primeiro disco rígido" + +#. Boot option. +#. txt_option_free +msgid "Free software only" +msgstr "Só programa livre" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_dell_factory_recovery +msgid "^Dell Automatic Reinstall" +msgstr "Reinstalação Automática da ^Dell" + +#. txt_resolution +msgid "Resolution" +msgstr "Resolução" + +#. txt_videodrv +msgid "Video" +msgstr "Vídeo" + +#. txt_video_driver_auto +msgid "Auto" +msgstr "" + +#. txt_no_composite +msgid "No composite" +msgstr "" + +#. txt_audio +msgid "Audio" +msgstr "Áudio" diff --git a/po/pt_BR.po b/po/pt_BR.po new file mode 100644 index 0000000..9dd9f60 --- /dev/null +++ b/po/pt_BR.po @@ -0,0 +1,314 @@ +# LANGUAGE translations for boot loader +# Copyright (C) 2004 SUSE LINUX AG +# +msgid "" +msgstr "" +"Project-Id-Version: bootloader\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-10-09 09:00+0000\n" +"PO-Revision-Date: 2013-12-15 11:39+0000\n" +"Last-Translator: Neliton Pereira Jr. \n" +"Language-Team: Novell Language \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-12-16 17:21+0000\n" +"X-Generator: Launchpad (build 17286)\n" + +#. ok button label +#. txt_ok +msgid "OK" +msgstr "OK" + +#. cancel button label +#. txt_cancel +msgid "Cancel" +msgstr "Cancelar" + +#. reboot button label +#. txt_reboot +msgid "Reboot" +msgstr "Reiniciar" + +#. continue button label +#. txt_continue +msgid "Continue" +msgstr "Continuar" + +#. txt_bootoptions +msgid "Boot Options" +msgstr "Opções de inicialização" + +#. window title for exit dialog +#. txt_exit_title (see txt_exit_dialog) +msgid "Exiting..." +msgstr "Saindo..." + +#. txt_exit_dialog +msgid "" +"You are leaving the graphical boot menu and\n" +"starting the text mode interface." +msgstr "" +"Você está saindo do menu de inicialização gráfica\n" +"e iniciando a interface em modo de texto." + +#. txt_help +msgid "Help" +msgstr "Ajuda" + +#. info box title +#. txt_info_title +msgid "Boot loader" +msgstr "Gerenciador de inicialização" + +#. error box title +#. txt_error_title +msgid "I/O error" +msgstr "Erro de I/O" + +#. boot disk change dialog title +#. txt_change_disk_title +msgid "Change Boot Disk" +msgstr "Alterar disco de inicialização" + +#. txt_insert_disk +#, c-format +msgid "Insert boot disk %u." +msgstr "Insira o disco de inicialização %u." + +#. txt_insert_disk2 +#, c-format +msgid "" +"This is boot disk %u.\n" +"Insert boot disk %u." +msgstr "" +"Este é o disco de inicialização %u.\n" +"Insira o disco de inicialização %u." + +#. txt_insert_disk3 +#, c-format +msgid "" +"This is not a suitable boot disk.\n" +"Please insert boot disk %u." +msgstr "" +"Este não é um disco de inicialização adequado.\n" +"Por favor insira o disco de inicialização %u." + +#. password dialog title +#. txt_password_title +msgid "Password" +msgstr "Senha" + +#. Keep the newlines and spaces after ':'! +#. txt_password +msgid "" +"Enter your password: \n" +"\n" +"\n" +msgstr "" +"Digite a sua senha: \n" +"\n" +"\n" + +#. dvd warning title +#. txt_dvd_warning_title +msgid "DVD Error" +msgstr "Erro no DVD" + +#. txt_dvd_warning2 +msgid "" +"This is a two-sided DVD. You have booted from the second side.\n" +"\n" +"Turn the DVD over then continue." +msgstr "" +"Este é um DVD de duas faces. Você está iniciando a partir do segundo lado.\n" +"Vire o DVD e continue." + +#. power off dialog title +#. txt_power_off_title +msgid "Power Off" +msgstr "Desligar" + +#. txt_power_off +msgid "Halt the system now?" +msgstr "Desligar o sistema agora?" + +#. txt_password +msgid "Password\n" +msgstr "Senha\n" + +#. button label for other/more options +#. txt_other_options +msgid "Other Options" +msgstr "Outras opções" + +#. label for language selection +#. txt_language +msgid "Locale" +msgstr "Localização" + +#. label for keymap selection +#. txt_keymap +msgid "Keymap" +msgstr "Mapa de caracteres" + +#. label for installation mode selection +#. txt_modes +msgid "Modes" +msgstr "Modos" + +#. label for modes menu +#. txt_mode_normal +msgid "Normal" +msgstr "Normal" + +#. label for d-i mode menu +#. txt_expert_mode +msgid "Expert mode" +msgstr "Modo especialista" + +#. title for accessibility menu +#. txt_access +msgid "Accessibility" +msgstr "Acessibilidade" + +#. label for accessibility menu +#. txt_access_none +msgid "None" +msgstr "Nenhum" + +#. label for accessibility menu +#. txt_access_v1 +msgid "High Contrast" +msgstr "Alto contraste" + +#. label for accessibility menu +#. txt_access_v2 +msgid "Magnifier" +msgstr "Ampliação" + +#. label for accessibility menu +#. txt_access_v3 +msgid "Screen Reader" +msgstr "Leitor de tela" + +#. label for accessibility menu +#. txt_access_brltty +msgid "Braille Terminal" +msgstr "Terminal em Braille" + +#. label for accessibility menu +#. txt_access_m1 +msgid "Keyboard Modifiers" +msgstr "Modificadores de teclado" + +#. label for accessibility menu +#. txt_access_m2 +msgid "On-Screen Keyboard" +msgstr "Teclado virtual" + +#. label for accessibility menu +#. txt_access_m3 +msgid "Motor Difficulties - switch devices" +msgstr "Dificuldades motoras - alternar dispositivos" + +#. label for accessibility menu +#. txt_access_all +msgid "Everything" +msgstr "Tudo" + +#. Installation mode. +#. txt_menuitem_driverupdates +msgid "Use driver update disc" +msgstr "Usar o disco de atualização de driver" + +#. Installation mode. +#. txt_menuitem_workstation +msgid "Install a workstation" +msgstr "Instalar uma estação de trabalho" + +#. Installation mode. +#. txt_menuitem_server +msgid "Install a server" +msgstr "Instalar um servidor" + +#. Installation mode. +#. txt_menuitem_oem +msgid "OEM install (for manufacturers)" +msgstr "Instalação OEM (para fabricantes)" + +#. Installation mode. +#. txt_menuitem_lamp +msgid "Install a LAMP server" +msgstr "Instalar um servidor LAMP" + +#. Installation mode. +#. txt_menuitem_ltsp +msgid "Install an LTSP server" +msgstr "Instalar um servidor LTSP" + +#. Installation mode. +#. txt_menuitem_cli +msgid "Install a command-line system" +msgstr "Instalar um sistema de linha de comando" + +#. Installation mode. +#. txt_menuitem_minimal +msgid "Install a minimal system" +msgstr "Instalar um sistema mínimo" + +#. Installation mode. +#. txt_menuitem_minimalvm +msgid "Install a minimal virtual machine" +msgstr "Instalar uma máquina virtual mínima." + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_check +msgid "^Check disc for defects" +msgstr "^Verificar se há defeitos no disco" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_rescue +msgid "^Rescue a broken system" +msgstr "^Recuperar um sistema corrompido" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_memtest +msgid "Test ^memory" +msgstr "Testar ^memória" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_hd +msgid "^Boot from first hard disk" +msgstr "Inicializar pelo ^primeiro disco rígido" + +#. Boot option. +#. txt_option_free +msgid "Free software only" +msgstr "Somente software livre" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_dell_factory_recovery +msgid "^Dell Automatic Reinstall" +msgstr "^Reinstalação automática Dell" + +#. txt_resolution +msgid "Resolution" +msgstr "Resolução" + +#. txt_videodrv +msgid "Video" +msgstr "Vídeo" + +#. txt_video_driver_auto +msgid "Auto" +msgstr "" + +#. txt_no_composite +msgid "No Composite" +msgstr "" + +#. txt_audio +msgid "Audio" +msgstr "Áudio" diff --git a/po/ro.po b/po/ro.po new file mode 100644 index 0000000..c2f6b62 --- /dev/null +++ b/po/ro.po @@ -0,0 +1,317 @@ +# translation of ro.po to Romanian +# LANGUAGE translations for boot loader +# Copyright (C) 2004 SUSE LINUX AG +# Claudiu Costin , 2004. +# Lucian Adrian Grijincu , 2010. +msgid "" +msgstr "" +"Project-Id-Version: ro\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-10-09 09:00+0000\n" +"PO-Revision-Date: 2014-02-17 12:49+0000\n" +"Last-Translator: Marian Vasile \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-12-16 17:21+0000\n" +"X-Generator: Launchpad (build 17286)\n" + +#. ok button label +#. txt_ok +msgid "OK" +msgstr "OK" + +#. cancel button label +#. txt_cancel +msgid "Cancel" +msgstr "Renunță" + +#. reboot button label +#. txt_reboot +msgid "Reboot" +msgstr "Repornește" + +#. continue button label +#. txt_continue +msgid "Continue" +msgstr "Continuă" + +#. txt_bootoptions +msgid "Boot Options" +msgstr "Opțiuni de pornire" + +#. window title for exit dialog +#. txt_exit_title (see txt_exit_dialog) +msgid "Exiting..." +msgstr "Ieșire..." + +#. txt_exit_dialog +msgid "" +"You are leaving the graphical boot menu and\n" +"starting the text mode interface." +msgstr "" +"Acum veți părăsi modul grafic de pornire\n" +"și veți intra în interfața text." + +#. txt_help +msgid "Help" +msgstr "Ajutor" + +#. info box title +#. txt_info_title +msgid "Boot loader" +msgstr "Încărcător de sistem" + +#. error box title +#. txt_error_title +msgid "I/O error" +msgstr "Eroare de intrare/ieșire" + +#. boot disk change dialog title +#. txt_change_disk_title +msgid "Change Boot Disk" +msgstr "Schimbare disc de pornire" + +#. txt_insert_disk +#, c-format +msgid "Insert boot disk %u." +msgstr "Introduceți discul de pornire %u." + +#. txt_insert_disk2 +#, c-format +msgid "" +"This is boot disk %u.\n" +"Insert boot disk %u." +msgstr "" +"Acesta este discul de pornire %u.\n" +"Introduceți discul de pornire %u." + +#. txt_insert_disk3 +#, c-format +msgid "" +"This is not a suitable boot disk.\n" +"Please insert boot disk %u." +msgstr "" +"Acesta nu este un disc de pornire potrivit.\n" +"Introduceți discul de pornire %u." + +#. password dialog title +#. txt_password_title +msgid "Password" +msgstr "Parola" + +#. Keep the newlines and spaces after ':'! +#. txt_password +msgid "" +"Enter your password: \n" +"\n" +"\n" +msgstr "" +"Introduceți parola: \n" +"\n" +"\n" + +#. dvd warning title +#. txt_dvd_warning_title +msgid "DVD Error" +msgstr "Eroare DVD" + +#. txt_dvd_warning2 +msgid "" +"This is a two-sided DVD. You have booted from the second side.\n" +"\n" +"Turn the DVD over then continue." +msgstr "" +"Acesta este un DVD cu două fețe. Ați pornit sistemul de pe fața a doua.\n" +"\n" +"Întoarceți DVD-ul și apoi continuați." + +#. power off dialog title +#. txt_power_off_title +msgid "Power Off" +msgstr "Oprire" + +#. txt_power_off +msgid "Halt the system now?" +msgstr "Opresc sistemul acum?" + +#. txt_password +msgid "Password\n" +msgstr "Parola\n" + +#. button label for other/more options +#. txt_other_options +msgid "Other Options" +msgstr "Alte opțiuni" + +#. label for language selection +#. txt_language +msgid "Locale" +msgstr "Localizare" + +#. label for keymap selection +#. txt_keymap +msgid "Keymap" +msgstr "Tastatură" + +#. label for installation mode selection +#. txt_modes +msgid "Modes" +msgstr "Moduri" + +#. label for modes menu +#. txt_mode_normal +msgid "Normal" +msgstr "Normal" + +#. label for d-i mode menu +#. txt_expert_mode +msgid "Expert mode" +msgstr "Mod expert" + +#. title for accessibility menu +#. txt_access +msgid "Accessibility" +msgstr "Accesibilitate" + +#. label for accessibility menu +#. txt_access_none +msgid "None" +msgstr "Nimic" + +#. label for accessibility menu +#. txt_access_v1 +msgid "High Contrast" +msgstr "Contrast puternic" + +#. label for accessibility menu +#. txt_access_v2 +msgid "Magnifier" +msgstr "Lupă" + +#. label for accessibility menu +#. txt_access_v3 +msgid "Screen Reader" +msgstr "Cititor de ecran" + +#. label for accessibility menu +#. txt_access_brltty +msgid "Braille Terminal" +msgstr "Terminal Braille" + +#. label for accessibility menu +#. txt_access_m1 +msgid "Keyboard Modifiers" +msgstr "Modificatori tastatură" + +#. label for accessibility menu +#. txt_access_m2 +msgid "On-Screen Keyboard" +msgstr "Tastatură virtuală" + +#. label for accessibility menu +#. txt_access_m3 +msgid "Motor Difficulties - switch devices" +msgstr "Deficiențe motoare - dispozitive tip butoane" + +#. label for accessibility menu +#. txt_access_all +msgid "Everything" +msgstr "Tot" + +#. Installation mode. +#. txt_menuitem_driverupdates +msgid "Use driver update disc" +msgstr "Folosește discul de actualizare a driverelor" + +#. Installation mode. +#. txt_menuitem_workstation +msgid "Install a workstation" +msgstr "Instalează o stație de lucru" + +#. Installation mode. +#. txt_menuitem_server +msgid "Install a server" +msgstr "Instalează un server" + +#. Installation mode. +#. txt_menuitem_oem +msgid "OEM install (for manufacturers)" +msgstr "Instalare pentru producătorii de calculatoare (OEM)" + +#. Installation mode. +#. txt_menuitem_lamp +msgid "Install a LAMP server" +msgstr "Instalează un server LAMP" + +#. Installation mode. +#. txt_menuitem_ltsp +msgid "Install an LTSP server" +msgstr "Instalează un server LTSP" + +#. Installation mode. +#. txt_menuitem_cli +msgid "Install a command-line system" +msgstr "Instalează un sistem fără mod grafic" + +#. Installation mode. +#. txt_menuitem_minimal +msgid "Install a minimal system" +msgstr "Instalează un sistem minimal" + +#. Installation mode. +#. txt_menuitem_minimalvm +msgid "Install a minimal virtual machine" +msgstr "Instalează o mașină virtuală minimală" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_check +msgid "^Check disc for defects" +msgstr "Verifi^că dacă discul are defecte" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_rescue +msgid "^Rescue a broken system" +msgstr "Salvați un sistem ava^riat" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_memtest +msgid "Test ^memory" +msgstr "Testează ^memoria" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_hd +msgid "^Boot from first hard disk" +msgstr "^Pornește de pe primul hard disc" + +#. Boot option. +#. txt_option_free +msgid "Free software only" +msgstr "Doar software liber" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_dell_factory_recovery +msgid "^Dell Automatic Reinstall" +msgstr "Reinstalare automată ^Dell" + +#. txt_resolution +msgid "Resolution" +msgstr "Rezoluție" + +#. txt_videodrv +msgid "Video" +msgstr "Video" + +#. txt_video_driver_auto +msgid "Auto" +msgstr "" + +#. txt_no_composite +msgid "No Composite" +msgstr "" + +#. txt_audio +msgid "Audio" +msgstr "Audio" diff --git a/po/ru.po b/po/ru.po new file mode 100644 index 0000000..6a316b8 --- /dev/null +++ b/po/ru.po @@ -0,0 +1,318 @@ +# translation of bootloader.po to Russian +# LANGUAGE translations for boot loader +# Copyright (C) 2004 SUSE LINUX AG +# Copyright (C) 2004 Vdel CREC +# Andrew Bogatov, 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: bootloader\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2013-12-15 11:39+0000\n" +"Last-Translator: Igor Zubarev \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-12-16 17:21+0000\n" +"X-Generator: Launchpad (build 17286)\n" + +#. ok button label +#. txt_ok +msgid "OK" +msgstr "OK" + +#. cancel button label +#. txt_cancel +msgid "Cancel" +msgstr "Отмена" + +#. reboot button label +#. txt_reboot +msgid "Reboot" +msgstr "Перезагрузка" + +#. continue button label +#. txt_continue +msgid "Continue" +msgstr "Продолжить" + +#. txt_bootoptions +msgid "Boot Options" +msgstr "Параметры загрузки" + +#. window title for exit dialog +#. txt_exit_title (see txt_exit_dialog) +msgid "Exiting..." +msgstr "Выход..." + +#. txt_exit_dialog +msgid "" +"You are leaving the graphical boot menu and\n" +"starting the text mode interface." +msgstr "" +"Вы покидаете графическое меню загрузки.\n" +"Будет запущен текстовый интерфейс." + +#. txt_help +msgid "Help" +msgstr "Справка" + +#. info box title +#. txt_info_title +msgid "Boot loader" +msgstr "Загрузчик" + +#. error box title +#. txt_error_title +msgid "I/O error" +msgstr "Ошибка ввода/вывода" + +#. boot disk change dialog title +#. txt_change_disk_title +msgid "Change Boot Disk" +msgstr "Смените загрузочный диск" + +#. txt_insert_disk +#, c-format +msgid "Insert boot disk %u." +msgstr "Вставьте загрузочный диск %u." + +#. txt_insert_disk2 +#, c-format +msgid "" +"This is boot disk %u.\n" +"Insert boot disk %u." +msgstr "" +"Это загрузочный диск %u.\n" +"Вставьте загрузочный диск %u." + +#. txt_insert_disk3 +#, c-format +msgid "" +"This is not a suitable boot disk.\n" +"Please insert boot disk %u." +msgstr "" +"Это неподходящий загрузочный диск.\n" +"Пожалуйста, вставьте загрузочный диск %u." + +#. password dialog title +#. txt_password_title +msgid "Password" +msgstr "Пароль" + +#. Keep the newlines and spaces after ':'! +#. txt_password +msgid "" +"Enter your password: \n" +"\n" +"\n" +msgstr "" +"Введите ваш пароль: \n" +"\n" +"\n" + +#. dvd warning title +#. txt_dvd_warning_title +msgid "DVD Error" +msgstr "Ошибка DVD" + +#. txt_dvd_warning2 +msgid "" +"This is a two-sided DVD. You have booted from the second side.\n" +"\n" +"Turn the DVD over then continue." +msgstr "" +"Это двусторонний DVD-диск. Вы загрузились со второй стороны.\n" +"\n" +"Переверните DVD и продолжайте." + +#. power off dialog title +#. txt_power_off_title +msgid "Power Off" +msgstr "Выключить питание" + +#. txt_power_off +msgid "Halt the system now?" +msgstr "Выключить систему?" + +#. txt_password +msgid "Password\n" +msgstr "Пароль\n" + +#. button label for other/more options +#. txt_other_options +msgid "Other Options" +msgstr "Параметры" + +#. label for language selection +#. txt_language +msgid "Locale" +msgstr "Локализация" + +#. label for keymap selection +#. txt_keymap +msgid "Keymap" +msgstr "Клавиатура" + +#. label for installation mode selection +#. txt_modes +msgid "Modes" +msgstr "Режимы" + +#. label for modes menu +#. txt_mode_normal +msgid "Normal" +msgstr "Обычный" + +#. label for d-i mode menu +#. txt_expert_mode +msgid "Expert mode" +msgstr "Режим эксперта" + +#. title for accessibility menu +#. txt_access +msgid "Accessibility" +msgstr "Специальные возможности" + +#. label for accessibility menu +#. txt_access_none +msgid "None" +msgstr "Нет" + +#. label for accessibility menu +#. txt_access_v1 +msgid "High Contrast" +msgstr "Высокая контрастность" + +#. label for accessibility menu +#. txt_access_v2 +msgid "Magnifier" +msgstr "Экранная лупа" + +#. label for accessibility menu +#. txt_access_v3 +msgid "Screen Reader" +msgstr "Экранный диктор" + +#. label for accessibility menu +#. txt_access_brltty +msgid "Braille Terminal" +msgstr "Терминал Брайля" + +#. label for accessibility menu +#. txt_access_m1 +msgid "Keyboard Modifiers" +msgstr "Модификаторы клавиатуры" + +#. label for accessibility menu +#. txt_access_m2 +msgid "On-Screen Keyboard" +msgstr "Экранная клавиатура" + +#. label for accessibility menu +#. txt_access_m3 +msgid "Motor Difficulties - switch devices" +msgstr "Переключающие устройства при нарушениях моторики" + +#. label for accessibility menu +#. txt_access_all +msgid "Everything" +msgstr "Всё" + +#. Installation mode. +#. txt_menuitem_driverupdates +msgid "Use driver update disc" +msgstr "Использовать диск с обновлениями драйверов" + +#. Installation mode. +#. txt_menuitem_workstation +msgid "Install a workstation" +msgstr "Установить рабочую станцию" + +#. Installation mode. +#. txt_menuitem_server +msgid "Install a server" +msgstr "Установить сервер" + +#. Installation mode. +#. txt_menuitem_oem +msgid "OEM install (for manufacturers)" +msgstr "OEM-режим установки (для производителей)" + +#. Installation mode. +#. txt_menuitem_lamp +msgid "Install a LAMP server" +msgstr "Установить сервер LAMP" + +#. Installation mode. +#. txt_menuitem_ltsp +msgid "Install an LTSP server" +msgstr "Установить сервер LTSP" + +#. Installation mode. +#. txt_menuitem_cli +msgid "Install a command-line system" +msgstr "Установить систему без графического интерфейса" + +#. Installation mode. +#. txt_menuitem_minimal +msgid "Install a minimal system" +msgstr "Установить систему в минимальной комплектации" + +#. Installation mode. +#. txt_menuitem_minimalvm +msgid "Install a minimal virtual machine" +msgstr "Установить минимальную виртуальную машину" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_check +msgid "^Check disc for defects" +msgstr "^Проверить диск на наличие ошибок" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_rescue +msgid "^Rescue a broken system" +msgstr "^Восстановить систему" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_memtest +msgid "Test ^memory" +msgstr "Проверить ^память" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_hd +msgid "^Boot from first hard disk" +msgstr "^Загрузиться с первого жёсткого диска" + +#. Boot option. +#. txt_option_free +msgid "Free software only" +msgstr "Только свободное ПО" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_dell_factory_recovery +msgid "^Dell Automatic Reinstall" +msgstr "^Автоматическая переустановка Dell" + +#. txt_resolution +msgid "Resolution" +msgstr "Разрешение" + +#. txt_videodrv +msgid "Video" +msgstr "Видео" + +#. txt_video_driver_auto +msgid "Auto" +msgstr "Авто" + +#. txt_no_composite +msgid "No Composite" +msgstr "" + +#. txt_audio +msgid "Audio" +msgstr "Аудио" diff --git a/po/sk.po b/po/sk.po new file mode 100644 index 0000000..272c23c --- /dev/null +++ b/po/sk.po @@ -0,0 +1,319 @@ +# translation of bootloader.po to +# LANGUAGE translations for boot loader +# Copyright (C) 2004 SUSE LINUX AG +# , 2004. +# , 2004. +# Andrej Kacian , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: bootloader\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-10-09 09:00+0000\n" +"PO-Revision-Date: 2013-04-23 15:53+0000\n" +"Last-Translator: Erich Stark \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-12-16 17:21+0000\n" +"X-Generator: Launchpad (build 17286)\n" + +#. ok button label +#. txt_ok +msgid "OK" +msgstr "Ok" + +#. cancel button label +#. txt_cancel +msgid "Cancel" +msgstr "Zrušiť" + +#. reboot button label +#. txt_reboot +msgid "Reboot" +msgstr "Reštartovať" + +#. continue button label +#. txt_continue +msgid "Continue" +msgstr "Pokračovať" + +#. txt_bootoptions +msgid "Boot Options" +msgstr "Štartovacie parametre" + +#. window title for exit dialog +#. txt_exit_title (see txt_exit_dialog) +msgid "Exiting..." +msgstr "Ukončuje sa..." + +#. txt_exit_dialog +msgid "" +"You are leaving the graphical boot menu and\n" +"starting the text mode interface." +msgstr "" +"Opúšťate grafickú ponuku štartu a spúšťate\n" +"textové používateľské rozhranie." + +#. txt_help +msgid "Help" +msgstr "Pomocník" + +#. info box title +#. txt_info_title +msgid "Boot loader" +msgstr "Zavádzač systému" + +#. error box title +#. txt_error_title +msgid "I/O error" +msgstr "V/V chyba" + +#. boot disk change dialog title +#. txt_change_disk_title +msgid "Change Boot Disk" +msgstr "Zmena štartovacieho disku" + +#. txt_insert_disk +#, c-format +msgid "Insert boot disk %u." +msgstr "Vložte štartovací disk %u." + +#. txt_insert_disk2 +#, c-format +msgid "" +"This is boot disk %u.\n" +"Insert boot disk %u." +msgstr "" +"Toto je štartovací disk %u.\n" +"Vložte štartovací disk %u." + +#. txt_insert_disk3 +#, c-format +msgid "" +"This is not a suitable boot disk.\n" +"Please insert boot disk %u." +msgstr "" +"Toto nie je vhodný štartovací disk. \n" +"Vložte, prosím, štartovací disk %u." + +#. password dialog title +#. txt_password_title +msgid "Password" +msgstr "Heslo" + +#. Keep the newlines and spaces after ':'! +#. txt_password +msgid "" +"Enter your password: \n" +"\n" +"\n" +msgstr "" +"Zadajte vaše heslo: \n" +"\n" +"\n" + +#. dvd warning title +#. txt_dvd_warning_title +msgid "DVD Error" +msgstr "Chyba DVD" + +#. txt_dvd_warning2 +msgid "" +"This is a two-sided DVD. You have booted from the second side.\n" +"\n" +"Turn the DVD over then continue." +msgstr "" +"Toto je obojstranné DVD médium. Spúšťate systém z druhej strany.\n" +"\n" +"Prosím otočte médium a potom pokračujte." + +#. power off dialog title +#. txt_power_off_title +msgid "Power Off" +msgstr "Vypnúť" + +#. txt_power_off +msgid "Halt the system now?" +msgstr "Naozaj chcete vypnúť počítač?" + +#. txt_password +msgid "Password\n" +msgstr "Heslo\n" + +#. button label for other/more options +#. txt_other_options +msgid "Other Options" +msgstr "Ďalšie voľby" + +#. label for language selection +#. txt_language +msgid "Locale" +msgstr "Lokalizácia" + +#. label for keymap selection +#. txt_keymap +msgid "Keymap" +msgstr "Klávesnica" + +#. label for installation mode selection +#. txt_modes +msgid "Modes" +msgstr "Režimy" + +#. label for modes menu +#. txt_mode_normal +msgid "Normal" +msgstr "Normálny" + +#. label for d-i mode menu +#. txt_expert_mode +msgid "Expert mode" +msgstr "Rozšírený spôsob inštalácie" + +#. title for accessibility menu +#. txt_access +msgid "Accessibility" +msgstr "Prístupnosť" + +#. label for accessibility menu +#. txt_access_none +msgid "None" +msgstr "Žiadne" + +#. label for accessibility menu +#. txt_access_v1 +msgid "High Contrast" +msgstr "Vysoký kontrast" + +#. label for accessibility menu +#. txt_access_v2 +msgid "Magnifier" +msgstr "Lupa" + +#. label for accessibility menu +#. txt_access_v3 +msgid "Screen Reader" +msgstr "Čítačka obrazovky" + +#. label for accessibility menu +#. txt_access_brltty +msgid "Braille Terminal" +msgstr "Terminál v Braillovom písme" + +#. label for accessibility menu +#. txt_access_m1 +msgid "Keyboard Modifiers" +msgstr "Zmeny klávesnice" + +#. label for accessibility menu +#. txt_access_m2 +msgid "On-Screen Keyboard" +msgstr "Klávesnica na obrazovke" + +#. label for accessibility menu +#. txt_access_m3 +msgid "Motor Difficulties - switch devices" +msgstr "Pohybové ťažkosti - prepnúť zariadenia" + +#. label for accessibility menu +#. txt_access_all +msgid "Everything" +msgstr "Všetko" + +#. Installation mode. +#. txt_menuitem_driverupdates +msgid "Use driver update disc" +msgstr "Použiť disk pre aktualizáciu ovládačov" + +#. Installation mode. +#. txt_menuitem_workstation +msgid "Install a workstation" +msgstr "Inštalácia pracovnej stanice" + +#. Installation mode. +#. txt_menuitem_server +msgid "Install a server" +msgstr "Inštalovať server" + +#. Installation mode. +#. txt_menuitem_oem +msgid "OEM install (for manufacturers)" +msgstr "OEM inštalácia (pre výrobcov)" + +#. Installation mode. +#. txt_menuitem_lamp +msgid "Install a LAMP server" +msgstr "Inštalácia LAMP servera" + +#. Installation mode. +#. txt_menuitem_ltsp +msgid "Install an LTSP server" +msgstr "Inštalácia LTSP servera" + +#. Installation mode. +#. txt_menuitem_cli +msgid "Install a command-line system" +msgstr "Inštalovať systém iba s príkazovým riadkom" + +#. Installation mode. +#. txt_menuitem_minimal +msgid "Install a minimal system" +msgstr "Inštalácia minimálneho systému" + +#. Installation mode. +#. txt_menuitem_minimalvm +msgid "Install a minimal virtual machine" +msgstr "Inštalovať minimálny virtuálny stroj" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_check +msgid "^Check disc for defects" +msgstr "^Skontrolovať chyby na disku" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_rescue +msgid "^Rescue a broken system" +msgstr "^Zachrániť poškodený systém" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_memtest +msgid "Test ^memory" +msgstr "^Test pamäte" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_hd +msgid "^Boot from first hard disk" +msgstr "Štart systému z prvého ^disku" + +#. Boot option. +#. txt_option_free +msgid "Free software only" +msgstr "Iba slobodný softvér" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_dell_factory_recovery +msgid "^Dell Automatic Reinstall" +msgstr "^Automatické preinštalovanie Dell" + +#. txt_resolution +msgid "Resolution" +msgstr "Rozlíšenie" + +#. txt_videodrv +msgid "Video" +msgstr "Video" + +#. txt_video_driver_auto +msgid "Auto" +msgstr "" + +#. txt_no_composite +msgid "No composite" +msgstr "" + +#. txt_audio +msgid "Audio" +msgstr "Zvuk" diff --git a/po/sl.po b/po/sl.po new file mode 100644 index 0000000..3fd2435 --- /dev/null +++ b/po/sl.po @@ -0,0 +1,320 @@ +# translation of sl.po to Slovenščina +# translation of bootloader.sl_SI.po to Slovenscina +# translation of sl_SI.po to Slovenscina +# LANGUAGE translations for boot loader +# Copyright (C) 2004 SUSE LINUX AG +# Janez Krek , 2004, 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: sl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-10-09 09:00+0000\n" +"PO-Revision-Date: 2013-12-15 11:41+0000\n" +"Last-Translator: Launchpad Translations Administrators \n" +"Language-Team: Slovenščina \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-12-16 17:21+0000\n" +"X-Generator: Launchpad (build 17286)\n" +"n%100==4 ? 2: 3);\n" + +#. ok button label +#. txt_ok +msgid "OK" +msgstr "V redu" + +#. cancel button label +#. txt_cancel +msgid "Cancel" +msgstr "Prekliči" + +#. reboot button label +#. txt_reboot +msgid "Reboot" +msgstr "Ponovno zaženi" + +#. continue button label +#. txt_continue +msgid "Continue" +msgstr "Nadaljuj" + +#. txt_bootoptions +msgid "Boot Options" +msgstr "Možnosti zagona" + +#. window title for exit dialog +#. txt_exit_title (see txt_exit_dialog) +msgid "Exiting..." +msgstr "Program bo končan ..." + +#. txt_exit_dialog +msgid "" +"You are leaving the graphical boot menu and\n" +"starting the text mode interface." +msgstr "" +"Zapustili boste grafični zagonski meni in\n" +"nadaljevali v besedilnem načinu." + +#. txt_help +msgid "Help" +msgstr "Pomoč" + +#. info box title +#. txt_info_title +msgid "Boot loader" +msgstr "Zagonski nalagalnik" + +#. error box title +#. txt_error_title +msgid "I/O error" +msgstr "Napaka I/O" + +#. boot disk change dialog title +#. txt_change_disk_title +msgid "Change Boot Disk" +msgstr "Zamenjava zagonskega diska" + +#. txt_insert_disk +#, c-format +msgid "Insert boot disk %u." +msgstr "Vstavite zagonski disk %u." + +#. txt_insert_disk2 +#, c-format +msgid "" +"This is boot disk %u.\n" +"Insert boot disk %u." +msgstr "" +"Vstavljen je zagonski disk %u.\n" +"Vstaviti je treba disk %u." + +#. txt_insert_disk3 +#, c-format +msgid "" +"This is not a suitable boot disk.\n" +"Please insert boot disk %u." +msgstr "" +"Vstavljeni zagonski disk ni ustrezen.\n" +"Vstaviti je treba disk %u." + +#. password dialog title +#. txt_password_title +msgid "Password" +msgstr "Geslo" + +#. Keep the newlines and spaces after ':'! +#. txt_password +msgid "" +"Enter your password: \n" +"\n" +"\n" +msgstr "" +"Vpišite geslo: \n" +"\n" +"\n" + +#. dvd warning title +#. txt_dvd_warning_title +msgid "DVD Error" +msgstr "Napaka na nosilcu DVD" + +#. txt_dvd_warning2 +msgid "" +"This is a two-sided DVD. You have booted from the second side.\n" +"\n" +"Turn the DVD over then continue." +msgstr "" +"Dvostranski zagonski nosilec DVD je vstavljen na napačno stran.\n" +"\n" +"Obrnite DVD in nadaljujte." + +#. power off dialog title +#. txt_power_off_title +msgid "Power Off" +msgstr "Izklopi" + +#. txt_power_off +msgid "Halt the system now?" +msgstr "Ali želite takoj zaustaviti sistem?" + +#. txt_password +msgid "Password\n" +msgstr "Geslo\n" + +#. button label for other/more options +#. txt_other_options +msgid "Other Options" +msgstr "Druge možnosti" + +#. label for language selection +#. txt_language +msgid "Locale" +msgstr "Jezikovna oznaka" + +#. label for keymap selection +#. txt_keymap +msgid "Keymap" +msgstr "Tipkovnica" + +#. label for installation mode selection +#. txt_modes +msgid "Modes" +msgstr "Načini" + +#. label for modes menu +#. txt_mode_normal +msgid "Normal" +msgstr "Običajno" + +#. label for d-i mode menu +#. txt_expert_mode +msgid "Expert mode" +msgstr "Podrobni način" + +#. title for accessibility menu +#. txt_access +msgid "Accessibility" +msgstr "Dostopnost" + +#. label for accessibility menu +#. txt_access_none +msgid "None" +msgstr "Brez" + +#. label for accessibility menu +#. txt_access_v1 +msgid "High Contrast" +msgstr "Visok kontrast" + +#. label for accessibility menu +#. txt_access_v2 +msgid "Magnifier" +msgstr "Povečevalo" + +#. label for accessibility menu +#. txt_access_v3 +msgid "Screen Reader" +msgstr "Zaslonski bralnik" + +#. label for accessibility menu +#. txt_access_brltty +msgid "Braille Terminal" +msgstr "Brajeva vrstica" + +#. label for accessibility menu +#. txt_access_m1 +msgid "Keyboard Modifiers" +msgstr "Spremenilne tipke" + +#. label for accessibility menu +#. txt_access_m2 +msgid "On-Screen Keyboard" +msgstr "Zaslonska tipkovnica" + +#. label for accessibility menu +#. txt_access_m3 +msgid "Motor Difficulties - switch devices" +msgstr "Težave z motoriko - zamenjajte napravo" + +#. label for accessibility menu +#. txt_access_all +msgid "Everything" +msgstr "Vse" + +#. Installation mode. +#. txt_menuitem_driverupdates +msgid "Use driver update disc" +msgstr "Uporabi disk s posodobitvami gonilnikov" + +#. Installation mode. +#. txt_menuitem_workstation +msgid "Install a workstation" +msgstr "Namesti delovno postajo" + +#. Installation mode. +#. txt_menuitem_server +msgid "Install a server" +msgstr "Namesti strežnik" + +#. Installation mode. +#. txt_menuitem_oem +msgid "OEM install (for manufacturers)" +msgstr "Namesti kot OEM (za proizvajalce)" + +#. Installation mode. +#. txt_menuitem_lamp +msgid "Install a LAMP server" +msgstr "Namesti strežnik LAMP" + +#. Installation mode. +#. txt_menuitem_ltsp +msgid "Install an LTSP server" +msgstr "Namesti strežnik LTSP" + +#. Installation mode. +#. txt_menuitem_cli +msgid "Install a command-line system" +msgstr "Namesti sistem ukazne vrstice" + +#. Installation mode. +#. txt_menuitem_minimal +msgid "Install a minimal system" +msgstr "Namesti najmanjši sistem" + +#. Installation mode. +#. txt_menuitem_minimalvm +msgid "Install a minimal virtual machine" +msgstr "Namesti najmanjši navidezni sistem" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_check +msgid "^Check disc for defects" +msgstr "^Preveri, ali je disk poškodovan" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_rescue +msgid "^Rescue a broken system" +msgstr "Pop^ravi pokvarjen sistem" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_memtest +msgid "Test ^memory" +msgstr "Preizkusi delovni po^mnilnik" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_hd +msgid "^Boot from first hard disk" +msgstr "^Zaženi s prvega trdega diska" + +#. Boot option. +#. txt_option_free +msgid "Free software only" +msgstr "Samo s prosto programsko opremo" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_dell_factory_recovery +msgid "^Dell Automatic Reinstall" +msgstr "Samodejna ponovna namestitiev Dell" + +#. txt_resolution +msgid "Resolution" +msgstr "Ločljivost" + +#. txt_videodrv +msgid "Video" +msgstr "Video" + +#. txt_video_driver_auto +msgid "Auto" +msgstr "" + +#. txt_no_composite +msgid "No composite" +msgstr "" + +#. txt_audio +msgid "Audio" +msgstr "Zvok" diff --git a/po/sq.po b/po/sq.po new file mode 100644 index 0000000..04456e7 --- /dev/null +++ b/po/sq.po @@ -0,0 +1,317 @@ +# Albanian translation for gfxboot-theme-ubuntu +# Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 +# This file is distributed under the same license as the gfxboot-theme-ubuntu package. +# FIRST AUTHOR , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: gfxboot-theme-ubuntu\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2006-03-18 12:14:59.394968+00:00\n" +"PO-Revision-Date: 2014-02-03 14:06+0000\n" +"Last-Translator: Vilson Gjeci \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-12-16 17:20+0000\n" +"X-Generator: Launchpad (build 17286)\n" + +#. ok button label +#. txt_ok +msgid "OK" +msgstr "OK" + +#. cancel button label +#. txt_cancel +msgid "Cancel" +msgstr "Anullo" + +#. reboot button label +#. txt_reboot +msgid "Reboot" +msgstr "Rindize" + +#. continue button label +#. txt_continue +msgid "Continue" +msgstr "Vazhdo" + +#. txt_bootoptions +msgid "Boot Options" +msgstr "Opsionet e Nisjes (boot)" + +#. window title for exit dialog +#. txt_exit_title (see txt_exit_dialog) +msgid "Exiting..." +msgstr "Duke Dalë..." + +#. txt_exit_dialog +msgid "" +"You are leaving the graphical boot menu and\n" +"starting the text mode interface." +msgstr "" +"Ju po dilni nga Menuja Grafike e Nisjes \"boot\" dhe\n" +"po nisni versionin e ndërfaqes me tekst." + +#. txt_help +msgid "Help" +msgstr "Ndihmë" + +#. info box title +#. txt_info_title +msgid "Boot loader" +msgstr "Ngarkuesi i nisjes (boot)" + +#. error box title +#. txt_error_title +msgid "I/O error" +msgstr "Gabim I/O" + +#. boot disk change dialog title +#. txt_change_disk_title +msgid "Change Boot Disk" +msgstr "Ndërro Diskun e Nisjes" + +#. txt_insert_disk +#, c-format +msgid "Insert boot disk %u." +msgstr "Fut diskun e nisjes %u." + +#. txt_insert_disk2 +#, c-format +msgid "" +"This is boot disk %u.\n" +"Insert boot disk %u." +msgstr "" +"Ky është disku i nisjes %u.\n" +"Fut diskun e nisjes %u." + +#. txt_insert_disk3 +#, c-format +msgid "" +"This is not a suitable boot disk.\n" +"Please insert boot disk %u." +msgstr "" +"Ky nuk është një disk i përshtatshëm i nisjes.\n" +"Ju lutemi të vendosni diskun e nisjes %u." + +#. password dialog title +#. txt_password_title +msgid "Password" +msgstr "Fjalëkalimi" + +#. Keep the newlines and spaces after ':'! +#. txt_password +msgid "" +"Enter your password: \n" +"\n" +"\n" +msgstr "" +"Vendosni fjalëkalimin tuaj: \n" +"\n" +"\n" + +#. dvd warning title +#. txt_dvd_warning_title +msgid "DVD Error" +msgstr "Gabim i DVD-së" + +#. txt_dvd_warning2 +msgid "" +"This is a two-sided DVD. You have booted from the second side.\n" +"\n" +"Turn the DVD over then continue." +msgstr "" +"Kjo është një DVD me dy-anë. Ju e keni nisur nga ana e dytë.\n" +"\n" +"Ktheje DVD-në në krahun tjetër dhe vazhdo." + +#. power off dialog title +#. txt_power_off_title +msgid "Power Off" +msgstr "Fike" + +#. txt_power_off +msgid "Halt the system now?" +msgstr "Ta ndaloj sistemin tani?" + +#. txt_password +msgid "Password\n" +msgstr "Fjalëkalimi\n" + +#. button label for other/more options +#. txt_other_options +msgid "Other Options" +msgstr "Opsione të Tjera" + +#. label for language selection +#. txt_language +msgid "Locale" +msgstr "Vendndodhje" + +#. label for keymap selection +#. txt_keymap +msgid "Keymap" +msgstr "Klasifikimi i tastierës" + +#. label for installation mode selection +#. txt_modes +msgid "Modes" +msgstr "Mënyrat" + +#. label for modes menu +#. txt_mode_normal +msgid "Normal" +msgstr "Normale" + +#. label for d-i mode menu +#. txt_expert_mode +msgid "Expert mode" +msgstr "Mënyra e ekspertit" + +#. title for accessibility menu +#. txt_access +msgid "Accessibility" +msgstr "Përdorshmëria" + +#. label for accessibility menu +#. txt_access_none +msgid "None" +msgstr "Asnjë" + +#. label for accessibility menu +#. txt_access_v1 +msgid "High Contrast" +msgstr "Kontrast i Lartë" + +#. label for accessibility menu +#. txt_access_v2 +msgid "Magnifier" +msgstr "Zmadhuesi" + +#. label for accessibility menu +#. txt_access_v3 +msgid "Screen Reader" +msgstr "Lexues Ekrani" + +#. label for accessibility menu +#. txt_access_brltty +msgid "Braille Terminal" +msgstr "Terminali i Braille (alfabet për të verbërit)" + +#. label for accessibility menu +#. txt_access_m1 +msgid "Keyboard Modifiers" +msgstr "Modifikues të Tastierës" + +#. label for accessibility menu +#. txt_access_m2 +msgid "On-Screen Keyboard" +msgstr "Tastierë në Ekran" + +#. label for accessibility menu +#. txt_access_m3 +msgid "Motor Difficulties - switch devices" +msgstr "Probleme Motorike - ndërro pajisjet" + +#. label for accessibility menu +#. txt_access_all +msgid "Everything" +msgstr "Gjithçka" + +#. Installation mode. +#. txt_menuitem_driverupdates +msgid "Use driver update disc" +msgstr "Përdor diskun për përditësimin e draiverave" + +#. Installation mode. +#. txt_menuitem_workstation +msgid "Install a workstation" +msgstr "Instalo një stacion pune" + +#. Installation mode. +#. txt_menuitem_server +msgid "Install a server" +msgstr "Instalo një server" + +#. Installation mode. +#. txt_menuitem_oem +msgid "OEM install (for manufacturers)" +msgstr "Instalim OEM (për prodhuesit)" + +#. Installation mode. +#. txt_menuitem_lamp +msgid "Install a LAMP server" +msgstr "Instalo një server LAMP" + +#. Installation mode. +#. txt_menuitem_ltsp +msgid "Install an LTSP server" +msgstr "Instalo një server LTSP" + +#. Installation mode. +#. txt_menuitem_cli +msgid "Install a command-line system" +msgstr "Instalo një sistem me bazë komande" + +#. Installation mode. +#. txt_menuitem_minimal +msgid "Install a minimal system" +msgstr "Instalo një sistem minimal" + +#. Installation mode. +#. txt_menuitem_minimalvm +msgid "Install a minimal virtual machine" +msgstr "Instalo një makinë virtuale minimale" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_check +msgid "^Check disc for defects" +msgstr "^Kontrollo diskun për defekte" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_rescue +msgid "^Rescue a broken system" +msgstr "^Shpëto një sistem të dëmtuar" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_memtest +msgid "Test ^memory" +msgstr "Testo ^kujtesën" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_hd +msgid "^Boot from first hard disk" +msgstr "^Nis nga hard disku i parë." + +#. Boot option. +#. txt_option_free +msgid "Free software only" +msgstr "Vetëm programe falas" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_dell_factory_recovery +msgid "^Dell Automatic Reinstall" +msgstr "^Riinstalim Automatik i Dell" + +#. txt_resolution +msgid "Resolution" +msgstr "" + +#. txt_videodrv +msgid "Video" +msgstr "" + +#. txt_video_driver_auto +msgid "Auto" +msgstr "" + +#. txt_no_composite +msgid "No composite" +msgstr "" + +#. txt_audio +msgid "Audio" +msgstr "Audio" diff --git a/po/sr.po b/po/sr.po new file mode 100644 index 0000000..e99b3a2 --- /dev/null +++ b/po/sr.po @@ -0,0 +1,317 @@ +# Serbian translations for boot loader +# Copyright (C) 2005 SUSE Linux GmbH +# Copyright © 2005 Danilo Segan +# Мирослав Николић , 2011. +msgid "" +msgstr "" +"Project-Id-Version: bootloader\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-03-27 22:16+0000\n" +"PO-Revision-Date: 2013-12-15 11:42+0000\n" +"Last-Translator: Launchpad Translations Administrators \n" +"Language-Team: Ubuntu Serbian Translators\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-12-16 17:21+0000\n" +"X-Generator: Launchpad (build 17286)\n" +"X-Project-Style: default\n" + +#. ok button label +#. txt_ok +msgid "OK" +msgstr "У реду" + +#. cancel button label +#. txt_cancel +msgid "Cancel" +msgstr "Откажи" + +#. reboot button label +#. txt_reboot +msgid "Reboot" +msgstr "Поново покрени" + +#. continue button label +#. txt_continue +msgid "Continue" +msgstr "Настави" + +#. txt_bootoptions +msgid "Boot Options" +msgstr "Опције за покретање" + +#. window title for exit dialog +#. txt_exit_title (see txt_exit_dialog) +msgid "Exiting..." +msgstr "Завршавам..." + +#. txt_exit_dialog +msgid "" +"You are leaving the graphical boot menu and\n" +"starting the text mode interface." +msgstr "" +"Напуштате графички изборник покретања и\n" +"покрећете сучеље у режиму текста." + +#. txt_help +msgid "Help" +msgstr "Помоћ" + +#. info box title +#. txt_info_title +msgid "Boot loader" +msgstr "Покретач система" + +#. error box title +#. txt_error_title +msgid "I/O error" +msgstr "У/И грешка" + +#. boot disk change dialog title +#. txt_change_disk_title +msgid "Change Boot Disk" +msgstr "Промените диск за покретање" + +#. txt_insert_disk +#, c-format +msgid "Insert boot disk %u." +msgstr "Уметните диск за покретање „%u“." + +#. txt_insert_disk2 +#, c-format +msgid "" +"This is boot disk %u.\n" +"Insert boot disk %u." +msgstr "" +"Ово је диск за покретање „%u“.\n" +"Уметните диск за покретање „%u“." + +#. txt_insert_disk3 +#, c-format +msgid "" +"This is not a suitable boot disk.\n" +"Please insert boot disk %u." +msgstr "" +"Ово није прикладан диск за покретање.\n" +"Уметните диск за покретање „%u“." + +#. password dialog title +#. txt_password_title +msgid "Password" +msgstr "Лозинка" + +#. Keep the newlines and spaces after ':'! +#. txt_password +msgid "" +"Enter your password: \n" +"\n" +"\n" +msgstr "" +"Унесите вашу лозинку: \n" +"\n" +"\n" + +#. dvd warning title +#. txt_dvd_warning_title +msgid "DVD Error" +msgstr "Грешка на ДВД-у" + +#. txt_dvd_warning2 +msgid "" +"This is a two-sided DVD. You have booted from the second side.\n" +"\n" +"Turn the DVD over then continue." +msgstr "" +"Ово је двострани ДВД. Покренули сте са друге стране.\n" +"\n" +"Окрените ДВД и затим наставите." + +#. power off dialog title +#. txt_power_off_title +msgid "Power Off" +msgstr "Угаси" + +#. txt_power_off +msgid "Halt the system now?" +msgstr "Да сада угасим систем?" + +#. txt_password +msgid "Password\n" +msgstr "Лозинка\n" + +#. button label for other/more options +#. txt_other_options +msgid "Other Options" +msgstr "Остале опције" + +#. label for language selection +#. txt_language +msgid "Locale" +msgstr "Локалитет" + +#. label for keymap selection +#. txt_keymap +msgid "Keymap" +msgstr "Мапа тастера" + +#. label for installation mode selection +#. txt_modes +msgid "Modes" +msgstr "Режими" + +#. label for modes menu +#. txt_mode_normal +msgid "Normal" +msgstr "Уобичајен" + +#. label for d-i mode menu +#. txt_expert_mode +msgid "Expert mode" +msgstr "Напредни режим" + +#. title for accessibility menu +#. txt_access +msgid "Accessibility" +msgstr "Приступачност" + +#. label for accessibility menu +#. txt_access_none +msgid "None" +msgstr "Ништа" + +#. label for accessibility menu +#. txt_access_v1 +msgid "High Contrast" +msgstr "Велики контраст" + +#. label for accessibility menu +#. txt_access_v2 +msgid "Magnifier" +msgstr "Лупа" + +#. label for accessibility menu +#. txt_access_v3 +msgid "Screen Reader" +msgstr "Читач екрана" + +#. label for accessibility menu +#. txt_access_brltty +msgid "Braille Terminal" +msgstr "Брајев терминал" + +#. label for accessibility menu +#. txt_access_m1 +msgid "Keyboard Modifiers" +msgstr "Измењивачи тастатуре" + +#. label for accessibility menu +#. txt_access_m2 +msgid "On-Screen Keyboard" +msgstr "Тастатура на екрану" + +#. label for accessibility menu +#. txt_access_m3 +msgid "Motor Difficulties - switch devices" +msgstr "Проблеми са мотором — промените уређај" + +#. label for accessibility menu +#. txt_access_all +msgid "Everything" +msgstr "Све" + +#. Installation mode. +#. txt_menuitem_driverupdates +msgid "Use driver update disc" +msgstr "Користите диск са освежењима управљачких програма" + +#. Installation mode. +#. txt_menuitem_workstation +msgid "Install a workstation" +msgstr "Инсталирај радну станицу" + +#. Installation mode. +#. txt_menuitem_server +msgid "Install a server" +msgstr "Инсталирај сервер" + +#. Installation mode. +#. txt_menuitem_oem +msgid "OEM install (for manufacturers)" +msgstr "ОЕМ инсталација (за произвођаче)" + +#. Installation mode. +#. txt_menuitem_lamp +msgid "Install a LAMP server" +msgstr "Инсталирај ЛАМП сервер" + +#. Installation mode. +#. txt_menuitem_ltsp +msgid "Install an LTSP server" +msgstr "Инсталирај ЛТСП сервер" + +#. Installation mode. +#. txt_menuitem_cli +msgid "Install a command-line system" +msgstr "Инсталирај конзолни систем" + +#. Installation mode. +#. txt_menuitem_minimal +msgid "Install a minimal system" +msgstr "Инсталирај минимални систем" + +#. Installation mode. +#. txt_menuitem_minimalvm +msgid "Install a minimal virtual machine" +msgstr "Инсталирај минималну виртуелну машину" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_check +msgid "^Check disc for defects" +msgstr "^Провери диск за оштећења" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_rescue +msgid "^Rescue a broken system" +msgstr "^Спаси оштећени систем" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_memtest +msgid "Test ^memory" +msgstr "Тестирај ^меморију" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_hd +msgid "^Boot from first hard disk" +msgstr "^Покрени са првог чврстог диска" + +#. Boot option. +#. txt_option_free +msgid "Free software only" +msgstr "Само слободан софтвер" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_dell_factory_recovery +msgid "^Dell Automatic Reinstall" +msgstr "^Делово аутоматско реинсталирање" + +#. txt_resolution +msgid "Resolution" +msgstr "Резолуција" + +#. txt_videodrv +msgid "Video" +msgstr "Видео" + +#. txt_video_driver_auto +msgid "Auto" +msgstr "" + +#. txt_no_composite +msgid "No composite" +msgstr "" + +#. txt_audio +msgid "Audio" +msgstr "Звук" diff --git a/po/sv.po b/po/sv.po new file mode 100644 index 0000000..bb40707 --- /dev/null +++ b/po/sv.po @@ -0,0 +1,317 @@ +# Copyright © 2004 SUSE LINUX AG +# +msgid "" +msgstr "" +"Project-Id-Version: bootloader\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2014-10-28 15:55+0000\n" +"Last-Translator: Josef Andersson \n" +"Language-Team: Svenska \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-12-16 17:21+0000\n" +"X-Generator: Launchpad (build 17286)\n" +"X-Poedit-Country: SWEDEN\n" +"X-Poedit-Language: Swedish\n" +"X-Poedit-SourceCharset: utf-8\n" + +#. ok button label +#. txt_ok +msgid "OK" +msgstr "OK" + +#. cancel button label +#. txt_cancel +msgid "Cancel" +msgstr "Avbryt" + +#. reboot button label +#. txt_reboot +msgid "Reboot" +msgstr "Starta om" + +#. continue button label +#. txt_continue +msgid "Continue" +msgstr "Fortsätt" + +#. txt_bootoptions +msgid "Boot Options" +msgstr "Startalternativ" + +#. window title for exit dialog +#. txt_exit_title (see txt_exit_dialog) +msgid "Exiting..." +msgstr "Avslutar…" + +#. txt_exit_dialog +msgid "" +"You are leaving the graphical boot menu and\n" +"starting the text mode interface." +msgstr "" +"Du är på väg att lämna den grafiska startmenyn och\n" +"starta textlägesgränssnittet." + +#. txt_help +msgid "Help" +msgstr "Hjälp" + +#. info box title +#. txt_info_title +msgid "Boot loader" +msgstr "Startprogram" + +#. error box title +#. txt_error_title +msgid "I/O error" +msgstr "In/ut-fel" + +#. boot disk change dialog title +#. txt_change_disk_title +msgid "Change Boot Disk" +msgstr "Byt startdisk" + +#. txt_insert_disk +#, c-format +msgid "Insert boot disk %u." +msgstr "Mata in startdisken %u." + +#. txt_insert_disk2 +#, c-format +msgid "" +"This is boot disk %u.\n" +"Insert boot disk %u." +msgstr "" +"Det här är startdisken %u.\n" +"Mata in startdisken %u." + +#. txt_insert_disk3 +#, c-format +msgid "" +"This is not a suitable boot disk.\n" +"Please insert boot disk %u." +msgstr "" +"Det här är inte en passande startdisk.\n" +"Mata in startdisken %u." + +#. password dialog title +#. txt_password_title +msgid "Password" +msgstr "Lösenord" + +#. Keep the newlines and spaces after ':'! +#. txt_password +msgid "" +"Enter your password: \n" +"\n" +"\n" +msgstr "" +"Ange ditt lösenord: \n" +"\n" +"\n" + +#. dvd warning title +#. txt_dvd_warning_title +msgid "DVD Error" +msgstr "DVD-fel" + +#. txt_dvd_warning2 +msgid "" +"This is a two-sided DVD. You have booted from the second side.\n" +"\n" +"Turn the DVD over then continue." +msgstr "" +"Det här är en dubbelsidig dvd. Du har startat från den andra sidan.\n" +"\n" +"Vänd på dvd-skivan och fortsätt sedan." + +#. power off dialog title +#. txt_power_off_title +msgid "Power Off" +msgstr "Stäng av" + +#. txt_power_off +msgid "Halt the system now?" +msgstr "Vill du stänga av systemet nu?" + +#. txt_password +msgid "Password\n" +msgstr "Lösenord\n" + +#. button label for other/more options +#. txt_other_options +msgid "Other Options" +msgstr "Övrigt" + +#. label for language selection +#. txt_language +msgid "Locale" +msgstr "Plats" + +#. label for keymap selection +#. txt_keymap +msgid "Keymap" +msgstr "Tangentbordslayout" + +#. label for installation mode selection +#. txt_modes +msgid "Modes" +msgstr "Lägen" + +#. label for modes menu +#. txt_mode_normal +msgid "Normal" +msgstr "Normal" + +#. label for d-i mode menu +#. txt_expert_mode +msgid "Expert mode" +msgstr "Expertläge" + +#. title for accessibility menu +#. txt_access +msgid "Accessibility" +msgstr "Hjälpmedel" + +#. label for accessibility menu +#. txt_access_none +msgid "None" +msgstr "Inget" + +#. label for accessibility menu +#. txt_access_v1 +msgid "High Contrast" +msgstr "Hög kontrast" + +#. label for accessibility menu +#. txt_access_v2 +msgid "Magnifier" +msgstr "Förstorare" + +#. label for accessibility menu +#. txt_access_v3 +msgid "Screen Reader" +msgstr "Skärmläsare" + +#. label for accessibility menu +#. txt_access_brltty +msgid "Braille Terminal" +msgstr "Punktskriftsterminal" + +#. label for accessibility menu +#. txt_access_m1 +msgid "Keyboard Modifiers" +msgstr "Tangentbordsmodifierare" + +#. label for accessibility menu +#. txt_access_m2 +msgid "On-Screen Keyboard" +msgstr "Skärmtangentbord" + +#. label for accessibility menu +#. txt_access_m3 +msgid "Motor Difficulties - switch devices" +msgstr "Motorikproblem - brytare" + +#. label for accessibility menu +#. txt_access_all +msgid "Everything" +msgstr "Allting" + +#. Installation mode. +#. txt_menuitem_driverupdates +msgid "Use driver update disc" +msgstr "Använd skiva för drivrutinsuppdatering" + +#. Installation mode. +#. txt_menuitem_workstation +msgid "Install a workstation" +msgstr "Installera en arbetsstation" + +#. Installation mode. +#. txt_menuitem_server +msgid "Install a server" +msgstr "Installera en server" + +#. Installation mode. +#. txt_menuitem_oem +msgid "OEM install (for manufacturers)" +msgstr "OEM-installation (för tillverkare)" + +#. Installation mode. +#. txt_menuitem_lamp +msgid "Install a LAMP server" +msgstr "Installera en LAMP-server" + +#. Installation mode. +#. txt_menuitem_ltsp +msgid "Install an LTSP server" +msgstr "Installera en LTSP-server" + +#. Installation mode. +#. txt_menuitem_cli +msgid "Install a command-line system" +msgstr "Installera ett kommandoradssystem" + +#. Installation mode. +#. txt_menuitem_minimal +msgid "Install a minimal system" +msgstr "Installera ett minimalt system" + +#. Installation mode. +#. txt_menuitem_minimalvm +msgid "Install a minimal virtual machine" +msgstr "Installera en minimal virtuell maskin" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_check +msgid "^Check disc for defects" +msgstr "^Kontrollera skivan efter fel" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_rescue +msgid "^Rescue a broken system" +msgstr "^Rädda ett trasigt system" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_memtest +msgid "Test ^memory" +msgstr "Kontrollera ^minne" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_hd +msgid "^Boot from first hard disk" +msgstr "^Starta upp från första hårddisken" + +#. Boot option. +#. txt_option_free +msgid "Free software only" +msgstr "Endast fri programvara" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_dell_factory_recovery +msgid "^Dell Automatic Reinstall" +msgstr "Automatisk ominstallation för ^Dell" + +#. txt_resolution +msgid "Resolution" +msgstr "Upplösning" + +#. txt_videodrv +msgid "Video" +msgstr "Video" + +#. txt_video_driver_auto +msgid "Auto" +msgstr "" + +#. txt_no_composite +msgid "No composite" +msgstr "" + +#. txt_audio +msgid "Audio" +msgstr "Ljud" diff --git a/po/uk.po b/po/uk.po new file mode 100644 index 0000000..7a1cc14 --- /dev/null +++ b/po/uk.po @@ -0,0 +1,318 @@ +# translation of uk(6).po to Ukrainian +# LANGUAGE translations for boot loader +# Copyright (C) 2004 SUSE LINUX AG +# +# Ivan Petrouchtchak , 2005. +# Vadim Abramchuck , 2006. +msgid "" +msgstr "" +"Project-Id-Version: uk(6)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-10-09 09:00+0000\n" +"PO-Revision-Date: 2013-12-15 11:42+0000\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-12-16 17:21+0000\n" +"X-Generator: Launchpad (build 17286)\n" + +#. ok button label +#. txt_ok +msgid "OK" +msgstr "Гаразд" + +#. cancel button label +#. txt_cancel +msgid "Cancel" +msgstr "Скасувати" + +#. reboot button label +#. txt_reboot +msgid "Reboot" +msgstr "Перезавантажити" + +#. continue button label +#. txt_continue +msgid "Continue" +msgstr "Продовжити" + +#. txt_bootoptions +msgid "Boot Options" +msgstr "Параметри завантаження" + +#. window title for exit dialog +#. txt_exit_title (see txt_exit_dialog) +msgid "Exiting..." +msgstr "Вихід..." + +#. txt_exit_dialog +msgid "" +"You are leaving the graphical boot menu and\n" +"starting the text mode interface." +msgstr "" +"Ви виходите з графічного меню завантаження\n" +"та переходите у текстовий режим інтерфейсу." + +#. txt_help +msgid "Help" +msgstr "Довідка" + +#. info box title +#. txt_info_title +msgid "Boot loader" +msgstr "Завантажувач" + +#. error box title +#. txt_error_title +msgid "I/O error" +msgstr "Помилка вводу/виводу" + +#. boot disk change dialog title +#. txt_change_disk_title +msgid "Change Boot Disk" +msgstr "Змінити завантажувальний диск" + +#. txt_insert_disk +#, c-format +msgid "Insert boot disk %u." +msgstr "Вставте завантажувальний диск %u." + +#. txt_insert_disk2 +#, c-format +msgid "" +"This is boot disk %u.\n" +"Insert boot disk %u." +msgstr "" +"Це завантажувальний диск %u.\n" +"Вставте завантажувальний диск %u." + +#. txt_insert_disk3 +#, c-format +msgid "" +"This is not a suitable boot disk.\n" +"Please insert boot disk %u." +msgstr "" +"Цей завантажувальний диск не підходить.\n" +"Будь ласка, вставте завантажувальний диск %u." + +#. password dialog title +#. txt_password_title +msgid "Password" +msgstr "Пароль" + +#. Keep the newlines and spaces after ':'! +#. txt_password +msgid "" +"Enter your password: \n" +"\n" +"\n" +msgstr "" +"Введіть ваш пароль: \n" +"\n" +"\n" + +#. dvd warning title +#. txt_dvd_warning_title +msgid "DVD Error" +msgstr "Помилка DVD" + +#. txt_dvd_warning2 +msgid "" +"This is a two-sided DVD. You have booted from the second side.\n" +"\n" +"Turn the DVD over then continue." +msgstr "" +"Цей DVD двобічний. Ви завантажились з іншого боку.\n" +"\n" +"Переверніть DVD і продовжуйте." + +#. power off dialog title +#. txt_power_off_title +msgid "Power Off" +msgstr "Вимкнути" + +#. txt_power_off +msgid "Halt the system now?" +msgstr "Вимкнути систему зараз?" + +#. txt_password +msgid "Password\n" +msgstr "Пароль\n" + +#. button label for other/more options +#. txt_other_options +msgid "Other Options" +msgstr "Інші параметри" + +#. label for language selection +#. txt_language +msgid "Locale" +msgstr "Локаль" + +#. label for keymap selection +#. txt_keymap +msgid "Keymap" +msgstr "Розкладка" + +#. label for installation mode selection +#. txt_modes +msgid "Modes" +msgstr "Режими" + +#. label for modes menu +#. txt_mode_normal +msgid "Normal" +msgstr "Cтандартний" + +#. label for d-i mode menu +#. txt_expert_mode +msgid "Expert mode" +msgstr "Режим фахівця" + +#. title for accessibility menu +#. txt_access +msgid "Accessibility" +msgstr "Доступність" + +#. label for accessibility menu +#. txt_access_none +msgid "None" +msgstr "Жодний" + +#. label for accessibility menu +#. txt_access_v1 +msgid "High Contrast" +msgstr "Висока контрастність" + +#. label for accessibility menu +#. txt_access_v2 +msgid "Magnifier" +msgstr "Збільшувач" + +#. label for accessibility menu +#. txt_access_v3 +msgid "Screen Reader" +msgstr "Зчитувач екрана" + +#. label for accessibility menu +#. txt_access_brltty +msgid "Braille Terminal" +msgstr "Термінал Брайля" + +#. label for accessibility menu +#. txt_access_m1 +msgid "Keyboard Modifiers" +msgstr "Модифікатори клавіатури" + +#. label for accessibility menu +#. txt_access_m2 +msgid "On-Screen Keyboard" +msgstr "Екранна клавіатура" + +#. label for accessibility menu +#. txt_access_m3 +msgid "Motor Difficulties - switch devices" +msgstr "Ускладнення моторики - перемикніть пристрої" + +#. label for accessibility menu +#. txt_access_all +msgid "Everything" +msgstr "Усе" + +#. Installation mode. +#. txt_menuitem_driverupdates +msgid "Use driver update disc" +msgstr "Використати диск з оновленнями драйверів" + +#. Installation mode. +#. txt_menuitem_workstation +msgid "Install a workstation" +msgstr "Встановити робочу станцію" + +#. Installation mode. +#. txt_menuitem_server +msgid "Install a server" +msgstr "Встановити сервер" + +#. Installation mode. +#. txt_menuitem_oem +msgid "OEM install (for manufacturers)" +msgstr "OEM встановлення (для виробників)" + +#. Installation mode. +#. txt_menuitem_lamp +msgid "Install a LAMP server" +msgstr "Встановити сервер LAMP" + +#. Installation mode. +#. txt_menuitem_ltsp +msgid "Install an LTSP server" +msgstr "Встановити сервер LTSP" + +#. Installation mode. +#. txt_menuitem_cli +msgid "Install a command-line system" +msgstr "Встановити консольний варіант системи" + +#. Installation mode. +#. txt_menuitem_minimal +msgid "Install a minimal system" +msgstr "Встановити мінімальну систему" + +#. Installation mode. +#. txt_menuitem_minimalvm +msgid "Install a minimal virtual machine" +msgstr "Встановити мінімальну віртуальну машину" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_check +msgid "^Check disc for defects" +msgstr "^Перевірити диск на дефекти" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_rescue +msgid "^Rescue a broken system" +msgstr "^Відновити пошкоджену систему" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_memtest +msgid "Test ^memory" +msgstr "Перевірити ^пам'ять" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_hd +msgid "^Boot from first hard disk" +msgstr "^Завантажитись з першого жорсткого диску" + +#. Boot option. +#. txt_option_free +msgid "Free software only" +msgstr "Лише вільне програмне забезпечення" + +#. Boot menu item; a ^ prefix indicates a unique accelerator key. +#. txt_menuitem_dell_factory_recovery +msgid "^Dell Automatic Reinstall" +msgstr "^Автоматичне перевстановлення Dell" + +#. txt_resolution +msgid "Resolution" +msgstr "Роздільна здатність" + +#. txt_videodrv +msgid "Video" +msgstr "Відео" + +#. txt_video_driver_auto +msgid "Auto" +msgstr "" + +#. txt_no_composite +msgid "No Composite" +msgstr "" + +#. txt_audio +msgid "Audio" +msgstr "Аудіо" diff --git a/scrape-console-setup b/scrape-console-setup new file mode 100755 index 0000000..c57bc9b --- /dev/null +++ b/scrape-console-setup @@ -0,0 +1,402 @@ +#! /usr/bin/perl -w +use strict; + +use File::Find; + +do "/usr/share/console-setup/KeyboardNames.pl" + or die "can't load /usr/share/console-setup/KeyboardNames.pl"; + +# Horrible hardcoded mess for now; please keep this in the same order as in +# console-setup/debian/keyboard-configuration.config. The values are +# substrings since that seems to be simplest to handle in gfxboot-ese. +my %keymap_locales = ( + 'al' => '_AL', + 'az' => '_AZ', + 'bd' => '_BD', + 'be' => '_BE', + 'bg' => '_BG', + 'br' => '_BR', + 'by' => '_BY', + 'ca' => '_CA', + 'ch_fr' => 'fr_CH', + 'ch' => '_CH', + 'cz' => '_CZ', + 'dk' => '_DK', + 'ee' => '_EE', + 'es_ast' => 'ast_ES', + 'es_cat' => 'ca_ES', + 'es' => '_ES', + 'fi_smi' => 'se_FI', + 'fi' => '_FI', + 'gb' => '_GB', + 'hu' => '_HU', + 'ie' => '_IE', + 'il' => '_IL', + 'ir' => '_IR', + 'is' => '_IS', + 'it' => '_IT', + 'jp' => '_JP', + 'lt' => '_LT', + 'lv' => '_LV', + 'ma' => '_MA', + 'mk' => '_MK', + 'mn' => '_MN', + 'mt' => '_MT', + 'no_smi' => 'se_NO', + 'no' => '_NO', + 'pl' => '_PL', + 'pt' => '_PT', + 'ro' => '_RO', + 'ru' => '_RU', + 'se_smi' => 'se_SE', + 'sk' => '_SK', + 'si' => '_SI', + 'tj' => '_TJ', + 'th' => '_TH', + 'tr_ku' => 'ku_TR', + 'tr' => '_TR', + 'ua' => '_UA', + 'us' => ['en_US', '_VN'], + 'us_intl' => '_NL', + 'latam' => ['_AR', '_BO', '_CL', '_CO', '_CR', '_DO', '_EC', '_GT', '_HN', '_MX', '_NI', '_PA', '_PE', 'es_PR', '_PY', '_SV', 'es_US', '_UY', '_VE'], + 'ara' => 'ar_', + 'ba' => 'bs_', + 'de' => 'de_', + 'gr' => 'el_', + 'epo' => 'eo', # lack of trailing underscore is deliberate + 'fr_oss' => 'fr_', + 'in_guj' => 'gu_', + 'in' => 'hi_', + 'hr' => 'hr_', + 'am' => 'hy_', + 'ge' => 'ka_', + 'in_kan' => 'kn_', + 'la' => 'lo_', + 'in_mal' => 'ml_', + 'in_guru' => 'pa_', + 'me' => 'sr_ME', + 'rs' => 'sr_', + 'se' => 'sv_', + 'in_tam' => 'ta_', + 'in_tel' => 'te_', + 'cn' => 'zh_CN', +); + +# Non-top-level layouts to put on the menu. +my @show_variants = ( + 'ch_fr', + 'es_ast', + 'es_cat', + 'fr_oss', + 'tr_f', + 'us_dvorak', +); + +# Exclude these keymaps. +my @exclude_keymaps = ( + 'ad', # name collision with es_cat + 'brai', + 'braille', + 'fr', + 'nec/jp', + 'nec_vndr/jp', +); + +# Manual descriptions to make the list a bit narrower, thereby avoiding +# overflowing the screen. +my %description_overrides = ( + 'at' => 'Austria', + 'ba' => 'Bosnia', + 'br' => 'Brazil', + 'ca' => 'Canada', + 'cd' => 'Congo', + 'ch_fr' => 'Swiss French', + 'ch' => 'Swiss German', + 'cm' => 'Cameroon', + 'es_ast' => 'Asturian', + 'es_cat' => 'Catalan', + 'fi_smi' => 'Saami (Fin.)', + 'fo' => 'Faroes', + 'fr_oss' => 'French', + 'gb' => 'UK', + 'gh' => 'Ghana', + 'gn' => 'Guinea', + 'in_guj' => 'Gujarati', + 'in_guru' => 'Gurmukhi', + 'in_kan' => 'Kannada', + 'in_mal' => 'Malayalam', + 'in_tam' => 'Tamil', + 'in_tel' => 'Telugu', + 'ke' => 'Kenya', + 'kh' => 'Khmer', + 'kr' => 'Korean', + 'latam' => 'Latin Amer.', + 'lk' => 'Sinhala', + 'ma' => 'Morocco', + 'ng' => 'Nigeria', + 'no_smi' => 'Saami (Nor.)', + 'pk' => 'Pakistan', + 'rs' => 'Serbian', + 'se_smi' => 'Saami (Swe.)', + 'sy' => 'Syria', + 'tr_f' => 'Turkish (F)', + 'tr_ku' => 'Kurdish', + 'tz' => 'Tanzania', + 'us' => 'USA', + 'us_dvorak' => 'Dvorak', + 'us_intl' => 'USA Intl.', + 'vn' => 'Vietnam', + 'za' => 'South Africa', +); + +# These keymaps are non-Latin, which isn't very useful in gfxboot, so map +# them to US instead. +my @non_latin = ( + 'am', + 'ara', + 'ben', + 'bd', + 'bg', + 'bt', + 'by', + 'deva', + 'ge', + 'gh', + 'gr', + 'guj', + 'guru', + 'il', + 'in', + 'ir', + 'iku', + 'kan', + 'kh', + 'kz', + 'la', + 'lao', + 'lk', + 'lt', + 'mk', + 'mm', + 'mn', + 'mv', + 'mal', + 'ori', + 'pk', + 'ru', + 'scc', + 'sy', + 'syr', + 'tel', + 'th', + 'tj', + 'tam', + 'ua', + 'uz', +); + +# Some keymaps require unusual models for extra keys. +my %unusual_models = ( + 'br' => 'abnt2', + 'jp' => 'jp106', +); + +binmode STDOUT, ':utf8'; + +print < 'keyIns', + 0x01 => 'keyEnd', + 0x02 => 'keyDown', + 0x03 => 'keyPgDown', + 0x04 => 'keyLeft', + 0x06 => 'keyRight', + 0x07 => 'keyHome', + 0x08 => 'keyUp', + 0x09 => 'keyPgUp', + 0x10 => 'keyDel', +); + +my %spec_map = ( + 0x01 => 'keyEnter', +); + +sub map_keycode ($) { + my $type = ($_[0] >> 8) & 0xff; + my $code = $_[0] & 0xff; + if ($type == 0x00 or $type == 0x0b or $type == 0xf0 or $type == 0xfb) { + # KT_LATIN or KT_LETTER + if ($code == 0x08 or $code == 0x7f) { + # Backspace vs. Delete is a tricky case. gfxboot understands + # both (0x08 for delete-left, keyDel for delete-right), so we + # should map 0x7f to KeyDel. Unfortunately many keymaps only + # appear to define Delete, and the situation in console-data + # seems to be quite confused. Accordingly, we just ignore both + # and let gfxboot work it out for itself, which seems to work + # better. + return '0x00'; + } else { + return sprintf '0x%02x', $code; + } + } elsif ($type == 0xf2) { + # KT_SPEC + return $spec_map{$code} if exists $spec_map{$code}; + } elsif ($type == 0xf3) { + # KT_PAD + return $pad_map{$code} if exists $pad_map{$code}; + } + return '0x00'; +} + +# Flip KeyboardNames structures into more useful formats. +my %layouts; +my %variants; +for my $layout (keys %KeyboardNames::layouts) { + my $name = $KeyboardNames::layouts{$layout}; + $layouts{$name} = $layout; + for my $variant (keys %{$KeyboardNames::variants{$name}}) { + my $variantname = $KeyboardNames::variants{$name}{$variant}; + $variants{$name}{$variantname} = $variant; + } +} + +my %keymaps = map { $_ => 1 } + (keys %layouts, keys %keymap_locales, @show_variants); +delete $keymaps{$_} for @exclude_keymaps; +my @keymaps = sort keys %keymaps; + +my %keycodes; +for my $keymap (@keymaps) { + my ($layout, $variant, $model); + if ($keymap =~ /(.+)_(.+)/) { + $layout = $1; + $variant = $2; + } else { + $layout = $keymap; + undef $variant; + } + if (exists $unusual_models{$layout}) { + $model = $unusual_models{$layout}; + } else { + $model = 'pc105'; + } + my $ckbcomp = "ckbcomp -model $model -layout \Q$layout\E"; + $ckbcomp .= " -variant \Q$variant\E" if defined $variant; + my $table = `$ckbcomp | sudo loadkeys -mu 2>/dev/null`; + for my $map (qw(plain shift altgr)) { + if ($table =~ /${map}_map\[[^]]*\] = {\s*(.*?)(?:\s|,)*}/s) { + $keycodes{$keymap}{$map} = + [map { map_keycode(hex) } split(/,\s+/, $1)]; + } else { + $keycodes{$keymap}{$map} = [('0x00') x 128]; + } + } +} + +for my $keymap (@non_latin) { + $keycodes{$keymap} = $keycodes{us}; +} + +my %keymapfunc; + +for my $keymap (@keymaps) { + my $found = 0; + for my $index (0 .. 127) { + # Never map keys that are special when unshifted; this caused + # problems for the French keymap, and made it difficult in general + # to get out of a keymap you selected by accident. + if ($keycodes{us}{plain}[$index] =~ /^key/) { + next; + } + my $plain = $keycodes{$keymap}{plain}[$index]; + my $shift = $keycodes{$keymap}{shift}[$index]; + my $altgr = $keycodes{$keymap}{altgr}[$index]; + if ($plain eq $keycodes{us}{plain}[$index] and + $shift eq $keycodes{us}{shift}[$index] and + $altgr eq $keycodes{us}{altgr}[$index]) { + # The PC105 less than / greater than key isn't necessarily + # mapped correctly by the BIOS. + if ($index != 86) { + next; + } + } + if (($plain ne '0x00') or ($shift ne '0x00') or ($altgr ne '0x00')) { + print "/keymap.$keymap [\n" unless $found; + $found = 1; + my $hexindex = sprintf '0x%02x', $index; + print " [ $hexindex $plain $shift $altgr ]\n"; + } + } + if ($found) { + $keymapfunc{$keymap} = "keymap.$keymap"; + } else { + $keymapfunc{$keymap} = '.undef'; + } + print "] def\n\n" if $found; +} + +my %descriptions; +for my $keymap (@keymaps) { + my $desc; + if (exists $description_overrides{$keymap}) { + $desc = $description_overrides{$keymap}; + } elsif ($keymap =~ /(.+)_(.+)/) { + warn "Description for $keymap not found!\n" + unless exists $layouts{$1} and exists $variants{$1}{$2}; + $desc = "$layouts{$1} ($variants{$1}{$2})"; + } else { + warn "Description for $keymap not found!\n" + unless exists $layouts{$keymap}; + $desc = $layouts{$keymap}; + } + $descriptions{$keymap} = $desc; +} + +print "/keymaps [\n"; +my $i = 0; +my $us_index; +for my $keymap (sort { $descriptions{$a} cmp $descriptions{$b} } @keymaps) { + my $localelist; + if (exists $keymap_locales{$keymap}) { + if (ref $keymap_locales{$keymap}) { + $localelist = join(' ', map(qq{"$_"}, @{$keymap_locales{$keymap}})); + } else { + $localelist = qq{"$keymap_locales{$keymap}"}; + } + $localelist = "[ $localelist ]"; + } else { + $localelist = '[ ]'; + } + my $model; + if (exists $unusual_models{$keymap}) { + $model = qq{"$unusual_models{$keymap}"}; + } else { + $model = '.undef'; + } + print qq{ [ "$keymap" $keymapfunc{$keymap} "$descriptions{$keymap}" $localelist $model ]\n}; + $us_index = $i if $keymap eq 'us'; + ++$i; +} +print "] def\n\n"; + +die "'us' keymap not found!\n" unless defined $us_index; + +print < 'nb', + 'nn_NO' => 'nn', + 'pt' => 'pt_PT', + 'se_NO' => 'se', +); + +# The real localised names for these languages use characters not present in +# our font, or not rendered correctly for some other reason. +my @langname_notranslate = ( + 'am', + 'ar', + 'bn', + 'bo', + 'dz', + 'gu', + 'hi', + 'km', + 'lo', + 'ml', + 'mr', + 'my', + 'ne', + 'pa', + 'ta', + 'th', + 'ug', +); +my %langname_notranslate = map { $_ => 1 } @langname_notranslate; + +# Adjust the sort order slightly. (The values are not real language codes; +# they're just there to make the sort unambiguous.) +my %sort_ids = ( + 'nb' => 'no_NB', + 'nn' => 'no_NN', +); + +my %langnames; +my %locales; +open LIST, '<:utf8', "$localechooser/languagelist" + or die "$0: can't open $localechooser/languagelist: $!"; +while () { + chomp; + next if /^#/ or not /\S/; + my @bits = split /;/; + my $lang = $bits[0]; + next if $lang eq 'C'; + $lang = $langcode_overrides{$lang} if exists $langcode_overrides{$lang}; + if (exists $langname_notranslate{$lang}) { + $langnames{$lang} = $bits[1]; + } elsif ($lang eq 'he') { + my $bidi_pid = open2(\*BIDI_OUT, \*BIDI_IN, 'fribidi', '--nopad', '--nobreak'); + binmode BIDI_IN, ':utf8'; + binmode BIDI_OUT, ':utf8'; + print BIDI_IN $bits[2]; + close BIDI_IN; + { local $/ = undef; $langnames{$lang} = ; } + $langnames{$lang} =~ s/(.)%/%$1/g; + waitpid $bidi_pid, 0; + } else { + $langnames{$lang} = $bits[2]; + } + ($locales{$lang} = "$bits[6]") =~ s/[.@].*//; + $sort_ids{$lang} = $lang unless exists $sort_ids{$lang}; +} +close LIST; + +binmode STDOUT, ':utf8'; + +print "/lang.defaultnames [\n"; +for my $lang (sort { $sort_ids{$a} cmp $sort_ids{$b} } keys %langnames) { + print qq{ [ "$lang" "$locales{$lang}" "$langnames{$lang}" ]\n}; +} +print "] def\n"; diff --git a/splash.inc b/splash.inc new file mode 100644 index 0000000..af5746d --- /dev/null +++ b/splash.inc @@ -0,0 +1,69 @@ +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% Splash screen (hidden-timeout mode). +% +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Create new splash window. +% +% ( ) ==> ( window ) +% +/window.splash { + widget.size array + dup .type t_splash put + dup .font font.normal put + dup .ed.font font.normal put + dup .color.fg boot.text.normal put +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Initialize splash window. +% +% ( window ) ==> ( ) +% +/splash.init { + pop +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Draw splash window. +% +% ( window ) ==> ( ) +% +/splash.show { + window.push + + menu.init + % like 'menu.entry true MenuSelect', but without drawing on the screen + bootoptions.init + + access.file dup .undef ne { + setimage + screen.size exch access.width sub 2 div exch access.height sub + moveto 0 0 access.width access.height image + + background.file setimage + } { pop } ifelse +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Handle keyboard input. +% +% ( key_in ) ==> ( key_out ) +% +/splash.input { + /timeout.hidden false def + /background.file background.file.orig def + 0 0 moveto background.file setimage 0 0 image.size image + window.done + window.main + dup window.init + window.show + lang.displayed not { panel.lang } if + pop 0 +} def diff --git a/system.inc b/system.inc new file mode 100644 index 0000000..216eb35 --- /dev/null +++ b/system.inc @@ -0,0 +1,808 @@ +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% Some basic definitions. +% +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +% some key codes +/keyEsc 0x0000001b def +/keyEnter 0x0000000d def +/keyTab 0x00000009 def +/keyShiftTab 0x00800009 def +/keyF1 0x3b000000 def +/keyF2 0x3c000000 def +/keyF3 0x3d000000 def +/keyF4 0x3e000000 def +/keyF5 0x3f000000 def +/keyF6 0x40000000 def +/keyF7 0x41000000 def +/keyF8 0x42000000 def +/keyF9 0x43000000 def +/keyF10 0x44000000 def +/keyF11 0x85000000 def +/keyF12 0x86000000 def +/keyHome 0x47000000 def +/keyUp 0x48000000 def +/keyPgUp 0x49000000 def +/keyLeft 0x4b000000 def +/keyRight 0x4d000000 def +/keyEnd 0x4f000000 def +/keyDown 0x50000000 def +/keyPgDown 0x51000000 def +/keyIns 0x52000000 def +/keyDel 0x53000000 def +/keyShiftF1 0x54000000 def +/keyShiftF2 0x55000000 def +/keyShiftF3 0x56000000 def +/keyShiftF4 0x57000000 def +/keyShiftF5 0x58000000 def +/keyShiftF6 0x59000000 def +/keyShiftF7 0x5a000000 def +/keyShiftF8 0x5b000000 def +/keyShiftF9 0x5c000000 def +/keyShiftF10 0x5d000000 def +/keyShiftF11 0x87000000 def +/keyShiftF12 0x88000000 def +/keyCtrlF1 0x5e000000 def +/keyCtrlF2 0x5f000000 def +/keyCtrlF3 0x60000000 def +/keyCtrlF4 0x61000000 def +/keyCtrlF5 0x62000000 def +/keyCtrlF6 0x63000000 def +/keyCtrlF7 0x64000000 def +/keyCtrlF8 0x65000000 def +/keyCtrlF9 0x66000000 def +/keyCtrlF10 0x67000000 def +/keyAltF1 0x68000000 def +/keyAltF2 0x69000000 def +/keyAltF3 0x6a000000 def +/keyAltF4 0x6b000000 def +/keyAltF5 0x6c000000 def +/keyAltF6 0x6d000000 def +/keyAltF7 0x6e000000 def +/keyAltF8 0x6f000000 def +/keyAltF9 0x70000000 def +/keyAltF10 0x71000000 def +/keyCtrlLeft 0x73000000 def +/keyCtrlRight 0x74000000 def +/keyCtrlEnd 0x75000000 def +/keyCtrlDown 0x76000000 def +/keyCtrlHome 0x76000000 def +/keyCtrlUp 0x84000000 def +/keyStatus 0xff000000 def + +/statusAlt 0x0208 def +/statusAltL 0x0200 def +/statusAltR 0x0008 def +/statusCtrl 0x0104 def +/statusShift 0x0003 def + +% boot loader + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% bootloader - boot loader type +% +% group: system +% +% ( -- int1 ) +% +% int1: boot loader type (0: lilo, 1:syslinux/isolinux, 2: grub) +% +/bootloader sysconfig getbyte def + +/lilo bootloader 0 eq def +/syslinux bootloader 1 eq def +/grub bootloader 2 eq def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% bootdrive - drive the BIOS booted from +% +% group: system +% +% ( -- int1 ) +% +% int1: BIOS drive id +% +/bootdrive sysconfig 5 add getbyte def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% mediatype - type of media we booted from +% +% group: system +% +% ( -- int1 ) +% +% int1: media type (0 disk, 1 floppy, 2 cdrom) +% +/mediatype sysconfig 2 add getbyte def + +/m_disk 0 def +/m_floppy 1 def +/m_cdrom 2 def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% biosmem - BIOS reported memory size +% +% group: mem +% +% ( -- int1 ) +% +% int1: total memory size according to BIOS +% +/biosmem sysconfig 20 add getdword def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% sectorsize - sector size +% +% group: mem system +% +% ( -- int1 ) +% +% int1: sector size in bytes +% +/sectorsize + 1 + sysconfig 1 add getbyte + 20 min % max. 1 MB + dup 0 eq { pop 9 } if + shl +def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% getinfo - type of info box +% +% group: system +% +% ( int1 -- int2 ) +% +% int1: type of info box we have to show +% int2: some data +% +% Note: really weird, should be replaced by something more obvious. +% +/getinfo { + 2 shl + sysconfig 12 add exch add getdword +} def + + +% bool values +/true 0 0 eq def +/false 0 0 ne def + +% type values +/t_none 0 def +/t_int 1 def +/t_unsigned 2 def +/t_bool 3 def +/t_string 4 def +/t_code 5 def +/t_ret 6 def +/t_prim 7 def +/t_sec 8 def +/t_dict_idx 9 def +/t_array 10 def +/t_end 11 def +/t_ptr 12 def + +/.value { t_int settype } def +/.undef 0 t_none settype def +/.end 0 t_end settype def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Print string (for debugging). +% +% ( string ) ==> ( ) +% +/string.print { + dup + currentpoint currentpoint 5 -1 roll strsize image moveto + show +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Print number (for debugging). +% +% ( number ) ==> ( ) +% +/number.print { + 32 string + exch over + "%08x" exch sprintf + dup string.print + free +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Print obj (for debugging). +% +% ( obj ) ==> ( ) +% +/obj.print { + 64 string + exch dup + .value exch gettype + "%x:%08x" 3 index sprintf + dup string.print + free +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Print (for debugging). +% +% ( obj ) ==> ( ) +% +/print { + dup gettype t_int eq { number.print return } if + dup gettype t_string eq { string.print return } if + obj.print +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Convert object to pointer. +% +% ( obj ) ==> ( ptr ) +% +/cvp { t_ptr settype } def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Convert object to string. +% +% ( obj ) ==> ( string ) +% +/cvs { t_string settype } def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Arguments like snprintf. +% +% ( obj_1 ... obj_n string_1 string_2 ) ==> ( ) +% +/sprintf { + dup cvp length exch snprintf +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Allocate new string. +% +% ( size ) ==> ( string ) +/string { + 1 add malloc cvs +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Increment variable. +% +% ( dict_ref ) ==> ( ) +% +/inc { + dup exec 1 add def +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Decrement variable. +% +% ( dict_ref ) ==> ( ) +% +/dec { + dup exec 1 sub def +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Copy src to dst. +% +% Watch overlapping src & dst! +% +% ( dst src ) ==> ( dst ) +% +/strcpy { + "%s" 2 index sprintf +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Duplicate string. +% +% ( string ) ==> ( string ) +% +/strdup { + dup length string exch strcpy +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Test for AltGr. +% +% ( ) ==> ( bool ) +% +/is_altGr { + keystat statusAltR and 0 ne keystat statusAltL and 0 eq and +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Keyboard mapping. +% +% ( key ) ==> ( key ) +% +/mapkey { + dup 24 shr 0xff and /key.code exch def + is_altGr { + % bios is too smart... + key.code 0x78 ge key.code 0x83 le and { /key.code key.code 0x76 sub def } if + } if + 0 1 config.keymap .km.map get length 1 sub { + config.keymap .km.map get exch get + dup 0 get key.code eq { + 1 + keystat statusShift and { pop 2 } if + is_altGr { pop 3 } if + get + exch pop + } { + pop + } ifelse + } for +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Set password mode font property. +% +% ( font ) ==> ( font ) +% +/pwmode { + dup gettype t_ptr eq { + .value 0x80000000 or t_ptr settype + } if +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Show string right aligned. +% +% ( string ) ==> ( ) +% +/showright { + dup strsize pop neg 0 rmoveto show +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Show string centered. +% +% ( string ) ==> ( ) +% +/showcenter { + dup strsize pop 2 div neg 0 rmoveto show +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% ( date ) ==> ( weekday ) +% +/weekday { + dup 8 shr 0xff and 1 sub + dup 3 mul over 2 div sub + exch 2 mul 0x11000a exch shr 3 and add + over 0xff and 6 add add + exch 16 shr add + 7 mod +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% ( date ) ==> ( day ) +% +/day { + 0xff and +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% ( date ) ==> ( month ) +% +/month { + 8 shr 0xff and +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% ( date ) ==> ( year ) +% +/year { + 16 shr +} def + + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% readsector - read sector +% +% group: system +% +% ( int1 -- ptr1 ) +% +% int1: sector number +% ptr1: buffer with sector data or .undef. Use @free to free the buffer. +% +% Note: does not return on error. Returns .undef if function is not implemented. +% +/readsector { + _readsector + dup .undef eq { return } if + + sectorsize malloc dup rot over length memcpy +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% readgfxconfig - read gfxboot config file +% +% group: system +% +% ( -- ) +% +/readgfxconfig { + gfxconfig.data .undef eq { + "gfxboot.cfg" findfile dup .undef ne { + dup dup length dup string dup cvp 4 2 roll memcpy exch free + } { + pop "" + } ifelse + + /gfxconfig.data over '\n' split def free + + } if +} def + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% getgfxconfig - get gfxboot config file entry +% +% group: system +% +% ( str1 -- str2 ) +% +% str1: key for config entry +% str2: config string (or .undef) +% +/getgfxconfig { + readgfxconfig + + currenteotchar '=' seteotchar + + .undef + + gfxconfig.data { + % overkill because string compare does not honour eotchar + dup strdup dup 5 index eq { + dup length exch free 1 add add exch pop exit + } { + free pop + } ifelse + } forall + + exch seteotchar exch pop + +} def + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% listgfxconfig - list all gfxboot config file keys and values +% +% group: system +% +% ( -- array1 ) +% +% array1: array of [ key, value ] arrays in config file; caller must free keys +% +/listgfxconfig { + readgfxconfig + + currenteotchar '=' seteotchar + + [ + gfxconfig.data { + dup '' eq { + pop + } { + [ exch dup strdup exch dup length 1 add add ] + } ifelse + } forall + ] + + exch seteotchar +} def + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% freegfxconfig - free a list returned by listgfxconfig +% +% group: system +% +% ( array1 -- ) +% +% array1: array of [ key, value ] arrays in config file +% +/freegfxconfig { + dup { 0 get free } forall + free +} def + +/gfxconfig.data .undef def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% split - split string +% +% group: +% +% ( str1 int1 -- array1 ) +% +% str1: string +% int1: char +% array1: array of strings +% +/split { + + % split does not work if str1 is in a special memory region (where + % 'cvp length' does not work). So we dup it first. + + exch strdup dup rot + + currenteotchar exch seteotchar exch + + [ exch + + { + dup strdup exch + dup length add + + dup cvp length 1 le { pop exit } if + + 1 add + + } loop + + ] + + exch seteotchar + + exch free + +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Skip leading non-spaces. +% +% ( string ) ==> ( string ) +% +/skipnonspaces { + { dup 0 get dup 0 ne exch ' ' ne and { 1 add } { exit } ifelse } loop +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Skip leading spaces. +% +% ( string ) ==> ( string ) +% +/skipspaces { + { dup 0 get ' ' eq { 1 add } { exit } ifelse } loop +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Drop spaces at string end. +% Modifies string! +% +% ( string ) ==> ( ) +% +/dropspaces { + dup length + dup 0 eq { + pop pop + } { + 1 sub + -1 0 { + over over get ' ' eq { over exch 0 put } { pop exit } ifelse + } for + pop + } ifelse +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Test if string[ofs-1]/string[ofs] is a word boundary. +% +% ( string ofs ) ==> ( true|false ) +% +% boundary is either space/non-space or non-space/(space|'=') +% +/iswordboundary { + dup 0 eq { pop pop true return } if + + add dup 1 sub 0 get exch 0 get + + over ' ' eq over ' ' gt and { pop pop true return } if + over ' ' gt over dup ' ' eq exch dup '=' eq exch 0 eq or or and { pop pop true return } if + + pop pop false +} def + + +%% findmode - find video mode number +% +% group: gfx.screen +% +% ( int1 int2 int3 -- int4 ) +% +% int1, int2: width, height +% int3: color bits +% int4: mode number (or .undef) +% +% example +% 1024 768 16 findmode setmode % 1024x768, 16-bit color mode +% +/findmode { + 0 1 videomodes { + videomodeinfo dup .undef eq { + pop pop pop pop + } { + % compare width, height, colors + 6 index 4 index eq 6 index 4 index eq and 5 index 3 index eq and { + 7 1 roll 6 { pop } repeat 0xbfff and return + } { + pop pop pop pop + } ifelse + } ifelse + } for + + pop pop pop .undef +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% Replace substring. Returns newly allocated string. +% +% ( str key value ) ==> ( new_str ) +% +% Replaces first occurence of 'key' in str with 'value'. +% +/strreplace { + 2 index 2 index strstr dup 0 ne { + 1 sub + over length 3 index length sub 4 index length add string + dup cvp 5 index cvp 3 index memcpy + dup 6 1 roll over add exch 5 -1 roll exch add + 4 -1 roll length add 3 1 roll "%s%s" exch sprintf + } { + pop pop pop strdup + } ifelse + + +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% Duplicate len bytes of string. +% +% ( string len -- string ) +% +/strndup { + /strndup.len exch def + /strndup.src exch cvp def + /strndup.dst strndup.len string cvp def + strndup.dst strndup.src strndup.len memcpy + strndup.dst strndup.len 0 put + strndup.dst cvs +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% Force to lower case. Overwrites string. +% +% ( string -- string ) +% +/tolower { + dup length 0 eq { return } if + dup length 1 sub 0 1 rot { + over over get 32 or 2 index 3 1 roll put + } for +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% Interpret a string as a number and return it, or .undef on failure. +% Only supports hexadecimal numbers (optionally preceded by "0x"). +% +% ( string -- number ) +% +/strtol { + tolower + dup 0 get '0' eq over 1 get 'x' eq and { 2 add } if + /strtol.tmp 0 def + { + dup '0' ge over '9' le and { + '0' sub strtol.tmp 16 mul add + /strtol.tmp exch def + } { + dup 'a' ge over 'f' le and { + 'a' sub 10 add strtol.tmp 16 mul add + /strtol.tmp exch def + } { + pop .undef return + } ifelse + } ifelse + } forall + strtol.tmp +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% Skip whitespace. Advances string. +% +% ( string -- string ) +% +/skipspace { + { + dup 0 get + dup 0 eq exch ' ' gt or { exit } if + 1 add + } loop +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% Find the next word boundary (NUL or whitespace). +% +% ( string -- pos ) +% +/nextspace { + 0 { + over over get + dup 0 eq exch ' ' le or { exit } if + 1 add + } loop + exch pop +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% Extract a word. word_str must be freed. +% +% ( config_str -- trailing_str word_str ) +% +/getword { + dup nextspace + over over add % get trailing string + 3 1 roll strndup % get word string +} def + + diff --git a/theme_colors.inc b/theme_colors.inc new file mode 100644 index 0000000..e3c185b --- /dev/null +++ b/theme_colors.inc @@ -0,0 +1,4 @@ +/title.bg 0x3f81f1 newcolor +/timer.color lightgray newcolor +/panel.high 0x43b3fe newcolor +/ed.color white newcolor diff --git a/theme_positions.inc b/theme_positions.inc new file mode 100644 index 0000000..5fb9207 --- /dev/null +++ b/theme_positions.inc @@ -0,0 +1,4 @@ +/timer.position.x 620 def +/timer.position.y { panel.text.y } def +/menu.position.x 187 def +/menu.position.y 140 def diff --git a/timeout.inc b/timeout.inc new file mode 100644 index 0000000..3eeebab --- /dev/null +++ b/timeout.inc @@ -0,0 +1,48 @@ +% +% include before common.inc +% + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% ( timeout time ) ==> ( ) +/Timeout { + /timeout.time exch def + /timeout.timeout exch def + + timeout.time 10 mul 150 add 182 div /timeout.seconds exch def + + timeout.seconds timeout.current eq { return } if + /timeout.current timeout.seconds def + timeout.hidden { return } if + + timer.color setcolor + + timeout.time.x timeout.time.y moveto -40 0 rmoveto + currentpoint 40 fontheight image + + timeout.time 0 gt { + timeout.seconds "%d s" timeout.buf sprintf + + timeout.time.x timeout.time.y moveto timeout.buf showright + } if +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Initialize timeout indicator. +% +% ( ) ==> ( ) +% +/timeout.init { + /timeout.current -1 def + /timeout.buf 64 string def + + /timeout.time.x timer.position.x def + /timeout.time.y timer.position.y def +} def + + +/timeout.x { head.x } def +/timeout.y { head.y } def + +/timeout.hidden false def +/timeout.hidden.showsplash true def diff --git a/timezones.inc b/timezones.inc new file mode 100644 index 0000000..729b46f --- /dev/null +++ b/timezones.inc @@ -0,0 +1,57 @@ + +/.tz.language 0 def +/.tz.name 1 def + +/timezones [ + [ "be_BY" "Europe/Minsk" ] + [ "bg_BG" "Europe/Sofia" ] + [ "bs_BA" "Europe/Sarajevo" ] + [ "cs_CZ" "Europe/Prague" ] + [ "da_DK" "Europe/Copenhagen" ] + [ "de_DE" "Europe/Berlin" ] + [ "en_AU" "Australia/Canberra" ] + [ "en_GB" "Europe/London" ] + [ "en_US" "America/New_York" ] + [ "es_ES" "Europe/Madrid" ] + [ "es_UY" "America/Montevideo" ] + [ "es_VE" "America/Caracas" ] + [ "et_EE" "Europe/Tallinn" ] + [ "fi_FI" "Europe/Helsinki" ] + [ "fr_BE" "Europe/Brussels" ] + [ "fr_CA" "Canada/Pacific" ] + [ "fr_FR" "Europe/Paris" ] + [ "hr_HR" "Europe/Zagreb" ] + [ "hu_HU" "Europe/Budapest" ] + [ "is_IS" "Atlantic/Reykjavik" ] + [ "it_IT" "Europe/Rome" ] + [ "kk_KZ" "Asia/Almaty" ] + [ "lt_LT" "Europe/Vilnius" ] + [ "lv_LV" "Europe/Riga" ] + [ "nl_BE" "Europe/Brussels" ] + [ "nl_NL" "Europe/Amsterdam" ] + [ "nn_NO" "Europe/Oslo" ] + [ "pl_PL" "Europe/Warsaw" ] + [ "pt_BR" "Brazil/East" ] + [ "pt_PT" "Europe/Lisbon" ] + [ "ro_RO" "Europe/Bucharest" ] + [ "ru_RU" "Europe/Moscow" ] + [ "sk_SK" "Europe/Bratislava" ] + [ "sl_SI" "Europe/Ljubljana" ] + [ "sq_AL" "Europe/Tirane" ] + [ "sr_RS" "Europe/Belgrade" ] + [ "sv_SE" "Europe/Stockholm" ] + [ "uk_UA" "Europe/Kiev" ] +] def + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Get timezone (timezone). +% +% Returns timezone for lang +% +% ( locale ) ==> ( EEEE/MMMM ) +% +/lang.gettimezone { + timezones { + dup .tz.language get 2 index eq { .tz.name get exch pop exit } { pop } ifelse + } forall +} def diff --git a/window.inc b/window.inc new file mode 100644 index 0000000..505ba86 --- /dev/null +++ b/window.inc @@ -0,0 +1,664 @@ +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% window code +% +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +% public words: +% +% window.dialog ( ) ==> ( window ) +% - create a new dialog +% +% window.init ( window ) ==> ( ) +% - initialize window +% +% window.show ( window ) ==> ( ) +% - draw window +% +% window.current ( ) ==> ( window ) +% - the top level window +% +% window.action ( ) ==> ( action ) +% - recent window action +% +% window.input ( key_in ) ==> ( key_out ) +% - handle keyboard input +% +% window.done ( ) ==> ( ) +% - close top level window +% +% +% constants: +% - window.action +% actNothing - do nothing +% actExit - leave boot menu +% actCloseInfo - close info window +% actPassword - password entered +% actStart - boot kernel +% actEject - eject CD +% actPowerOff - turn computer off +% actReboot - reboot computer +% actRedraw - redraw everything +% actNoClose - don't close dialog (it's a flag) +% + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% window related global variables +% + +% all open windows are stacked here +/window.list 8 array def +/window.list.index 0 def + +% the top level window +% /window.current + +% action selected by closing window +/window.action actNothing def + +% window field definitions +/widget.size 0 def +/newfield { widget.size def /widget.size widget.size 1 add def } def + +/.type newfield +/.x newfield +/.y newfield +/.width newfield +/.height newfield +/.width.min newfield +/.position newfield +/.color.fg newfield +/.color.bg newfield +/.font newfield +/.saved newfield +/.saved.areas newfield +/.title newfield +/.title.fg newfield +/.title.bg newfield +/.title.height newfield +/.text newfield +/.text.x newfield +/.text.y newfield +/.buttons newfield +/.button.y newfield +/.ed newfield +/.ed.font newfield +/.ed.list newfield +/.ed.buffer.list newfield +/.ed.text.list newfield +/.ed.width newfield +/.ed.focus newfield +/.ed.pw_field newfield +/.xmenu newfield +/.xmenu.update newfield +/.xmenu.change newfield % like update but the window remains shown +/.xmenu.select newfield +/.xmenu.input newfield +/.xmenu.cleanup newfield + +% window types +/t_dialog 100 def +/t_help 101 def +/t_splash 102 def +/t_main 103 def +/t_xmenu 104 def + +% actions +/actNothing 0 def +/actExit 1 def +/actCloseInfo 2 def +/actPassword 3 def +/actStart 4 def +/actEject 5 def +/actPowerOff 6 def +/actRedraw 7 def +/actRedrawPanel 8 def +/actReboot 9 def +/actNoClose 0x100 def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Create new dialog window. +% +% ( ) ==> ( window ) +% +/window.dialog { + widget.size array + dup .type t_dialog put + dup .position 8 put % centered at 8/10 of screen height + dup .x 0 put + dup .y 0 put + dup .width.min 0 put + dup .color.fg black put + dup .color.bg lightgray put + dup .font font.normal put + dup .title.fg white put + dup .title.bg title.bg put + dup .title.height help.title.height put + dup .text.x 12 put + dup .text.y help.title.height 10 add put +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Handle keyboard input. +% +% ( key_in ) ==> ( key_out ) +% +/window.input { + window.current .undef ne { + window.current .type get + dup t_dialog eq { exch dialog.input exch } if + dup t_help eq { exch help.input exch } if + dup t_splash eq { exch splash.input exch } if + dup t_main eq { exch main.input exch } if + dup t_xmenu eq { exch xmenu.input exch } if + pop + + % maybe there is an editable input field + dup 0 ne { + window.current .ed get .undef ne { + window.current .ed.font get setfont + ed.color setcolor + window.current .ed get exch edit.input + 0 + } if + } if + + % only top level window gets input + pop 0 + + } if +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Initialize window. +% +% ( window ) ==> ( ) +% +/window.init { + dup .type get + dup t_dialog eq { pop dialog.init return } if + dup t_help eq { pop help.init return } if + dup t_splash eq { pop splash.init return } if + dup t_main eq { pop main.init return } if + dup t_xmenu eq { pop xmenu.init return } if + pop +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Show window. +% +% ( window ) ==> ( ) +% +/window.show { + dup .type get + dup t_dialog eq { pop dialog.show return } if + dup t_help eq { pop help.show return } if + dup t_splash eq { pop splash.show return } if + dup t_main eq { pop main.show return } if + dup t_xmenu eq { pop xmenu.show return } if + pop +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Add window to list. +% +% ( window ) ==> ( ) +% +/window.push { + window.list.index window.list length ge { pop return } if + /window.current over def + window.list window.list.index rot put + /window.list.index window.list.index 1 add def +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Remove window from list. +% +% ( ) ==> ( window ) +% +/window.pop { + window.list.index 0 eq { .undef return } if + /window.list.index dec + window.list window.list.index get + window.list window.list.index .undef put + /window.current + window.list.index 0 eq { .undef } { window.list window.list.index 1 sub get } ifelse + def +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Close top level window. +% +% ( ) ==> ( ) +% +/window.done { + window.current .undef ne { + window.current dup .type get + dup t_help eq { help.done } if + dup t_xmenu eq { xmenu.done } if + pop + % restore saved background and free bg image + dup .saved get .undef ne { + dup .x get 1 sub over .y get 1 sub moveto + dup .saved get dup restorescreen free + dup .saved .undef put + } if + % restore & free saved background areas + dup .saved.areas get .undef ne { + % list of [ x y screen ] + dup .saved.areas get { + dup { } forall + 3 1 roll moveto dup restorescreen free + free + } forall + dup .saved.areas get free + dup .saved.areas .undef put + } if + % specific cleanup actions + window.current .type get + dup t_xmenu eq { xmenu.cleanup } if + pop + % free input field memory + dup .ed get .undef ne { + dup .ed get 2 get free % background + dup .ed get free + dup .ed .undef put + } if + dup .ed.text.list get free + dup .ed.list get dup { + { dup 2 get free free } forall + } { pop } ifelse + dup .ed.list get free + pop + % remove it from window list + window.pop + % free buttons & button list + dup .buttons get + dup .undef ne { + dup length 0 gt { + dup length 1 sub 0 1 rot { + over exch get free + } for + } if + } if + free + % free window + free + } if +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Handle keyboard input. +% +% ( key_in ) ==> ( key_out ) +% +/dialog.input { + dup 0 eq { return } if + + /window.buttons window.current .buttons get def + + window.buttons .undef ne { window.buttons length { + + dup keyEnter eq { + window.buttons window.findselected + over over get 7 get /window.action exch def get + dup button.press 100000 usleep + window.action actNoClose and { + window.action dialog.specialaction { button.show } if + } { + pop window.done + } ifelse + pop 0 + } if + + window.current .ed.list get { + dup keyDown eq over keyTab eq or { + window.current .ed.focus get + window.current .ed.list get over get edit.hidecursor + + 1 add window.current .ed.list get length mod + window.current .ed.focus 2 index put + window.current .ed.list get exch get edit.showcursor + pop 0 + } if + + dup keyUp eq over keyShiftTab eq or { + window.current .ed.focus get + window.current .ed.list get over get edit.hidecursor + + 1 sub window.current .ed.list get length exch over add exch mod + window.current .ed.focus 2 index put + window.current .ed.list get exch get edit.showcursor + pop 0 + } if + +% dup keyTab eq { +% window.findselected 1 add window.buttons length mod +% window.selectbutton +% pop 0 +% } if + + } { + dup keyTab eq over keyRight eq or over keyDown eq or { + window.findselected 1 add window.buttons length mod + window.selectbutton + pop 0 + } if + + dup keyLeft eq over keyUp eq or { + window.findselected window.buttons length 1 sub add window.buttons length mod + window.selectbutton + pop 0 + } if + } ifelse + + dup window.findkey dup 0 ge { + window.buttons exch + over over get 7 get /window.action exch def get + dup button.press 100000 usleep + window.action actNoClose and { + window.action dialog.specialaction { button.show } if + } { + pop window.done + } ifelse + pop 0 + } { + pop + } ifelse + + } if } if + + + % maybe there are input fields + dup 0 ne { + window.current .ed.list get dup { + window.current .ed.font get + window.current .ed.focus get window.current .ed.pw_field get eq { pwmode } if + setfont + ed.color setcolor + + window.current .ed.focus get get exch edit.input + 0 + } { pop } ifelse + } if + +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Find selected button. +% +% ( ) ==> ( button_idx ) +% +/window.findselected { + 0 + 0 1 window.buttons length 1 sub { + dup + window.buttons exch get 5 get + { + exch pop exit + } { + pop + } ifelse + } for +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Find button for key. +% +% ( key ) ==> ( button_idx ) +% +% button_idx = -1 if not found +% +/window.findkey { + /window.key exch def + -1 + window.key 0 eq { return } if + 0 1 window.buttons length 1 sub { + dup + window.buttons exch get 6 get window.key eq + { + exch pop exit + } { + pop + } ifelse + } for +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Select button. +% +% ( button_idx ) ==> ( ) +% +/window.selectbutton { + window.findselected + over over eq { + pop pop + } { + window.buttons exch get button.notdefault button.show + window.buttons exch get button.default button.show + } ifelse +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Initialize dialog window. +% +% ( window ) ==> ( ) +% +/dialog.init { + /dialog.tmp exch def + + dialog.tmp .font get setfont + + dialog.tmp .text get dup "" ne { strsize } { pop 0 0 } ifelse + /dialog.height exch dialog.tmp .text.y get 10 add add def + /dialog.width exch dialog.tmp .text.x get 1 add 2 mul add dialog.tmp .width.min get max def + + /dialog.width dialog.tmp .title get strsize pop dialog.tmp .text.x get 1 add 2 mul add dialog.width max def + + dialog.tmp .ed.text.list get dup { + /dialog.width + dialog.tmp .ed.width get dialog.tmp .text.x get 1 add 2 mul add 8 add dialog.width max + def + { + strsize + /dialog.height exch dialog.height add def + /dialog.width exch dialog.tmp .text.x get 1 add 2 mul add dialog.width max def + } forall + } { pop } ifelse + + dialog.tmp .ed.buffer.list get dup { + length lineheight 20 add mul /dialog.height exch dialog.height add def + } { pop } ifelse + + /window.buttons dialog.tmp .buttons get def + + /dialog.button.y dialog.height 5 add def + + window.buttons .undef ne { window.buttons length { + /dialog.height window.buttons 0 get 3 get dialog.button.y add 8 add def + } if } if + + /dialog.y screen.size exch pop dialog.tmp .position get mul 10 div dialog.height sub 2 div def + + window.buttons .undef ne { window.buttons length { + 10 + 0 1 window.buttons length 1 sub { + window.buttons exch get + dup 1 dialog.button.y dialog.y add put + 2 get 10 add add + } for + + dialog.width max /dialog.width exch def + } if } if + + % adjust to window size + dialog.tmp .ed.width get .undef ne { + dialog.tmp .ed.width over over get dialog.width 30 sub max put + } if + + /dialog.x screen.size pop dialog.width sub 2 div def + + window.buttons .undef ne { window.buttons length { + % calculate button x positions + dialog.width 0 + 0 1 window.buttons length 1 sub { + window.buttons exch get 2 get add + } for + sub window.buttons length 1 add div + dialog.x over add + 0 1 window.buttons length 1 sub { + window.buttons exch get + over over 0 rot put + 2 get add over add + } for + pop pop + } if } if + + % store values + + dialog.tmp + dup .x dialog.x put + dup .y dialog.y put + dup .width dialog.width put + dup .height dialog.height put + .button.y dialog.button.y put + + /dialog.tmp .undef def +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Draw dialog window. +% +% ( window ) ==> ( ) +% +/dialog.show { + /dialog.tmp exch def + + % put into list early, so drawing functions can access it there + dialog.tmp window.push + + % now start drawing + + dialog.tmp .x get 1 sub dialog.tmp .y get 1 sub moveto + white black + dialog.tmp .width get 2 add dialog.tmp .height get 2 add + over over + savescreen + dialog.tmp .saved rot put + drawborder + + dialog.tmp .color.bg get setcolor + dialog.tmp .x get dialog.tmp .y get moveto + dialog.tmp .width get dialog.tmp .height get fillrect + + dialog.tmp .title.bg get setcolor + dialog.tmp .x get 1 add dialog.tmp .y get 1 add moveto + dialog.tmp .width get 2 sub dialog.tmp .title.height get 1 sub fillrect + + dialog.tmp .x get 10 add dialog.tmp .y get 3 add moveto + dialog.tmp .title.fg get setcolor + dialog.tmp .title get show + + dialog.tmp .color.fg get setcolor + dialog.tmp .x get dialog.tmp .y get moveto + dialog.tmp .text.x get dialog.tmp .text.y get rmoveto + dialog.tmp .text get show + + dialog.tmp .ed.text.list get dup { + /dialog.tmp.idx 0 def + { + show + dialog.tmp .ed.buffer.list get dialog.tmp.idx get + + dup { + + 3 7 rmoveto + + /dialog.tmp.buf [ + currentpoint + dialog.tmp .ed.width get fontheight 2 add savescreen + 0 0 + 0 0 0 + ] def + + dialog.tmp.buf 3 2 index put + dialog.tmp.buf 4 rot cvp length put + + dialog.tmp .ed.list get dialog.tmp.idx dialog.tmp.buf put + + currentcolor + currentpoint over 1 sub over 2 sub moveto + black white dialog.tmp .ed.width get 2 add fontheight 5 add drawborder + moveto -3 lineheight 20 add 7 sub rmoveto + setcolor + + currentfont + % hide text in password fields + dialog.tmp.idx dialog.tmp .ed.pw_field get eq { + dialog.tmp .ed.font get pwmode setfont + } if + dialog.tmp.buf dup 3 get edit.init + setfont + + dialog.tmp .ed.focus get dialog.tmp.idx ne { dialog.tmp.buf edit.hidecursor } if + + } { pop } ifelse + + /dialog.tmp.idx inc + } forall + } { pop } ifelse + + dialog.tmp .buttons get .undef ne { dialog.tmp .buttons get length { + 0 1 dialog.tmp .buttons get length 1 sub { + dialog.tmp .buttons get exch get button.show + } for + } if } if + + /dialog.tmp .undef def + +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Do something without closing the window. +% +% ( action ) ==> ( true|false ) +% +% Returns whether the window still exists. +% +/dialog.specialaction { + actNoClose not and + + true exch + + dup actEject eq { + bootdrive eject pop + } if + + dup actPowerOff eq { + poweroff + } if + + dup actReboot eq { + reboot + } if + + pop +} def + + diff --git a/xmenu.inc b/xmenu.inc new file mode 100644 index 0000000..00877dd --- /dev/null +++ b/xmenu.inc @@ -0,0 +1,522 @@ +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% +% List dialog handling. +% +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Some global vars. +% +/xmenu.vspace.default { xmenu .xm_list get length 15 ge { 2 } { 2 } ifelse } def +/xmenu.hspace 12 def +/xmenu.light white def +/xmenu.dark black def +/xmenu.font font.normal def +/xmenu.normal.bg lightgray def +/xmenu.normal.fg black def +/xmenu.selected.fg white def +/xmenu.selected.bg 0x6c6c6c newcolor + +small_layout { + /xmenu.maxlines 19 def +} { + /xmenu.maxlines 19 def +} ifelse + +% xmenu layout +% +% [ selected_entry string_list x y panel_x ] +% +/.xm_current 0 def % selected entry +/.xm_list 1 def % string list +/.xm_x 2 def % menu x pos +/.xm_y 3 def % menu y pos +/.xm_width 4 def % menu width per column +/.xm_height 5 def % menu height +/.xm_panel_x 6 def % panel entry x pos +/.xm_panel_width 7 def % panel entry width +/.xm_panel_height 8 def % panel entry height +/.xm_vspace 9 def % vspace per menu +/.xm_title 10 def % xmenu title +/.xm_columns 11 def % menu columns +/.xm_check 12 def % if non-zero, use checkboxes +/.xm_allselected 13 def % all selected checkboxes +/.xm_size 14 def % xmenu size + + +% short hands +/xmenu.x { xmenu .xm_x get } def +/xmenu.y { xmenu .xm_y get } def +/xmenu.width { xmenu .xm_width get } def +/xmenu.height { xmenu .xm_height get } def +/xmenu.columns { xmenu .xm_columns get } def + +/xmenu.vspace { xmenu .xm_vspace get dup .undef ne { } { pop xmenu.vspace.default } ifelse } def + +/xmenu.saved { xmenu.saved.areas xmenu.column get 2 get } def + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Create new xmenu. +% +% ( ) ==> ( window ) +% +/window.xmenu { + widget.size array + dup .type t_xmenu put + dup .xmenu.select .undef put + dup .xmenu.input .undef put +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Handle keyboard input. +% +% ( key_in ) ==> ( key_out ) +% +/xmenu.input { + dup 0 eq { return } if + + dup keyEsc eq { + xmenu 0 xmenu.oldentry put + window.done + pop 0 + } if + + dup keyEnter eq { + xmenu .xm_check get { + xmenu .xm_allselected get xmenu .xm_current get over over get not put + xmenu .xm_current get xmenu.viewentry + window.current .xmenu.change get + } { + window.current .xmenu.update get + window.done + } ifelse + exec + pop 0 + } if + + dup ' ' eq { + xmenu .xm_check get { + xmenu .xm_allselected get xmenu .xm_current get over over get not put + xmenu .xm_current get xmenu.viewentry + window.current .xmenu.change get exec + dup .undef ne { exec } { pop } ifelse + } if + pop 0 + } if + + dup keyDown eq { + xmenu .xm_current get 1 add xmenu.select + pop 0 + } if + + dup keyUp eq { + xmenu .xm_current get 1 sub xmenu.select + pop 0 + } if + + dup keyPgDown eq { + xmenu .xm_current get 5 add + xmenu .xm_list get length 1 sub min xmenu.select + pop 0 + } if + + dup keyPgUp eq { + xmenu .xm_current get 5 sub + 0 max xmenu.select + pop 0 + } if + + dup keyHome eq { + 0 xmenu.select + pop 0 + } if + + dup keyEnd eq { + xmenu .xm_list get length 1 sub xmenu.select + pop 0 + } if + + dup keyRight eq { + xmenu .xm_current get + dup xmenu.maxlines div 1 add xmenu.columns mod xmenu.maxlines mul + exch xmenu.maxlines mod add + xmenu .xm_list get length 1 sub min xmenu.select + pop 0 + } if + + dup keyLeft eq { + xmenu .xm_current get + dup xmenu.maxlines div xmenu.columns add 1 sub xmenu.columns mod xmenu.maxlines mul + exch xmenu.maxlines mod add + xmenu .xm_list get length 1 sub min xmenu.select + pop 0 + } if + + dup keyF1 eq { + show_help + pop 0 + } if + + window.current .xmenu.input get dup .undef ne { exec } { pop } ifelse +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Calculate menu sizes. +% +% ( ) ==> ( ) +% +/xmenu.sizes { + /xmenu.lheight xmenu.font setfont fontheight xmenu.vspace dup add add def + + xmenu .xm_columns + xmenu .xm_list get length xmenu.maxlines add 1 sub xmenu.maxlines div + put + + /xmenu.lastheight + xmenu .xm_list get length xmenu.maxlines xmenu.columns 1 sub mul sub xmenu.lheight mul + def + + xmenu .xm_height + xmenu .xm_list get length xmenu.maxlines min xmenu.lheight mul + put + + xmenu .xm_width [ + /xmenu.idx 0 def + 0 xmenu .xm_list get { + exec + 0 + over 0 get '\x09' eq { + pop "x\u25b6" strsize pop + } if + exch strsize pop add max + /xmenu.idx inc + xmenu.idx xmenu.maxlines mod 0 eq { + xmenu .xm_check get { "x " strsize pop add } if + xmenu.hspace 2 mul add + 0 + } if + } forall + xmenu.idx xmenu.maxlines mod 0 ne { + xmenu .xm_check get { "x " strsize pop add } if + xmenu.hspace 2 mul add + } { pop } ifelse + ] put + + /xmenu.saved.normal xmenu.columns array def + /xmenu.saved.selected xmenu.columns array def +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Width up to but not including specified column. +% +% ( column ) ==> ( width ) +% +/xmenu.widthupto { + % width up to column 0 is 0; but '0 1 -1 { } for' always runs once, so + % special-case that + dup { + 0 exch + 0 1 rot 1 sub { + xmenu.width exch get 2 add add + } for + } if +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Init and show menu. +% +% ( window ) ==> ( ) +% +% xmenu: [ selected_entry [ text0 text1 ... ] x y ] +% +/xmenu.init { + /xmenu over .xmenu get def + + xmenu.sizes + + dup .saved.areas xmenu.columns + xmenu.columns 1 gt xmenu .xm_title get .undef ne and { 1 add } if + array /xmenu.saved.areas over def put + + 0 1 xmenu.columns 1 sub { + /xmenu.column exch def + + dup .saved.areas get xmenu.column + + [ + xmenu.column xmenu.widthupto xmenu.x add 1 sub xmenu.y 1 sub moveto + currentpoint + + xmenu.light xmenu.dark + xmenu.width xmenu.column get 2 add + xmenu.column 1 add xmenu.columns eq { xmenu.lastheight } { xmenu.height } ifelse 2 add + over over savescreen 5 1 roll + drawborder + + ] put + + } for + + xmenu.columns 1 gt xmenu .xm_title get .undef ne and { + dup .saved.areas get xmenu.columns + [ + xmenu.x 1 sub xmenu.y xmenu.vspace sub xmenu.lheight sub 1 sub moveto + currentpoint + + xmenu.light xmenu.dark + xmenu.columns xmenu.widthupto + xmenu.lheight 2 add + over over savescreen 5 1 roll + drawborder + ] put + } if + + 0 1 xmenu .xm_list get length 1 sub { xmenu.viewentry } for + + xmenu.columns 1 gt xmenu .xm_title get .undef ne and { + xmenu.viewheader + } if + + /xmenu.oldentry xmenu .xm_current get def + + dup .x xmenu.x put + .y xmenu.y put + +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Close menu. +% +% ( ) ==> ( ) +% +/xmenu.done { + /xmenu.tmpbuf xmenu.tmpbuf free .undef def + xmenu.saved.normal { free } forall + /xmenu.saved.normal xmenu.saved.normal free .undef def + xmenu.saved.selected { free } forall + /xmenu.saved.selected xmenu.saved.selected free .undef def + /xmenu.saved.areas .undef def +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Clean up after menu has been undrawn. +% +% ( ) ==> ( ) +% +/xmenu.cleanup { + window.current .xmenu.cleanup get dup .undef ne { exec } { pop } ifelse +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Draw xmenu. +% +% ( window ) ==> ( ) +% +/xmenu.show { + window.push +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Draw single entry. +% +% ( entry ) ==> ( ) +% +/xmenu.viewentry { + xmenu.font setfont + + dup xmenu.maxlines mod xmenu.lheight mul xmenu.y add /xmenu.pos.y exch def + + dup xmenu.maxlines div /xmenu.column over def + xmenu.widthupto xmenu.x add /xmenu.pos.x exch def + + xmenu.pos.x xmenu.pos.y moveto + + dup xmenu .xm_current get eq { xmenu.saved.selected } { xmenu.saved.normal } ifelse + xmenu.column get + + dup { + transp { pop } { restorescreen } ifelse + } { + pop + + dup xmenu .xm_current get eq { xmenu.selected.bg } { xmenu.normal.bg } ifelse + setcolor xmenu.width xmenu.column get xmenu.lheight fillrect + + dup xmenu .xm_current get eq { + xmenu.pos.x xmenu.pos.y moveto + xmenu.dark xmenu.light + xmenu.width xmenu.column get xmenu.lheight + drawborder + } if + + dup xmenu .xm_current get eq { xmenu.saved.selected } { xmenu.saved.normal } ifelse + xmenu.column + xmenu.pos.x xmenu.pos.y moveto + xmenu.width xmenu.column get xmenu.lheight + savescreen + put + } ifelse + + + transp { + % copy entry to avoid reading the screen again + dup xmenu .xm_current get eq { xmenu.saved.selected } { xmenu.saved.normal } ifelse + xmenu.column get + xmenu.tmpbuf .undef eq { + dup length malloc /xmenu.tmpbuf exch def + } if + xmenu.tmpbuf exch dup length memcpy + + 0 xmenu.pos.y xmenu.y sub moveto 1 1 rmoveto + xmenu.saved transp xmenu.tmpbuf blend + + xmenu.pos.x xmenu.pos.y moveto xmenu.tmpbuf restorescreen + } if + + dup xmenu .xm_current get eq { xmenu.selected.fg } { xmenu.normal.fg } ifelse setcolor + xmenu.pos.x xmenu.hspace add xmenu.pos.y xmenu.vspace add moveto + xmenu .xm_check get { + xmenu .xm_allselected get over get { + "x " show + } { + "x " strsize pop 0 rmoveto + } ifelse + } if + xmenu .xm_list get over get exec show + + xmenu .xm_list get over get exec + 0 get 9 eq { + xmenu.pos.x xmenu.width xmenu.column get add 8 sub xmenu.pos.y 4 add moveto "\u25b6" showright + } if + + pop + +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Draw menu header. +% +% ( ) ==> ( ) +% +/xmenu.viewheader { + xmenu.font setfont + + /xmenu.pos.y xmenu.y xmenu.vspace sub xmenu.lheight sub def + /xmenu.header.width xmenu.columns xmenu.widthupto 2 sub def + + xmenu.x xmenu.pos.y moveto + + xmenu.normal.bg setcolor + xmenu.header.width xmenu.lheight fillrect + + xmenu.normal.fg setcolor + xmenu.x xmenu.header.width 2 div add + xmenu.pos.y xmenu.vspace add + moveto + xmenu .xm_title get exec showcenter +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Select menu entry. +% +% ( new_entry ) ==> ( ) +% +/xmenu.select { + dup 0 lt { xmenu .xm_list get length add } if + dup xmenu .xm_list get length ge { xmenu .xm_list get length sub } if + + xmenu .xm_current get over xmenu .xm_current rot put + xmenu.viewentry + xmenu.viewentry + window.current .xmenu.select get dup .undef ne { exec } { pop } ifelse +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Panel/xmenu helper function. +% +% ( ) => ( ) +% +/pmenu.panel.update { + panel.text.moveto + + xmenu.sizes + + xmenu .xm_panel_x currentpoint pop xmenu.hspace sub put + % try to ensure that the menu doesn't overflow the screen + xmenu .xm_x + xmenu .xm_panel_x get + screen.size pop xmenu.columns xmenu.widthupto 10 add sub + min put + + pmenu.update +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Panel/xmenu helper function. +% +% ( ) => ( width ) +% +/pmenu.width { + % Use this instead of the line below and remove the actRedrawPanel + % things if you want fixed size panel entries. + + % xmenu .xm_panel_width get xmenu.hspace 2 mul sub + + xmenu .xm_title get dup .undef eq { + pop xmenu .xm_list get xmenu .xm_current get get + } if + exec strsize pop +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Panel/xmenu helper function. +% +% ( ) => ( ) +% +/pmenu.update { + xmenu .xm_panel_x get xmenu.hspace add panel.text.y moveto + +% currently not needed - we're redrawing the whole panel anyway +% xmenu .xm_panel_width get xmenu.hspace sub xmenu .xm_panel_height get +% panel.bg setcolor fillrect + + panel.normal setcolor + panel.font setfont + xmenu .xm_panel_x get xmenu.hspace add + panel.text.y + moveto + xmenu .xm_title get dup .undef eq { + pop xmenu .xm_list get xmenu .xm_current get get + } if + exec show +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Panel/xmenu helper function. +% +% ( ) => ( ) +% +/pmenu.init { + xmenu.sizes + + xmenu .xm_y panel.text.y 1 sub xmenu.height sub put + xmenu .xm_panel_width xmenu.width 0 get put + xmenu .xm_panel_height fontheight put +} def + +