mirror of
				https://github.com/ElvishArtisan/rivendell.git
				synced 2025-11-03 23:53:59 +01:00 
			
		
		
		
	* Removed all CVS tags. * Removed 'const char *name' parameter from all QObject contructors.
		
			
				
	
	
		
			185 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			185 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
#!/bin/bash
 | 
						|
#
 | 
						|
# rdtransgui.sh
 | 
						|
#
 | 
						|
# A GUi interface for rdtrans.sh script that is used to manage Rivendell
 | 
						|
# translation files.
 | 
						|
#
 | 
						|
# (C) Copyright 2010,2016 Frederick Henderson <frederickjh@henderson-meier.org>
 | 
						|
#
 | 
						|
#   This program is free software; you can redistribute it and/or modify
 | 
						|
#   it under the terms of the GNU General Public License version 2 as
 | 
						|
#   published by the Free Software Foundation.
 | 
						|
#
 | 
						|
#   This program is distributed in the hope that it will be useful,
 | 
						|
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
						|
#   GNU General Public License for more details.
 | 
						|
#
 | 
						|
#   You should have received a copy of the GNU General Public
 | 
						|
#   License along with this program; if not, write to the Free Software
 | 
						|
#   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 | 
						|
#
 | 
						|
### Functions ###
 | 
						|
function whichdialog()
 | 
						|
{
 | 
						|
zenitypresent="$(type "zenity" 2> /dev/null )"
 | 
						|
# Line below commented out. Used for testing kdialog
 | 
						|
#zenitypresent=
 | 
						|
kdialogpresent="$(type "kdialog" 2> /dev/null )"
 | 
						|
if [ ${#zenitypresent} -gt 0 ] ; then
 | 
						|
   dialog=zenity
 | 
						|
else
 | 
						|
   if [ ${#kdialogpresent} -gt 0 ] ; then
 | 
						|
      dialog=kdialog
 | 
						|
   else
 | 
						|
     echo "Sorry this script needs a script GUI to run correctly."
 | 
						|
     echo "Try installing 'zenity' or 'kdialog' from the 'kdebase-bin'\
 | 
						|
 package."
 | 
						|
     exit
 | 
						|
 | 
						|
   fi
 | 
						|
fi
 | 
						|
}
 | 
						|
 | 
						|
# Check for a valid environment
 | 
						|
#
 | 
						|
function checkenviroment()
 | 
						|
{
 | 
						|
if [[ -z "$RD_LANGUAGES" || -z "$RD_SOURCE" || -z "$RD_SHAREDDIR" ]] ; then
 | 
						|
  text="First you need to set the Enviromental Variables for this script to\
 | 
						|
 work. I will bring up the setenvvar.sh script so you can do so before\
 | 
						|
 continuing to the menu."
 | 
						|
  title="Need to set Enviromental Variables first."
 | 
						|
  if [ "${dialog}" = "kdialog" ] ; then
 | 
						|
     ${dialog} --title "$title" --passivepopup "$text" 15
 | 
						|
  elif [ "${dialog}" = "zenity" ] ; then
 | 
						|
    ${dialog} --info --title="$title" --text="$text"\
 | 
						|
    --timeout=15
 | 
						|
  fi
 | 
						|
    . ./setenvvar.sh
 | 
						|
fi
 | 
						|
}
 | 
						|
 | 
						|
function setlanguagecode()
 | 
						|
{
 | 
						|
title="Enter a Valid Language Code" 
 | 
						|
text="Enter a Valid i18n language code. These are two letter codes for\
 | 
						|
 language.
 | 
						|
 ie. German=de 
 | 
						|
 | 
						|
These maybe followed by an underscore and a capitalize two letter country code.
 | 
						|
ie. de__CH for German and Switzerland to create a country specific language\
 | 
						|
 code.
 | 
						|
 | 
						|
You can find a list in '''/usr/share/i18n/SUPPORTED''' on Ubuntu systems.
 | 
						|
 | 
						|
Run 'man locale' and check near the bottom of the man page for the location on\
 | 
						|
 your system
 | 
						|
of the SUPPORTED locale codes file. Only the portion before .UTF-8 is needed. 
 | 
						|
 | 
						|
The locale code that your computer is set to now is filled in below for you."
 | 
						|
computerlocale=$(echo $LANG | sed 's/.utf8$//')
 | 
						|
  if [ "${dialog}" = "kdialog" ] ; then
 | 
						|
     langcode=$(${dialog} --title "$title" --inputbox "$text"\
 | 
						|
 "$computerlocale")
 | 
						|
  elif [ "${dialog}" = "zenity" ] ; then
 | 
						|
    langcode=$(${dialog} --entry --title="$title" --text="$text"\
 | 
						|
     --entry-text="$computerlocale")
 | 
						|
  fi
 | 
						|
checkforcode
 | 
						|
}
 | 
						|
 | 
						|
function checkforcode()
 | 
						|
{
 | 
						|
until [ -n "$langcode" ] ; do
 | 
						|
setlanguagecode
 | 
						|
done
 | 
						|
}
 | 
						|
 | 
						|
function menu()
 | 
						|
{
 | 
						|
while true; do
 | 
						|
title="RD Translation Utility - $langcode"
 | 
						|
text="Please choose from the menu."
 | 
						|
 if [ "${dialog}" = "kdialog" ] ; then
 | 
						|
    choice=$(${dialog} --title "$title" --menu "$text" "Add Language"\
 | 
						|
 "Add Language" "Remove Language" "Remove Language" "Update Language"\
 | 
						|
 "Update Language" "Read Language" "Read Language" "Write Language"\
 | 
						|
 "Write Language" "Test Language" "Test Language" "Pack Language"\
 | 
						|
 "Pack Language" "Set Environmental Variables" "Set Environmental Variables"\
 | 
						|
 "Set Language Code" "Set Language Code" "Exit" "Exit" )
 | 
						|
  elif [ "${dialog}" = "zenity" ] ; then
 | 
						|
 choice=$(zenity --width=350 --height=350 --list --column "" --title="$title"\
 | 
						|
 --text="$text" "Add Language" "Remove Language" "Update Language"\
 | 
						|
 "Read Language" "Write Language" "Test Language" "Pack Language"\
 | 
						|
 "Set Environmental Variables"  "Set Language Code" "Exit")
 | 
						|
  fi
 | 
						|
 | 
						|
 | 
						|
  case "${choice}" in
 | 
						|
 | 
						|
"Add Language")
 | 
						|
./rdtrans.sh add $langcode
 | 
						|
;;
 | 
						|
"Remove Language")
 | 
						|
./rdtrans.sh remove $langcode
 | 
						|
;;
 | 
						|
"Update Language")
 | 
						|
./rdtrans.sh update $langcode
 | 
						|
;;
 | 
						|
"Read Language")
 | 
						|
./rdtrans.sh read $langcode
 | 
						|
;;
 | 
						|
"Write Language")
 | 
						|
