mirror of
				https://github.com/ElvishArtisan/rivendell.git
				synced 2025-10-30 17:23:53 +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
 |