Sérgio Lopes 2007-01-18 00:24:57 -02:00 committed by Brandon Casey
parent e5558d7f75
commit d6bd5056ff
29 changed files with 2995 additions and 1492 deletions

372
ies4linux
View File

@ -11,49 +11,55 @@ IES4LINUX=`dirname "$0"`
cd "$IES4LINUX"
export IES4LINUX=`pwd`
mkdir -p "$HOME/.ies4linux/tmp" || error Needs ~/.ies4linux/tmp for temporary files
# Import functions
# TODO don't use period operator
. "$IES4LINUX"/lib/functions.sh
# Debug module
{
# Initialize debug
# Debug uses DEBUG environment variable
[ "$DEBUG" != true ] && DEBUG=false
debug Debug on
}
# Initialize Debug module
[ "$DEBUG" != true ] && DEBUG=false
debug Debug on
# Init variables
{
export INSTALLIE6=1
export INSTALLFLASH=1
export CREATE_ICON=1
export BASEDIR="$HOME/.ies4linux"
export BINDIR="$HOME/bin"
export WGETFLAGS="--continue"
export DOWNLOADDIR_SUFFIX="downloads"
export DOWNLOADDIR="$BASEDIR/$DOWNLOADDIR_SUFFIX"
export IE6_LOCALE="EN-US"
export IE6_LOCALES="EN-US PT-BR DE FR ES IT NL SV JA KO NO DA CN TW FI PL HU AR HE CS PT RU EL TR"
export NOCOLOR=0
# Default locale
export GUESSED_IE6_LOCALE=EN-US
export MESSAGE_FILE=enUS
export INSTALLIE7=0
export INSTALLIE6=1
export INSTALLIE55=0
export INSTALLIE5=0
export INSTALLIE2=0
export INSTALLIE15=0
export INSTALLIE1=0
# Script mode: gui, automatic
export IES4LINUX_MODE="gui"
}
export INSTALLFLASH=1
export CREATE_DESKTOP_ICON=1
export CREATE_MENU_ICON=1
export BASEDIR="$HOME/.ies4linux"
export BINDIR="$HOME/bin"
export WGETFLAGS="-t 2 -c "
export DOWNLOADDIR_SUFFIX="downloads"
export DOWNLOADDIR="$BASEDIR/$DOWNLOADDIR_SUFFIX"
export IE6_LOCALE="EN-US"
export IE6_LOCALES="AR CN CS DA DE EL EN-US ES FI FR HE HU IT JA KO NL NO PL PT PT-BR RU SV TR TW"
export NOCOLOR=0
# Default locale
export GUESSED_IE6_LOCALE=EN-US
export MESSAGE_FILE=enUS
# Script mode: gui, automatic
export IES4LINUX_MODE="gui"
# Determine locale and languages
# We have two methods: $LANG and $(locale)
{
# Loads default language
debug Loading lang/enUS.sh
eval $(grep -v -e "^#" -e "^[[:space:]]*$" "$IES4LINUX/lang/enUS.sh" | sed -e 's/^/export /g;s/$/;/g') 2> /dev/null
eval $(load_variables_file "$IES4LINUX/lang/$MESSAGE_FILE.sh")
# Look for user locale
if [ ${#LANG} -ge 4 ]; then
debug "Using LANG to determine locale - $LANG"
SYSLANG=$(echo ${LANG:0:2} | tr A-Z a-z)
@ -65,197 +71,157 @@ export IES4LINUX=`pwd`
SYSCOUNTRY=$(echo ${LC_MESSAGES:3:2} | tr A-Z a-z)
fi
# Search for language configuration
langline=$(grep -e "^${SYSLANG}[[:space:]]\+${SYSCOUNTRY}[[:space:]]\+" -e "^${SYSLANG}[[:space:]]\+\.[[:space:]]\+" "$IES4LINUX/lib/messages.txt" | head -n 1)
if [ "$langline" = "" ]; then return; fi
if [ "$langline" != "" ]; then
debug Found language line: $langline
debug Found language line: $langline
export GUESSED_IE6_LOCALE="$(echo $langline | awk '{print $4}')"
MESSAGE_FILE="$IES4LINUX/lang/$(echo $langline | awk '{print $3}').sh"
# Configures language
export GUESSED_IE6_LOCALE="$(echo $langline | awk '{print $4}')"
export MESSAGE_FILE=$(echo $langline | awk '{print $3}')
export MESSAGE_FILE_FULLPATH="$IES4LINUX/lang/$MESSAGE_FILE.sh"
# Hebrew hack
# TODO remove this hack :-)
if [ "$(echo $langline | awk '{print $3}')" = "heIL" ]; then
debug Hebrew hack
. "$MESSAGE_FILE" &> /dev/null
else
debug Loading $MESSAGE_FILE
eval $(grep -v -e "^#" -e "^[[:space:]]*$" "$MESSAGE_FILE" | sed -e 's/^/export /g;s/$/;/g')
debug Loading $MESSAGE_FILE with iconv
enc=$TRANSLATION_ENCODING
eval $(iconv -f $enc "$MESSAGE_FILE" 2>/dev/null | grep -v -e "^#" -e "^[[:space:]]*$" | sed -e 's/^/export /g;s/$/;/g')
fi
}
# Check dependencies for wine, cabextract, wget, unzip
{
wine --version &> /dev/null || error $MSG_ERROR_INSTALL_WINE
cabextract --version &> /dev/null || error $MSG_ERROR_INSTALL_CABEXTRACT
wget --version &> /dev/null || error $MSG_ERROR_INSTALL_WGET
unzip -version &> /dev/null || error $MSG_ERROR_INSTALL_UNZIP
cabextract --version | grep -q "1." || error $MSG_ERROR_UPDATE_CABEXTRACT
wine --version 2>&1 | grep -q "0.9." || warning $MSG_WARNING_OLDWINE
[ "$(whoami)" = "root" ] && warning $MSG_WARNING_ROOT
}
# Configure options
{
# Get command-line options
while [ $# -gt 0 ]; do
case "$1" in
--install-ie6 | --install-flash) shift;;
--install-ie55) export INSTALLIE55=1; shift ;;
--install-ie5) export INSTALLIE5=1; shift ;;
--install-ie2) export INSTALLIE2=1; shift ;;
--install-ie15) export INSTALLIE15=1; shift ;;
--install-ie1) export INSTALLIE1=1; shift ;;
--beta-install-ie7) export INSTALLIE7=1; shift ;;
--no-flash) export INSTALLFLASH=0; shift ;;
--no-icon) export CREATE_ICON=0; shift ;;
# Hebrew/Russian hack
# TODO remove this hack :-)
if [ "$MESSAGE_FILE" = "heIL" ] || [ "$MESSAGE_FILE" = "ruRU" ]; then
debug Hebrew hack
. "$MESSAGE_FILE_FULLPATH" &> /dev/null
else
debug Loading lang/$MESSAGE_FILE.sh
load_default_language
--basedir) export BASEDIR="$2"; shift 2 ;;
--bindir) export BINDIR="$2"; shift 2 ;;
--downloaddir) export DOWNLOADDIR="$2"; changeddownloaddir=1; shift 2 ;;
--wget-flags) export WGETFLAGS="$2"; shift 2 ;;
--no-gui) export IES4LINUX_MODE="automatic"; shift ;;
--no-color) export NOCOLOR=1; shift 1 ;;
--locale)
export CHOOSED_IE6_LOCALE=$(echo "$2" | tr a-z A-Z)
shift 2
;;
--list-locales)
echo $IE6_LOCALES | fmt -w 40
exit 0
;;
--debug)
export DEBUG=true
shift
;;
--easter-eggs)
cat <<__END_EGGS__
IEs4Linux can do other useful (?!) things:
--install-ie1 Install IE 1.0
--install-ie15 Install IE 1.5
--install-ie2 Install IE 2.0
__END_EGGS__
exit 0
;;
--help | -h)
cat <<__END_HELP__
Usage: ./ies4linux [OPTIONS]
This script downloads and automagically installs multiple versions of
Microsoft Internet Explorer on Wine.
Without any option, IEs4Linux will:
- install IE6
- install Adobe Flash 9
- create icons on Desktop
You can configure other things:
Installation options:
--install-ie55 Install IE5.5 in BASEDIR/ie55/
--install-ie5 Install IE5 in BASEDIR/ie5/
--no-flash Don't install Adobe Flash Player 9
--no-icon Don't create an icon in Desktop
Configurations:
--locale LOCALE The locale for the installation [$GUESSED_IE6_LOCALE]
--wget-flags FLAGS Extra flags for wget [$WGETFLAGS]
--list-locales Display all possible locales and exit
Directories:
--basedir BASEDIR Base location for installs [$BASEDIR]
--bindir BINDIR Location of your bin folder [$BINDIR]
--downloaddir DLDIR Where downloads will go [BASEDIR/$DOWNLOADDIR_SUFFIX]
Other options:
--no-gui Don't show gui, perform an automatic installation
--no-color Don't show colors
--help / -h Display this message and exit OK
Beta options:
--beta-install-ie7 Install Internet Explorer 7 (BETA INSTALLER!)
__END_HELP__
exit 0
;;
*)
echo "Error: unknown option \"$1\""
if echo "$1" | grep '=' >/dev/null; then
echo "Options are not GNU-style"
echo " i.e. don't use: --option=value"
echo " use instead: --option value"
fi
echo "run \"./ies4linux --help\" for more info"
exit 1
;;
esac
done
# Hack for downloaddir
if [ "$changeddownloaddir" != "1" ]; then
DOWNLOADDIR="$BASEDIR/$DOWNLOADDIR_SUFFIX"
fi
# Determine IE6 locale
if [ "$CHOOSED_IE6_LOCALE" != "" ]; then
if ! echo " $IE6_LOCALES " | grep " $CHOOSED_IE6_LOCALE " &> /dev/null; then
error $MSG_ERROR_INVALIDLOCALE
debug Loading $MESSAGE_FILE with iconv
enc=$TRANSLATION_ENCODING
eval $(load_variables_file "$MESSAGE_FILE_FULLPATH" | iconv -f $enc 2> /dev/null )
fi
IE6_LOCALE=$CHOOSED_IE6_LOCALE
else
IE6_LOCALE=$GUESSED_IE6_LOCALE
fi
}
# Check dependencies for wine, cabextract, wget, unzip ########################
wine --version &> /dev/null || error $MSG_ERROR_INSTALL_WINE
cabextract --version &> /dev/null || error $MSG_ERROR_INSTALL_CABEXTRACT
wget --version &> /dev/null || error $MSG_ERROR_INSTALL_WGET
unzip -version &> /dev/null || error $MSG_ERROR_INSTALL_UNZIP
cabextract --version | grep -q "1." || error $MSG_ERROR_UPDATE_CABEXTRACT
wine --version 2>&1 | grep -q "0.9." || warning $MSG_WARNING_OLDWINE
[ "$(whoami)" = "root" ] && warning $MSG_WARNING_ROOT
# Configure options ###########################################################
# Get command-line options
while [ $# -gt 0 ]; do
case "$1" in
--install-ie6 | --install-flash) shift;;
--install-ie55) export INSTALLIE55=1; shift ;;
--install-ie5) export INSTALLIE5=1; shift ;;
--install-ie2) export INSTALLIE2=1; shift ;;
--install-ie15) export INSTALLIE15=1; shift ;;
--install-ie1) export INSTALLIE1=1; shift ;;
--install-ie7|--beta-install-ie7) export INSTALLIE7=1; shift ;;
--no-ie6) export INSTALLIE6=0; shift ;;
--no-flash) export INSTALLFLASH=0; shift ;;
--no-desktop-icon) export CREATE_DESKTOP_ICON=0; shift ;;
--no-menu-icon) export CREATE_MENU_ICON=0; shift ;;
--basedir) export BASEDIR="$2"; shift 2 ;;
--bindir) export BINDIR="$2"; shift 2 ;;
--downloaddir) export DOWNLOADDIR="$2"; changeddownloaddir=1; shift 2 ;;
--wget-flags) export WGETFLAGS="$2"; shift 2 ;;
--no-gui) export IES4LINUX_MODE="automatic"; shift ;;
--no-color) export NOCOLOR=1; shift 1 ;;
--gui) export PREFERRED_GUI=$2; shift 2 ;;
--uninstall)
bash "$IES4LINUX"/lib/uninstall.sh
exit 0
;;
--locale)
export CHOOSED_IE6_LOCALE=$(echo "$2" | tr a-z A-Z)
shift 2
;;
--list-locales)
echo $IE6_LOCALES | fmt -w 40
exit 0
;;
--debug)
export DEBUG=true
shift
;;
--help | -h)
bash lib/help.sh
exit 0
;;
--full-help)
bash lib/help.sh full
exit 0
;;
*)
echo "Error: unknown option \"$1\""
if echo "$1" | grep '=' >/dev/null; then
echo "Options are not GNU-style"
echo " i.e. don't use: --option=value"
echo " use instead: --option value"
fi
echo "run \"./ies4linux --help\" for more info"
exit 1
;;
esac
done
# Hack for downloaddir
if [ "$changeddownloaddir" != "1" ]; then
DOWNLOADDIR="$BASEDIR/$DOWNLOADDIR_SUFFIX"
fi
# Determine IE6 locale
if [ "$CHOOSED_IE6_LOCALE" != "" ]; then
if ! echo " $IE6_LOCALES " | grep " $CHOOSED_IE6_LOCALE " &> /dev/null; then
error $MSG_ERROR_INVALIDLOCALE
fi
IE6_LOCALE=$CHOOSED_IE6_LOCALE
else
IE6_LOCALE=$GUESSED_IE6_LOCALE
fi
# Run installer ###############################################################
cd "$IES4LINUX"
# If mode=gui, let user configure some options
if [ "$IES4LINUX_MODE" = "gui" ]; then
# Possible User Interfaces
runPyGTK(){
debug Using pygtk GUI
python "$IES4LINUX"/ui/ies4linux.py gtk
}
runKommander(){
debug Using kommander gui
bash "$IES4LINUX"/ui/kommander.sh
}
# Decide what UI to run
haspygtk=$(python -c "import pygtk; pygtk.require('2.0'); import gtk" &> /dev/null; echo $?)
haskmdr=$(kmdr-executor -v &> /dev/null; echo $?)
if [ "$haspygtk" = "0" ] && [ "$haskmdr" = "0" ]; then
if [ "$KDE_FULL_SESSION" = "true" ]; then
runKommander
else
runPyGTK
fi
elif [ "$haspygtk" = "0" ]; then
runPyGTK
elif [ "$haskmdr" = "0" ]; then
runKommander
if [ "$PREFERRED_GUI" = "gtk" ] && [ "$haspygtk" = "0" ]; then
bash ui/python-gtk.sh
elif [ "$PREFERRED_GUI" = "kommander" ] && [ "$haskmdr" = "0" ]; then
bash ui/kommander.sh
else
warning $MSG_NO_GUI_AVAILABLE
"$IES4LINUX"/ies4linux --help
if [ "$haspygtk" = "0" ] && [ "$haskmdr" = "0" ]; then
if [ "$KDE_FULL_SESSION" = "true" ]; then
bash ui/kommander.sh
else
bash ui/python-gtk.sh
fi
elif [ "$haspygtk" = "0" ]; then
bash ui/python-gtk.sh
elif [ "$haskmdr" = "0" ]; then
bash ui/kommander.sh
else
warning $MSG_NO_GUI_AVAILABLE
./ies4linux --help
fi
fi
elif [ "$IES4LINUX_MODE" = "automatic" ]; then
bash "$IES4LINUX"/lib/install.sh
bash lib/install.sh
fi
rm -rf "$HOME/.ies4linux/tmp"

View File

@ -1,58 +1,58 @@
TRANSLATION_LOCALE="bgBG"
TRANSLATION_ENCODING="UTF8"
MSG_LANGUAGE="Английски"
MSG_LANGUAGE="Български"
MSG_DOWNLOADING="Изтегляне на всичко необходимо"
MSG_INSTALLING="Инсталиране"
MSG_INSTALLING_FLASH="Инсталиране на Flash Player 9"
MSG_INSTALLATION_OPTIONS="IEs4Linux ще"
MSG_OPTION_INSTALL_IES="Инсталира версии на Интернет Експлорър"
MSG_INSTALLATION_OPTIONS="IEs4Linux ще:"
MSG_OPTION_INSTALL_IES="Инсталира версии на Интернет Експлорър:"
MSG_OPTION_INSTALL_FLASH="Инсталира Adobe Flash 9.0"
MSG_OPTION_CREATE_ICONS="Създаде десктоп икони"
MSG_OPTION_BASEDIR="Инсталира всичко в "
MSG_OPTION_DOWNLOADDIR="Изтегли всичко в"
MSG_OPTION_LOCALE=""
MSG_OPTION_BASEDIR="Инсталира всичко в:"
MSG_OPTION_DOWNLOADDIR="Изтегли всичко в:"
MSG_OPTION_LOCALE="Използвайки IE локализация:"
MSG_INITIALIZING="Инициализация"
MSG_CREATING_PREFIX="Създаване на Wine Prefix"
MSG_EXTRACTING_CABS="Разархивиране на CAB файлове"
MSG_INSTALLING_FONTS="Инсталиране на TTF шрифтове"
MSG_CREATING_PREFIX="Създаване на Wine префикс"
MSG_EXTRACTING_CABS="Разархивиране на CAB файловете"
MSG_INSTALLING_FONTS="Инсталиране на TTF шрифтовете"
MSG_INSTALLING_REGISTRY="Инсталиране на registry"
MSG_FINALIZING="Финализиране"
MSG_FINALIZING="Завършване"
MSG_COPYING_IE6="Копиране на инсталацията на ie6"
MSG_EXTRACTING_FILES="Разархивиране на файловете"
MSG_PROCESSING_INF="Обработвам inf файлове"
MSG_PERFORM_INSTALLATIONS="Извършвам инсталациите"
MSG_INSTALLING_FLASH_ON="Инсталирам flash"
MSG_ERROR_INSTALL_WINE="Необходимо е да инсталирате wine! \nИзтеглете го от тук: http://www.winehq.org"
MSG_ERROR_INSTALL_CABEXTRACT="Необходимо е да инсталирате cabextract! \nИзтеглете го от тук: http://www.kyz.uklinux.net/cabextract.php"
MSG_ERROR_UPDATE_CABEXTRACT="Необходимо е да обновите cabextract! \nИзтеглете го от тук: http://www.kyz.uklinux.net/cabextract.php"
MSG_ERROR_INVALIDLOCALE="Невалидна локализация! Моля стартирайте отново IEs4Linux и изберете валидна локализация."
MSG_WARNING_ROOT="Вие сте root! Това е силно непрепоръчително! IE е твърде несигурен, за да го използвате с правата на root.\nЕдин съвет от приятел - стартирайте ме като обикновен потребител или още по-добре, ако имате възможност, създайте отделен потребител, с който да използвате Вашите IE-та."
MSG_ERROR_INSTALL_WGET="Необходимо е да инсталирате wget!"
MSG_ERROR_INSTALL_UNZIP="Необходимо е да инсталирате unzip!"
MSG_WARNING_OLDWINE=""
MSG_ERROR_NO_WINEPREFIXCREATE=""
MSG_ERROR_CABEXTRACTING="Възникна грешка при опит за разархивиране на някои файлове."
MSG_ERROR_CREATE_FOLDER="Не може да бъде създадена папка"
MSG_PROCESSING_INF="Обработване на inf файловете"
MSG_PERFORM_INSTALLATIONS="Извършване на инсталациите"
MSG_INSTALLING_FLASH_ON="Инсталиране на flash на"
MSG_ERROR_INSTALL_WINE="Необходимо е да инсталирате wine.\nИзтеглете го от тук: http://www.winehq.org"
MSG_ERROR_INSTALL_CABEXTRACT="Необходимо е да инсталирате cabextract.\nИзтеглете го от тук: http://www.kyz.uklinux.net/cabextract.php"
MSG_ERROR_UPDATE_CABEXTRACT="Необходимо е да обновите cabextract.\nИзтеглете го от тук: http://www.kyz.uklinux.net/cabextract.php"
MSG_ERROR_INVALIDLOCALE="Невалидна локализация, моля стартирайте отново IEs4Linux и изберете валидна локализация."
MSG_WARNING_ROOT="Вие сте root. Това е силно непрепоръчително. IE е твърде несигурен, за да го използвате с правата на root.\nЕдин съвет от приятел - стартирайте ies4linux като обикновен потребител или още по-добре, ако имате възможност, създайте отделен потребител, с който да използвате Вашите IE-та."
MSG_ERROR_INSTALL_WGET="Необходимо е да инсталирате wget."
MSG_ERROR_INSTALL_UNZIP="Необходимо е да инсталирате unzip."
MSG_WARNING_OLDWINE="IEs4Linux 2 е разработен за да бъде използван с нови версии на Wine (0.9.x). Изглежда, че вие използвате стара версия. Препоръчително е да обновите вашия wine до последната версия (идете на winehq.com)."
MSG_ERROR_NO_WINEPREFIXCREATE="Вашата инсталация на wine не съдържа wineprefixcreate. Може би имате стара версия на Wine? Опитайте да я обновите до последната версия."
MSG_ERROR_CABEXTRACTING="Възникна грешка при опит за разархивиране на някои CAB файлове."
MSG_ERROR_CREATE_FOLDER="Не може да бъде създадена директория"
MSG_ERROR_DOWNLOADING="Възникна грешка при изтеглянето. Моля, стартирайте IEs4Linux отново. Повреден файл:"
MSG_ERROR_NO_GUI_AVAILABLE=""
MSG_INSTALLATIONS_FINISHED="Инсталацията на IEs 4 Linux завърши!"
MSG_ERROR_NO_GUI_AVAILABLE="Няма наличен графичен интерфейс. Моля, използвайте ies4linux от командния ред, или инсталирайте pygtk. За повече подробности: http://www.tatanka.com.br/ies4linux/page/No_GUI"
MSG_INSTALLATIONS_FINISHED="Инсталацията на IEs 4 Linux завърши."
MSG_RUN_IES="За да стартирате Вашите IE-та, напишете:"
GUI_TITLE="Интернет Експлорър за Линукс"
GUI_INSTALLATION_OPTIONS=""
GUI_IE="Интернет Експлорър"
GUI_EXTRA=""
GUI_INSTALL_IE6="Инсталиране на Интернет Експлорър 6.0 SP1"
GUI_INSTALL_IE55="Инсталиране на Интернет Експлорър 5.5"
GUI_INSTALL_IE5="Инсталиране на Интернет Експлорър 5.01"
GUI_TITLE="Internet Explorer за Linux"
GUI_INSTALLATION_OPTIONS="Инсталационни настройки"
GUI_IE="Internet Explorer"
GUI_EXTRA="Допълнително"
GUI_INSTALL_IE6="Инсталиране на Internet Explorer 6.0 SP1"
GUI_INSTALL_IE55="Инсталиране на Internet Explorer 5.5"
GUI_INSTALL_IE5="Инсталиране на Internet Explorer 5.01"
GUI_INSTALL_FLASH="Инсталиране на Adobe Flash player 9"
GUI_CREATE_ICONS=""
GUI_LOCALE=""
GUI_ADVANCED_OPTIONS=""
GUI_CREATE_ICONS="Създаване на Desktop икони"
GUI_LOCALE="Локализация"
GUI_ADVANCED_OPTIONS="Допълнителни настройки"
GUI_ADVANCED_BASEDIR="Основна директория"
GUI_ADVANCED_BINDIR="Bin директория"
GUI_ADVANCED_DOWNLOADDIR="Директория за изтегляне"
GUI_ADVANCED_WGETFLAGS=""
GUI_ADVANCED_WGETFLAGS="Флагове за wget"
GUI_CANCEL_INSTALL="Инсталацията е прекъсната от потребителя"
GUI_OK="ОК"
GUI_CANCEL=""
GUI_CANCEL="Отказ"
GUI_CLOSE="Затвори"

View File

