Index: nutchez-0.2/src/test/nutchez
===================================================================
--- nutchez-0.2/src/test/nutchez	(revision 185)
+++ nutchez-0.2/src/test/nutchez	(revision 186)
@@ -10,19 +10,32 @@
 
 # [Variables Declaration] #
-DIALOG=dialog
+DIALOG="dialog"
 main_choice=
+lang=
 
 # [PATH Declaration] #
-NutchEZ_Install_PATH=/opt/nutchez
-Tomcat_HOME=/opt/nutchez/tomcat
-NutchEZ_HOME=/home/nutchuser/nutchez
+NutchEZ_Install_PATH="/opt/nutchez"
+Tomcat_HOME="/opt/nutchez/tomcat"
+NutchEZ_HOME="/home/nutchuser/nutchez"
+
+# [Env Declaration] #
+. lang_en_US_nutchez
 
 # [Functions Declaration] #
-## [Prepare Check]  ##
+## [Pre-check for language] ##
+function prepare_lang(){
+lang=$(locale | grep 'LANG=' | cut -d "=" -f2)
+
+# if lang=zh then source lang_zh_TW_nutchez
+echo $lang | grep 'zh' && source lang_zh_TW_nutchez
+}
+
+
+## [Pre-Check for nutch_nodes file] ##
 function prepare_check(){ 
 # 若無 nutchez_nodes　則跳出
 if [ ! -e "${NutchEZ_HOME}/system/nutch_nodes" ]; then
-    $DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC =" --title "[nutch_nodes Files]" \
-    --msgbox "Fail: Don't find $NutchEZ_HOME/system/nutch_nodes !!!" 10 40
+    $DIALOG --clear --backtitle "$dia_back" --title "$dia_pre_check_title_1" \
+    --msgbox "$dia_pre_check_msg_1 $NutchEZ_HOME/system/nutch_nodes !!!" 10 40
     exit
 fi
@@ -31,26 +44,26 @@
 # 第一次執行則要求 user　更新 /etc/hosts
 if [ ! -e "${NutchEZ_HOME}/system/nutch_nodes.bak" ]; then
-    $DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC =" --title "[/etc/host Update]" \
-    --yesno "First execut nutchez management interface.\nPlz update /etc/hosts !!!" 10 55
-
-    echo -e "Plz input root password to update /etc/hosts !!!"
+    $DIALOG --clear --backtitle "$dia_back" --title "$dia_pre_check_title_2" \
+    --yesno "$dia_pre_check_yesno_1\n$dia_pre_check_yesno_2" 10 55
+
+    echo -e "$pre_check_echo_1"
     ./duplicate_del "${NutchEZ_HOME}/system/nutch_nodes"
     su root -c "./duplicate_del /etc/hosts && ./add_hosts ${NutchEZ_HOME}/system/nutch_nodes /etc/hosts"
     #　若密碼輸入失敗則跳出
     if [ $? == "1" ]; then
-        echo "Root password is error ! Plz check root password !!!"
+        echo "$pre_check_echo_2"
         exit
     fi 
 # 若 nutch_nodes 被更新過，則要求更新 /etc/hosts
 elif [ ${NutchEZ_HOME}/system/nutch_nodes -nt ${NutchEZ_HOME}/system/nutch_nodes.bak ]; then
-    $DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC =" --title "[/etc/host Update]" \
-    --yesno "nutch_nodes already be modified.\nPlz update /etc/hosts !!!" 10 55
-
-    echo -e "Plz input root password to update /etc/hosts !!!"
+    $DIALOG --clear --backtitle "$dia_back" --title "$dia_pre_check_title_2" \
+    --yesno "$dia_pre_check_yesno_3\n$dia_pre_check_yesno_2" 10 55
+
+    echo -e "$pre_check_echo_1"
     ./duplicate_del "${NutchEZ_HOME}/system/nutch_nodes"
     su root -c "./duplicate_del /etc/hosts && ./add_hosts ${NutchEZ_HOME}/system/nutch_nodes /etc/hosts"
     #　若密碼輸入失敗則跳出                   
     if [ $? == "1" ]; then                    
-        echo "Root password is error ! Plz check root password !!!"
+        echo "$pre_check_echo_2="
         exit                                  
     fi
@@ -62,14 +75,14 @@
 main_choice="/tmp/main_choice"
 
-$DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC =" \
-    --title "[Management Options]" \
-        --menu "Plz choose: " 15 60 7 \
-        "cluster_status" "Check cluster status" \
-        "server_setup" "Setup namenode & jobtracker" \
-        "cluster_setup" "Setup datanode & tasktracker" \
-        "tomcat_switch" "Start/Stop/Restart Tomcat" \
-        "tomcat_port" "Change Tomcat port" \
-        "lang_switch" "Change language" \
-        "exit" "Exit" 2>$main_choice
+$DIALOG --clear --backtitle "$dia_back" \
+    --title "$dia_main_title_1" \
+        --menu "$dia_choose" 15 60 7 \
+        "cluster_status" "$dia_main_menu_1_1" \
+        "cluster_setup" "$dia_main_menu_1_2" \
+        "server_setup" "$dia_main_menu_1_3" \
+        "tomcat_switch" "$dia_main_menu_1_4" \
+        "tomcat_port" "$dia_main_menu_1_5" \
+        "lang_switch" "$dia_main_menu_1_6" \
+        "exit" "$dia_exit" 2>$main_choice
 }
 
