diff --git a/fmapp2/src/com/caf/fmradio/FMRadio.java b/fmapp2/src/com/caf/fmradio/FMRadio.java
index 4410664..5b858c4 100644
--- a/fmapp2/src/com/caf/fmradio/FMRadio.java
+++ b/fmapp2/src/com/caf/fmradio/FMRadio.java
@@ -2624,9 +2624,15 @@
    Runnable mOnStereo = new Runnable() {
       public void run() {
          if (FMRADIO_UI_STATION_AUDIO_STEREO == mStereo) {
-             mStereoTV.setText(R.string.audio_type_stereo);
-         }else if (FMRADIO_UI_STATION_AUDIO_MONO == mStereo) {
-             mStereoTV.setText(R.string.audio_type_mono);
+             if ((Locale.getDefault().getLanguage().equals("zh")))
+                 mStereoTV.setText("立體聲");
+             else
+                 mStereoTV.setText(R.string.audio_type_stereo);
+         } else if (FMRADIO_UI_STATION_AUDIO_MONO == mStereo) {
+             if ((Locale.getDefault().getLanguage().equals("zh")))
+                 mStereoTV.setText("單聲道");
+             else
+                 mStereoTV.setText(R.string.audio_type_mono);
          }else {
              mStereoTV.setText("");
          }
diff --git a/fmapp2/src/com/caf/fmradio/Settings.java b/fmapp2/src/com/caf/fmradio/Settings.java
index 03f88c1..8f7ccdc 100644
--- a/fmapp2/src/com/caf/fmradio/Settings.java
+++ b/fmapp2/src/com/caf/fmradio/Settings.java
@@ -317,7 +317,11 @@
                   setBandSummary(summaryBandItems.length - 1);
                   clearStationList();
                }else {
-                  Toast.makeText(this, getString(R.string.user_defind_band_msg),
+                  if ((Locale.getDefault().getLanguage().equals("zh")))
+                      Toast.makeText(this,"請輸入有效的頻道範圍76.0-108.0",
+                                                            Toast.LENGTH_SHORT).show();
+                  else
+                      Toast.makeText(this, getString(R.string.user_defind_band_msg),
                                                             Toast.LENGTH_SHORT).show();
                }
            }else if(key.equals(USER_DEFINED_BAND_MAX_KEY)) {
@@ -337,7 +341,11 @@
                   setBandSummary(summaryBandItems.length - 1);
                   clearStationList();
                }else {
-                  Toast.makeText(this, getString(R.string.user_defind_band_msg),
+                  if ((Locale.getDefault().getLanguage().equals("zh")))
+                      Toast.makeText(this,"請輸入有效的頻道範圍76.0-108.0",
+                                                            Toast.LENGTH_SHORT).show();
+                  else
+                      Toast.makeText(this, getString(R.string.user_defind_band_msg),
                                                             Toast.LENGTH_SHORT).show();
                }
           }else {