@ -1,48 +1,16 @@
# IEs 4 Linux 2.0
# Catalan Strings
# Translation details
TRANSLATION_LOCALE="caES"
TRANSLATION_WHO="Fran Hermoso <franhp at gmail dot com>"
TRANSLATION_LANGUAGE="Catalan"
TRANSLATION_VERSION="1.2"
TRANSLATION_ENCODING="UTF8"
# ANSWER OPTIONS (should be the first letter of localized 'yes' and 'no'
YES=s
NO=n
MSG_WELCOME_TEXT="Benvingut, $(whoami)! Sóc IEs4Linux.\nEt puc instal·lar IE 6, 5.5 i 5.0 ràpid i fàcilment.\nEsta a només quatre 'enter's del seu IEs."
MSG_WELCOME_INSTRUCTIONS="Li faré unes quantes preguntes. Respongui $YES o $NO (la resposta per defecte està en negreta)"
MSG_WELCOME_QUESTION_IE55="IE 6 serà instal·lat automàticament.\nVol que instal·li IE 5.5 SP2 també?"
MSG_WELCOME_QUESTION_IE5="Vol que instal·li IE 5.01 SP2?"
MSG_LOCALES="Pot instal·lar IEs utilitzant qualsevol d'aquests locales:"
MSG_CHOOSE_LOCALE="Per defecte s'utilitzarà $IE6_LOCALE. Premi la tecla retorn per mantenirla o triï'n un altre: "
MSG_WELCOME_INSTRUCTIONS_DEFAULT="Per defecte, ho instal·laré tot a $BASEDIR_DEFAULT\nTambé instal·laré el connector Flash 9 i crearé els accessos directes."
MSG_WELCOME_QUESTION_CONFIGURE="Li sembla correcte? (Per configurar les opcions avançades premi $NO)"
MSG_CONFIGURE_FLASH="Hauria d'instal·lar el connector Adobe Flash 9?"
MSG_CONFIGURE_SHORTCUTS="Puc crear el accessos directes?"
MSG_CONFIGURE_BASEDIR_MSG="Ho instal·laré tot a $BASEDIR_DEFAULT"
MSG_CONFIGURE_BASEDIR_QUESTION="Premi la tecla retorn per mantenir-lo o escrigui el camí complet de la nova carpeta: "
MSG_CONFIGURE_BINDIR_MSG="Els executables seran creats a $BINDIR_DEFAULT"
MSG_CONFIGURE_BINDIR_QUESTION="Premi la tecla retorn per mantenir-ho o escrigui el camí complet de la nova carpeta: "
MSG_CONFIGURE_WGET="S'utilitzarà wget per descarregar els fitxers. Si necessita cap senyalador especial (proxy, ...), escrigui'l ara: "
MSG_START="Perfecte! Començem les instal·lacions..."
# Sections
MSG_LANGUAGE="Català"
MSG_DOWNLOADING="Descarregant tot el que necessitem"
MSG_INSTALLING="Instal·lant"
MSG_INSTALLING_FLASH="Instal·lant Flash Player 9"
# Subsections
MSG_INSTALLATION_OPTIONS="IEs4Linux farà el següent:"
MSG_OPTION_INSTALL_IES="Instal·lar els Internet Explorer:"
MSG_OPTION_INSTALL_FLASH="Instal·lar l'Adobe Flash 9.0"
MSG_OPTION_CREATE_ICONS="Crear icones d'escriptori"
MSG_OPTION_BASEDIR="Instal·lar-ho tot a:"
MSG_OPTION_DOWNLOADDIR="Descarregar-ho tot a:"
MSG_OPTION_LOCALE="Usant la localitzacio d'IE:"
MSG_INITIALIZING="Inicialitzant"
MSG_CREATING_PREFIX="Creant el prefix de Wine"
MSG_EXTRACTING_CABS="Extraient les arxius CAB"
@ -54,25 +22,37 @@ MSG_EXTRACTING_FILES="Extraient els arxius"
MSG_PROCESSING_INF="Processant els arxius inf"
MSG_PERFORM_INSTALLATIONS="Realitzant les instal·lacions"
MSG_INSTALLING_FLASH_ON="Instal·lant flash"
# Errors
MSG_ERROR_INSTALL_WINE="Necessita instal·lar wine! \nDescarregui'l de: http://www.winehq.org"
MSG_ERROR_INSTALL_CABEXTRACT="Necessita instal·lar cabextract!\nDescarregui'l de: http://www.kyz.uklinux.net/cabextract.php"
MSG_ERROR_UPDATE_CABEXTRACT="Necessita actualiztar cabextract!\ndescarregui'l de: http://www.kyz.uklinux.net/cabextract.php"
MSG_ERROR_INVALIDLOCALE="Locale invàlid! Si us plau, executi IEs4Linux un altre cop i triï'n un de vàlid."
MSG_WARNING_ROOT="És superusuari! Aixó no és aconsellable! IE és molt insegur i no es recomana donar-li accés de superusuari.\nVol un consell? Executi'l com a usuari normal o, encara millor, si pot, creï un altre usuari per utilitzar IEs."
# Post Install messages
MSG_INSTALLATIONS_FINISHED="La instal·lació de IEs 4 Linux ha finalitzat!"
MSG_RUN_IES="Per executar IEs, escrigui:"
MSG_NEEDS_TRANSLATION="Si té 5 minuts, tradueixi IEs4Linux al seu llenguatge.\nVisiti: http://tatanka.com.br/ies4linux/forum/viewtopic.php?p=2"
# TRANSLATION VERSION 1.2
MSG_ERROR_INSTALL_WGET="Has d'instal·lar el 'wget' primer de tot!"
MSG_ERROR_INSTALL_UNZIP="Has d'instal·lar el 'unzip' primer de tot!"
MSG_WARNING_OLDWINE="IEs4Linux 2.0 està desenvolupat per ser utilitzat amb versions de Wine recents (0.9.x). Sembla que està utilitzant una versió antiga($(wine --version)). Es recomanable que actualitzi a la última versió (Vagi a: winehq.com)."
MSG_ERROR_NO_WINEPREFIXCREATE="El seu wine no té wineprefixcreate instal·lat. És possible que estigui fent servir una versió de wine antiga. Actualitzi a la última versió."
MSG_ERROR_CABEXTRACTING="Hi ha hagut un error mentre cabextract extreia uns fitxers."
# TRANSLATION VERSION 1.3
MSG_ERROR_INSTALL_WGET="Has d'instal·lar el 'wget' primer de tot!"
MSG_ERROR_INSTALL_UNZIP="Has d'instal·lar el 'unzip' primer de tot!"
MSG_ERROR_CREATE_FOLDER="No es pot crear la carpeta"
MSG_ERROR_DOWNLOADING="Hi ha hagut un error durant la descàrrega. Per favor, executi IEs4Linux de nou. Fitxer corrupte:"
MSG_ERROR_NO_GUI_AVAILABLE="No es disposa de cap interfície d'usuari. Usi el ies4linux des de la linia d'ordres o instal·li pygtk. Més informació: http://www.tatanka.com.br/ies4linux/page/No_GUI"
MSG_INSTALLATIONS_FINISHED="La instal·lació de IEs 4 Linux ha finalitzat!"
MSG_RUN_IES="Per executar IEs, escrigui:"
GUI_TITLE="Internet Explorers per a Linux"
GUI_INSTALLATION_OPTIONS="Opcions d'instal·lació"
GUI_IE="Internet Explorer"
GUI_EXTRA="Extra"
GUI_INSTALL_IE6="Instal·lar Internet Explorer 6.0 SP1"
GUI_INSTALL_IE55="Instal·lar Internet Explorer 5.5"
GUI_INSTALL_IE5="Instal·lar Internet Explorer 5.01"
GUI_INSTALL_FLASH="Instal·lar Adobe Flash player 9"
GUI_CREATE_ICONS="Crear icones d'escriptori"
GUI_LOCALE="Localització"
GUI_ADVANCED_OPTIONS="Opcions avançades"
GUI_ADVANCED_BASEDIR="Directori base"
GUI_ADVANCED_BINDIR="Directori de binaris"
GUI_ADVANCED_DOWNLOADDIR="Directori de descàrrega"
GUI_ADVANCED_WGETFLAGS="Paràmetres del wget"
GUI_CANCEL_INSTALL="Instal·lació cancel·lada per l'usuari"
GUI_OK="Acceptar"
GUI_CANCEL="Cancel·lar"
GUI_CLOSE="Tancar"

View File

@ -3,18 +3,18 @@ TRANSLATION_ENCODING="UTF8"
MSG_LANGUAGE="Česky"
MSG_DOWNLOADING="Stahuje se vše potřebné"
MSG_INSTALLING="Instalace"
MSG_INSTALLING_FLASH="IInstalace Flash Player 9"
MSG_INSTALLING_FLASH="Instalace Flash Player 9"
MSG_INSTALLATION_OPTIONS="IEs4Linux provede:"
MSG_OPTION_INSTALL_IES="Instalaci Internet Explorerů:"
MSG_OPTION_INSTALL_FLASH="Instalaci Adobe Flash 9,0"
MSG_OPTION_INSTALL_FLASH="Instalaci Adobe Flash 9.0"
MSG_OPTION_CREATE_ICONS="Vytvoří ikony na ploše"
MSG_OPTION_BASEDIR="Instalace do složky:"
MSG_OPTION_DOWNLOADDIR="Stáhnout vše do složky:"
MSG_OPTION_LOCALE="Jazyk IE:"
MSG_INITIALIZING="Inicializace"
MSG_CREATING_PREFIX="Vytváří se Wine prefix"
MSG_EXTRACTING_CABS="Rozbalují se archívy CAB"
MSG_INSTALLING_FONTS="Instalují se TTF fonty"
MSG_EXTRACTING_CABS="Rozbalují se archivy CAB"
MSG_INSTALLING_FONTS="Instalují se písma TTF"
MSG_INSTALLING_REGISTRY="Instalují se položky do registru"
MSG_FINALIZING="Dokončování"
MSG_COPYING_IE6="Kopírují se soubory instalace IE6"
@ -22,15 +22,15 @@ MSG_EXTRACTING_FILES="Rozbalují se soubory"
MSG_PROCESSING_INF="Zpracovávají se soubory .inf"
MSG_PERFORM_INSTALLATIONS="Vykonávájí se jednotlivé instalace"
MSG_INSTALLING_FLASH_ON="Flash se instaluje"
MSG_ERROR_INSTALL_WINE="Před instalací je nutné nainstalovat wine! \nStáhnutí: http://www.winehq.org"
MSG_ERROR_INSTALL_WINE="Před instalací je nutné nainstalovat wine! \nStahujte zde: http://www.winehq.org"
MSG_ERROR_INSTALL_CABEXTRACT="Před instalací je nutné nainstalovat cabextract! \nStahujte zde: http://www.kyz.uklinux.net/cabextract.php"
MSG_ERROR_UPDATE_CABEXTRACT="Před instalací je nutné nainstalovat novou verzi cabextract! \nStahujte zde: http://www.kyz.uklinux.net/cabextract.php"
MSG_ERROR_INVALIDLOCALE="Špatná lokalizace! Prosím spusťte instalaci znovu a vyberte správnou (existující) lokalizaci."
MSG_WARNING_ROOT="Jste přihlášen jako root! To je velmi nerozvážné! IE není příliš bezpečný, aby mohl běžet jako proces uživatele root.\nDoporučuje se používat IE pod jiným účtem, než-li je root."
MSG_ERROR_INVALIDLOCALE="Špatná lokalizace! Prosím spusťte instalaci IEs4Linux znovu a vyberte správnou (existující) lokalizaci."
MSG_WARNING_ROOT="Jste přihlášen jako root! To je velmi nerozvážné! IE je příliš nebezpečný, aby mohl běžet jako proces uživatele root.\nDoporučujeme používat ies4linux pod standardním uživatelem a nebo, ještě lépe, vytvořit samostatný účet pouze pro IE."
MSG_ERROR_INSTALL_WGET="Před instalací je nutné nainstalovat wget!"
MSG_ERROR_INSTALL_UNZIP="Před instalací je nutné nainstalovat unzip!"
MSG_WARNING_OLDWINE="IEs4Linux 2 požaduje novější verzi Wine (0,9,x). Zdá se, že máte starší verzi ($(wine --version)). Doporučujeme nainstalovat nejnovější verzi z <http://winehq.com>."
MSG_ERROR_NO_WINEPREFIXCREATE="Nainstalovaný Wine neobsahuje utilitu wineprefixcreate. Možná používáte starší verzi, zkuste ji aktualizovat na nejnovější."
MSG_WARNING_OLDWINE="IEs4Linux 2 požaduje novější verzi Wine (0.9.x). Zřejmě máte starší verzi ($(wine --version)). Doporučujeme nainstalovat nejnovější verzi z <http://winehq.com>."
MSG_ERROR_NO_WINEPREFIXCREATE="Nainstalovaný Wine neobsahuje utilitu wineprefixcreate. Možná používáte starší verzi Wine, zkuste ji aktualizovat na nejnovější."
MSG_ERROR_CABEXTRACTING="Vyskytla se chyba při rozbalování některých souborů cabextractem."
MSG_ERROR_CREATE_FOLDER="Nepodařilo se vytvořit složku"
MSG_ERROR_DOWNLOADING="Vyskytla se chyba při stahování, prosím spusťte IEs4Linux znovu. Poškozený soubor:"
@ -41,9 +41,9 @@ GUI_TITLE="Internet Explorery pro Linux"
GUI_INSTALLATION_OPTIONS="Nastavení instalace"
GUI_IE="Internet Explorer"
GUI_EXTRA="Extra"
GUI_INSTALL_IE6="Instalovat Internet Explorer 6,0 SP1"
GUI_INSTALL_IE55="Instalovat Internet Explorer 5,5"
GUI_INSTALL_IE5="Instalovat Internet Explorer 5,01"
GUI_INSTALL_IE6="Instalovat Internet Explorer 6.0 SP1"
GUI_INSTALL_IE55="Instalovat Internet Explorer 5.5"
GUI_INSTALL_IE5="Instalovat Internet Explorer 5.01"
GUI_INSTALL_FLASH="Instalovat přehrávač Adobe Flash 9"
GUI_CREATE_ICONS="Vytvořit ikony na ploše"
GUI_LOCALE="Jazyk"

View File

@ -52,23 +52,49 @@ MSG_RUN_IES="To run your IEs, type:"
# User interface
GUI_TITLE="Internet Explorers for Linux"
GUI_INSTALLATION_OPTIONS="Installation options"
GUI_IE="Internet Explorer"
GUI_EXTRA="Extra"
GUI_INSTALL_IE6="Install Internet Explorer 6.0 SP1"
GUI_INSTALL_IE55="Install Internet Explorer 5.5"
GUI_INSTALL_IE5="Install Internet Explorer 5.01"
GUI_INSTALL_FLASH="Install Adobe Flash player 9"
GUI_CREATE_ICONS="Create Desktop icons"
GUI_LOCALE="Locale"
GUI_IES="Install Internet Explorers"
GUI_PLUGINS="Install plugins"
GUI_ICONS="Install icons in"
GUI_DESKTOP="Desktop"
GUI_MENU="Menu"
GUI_ADVANCED="Advanced"
GUI_ADVANCED_OPTIONS="Advanced options"
GUI_ADVANCED_BASEDIR="Base dir"
GUI_ADVANCED_BINDIR="Bin dir"
GUI_ADVANCED_DOWNLOADDIR="Download dir"
GUI_ADVANCED_WGETFLAGS="Wget Flags"
GUI_CANCEL_INSTALL="Installation cancelled by user"
GUI_ADVANCED_NOTICE="Run 'ies4linux --help' for detailed. explanations about these options."
GUI_BETA="Beta"
GUI_BETA_NOTICE="All these options are still beta. Use them carefully. Please see tatanka.com.br/ies4linux/news for more information."
GUI_BASEDIR="Base location for installs"
GUI_BINDIR="Location of your bin folder"
GUI_DOWNLOADDIR="Where downloads will go"
GUI_WGETFLAGS="Wget flags"
GUI_INSTALLING="Installing IEs 4 Linux"
GUI_OK="OK"
GUI_CANCEL="Cancel"
GUI_CLOSE="Close"
GUI_CANCEL_INSTALL="Installation cancelled by user"
# Will be deprecated
GUI_INSTALL_IE6="Install Internet Explorer 6.0 SP1"
GUI_INSTALL_IE55="Install Internet Explorer 5.5"
GUI_INSTALL_IE5="Install Internet Explorer 5.01"
GUI_INSTALL_FLASH="Install Adobe Flash player 9"
GUI_ADVANCED_BASEDIR="Base dir"
GUI_ADVANCED_BINDIR="Bin dir"
GUI_ADVANCED_DOWNLOADDIR="Download dir"
GUI_ADVANCED_WGETFLAGS="Wget Flags"
GUI_CREATE_ICONS="Create Desktop icons"
GUI_CREATE_MENU_ICONS="Create Menu icons"
# Uninstaller
MSG_UNINSTALLING="Uninstalling previous IEs4Linux installation"
MSG_REMOVING_ICONS="Removing icons from Desktop and Menu"
MSG_REMOVING_BIN="Removing executables"
MSG_REMOVING_DOWNLOADS="Removing downloaded files"
MSG_REMOVING_FILES="Removing installation files"
MSG_ERROR_NO_INSTALL_DATA="Cannot find a previous IEs4Linux installation"

View File

@ -1,48 +1,16 @@
# IEs 4 Linux 2.0
# Esperanto Strings
# Translation details
TRANSLATION_LOCALE="eoXX"
TRANSLATION_WHO="Bertilo Wennergren <bertilow at gmail dot com>"
TRANSLATION_LANGUAGE="Esperanto"
TRANSLATION_VERSION="0.1"
TRANSLATION_ENCODING="UTF8"
# ANSWER OPTIONS (should be the first letter of localized 'yes' and 'no'
YES=j
NO=n
MSG_WELCOME_TEXT="Bonvenon, $(whoami)! Mi estas 'IEs4Linux'.\nMi povas instali por vi la programojn IE 6, 5.5 kaj 5.0 facile kaj rapide.\nSufiĉos kvar premoj de la enigo-klavo."
MSG_WELCOME_INSTRUCTIONS="Mi nun faros al vi kelkajn demandojn. Simple respondu $YES$NO (la implicita respondo aperos grase)"
MSG_WELCOME_QUESTION_IE55="La programo 'IE 6' estos aŭtomate instalita.\nĈu vi volas instali ankaŭ la version 'IE 5.5 SP2'?"
MSG_WELCOME_QUESTION_IE5="Kaj ĉu vi volas instali la version 'IE 5.01 SP2'?"
MSG_LOCALES="Eblas instali la IE-ojn uzante unu el la sekvaj lokaĵaroj:"
MSG_CHOOSE_LOCALE="Implicita estas '$IE6_LOCALE'. Premu la enigo-klavon, se vi volas ĝuste tiun. Alie elektu alian lokaĵaron: "
MSG_WELCOME_INSTRUCTIONS_DEFAULT="Ordinare mi instalas ĉion ĉe $BASEDIR_DEFAULT\nMi instalos ankaŭ la aldonprogramon 'Flash 9', kaj mi kreos skribotablajn ligilojn."
MSG_WELCOME_QUESTION_CONFIGURE="Ĉu bone por vi? (Por pliaj elektebloj klavu $NO)"
MSG_CONFIGURE_FLASH="Ĉu mi instalu la aldonprogramon 'Adobe Flash 9'?"
MSG_CONFIGURE_SHORTCUTS="Kaj kio pri skribotablaj ligiloj? Ĉu mi rajtas krei tiajn?"
MSG_CONFIGURE_BASEDIR_MSG="Ĉio estos instalita ĉe $BASEDIR_DEFAULT"
MSG_CONFIGURE_BASEDIR_QUESTION="Premu la enigo-klavon por akcepti tion, aŭ tajpu la novan dosierujon (kun absoluta vojprefikso): "
MSG_CONFIGURE_BINDIR_MSG="Duumaj lanĉiloj estos kreitaj ĉe $BINDIR_DEFAULT"
MSG_CONFIGURE_BINDIR_QUESTION="Premu la enigo-klavon por akcepti tion, aŭ tajpu la novan dosierujon: "
MSG_CONFIGURE_WGET="Ni uzos 'wget' por elŝuti la dosierojn. Se via 'wget' bezonas iajn specialajn elekteblojn (ekz. prokuran servilon), klavu tiujn nun: "
MSG_START="Bone! Ni komencu la instaladojn..."
# Sections
MSG_LANGUAGE="Esperanto"
MSG_DOWNLOADING="Elŝutas ĉion bezonatan"
MSG_INSTALLING="Instalas"
MSG_INSTALLING_FLASH="Instalas la programon 'Flash Player 9'"
# Subsections
MSG_INSTALLATION_OPTIONS=""
MSG_OPTION_INSTALL_IES=""
MSG_OPTION_INSTALL_FLASH=""
MSG_OPTION_CREATE_ICONS=""
MSG_OPTION_BASEDIR=""
MSG_OPTION_DOWNLOADDIR=""
MSG_OPTION_LOCALE=""
MSG_INITIALIZING="Iniciatas"
MSG_CREATING_PREFIX="Kreas 'Wine'-prefikson"
MSG_EXTRACTING_CABS="Malpakas 'CAB'-dosierojn"
@ -54,20 +22,37 @@ MSG_EXTRACTING_FILES="Malpakas dosierojn"
MSG_PROCESSING_INF="Traktas la 'inf'-dosieron"
MSG_PERFORM_INSTALLATIONS="Plenumas instaladojn"
MSG_INSTALLING_FLASH_ON="Instalas 'flash'-on"
# Errors
MSG_ERROR_INSTALL_WINE="Unue vi devas instali la programon 'wine'! \nVi povas elŝuti ĝin de tiu ĉi loko: http://www.winehq.org"
MSG_ERROR_INSTALL_CABEXTRACT="Unue vi devas instali la programon 'cabextract! \nVi povas elŝuti ĝin de tiu ĉi loko: http://www.kyz.uklinux.net/cabextract.php"
MSG_ERROR_INSTALL_CABEXTRACT="Unue vi devas instali la programon 'cabextract'! \nVi povas elŝuti ĝin de tiu ĉi loko: http://www.kyz.uklinux.net/cabextract.php"
MSG_ERROR_UPDATE_CABEXTRACT="Unue vi devas ĝisdatigi la programon 'cabextract! \nVi povas elŝuti ĝin de tiu ĉi loko: http://www.kyz.uklinux.net/cabextract.php"
MSG_ERROR_INVALIDLOCALE="Nevalida lokaĵaro! Bv. ruli 'IEs4Linux'-on denove elektante validan lokaĵaron."
MSG_WARNING_ROOT="Vi rulas la programon kiel administranto! Tio estas forte malrekomendata! IE estas tro malsekura por ricevi la rajtojn de administranto.\nĈu vi volas amikan konsilon? Rulu min kiel ordinara uzanto, aŭ - eĉ pli bone - se eble, kreu apartan uzanton por viaj IE-oj."
# Post Install messages
MSG_INSTALLATIONS_FINISHED="La instalado de 'IEs 4 Linux' estas finita!"
MSG_RUN_IES="Por ruli viajn IE-ojn, komandu:"
MSG_NEEDS_TRANSLATION="Se vi havas 5 minutojn je dispono, helpu min traduki 'IEs4Linux'-on en vian lingvon.\nVizitu: http://tatanka.com.br/ies4linux/forum/viewtopic.php?p=2"
# TRANSLATION VERSION 1.2
MSG_ERROR_INSTALL_WGET="Unue vi devas instali la programon 'wget'!"
MSG_ERROR_INSTALL_UNZIP="Unue vi devas instali la programon 'wget'!"
MSG_WARNING_OLDWINE="'IEs4Linux 2.0' estas farita por uzado kun lastatempaj versioj de la programo 'Wine' (0.9.x). Ŝajnas, ke vi uzas malnovan version ($(wine --version)). Estas rekomendinde ĝisdatigi vian 'wine'-programon al la plej nova versio. (Iru al: winehq.com)."
MSG_ERROR_NO_WINEPREFIXCREATE="Al via 'wine'-programo mankas la parto 'wineprefixcreate'. Eble vi uzas malnovan version de 'wine'. Provu ĝisdatigi ĝin."
MSG_ERROR_CABEXTRACTING="Okazis eraro dum malpakado de dosieroj per la programo 'cabextract'."
MSG_ERROR_CREATE_FOLDER=""
MSG_ERROR_DOWNLOADING=""
MSG_ERROR_NO_GUI_AVAILABLE=""
MSG_INSTALLATIONS_FINISHED="La instalado de 'IEs 4 Linux' estas finita!"
MSG_RUN_IES="Por ruli viajn IE-ojn, komandu:"
GUI_TITLE=""
GUI_INSTALLATION_OPTIONS=""
GUI_IE=""
GUI_EXTRA=""
GUI_INSTALL_IE6=""
GUI_INSTALL_IE55=""
GUI_INSTALL_IE5=""
GUI_INSTALL_FLASH=""
GUI_CREATE_ICONS=""
GUI_LOCALE=""
GUI_ADVANCED_OPTIONS=""
GUI_ADVANCED_BASEDIR=""
GUI_ADVANCED_BINDIR=""
GUI_ADVANCED_DOWNLOADDIR=""
GUI_ADVANCED_WGETFLAGS=""
GUI_CANCEL_INSTALL=""
GUI_OK=""
GUI_CANCEL=""
GUI_CLOSE=""