@@ -80,7 +93,7 @@
 rm $clusterStatus 2> /dev/null
 #printf '%16s\t %11s\t %10s\t %25s\n' "[IP] [Hostanme] [Network] [Dtatnode & Tasktracker]" >>$clusterStatus
-echo -e "[IP] \t\t [Hostname] \t [Network] \t [Dtatnode & Tasktracker]" >>$clusterStatus
+echo -e "$cluster_status_echo_1" >>$clusterStatus
 echo -e "------------------------------------------------------------------------" >>$clusterStatus
-echo -e "\nStart to check cluster..."
+echo -e "\n$cluster_status_echo_2"
 for ip in $IP_list
 do
@@ -94,23 +107,17 @@
     fi
 
-#   if [ $? == "255" ]; then 
-#   echo -e "$ip Network is down"
-#   elif [ $? == "1" ]; then
-#   echo -e "Can't ssh to $ip"
-#   fi
-
     [ -z "$Task_Data" ] || Task_Data_status="running"
     host_name=$(cat $NutchEZ_HOME/system/nutch_nodes | grep $ip | awk '{print $2}')
-    echo  -e "$ip  $host_name \t\t $ip_status \t $Task_Data_status" >>$clusterStatus
+    echo -e "$ip  $host_name \t\t $ip_status \t $Task_Data_status" >>$clusterStatus
 #    printf '%16s\t %11s\t %10s\t %25s\n' "$ip $host_name $ip_status $Task_Data_status" >>$clusterStatus
 done
 
-read -p "Plz input anykey to continue..."
-$DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC =" \
-     --title "[Cluster Status]" --textbox $clusterStatus 20 90
-}
-
-
-## [Cluster Setup (namenode & jobtracker)] ##
+read -p "$cluster_status_read_1"
+$DIALOG --clear --backtitle "$dia_back" \
+     --title "$dia_cluster_status_title_1" --textbox $clusterStatus 20 90
+}
+
+
+## [Server Setup (namenode & jobtracker)] ##
 function server_setup(){
 serverSetup=/tmp/serverSetup
@@ -119,23 +126,23 @@
 
 if [ -z "$pid_name" -a -z "$pid_job" ]; then                                                                                               
-    $DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC =" --title "[Server Status]" \
-    --msgbox "Namenode & Jobtracker are not running" 7 50
+    $DIALOG --clear --backtitle "$dia_back" --title "$dia_server_title_1" \
+    --msgbox "$dia_server_msg_1" 7 50
 elif [ -z "$pid_name" -a -n "$pid_job" ]; then
-    $DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC =" --title "[Server Status]" \
-    --msgbox "Jobtracker is running, Namenode is not running" 7 50
+    $DIALOG --clear --backtitle "$dia_back" --title "$dia_server_title_1" \
+    --msgbox "$dia_server_msg_2" 7 50
 elif [ -n "$pid_name" -a -z "$pid_job" ]; then
-    $DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC =" --title "[Server Status]" \
-    --msgbox "Namenode is running, Jobtracker is not running" 7 50
-else
-    $DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC =" --title "[Server Status]" \
-    --msgbox "Namenode & Jobtracker are running" 7 50
-fi
-
-$DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC =" --title "[Namenode & Jobtracker Setup]" \
-    --menu "Plz choose: " 15 65 4 \
-    "start" "Start namenode & jobtracker" \
-    "stop" "Stop namenode & jobtracker" \
-    "restart" "restart namenode & jobtracker" \
-    "exit" "Exit" 2>$serverSetup
+    $DIALOG --clear --backtitle "$dia_back" --title "$dia_server_title_1" \
+    --msgbox "$dia_server_msg_3" 7 50
+else
+    $DIALOG --clear --backtitle "$dia_back" --title "$dia_server_title_1" \
+    --msgbox "$dia_server_msg_4" 7 50
+fi
+
+$DIALOG --clear --backtitle "$dia_back" --title "$dia_server_title_2" \
+    --menu "$dia_choose" 15 65 4 \
+    "start" "$dia_server_menu_1_1" \
+    "stop" "$dia_server_menu_1_2" \
+    "restart" "$dia_server_menu_1_3" \
+    "exit" "$dia_exit" 2>$serverSetup
 
 if [ "$(cat $serverSetup)" == "start" ]; then
@@ -153,6 +160,4 @@
     exit
 fi
-
-
 }
 
