Check-in [a8b2196f13]
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview

SHA1 Hash:a8b2196f130a83138e2f2c0eac92c2154d0c48e0
Date: 2012-02-02 10:04:42
User: BarryK
Comment:internationalized: partview, pcur, pgprs-shell, pup-advert-blocker, pupcamera, pupdial, pupdial_init_hotpluggable, pupdial_wizard_helper, puppyinstaller, puppypdf, pupscan

Tags And Properties
Changes

Changes to woof-code/rootfs-skeleton/usr/sbin/delayedrun

@@ -269,20 +269,20 @@
           cp -a -f usr/* /usr/
           sync
           rm -rf usr
           if [ -f /usr/share/applications/flash-player-properties.desktop ];then
            #fix it...
-           echo '[Desktop Entry]
-Name=Adobe Flash Player preferences
-Name[ru]=Настройки Adobe Flash плеера
+           echo "[Desktop Entry]
+Encoding=UTF-8
+Name=$(gettext 'Adobe Flash Player preferences')
 Comment=Preferences for Adobe Flash Player
 Exec=flash-player-properties
 Icon=flash-player-properties.png
 Terminal=false
 Type=Application
 StartupNotify=true
-Categories=Utility' > /usr/share/applications/flash-player-properties.desktop
+Categories=Utility" > /usr/share/applications/flash-player-properties.desktop
            [ ! -e /usr/share/pixmaps/flash-player-properties.png ] && ln -s ../icons/hicolor/16x16/apps/flash-player-properties.png /usr/share/pixmaps/flash-player-properties.png
           fi
          fi
         fi
        fi

Changes to woof-code/rootfs-skeleton/usr/sbin/partview

@@ -1,10 +1,14 @@
 #!/bin/ash
 #Barry Kauler 2012
 #GPL v3 (/usr/share/doc/legal)
-
-yaf-splash -bg orange -fg black -close never -fontsize large -text "Please wait, probing drives..." &
+#120202 internationalized. add udf f.s.
+
+export TEXTDOMAIN=partview
+export OUTPUT_CHARSET=UTF-8
+
+yaf-splash -bg orange -fg black -close never -fontsize large -text "$(gettext 'Please wait, probing drives...')" &
 yPID=$!
 
 GTKDIALOGEXE="gtkdialog"
 [ "`which gtkdialog4`" != "" ] && GTKDIALOGEXE="gtkdialog4"
 
@@ -20,21 +24,21 @@
 
 echo  "<text
      xml:space=\"preserve\"
      style=\"fill:black;stroke:none;font-family:Nimbus Mono L;font-style:normal;font-weight:bold;font-size:26;fill-opacity:1;stroke-opacity:1;stroke-width:3pt;stroke-linejoin:miter;stroke-linecap:butt;text-anchor:start;writing-mode:lr;\"
      x=\"$(($XLEFT2 + 12))\"
-     y=\"18\">size
+     y=\"18\">$(gettext 'size')
   </text>
   <text
      xml:space=\"preserve\"
      style=\"fill:black;stroke:none;font-family:Nimbus Mono L;font-style:normal;font-weight:bold;font-size:26;fill-opacity:1;stroke-opacity:1;stroke-width:3pt;stroke-linejoin:miter;stroke-linecap:butt;text-anchor:start;writing-mode:lr;\"
      x=\"$(($XLEFT2 + $BOXWIDTH + 6))\"
-     y=\"18\">free
+     y=\"18\">$(gettext 'free')
   </text>" >> /tmp/partview_display_svg
 
 
-PARTSLIST="`probepart -k 2> /dev/null | grep '^/dev/' | grep -E 'iso9660|ext2|ext3|ext4|reiserfs|msdos|vfat|ntfs|minix' | cut -f 1-3 -d '|' | tr '\n' ' '`"
+PARTSLIST="`probepart -k 2> /dev/null | grep '^/dev/' | grep -E 'udf|iso9660|ext2|ext3|ext4|reiserfs|msdos|vfat|ntfs|minix' | cut -f 1-3 -d '|' | tr '\n' ' '`"
 
 for APART in $PARTSLIST
 do
  MNTSTATUS='(currently mounted)'
  ATAG="`echo -n "$APART" | cut -f 1 -d '|' | cut -f 3 -d '/'`"

Changes to woof-code/rootfs-skeleton/usr/sbin/pcur

@@ -1,7 +1,11 @@
 #!/bin/sh
 #(c) copyright Barry Kauler aug 2009. Licence LGPL.
+#120202 rodin.s: i18n
+
+export TEXTDOMAIN=pcur
+export OUTPUT_CHARSET=UTF-8
 
 PREVTHEME=""
 if [ -e /root/.icons/default ];then
  PREVTHEME="`readlink /root/.icons/default | rev | cut -f 1 -d '/' | rev`"
 fi
@@ -31,30 +35,30 @@
  LISTHEIGHT=`expr $LISTHEIGHT + 25`
 done
 
 [ $LISTHEIGHT -gt 550 ] && LISTHEIGHT=550
 CURITEMS="  <tree>
-  <label>Cursor theme</label>
+  <label>$(gettext 'Cursor theme')</label>
     ${FIRSTITEM}
     <item icon=\"default_left_ptr\">ORIGINAL THEME</item>
     ${CURLIST}
     <variable>CHOOSECUR</variable>
     <height>${LISTHEIGHT}</height>
   </tree>"
 
 if [ "$CURLIST" = "" ];then
  CURITEMS="<text use-markup=\"true\">
-    <label>\"<b>You first need to install some cursor themes! For now, quit this program. Run the Puppy Package Manager and look in the 'Desktop' category</b>\"</label></text>"
+    <label>\"<b>`gettext \"You first need to install some cursor themes! For now, quit this program. Run the Puppy Package Manager and look in the 'Desktop' category\"`</b>\"</label></text>"
 fi
 
 export MAIN_DIALOG="
-<window title=\"Pcur: select a cursor theme\">
+<window title=\"$(gettext 'Pcur: select a cursor theme')\">
   <vbox>
     <text use-markup=\"true\">
-      <label>\"<b>You must restart X to use the new theme</b>\"</label>
+      <label>\"<b>$(gettext 'You must restart X to use the new theme')</b>\"</label>
     </text>
-    <text><label>Choose one you like, click 'OK', close down all applications, then choose 'Restart X server' in the 'Shutdown' menu...</label></text>
+    <text><label>`gettext \"Choose one you like, click 'OK', close down all applications, then choose 'Restart X server' in the 'Shutdown' menu...\"`</label></text>
 
 
     ${CURITEMS}
 
     <hbox>

Changes to woof-code/rootfs-skeleton/usr/sbin/pgprs-shell

@@ -2,10 +2,15 @@
 #BK dummy for now
 #v407 install firmware tarball if not installed.
 #100228 BK
 #101204 BK changes below, modified firmware tarball.
 #111112 Karl Godt: fix for firmware not tarball.
+#120202 rodin.s: i18n
+#120202 jwm -reload
+
+export TEXTDOMAIN=pgprs-shell
+export OUTPUT_CHARSET=UTF-8
 
 [ "`which pgprs-setup`" != "" ] && exec pgprs-setup
 
 #xmessage "Currently only works with the Multitech GPRS modem.
 #If the MT GPRS modem is plugged in, Puppy should have loaded
@@ -23,16 +28,23 @@
 fi
 if [ -d /lib/modules/all-firmware/pgprs ]; then
  cp -a -f --remove-destination /lib/modules/all-firmware/pgprs/* /
 fi
 
-#101204...
-yaf-splash -bg violet -placement center -timeout 3 -text "Updating menu, screen will flicker..."
+#101204... 120202 jwm has -reload ...
+yaf-splash -bg violet -placement center -timeout 3 -text "$(gettext 'Updating menu...')"
 /usr/sbin/fixmenus
-[ "`pidof jwm`" != "" ] && jwm -restart #update the menu.
+if [ "`pidof jwm`" != "" ];then
+ JWMVER=`jwm -v|head -n1|cut -d ' ' -f2|cut -d - -f2`
+ if vercmp $JWMVER lt 574;then
+  jwm -restart #update the menu.
+ else
+  jwm -reload
+ fi
+fi
 sleep 1
 
 #/pinstall.pgprs.sh >/dev/null 2>&1 #execute script.
 #rm -f /pinstall.pgprs.sh >/dev/null 2>&1
 
 #note, pgprs-setup and pgprs-connect are in the firmware tarball.
 exec pgprs-setup

Changes to woof-code/rootfs-skeleton/usr/sbin/pup-advert-blocker

@@ -1,16 +1,27 @@
 #!/bin/sh
 #v0.3 created by sc0ttman, August 2010: http://murga-linux.com/puppy/viewtopic.php?t=59290
 #GPL license /usr/share/doc/legal/gpl-2.0.txt
 #100830 BK added GPL license, amended Exit msg, bug fixes.
+#120202 rodin.s: adding gettext
 
 # advert blocker
 # downloads a list of known advert servers
 # then appends them to /etc/hosts so that
 # many online adverts are blocked from sight
 
 # make a hosts file if none found, or add a marker
+
+export TEXTDOMAIN=pup-advert-blocker
+export TEXTDOMAINDIR=/usr/share/locale
+export OUTPUT_CHARSET=UTF-8
+eval_gettext () {
+  local myMESSAGE=$(gettext "$1")
+  eval echo \"$myMESSAGE\"
+}
+export LANGORG=$LANG
+
 if [ ! -f /etc/hosts ];then
 	echo "#host file
 127.0.0.1 localhost puppypc
 " > /etc/hosts
 fi
@@ -89,37 +100,37 @@
 		# add list contents into the hosts file, below a marker (for easier removal)
 		echo "$markerstart" >> /tmp/hosts-temp
 		echo "$adlist" >> /tmp/hosts-temp
 		echo "$markerend" >> /tmp/hosts-temp
 	else
-		Xdialog --title "$title $appver" --msgbox "No ad lists selected. Ad blocking will be disabled." 0 0
+		Xdialog --title "$title $appver" --msgbox "$(gettext 'No ad lists selected. Ad blocking will be disabled.')" 0 0
 	fi
 	# replace the original with the cleaned version
 	mv "/tmp/hosts-temp" "/etc/hosts"
 }
 
 success () {
 	# tell user
-	Xdialog --title "$title $appver" --msgbox "Success - your settings have been changed.\n\nYour hosts file has been updated.\nRestart your browser to see the changes." 0 0 &
+	Xdialog --title "$title $appver" --msgbox "$(gettext 'Success - your settings have been changed.\n\nYour hosts file has been updated.\nRestart your browser to see the changes.')" 0 0 &
 }
 
 # create a GUI
 export HELP_GUI='<window title="'$title' '$appver'">
 	<frame>
 		<vbox>
 			<text width-request="360">
-				<label> The "'$title'" tool adds stuff to your "/etc/hosts" file, so that many advertising servers and websites will not be able to connect to this PC.</label>
+				<label>'$(gettext 'The')' "'$title'" '$(gettext 'tool adds stuff to your "/etc/hosts" file, so that many advertising servers and websites will not be able to connect to this PC.')'</label>
 			</text>
 			<text><label>""</label></text>
 
 			<text width-request="360">
-				<label>Leave your cursor over a service to see a short description. You can choose one service or combine multiple services for more advert protection.</label>
+				<label>'$(gettext 'Leave your cursor over a service to see a short description. You can choose one service or combine multiple services for more advert protection.')'</label>
 			</text>
 			<text><label>""</label></text>
 
 			<text width-request="360">
-				<label>Blocking ad servers protects your privacy, saves you bandwidth, greatly improves web-browsing speeds and makes the internet much less annoying in general.</label>
+				<label>'$(gettext 'Blocking ad servers protects your privacy, saves you bandwidth, greatly improves web-browsing speeds and makes the internet much less annoying in general.')'</label>
 			</text>
 			<text><label>""</label></text>
 
 			<text width-request="360">
 				<label>'$title' '$appver', by sc0ttman</label>
@@ -127,13 +138,13 @@
 		</vbox>
 
 		<text><label>""</label></text>
 
 		<hbox>
-			<button tooltip-text="Close this help dialog">
+			<button tooltip-text="'$(gettext 'Close this help dialog')'">
 				<input file icon="gtk-quit"></input>
-				<label>Close</label>
+				<label>'$(gettext 'Close')'</label>
 				<action>exec gtkdialog3 --program GUI --center &</action>
 				<action type="exit">EXIT_NOW</action>
 			</button>
 		</hbox>
 	</frame>
@@ -142,38 +153,38 @@
 export GUI='<window title="'$title' '$appver'">
 	<vbox>
 		<vbox homogeneous="true">
 			<frame>
 				<text><label>'$title'</label></text>
-				<text><label>Block online ads in all browsers with this simple tool</label></text>
+				<text><label>'$(gettext 'Block online ads in all browsers with this simple tool')'</label></text>
 			</frame>
 		</vbox>
 		<vbox>
 
 			<frame>
 				<vbox>
 						<text>
-							<label>Choose your preferred ad blocking service(s)</label>
+							<label>'$(gettext 'Choose your preferred ad blocking service(s)')'</label>
 						</text>
 					</vbox>
 					<hbox>
-						<checkbox tooltip-text="Blocks many known malware sites and unsafe adult networks">
+						<checkbox tooltip-text="'$(gettext 'Blocks many known malware sites and unsafe adult networks')'">
 							<label>Mvps.org</label>
 							<variable>mvps</variable>
 							<default>false</default>
 						</checkbox>
- 						<checkbox tooltip-text="A large, fairly comprehensive list of many known ad servers">
+ 						<checkbox tooltip-text="'$(gettext 'A large, fairly comprehensive list of many known ad servers')'">
 							<label>Systcl.org</label>
 							<variable>systcl</variable>
 							<default>false</default>
 						</checkbox>
-						<checkbox tooltip-text="A smaller list of popup adverts, ad servers and ad networks">
+						<checkbox tooltip-text="'$(gettext 'A smaller list of popup adverts, ad servers and ad networks')'">
 							<label>Technobeta.com</label>
 							<variable>technobeta</variable>
 							<default>false</default>
 						</checkbox>
-						<checkbox tooltip-text="A small and effective list of popular ad servers">
+						<checkbox tooltip-text="'$(gettext 'A small and effective list of popular ad servers')'">
 							<label>Yoyo.org</label>
 							<variable>yoyo</variable>
 							<default>false</default>
 						</checkbox>
 					</hbox>
@@ -181,16 +192,16 @@
 
 			<frame>
 				<vbox>
 					<hbox>
 						<text>
-							<label>Click the "Start" button to download and block the latest list of known advertising servers</label>
+							<label>'$(gettext 'Click the "Start" button to download and block the latest list of known advertising servers')'</label>
 						</text>
-						<button width-request="70" tooltip-text="Click to download and then block a list of advertising servers">
+						<button width-request="70" tooltip-text="'$(gettext 'Click to download and then block a list of advertising servers')'">
 							<variable>START</variable>
 							<input file icon="gtk-execute"></input>
-							<label>Start</label>
+							<label>'$(gettext 'Start')'</label>
 							<action>download_adlist</action>
 							<action>clean_adlist</action>
 							<action>append_adlist</action>
 							<action>cleanup</action>
 							<action>success</action>
@@ -199,35 +210,35 @@
 
 					<text><label>""</label></text>
 
 					<hbox>
 						<text>
-							<label>Or click the "Edit" button to manually edit your hosts file, using your default text editor</label>
+							<label>'$(gettext 'Or click the "Edit" button to manually edit your hosts file, using your default text editor')'</label>
 						</text>
-						<button width-request="70" tooltip-text="Manually edit your hosts file in a text editor, adding or removing any entries you like">
+						<button width-request="70" tooltip-text="'$(gettext 'Manually edit your hosts file in a text editor, adding or removing any entries you like')'">
 							<variable>EDIT</variable>
 							<input file icon="gtk-edit"></input>
-							<label>Edit</label>
+							<label>'$(gettext 'Edit')'</label>
 							<action>defaulttexteditor /etc/hosts &</action>
 						</button>
 					</hbox>
 				</vbox>
 			</frame>
 
 			<frame>
 				<hbox>
-					<button tooltip-text="Learn more about blocking ads">
+					<button tooltip-text="'$(gettext 'Learn more about blocking ads')'">
 						<variable>HELP</variable>
 						<input file icon="gtk-help"></input>
-						<label>Help</label>
+						<label>'$(gettext 'Help')'</label>
 						<action>exec gtkdialog3 --program HELP_GUI --center &</action>
 						<action type="exit">EXIT_NOW</action>
 					</button>
-					<button tooltip-text="Exit Pup Advert Blocker">
+					<button tooltip-text="'$(gettext 'Exit Pup Advert Blocker')'">
 						<variable>QUIT</variable>
 						<input file icon="gtk-quit"></input>
-						<label>Quit</label>
+						<label>'$(gettext 'Quit')'</label>
 						<action type="exit">EXIT_NOW</action>
 					</button>
 				</hbox>
 			</frame>
 

Changes to woof-code/rootfs-skeleton/usr/sbin/pupcamera

@@ -5,10 +5,11 @@
 #usbutils optionally used if installed, lsusb accesses usb.ids to obtain device description.
 #pupcamera is not a separate application, it is builtin to Woof so is in all builds
 # -- it detects if gphoto (and deps) not installed and informs the user.
 #111010 first release.
 #111015 detect if gphotofs not installed.
+#120202 BK: internationalized.
 
 #udevd passes in these variables (for example):
 #ACTION=add
 #BASH=/bin/sh
 #BASH_ARGC=()
@@ -42,10 +43,13 @@
 #PRODUCT=4cb/1d0/100
 #PS4='+ '
 #PWD=/
 #SEQNUM=1571
 #SHELL=/bin/sh
+
+export TEXTDOMAIN=pupcamera
+export OUTPUT_CHARSET=UTF-8
 
 GTKDIALOGEXE='gtkdialog'
 [ "`which gtkdialog4`" ] && GTKDIALOGEXE='gtkdialog4'
 
 mkdir -p /mnt/camera1
@@ -102,48 +106,48 @@
    #BUSNUM10="`echo "ibase=16; ${BUSNUM}; obase=10" | bc`"
    #DEVNUM10="`echo "ibase=16; ${DEVNUM}; obase=10" | bc`"
    #above not needed, numbers already decimal...
    VENDORDESC="`lsusb -s ${BUSNUM}:${DEVNUM} | tr -s ' ' | cut -f 3-9 -d ':' | cut -f 2-99 -d ' '`"
    if [ "$VENDORDESC" ];then
-    VENDORINSERT="The camera has identified itself as:
+    VENDORINSERT="$(gettext 'The camera has identified itself as:')
  <b>${VENDORDESC}</b>
 "
    fi
   fi
  fi
 
- CAMERAINFO="<text use-markup=\"true\"><label>\"A camera is detected connected via USB.
-The Linux kernel has identified it as:
- Type: <b>${PRODUCTDESC}</b>
- Connected on port: usb:${BUSNUM},${DEVNUM}
+ CAMERAINFO="<text use-markup=\"true\"><label>\"$(gettext 'A camera is detected connected via USB.')
+$(gettext 'The Linux kernel has identified it as:')
+ $(gettext 'Type:') <b>${PRODUCTDESC}</b>
+ $(gettext 'Connected on port: usb:')${BUSNUM},${DEVNUM}
 ${VENDORINSERT}\"</label></text>"
  echo "usb:${BUSNUM},${DEVNUM}" >> /tmp/pupcamera_ports
 fi
 
 PROBEINFO=""
 if [ "`which gphoto2`" ];then
  GPHOTOPROBE="`gphoto2 --auto-detect | tr -s ' ' | tail -n +3`"
  if [ "$GPHOTOPROBE" ];then
-  PROBEINFO="<text use-markup=\"true\"><label>\"A probe by the 'gphoto2' utility has detected a camera, so it is likely that this camera will be accessable. Results of probe:
+  PROBEINFO="<text use-markup=\"true\"><label>\"$(gettext "A probe by the 'gphoto2' utility has detected a camera, so it is likely that this camera will be accessable. Results of probe:")
 <b>${GPHOTOPROBE}</b>\"</label></text>"
   PROBEPORTS="`echo "$GPHOTOPROBE" | sed -e 's% *$%%' | rev | cut -f 1 -d ' ' | rev`"
   echo "$PROBEPORTS" >> /tmp/pupcamera_ports
  else
   if [ -s /tmp/pupcamera_ports ];then
-   PROBEINFO="<text use-markup=\"true\"><label>\"<b>A probe by the 'gphoto2' utility has not detected a camera, which is not so good. It means that the Gphoto software in puppy does not recognise the camera. (But, you can try, click the 'Open' button)</b>\"</label></text>"
+   PROBEINFO="<text use-markup=\"true\"><label>\"<b>$(gettext "A probe by the 'gphoto2' utility has not detected a camera, which is not so good. It means that the Gphoto software in puppy does not recognise the camera. (But, you can try, click the 'Open' button)")</b>\"</label></text>"
   else
-   PROBEINFO="<text use-markup=\"true\"><label>\"<b>A probe by the 'gphoto2' utility has not detected a camera, which is not so good. It means that the Gphoto software in puppy does not recognise the camera.</b>\"</label></text>"
+   PROBEINFO="<text use-markup=\"true\"><label>\"<b>$(gettext "A probe by the 'gphoto2' utility has not detected a camera, which is not so good. It means that the Gphoto software in puppy does not recognise the camera.")</b>\"</label></text>"
   fi
  fi
 else
  #gphoto (and deps) not installed...
- PROBEINFO="<text use-markup=\"true\"><label>\"<b>The 'gphoto' application is not installed, so PupCamera cannot be used to access the photos on a digital camera. Please run the Puppy Package Manager (see 'install' icon on desktop) to install 'gphoto' and it's dependencies.</b>\"</label></text>"
+ PROBEINFO="<text use-markup=\"true\"><label>\"<b>$(gettext "The 'gphoto' application is not installed, so PupCamera cannot be used to access the photos on a digital camera. Please run the Puppy Package Manager (see 'install' icon on desktop) to install 'gphoto' and it's dependencies.")</b>\"</label></text>"
  echo -n "" > /tmp/pupcamera_ports #remove button.
 fi
 
 if [ "`which gphotofs`" = "" ];then #111015
- PROBEINFO="${PROBEINFO}<text use-markup=\"true\"><label>\"<b>The 'gphotofs' application is not installed, so PupCamera cannot be used to access the photos on a digital camera. Please run the Puppy Package Manager (see 'install' icon on desktop) to install 'gphotofs' and it's dependencies.</b>\"</label></text>"
+ PROBEINFO="${PROBEINFO}<text use-markup=\"true\"><label>\"<b>$(gettext "The 'gphotofs' application is not installed, so PupCamera cannot be used to access the photos on a digital camera. Please run the Puppy Package Manager (see 'install' icon on desktop) to install 'gphotofs' and it's dependencies.")</b>\"</label></text>"
 fi
 
 OPENBUTTON=""
 if [ -s /tmp/pupcamera_ports ];then
  CAMCNT=1
@@ -150,13 +154,13 @@
  for ONEPORT in `cat /tmp/pupcamera_ports | sort -u | tr '\n' ' '`
  do
   mkdir -p /mnt/camera${CAMCNT}
   OPENBUTTON="${OPENBUTTON}
   <button>
-   <label>Open ${ONEPORT}</label>
+   <label>$(gettext 'Open') ${ONEPORT}</label>
    <action>gphotofs --port=${ONEPORT} /mnt/camera${CAMCNT}</action>
-   <action>yaf-splash -placement center -bg orange -fg black -timeout 5 -fontsize large -text \"Please wait...\"</action>
+   <action>yaf-splash -placement center -bg orange -fg black -timeout 5 -fontsize large -text \"$(gettext 'Please wait...')\"</action>
    <action>rox -x /mnt/camera${CAMCNT} -d /mnt/camera${CAMCNT} & </action>
   </button>
 "
   CAMCNT=$(($CAMCNT + 1))
  done
@@ -175,32 +179,32 @@
 fi
 
 # <text><label>First version of this application, very limited features. It presupposes that your digital camera is connected to the computer, usually by USB cable, is turned on, and that the 'gphoto2' utility will be able to autodetect it.</label></text>
 
 export PUPCAMERA_DLG="
-<window title=\"PupCamera\" window_position=\"1\" icon-name=\"gtk-orientation-landscape\">
+<window title=\"$(gettext 'PupCamera')\" window_position=\"1\" icon-name=\"gtk-orientation-landscape\">
 <vbox>
 
- <text use-markup=\"true\"><label>\"<b>Digital camera access application</b>\"</label></text>
+ <text use-markup=\"true\"><label>\"<b>$(gettext 'Digital camera access application')</b>\"</label></text>
 
  <frame Detected camera>
   ${CAMERAINFO}
   ${PROBEINFO}
  </frame>
 
- <text><label>click 'Open' button to access photos on your camera. A ROX-Filer window will pop up, and if you are then able to see your photos, it worked.</label></text>
- <text><label>Please click the 'Close camera' button when you have finished accessing your camera...</label></text>
+ <text><label>$(gettext "click 'Open' button to access photos on your camera. A ROX-Filer window will pop up, and if you are then able to see your photos, it worked.")</label></text>
+ <text><label>$(gettext "Please click the 'Close camera' button when you have finished accessing your camera...")</label></text>
 
  <hbox>
   ${OPENBUTTON}
   ${CLOSEBUTTON}
   <button>
-   <label>Rescan</label>
+   <label>$(gettext 'Rescan')</label>
    <action>EXIT:rescan</action>
   </button>
   <button>
-   <label>Exit</label>
+   <label>$(gettext 'Exit')</label>
    <action>EXIT:finished</action>
   </button>
  </hbox>
 
 </vbox>

Changes to woof-code/rootfs-skeleton/usr/sbin/pupdial

@@ -27,12 +27,21 @@
 #101206 launch pupdial_wizard_helper after run wvdial.
 #101211 update PupDial if modem changes.
 #101217 new help button, for modem setup.
 #101218 passed param if re-run this script do not do probe of hotpluggable modems.
 #110505 support sudo for non-root user.
+#120202 rodin.s: internationalized.
 
 [ "`whoami`" != "root" ] && exec sudo -A ${0} ${@} #110505
+
+export TEXTDOMAIN=pupdial
+export TEXTDOMAINDIR=/usr/share/locale
+export OUTPUT_CHARSET=UTF-8
+eval_gettext () {
+  local myMESSAGE=$(gettext "$1")
+  eval echo \"$myMESSAGE\"
+}
 
 #hint: for debugging, to force pupdial to ask all questions, delete /var/local/pupdial/hotpluggable
 
 KERNVER="`uname -r`"
 FLAGNEWPROBE='' #101203
@@ -45,15 +54,15 @@
  /usr/sbin/networkdisconnect #but not ppp interface.
 
  if [ ! -f /var/local/pupdial/hotpluggable ];then #101202
   FLAGNEWPROBE='yes' #101203 flag 1st boot, or 'erase' button got clicked in pupdial (latter exits from pupdial).
   export HOTDIALOG="
-  <window title=\"PupDial modem Internet dialer\" icon-name=\"gtk-connect\">
+  <window title=\"$(gettext 'PupDial modem Internet dialer')\" icon-name=\"gtk-connect\">
    <vbox>
-    <text><label>Welcome! First, a basic question: do you want to connect to the Internet using an internal fixed modem, or a removable (USB, serial, PCMCIA) modem?</label></text>
-    <text><label>The reason for asking this, is an internal modem will have been detected at bootup, but a 'hotpluggable' external modem may not have have been detected if plugged in after bootup. Also, if you have both, say an internal analog dialup modem, plus a USB modem, PupDial may choose the wrong one -- ticking or unticking the checkbox here will avoid that confusion...</label></text>
-    <checkbox><label>Tick checkbox if external modem</label><variable>CHK_HOT</variable></checkbox>
+    <text><label>$(gettext 'Welcome! First, a basic question: do you want to connect to the Internet using an internal fixed modem, or a removable (USB, serial, PCMCIA) modem?')</label></text>
+    <text><label>`gettext \"The reason for asking this, is an internal modem will have been detected at bootup, but a 'hotpluggable' external modem may not have have been detected if plugged in after bootup. Also, if you have both, say an internal analog dialup modem, plus a USB modem, PupDial may choose the wrong one -- ticking or unticking the checkbox here will avoid that confusion...\"`</label></text>
+    <checkbox><label>$(gettext 'Tick checkbox if external modem')</label><variable>CHK_HOT</variable></checkbox>
     <hbox><button ok></button></hbox>
    </vbox>
   </window>"
   RETSTRING="`gtkdialog3 --center --program=HOTDIALOG`"
   CHK_HOT="`echo "$RETSTRING" | grep '^CHK_HOT' | cut -f 2 -d '"'`" #'geany
@@ -144,14 +153,14 @@
   if [ -f /etc/wvdial.conf ];then
    wvMODEM="`grep '^Modem =' /etc/wvdial.conf | head -n 1 | tr -s ' ' | cut -f 3 -d ' '`"
    newMODEM="/dev/`readlink /dev/modem | sed -e 's%/dev/%%'`"
    if [ -e ${newMODEM} ];then #precaution.
     if [ "$wvMODEM" != "$newMODEM" ];then
-     Xdialog --left --wmclass "pupdial" --title "PupDial: modem changed" --ok-label "UPDATE" --yesno "It seems that the modem has changed.\n
-It was '${wvMODEM}', it is now '${newMODEM}'\n
+     Xdialog --left --wmclass "pupdial" --title "$(gettext 'PupDial: modem changed')" --ok-label "$(gettext 'UPDATE')" --yesno "`eval_gettext \"It seems that the modem has changed.\n
+It was '\\\${wvMODEM}', it is now '\\\${newMODEM}'\n
 Do you want to update PupDial?\n
-Recommend click UPDATE button..." 0 0
+Recommend click UPDATE button...\"`" 0 0
      [ $? -eq 0 ] && FLAGNEWPROBE='yes'
     fi
    fi
   fi
  fi
@@ -158,45 +167,43 @@
 fi
 
 #i also want this to rerun after 'erase' button pressed in pupdial...
 if [ "$FLAGNEWPROBE" = "yes" ];then
  if [ "$MYDEVM" != "MYDEVM" -a "$MYDEVM" != "modem" ];then
-  Xdialog --left --wmclass "pupdial" --title "PupDial: modem found" --ok-label "TEST" --yesno "It seems that you have a modem, at port ${MYDEVM}\n
+  Xdialog --left --wmclass "pupdial" --title "$(gettext 'PupDial: modem found')" --ok-label "$(gettext 'TEST')" --yesno "`eval_gettext \"It seems that you have a modem, at port \\\${MYDEVM}\n
 However, it is recommended that you now click the 'TEST' button\n
 to test that it is working.\n
 \n
 Note 1: The test will also optionally probe for what is called an\n
 'inialization string'. If you are running PupDial for the first time\n
 or have changed modems, you will definitely need to click the 'TEST'\n
 button and obtain an initialization string.\n
 \n
-Note 2: If you think that ${MYDEVM} might be the wrong modem,\n
+Note 2: If you think that \\\${MYDEVM} might be the wrong modem,\n
 click the 'No' button and the main PupDial GUI has a 'CHOOSE' button\n
 that will enable you to test alternative modem interfaces.\n
 \n
-Recommend click 'TEST' to probe the modem..." 0 0
+Recommend click 'TEST' to probe the modem...\"`" 0 0
   RETVAL=$?
   DEVM="`echo -n "$MYDEVM" | cut -f 3,4 -d '/'`"
   [ $RETVAL -eq 0 ] && modemtest $DEVM initonly
  fi
 fi
 
 #v413 Assure user...
-#yaf-splash -font "8x16" -outline 0 -margin 4 -bg orange -text "Reading modem configuration file..." &
-/usr/X11R7/bin/yaf-splash -font "8x16" -outline 0 -margin 4 -bg orange -text "Reading modem configuration file..." &
-X1PID=$!
-
+yaf-splash -close never -bg orange -text "$(gettext 'Reading modem configuration file...')" &
+X1PID=$!
 #disconnect button...
 STATECONb="disabled"
 #v409 rerwin, bugfix...
 #[ "`pidof pppd`" != "" ] && STATECONb="enabled"
 if [ "`pidof pppd`" != "" ];then #v409
  [ ! -f /etc/ppp/peers/wvdial ] && sleep 1 #v409 allow kill completion and repeat test. v412 0.3 to 1.
  [ "`pidof pppd`" != "" ] && STATECONb="enabled"
 fi #v409
 
-MSG1="WARNING! No modem detected! You cannot dialout!"
+MSG1="$(gettext 'WARNING! No modem detected! You cannot dialout!')"
 STATECONa="disabled"
 STATETEST="disabled" #101117
 STATECCM="yes"
 STATEDTM="yes"
 STATEBCM="yes"
@@ -238,12 +245,12 @@
 [ "$DEVM" = "" ] && DEVM='MYDEVM' #v4.00 bugfix, crashed if no DEVM.
 [ ! -f /tmp/pupdial.log ] && touch /tmp/pupdial.log #v408 rerwin, moved up.
 if [ "${DEVM}" != "MYDEVM" ];then
  [ -f /tmp/.pupdial-modem_detected ] \
   && rm -f /tmp/.pupdial-modem_detected \
-  && MSG1="Modem detected! Device interface: /dev/$DEVM" \
-  || MSG1="Selected modem device interface: /dev/$DEVM" #v433
+  && MSG1="$(gettext 'Modem detected! Device interface:') /dev/$DEVM" \
+  || MSG1="$(gettext 'Selected modem device interface:') /dev/$DEVM" #v433
   #101117 Protect HSF/HCF connections from lockup - ensure nvm files installed.
  [ "`pidof pppd`" = "" ] \
   && STATETEST="enabled" \
   && [ "`echo "${DEVM}" | grep 'ttySHSF[0-9]'`" = "" -o -d /etc/hsfmodem/nvm ] \
   && [ "`echo "${DEVM}" | grep 'ttySHCF[0-9]'`" = "" -o -d /etc/hcfpcimodem/nvm ] \
@@ -253,28 +260,28 @@
   || TESTMSG="$DEVMALT" #v433
  TESTDEVM="$TESTMSG" #v432
  #[ ! -f /tmp/pupdial.log ] && touch /tmp/pupdial.log
  [ "`grep 'MODEM WAS NOT AUTOMATICALLY DETECTED' /tmp/pupdial.log`" != "" ] && echo -n "" > /tmp/pupdial.log
  if [ "`grep 'Barry Kauler' /tmp/pupdial.log`" = "" ];then
-  echo -n "Welcome to PupDial, written by Barry Kauler, with
+  echo -n "`gettext \"Welcome to PupDial, written by Barry Kauler, with
 contributions from Richard Erwin, for Puppy Linux.
 
 There is a configuration file, /etc/wvdial.conf, that is read by
 PupDial, and changes made to any of the above boxes will be saved
 to wvdial.conf when you click the 'Exit' or 'Connect' buttons.
 Note, you can also manually edit wvdial.conf with a text editor.
 
 If you are using PupDial for the first time, it is recommended that
-you click the help buttons, in particular the 'Modem setup' button." >> /tmp/pupdial.log
+you click the help buttons, in particular the 'Modem setup' button.\"`" >> /tmp/pupdial.log
  fi
 else
  if [ "`grep 'Barry Kauler' /tmp/pupdial.log`" = "" ];then
-  echo "Welcome to PupDial, written by Barry Kauler, with
+  echo "`gettext \"Welcome to PupDial, written by Barry Kauler, with
 contributions from Richard Erwin, for Puppy Linux.
 
 A MODEM WAS NOT AUTOMATICALLY DETECTED, SO YOU
-NEED TO CLICK THE 'CHOOSE' BUTTON. DO THIS NOW!
+NEED TO CLICK THE 'CHOOSE' BUTTON. DO THIS NOW!\"`
 " > /tmp/pupdial.log
  fi
 fi
 
  BAUDM="`cat /etc/wvdial.conf | grep '^Baud = ' | cut -f 3 -d ' '`"
@@ -354,68 +361,68 @@
  #<     <default>\"${INIT3M}\"</default>
  #>     <input>echo \"${INIT3M}\"</input>
 
  MODEMINFO="
 <hbox>
- <frame Line status>
+ <frame $(gettext 'Line status')>
   <vbox>
    <checkbox>
-    <label>Carrier check</label>
+    <label>$(gettext 'Carrier check')</label>
     <variable>CHECKCC</variable>
     <default>${STATECCM}</default>
    </checkbox>
    <checkbox>
-    <label>Dialtone check</label>
+    <label>$(gettext 'Dialtone check')</label>
     <variable>CHECKDT</variable>
     <default>${STATEDTM}</default>
    </checkbox>
    <checkbox>
-    <label>Busy check</label>
+    <label>$(gettext 'Busy check')</label>
     <variable>CHECKBC</variable>
     <default>${STATEBCM}</default>
    </checkbox>
   </vbox>
  </frame>
  <vbox>
   <hbox>
-   <text><label>Initialisation string 2:</label></text>
-   <entry tooltip-text=\"String for modem initialisation\">
+   <text><label>$(gettext 'Initialisation string 2:')</label></text>
+   <entry tooltip-text=\"$(gettext 'String for modem initialisation')\">
     <input>echo \"${INIT2M}\"</input>
     <variable>ENTRYINIT2M</variable>
    </entry>
   </hbox>
   <hbox>
-   <text><label>Initialisation string 3:</label></text>
-   <entry tooltip-text=\"String for modem initialisation\">
+   <text><label>$(gettext 'Initialisation string 3:')</label></text>
+   <entry tooltip-text=\"$(gettext 'String for modem initialisation')\">
     <input>echo \"${INIT3M}\"</input>
     <variable>ENTRYINIT3M</variable>
    </entry>
   </hbox>
   <hbox>
-   <text><label>Max speed:</label></text>
+   <text><label>$(gettext 'Max speed:')</label></text>
    <entry>
     <default>\"${BAUDM}\"</default>
     <variable>ENTRYBAUDM</variable>
    </entry>
-   <text><label>SIM PIN:</label></text>
-   <entry tooltip-text=\"Enter your SIM PIN only if required\">
+   <text><label>$(gettext 'SIM PIN:')</label></text>
+   <entry tooltip-text=\"$(gettext 'Enter your SIM PIN only if required')\">
     <visible>password</visible>
     <input>echo \"${WPINM}\"</input>
     <variable>ENTRYWPINM</variable>
    </entry>
   </hbox>
  </vbox>
- <frame Test/Select>
+ <frame $(gettext 'Test/Select')>
   <vbox>
    <button>
     <label>${TESTMSG}</label>
     <visible>${STATETEST}</visible>
     <action>/usr/sbin/modemtest ${TESTDEVM}</action>
     <action type=\"exit\">reload</action>
    </button>
    <button>
-    <label>CHOOSE</label>
+    <label>$(gettext 'CHOOSE')</label>
     <action>/usr/sbin/modemprobe</action>
     <action>cat /tmp/logwvdialprobe > /tmp/pupdial.log 2> /dev/null</action>
     <action type=\"exit\">reload</action>
    </button>
   </vbox>
@@ -423,172 +430,172 @@
 </hbox>
 "
 
 
 export MAINDIALOG="
-<window title=\"PupDial modem Internet dialer\" icon-name=\"gtk-connect\">
+<window title=\"$(gettext 'PupDial modem Internet dialer')\" icon-name=\"gtk-connect\">
  <vbox>
-  <frame Modem setup>
+  <frame $(gettext 'Modem setup')>
    <text use-markup=\"true\"><label>\"<b>$MSG1</b>\"</label></text>
    ${MODEMINFO}
   </frame>
    <hbox>
-    <notebook labels=\"Account 1|Account2\">
+    <notebook labels=\"$(gettext 'Account 1|Account2')\">
      <vbox>
 
       <hbox>
-       <text><label>Phone number:</label></text>
-       <entry tooltip-text=\"Enter the Phone or Access Number here\">
+       <text><label>$(gettext 'Phone number:')</label></text>
+       <entry tooltip-text=\"$(gettext 'Enter the Phone or Access Number here')\">
         <default>\"${ACC1ISP}\"</default>
         <variable>ENTRYACC1ISP</variable>
        </entry>
 
-       <text><label>Username:</label></text>
+       <text><label>$(gettext 'Username:')</label></text>
        <entry>
         <default>\"${ACC1USER}\"</default>
         <variable>ENTRYACC1USER</variable>
        </entry>
       </hbox>
 
       <hbox>
-       <text><label>Wireless:   APN:</label></text>
-       <entry tooltip-text=\"Only for 3G or cell/mobile phone connections\">
+       <text><label>$(gettext 'Wireless:   APN:')</label></text>
+       <entry tooltip-text=\"$(gettext 'Only for 3G or cell/mobile phone connections')\">
         <default>\"${ACC1APN}\"</default>
         <variable>ENTRYACC1APN</variable>
        </entry>
 
-       <text><label>Password :</label></text>
-       <entry tooltip-text=\"Enter your password here\">
+       <text><label>$(gettext 'Password :')</label></text>
+       <entry tooltip-text=\"$(gettext 'Enter your password here')\">
         <visible>password</visible>
         <default>\"${ACC1PASS}\"</default>
         <variable>ENTRYACC1PASS</variable>
        </entry>
       </hbox>
 
       <hbox homogeneous=\"true\">
-       <checkbox tooltip-text=\"Recommended to check this box if using a 3G modem\">
-        <label>Stupid mode</label>
+       <checkbox tooltip-text=\"$(gettext 'Recommended to check this box if using a 3G modem')\">
+        <label>$(gettext 'Stupid mode')</label>
          <variable>ynSTUPID_MODE1</variable>
          <default>${ynSTUPID_MODE1}</default>
        </checkbox>
 
-       <checkbox tootip-text=\"Make sure this box is checked to attempt auto reconnection\">
-        <label>Auto Reconnect</label>
+       <checkbox tootip-text=\"$(gettext 'Make sure this box is checked to attempt auto reconnection')\">
+        <label>$(gettext 'Auto Reconnect')</label>
          <variable>ynAUTO_RECONNECT1</variable>
          <default>${ynAUTO_RECONNECT1}</default>
        </checkbox>
 
-       <button tooltip-text=\"Connect to the Internet\">
-        <label>CONNECT</label>
+       <button tooltip-text=\"$(gettext 'Connect to the Internet')\">
+        <label>$(gettext 'CONNECT')</label>
         <input file stock=\"gtk-connect\"></input>
         <visible>${STATECONa}</visible>
         <action type=\"exit\">CONNECT1</action>
        </button>
       </hbox>
      </vbox>
 
      <vbox>
       <hbox>
-       <text><label>Phone number:</label></text>
-       <entry tooltip-text=\"Enter the Phone or Access Number here\">
+       <text><label>$(gettext 'Phone number:')</label></text>
+       <entry tooltip-text=\"$(gettext 'Enter the Phone or Access Number here')\">
         <default>\"${ACC2ISP}\"</default>
         <variable>ENTRYACC2ISP</variable>
        </entry>
 
-       <text><label>Username:</label></text>
+       <text><label>$(gettext 'Username:')</label></text>
        <entry>
         <default>\"${ACC2USER}\"</default>
         <variable>ENTRYACC2USER</variable>
        </entry>
       </hbox>
 
       <hbox>
-      <text><label>Wireless:   APN:</label></text>
-       <entry tooltip-text=\"Only for 3G or cell/mobile phone connections\">
+      <text><label>$(gettext 'Wireless:   APN:')</label></text>
+       <entry tooltip-text=\"$(gettext 'Only for 3G or cell/mobile phone connections')\">
         <default>\"${ACC2APN}\"</default>
         <variable>ENTRYACC2APN</variable>
        </entry>
 
-       <text><label>Password :</label></text>
-       <entry  tooltip-text=\"Enter your password here\">
+       <text><label>$(gettext 'Password :')</label></text>
+       <entry  tooltip-text=\"$(gettext 'Enter your password here')\">
         <visible>password</visible>
         <default>\"${ACC2PASS}\"</default>
         <variable>ENTRYACC2PASS</variable>
        </entry>
       </hbox>
 
       <hbox homogeneous=\"true\">
-       <checkbox tooltip-text=\"Recommended to check this box if using a 3G modem\">
-        <label>Stupid mode</label>
+       <checkbox tooltip-text=\"$(gettext 'Recommended to check this box if using a 3G modem')\">
+        <label>$(gettext 'Stupid mode')</label>
         <variable>ynSTUPID_MODE2</variable>
         <default>${ynSTUPID_MODE2}</default>
        </checkbox>
 
-       <checkbox tootip-text=\"Make sure this box is checked to attempt auto reconnection\">
-        <label>Auto Reconnect</label>
+       <checkbox tootip-text=\"$(gettext 'Make sure this box is checked to attempt auto reconnection')\">
+        <label>$(gettext 'Auto Reconnect')</label>
         <variable>ynAUTO_RECONNECT2</variable>
         <default>${ynAUTO_RECONNECT2}</default>
        </checkbox>
 
        <button>
-        <label>CONNECT</label>
+        <label>$(gettext 'CONNECT')</label>
         <input file stock=\"gtk-connect\"></input>
         <visible>${STATECONa}</visible>
         <action type=\"exit\">CONNECT2</action>
        </button>
       </hbox>
      </vbox>
     </notebook>
      <vbox>
-      <frame Help>
+      <frame $(gettext 'Help')>
        <hbox>
-        <text><label>WvDial run:</label></text>
-        <button tooltip-text=\"Open help for WvDial run in a dialog window\">
+        <text><label>$(gettext 'WvDial run:')</label></text>
+        <button tooltip-text=\"$(gettext 'Open help for WvDial run in a dialog window')\">
          <input file stock=\"gtk-help\"></input>
-         <action>Xdialog --wmclass \"pupdial\" --title \"WvDial documentation\" --no-cancel --fixed-font --textbox /usr/share/doc/wvdial/wvdial.txt 0 0 & </action>
+         <action>Xdialog --wmclass \"pupdial\" --title \"$(gettext 'WvDial documentation')\" --no-cancel --fixed-font --textbox /usr/share/doc/wvdial/wvdial.txt 0 0 & </action>
         </button>
        </hbox>
 
        <hbox>
-        <text><label> WvDial config:</label></text>
-        <button tooltip-text=\"Open help for WvDial configuration in a dialog window\">
+        <text><label> $(gettext 'WvDial config:')</label></text>
+        <button tooltip-text=\"$(gettext 'Open help for WvDial configuration in a dialog window')\">
         <input file stock=\"gtk-help\"></input>
-         <action>Xdialog --wmclass \"pupdial\" --title \"WvDial documentation\" --no-cancel --fixed-font --textbox /usr/share/doc/wvdial/wvdial.conf.txt 0 0 &</action>
+         <action>Xdialog --wmclass \"pupdial\" --title \"$(gettext 'WvDial documentation')\" --no-cancel --fixed-font --textbox /usr/share/doc/wvdial/wvdial.conf.txt 0 0 &</action>
         </button>
        </hbox>
 
        <hbox>
-        <text><label> Modem setup:</label></text>
-        <button tooltip-text=\"Open help for modem setup in Browser window\">
+        <text><label> $(gettext 'Modem setup:')</label></text>
+        <button tooltip-text=\"$(gettext 'Open help for modem setup in Browser window')\">
          <input file stock=\"gtk-help\"></input>
          <action>defaulthtmlviewer file:///usr/share/doc/HOWTO_modem.htm &</action>
         </button>
        </hbox>
       </frame>
     </vbox>
    <vbox>
     <frame Exit>
 
-      <button tooltip-text=\"Disconnect from the internet\">
+      <button tooltip-text=\"$(gettext 'Disconnect from the internet')\">
        <input file stock=\"gtk-disconnect\"></input>
        <visible>${STATECONb}</visible>
        <action>/usr/sbin/modemdisconnect</action>
        <action>rm -f /tmp/pupdial.log</action>
        <action type=\"exit\">EXIT</action>
       </button>
 
-      <button tooltip-text=\"Exit the program\">
+      <button tooltip-text=\"$(gettext 'Exit the program')\">
        <input file stock=\"gtk-quit\"></input>
        <action type=\"exit\">EXIT</action>
        </button>
 
      </frame>
     </vbox>
 
    </hbox>
 
-  <frame Connection status log>
+  <frame $(gettext 'Connection status log')>
    <edit editable=\"false\">
     <variable>INFO</variable>
     <input file>/tmp/pupdial.log</input>
     <height>90</height>
    </edit>
@@ -721,16 +728,16 @@
 
 [Dialer pin]
 Init1 = AT+CPIN=${ENTRYWPINM}
 
 [Dialer wireless]
-#To force only 2G or 3G, uncomment the Init4 line and append 0 (2G) or 2 (3G), and substitute your operator's name for MYOPS.
+#`gettext \"To force only 2G or 3G, uncomment the Init4 line and append 0 (2G) or 2 (3G), and substitute your operator's name for MYOPS.\"`
 ${INIT4M}
-#Init6-Init9 lines are available for user purposes; the commented examples can be used as described:
-#To force the 3G quality of service level, uncomment the Init6/Init7 line pair and set value two places each, for 384k/144k/64k, omitting the \"k\" (e.g., =1,4,64,384,64,384).
-#To list all the APNs stored in the modem, uncomment the Init8 line; check the Connection status log for lines beginning with +CGDCONT:.
-#To list the operator identifier stored in the modem, uncomment the Init9 line; check the Connection status log for a line beginning with +COPS:.
+#$(gettext 'Init6-Init9 lines are available for user purposes; the commented examples can be used as described:')
+#$(gettext 'To force the 3G quality of service level, uncomment the Init6/Init7 line pair and set value two places each, for 384k/144k/64k, omitting the \"k\" (e.g., =1,4,64,384,64,384).')
+#$(gettext 'To list all the APNs stored in the modem, uncomment the Init8 line; check the Connection status log for lines beginning with +CGDCONT:.')
+#$(gettext 'To list the operator identifier stored in the modem, uncomment the Init9 line; check the Connection status log for a line beginning with +COPS:').
 ${INIT69M}" >> /etc/wvdial.conf
 
 [ "$EXIT" = "EXIT" ] && exit
 
 if [ "$EXIT" = "CONNECT1" -o "$EXIT" = "CONNECT2" ];then
@@ -795,11 +802,11 @@
   && cp -f /etc/ppp/wvdial-pipe /etc/ppp/peers/ #v3.98
  wvdial ${WVISP} ${WVPIN} ${WVAPN} ${WVWRLS} &> /tmp/pupdial.log & #v413
  [ ! -f /tmp/pupdial.log ] && sleep 1
  [ ! -f /tmp/pupdial.log ] && sleep 1
  /usr/sbin/pupdial_wizard_helper & #101206
- Xdialog --center --wmclass "pupdial" --backtitle "NOTICE: If the log shows a failure to connect, please click left button" --title "PupDial: WvDial connection log" --ok-label "DISCONNECT or stop trying" --cancel-label "CLOSE window but stay online" --fixed-font --tailbox /tmp/pupdial.log 20 80
+ Xdialog --center --wmclass "pupdial" --backtitle "$(gettext 'NOTICE: If the log shows a failure to connect, please click left button')" --title "$(gettext 'PupDial: WvDial connection log')" --ok-label "$(gettext 'DISCONNECT or stop trying')" --cancel-label "$(gettext 'CLOSE window but stay online')" --fixed-font --tailbox /tmp/pupdial.log 20 80
  if [ $? -eq 0 ];then
   /usr/sbin/modemdisconnect #v433
   echo '' >> /tmp/pupdial.log
   echo '------------------------------------------------------' >> /tmp/pupdial.log
   echo '' >> /tmp/pupdial.log

Changes to woof-code/rootfs-skeleton/usr/sbin/pupdial_init_hotpluggable

@@ -6,10 +6,14 @@
 #101206 wait. remember previous modem.
 #101207 if usb-modeswitch has already set /dev/gsmmodem, use it.
 #101207 modem plugged in at bootup, may not trigger usb-modeswitch, replay uevents.
 #101210, 101211 tweaks.
 #110302 wasn't getting the right uevents for my 3g modem, use 'udevadm trigger'.
+#120202 internationalized.
+
+export TEXTDOMAIN=pupdial_init_hotpluggable
+export OUTPUT_CHARSET=UTF-8
 
 #hso.ko: this site http://www.pharscape.org/hso.html states that the hso driver is in kernel
 #2.6.27. Yes, it is in kernel/drivers/net/usb/hso.ko. It is also in the 2.6.30.* kernel.
 #however it is missing from 2.6.31 and later kernels...
 #oh, i see why. I have configured 2.6.31 and later with 'rfkill' turned off, which
@@ -45,11 +49,11 @@
 
 MODEM=''
 
 hPID=0 #101211 do not display msg on 2nd entry...
 if [ ! $1 ];then
- yaf-splash -bg orange -placement center -close never -fontsize large -text "Please wait, probing for hotpluggable (external) modems..." &
+ yaf-splash -bg orange -placement center -close never -fontsize large -text "$(gettext 'Please wait, probing for hotpluggable (external) modems...')" &
  hPID=$!
 fi
 
 #101206 wait...
 BRKCNT=0

Changes to woof-code/rootfs-skeleton/usr/sbin/pupdial_wizard_helper

@@ -4,10 +4,14 @@
 #want to see if a network connection, if so offer to start firewall.
 #also, offer to make pupdial the default when click 'connect' icon.
 #101017 checkbox to not run this dialog again.
 #101026 improve ppp0 active test.
 #101206 now called from pupdial after wvdial run.
+#120202 BK: internationalized.
+
+export TEXTDOMAIN=pupdial_wizard_helper
+export OUTPUT_CHARSET=UTF-8
 
 DEFAULTCONNECT="`cat /usr/local/bin/defaultconnect | tail -n 1 | tr -s " " | cut -f 2 -d " "`"
 [ "$DEFAULTCONNECT" == "pupdial" ] && exit
 
 [ -f /var/local/sns/pupdial_default_noask ] && exit #101017
@@ -18,23 +22,23 @@
 
 #dlg to ask (code copied from /usr/local/simple_network_setup/sns)...
 MSGFIREWALL=""
 CHKFIREWALL=""
 if [ ! -f /etc/rc.d/rc.firewall ];then
- MSGFIREWALL="<text><label>However, there is one item of recommended housekeeping: you really should be running a firewall. Puppy is inherently secure, however a firewall will give you that extra protection while online. Recommend that you tick the 'Start firewall' checkbox (the firewall will install and will automatically run at all future boots)...</label></text>"
- CHKFIREWALL="<checkbox><label>Start firewall</label><default>true</default><variable>CHK_FIREWALL</variable></checkbox>"
+ MSGFIREWALL="<text><label>$(gettext "However, there is one item of recommended housekeeping: you really should be running a firewall. Puppy is inherently secure, however a firewall will give you that extra protection while online. Recommend that you tick the 'Start firewall' checkbox (the firewall will install and will automatically run at all future boots)...")</label></text>"
+ CHKFIREWALL="<checkbox><label>$(gettext 'Start firewall')</label><default>true</default><variable>CHK_FIREWALL</variable></checkbox>"
 fi
-export WIN3_DLG="<window title=\"Wizard: PupDial post-connect\" icon-name=\"gtk-network\">
+export WIN3_DLG="<window title=\"$(gettext 'Wizard: PupDial post-connect')\" icon-name=\"gtk-network\">
         <vbox>
          <pixmap><input file>/usr/local/lib/X11/pixmaps/ok.xpm</input></pixmap>
-         <text><label>It seems that you have successfully dialed the Internet!</label></text>
+         <text><label>$(gettext 'It seems that you have successfully dialed the Internet!')</label></text>
          ${MSGFIREWALL}
          ${CHKFIREWALL}
-         <text><label>Recommend leave this checkbox ticked, so that Puppy will use PupDial to automatically connect to the Internet at bootup. Also clicking the 'connect' icon on the desktop will immediately launch PupDial...</label></text>
-         <checkbox><label>Set PupDial as default network setup tool</label><default>true</default><variable>CHK_SNSDEF</variable></checkbox>
-         <text><label>If you sometimes connect with PupDial, sometimes by other means such as via a LAN or router, and you don't want to set PupDial as the default connection method and you don't want this dialog box to pop up everytime you run PupDial, then leave the above checkbox unticked and tick this box...</label></text>
-         <checkbox><label>Do not display this dialog box again</label><default>false</default><variable>CHK_NOASK</variable></checkbox>
+         <text><label>$(gettext "Recommend leave this checkbox ticked, so that Puppy will use PupDial to automatically connect to the Internet at bootup. Also clicking the 'connect' icon on the desktop will immediately launch PupDial..."</label></text>
+         <checkbox><label>$(gettext 'Set PupDial as default network setup tool')</label><default>true</default><variable>CHK_SNSDEF</variable></checkbox>
+         <text><label>$(gettext "If you sometimes connect with PupDial, sometimes by other means such as via a LAN or router, and you don't want to set PupDial as the default connection method and you don't want this dialog box to pop up everytime you run PupDial, then leave the above checkbox unticked and tick this box...")</label></text>
+         <checkbox><label>$(gettext 'Do not display this dialog box again')</label><default>false</default><variable>CHK_NOASK</variable></checkbox>
          <hbox>
           <button ok></button>
          </hbox>
         </vbox>
         </window>"

Changes to woof-code/rootfs-skeleton/usr/sbin/puppyinstaller

@@ -40,20 +40,25 @@
 #110126 no longer using SATADRIVES variable in /etc/rc.d/PUPSTATE. support install to card, /dev/mmcblk*. remove zip/ls120 install.
 #110422 DISTRO_VERSION variable now has dotted format. note, also now using full dotted version# in puppy filenames.
 #110505 support sudo for non-root user.
 #110814 convert script from gtkdialog2 to gtkdialog3+.
 #111011 bump to gtkdialog4. small fixes.
-#111027 as no longer have global LANG=C, messes up 'dc' utility for those that have , instead of dot, ex 5,34
 #120126 jemimah: clear SELECTIONS variable, add ntfs exclusion.
+#120202 rodin.s: internationalized
 
 [ "`whoami`" != "root" ] && exec sudo -A ${0} ${@} #110505
+
+export TEXTDOMAIN=puppyinstaller
+export OUTPUT_CHARSET=UTF-8
+. gettext.sh
+export LANGORG=$(locale | grep LANG | cut -d '=' -f2)
 
 GTKDIALOGEXE="`which gtkdialog4`"
 [ ! "$GTKDIALOGEXE" ] && GTKDIALOGEXE="`which gtkdialog`"
 [ ! "$GTKDIALOGEXE" ] && exit 1
 
-#export LANG=C
+#export LANG=C #110510 comment out for i18n
 #NEWVER="`cat /etc/puppyversion`"
 KERNELVER="`uname -r`"
 
 . /etc/rc.d/PUPSTATE
 . /etc/DISTRO_SPECS
@@ -135,44 +140,44 @@
 
 gpartedfixfunc() { #params: $DRVSEL
  GPDRV="$1"
  gparted /dev/$GPDRV &
  sleep 2
- gxmessage -bg '#ba55d3' -center -title "Puppy Universal Installer" "GParted is a partition manager, available in Puppy, a very simple tool
-for deleting, creating and resizing partitions.
-
-Regarding 'ntfs' or 'vfat', of course do not change these to ext2 or ext3 if the
+ xmessage -bg '#ba55d3' -center -title "$(gettext 'Puppy Universal Installer')" "$(gettext 'GParted is a partition manager, available in Puppy, a very simple tool
+for deleting, creating and resizing partitions.')
+
+`eval_gettext \"Regarding 'ntfs' or 'vfat', of course do not change these to ext2 or ext3 if the
 partition has Windows or DOS installed on it! In the case of USB Flash drives,
 these normally come with a 'fat16' partition which is okay, but you will be
-restricted to saving to a '${DISTRO_FILE_PREFIX}save' file. This is fine and most people opt for
+restricted to saving to a '\\\${DISTRO_FILE_PREFIX}save' file. This is fine and most people opt for
 this, particularly as the drive can be used also to save and transfer files with
 Windows. However, a Flash drive can be changed to ext2/3 and still boots fine,
 with the advantage that the entire partition can be used to save to, rather than
-a '${DISTRO_FILE_PREFIX}save' file. If in doubt, stay with 'vfat'.
-
-WARNING: changing the filesystem will wipe everything in the partition!
-
-One more thing. When you run GParted, right-click on the partition and you will
+a '\\\${DISTRO_FILE_PREFIX}save' file. If in doubt, stay with 'vfat'.\"`
+
+$(gettext 'WARNING: changing the filesystem will wipe everything in the partition!')
+
+`gettext \"One more thing. When you run GParted, right-click on the partition and you will
 see a menu option to 'Manage flags'. Make sure the 'boot' flag is set -- don't
-forget that!
-
-If you have a USB Flash 'key' drive that you have installed Puppy to but it will
+forget that!\"`
+
+`gettext \"If you have a USB Flash 'key' drive that you have installed Puppy to but it will
 not boot, it may be that the partition(s) is confusing the PC's BIOS.
 Personally, I was able to fix such a USB drive by wiping the existing partition
 and then create it again using GParted.
 The steps to do this are very simple: when GParted is running,
  1. delete all partitions on the USB device.
  2. Create a new primary FAT16 partition, to fill the entire drive.
  3. Click the 'Apply' button to write changes to the USB drive.
  4. Set the 'boot' configuration flag (right-click on partition,
-    choose 'manage flags').
-
-If GParted is installed, it is now running and you can do the above.
-Quiting GParted will return you to the Puppy Universal Installer...
-
-One final note for USB: after exiting GParted, do a mouse-over the desktop drive
-icon(s) -- if it(they) has not updated, unplug then replug the USB drive." &
+    choose 'manage flags').\"`
+
+$(gettext 'If GParted is installed, it is now running and you can do the above.
+Quiting GParted will return you to the Puppy Universal Installer...')
+
+$(gettext 'One final note for USB: after exiting GParted, do a mouse-over the desktop drive
+icon(s) -- if it(they) has not updated, unplug then replug the USB drive.')" &
  MSGID=$!
  while [ 1 ];do
   [ "`pidof gparted`" = "" ] && break #v424
   sleep 1
  done
@@ -185,56 +190,56 @@
 
 fixusbfunc() { #params: $DESTPART $DESTFS
  echo '#!/bin/sh
 DESTPART="$1" #partition being installed to
 DESTFS="$2"   #filesystem of destination partition
-echo "This little section of the Puppy Universal Installer is currently only"
-echo "for fixing USB Flash or CF-card-in-IDE-adaptor, after you have gone thru"
-echo "all the steps but it still will not boot."
-echo
-echo "You are trying to install to $DESTPART, but it is not booting..."
-echo "Well, I am assuming that the BIOS in your PC is able to boot from USB."
-echo "-- for CF-IDE the drive looks like an ordinary hard drive, so that should"
-echo "   be okay for any BIOS."
-echo
-echo "This is the first release of this script, and it is a bit limited..."
-echo "and only handles a partition with a msdos/vfat filesystem."
+echo "'$(gettext 'This little section of the Puppy Universal Installer is currently only')'"
+echo "'$(gettext 'for fixing USB Flash or CF-card-in-IDE-adaptor, after you have gone thru')'"
+echo "'$(gettext 'all the steps but it still will not boot.')'"
+echo
+echo "'$(gettext 'You are trying to install to')' $DESTPART, '$(gettext 'but it is not booting...')'"
+echo "'$(gettext 'Well, I am assuming that the BIOS in your PC is able to boot from USB.')'"
+echo "'$(gettext '-- for CF-IDE the drive looks like an ordinary hard drive, so that should')'"
+echo "   '$(gettext 'be okay for any BIOS.')'"
+echo
+echo "'$(gettext 'This is the first release of this script, and it is a bit limited...')'"
+echo "'$(gettext 'and only handles a partition with a msdos/vfat filesystem.')'"
 if [ "$DESTFS" = "vfat" ];then
- echo "...which is okay, $DESTPART does have a $DESTFS filesystem."
- echo "   But, we will now wipe it and recreate it."
-else
- echo "...currently $DESTPART has a $DESTFS filesystem."
- echo "   This script is not yet designed for that, so cannot continue."
+ echo "'$(gettext '...which is okay,')' $DESTPART '$(gettext 'does have a')' $DESTFS '$(gettext 'filesystem.')'"
+ echo "   '$(gettext 'But, we will now wipe it and recreate it.')'"
+else
+ echo "'$(gettext '...currently')' $DESTPART '$(gettext 'has a')' $DESTFS '$(gettext 'filesystem.')'"
+ echo "   '$(gettext 'This script is not yet designed for that, so cannot continue.')'"
  echo
- echo -n "Press ENTER key to exit: "
+ echo -n "'$(gettext 'Press ENTER key to exit:')' "
  read nogo
  exit
 fi
 echo
-echo "Please be sure that you are wiping the right partition!!!"
-echo "Everything in $DESTPART is going to be wiped. If you do not want that,"
-echo "press any letter on the keyboard then ENTER key, or"
-echo -n "Press ENTER key only to continue script: "
+echo "'$(gettext 'Please be sure that you are wiping the right partition!!!')'"
+echo "'$(gettext 'Everything in')' $DESTPART '$(gettext 'is going to be wiped. If you do not want that,')'"
+echo "'$(gettext 'press any letter on the keyboard then ENTER key, or')'"
+echo -n "'$(gettext 'Press ENTER key only to continue script:')' "
 read querygo
 echo
-echo "Recreating msdos filesystem on $DESTPART..."
+echo "'$(gettext 'Recreating msdos filesystem on')' $DESTPART..."
 mkdosfs /dev/$DESTPART
 sync
-echo "Fixing the Master Boot Record (MBR)..."
+echo "'$(gettext 'Fixing the Master Boot Record (MBR)...')'"
 #DESTDRV="`echo -n "$DESTPART" | cut -b 1-3`"
 DESTDRV="`echo -n "$DESTPART" | sed -e "s/[0-9]*$//" -e "s/p$//"`" #110126 mmcblk0p1 becomes mmcblk0
 dd if=/usr/lib/syslinux/mbrfat.bin of=/dev/$DESTDRV
 sync
-echo "...done"
+echo "'$(gettext '...done')'"
 echo
-echo "Okay, we can now go back to the main part of the Puppy Universal"
-echo "Installer and install Puppy to the $DESTPART partition."
-echo -n "Press ENTER key to continue: "
+echo "'$(gettext 'Okay, we can now go back to the main part of the Puppy Universal')'"
+echo "'$(gettext 'Installer and install Puppy to the')' $DESTPART '$(gettext 'partition.')'"
+echo -n "'$(gettext 'Press ENTER key to continue:')' "
 read yesgo
 ' > /tmp/fixusb.sh
  chmod 755 /tmp/fixusb.sh
- rxvt -bg "pink" -title "Puppy Universal Installer" -geometry 80x25 -e /tmp/fixusb.sh
+ rxvt -bg "pink" -title "$(gettext 'Puppy Universal Installer')" -geometry 80x25 -e /tmp/fixusb.sh
 }
 
 unmountcdfunc() {
  if [ ! "$CDDRIVE" = "" ];then
   if [ ! "`mount | grep "/dev/$CDDRIVE"`" = "" ];then
@@ -264,41 +269,41 @@
   break
  fi
 done
 [ -f /tmp/srcpath.txt ] && SRCPATH="`cat /tmp/srcpath.txt`"
 if [ "$SRCPATH" = "" ];then
- LANG=C Xdialog --wmclass "gtkdialog2" --left --buttons-style text --title "Puppy universal installer" --ok-label "CD" --cancel-label "DIRECTORY" --yesno "Puppy consists of 2 to 4 files:\nvmlinuz      The Linux kernel\ninitrd.gz    The initial ramdisk.\n${DISTRO_PUPPYSFS}  This has all the Puppy files (sometimes inside initrd.gz).\n             (if built inside initrd.gz then only initrd.gz is required)\n${DISTRO_ZDRVSFS} Extra kernel drivers and firmware (optional).\n             (most builds have a usable selection of drivers in ${DISTRO_PUPPYSFS})\nIf you booted Puppy from a live-CD, those files will be on it.\nOtherwise, they are in the .iso file and can be extracted -- in that\ncase, just click on the .iso file and it will be mounted (opened) in\na directory (do not forget to click on the file later to unmount it!)\n\nWhere are the Puppy files?..." 0 0
+ Xdialog --wmclass "gtkdialog2" --left --buttons-style text --title "$(gettext 'Puppy universal installer')" --ok-label "CD" --cancel-label "$(gettext 'DIRECTORY')" --yesno "`eval_gettext \"Puppy consists of 2 to 4 files:\nvmlinuz      The Linux kernel\ninitrd.gz    The initial ramdisk.\n\\\${DISTRO_PUPPYSFS}  This has all the Puppy files (sometimes inside initrd.gz).\n             (if built inside initrd.gz then only initrd.gz is required)\n\\\${DISTRO_ZDRVSFS} Extra kernel drivers and firmware (optional).\n             (most builds have a usable selection of drivers in \\\${DISTRO_PUPPYSFS})\nIf you booted Puppy from a live-CD, those files will be on it.\nOtherwise, they are in the .iso file and can be extracted -- in that\ncase, just click on the .iso file and it will be mounted (opened) in\na directory (do not forget to click on the file later to unmount it!)\n\nWhere are the Puppy files?...\"`" 0 0
  RETVAL=$?
  if [ $RETVAL -eq 0 ];then #CD
   CDDRIVE="`readlink /dev/cdrom`"
   CDDRIVE="`basename $CDDRIVE`"
   CDDRVINFO="`probedisk2 | grep "/dev/$CDDRIVE" | cut -f 3 -d '|'`"
-  LANG=C Xdialog --wmclass "gtkdialog2" --left --title "Puppy universal installer" --msgbox "Please insert the Puppy live-CD (if not already) into the drive.\nNote, in case your PC has two CD/DVD drives, Puppy is expecting\nthe live-CD to be inserted into $CDDRIVE, which is described as:\n $CDDRVINFO \n\nAfter inserting live-CD, click OK button..." 0 0
+  Xdialog --wmclass "gtkdialog2" --left --title "$(gettext 'Puppy universal installer')" --msgbox "`eval_gettext \"Please insert the Puppy live-CD (if not already) into the drive.\nNote, in case your PC has two CD/DVD drives, Puppy is expecting\nthe live-CD to be inserted into \\\$CDDRIVE, which is described as:\n \\\$CDDRVINFO \n\nAfter inserting live-CD, click OK button...\"`" 0 0
   mkdir /mnt/$CDDRIVE 2> /dev/null
   mount -t iso9660 /dev/$CDDRIVE /mnt/$CDDRIVE
   if [ -f /mnt/$CDDRIVE/initrd.gz ];then
    SRCPATH="/mnt/$CDDRIVE"
   else
-   LANG=C Xdialog --wmclass "gtkdialog2" --left --title "Puppy universal installer: ERROR" --msgbox "Sorry, Puppy is not on the CD.\nPlease mount the CD using one of the mount programs\n(see File Managers menu) then click OK button..." 0 0
+   Xdialog --wmclass "gtkdialog2" --left --title "$(gettext 'Puppy universal installer: ERROR')" --msgbox "$(gettext 'Sorry, Puppy is not on the CD.\nPlease mount the CD using one of the mount programs\n(see File Managers menu) then click OK button...')" 0 0
    RETVAL=1
   fi
  fi
  if [ ! $RETVAL -eq 0 ];then #DIRECTORY
-  SRCFPATH="`LANG=C Xdialog --wmclass "gtkdialog2" --left --backtitle "Please find the latest Puppy files\nvmlinuz, initrd.gz and ${DISTRO_PUPPYSFS},\nTHEN HIGHLIGHT ANY ONE OF THEM\nand click the OK button" --title "Puppy universal installer" --stdout --no-buttons --no-cancel --fselect "*" 0 0`"
+  SRCFPATH="`Xdialog --wmclass "gtkdialog2" --left --backtitle "$(eval_gettext \"Please find the latest Puppy files\nvmlinuz, initrd.gz and \\\${DISTRO_PUPPYSFS},\nTHEN HIGHLIGHT ANY ONE OF THEM\nand click the OK button\")" --title "$(gettext 'Puppy universal installer')" --stdout --no-buttons --no-cancel --fselect "*" 0 0`"
   [ ! $? -eq 0 ] && exit
   SRCPATH="`dirname $SRCFPATH`"
  fi
 fi
 #sanity check...
 if [ ! -f ${SRCPATH}/${DISTRO_PUPPYSFS} ];then #v3.01 v424 100913
- LANG=C Xdialog --wmclass "gtkdialog2" --left --title "Puppy universal installer: ERROR" --msgbox "Oh dear, a \"sanity check\" has failed.\nThis file: $SRCPATH/${DISTRO_PUPPYSFS}\ndoes not exist.\nThe above is supposed to be path-to-where-puppy-files-are/${DISTRO_PUPPYSFS}\nClick OK button to quit..." 0 0
+ Xdialog --wmclass "gtkdialog2" --left --title "$(gettext 'Puppy universal installer: ERROR')" --msgbox "`eval_gettext \"Oh dear, a 'sanity check' has failed.\nThis file: \\\$SRCPATH/\\\${DISTRO_PUPPYSFS}\ndoes not exist.\nThe above is supposed to be path-to-where-puppy-files-are/\\\${DISTRO_PUPPYSFS}\nClick OK button to quit...\"`" 0 0
  exit
 fi
 } #end locate_puppy_src_files function.
 
 
-PMEDIA="`LANG=C Xdialog --wmclass "gtkdialog2" --left --title "Puppy Universal Installer" --no-tags --stdout --menubox "Welcome to the Puppy Universal Installer!\nIf you wish to install Puppy to a removable media, such as a USB Flash\nor hard drive, CD/DVD disc, Zip disk or LS-120 disk, please insert it\nright now, before proceeding.\n\nINSERT MEDIA NOW\nThen, choose the media that you want to install Puppy to:" 0 0 10 usbflash "USB Flash drive" usbhd "USB hard drive" usb2ataflash "USB CF Flash drive, later move CF card to IDE/SATA internal adaptor" iusbflash "Internal USB Flash drive (ex: uDiskOnChip)" ataflash "Internal IDE/SATA Flash drive (exs: CF card, SD memory card)" atazip "Internal ZIP or LS120 drive" atahd "Internal (IDE or SATA) hard drive" scsihd "Ancient true-SCSI hard drive" cd "CD drive"`"
+PMEDIA="`Xdialog --wmclass "gtkdialog2" --left --title "$(gettext 'Puppy Universal Installer')" --no-tags --stdout --menubox "$(gettext 'Welcome to the Puppy Universal Installer!\nIf you wish to install Puppy to a removable media, such as a USB Flash\nor hard drive, CD/DVD disc, Zip disk or LS-120 disk, please insert it\nright now, before proceeding.\n\nINSERT MEDIA NOW\nThen, choose the media that you want to install Puppy to:')" 0 0 10 usbflash "$(gettext 'USB Flash drive')" usbhd "$(gettext 'USB hard drive')" usb2ataflash "$(gettext 'USB CF Flash drive, later move CF card to IDE/SATA internal adaptor')" iusbflash "$(gettext 'Internal USB Flash drive (ex: uDiskOnChip)')" ataflash "$(gettext 'Internal IDE/SATA Flash drive (exs: CF card, SD memory card)')" atazip "$(gettext 'Internal ZIP or LS120 drive')" atahd "$(gettext 'Internal (IDE or SATA) hard drive')" scsihd "$(gettext 'Ancient true-SCSI hard drive')" cd "$(gettext 'CD drive')"`"
 [ ! $? -eq 0 ] && exit
 [ "$PMEDIA" = "" ] && exit
 
 TAGPMEDIA="$PMEDIA" #remember the tag chosen above.
 [ "$TAGPMEDIA" = "iusbflash" ] && PMEDIA="usbflash"
@@ -348,17 +353,17 @@
   do
    HDINFO="`echo "$PROBEDISK" | grep "/dev/$ONEHD" | head -n 1 | cut -f 3 -d '|' | tr '$' " " | tr -s " " | sed -e 's/ $//'`"
    HDSIZE="`disktype /dev/$ONEHD | grep "Block device" | cut -f 2 -d ',' | tr -s " " | cut -f 1-4 -d " "`"
    SELECTIONS="${SELECTIONS} $ONEHD \"${HDINFO}, ${HDSIZE}\""
   done
-  LANG=C Xdialog --wmclass "gtkdialog2" --left --title "Puppy Universal Installer" --ok-label "QUIT" --msgbox "Your computer has these CD/DVD drives:\n$SELECTIONS \n\nHowever, you cannot install Puppy to a CD/DVD in the same way as a\nhard drive, USB Flash drive or Zip drive, as the CD/DVD is not\ndirectly writable. For the CD/DVD, you need to do what is called\n'remastering' and Puppy has a program for this, called 'Remaster\nPuppy live-CD', found in the Setup menu. This program enables\nyou to create your own custom live-CD/DVD.\nNote, you will need a new blank CD-R or DVD-R (not +R).\n\nClick button to quit..." 0 0
+  Xdialog --wmclass "gtkdialog2" --left --title "$(gettext 'Puppy Universal Installer')" --ok-label "$(gettext 'QUIT')" --msgbox "`eval_gettext \"Your computer has these CD/DVD drives:\n\\\$SELECTIONS \n\nHowever, you cannot install Puppy to a CD/DVD in the same way as a\nhard drive, USB Flash drive or Zip drive, as the CD/DVD is not\ndirectly writable. For the CD/DVD, you need to do what is called\n'remastering' and Puppy has a program for this, called 'Remaster\nPuppy live-CD', found in the Setup menu. This program enables\nyou to create your own custom live-CD/DVD.\nNote, you will need a new blank CD-R or DVD-R (not +R).\n\nClick button to quit...\"`" 0 0
   exit
  ;;
  atazip)
 
   #110126 remove...
-  LANG=C Xdialog --wmclass "gtkdialog2" --left --title "Puppy Universal Installer" --ok-label "QUIT" --msgbox "Booting Puppy off a LS120 or Zip drive is such an incredibly slow experience,\nyou are being saved the pain of finding this out for yourself. For example,\nbooting from a Zip disk is typically 20 minutes!\nThis option has been removed from the Universal Installer. If you want to boot\nfrom a plug-in media, it is far far better to boot from CD/DVD, USB Flash or\nhard drive, or other solid-state memory card media.\n\n\nClick button to quit..." 0 0
+  Xdialog --wmclass "gtkdialog2" --left --title "$(gettext 'Puppy Universal Installer')" --ok-label "$(gettext 'QUIT')" --msgbox "$(gettext 'Booting Puppy off a LS120 or Zip drive is such an incredibly slow experience,\nyou are being saved the pain of finding this out for yourself. For example,\nbooting from a Zip disk is typically 20 minutes!\nThis option has been removed from the Universal Installer. If you want to boot\nfrom a plug-in media, it is far far better to boot from CD/DVD, USB Flash or\nhard drive, or other solid-state memory card media.\n\n\nClick button to quit...')" 0 0
   exit
 
   HDDRIVES="`echo "$PROBEDISK" | grep '|floppy|' | cut -f 3 -d '/' | cut -f 1 -d '|' | tr "\n" " "`"
   SELECTIONS=""
   for ONEHD in $HDDRIVES
@@ -384,22 +389,22 @@
    HDSIZE="`disktype /dev/$ONEHD | grep "Block device" | cut -f 2 -d ',' | tr -s " " | cut -f 1-4 -d " "`"
    SELECTIONS="${SELECTIONS} $ONEHD \"${HDINFO}, ${HDSIZE}\""
   done
  ;;
  *)
-  gxmessage "Not yet implemented"
+  xmessage "$(gettext 'Not yet implemented')"
   exit
  ;;
 esac
 
 if [ "$SELECTIONS" = "" ];then
- LANG=C Xdialog --wmclass "gtkdialog2" --left --title "Puppy Universal Installer" --ok-label "QUIT" --msgbox "Nothing to choose. If a plugin device, did you plug it in?" 0 0
+ Xdialog --wmclass "gtkdialog2" --left --title "$(gettext 'Puppy Universal Installer')" --ok-label "$(gettext 'QUIT')" --msgbox "$(gettext 'Nothing to choose. If a plugin device, did you plug it in?')" 0 0
  exit
 fi
 
 echo '#!/bin/sh' > /tmp/dlg1
-echo -n 'LANG=C Xdialog --wmclass "gtkdialog2" --title "Puppy Universal Installer" --no-cancel --stdout --menubox "Choose which drive to install to:" 10 60 0' >> /tmp/dlg1
+echo -n 'Xdialog --wmclass "gtkdialog2" --title "'$(gettext 'Puppy Universal Installer')'" --no-cancel --stdout --menubox "'$(gettext 'Choose which drive to install to:')'" 10 60 0' >> /tmp/dlg1
 echo -n "$SELECTIONS" >> /tmp/dlg1
 echo ' > /tmp/retval'  >> /tmp/dlg1
 echo 'exit $?' >> /tmp/dlg1
 
 chmod 755 /tmp/dlg1
@@ -421,16 +426,16 @@
 # fi
 # PMEDIA="`echo -n "$PMEDIA" | sed -e "$substPATTERN"`"
 # FINALPMEDIA="`echo -n "$FINALPMEDIA" | sed -e "$substPATTERN"`"
 #fi
 
-DRVINFO="`LANG=C disktype /dev/$DRVSEL`"
+DRVINFO="`disktype /dev/$DRVSEL`"
 SUPERFS="" #100207 need extra test on gecko edubook...
 [ "`echo "$DRVINFO" | grep '^Partition 1: '`" = "" ] && SUPERFS="`echo "$DRVINFO" | grep "file system" | grep "^[a-zA-Z]" | tr -s " " | cut -f 1 -d " "`"
 DRVSIZE="`echo "$DRVINFO" | grep "Block device" | cut -f 2 -d ',' | tr -s " " | cut -f 1-4 -d " "`"
 DRVSIZM="`echo "$DRVSIZE" | cut -f 3 -d " "`"
-[ "`echo "$DRVSIZE" | grep "GiB"`" != "" ] && DRVSIZM="`LANG=C dc $DRVSIZM 1000 \* p`" #111027
+[ "`echo "$DRVSIZE" | grep "GiB"`" != "" ] && DRVSIZM="`LANG=C dc $DRVSIZM 1000 \* p`" #120202
 IDRVSIZM="`echo -n "$DRVSIZM" | cut -f 1 -d '.'`" #truncate to integer.
 
 DRVMSG=""
 PUPINST=""
 if [ "$SUPERFS" ];then
@@ -476,28 +481,28 @@
 CHOICES="`echo "$DRVMSG" | grep ':' | cut -f 1 -d ':' | tr "\n" " "`"
 for ONECHOICE in $CHOICES
 do
  DLGTXT="$DLGTXT
    <hbox>
-    <text><label>Install Puppy to ${ONECHOICE}:</label></text>
+    <text><label>$(gettext 'Install Puppy to') ${ONECHOICE}:</label></text>
     <button>
      <input file>/usr/local/lib/X11/mini-icons/mini-dog.xpm</input>
-     <action>EXIT:${ONECHOICE}</action>
+     <action>Exit:${ONECHOICE}</action>
     </button>
    </hbox>
 "
 done
 if [ "$FINALPMEDIA" = "usbflash" ];then
- MSGex1="<text><label>IMPORTANT: If you use GParted, after creating the partition be sure to set the 'boot' flag (right-click: Manage flags). Also, for a USB Flash drive choose fat16 filesystem as easier to boot from (than fat32) -- however a ext2 or ext3 partition will also work.</label></text>
-<text><label>Extra note: Gparted may show invalid partitions on the drive, marked with a '!' icon -- delete it/them and recreate a partition (and make it bootable)</label></text>"
+ MSGex1="<text><label>`gettext \"IMPORTANT: If you use GParted, after creating the partition be sure to set the 'boot' flag (right-click: Manage flags). Also, for a USB Flash drive choose fat16 filesystem as easier to boot from (than fat32) -- however a ext2 or ext3 partition will also work.\"`</label></text>
+<text><label>`gettext \"Extra note: Gparted may show invalid partitions on the drive, marked with a '!' icon -- delete it/them and recreate a partition (and make it bootable)\"`</label></text>"
 else
- MSGex1="<text><label>IMPORTANT: If you use GParted, after creating the partition be sure to set the 'boot' flag (right-click: Manage flags).</label></text>
-<text><label>Extra note: Gparted may show invalid partitions on the drive, marked with a '!' icon -- delete it/them and recreate a partition (and make it bootable)</label></text>"
+ MSGex1="<text><label>`gettext \"IMPORTANT: If you use GParted, after creating the partition be sure to set the 'boot' flag (right-click: Manage flags).\"`</label></text>
+<text><label>`gettext \"Extra note: Gparted may show invalid partitions on the drive, marked with a '!' icon -- delete it/them and recreate a partition (and make it bootable)\"`</label></text>"
 fi
 if [ "$DLGTXT" = "" ];then
  DLGTXT="<hbox>
- <text><label>No partitions on drive ${DRVSEL}! It is recommended that you run GParted now to create a partition:</label></text>
+ <text><label>`eval_gettext \"No partitions on drive \\\${DRVSEL}! It is recommended that you run GParted now to create a partition:\"`</label></text>
     <button>
      <input file>/usr/local/lib/X11/mini-icons/mini-hdisk.xpm</input>
      <label>GParted</label>
      <action>EXIT:RUNGPARTED</action>
     </button>
@@ -510,13 +515,13 @@
 DLGEXT=""
 
 if [ "`echo "$DRVMSG" | cut -f 1 -d ':' | grep "[a-zA-Z]$"`" = "" ];then
  #ask if want superfloppy install...
  DLGEXT="$DLGEXT
-   <frame Filesystem in partition>
+   <frame $(gettext 'Filesystem in partition')>
     <hbox>
-     <text><label>WARNING: Notice the filesystem in the intended destination, is that what you want? In particular, if the f.s. is 'vfat' or 'ntfs' you might want to replace these with a Linux ext2 or ext3 f.s. if the partition can be taken over totally for Puppy's use. If you are installing to an internal drive of a PC, it is highly recommended that the f.s. be a Linux ext2 or ext3. Puppy can install to vfat/ntfs but limited to 'frugal' with '${DISTRO_FILE_PREFIX}save' only. Ntfs is particularly limited, slow and also has severe bootup options, so get rid of it if at all possible. Click the button to run GParted, which will enable you to examine and modify the partitions.</label></text>
+     <text><label>`eval_gettext \"WARNING: Notice the filesystem in the intended destination, is that what you want? In particular, if the f.s. is 'vfat' or 'ntfs' you might want to replace these with a Linux ext2 or ext3 f.s. if the partition can be taken over totally for Puppy's use. If you are installing to an internal drive of a PC, it is highly recommended that the f.s. be a Linux ext2 or ext3. Puppy can install to vfat/ntfs but limited to 'frugal' with '\\\${DISTRO_FILE_PREFIX}save' only. Ntfs is particularly limited, slow and also has severe bootup options, so get rid of it if at all possible. Click the button to run GParted, which will enable you to examine and modify the partitions.\"`</label></text>
      <vbox>
       <button>
        <input file>/usr/local/lib/X11/mini-icons/gparted.xpm</input>
        <action>EXIT:RUNGPARTED</action>
       </button>
@@ -523,11 +528,11 @@
      </vbox>
     </hbox>
    </frame>
    <frame Superfloppy>
    <hbox>
-    <text><label>WARNING: NOT NORMALLY RECOMMENDED. Do you want to install Puppy in Superfloppy mode, that is, no MBR and no partitions? ...in that case, the drive will be accessed as /dev/$DRVSEL, without a partition number. This may be a good choice for booting USB Flash drive from PC with a quirky BIOS. Click button if yes:</label></text>
+    <text><label>`eval_gettext \"WARNING: NOT NORMALLY RECOMMENDED. Do you want to install Puppy in Superfloppy mode, that is, no MBR and no partitions? ...in that case, the drive will be accessed as /dev/\\\$DRVSEL, without a partition number. This may be a good choice for booting USB Flash drive from PC with a quirky BIOS. Click button if yes:\"`</label></text>
     <vbox>
      <button>
       <input file>/usr/local/lib/X11/mini-icons/mini-dog.xpm</input>
       <action>EXIT:REFORMAT_${DRVSEL}</action>
      </button>
@@ -537,11 +542,11 @@
 "
 else #drive is a superfloppy.
  DLGEXT="$DLGEXT
    <frame Superfloppy>
    <hbox>
-    <text><label>The drive is currently in Superfloppy mode and has no MBR and no partitions. It is accessed as /dev/$DRVSEL, without a partition number (this may be a good choice for booting USB Flash drive from PC with a quirky BIOS). Do you want to partition the drive so that it has a /dev/${DRVSEL}1 partition, in which Puppy can be installed? If so, click button:</label></text>
+    <text><label>`eval_gettext \"The drive is currently in Superfloppy mode and has no MBR and no partitions. It is accessed as /dev/\\\$DRVSEL, without a partition number (this may be a good choice for booting USB Flash drive from PC with a quirky BIOS). Do you want to partition the drive so that it has a /dev/\\\${DRVSEL}1 partition, in which Puppy can be installed? If so, click button:\"`</label></text>
     <vbox>
      <button>
       <input file>/usr/local/lib/X11/mini-icons/mini-dog.xpm</input>
       <action>EXIT:REFORMAT_${DRVSEL}1</action>
      </button>
@@ -550,19 +555,19 @@
    </frame>
 "
 fi
 
 DLG2="
-<window title=\"Puppy Universal Installer\">
+<window title=\"$(gettext 'Puppy Universal Installer')\">
  <vbox>
-  <text><label>Here is what Puppy has found out about the chosen drive:</label></text>
+  <text><label>$(gettext 'Here is what Puppy has found out about the chosen drive:')</label></text>
   <text><label>\"${DRVMSG}\"</label></text>
 $DLGTXT
 $DLGEXT
   <hbox>
    <button>
-    <label>Go back and choose a different drive</label>
+    <label>$(gettext 'Go back and choose a different drive')</label>
     <action>EXIT:GOBACK</action>
    </button>
    <button cancel></button>
   </hbox>
  </vbox>
@@ -570,119 +575,119 @@
 "
 
 RETTXT="`echo "$DLG2" | ${GTKDIALOGEXE} --stdin`"
 
 #returns EXIT="Cancel" or EXIT="abort"...
-[ "`echo "$RETTXT" | grep '^EXIT' | grep -E 'Cancel|abort'`" != "" ] && exit
+[ "`echo "$RETTXT" | grep 'EXIT' | grep -E 'Cancel|abort'`" != "" ] && exit
 
 if [ "`echo "$RETTXT" | grep 'RUNGPARTED'`" != "" ];then
  gpartedfixfunc $DRVSEL #w015
  continue #BIG LOOP
 fi
 
-[ "`echo "$RETTXT" | grep '^EXIT' | grep 'GOBACK'`" != "" ] && continue
+[ "`echo "$RETTXT" | grep 'EXIT:GOBACK'`" != "" ] && continue
 
 #when arrive here, have
-#RETTXT=EXIT="sda1", DRVMSG="sda1: vfat, size 122.1 MiB, Puppy version 108 installed" (has all parts fnd)
+#RETTXT="EXIT:sda1", DRVMSG="sda1: vfat, size 122.1 MiB, Puppy version 108 installed" (has all parts fnd)
 
 #sanity check...
 SANITYPART="`echo -n "$RETTXT" | grep '^EXIT' | cut -f 2 -d '"' | cut -f 2 -d '_'`" #'geany
 smPTN="^/dev/${SANITYPART} " #111011
 SANITYMNTPT="`mount | grep "$smPTN" | tr -s " " | cut -f 3 -d " "`"
 
-if [ "$SANITYMNTPT" != "" ];then
- SANITYMSG1="$SANITYPART currently mounted, need to unmount it"
- SANITYMSG2="$SANITYPART currently mounted read-write."
- SANITYMSG3="$SANITYPART does not have ${DISTRO_FILE_PREFIX}save.3fs file in it."
+if [ ! "$SANITYMNTPT" = "" ];then
+ SANITYMSG1="$SANITYPART $(gettext 'currently mounted, need to unmount it!!!')"
+ SANITYMSG2="$SANITYPART $(gettext 'currently mounted read-write.')"
+ SANITYMSG3="`eval_gettext \"\\\$SANITYPART does not have \\\${DISTRO_FILE_PREFIX}save.3fs file in it.\"`"
  SANITYRORW="`mount | grep "/$SANITYPART" | tr -s " " | cut -f 6 -d " "`"
- [ ! "`echo -n "$SANITYMNTPT" | grep "/initrd/"`" = "" ] && SANITYMSG1="$SANITYPART cannot be unmounted!"
- [ "$SANITYRORW" = "(ro)" ] && SANITYMSG2="$SANITYPART is mounted read-only!"
- [ -f $SANITYMNTPT/${DISTRO_FILE_PREFIX}save.3fs ] && SANITYMSG3="$SANITYPART has personal file ${DISTRO_FILE_PREFIX}save.3fs in it!"
- LANG=C Xdialog --wmclass "gtkdialog2" --left --title "Puppy universal installer: SANITY CHECK" --ok-label "CONTINUE" --cancel-label "QUIT" --yesno "A partition sanity check before continuing:\n$SANITYMSG1 \n$SANITYMSG2 \n$SANITYMSG3 \n\nIf the above report is that the partition is mounted, you need to unmount it\nright now, but if report is it cannot be unmounted, then there may be install\ndifficulties -- certainly, in the case of install to hard drive you will only\nbe able to do an \"option1\" install (explained further on).\nIf the partition has ${DISTRO_FILE_PREFIX}save.3fs in it, that is the reason it cannot be\nunmounted -- it is currently in use by Puppy. If booting Puppy from live-CD,\nif ${DISTRO_FILE_PREFIX}save.3fs does not exist then Puppy will run totally in RAM, which will\nsolve the problem -- but you should not delete or rename ${DISTRO_FILE_PREFIX}save.3fs right\nnow as it is in use. Instead, boot some other OS then rename the file, then\nboot Puppy live-CD.\n\nBottom-line, unmount the partition now, if you can, otherwise CONTINUE script\nwith the restricted install choice, or QUIT script now and try to fix the\nproblem of the partition getting mounted..." 0 0
+ [ ! "`echo -n "$SANITYMNTPT" | grep "/initrd/"`" = "" ] && SANITYMSG1="$SANITYPART $(gettext 'cannot be unmounted!')"
+ [ "$SANITYRORW" = "(ro)" ] && SANITYMSG2="$SANITYPART $(gettext 'is mounted read-only!')"
+ [ -f $SANITYMNTPT/${DISTRO_FILE_PREFIX}save.3fs ] && SANITYMSG3="`eval_gettext \"\\\$SANITYPART has personal file \\\${DISTRO_FILE_PREFIX}save.3fs in it!\"`"
+ Xdialog --wmclass "gtkdialog2" --left --title "$(gettext 'Puppy universal installer: SANITY CHECK')" --ok-label "$(gettext 'CONTINUE')" --cancel-label "$(gettext 'QUIT')" --yesno "`eval_gettext \"A partition sanity check before continuing:\n\\\$SANITYMSG1 \n\\\$SANITYMSG2 \n\\\$SANITYMSG3 \n\nIf the above report is that the partition is mounted, you need to unmount it\nright now, but if report is it cannot be unmounted, then there may be install\ndifficulties -- certainly, in the case of install to hard drive you will only\nbe able to do an 'option1' install (explained further on).\nIf the partition has \\\${DISTRO_FILE_PREFIX}save.3fs in it, that is the reason it cannot be\nunmounted -- it is currently in use by Puppy. If booting Puppy from live-CD,\nif \\\${DISTRO_FILE_PREFIX}save.3fs does not exist then Puppy will run totally in RAM, which will\nsolve the problem -- but you should not delete or rename \\\${DISTRO_FILE_PREFIX}save.3fs right\nnow as it is in use. Instead, boot some other OS then rename the file, then\nboot Puppy live-CD.\n\nBottom-line, unmount the partition now, if you can, otherwise CONTINUE script\nwith the restricted install choice, or QUIT script now and try to fix the\nproblem of the partition getting mounted...\"`" 0 0
  [ ! $? -eq 0 ] && exit
 fi
 
-if [ ! "`echo "$RETTXT" | grep '^EXIT' | grep 'REFORMAT'`" = "" ];then
+if [ ! "`echo "$RETTXT" | grep 'EXIT:REFORMAT'`" = "" ];then
  #RETTXT will have EXIT="REFORMAT_sda" or EXIT="REFORMAT_sda1", depending whether
  #we want to format in superfloppy mode or with a MBR and a partition...
  DESTPART="`echo "$RETTXT" | grep '^EXIT' | grep 'REFORMAT' | cut -f 2 -d '"' | cut -f 2 -d '_'`" #'geany
  if [ "`echo "$DESTPART" | grep "[0-9]$"`" = "" ];then
   #want superfloppy...
-  DLG3="
-<window title=\"Puppy Universal Installer\">
+DLG3="
+<window title=\"$(gettext 'Puppy Universal Installer')\">
  <vbox>
-   <text><label>You have chosen to format /dev/${DESTPART} as a Superfloppy. You now need to choose whether to create a vfat or a ext3 filesystem on the drive. Ext3 is the most flexible (and recommended) choice, however if you need to be able to read the drive from Windows then choose vfat. Note, however, there are tools for accessing ext2/3 drives in Windows.</label></text>
-   <text><label>A further clarification: if you choose ext3, then the entire drive will be immediately available for personal data storage, whereas if you choose vfat this installer will have to create a file with a ext3 filesystem inside it (${DISTRO_FILE_PREFIX}save.3fs) -- that file will contain all your personal files. Press FORMAT_ext3 or FORMAT_vfat button to commence formatting...</label></text>
+   <text><label>`eval_gettext \"You have chosen to format /dev/\\\${DESTPART} as a Superfloppy. You now need to choose whether to create a vfat or a ext3 filesystem on the drive. Ext3 is the most flexible (and recommended) choice, however if you need to be able to read the drive from Windows then choose vfat. Note, however, there are tools for accessing ext2/3 drives in Windows.\"`</label></text>
+   <text><label>`eval_gettext \"A further clarification: if you choose ext3, then the entire drive will be immediately available for personal data storage, whereas if you choose vfat this installer will have to create a file with a ext3 filesystem inside it (\\\${DISTRO_FILE_PREFIX}save.3fs) -- that file will contain all your personal files. Press FORMAT_ext3 or FORMAT_vfat button to commence formatting...\"`</label></text>
   <hbox>
    <button>
-    <label>FORMAT_ext3</label>
+    <label>$(gettext 'FORMAT_ext3')</label>
     <action>EXIT:ext3</action>
    </button>
    <button>
-    <label>FORMAT_vfat</label>
+    <label>$(gettext 'FORMAT_vfat')</label>
     <action>EXIT:vfat</action>
    </button>
   </hbox>
  </vbox>
 </window>
 "
   RETTXT="`echo "$DLG3" | ${GTKDIALOGEXE} --stdin`"
 
   [ ! "`echo "$RETTXT" | grep 'abort'`" = "" ] && exit
-  DESTFS="`echo "$RETTXT" | grep '^EXIT' | cut -f 2 -d '"'`" #'geany
+  DESTFS="`echo "$RETTXT" | grep 'EXIT:' | cut -f 2 -d ':'`"
   echo '#!/bin/sh' > /tmp/formatsuper.sh
-  echo -e "echo -n \"SANITY CHECK: formatting /dev/${DRVSEL}, ENTER to continue or CTRL-C to quit: \""  >> /tmp/formatsuper.sh
+  echo -e "echo -n \"$(gettext 'SANITY CHECK: formatting /dev/')${DRVSEL}, $(gettext 'ENTER to continue or CTRL-C to quit:') \""  >> /tmp/formatsuper.sh  # $(gettext 'SANITY CHECK: formatting /dev/') $(gettext 'ENTER to continue or CTRL-C to quit:') for xgettext to detect lines
   echo 'read mooo'  >> /tmp/formatsuper.sh
   #echo 'echo "Zeroising the entire drive..."'  >> /tmp/formatsuper.sh
   #echo 'echo "(please be very patient, this could take awhile)"'  >> /tmp/formatsuper.sh
   ##echo "dd if=/dev/zero bs=1024 | $BAR -of /dev/$DRVSEL -s ${IDRVSIZM}m" >> /tmp/formatsuper.sh
   #echo "dd if=/dev/zero of=/dev/$DRVSEL" >> /tmp/formatsuper.sh
   #no, will just zeroise the mbr section...
   echo "dd if=/dev/zero of=/dev/$DRVSEL bs=512 count=1" >> /tmp/formatsuper.sh
   echo 'sync'  >> /tmp/formatsuper.sh
   if [ "$DESTFS" = "ext3" ];then
-   echo 'echo "Creating an ext3 filesystem on the drive..."'   >> /tmp/formatsuper.sh
+   echo 'echo "'$(gettext 'Creating an ext3 filesystem on the drive...')'"'   >> /tmp/formatsuper.sh
    echo -e "echo \"y\" | mke2fs -j -m 0 /dev/$DRVSEL"   >> /tmp/formatsuper.sh
   else #vfat
-   echo 'echo "Creating a vfat filesystem on the drive..."'   >> /tmp/formatsuper.sh
+   echo 'echo "'$(gettext 'Creating a vfat filesystem on the drive...')'"'   >> /tmp/formatsuper.sh
    echo "mkdosfs -I /dev/$DRVSEL" >> /tmp/formatsuper.sh
   fi
   echo 'sync'  >> /tmp/formatsuper.sh
-  echo 'echo -n "Press ENTER key to continue: "'   >> /tmp/formatsuper.sh
+  echo 'echo -n "'$(gettext 'Press ENTER key to continue:')' "'   >> /tmp/formatsuper.sh
   echo 'read moo'   >> /tmp/formatsuper.sh
   chmod 755 /tmp/formatsuper.sh
-  rxvt -bg "orange" -title "Puppy Universal Installer" -geometry 80x10 -e /tmp/formatsuper.sh
+  rxvt -bg "orange" -title "$(gettext 'Puppy Universal Installer')" -geometry 80x10 -e /tmp/formatsuper.sh
   DESTSIZM="$DRVSIZM"
   IDESTSIZM="$IDRVSIZM"
   DESTVER="" #previous version, n.a.
   #w015 need to refresh desktop drive icons(s)...
   #/tmp/pup_event_frontend_block_request is used in /sbin/pup_event_frontend_d to refresh drv...
   sync
   echo "$DRVSEL" > /tmp/pup_event_frontend_block_request
  else
   #want to partition with partition 1...
-  DLG3="
-<window title=\"Puppy Universal Installer\">
+DLG3="
+<window title=\"$(gettext 'Puppy Universal Installer')\">
  <vbox>
-   <text><label>You have chosen to format /dev/${DRVSEL} with a MBR and a partition. You now need to choose whether to create a vfat or a ext3 filesystem on the partition. Ext3 is the most flexible (and recommended) choice, however if you need to be able to read the drive from Windows then choose vfat. Note, however, there are tools for accessing ext2/3 drives in Windows.</label></text>
-   <text><label>A further clarification: if you choose ext3, then the entire partition will be immediately available for personal data storage, whereas if you choose vfat then Puppy will have to create a file with a ext2 filesystem inside it (${DISTRO_FILE_PREFIX}save.2fs) -- that file will contain all your personal files.</label></text>
-   <text><label>USB Flash drives: it is most common to create a vfat (fat16) partition on these, for Windows interchangeability and some older BIOSes boot only if see a fat16 f.s.</label></text>
+   <text><label>`eval_gettext \"You have chosen to format /dev/\\\${DRVSEL} with a MBR and a partition. You now need to choose whether to create a vfat or a ext3 filesystem on the partition. Ext3 is the most flexible (and recommended) choice, however if you need to be able to read the drive from Windows then choose vfat. Note, however, there are tools for accessing ext2/3 drives in Windows.\"`</label></text>
+   <text><label>`eval_gettext \"A further clarification: if you choose ext3, then the entire partition will be immediately available for personal data storage, whereas if you choose vfat then Puppy will have to create a file with a ext2 filesystem inside it (\\\${DISTRO_FILE_PREFIX}save.2fs) -- that file will contain all your personal files.\"`</label></text>
+   <text><label>$(gettext 'USB Flash drives: it is most common to create a vfat (fat16) partition on these, for Windows interchangeability and some older BIOSes boot only if see a fat16 f.s.')</label></text>
    <text><label>\" \"</label></text>
-   <text><label>Click button to run GParted...</label></text>
+   <text><label>$(gettext 'Click button to run GParted...')</label></text>
   <hbox>
    <button>
-    <label>Run GParted</label>
+    <label>$(gettext 'Run GParted')</label>
     <action>EXIT:gparted</action>
    </button>
    <button cancel>
    </button>
   </hbox>
  </vbox>
 </window>
 "
   RETTXT="`echo "$DLG3" | ${GTKDIALOGEXE} --stdin`"
-  MYACTION="`echo "$RETTXT" | grep '^EXIT' | cut -f 2 -d '"'`" #'geany
+  MYACTION="`echo "$RETTXT" | grep 'EXIT:' | cut -f 2 -d ':'`"
   if [ "$MYACTION" = "gparted" ];then
    #w015 if a superfloppy, first need to create a disk label, else gparted is upset...
    if [ "`echo "$DRVMSG" | cut -f 1 -d ':' | grep "[a-zA-Z]$"`" != "" ];then
     dd if=/dev/zero of=/dev/$DRVSEL bs=512 count=1
     parted --script /dev/sdb mklabel msdos
@@ -694,16 +699,16 @@
   fi
   #exit
 
  fi
 else
- DESTPART="`echo "$RETTXT" | grep '^EXIT' | cut -f 2 -d '"'`" #'geany
+  DESTPART="`echo "$RETTXT" | grep '^EXIT' | cut -f 2 -d '"'`" #'geany
  DESTFS="`echo "$DRVMSG" | grep "$DESTPART" | cut -f 1 -d ',' | tr -s " " | cut -f 2 -d " "`"
  DESTSIZE="`echo "$DRVMSG" | grep "$DESTPART" | tr -s " " | cut -f 4-5 -d " "`"
  DESTSIZM="`echo -n "$DESTSIZE" | cut -f 1 -d " "`"
  if [ ! "`echo "$DESTSIZE" | grep "GiB"`" = "" ];then
-  DESTSIZM="`LANG=C dc $DESTSIZM 1000 \* p`" #111027
+  DESTSIZM="`LANG=C; dc $DESTSIZM 1000 \* p`" #LANG=C; rodin.s for i18n
  fi
  IDESTSIZM="`echo -n "$DESTSIZM" | cut -f 1 -d '.'`" #truncate to integer.
  DESTVER="`echo "$DRVMSG" | grep "$DESTPART" | tr -s " " | grep "installed" | cut -f 8 -d " "`"
 fi
 
@@ -713,27 +718,27 @@
 
 
 
 if [ "`echo "$DESTPART" | grep "[0-9]$"`" = "" ];then
  #superfloppy
- DLG4="
-<window title=\"Puppy Universal Installer\">
+DLG4="
+<window title=\"$(gettext 'Puppy Universal Installer')\">
  <vbox>
-  <text><label>You have chosen to install Puppy to the entire drive, which is what we call Superfloppy mode, in which there is no MBR (Master Boot Record) and no partitions. This may be a good choice for Flash memory, especially USB Flash, that the PC BIOS has trouble booting from.</label></text>
-  <text><label>The target drive is ${DESTPART}, which has a ${DESTFS}, of size ${DESTSIZM}M. Press OK button to install Puppy to the drive...</label></text>
+  <text><label>$(gettext 'You have chosen to install Puppy to the entire drive, which is what we call Superfloppy mode, in which there is no MBR (Master Boot Record) and no partitions. This may be a good choice for Flash memory, especially USB Flash, that the PC BIOS has trouble booting from.')</label></text>
+  <text><label>`eval_gettext \"The target drive is \\\${DESTPART}, which has a \\\${DESTFS}, of size \\\${DESTSIZM}M. Press OK button to install Puppy to the drive...\"`</label></text>
   <hbox><button ok></button><button cancel></button></hbox>
  </vbox>
 </window>
 "
  RETTXT="`echo "$DLG4" | ${GTKDIALOGEXE} --stdin`"
 else
- DLG4="
-<window title=\"Puppy Universal Installer\">
+DLG4="
+<window title=\"$(gettext 'Puppy Universal Installer')\">
 
  <vbox>
-  <text><label>You have chosen to install Puppy to partition /dev/${DESTPART}, which has a ${DESTFS} filesystem and the size is ${DESTSIZM}M.</label></text>
-  <text><label>Press OK button to install Puppy (note, there will be one or two more dialog windows before you have to commit to the actual install)...</label></text>
+  <text><label>`eval_gettext \"You have chosen to install Puppy to partition /dev/\\\${DESTPART}, which has a \\\${DESTFS} filesystem and the size is \\\${DESTSIZM}M.\"`</label></text>
+  <text><label>$(gettext 'Press OK button to install Puppy (note, there will be one or two more dialog windows before you have to commit to the actual install)...')</label></text>
   <hbox><button ok></button><button cancel></button></hbox>
  </vbox>
 </window>
 "
  RETTXT="`echo "$DLG4" | ${GTKDIALOGEXE} --stdin`"
@@ -774,13 +779,13 @@
    #v3.97 have a case where normal bootable flash vfat pen drive has the
    #string 'GRUB.Geom.HardDisk.Read.Error' in the mbr...
    [ "$FLAGGRUB" = "1" ] && [ "`echo "$ALPHADUMP" | grep 'GRUB.Geom.HardDisk.Read.Error'`" != "" ] && FLAGGRUB="0"
 
    if [ "`hexdump -x /tmp/mbr446.bin | tr -s " " | cut -f 2-9 -d " " | grep '[1-9a-zA-Z]'`" = "" -o "$FLAGGRUB" = "1" ];then
-    MBRCHOICE="`LANG=C Xdialog --wmclass "gtkdialog2" --left --title "Puppy Universal Installer" --no-cancel --stdout --menubox "The bootstrap loader code is missing from the MBR (Master Boot Record),\nmeaning that the drive will not boot. Please choose one of the\nfollowing to fix this. Personally, I have had success with mbr.bin." 0 0 4 sys-nopart.mbr "Bootstrap loader code, created by JustGreg" mbr.bin "From the Syslinux package" mbrfat.bin "From the makebootfat package" spb2_mbr.bin "From spblinux, created by Christian Ostheimer" `"
+    MBRCHOICE="`Xdialog --wmclass "gtkdialog2" --left --title "$(gettext 'Puppy Universal Installer')" --no-cancel --stdout --menubox "$(gettext 'The bootstrap loader code is missing from the MBR (Master Boot Record),\nmeaning that the drive will not boot. Please choose one of the\nfollowing to fix this. Personally, I have had success with mbr.bin.')" 0 0 4 sys-nopart.mbr "$(gettext 'Bootstrap loader code, created by JustGreg')" mbr.bin "$(gettext 'From the Syslinux package')" mbrfat.bin "$(gettext 'From the makebootfat package')" spb2_mbr.bin "$(gettext 'From spblinux, created by Christian Ostheimer')" `"
    else
-    MBRCHOICE="`LANG=C Xdialog --wmclass "gtkdialog2" --left --title "Puppy Universal Installer" --no-cancel --stdout --menubox "The MBR (Master Boot Record) in the USB drive is probably okay as-is, so choose\nthe first option. However, if you cannot get the drive to boot, and you are\nsure that the BIOS settings are not to blame and the PC is capable of booting\nfrom USB, then try one of these alternative MBRs.\nNote, if you choose to change the MBR, the old first 446 bytes (the\nbootstrap loader part) of the MBR will be backed up to /tmp/oldmbr.bin\nNote, you can install these MBRs directly, without running this\nInstaller program again: they are located in /usr/lib/syslinux,\nand you can use the dd program to copy them.\nExample: dd if=spb2_mbr.bin of=/dev/${DESTDRV}\nNote, personally I have had success with mbr.bin." 0 0 5 default "DO NOTHING, leave current MBR alone" sys-nopart.mbr "Bootstrap loader code, created by JustGreg" mbr.bin "From the Syslinux package" mbrfat.bin "From the makebootfat package" spb2_mbr.bin "From spblinux, created by Christian Ostheimer" `"
+    MBRCHOICE="`Xdialog --wmclass "gtkdialog2" --left --title "$(gettext 'Puppy Universal Installer')" --no-cancel --stdout --menubox "$(eval_gettext \"The MBR (Master Boot Record) in the USB drive is probably okay as-is, so choose\nthe first option. However, if you cannot get the drive to boot, and you are\nsure that the BIOS settings are not to blame and the PC is capable of booting\nfrom USB, then try one of these alternative MBRs.\nNote, if you choose to change the MBR, the old first 446 bytes (the\nbootstrap loader part) of the MBR will be backed up to /tmp/oldmbr.bin\nNote, you can install these MBRs directly, without running this\nInstaller program again: they are located in /usr/lib/syslinux,\nand you can use the dd program to copy them.\nExample: dd if=spb2_mbr.bin of=/dev/\\\${DESTDRV}\nNote, personally I have had success with mbr.bin.\")" 0 0 5 default "$(gettext 'DO NOTHING, leave current MBR alone')" sys-nopart.mbr "$(gettext 'Bootstrap loader code, created by JustGreg')" mbr.bin "$(gettext 'From the Syslinux package')" mbrfat.bin "$(gettext 'From the makebootfat package')" spb2_mbr.bin "$(gettext 'From spblinux, created by Christian Ostheimer')" `"
    fi
    rm /tmp/mbr446.bin
    if [ ! "$MBRCHOICE" = "" ];then
     if [ ! "$MBRCHOICE" = "default" ];then
      dd if=/dev/$DESTDRV of=/tmp/oldmbr.bin bs=446 count=1
@@ -791,26 +796,26 @@
    fi
 
    #check that partition has 'boot' flag set...
    QPATTERN="^Partition ${DESTNUM}:"
    if [ "`disktype /dev/$DESTDRV | grep "$QPATTERN" | grep 'bootable'`" = "" ];then
-    LANG=C Xdialog --wmclass "gtkdialog2" --left --title "Puppy Universal Installer" --no-cancel --stdout --ok-label "GParted" --cancel-label "bypass" --yesno "Slight problem. It seems that partition ${DESTPART} does not have it's 'boot'
-flag set, which is required to make it bootable. Recommended to click the
-'GParted' button now to run GParted, then right-click on the partition and
-choose 'Manage flags' then set 'boot' flag.
-After exiting from GParted, this Puppy Universal Installer will continue.
-
-Click 'GParted' (recommended) to run GParted...
-Click 'bypass' to bypass GParted..." 0 0
+    Xdialog --wmclass "gtkdialog2" --left --title "$(gettext 'Puppy Universal Installer')" --no-cancel --stdout --ok-label "GParted" --cancel-label "$(gettext 'bypass')" --yesno "`eval_gettext \"Slight problem. It seems that partition \\\${DESTPART} does not have it's 'boot'\"`
+$(gettext 'flag set, which is required to make it bootable. Recommended to click the')
+`gettext \"'GParted' button now to run GParted, then right-click on the partition and\"`
+`gettext \"choose 'Manage flags' then set 'boot' flag.\"`
+$(gettext 'After exiting from GParted, this Puppy Universal Installer will continue.')
+
+`gettext \"Click 'GParted' (recommended) to run GParted...\"`
+`gettext \"Click 'bypass' to bypass GParted...\"`" 0 0
     [ $? -eq 0 ] && gparted /dev/$DESTDRV
    fi
   fi
 
   case $DESTFS in
    vfat)
      if [ ! "`echo "$DESTPART" | grep '[0-9]$'`" = "" ];then
-      PARTCHOICE="`LANG=C Xdialog --wmclass "gtkdialog2" --left --title "Puppy Universal Installer" --no-cancel --stdout --menubox "Please just accept the default here, 'JUST KEEP GOING'.\nPLEASE MAKE SURE TOP ENTRY HIGHLIGHTED THEN CLICK OK BUTTON\n\nHowever, if you have tried this Puppy Universal Installer\nbut Puppy will not boot, you can try one of the other choices here.\n\nPersonally, I have had success with using GParted to wipe and\nrecreate the partition..." 0 0 4 default "JUST KEEP GOING" GParted "Wipe and recreate USB/IDE-CF partition using GParted" syslinux "Make USB or IDE-CF msdos/vfat partition bootable"`"
+      PARTCHOICE="`Xdialog --wmclass "gtkdialog2" --left --title "$(gettext 'Puppy Universal Installer')" --no-cancel --stdout --menubox "$(gettext \"Please just accept the default here, 'JUST KEEP GOING'.\nPLEASE MAKE SURE TOP ENTRY HIGHLIGHTED THEN CLICK OK BUTTON\n\nHowever, if you have tried this Puppy Universal Installer\nbut Puppy will not boot, you can try one of the other choices here.\n\nPersonally, I have had success with using GParted to wipe and\nrecreate the partition...\")" 0 0 4 default "$(gettext 'JUST KEEP GOING')" GParted "$(gettext 'Wipe and recreate USB/IDE-CF partition using GParted')" syslinux "$(gettext 'Make USB or IDE-CF msdos/vfat partition bootable')"`"
       [ "$PARTCHOICE" = "syslinux" ] && fixusbfunc $DESTPART $DESTFS
       [ "$PARTCHOICE" = "GParted" ] && gpartedfixfunc $DRVSEL
      fi
     #params passed in: $DESTPART "$SRCPATH" $FINALPMEDIA
     echo '#!/bin/sh
@@ -820,36 +825,36 @@
 DISTRO_FILE_PREFIX="$4"
 DISTRO_PUPPYSFS="$5"
 DISTRO_ZDRVSFS="$6"
 #DISTRO_DEVXSFS="$7"
 PREFIX1CHAR="`echo -n "$DISTRO_FILE_PREFIX" | cut -c 1`"
-echo "ABSOLUTE FINAL SANITY CHECK!"
-echo "You are about to install Puppy to /dev/$DESTPART, with boot parameter"
-echo "pmedia=$FINALPMEDIA. The files vmlinuz, initrd.gz, ${DISTRO_PUPPYSFS}, syslinux.cfg"
-echo "(and maybe the ${DISTRO_ZDRVSFS} if it exists. ${DISTRO_PUPPYSFS} may be inside initrd.gz)"
-echo "will be written to /dev/$DESTPART and Syslinux will be used to make it bootable."
+echo "'$(gettext 'ABSOLUTE FINAL SANITY CHECK!')'"
+echo "'$(gettext 'You are about to install Puppy to /dev/')'$DESTPART, '$(gettext 'with boot parameter')'"
+echo "pmedia=$FINALPMEDIA. '$(gettext 'The files vmlinuz, initrd.gz,')' ${DISTRO_PUPPYSFS}, syslinux.cfg"
+echo "('$(gettext 'and maybe the')' ${DISTRO_ZDRVSFS} '$(gettext 'if it exists.')' ${DISTRO_PUPPYSFS} '$(gettext 'may be inside')' initrd.gz)"
+echo "'$(gettext 'will be written to /dev/')'$DESTPART '$(gettext 'and Syslinux will be used to make it bootable.')'"
 echo
-echo -n "Press ENTER key to continue, CTRL-C to abort: "
+echo -n "'$(gettext 'Press ENTER key to continue, CTRL-C to abort:')' "
 read goforit
 
 #v3.95...
 mount -t vfat /dev/$DESTPART /mnt/data
 echo
-echo "Do you want to wipe all files in /dev/$DESTPART? This is currently mounted"
-echo "on /mnt/data so you can look at what is there before answering. You would"
-echo "normally answer no if upgrading Puppy, or yes for a fresh install and"
-echo "you want to get rid of old files that are just taking up space."
-echo "Note, you can also manually prune files in /mnt/data then choose no here."
-echo "Note, if you choose no here, this script will still do some basic deleting"
-echo "of any files of an earlier Puppy installation (not the ${DISTRO_FILE_PREFIX}save though!)."
+echo "'$(gettext 'Do you want to wipe all files in /dev/')'$DESTPART? '$(gettext 'This is currently mounted')'"
+echo "'$(gettext 'on /mnt/data so you can look at what is there before answering. You would')'"
+echo "'$(gettext 'normally answer no if upgrading Puppy, or yes for a fresh install and')'"
+echo "'$(gettext 'you want to get rid of old files that are just taking up space.')'"
+echo "'$(gettext 'Note, you can also manually prune files in /mnt/data then choose no here.')'"
+echo "'$(gettext 'Note, if you choose no here, this script will still do some basic deleting')'"
+echo "'$(gettext 'of any files of an earlier Puppy installation')' ('$(gettext 'not the')' ${DISTRO_FILE_PREFIX}save '$(gettext 'though!')')."
 echo
-echo "No, press ENTER only to not wipe all files, or"
-echo -n "Yes, press any alpha or numeric char then ENTER to wipe all files: "
+echo "'$(gettext 'No, press ENTER only to not wipe all files, or')'"
+echo -n "'$(gettext 'Yes, press any alpha or numeric char then ENTER to wipe all files:')' "
 read WIPEALL
 if [ "$WIPEALL" != "" ];then
  echo
- echo "Deleting everything in /mnt/data..."
+ echo "'$(gettext 'Deleting everything in /mnt/data...')'"
  rm -rf /mnt/data/*
 else
  #well, minimum to get rid of...
  rm -f /mnt/data/image.gz 2> /dev/null
  rm -f /mnt/data/usr_cram.fs 2> /dev/null #old name.
@@ -864,28 +869,28 @@
 fi
 sync
 umount /mnt/data
 
 echo
-echo "Making $DESTPART bootable..."
+echo "'$(gettext 'Making')' $DESTPART '$(gettext 'bootable...')'"
 syslinux  /dev/$DESTPART
 sync
 
 mount -t vfat /dev/$DESTPART /mnt/data
 echo
-echo "Copying vmlinuz..."
+echo "'$(gettext 'Copying vmlinuz...')'"
 cp -f $SRCPATH/vmlinuz /mnt/data/
 sync
-echo "Creating syslinux.cfg..."
+echo "'$(gettext 'Creating syslinux.cfg...')'"
 FCOPY=""
-echo "Would you like syslinux.cfg to have 'pfix=copy' boot parameter?"
-echo "this will cause ${DISTRO_PUPPYSFS} to be copied into RAM at bootup, which slows"
-echo "bootup but speeds application startup slightly."
-echo "Probably good to answer yes here if PC has 256MB or more RAM."
-echo "(you can edit syslinux.cfg later to change the choice made here)"
-echo "(note, Puppy will override this and not copy if there is insufficient RAM)"
-echo -n "ENTER key only for no, else any char then ENTER for yes: "
+echo "'$(gettext 'Would you like syslinux.cfg to have')' 'pfix=copy' '$(gettext 'boot parameter?')'"
+echo "'$(gettext 'this will cause')' ${DISTRO_PUPPYSFS} '$(gettext 'to be copied into RAM at bootup, which slows')'"
+echo "'$(gettext 'bootup but speeds application startup slightly.')'"
+echo "'$(gettext 'Probably good to answer yes here if PC has 256MB or more RAM.')'"
+echo "'$(gettext '(you can edit syslinux.cfg later to change the choice made here)')'"
+echo "('$(gettext 'note, Puppy will override this and not copy if there is insufficient RAM')')"
+echo -n "'$(gettext 'ENTER key only for no, else any char then ENTER for yes:')' "
 read FCOPY
 [ "$FCOPY" != "" ] && FCOPY=" pfix=copy"
 
 #100321 big assumption here, that current running kernel matches one being installed...
 if [ -e /proc/ide ];then
@@ -934,32 +939,32 @@
  cp -f $SRCPATH/logo.16 /mnt/data/
  sync
 fi
 
 echo ""
-echo "Creating marker file for wakepup boot floppy..."
+echo "'$(gettext 'Creating marker file for wakepup boot floppy...')'"
 [ "$FINALPMEDIA" = "usbflash" ] && touch /mnt/data/USBFLASH
 [ "$FINALPMEDIA" = "ataflash" ] && touch /mnt/data/IDEFLASH
 [ "$FINALPMEDIA" = "usbhd" ] && touch /mnt/data/USBHD
 [ "$FINALPMEDIA" = "atazip" ] && touch /mnt/data/IDEZIP
 sync
-echo "Copying initrd.gz..."
+echo "'$(gettext 'Copying initrd.gz...')'"
 cp -f $SRCPATH/initrd.gz /mnt/data/
 sync
-echo "Copying .sfs files..."
+echo "'$(gettext 'Copying .sfs files...')'"
 cp -f $SRCPATH/${DISTRO_PUPPYSFS} /mnt/data/ 2>/dev/null
 sync
 cp -f $SRCPATH/${DISTRO_ZDRVSFS} /mnt/data/ 2>/dev/null
 sync
 #cp -f $SRCPATH/${DISTRO_DEVXSFS} /mnt/data/ 2>/dev/null
 #sync
 umount /mnt/data
-echo -n "Finished, press ENTER key to continue: "
+echo -n "'$(gettext 'Finished, press ENTER key to continue:')' "
 read moo
 ' > /tmp/installpup.sh
     chmod 755 /tmp/installpup.sh
-    rxvt -bg "orange" -title "Puppy Universal Installer" -geometry 80x10 -e /tmp/installpup.sh $DESTPART $SRCPATH $FINALPMEDIA $DISTRO_FILE_PREFIX $DISTRO_PUPPYSFS $DISTRO_ZDRVSFS #$DISTRO_DEVXSFS
+    rxvt -bg "orange" -title "$(gettext 'Puppy Universal Installer')" -geometry 80x10 -e /tmp/installpup.sh $DESTPART $SRCPATH $FINALPMEDIA $DISTRO_FILE_PREFIX $DISTRO_PUPPYSFS $DISTRO_ZDRVSFS #$DISTRO_DEVXSFS
     ;;
    ext2|ext3|ext4)
     #params passed in: $DESTPART "$SRCPATH" $FINALPMEDIA
     echo '#!/bin/sh
 DESTPART="$1"
@@ -969,60 +974,60 @@
 DISTRO_FILE_PREFIX="$5"
 DISTRO_PUPPYSFS="$6"
 DISTRO_ZDRVSFS="$7"
 #DISTRO_DEVXSFS="$8"
 PREFIX1CHAR="`echo -n "$DISTRO_FILE_PREFIX" | cut -c 1`"
-echo "ABSOLUTE FINAL SANITY CHECK!"
-echo "You are about to install Puppy to /dev/$DESTPART, with boot parameter"
-echo "pmedia=$FINALPMEDIA. The files vmlinuz, initrd.gz, ${DISTRO_PUPPYSFS}, extlinux.conf"
-echo "(and maybe ${DISTRO_ZDRVSFS} if it exists. ${DISTRO_PUPPYSFS} may be inside initrd.gz)"
-echo "will be written to /dev/$DESTPART and Extlinux will be used to make it bootable."
+echo "'$(gettext 'ABSOLUTE FINAL SANITY CHECK!')'"
+echo "'$(gettext 'You are about to install Puppy to /dev/')'$DESTPART, '$(gettext 'with boot parameter')'"
+echo "pmedia=$FINALPMEDIA. '$(gettext 'The files vmlinuz, initrd.gz,')' ${DISTRO_PUPPYSFS}, extlinux.conf"
+echo "('$(gettext 'and maybe')' ${DISTRO_ZDRVSFS} '$(gettext 'if it exists.')' ${DISTRO_PUPPYSFS} '$(gettext 'may be inside initrd.gz')')"
+echo "'$(gettext 'will be written to /dev/')'$DESTPART '$(gettext 'and Extlinux will be used to make it bootable.')'"
 echo
-echo -n "Press ENTER key to continue, CTRL-C to abort: "
+echo -n "'$(gettext 'Press ENTER key to continue, CTRL-C to abort:')' "
 read goforit
 mount -t $DESTFS /dev/$DESTPART /mnt/data
 if [ ! $? -eq 0 ];then #v3.95
  dpPATTERN="^/dev/$DESTPART "
  if [ "`mount | grep "$dpPATTERN"`" = "" ];then
   echo
-  echo "/dev/$DESTPART failed to mount on /mnt/data ...nothing else mounted on"
-  echo "/mnt/data? One known case for this failure is when installing to the"
-  echo "internal Flash drive of a Intel Classmate laptop. Well, you can attempt"
-  echo "to fix this problem by creating a new $DESTFS filesystem in $DESTPART (which"
-  echo "will of course wipe anything previously there -- which will not matter"
-  echo "if you have already backed up the previous operating system)."
-  echo "Press ENTER only to abort installation, or"
-  echo "press any char then ENTER to create a new f.s. then proceed with install: "
+  echo "/dev/$DESTPART '$(gettext 'failed to mount on /mnt/data ...nothing else mounted on')'"
+  echo "/mnt/data? '$(gettext 'One known case for this failure is when installing to the')'"
+  echo "'$(gettext 'internal Flash drive of a Intel Classmate laptop. Well, you can attempt')'"
+  echo "'$(gettext 'to fix this problem by creating a new')' $DESTFS '$(gettext 'filesystem in')' $DESTPART ('$(gettext 'which')'"
+  echo "'$(gettext 'will of course wipe anything previously there -- which will not matter')'"
+  echo "'$(gettext 'if you have already backed up the previous operating system')')."
+  echo "'$(gettext 'Press ENTER only to abort installation, or')'"
+  echo "'$(gettext 'press any char then ENTER to create a new f.s. then proceed with install:')' "
   read NEWFS
   [ "$NEWFS" = "" ] && exit
   DFPARAM=""
   [ "$DESTFS" = "ext3" ] && DFPARAM="-j"
   echo "y" | mke2fs $DFPARAM -m 0 /dev/$DESTPART
   sync
   mount -t $DESTFS /dev/$DESTPART /mnt/data
   if [ ! $? -eq 0 ];then
-   echo -n "Sorry, still cannot mount $DESTPART partition. Press ENTER to quit: "
+   echo -n "'$(gettext 'Sorry, still cannot mount')' $DESTPART '$(gettext 'partition. Press ENTER to quit:')' "
    read NOWQUIT
    exit
   fi
  fi
 fi
 echo
-echo "Do you want to wipe all files in /dev/$DESTPART? This is currently mounted"
-echo "on /mnt/data so you can look at what is there before answering. You would"
-echo "normally answer no if upgrading Puppy, or yes for a fresh install and"
-echo "you want to get rid of old files that are just taking up space."
-echo "Note, you can also manually prune files in /mnt/data then choose no here."
-echo "Note, if you choose no here, this script will still do some basic deleting"
-echo "of any files of an earlier Puppy installation (not the ${DISTRO_FILE_PREFIX}save though!)."
+echo "'$(gettext 'Do you want to wipe all files in /dev/')'$DESTPART? '$(gettext 'This is currently mounted')'"
+echo "'$(gettext 'on /mnt/data so you can look at what is there before answering. You would')'"
+echo "'$(gettext 'normally answer no if upgrading Puppy, or yes for a fresh install and')'"
+echo "'$(gettext 'you want to get rid of old files that are just taking up space.')'"
+echo "'$(gettext 'Note, you can also manually prune files in /mnt/data then choose no here.')'"
+echo "'$(gettext 'Note, if you choose no here, this script will still do some basic deleting')'"
+echo "'$(gettext 'of any files of an earlier Puppy installation')' ('$(gettext 'not the')' ${DISTRO_FILE_PREFIX}save '$(gettext 'though!')')."
 echo
-echo "No, press ENTER only to not wipe all files, or"
-echo -n "Yes, press any alpha or numeric char then ENTER to wipe all files: "
+echo "'$(gettext 'No, press ENTER only to not wipe all files, or')'"
+echo -n "'$(gettext 'Yes, press any alpha or numeric char then ENTER to wipe all files:')' "
 read WIPEALL
 if [ "$WIPEALL" != "" ];then
  echo
- echo "Deleting everything in /mnt/data..."
+ echo "'$(gettext 'Deleting everything in /mnt/data...')'"
  rm -rf /mnt/data/*
 else
  #well, minimum to get rid of...
  rm -f /mnt/data/image.gz 2> /dev/null
  rm -f /mnt/data/usr_cram.fs 2> /dev/null
@@ -1034,29 +1039,29 @@
  rm -f /mnt/data/${DISTRO_ZDRVSFS} 2>/dev/null #100913
  #rm -f /mnt/data/${DISTRO_DEVXSFS} 2>/dev/null #100913
 fi
 sync
 echo
-echo "Making $DESTPART bootable..."
+echo "'$(gettext 'Making')' $DESTPART '$(gettext 'bootable...')'"
 if [ ! "`echo "$DESTPART" | grep '[0-9]$'`" = "" ];then
  extlinux -i /mnt/data #i think only use -z for superfloppy.
 else
  extlinux -i -z /mnt/data
 fi
 sync
-echo "Copying vmlinuz..."
+echo "'$(gettext 'Copying vmlinuz...')'"
 cp -f $SRCPATH/vmlinuz /mnt/data/
 sync
-echo "Creating extlinux.conf..."
+echo "'$(gettext 'Creating extlinux.conf...')'"
 FCOPY=""
-echo "Would you like extlinux.cfg to have 'pfix=copy' boot parameter?"
-echo "this will cause ${DISTRO_PUPPYSFS} to be copied into RAM at bootup, which slows"
-echo "bootup but speeds application startup slightly."
-echo "Probably good to answer yes here if PC has 256MB or more RAM."
-echo "(you can edit extlinux.conf later to change the choice made here)"
-echo "(note, Puppy will override this and not copy if there is insufficient RAM)"
-echo -n "ENTER key only for no, else any char then ENTER for yes: "
+echo "'$(gettext 'Would you like extlinux.cfg to have')' 'pfix=copy' '$(gettext 'boot parameter?')'"
+echo "'$(gettext 'this will cause')' ${DISTRO_PUPPYSFS} '$(gettext 'to be copied into RAM at bootup, which slows')'"
+echo "'$(gettext 'bootup but speeds application startup slightly.')'"
+echo "'$(gettext 'Probably good to answer yes here if PC has 256MB or more RAM.')'"
+echo "('$(gettext 'you can edit extlinux.conf later to change the choice made here')')"
+echo "('$(gettext 'note, Puppy will override this and not copy if there is insufficient RAM')')"
+echo -n "'$(gettext 'ENTER key only for no, else any char then ENTER for yes:')' "
 read FCOPY
 [ "$FCOPY" != "" ] && FCOPY=" pfix=copy"
 
 #100321 big assumption here, that current running kernel matches one being installed...
 if [ -e /proc/ide ];then
@@ -1116,20 +1121,20 @@
 cp -f $SRCPATH/${DISTRO_ZDRVSFS} /mnt/data/ 2>/dev/null
 sync
 #cp -f $SRCPATH/${DISTRO_DEVXSFS} /mnt/data/ 2>/dev/null
 #sync
 umount /mnt/data
-echo -n "Finished, press ENTER key to continue: "
+echo -n "'$(gettext 'Finished, press ENTER key to continue:')' "
 read moo
 ' > /tmp/installpup.sh
     chmod 755 /tmp/installpup.sh
-    rxvt -bg "orange" -title "Puppy Universal Installer" -geometry 80x10 -e /tmp/installpup.sh $DESTPART $SRCPATH $FINALPMEDIA $DESTFS $DISTRO_FILE_PREFIX $DISTRO_PUPPYSFS $DISTRO_ZDRVSFS #$DISTRO_DEVXSFS
+    rxvt -bg "orange" -title "$(gettext 'Puppy Universal Installer')" -geometry 80x10 -e /tmp/installpup.sh $DESTPART $SRCPATH $FINALPMEDIA $DESTFS $DISTRO_FILE_PREFIX $DISTRO_PUPPYSFS $DISTRO_ZDRVSFS #$DISTRO_DEVXSFS
     ;;
    *)
-    gxmessage "Your $DESTPART has a $DESTFS filesystem. Currently only install
+    xmessage "`eval_gettext \"Your \\\$DESTPART has a \\\$DESTFS filesystem. Currently only install
 to external vfat (FAT16/32) or ext2/ext3 filesystems is supported.
-Click OK to quit..."
+Click OK to quit...\"`"
     exit
     ;;
   esac
   ;;
  scsihd|atahd|idehd|satahd) #internal media, boot with boot-disk or grub. #v3.98
@@ -1152,46 +1157,46 @@
   #choose option1 or option2 install...
   #option1: files vmlinuz, initrd.gz, ${DISTRO_PUPPYSFS}, to dest partition.
   #option2: file vmlinuz to partition, contents of ${DISTRO_PUPPYSFS} to partition.
   #if [ $PUPVEROLD -eq 0 ];then
   if [ "$PUPVEROLD" = "0.0" ];then #110422
-   PREVPUPMSG="It appears that this is a new installation."
+   PREVPUPMSG="$(gettext 'It appears that this is a new installation.')"
   else
-   PREVPUPMSG="There appears to be an existing installation of Puppy, version $PUPVEROLD,
-and you may choose to upgrade or totally replace."
+   PREVPUPMSG="`eval_gettext \"There appears to be an existing installation of Puppy, version \\\$PUPVEROLD,
+and you may choose to upgrade or totally replace.\"`"
   fi
   INSTOPTION="1"
   if [ "$DESTFS" != "vfat" -a "$DESTFS" != "ntfs" ];then #120126 jemimah: add ntfs exclusion.
-   LANG=C Xdialog --wmclass "gtkdialog2" --left --buttons-style text --title "Puppy Universal Installer" --ok-label "FRUGAL" --cancel-label "FULL" --yesno "You have chosen to install to /dev/$DESTPART, which appears to be an internal
-hard drive ($FINALPMEDIA).
+   Xdialog --wmclass "gtkdialog2" --left --buttons-style text --title "$(gettext 'Puppy Universal Installer')" --ok-label "$(gettext 'FRUGAL')" --cancel-label "$(gettext 'FULL')" --yesno "`eval_gettext \"You have chosen to install to /dev/\\\$DESTPART, which appears to be an internal
+hard drive\"` ($FINALPMEDIA).
 $PREVPUPMSG
 
-There are two ways to install Puppy to the partition:
-
-1. FRUGAL (recommended)
-Copies the files vmlinuz, initrd.gz, ${DISTRO_PUPPYSFS} and ${DISTRO_ZDRVSFS} to the
-partition, saving your personal settings inside a ${DISTRO_FILE_PREFIX}save file (like when
-running from CD) and leaving the previous contents of the partition
-untouched. PROS:
-- Can coexist with another distro installed to the same partition.
-- Can install to a non-Linux FAT or NTFS partition (former preferred).
-- Easier to upgrade: just download the new .iso file and replace the above
-  files with their newer versions (mount the .iso to access the files).
-  (Note: A .iso can easily be mounted in puppy just by clicking on it)
-- Enables the use of .sfs addons (application combo-packs).
-- Can save to entire partition if Linux f.s. and no need to coexist.
-
-2. FULL
-A \"normal\" Linux installation, requiring usage of the entire partition by Puppy.
-
-Note: FRUGAL option, if install to a FAT or NTFS partition, there is an
-extra boot option: \"WakePup2\", using a floppy disk. Otherwise, GRUB is
-the normal method, booting from floppy, USB or internal hard drive.
-
-Click FRUGAL for coexist install (recommended)...
-Click FULL for conventional install...
-Click window close box to quit..." 0 0
+$(gettext 'There are two ways to install Puppy to the partition:')
+
+$(gettext '1. FRUGAL (recommended)')
+`eval_gettext \"Copies the files vmlinuz, initrd.gz, \\\${DISTRO_PUPPYSFS} and \\\${DISTRO_ZDRVSFS} to the\"`
+`eval_gettext \"partition, saving your personal settings inside a \\\${DISTRO_FILE_PREFIX}save file (like when\"`
+$(gettext 'running from CD) and leaving the previous contents of the partition')
+$(gettext 'untouched. PROS:')
+- $(gettext 'Can coexist with another distro installed to the same partition.')
+- $(gettext 'Can install to a non-Linux FAT or NTFS partition (former preferred).')
+- $(gettext 'Easier to upgrade: just download the new .iso file and replace the above')
+  $(gettext 'files with their newer versions (mount the .iso to access the files).')
+  $(gettext '(Note: A .iso can easily be mounted in puppy just by clicking on it)')
+- $(gettext 'Enables the use of .sfs addons (application combo-packs)').
+- $(gettext 'Can save to entire partition if Linux f.s. and no need to coexist.')
+
+$(gettext '2. FULL')
+$(gettext 'A "normal" Linux installation, requiring usage of the entire partition by Puppy.')
+
+$(gettext 'Note: FRUGAL option, if install to a FAT or NTFS partition, there is an')
+$(gettext 'extra boot option: "WakePup2", using a floppy disk. Otherwise, GRUB is')
+$(gettext 'the normal method, booting from floppy, USB or internal hard drive.')
+
+$(gettext 'Click FRUGAL for coexist install (recommended)...')
+$(gettext 'Click FULL for conventional install...')
+$(gettext 'Click window close box to quit...')" 0 0
    RET_VAL=$?
    [ $RET_VAL -eq 255 ] && exit
    [ $RET_VAL -eq 1 ] && INSTOPTION="2"
   fi
 
@@ -1212,49 +1217,49 @@
   #INSTOPTION, install puppy to DESTPART...
   if [ "$INSTOPTION" = "1" ];then #frugal.
 
    case $DESTFS in #100719
     ext2|ext3|ext4|reiserfs|minix|btrfs)
-     LANG=C Xdialog --stdout --wmclass "gtkdialog2" --left --title "Puppy Universal Installer" --msgbox "You have chosen a frugal installation. As you are installing Puppy to a
-partition with a Linux filesystem (${DESTFS}), the first time that you run
-Puppy and shutdown you will be offered to save the session to either a single
-file or to the entire partition.
-
-A single file has convenience for backup and there can be multiple session
-files, both for this installation of Puppy and for other installations of
-Puppy. Saving the session to the entire partition has the advantage of all
-the space available in that partition, however this is a warning for the
-next dialog in this Puppy Universal Installer...
-
-The next dialog will ask if you want to install Puppy into a sub-directory.
-If you intend to, or might want to, save the session to entire partition, do
-NOT install to a sub-directory, leave the folder field empty..." 0 0
+     Xdialog --stdout --wmclass "gtkdialog2" --left --title "$(gettext 'Puppy Universal Installer')" --msgbox "$(gettext 'You have chosen a frugal installation. As you are installing Puppy to a')
+`eval_gettext \"partition with a Linux filesystem (\\\${DESTFS}), the first time that you run\"`
+$(gettext 'Puppy and shutdown you will be offered to save the session to either a single')
+$(gettext 'file or to the entire partition.')
+
+$(gettext 'A single file has convenience for backup and there can be multiple session')
+$(gettext 'files, both for this installation of Puppy and for other installations of')
+$(gettext 'Puppy. Saving the session to the entire partition has the advantage of all')
+$(gettext 'the space available in that partition, however this is a warning for the')
+$(gettext 'next dialog in this Puppy Universal Installer...')
+
+$(gettext 'The next dialog will ask if you want to install Puppy into a sub-directory.')
+$(gettext 'If you intend to, or might want to, save the session to entire partition, do')
+$(gettext 'NOT install to a sub-directory, leave the folder field empty...')" 0 0
     ;;
    esac
 
    #101107 fix msg, puppy now searches 2-deep...
-   LANG=C Xdialog --stdout --wmclass "gtkdialog2" --left --title "Puppy Universal Installer" --fixed-font --no-cancel --inputbox "Puppy is going to be installed to partition ${DESTPART}, which is currently
-mounted on path ${DESTMNTPT}. As this will be a frugal install, you can
-choose to place the Puppy files in a folder. This is very convenient if you
-want to have more than one installation of Puppy. Even if you only have one
-installation, it may be good to have all the Puppy files in their own folder
-and so not causing any potential conflicts with other files at the top '/'
-level (ex: a pre-existing full Linux install may have 'initrd.gz' at '/').
-
-Enter a unique name for the folder. Note, Puppy will search 2-deep, so this
-(for example) 'puppyfiles/pup${NEWVER}' is okay. Or, a folder at the top
-level, 'pup${NEWVER}' is okay (of course, do not type the '). Type a string
-without any spaces, or leave blank if you want to install Puppy at '/'.
-The folders will be created if don't exist..." 0 0 "${DISTRO_FILE_PREFIX}${NEWVER}frugal" >/tmp/NEWPSUBDIR #111011
+   Xdialog --stdout --wmclass "gtkdialog2" --left --title "$(gettext 'Puppy Universal Installer')" --fixed-font --no-cancel --inputbox "`eval_gettext \"Puppy is going to be installed to partition \\\${DESTPART}, which is currently\"`
+`eval_gettext \"mounted on path \\\${DESTMNTPT}. As this will be a frugal install, you can\"`
+$(gettext 'choose to place the Puppy files in a folder. This is very convenient if you')
+$(gettext 'want to have more than one installation of Puppy. Even if you only have one')
+$(gettext 'installation, it may be good to have all the Puppy files in their own folder')
+$(gettext 'and so not causing any potential conflicts with other files at the top') '/'
+`gettext \"level (ex: a pre-existing full Linux install may have 'initrd.gz' at '/')\"`.
+
+$(gettext 'Enter a unique name for the folder. Note, Puppy will search 2-deep, so this')
+`eval_gettext \"(for example) 'puppyfiles/pup\\\${NEWVER}' is okay. Or, a folder at the top\"`
+`eval_gettext \"level, 'pup\\\${NEWVER}' is okay (of course, do not type the '). Type a string\"`
+`gettext \"without any spaces, or leave blank if you want to install Puppy at '/'.\"`
+`gettext \"The folders will be created if don't exist...\"`" 0 0 "${DISTRO_FILE_PREFIX}${NEWVER}frugal" >/tmp/NEWPSUBDIR #111011
    [ $? -ne 0 ] && exit
    NEWPSUBDIR="`cat /tmp/NEWPSUBDIR | sed -e 's%^/%%' -e 's%/$%%' -e 's%[^/a-zA-Z0-9.]%%g'`" #101107 111011
    NEWPSUBCNT=`echo -n "$NEWPSUBDIR" | sed -e 's%[^/]%%g' | wc -c` #101107
    [ $NEWPSUBCNT -gt 2 ] && NEWPSUBDIR="`echo -n "$NEWPSUBDIR" | sed -e 's%/%%g'`" #101107 too many '/' chars.
 
 #   yaf-splash -font "8x16" -outline 0 -margin 4 -bg orange -text "Please wait, copying files to $DESTPART, in folder $NEWPSUBDIR..." &
 #   /usr/X11R7/bin/yaf-splash -font "8x16" -outline 0 -margin 4 -bg orange -text "Please wait, copying files to $DESTPART, in folder $NEWPSUBDIR..." &
-   yaf-splash -bg orange -text "Please wait, copying files to $DESTPART, in folder $NEWPSUBDIR..." &
+   yaf-splash -bg orange -text "`eval_gettext \"Please wait, copying files to \\\$DESTPART, in folder \\\$NEWPSUBDIR...\"`" &
    XPID=$!
    mkdir -p $DESTMNTPT/$NEWPSUBDIR
    cp -f $SRCPATH/vmlinuz $DESTMNTPT/$NEWPSUBDIR/
    sync
    cp -f $SRCPATH/initrd.gz $DESTMNTPT/$NEWPSUBDIR/
@@ -1271,17 +1276,17 @@
    kill $XPID
    umount /dev/$DESTPART
 
    if [ "`echo -n "$DESTFS" | grep -E 'msdos|vfat'`" != "" ];then
 
-    LANG=C Xdialog --wmclass "gtkdialog2" --left --title "Puppy Universal Installer" --ok-label "CREATE_BOOT_DISK" --cancel-label "NO_BOOT_DISK" --yesno "
-A floppy disk can be used to boot Puppy.
-Currently we are offering WakePup2, a generic boot floppy
-that scans the PC and finds where Puppy is installed.
-
-Note, after this, you will be informed how to configure the
-Grub bootloader." 0 0
+    Xdialog --wmclass "gtkdialog2" --left --title "$(gettext 'Puppy Universal Installer')" --ok-label "$(gettext 'CREATE_BOOT_DISK')" --cancel-label "$(gettext 'NO_BOOT_DISK')" --yesno "
+$(gettext 'A floppy disk can be used to boot Puppy.')
+$(gettext 'Currently we are offering WakePup2, a generic boot floppy')
+$(gettext 'that scans the PC and finds where Puppy is installed.')
+
+$(gettext 'Note, after this, you will be informed how to configure the')
+$(gettext 'Grub bootloader.')" 0 0
     if [ $? -eq 0 ];then
      /usr/sbin/wakepup2
     fi
 
    fi
@@ -1293,82 +1298,82 @@
    fi
    if [ -e /proc/ide ];then #v3.97
     grubEXTRAMSG=""
    else
     grubEXTRAMSG="
-WARNING: If your PC has a mix of IDE and SATA hard drives, then (hd${GRUB_DRVN}${GRUB_PARTN})
-may be wrong. GRUB numbers drives as hd<drive>,<partition> where
-<drive> and <partition> numbering starts from zero. The problem is
-that GRUB sees IDE drives first (hd0,), whereas if you look at Pmount
-you may see it listed second (hd1,). The Uni. Installer uses the
-ordering as reported by Pmount, which may be wrong for GRUB!
-(EX: if an IDE drive is hd1,0 (sdb1), may need to be changed to hd0,0)"
+`eval_gettext \"WARNING: If your PC has a mix of IDE and SATA hard drives, then (hd\\\${GRUB_DRVN}\\\${GRUB_PARTN})\"`
+$(gettext 'may be wrong. GRUB numbers drives as hd<drive>,<partition> where')
+$(gettext '<drive> and <partition> numbering starts from zero. The problem is')
+$(gettext 'that GRUB sees IDE drives first (hd0,), whereas if you look at Pmount')
+$(gettext 'you may see it listed second (hd1,). The Uni. Installer uses the')
+$(gettext 'ordering as reported by Pmount, which may be wrong for GRUB!')
+$(gettext '(EX: if an IDE drive is hd1,0 (sdb1), may need to be changed to hd0,0)')"
    fi
 
    #091211...
-   echo "If you have GRUB installed, find the 'menu.lst' file (usually in /boot
-in the partition in which GRUB is installed) and insert this:
+   echo "`gettext \"If you have GRUB installed, find the 'menu.lst' file (usually in /boot
+in the partition in which GRUB is installed) and insert this:\"`
 " > /tmp/NEWGRUBTEXT
    echo "title Puppy Linux ${NEWVER} frugal in ${DESTPART} dir ${NEWPSUBDIR}
 rootnoverify (hd${GRUB_DRVN}${GRUB_PARTN})
 kernel ${xNEWPSUBDIR}/vmlinuz pmedia=${FINALPMEDIA}${OPTIONPSUBDIR}
 initrd ${xNEWPSUBDIR}/initrd.gz
 " >> /tmp/NEWGRUBTEXT
-   echo "If you have GRUB4DOS installed, find the 'menu.lst' file (usually in /
-in the partition in which GRUB4DOS is installed) and insert this:
+   echo "`gettext \"If you have GRUB4DOS installed, find the 'menu.lst' file (usually in /
+in the partition in which GRUB4DOS is installed) and insert this:\"`
 " >> /tmp/NEWGRUBTEXT
    echo "title Puppy Linux ${NEWVER} frugal in ${DESTPART} dir ${NEWPSUBDIR}
   find --set-root --ignore-floppies ${xNEWPSUBDIR}/initrd.gz
   kernel ${xNEWPSUBDIR}/vmlinuz pmedia=${FINALPMEDIA}${OPTIONPSUBDIR}
   initrd ${xNEWPSUBDIR}/initrd.gz" >> /tmp/NEWGRUBTEXT
 
    nohup defaulttextviewer /tmp/NEWGRUBTEXT &
    sleep 3
 
-   LANG=C Xdialog --wmclass "gtkdialog2" --left --title "Puppy Universal Installer" --msgbox "Now you can manually setup your GRUB, GRUB4DOS, LILO or other boot system.
-
-Partition $DESTPART has the files vmlinuz, initrd.gz and ${DISTRO_PUPPYSFS}
-on it, where vmlinuz is the kernel, initrd.gz is the initial ramdisk and
-${DISTRO_PUPPYSFS} is all the Puppy-files.
-
-If you already have GRUB or GRUB4DOS installed, see the text editor
-window for text that can be inserted into 'menu.lst'.
-
-If you do NOT have GRUB or GRUB4DOS (or any other boot manager) installed,
-just click the 'OK' button to finish the installation, then go to the
-'System' menu and run the GRUB or GRUB4DOS installer (you probably will
-not need the text in the text editor window, as the installers will probe
-your PC for all installations of Puppy and other operating systems).
+   Xdialog --wmclass "gtkdialog2" --left --title "$(gettext 'Puppy Universal Installer')" --msgbox "$(gettext 'Now you can manually setup your GRUB, GRUB4DOS, LILO or other boot system.')
+
+`eval_gettext \"Partition \\\$DESTPART has the files vmlinuz, initrd.gz and \\\${DISTRO_PUPPYSFS}\"`
+$(gettext 'on it, where vmlinuz is the kernel, initrd.gz is the initial ramdisk and')
+${DISTRO_PUPPYSFS} $(gettext 'is all the Puppy-files.')
+
+$(gettext 'If you already have GRUB or GRUB4DOS installed, see the text editor')
+$(gettext 'window for text that can be inserted into') 'menu.lst'.
+
+$(gettext 'If you do NOT have GRUB or GRUB4DOS (or any other boot manager) installed,')
+`gettext \"just click the 'OK' button to finish the installation, then go to the\"`
+`gettext \"'System' menu and run the GRUB or GRUB4DOS installer (you probably will\"`
+$(gettext 'not need the text in the text editor window, as the installers will probe')
+$(gettext 'your PC for all installations of Puppy and other operating systems)').
 ${grubEXTRAMSG}" 0 0
 
    #finished. could put up a final dlg here, then quit script.
-   LANG=C Xdialog --wmclass "gtkdialog2" --title "Puppy Universal Installer" --msgbox "Okay, all done!" 0 0
+   Xdialog --wmclass "gtkdialog2" --title "$(gettext 'Puppy Universal Installer')" --msgbox "$(gettext 'Okay, all done!')" 0 0
    exit
   else #h.d. install option2
    #upgrade, ask if want delete partition...
    #if [ ! $PUPVEROLD -eq 0 ];then
    if [ "$PUPVEROLD" != "0.0" ];then #110422
-    LANG=C Xdialog --wmclass "gtkdialog2" --left --buttons-style text --title "Puppy Universal Installer" --ok-label "UPGRADE" --cancel-label "WIPE" --yesno "There is already a version of Puppy installed in $DESTPART.\nDo you want to upgrade, or totally wipe the partition?\n\nFINAL SANITY CHECK: ARE YOU SURE $DESTPART IS THE RIGHT PARTITION?\n(note, $DESTPART is currently mounted on $DESTMNTPT -- okay?)\n\nSelect UPGRADE button to upgrade...\nSelect WIPE button to wipe partition...\nClick window Close box to quit..." 0 0
+    Xdialog --wmclass "gtkdialog2" --left --buttons-style text --title "$(gettext 'Puppy Universal Installer')" --ok-label "$(gettext 'UPGRADE')" --cancel-label "$(gettext 'WIPE')" --yesno "`eval_gettext \"There is already a version of Puppy installed in \\\$DESTPART.\nDo you want to upgrade, or totally wipe the partition?\n\nFINAL SANITY CHECK: ARE YOU SURE \\\$DESTPART IS THE RIGHT PARTITION?\n(note, \\\$DESTPART is currently mounted on \\\$DESTMNTPT -- okay?)\n\nSelect UPGRADE button to upgrade...\nSelect WIPE button to wipe partition...\nClick window Close box to quit...\"`" 0 0
     RET_VAL=$?
     if [ $RET_VAL -eq 255 ];then
      rox -D "$DESTMNTPT"
      sync
      umount $DESTMNTPT 2>/dev/null
      exit
     fi
     if [ $RET_VAL -eq 1 ];then #no
-     LANG=C Xdialog --wmclass "gtkdialog2" --title "Puppy Universal Installer" --no-buttons --infobox "Please wait, wiping all files in $DESTPART..." 0 0 200000 &
+     Xdialog --wmclass "gtkdialog2" --title "$(gettext 'Puppy Universal Installer')" --no-buttons --infobox "$(gettext 'Please wait, wiping all files in') $DESTPART..." 0 0 200000 &
      XPID=$!
      sleep 3
      rm -rf $DESTMNTPT/*
      sync
      kill $XPID
      #PUPVEROLD=`expr $DISTRO_VERSION - 1` #v430
      PUPVEROLD='0.0' #110422
     fi
    fi
-   LANG=C Xdialog --wmclass "gtkdialog2" --title "Puppy Universal Installer" --no-buttons --infobox "Please wait, copying Puppy files to $DESTPART..." 0 0 120000 &
+   Xdialog --wmclass "gtkdialog2" --title "$(gettext 'Puppy Universal Installer')" --no-buttons --infobox "$(gettext 'Please wait, copying Puppy files to') $DESTPART..." 0 0 120000 &
    XPID=$!
    sleep 1
    #loop-device mount ${DISTRO_PUPPYSFS} in DESTPART, copy contents of ${DISTRO_PUPPYSFS} to DESTPART...
    #SFSPATTERN="^${DISTRO_PUPPYSFS}" #100913
    #xSFSNAME="`ls -1 $SRCPATH/ | grep "$SFSPATTERN" | head -n 1`" #v3.01
@@ -1420,18 +1425,18 @@
    # sync
    # umount $DESTMNTPT/data
    # rm -f $DESTMNTPT/${DISTRO_DEVXSFS}
    #fi
 
-#   #100113 /bin/TARGETEXES has list of executables that were copied from initrd (and not in main f.s.)...
-#   if [ -f /bin/TARGETEXES ];then
-#    for ONEEXE in `cat /bin/TARGETEXES` #ex: sbin/e2fsck
-#    do
-#     DIREXE="`dirname $ONEEXE`"
-#     cp -a -f --remove-destination /${ONEEXE} ${DESTMNTPT}/${DIREXE}/
-#    done
-#   fi
+   #100113 /bin/TARGETEXES has list of executables that were copied from initrd (and not in main f.s.)...
+   if [ -f /bin/TARGETEXES ];then
+    for ONEEXE in `cat /bin/TARGETEXES` #ex: sbin/e2fsck
+    do
+     DIREXE="`dirname $ONEEXE`"
+     cp -a -f --remove-destination /${ONEEXE} ${DESTMNTPT}/${DIREXE}/
+    done
+   fi
    #same thing here...
    if [ -d /lib/keymaps ];then
     mkdir -p ${DESTMNTPT}/lib/keymaps
     cp -a -f /lib/keymaps/* ${DESTMNTPT}/lib/keymaps/
     mkdir -p ${DESTMNTPT}/lib/consolefonts
@@ -1452,11 +1457,11 @@
    sync
    kill $XPID
    #fix space optimisation links into initrd...
     #TODO
    #chroot to DESTPART, set DISTRO_VERSION back to $PUPVEROLD, run rc.update
-   LANG=C Xdialog --wmclass "gtkdialog2" --title "Puppy Universal Installer" --no-buttons --infobox "Please wait, executing rc.update script..." 0 0 60000 &
+   Xdialog --wmclass "gtkdialog2" --title "$(gettext 'Puppy Universal Installer')" --no-buttons --infobox "$(gettext 'Please wait, executing rc.update script...')" 0 0 60000 &
    XPID=$!
    sleep 2
 
    if [ -f $DESTMNTPT/etc/puppyversion ];then #historical file, old installations.
     echo -n "$PUPVEROLD" > $DESTMNTPT/etc/puppyversion #set it back to what it was.
@@ -1496,65 +1501,65 @@
     cp -af $SRCPATH/vmlinuz /mnt/$DESTPART/boot/
     sync
     umount /mnt/$DESTPART
     unmountcdfunc
     echo "
-If you have GRUB installed, find the 'menu.lst' file (usually in /boot
+`gettext \"If you have GRUB installed, find the 'menu.lst' file (usually in /boot
 in the partition in which GRUB is installed) and insert the text,
 or, if you have GRUB4DOS installed, find the 'menu.lst' file (usually
-in / in the partition in which GRUB4DOS is installed) and insert this:
+in / in the partition in which GRUB4DOS is installed) and insert this:\"`
 " > /tmp/NEWGRUBTEXT
     echo "title Puppy Linux ${NEWVER} full install in ${DESTPART}
 root (hd${GRUB_DRVN}${GRUB_PARTN})
 kernel /boot/vmlinuz root=/dev/${DESTPART} pmedia=${FINALPMEDIA}
 
-WARNING: If your PC has a mix of IDE and SATA hard drives, then (hd${GRUB_DRVN}${GRUB_PARTN})
+`eval_gettext \"WARNING: If your PC has a mix of IDE and SATA hard drives, then (hd\\\${GRUB_DRVN}\\\${GRUB_PARTN})
 may be wrong. GRUB numbers drives as hd<drive>,<partition> where
 <drive> and <partition> numbering starts from zero. The problem is
 that GRUB sees IDE drives first (hd0,), whereas if you look at Pmount
 you may see it listed second (hd1,). The Uni. Installer uses the
 ordering as reported by Pmount, which may be wrong for GRUB!
-(EX: if an IDE drive is hd1,0 (sdb1), may need to be changed to hd0,0)" >> /tmp/NEWGRUBTEXT
+(EX: if an IDE drive is hd1,0 (sdb1), may need to be changed to hd0,0)\"`" >> /tmp/NEWGRUBTEXT
 
     nohup defaulttextviewer /tmp/NEWGRUBTEXT &
     sleep 3
 
-    LANG=C Xdialog --wmclass "gtkdialog2" --left --buttons-style text --title "Puppy Universal Installer" --ok-label "OK" --msgbox "If all went well, Puppy has been installed to $DESTPART.\n\
-The text-editor window shows text that you can insert into the menu.lst
-file if you have GRUB or GRUB4DOS inststalled.
+    Xdialog --wmclass "gtkdialog2" --left --buttons-style text --title "$(gettext 'Puppy Universal Installer')" --ok-label "OK" --msgbox "$(gettext 'If all went well, Puppy has been installed to') $DESTPART.\n\
+$(gettext 'The text-editor window shows text that you can insert into the menu.lst')
+$(gettext 'file if you have GRUB or GRUB4DOS inststalled.')
 
-If your PC does not have GRUB, GRUB4DOS, LILO or any other boot manager
-installed, or you want to do a reinstallation, just click the 'OK'
-button to finish the Universal Installer, then go to the 'System' menu
-and run the GRUB or GRUB4DOS installer -- this will probe your PC, so
-you probably won't need the contents of the text-editor..." 0 0
+$(gettext 'If your PC does not have GRUB, GRUB4DOS, LILO or any other boot manager')
+$(gettext 'installed, or you want to do a reinstallation, just click the ')'OK'
+`gettext \"button to finish the Universal Installer, then go to the 'System' menu\"`
+`gettext \"and run the GRUB or GRUB4DOS installer -- this will probe your PC, so\"`
+`gettext \"you probably won't need the contents of the text-editor...\"`" 0 0
 
     break
    fi
 
 #TODO needs work, as could have usb hd, that cannot unplug and do not want it to be turned
 #     into a boot disk!...
-   LANG=C Xdialog --wmclass "gtkdialog2" --left --buttons-style text --title "Puppy Universal Installer" --ok-label "Boot from USB" --cancel-label "Install/update GRUB" --yesno "If all went well, Puppy has been installed to $DESTPART.\n\
-But, now we have the sometimes-difficult part, how to make Puppy bootable.\n\
-You can do one, or both, of these:\n\
+   Xdialog --wmclass "gtkdialog2" --left --buttons-style text --title "$(gettext 'Puppy Universal Installer')" --ok-label "$(gettext 'Boot from USB')" --cancel-label "$(gettext 'Install/update GRUB')" --yesno "$(gettext 'If all went well, Puppy has been installed to') $DESTPART.\n\
+$(gettext 'But, now we have the sometimes-difficult part, how to make Puppy bootable.')\n\
+$(gettext 'You can do one, or both, of these:')\n\
 \n\
-Boot disk: Use a floppy disk or USB pen drive to boot Puppy.\n\
-GRUB:      Install GRUB in the hard drive (or update existing GRUB).\n\
+$(gettext 'Boot disk: Use a floppy disk or USB pen drive to boot Puppy.')\n\
+GRUB:      $(gettext 'Install GRUB in the hard drive (or update existing GRUB)').\n\
 \n\
-Click 'Boot from USB' if you want to sacrifice a usb Flash pen drive as a\n\
-'boot disk'. This Universal Installer script will return to this dialog\n\
-window after creating the USB 'boot disk'.\n\
-Note, you would probably only choose this if your PC does not have a floppy\n\
-drive and you do not want to install GRUB to the hard drive.\n\
+`gettext \"Click 'Boot from USB' if you want to sacrifice a usb Flash pen drive as a\"`\n\
+`gettext \"'boot disk'. This Universal Installer script will return to this dialog\"`\n\
+`gettext \"window after creating the USB 'boot disk'.\"`\n\
+$(gettext 'Note, you would probably only choose this if your PC does not have a floppy')\n\
+$(gettext 'drive and you do not want to install GRUB to the hard drive.')\n\
 \n\
-Click 'Install/update GRUB' to install (or update) the GRUB boot manager.\n\
-You will be given the opportunity to create a floppy 'boot disk' as well\n\
-as install GRUB to the hard drive.\n\
+`gettext \"Click 'Install/update GRUB' to install (or update) the GRUB boot manager.\"`\n\
+`gettext \"You will be given the opportunity to create a floppy 'boot disk' as well\"`\n\
+`gettext \"as install GRUB to the hard drive.\"`\n\
 \n\
-FOR USB BOOT DISK CHOICE, PLEASE INSERT IT RIGHT NOW BEFORE PROCEEDING!\n\
- (must have FAT16 f.s., and any files in it will be deleted)\n\
- IT MUST ALSO BE UNMOUNTED -- BE SURE BEFORE PROCEEDING" 0 0
+$(gettext 'FOR USB BOOT DISK CHOICE, PLEASE INSERT IT RIGHT NOW BEFORE PROCEEDING!')\n\
+ ($(gettext 'must have FAT16 f.s., and any files in it will be deleted'))\n\
+ $(gettext 'IT MUST ALSO BE UNMOUNTED -- BE SURE BEFORE PROCEEDING')" 0 0
    if [ $? -eq 0 ];then #BOOT DISK
     BOOTPART=""
     #v3.96...
     USBDRIVES="`echo "$PROBEDISK" | grep '|usbdrv|' | cut -f 3 -d '/' | cut -f 1 -d '|' | tr "\n" " "`"
     for ONEUSB in $USBDRIVES
@@ -1569,17 +1574,17 @@
       BOOTPART="${ONEUSB}1"
       break
      fi
     done
     if [ ! "$BOOTPART" = "" ];then
-     LANG=C Xdialog --wmclass "gtkdialog2" --left --title "Puppy Universal Installer" --yesno "Please confirm that you want to make '$BOOTPART' into a boot disk for Puppy.\nIf Puppy has mis-identified the device, then answer 'No' here...\n\nClick 'Yes' button if correct device..." 0 0
+     Xdialog --wmclass "gtkdialog2" --left --title "$(gettext 'Puppy Universal Installer')" --yesno "`eval_gettext \"Please confirm that you want to make '\\\$BOOTPART' into a boot disk for Puppy.\nIf Puppy has mis-identified the device, then answer 'No' here...\n\nClick 'Yes' button if correct device...\"`" 0 0
      [ ! $? -eq 0 ] && continue
     fi
     if [ ! "$BOOTPART" = "" ];then
      cp -af $SRCPATH/vmlinuz /mnt/$DESTPART/
      sync
-     LANG=C Xdialog --wmclass "gtkdialog2" --title "Puppy Universal Installer" --msgbox "Creating $BOOTPART boot disk..." 0 0 &
+     Xdialog --wmclass "gtkdialog2" --title "$(gettext 'Puppy Universal Installer')" --msgbox "`eval_gettext \"Creating \\\$BOOTPART boot disk...\"`" 0 0 &
      XPID=$!
      #passed params $BOOTPART $DESTPART $SRCPATH $FINALPMEDIA
      echo '#!/bin/sh
      BOOTPART="$1"
      DESTPART="$2"
@@ -1586,25 +1591,25 @@
      SRCPATH="$3"
      FINALPMEDIA="$4"
       mkdir /tmp/bootdiskmntpt 2> /dev/null
       mount -t msdos /dev/$BOOTPART /tmp/bootdiskmntpt
       rm -rf /tmp/bootdiskmntpt/*
-      echo "Creating syslinux.cfg on /dev/$BOOTPART..."
+      echo "'$(gettext 'Creating syslinux.cfg on /dev/')'$BOOTPART..."
       echo "default vmlinuz root=/dev/$DESTPART pmedia=$FINALPMEDIA" > /tmp/bootdiskmntpt/syslinux.cfg
-      echo "Writing the Linux kernel, vmlinuz, to /dev/$BOOTPART..."
+      echo "'$(gettext 'Writing the Linux kernel, vmlinuz, to')' /dev/$BOOTPART..."
       cp -f $SRCPATH/vmlinuz /tmp/bootdiskmntpt/
       sync
       umount /dev/$BOOTPART
       rmdir /tmp/bootdiskmntpt
-      echo "Making the /dev/$BOOTPART bootable using Syslinux..."
+      echo "'$(gettext 'Making the')' /dev/$BOOTPART '$(gettext 'bootable using Syslinux...')'"
       syslinux /dev/$BOOTPART
      sync
-     echo -n "Done. Press ENTER key: "
+     echo -n "'$(gettext 'Done. Press ENTER key:')' "
      read allisdone
 ' > /tmp/installpup.sh
      chmod 755 /tmp/installpup.sh
-     rxvt -bg "orange" -title "Puppy Universal Installer" -geometry 80x10 -e /tmp/installpup.sh $BOOTPART $DESTPART $SRCPATH $FINALPMEDIA
+     rxvt -bg "orange" -title "$(gettext 'Puppy Universal Installer')" -geometry 80x10 -e /tmp/installpup.sh $BOOTPART $DESTPART $SRCPATH $FINALPMEDIA
 
      kill $XPID
     fi
    else #Grub
     mkdir -p /mnt/$DESTPART/boot/grub
@@ -1614,86 +1619,86 @@
     unmountcdfunc
     if [ -e /proc/ide ];then #v3.97
      grubEXTRAMSG=""
     else
      grubEXTRAMSG="
-WARNING: If your PC has a mix of IDE and SATA hard drives, then
-GRUB may get the drive numbering wrong. In which case, you may
-have to manually edit the entry or entries in /boot/grub/menu.lst
-in the partition where GRUB is installed. This problem has come
-with recent Linux kernels where IDE drives are now /dev/sd*, the
-same letters as SATA drives, whereas before they were /dev/hd*.
-GRUB uses \"hd\" notation for both IDE and SATA drives, and numbers
-drives as hd<drive>,<partition> where <drive> and <partition> numbering
-starts from zero (again different, as Linux numbers partitions from 1).
-The problem is that GRUB sees IDE drives first (hd0,), whereas if you
-look at Pmount you may see it listed second (hd1,). The Uni. Installer
-uses the ordering as reported by Pmount, which may be wrong for GRUB!
-(EX: if an IDE drive is hd1,0 (sdb1), may need to be changed to hd0,0)"
+$(gettext 'WARNING: If your PC has a mix of IDE and SATA hard drives, then')
+$(gettext 'GRUB may get the drive numbering wrong. In which case, you may')
+$(gettext 'have to manually edit the entry or entries in /boot/grub/menu.lst')
+$(gettext 'in the partition where GRUB is installed. This problem has come')
+$(gettext 'with recent Linux kernels where IDE drives are now /dev/sd*, the')
+$(gettext 'same letters as SATA drives, whereas before they were /dev/hd*.')
+$(gettext 'GRUB uses "hd" notation for both IDE and SATA drives, and numbers')
+$(gettext 'drives as hd<drive>,<partition> where <drive> and <partition> numbering')
+$(gettext 'starts from zero (again different, as Linux numbers partitions from 1).')
+$(gettext 'The problem is that GRUB sees IDE drives first (hd0,), whereas if you')
+$(gettext 'look at Pmount you may see it listed second (hd1,). The Uni. Installer')
+$(gettext 'uses the ordering as reported by Pmount, which may be wrong for GRUB!')
+($(gettext 'EX: if an IDE drive is hd1,0 (sdb1), may need to be changed to hd0,0'))"
     fi
-    LANG=C Xdialog --buttons-style "text" --wmclass "gtkdialog2" --left --title "Universal Installer" --ok-label "UPDATE" --cancel-label "INSTALL" --yesno "Click UPDATE button if you want to update an existing installation
-of GRUB, or click INSTALL to install or reinstall GRUB...
+    Xdialog --buttons-style "text" --wmclass "gtkdialog2" --left --title "$(gettext 'Universal Installer')" --ok-label "$(gettext 'UPDATE')" --cancel-label "$(gettext 'INSTALL')" --yesno "$(gettext 'Click UPDATE button if you want to update an existing installation')
+$(gettext 'of GRUB, or click INSTALL to install or reinstall GRUB...')
 ${grubEXTRAMSG}" 0 0
     if [ $? -eq 0 ];then #v3.96 update grub.
      echo "title Puppy Linux $NEWVER full install
 root (hd${GRUB_DRVN}${GRUB_PARTN})
 kernel /boot/vmlinuz root=/dev/$DESTPART pmedia=${FINALPMEDIA}" > /tmp/NEWGRUBTEXT
      if [ -e /proc/ide ];then #v3.97
-      grubEXTRAMSG="...for your convenience, this text has been written to /tmp/NEWGRUBTEXT"
+      grubEXTRAMSG="$(gettext '...for your convenience, this text has been written to') /tmp/NEWGRUBTEXT"
      else
-      grubEXTRAMSG="...for your convenience, this text has been written to /tmp/NEWGRUBTEXT
+      grubEXTRAMSG="$(gettext '...for your convenience, this text has been written to') /tmp/NEWGRUBTEXT
 
-WARNING: If your PC has a mix of IDE and SATA hard drives, then (hd${GRUB_DRVN}${GRUB_PARTN})
-may be wrong. GRUB numbers drives as hd<drive>,<partition> where
-<drive> and <partition> numbering starts from zero. The problem is
-that GRUB sees IDE drives first (hd0,), whereas if you look at Pmount
-you may see it listed second (hd1,). The Uni. Installer uses the
-ordering as reported by Pmount, which may be wrong for GRUB!
-(EX: if an IDE drive is hd1,0 (sdb1), may need to be changed to hd0,0)"
+$(gettext 'WARNING: If your PC has a mix of IDE and SATA hard drives, then') (hd${GRUB_DRVN}${GRUB_PARTN})
+$(gettext 'may be wrong. GRUB numbers drives as hd<drive>,<partition> where')
+$(gettext '<drive> and <partition> numbering starts from zero. The problem is')
+$(gettext 'that GRUB sees IDE drives first (hd0,), whereas if you look at Pmount')
+$(gettext 'you may see it listed second (hd1,). The Uni. Installer uses the')
+$(gettext 'ordering as reported by Pmount, which may be wrong for GRUB!')
+($(gettext 'EX: if an IDE drive is hd1,0 (sdb1), may need to be changed to hd0,0'))"
      fi
 
-     LANG=C Xdialog --wmclass "gtkdialog2" --left --title "Universal Installer" --msgbox "You have chosen to update an existing GRUB installation.
-This requires a final manual step...
-Find the \"menu.lst\" file (usually in /boot/grub in the
-partition in which GRUB is installed) and insert this:
+     Xdialog --wmclass "gtkdialog2" --left --title "$(gettext 'Universal Installer')" --msgbox "$(gettext 'You have chosen to update an existing GRUB installation.')
+$(gettext 'This requires a final manual step...')
+$(gettext 'Find the "menu.lst" file (usually in /boot/grub in the')
+$(gettext 'partition in which GRUB is installed) and insert this:')
 
 title Puppy Linux $NEWVER full install in $DESTPART
 root (hd${GRUB_DRVN}${GRUB_PARTN})
 kernel /boot/vmlinuz root=/dev/$DESTPART pmedia=${FINALPMEDIA}
 
 $grubEXTRAMSG
 
-After you click the OK button, the Uni. Installer will exit." 0 0
+$(gettext 'After you click the OK button, the Uni. Installer will exit.')" 0 0
      exit
     else
-     LANG=C Xdialog --wmclass "gtkdialog2" --left --title "Puppy Universal Installer" --msgbox "The \"grubconfig\" script is about to be executed.\nJust accept the defaults. The very first question will ask if you\nwant to do a simple installation, and you accept that option, which\nis the default. The only place where I suggest you deviate from the\ndefault, is when it asks where to install Grub, choose \"MBR\"." 0 0
+     Xdialog --wmclass "gtkdialog2" --left --title "$(gettext 'Puppy Universal Installer')" --msgbox "$(gettext 'The "grubconfig" script is about to be executed.\nJust accept the defaults. The very first question will ask if you\nwant to do a simple installation, and you accept that option, which\nis the default. The only place where I suggest you deviate from the\ndefault, is when it asks where to install Grub, choose "MBR"')." 0 0
      while [ 1 ];do
       grubconfig /dev/$DESTPART
       #...if choose to create a boot floppy, writes 'no' to /tmp/loopbrk.txt.
-      LANG=C Xdialog --wmclass "gtkdialog2" --title "Universal Installer" --yesno "If you have already run grubconfig to create a boot floppy or installed\n\
-to h.d., click 'Yes' button to rerun grubconfig script to either create\n\
-another boot floppy or install or reinstall GRUB to the hard drive.\n\
-If choose 'Yes', just accept all the defaults as before.\n\
+      Xdialog --wmclass "gtkdialog2" --title "$(gettext 'Universal Installer')" --yesno "$(gettext 'If you have already run grubconfig to create a boot floppy or installed')\n\
+`gettext \"to h.d., click 'Yes' button to rerun grubconfig script to either create\"`\n\
+`gettext \"another boot floppy or install or reinstall GRUB to the hard drive.\"`\n\
+`gettext \"If choose 'Yes', just accept all the defaults as before.\"`\n\
 \n\
-Click 'Yes' to rerun grubconfig...\n\
-Click 'No' if installation finished..." 0 0
+`gettext \"Click 'Yes' to rerun grubconfig...\"`\n\
+`gettext \"Click 'No' if installation finished...\"`" 0 0
       [ ! $? -eq 0 ] && break
      done
      rm -f /tmp/loopbrk.txt
      exit
     fi
    fi
-   LANG=C Xdialog --wmclass "gtkdialog2" --title "Puppy Universal Installer" --yesno "Do you want to go back and create another boot disk or Grub boot?..." 0 0
+   Xdialog --wmclass "gtkdialog2" --title "$(gettext 'Puppy Universal Installer')" --yesno "$(gettext 'Do you want to go back and create another boot disk or Grub boot?...')" 0 0
    [ ! $? -eq 0 ] && break
   done
 
   umount /mnt/$DESTPART 2> /dev/null
   ;;
  atacd|scsicd|usbcd)
-  gxmessage "not yet implemented"
+  xmessage "$(gettext 'not yet implemented')"
   #TO DO
   ;;
 esac
 
 unmountcdfunc
 
 ###END###

Changes to woof-code/rootfs-skeleton/usr/sbin/puppypdf

@@ -1,8 +1,17 @@
 #!/bin/bash
 #2007 Lesser GPL licence v2 (http://www.fsf.org/licensing/licenses/lgpl.html)
 #v426 nikin: bugfix.
+#120202 rodin.s: internationalized.
+
+export TEXTDOMAIN=puppypdf
+export TEXTDOMAINDIR=/usr/share/locale
+export OUTPUT_CHARSET=UTF-8
+eval_gettext () {
+  local myMESSAGE=$(gettext "$1")
+  eval echo \"$myMESSAGE\"
+}
 
 #info screen
 #choose input file
 #specify output file name
 #result notification
@@ -18,22 +27,22 @@
 
 INPUT=""
 OUTPUT=""
 TEMP="temp.ps"
 GUI=0
-SUPP="The Puppy PDF Conversion Wizard (puppyPDF) takes an input file\nand converts it to PDF format. The wizard relies on 3 external programs:\n\nbash, Abiword, and ps2pdf\n\nand is recommended for use with Puppy version 1.03 or later,\nsince these are included with the standard iso.\n\n=== SUPPORTED FILE FORMATS ===\n\nAbiword Documents (.abw, .awt)\n\nMicrosoft Word Documents (.doc, .dot)\n\nRich Text Format Documents (.rtf)\n\nText Documents (.txt, .text)\n\n=============================="
+SUPP="$(gettext 'The Puppy PDF Conversion Wizard (puppyPDF) takes an input file\nand converts it to PDF format. The wizard relies on 3 external programs:\n\nbash, Abiword, and ps2pdf\n\nand is recommended for use with Puppy version 1.03 or later,\nsince these are included with the standard iso.\n\n=== SUPPORTED FILE FORMATS ===\n\nAbiword Documents (.abw, .awt)\n\nMicrosoft Word Documents (.doc, .dot)\n\nRich Text Format Documents (.rtf)\n\nText Documents (.txt, .text)')\n\n=============================="
 
 #-------------------------------functions-------------------------------->
 
 #---prints puppyPDF help--->
 function usage
 {
    echo
    echo -e "puppyPDF [OPTIONS... ]\n"
-   echo -e "-i                   input file"
-   echo -e "-o                   output file"
-   echo -e "-h, --help           prints help"
+   echo -e "-i                   $(gettext 'input file')"
+   echo -e "-o                   $(gettext 'output file')"
+   echo -e "-h, --help           $(gettext 'prints help')"
    echo
    echo -e "$SUPP"
 }
 
 #---gui version of events--->
@@ -57,12 +66,12 @@
            rm -f /tmp/type #not a pdf file
 
         else
            #--- if gui is running... --->
            if [ $GUI -eq 1 ]; then
-                Xdialog --title "PDF file selected"\
-                        --yesno "A PDF file was selected.\n\nPress YES to try again,\n\n or NO to quit\n\n" 0 0
+                Xdialog --title "$(gettext 'PDF file selected')"\
+                        --yesno "$(gettext 'A PDF file was selected.\n\nPress YES to try again,\n\n or NO to quit')\n\n" 0 0
                 case $? in
                  0)
                    chooseFile
                    exit 0;;
                  1)
@@ -70,11 +79,11 @@
                  255)
                   echo "";;
                 esac
            else
                 #--- for cli interface --->
-                echo -e "\nPlease specify a valid input file\n"
+                echo -e "\n$(gettext 'Please specify a valid input file')\n"
                 usage
                 exit 0
           fi
         fi
         rm -f /tmp/type
@@ -81,12 +90,12 @@
 
    else
 
       #--- input is not a file --->
       if [ $GUI -eq 1 ]; then
-           Xdialog --title "No file selected"\
-                   --yesno "Invalid file selected.\n\nPress YES to try again,\n\n or NO to quit\n\n" 0 0
+           Xdialog --title "$(gettext 'No file selected')"\
+                   --yesno "$(gettext 'Invalid file selected.\n\nPress YES to try again,\n\n or NO to quit')\n\n" 0 0
          case $? in
            0)
              chooseFile
              exit 0;;
            1)
@@ -93,33 +102,33 @@
              exit 0;;
            255)
              echo "";;
          esac
       else
-         echo -e "\nPlease specify a valid input file\n"
+         echo -e "\n$(gettext 'Please specify a valid input file')\n"
          usage
          exit 0
       fi
    fi
 
 
    #--- no output filename specified --->
    if [ "$OUTPUT" = "" ]; then
       OUTPUT="$INPUT.pdf"
-      echo -e "no output filename specified, using $INPUT.pdf\n"
+      echo -e "$(gettext 'no output filename specified, using') $INPUT.pdf\n"
       if [ $GUI -eq 1 ]; then
          Xdialog --title "INFO BOX" \
-                 --infobox "no output filename specified,\nusing $INPUT.pdf" 13 45 20000
+                 --infobox "$(gettext 'no output filename specified,\nusing') $INPUT.pdf" 13 45 20000
       fi
    fi
 
 
    #--- specified output file already exists --->
    if [ -f "$OUTPUT" ]; then
        if [ $GUI -eq 1 ]; then
-            Xdialog --title "Filename already exists"\
-                    --yesno "$OUTPUT already exists\n\nPress YES to overwrite,\n\nor NO to change\n\n" 0 0
+            Xdialog --title "$(gettext 'Filename already exists')"\
+                    --yesno "$OUTPUT $(gettext 'already exists\n\nPress YES to overwrite,\n\nor NO to change')\n\n" 0 0
          case $? in
            0)
              echo "";;
            1)
              outputName;;
@@ -126,24 +135,24 @@
            255)
              echo "";;
          esac
 
        else
-         echo -e "$OUTPUT already exists! Press ENTER to continue or CTRL-C to quit\n"
+         echo -e "$OUTPUT $(gettext 'already exists! Press ENTER to continue or CTRL-C to quit')\n"
          read in
        fi
    fi
 
 }
 
 #---splashscreen--->
 function splash
 {
-   Xdialog --title "Puppy PDF Conversion Wizard"\
+   Xdialog --title "$(gettext 'Puppy PDF Conversion Wizard')"\
            --help "$SUPP"\
-           --yesno "WELCOME to the Puppy PDF Conversion Wizard!\n\n\
-Press YES to choose the file to convert,\n\n NO to exit,\n\n or HELP for more info\n\n" 0 0
+           --yesno "$(gettext 'WELCOME to the Puppy PDF Conversion Wizard!')\n\n\
+$(gettext 'Press YES to choose the file to convert,\n\n NO to exit,\n\n or HELP for more info')\n\n" 0 0
 
    case $? in
      0)
        chooseFile;;
      1)
@@ -160,12 +169,12 @@
 #Fixed so that the program doesnt crashon GTK error messages apperaring changed /root to ~ for compatibility reasons
    INPUT=`Xdialog --stdout --title "Choose File to Convert" --fselect ~ 28 60 2>/dev/null`
 
    case $? in
 	   0)
-             Xdialog --title "Next step: save as..."\
-                     --infobox "The next step is to specify the name of your pdf file.\n\n Press OK to continue.\n\n" 0 0 10000
+             Xdialog --title "$(gettext 'Next step: save as...')"\
+                     --infobox "$(gettext 'The next step is to specify the name of your pdf file.\n\n Press OK to continue.')\n\n" 0 0 10000
              outputName;;
 	   1)
              splash;;
 	   255)
              echo "";;
@@ -191,14 +200,14 @@
 
 #---final confirmation--->
 function finalConfirm
 {
    checkArgs
-   Xdialog --wrap --title "Confirm..."\
-           --yesno "The Puppy PDF Conversion Wizard \n\
-will now convert\n\n$INPUT\n\nto the pdf file\n\n$OUTPUT\n\n\
-If this is correct, choose YES\n To quit, choose NO\n\n" 0 0
+   Xdialog --wrap --title "$(gettext 'Confirm...')"\
+           --yesno "$(gettext 'The Puppy PDF Conversion Wizard') \n\
+`eval_gettext \"will now convert\n\n\\\$INPUT\n\nto the pdf file\"`\n\n$OUTPUT\n\n\
+$(gettext 'If this is correct, choose YES\n To quit, choose NO')\n\n" 0 0
 
    case $? in
      0)
        convert
        display;;
@@ -229,23 +238,23 @@
 
           echo -e "done!\n"
 
        else
           echo RES2 equals $res2
-          echo -e "ps2pdf error! Exiting..."
-          Xdialog --title "File Conversion error!"\
-                  --infobox "There was an error in the file conversion process!\n\nCheck that your input file format is supported.\n\n\
-Press OK to exit.\n\n" 0 0 20000
+          echo -e "$(gettext 'ps2pdf error! Exiting...')"
+          Xdialog --title "$(gettext 'File Conversion error!')"\
+                  --infobox "$(gettext 'There was an error in the file conversion process!\n\nCheck that your input file format is supported.\n\n\
+Press OK to exit').\n\n" 0 0 20000
           rm -f "$OUTPUT"
           exit 1
        fi
    else
       echo RES equals $res
-      echo -e "abiword error! Exiting..."
-      Xdialog --title "File Conversion error!"\
-                  --infobox "There was an error in the file conversion process!\n\nCheck that your input file format is supported.\n\n\
-Press OK to exit.\n\n" 0 0 20000
+      echo -e "$(gettext 'abiword error! Exiting...')"
+      Xdialog --title "$(gettext 'File Conversion error!')"\
+                  --infobox "$(gettext 'There was an error in the file conversion process!\n\nCheck that your input file format is supported.\n\n\
+Press OK to exit').\n\n" 0 0 20000
       rm -f "$OUTPUT"
       exit 1
    fi
 }
 

Changes to woof-code/rootfs-skeleton/usr/sbin/pupscan

@@ -8,10 +8,14 @@
 #100108 BK 'scanpci' is not working properly xorg 7.5. actually it is no longer part of libpciaccess pkg.
 #101221 yaf-splash fix.
 #110814 01micko: convert script from gtkdialog2 to gtkdialog3+.
 #110816 distinguish between inbuilt drivers and modules.
 #110910 BK: gtkdialog3 (patriot-e version) syntax error, bump to gtkdialog4.
+#120202 BK: internationalized.
+
+export TEXTDOMAIN=pupscan
+export OUTPUT_CHARSET=UTF-8
 
 [ "`echo $@ | grep ' *--silent *'`" != "" ] && SILENT=true || SILENT=false #v431
 KERNVER="`uname -r`"
 ZDRV='' #set in PUPSTATE.
 #variables created at bootup by init script in initrd...
@@ -20,11 +24,11 @@
 . /etc/rc.d/functions4puppy4
 
 if [ "$SILENT" != "true" ];then #100108
 # yaf-splash -font "8x16" -outline 0 -margin 4 -bg orange -text "Please wait, probing hardware..." &
 # /usr/X11R7/bin/yaf-splash -font "8x16" -outline 0 -margin 4 -bg orange -text "Please wait, probing hardware..." &
- yaf-splash -bg orange -text "Please wait, probing hardware..." &
+ yaf-splash -close never -bg orange -text "$(gettext 'Please wait, probing hardware...')" &
  YSPID=$!
 fi
 
 ALL_MODULES="`cat /lib/modules/${KERNVER}/modules.dep | cut -f 1 -d ':' | rev | cut -f 1 -d '/' | cut -f 2 -d '.' | rev | tr '-' '_'`" #110816
 echo "$ALL_MODULES" > /tmp/pupscan_all_modules #110816
@@ -90,13 +94,13 @@
 
 #100108 puppy builds now have the full pci.ids file...
 if [ ! -e /usr/share/pci.ids ];then
  #this is the old code...
  if [ "`which scanpci`" = "" ];then
-  echo "PCI scan utility scanpci not available. This must be a
+  echo "$(gettext 'PCI scan utility scanpci not available. This must be a
 cutdown Puppy (scanpci is part of the Xorg package).
-Simplified information only is displayed here:
+Simplified information only is displayed here:')
 "  >> /tmp/chipnummod.txt
   elspci -l  >> /tmp/chipnummod.txt
  else
   scanpci |
   while read ONELINE
@@ -219,13 +223,13 @@
   done
 
 [ ! -s /tmp/usbchipnummod.txt ] && echo "No plugged-in USB devices" > /tmp/usbchipnummod.txt #v3.01
 
   USBSECTION="
-  <frame USB devices>
+  <frame $(gettext 'USB devices')>
   <hbox>
-   <text><label>USB interfaces are part of the PCI interfaces, but to find information about any plugged-in USB devices, click this button:</label></text>
+   <text><label>$(gettext 'USB interfaces are part of the PCI interfaces, but to find information about any plugged-in USB devices, click this button:')</label></text>
    <vbox>
     <button>
      <input file>/usr/local/lib/X11/mini-icons/usb16.xpm</input>
      <action>cp -f /tmp/usbchipnummod.txt /tmp/hwproberesult.txt</action>
      <action>refresh:INFO</action>
@@ -236,26 +240,26 @@
 "
 
 fi
 
 #110807 fixed for gtkdialog3
-MAINDIALOG="<window title=\"Puppy hardware-interfaces information\">
+MAINDIALOG="<window title=\"$(gettext 'Puppy hardware-interfaces information')\">
  <hbox>
   <vbox>
 
-   <frame Kernel modules>
+   <frame $(gettext 'Kernel modules')>
    <hbox>
-    <text><label>At bootup, Puppy examines the hardware interfaces to determine what kernel drivers (modules) to load, and does so. Click this button for information on loaded modules:</label></text>
+    <text><label>$(gettext 'At bootup, Puppy examines the hardware interfaces to determine what kernel drivers (modules) to load, and does so. Click this button for information on loaded modules:')</label></text>
     <vbox>
      <button>
       <input file>/usr/local/lib/X11/mini-icons/module16.xpm</input>
       <action>eval /tmp/hwprobelsmod</action>
       <action>refresh:INFO</action>
      </button>
     </vbox>
     <vbox>
-     <text><label>More details on each loaded module:</label></text>
+     <text><label>$(gettext 'More details on each loaded module:')</label></text>
      <combobox>
       <variable>MODCOMBO</variable>
        $MODITEMS
      </combobox>
     </vbox>
@@ -267,13 +271,13 @@
      </button>
     </vbox>
    </hbox>
    </frame>
 
-   <frame PCI interfaces>
+   <frame $(gettext 'PCI interfaces')>
    <hbox>
-    <text><label>Most of the hardware interfaces inside a PC are 'PCI' devices. Click this button for a scan of all the PCI interfaces:</label></text>
+    <text><label>$(gettext "Most of the hardware interfaces inside a PC are 'PCI' devices. Click this button for a scan of all the PCI interfaces:")</label></text>
     <vbox>
      <button>
       <input file>/usr/local/lib/X11/mini-icons/Card.xpm</input>
       <action>cp -f /tmp/chipnummod.txt /tmp/hwproberesult.txt</action>
       <action>refresh:INFO</action>
@@ -282,11 +286,11 @@
    </hbox>
    </frame>
 
    ${USBSECTION}
 
-   <frame result>
+   <frame $(gettext 'result')>
     <edit>
      <variable>INFO</variable>
      <input file>/tmp/hwproberesult.txt</input>
      <width>450</width>
      <height>300</height>
@@ -293,11 +297,11 @@
     </edit>
    </frame>
    <hbox>
     <button>
      <input file icon=\"gtk-quit\"></input>
-     <label>EXIT</label>
+     <label>$(gettext 'EXIT')</label>
      <action type=\"exit\">EXIT_NOW</action>
     </button>
    </hbox>
   </vbox>
  </hbox>