This file documents the modifications made to internationalize Slackware's installer, and the files added to allow internationalization. MODIFICATIONS You can check how these modifications are processed looking at scripts ./build/slint*.sh The modifications are guided by following choices: - Allow internationalization of all messages displayed by Slackware scripts during installation, regardless of their locations (in the installer, in the being installed system or in the installation media) - Provide internationalized scripts, and translations in the installed system gathered in a Slint package Most modified and new files are stored in ./data/-/source/ - being the corresponding Slackware edition. Roughly, modifications fall into following categories : 1. Internationalization of scripts included in the installer. 2. Inclusion in the installer and internationalization of following configuration scripts ($T_PX stands for the mount point of the system being installed): (a) $T_PX/var/log/setup/setup.* (b) scripts called by $T_PX/var/log/setup/setup.* (c) (renamed with their respective series' names) maketag and maketag.ez files found in /slackware's subdirectories in a Slackware DVD. Directory /usr/lib/config is created in the installer to host modified scripts listed above. For the records, files included in (a) and (b) are called, directly or indirectly, by SeTconfig or pkgtools, in (c) are called by slackinstall. SeTconfig, slackinstall and pkgtols are modified to run the modified scripts, if present in /usr/lib/config, instead of the genuine ones. When a script called by SeTconfig or pkgtools calls another one, the callee is replaced by its counterpart in /usr/lib/config as well. 3. modification and addition of files in /isolinux to allow setting of LANG and keyboard map according to chosen locale. The locale is chosen through a two digit code typed by the user, to which correspond a label in isolinux.cfg (and possibly elilo.conf) to set LANG and kbd parameters in the command line and transmit it to the 'init' process and its descendants. 4. Making of these settings the system wide default in the installed system before leaving 'setup' if the user agrees, and set XKB layout [variant] corresponding to the last used kernel keymap if xorg-server is installed. 5. Internationalization of packages,including localized man pages for some Slackware management tools. 6. Usage of the progam fbterm during installation, to be able to use true type font, allowed to display all needed glyphs for ideographic languages and to keep a roughly constant ratio dialog boxes size / screen size, whatever be the screen resolution. However, the user can still chosse not to use an FbTerm including "fbt=no" in the command line. In that case bitamps fonts intended for the minux console are used. 7. Only from version 14.1, allow usage of a Braille terminal during installation through usage of the brltty software, that will be put in the installed system as well. To list all modifications of files in the installer for a specific Slackware edition, designated as -, you can feed ./data/-/orig with genuine scripts executing: ./scripts/orig.sh -' then for instance: diff -b -B -r [-u] ./data/-/orig \ ./data/-/source In addition, you can can 'grep -nr Didier ./data/-/source', as most "intrusive" modifications are commented. Here is an incomplete list of main modifications: - /isolinux/isolinux.cfg includes settings for $LANG for each available locale, listed in new f3.txt and f4.txt (CP437 encoding) files (for 64bit and 32bit respecively. - /isolinux/isolinux.cfg includes a FONT directive and font ter-i16n.psf (code page CP437) is added to /isolinux to insure that all users can see intended glyphs in f4.txt as in some countries have other hardware code pages, ref. https://www.drdos.net/documentation/usergeng/17ugch17.htm. UTF-8 is expected to be available in syslinux in the future but ETA is not set yet. Encoding of files message.txt (modified) and f3.txt (new) are converted to CP437. - /isolinux/message.txt invites to hit [F3] to install in other languages - some files are modified so that the kernel keybord map be set (possibly to the default us.map) and /etc/rc.d/rc.keyboard written in any case - rc.S asks the user to change its keyboard map only if non set in the command line (well, to be honest the code for that was already there, but I guess that not many end users noticed that :^) - In the genuine installer, /var/log/setup/setup.xwmconfig chroot to $T_PX (mount point of being installed Slackware) before running /sbin/xwmconfig Instead, to allow internationalization, in the modified installer ${INITRD}/usr/lib/config/setup.xwmconfig calls ${INITRD}/usr/lib/config/xwmconfig with T_PX as argument. xwmconfig is modified accordingly. - A patch that already applied to Slackware 14 to correct two bugs in liloconfig is back-ported to Slackware 13.37. - In Slackware{,64}-14.1), ${INITRD}/etc/rc.d/rc.font is called with two arguments by ${INITRD}/usr/lib/setup/SeTlocales (big font and small font). - Internationalization of packages (possibly including localized man pages) by script ./build/make_slint_packages (for Slackware{,64}-14.1 aat time of writing). - dialogrc is customized FILES ADDED TO THE INSTALLER TO ALLOW INTERNATIONALIZATION SeTPROMPThelp and display.lilohelp are shell scripts intended to allow localizing of ${INITRD}/usr/lib/setup/SeTPROMPThelp and /source/a/lilo/txt.lilohelp, respectively. The ./data/-/source/blurbs files is not included in the installer. Its purpose is to allow localization of description following: #BLURB= found in /var/log/setup/setup.* files, as these messages are displayed by ${INITRD}/usr/lib/setup/pkgtoool. In case of a change in setup.*genuine files, the blurbs files for the corresponding edition should be updated. Besides those already listed, main additions are listed below: - /isolinux/message.txt and /EFI/BOOT/grub.cg include a list of available locales with the corresponding two digits codes. - gettext programs, copied in ${INITRD}/usr/bin - fbterm program - brltty software from version 14.1 of the installers - ${INITRD}/usr/lib/gconv/gconv-modules.cache, generated by an 'iconvconfig' command, needed by gettext - ${INITRD}/usr/lib${SFX}/locale/${ll_TT}.utf8 files, generated with localedef, - ${INITRD}/usr/locale/share/locale/LC_MESSAGES/slackware.mo: compiled catalogs of messages for every available locale - dialog.mo, gettext.mo and util-linux.mo for the same locales - ${INITRD}/usr/lib/config/ to host the internationalized configuration files so that their counterparts in the system being installed can stay unmodified. - ${INITRD}/usr/bin/setfont to set a relevant font for the locale used - /isolinux/usr/shre/kbd/consolefonts includes relevant fonts for the included locales - ${INITRD}/usr/lib/setup/SeTlocales centralize all locale settings - ${INITRD}/etc/rc.d/rc.S1 gathers the first (non interactive) startup commands (first part of superseded /etc/rc.d/rc.S) - ${INITRD}/etc/rc.S2 gathers the last (interactive) startup commands (second part of superseded /etc/rc.d/rc.S), ended by a "read" command to keep the last output displayed. - ${INITRD}/etc/rc.d/start_rc.S2 starts /etc/rc.d/rc.S2 in an FbTerm to be able to display ideograms using a true type font. - ${INITRD}/etc/rc.d/start_FbTerm starts an FbTerm on tty2 and tty3 to be able to display ideograms using a true type font. - ${INITRD}/usr/bin/checkfb checks the state of the frame buffer. If bad, FbTerm won't be used. If good, store the display size that will be used to comute the font size by SeTFont. - ${INITRD}/etc/rc.d/SetFont sets the true type font's size to the biggest that allows to display at least 88 lines and 27 columns for the current display size *** FILES OBSOLETED *** Following files are kept in the internationalized installer but are no more used. They are all located in ${INITRD}/usr/lib/setup/ and there content included in files in the same directory (but text.lilohep). - FDhelp is included in ./SeTfdHELP. - PROMPThelp is included in bnew file ./SeTPROMPThelp - PXEhelp is included in ./SeTPXEhelp. - nopartHELP is included in ./SeTnopart - content of /var/log/setup/text.lilohelp is included in new file ${INITRD}/usr/lib/config/display.lilohelp, called by the modified liloconfig located in the same directory. - rc.S is replaced by rc.S1 and rc.S Didier Spaier