Index: nutchez-0.2/src/test/lang_en_US_nutchez
===================================================================
--- nutchez-0.2/src/test/lang_en_US_nutchez	(revision 186)
+++ nutchez-0.2/src/test/lang_en_US_nutchez	(revision 186)
@@ -0,0 +1,94 @@
+#!/bin/bash
+# Program:
+#   English Language file for nutchez
+# Author:
+#   Waue, Shunfa, Rock {waue, shunfa, rock}@nchc.org.tw
+# Version:
+#    1.0
+# History:
+#   2010/06/14  Rock    First release (1.0)
+
+# [Variables Declaration] #
+## Lang for common ##
+user_error="Your identify is not nutchuser, plz change to \"nutchuser\" !!!"
+
+## [Lang for dialog] ##
+dia_back='= [NutchEz Management Interface] ~by NCHC ='
+dia_choose="Plz choose: "
+dia_exit="Exit"
+
+## [Lang for prepare_check] ##
+dia_pre_check_title_1="[nutch_nodes Files]"
+dia_pre_check_msg_1="Fail: Don't find"
+dia_pre_check_title_2="[/etc/host Update]"
+dia_pre_check_yesno_1="First execut nutchez management interface."
+dia_pre_check_yesno_2="Plz update /etc/hosts !!!"
+pre_check_echo_1="Plz input root password to update /etc/hosts !!!"
+pre_check_echo_2="Root password is error ! Plz check root password !!!"
+dia_pre_check_yesno_3="nutch_nodes already be modified."
+
+## [Lang for main_menu()] ##
+dia_main_title_1="[Management Options]"
+dia_main_menu_1_1="Check cluster status"
+dia_main_menu_1_2="Setup datanode & tasktracker"
+dia_main_menu_1_3="Setup namenode & jobtracker"
+dia_main_menu_1_4="Start/Stop/Restart Tomcat"
+dia_main_menu_1_5="Change Tomcat port"
+dia_main_menu_1_6="Change language"
+
+## [Lang for cluster_status()] ##
+cluster_status_echo_1="[IP] \t\t [Hostname] \t [Network] \t [Dtatnode & Tasktracker]"
+cluster_status_echo_2="Start to check cluster.."
+cluster_status_read_1="Plz input anykey to continue.."
+dia_cluster_status_title_1="[Cluster Status]"
+
+## [Lang for srver_setup()] ##
+dia_server_title_1="[Server Status]"
+dia_server_msg_1="Namenode & Jobtracker are not running"
+dia_server_msg_2="Jobtracker is running, Namenode is not running"
+dia_server_msg_3="Namenode is running, Jobtracker is not running"
+dia_server_msg_4="Namenode & Jobtracker are running"
+dia_server_title_2="[Namenode & Jobtracker Setup]"
+dia_server_menu_1_1="Start Namenode & Jobtracker"
+dia_server_menu_1_2="Stop Namenode & Jobtracker"
+dia_server_menu_1_3="Restart Namenode & Jobtracker"
+
+## [Labg for cluster_setup()] ##
+dia_cluster_setup_title_1="[All or Part nodes]"
+dia_cluster_setup_menu_1_1="All nodes"
+dia_cluster_setup_menu_1_2="Part nodes"
+dia_cluster_setup_title_2="[Datanode & Tasktracker Nodes Choice]"
+dia_cluster_setup_check_1="Choose Datanode & Tasktracker: "
+dia_cluster_setup_title_3="[Datanode & Tasktracker Setup]"
+dia_cluster_setup_menu_2_1="Start Datanodes & Tasktrackers"
+dia_cluster_setup_menu_2_2="Stop Datanodes & Tasktrackers"
+dia_cluster_setup_menu_2_3="Restart Datanodes & Tasktrackers"
+cluster_setup_echo_1="[Start datanode & tasktracker]"
+cluster_setup_echo_error="Can't ssh to "
+cluster_setup_echo_3="[Stop datanode & tasktracker]"
+cluster_setup_echo_5="[Restart datanode & tasktracker]"
+
+## [Lang for tomcat_swith()] #
+dia_tomcat_switch_title_1="[Tomcat Status]"
+dia_tomcat_switch_msg_1="Tomcat is runing !!!"
+dia_tomcat_switch_msg_2="Tomcat is not running !!!"
+dia_tomcat_switch_title_2="[Tomcat Service Options]"
+dia_tomcat_switch_menu_1_1="Start Tomcat"
+dia_tomcat_switch_menu_1_2="Stop Tomcat"
+dia_tomcat_switch_menu_1_3="Restart Tomcat"
+tomcat_switch_echo_1="Faul: Don't fine"
+tomcat_switch_echo_3="[Start Tomcat]"
+tomcat_switch_echo_4="[Stop Tomcat]"
+tomcat_switch_echo_5="[Restart Tomcat]"
+
+## [Lang for tomcat_port()] ##
+dia_tomcat_port_title_1="[Check Tomcat servel.xml]"
+dia_tomcat_port_msg_1="Faill: Don't find"
+dia_tomcat_port_title_2="[Tomcat Port Change]"
+dia_tomcat_port_input_1="Plz input port number for tomcat (default is 8080)"
+
+## [Lang for lang_switch()] ##
+dia_lang_title_1="[Language Switch]"
+dia_lang_menu_1_1="English"
+dia_lang_menu_1_2="Chinese"
+
Index: nutchez-0.2/src/test/lang_zh_TW_nutchez
===================================================================
--- nutchez-0.2/src/test/lang_zh_TW_nutchez	(revision 186)
+++ nutchez-0.2/src/test/lang_zh_TW_nutchez	(revision 186)
@@ -0,0 +1,94 @@
+#!/bin/bash
+# Program:
+#   Chinese Language file for nutchez
+# Author:
+#   Waue, Shunfa, Rock {waue, shunfa, rock}@nchc.org.tw
+# Version:
+#    1.0
+# History:
+#   2010/06/14  Rock    First release (1.0)
+
+# [Variables Declaration] #
+## Lang for common ##
+user_error="您不是nutchuser，請切換成 \"nutchuser\" 使用者 !!!"
+
+## [Lang for dialog] ##
+dia_back='= [NutchEz 管理介面] ~by NCHC ='
+dia_choose="請選擇: "
+dia_exit="結束"
+
+## [Lang for prepare_check] ##
+dia_pre_check_title_1="[nutch_nodes 檔案]"
+dia_pre_check_msg_1="失敗：找不到"
+dia_pre_check_title_2="[/etc/host 檔案更新]"
+dia_pre_check_yesno_1="第一次執行 nutchez 管理介面"
+dia_pre_check_yesno_2="請更新 /etc/hosts !!!"
+pre_check_echo_1="請輸入 root 密碼來更新 /etc/hosts !!!"
+pre_check_echo_2="root 密碼錯誤，請先確認 root 密碼是否正確 !!!"
+dia_pre_check_yesno_3="nutch_nodes 檔案已被修改過"
+
+## [Lang for main_menu()] ##
+dia_main_title_1="[管理功能選項]"
+dia_main_menu_1_1="檢查 Cluster 狀態"
+dia_main_menu_1_2="設定 datanode & tasktracker"
+dia_main_menu_1_3="設定 namenode & jobtracker"
+dia_main_menu_1_4="啟動/停止/重新啟動 Tomcat"
+dia_main_menu_1_5="更改 Tomcat port"
+dia_main_menu_1_6="更換語言"
+
+## [Lang for cluster_status()] ##
+cluster_status_echo_1="[IP] \t\t [Hostname] \t [Network] \t [Dtatnode & Tasktracker]"
+cluster_status_echo_2="開始檢查 Cluster..."
+cluster_status_read_1="請輸入任何鍵繼續..."
+dia_cluster_status_title_1="[Cluster 狀態]"
+
+## [Lang for srver_setup()] ##
+dia_server_title_1="[Server 狀態]"
+dia_server_msg_1="Namenode & Jobtracker 並未運作"
+dia_server_msg_2="Jobtracker 正在運作, Namenode 並未運作"
+dia_server_msg_3="Namenode 正在運作, Jobtracker 並未運作"
+dia_server_msg_4="Namenode & Jobtracker 正在運作"
+dia_server_title_2="[Namenode & Jobtracker 設定]"
+dia_server_menu_1_1="啟動 Namenode & Jobtracker"
+dia_server_menu_1_2="停止 Namenode & Jobtracker"
+dia_server_menu_1_3="重新啟動 Namenode & Jobtracker"
+
+## [Labg for cluster_setup()] ##
+dia_cluster_setup_title_1="[全部或部份 nodes]"
+dia_cluster_setup_menu_1_1="全部 nodes"
+dia_cluster_setup_menu_1_2="部份 nodes"
+dia_cluster_setup_title_2="[Datanode & Tasktracker Nodes 選擇]"
+dia_cluster_setup_check_1="選擇 Datanode & Tasktracker: "
+dia_cluster_setup_title_3="[Datanode & Tasktracker 設定]"
+dia_cluster_setup_menu_2_1="啟動 Datanodes & Tasktrackers"
+dia_cluster_setup_menu_2_2="停止 Datanodes & Tasktrackers"
+dia_cluster_setup_menu_2_3="重新啟動 Datanodes & Tasktrackers"
+cluster_setup_echo_1="[啟動 datanode & tasktracker]"
+cluster_setup_echo_error="失敗：無法 ssh 到 "
+cluster_setup_echo_3="[停止 datanode & tasktracker]"
+cluster_setup_echo_5="[重新啟動 datanode & tasktracker]"
+
+## [Lang for tomcat_swith()] #
+dia_tomcat_switch_title_1="[Tomcat 狀態]"
+dia_tomcat_switch_msg_1="Tomcat 正在執行 !!!"
+dia_tomcat_switch_msg_2="Tomcat 並未執行 !!!"
+dia_tomcat_switch_title_2="[Tomcat 服務選項]"
+dia_tomcat_switch_menu_1_1="啟動 Tomcat"
+dia_tomcat_switch_menu_1_2="停止 Tomcat"
+dia_tomcat_switch_menu_1_3="重新啟動 Tomcat"
+tomcat_switch_echo_1="失敗：找不到"
+tomcat_switch_echo_3="[啟動 Tomcat]"
+tomcat_switch_echo_4="[停止 Tomcat]"
+tomcat_switch_echo_5="[重新啟動 Tomcat]"
+
+## [Lang for tomcat_port()] ##
+dia_tomcat_port_title_1="[更改 Tomcat servel.xml]"
+dia_tomcat_port_msg_1="失敗: 找不到"
+dia_tomcat_port_title_2="[Tomcat Port 更改]"
+dia_tomcat_port_input_1="請輸入要更改的 Tomcat port 號碼 (預設值為 8080): "
+
+## [Lang for lang_switch()] ##
+dia_lang_title_1="[轉換語言]"
+dia_lang_menu_1_1="英文"
+dia_lang_menu_1_2="中文"
+
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
