texlive[48532] Master: Localization tcl installer; wrapper scripts

commits+siepo at tug.org commits+siepo at tug.org
Sat Sep 1 22:43:38 CEST 2018


Revision: 48532
          http://tug.org/svn/texlive?view=revision&revision=48532
Author:   siepo
Date:     2018-09-01 22:43:37 +0200 (Sat, 01 Sep 2018)
Log Message:
-----------
Localization tcl installer; wrapper scripts

Modified Paths:
--------------
    trunk/Master/install-tl
    trunk/Master/tlpkg/bin/tl-update-messages
    trunk/Master/tlpkg/installer/install-tl-gui.tcl
    trunk/Master/tlpkg/translations/nl.po

Added Paths:
-----------
    trunk/Master/tlpkg/installer/install-tl-windows.cmd
    trunk/Master/tlpkg/installer/install-tl.sh

Modified: trunk/Master/install-tl
===================================================================
--- trunk/Master/install-tl	2018-09-01 00:23:50 UTC (rev 48531)
+++ trunk/Master/install-tl	2018-09-01 20:43:37 UTC (rev 48532)
@@ -202,6 +202,7 @@
 $::lang = "en";
 
 # use the fancy directory selector for TEXDIR
+# no longer used, although we still accept the parameter
 $::alternative_selector = 0;
 
 # do not debug translations by default
@@ -276,6 +277,7 @@
            "profile=s"                   => \$opt_profile,
            "scheme=s"                    => \$opt_scheme,
            "select-repository"           => \$::opt_select_repository,
+           "tcl",                       # handled by wrapper
            "verify-downloads!"           => \$opt_verify_downloads,
            "version"                     => \$opt_version,
            "warn-checksums!"             => \$opt_warn_checksums,
@@ -639,7 +641,7 @@
     foreach my $t (@::WARNLINES) { print STDERR $t; }
   }
   if ($::env_warns) { tlwarn($::env_warns); }
-  unless ($ENV{"TEXLIVE_INSTALL_NO_WELCOME"}) {
+  unless ($ENV{"TEXLIVE_INSTALL_NO_WELCOME"} or $opt_gui eq 'extl') {
     info(join("\n", @::welcome_arr));
   }
   do_cleanup(); # sets $::LOGFILENAME if not already defined
@@ -651,6 +653,8 @@
     print STDERR
       "Cannot create logfile $vars{'TEXDIR'}/install-tl.log: $!\n";
   }