View File

@ -1,48 +1,16 @@
# IEs 4 Linux 2.0
# English Strings
# Translation details
TRANSLATION_LOCALE="etEE"
TRANSLATION_WHO="Edmund Laugasson <ed.lau at mail dot ee>"
TRANSLATION_LANGUAGE="Estonian"
TRANSLATION_VERSION="1.0"
TRANSLATION_ENCODING="UTF8"
# ANSWER OPTIONS (should be the first letter of localized 'yes' and 'no'
YES=jah
NO=ei
MSG_WELCOME_TEXT="Tervist, $(whoami)! Olen IEs4Linux.\nMa suudan lihtsalt ja kiirelt paigaldada IE 6, 5.5 ja 5.0.\nSul tuleb vastata neljale lihtsale küsimusele."
MSG_WELCOME_INSTRUCTIONS="Ma küsin mõned lihtsad küsimused. Vasta lihtsalt $YES or $NO (vaikimisi valik on rasvane)"
MSG_WELCOME_QUESTION_IE55="IE 6 paigaldatakse automaatselt.\nKas soovid paigaldada ka IE 5.5 SP2?"
MSG_WELCOME_QUESTION_IE5="...ja kas soovid paigaldada ka IE 5.01 SP2?"
MSG_LOCALES="IE võib paigaldada, kasutades ühte alljärgnevatest kasutuskohtadest:"
MSG_CHOOSE_LOCALE="Vaikimisi kasutuskoht on $IE6_LOCALE. Vajuta Enter kui oled vaikimisi valikuga nõus või vali uus: "
MSG_WELCOME_INSTRUCTIONS_DEFAULT="Vaikimisi paigaldatakse kõik kataloogi $BASEDIR_DEFAULT\nPaigaldatakse ka Flash 9 plugin ja tehakse töölauale viited."
MSG_WELCOME_QUESTION_CONFIGURE="Kas see sobib Sulle? (Rohkemate valikuta saamiseks vasta $NO)"
MSG_CONFIGURE_FLASH="Kas paigaldan ka Adobe Flash 9 plugina?"
MSG_CONFIGURE_SHORTCUTS="Ja kuidas on töölaua ikoonidega? Kas tekitan ka need?"
MSG_CONFIGURE_BASEDIR_MSG="Kogu tarkvara paigaldatakse kataloogi $BASEDIR_DEFAULT"
MSG_CONFIGURE_BASEDIR_QUESTION="Vajuta Enter, et vaikimisi pakutuga nõus olla või sisesta uus asukoht (absoluutne otsitee): "
MSG_CONFIGURE_BINDIR_MSG="Programmi käivitamise binaarid paigaldatakse kataloogi $BINDIR_DEFAULT"
MSG_CONFIGURE_BINDIR_QUESTION="Vajuta Enter, et vaikimisi pakutuga nõus olla või sisesta uus asukoht: "
MSG_CONFIGURE_WGET="Me kasutame programmi wget, et faile alla laadida. Kui vajad mingeid erilisi võtmeid (proxy,...), kirjuta need nüüd: "
MSG_START="Nüüd on kõik vajalik info olemas! Võime alustada paigaldusega..."
# Sections
MSG_LANGUAGE="Eesti"
MSG_DOWNLOADING="Laadime alla paigaldamiseks vajalikku tarkvara"
MSG_INSTALLING="Paigaldame..."
MSG_INSTALLING_FLASH="Hetkel toimub Flash 9 paigaldamine"
# Subsections
MSG_INSTALLATION_OPTIONS=""
MSG_OPTION_INSTALL_IES="Installeerida Internet Exploorerid"
MSG_OPTION_INSTALL_FLASH="Installeerida Adobe Flash 9.0"
MSG_OPTION_CREATE_ICONS="Tekitada ikoonid töölauale"
MSG_OPTION_BASEDIR="Kogu paketi installeerimiseks kasutatav kataloog"
MSG_OPTION_DOWNLOADDIR="Kogu paketi allalaadimiseks kasutatav kataloog"
MSG_OPTION_LOCALE="IE kasutatav regioonikood"
MSG_INITIALIZING="Tuvastamine"
MSG_CREATING_PREFIX="Loome Wine eesliited..."
MSG_EXTRACTING_CABS="Pakime lahti CAB failid..."
@ -54,33 +22,22 @@ MSG_EXTRACTING_FILES="Pakime faile lahti..."
MSG_PROCESSING_INF="Töötleme inf-faile"
MSG_PERFORM_INSTALLATIONS="Valmistame paigaldust ette"
MSG_INSTALLING_FLASH_ON="Paigaldame flash-i..."
# Errors
MSG_ERROR_INSTALL_WINE="Süsteemist ei leitud programmi Wine! \nSeda saab siit alla laadida: http://www.winehq.org"
MSG_ERROR_INSTALL_CABEXTRACT="Süsteemist ei leitud programmi cabextract! \nSeda saab siit alla laadida: http://www.kyz.uklinux.net/cabextract.php"
MSG_ERROR_UPDATE_CABEXTRACT="Sa pead uuendama programmi cabextract! \nSeda saab siit alla laadida: http://www.kyz.uklinux.net/cabextract.php"
MSG_ERROR_INVALIDLOCALE="Vigane kasutuskoht! Palun käivita IEs4Linux uuesti ja vali üks."
MSG_WARNING_ROOT="Sa oled juurkasutaja (root)! See on väga ebasoovitav! IE on selleks liiga ebaturvaline et sellele juurkasutaja õigusi anda.\nKas tahad asjalikku soovitust? Käivita IEs4Linux kui tavakasutaja, mis on palju parem ja kui saad siis tekita koguni eraldi kasutaja, mille all IE-d kasutad. Nii on kõige ohutum"
# Post Install messages
MSG_INSTALLATIONS_FINISHED="IEs 4 Linux paigaldamine edukalt lõppenud!"
MSG_RUN_IES="Et käivitada IE, kirjuta:"
MSG_NEEDS_TRANSLATION="Kui Sul juhtub olema 5 minutit vaba aega siis palun aita mul seda programmi (IEs4Linux) tõlkida Sinu emakeelde.\nSelleks külasta aadressi: http://tatanka.com.br/ies4linux/forum/viewtopic.php?p=2"
# TRANSLATION VERSION 1.2
MSG_ERROR_INSTALL_WGET="Sa pead paigaldama 'wget' kõigepealt!"
MSG_ERROR_INSTALL_UNZIP="Sa pead paigaldama 'unzip' kõigepealt!"
MSG_WARNING_OLDWINE="IEs4Linux 2.0 on arendatud Wine uusimate versioonide (0.9.x) jaoks. Paistab, et Sa kasutad suhteliselt vana versiooni ($(wine --version)). Soovitav oleks wine uuendada uusima versiooni peale (Mine aadressile: winehq.com)."
MSG_ERROR_NO_WINEPREFIXCREATE="Sinu wine jaoks ei ole wineprefixcreate paigaldatud. Võibolla on Sul liiga vana wine versioon. Proovi seda esmalt uuendada."
MSG_ERROR_CABEXTRACTING="Tekkis miski viga cab-failide lahtipakkimisel."
# TRANSLATION VERSION 1.3
MSG_ERROR_INSTALL_WGET="Sa pead paigaldama 'wget' kõigepealt!"
MSG_ERROR_INSTALL_UNZIP="Sa pead paigaldama 'unzip' kõigepealt!"
# TRANSLATION VERSION 1.4
MSG_ERROR_CREATE_FOLDER="Ei suuda tekitada kataloogi"
MSG_ERROR_DOWNLOADING="Allalaadimise käigus tekkis viga. Palun käivita IEs4Linux uuesti. Vigane fail:"
MSG_ERROR_NO_GUI_AVAILABLE="Graafilist kasutajaliidest ei leitud. Kasuta käsurea varianti ies4linux'ist või installeeri pygtk. Lisainfot leiad siit: http://www.tatanka.com.br/ies4linux/page/No_GUI"
MSG_INSTALLATIONS_FINISHED="IEs 4 Linux paigaldamine edukalt lõppenud!"
MSG_RUN_IES="Et käivitada IE, kirjuta:"
GUI_TITLE="Internet Explorer Linuxile"
GUI_OK="Paigalda"
GUI_CANCEL="Katkesta"
GUI_INSTALLATION_OPTIONS="Paigaldamise valikud"
GUI_IE="Internet Explorer"
GUI_EXTRA="Lisad"
@ -90,9 +47,12 @@ GUI_INSTALL_IE5="Paigalda Internet Explorer 5.01"
GUI_INSTALL_FLASH="Paigalda Adobe Flash player 9"
GUI_CREATE_ICONS="Tekita ikoonid töölauale"
GUI_LOCALE="Kasutuskoht"
GUI_ADVANCED_OPTIONS="Täiendavad valikud"
GUI_ADVANCED_BASEDIR="Paigalduskaust"
GUI_ADVANCED_BINDIR="Käivitusfailide kaust"
GUI_ADVANCED_DOWNLOADDIR="Allalaadimise kaust"
GUI_ADVANCED_WGETFLAGS="Wget parameetrid"
GUI_ADVANCED_WGETFLAGS="Wget parameetrid"
GUI_CANCEL_INSTALL="Installeerimine katkestatud kasutaja poolt"
GUI_OK="Paigalda"
GUI_CANCEL="Katkesta"
GUI_CLOSE="Sulge"

View File

@ -4,14 +4,14 @@ MSG_LANGUAGE="Suomi"
MSG_DOWNLOADING="Haetaan kaikki tarvittava"
MSG_INSTALLING="Asennetaan"
MSG_INSTALLING_FLASH="Asennetaan Flash Player 9"
MSG_INSTALLATION_OPTIONS=""
MSG_INSTALLATION_OPTIONS="IEs4Linux aikoo:"
MSG_OPTION_INSTALL_IES="Asennetaan Internet Explorer"
MSG_OPTION_INSTALL_FLASH="Asennetaan Adobe Flash 9.0"
MSG_OPTION_CREATE_ICONS="Luodaan työpöydän ikonit"
MSG_OPTION_BASEDIR="Asennetaan kaikki tarvittava:"
MSG_OPTION_DOWNLOADDIR="Ladataan kaikki tarvittava:"
MSG_OPTION_LOCALE=""
MSG_INITIALIZING="Initialisoi"
MSG_OPTION_LOCALE="Käyttäen IE kieliasua:"
MSG_INITIALIZING="Alustetaan"
MSG_CREATING_PREFIX="Luodaan Wine Prefix"
MSG_EXTRACTING_CABS="Puretaan CAB-tiedostoja"
MSG_INSTALLING_FONTS="Asennetaan TTF-Fontteja"
@ -35,24 +35,24 @@ MSG_ERROR_CABEXTRACTING="Tapahtui virhe purettaessa tiedostoja cabextract-ohjelm
MSG_ERROR_CREATE_FOLDER="Hakemistoa ei voi luoda."
MSG_ERROR_DOWNLOADING="Latauksessa tapahtui virhe. Ole hyvä, suorita IEs4Linux uudestaan."
MSG_ERROR_NO_GUI_AVAILABLE="Graafista käyttöliittymää ei voi käyttää. Suorita komentoriviltä ies4linux tai asenna 'pygtk'. Lisätietoja: http://www.tatanka.com.br/ies4linux/page/No_GUI (englanniksi)."
MSG_INSTALLATIONS_FINISHED="IEs 4 Linuxin asennus valmis!"
MSG_RUN_IES="Ajaaksesi IE:n, kirjoita:"
GUI_TITLE="Internet Explorer Linuxille"
GUI_INSTALLATION_OPTIONS=""
GUI_IE=""
GUI_EXTRA=""
MSG_INSTALLATIONS_FINISHED="Valmis! IEs 4 Linuxin asennus on suoritettu onnistuneesti!"
MSG_RUN_IES="Käynnistääksesi IE:n, kirjoita:"
GUI_TITLE="Internet Explorer -selaimet Linuxille"
GUI_INSTALLATION_OPTIONS="Asennusvaihtoehdot"
GUI_IE="Internet Explorer"
GUI_EXTRA="Extra"
GUI_INSTALL_IE6="Asenna Internet Explorer 6.0 SP1 "
GUI_INSTALL_IE55="Asenna Internet Explorer 5.5 "
GUI_INSTALL_IE5="Asenna Internet Explorer 5.01 "
GUI_INSTALL_FLASH="Asenna Adobe Flash player 9 "
GUI_CREATE_ICONS="Luodaan työpöytä ikonit"
GUI_LOCALE=""
GUI_ADVANCED_OPTIONS=""
GUI_ADVANCED_BASEDIR=""
GUI_ADVANCED_BINDIR=""
GUI_ADVANCED_DOWNLOADDIR=""
GUI_ADVANCED_WGETFLAGS=""
GUI_CANCEL_INSTALL=""
GUI_OK=""
GUI_LOCALE="Kielivalinta"
GUI_ADVANCED_OPTIONS="Lisävaihtoehdot"
GUI_ADVANCED_BASEDIR="Asennushakemisto"
GUI_ADVANCED_BINDIR="Hakemisto jonne ajettava(t) ohjelmat(t) kopioidaan"
GUI_ADVANCED_DOWNLOADDIR="Lataushakemisto"
GUI_ADVANCED_WGETFLAGS="wget -shell ohjelman lisäparametrit"
GUI_CANCEL_INSTALL="Käyttäjä keskeytti asennuksen"
GUI_OK="Hyväksy"
GUI_CANCEL="Peruuta"
GUI_CLOSE="Sulje"

View File

@ -5,12 +5,12 @@ MSG_DOWNLOADING="Preuzimam potrebne datoteke"
MSG_INSTALLING="Instaliram"
MSG_INSTALLING_FLASH="Instaliram Flash Player 9"
MSG_INSTALLATION_OPTIONS="IEs4Linux će:"
MSG_OPTION_INSTALL_IES=""
MSG_OPTION_INSTALL_FLASH=""
MSG_OPTION_CREATE_ICONS=""
MSG_OPTION_BASEDIR=""
MSG_OPTION_DOWNLOADDIR=""
MSG_OPTION_LOCALE=""
MSG_OPTION_INSTALL_IES="Inataliraj Internet Explorer:"
MSG_OPTION_INSTALL_FLASH="Instaliraj Adobe Flash 9.0"
MSG_OPTION_CREATE_ICONS="Napravi Desktop icone"
MSG_OPTION_BASEDIR="Instalirajte sve u:"
MSG_OPTION_DOWNLOADDIR="Spustite sve u:"
MSG_OPTION_LOCALE="Koristite IE na ovom jeziku:"
MSG_INITIALIZING="Inicijalizacija"
MSG_CREATING_PREFIX="Kreiranje Wine Prefixa"
MSG_EXTRACTING_CABS="Ekstrakcija CAB datoteka"
@ -32,27 +32,27 @@ MSG_ERROR_INSTALL_UNZIP="Za instalaciju je potreban 'unzip'!"
MSG_WARNING_OLDWINE="IEs4Linux 2.0 je predviđen za rad s Wine verzijom (0.9.x). Vaša verzija je ($(wine --version)). Preporučljivo je da preuzmete noviju verziju (Go to: winehq.com)."
MSG_ERROR_NO_WINEPREFIXCREATE="Vaš wine nema wineprefixcreate instaliran. Možda koristite stariju verziju wine-a. Preporučljivo je da preuzmete noviju verziju"
MSG_ERROR_CABEXTRACTING="Dogodila se greška kod cabextract ekstrakcije datoteka."
MSG_ERROR_CREATE_FOLDER=""
MSG_ERROR_DOWNLOADING=""
MSG_ERROR_NO_GUI_AVAILABLE=""
MSG_ERROR_CREATE_FOLDER="Ne mogu napreviti mapu"
MSG_ERROR_DOWNLOADING="Dogodila se greška kod preuzimanja. Molim pokrenite IEs4Linux ponovno. Neispravna datoteka:"
MSG_ERROR_NO_GUI_AVAILABLE="Nema dostupnog korisničkog sučelja. Koristite u komandnoj liniji ies4linux ili instalirajte pygtl. Detaljnije na: http://www.tatanka.com.br/ies4linux/page/No_GUI"
MSG_INSTALLATIONS_FINISHED="Instalacija IEs 4 Linux je gotova!"
MSG_RUN_IES="Za pokretanje IEs, utipkajte:"
GUI_TITLE="Internet Exploreri za Linux"
GUI_INSTALLATION_OPTIONS="Opcije instalacije:"
GUI_IE="Internet Explorer"
GUI_EXTRA="Extra"
GUI_INSTALL_IE6=""
GUI_INSTALL_IE55=""
GUI_INSTALL_IE5=""
GUI_INSTALL_FLASH=""
GUI_CREATE_ICONS=""
GUI_INSTALL_IE6="Instaliraj Internet Explorer 6.0 SP1"
GUI_INSTALL_IE55="Instaliraj Internet Explorer 5.5 "
GUI_INSTALL_IE5="Instaliraj Internet Explorer 5.01"
GUI_INSTALL_FLASH="Instaliraj Adobe Flash player 9"
GUI_CREATE_ICONS="Napravi ikone na radnoj površini"
GUI_LOCALE="Jezik"
GUI_ADVANCED_OPTIONS=""
GUI_ADVANCED_BASEDIR=""
GUI_ADVANCED_BINDIR=""
GUI_ADVANCED_DOWNLOADDIR=""
GUI_ADVANCED_WGETFLAGS=""
GUI_CANCEL_INSTALL=""
GUI_ADVANCED_OPTIONS="Napredne opcije"
GUI_ADVANCED_BASEDIR="Mapa Base"
GUI_ADVANCED_BINDIR="Mapa Bin"
GUI_ADVANCED_DOWNLOADDIR="Mapa za spremanje"
GUI_ADVANCED_WGETFLAGS="Zastavice"
GUI_CANCEL_INSTALL="Instalacija je prekinuta od strane korisnika"
GUI_OK="OK"
GUI_CANCEL=""
GUI_CLOSE=""
GUI_CANCEL="Prekini"
GUI_CLOSE="Zatvori"

View File

@ -1,48 +1,16 @@
# IEs 4 Linux 2.0
# English Strings
# Translation details
TRANSLATION_LOCALE="idID"
TRANSLATION_WHO="Sonny Susanto <sonny dot susanto at gmail dot com>"
TRANSLATION_LANGUAGE="Indonesia"
TRANSLATION_VERSION="1.3"
TRANSLATION_ENCODING="UTF8"
# ANSWER OPTIONS (should be the first letter of localized 'yes' and 'no'
YES=y
NO=n
MSG_WELCOME_TEXT="Selamat datang, $(whoami)! Saya adalah IEs4Linux.\nSaya dapat menginstall IE 6, 5.5 dan 5.0 untuk Anda secara mudah dan cepat.\nAnda hanya berjarak 4 'Enter' dari IE Anda."
MSG_WELCOME_INSTRUCTIONS="Saya akan memberikan beberapa pertanyaan kepada Anda. Cukup dengan menjawab $YES atau $NO (Jawaban standar akan ditampilkan dengan huruf tebal)"
MSG_WELCOME_QUESTION_IE55="IE 6 secara otomatis akan diisntall.\nApakah Anda ingin menginstall IE 5.5 SP2 juga?"
MSG_WELCOME_QUESTION_IE5="Dan apakah Anda ingin menginstall IE 5.01 SP2?"
MSG_LOCALES="IE dapat diinstall menggunakan salah satu locale berikut:"
MSG_CHOOSE_LOCALE="Default locale adalah $IE6_LOCALE. Tekan Enter untuk memilihnya atau ketik pilihan lainnya: "
MSG_WELCOME_INSTRUCTIONS_DEFAULT="Secara default, saya akan menginstall semua program di $BASEDIR_DEFAULT\nSaya juga akan menginstall Flash 9 plugin dan membuat shortcut pada Desktop."
MSG_WELCOME_QUESTION_CONFIGURE="Apakah OK untuk Anda? (Untuk melakukan konfigurasi detail, ketik $NO)"
MSG_CONFIGURE_FLASH="Bolehkah saya menginstall Adobe Flash 9 plugin?"
MSG_CONFIGURE_SHORTCUTS="Dan bagaimana dengan icon pada Desktop? Bolehkah saya membuatnya?"
MSG_CONFIGURE_BASEDIR_MSG="Semua program akan diinstall di $BASEDIR_DEFAULT"
MSG_CONFIGURE_BASEDIR_QUESTION="Tekan Enter untuk menginstall atau ketik folder baru (absolute path): "
MSG_CONFIGURE_BINDIR_MSG="Binary launcher akan dibuat di $BINDIR_DEFAULT"
MSG_CONFIGURE_BINDIR_QUESTION="Tekan Enter untuk menginstall atau ketik folder baru: "
MSG_CONFIGURE_WGET="Saya akan menggunakan wget untuk mendownload file. Jika Anda butuh flag spesicial (proxy,...), silahkan ketik sekarang: "
MSG_START="Baiklah! Mari kita mulai proses instalasi..."
# Sections
MSG_LANGUAGE="Indonesia"
MSG_DOWNLOADING="Mendownload semua program yang dibutuhkan"
MSG_INSTALLING="Menginstall"
MSG_INSTALLING_FLASH="Instalasi Flash Player 9"
# Subsections
MSG_INSTALLATION_OPTIONS="IEs4Linux akan:"
MSG_OPTION_INSTALL_IES="Memasang Internet Explorers"
MSG_OPTION_INSTALL_FLASH="Memasang Adobe Flash 9.0"
MSG_OPTION_CREATE_ICONS="Menciptakan Desktop icons"
MSG_OPTION_BASEDIR="Memasang semuanya di:"
MSG_OPTION_DOWNLOADDIR="Mengunduh semuanya di:"
MSG_OPTION_LOCALE="Menggunakan IE lokal:"
MSG_INITIALIZING="Inisialisasi"
MSG_CREATING_PREFIX="Membuat Wine Prefix"
MSG_EXTRACTING_CABS="Mengekstrak file-file CAB"
@ -54,33 +22,22 @@ MSG_EXTRACTING_FILES="Mengekstrak file-file"
MSG_PROCESSING_INF="Memroses file inf"
MSG_PERFORM_INSTALLATIONS="Melakukan proses Instalasi"
MSG_INSTALLING_FLASH_ON="Menginstall Flash 9"
# Errors
MSG_ERROR_INSTALL_WINE="Anda harus menginstall wine terlebih dulu! \nSilahkan download disini: http://www.winehq.org"
MSG_ERROR_INSTALL_CABEXTRACT="Anda harus menginstall cabextract terlebih dulu! \nSilahkan download disini: http://www.kyz.uklinux.net/cabextract.php"
MSG_ERROR_UPDATE_CABEXTRACT="Anda harus mengupdate cabextract terlebih dulu! \nSilahkan download disini: http://www.kyz.uklinux.net/cabextract.php"
MSG_ERROR_INVALIDLOCALE="Pilihan locale salah! Silahkan Please jalankan IEs4Linux lagi dan pilih locale yang benar."
MSG_WARNING_ROOT="Anda adalah root! Hal ini sangat tidak disarankan! IE sangat tidak aman dengan memberinya hak akses root.\nButuh saran dari teman? Jalankan IEs4Linux dengan user normal atau lebih baik, jika Anda bisa, buat user terpisah yang hanya digunakan untuk menghandle IE Anda."
# Post Install messages
MSG_INSTALLATIONS_FINISHED="Proses instalasi 'IEs 4 Linux' telah berhasil!"
MSG_RUN_IES="Untuk menjalankan IE Anda, ketik:"
MSG_NEEDS_TRANSLATION="Jika Anda mempunyai waktu luang, bantu saya menerjemahkan IEs4Linux ke bahasa Anda.\nKunjungi: http://tatanka.com.br/ies4linux/forum/viewtopic.php?p=2"
# TRANSLATION VERSION 1.2
MSG_ERROR_INSTALL_WGET="Anda harus menginstall 'wget' lebih dulu!"
MSG_ERROR_INSTALL_UNZIP="Anda harus menginstall 'unzip' lebih dulu!"
MSG_WARNING_OLDWINE="IEs4Linux 2.0 dikembangkan untuk digunakan dengan Wine terbaru versi (0.9.x). Sepertinya Anda menggunakan Wine versi lama, yaitu ($(wine --version)). Disarankan Anda melakukan update Wine Anda dengan versi terbaru (Go to: winehq.com)."
MSG_ERROR_NO_WINEPREFIXCREATE="Wine Anda tidak mempunyai wineprefixcreate. Mungkin Anda menjalankan versi Wine yang sudah lama. Silahkan mencoba mengupdate Wine ke versi terbaru."
MSG_ERROR_CABEXTRACTING="Kesalahan terjadi pada saat cabextract beberapa file."
# TRANSLATION VERSION 1.3
MSG_ERROR_INSTALL_WGET="Anda harus menginstall 'wget' lebih dulu!"
MSG_ERROR_INSTALL_UNZIP="Anda harus menginstall 'unzip' lebih dulu!"
# TRANSLATION VERSION 1.4
MSG_ERROR_CREATE_FOLDER="Tidak bisa membuat folder/map"
MSG_ERROR_DOWNLOADING="Terjadi kesalahan pada waktu mengunduh. Mohon jalankan IEs4Linux lagi. File terkorupsi:"
MSG_ERROR_NO_GUI_AVAILABLE="Tidak ditemukan antarmuka pengguna. Gunakan perintah-baris IEs4Linux atau install pygtk. Detil:"
MSG_INSTALLATIONS_FINISHED="Proses instalasi 'IEs 4 Linux' telah berhasil!"
MSG_RUN_IES="Untuk menjalankan IE Anda, ketik:"
GUI_TITLE="Internet Explorer untuk Linux"
GUI_OK="Install"
GUI_CANCEL="Batal"
GUI_INSTALLATION_OPTIONS="Pilihan Instalasi"
GUI_IE="Internet Explorer"
GUI_EXTRA="Extra"
@ -90,9 +47,12 @@ GUI_INSTALL_IE5="Install Internet Explorer 5.01"
GUI_INSTALL_FLASH="Install Adobe Flash player 9"
GUI_CREATE_ICONS="Membuat Icon Desktop"
GUI_LOCALE="Locale"
GUI_ADVANCED_OPTIONS="Pilihan Detail"
GUI_ADVANCED_BASEDIR="Direktori Base"
GUI_ADVANCED_BINDIR="Direktori Bin"
GUI_ADVANCED_DOWNLOADDIR="Direktori Download"
GUI_ADVANCED_WGETFLAGS="Wget Flags"
GUI_CANCEL_INSTALL="Pemasangan dibatalkan oleh pengguna"
GUI_OK="Install"
GUI_CANCEL="Batal"
GUI_CLOSE="Tutup"