@@ -168,10 +173,10 @@
 clusterSetup="/tmp/clusterSetup"
 
-$DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC =" \
-    --title "[Management Options]" \
-    --menu "Plz choose: " 15 55 3 \
-    "All" "All nodes" \
-    "Part" "Choose part nodess" \
-    "Exit" "Exit" 2>$allpart
+$DIALOG --clear --backtitle "$dia_back" \
+    --title "$dia_cluster_setup_title_1" \
+    --menu "$dia_choose" 15 55 3 \
+    "All" "$dia_cluster_setup_menu_1_1" \
+    "Part" "$dia_cluster_setup_menu_1_2" \
+    "Exit" "$dia_exit" 2>$allpart
 
 # 判斷是否選 all　和 part，若是 all　直接到服務選單，若是 part 則先到機器選單
@@ -179,6 +184,6 @@
      cat $NutchEZ_HOME/system/nutch_nodes | grep -v '^$' | grep -v '#'  | awk '{print $1}' >$runNodes
 elif [ "$(cat $allpart)" == "Part" ]; then
-    $DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC  = " --title "[Datanode & Tasktracker Nodes Choose]" \
-    --checklist "datanode & tasktracker choose: " 15 55 7 $(cat $NutchEZ_HOME/system/nutch_nodes | \
+    $DIALOG --clear --backtitle "$dia_back" --title "$dia_cluster_setup_title_2" \
+    --checklist "$dia_cluster_setup_check_1" 15 55 7 $(cat $NutchEZ_HOME/system/nutch_nodes | \
     grep -v '^$' | grep -v '#'  | awk '{print $1 "\t" $2 "\t" "$LIST_status" }') 2>$runNodes
 else
@@ -192,39 +197,36 @@
 fi
 
-$DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC =" --title "[Datanode & Tasktracker Setup]" \
-    --menu "Plz choose: " 15 65 4 \
-    "start" "Start datanodes & tasktrackers" \
-    "stop" "Stop datanodes & tasktrackers" \
-    "restart" "restart datanodes & tasktrackers" \
-    "exit" "Exit" 2>$clusterSetup
+$DIALOG --clear --backtitle "$dia_back" --title "$dia_cluster_setup_title_3" \
+    --menu "$dia_choose" 15 65 4 \
+    "start" "$dia_cluster_setup_menu_2_1" \
+    "stop" "$dia_cluster_setup_menu_2_2" \
+    "restart" "$dia_cluster_setup_menu_2_3" \
+    "exit" "$dia_exit" 2>$clusterSetup
 
 if [ "$(cat $clusterSetup)" == "start" ]; then
-    echo -e "\n[Start datanode & tasktracker]"
+    echo -e "\n$cluster_setup_echo_1"
+    for node in $(cat $runNodes) 
+    do
+        ssh -o StrictHostKeyChecking=no $node "$NutchEZ_Install_PATH/nutch/bin/hadoop-daemon.sh start datanode \
+        ; $NutchEZ_Install_PATH/nutch/bin/hadoop-daemon.sh start tasktracker" 2>/dev/null
+        [ $? == "0" ] || echo "$cluster_setup_echo_error $node !!!"
+    done
+elif [ "$(cat $clusterSetup)" == "stop" ]; then
+    echo -e "\n$cluster_setup_echo_3"
     for node in $(cat $runNodes)
     do
-        echo -e "start $node datanode & tasktracker !"
-        ssh -o StrictHostKeyChecking=no $node "$NutchEZ_Install_PATH/nutch/bin/hadoop-daemon.sh start datanode \
-        ; $NutchEZ_Install_PATH/nutch/bin/hadoop-daemon.sh start tasktracker"
-        [ $? == "0" ] || echo "Can't ssh to $node !!!"
-    done
-elif [ "$(cat $clusterSetup)" == "stop" ]; then
-    echo -e "\n[Stop datanode & tasktracker]"
-    for node in $(cat $runNodes)
-    do
-        echo -e "stop $node datanode & tasktracker !"
         ssh -o StrictHostKeyChecking=no $node "$NutchEZ_Install_PATH/nutch/bin/hadoop-daemon.sh stop datanode \
-        ; $NutchEZ_Install_PATH/nutch/bin/hadoop-daemon.sh stop tasktracker"
-        [ $? == "0" ] || echo "Can't ssh to $node !!!"
+        ; $NutchEZ_Install_PATH/nutch/bin/hadoop-daemon.sh stop tasktracker" 2>/dev/null
+        [ $? == "0" ] || echo "$cluster_setup_echo_error $node !!!"
     done
 elif [ "$(cat $clusterSetup)" == "restart"  ]; then
