diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml
index a5567da..85abb08 100644
--- a/java/res/values/strings.xml
+++ b/java/res/values/strings.xml
@@ -559,15 +559,6 @@
     <string name="version_text">Version <xliff:g id="version_number" example="1.0.1864.643521">%1$s</xliff:g></string>
 
     <!-- User dictionary settings -->
-    <!-- User dictionary settings, The titlebar text of the User dictionary settings screen. -->
-    <!-- This resource is corresponding to msgid="765659257455000490" -->
-    <string name="user_dict_settings_titlebar">User dictionary</string>
-    <!-- User dictionary settings, The title of the list item to go into the User dictionary settings screen when there is only one user dictionary. [CHAR LIMIT=35] -->
-    <!-- This resource is corresponding to msgid="524997218433540614" -->
-    <string name="user_dict_single_settings_title">Personal dictionary</string>
-    <!-- User dictionary settings, The title of the list item to go into the User dictionary list when there are several user dictionaries. [CHAR LIMIT=35] -->
-    <!-- This resource is corresponding to msgid="3735224433307996276" -->
-    <string name="user_dict_multiple_settings_title">Personal dictionaries</string>
     <!-- User dictionary settings.  The summary of the listem item to go into the User dictionary settings screen. -->
     <string name="user_dict_settings_summary" translatable="false">""</string>
     <!-- User dictionary settings. The title of the menu item to add a new word to the user dictionary. -->
diff --git a/java/src/com/android/inputmethod/latin/SettingsFragment.java b/java/src/com/android/inputmethod/latin/SettingsFragment.java
index 830cae9..835ef7b 100644
--- a/java/src/com/android/inputmethod/latin/SettingsFragment.java
+++ b/java/src/com/android/inputmethod/latin/SettingsFragment.java
@@ -420,10 +420,6 @@
             // not present or disabled. In this case we need to remove the preference.
             getPreferenceScreen().removePreference(userDictionaryPreference);
         } else if (localeList.size() <= 1) {
-            final Intent intent =
-                    new Intent(UserDictionaryList.USER_DICTIONARY_SETTINGS_INTENT_ACTION);
-            userDictionaryPreference.setTitle(R.string.user_dict_single_settings_title);
-            userDictionaryPreference.setIntent(intent);
             userDictionaryPreference.setFragment(UserDictionarySettings.class.getName());
             // If the size of localeList is 0, we don't set the locale parameter in the
             // extras. This will be interpreted by the UserDictionarySettings class as
@@ -436,7 +432,6 @@
                 userDictionaryPreference.getExtras().putString("locale", locale);
             }
         } else {
-            userDictionaryPreference.setTitle(R.string.user_dict_multiple_settings_title);
             userDictionaryPreference.setFragment(UserDictionaryList.class.getName());
         }
     }
