diff --git a/res/values/strings.xml b/res/values/strings.xml
index 7d94d87..54e7b2c 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1248,28 +1248,26 @@
     <string name="private_space_auto_lock_after_inactivity">After 5 minutes of inactivity</string>
     <!-- Configure auto lock: Value for auto lock configuration to never lock private space. [CHAR LIMIT=20] -->
     <string name="private_space_auto_lock_never">Never</string>
-    <!-- Title for the preference to hide Private Space. [CHAR LIMIT=60] -->
-    <string name="private_space_hide_title">Hide when locked</string>
-    <!-- Title for the hide Private Space setting. [CHAR LIMIT=60] -->
-    <string name="privatespace_hide_page_title">Hide private space when locked</string>
+    <!-- Title for the settings preference and settings page for hide private space when locked setting. [CHAR LIMIT=60] -->
+    <string name="private_space_hide_page_title">Hide private space when it\'s locked</string>
     <!-- Description for hide Private Space settings page. [CHAR LIMIT=NONE] -->
-    <string name="privatespace_hide_page_summary">To stop other people knowing you have a private space on your device, you can hide it from your apps list</string>
+    <string name="private_space_hide_page_summary">To stop other people knowing you have a private space on your device, you can hide it from your apps list</string>
     <!-- Header in hide Private Space settings page to access Private Space when hidden. [CHAR LIMIT=60] -->
-    <string name="privatespace_access_header">Access private space when hidden</string>
+    <string name="private_space_access_header">Access private space when hidden</string>
     <!-- Text in hide Private Space settings page on how to search Private Space when hidden. [CHAR LIMIT=90] -->
-    <string name="privatespace_search_description">From your apps list, enter \"private space\" in the search bar</string>
+    <string name="private_space_search_description">In the search bar, enter \"private space\"</string>
     <!-- Text in hide Private Space settings page to tap on Private Space tile. [CHAR LIMIT=60] -->
-    <string name="privatespace_tap_tile_description">Tap the private space tile</string>
+    <string name="private_space_tap_tile_description">Tap <b>Private space</b></string>
     <!-- Text in hide Private Space settings page to Unlock Private Space. [CHAR LIMIT=60] -->
-    <string name="privatespace_unlock_description">Unlock your private space</string>
+    <string name="private_space_unlock_description">Unlock your private space</string>
     <!-- Used to describe the off state of Private space hidden [CHAR LIMIT=30] -->
-    <string name="privatespace_hide_off_summary">Off</string>
+    <string name="private_space_hide_off_summary">Off</string>
     <!-- Used to describe the off state of Private space hidden [CHAR LIMIT=30] -->
-    <string name="privatespace_hide_on_summary">On</string>
+    <string name="private_space_hide_on_summary">On</string>
     <!-- Title for the dialog shown when Private space hidden setting is turned on. [CHAR LIMIT=60] -->
-    <string name="private_space_hide_dialog_title">Private space will hide when you lock it next</string>
+    <string name="private_space_hide_dialog_title">Private space will hide the next time you lock it</string>
     <!-- Text message in the dialog shown when Private space hidden setting is turned on. [CHAR LIMIT=90] -->
-    <string name="private_space_hide_dialog_message">To access your space when it’s hidden, enter \“private space\” in the search bar on your apps list</string>
+    <string name="private_space_hide_dialog_message">To access private space, enter \“private space\” in the search bar from your apps list.</string>
     <!-- Label for the dialog shown when Private space hidden setting is turned on. [CHAR LIMIT=90] -->
     <string name="private_space_hide_dialog_button">Got it</string>
     <!-- System category for the Private Space page. [CHAR LIMIT=30] -->
diff --git a/res/xml/private_space_hide_locked.xml b/res/xml/private_space_hide_locked.xml
index cd1c406..4c83e84 100644
--- a/res/xml/private_space_hide_locked.xml
+++ b/res/xml/private_space_hide_locked.xml
@@ -16,7 +16,7 @@
 <PreferenceScreen
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:settings="http://schemas.android.com/apk/res-auto"
-    android:title="@string/privatespace_hide_page_title">
+    android:title="@string/private_space_hide_page_title">
 
     <com.android.settingslib.widget.IllustrationPreference
         android:key="privatespace_hide_video"
@@ -25,36 +25,36 @@
 
     <com.android.settingslib.widget.MainSwitchPreference
         android:key="hide_when_locked"
-        android:title="@string/privatespace_hide_page_title"
+        android:title="@string/private_space_hide_page_title"
         settings:controller="com.android.settings.privatespace.HidePrivateSpaceController"/>
 
         <Preference
         android:key="private_space_hidden"
-        android:summary="@string/privatespace_hide_page_summary"
+        android:summary="@string/private_space_hide_page_summary"
         android:selectable="false"
         settings:searchable="false" />
 
     <PreferenceCategory
-        android:title="@string/privatespace_access_header">
+        android:title="@string/private_space_access_header">
 
         <Preference
         android:key="search_when_locked_footer"
         android:icon="@drawable/counter_1_24dp"
-        android:title="@string/privatespace_search_description"
+        android:title="@string/private_space_search_description"
         android:selectable="false"
         settings:searchable="false" />
 
         <Preference
             android:key="tap_tile_footer"
             android:icon="@drawable/counter_2_24dp"
-            android:title="@string/privatespace_tap_tile_description"
+            android:title="@string/private_space_tap_tile_description"
             android:selectable="false"
             settings:searchable="false" />
 
         <Preference
             android:key="unlock_profile_footer"
             android:icon="@drawable/counter_3_24dp"
-            android:title="@string/privatespace_unlock_description"
+            android:title="@string/private_space_unlock_description"
             android:selectable="false"
             settings:searchable="false" />
 
diff --git a/res/xml/private_space_settings.xml b/res/xml/private_space_settings.xml
index 86537cc..f979599 100644
--- a/res/xml/private_space_settings.xml
+++ b/res/xml/private_space_settings.xml
@@ -52,7 +52,7 @@
 
         <Preference
             android:key="private_space_hidden"
-            android:title="@string/private_space_hide_title"
+            android:title="@string/private_space_hide_page_title"
             android:fragment="com.android.settings.privatespace.HidePrivateSpaceSettings"
             settings:controller="com.android.settings.privatespace.HidePrivateSpaceSummaryController"
             settings:searchable="false" />
diff --git a/src/com/android/settings/privatespace/HidePrivateSpaceSummaryController.java b/src/com/android/settings/privatespace/HidePrivateSpaceSummaryController.java
index a366b70..f5100a7 100644
--- a/src/com/android/settings/privatespace/HidePrivateSpaceSummaryController.java
+++ b/src/com/android/settings/privatespace/HidePrivateSpaceSummaryController.java
@@ -49,8 +49,8 @@
 
     @Override
     public CharSequence getSummary() {
-        return isHidden() ? mContext.getString(R.string.privatespace_hide_on_summary)
-                : mContext.getString(R.string.privatespace_hide_off_summary);
+        return isHidden() ? mContext.getString(R.string.private_space_hide_on_summary)
+                : mContext.getString(R.string.private_space_hide_off_summary);
     }
 
     private boolean isHidden() {