+  printf STDOUT "Installed on platform %s at %s\n",
+      $vars{'this_platform'}, $vars{'TEXDIR'} if ($opt_gui eq 'extl');
 } else {
   require("installer/tracked-install.pl");
   $status = installer_tracker();
@@ -934,7 +938,7 @@
   # log, profile, temp files:
   # do_cleanup();
 
-  create_welcome();
+  # create_welcome(); already invoked in main program
   if (@::WARNLINES) {
     unshift @::WARNLINES, ("\nSummary of warnings:\n");
   }

Modified: trunk/Master/tlpkg/bin/tl-update-messages
===================================================================
--- trunk/Master/tlpkg/bin/tl-update-messages	2018-09-01 00:23:50 UTC (rev 48531)
+++ trunk/Master/tlpkg/bin/tl-update-messages	2018-09-01 20:43:37 UTC (rev 48532)
@@ -5,6 +5,17 @@
 # update the master messages.pot catalog and merge the result into the
 # respective .po files.
 
+# notes on transition to tcl/tk frontend
+
+# Until the 2019 pretest stage we use a combined message catalog.
+
+
+# Afterwards, we drop the perl input files and use tcl- rather than
+# perl syntax for the temporary file with short descriptions.
+
+# For tcl, all .po files are converted to tcl-compatible .msg
+# files, using the msgfmt utility.
+
 mydir=`cd \`dirname $0\` && /bin/pwd`
 Master=`cd $mydir/../.. && /bin/pwd`
 transdir=$Master/tlpkg/translations
@@ -14,18 +25,20 @@
 cp $transdir/messages.pot $transdir/messages.prev
 sed -n 's/^shortdesc \(.*\)/__("\1");/p' \
     tlpkg/tlpsrc/scheme-*.tlpsrc tlpkg/tlpsrc/collection-*.tlpsrc >$tmpfile
+cat install-tl >>$tmpfile
+# rely on file extensions for source language identification
 xgettext -o tlpkg/translations/messages.pot	\
-        -L Perl   				\
 	--copyright-holder="TeX Live Team"	\
 	--msgid-bugs-address=tex-live at tug.org	\
 	--package-version=2010			\
 	--package-name="TeX Live"		\
         -k__ -k\$__ -k%__ -k__x -k__n:1,2 -k__nx:1,2 -k__xn:1,2 -kN__ -k  \
-       install-tl \
        tlpkg/installer/tracked-install.pl \
        tlpkg/installer/install-menu-wizard.pl \
        tlpkg/installer/install-menu-perltk.pl \
        texmf-dist/scripts/texlive/tlmgrgui.pl \
+       tlpkg/installer/install-tl-gui.tcl \
+       texmf-dist/scripts/tlshell/tlshell.tcl \
        $tmpfile
 rm $tmpfile
 
@@ -47,6 +60,7 @@
 for i in *.po ; do
   printf "$i "
   msgmerge --backup=none --no-fuzzy-matching --update $i messages.pot
+  msgfmt --tcl -d . -l ${i%.po} $i
 done
 
 exit $?

Modified: trunk/Master/tlpkg/installer/install-tl-gui.tcl
===================================================================
--- trunk/Master/tlpkg/installer/install-tl-gui.tcl	2018-09-01 00:23:50 UTC (rev 48531)
+++ trunk/Master/tlpkg/installer/install-tl-gui.tcl	2018-09-01 20:43:37 UTC (rev 48532)
@@ -55,8 +55,8 @@
 #font configure it_font -slant italic
 
 # string representation of booleans
-proc yesno {b} {
-  return [expr {$b ? "Yes" : "No"}]
+proc yes_no {b} {
+  return [expr {$b ? [__"Yes"] : [__ "No"]}]
 }
 
 # default foreground color and disabled foreground color
@@ -91,10 +91,43 @@
 set ::instroot [file dirname [file dirname [file dirname $::instroot]]]
 
 # localization support
+# tcl 8.5 observes LC_ALL on linux, LANG on Mac OS.
+# so let the shell wrapper handle a language option.
+# for 8.5, locale setting from within tcl may not work.
+
+# exception: windows, for which there is a bundled 8.6.
+# consult registry for default locale if LANG is not set.
+# The wrapper already does this, but here we do it again
+# in case company policy blocked reg.exe.
+
+if {$::tcl_platform(platform) eq "windows"} {
+  if {! [info exists ::env(LANG)] || $::env(LANG) eq ""} {
+    if {! [catch {package require registry}]} {
+      set regpath [join {HKEY_LOCAL_MACHINE system currentcontrolset
+        control nls language} "\\"]
+      if {! [catch {registry get $regpath "Installlanguage"} lcode]} {
+        set regpath [join {HKEY_CLASSES_ROOT mime database rfc1766} "\\"]
+        if {! [catch {registry get $regpath $lcode} lng]} {
+          set l [string first ";" $lng]
+          if {$l > 0} {
+            incr l -1
+            set lng [string range $lng 0 $l]
+          }
+          set ::env(LANG) $lng
+          # tk_messageBox -message "Language $lng in registry found"
+        }
+      }
+    }
+  }
+}
+
+# inside tcl, just load the message catalogs (all languages)
 package require msgcat
 namespace import msgcat::mc
 ::msgcat::mcload [file join $::instroot "tlpkg" "translations"]
 
+proc __ {s args} {return [::msgcat::mc $s {*}$args]}
+
 set ::perlbin "perl"
 if {$::tcl_platform(platform) eq "windows"} {
   set ::perlbin "${::instroot}/tlpkg/tlperl/bin/wperl.exe"
@@ -138,7 +171,7 @@
 }
 
 # dummy translation function
-#proc mc {fmt args} {return [format $fmt {*}$args]}
+#proc _ {fmt args} {return [format $fmt {*}$args]}
 
 # what exit procs do we need?
 # - plain error exit with messagebox and stacktrace
@@ -148,7 +181,7 @@
 # is closing the pipe $::inst guaranteed to kill perl? It should be
 
 proc err_exit {{mess ""}} {
-  if {$mess eq ""} {set mess "Error"}
+  if {$mess eq ""} {set mess [__ "Error"]}
   append mess "\n" [get_stacktrace]
   tk_messageBox -icon error -message $mess
   # kill perl process, just in case
@@ -162,11 +195,59 @@
   exit
 } ; # err_exit
 
+proc maybe_print_welcome {} {
+  # if the last non-empty line was "All done", then installation is completed.
+  # otherwise, it was help output or an interrupted installation.
+  # we allow for spurious empty lines at the end of the backend output.
+
+  set all_done 0
+  for {set i [.log.tx count -lines 1.0 end]} {$i > 0} {incr i -1} {
+    set l  [.log.tx get ${i}.0 ${i}.end]
+    if {$l ne ""} {
+      puts $l
+      if {[string range $l 0 11] eq "Installed on"} {
+        set all_done 1
+      }
+      break
+    }
+  }
+  if {!$all_done} return
+  # need TEXDIR and this_platform in case of profile install
+  if {! [info exists ::vars(this_platform)] || \
+          ! [info exists ::vars(TEXDIR)]} {
+    if [regexp {^Installed on platform (.*) at (.*)$} $l m p r] {
+      set ::vars(this_platform) $p
+      set ::vars(TEXDIR) $r
+    } else {
+      set ::vars(this_platform) "PLATFORM"
+      set ::vars(TEXDIR) "ROOT"
+    }
+  }
+
+  .log.tx configure -state normal
+  .log.tx tag configure center -justify center
+  .log.tx delete ${i}.0 end
+  .log.tx insert end "\n\n"
+  .log.tx insert end [__ "Welcome to TeX Live!"] center
+  .log.tx insert end "\n\n"
+  # tags appear to interfere with --/::msgcat::mc !?!
+  set s  [__ "See %s/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." $::vars(TEXDIR)]
+  .log.tx insert end $s center
+  if {$::tcl_platform(platform) ne "windows"} {
+    .log.tx insert end "\n\n"
+    set s [__ "Add %s/texmf-dist/doc/man to MANPATH.\nAdd %s/texmf-dist/doc/info to INFOPATH.\nMost importantly, add %s/bin/%s\nto your PATH for current and future sessions."  $::vars(TEXDIR) $::vars(TEXDIR) $::vars(TEXDIR) $::vars(this_platform)]
+    .log.tx insert end $s center
+  }
+  .log.tx insert end "\n"
+  .log.tx yview moveto 1
+  if {$::tcl_platform(os) ne "Darwin"} {.log.tx configure -state disabled}
+}
+
 # regular read_line
 proc read_line {} {
   if [catch {chan gets $::inst l} len] {
     # catch [chan close $::inst]
-    err_exit "Error while reading from Perl backend"
+    err_exit [__ "Error while reading from Perl backend"]
   } elseif {$len < 0} {
     # catch [chan close $::inst]
     return [list -1 ""]
@@ -178,7 +259,7 @@
 proc read_line_no_eof {} {
   set ll [read_line]
   if {[lindex $ll 0] < 0} {
-    log_exit "Unexpected closed backend"
+    log_exit [__ "Unexpected closed backend"]
   }
   set l [lindex $ll 1]
   # TODO: test under debug mode
@@ -193,9 +274,9 @@
     catch {chan close $::inst}
     # note. the right way to terminate is terminating the GUI shell.
     # This closes stdin of the child
-    # puts stderr "read_line_cb: pipe no longer readable"
     .close state !disabled
     if [winfo exists .abort] {.abort state disabled}
+    maybe_print_welcome
   } elseif {$len >= 0} {
     # regular output
     .log.tx configure -state normal
@@ -267,6 +348,7 @@
 proc end_dlg {ans wnd {p "."}} {
   set ::dialog_ans $ans
   raise $p
+  wm withdraw $wnd
   destroy $wnd
 } ; # end_dlg
 
@@ -287,9 +369,9 @@
   # wallpaper
   pack [ttk::frame .bg -padding 3] -fill both -expand 1
 
-  ppack [ttk::label .text -text "TeX Live Installer" \
+  ppack [ttk::label .text -text [__ "TeX Live Installer"] \
              -font bigfont] -in .bg
-  ppack [ttk::label .loading -text "Loading..."] -in .bg
+  ppack [ttk::label .loading -text [__ "Loading..."]] -in .bg
 
   wm state . normal
   wm attributes . -topmost
@@ -322,10 +404,10 @@
   .log.tx yview moveto 1
 
   pack [ttk::frame .bottom] -in .bg -side bottom -fill x
-  ttk::button .close -text "close" -command exit
+  ttk::button .close -text [__ "Close"] -command exit
   ppack .close -in .bottom -side right; # -anchor e
   if $do_abort {
-    ttk::button .abort -text "abort" \
+    ttk::button .abort -text [__ "Cancel"] \
         -command {catch {chan close $::inst}; exit}
     ppack .abort -in .bottom -side right
   }
@@ -406,7 +488,7 @@
   proc choose_dir {initdir {parent .}} {
 
     create_dlg .browser $parent
-    wm title .browser "Browse..."
+    wm title .browser [__ "Browse..."]
 
     # wallpaper
     pack [ttk::frame .browser.bg -padding 3] -fill both -expand 1
@@ -439,9 +521,9 @@
 
     # ok and cancel buttons
     pack [ttk::frame .browser.fr1] -in .browser.bg -fill x -expand 1
-    ppack [ttk::button .browser.ok -text "Ok"] \
+    ppack [ttk::button .browser.ok -text [__ "Ok"]] \
         -in .browser.fr1 -side right
-    ppack [ttk::button .browser.cancel -text "Cancel"] \
+    ppack [ttk::button .browser.cancel -text [__ "Cancel"]] \
         -in .browser.fr1 -side right
     .browser.ok configure -command {
       set ::dialog_ans [.browser.tree focus]
@@ -500,7 +582,7 @@
     set retval [choose_dir $retval [winfo parent $w]]
   } else {
     set retval [tk_chooseDirectory \
-                    -initialdir $retval -title [mc "select or type"]]
+                    -initialdir $retval -title [__ "Select or type"]]
   }
   if {$retval eq ""} {
     return 0
@@ -532,7 +614,7 @@
   chan flush $::inst
   if {[read_line_no_eof] eq "0"} {
     .tltd.path_l configure -text \
-        [mc "Cannot be created or cannot be written to"] \
+        [__ "Cannot be created or cannot be written to"] \
         -foreground red
     .tltd.ok_b state disabled
   } else {
@@ -544,7 +626,7 @@
 
 proc edit_name {} {
   create_dlg .tled .tltd
-  wm title .tled [mc "Directory name..."]
+  wm title .tled [__ "Directory name..."]
   if $::plain_unix {wm attributes .tled -type dialog}
 
   # wallpaper
@@ -551,7 +633,7 @@
   pack [ttk::frame .tled.bg -padding 3] -fill both -expand 1
 
   # widgets
-  ttk::label .tled.l -text [mc "Change name (slashes not allowed)"]
+  ttk::label .tled.l -text [__ "Change name (slashes not allowed)"]
   pack .tled.l -in .tled.bg -padx 5 -pady 5
   ttk::entry .tled.e -width 20 -state normal
   pack .tled.e -in .tled.bg -pady 5
@@ -558,9 +640,9 @@
   .tled.e insert 0 [.tltd.name_l cget -text]
   # now frame with ok and cancel buttons
   pack [ttk::frame .tled.buttons] -in .tled.bg -fill x -expand 1
-  ttk::button .tled.ok_b -text [mc "Ok"] -command {
+  ttk::button .tled.ok_b -text [__ "Ok"] -command {
     if [regexp {[\\/]} [.tled.e get]] {
-      tk_messageBox -type ok -icon error -message [mc "No slashes allowed"]
+      tk_messageBox -type ok -icon error -message [__ "No slashes allowed"]
     } else {
       .tltd.name_l configure -text [.tled.e get]
       update_full_path
@@ -568,7 +650,7 @@
     }
   }
   ppack .tled.ok_b -in .tled.buttons -side right -padx 5 -pady 5
-  ttk::button .tled.q_b -text [mc "Cancel"] -command {destroy .tled}
+  ttk::button .tled.q_b -text [__ "Cancel"] -command {destroy .tled}
   ppack .tled.q_b -in .tled.buttons -side right -padx 5 -pady 5
 
   place_dlg .tled .tltd
@@ -578,8 +660,8 @@
   if {[.tltd.rel_l cget -text] ne ""} {
     set ans \
         [tk_messageBox -message \
-             "TL release component highly recommended!\nAre you sure?" \
-        -title "Warning" \
+             [__ "TL release component highly recommended!\nAre you sure?"] \
+             -title [__ "Warning"] \
         -type yesno \
         -default no]
     if {$ans eq no} {
@@ -621,7 +703,7 @@
   ### widgets ###
 
   create_dlg .tltd .
-  wm title .tltd "Installation root"
+  wm title .tltd [__ "Installation root"]
 
   # wallpaper
   pack [ttk::frame .tltd.bg -padding 3] -expand 1 -fill both
@@ -647,12 +729,12 @@
       -in .tltd.fr1 -row $rw -column 4
   # corresponding buttons
   incr rw
-  pgrid [ttk::button .tltd.prefix_b -text [mc "Change"] \
-             -command {if [dirbrowser2widget .tltd.prefix_l] update_full_path}] \
+  pgrid [ttk::button .tltd.prefix_b -text [__ "Change"] \
+          -command {if [dirbrowser2widget .tltd.prefix_l] update_full_path}] \
       -in .tltd.fr1 -row $rw -column 0
-  pgrid [ttk::button .tltd.name_b -text [mc "Change"] -command edit_name] \
+  pgrid [ttk::button .tltd.name_b -text [__ "Change"] -command edit_name] \
       -in .tltd.fr1 -row $rw -column 2
-  pgrid [ttk::button .tltd.rel_b -text [mc "Toggle year"] \
+  pgrid [ttk::button .tltd.rel_b -text [__ "Toggle year"] \
       -command toggle_rel] \
       -in .tltd.fr1 -row $rw -column 4
 
@@ -660,15 +742,15 @@
   if {$::tcl_platform(platform) eq "windows"} {
     ttk::label .tltd.loc -anchor w
     .tltd.loc configure -text \
-        [mc "Localized directory names will be replaced by their real names"]
+        [__ "Localized directory names will be replaced by their real names"]
     ppack .tltd.loc -in .tltd.bg -fill x -expand 1
   }
 
   # ok/cancel buttons
   pack [ttk::frame .tltd.frbt] -in .tltd.bg -pady [list 10 0] -fill x -expand 1
-  ttk::button .tltd.ok_b -text [mc "Ok"] -command commit_root
+  ttk::button .tltd.ok_b -text [__ "Ok"] -command commit_root
   ppack .tltd.ok_b -in .tltd.frbt -side right
-  ttk::button .tltd.cancel_b -text [mc "Cancel"] \
+  ttk::button .tltd.cancel_b -text [__ "Cancel"] \
              -command {destroy .tltd}
   ppack .tltd.cancel_b -in .tltd.frbt -side right
 
@@ -736,7 +818,8 @@
       set ev "\$HOME"
       set xpl $::env(HOME)
     }
-    ppack [ttk::label .td.tilde -text "'~' equals $ev, e.g. $xpl"] \
+    ppack [ttk::label .td.tilde \
+               -text [__ "'~' equals %s, e.g. %s" $ev $xpl]] \
         -in .td.bg -anchor w
   }
 
@@ -747,11 +830,12 @@
 
   pack [ttk::frame .td.f] -fill x -expand 1
   # below, ensure that $v is evaluated while the interface is built:
+  # the variable won't be available to the button callback
   # quoted string rather than curly braces
-  ttk::button .td.ok -text "Ok" -command \
+  ttk::button .td.ok -text [__ "Ok"] -command \
       "set ::vars($d) [forward_slashify [.td.e get]]; end_dlg 1 .td ."
   ppack .td.ok -in .td.f -side right
-  ttk::button .td.cancel -text "Cancel" -command {end_dlg 0 .td .}
+  ttk::button .td.cancel -text [__ "Cancel"] -command {end_dlg 0 .td .}
   ppack .td.cancel -in .td.f -side right
 
   place_dlg .td .
@@ -762,7 +846,7 @@
 
 proc toggle_port {} {
   set ::vars(instopt_portable) [expr {!$::vars(instopt_portable)}]
-  .dirportvl configure -text [yesno $::vars(instopt_portable)]
+  .dirportvl configure -text [yes_no $::vars(instopt_portable)]
   canonical_local
   if {$::vars(instopt_portable)} {
     set ::vars(TEXMFHOME) $::vars(TEXMFLOCAL)
@@ -861,7 +945,7 @@
 # toggle platform in treeview widget, but not in underlying data
 proc toggle_bin {b} {
   if {$b eq $::vars(this_platform)} {
-    tk_messageBox -message "Cannot deselect own platform"
+    tk_messageBox -message [__ "Cannot deselect own platform"]
     return
   }
   set m [.tlbin.lst set $b "mk"]
@@ -892,7 +976,7 @@
 
 proc select_binaries {} {
   create_dlg .tlbin .
-  wm title .tlbin "Binaries"
+  wm title .tlbin [__ "Binaries"]
 
   # wallpaper
   pack [ttk::frame .tlbin.bg -padding 3] -expand 1 -fill both
@@ -899,7 +983,7 @@
 
   set max_width 0
   foreach b [array names ::bin_descs] {
-    set bl [font measure TkTextFont $::bin_descs($b)]
+    set bl [font measure TkTextFont [__ $::bin_descs($b)]]
     if {$bl > $max_width} {set max_width $bl}
   }
   incr max_width 10
@@ -916,7 +1000,7 @@
   foreach b [array names ::bin_descs] {
     set bb "binary_$b"
     .tlbin.lst insert {}  end -id $b -values \
-        [list [mark_sym $::vars($bb)] $::bin_descs($b)]
+        [list [mark_sym $::vars($bb)] [__ $::bin_descs($b)]]
   }
   ppack .tlbin.lst -in .tlbin.binsf -side left -expand 1 -fill both
   ppack .tlbin.binsc -in .tlbin.binsf -side right -expand 1 -fill y
@@ -927,10 +1011,10 @@
 
   # ok, cancel buttons
   pack [ttk::frame .tlbin.buts] -in .tlbin.bg -expand 1 -fill x
-  ttk::button .tlbin.ok -text "Ok" -command \
+  ttk::button .tlbin.ok -text [__ "Ok"] -command \
       {save_bin_selections; update_vars; end_dlg 1 .tlbin .}
   ppack .tlbin.ok -in .tlbin.buts -side right
-  ttk::button .tlbin.cancel -text "Cancel" -command {end_dlg 0 .tlbin .}
+  ttk::button .tlbin.cancel -text [__ "Cancel"] -command {end_dlg 0 .tlbin .}
   ppack .tlbin.cancel -in .tlbin.buts -side right
 
   place_dlg .tlbin .
@@ -944,7 +1028,7 @@
 
 proc select_scheme {} {
   create_dlg .tlschm .
-  wm title .tlschm "Schemes"
+  wm title .tlschm [__ "Schemes"]
 
   # wallpaper
   pack [ttk::frame .tlschm.bg -padding 3] -fill both -expand 1
@@ -960,12 +1044,12 @@
   .tlschm.lst column "desc" -width $max_width -stretch 1
   ppack .tlschm.lst -in .tlschm.bg -fill x -expand 1
   foreach s $::schemes_order {
-    .tlschm.lst insert {} end -id $s -values [list $::scheme_descs($s)]
+    .tlschm.lst insert {} end -id $s -values [list [__ $::scheme_descs($s)]]
   }
   # we already made sure that $::vars(selected_scheme) has a valid value
   .tlschm.lst selection set [list $::vars(selected_scheme)]
   pack [ttk::frame .tlschm.buts] -in .tlschm.bg -expand 1 -fill x
-  ttk::button .tlschm.ok -text "Ok" -command {
+  ttk::button .tlschm.ok -text [__ "Ok"] -command {
     # tree selection is a list:
     set ::vars(selected_scheme) [lindex [.tlschm.lst selection] 0]
     foreach v [array names ::vars] {
@@ -982,7 +1066,7 @@
     end_dlg 1 .tlschm .
   }
   ppack .tlschm.ok -in .tlschm.buts -side right
-  ttk::button .tlschm.cancel -text "Cancel" -command {end_dlg 0 .tlschm .}
+  ttk::button .tlschm.cancel -text [__ "Cancel"] -command {end_dlg 0 .tlschm .}
   ppack .tlschm.cancel -in .tlschm.buts -side right
 
   place_dlg .tlschm .
@@ -1029,7 +1113,7 @@
   # buttons: select all, select none, ok, cancel
   # should some collections be excluded? Check install-menu-* code.
   create_dlg .tlcoll .
-  wm title .tlcoll "Collections"
+  wm title .tlcoll [__ "Collections"]
 
   # wallpaper
   pack [ttk::frame .tlcoll.bg -padding 3]
@@ -1052,9 +1136,9 @@
         -height 20 -selectmode extended -yscrollcommand "${wgt}sc set"
     $wgt heading "mk" -text ""
     if {$t eq "lang"} {
-      $wgt heading "desc" -text "Languages"
+      $wgt heading "desc" -text [__ "Languages"]
     } else {
-      $wgt heading "desc" -text "Other collections"
+      $wgt heading "desc" -text [__ "Other collections"]
     }
 
     ttk::scrollbar ${wgt}sc -orient vertical -command "$wgt yview"
@@ -1075,13 +1159,13 @@
       set wgt ".tlcoll.other"
     }
     $wgt insert {} end -id $c -values \
-        [list [mark_sym $::vars($c)] $::coll_descs($c)]
+        [list [mark_sym $::vars($c)] [__ $::coll_descs($c)]]
   }
 
   # select none, select all, ok and cancel buttons
   pack [ttk::frame .tlcoll.butf] -fill x
   ttk::button .tlcoll.all \
-      -text "Select all" \
+      -text [__ "Select all"] \
       -command \
       {foreach wgt {.tlcoll.other .tlcoll.lang} {
         foreach c [$wgt children {}] {$wgt set $c "mk" [mark_sym 1]}
@@ -1089,7 +1173,7 @@
       }
   ppack .tlcoll.all -in .tlcoll.butf -side left
   ttk::button .tlcoll.none \
-      -text "Select none" \
+      -text [__ "Select none"] \
       -command \
       {foreach wgt {.tlcoll.other .tlcoll.lang} {
         foreach c [$wgt children {}] {$wgt set $c "mk" [mark_sym 0]}
@@ -1096,10 +1180,10 @@
         }
       }
   ppack .tlcoll.none -in .tlcoll.butf -side left
-  ttk::button .tlcoll.ok -text "Ok" -command \
+  ttk::button .tlcoll.ok -text [__ "Ok"] -command \
       {save_coll_selections; end_dlg 1 .tlcoll .}
   ppack .tlcoll.ok -in .tlcoll.butf -side right
-  ttk::button .tlcoll.cancel -text "Cancel" -command {end_dlg 0 .tlcoll .}
+  ttk::button .tlcoll.cancel -text [__ "Cancel"] -command {end_dlg 0 .tlcoll .}
   ppack .tlcoll.cancel -in .tlcoll.butf -side right
 
   place_dlg .tlcoll .
@@ -1179,7 +1263,7 @@
       .edsyms.warn configure -text ""
     } else {
       .edsyms.warn configure -text \
-          "Warning. Not all configured directories are writable!"
+          [__ "Warning. Not all configured directories are writable!"]
     }
   }
 
@@ -1199,7 +1283,7 @@
   proc edit_symlinks {} {
 
     create_dlg .edsyms .
-    wm title .edsyms "Symlinks"
+    wm title .edsyms [__ "Symlinks"]
 
     pack [ttk::frame .edsyms.bg -padding 3] -expand 1 -fill both
     set rw -1
@@ -1222,13 +1306,13 @@
       }; # else leave empty
       bind .edsyms.${v}e <KeyRelease> {+check_sym_entries}
       # browse button
-      pgrid [ttk::button .edsyms.${v}br -text "browse..." -command \
+      pgrid [ttk::button .edsyms.${v}br -text [__ "browse..."] -command \
                  "dirbrowser2widget .edsyms.${v}e; check_sym_entries"] \
          -in .edsyms.fr0 -row $rw -column 3
     }
-    .edsyms.binl configure -text "Binaries"
-    .edsyms.manl configure -text "Man pages"
-    .edsyms.infol configure -text "Info pages"
+    .edsyms.binl configure -text [__ "Binaries"]
+    .edsyms.manl configure -text [__ "Man pages"]
+    .edsyms.infol configure -text [__ "Info pages"]
 
     # warning about read-only target directories
     incr rw
@@ -1237,9 +1321,9 @@
 
     # ok, cancel
     pack [ttk::frame .edsyms.fr1] -expand 1 -fill both
-    ppack [ttk::button .edsyms.ok -text "ok" -command {
+    ppack [ttk::button .edsyms.ok -text [__ "Ok"] -command {
       commit_sym_entries; end_dlg 1 .edsyms .}] -in .edsyms.fr1 -side right
-    ppack [ttk::button .edsyms.cancel -text "Cancel" -command {
+    ppack [ttk::button .edsyms.cancel -text [__ "Cancel"] -command {
       end_dlg 0 .edsyms .}] -in .edsyms.fr1 -side right
 
     check_sym_entries
@@ -1271,7 +1355,8 @@
   pack [ttk::frame .bg -padding 3] -fill both -expand 1
 
   # title
-  ttk::label .title -text "TeX Live $::release_year Installer" -font titlefont
+  ttk::label .title -text [__ "TeX Live %s Installer" $::release_year] \
+      -font titlefont
   pack .title -pady 10 -in .bg
 
   pack [ttk::separator .seph0 -orient horizontal] \
@@ -1280,13 +1365,13 @@
   # frame at bottom with install/quit buttons
   pack [ttk::frame .final] \
       -in .bg -side bottom -pady [list 5 2] -fill x -expand 1
-  ppack [ttk::button .install -text "Install" -command {
+  ppack [ttk::button .install -text [__ "Install"] -command {
     set ::menu_ans "startinst"}] -in .final -side right
-  ppack [ttk::button .quit -text [mc "Quit"] -command {
+  ppack [ttk::button .quit -text [__ "Quit"] -command {
     set ::out_log {}
     set ::menu_ans "no_inst"}] -in .final -side right
   if {!$::advanced} {
-    ppack [ttk::button .adv -text "Advanced" -command {
+    ppack [ttk::button .adv -text [__ "Advanced"] -command {
       set ::menu_ans "advanced"}] -in .final -side left
   }
   pack [ttk::separator .seph1 -orient horizontal] \
@@ -1310,48 +1395,52 @@
 
   if $::advanced {
     incr rw
-      pgrid [ttk::label .dirftitle -text "Root of installation" -font hfont] \
+    pgrid [ttk::label .dirftitle -text [__ "Installation root"] \
+               -font hfont] \
         -in .dirf -row $rw -column 0 -columnspan 3 -sticky w
-      .dirftitle configure -text "Directories"
+    .dirftitle configure -text [__ "Directories"]
   }
 
   incr rw
   pgrid [ttk::label .tdirll] -in .dirf -row $rw -column 0 -sticky nw
+  set s [__ "Installation root"]
   if $::advanced {
-    .tdirll configure -text "TEXDIR:\nInstallation root"
+    .tdirll configure -text "TEXDIR:\n$s"
   } else {
-    .tdirll configure -text "Installation root"
+    .tdirll configure -text $s
   }
   pgrid [ttk::label .tdirvl -textvariable ::vars(TEXDIR)] \
       -in .dirf -row $rw -column 1 -sticky nw
-  pgrid [ttk::button .tdirb -text "Change" -command texdir_setup] \
+  pgrid [ttk::button .tdirb -text [__ "Change"] -command texdir_setup] \
     -in .dirf -row $rw -column 2 -sticky new
 
   if $::advanced {
     incr rw
-    pgrid [ttk::label .tlocll -text "TEXMFLOCAL:\nLocal additions"] \
+    set s [__ "Local additions"]
+    pgrid [ttk::label .tlocll -text "TEXMFLOCAL:\n$s"] \
         -in .dirf -row $rw -column 0 -sticky nw
     pgrid [ttk::label .tlocvl -textvariable ::vars(TEXMFLOCAL)] \
         -in .dirf -row $rw -column 1 -sticky nw
-    ttk::button .tlocb -text "Change" -command {edit_dir "TEXMFLOCAL"}
+    ttk::button .tlocb -text [__ "Change"] -command {edit_dir "TEXMFLOCAL"}
     pgrid .tlocb -in .dirf -row $rw -column 2 -sticky new
 
     incr rw
-    pgrid [ttk::label .thomell -text "TEXMFHOME:\nPer-user additions"] \
+    set s [__ "Per-user additions"]
+    pgrid [ttk::label .thomell -text "TEXMFHOME:\n$s"] \
         -in .dirf -row $rw -column 0 -sticky nw
     pgrid [ttk::label .thomevl -textvariable ::vars(TEXMFHOME)] \
         -in .dirf -row $rw -column 1 -sticky nw
-    ttk::button .thomeb -text "Change" -command {edit_dir "TEXMFHOME"}
+    ttk::button .thomeb -text [__ "Change"] -command {edit_dir "TEXMFHOME"}
     pgrid .thomeb -in .dirf -row $rw -column 2 -sticky ne
 
     incr rw
     pgrid [ttk::label .dirportll \
-               -text "Portable setup:\nMay reset TEXMFLOCAL\nand TEXMFHOME"] \
+        -text [__ "Portable setup:\nMay reset TEXMFLOCAL\nand TEXMFHOME"]] \
         -in .dirf -row $rw -column 0 -sticky nw
     pgrid [ttk::label .dirportvl] -in .dirf -row $rw -column 1 -sticky nw
-    pgrid [ttk::button .tportb -text "Toggle" -command toggle_port] \
+    pgrid [ttk::button .tportb -text [__ "Toggle"] -command toggle_port] \
       -in .dirf -row $rw -column 2 -sticky ne
-    .dirportvl configure -text [yesno $::vars(instopt_portable)]
+    .dirportvl configure -text [yes_no $::vars(instopt_portable)]
 
     # platforms section
     if {$::tcl_platform(platform) ne "windows"} {
@@ -1360,7 +1449,7 @@
       set rw -1
 
       incr rw
-      pgrid [ttk::label .binftitle -text "Platforms" -font hfont] \
+      pgrid [ttk::label .binftitle -text [__ "Platforms"] -font hfont] \
         -in .platf -row $rw -column 0 -columnspan 3 -sticky w
 
       # current platform
@@ -1369,14 +1458,14 @@
           -text "Current platform:"
       pgrid .binl0 -in .platf -row $rw -column 0 -sticky w
       ttk::label .binl1 \
-          -text "$::bin_descs($::vars(this_platform))"
+          -text [__ "$::bin_descs($::vars(this_platform))"]
       pgrid .binl1 -in .platf -row $rw -column 1 -sticky w
       # additional platforms
       incr rw
-      pgrid [ttk::label .binll -text "N. of additional platform(s):"] \
+      pgrid [ttk::label .binll -text [__ "N. of additional platform(s):"]] \
           -in .platf -row $rw -column 0 -sticky w
       pgrid [ttk::label .binlm] -in .platf -row $rw -column 1 -sticky w
-      pgrid [ttk::button .binb -text "Change" -command select_binaries] \
+      pgrid [ttk::button .binb -text [__ "Change"] -command select_binaries] \
           -in .platf -row $rw -column 2 -sticky e
     }
 
@@ -1386,31 +1475,33 @@
     set rw -1
 
     incr rw
-    pgrid [ttk::label .selftitle -text "Selections" -font hfont] \
+    pgrid [ttk::label .selftitle -text [__ "Selections"] -font hfont] \
         -in .selsf -row $rw -column 0 -columnspan 3 -sticky w
 
     # schemes
     incr rw
-    pgrid [ttk::label .schmll -text "Scheme:"] \
+    pgrid [ttk::label .schmll -text [__ "Scheme:"]] \
         -in .selsf -row $rw -column 0 -sticky w
     pgrid [ttk::label .schml -textvariable ::vars(selected_scheme)] \
         -in .selsf -row $rw -column 1 -sticky w
-    pgrid [ttk::button .schmb -text "Change" -command select_scheme] \
+    pgrid [ttk::button .schmb -text [__ "Change"] -command select_scheme] \
         -in .selsf -row $rw -column 2 -sticky e
 
     # collections
     incr rw
-    pgrid [ttk::label .lcoll -text "N. of collections:"] \
+    pgrid [ttk::label .lcoll -text [__ "N. of collections:"]] \
         -in .selsf -row $rw -column 0 -sticky w
     pgrid [ttk::label .lcolv] -in .selsf -row $rw -column 1 -sticky w
-    pgrid [ttk::button .collb -text "Customize" -command select_collections] \
+    pgrid [ttk::button .collb -text [__ "Customize"] \
+               -command select_collections] \
         -in .selsf -row $rw -column 2 -sticky e
   }
 
   # total size
+  # curf: current frame
   set curf [expr {$::advanced ? ".selsf" : ".dirf"}]
   incr rw
-  ttk::label .lsize -text "Disk space required (in MB):"
+  ttk::label .lsize -text [__ "Disk space required (in MB):"]
   ttk::label .size_req -textvariable ::vars(total_size)
   pgrid .lsize -in $curf -row $rw -column 0 -sticky e
   pgrid .size_req -in $curf -row $rw -column 1 -sticky w
@@ -1429,7 +1520,7 @@
     set rw -1
 
     incr rw
-    pgrid [ttk::label .optitle -text "Options" -font hfont] \
+    pgrid [ttk::label .optitle -text [__ "Options"] -font hfont] \
         -in $curf -row $rw -column 0 -columnspan 3 -sticky w
   } else {
     set curf .dirf
@@ -1438,9 +1529,9 @@
   # instopt_letter
   set ::lpapers [list "A4" "letter"]
   incr rw
-  pgrid [ttk::label .paperl -text "Default paper size"] \
+  pgrid [ttk::label .paperl -text [__ "Default paper size"]] \
       -in $curf -row $rw -column 0 -sticky w
-  pgrid [ttk::combobox .paperb -values $::lpapers -width 8] \
+  pgrid [ttk::combobox .paperb -values $::lpapers -state readonly -width 8] \
       -in $curf -row $rw -column 1 -columnspan 2 -sticky e
   var2combo "instopt_letter" .paperb
   bind .paperb <<ComboboxSelected>> {+combo2var .paperb "instopt_letter"}
@@ -1448,7 +1539,8 @@
   if $::advanced {
     # instopt_write18_restricted
     incr rw
-    pgrid [ttk::label .write18l -text "Allow restricted programs via write18"] \
+    pgrid [ttk::label .write18l -text \
+        [__ "Allow execution of restricted list of programs via \\write18"]] \
         -in $curf -row $rw -column 0 -columnspan 2 -sticky w
     ttk::checkbutton .write18b -variable ::vars(instopt_write18_restricted)
     pgrid .write18b -in $curf -row $rw -column 2 -sticky e
@@ -1455,7 +1547,7 @@
 
     # tlpdbopt_create_formats
     incr rw
-    pgrid [ttk::label .formatsl -text "Create all format files"] \
+    pgrid [ttk::label .formatsl -text [__ "Create all format files"]] \
         -in $curf -row $rw -column 0 -columnspan 2 -sticky w
     ttk::checkbutton .formatsb -variable ::vars(tlpdbopt_create_formats)
     pgrid .formatsb -in $curf -row $rw -column 2 -sticky e
@@ -1463,7 +1555,7 @@
     # tlpdbopt_install_docfiles
     if $::vars(doc_splitting_supported) {
       incr rw
-      pgrid [ttk::label .docl -text "Install font/macro doc tree"] \
+      pgrid [ttk::label .docl -text [__ "Install font/macro doc tree"]] \
           -in $curf -row $rw -column 0 -columnspan 2 -sticky w
       ttk::checkbutton .docb -variable ::vars(tlpdbopt_install_docfiles) \
           -command {update_vars; show_stats}
@@ -1473,7 +1565,7 @@
     # tlpdbopt_install_srcfiles
     if $::vars(src_splitting_supported) {
       incr rw
-      pgrid [ttk::label .srcl -text "Install font/macro source tree"] \
+      pgrid [ttk::label .srcl -text [__ "Install font/macro source tree"]] \
           -in $curf -row $rw -column 0 -columnspan 2 -sticky w
       ttk::checkbutton .srcb -variable ::vars(tlpdbopt_install_srcfiles) \
           -command {update_vars; show_stats}
@@ -1486,17 +1578,19 @@
     if $::advanced {
       # instopt_adjustpath
       incr rw
-      pgrid [ttk::label .pathl -text "Adjust searchpath"] \
+      pgrid [ttk::label .pathl -text [__ "Adjust searchpath"]] \
           -in $curf -row $rw -column 0 -columnspan 2 -sticky w
       ttk::checkbutton .pathb -variable ::vars(instopt_adjustpath)
       pgrid .pathb -in $curf -row $rw -column 2 -sticky e
 
       # tlpdbopt_desktop_integration
-      set ::desk_int [list "No shortcuts" "TeX Live menu" "Launcher entry"]
+      set ::desk_int \
+          [list [__ "No shortcuts"] [__ "TeX Live menu"] [__ "Launcher entry"]]
       incr rw
-      pgrid [ttk::label .dkintl -text "Desktop integration"] \
+      pgrid [ttk::label .dkintl -text [__ "Desktop integration"]] \
           -in $curf -row $rw -column 0 -sticky w
-      pgrid [ttk::combobox .dkintb -values $::desk_int -width 20] \
+      pgrid [ttk::combobox .dkintb -values $::desk_int -state readonly \
+                 -width 20] \
           -in $curf -row $rw -column 1 -columnspan 2 -sticky e
       var2combo "tlpdbopt_desktop_integration" .dkintb
       bind .dkintb <<ComboboxSelected>> \
@@ -1503,11 +1597,11 @@
           {+combo2var .dkintb "tlpdbopt_desktop_integration"}
 
       # tlpdbopt_file_assocs
-      set ::assoc [list "None" "Only new" "All"]
+      set ::assoc [list [__ "None"] [__ "Only new"] [__ "All"]]
       incr rw
-      pgrid [ttk::label .assocl -text "File associations"] \
+      pgrid [ttk::label .assocl -text [__ "File associations"]] \
           -in $curf -row $rw -column 0 -sticky w
-      pgrid [ttk::combobox .assocb -values $::assoc -width 12] \
+      pgrid [ttk::combobox .assocb -values $::assoc -state readonly -width 12] \
           -in $curf -row $rw -column 1 -columnspan 2 -sticky e
       var2combo "tlpdbopt_file_assocs" .assocb
       bind .assocb <<ComboboxSelected>> \
@@ -1516,7 +1610,7 @@
 
     # tlpdbopt_w32_multi_user
     incr rw
-    pgrid [ttk::label .adminl -text "Install for all users"] \
+    pgrid [ttk::label .adminl -text [__ "Install for all users"]] \
         -in $curf -row $rw -column 0 -columnspan 2 -sticky w
     ttk::checkbutton .adminb -variable ::vars(tlpdbopt_w32_multi_user)
     pgrid .adminb -in $curf -row $rw -column 2 -sticky e
@@ -1543,13 +1637,14 @@
       # instopt_adjustpath, unix edition: symlinks
       # tlpdbopt_sys_[bin|info|man]
       incr rw
-      pgrid [ttk::label .pathl -text "create symlinks in standard directories"] \
+      pgrid [ttk::label .pathl \
+                 -text [__ "create symlinks in standard directories"]] \
           -in $curf -row $rw -column 0 -columnspan 2 -sticky w
       pgrid [ttk::checkbutton .pathb -variable ::vars(instopt_adjustpath)] \
           -in $curf -row $rw -column 2 -sticky e
       dis_enable_symlink_option; # enable only if standard directories ok
       incr rw
-      pgrid [ttk::button .symspec -text "Specify directories" \
+      pgrid [ttk::button .symspec -text [__ "Specify directories"] \
                  -command edit_symlinks] \
           -in $curf -row $rw -column 1 -columnspan 2 -sticky e
     }
@@ -1563,7 +1658,7 @@
     # final entry: instopt_adjustrepo
     incr rw
     pgrid [ttk::label .ctanl -text \
-               "After install, set CTAN as source for package updates"] \
+               [__ "After install, set CTAN as source for package updates"]] \
         -in $curf -row $rw -column 0 -columnspan 2 -sticky w
     pgrid [ttk::checkbutton .ctanb -variable ::vars(instopt_adjustrepo)] \
       -in $curf -row $rw -column 2 -sticky e
@@ -1689,9 +1784,6 @@
   while 1 {
     set l [read_line_no_eof]
     if [regexp {^([^:]+): (.*)$} $l m k v] {
-      #if [info exists ::bin_descs($k)] {
-      #  puts stderr "Duplicate key $k in binaries section"
-      #}
       set ::bin_descs($k) $v
     } elseif {$l eq "endbinaries"} {
       break
@@ -1734,45 +1826,25 @@
   set ::out_log {}
   show_log 1; # 1: with abort button
   .close state disabled
-  # startinst: does not makes sense for a profile installation
   if $::did_gui {
     chan puts $::inst "startinst"
     write_vars
   }
+  # the backend was already running and needs no further encouragement
 
-  # - non-blocking i/o
+  # switch to non-blocking i/o
   chan configure $::inst -buffering line -blocking 0
   chan event $::inst readable read_line_cb
 }; # run_installer
 
 proc main_prog {} {
-  # handle appropriate language command-line argument
-  # the windows batch wrapper sets LANG based on
-  # registry values unless it was already set
-  if [info exists ::env(LANG)] {catch {::msgcat::mclocale $::env(LANG)}}
-  set inx 0
-  set perl_args [list]
-  while {$inx <= [llength $::argv]} {
-    if [regexp {^--?lang=(.*)$} [lindex $::argv $inx] m l] {
-      ::msgcat::mclocale $l
-    } elseif [regexp {^--?lang$} [lindex $::argv $inx]] {
-      incr inx
-      if {$inx >= [llength $::argv]} {
-        err_exit "lang parameter without value"
-      }
-      ::msgcat::mclocale [lindex $::argv $inx]
-    } else {
-      lappend ::perl_args [lindex $::argv $inx]
-    }
-    incr inx
-  }
 
-  wm title . [mc "TeX Live %s" "Installer"]
+  wm title . [__ "TeX Live Installer"]
   make_splash
 
   # start install-tl-[tcl] via a pipe
   set cmd [list ${::perlbin} "${::instroot}/install-tl" \
-               "-from_ext_gui" {*}$perl_args]
+               "-from_ext_gui" {*}$::argv]
   show_time "opening pipe"
   if [catch {open "|[join $cmd " "] 2>@1" r+} ::inst] {
     # "2>@1" ok under Windows >= XP

Added: trunk/Master/tlpkg/installer/install-tl-windows.cmd
===================================================================
--- trunk/Master/tlpkg/installer/install-tl-windows.cmd	                        (rev 0)
+++ trunk/Master/tlpkg/installer/install-tl-windows.cmd	2018-09-01 20:43:37 UTC (rev 48532)
@@ -0,0 +1,207 @@
+ at echo off
+rem $Id: install-tl.bat 30369 2018-03-11 13:01:27Z siepo $
+rem Wrapper script to set up environment for installer
+rem
+rem Public domain.
+rem Originally written 2009 by Tomasz M. Trzeciak.
+
+rem Localize environment changes
+setlocal enableextensions enabledelayedexpansion
+
+rem check for version later than vista
+for /f "usebackq tokens=2 delims=[]" %%I in (`ver`) do set ver_str=%%I
+set ver_str=%ver_str:* =%
+rem windows 9x, 2000, xp won't work, vista unsupported but may work
+if %ver_str:~,2% == 4. goto tooold
+if %ver_str:~,2% == 5. goto tooold
+if %ver_str:~,3% == 6.0 (
+echo WARNING: Windows 7 is the earliest supported version.
+echo TeX Live 2018 has not been tested on Windows Vista.
+pause
+)
+
+rem version of external perl, if any
+set extperl=0
+for /f "usebackq tokens=2 delims='" %%a in (`perl -V:version 2^>NUL`) do (
+  set extperl=%%a
+)
+
+rem set instroot before %0 gets overwritten during argument processing
+set instroot=%~dp0
+
+rem while this file resides in tlpkg/installer:
+rem alternately remove final backslash and filename part
+rem to arrive at grandparent
+rem retain final backslash
+set instroot=%instroot:~,-1%
+for %%J in (%instroot%) do set instroot=%%~dpJ
+set instroot=%instroot:~,-1%
+for %%J in (%instroot%) do set instroot=%%~dpJ
+
+set notcl=no
+set tcl=yes
+set args=
+goto rebuildargs
+
+rem check for a gui- and lang arguments
+rem handle them here and do not pass them on to perl or tcl.
+rem cmd.exe converts '=' to a space:
+rem '-parameter=value' becomes '-parameter value': two arguments
+
+rem code block for language argument
+:dolang
+shift
+if "%0" == "" goto nomoreargs
+set LANG=%0
+set LC_ALL=
+goto rebuildargs
+
+rem code block for gui argument
+:dogui
+if x%1 == x (
+set tcl=yes
+goto rebuildargs
+)
+if %1 == text (
+set tcl=no
+shift
+goto rebuildargs
+)
+if %1 == wizard (
+set tcl=yes
+shift
+goto rebuildargs
+)
+if %1 == perltk (
+set tcl=yes
+shift
+goto rebuildargs
+)
+if %1 == expert (
+set tcl=yes
+shift
+goto rebuildargs
+)
+if %1 == tcl (
+set tcl=yes
+shift
+goto rebuildargs
+)
+
+rem loop for argument scanning
+:rebuildargs
+shift
+if x%0 == x goto nomoreargs
+set p=%0
+if %p% == --lang goto dolang
+if %p% == -lang goto dolang
+
+if %p% == -print-platform set tcl=no
+if %p% == --print-platform set tcl=no
+if %p% == -version set tcl=no
+if %p% == --version set tcl=no
+if %p% == -no-gui (
+set notcl=yes
+goto rebuildargs
+)
+if %p% == --no-gui (
+set notcl=yes
+goto rebuildargs
+)
+if %p% == -gui goto dogui
+if %p% == --gui goto dogui
+
+rem not a gui- or lang argument: copy to args string
+if "%args%" == "" (
+set args=%p%
+) else (
+set args=%args% %p%
+)
+goto rebuildargs
+:nomoreargs
+
+set p=
+if %notcl% == yes set tcl=no
+
+rem locale detection for tcl
+rem the LANG environment variable should set the tcl default language.
+rem Since reg.exe may be disabled by e.g. company policy,
+rem tcl will yet consult the registry if LANG is not set,
+rem although under some circumstances this may cause a long delay.
+goto endreg
+if %tcl% == no goto endreg
+if not x%LANG% == x goto endreg
+rem reg.exe runnable by user?
+reg /? >nul 2>&1
+goto endreg
+if errorlevel 1 goto endreg
+for /f "skip=1 usebackq tokens=3 delims= " %%a in (`reg query hklm\system\currentcontrolset\control\nls\language /v Installlanguage`) do set lid=%%a
+if errorlevel 1 goto endreg
+for /f "skip=1 usebackq tokens=3 delims=; " %%a in (`reg query hkcr\mime\database\rfc1766 /v %lid%`) do set LANG=%%a
+:endreg
+
+rem Check for tex directories on path and remove them.
+rem Need to remove any double quotes from path
+set path=%path:"=%
+rem Break search path into dir list and rebuild w/o tex dirs.
+set path="%path:;=" "%"
+set newpath=
+for /d %%I in (%path%) do (
+set ii=%%I
+set ii=!ii:"=!
+if not exist !ii!\pdftex.exe (
+if not exist !ii!pdftex.exe (
+set newpath=!newpath!;!ii!
+)
+)
+)
+set ii=
+path %newpath%
+if "%path:~,1%"==";" set path=%path:~1%
+rem Use TL Perl
+path=%instroot%tlpkg\tlperl\bin;%path%
+set PERL5LIB=%instroot%tlpkg\tlperl\lib
+rem for now, assume tcl/tk is on path
+
+rem Clean environment from other Perl variables
+set PERL5OPT=
+set PERLIO=
+set PERLIO_DEBUG=
+set PERLLIB=
+set PERL5DB=
+set PERL5DB_THREADED=
+set PERL5SHELL=
+set PERL_ALLOW_NON_IFS_LSP=
+set PERL_DEBUG_MSTATS=
+set PERL_DESTRUCT_LEVEL=
+set PERL_DL_NONLAZY=
+set PERL_ENCODING=
+set PERL_HASH_SEED=
+set PERL_HASH_SEED_DEBUG=
+set PERL_ROOT=
+set PERL_SIGNALS=
+set PERL_UNICODE=
+set errlev=0
+
+rem Start installer
+if %tcl% == yes (
+rem echo wish "%instroot%tlpkg\installer\install-tl-gui.tcl" -- %args%
+rem pause
+wish "%instroot%tlpkg\installer\install-tl-gui.tcl" -- %args%
+) else (
+rem echo perl "%instroot%install-tl" %args% -no-gui
+rem pause
+perl "%instroot%install-tl" %args% -no-gui
+)
+
+rem The nsis installer will need this:
+if errorlevel 1 set errlev=1
+goto eoff
+
+:tooold
+echo TeX Live does not run on this Windows version.
+echo TeX Live is supported on Windows 7 and later.
+goto eoff
+
+:eoff
+endlocal


Property changes on: trunk/Master/tlpkg/installer/install-tl-windows.cmd
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/tlpkg/installer/install-tl.sh
===================================================================
--- trunk/Master/tlpkg/installer/install-tl.sh	                        (rev 0)
+++ trunk/Master/tlpkg/installer/install-tl.sh	2018-09-01 20:43:37 UTC (rev 48532)
@@ -0,0 +1,112 @@
+#! /bin/sh
+
+# default: tcl gui or not
+if test `uname -s` = Darwin; then
+  tcl=yes
+else
+  tcl=no
+fi
+# are there reasons not to use the tcl gui?
+notcl=no
+
+args=''
+
+unset wait_for_gui
+unset wait_for_lang
+unset gui_set
+
+# We need "$@ syntax because some paramters may contain spaces.
+# In order to make use of this syntax we must pass along ALL parameters.
+for p in "$@"; do
+  # TODO: sanitize $p; abort if necessary
+  case $p in
+    -tcl | --tcl)
+      if test $gui_set; then echo Gui set more than once; exit 1; fi
+      gui_set=1
+      if test $wait_for_lang; then echo Language code expected; exit 1; fi
+      unset wait_for_gui
+      tcl=yes
+      ;;
+    -print-platform | --print-platform | -version | --version)
+      if test $wait_for_lang; then echo Language code expected; exit 1; fi
+      unset wait_for_gui
+      notcl=yes
+      ;;
+    -gui | --gui)
+      if test $gui_set; then echo Gui set more than once; exit 1; fi
+      gui_set=1
+      if test $wait_for_lang; then echo Language code expected; exit 1; fi
+      tcl=yes
+      wait_for_gui=1
+      ;;
+    --gui=* | -gui=*)
+      if test $gui_set; then echo Gui set more than once; exit 1; fi
+      gui_set=1
+      if test $wait_for_lang; then echo Language code expected; exit 1; fi
+      if test $p = -gui=text -o $p = --gui=text; then
+        tcl=no
+      else
+        tcl=yes
+      fi
+      unset wait_for_gui
+      ;;
+    -no-gui | --no-gui)
+      if test $wait_for_lang; then echo Language code expected; exit 1; fi
+      unset wait_for_gui
+      notcl=yes
+      ;;
+    -lang | --lang)
+      if test $wait_for_lang; then echo Language code expected; exit 1; fi
+      unset wait_for_gui
+      wait_for_lang=1
+      ;;
+    -lang=*)
+      if test $wait_for_lang; then echo Language code expected; exit 1; fi
+      unset wait_for_gui
+      LANG=$p
+      LANG=${LANG#-lang=}
+      ;;
+    --lang=*)
+      if test $wait_for_lang; then echo Language code expected; exit 1; fi
+      unset wait_for_gui
+      LANG=$p
+      LANG=${LANG#--lang=}
+      ;;
+    *)
+      if test $wait_for_gui; then
+        if test $p = text; then
+          tcl=no
+        else
+          tcl=yes
+        fi
+        unset wait_for_gui
+      fi
+      if test $wait_for_lang; then
+        LANG=$p
+        unset wait_for_lang
+      fi
+      ;;
+  esac
+done
+if test $notcl = yes; then
+  tcl=no
+fi
+
+export LANG
+LC_MESSAGES=$LANG
+export LC_MESSAGES
+unset LC_ALL
+
+# silence perl locale warnings
+PERL_BADLANG=0
+export PERL_BADLANG
+
+# We can safely pass all original parameters to perl:
+# In install-tl[.pl], from_ext_gui will overrule the gui parameter.
+# The lang parameter will not come into play in either perl or tcl.
+
+if test "$tcl" = "yes"; then
+  exec wish `dirname $0`/install-tl-gui.tcl -- "$@"
+else
+  exec perl `dirname $0`/../../install-tl "$@"
+fi


Property changes on: trunk/Master/tlpkg/installer/install-tl.sh
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Modified: trunk/Master/tlpkg/translations/nl.po
===================================================================
--- trunk/Master/tlpkg/translations/nl.po	2018-09-01 00:23:50 UTC (rev 48531)
+++ trunk/Master/tlpkg/translations/nl.po	2018-09-01 20:43:37 UTC (rev 48532)
@@ -2,8 +2,8 @@
 msgstr ""
 "Project-Id-Version: TeX Live translation\n"
 "Report-Msgid-Bugs-To: tex-live at tug.org\n"
-"POT-Creation-Date: 2018-08-08 02:24+0200\n"
-"PO-Revision-Date: 2018-03-31 14:09+0200\n"
+"POT-Creation-Date: 2018-08-28 18:23+0200\n"
+"PO-Revision-Date: 2018-08-24 12:59+0200\n"
 "Last-Translator: Siep Kroonenberg <siepo at cybercomm.nl>\n"
 "Language-Team: TL Translation Team <tex-live at tug.org>\n"
 "Language: nl\n"
@@ -11,41 +11,8 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Poedit-SourceCharset: UTF-8\n"
-"X-Generator: Poedit 2.0.4\n"
+"X-Generator: Poedit 2.0.6\n"
 
-#: install-tl:2455
-msgid "Welcome to TeX Live!"
-msgstr "Welkom bij TeX Live!"
-
-#: install-tl:2458
-#, perl-format
-msgid ""
-"See %s/index.html for links to documentation.\n"
-"The 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."
-msgstr ""
-"Zie %s/index.html voor links naar documentatie.\n"
-"De TeX Live web site (http://tug.org/texlive/) bevat\n"
-"eventuele updates en correcties.\n"
-"TeX Live is een gezamenlijk projekt van TeX gebruikersgroepen wereldwijd;\n"
-"overweeg ondersteuning door lid te worden van zo'n groep.\n"
-"De lijst van gebruikersgroepen staat op http://tug.org/usergroups.html."
-
-#: install-tl:2463
-#, perl-format
-msgid ""
-"Add %s/texmf-dist/doc/man to MANPATH.\n"
-"Add %s/texmf-dist/doc/info to INFOPATH.\n"
-"Most importantly, add %s/bin/%s\n"
-"to your PATH for current and future sessions."
-msgstr ""
-"Voeg %s/texmf-dist/doc/man toe aan MANPATH.\n"
-"Voeg %s/texmf-dist/doc/info toe aan INFOPATH.\n"
-"En bovenal, voeg %s/bin/%s\n"
-"toe aan PATH voor huidige en toekomstige sessies."
-
 #: tlpkg/installer/tracked-install.pl:27
 msgid "Installation process"
 msgstr "Installatie"
@@ -73,6 +40,15 @@
 #: texmf-dist/scripts/texlive/tlmgrgui.pl:2469
 #: texmf-dist/scripts/texlive/tlmgrgui.pl:2506
 #: texmf-dist/scripts/texlive/tlmgrgui.pl:2587
+#: tlpkg/installer/install-tl-gui.tcl:385
+#: tlpkg/installer/install-tl-gui.tcl:501
+#: tlpkg/installer/install-tl-gui.tcl:628
+#: tlpkg/installer/install-tl-gui.tcl:728
+#: tlpkg/installer/install-tl-gui.tcl:813
+#: tlpkg/installer/install-tl-gui.tcl:992
+#: tlpkg/installer/install-tl-gui.tcl:1044
+#: tlpkg/installer/install-tl-gui.tcl:1161
+#: tlpkg/installer/install-tl-gui.tcl:1301
 msgid "Cancel"
 msgstr "Afbreken"
 
@@ -86,6 +62,7 @@
 
 #: tlpkg/installer/install-menu-wizard.pl:41
 #: tlpkg/installer/install-menu-perltk.pl:445
+#: tlpkg/installer/install-tl-gui.tcl:1507
 msgid "Default paper size"
 msgstr "Standaard papier-formaat"
 
@@ -100,7 +77,7 @@
 #: texmf-dist/scripts/texlive/tlmgrgui.pl:1828
 #: texmf-dist/scripts/texlive/tlmgrgui.pl:1832
 msgid "Change file associations"
-msgstr "Wijzig bestandstypen"
+msgstr "Wijzig bestands-koppelingen"
 
 #: tlpkg/installer/install-menu-wizard.pl:44
 #: tlpkg/installer/install-menu-perltk.pl:511
@@ -128,6 +105,7 @@
 #: tlpkg/installer/install-menu-perltk.pl:630
 #: tlpkg/installer/install-menu-perltk.pl:676
 #: texmf-dist/scripts/texlive/tlmgrgui.pl:544
+#: tlpkg/installer/install-tl-gui.tcl:1345
 msgid "Quit"
 msgstr "Stoppen"
 
@@ -294,6 +272,13 @@
 #: texmf-dist/scripts/texlive/tlmgrgui.pl:2433
 #: texmf-dist/scripts/texlive/tlmgrgui.pl:2438
 #: texmf-dist/scripts/texlive/tlmgrgui.pl:2443
+#: tlpkg/installer/install-tl-gui.tcl:707
+#: tlpkg/installer/install-tl-gui.tcl:710
+#: tlpkg/installer/install-tl-gui.tcl:1389
+#: tlpkg/installer/install-tl-gui.tcl:1399
+#: tlpkg/installer/install-tl-gui.tcl:1408
+#: tlpkg/installer/install-tl-gui.tcl:1443
+#: tlpkg/installer/install-tl-gui.tcl:1462
 msgid "Change"
 msgstr "Wijzig"
 
@@ -360,11 +345,13 @@
 #: texmf-dist/scripts/texlive/tlmgrgui.pl:700
 #: texmf-dist/scripts/texlive/tlmgrgui.pl:1109
 #: texmf-dist/scripts/texlive/tlmgrgui.pl:1730
+#: tlpkg/installer/install-tl-gui.tcl:59
 msgid "No"
 msgstr "Nee"
 
 #: tlpkg/installer/install-menu-wizard.pl:604
 #: texmf-dist/scripts/texlive/tlmgrgui.pl:456
+#: tlpkg/installer/install-tl-gui.tcl:1343
 msgid "Install"
 msgstr "Installeren"
 
@@ -371,16 +358,19 @@
 #: tlpkg/installer/install-menu-perltk.pl:48
 #: tlpkg/installer/install-menu-perltk.pl:1251
 #: texmf-dist/scripts/texlive/tlmgrgui.pl:143
+#: tlpkg/installer/install-tl-gui.tcl:1575
 msgid "None"
 msgstr "Geen"
 
 #: tlpkg/installer/install-menu-perltk.pl:49
 #: texmf-dist/scripts/texlive/tlmgrgui.pl:144
+#: tlpkg/installer/install-tl-gui.tcl:1575
 msgid "Only new"
 msgstr "Alleen nieuw"
 
 #: tlpkg/installer/install-menu-perltk.pl:50
 #: texmf-dist/scripts/texlive/tlmgrgui.pl:145
+#: tlpkg/installer/install-tl-gui.tcl:1575
 msgid "All"
 msgstr "Alle"
 
@@ -394,14 +384,17 @@
 msgstr "letter"
 
 #: tlpkg/installer/install-menu-perltk.pl:55
+#: tlpkg/installer/install-tl-gui.tcl:1563
 msgid "No shortcuts"
 msgstr "Geen TeX Live menu"
 
 #: tlpkg/installer/install-menu-perltk.pl:56
+#: tlpkg/installer/install-tl-gui.tcl:1563
 msgid "TeX Live menu"
 msgstr "TeX Live menu"
 
 #: tlpkg/installer/install-menu-perltk.pl:57
+#: tlpkg/installer/install-tl-gui.tcl:1563
 msgid "Launcher entry"
 msgstr "Launcher item"
 
@@ -422,6 +415,7 @@
 #: texmf-dist/scripts/texlive/tlmgrgui.pl:2270
 #: texmf-dist/scripts/texlive/tlmgrgui.pl:2332
 #: texmf-dist/scripts/texlive/tlmgrgui.pl:2669
+#: tlpkg/installer/install-tl-gui.tcl:639
 msgid "Warning"
 msgstr "Waarschuwing"
 
@@ -463,6 +457,14 @@
 #: texmf-dist/scripts/texlive/tlmgrgui.pl:2466
 #: texmf-dist/scripts/texlive/tlmgrgui.pl:2504
 #: texmf-dist/scripts/texlive/tlmgrgui.pl:2669
+#: tlpkg/installer/install-tl-gui.tcl:499
+#: tlpkg/installer/install-tl-gui.tcl:618
+#: tlpkg/installer/install-tl-gui.tcl:726
+#: tlpkg/installer/install-tl-gui.tcl:810
+#: tlpkg/installer/install-tl-gui.tcl:989
+#: tlpkg/installer/install-tl-gui.tcl:1027
+#: tlpkg/installer/install-tl-gui.tcl:1158
+#: tlpkg/installer/install-tl-gui.tcl:1299
 msgid "Ok"
 msgstr "Ok"
 
@@ -528,6 +530,7 @@
 #: texmf-dist/scripts/texlive/tlmgrgui.pl:1181
 #: texmf-dist/scripts/texlive/tlmgrgui.pl:1231
 #: texmf-dist/scripts/texlive/tlmgrgui.pl:1240
+#: tlpkg/installer/install-tl-gui.tcl:1416
 msgid "Toggle"
 msgstr "Wijzig"
 
@@ -553,22 +556,27 @@
 
 #: tlpkg/installer/install-menu-perltk.pl:440
 #: texmf-dist/scripts/texlive/tlmgrgui.pl:513
+#: tlpkg/installer/install-tl-gui.tcl:1498
 msgid "Options"
 msgstr "Opties"
 
 #: tlpkg/installer/install-menu-perltk.pl:458
+#: tlpkg/installer/install-tl-gui.tcl:1518
 msgid "Allow execution of restricted list of programs via \\write18"
 msgstr "Sta uitvoering van een beperkte lijst programmas toe via \\write18"
 
 #: tlpkg/installer/install-menu-perltk.pl:473
+#: tlpkg/installer/install-tl-gui.tcl:1525
 msgid "Create all format files"
 msgstr "Genereer alle format bestanden"
 
 #: tlpkg/installer/install-menu-perltk.pl:485
+#: tlpkg/installer/install-tl-gui.tcl:1533
 msgid "Install font/macro doc tree"
 msgstr "Installeer font/macro doc folder"
 
 #: tlpkg/installer/install-menu-perltk.pl:498
+#: tlpkg/installer/install-tl-gui.tcl:1543
 msgid "Install font/macro source tree"
 msgstr "Installeer font/macro bron folder"
 
@@ -578,8 +586,9 @@
 msgstr "Maak symlinks naar standaard-folders"
 
 #: tlpkg/installer/install-menu-perltk.pl:585
+#: tlpkg/installer/install-tl-gui.tcl:1636
 msgid "After install, set CTAN as source for package updates"
-msgstr ""
+msgstr "Kies na installatie CTAN als bron voor nieuwe versies van pakketten"
 
 #: tlpkg/installer/install-menu-perltk.pl:607
 #: tlpkg/installer/install-menu-perltk.pl:609
@@ -648,6 +657,7 @@
 msgstr "Kies niets"
 
 #: tlpkg/installer/install-menu-perltk.pl:967
+#: tlpkg/installer/install-tl-gui.tcl:1616
 msgid "create symlinks in standard directories"
 msgstr "Maak symlinks naar standaard-folders"
 
@@ -824,10 +834,12 @@
 msgstr "niet gekozen"
 
 #: texmf-dist/scripts/texlive/tlmgrgui.pl:389
+#: tlpkg/installer/install-tl-gui.tcl:1143
 msgid "Select all"
 msgstr "Kies alles"
 
 #: texmf-dist/scripts/texlive/tlmgrgui.pl:391
+#: tlpkg/installer/install-tl-gui.tcl:1151
 msgid "Select none"
 msgstr "Kies niets"
 
@@ -1140,6 +1152,7 @@
 msgstr "Maak snelkoppelingen op het bureaublad."
 
 #: texmf-dist/scripts/texlive/tlmgrgui.pl:1236
+#: tlpkg/installer/install-tl-gui.tcl:1588
 msgid "Install for all users"
 msgstr "Installeer voor alle gebruikers"
 
@@ -1317,6 +1330,7 @@
 msgstr "Herstel alle pakketten naar de laatste versie"
 
 #: texmf-dist/scripts/texlive/tlmgrgui.pl:2417
+#: tlpkg/installer/install-tl-gui.tcl:382
 msgid "Close"
 msgstr "Afsluiten"
 
@@ -1385,6 +1399,231 @@
 "%s is met een fout geeindigd.\n"
 "Raadpleeg het log venster voor details."
 
+#: tlpkg/installer/install-tl-gui.tcl:159
+msgid "Error"
+msgstr "Fout"
+
+#: tlpkg/installer/install-tl-gui.tcl:206 tlpkg/translations/shortdesc.pl:2507
+msgid "Welcome to TeX Live!"
+msgstr "Welkom bij TeX Live!"
+
+#: tlpkg/installer/install-tl-gui.tcl:209 tlpkg/translations/shortdesc.pl:2510
+#, tcl-format, perl-format
+msgid ""
+"See %s/index.html for links to documentation.\n"
+"The 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."
+msgstr ""
+"Zie %s/index.html voor links naar documentatie.\n"
+"De TeX Live web site (http://tug.org/texlive/) bevat\n"
+"eventuele updates en correcties.\n"
+"TeX Live is een gezamenlijk projekt van TeX gebruikersgroepen wereldwijd;\n"
+"overweeg ondersteuning door lid te worden van zo'n groep.\n"
+"De lijst van gebruikersgroepen staat op http://tug.org/usergroups.html."
+
+#: tlpkg/installer/install-tl-gui.tcl:213 tlpkg/translations/shortdesc.pl:2515
+#, tcl-format, perl-format
+msgid ""
+"Add %s/texmf-dist/doc/man to MANPATH.\n"
+"Add %s/texmf-dist/doc/info to INFOPATH.\n"
+"Most importantly, add %s/bin/%s\n"
+"to your PATH for current and future sessions."
+msgstr ""
+"Voeg %s/texmf-dist/doc/man toe aan MANPATH.\n"
+"Voeg %s/texmf-dist/doc/info toe aan INFOPATH.\n"
+"En bovenal, voeg %s/bin/%s\n"
+"toe aan PATH voor huidige en toekomstige sessies."
+
+#: tlpkg/installer/install-tl-gui.tcl:225
+msgid "Error while reading from Perl backend"
+msgstr "Fout bij het lezen van het Perl achtergrond-proces"
+
+#: tlpkg/installer/install-tl-gui.tcl:237
+msgid "Unexpected closed backend"
+msgstr "Achtergrond-proces onverwacht beeindigd"
+
+#: tlpkg/installer/install-tl-gui.tcl:347
+#: tlpkg/installer/install-tl-gui.tcl:1817
+msgid "TeX Live Installer"
+msgstr "TeX Live Installatie"
+
+#: tlpkg/installer/install-tl-gui.tcl:349
+msgid "Loading..."
+msgstr "Laden..."
+
+#: tlpkg/installer/install-tl-gui.tcl:466
+msgid "Browse..."
+msgstr "Bladeren..."
+
+#: tlpkg/installer/install-tl-gui.tcl:560
+msgid "Select or type"
+msgstr "Kies of type"
+
+#: tlpkg/installer/install-tl-gui.tcl:592
+msgid "Cannot be created or cannot be written to"
+msgstr "Kan niet worden aangemaakt of is niet schrijfbaar"
+
+#: tlpkg/installer/install-tl-gui.tcl:604
+msgid "Directory name..."
+msgstr "Folder-naam..."
+
+#: tlpkg/installer/install-tl-gui.tcl:611
+msgid "Change name (slashes not allowed)"
+msgstr "Wijzig naam (slashes niet toegestaan)"
+
+#: tlpkg/installer/install-tl-gui.tcl:620
+msgid "No slashes allowed"
+msgstr "Slashes niet toegestaan"
+
+#: tlpkg/installer/install-tl-gui.tcl:638
+msgid ""
+"TL release component highly recommended!\n"
+"Are you sure?"
+msgstr ""
+"TL jaar component sterk aanbevolen!\n"
+"Weet u het zeker?"
+
+#: tlpkg/installer/install-tl-gui.tcl:681
+#: tlpkg/installer/install-tl-gui.tcl:1373
+#: tlpkg/installer/install-tl-gui.tcl:1381
+msgid "Installation root"
+msgstr "Hoofd TeX-folder"
+
+#: tlpkg/installer/install-tl-gui.tcl:712
+msgid "Toggle year"
+msgstr "Jaar component aan/uit"
+
+#: tlpkg/installer/install-tl-gui.tcl:720
+msgid "Localized directory names will be replaced by their real names"
+msgstr "Aangepaste folder-namen worden vervangen door hun werkelijke namen"
+
+#: tlpkg/installer/install-tl-gui.tcl:797
+#, tcl-format
+msgid "'~' equals %s, e.g. %s"
+msgstr ""
+
+#: tlpkg/installer/install-tl-gui.tcl:923
+msgid "Cannot deselect own platform"
+msgstr "Eigen platform is altijd geselecteerd"
+
+#: tlpkg/installer/install-tl-gui.tcl:954
+#: tlpkg/installer/install-tl-gui.tcl:1288
+msgid "Binaries"
+msgstr "Binaries"
+
+#: tlpkg/installer/install-tl-gui.tcl:1006
+msgid "Schemes"
+msgstr "Schema's"
+
+#: tlpkg/installer/install-tl-gui.tcl:1091
+msgid "Collections"
+msgstr "Collecties"
+
+#: tlpkg/installer/install-tl-gui.tcl:1114
+msgid "Languages"
+msgstr "Talen"
+
+#: tlpkg/installer/install-tl-gui.tcl:1116
+msgid "Other collections"
+msgstr "Andere collecties"
+
+#: tlpkg/installer/install-tl-gui.tcl:1241
+msgid "Warning. Not all configured directories are writable!"
+msgstr "Waarschuwing. Niet alle geconfigureerde folders zijn schrijfbaar!"
+
+#: tlpkg/installer/install-tl-gui.tcl:1261
+msgid "Symlinks"
+msgstr "Symlinks"
+
+#: tlpkg/installer/install-tl-gui.tcl:1284
+msgid "browse..."
+msgstr "Bladeren..."
+
+#: tlpkg/installer/install-tl-gui.tcl:1289
+msgid "Man pages"
+msgstr "Man pagina's"
+
+#: tlpkg/installer/install-tl-gui.tcl:1290
+msgid "Info pages"
+msgstr "Info pagina's"
+
+#: tlpkg/installer/install-tl-gui.tcl:1333
+#, tcl-format
+msgid "TeX Live %s Installer"
+msgstr "TeX Live %s Installatie"
+
+#: tlpkg/installer/install-tl-gui.tcl:1349
+msgid "Advanced"
+msgstr "Geavanceerd"
+
+#: tlpkg/installer/install-tl-gui.tcl:1376
+msgid "Directories"
+msgstr "Folders"
+
+#: tlpkg/installer/install-tl-gui.tcl:1394
+msgid "Local additions"
+msgstr "Lokale toevoegingen"
+
+#: tlpkg/installer/install-tl-gui.tcl:1403
+msgid "Per-user additions"
+msgstr "Toevoegingen per gebruiker"
+
+#: tlpkg/installer/install-tl-gui.tcl:1413
+msgid ""
+"Portable setup:\n"
+"May reset TEXMFLOCAL\n"
+"and TEXMFHOME"
+msgstr ""
+"Portable setup:\n"
+"Kan TEXMFLOCAL en\n"
+"TEXMFHOME terugzetten"
+
+#: tlpkg/installer/install-tl-gui.tcl:1427
+msgid "Platforms"
+msgstr "Platforms"
+
+#: tlpkg/installer/install-tl-gui.tcl:1440
+msgid "N. of additional platform(s):"
+msgstr "Aantal extra platforms:"
+
+#: tlpkg/installer/install-tl-gui.tcl:1453
+msgid "Selections"
+msgstr "Selekties"
+
+#: tlpkg/installer/install-tl-gui.tcl:1458
+msgid "Scheme:"
+msgstr "Schema:"
+
+#: tlpkg/installer/install-tl-gui.tcl:1467
+msgid "N. of collections:"
+msgstr "Aantal collecties:"
+
+#: tlpkg/installer/install-tl-gui.tcl:1470
+msgid "Customize"
+msgstr "Aanpassen"
+
+#: tlpkg/installer/install-tl-gui.tcl:1479
+msgid "Disk space required (in MB):"
+msgstr "Vereiste schijfruimte (in MB):"
+
+#: tlpkg/installer/install-tl-gui.tcl:1556
+msgid "Adjust searchpath"
+msgstr "Zoekpad aanpassen"
+
+#: tlpkg/installer/install-tl-gui.tcl:1565
+msgid "Desktop integration"
+msgstr "Bureaublad-integratie"
+
+#: tlpkg/installer/install-tl-gui.tcl:1577
+msgid "File associations"
+msgstr "Koppeling bestandsformaten"
+
+#: tlpkg/installer/install-tl-gui.tcl:1622
+msgid "Specify directories"
+msgstr "Specificeer folders"
+
 #: tlpkg/translations/shortdesc.pl:1
 msgid "basic scheme (plain and latex)"
 msgstr "basis-schema (Plain en latex)"
@@ -1585,6 +1824,12 @@
 msgid "XeTeX and packages"
 msgstr "XeTeX en bijbehorende pakketten"
 
+#~ msgid "'~' equals %s, e.g.%s"
+#~ msgstr "'~' betekent %s, bijvoorbeeld %s"
+
+#~ msgid "Root of installation"
+#~ msgstr "Hoofd TeX-folder"
+
 #~ msgid "After installation, get package updates from CTAN"
 #~ msgstr "Aktualiseer pakketten vanuit CTAN na installatie"
 



More information about the tex-live-commits mailing list