-    echo -e "\n[Restart datanode & tasktracker]"
+    echo -e "\n$cluster_setup_echo_5"
     for node in $(cat $runNodes)
     do  
-        echo -e "restart $node datanode & tasktracker !"
         ssh -o StrictHostKeyChecking=no $node "$NutchEZ_Install_PATH/nutch/bin/hadoop-daemon.sh stop datanode \
         ; $NutchEZ_Install_PATH/nutch/bin/hadoop-daemon.sh stop tasktracker \
         ; $NutchEZ_Install_PATH/nutch/bin/hadoop-daemon.sh start datanode \
-        ; $NutchEZ_Install_PATH/nutch/bin/hadoop-daemon.sh start tasktracker"
-        [ $? == "0" ] || echo "Can't ssh to $node !!!"
+        ; $NutchEZ_Install_PATH/nutch/bin/hadoop-daemon.sh start tasktracker" 2>/dev/null
+        [ $? == "0" ] || echo "$cluster_setup_echo_error $node !!!"
     done
 else
@@ -235,21 +237,19 @@
 ## [Tomcat Severice start/stop/restart] ##
 function tomcat_switch(){
-pid_tc=$(ps axw -eo pid,command | grep "catalina" | grep "java" | grep "start" | awk '{print $1}')
-#echo $pid_tc
-#read
-if [ -n "$pid_tc" ]; then
-    $DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC =" --title "[Tomcat Status]" \
-        --msgbox "Tomcat is runing in this system !!!" 7 50
-else
-    $DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC =" --title "[Tomcat Status]" \
-        --msgbox "Tomcat is not running in this system !!!" 7 50
+tom_pids=$(ps x | grep -v 'grep' | grep "tomcat" | awk '{print $1}')
+if [ -n "$tom_pids" ]; then
+    $DIALOG --clear --backtitle "$dia_back" --title "$dia_tomcat_switch_title_1" \
+        --msgbox "$dia_tomcat_switch_msg_1" 7 50
+else
+    $DIALOG --clear --backtitle "$dia_back" --title "$dia_tomcat_switch_title_1" \
+        --msgbox "$dia_tomcat_switch_msg_2" 7 50
 fi
 tomcatSwitch="/tmp/tomcatSwitch"
-$DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC =" --title "[Tomcat Service Options]" \
-    --menu "Plz choose: " 15 55 4 \
-        "start" "Start tomcat" \
-        "stop" "Stop tomcat" \
-        "restart" "Restart tomcat" \
-        "exit" "Exit" 2>$tomcatSwitch
+$DIALOG --clear --backtitle "$dia_back" --title "$dia_tomcat_switch_title_2" \
+    --menu "$dia_choose" 15 55 4 \
+        "start" "$dia_tomcat_switch_menu_1_1" \
+        "stop" "$dia_tomcat_switch_menu_1_2" \
+        "restart" "$dia_tomcat_switch_menu_1_3" \
+        "exit" "$dia_exit" 2>$tomcatSwitch
 
 if [ "$(cat $tomcatSwitch)" == "exit" ]; then
@@ -259,22 +259,30 @@
 # jude $Tomcat_HOME/bin/startup.sh 
 if [ ! -e $Tomcat_HOME/bin/startup.sh ]; then
-    echo -e "\nDon't fine $Tomcat_HOME/bin/startup.sh"
+    echo -e "\n$tomcat_switch_echo_1 $Tomcat_HOME/bin/startup.sh"
     exit
 fi
 
 if [ ! -e $Tomcat_HOME/bin/shutdown.sh ]; then
-    echo -e "\nDon't fine $Tomcat_HOME/bin/shutdown.sh"
+    echo -e "\n$tomcat_switch_echo_1 $Tomcat_HOME/bin/shutdown.sh"
     exit
 fi
 
 if [ "$(cat $tomcatSwitch)" == "start" ]; then
-    echo "[Start Tomcat]"
+    echo "$tomcat_switch_echo_3"
     $Tomcat_HOME/bin/startup.sh
 elif [ "$(cat $tomcatSwitch)" == "stop" ]; then
-    echo "[Stop Tomcat]"
+    echo "$tomcat_switch_echo_4"
     $Tomcat_HOME/bin/shutdown.sh
+    for tom_pid in $tom_pids
+    do
+        kill -9 $tom_pid 2>/dev/null
+    done
 elif [ "$(cat $tomcatSwitch)" == "restart" ]; then
-    echo "[Restart Tomcat]"
+    echo "$tomcat_switch_echo_5"
     $Tomcat_HOME/bin/shutdown.sh
+    for tom_pid in $tom_pids
+    do
+        kill -9 $tom_pid 2>/dev/null
+    done
     $Tomcat_HOME/bin/startup.sh
 else
@@ -287,11 +295,11 @@
 
 if [ ! -e $Tomcat_HOME/conf/server.xml ]; then
-    $DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC =" --title "[Tomcat Servel.xml]" \
-        --msgbox "Fial: Don't find $Tomcat_HOME/conf/server.xml !!!" 10 50
+    $DIALOG --clear --backtitle "$dia_back" --title "$dia_tomcat_port_title_1" \
+        --msgbox "$dia_tomcat_port_msg_1 $Tomcat_HOME/conf/server.xml !!!" 10 50
     exit
 fi
 tomcatPort="/tmp/tomcatPort"
-$DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC  = " --title "[Tomcat Port Change]" \
-    --inputbox "Plz input port number for tomcat (default is 8080)" 10 55 2>$tomcatPort
+$DIALOG --clear --backtitle "$dia_back" --title "$dia_tomcat_port_title_2" \
+    --inputbox "$dia_tomcat_port_input_1" 10 55 2>$tomcatPort
 
 if [ -z "$(cat $tomcatPort)" ]; then
@@ -300,9 +308,13 @@
     modify_line_nu=$(cat -n $Tomcat_HOME/conf/server.xml | grep -v SSL | grep 'HTTP/1.1' | grep '<Connector' | awk '{print $1}')
     sed -i "${modify_line_nu}c <Connector port=\"$(cat $tomcatPort)\" protocol=\"HTTP/1.1\"" $Tomcat_HOME/conf/server.xml
+
+    tom_pids=$(ps x | grep -v 'grep' | grep "tomcat" | awk '{print $1}')
     $Tomcat_HOME/bin/shutdown.sh
+    for tom_pid in $tom_pids
+       do
+           kill -9 $tom_pid 2>/dev/null
+       done
     $Tomcat_HOME/bin/startup.sh
 fi
-
-
 }
 
