diff --git a/res/values/strings.xml b/res/values/strings.xml
index d7f7862..4ae16d6 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -10555,13 +10555,15 @@
     <!-- Title for App Compatibility Changes dashboard where developers can configure per-app overrides for compatibility changes [CHAR LIMIT=50] -->
     <string name="platform_compat_dashboard_title">App Compatibility Changes</string>
     <!-- Summary for App Compatibility Changes dashboard [CHAR LIMIT=NONE] -->
-    <string name="platform_compat_dashboard_summary">Modify app compatibility change overrides</string>
+    <string name="platform_compat_dashboard_summary">Toggle app compatibility changes</string>
+    <!-- Summary for selected app [DO NOT TRANSLATE] -->
+    <string name="platform_compat_selected_app_summary" translatable="false"><xliff:g id="app_name" example="com.google.android.chrome">%1$s</xliff:g> targetSdkVersion <xliff:g id="number" example="29">%2$d</xliff:g></string>
     <!-- Title for default enabled app compat changes category [CHAR LIMIT=50] -->
     <string name="platform_compat_default_enabled_title">Default enabled changes</string>
     <!-- Title for default disabled app compat changes category [CHAR LIMIT=50] -->
     <string name="platform_compat_default_disabled_title">Default disabled changes</string>
-    <!-- Title for target SDK gated app compat changes category [CHAR LIMIT=50] -->
-    <string name="platform_compat_target_sdk_title">Enabled after SDK <xliff:g id="number" example="29">%d</xliff:g></string>
+    <!-- Title for target SDK gated app compat changes category (do not translate 'targetSdkVersion') [CHAR LIMIT=50] -->
+    <string name="platform_compat_target_sdk_title">Enabled for targetSdkVersion &gt; <xliff:g id="number" example="29">%d</xliff:g></string>
 
     <!-- Slices Strings -->
 
diff --git a/src/com/android/settings/development/compat/PlatformCompatDashboard.java b/src/com/android/settings/development/compat/PlatformCompatDashboard.java
index 53c6e9f..2932f7b 100644
--- a/src/com/android/settings/development/compat/PlatformCompatDashboard.java
+++ b/src/com/android/settings/development/compat/PlatformCompatDashboard.java
@@ -228,9 +228,8 @@
         final Drawable icon = applicationInfo.loadIcon(context.getPackageManager());
         final Preference appPreference = new Preference(context);
         appPreference.setIcon(icon);
-        appPreference.setSummary(mSelectedApp
-                + " SDK "
-                + applicationInfo.targetSdkVersion);
+        appPreference.setSummary(getString(R.string.platform_compat_selected_app_summary,
+                                         mSelectedApp, applicationInfo.targetSdkVersion));
         appPreference.setKey(mSelectedApp);
         appPreference.setOnPreferenceClickListener(
                 preference -> {
diff --git a/tests/robotests/src/com/android/settings/development/compat/PlatformCompatDashboardTest.java b/tests/robotests/src/com/android/settings/development/compat/PlatformCompatDashboardTest.java
index d0cb97a..e558d62 100644
--- a/tests/robotests/src/com/android/settings/development/compat/PlatformCompatDashboardTest.java
+++ b/tests/robotests/src/com/android/settings/development/compat/PlatformCompatDashboardTest.java
@@ -105,6 +105,7 @@
         mDashboard = spy(new PlatformCompatDashboard());
         mDashboard.mSelectedApp = APP_NAME;
         doReturn(mApplicationInfo).when(mDashboard).getApplicationInfo();
+        doReturn(mContext).when(mDashboard).getContext();
         doReturn(mPlatformCompat).when(mDashboard).getPlatformCompat();
         doReturn(mPreferenceScreen).when(mDashboard).getPreferenceScreen();
         doReturn(mPreferenceManager).when(mDashboard).getPreferenceManager();
@@ -130,7 +131,8 @@
 
         Preference appPreference = mDashboard.createAppPreference(mApplicationInfo);
 
-        assertThat(appPreference.getSummary()).isEqualTo(APP_NAME + " SDK 1");
+        assertThat(appPreference.getSummary()).isEqualTo(mContext.getResources().getString(
+                R.string.platform_compat_selected_app_summary, APP_NAME, 1));
     }
 
     @Test