View File

@ -1,48 +1,16 @@
# IEs 4 Linux 2.0
# Latvian Strings
# Translation details
TRANSLATION_LOCALE="lvLV"
TRANSLATION_WHO="Girts Strazdins <girts.strazdins at gmail dot com>"
TRANSLATION_LANGUAGE="Latvian"
TRANSLATION_VERSION="1.3"
TRANSLATION_ENCODING="UTF8"
# ANSWER OPTIONS (should be the first letter of localized 'yes' and 'no'
YES=y
NO=n
MSG_WELCOME_TEXT="Sveiks, $(whoami)! Esmu IEs4Linux.\nVaru bez grūtībām un ātri uzstādīt Tavā vietā IE 6, 5.5 un 5.0.\nTu esi tikai četru 'enter' attālumā no saviem IE."
MSG_WELCOME_INSTRUCTIONS="Es tagad uzdošu Tev dažus jautājumus. Vienkārši atbildi $YES vai $NO (Noklusētā atbilde ir treknrakstā)"
MSG_WELCOME_QUESTION_IE55="IE 6 tiks uzstādīts automātiski.\nVai vēlies uzstādīt arī IE 5.5 SP2?"
MSG_WELCOME_QUESTION_IE5="Vai vēlies uzstādīt IE 5.01 SP2?"
MSG_LOCALES="Visi IE var tikt uzstādīti, izmantojot kādu no šīm lokālēm (locales):"
MSG_CHOOSE_LOCALE="Noklusētā ir $IE6_LOCALE. Spied enter, lai atstātu to, vai izvēlies citu: "
MSG_WELCOME_INSTRUCTIONS_DEFAULT="Noklusēti es uzstādīšu visu uz $BASEDIR_DEFAULT\nEs uzstādīšu arī Flash 9 plugin un izveidošu darba virsmas īsinājumikonas (Desktop shortcuts)."
MSG_WELCOME_QUESTION_CONFIGURE="Vai tas Tevi apmierina? (Lai izvēlētos specifiskākas iespējas, ievadi $NO)"
MSG_CONFIGURE_FLASH="Vai man uzstādīt Adobe Flash 9 plugin?"
MSG_CONFIGURE_SHORTCUTS="Un kā būs ar darba virsmas ikonām? Drīkstu tās izveidot?"
MSG_CONFIGURE_BASEDIR_MSG="Viss tiks uzstādīts uz $BASEDIR_DEFAULT"
MSG_CONFIGURE_BASEDIR_QUESTION="Spied enter, ja tas der, vai ievadi citu absolūto ceļu: "
MSG_CONFIGURE_BINDIR_MSG="Binārie palaižamie faili tiks izvietoti uz $BINDIR_DEFAULT"
MSG_CONFIGURE_BINDIR_QUESTION="Spied enter, ja tas der, vai ievadi citu mapi: "
MSG_CONFIGURE_WGET="Mēs izmantosim wget failu lejuplādei. Ja Tev vajag speciālus flagus (proxy, ...) ievadi tos tagad: "
MSG_START="Super! Sākam uzstādīšanu..."
# Sections
MSG_LANGUAGE="Latviešu"
MSG_DOWNLOADING="Lejuplādējam visu vajadzīgo"
MSG_INSTALLING="Uzstādām"
MSG_INSTALLING_FLASH="Uzstādām Flash Player 9"
# Subsections
MSG_INSTALLATION_OPTIONS="IEs4Linux uzstādīs:"
MSG_OPTION_INSTALL_IES="Uzstādīt Internet Explorerus"
MSG_OPTION_INSTALL_FLASH="Uzstādīt Adobe Flash 9.0"
MSG_OPTION_CREATE_ICONS="Izveidot ikonas uz darbvirsmas"
MSG_OPTION_BASEDIR="Visu uzstādīt:"
MSG_OPTION_DOWNLOADDIR="Visu lejuplādēt:"
MSG_OPTION_LOCALE="Izmantojamā IE lokāle:"
MSG_INITIALIZING="Inicializējam"
MSG_CREATING_PREFIX="Izveidojam Wine prefiksu"
MSG_EXTRACTING_CABS="Atpakojam CAB failus"
@ -54,25 +22,37 @@ MSG_EXTRACTING_FILES="Atpakojam failus"
MSG_PROCESSING_INF="Apstrādājam inf failu"
MSG_PERFORM_INSTALLATIONS="Veicam instalācijas"
MSG_INSTALLING_FLASH_ON="Uzstādām flash uz"
# Errors
MSG_ERROR_INSTALL_WINE="Vispirms jāuzstāda wine! \nLejuplādē to šeit: http://www.winehq.org"
MSG_ERROR_INSTALL_CABEXTRACT="Vispirms jāuzstāda cabextract! \nLejuplādē to šeit: http://www.kyz.uklinux.net/cabextract.php"
MSG_ERROR_UPDATE_CABEXTRACT="Vispirms jāatjaunina cabextract! \nLejuplādē to šeit: http://www.kyz.uklinux.net/cabextract.php"
MSG_ERROR_INVALIDLOCALE="Nekorekta lokāle! Ludzu, palaid IEs4Linux vēlreiz un izvēlies korektu lokāli."
MSG_WARNING_ROOT="Tu esi root! Tas nav ieteicams! IE ir pārāk nedrošs, lai tam piešķirtu root tiesības.\nVēlies drauga padomu? Palaid mani no sava normālā lietotāja vai, kas ir vēl labāk, ja vari, izveido atsevišķu lietotāju priekš IE."
# Post Install messages
MSG_INSTALLATIONS_FINISHED="IEs 4 Linux uzstādīšana pabeigta!"
MSG_RUN_IES="Lai palaistu savus IE, ievadi:"
MSG_NEEDS_TRANSLATION="Ja Tev ir 5 minūtes, palīdzi man pārtulkot IEs4Linux savā valodā.\nApmeklē: http://tatanka.com.br/ies4linux/forum/viewtopic.php?p=2"
# TRANSLATION VERSION 1.2
MSG_ERROR_INSTALL_WGET="Vispirms jāuzstāda 'wget'!"
MSG_ERROR_INSTALL_UNZIP="Vispirms jāuzstāda 'unzip'!"
MSG_WARNING_OLDWINE="IEs4Linux 2.0 ir izstrādāts lietošanai uz jaunākas Wine versijas (0.9.x). Izskatās, ka Tu lieto vecu versiju ($(wine --version)). Ieteicams uzstādīt jaunāko wine versiju (Ej uz: winehq.com)."
MSG_ERROR_NO_WINEPREFIXCREATE="Tavam wine nav uzstādīts wineprefixcreate. Varbūt Tu lieto vecu Wine versiju. Mēģini uzstādīt jaunāko versiju."
MSG_ERROR_CABEXTRACTING="Notikusi kļūda, atpakojot failus ar cabextract."
# TRANSLATION VERSION 1.3
MSG_ERROR_INSTALL_WGET="Vispirms jāuzstāda 'wget'!"
MSG_ERROR_INSTALL_UNZIP="Vispirms jāuzstāda 'unzip'!"
MSG_ERROR_CREATE_FOLDER="Nevar izveidot direktoriju"
MSG_ERROR_DOWNLOADING="Kļūda lejupielādējot. Lūdzu palaidiet IEs4Linux no jauna. Bojāts fails:"
MSG_ERROR_NO_GUI_AVAILABLE="Grafiskais interfeiss nav pieejams. Lieto komandrindas ies4linux vai uzstādi pygtk. Detaļas:"
MSG_INSTALLATIONS_FINISHED="IEs 4 Linux uzstādīšana pabeigta!"
MSG_RUN_IES="Lai palaistu savus IE, ievadi:"
GUI_TITLE="Internet Eploreri Linuxam"
GUI_INSTALLATION_OPTIONS="Instalācijas parametri"
GUI_IE="Internet Explorer"
GUI_EXTRA="Papildus"
GUI_INSTALL_IE6="Uzstādīt Internet Explorer 6.0 SP1 "
GUI_INSTALL_IE55="Uzstādīt Internet Explorer 5.5 "
GUI_INSTALL_IE5="Uzstādīt Internet Explorer 5.01"
GUI_INSTALL_FLASH="Uzstādīt Adobe Flash player 9"
GUI_CREATE_ICONS="Izveidot ikonas uz darbvirsmas"
GUI_LOCALE="Lokāle"
GUI_ADVANCED_OPTIONS="Papildus parametri"
GUI_ADVANCED_BASEDIR="Bāzes direktorija"
GUI_ADVANCED_BINDIR="Bin direktorija"
GUI_ADVANCED_DOWNLOADDIR="Lejupielādes direktorija"
GUI_ADVANCED_WGETFLAGS="Wget parametri"
GUI_CANCEL_INSTALL="Instalācija atcelta"
GUI_OK="Labi"
GUI_CANCEL="Atcelt"
GUI_CLOSE="Aizvērt"

View File

@ -5,7 +5,7 @@ MSG_DOWNLOADING="Baixando tudo que precisamos"
MSG_INSTALLING="Instalando"
MSG_INSTALLING_FLASH="Instalando o Flash Player 9"
MSG_INSTALLATION_OPTIONS="O IEs4Linux irá:"
MSG_OPTION_INSTALL_IES="Instalar as diferentes versões do Internet Explorer:"
MSG_OPTION_INSTALL_IES="Instalar Internet Explorer:"
MSG_OPTION_INSTALL_FLASH="Instalar o Adobe Flash 9.0"
MSG_OPTION_CREATE_ICONS="Criar ícones na área de trabalho"
MSG_OPTION_BASEDIR="Instalar tudo em:"

View File

@ -1,6 +1,6 @@
TRANSLATION_LOCALE="zhCN"
TRANSLATION_ENCODING="UTF8"
MSG_LANGUAGE="文"
MSG_LANGUAGE="简体中文"
MSG_DOWNLOADING="正在下载所有我们需要的文件"
MSG_INSTALLING="正在安装"
MSG_INSTALLING_FLASH="正在安装Flash Player 9"
@ -29,30 +29,30 @@ MSG_ERROR_INVALIDLOCALE="无效语言! 请再次运行IEs4Linux并选择一个
MSG_WARNING_ROOT="您在使用root帐号! 强烈建议不要这么做! 给IE root权限很不安全.\n我们友好的建议? 请使用普通用户再次运行本程序或者, 更好的做法, 如果可以话, 创建一个独立的用户来专门运行您的IE."
MSG_ERROR_INSTALL_WGET="你需要首先安装wget"
MSG_ERROR_INSTALL_UNZIP="你需要首先安装unzip"
MSG_WARNING_OLDWINE=""
MSG_ERROR_NO_WINEPREFIXCREATE=""
MSG_ERROR_CABEXTRACTING=""
MSG_ERROR_CREATE_FOLDER=""
MSG_ERROR_DOWNLOADING=""
MSG_ERROR_NO_GUI_AVAILABLE=""
MSG_WARNING_OLDWINE="IEs4Linux 2 适用于比较新的Wine版本(0.9.x)。您似乎正在使用一个旧的版本。建议把wine更新到最新版本去winehq.com)。"
MSG_ERROR_NO_WINEPREFIXCREATE="您的wine没有安装wineprefixcreate。可能您正在使用旧版本的Wine。请把它更新到最新版。"
MSG_ERROR_CABEXTRACTING="当使用cabextract解压文件时有一个错误发生。"
MSG_ERROR_CREATE_FOLDER="无法创建文件夹"
MSG_ERROR_DOWNLOADING="下载出错。请重新运行IEs4Linux。毁坏的文件"
MSG_ERROR_NO_GUI_AVAILABLE="没有可用的用户界面。使用命令行ies4linux或者安装pygtk。\n详细内容http://www.tatanka.com.br/ies4linux/page/No_GUI"
MSG_INSTALLATIONS_FINISHED="IEs 4 Linux 安装完成!"
MSG_RUN_IES="要运行IE, 输入:"
GUI_TITLE=""
GUI_INSTALLATION_OPTIONS=""
GUI_IE=""
GUI_EXTRA=""
GUI_INSTALL_IE6=""
GUI_INSTALL_IE55=""
GUI_INSTALL_IE5=""
GUI_INSTALL_FLASH=""
GUI_CREATE_ICONS=""
GUI_LOCALE=""
GUI_ADVANCED_OPTIONS=""
GUI_ADVANCED_BASEDIR=""
GUI_ADVANCED_BINDIR=""
GUI_ADVANCED_DOWNLOADDIR=""
GUI_ADVANCED_WGETFLAGS=""
GUI_CANCEL_INSTALL=""
GUI_TITLE="Internet Explorers for Linux"
GUI_INSTALLATION_OPTIONS="安装选项"
GUI_IE="Internet Explorer"
GUI_EXTRA="额外的"
GUI_INSTALL_IE6="安装Internet Explorer 6.0 SP1"
GUI_INSTALL_IE55="安装Internet Explorer 5.5"
GUI_INSTALL_IE5="安装Internet Explorer 5.01"
GUI_INSTALL_FLASH="安装Adobe Flash player 9"
GUI_CREATE_ICONS="创建桌面图标"
GUI_LOCALE="本地化"
GUI_ADVANCED_OPTIONS="高级选项"
GUI_ADVANCED_BASEDIR="Base目录"
GUI_ADVANCED_BINDIR="Bin目录"
GUI_ADVANCED_DOWNLOADDIR="下载目录"
GUI_ADVANCED_WGETFLAGS="Wget标志"
GUI_CANCEL_INSTALL="用户取消了安装"
GUI_OK="确认"
GUI_CANCEL="取消"
GUI_CLOSE="关闭"

View File