@@ -310,35 +322,33 @@
 ## [Language Change] ##
 function lang_switch(){
-echo -e "lang_switch"
 langSwitch="/tmp/langSwitch"
-$DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC  =" --title "[Language Swaitch]" \
-    --menu "Plz choose: " 15 55 3 \
-    "English" "English" \
-    "Chinese" "Chinese" \
-    "Exit" "Exit" 2>$langSwitch
+$DIALOG --clear --backtitle "$dia_back" --title "$dia_lang_title_1" \
+    --menu "$dia_choose" 15 55 3 \
+    "en_US" "$dia_lang_menu_1_1" \
+    "zh_TW" "$dia_lang_menu_1_2" \
+    "Exit" "$dia_exit" 2>$langSwitch
 #
 if [ "$(cat $langSwitch)" == "Exit" ]; then
     exit
-else
-    echo "source $(cat $langSwitch)"
-fi
-}
-
-
-# [Main Code] #
-if [ $USER != "nutchuser" ]; then
-    echo -e "\nYour identify is not nutchuser, plz change to \"nutchuser\" !!!"
-    exit
-fi
-
-prepare_check
-main_menu
+elif [ "$(cat $langSwitch)" == "en_US" ]; then
+    source lang_en_US_nutchez
+    main_menu
+    menu_choose
+elif [ "$(cat $langSwitch)" == "zh_TW" ]; then
+    source lang_zh_TW_nutchez
+    main_menu
+    menu_choose
+fi
+}
+
+## [Menu_choose] ##
+function menu_choose(){
 case $(cat $main_choice) in
     "cluster_status")
         cluster_status;;
+    "cluster_setup")
+        cluster_setup;;
     "server_setup")    
         server_setup;;
-    "cluster_setup")
-        cluster_setup;;
     "tomcat_switch")
         tomcat_switch;;
@@ -348,2 +358,14 @@
         lang_switch;;
 esac
+}
+
+# [Main Code] #
+if [ $USER != "nutchuser" ]; then
+    echo -e "\n$user_error"
+    exit
+fi
+
+prepare_lang
+prepare_check
+main_menu
+menu_choose