./rdtrans.sh write $langcode
 | 
						|
;;
 | 
						|
"Test Language")
 | 
						|
title="Password needed!"
 | 
						|
text="Please enter your sudo password
 | 
						|
 as the test command needs super user
 | 
						|
 privileges."
 | 
						|
if [ "${dialog}" = "kdialog" ] ; then
 | 
						|
    password=$(${dialog} --title "$title" --password "$text")
 | 
						|
    echo $password | sudo -ES ./rdtrans.sh test $langcode
 | 
						|
    password=
 | 
						|
  elif [ "${dialog}" = "zenity" ] ; then
 | 
						|
    password=$(${dialog} --title="$title" --text="$text" --entry --hide-text)
 | 
						|
    echo $password | sudo -ES ./rdtrans.sh test $langcode
 | 
						|
    password=
 | 
						|
    sudo -k
 | 
						|
  fi
 | 
						|
 | 
						|
;;
 | 
						|
"Pack Language")
 | 
						|
. ./rdtrans.sh pack $langcode
 | 
						|
title="Archive is ready to email!"
 | 
						|
text="All done. Archive for language $LANG can be found here:
 | 
						|
$RD_LANGUAGES/rivendell_$LANG.tar.gz
 | 
						|
Please email it to the developer - $MAIL_ADDR
 | 
						|
and thanks for translating Rivendell!"
 | 
						|
if [ "${dialog}" = "kdialog" ] ; then
 | 
						|
     ${dialog} --title "$title" --msgbox "$text"
 | 
						|
elif [ "${dialog}" = "zenity" ] ; then
 | 
						|
    ${dialog} --info --title="$title" --text="$text"
 | 
						|
fi
 | 
						|
;;
 | 
						|
"Set Environmental Variables")
 | 
						|
. ./setenvvar.sh
 | 
						|
;;
 | 
						|
"Set Language Code")
 | 
						|
setlanguagecode
 | 
						|
;;
 | 
						|
Exit|*)
 | 
						|
      break
 | 
						|
    ;;
 | 
						|
  esac
 | 
						|
done
 | 
						|
}
 | 
						|
 | 
						|
### Main Program ###
 | 
						|
whichdialog
 | 
						|
checkenviroment
 | 
						|
setlanguagecode
 | 
						|
menu
 |