@ -2,22 +2,27 @@
# All functions *should* be declared using 'function' keyword.
# All global variables used by functions should have function name in their name.
# DEBUG MODULE ################################################################
# Print a message if debug is on
# $* Message to be printed
function debug() {
function debug {
[ "$DEBUG" = "true" ] && echo "DEBUG: $*"
}
# Pipe to read messages and print them if debug is on
function debugPipe() {
function debugPipe {
while read line; do
debug $line
done
}
# DOWNLOAD MODULE #############################################################
# Download something
# $1 url do be downloaded
function download() {
function download {
local URL=$1
local FILENAME=$(echo $URL | sed -e "s/.*\///")
local DIR=$(echo $URL | grep $URL_IE6_CABS | sed -e "s/.*W98NT42KMeXP\//ie6\//;s/\/[^\/]*$/\//")
@ -34,7 +39,7 @@ function download() {
printDownloadPercentage $FILENAME 0%
touch "$file"
pid=$(wget -q -b -o /dev/null -t 2 -c $URL $WGETFLAGS -O "$file" | sed -e 's/[^0-9]//g')
pid=$(wget -q -b -o /dev/null $URL $WGETFLAGS -O "$file" | sed -e 's/[^0-9]//g')
while ps --pid $pid &> /dev/null; do
if [ "$correctsize" != "" ];then
du=$(getFileSize "$file")
@ -50,6 +55,7 @@ function download() {
local finalsize=$(getFileSize "$file")
if [ "$finalsize" = 0 ]; then
debug File $FILENAME not found
rm "$file"
return 1
fi
if [ "$finalsize" -lt "$((correctsize + 0))" ]; then
@ -75,8 +81,8 @@ function download() {
# $1 FILENAME
# $2 PERCENTAGE
download_status_bar=0
function printDownloadPercentage(){
export download_status_bar=0
function printDownloadPercentage {
local max=20
echo -n " $1"
local num=0
@ -105,7 +111,7 @@ function printDownloadPercentage(){
# Portable md5 calculator
# $1 file
function getMD5(){
function getMD5 {
if [ `uname` = Linux ] ;then
MD5SUM=$(md5sum "$1")
else # Free BSD
@ -116,7 +122,7 @@ function getMD5(){
# Portable file size calculator
# $1 file name
function getFileSize(){
function getFileSize {
stat '-c' '%s' "$1" 2> '/dev/null' && return 0
ls '--block-size=1' '-l' "$1" &> '/dev/null' && {
@ -137,7 +143,7 @@ function getFileSize(){
# Download something from Evolt, with mirror selection
# $1 Evolt path
function downloadEvolt() {
function downloadEvolt {
local EVOLT_MIRROR1=http://www.mirrorservice.org/sites/browsers.evolt.org/browsers
local EVOLT_MIRROR2=http://planetmirror.com/pub/browsers
local EVOLT_MIRROR3=http://download.mirror.ac.uk/mirror/ftp.evolt.org
@ -153,10 +159,114 @@ function downloadEvolt() {
fi
}
# WINE MODULE #################################################################
# Call wineprefixcreate
function create_wine_prefix {
if which wineprefixcreate &> /dev/null; then
( wineprefixcreate 2>&1 ) | debugPipe
else
error $MSG_ERROR_NO_WINEPREFIXCREATE
fi
}
# Register a dll
# $1 dll to be registered
function register_dll {
debug Registering DLL: $1
(WINEDLLOVERRIDES="regsvr32.exe=b" wine regsvr32 /i "$1" 2>&1) | debugPipe
}
# Add a registry file
# $1 reg file to be registered
function add_registry {
debug Add $1 to registry
(wine regedit "$1" 2>&1) | debugPipe
}
# Process an inf file
# $1 Inf file to process
function run_inf_file {
debug Process INF $1
( wine rundll32 setupapi.dll,InstallHinfSection DefaultInstall 128 "$1" 2>&1) | debugPipe
}
function reboot_wine {
debug Rebooting wine bottle
(wineboot 2>&1) | debugPipe
}
function kill_wineserver {
debug Kill wineserver
( (
wineserver -k || {
killall wine
killall wineserver
}
) 2>&1) | debugPipe
}
function set_wine_prefix {
export WINEPREFIX="$1"
}
# INSTALLER MODULE ############################################################
# Extract a cab file in quiet mode
# (also lower case every file)
function extractCABs {
local tmp="cabextract -Lq"
local num=1
local logfile="$HOME/.ies4linux/tmp/cabextract"
while [ $num -le $# ]; do
tmp="$tmp \"$(eval echo \${$num})\""
num=$((num+1))
done
eval $tmp &> $logfile
if [ $? != 0 ]; then
cat "$logfile" && rm "$logfile"
error $MSG_ERROR_CABEXTRACTING
fi
cat "$logfile" | debugPipe
rm "$logfile"
}
# Generate reg and install it
# $1 ie version
function install_home_page {
local temp="$HOME/.ies4linux/tmp/homepage.reg"
get_start_page $1
cat <<END > "$temp"
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]
"First Home Page"="${START_PAGE}"
"Start Page"="${START_PAGE}"
[HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main]
"Default_Page_URL"="${START_PAGE}"
"Default_Search_URL"="http://www.google.com"
"Search Page"="http://www.google.com"
"Start Page"="${START_PAGE}"
END
add_registry "$temp"
rm "$temp"
}
# $1 ie version
# $2 (optional) firstrun
function get_start_page {
local url="http://www.tatanka.com.br/ies4linux/startpage?lang=$TRANSLATION_LOCALE&ieversion=$1"
if [ "$2" = "firstrun" ]; then
url="$url&firstrun=true"
fi
export START_PAGE="$url"
}
# Create all shortcuts: .ies4linux/bin/$1, bin/$1 and Desktop icon
# $1 excutable name
# $2 IE version
function createShortcuts() {
function createShortcuts {
touch "$BASEDIR/$1/.firstrun"
rm -f "$BASEDIR/bin/$1" "$BINDIR/$1"
get_start_page $1 firstrun
@ -182,139 +292,51 @@ END
chmod +x "$BASEDIR/bin/$1"
ln -sf "$BASEDIR/bin/$1" "$BINDIR/$1"
if [ "$CREATE_ICON" = "1" ]; then
cat << END > "$BASEDIR"/tmp/IE$2.desktop
# Create launcher icon
ICON_FILE="$BASEDIR"/ies4linux-$1.desktop
cat << END > "$ICON_FILE"
[Desktop Entry]
Version=1.0
Exec=$BINDIR/$1
Icon=$BASEDIR/ies4linux.svg
Name=Internet Explorer $2
GenericName=Browser
GenericName=Web Browser
Comment=MSIE $2 by IEs4Linux
Encoding=UTF-8
Terminal=false
Type=Application
Categories=Internet
Categories=Application;Network;
END
if cd ~/Desktop || cd ~/desktop; then
cp "$BASEDIR"/tmp/IE$2.desktop .
fi
# Uses xdg-utils to install icon
[ "$DEBUG" = "true" ] && export XDG_UTILS_DEBUG_LEVEL=1
# Install icon on Desktop
if [ "$CREATE_DESKTOP_ICON" = "1" ]; then
"$IES4LINUX"/lib/xdg-desktop-icon install --novendor "$ICON_FILE"
fi
# Install icon on Menu
if [ "$CREATE_MENU_ICON" = "1" ]; then
"$IES4LINUX"/lib/xdg-desktop-menu install --noupdate --novendor "$ICON_FILE"
fi
}
# Call wineprefixcreate
function create_wine_prefix(){
if which wineprefixcreate &> /dev/null; then
( wineprefixcreate 2>&1 ) | debugPipe
else
error $MSG_ERROR_NO_WINEPREFIXCREATE
fi
}
# Register a dll
# $1 dll to be registered
function register_dll() {
debug Registering DLL: $1
(WINEDLLOVERRIDES="regsvr32.exe=b" wine regsvr32 /i "$1" 2>&1) | debugPipe
}
# Add a registry file
# $1 reg file to be registered
function add_registry() {
debug Add $1 to registry
(wine regedit "$1" 2>&1) | debugPipe
}
# Process an inf file
# $1 Inf file to process
function run_inf_file(){
debug Process INF $1
( wine rundll32 setupapi.dll,InstallHinfSection DefaultInstall 128 "$1" 2>&1) | debugPipe
}
# Call wineboot
function reboot_wine() {
(wineboot 2>&1) | debugPipe
}
# Kill Wine Server
function kill_wineserver() {
debug Kill wineserver
( (
wineserver -k || {
killall wine
killall wineserver
}
) 2>&1) | debugPipe
}
function set_wine_prefix() {
export WINEPREFIX="$1"
}
function clean_tmp() {
function clean_tmp {
rm -rf "$BASEDIR"/tmp/*
}
# Extract a cab file in quiet mode
# (also lower case every file)
function extractCABs() {
local tmp="cabextract -Lq"
local num=1
local logfile=$(create_temp_file)
while [ $num -le $# ]; do
tmp="$tmp \"$(eval echo \${$num})\""
num=$((num+1))
done
eval $tmp &> $logfile
if [ $? != 0 ]; then
cat "$logfile" && rm "$logfile"
error $MSG_ERROR_CABEXTRACTING
fi
cat "$logfile" | debugPipe
rm "$logfile"
# Portable creation of temporary file
function create_temp_file {
mktemp 2> /dev/null && return 0
tempfile 2> /dev/null && return 0
return 1
}
# Generate reg and install it
# $1 ie version
function install_home_page(){
local temp=$(create_temp_file)
get_start_page $1
cat <<END > "$temp"
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]
"First Home Page"="${START_PAGE}"
"Start Page"="${START_PAGE}"
END
add_registry "$temp"
rm "$temp"
}
# $1 ie version
# $2 (optional) firstrun
function get_start_page(){
local url="http://www.tatanka.com.br/ies4linux/startpage?lang=$TRANSLATION_LOCALE&ieversion=$1"
if [ "$2" = "firstrun" ]; then
url="$url&firstrun=true"
fi
export START_PAGE="$url"
}
# Determine how to run a specific IE
# $1 IE Version
function run_ie(){
cd
if which ie$1 | grep -q "$BINDIR/ie$1" 2> /dev/null; then
echo " ie$1"
else
local l=$BINDIR/ie$1
echo " ${l//\/\//\/}"
fi
}
# OUTPUT MODULE ###############################################################
# Functions to print things
function warning() {
function warning {
if [ $NOCOLOR = 0 ]; then
echo -en "\E[31;1m";
echo -e $*
@ -324,24 +346,24 @@ function warning() {
echo "!! $*"
fi
}
function error() {
function error {
warning $*
exit 1
}
function section() {
function section {
if [ $NOCOLOR = 0 ]; then
echo -e "\E[1m$*"; tput sgr0
else
echo "# $*"
fi
}
function subsection() {
function subsection {
echo " $*"
}
function subsubsection() {
function subsubsection {
echo " $*"
}
function ok() {
function ok {
if [ $NOCOLOR = 0 ]; then
echo -e "\E[34;1m[ OK ]\n"; tput sgr0
else
@ -349,19 +371,38 @@ function ok() {
fi
}
# Portable creation of temporary file
function create_temp_file(){
mktemp 2> /dev/null && return 0
tempfile 2> /dev/null && return 0
return 1
# MISCELANEOUS MODULE #########################################################
# Loads any file with environment variables
# $1 the file to load
function load_variables_file {
grep -v -e "^#" -e "^[[:space:]]*$" "$1" | sed -e 's/^/export /g;s/$/;/g' 2> /dev/null
}
function load_default_language {
eval $(load_variables_file "$MESSAGE_FILE_FULLPATH")
}
# Determine how to run a specific IE
# $1 IE Version
function run_ie {
cd
if which ie$1 | grep -q "$BINDIR/ie$1" 2> /dev/null; then
echo " ie$1"
else
local l=$BINDIR/ie$1
echo " ${l//\/\//\/}"
fi
}
#Used by Hebrew locale
function bidi() {
function bidi {
echo "$1" | fribidi --rtl | perl -e 'while(<>){ print "$1\\n" if /(.*)/;}'
}
# Export all functions so subshell can access them
for fn in $(grep "^function" "$IES4LINUX"/lib/functions.sh | sed -e 's/function[[:space:]]*//g;s/[[:space:]]*(.*$//g'); do
###############################################################################
# Export all functions so subshells can access them
for fn in $(grep "^function" "$IES4LINUX"/lib/functions.sh | sed -e 's/function[[:space:]]*//g;s/{//g'); do
export -f $fn
done

66
lib/help.sh Normal file
View File

@ -0,0 +1,66 @@
# Displays IEs4Linux help
# $1 mode: could be emtpty or "full"
# Display common options
cat <<__END_HELP__
Usage: ./ies4linux [OPTIONS]
This script downloads and automagically installs multiple versions of
Microsoft Internet Explorer on Wine.
Without any option, IEs4Linux will:
- install IE6
- install Adobe Flash 9
- create icons on Desktop and Menu
- use folder: $BASEDIR
You can configure other things:
--install-ie55 Install IE5.5 in BASEDIR/ie55/
--install-ie5 Install IE5 in BASEDIR/ie5/
--no-flash Don't install Adobe Flash Player 9
--no-ie6 Don't install IE 6
--no-desktop-icon Don't create an icon in Desktop
--no-menu-icon Don't insert icon on Menu
--full-help Display all possible options
__END_HELP__
if [ "$1" = "full" ]; then
cat <<__END_HELP__
Configurations:
--locale LOCALE The locale for the installation [$GUESSED_IE6_LOCALE]
--wget-flags FLAGS Extra flags for wget [$WGETFLAGS]
--list-locales Display all possible locales and exit
Directories:
--basedir BASEDIR Base location for installs [$BASEDIR]
--bindir BINDIR Location of your bin folder [$BINDIR]
--downloaddir DLDIR Where downloads will go [BASEDIR/$DOWNLOADDIR_SUFFIX]
Other options:
--no-gui Don't show gui, perform an automatic installation
--gui gtk|kommander Force use of a specific user interface
--no-color Don't show colors
--debug Run in DEBUG mode
--help / -h Display help with simple options
Beta options:
--beta-install-ie7 Install Internet Explorer 7 (BETA INSTALLER!)
IEs4Linux can do other useful (?!) things:
--install-ie1 Install IE 1.0
--install-ie15 Install IE 1.5
--install-ie2 Install IE 2.0
__END_HELP__
fi

View File

@ -25,10 +25,18 @@
# - Install IE 2.0
# - Show user how to run installed IEs
# Inialitazion module #########################################################
# See if your chose at least one IE
if [ "$((INSTALLIE6+INSTALLIE55+INSTALLIE5+INSTALLIE7+INSTALLIE1+INSTALLIE2+INSTALLIE15))" = "0" ]; then
exit 0
fi
# Show what we will do
section $MSG_INSTALLATION_OPTIONS
IES="6.0"
IES=""
[ "$INSTALLIE6" = "1" ] && IES="6.0"
[ "$INSTALLIE55" = "1" ] && IES="$IES, 5.5"
[ "$INSTALLIE5" = "1" ] && IES="$IES, 5.01"
[ "$INSTALLIE1" = "1" ] && IES="$IES, 1.0"
@ -50,34 +58,34 @@ mkdir -p "$BASEDIR/tmp/" || error $MSG_ERROR_CREATE_FOLDER $BASEDIR
mkdir -p "$DOWNLOADDIR" || error $MSG_ERROR_CREATE_FOLDER $DOWNLOADDIR
cp "$IES4LINUX/lib/ies4linux.svg" "$BASEDIR"
# Download module #############################################################
# Download all files first
section $MSG_DOWNLOADING
# Prepare downloads
touch "$DOWNLOADDIR/files"
[ "$INSTALLIE6" = "1" ] && {
URL_IE6_CABS=http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP
IE6_CABS="ADVAUTH CRLUPD HHUPD IEDOM IE_EXTRA IE_S1 IE_S2 IE_S5 IE_S4 IE_S3 IE_S6 SCR56EN SETUPW95 FONTCORE FONTSUP VGX"
# other possible cabs BRANDING GSETUP95 IEEXINST README SWFLASH
# Basic downloads for IE6
URL_IE6_CABS=http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP
IE6_CABS="ADVAUTH CRLUPD HHUPD IEDOM IE_EXTRA IE_S1 IE_S2 IE_S5 IE_S4 IE_S3 IE_S6 SCR56EN SETUPW95 FONTCORE FONTSUP VGX"
# other possible cabs BRANDING GSETUP95 IEEXINST README SWFLASH
download http://download.microsoft.com/download/d/1/3/d13cd456-f0cf-4fb2-a17f-20afc79f8a51/DCOM98.EXE
download http://activex.microsoft.com/controls/vc/mfc42.cab
download http://download.microsoft.com/download/win98SE/Update/5072/W98/EN-US/249973USA8.exe
download http://download.microsoft.com/download/d/1/3/d13cd456-f0cf-4fb2-a17f-20afc79f8a51/DCOM98.EXE
download http://activex.microsoft.com/controls/vc/mfc42.cab
download http://download.microsoft.com/download/win98SE/Update/5072/W98/EN-US/249973USA8.exe
mkdir -p "$DOWNLOADDIR/ie6/EN-US"
mkdir -p "$DOWNLOADDIR/ie6/$IE6_LOCALE"
mkdir -p "$DOWNLOADDIR/ie6/EN-US"
mkdir -p "$DOWNLOADDIR/ie6/$IE6_LOCALE"
for cab in $IE6_CABS; do
# SCR56EN is always downloaded from EN-US
if [ "$cab" = "SCR56EN" ] ; then
URL="$URL_IE6_CABS/EN-US/SCR56EN.CAB"
else
URL="$URL_IE6_CABS/$IE6_LOCALE/$cab.CAB"
fi
download "$URL"
done
}
for cab in $IE6_CABS; do
# SCR56EN is always downloaded from EN-US
if [ "$cab" = "SCR56EN" ] ; then
URL="$URL_IE6_CABS/EN-US/SCR56EN.CAB"
else
URL="$URL_IE6_CABS/$IE6_LOCALE/$cab.CAB"
fi
download "$URL"
done
[ "$INSTALLIE55" = "1" ] && downloadEvolt ie/32bit/standalone/ie55sp2_9x.zip
[ "$INSTALLIE5" = "1" ] && downloadEvolt ie/32bit/standalone/ie501sp2_9x.zip
[ "$INSTALLFLASH" = "1" ] && {
@ -95,68 +103,73 @@ section $MSG_DOWNLOADING
[ "$INSTALLIE3" = "1" ] && downloadEvolt ie/32bit/3.02/win95typical/msie302r.exe
ok
# IE6 Installation module #####################################################
# IE6 Installation Process
[ "$INSTALLIE6" = "1" ] && {
if [ "$INSTALLIE6" = "1" ]; then
section $MSG_INSTALLING IE 6
else
section $MSG_INSTALLING IE
fi
subsection $MSG_INITIALIZING
clean_tmp
set_wine_prefix "$BASEDIR/ie6/"
rm -rf "$BASEDIR/ie6"
subsection $MSG_CREATING_PREFIX
create_wine_prefix
# Discover Wine folders
DRIVEC=drive_c
WINDOWS=Windows
SYSTEM=system
SYSTEM32=System32
FONTS=Fonts
INF=Inf
COMMAND=Command
if [ -d "$BASEDIR/ie6/fake_windows" ]; then DRIVEC=fake_windows; fi
if [ -d "$BASEDIR/ie6/$DRIVEC/windows" ]; then WINDOWS=windows; fi
if [ -d "$BASEDIR/ie6/$DRIVEC/$WINDOWS/system32" ]; then SYSTEM32=system32; fi
if [ -d "$BASEDIR/ie6/$DRIVEC/$WINDOWS/fonts" ]; then FONTS=fonts; fi
if [ -d "$BASEDIR/ie6/$DRIVEC/$WINDOWS/inf" ]; then INF=inf;fi
if [ -d "$BASEDIR/ie6/$DRIVEC/$WINDOWS/command" ]; then COMMAND=command;fi
export DRIVEC WINDOWS SYSTEM FONTS INF COMMAND
# symlinking system to system32
if [ -d "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$SYSTEM32" ]; then
rm -rf "$BASEDIR/ie6/$DRIVEC/$WINDOWS/"{S,s}ystem
cd "$BASEDIR/ie6/$DRIVEC/$WINDOWS/"
ln -s "$SYSTEM32" "system"
fi
subsection $MSG_EXTRACTING_CABS
clean_tmp
cd "$BASEDIR/tmp"
extractCABs "$DOWNLOADDIR/ie6/$IE6_LOCALE"/{ADVAUTH,CRLUPD,HHUPD,IEDOM,IE_EXTRA,IE_S*,SETUPW95,VGX}.CAB
extractCABs "$DOWNLOADDIR/ie6/EN-US/SCR56EN.CAB"
extractCABs ie_1.cab
rm -f *cab regsvr32.exe setup*
subsection $MSG_INSTALLING IE 6
mv cscript.exe "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$COMMAND/"
mv wscript.exe "$BASEDIR/ie6/$DRIVEC/$WINDOWS/"
subsection $MSG_INITIALIZING
clean_tmp
set_wine_prefix "$BASEDIR/ie6/"
rm -rf "$BASEDIR/ie6"
subsection $MSG_CREATING_PREFIX
create_wine_prefix
mv sch128c.dll "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$SYSTEM/schannel.dll"
mkdir -p "$BASEDIR/ie6/$DRIVEC/Program Files/Internet Explorer"
mv iexplore.exe "$BASEDIR/ie6/$DRIVEC/Program Files/Internet Explorer/iexplore.exe"
# Discover Wine folders
DRIVEC=drive_c
WINDOWS=Windows
SYSTEM=system
SYSTEM32=System32
FONTS=Fonts
INF=Inf
COMMAND=Command
if [ -d "$BASEDIR/ie6/fake_windows" ]; then DRIVEC=fake_windows; fi
if [ -d "$BASEDIR/ie6/$DRIVEC/windows" ]; then WINDOWS=windows; fi
if [ -d "$BASEDIR/ie6/$DRIVEC/$WINDOWS/system32" ]; then SYSTEM32=system32; fi
if [ -d "$BASEDIR/ie6/$DRIVEC/$WINDOWS/fonts" ]; then FONTS=fonts; fi
if [ -d "$BASEDIR/ie6/$DRIVEC/$WINDOWS/inf" ]; then INF=inf;fi
if [ -d "$BASEDIR/ie6/$DRIVEC/$WINDOWS/command" ]; then COMMAND=command;fi
export DRIVEC WINDOWS SYSTEM FONTS INF COMMAND
mkdir -p "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$SYSTEM/sfp/ie/"
mv vgx.cat "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$SYSTEM/sfp/ie/"
mv -f * "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$SYSTEM/"
clean_tmp
# symlinking system to system32
if [ -d "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$SYSTEM32" ]; then
rm -rf "$BASEDIR/ie6/$DRIVEC/$WINDOWS/"{S,s}ystem
cd "$BASEDIR/ie6/$DRIVEC/$WINDOWS/"
ln -s "$SYSTEM32" "system"
fi
subsection $MSG_INSTALLING DCOM98
extractCABs -d "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$SYSTEM/" "$DOWNLOADDIR/DCOM98.EXE"
mv "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$SYSTEM/rpcltscm.dll" "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$SYSTEM/rpcltspx.dll"
mv "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$SYSTEM/dcom98.inf" "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$INF/"
subsection $MSG_EXTRACTING_CABS
clean_tmp
cd "$BASEDIR/tmp"
extractCABs "$DOWNLOADDIR/ie6/$IE6_LOCALE"/{ADVAUTH,CRLUPD,HHUPD,IEDOM,IE_EXTRA,IE_S*,SETUPW95,VGX}.CAB
extractCABs "$DOWNLOADDIR/ie6/EN-US/SCR56EN.CAB"
extractCABs ie_1.cab
rm -f *cab regsvr32.exe setup*
subsection $MSG_INSTALLING IE 6
mv cscript.exe "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$COMMAND/"
mv wscript.exe "$BASEDIR/ie6/$DRIVEC/$WINDOWS/"
mv sch128c.dll "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$SYSTEM/schannel.dll"
mkdir -p "$BASEDIR/ie6/$DRIVEC/Program Files/Internet Explorer"
mv iexplore.exe "$BASEDIR/ie6/$DRIVEC/Program Files/Internet Explorer/iexplore.exe"
mkdir -p "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$SYSTEM/sfp/ie/"
mv vgx.cat "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$SYSTEM/sfp/ie/"
mv -f * "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$SYSTEM/"
clean_tmp
subsection $MSG_INSTALLING DCOM98
extractCABs -d "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$SYSTEM/" "$DOWNLOADDIR/DCOM98.EXE"
mv "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$SYSTEM/rpcltscm.dll" "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$SYSTEM/rpcltspx.dll"
mv "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$SYSTEM/dcom98.inf" "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$INF/"
# This is very slow and not add anything useful
# This is very slow and do not add anything useful
#
# subsection $MSG_PROCESSING_INF
# mv *.inf "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$INF/"
@ -175,42 +188,42 @@ ok
# register_dll "C:\\Windows\\System\\$dll"
# done
subsection $MSG_INSTALLING_FONTS
clean_tmp
cd "$BASEDIR/tmp"
extractCABs -F "*TTF" "$DOWNLOADDIR/ie6/$IE6_LOCALE/"/FONT*CAB
mv *ttf "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$FONTS/"
clean_tmp
subsection $MSG_INSTALLING_FONTS
clean_tmp
cd "$BASEDIR/tmp"
extractCABs -F "*TTF" "$DOWNLOADDIR/ie6/$IE6_LOCALE/"/FONT*CAB
mv *ttf "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$FONTS/"
clean_tmp
subsection $MSG_INSTALLING ActiveX MFC42
extractCABs "$DOWNLOADDIR/mfc42.cab"
extractCABs mfc42.exe
mv *.inf "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$INF/"
mv {olepro32,msvcrt,mfc42}.dll "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$SYSTEM/"
register_dll "C:\\Windows\\System\\olepro32.dll"
register_dll "C:\\Windows\\System\\mfc42.dll"
clean_tmp
subsection $MSG_INSTALLING ActiveX MFC42
extractCABs "$DOWNLOADDIR/mfc42.cab"
extractCABs mfc42.exe
mv *.inf "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$INF/"
mv {olepro32,msvcrt,mfc42}.dll "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$SYSTEM/"
register_dll "C:\\Windows\\System\\olepro32.dll"
register_dll "C:\\Windows\\System\\mfc42.dll"
clean_tmp
subsection $MSG_INSTALLING RICHED20
extractCABs -F ver1200.exe "$DOWNLOADDIR/249973USA8.exe"
extractCABs "$BASEDIR/tmp/ver1200.exe"
mv riched20.120 "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$SYSTEM/riched20.dll"
mv riched32.dll usp10.dll "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$SYSTEM/"
clean_tmp
subsection $MSG_INSTALLING_REGISTRY
add_registry "$IES4LINUX"/winereg/ie6.reg
install_home_page ie6
subsection $MSG_INSTALLING RICHED20
extractCABs -F ver1200.exe "$DOWNLOADDIR/249973USA8.exe"
extractCABs "$BASEDIR/tmp/ver1200.exe"
mv riched20.120 "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$SYSTEM/riched20.dll"
mv riched32.dll usp10.dll "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$SYSTEM/"
clean_tmp
subsection $MSG_FINALIZING
reboot_wine
createShortcuts ie6 6.0
chmod -R u+rwx "$BASEDIR/ie6"
ok
}
subsection $MSG_INSTALLING_REGISTRY
add_registry "$IES4LINUX"/winereg/ie6.reg
install_home_page ie6
subsection $MSG_FINALIZING
reboot_wine
[ "$INSTALLIE6" = "1" ] && createShortcuts ie6 6.0
chmod -R u+rwx "$BASEDIR/ie6"
ok
# Flash Installation module ###################################################
# Flash Installation Process
[ "$INSTALLFLASH" = "1" ] && {
section $MSG_INSTALLING_FLASH
clean_tmp
@ -231,7 +244,8 @@ ok
ok
}
# IE5.5 Installation Process
# IE5.5 Installation module ###################################################
[ "$INSTALLIE55" = "1" ] && {
section $MSG_INSTALLING IE 5.5
kill_wineserver
@ -261,7 +275,8 @@ ok
ok
}
# IE5 Installation Process
# IE5.0 Installation module ###################################################
[ "$INSTALLIE5" = "1" ] && {
section $MSG_INSTALLING IE 5.0
kill_wineserver
@ -291,10 +306,12 @@ ok
ok
}
# IE7.0 Installation module ###################################################
# ATTENTION: IES4LINUX IE7 SUPPORT IS PRE-PRE-ALPHA!
# USE ONLY TO HELP ME TESTING THIS FEATURE
[ "$INSTALLIE7" = "1" ] && {
section $MSG_INSTALLING IE 7 ALPHA
section "$MSG_INSTALLING IE 7 (beta)"
kill_wineserver
set_wine_prefix "$BASEDIR/ie7/"
clean_tmp
@ -348,7 +365,7 @@ ok
install_home_page ie7
subsection $MSG_FINALIZING
wineboot
reboot_wine
touch "$BASEDIR/ie7/.firstrun"
createShortcuts ie7 7.0
chmod -R u+rwx "$BASEDIR/ie7"
@ -356,7 +373,8 @@ ok
ok
}
# Some Easter Eggs
# Easter eggs module ##########################################################
[ "$INSTALLIE1" = "1" ] && {
section $MSG_INSTALLING IE 1.0
kill_wineserver
@ -436,10 +454,20 @@ ok
ok
}
# After Installation module ###################################################
# Remove IE6 if user do not want it
if [ "$INSTALLIE6" = "0" ]; then
rm -rf "$BASEDIR/ie6"
fi
# Post install
kill_wineserver
rm -rf "$BASEDIR/tmp"
# Updates user menu
"$IES4LINUX"/lib/xdg-desktop-menu forceupdate
section $MSG_INSTALLATIONS_FINISHED
# Show user how to run her IEs

46
lib/uninstall.sh Normal file
View File

@ -0,0 +1,46 @@
#!/usr/bin/env bash
#
# IEs 4 Linux
# Developed by: Sergio Luis Lopes Junior <slopes at gmail dot com>
# Project site: http://tatanka.com.br/ies4linux
# Released under the GNU GPL. See LICENSE for more information
#
# uninstall.sh
# Removes a previous IEs4Linux installation
# Checks for installation data
if [ ! -f "$HOME"/.ies4linux/install.data ]; then
error $MSG_ERROR_NO_INSTALL_DATA
fi
# Checks for some variables
if [ -z "$BASEDIR" ] || [ -z "$BINDIR" ] || [ -z "$IES4LINUX" ] || [ -z "$DOWNLOADDIR" ]; then
error Environment not configured
fi
# Performs the uninstalling
section $MSG_UNINSTALLING
subsection $MSG_REMOVING_ICONS
cd "$BASEDIR"
for icon in *.desktop; do
"$IES4LINUX"/lib/xdg-desktop-icon uninstall --novendor "$icon"
"$IES4LINUX"/lib/xdg-desktop-menu uninstall --noupdate --novendor "$icon"
done
"$IES4LINUX"/lib/xdg-desktop-menu forceupdate
subsection $MSG_REMOVING_BIN
cd "$BASEDIR"/bin
for exe in ie*; do
rm -f "$BINDIR"/$exe
done
subsection $MSG_REMOVING_DOWNLOADS
cd
rm -rf "$DOWNLOADDIR"
subsection $MSG_REMOVING_FILES
cd
rm -rf "$BASEDIR"
rm -rf "$HOME/.ies4linux"
ok

376
lib/xdg-desktop-icon Executable file
View File

@ -0,0 +1,376 @@
#!/bin/sh
#---------------------------------------------
# xdg-desktop-icon
#
# Utility script to install desktop items on a Linux desktop.
#
# Refer to the usage() function below for usage.
#
# Copyright 2006, Kevin Krammer <kevin.krammer@gmx.at>
# Copyright 2006, Jeremy White <jwhite@codeweavers.com>
#
# Modified by Sérgio Lopes in 2007 for use on IEs4Linux
#
# LICENSE:
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.
#
#---------------------------------------------
#@xdg-utils-common@
#----------------------------------------------------------------------------
# Common utility functions included in all XDG wrapper scripts
#----------------------------------------------------------------------------
DEBUG()
{
[ -z "${XDG_UTILS_DEBUG_LEVEL}" ] && return 0;
[ ${XDG_UTILS_DEBUG_LEVEL} -lt $1 ] && return 0;
shift
echo "$@" >&2
}
#-------------------------------------------------------------
# Exit script on successfully completing the desired operation
exit_success()
{
if [ $# -gt 0 ]; then
echo "$@"
echo
fi
exit 0
}
#-----------------------------------------
# Exit script on malformed arguments, not enough arguments
# or missing required option.
# prints usage information
exit_failure_syntax()
{
if [ $# -gt 0 ]; then
echo "xdg-desktop-icon: $@" >&2
echo "Try 'xdg-desktop-icon --help' for more information." >&2
else
usage
echo "Use 'man xdg-desktop-icon' or 'xdg-desktop-icon --manual' for additional info."
fi
exit 1
}
#-------------------------------------------------------------
# Exit script on missing file specified on command line
exit_failure_file_missing()
{
if [ $# -gt 0 ]; then
echo "xdg-desktop-icon: $@" >&2
fi
exit 2
}
#-------------------------------------------------------------
# Exit script on failure to locate necessary tool applications
exit_failure_operation_impossible()
{
if [ $# -gt 0 ]; then
echo "xdg-desktop-icon: $@" >&2
fi
exit 3
}
#-------------------------------------------------------------
# Exit script on failure returned by a tool application
exit_failure_operation_failed()
{
if [ $# -gt 0 ]; then
echo "xdg-desktop-icon: $@" >&2
fi
exit 4
}
#------------------------------------------------------------
# Exit script on insufficient permission to read a specified file
exit_failure_file_permission_read()
{
if [ $# -gt 0 ]; then
echo "xdg-desktop-icon: $@" >&2
fi
exit 5
}
#------------------------------------------------------------
# Exit script on insufficient permission to read a specified file
exit_failure_file_permission_write()
{
if [ $# -gt 0 ]; then
echo "xdg-desktop-icon: $@" >&2
fi
exit 6
}
check_input_file()
{
if [ ! -e "$1" ]; then
exit_failure_file_missing "file '$1' does not exist"
fi
if [ ! -r "$1" ]; then
exit_failure_file_permission_read "no permission to read file '$1'"
fi
}
check_vendor_prefix()
{
file_label="$2"
[ -n "$file_label" ] || file_label="filename"
file=`basename "$1"`
case "$file" in
[a-zA-Z]*-*)
return
;;
esac
echo "xdg-desktop-icon: $file_label '$file' does not have a proper vendor prefix" >&2
echo 'A vendor prefix consists of alpha characters ([a-zA-Z]) and is terminated' >&2
echo 'with a dash ("-"). An example '"$file_label"' is '"'example-$file'" >&2
echo "Use --novendor to override or 'xdg-desktop-icon --manual' for additional info." >&2
exit 1
}
check_output_file()
{
# if the file exists, check if it is writeable
# if it does not exists, check if we are allowed to write on the directory
if [ -e "$1" ]; then
if [ ! -w "$1" ]; then
exit_failure_file_permission_write "no permission to write to file '$1'"
fi
else
DIR=`dirname "$1"`
if [ ! -w "$DIR" -o ! -x "$DIR" ]; then
exit_failure_file_permission_write "no permission to create file '$1'"
fi
fi
}
#----------------------------------------
# Checks for shared commands, e.g. --help
check_common_commands()
{
while [ $# -gt 0 ] ; do
parm="$1"
shift
case "$parm" in
--help)
usage
echo "Use 'man xdg-desktop-icon' or 'xdg-desktop-icon --manual' for additional info."
exit_success
;;
--manual)
manualpage
exit_success
;;
--version)
echo "xdg-desktop-icon 1.0.1"
exit_success
;;
esac
done
}
check_common_commands "$@"
[ -z "${XDG_UTILS_DEBUG_LEVEL}" ] && unset XDG_UTILS_DEBUG_LEVEL;
if [ ${XDG_UTILS_DEBUG_LEVEL-0} -lt 1 ]; then
# Be silent
xdg_redirect_output=" > /dev/null 2> /dev/null"
else
# All output to stderr
xdg_redirect_output=" >&2"
fi
#--------------------------------------
# Checks for known desktop environments
# set variable DE to the desktop environments name, lowercase
detectDE()
{
if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde;
elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;
elif xprop -root _DT_SAVE_MODE | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;
fi
}
#----------------------------------------------------------------------------
# kfmclient exec/openURL can give bogus exit value in KDE <= 3.5.4
# It also always returns 1 in KDE 3.4 and earlier
# Simply return 0 in such case
kfmclient_fix_exit_code()
{
version=`kde-config --version 2>/dev/null | grep KDE`
major=`echo $version | sed 's/KDE: \([0-9]\).*/\1/'`
minor=`echo $version | sed 's/KDE: [0-9]*\.\([0-9]\).*/\1/'`
release=`echo $version | sed 's/KDE: [0-9]*\.[0-9]*\.\([0-9]\).*/\1/'`
test "$major" -gt 3 && return $1
test "$minor" -gt 5 && return $1
test "$release" -gt 4 && return $1
return 0
}
[ x"$1" != x"" ] || exit_failure_syntax
action=
desktop_file=
case $1 in
install)
action=install
;;
uninstall)
action=uninstall
;;
*)
exit_failure_syntax "unknown command '$1'"
;;
esac
shift
vendor=true
while [ $# -gt 0 ] ; do
parm=$1
shift
case $parm in
--novendor)
vendor=false
;;
-*)
exit_failure_syntax "unexpected option '$parm'"
;;
*)
if [ -n "$desktop_file" ] ; then
exit_failure_syntax "unexpected argument '$parm'"
fi
if [ "$action" = "install" ] ; then
check_input_file "$parm"
fi
desktop_file=$parm
;;
esac
done
# Shouldn't happen
if [ -z "$action" ] ; then
exit_failure_syntax "command argument missing"
fi
if [ -z "$desktop_file" ] ; then
exit_failure_syntax "FILE argument missing"
fi
filetype=
case $desktop_file in
*.desktop)
filetype=desktop
if [ "$vendor" = "true" -a "$action" = "install" ] ; then
check_vendor_prefix "$desktop_file"
fi
;;
*)
filetype=other
;;
esac
my_umask=077
desktop_dir="$HOME/Desktop"
desktop_dir_kde=`kde-config --userpath desktop 2> /dev/null`
if gconftool-2 -g /apps/nautilus/preferences/desktop_is_home_dir 2> /dev/null | grep true > /dev/null; then
desktop_dir_gnome="$HOME"
# Don't create $HOME/Desktop if it doesn't exist
[ -w $desktop_dir ] || desktop_dir=
fi
if [ -n "$desktop_dir_kde" ]; then
if [ ! -d "$desktop_dir_kde" ]; then
save_umask=`umask`
umask $my_umask
mkdir -p $desktop_dir_kde
umask $save_umask
fi
# Is the KDE desktop dir != $HOME/Desktop ?
if [ x`readlink -f "$desktop_dir"` != x`readlink -f "$desktop_dir_kde"` ]; then
# If so, don't create $HOME/Desktop if it doesn't exist
[ -w $desktop_dir ] || desktop_dir=
else
desktop_dir_kde=
fi
fi
desktop_dir="$desktop_dir $desktop_dir_kde $desktop_dir_gnome"
basefile=`basename $desktop_file`
DEBUG 1 "$action $desktop_file in $desktop_dir"
case $action in
install)
save_umask=`umask`
umask $my_umask
for x in $desktop_dir ; do
mkdir -p $x
eval 'cp $desktop_file $x/$basefile'$xdg_redirect_output
done
umask $save_umask
;;
uninstall)
for x in $desktop_dir ; do
rm -f $x/$basefile
done
;;
esac
exit_success

891
lib/xdg-desktop-menu Executable file
View File

@ -0,0 +1,891 @@
#!/bin/sh
#---------------------------------------------
# xdg-desktop-menu
#
# Utility script to install menu items on a Linux desktop.
# Refer to the usage() function below for usage.
#
# Copyright 2006, Kevin Krammer <kevin.krammer@gmx.at>
# Copyright 2006, Jeremy White <jwhite@codeweavers.com>
#
# Modified by Sérgio Lopes in 2007 for use on IEs4Linux
#
# LICENSE:
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.
#
#---------------------------------------------
#@xdg-utils-common@
#----------------------------------------------------------------------------
# Common utility functions included in all XDG wrapper scripts
#----------------------------------------------------------------------------
DEBUG()
{
[ -z "${XDG_UTILS_DEBUG_LEVEL}" ] && return 0;
[ ${XDG_UTILS_DEBUG_LEVEL} -lt $1 ] && return 0;
shift
echo "$@" >&2
}
#-------------------------------------------------------------
# Exit script on successfully completing the desired operation
exit_success()
{
if [ $# -gt 0 ]; then
echo "$@"
echo
fi
exit 0
}
#-----------------------------------------
# Exit script on malformed arguments, not enough arguments
# or missing required option.
# prints usage information
exit_failure_syntax()
{
if [ $# -gt 0 ]; then
echo "xdg-desktop-menu: $@" >&2
echo "Try 'xdg-desktop-menu --help' for more information." >&2
else
usage
echo "Use 'man xdg-desktop-menu' or 'xdg-desktop-menu --manual' for additional info."
fi
exit 1
}
#-------------------------------------------------------------
# Exit script on missing file specified on command line
exit_failure_file_missing()
{
if [ $# -gt 0 ]; then
echo "xdg-desktop-menu: $@" >&2
fi
exit 2
}
#-------------------------------------------------------------
# Exit script on failure to locate necessary tool applications
exit_failure_operation_impossible()
{
if [ $# -gt 0 ]; then
echo "xdg-desktop-menu: $@" >&2
fi
exit 3
}
#-------------------------------------------------------------
# Exit script on failure returned by a tool application
exit_failure_operation_failed()
{
if [ $# -gt 0 ]; then
echo "xdg-desktop-menu: $@" >&2
fi
exit 4
}
#------------------------------------------------------------
# Exit script on insufficient permission to read a specified file
exit_failure_file_permission_read()
{
if [ $# -gt 0 ]; then
echo "xdg-desktop-menu: $@" >&2
fi
exit 5
}
#------------------------------------------------------------
# Exit script on insufficient permission to read a specified file
exit_failure_file_permission_write()
{
if [ $# -gt 0 ]; then
echo "xdg-desktop-menu: $@" >&2
fi
exit 6
}
check_input_file()
{
if [ ! -e "$1" ]; then
exit_failure_file_missing "file '$1' does not exist"
fi
if [ ! -r "$1" ]; then
exit_failure_file_permission_read "no permission to read file '$1'"
fi
}
check_vendor_prefix()
{
file_label="$2"
[ -n "$file_label" ] || file_label="filename"
file=`basename "$1"`
case "$file" in
[a-zA-Z]*-*)
return
;;
esac
echo "xdg-desktop-menu: $file_label '$file' does not have a proper vendor prefix" >&2
echo 'A vendor prefix consists of alpha characters ([a-zA-Z]) and is terminated' >&2
echo 'with a dash ("-"). An example '"$file_label"' is '"'example-$file'" >&2
echo "Use --novendor to override or 'xdg-desktop-menu --manual' for additional info." >&2
exit 1
}
check_output_file()
{
# if the file exists, check if it is writeable
# if it does not exists, check if we are allowed to write on the directory
if [ -e "$1" ]; then
if [ ! -w "$1" ]; then
exit_failure_file_permission_write "no permission to write to file '$1'"
fi
else
DIR=`dirname "$1"`
if [ ! -w "$DIR" -o ! -x "$DIR" ]; then
exit_failure_file_permission_write "no permission to create file '$1'"
fi
fi
}
#----------------------------------------
# Checks for shared commands, e.g. --help
check_common_commands()
{
while [ $# -gt 0 ] ; do
parm="$1"
shift
case "$parm" in
--help)
usage
echo "Use 'man xdg-desktop-menu' or 'xdg-desktop-menu --manual' for additional info."
exit_success
;;
--manual)
manualpage
exit_success
;;
--version)
echo "xdg-desktop-menu 1.0.1"
exit_success
;;
esac
done
}
check_common_commands "$@"
[ -z "${XDG_UTILS_DEBUG_LEVEL}" ] && unset XDG_UTILS_DEBUG_LEVEL;
if [ ${XDG_UTILS_DEBUG_LEVEL-0} -lt 1 ]; then
# Be silent
xdg_redirect_output=" > /dev/null 2> /dev/null"
else
# All output to stderr
xdg_redirect_output=" >&2"
fi
#--------------------------------------
# Checks for known desktop environments
# set variable DE to the desktop environments name, lowercase
detectDE()
{
if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde;
elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;
elif xprop -root _DT_SAVE_MODE | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;
fi
}
#----------------------------------------------------------------------------
# kfmclient exec/openURL can give bogus exit value in KDE <= 3.5.4
# It also always returns 1 in KDE 3.4 and earlier
# Simply return 0 in such case
kfmclient_fix_exit_code()
{
version=`kde-config --version 2>/dev/null | grep KDE`
major=`echo $version | sed 's/KDE: \([0-9]\).*/\1/'`
minor=`echo $version | sed 's/KDE: [0-9]*\.\([0-9]\).*/\1/'`
release=`echo $version | sed 's/KDE: [0-9]*\.[0-9]*\.\([0-9]\).*/\1/'`
test "$major" -gt 3 && return $1
test "$minor" -gt 5 && return $1
test "$release" -gt 4 && return $1
return 0
}
update_desktop_database()
{
# echo Update desktop database: $mode
if [ "$mode" = "system" ] ; then
for x in `echo $PATH | sed 's/:/ /g'` /opt/gnome/bin; do
if [ -x $x/update-desktop-database ] ; then
DEBUG 1 "Running $x/update-desktop-database"
eval '$x/update-desktop-database'$xdg_redirect_output
return
fi
done
fi
}
fixup_mandriva_categories()
{
DEBUG 1 "fixup_mandriva_categories $1"
awk '
BEGIN {
xlat["AudioVideo"]="X-Mandrakelinux-Multimedia;X-MandrivaLinux-Multimedia"
xlat["Development"]="X-Mandrakelinux-MoreApplications-Development;X-MandrivaLinux-MoreApplications-Development"
xlat["Education"]="X-Mandrakelinux-MoreApplications;X-MandrivaLinux-MoreApplications-Education"
xlat["Game"]="X-Mandrakelinux-MoreApplications;X-MandrivaLinux-MoreApplications-Games"
xlat["Graphics"]="X-Mandrakelinux-Multimedia-Graphics"
xlat["Network"]="X-Mandrakelinux-Internet;X-MandrivaLinux-Internet"
xlat["Office"]="X-Mandrakelinux-Office;X-MandrivaLinux-Office"
xlat["System"]="X-Mandrakelinux-System;X-MandrivaLinux-System"
xlat["Utility"]="X-Mandrakelinux-Office-Accessories;X-MandrivaLinux-Office-Accessories"
}
{
if (match($0,/Categories=/)) {
split(substr($0,RSTART+11),categories,";")
result=""
for (n in categories)
{
if (categories[n] in xlat)
categories[n]=categories[n] ";" xlat[categories[n]]
if (categories[n])
result=result categories[n] ";"
}
print "Categories=" result
}
else
{
print $0
}
}' $1 > $1.new
mv $1.new $1
}
# Make application $1/$2 the default for all the mimetypes it support,
# iff such mimetype didn't had a default application already.
# $1 Install dir for desktop file
# $2 base name of desktop file
make_lazy_default()
{
local mimetypes
local xdg_user_dir
local xdg_default_dirs
DEBUG 1 "make_lazy_default $1/$2"
mimetypes=`awk '
{
if (match($0,/MimeType=/)) {
split(substr($0,RSTART+9),mimetypes,";")
for (n in mimetypes)
{
if (mimetypes[n])
print mimetypes[n]
}
}
}' "$1/$2" 2> /dev/null`
for MIME in $mimetypes ; do
xdg_default_dirs="$XDG_DATA_DIRS"
[ -n "$xdg_default_dirs" ] || xdg_default_dirs=/usr/local/share/:/usr/share/
if [ x"$mode" = x"user" ] ; then
xdg_user_dir="$XDG_DATA_HOME"
[ -n "$xdg_user_dir" ] || xdg_user_dir="$HOME/.local/share"
xdg_default_dirs="$xdg_user_dir:$xdg_default_dirs"
fi
local default_app
for x in `echo "$xdg_default_dirs" | sed 's/:/ /g'`; do
DEBUG 2 "Checking $x/applications/defaults.list"
default_app=`grep "$MIME=" $x/applications/defaults.list 2> /dev/null | cut -d '=' -f 2`
if [ -n "$default_app" ] ; then
DEBUG 2 "Found default apps for $MIME: $default_app"
default_app="$default_app;"
break;
fi
done
DEBUG 2 "Current default apps for $MIME: $default_app"
if echo "$default_app" | grep "$2" > /dev/null 2> /dev/null; then
# App already listed as default
continue;
fi
default_file="$1/defaults.list"
DEBUG 1 "Updating $default_file"
grep -v "$MIME=" $default_file > ${default_file}.new 2> /dev/null
if ! grep "[Default Applications]" ${default_file}.new > /dev/null; then
echo "[Default Applications]" >> ${default_file}.new
fi
echo $MIME="$default_app$2" >> ${default_file}.new
mv ${default_file}.new $default_file
done
}
update_submenu()
{
DEBUG 1 "update_submenu $1"
menu_file="$1"
xdg_dir_name=menus
xdg_user_dir="$XDG_CONFIG_HOME"
[ -n "$xdg_user_dir" ] || xdg_user_dir="$HOME/.config"
xdg_user_dir="$xdg_user_dir/$xdg_dir_name"
xdg_system_dirs="$XDG_CONFIG_DIRS"
[ -n "$xdg_system_dirs" ] || xdg_system_dirs=/etc/xdg
xdg_global_dir=
for x in `echo $xdg_system_dirs | sed 's/:/ /g'` ; do
if [ -w $x/$xdg_dir_name ] ; then
xdg_global_dir="$x/$xdg_dir_name"
break
fi
done
xdg_user_dir="$xdg_user_dir/applications-merged"
xdg_global_dir="$xdg_global_dir/applications-merged"
DEBUG 3 "Install locations for *.menu file:"
DEBUG 3 "xdg_user_dir: $xdg_user_dir"
DEBUG 3 "xdg_global_dir: $xdg_global_dir"
DEBUG 3 "kde_user_dir: $kde_user_dir"
DEBUG 3 "kde_global_dir: $kde_global_dir"
DEBUG 3 "gnome_user_dir: $gnome_user_dir"
DEBUG 3 "gnome_global_dir: $gnome_global_dir"
if [ x"$mode" = x"user" ] ; then
xdg_dir="$xdg_user_dir"
kde_dir="$kde_user_dir"
gnome_dir="$gnome_user_dir"
my_umask=077
my_chmod=0600
else
xdg_dir="$xdg_global_dir"
kde_dir="$kde_global_dir"
gnome_dir="$gnome_global_dir"
my_umask=022
my_chmod=0644
if [ -z "${xdg_dir}${kde_dir}${gnome_dir}" ] ; then
exit_failure_operation_impossible "No writable system menu directory found."
fi
fi
if [ -z "$menu_file" ] ; then
# Work around for SUSE/gnome 2.12 to pick up new ~/.local/share/applications
save_umask=`umask`
umask $my_umask
mkdir -p $xdg_dir
touch $xdg_dir/xdg-desktop-menu-dummy.menu
umask $save_umask
return
fi
if [ $action = "install" -a -f "/etc/xdg/menus/gnome-applications.menu" ] ; then
# Work around for Debian Gnome
gnome_xdg_dir=`echo "$xdg_dir" | sed -e 's^/applications-merged^/gnome-applications-merged^'`
if [ ! -e "$gnome_xdg_dir" ] ; then
DEBUG 1 "Debian Workaround: Link '$xdg_dir' to '$gnome_xdg_dir'"
mkdir -p `dirname "$gnome_xdg_dir"`
eval 'ln -s "applications-merged" "$gnome_xdg_dir"'$xdg_redirect_output
fi
fi
if [ $action = "install" -a -f "/etc/mandrake-release" ] ; then
# Work around for Mandriva 2006
mandrake_xdg_dir=`echo "$xdg_dir" | sed -e 's^/applications-merged^/applications-mdk-merged^'`
if [ ! -e "$mandrake_xdg_dir" ] ; then
DEBUG 1 "Mandriva Workaround: Link '$xdg_dir' to '$mandrake_xdg_dir'"
mkdir -p `dirname "$mandrake_xdg_dir"`
eval 'ln -s "applications-merged" "$mandrake_xdg_dir"'$xdg_redirect_output
fi
fi
if [ $action = "install" -a x"$mode" = x"user" -a -d "/etc/xdg/menus/kde-applications-merged" ] ; then
# Work around for Fedora Core 5 + patched KDE
kde_xdg_dir=`echo "$xdg_dir" | sed -e 's^/applications-merged^/kde-applications-merged^'`
if [ ! -e "$kde_xdg_dir" ] ; then
DEBUG 1 "Fedora Workaround: Link '$xdg_dir' to '$kde_xdg_dir'"
mkdir -p `dirname "$kde_xdg_dir"`
eval 'ln -s "applications-merged" "$kde_xdg_dir"'$xdg_redirect_output
fi
fi
if [ $action = "install" -a x"$mode" = x"system" -a -d "/etc/xdg/menus/kde-applications-merged" -a ! -d "/etc/xdg/menus/applications-merged" ] ; then
# Work around for Kubuntu 6.06
kde_xdg_dir=`echo "$xdg_dir" | sed -e 's^/applications-merged^/kde-applications-merged^'`
DEBUG 1 "Kubuntu Workaround: Link '$xdg_dir' to 'kde-applications-merged'"
eval 'ln -s "kde-applications-merged" "$xdg_dir"'$xdg_redirect_output
fi
orig_menu_file=$xdg_dir/$menu_file
DEBUG 1 "Updating $orig_menu_file ($action)"
tmpfile=`mktemp`
orig_desktop_files=
if [ -r "$orig_menu_file" ] ; then
awk '
# List all files within <Filename> tags
BEGIN {
RS="<"
}
/^Filename/ {
if (match($0,/>/)) {
print substr($0,RSTART+1)
}
}' $orig_menu_file > $tmpfile
fi
orig_desktop_files=`cat $tmpfile`
new_desktop_files=
if [ $action = "install" ] ; then
for desktop_file in $desktop_files; do
basefile=`basename $desktop_file`
if ! grep '^'$basefile'$' $tmpfile > /dev/null 2> /dev/null ; then
# Append
echo "$basefile" >> $tmpfile
fi
done
new_desktop_files=`cat $tmpfile`
fi
if [ $action = "uninstall" ] ; then
echo > $tmpfile
for desktop_file in $desktop_files; do
echo "$desktop_file" >> $tmpfile
done
# Files to uninstall are listed in $tmpfile
# Existing files are in $orig_desktop_files
for desktop_file in $orig_desktop_files; do
if ! grep '^'$desktop_file'$' $tmpfile > /dev/null 2> /dev/null; then
# Keep this file, it's not in the uninstall list
new_desktop_files="$new_desktop_files $desktop_file"
fi
done
fi
rm -f "$tmpfile"
DEBUG 3 "Files to list in $menu_file: $new_desktop_files"
if [ -n "$new_desktop_files" ] ; then
# Install/update
tmpfile=`mktemp`
(
echo '<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"'
echo ' "http://www.freedesktop.org/standards/menu-spec/menu-1.0.dtd">'
echo '<!-- Do not edit manually - generated and managed by xdg-desktop-menu -->'
echo '<Menu>'
echo ' <Name>Applications</Name>'
for desktop_file in $directory_files; do
basefile=`basename $desktop_file`
basefilename=`echo "$basefile"|cut -d '.' -f 1`
echo "<Menu>"
echo " <Name>$basefilename</Name>"
echo " <Directory>$basefile</Directory>"
done
echo " <Include>"
for desktop_file in $new_desktop_files; do
echo " <Filename>$desktop_file</Filename>"
done
echo " </Include>"
for desktop_file in $directory_files; do
echo "</Menu>"
done
echo '</Menu>'
) > $tmpfile
chmod $my_chmod $tmpfile
save_umask=`umask`
umask $my_umask
mkdir -p $xdg_dir
eval 'cp $tmpfile $xdg_dir/$menu_file'$xdg_redirect_output
umask $save_umask
rm -f "$tmpfile"
else
# Uninstall
rm -f $xdg_dir/$menu_file
fi
# Uninstall .directory files only if no longer referenced
if [ $action = "uninstall" ] ; then
tmpfile=`mktemp`
for menu_file in $xdg_dir/*; do
if grep 'generated and managed by xdg-desktop-menu' $menu_file > /dev/null 2> /dev/null; then
awk '
# List all files within <Directory> tags
BEGIN {
RS="<"
}
/^Directory/ {
if (match($0,/>/)) {
print substr($0,RSTART+1)
}
}' $menu_file >> $tmpfile
fi
done
orig_directory_files="$directory_files"
directory_files=
for desktop_file in $orig_directory_files; do
if ! grep '^'$desktop_file'$' $tmpfile > /dev/null 2> /dev/null; then
# No longer in use, safe to delete
directory_files="$directory_files $desktop_file"
fi
done
rm -f "$tmpfile"
fi
}
[ x"$1" != x"" ] || exit_failure_syntax
mode=
action=
update=yes
desktop_files=
directory_files=
case $1 in
install)
action=install
;;
uninstall)
action=uninstall
;;
forceupdate)
action=forceupdate
;;
*)
exit_failure_syntax "unknown command '$1'"
;;
esac
shift
vendor=true
while [ $# -gt 0 ] ; do
parm="$1"
shift
case "$parm" in
--noupdate)
update=no
;;
--mode)
if [ -z "$1" ] ; then
exit_failure_syntax "mode argument missing for --mode"
fi
case "$1" in
user)
mode="user"
;;
system)
mode="system"
;;
*)
exit_failure_syntax "unknown mode '$1'"
;;
esac
shift
;;
--novendor)
vendor=false
;;
-*)
exit_failure_syntax "unexpected option '$parm'"
;;
*)
if [ "$action" = "install" ] ; then
check_input_file "$parm"
fi
case "$parm" in
*.directory)
if [ -n "$desktop_files" ] ; then
exit_failure_syntax "'$parm' must preceed any *.desktop file"
fi
directory_files="$directory_files $parm"
;;
*.desktop)
desktop_files="$desktop_files $parm"
;;
*)
exit_failure_syntax "file to $action must be a *.directory or *.desktop file"
;;
esac
;;
esac
done
# Shouldn't happen
if [ -z "$action" ] ; then
exit_failure_syntax "command argument missing"
fi
if [ -n "$XDG_UTILS_INSTALL_MODE" ] ; then
if [ "$XDG_UTILS_INSTALL_MODE" = "system" ] ; then
mode="system"
elif [ "$XDG_UTILS_INSTALL_MODE" = "user" ] ; then
mode="user"
fi
fi
if [ -z "$mode" ] ; then
if [ `whoami` = "root" ] ; then
mode="system"
else
mode="user"
fi
fi
if [ x"$action" = x"forceupdate" ] ; then
update_desktop_database
exit_success
fi
if [ -z "$desktop_files" ] ; then
exit_failure_syntax "desktop-file argument missing"
fi
menu_name=
for desktop_file in $directory_files; do
if [ "$vendor" = "true" -a "$action" = "install" ] ; then
check_vendor_prefix "$desktop_file"
fi
basefilename=`basename "$desktop_file"|cut -d '.' -f 1`
if [ -z "$menu_name" ] ; then
menu_name="$basefilename"
else
menu_name="$menu_name-$basefilename"
fi
done
if [ -n "$menu_name" ] ; then
if [ x"$mode" = x"user" ] ; then
update_submenu "user-$menu_name.menu"
else
update_submenu "$menu_name.menu"
fi
else
# Work around for SUSE/gnome 2.12 to pick up new ~/.local/share/applications
if [ x"$mode" = x"user" ] ; then
update_submenu
fi
fi
# Install *.directory files
xdg_dir_name=desktop-directories
xdg_user_dir="$XDG_DATA_HOME"
[ -n "$xdg_user_dir" ] || xdg_user_dir="$HOME/.local/share"
xdg_user_dir="$xdg_user_dir/$xdg_dir_name"
xdg_system_dirs="$XDG_DATA_DIRS"
[ -n "$xdg_system_dirs" ] || xdg_system_dirs=/usr/local/share/:/usr/share/
xdg_global_dir=
for x in `echo $xdg_system_dirs | sed 's/:/ /g'` ; do
if [ -w $x/$xdg_dir_name ] ; then
xdg_global_dir="$x/$xdg_dir_name"
break
fi
done
DEBUG 3 "Install locations for *.directory files:"
DEBUG 3 "xdg_user_dir: $xdg_user_dir"
DEBUG 3 "xdg_global_dir: $xdg_global_dir"
DEBUG 3 "kde_user_dir: $kde_user_dir"
DEBUG 3 "kde_global_dir: $kde_global_dir"
DEBUG 3 "gnome_user_dir: $gnome_user_dir"
DEBUG 3 "gnome_global_dir: $gnome_global_dir"
if [ x"$mode" = x"user" ] ; then
xdg_dir="$xdg_user_dir"
kde_dir="$kde_user_dir"
gnome_dir="$gnome_user_dir"
my_umask=077
else
xdg_dir="$xdg_global_dir"
kde_dir="$kde_global_dir"
gnome_dir="$gnome_global_dir"
my_umask=022
if [ -z "${xdg_dir}${kde_dir}${gnome_dir}" ] ; then
exit_failure_operation_impossible "No writable system menu directory found."
fi
fi
for desktop_file in $directory_files; do
basefile=`basename $desktop_file`
DEBUG 1 "$action $desktop_file in $xdg_dir $kde_dir $gnome_dir"
case $action in
install)
save_umask=`umask`
umask $my_umask
for x in $xdg_dir $kde_dir $gnome_dir ; do
mkdir -p $x
eval 'cp $desktop_file $x/$basefile'$xdg_redirect_output
done
umask $save_umask
;;
uninstall)
for x in $xdg_dir $kde_dir $gnome_dir ; do
rm -f $x/$basefile
done
;;
esac
done
# Install *.desktop files
xdg_dir_name=applications
xdg_user_dir="$XDG_DATA_HOME"
[ -n "$xdg_user_dir" ] || xdg_user_dir="$HOME/.local/share"
xdg_user_dir="$xdg_user_dir/$xdg_dir_name"
xdg_system_dirs="$XDG_DATA_DIRS"
[ -n "$xdg_system_dirs" ] || xdg_system_dirs=/usr/local/share/:/usr/share/
xdg_global_dir=
for x in `echo $xdg_system_dirs | sed 's/:/ /g'` ; do
if [ -w $x/$xdg_dir_name ] ; then
xdg_global_dir="$x/$xdg_dir_name"
break
fi
done
kde_user_dir="$HOME/.kde/share/applnk"
kde_global_dir="/usr/share/applnk"
[ -w $kde_global_dir ] || kde_global_dir=
gnome_user_dir="$HOME/.gnome/apps"
gnome_global_dir="/usr/share/gnome/apps"
[ -w $gnome_global_dir ] || gnome_global_dir=
[ -f /etc/mandriva-release ] && need_mandriva_fix=true
[ -n "$need_mandriva_fix" ] && DEBUG 1 "Fixing up .desktop categories (Mandriva work around)"
DEBUG 3 "Install locations for *.desktop files:"
DEBUG 3 "xdg_user_dir: $xdg_user_dir"
DEBUG 3 "xdg_global_dir: $xdg_global_dir"
DEBUG 3 "kde_user_dir: $kde_user_dir"
DEBUG 3 "kde_global_dir: $kde_global_dir"
DEBUG 3 "gnome_user_dir: $gnome_user_dir"
DEBUG 3 "gnome_global_dir: $gnome_global_dir"
if [ x"$mode" = x"user" ] ; then
xdg_dir="$xdg_user_dir"
kde_dir="$kde_user_dir"
gnome_dir="$gnome_user_dir"
my_umask=077
else
xdg_dir="$xdg_global_dir"
kde_dir="$kde_global_dir"
gnome_dir="$gnome_global_dir"
my_umask=022
if [ -z "${xdg_dir}${kde_dir}${gnome_dir}" ] ; then
exit_failure_operation_impossible "No writable system menu directory found."
fi
fi
for desktop_file in $desktop_files; do
if [ "$vendor" = "true" -a "$action" = "install" ] ; then
check_vendor_prefix "$desktop_file"
fi
basefile=`basename $desktop_file`
DEBUG 1 "$action $desktop_file in $xdg_dir $kde_dir $gnome_dir"
case $action in
install)
save_umask=`umask`
umask $my_umask
for x in $xdg_dir $kde_dir $gnome_dir ; do
mkdir -p $x
eval 'cp $desktop_file $x/$basefile'$xdg_redirect_output
done
if [ -n "$need_mandriva_fix" ] ; then
fixup_mandriva_categories $xdg_dir/$basefile
fi
if [ -f $kde_dir/$basefile ] ; then
echo "OnlyShowIn=Old;" >> $kde_dir/$basefile
fi
if [ -f $gnome_dir/$basefile ] ; then
echo "OnlyShowIn=Old;" >> $gnome_dir/$basefile
fi
make_lazy_default "$xdg_dir" "$basefile"
umask $save_umask
;;
uninstall)
for x in $xdg_dir $kde_dir $gnome_dir ; do
rm -f $x/$basefile
done
;;
esac
done
if [ x"$update" = x"yes" ] ; then
update_desktop_database
fi
exit_success

View File

@ -1,240 +0,0 @@
# IEs 4 Linux Graphic User Interface
# Needs python and pygtk
import pygtk
pygtk.require('2.0')
import gtk, gobject, pango, sys, os
class GTKgui:
def __init__(self):
gtk.gdk.threads_init()
self.remove_next_line = False
def create_window(self, title, logo):
self.title = title
self.logoFile = logo
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.connect("destroy", gtk.main_quit)
self.window.set_position(gtk.WIN_POS_CENTER)
self.window.set_title(self.title)
self.window.set_border_width(10)
self.mainBox = gtk.VBox()
self.window.add(self.mainBox)
try:
self.logoImg = gtk.gdk.pixbuf_new_from_file(self.logoFile)
# Create top logo
logo = gtk.Image()
logo.set_from_pixbuf(self.logoImg.scale_simple(100,100,gtk.gdk.INTERP_BILINEAR))
logo.set_size_request(100, 100);
self.mainBox.pack_start(logo)
# Create window logo
self.window.set_icon(self.logoImg.scale_simple(15,15,gtk.gdk.INTERP_BILINEAR))
except gobject.GError:
print "DEBUG: Could not load image file"
# Create top notebook
self.notebook = gtk.Notebook()
self.mainBox.pack_start(self.notebook)
self.buttonBox = gtk.HBox()
self.mainBox.pack_end(self.buttonBox, False, False)
def create_install_tab(self, title):
# Create notebook pages
self.optionsVbox = gtk.VBox()
self.notebook.append_page(self.optionsVbox, gtk.Label(title))
self.installationOptions = []
self.installContainer = self.optionsVbox
def create_advanced_tab(self, title):
self.advancedTable = gtk.Table()
self.notebook.append_page(self.advancedTable, gtk.Label(title))
self.advancedOptions = []
def add_ok_button(self, title, callback=None):
okButton = gtk.Button(stock=gtk.STOCK_OK)
self.buttonBox.pack_start(okButton)
okButton.connect("clicked", self.callback_ok_button, callback)
okButton.set_flags(gtk.CAN_DEFAULT)
okButton.grab_default()
def add_cancel_button(self, title, callback=None):
quitButton = gtk.Button(stock=gtk.STOCK_CANCEL)
self.buttonBox.pack_end(quitButton)
quitButton.connect_object("clicked", self.callback_cancel_button, callback)
def new_install_option_frame(self, msg):
frame = gtk.Frame(msg)
frame.set_border_width(5)
self.optionsVbox.pack_start(frame)
vbox = gtk.VBox()
frame.add(vbox)
self.installContainer = vbox
def add_separator(self):
separator = gtk.HSeparator()
self.installContainer.pack_start(separator, False, True, 8)
def add_install_option(self, msg, variable, toggled, changeable=True):
container = self.installContainer
checkButton = gtk.CheckButton(msg, container)
checkButton.set_active(toggled)
checkButton.defaultValue = toggled
# Don't let user change state if he can't
if not changeable:
checkButton.connect('toggled', lambda w: w.set_active(toggled))
checkButton.env_variable = variable
container.pack_start(checkButton, True, True, 0)
self.installationOptions.append(checkButton)
def add_language_select(self, title, locales, default, variable):
container = self.installContainer
locales = locales.split(' ')
locales.sort()
label = gtk.Label(title + ': ')
combo = gtk.combo_box_new_text()
i = 0
for locale in locales:
combo.append_text(locale)
if locale == default:
combo.set_active(i)
i = i+1
box = gtk.HBox()
box.pack_start(label, False, False, 0)
box.pack_start(combo, False, False, 0)
container.pack_start(box)
self.locales = combo
self.locales.env_variable = variable
def add_advanced_option(self, msg, variable, default):
self.advancedTable.resize(len(self.advancedOptions) + 1, 2)
label = gtk.Label(msg)
entry = gtk.Entry()
entry.set_text(default)
i = len(self.advancedOptions)
self.advancedTable.attach(label, 0, 1, i, i+1)
self.advancedTable.attach(entry, 1, 2, i, i+1)
entry.env_variable = variable
self.advancedOptions.append(entry)
def show(self):
self.window.show_all()
gtk.gdk.threads_enter()
gtk.main()
gtk.gdk.threads_leave()
def get_selected_locale(self):
combobox = self.locales
model = combobox.get_model()
active = combobox.get_active()
if active < 0:
return None
return model[active][0]
def callback_ok_button(self, widget, function=None):
if function != None: function()
def create_installation_window(self):
# Hide installation window
self.window.hide()
# Make Console Window
self.window.resize(500,500)
sw = gtk.ScrolledWindow()
sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
self.textview = gtk.TextView()
self.textview.set_editable(False)
self.textbuffer = self.textview.get_buffer()
sw.add(self.textview)
# Tags
self.normal_tag = self.textbuffer.create_tag(font="Monospace")
self.section_tag = self.textbuffer.create_tag(weight=pango.WEIGHT_BOLD)
self.ok_tag = self.textbuffer.create_tag(weight=pango.WEIGHT_BOLD, foreground='Blue')
self.error_tag = self.textbuffer.create_tag(weight=pango.WEIGHT_BOLD, foreground='Red')
# Box elements
self.loggerVbox = gtk.VBox()
self.loggerVbox.pack_start(sw)
# Set box on window
self.window.remove(self.window.get_children()[0])
self.window.add(self.loggerVbox)
self.window.show_all()
def add_abort_installation_button(self, title, callback):
# Cancel/Close Button
button = gtk.Button(stock=gtk.STOCK_CANCEL)
button.connect("clicked", self.callback_abort_installation, callback)
self.loggerVbox.pack_start(button, False, False)
button.show()
def update_environment(self):
for option in self.installationOptions:
if option.get_active() == True:
os.putenv(option.env_variable, '1')
else:
os.putenv(option.env_variable, '0')
for option in self.advancedOptions:
os.putenv(option.env_variable, option.get_text())
os.putenv(self.locales.env_variable, self.get_selected_locale())
def installation_insert_text(self, line):
# What tag to use
tag = self.normal_tag
if line[0:2] == '# ':
tag = self.section_tag
line = line[2:]
elif line == "[ OK ]\n":
tag = self.ok_tag
elif line[0:3] == '!! ':
tag = self.error_tag
line = line[2:]
# Delete last line if it is \r
if self.remove_next_line and line != '\n':
it = self.textbuffer.get_iter_at_line(self.textbuffer.get_line_count()-2)
self.textbuffer.delete(it, self.textbuffer.get_end_iter())
self.remove_next_line = False
# Insert text and relocate scroll
self.textbuffer.insert_with_tags(self.textbuffer.get_end_iter(), line, tag)
self.textview.scroll_to_iter(self.textbuffer.get_end_iter(), 0)
if line[-1] == '\r': self.remove_next_line = True
def add_close_button(self):
# Installation finshed correctly
button = self.loggerVbox.get_children()[-1]
button.set_use_stock(True)
button.set_label(gtk.STOCK_CLOSE)
def callback_cancel_button(self, widget, function=None):
if function != None: function()
gtk.main_quit()
def callback_abort_installation(self, widget, function=None):
if function != None: function()
gtk.main_quit()

389
ui/ies4linux-gtk.py Normal file
View File

@ -0,0 +1,389 @@
# IEs 4 Linux Graphic User Interface
# Needs python and pygtk
import pygtk
pygtk.require('2.0')
import gtk, gobject, pango, sys, os
import sys, os, threading
from subprocess import *
# Basic class for windows
class BasicWindow:
def __init__(self):
self.window = create_window(env("GUI_TITLE"))
self.current_container = self.window.main_vbox
def add_icon(self):
logo = gtk.Image()
logo.set_from_pixbuf(logoImg.scale_simple(100,100,gtk.gdk.INTERP_BILINEAR))
logo.set_size_request(100, 100)
self.add_widget(logo)
def add_widget(self, widget, space=5):
self.current_container.pack_start(widget, False, False, space)
def add_info(self, text, title=None,size=270):
label = gtk.Label(text)
label.set_justify(gtk.JUSTIFY_LEFT)
label.set_alignment(0, 0)
label.set_line_wrap(True)
label.set_size_request(size, -1)
#frame = gtk.Frame(title)
#frame.add(label)
self.add_widget(label, 0)
def add_title(self, title):
label = gtk.Label("<b>"+title+"</b>")
label.set_use_markup(True)
self.add_widget(label, 5)
def add_separator(self):
separator = gtk.HSeparator()
self.current_container.pack_start(separator, False, False, 5)
def show(self):
self.window.show_all()
# Shows IEs4Linux main window
class MainWindow(BasicWindow):
def __init__(self):
BasicWindow.__init__(self)
self.add_icon()
ies = CheckboxesSection(env("GUI_IES"), 'h')
ies.add_option("6.0", "INSTALLIE6")
ies.add_option("5.5", "INSTALLIE55")
ies.add_option("5.0", "INSTALLIE5")
#ies.add_option("2.0", "INSTALLIE2")
#ies.add_option("1.5", "INSTALLIE15")
#ies.add_option("1.0", "INSTALLIE1")
#ies.add_option("(7.0)", "INSTALLIE7")
ies.add_widget(self.create_locale_selector())
self.add_widget(ies.widget)
plugins = CheckboxesSection(env("GUI_PLUGINS"), 'v')
plugins.add_option("Adobe Flash 9", "INSTALLFLASH")
self.add_widget(plugins.widget)
icons = CheckboxesSection(env("GUI_ICONS"), 'h')
icons.add_option(env("GUI_DESKTOP"), "CREATE_DESKTOP_ICON")
icons.add_option(env("GUI_MENU"), "CREATE_MENU_ICON")
self.add_widget(icons.widget)
buttons = self.create_buttons(env("GUI_OK"), env("GUI_CANCEL"), env("GUI_ADVANCED"))
self.add_widget(buttons)
self.advanced_window = AdvancedWindow(self.window)
def create_locale_selector(self):
locales = env("IE6_LOCALES").split(' ')
locales.sort()
label = gtk.Label(env("GUI_LOCALE") + ': ')
combo = gtk.combo_box_new_text()
default = env("GUESSED_IE6_LOCALE")
i = 0
for locale in locales:
combo.append_text(locale)
if locale == default:
combo.set_active(i)
i = i+1
box = gtk.HBox()
box.pack_start(label, False, False, 0)
box.pack_start(combo, False, False, 0)
self.locales = combo
return box
def get_selected_locale(self):
combobox = self.locales
model = combobox.get_model()
active = combobox.get_active()
if active < 0:
return None
return model[active][0]
def create_buttons(self, ok_label, quit_label, advanced_label):
box = gtk.HBox()
ok = gtk.Button(label=ok_label, stock=gtk.STOCK_OK)
ok.connect("clicked", self.callback_ok_button, None)
ok.set_flags(gtk.CAN_DEFAULT)
#ok.grab_default()
quit = gtk.Button(label=quit_label, stock=gtk.STOCK_CANCEL)
quit.connect_object("clicked", self.callback_cancel_button, None)
advanced = gtk.Button(label=advanced_label)
advanced.connect_object("clicked", self.callback_advanced_button, None)
box.pack_start(ok)
box.pack_start(quit)
box.pack_end(advanced)
return box
def callback_ok_button(self, widget, data=None):
self.window.hide()
self.install_ok = True
gtk.main_quit()
def callback_cancel_button(self, widget, data=None):
gtk.main_quit()
def callback_advanced_button(self, widget, data=None):
self.window.hide()
self.advanced_window.show()
# Shows a big fat advanced options windows
class AdvancedWindow(BasicWindow):
def __init__(self, parent_window):
BasicWindow.__init__(self)
self.parent_window = parent_window
self.add_icon()
self.add_title(env("GUI_ADVANCED_OPTIONS"))
self.add_info(env("GUI_ADVANCED_NOTICE"), size=400)
self.add_widget(TextfieldSection(env("GUI_BASEDIR"), "BASEDIR").widget)
self.add_widget(TextfieldSection(env("GUI_BINDIR"), "BINDIR").widget)
self.add_widget(TextfieldSection(env("GUI_DOWNLOADDIR"), "DOWNLOADDIR").widget)
self.add_widget(TextfieldSection(env("GUI_WGETFLAGS"), "WGETFLAGS").widget)
self.add_separator()
self.add_title(env("GUI_BETA"))
self.add_info(env("GUI_BETA_NOTICE"), size=400)
ies = CheckboxesSection(env("GUI_IES"), 'h')
ies.add_option("7.0", "INSTALLIE7")
self.add_widget(ies.widget)
self.add_button(env('GUI_OK'))
def add_button(self, label):
ok = gtk.Button(label=label, stock=gtk.STOCK_OK)
ok.connect("clicked", self.callback_ok_button, None)
ok.set_flags(gtk.CAN_DEFAULT)
self.add_widget(ok)
def callback_ok_button(self, widget, data=None):
self.window.hide()
self.parent_window.show()
# Executes some command and shows output
class ExecutionWindow(BasicWindow):
def __init__(self, command):
BasicWindow.__init__(self)
gtk.gdk.threads_init()
self.remove_next_line = False
self.command = command
self.window.set_resizable(True)
self.window.resize(500,500)
# Make Console Window
self.add_icon()
self.add_title(env("GUI_INSTALLING"))
sw = gtk.ScrolledWindow()
sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
self.textview = gtk.TextView()
self.textview.set_editable(False)
self.textbuffer = self.textview.get_buffer()
sw.add(self.textview)
self.current_container.pack_start(sw, True, True, 0)
# Tags
self.normal_tag = self.textbuffer.create_tag(font="Monospace")
self.section_tag = self.textbuffer.create_tag(weight=pango.WEIGHT_BOLD)
self.ok_tag = self.textbuffer.create_tag(weight=pango.WEIGHT_BOLD, foreground='Blue')
self.error_tag = self.textbuffer.create_tag(weight=pango.WEIGHT_BOLD, foreground='Red')
# Cancel/Close Button
button = gtk.Button(label=env("GUI_CANCEL"), stock=gtk.STOCK_CANCEL)
button.connect("clicked", self.callback_abort_installation, None)
self.add_widget(button)
threading.Thread(target=self.run_command).start()
def run_command(self):
self.process = Popen(self.command, stderr=STDOUT, stdout=PIPE)
stdout = self.process.stdout
self.process_finished = False
self.process_interrupted = False
line = ''
while not self.process_finished:
char = stdout.read(1)
line = line + char
if char == '\n' or char == '\r':
self.installation_insert_text(line)
line = ''
if char == '':
self.process_finished = True
if self.process_interrupted:
sys.exit(1)
self.installation_insert_text(line + '\n')
self.add_close_button()
def installation_insert_text(self, line):
# What tag to use
tag = self.normal_tag
if line[0:2] == '# ':
tag = self.section_tag
line = line[2:]
elif line == "[ OK ]\n":
tag = self.ok_tag
elif line[0:3] == '!! ':
tag = self.error_tag
line = line[2:]
# Delete last line if it is \r
if self.remove_next_line and line != '\n':
it = self.textbuffer.get_iter_at_line(self.textbuffer.get_line_count()-2)
self.textbuffer.delete(it, self.textbuffer.get_end_iter())
self.remove_next_line = False
# Insert text and relocate scroll
self.textbuffer.insert_with_tags(self.textbuffer.get_end_iter(), line, tag)
self.textview.scroll_to_iter(self.textbuffer.get_end_iter(), 0)
if line[-1] == '\r': self.remove_next_line = True
def add_close_button(self):
button = self.current_container.get_children()[-1]
button.set_use_stock(True)
button.set_label(env("GUI_CLOSE"))
def callback_abort_installation(self, widget, function=None):
if hasattr(self, 'process') and self.process.poll() == None:
self.process_finished = True
self.process_interrupted = True
os.kill(self.process.pid, 9)
self.add_close_button()
else:
sys.exit(0)
##########################################
# Auxiliary classes
class CheckboxesSection:
def __init__(self, title, mode):
self.widget = gtk.Frame(title)
self.main_container = gtk.VBox()
if mode == 'h':
self.options_container = gtk.HBox()
self.add_widget(self.options_container)
self.space = 6
else:
self.options_container = self.main_container
self.space = 0
self.widget.add(self.main_container)
def add_option(self, msg, variable):
checkbox = create_checkbox(msg, variable)
self.options_container.pack_start(checkbox, False, False, self.space)
def add_widget(self, widget):
self.main_container.pack_start(widget, False, False, 0)
class TextfieldSection:
def __init__(self, label, variable):
self.widget = gtk.Frame(label)
textfield = create_textfield(variable)
self.widget.add(textfield)
# Auxiliary function
def create_window(title):
window = gtk.Window(gtk.WINDOW_TOPLEVEL)
window.connect("destroy", lambda w: sys.exit(1))
window.set_position(gtk.WIN_POS_CENTER)
window.set_title(title)
window.set_border_width(10)
window.set_resizable(False)
window.set_icon(logoImg.scale_simple(15,15,gtk.gdk.INTERP_BILINEAR))
mainBox = gtk.VBox()
window.add(mainBox)
window.main_vbox = mainBox
return window
def create_checkbox(msg, variable):
checkButton = gtk.CheckButton(msg)
if env(variable) == '1':
checkButton.set_active(True)
else:
checkButton.set_active(False)
checkButton.env_variable = variable
checkButton.set_alignment(0, 0)
checkbox_options.append(checkButton)
return checkButton
def create_textfield(variable):
entry = gtk.Entry()
entry.set_text(env(variable))
entry.env_variable = variable
textfield_options.append(entry)
return entry
# Returns and environment variable content
def env(key): return os.getenv(key)
##########################################
# Global variables
checkbox_options = []
textfield_options = []
# Load IEs4Linux image
try:
logoImg = gtk.gdk.pixbuf_new_from_file("lib/ies4linux.svg")
except gobject.GError:
print "DEBUG: Could not load image file"
# Create user interface
mw = MainWindow()
mw.show()
gtk.main()
# Installer canceled
if not hasattr(mw, 'install_ok'):
sys.exit(0)
#Set environment variables
for option in checkbox_options:
if option.get_active() == True:
os.putenv(option.env_variable, '1')
else:
os.putenv(option.env_variable, '0')
for option in textfield_options:
os.putenv(option.env_variable, option.get_text())
os.putenv("IE6_LOCALE", mw.get_selected_locale())
os.putenv("NOCOLOR", "1")
# Install
ex = ExecutionWindow("./lib/install.sh")
ex.show()
gtk.main()

View File

@ -1,85 +0,0 @@
from gtkgui import GTKgui
import sys, os, threading
from subprocess import *
class IEs4Linux:
def __init__(self, gui):
self.gui = gui
self.process_interrupted = False
def main(self):
self.gui.create_window(title=os.getenv("GUI_TITLE"), logo="lib/ies4linux.svg")
self.gui.create_install_tab(title=os.getenv('GUI_INSTALLATION_OPTIONS'))
self.gui.create_advanced_tab(title=os.getenv('GUI_ADVANCED_OPTIONS'))
self.gui.add_ok_button(os.getenv('GUI_OK'), self.install_callback)
self.gui.add_cancel_button(os.getenv('GUI_CANCEL'),self.cancel_callback)
# Installation options
#self.gui.new_install_option_frame(os.getenv("GUI_IE"))
self.gui.add_install_option(os.getenv("GUI_INSTALL_IE6"), "", True, False)
self.gui.add_install_option(os.getenv("GUI_INSTALL_IE55"), "INSTALLIE55", False)
self.gui.add_install_option(os.getenv("GUI_INSTALL_IE5"), "INSTALLIE5", False)
self.gui.add_language_select(os.getenv("GUI_LOCALE"), os.getenv("IE6_LOCALES"), os.getenv("GUESSED_IE6_LOCALE"), "IE6_LOCALE")
self.gui.add_separator()
#self.gui.new_install_option_frame(os.getenv("GUI_EXTRA"))
self.gui.add_install_option(os.getenv("GUI_INSTALL_FLASH"), "INSTALLFLASH", True)
self.gui.add_install_option(os.getenv("GUI_CREATE_ICONS"), "CREATE_ICON", True)
# Advanced options
self.gui.add_advanced_option(os.getenv("GUI_ADVANCED_BASEDIR"), "BASEDIR", os.getenv("BASEDIR"))
self.gui.add_advanced_option(os.getenv("GUI_ADVANCED_BINDIR"), "BINDIR", os.getenv("BINDIR"))
self.gui.add_advanced_option(os.getenv("GUI_ADVANCED_DOWNLOADDIR"), "DOWNLOADDIR", os.getenv("DOWNLOADDIR"))
self.gui.add_advanced_option(os.getenv("GUI_ADVANCED_WGETFLAGS"), "WGETFLAGS", os.getenv("WGETFLAGS"))
self.gui.show()
def install_callback(self):
os.putenv('NOCOLOR','1')
self.gui.update_environment()
self.gui.create_installation_window()
self.gui.add_abort_installation_button(os.getenv('GUI_CANCEL'), self.abort_installation_callback)
threading.Thread(target=self.run_command).start()
def run_command(self):
self.process = Popen("./lib/install.sh", stderr=STDOUT, stdout=PIPE)
stdout = self.process.stdout
self.process_finished = False
line = ''
while not self.process_finished:
char = stdout.read(1)
line = line + char
if char == '\n' or char == '\r':
self.gui.installation_insert_text(line)
line = ''
if char == '':
self.process_finished = True
if self.process_interrupted:
sys.exit(1)
self.gui.installation_insert_text(line + '\n')
self.gui.add_close_button()
def cancel_callback(self):
sys.exit(1)
def abort_installation_callback(self):
if hasattr(self, 'process') and self.process.poll() == None:
self.process_finished = True
self.process_interrupted = True
os.kill(self.process.pid, 9)
print os.getenv('GUI_CANCEL_INSTALL')
sys.exit(1)
if __name__ == "__main__":
# In the near future we will have a QT version too
if sys.argv[1] == 'gtk':
gui = GTKgui()
i = IEs4Linux(gui)
i.main()

394
ui/installation.kmdr Normal file

File diff suppressed because one or more lines are too long

View File

@ -1,315 +1,44 @@
# Dynamically generates a kmdr file to install IEs4Linux
# Loading kommander gui
debug Using kommander gui
kmdr="$HOME/.ies4linux/tmp/installation.kmdr"
temp="$HOME/.ies4linux/tmp/installation.kmdr2"
# Temporary generated file
mkdir -p "$HOME/.ies4linux/tmp"
kmdr_installer="$HOME/.ies4linux/tmp/kommander.kmdr"
echo "" > "$kmdr_installer"
# First remove all & kmdr-editor writes
sed -e "s/&amp;//" "$IES4LINUX/ui/installation.kmdr" > "$kmdr"
# Function to calculate next Installation option position
# TODO make a better function :-)
installation_option_y_file="$(create_temp_file)"
echo "10" > "$installation_option_y_file"
function next_position_y() {
local installation_option_y=$(cat "$installation_option_y_file" 2> /dev/null)
echo -n $((installation_option_y + 30)) > "$installation_option_y_file"
echo -n $installation_option_y
export installation_option_y
}
# Add locales
locale_num=0
item_start="<item><property name=\"text\"><string>"
item_end="</string></property></item>"
total_locales=$(echo $IE6_LOCALES | wc -w )
for locale in $IE6_LOCALES; do
if [ "$locale" = "$GUESSED_IE6_LOCALE" ]; then
select_locale=$locale_num
fi
# Generate file
cat << __END_KMDR__ >> "$kmdr_installer"
<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
<class>form</class>
<widget class="Dialog">
<property name="name"><cstring>form</cstring></property>
<property name="geometry"><rect>
<x>0</x>
<y>0</y>
<width>340</width>
<height>400</height>
</rect></property>
<property name="caption"><string>${GUI_TITLE}</string></property>
<widget class="Label">
<property name="name">
<cstring>Label1</cstring>
</property>
<property name="geometry">
<rect>
<x>60</x>
<y>20</y>
<width>230</width>
<height>61</height>
</rect>
</property>
<property name="paletteForegroundColor">
<color>
<red>22</red>
<green>51</green>
<blue>182</blue>
</color>
</property>
<property name="font">
<font>
<family>Arial</family>
<pointsize>32</pointsize>
<bold>1</bold>
</font>
</property>
<property name="text">
<string>IEs 4 Linux</string>
</property>
</widget>
<widget class="TabWidget">
<property name="name">
<cstring>tabs</cstring>
</property>
<property name="geometry">
<rect>
<x>10</x>
<y>100</y>
<width>320</width>
<height>240</height>
</rect>
</property>
<widget class="QWidget">
<property name="name">
<cstring>tab</cstring>
</property>
<attribute name="title">
<string>${GUI_INSTALLATION_OPTIONS}</string>
</attribute>
if [ "${locale_num}" = "$((total_locales - 1))" ]; then
sed -e "s@LOCALE_ITEM@${locale}@" "$kmdr" > "$temp"
else
sed -e "s@LOCALE_ITEM@${locale}${item_end}${item_start}LOCALE_ITEM@" "$kmdr" > "$temp"
fi
__END_KMDR__
mv "$temp" "$kmdr"
locale_num=$((locale_num + 1))
done
# IE installation options
cat << __END_KMDR__ >> "$kmdr_installer"
# HACK Select locale
sed -e "s@<number>0</number>@<number>$select_locale</number>@" "$kmdr" > "$temp"
mv "$temp" "$kmdr"
<widget class="CheckBox">
<property name="name"><cstring>install_ie6</cstring></property>
<property name="enabled"><bool>true</bool></property>
<property name="geometry"><rect>
<x>20</x><y>$(next_position_y)</y>
<width>320</width><height>20</height>
</rect></property>
<property name="text"><string>${GUI_INSTALL_IE6}</string></property>
<property name="checked"><bool>true</bool></property>
<property name="enabled"><bool>false</bool></property>
</widget>
# Search for special strings and replace them
variables="GUI_TITLE GUI_OK GUI_CANCEL GUI_ADVANCED GUI_PLUGINS GUI_LOCALE GUI_ICONS GUI_MENU GUI_DESKTOP GUI_IES"
for var in $variables; do
eval "sed -e \"s/$var/\$$var/\" \"$kmdr\" > \"$temp\""
mv "$temp" "$kmdr"
done
<widget class="CheckBox">
<property name="name"><cstring>install_ie55</cstring></property>
<property name="enabled"><bool>true</bool></property>
<property name="geometry"><rect>
<x>20</x><y>$(next_position_y)</y>
<width>320</width><height>20</height>
</rect></property>
<property name="text"><string>${GUI_INSTALL_IE55}</string></property>
<property name="checked"><bool>false</bool></property>
</widget>
<widget class="CheckBox">
<property name="name"><cstring>install_ie5</cstring></property>
<property name="enabled"><bool>true</bool></property>
<property name="geometry"><rect>
<x>20</x><y>$(next_position_y)</y>
<width>320</width><height>20</height>
</rect></property>
<property name="text"><string>${GUI_INSTALL_IE5}</string></property>
<property name="checked"><bool>false</bool></property>
</widget>
__END_KMDR__
# IE locale selector
cat << __END_KMDR__ >> "$kmdr_installer"
<widget class="ComboBox">
__END_KMDR__
locale_num=0
for locale in $(echo $IE6_LOCALES | sed -e 's/ /\n/g' | sort); do
if [ "$locale" = "$GUESSED_IE6_LOCALE" ]; then
select_locale=$locale_num
fi
echo "<item><property name=\"text\"><string>${locale}</string></property></item>" >> "$kmdr_installer"
locale_num=$((locale_num + 1))
done
cat << __END_KMDR__ >> "$kmdr_installer"
<property name="currentItem"><number>${select_locale}</number></property>
<property name="name"><cstring>locale</cstring></property>
<property name="geometry"><rect>
<x>20</x><y>$(next_position_y)</y>
<width>121</width><height>20</height>
</rect></property>
</widget>
__END_KMDR__
# Other installation options
cat << __END_KMDR__ >> "$kmdr_installer"
<widget class="CheckBox">
<property name="name"><cstring>install_flash</cstring></property>
<property name="enabled"><bool>true</bool></property>
<property name="geometry"><rect>
<x>20</x><y>$(next_position_y)</y>
<width>320</width><height>20</height>
</rect></property>
<property name="text"><string>${GUI_INSTALL_FLASH}</string></property>
<property name="checked"><bool>true</bool></property>
</widget>
<widget class="CheckBox">
<property name="name"><cstring>create_icons</cstring></property>
<property name="enabled"><bool>true</bool></property>
<property name="geometry"><rect>
<x>20</x><y>$(next_position_y)</y>
<width>320</width><height>20</height>
</rect></property>
<property name="text"><string>${GUI_CREATE_ICONS}</string></property>
<property name="checked"><bool>true</bool></property>
</widget>
__END_KMDR__
# Advanced Tab
cat << __END_KMDR__ >> "$kmdr_installer"
</widget>
<widget class="QWidget">
<property name="name"><cstring>tab</cstring></property>
<attribute name="title"><string>${GUI_ADVANCED_OPTIONS}</string></attribute>
<widget class="Label">
<property name="name"><cstring>label_basedir</cstring></property>
<property name="geometry">
<rect><x>10</x><y>10</y><width>300</width><height>20</height></rect>
</property>
<property name="text"><string>${GUI_ADVANCED_BASEDIR}</string></property>
</widget>
<widget class="LineEdit">
<property name="name"><cstring>basedir</cstring></property>
<property name="geometry">
<rect><x>25</x><y>30</y><width>250</width><height>20</height></rect>
</property>
<property name="text"><string>${BASEDIR}</string></property>
</widget>
<widget class="Label">
<property name="name"><cstring>label_bindir</cstring></property>
<property name="geometry">
<rect><x>10</x><y>60</y><width>300</width><height>20</height></rect>
</property>
<property name="text"><string>${GUI_ADVANCED_BINDIR}</string></property>
</widget>
<widget class="LineEdit">
<property name="name"><cstring>bindir</cstring></property>
<property name="geometry">
<rect><x>25</x><y>80</y><width>250</width><height>20</height></rect>
</property>
<property name="text"><string>${BINDIR}</string></property>
</widget>
<widget class="Label">
<property name="name"><cstring>label_downloaddir</cstring></property>
<property name="geometry">
<rect><x>10</x><y>110</y><width>300</width><height>20</height></rect>
</property>
<property name="text"><string>${GUI_ADVANCED_DOWNLOADDIR}</string></property>
</widget>
<widget class="LineEdit">
<property name="name"><cstring>downloaddir</cstring></property>
<property name="geometry">
<rect><x>25</x><y>130</y><width>250</width><height>20</height></rect>
</property>
<property name="text"><string>${DOWNLOADDIR}</string></property>
</widget>
<widget class="Label">
<property name="name"><cstring>label_wgetflags</cstring></property>
<property name="geometry">
<rect><x>10</x><y>160</y><width>300</width><height>20</height></rect>
</property>
<property name="text"><string>${GUI_ADVANCED_WGETFLAGS}</string></property>
</widget>
<widget class="LineEdit">
<property name="name"><cstring>wgetflags</cstring></property>
<property name="geometry">
<rect><x>25</x><y>180</y><width>250</width><height>20</height></rect>
</property>
<property name="text"><string>${WGETFLAGS}</string></property>
</widget>
</widget>
</widget>
<widget class="CloseButton">
<property name="name"><cstring>install_button</cstring></property>
<property name="geometry">
<rect>
<x>10</x><y>350</y>
<width>165</width><height>40</height>
</rect>
</property>
<property name="text"><string>${GUI_OK}</string></property>
<property name="associations" stdset="0"><stringlist><string>
@setGlobal(command, "--install-ie6")
@if (@install_ie55.checked)
echo export INSTALLIE55=1
@endif
@if (@install_ie5.checked)
echo export INSTALLIE5=1
@endif
@if (!@install_flash.checked)
echo export INSTALLFLASH=0
@endif
@if (!@create_icons.checked)
echo export CREATE_ICON=0
@endif
echo export IE6_LOCALE=@locale.text
echo export BASEDIR=\"@basedir.text\"
echo export BINDIR=\"@bindir.text\"
echo export DOWNLOADDIR=\"@downloaddir.text\"
echo export WGETFLAGS=\"@wgetflags.text\"
echo export CANCELLED=false
</string></stringlist></property>
<property name="accel"><number>4101</number></property>
</widget>
<widget class="CloseButton">
<property name="name"><cstring>close_button</cstring></property>
<property name="geometry">
<rect>
<x>175</x>
<y>350</y>
<width>155</width>
<height>40</height>
</rect>
</property>
<property name="text"><string>${GUI_CANCEL}</string></property>
<property name="accel"><number>4096</number></property>
<property name="associations" stdset="0"><stringlist><string>
echo export CANCELLED=true
</string></stringlist></property>
</widget>
</widget>
<layoutdefaults spacing="6" margin="11"/>
</UI>
__END_KMDR__
rm "$installation_option_y_file"
eval $(kmdr-executor --icon "$IES4LINUX/lib/ies4linux.svg" "$kmdr_installer")
rm "$kmdr_installer"
# Execute kommander
eval $(kmdr-executor --icon "$IES4LINUX/lib/ies4linux.svg" "$kmdr")
if [ "$CANCELLED" != "false" ]; then
echo $GUI_CANCEL_INSTALL

6
ui/python-gtk.sh Normal file
View File

@ -0,0 +1,6 @@
#!/bin/sh
# Loads Python GTK GUI
debug Using pygtk GUI
load_default_language
python "$IES4LINUX"/ui/ies4linux-gtk.py

View File

@ -12,3 +12,6 @@
[HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\AdvancedOptions\BROWSE\FORCE_OFFSCREEN]
"Text"="Force offscreen compositing even under Terminal server (requires restart)"
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]
"Window Title"="Microsoft Internet Explorer 5.0"

View File

@ -13,4 +13,7 @@
[HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\AdvancedOptions\BROWSE\FORCE_OFFSCREEN]
"Text"="Force offscreen compositing even under Terminal server (requires restart)"
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]
"Window Title"="Microsoft Internet Explorer 5.5"

View File

@ -183,6 +183,7 @@
"Window_Placement"=hex:2c,00,00,00,00,00,00,00,01,00,00,00,ff,ff,ff,ff,ff,ff,\
ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,01,00,00,00,19,00,00,00,1b,04,00,00,2c,03,00,\
00
"Window Title"="Microsoft Internet Explorer 6.0"
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Security\P3Global]
"Enabled"=dword:00000001
@ -25668,15 +25669,11 @@
[HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main]
"Anchor_Visitation_Horizon"=hex:01,00,00,00
"Cache_Percent_of_Disk"=hex:0a,00,00,00
"Default_Page_URL"="http://www.microsoft.com/isapi/redir.dll?prd=ie&pver=6&ar=msnhome"
"Default_Search_URL"="http://www.microsoft.com/isapi/redir.dll?prd=ie&ar=iesearch"
"Delete_Temp_Files_On_Exit"="yes"
"Enable_Disk_Cache"="yes"
"FullScreen"="no"
"Placeholder_Height"=hex:1a,00,00,00
"Placeholder_Width"=hex:1a,00,00,00
"Search Page"="http://www.microsoft.com/isapi/redir.dll?prd=ie&ar=iesearch"
"Start Page"="http://www.microsoft.com/isapi/redir.dll?prd={SUB_PRD}&clcid={SUB_CLSID}&pver={SUB_PVER}&ar=home"
"Use_Async_DNS"="yes"
[HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main\ErrorThresholds]

View File

@ -142,3 +142,5 @@
"wshext"="native"
"xenroll"="native"
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]
"Window Title"="Microsoft Internet Explorer 7.0"