From e7399656eac0ee225d3de9e0704fa310d05c387f Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Thu, 5 Feb 2009 11:57:58 +0000 Subject: installer stuff work: - factor out the translations initialization to install-translations.pl - update the perltk-en.sample and german translations for wizard - make wizard translatable git-svn-id: svn://tug.org/texlive/trunk@12093 c570f23f-e606-0410-a88d-b1316a301751 --- Master/tlpkg/installer/install-translations.pl | 165 +++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 Master/tlpkg/installer/install-translations.pl (limited to 'Master/tlpkg/installer/install-translations.pl') diff --git a/Master/tlpkg/installer/install-translations.pl b/Master/tlpkg/installer/install-translations.pl new file mode 100644 index 00000000000..6dcaf87c9be --- /dev/null +++ b/Master/tlpkg/installer/install-translations.pl @@ -0,0 +1,165 @@ +#!/usr/bin/env perl +# $Id$ +# +# Copyright 2009 Norbert Preining +# This file is licensed under the GNU General Public License version 2 +# or any later version. +# + +use strict; +$^W = 1; + +use utf8; +no utf8; + +if (defined($::opt_lang)) { + $::lang = $::opt_lang; + if ($::lang eq "zh") { + # set language to simplified chinese + $::lang = "zh-cn"; + } +} else { + if ($^O =~ /^MSWin(32|64)$/i) { + # trying to deduce automatically the country code + my $foo = TeXLive::TLWinGoo::reg_country(); + if ($foo) { + $::lang = $foo; + } else { + debug("Didn't get any usuful code from reg_country: $foo...\n"); + } + } else { + # we load POSIX and locale stuff + require POSIX; + import POSIX qw/locale_h/; + # now we try to deduce $::lang + my $loc = setlocale(&POSIX::LC_MESSAGES); + my ($lang,$area,$codeset); + if ($loc =~ m/^([^_.]*)(_([^.]*))?(\.([^@]*))?(@.*)?$/) { + $lang = defined($1)?$1:""; + $area = defined($3)?$3:""; + if ($lang eq "zh") { + if ($area =~ m/^(TW|HK)$/i) { + $lang = "zh-tw"; + } else { + # fallback to zh-cn for anything else, that is + # zh-cn, zh-sg, zh, and maybe something else + $lang = "zh-cn"; + } + } + } + $::lang = $lang if ($lang); + } +} + + +our %text = (title => 'TeX Live 2008 Installation', + basicinfo => 'Basic Information', + custom => 'Further Customization', + dirsetup => "Directory setup", + options => 'Options', + sysint => 'System Integration', + change => 'Change', + toggle => 'Toggle', + install => 'Install TeX Live', + finbut => 'Finish', + quit => 'Quit', + ok => 'Ok', + cancel => 'Cancel', + status => 'Status output', + changevar => 'Change variable value', + enterpath => 'Enter path for', + hinthome => '(use ~ for %%%)', + selectscheme => 'Select a scheme', + selectstdcol => 'Select the collections to be installed', + selectall => 'Select All', + selectnone => 'Deselect All', + selectlang => 'Select language support', + selectdoc => 'Select language-specific documentation', + createsym => 'create symlinks in standard directories', + binto => 'binaries to', + manto => 'manpages to', + infoto => 'info to', + selectsys => 'Select arch-os', + outof => 'out of', + collof => 'collections out of', + diskreq => 'disk space required', + yes => 'Yes', + no => 'No', + notwritable => '(default not writable - please change!)', + changetexdir => '(please change TEXDIR first!)', + nolangcol => '(no language collection selected!)', + finished => 'See TEXDIR/index.html for links to documentation.\nThe TeX Live web site (http://tug.org/texlive/) contains any updates and corrections. TeX Live is a joint project of the TeX user groups around the world; please consider supporting it by joining the group best for you. The list of groups is available on the web at http://tug.org/usergroups.html.', + finishedpath => 'Add TEXDIR/texmf/doc/man to MANPATH.\nAdd TEXDIR/texmf/doc/info to INFOPATH.\nMost importantly, add TEXDIR/bin/PLATFORM\nto your PATH for current and future sessions.', + welcome => 'Welcome to TeX Live!', + next => 'Next >', + prev => '< Back', + wizhello => "Welcome to the installation of TeX Live 2008\nhttp://tug.org/texlive\n\nThis wizard will guide you through the installation.", + destfolder => 'Destination folder:', + advcustom => 'Advanced customization', + pathinfo => "The destination folder will contain the installation.\nIt is strongly recommended to keep the year as the last component.", + readyinst => "We are ready to install TeX Live 2008.\nThe following settings will be used.\nIf you want to change something please go back,\notherwise press the \"Install\" button.", + instshort => 'Install', + wizard => 'Go to Wizard', + ); + + +our %labels = (binsys => 'Binary System(s)', + scheme => 'Selected Scheme', + stdcoll => 'Standard Collections', + langcoll => 'Language Collections', + texdir => 'TEXDIR (the main TeX directory)', + localdir => 'TEXMFLOCAL (directory for site-wide local files)', + sysvardir => 'TEXMFSYSVAR (directory for autogenerated data)', + sysconfigdir => 'TEXMFSYSCONFIG (directory for local config)', + texmfhome => 'TEXMFHOME (directory for user-specific files)', + optletter => 'Use letter size instead of A4 by default', + optfmt => 'Create all format files', + optdoc => 'Install font/macro doc tree', + optsrc => 'Install font/macro source tree', + symlink => 'Create symlinks in system directories', + ); + +if (($::lang ne "en") && ($::lang ne "C")) { + if (! -r "$::installerdir/tlpkg/installer/lang/perltk-$::lang") { + tlwarn ("\n Sorry, no translations available for $::lang; falling back to English. + (If you'd like to help translate the installer's messages, please see + http://tug.org/texlive/doc.html#install-tl-xlate for information.)\n\n"); + } else { + # merge the translated strings into the text string + open(LANG, "<$::installerdir/tlpkg/installer/lang/perltk-$::lang"); + my %trans; + while () { + chomp; + next if m/^\s*#/; + next if m/^\s*$/; + my ($a,$b) = split(/:/,$_,2); + $b =~ s/^\s*([^\s])/$1/; + $b =~ s/\s*$//; + if (!utf8::decode($b)) { + warn("decoding string to utf8 didn't work:$b\n"); + } + $b =~ s/\\n/\n/g; + $trans{"$a"} = "$b"; + } + close(LANG); + foreach my $k (keys %text) { + $text{$k} = $trans{"text.$k"} if defined($trans{"text.$k"}); + } + foreach my $k (keys %labels) { + $labels{$k} = $trans{"label.$k"} if defined($trans{"label.$k"}); + } + } +} + + +1; + +__END__ + +### Local Variables: +### perl-indent-level: 2 +### tab-width: 2 +### indent-tabs-mode: nil +### End: +# vim:set tabstop=2 expandtab: # + -- cgit v1.2.3