summaryrefslogtreecommitdiffstats
path: root/PCBSD/pc-sysinstall/backend/functions-localize.sh
diff options
context:
space:
mode:
Diffstat (limited to 'PCBSD/pc-sysinstall/backend/functions-localize.sh')
-rw-r--r--PCBSD/pc-sysinstall/backend/functions-localize.sh449
1 files changed, 0 insertions, 449 deletions
diff --git a/PCBSD/pc-sysinstall/backend/functions-localize.sh b/PCBSD/pc-sysinstall/backend/functions-localize.sh
deleted file mode 100644
index 02dfd61..0000000
--- a/PCBSD/pc-sysinstall/backend/functions-localize.sh
+++ /dev/null
@@ -1,449 +0,0 @@
-#!/bin/sh
-# Functions which runs commands on the system
-
-. ${BACKEND}/functions.sh
-. ${BACKEND}/functions-parse.sh
-
-
-# Function which localizes a FreeBSD install
-localize_freebsd()
-{
- sed -i.bak "s/lang=en_US/lang=${LOCALE}/g" ${FSMNT}/etc/login.conf
- rm ${FSMNT}/etc/login.conf.bak
-};
-
-
-# Function which localizes a PC-BSD install
-localize_pcbsd()
-{
- #Change the skel files
- ##########################################################################
- sed -i.bak "s/Country=us/Country=${COUNTRY}/g" ${FSMNT}/usr/share/skel/.kde4/share/config/kdeglobals
- sed -i.bak "s/Country=us/Country=${COUNTRY}/g" ${FSMNT}/root/.kde4/share/config/kdeglobals
- sed -i.bak "s/Language=en_US/Language=${SETLANG}:${LOCALE}/g" ${FSMNT}/usr/share/skel/.kde4/share/config/kdeglobals
- sed -i.bak "s/Language=en_US/Language=${SETLANG}:${LOCALE}/g" ${FSMNT}/root/.kde4/share/config/kdeglobals
-
- #Change KDM Langs
- ##########################################################################
- sed -i.bak "s/Language=en_US/Language=${LOCALE}.UTF-8/g" ${FSMNT}/usr/local/kde4/share/config/kdm/kdmrc
-
- # Check if we have a localized splash screen and copy it
- if [ -e "${FSMNT}/usr/PCBSD/splash-screens/loading-screen-${SETLANG}.pcx" ]
- then
- cp ${FSMNT}/usr/PCBSD/splash-screens/loading-screen-${SETLANG}.pcx ${FSMNT}/boot/loading-screen.pcx
- fi
-
-};
-
-localize_x_keyboard()
-{
- KEYMOD="$1"
- KEYLAY="$2"
- KEYVAR="$3"
- COUNTRY="$4"
- SETXKBMAP=""
-
- if [ "${COUNTRY}" = "NONE" ] || [ "${COUNTRY}" = "us" ];
- then
- #In this case we don't need any additional language
- COUNTRY=""
- else
- COUNTRY=",${COUNTRY}"
- fi
-
- if [ "${KEYMOD}" != "NONE" ]
- then
- SETXKBMAP="-model ${KEYMOD}"
- KXMODEL="${KEYMOD}"
- else
- KXMODEL="pc104"
- fi
-
- if [ "${KEYLAY}" != "NONE" ]
- then
- localize_key_layout "$KEYLAY"
- SETXKBMAP="${SETXKBMAP} -layout ${KEYLAY}"
- KXLAYOUT="${KEYLAY}"
- else
- KXLAYOUT="us"
- fi
-
- if [ "${KEYVAR}" != "NONE" ]
- then
- SETXKBMAP="${SETXKBMAP} -variant ${KEYVAR}"
- KXVAR="(${KEYVAR})"
- else
- KXVAR=""
- fi
-
- # Setup .xprofile with our setxkbmap call now
- if [ ! -z "${SETXKBMAP}" ]
- then
- if [ ! -e "${FSMNT}/usr/share/skel/.xprofile" ]
- then
- echo "#!/bin/sh" >${FSMNT}/usr/share/skel/.xprofile
- fi
-
- # Save the keyboard layout for user / root X logins
- echo "setxkbmap ${SETXKBMAP}" >>${FSMNT}/usr/share/skel/.xprofile
- chmod 755 ${FSMNT}/usr/share/skel/.xprofile
- cp ${FSMNT}/usr/share/skel/.xprofile ${FSMNT}/root/.xprofile
-
- # Save it for KDM
- echo "setxkbmap ${SETXKBMAP}" >>${FSMNT}/usr/local/kde4/share/config/kdm/Xsetup
- fi
-
-
- # Create the kxkbrc configuration using these options
- echo "[Layout]
-DisplayNames=${KXLAYOUT}${COUNTRY}
-IndicatorOnly=false
-LayoutList=${KXLAYOUT}${KXVAR}${COUNTRY}
-Model=${KXMODEL}
-Options=
-ResetOldOptions=true
-ShowFlag=true
-ShowSingle=false
-SwitchMode=WinClass
-Use=true " >${FSMNT}/usr/share/skel/.kde4/share/config/kxkbrc
-
-};
-
-localize_key_layout()
-{
-
- KEYLAYOUT="$1"
-
- # Set the keylayout in rc.conf
- case ${KEYLAYOUT} in
- am) KEYLAYOUT_CONSOLE="hy.armscii-8" ;;
- ch) KEYLAYOUT_CONSOLE="swissgerman.iso" ;;
- cz) KEYLAYOUT_CONSOLE="cz.iso2" ;;
- de) KEYLAYOUT_CONSOLE="german.iso" ;;
- dk) KEYLAYOUT_CONSOLE="danish.iso" ;;
- ee) KEYLAYOUT_CONSOLE="estonian.iso" ;;
- es) KEYLAYOUT_CONSOLE="spanish.iso" ;;
- fi) KEYLAYOUT_CONSOLE="finnish.iso" ;;
- is) KEYLAYOUT_CONSOLE="icelandic.iso" ;;
- jp) KEYLAYOUT_CONSOLE="jp.106" ;;
- nl) KEYLAYOUT_CONSOLE="dutch.iso.acc" ;;
- no) KEYLAYOUT_CONSOLE="norwegian.iso" ;;
- pl) KEYLAYOUT_CONSOLE="pl_PL.ISO8859-2" ;;
- ru) KEYLAYOUT_CONSOLE="ru.koi8-r" ;;
- sk) KEYLAYOUT_CONSOLE="sk.iso2" ;;
- se) KEYLAYOUT_CONSOLE="swedish.iso" ;;
- tr) KEYLAYOUT_CONSOLE="tr.iso9.q" ;;
- gb) KEYLAYOUT_CONSOLE="uk.iso" ;;
- *) if [ ! -z "${KEYLAYOUT}" ]
- then
- KEYLAYOUT_CONSOLE="${KEYLAYOUT}.iso"
- fi
- ;;
- esac
-
- if [ ! -z "${KEYLAYOUT_CONSOLE}" ]
- then
- echo "keymap=\"${KEYLAYOUT_CONSOLE}\"" >>${FSMNT}/etc/rc.conf
- fi
-
-};
-
-# Function which prunes other l10n files from the KDE install
-localize_prune_langs()
-{
- get_value_from_cfg localizeLang
- KEEPLANG="$VAL"
- if [ -z "$KEEPLANG" ] ; then
- KEEPLANG="en"
- fi
- export KEEPLANG
-
- echo_log "Pruning other l10n files, keeping ${KEEPLANG}"
-
- # Create the script to do uninstalls
- echo '#!/bin/sh
-
- for i in `pkg_info | grep "kde-l10n" | cut -d " " -f 1`
- do
- echo "$i" | grep "${KEEPLANG}-kde"
- if [ "$?" != "0" ] ; then
- pkg_delete ${i}
- fi
- done
- ' > ${FSMNT}/.pruneLangs.sh
-
- chmod 755 ${FSMNT}/.pruneLangs.sh
- chroot ${FSMNT} /.pruneLangs.sh >/dev/null 2>/dev/null
- rm ${FSMNT}/.pruneLangs.sh
-
-};
-
-# Function which sets COUNTRY SETLANG and LOCALE based upon $1
-localize_get_codes()
-{
- TARGETLANG="${1}"
- # Setup the presets for the specific lang
- case $TARGETLANG in
- af) COUNTRY="C"
- SETLANG="af"
- LOCALE="af_ZA"
- ;;
- ar) COUNTRY="C"
- SETLANG="ar"
- LOCALE="en_US"
- ;;
- az) COUNTRY="C"
- SETLANG="az"
- LOCALE="en_US"
- ;;
- ca) COUNTRY="es"
- SETLANG="es:ca"
- LOCALE="ca_ES"
- ;;
- be) COUNTRY="be"
- SETLANG="be"
- LOCALE="be_BY"
- ;;
- bn) COUNTRY="bn"
- SETLANG="bn"
- LOCALE="en_US"
- ;;
- bg) COUNTRY="bg"
- SETLANG="bg"
- LOCALE="bg_BG"
- ;;
- cs) COUNTRY="cz"
- SETLANG="cs"
- LOCALE="cs_CZ"
- ;;
- da) COUNTRY="dk"
- SETLANG="da"
- LOCALE="da_DK"
- ;;
- de) COUNTRY="de"
- SETLANG="de"
- LOCALE="de_DE"
- ;;
- en_GB) COUNTRY="gb"
- SETLANG="en_GB:cy"
- LOCALE="en_GB"
- ;;
- el) COUNTRY="gr"
- SETLANG="el:gr"
- LOCALE="el_GR"
- ;;
- es) COUNTRY="es"
- SETLANG="es"
- LOCALE="es_ES"
- ;;
- es_LA) COUNTRY="us"
- SETLANG="es:en_US"
- LOCALE="es_ES"
- ;;
- et) COUNTRY="ee"
- SETLANG="et"
- LOCALE="et_EE"
- ;;
- fr) COUNTRY="fr"
- SETLANG="fr"
- LOCALE="fr_FR"
- ;;
- he) COUNTRY="il"
- SETLANG="he:ar"
- LOCALE="he_IL"
- ;;
- hr) COUNTRY="hr"
- SETLANG="hr"
- LOCALE="hr_HR"
- ;;
- hu) COUNTRY="hu"
- SETLANG="hu"
- LOCALE="hu_HU"
- ;;
- it) COUNTRY="it"
- SETLANG="it"
- LOCALE="it_IT"
- ;;
- ja) COUNTRY="jp"
- SETLANG="ja"
- LOCALE="ja_JP"
- ;;
- ko) COUNTRY="kr"
- SETLANG="ko"
- LOCALE="ko_KR"
- ;;
- nl) COUNTRY="nl"
- SETLANG="nl"
- LOCALE="nl_NL"
- ;;
- nn) COUNTRY="no"
- SETLANG="nn"
- LOCALE="en_US"
- ;;
- pa) COUNTRY="pa"
- SETLANG="pa"
- LOCALE="en_US"
- ;;
- pl) COUNTRY="pl"
- SETLANG="pl"
- LOCALE="pl_PL"
- ;;
- pt) COUNTRY="pt"
- SETLANG="pt"
- LOCALE="pt_PT"
- ;;
- pt_BR) COUNTRY="br"
- SETLANG="pt_BR"
- LOCALE="pt_BR"
- ;;
- ru) COUNTRY="ru"
- SETLANG="ru"
- LOCALE="ru_RU"
- ;;
- sl) COUNTRY="si"
- SETLANG="sl"
- LOCALE="sl_SI"
- ;;
- sk) COUNTRY="sk"
- SETLANG="sk"
- LOCALE="sk_SK"
- ;;
- sv) COUNTRY="se"
- SETLANG="sv"
- LOCALE="sv_SE"
- ;;
- uk) COUNTRY="ua"
- SETLANG="uk"
- LOCALE="uk_UA"
- ;;
- vi) COUNTRY="vn"
- SETLANG="vi"
- LOCALE="en_US"
- ;;
- zh_CN) COUNTRY="cn"
- SETLANG="zh_CN"
- LOCALE="zh_CN"
- ;;
- zh_TW) COUNTRY="tw"
- SETLANG="zh_TW"
- LOCALE="zh_TW"
- ;;
- *) COUNTRY="C"
- SETLANG="${TARGETLANG}"
- LOCALE="en_US"
- ;;
- esac
-
- export COUNTRY SETLANG LOCALE
-
-};
-
-# Function which sets the timezone on the system
-set_timezone()
-{
- TZONE="$1"
- cp ${FSMNT}/usr/share/zoneinfo/${TZONE} ${FSMNT}/etc/localtime
-};
-
-# Function which enables / disables NTP
-set_ntp()
-{
- ENABLED="$1"
- if [ "$ENABLED" = "yes" -o "${ENABLED}" = "YES" ]
- then
- cat ${FSMNT}/etc/rc.conf 2>/dev/null | grep 'ntpd_enable="YES"' >/dev/null 2>/dev/null
- if [ "$?" != "0" ]
- then
- echo 'ntpd_enable="YES"' >>${FSMNT}/etc/rc.conf
- echo 'ntpd_sync_on_start="YES"' >>${FSMNT}/etc/rc.conf
- fi
- else
- cat ${FSMNT}/etc/rc.conf 2>/dev/null | grep 'ntpd_enable="YES"' >/dev/null 2>/dev/null
- if [ "$?" != "0" ]
- then
- sed -i.bak 's|ntpd_enable="YES"||g' ${FSMNT}/etc/rc.conf
- fi
- fi
-};
-
-# Starts checking for localization directives
-run_localize()
-{
- KEYLAYOUT="NONE"
- KEYMOD="NONE"
- KEYVAR="NONE"
- LANGUAGE="NONE"
-
- while read line
- do
- # Check if we need to do any localization
- echo $line | grep "^localizeLang=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
-
- # Set our country / lang / locale variables
- get_value_from_string "$line"
- localize_get_codes ${VAL}
-
- get_value_from_string "$line"
- # If we are doing PC-BSD install, localize it as well as FreeBSD base
- if [ "${INSTALLTYPE}" != "FreeBSD" ]
- then
- localize_pcbsd "$VAL"
- LANGUAGE="$VAL"
- fi
- localize_freebsd "$VAL"
- fi
-
- # Check if we need to do any keylayouts
- echo $line | grep "^localizeKeyLayout=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- get_value_from_string "$line"
- KEYLAYOUT="$VAL"
- fi
-
- # Check if we need to do any key models
- echo $line | grep "^localizeKeyModel=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- get_value_from_string "$line"
- KEYMOD="$VAL"
- fi
-
- # Check if we need to do any key variant
- echo $line | grep "^localizeKeyVariant=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- get_value_from_string "$line"
- KEYVAR="$VAL"
- fi
-
-
- # Check if we need to set a timezone
- echo $line | grep "^timeZone=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- get_value_from_string "$line"
- set_timezone "$VAL"
- fi
-
- # Check if we need to set a timezone
- echo $line | grep "^enableNTP=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- get_value_from_string "$line"
- set_ntp "$VAL"
- fi
- done <${CFGF}
-
- if [ "${INSTALLTYPE}" != "FreeBSD" ] ; then
- # Do our X keyboard localization
- localize_x_keyboard "${KEYMOD}" "${KEYLAYOUT}" "${KEYVAR}" "${COUNTRY}"
- fi
-
- # Check if we want to prunt any other KDE lang files to save some disk space
- get_value_from_cfg localizePrune
- if [ "${VAL}" = "yes" -o "${VAL}" = "YES" ] ; then
- localize_prune_langs
- fi
-
- # Update the login.conf db, even if we didn't localize, its a good idea to make sure its up2date
- run_chroot_cmd "/usr/bin/cap_mkdb /etc/login.conf" >/dev/null 2>/dev/null
-
-};
OpenPOWER on IntegriCloud