diff --git a/Android.bp b/Android.bp
index f56ca95..0307ccb 100644
--- a/Android.bp
+++ b/Android.bp
@@ -89,6 +89,10 @@
         "SettingsLibActivityEmbedding",
         "Settings-change-ids",
         "SystemUIUnfoldLib",
+        "org.lineageos.platform.internal",
+        "LineagePreferenceLib",
+        "vendor.lineage.fastcharge-V1.0-java",
+        "SystemUISharedLib",
     ],
 
     libs: [
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index a4d899d..86e7308 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -427,6 +427,18 @@
         </activity>
 
         <activity
+            android:name=".network.NetworkSetupActivity"
+            android:theme="@style/GlifV3Theme.Light"
+            android:exported="true">
+            <intent-filter android:priority="1">
+                <action android:name="android.settings.NETWORK_PROVIDER_SETUP" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+            <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
+                android:value="true" />
+        </activity>
+
+        <activity
             android:name=".wifi.WifiPickerActivity"
             android:permission="android.permission.CHANGE_WIFI_STATE"
             android:exported="true">
@@ -2431,6 +2443,10 @@
             android:label="@string/lockpassword_choose_lock_generic_header"
             android:excludeFromRecents="true" />
 
+        <activity android:name=".password.ChooseLockPatternSize"
+            android:exported="false"
+            android:theme="@style/GlifTheme.Light" />
+
         <activity android:name=".password.SetupChooseLockPattern"
             android:exported="false"
             android:theme="@style/GlifTheme.Light" />
@@ -4545,6 +4561,18 @@
             </intent-filter>
         </activity>
 
+        <activity android:name=".backup.transport.TransportActivity"
+                  android:label="@string/backup_transport_title"
+                  android:icon="@drawable/ic_settings_backup"
+                  android:exported="false">
+            <intent-filter>
+                <action android:name="android.intent.action.VIEW" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <data android:scheme="settings"
+                      android:host="com.android.settings.backup.transport" />
+            </intent-filter>
+        </activity>
+
         <!-- This is the longest AndroidManifest.xml ever. -->
     </application>
 </manifest>
diff --git a/res/color/audio_icon.xml b/res/color/audio_icon.xml
new file mode 100644
index 0000000..ca93eca
--- /dev/null
+++ b/res/color/audio_icon.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_enabled="false" android:color="#24000000" />
+    <item android:color="#8a000000" />
+</selector>
diff --git a/res/drawable-nodpi/fingerprint_sensor_location_front_overlay.png b/res/drawable-nodpi/fingerprint_sensor_location_front_overlay.png
new file mode 100644
index 0000000..f1e5bde
--- /dev/null
+++ b/res/drawable-nodpi/fingerprint_sensor_location_front_overlay.png
Binary files differ
diff --git a/res/drawable/ic_launcher_background.xml b/res/drawable/ic_launcher_background.xml
new file mode 100644
index 0000000..8c65155
--- /dev/null
+++ b/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     SPDX-FileCopyrightText: 2022 The LineageOS Project
+     SPDX-License-Identifier: Apache-2.0
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="108dp"
+    android:height="108dp"
+    android:viewportWidth="108"
+    android:viewportHeight="108">
+  <path
+      android:pathData="M0,0h108v108h-108z"
+      android:fillColor="#ffffff"/>
+  <path
+      android:pathData="M58.148,28C59.193,28 60.062,28.805 60.142,29.847L60.254,31.303C60.431,33.606 62.018,35.527 64.017,36.685C66.016,37.844 68.441,38.236 70.525,37.237L71.846,36.604C72.789,36.153 73.92,36.503 74.443,37.408L78.59,44.592C79.113,45.497 78.851,46.652 77.988,47.243L76.782,48.068C74.876,49.374 74,51.689 74,54C74,56.311 74.876,58.626 76.782,59.932L77.988,60.757C78.851,61.348 79.113,62.503 78.59,63.408L74.443,70.592C73.92,71.497 72.789,71.847 71.846,71.396L70.525,70.763C68.441,69.764 66.016,70.156 64.017,71.315C62.018,72.473 60.431,74.394 60.254,76.697L60.142,78.153C60.062,79.195 59.193,80 58.148,80H49.852C48.807,80 47.938,79.195 47.858,78.153L47.746,76.697C47.569,74.394 45.981,72.473 43.983,71.315C41.984,70.156 39.558,69.764 37.475,70.763L36.153,71.396C35.211,71.847 34.08,71.497 33.557,70.592L29.409,63.408C28.887,62.503 29.149,61.348 30.011,60.757L31.218,59.931C33.124,58.626 34,56.311 34,54C34,51.689 33.124,49.374 31.218,48.068L30.011,47.242C29.149,46.652 28.887,45.497 29.409,44.592L33.557,37.408C34.08,36.503 35.211,36.153 36.153,36.604L37.475,37.237C39.558,38.236 41.984,37.844 43.983,36.685C45.982,35.527 47.569,33.606 47.746,31.303L47.858,29.847C47.938,28.805 48.807,28 49.852,28H58.148ZM54,66C60.627,66 66,60.627 66,54C66,47.373 60.627,42 54,42C47.373,42 42,47.373 42,54C42,60.627 47.373,66 54,66Z"
+      android:fillColor="#167C80"
+      android:fillType="evenOdd"/>
+</vector>
diff --git a/res/drawable/ic_launcher_foreground.xml b/res/drawable/ic_launcher_foreground.xml
new file mode 100644
index 0000000..4d28d39
--- /dev/null
+++ b/res/drawable/ic_launcher_foreground.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     SPDX-FileCopyrightText: 2022 The LineageOS Project
+     SPDX-License-Identifier: Apache-2.0
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:aapt="http://schemas.android.com/aapt"
+    android:width="108dp"
+    android:height="108dp"
+    android:viewportWidth="108"
+    android:viewportHeight="108">
+  <group>
+    <clip-path
+        android:pathData="M0,0h108v108h-108z"/>
+    <path
+        android:pathData="M54,54m-18,0a18,18 0,1 1,36 0a18,18 0,1 1,-36 0"
+        android:fillColor="#CAE1E2"/>
+    <path
+        android:pathData="M51.058,56.942L46.634,54.976C45.789,54.6 45.789,53.4 46.634,53.024L51.058,51.058L53.024,46.634C53.4,45.789 54.6,45.789 54.976,46.634L56.942,51.058L61.366,53.024C62.211,53.4 62.211,54.6 61.366,54.976L56.942,56.942L54.976,61.366C54.6,62.211 53.4,62.211 53.024,61.366L51.058,56.942Z"
+        android:fillColor="#2A3232"/>
+    <path
+        android:pathData="M28.54,28.54m-72,0a72,72 0,1 1,144 0a72,72 0,1 1,-144 0"
+        android:fillAlpha="0.6">
+      <aapt:attr name="android:fillColor">
+        <gradient
+            android:gradientRadius="72"
+            android:centerX="28.54"
+            android:centerY="28.54"
+            android:type="radial">
+          <item android:offset="0" android:color="#19FFFFFF"/>
+          <item android:offset="1" android:color="#00FFFFFF"/>
+        </gradient>
+      </aapt:attr>
+    </path>
+  </group>
+</vector>
diff --git a/res/drawable/ic_launcher_monochrome.xml b/res/drawable/ic_launcher_monochrome.xml
new file mode 100644
index 0000000..087d83f
--- /dev/null
+++ b/res/drawable/ic_launcher_monochrome.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     SPDX-FileCopyrightText: 2022 The LineageOS Project
+     SPDX-License-Identifier: Apache-2.0
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="108dp"
+    android:height="108dp"
+    android:viewportWidth="108"
+    android:viewportHeight="108">
+  <path
+      android:pathData="M59.23,33.567C59.162,32.683 58.424,32 57.538,32H50.527C49.64,32 48.903,32.683 48.835,33.567L48.74,34.795C48.59,36.744 47.247,38.369 45.556,39.349C43.865,40.33 41.812,40.661 40.049,39.816L38.936,39.283C38.136,38.899 37.175,39.196 36.732,39.965L33.228,46.034C32.784,46.803 33.007,47.784 33.739,48.286L34.755,48.981C36.368,50.086 37.109,52.045 37.109,54C37.109,55.955 36.368,57.914 34.755,59.019L33.739,59.714C33.007,60.216 32.784,61.197 33.228,61.966L36.732,68.035C37.175,68.803 38.136,69.101 38.936,68.717L40.049,68.184C41.812,67.339 43.865,67.67 45.556,68.651C47.247,69.631 48.59,71.257 48.74,73.205L48.835,74.433C48.903,75.317 49.64,76 50.527,76H57.538C58.424,76 59.162,75.317 59.23,74.433L59.324,73.205C59.474,71.257 60.817,69.631 62.508,68.651C64.199,67.67 66.252,67.339 68.015,68.184L69.128,68.717C69.928,69.101 70.889,68.803 71.332,68.035L74.837,61.966C75.28,61.197 75.058,60.216 74.325,59.714L73.31,59.019C71.696,57.915 70.955,55.955 70.955,54C70.955,52.045 71.696,50.085 73.31,48.981L74.325,48.285C75.058,47.784 75.28,46.803 74.837,46.034L71.332,39.965C70.889,39.196 69.928,38.899 69.128,39.283L68.015,39.816C66.252,40.661 64.199,40.33 62.508,39.349C60.817,38.369 59.474,36.744 59.324,34.795L59.23,33.567ZM68,54C68,61.732 61.732,68 54,68C46.268,68 40,61.732 40,54C40,46.268 46.268,40 54,40C61.732,40 68,46.268 68,54ZM47.799,54.826L51.543,56.489L53.207,60.233C53.525,60.948 54.54,60.948 54.858,60.233L56.522,56.489L60.265,54.826C60.98,54.508 60.98,53.492 60.265,53.174L56.522,51.511L54.858,47.767C54.54,47.052 53.525,47.052 53.207,47.767L51.543,51.511L47.799,53.174C47.084,53.492 47.084,54.508 47.799,54.826Z"
+      android:fillColor="#ffffffff"
+      android:fillType="evenOdd"/>
+</vector>
diff --git a/res/drawable/ic_launcher_settings.xml b/res/drawable/ic_launcher_settings.xml
index 9ede59d..b58c81f 100644
--- a/res/drawable/ic_launcher_settings.xml
+++ b/res/drawable/ic_launcher_settings.xml
@@ -1,5 +1,10 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+     SPDX-FileCopyrightText: 2022 The LineageOS Project
+     SPDX-License-Identifier: Apache-2.0
+-->
 <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
-    <background android:drawable="@color/icon_launcher_setting_color"/>
-    <foreground android:drawable="@mipmap/ic_launcher_settings"/>
+    <background android:drawable="@drawable/ic_launcher_background"/>
+    <foreground android:drawable="@drawable/ic_launcher_foreground"/>
+    <monochrome android:drawable="@drawable/ic_launcher_monochrome"/>
 </adaptive-icon>
diff --git a/res/drawable/ic_network_setup.xml b/res/drawable/ic_network_setup.xml
new file mode 100644
index 0000000..4944cbc
--- /dev/null
+++ b/res/drawable/ic_network_setup.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+    Copyright (C) 2021 The LineageOS Project
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+
+    <path
+        android:fillColor="?android:attr/colorPrimary"
+        android:pathData="M12,2A8,8 0 0,0 4,10C4,14.03 7,17.42 11,17.93V19H10A1,1 0 0,0 9,20H2V22H9A1,1 0 0,0 10,23H14A1,1 0 0,0 15,22H22V20H15A1,1 0 0,0 14,19H13V17.93C17,17.43 20,14.03 20,10A8,8 0 0,0 12,2M12,4C12,4 12.74,5.28 13.26,7H10.74C11.26,5.28 12,4 12,4M9.77,4.43C9.5,4.93 9.09,5.84 8.74,7H6.81C7.5,5.84 8.5,4.93 9.77,4.43M14.23,4.44C15.5,4.94 16.5,5.84 17.19,7H15.26C14.91,5.84 14.5,4.93 14.23,4.44M6.09,9H8.32C8.28,9.33 8.25,9.66 8.25,10C8.25,10.34 8.28,10.67 8.32,11H6.09C6.03,10.67 6,10.34 6,10C6,9.66 6.03,9.33 6.09,9M10.32,9H13.68C13.72,9.33 13.75,9.66 13.75,10C13.75,10.34 13.72,10.67 13.68,11H10.32C10.28,10.67 10.25,10.34 10.25,10C10.25,9.66 10.28,9.33 10.32,9M15.68,9H17.91C17.97,9.33 18,9.66 18,10C18,10.34 17.97,10.67 17.91,11H15.68C15.72,10.67 15.75,10.34 15.75,10C15.75,9.66 15.72,9.33 15.68,9M6.81,13H8.74C9.09,14.16 9.5,15.07 9.77,15.56C8.5,15.06 7.5,14.16 6.81,13M10.74,13H13.26C12.74,14.72 12,16 12,16C12,16 11.26,14.72 10.74,13M15.26,13H17.19C16.5,14.16 15.5,15.07 14.23,15.57C14.5,15.07 14.91,14.16 15.26,13Z" />
+</vector>
diff --git a/res/drawable/ic_security_pattern_3x3.xml b/res/drawable/ic_security_pattern_3x3.xml
new file mode 100644
index 0000000..b8e4df4
--- /dev/null
+++ b/res/drawable/ic_security_pattern_3x3.xml
@@ -0,0 +1,26 @@
+<!--
+     Copyright (C) 2016 The CyanogenMod Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M4,17.268C3.402,17.613 3,18.26 3,19C3,20.105 3.895,21 5,21C5.74,21 6.387,20.598 6.732,20L9.268,20C9.613,20.598 10.26,21 11,21C12.105,21 13,20.105 13,19C13,17.895 12.105,17 11,17C10.26,17 9.613,17.402 9.268,18L6.732,18C6.557,17.696 6.304,17.443 6,17.268L6,14.732C6.598,14.387 7,13.74 7,13C7,11.895 6.105,11 5,11C3.895,11 3,11.895 3,13C3,13.74 3.402,14.387 4,14.732L4,17.268ZM21,11L21,9.5C21,8.67 20.33,8 19.5,8C20.33,8 21,7.33 21,6.5L21,5C21,3.89 20.1,3 19,3L15,3L15,5L19,5L19,7L17,7L17,9L19,9L19,11L15,11L15,13L19,13C20.1,13 21,12.11 21,11ZM5,9C6.105,9 7,8.105 7,7C7,5.895 6.105,5 5,5C3.895,5 3,5.895 3,7C3,8.105 3.895,9 5,9ZM11,9C12.105,9 13,8.105 13,7C13,5.895 12.105,5 11,5C9.895,5 9,5.895 9,7C9,8.105 9.895,9 11,9ZM11,15C12.105,15 13,14.105 13,13C13,11.895 12.105,11 11,11C9.895,11 9,11.895 9,13C9,14.105 9.895,15 11,15ZM17,21C18.105,21 19,20.105 19,19C19,17.895 18.105,17 17,17C15.895,17 15,17.895 15,19C15,20.105 15.895,21 17,21Z"
+        android:strokeColor="#00000000"
+        android:fillColor="#777777"
+        android:strokeWidth="1"/>
+</vector>
diff --git a/res/drawable/ic_security_pattern_4x4.xml b/res/drawable/ic_security_pattern_4x4.xml
new file mode 100644
index 0000000..92c580f
--- /dev/null
+++ b/res/drawable/ic_security_pattern_4x4.xml
@@ -0,0 +1,26 @@
+<!--
+     Copyright (C) 2016 The CyanogenMod Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M4,17.268C3.402,17.613 3,18.26 3,19C3,20.105 3.895,21 5,21C5.74,21 6.387,20.598 6.732,20L9.268,20C9.613,20.598 10.26,21 11,21C12.105,21 13,20.105 13,19C13,17.895 12.105,17 11,17C10.26,17 9.613,17.402 9.268,18L6.732,18C6.557,17.696 6.304,17.443 6,17.268L6,14.732C6.598,14.387 7,13.74 7,13C7,11.895 6.105,11 5,11C3.895,11 3,11.895 3,13C3,13.74 3.402,14.387 4,14.732L4,17.268ZM21,13L21,3L19,3L19,7L17,7L17,3L15,3L15,9L19,9L19,13L21,13ZM5,9C6.105,9 7,8.105 7,7C7,5.895 6.105,5 5,5C3.895,5 3,5.895 3,7C3,8.105 3.895,9 5,9ZM11,9C12.105,9 13,8.105 13,7C13,5.895 12.105,5 11,5C9.895,5 9,5.895 9,7C9,8.105 9.895,9 11,9ZM11,15C12.105,15 13,14.105 13,13C13,11.895 12.105,11 11,11C9.895,11 9,11.895 9,13C9,14.105 9.895,15 11,15ZM17,21C18.105,21 19,20.105 19,19C19,17.895 18.105,17 17,17C15.895,17 15,17.895 15,19C15,20.105 15.895,21 17,21Z"
+        android:strokeColor="#00000000"
+        android:fillColor="#777777"
+        android:strokeWidth="1"/>
+</vector>
diff --git a/res/drawable/ic_security_pattern_5x5.xml b/res/drawable/ic_security_pattern_5x5.xml
new file mode 100644
index 0000000..7b4daba
--- /dev/null
+++ b/res/drawable/ic_security_pattern_5x5.xml
@@ -0,0 +1,26 @@
+<!--
+     Copyright (C) 2016 The CyanogenMod Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M4,17.268C3.402,17.613 3,18.26 3,19C3,20.105 3.895,21 5,21C5.74,21 6.387,20.598 6.732,20L9.268,20C9.613,20.598 10.26,21 11,21C12.105,21 13,20.105 13,19C13,17.895 12.105,17 11,17C10.26,17 9.613,17.402 9.268,18L6.732,18C6.557,17.696 6.304,17.443 6,17.268L6,14.732C6.598,14.387 7,13.74 7,13C7,11.895 6.105,11 5,11C3.895,11 3,11.895 3,13C3,13.74 3.402,14.387 4,14.732L4,17.268ZM21,11L21,9C21,7.89 20.1,7 19,7L17,7L17,5L21,5L21,3L15,3L15,9L19,9L19,11L15,11L15,13L19,13C20.1,13 21,12.11 21,11ZM5,9C6.105,9 7,8.105 7,7C7,5.895 6.105,5 5,5C3.895,5 3,5.895 3,7C3,8.105 3.895,9 5,9ZM11,9C12.105,9 13,8.105 13,7C13,5.895 12.105,5 11,5C9.895,5 9,5.895 9,7C9,8.105 9.895,9 11,9ZM11,15C12.105,15 13,14.105 13,13C13,11.895 12.105,11 11,11C9.895,11 9,11.895 9,13C9,14.105 9.895,15 11,15ZM17,21C18.105,21 19,20.105 19,19C19,17.895 18.105,17 17,17C15.895,17 15,17.895 15,19C15,20.105 15.895,21 17,21Z"
+        android:strokeColor="#00000000"
+        android:fillColor="#777777"
+        android:strokeWidth="1"/>
+</vector>
diff --git a/res/drawable/ic_security_pattern_6x6.xml b/res/drawable/ic_security_pattern_6x6.xml
new file mode 100644
index 0000000..1861284
--- /dev/null
+++ b/res/drawable/ic_security_pattern_6x6.xml
@@ -0,0 +1,26 @@
+<!--
+     Copyright (C) 2016 The CyanogenMod Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M17,13L19,13C20.1,13 21,12.11 21,11L21,9C21,7.89 20.1,7 19,7L17,7L17,5L21,5L21,3L17,3C15.9,3 15,3.89 15,5L15,11C15,12.11 15.9,13 17,13L17,13ZM4,17.268C3.402,17.613 3,18.26 3,19C3,20.105 3.895,21 5,21C5.74,21 6.387,20.598 6.732,20L9.268,20C9.613,20.598 10.26,21 11,21C12.105,21 13,20.105 13,19C13,17.895 12.105,17 11,17C10.26,17 9.613,17.402 9.268,18L6.732,18C6.557,17.696 6.304,17.443 6,17.268L6,14.732C6.598,14.387 7,13.74 7,13C7,11.895 6.105,11 5,11C3.895,11 3,11.895 3,13C3,13.74 3.402,14.387 4,14.732L4,17.268ZM17,9L19,9L19,11L17,11L17,9ZM5,9C6.105,9 7,8.105 7,7C7,5.895 6.105,5 5,5C3.895,5 3,5.895 3,7C3,8.105 3.895,9 5,9ZM11,9C12.105,9 13,8.105 13,7C13,5.895 12.105,5 11,5C9.895,5 9,5.895 9,7C9,8.105 9.895,9 11,9ZM11,15C12.105,15 13,14.105 13,13C13,11.895 12.105,11 11,11C9.895,11 9,11.895 9,13C9,14.105 9.895,15 11,15ZM17,21C18.105,21 19,20.105 19,19C19,17.895 18.105,17 17,17C15.895,17 15,17.895 15,19C15,20.105 15.895,21 17,21Z"
+        android:strokeColor="#00000000"
+        android:fillColor="#777777"
+        android:strokeWidth="1"/>
+</vector>
diff --git a/res/drawable/quickly_open_camera.xml b/res/drawable/quickly_open_camera.xml
deleted file mode 100644
index dcbf9f4..0000000
--- a/res/drawable/quickly_open_camera.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<shape>
-</shape>
diff --git a/res/drawable/ring_notif_increasing.xml b/res/drawable/ring_notif_increasing.xml
new file mode 100644
index 0000000..c534e30
--- /dev/null
+++ b/res/drawable/ring_notif_increasing.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 The CyanogenMod Project
+     Copyright (C) 2018 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:tint="?android:attr/colorControlNormal"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+
+    <path
+        android:fillColor="#FFFFFFFF"
+        android:pathData="M12,22c1.105,0,2-0.898,2-2h-4C10,21.102,10.896,22,12,22Z M18.5,16v-5.5c0-3.075-2.135-5.643-5-6.321V3.5 C13.5,2.67,12.828,2,12,2s-1.5,0.67-1.5,1.5v0.679c-2.865,0.678-5,3.246-5,6.321V16l-2,2v1h17v-1L18.5,16z M16.504,14.558H7.561  V13.25l8.943-3.808V14.558z" />
+</vector>
+
diff --git a/res/layout/battery_usage_graph.xml b/res/layout/battery_usage_graph.xml
index e79c7b9..310d5c7 100644
--- a/res/layout/battery_usage_graph.xml
+++ b/res/layout/battery_usage_graph.xml
@@ -19,7 +19,7 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:paddingTop="16dp"
-    android:paddingStart="@dimen/preference_no_icon_padding_start"
+    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
     android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
     android:orientation="vertical">
 
diff --git a/res/layout/crypt_keeper_pattern_sizes.xml b/res/layout/crypt_keeper_pattern_sizes.xml
new file mode 100644
index 0000000..020b688
--- /dev/null
+++ b/res/layout/crypt_keeper_pattern_sizes.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2015 The CyanogenMod Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<merge xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <Button
+            android:id="@+id/lock_pattern_size_3"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_horizontal"
+            android:textSize="14sp"
+            android:fontFamily="sans-serif"
+            android:text="@string/lock_pattern_size_3"
+            android:textColor="@android:color/white"
+            android:layout_weight="1"
+            style="?android:attr/borderlessButtonStyle"/>
+
+    <Button
+            android:id="@+id/lock_pattern_size_4"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_horizontal"
+            android:textSize="14sp"
+            android:fontFamily="sans-serif"
+            android:text="@string/lock_pattern_size_4"
+            android:textColor="@android:color/white"
+            android:layout_weight="1"
+            style="?android:attr/borderlessButtonStyle"/>
+
+    <Button
+            android:id="@+id/lock_pattern_size_5"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_horizontal"
+            android:textSize="14sp"
+            android:fontFamily="sans-serif"
+            android:text="@string/lock_pattern_size_5"
+            android:textColor="@android:color/white"
+            android:layout_weight="1"
+            style="?android:attr/borderlessButtonStyle"/>
+
+    <Button
+            android:id="@+id/lock_pattern_size_6"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_horizontal"
+            android:textSize="14sp"
+            android:fontFamily="sans-serif"
+            android:text="@string/lock_pattern_size_6"
+            android:textColor="@android:color/white"
+            android:layout_weight="1"
+            style="?android:attr/borderlessButtonStyle"/>
+
+
+</merge >
+
diff --git a/res/layout/fingerprint_enroll_find_sensor_base.xml b/res/layout/fingerprint_enroll_find_sensor_base.xml
index 62203f7..6c3f5d6 100644
--- a/res/layout/fingerprint_enroll_find_sensor_base.xml
+++ b/res/layout/fingerprint_enroll_find_sensor_base.xml
@@ -29,11 +29,6 @@
         android:clipToPadding="false"
         android:clipChildren="false">
 
-        <Space
-            android:layout_width="wrap_content"
-            android:layout_height="0dp"
-            android:layout_weight="1" />
-
         <include
             layout="@layout/fingerprint_enroll_find_sensor_graphic"
             android:layout_width="match_parent"
diff --git a/res/layout/fingerprint_enroll_find_sensor_graphic.xml b/res/layout/fingerprint_enroll_find_sensor_graphic.xml
index 0690457..cd9b0a5 100644
--- a/res/layout/fingerprint_enroll_find_sensor_graphic.xml
+++ b/res/layout/fingerprint_enroll_find_sensor_graphic.xml
@@ -17,17 +17,27 @@
 
 <FrameLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="@dimen/fingerprint_find_sensor_graphic_size"
-    android:layout_height="@dimen/fingerprint_find_sensor_graphic_size">
+    android:layout_width="fill_parent"
+    android:layout_height="wrap_content"
+    android:paddingTop="@dimen/fingerprint_find_sensor_padding_top">
 
     <ImageView
         android:id="@+id/fingerprint_sensor_location"
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
+        android:layout_height="wrap_content"
         android:contentDescription="@string/security_settings_fingerprint_enroll_find_sensor_content_description"
         android:src="@drawable/fingerprint_sensor_location"
         android:scaleType="centerInside"/>
 
+    <ImageView
+        android:id="@+id/fingerprint_sensor_location_front_overlay"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:contentDescription="@string/security_settings_fingerprint_enroll_find_sensor_content_description"
+        android:src="@drawable/fingerprint_sensor_location_front_overlay"
+        android:scaleType="centerInside"
+        android:visibility="gone"/>
+
     <com.android.settings.biometrics.fingerprint.FingerprintLocationAnimationView
         android:id="@+id/fingerprint_sensor_location_animation"
         android:layout_width="match_parent"
diff --git a/res/layout/fingerprint_enroll_introduction.xml b/res/layout/fingerprint_enroll_introduction.xml
index 57be78e..ea3cda3 100644
--- a/res/layout/fingerprint_enroll_introduction.xml
+++ b/res/layout/fingerprint_enroll_introduction.xml
@@ -164,6 +164,7 @@
             </LinearLayout>
 
             <LinearLayout
+                android:id="@+id/layout_footer_learn_more"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:orientation="horizontal">
diff --git a/res/layout/preference_increasing_ring.xml b/res/layout/preference_increasing_ring.xml
new file mode 100644
index 0000000..11795a2
--- /dev/null
+++ b/res/layout/preference_increasing_ring.xml
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 The CyanogenMod Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:minHeight="?android:attr/listPreferredItemHeightSmall"
+    android:gravity="center_vertical"
+    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+    android:background="?android:attr/selectableItemBackground"
+    android:clipToPadding="false">
+
+    <LinearLayout
+        android:id="@+id/icon_container"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:minWidth="44dp"
+        android:gravity="start|center_vertical"
+        android:orientation="horizontal"
+        android:paddingEnd="12dp"
+        android:paddingTop="4dp"
+        android:paddingBottom="4dp">
+        <com.android.internal.widget.PreferenceImageView
+            android:id="@android:id/icon"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:maxWidth="48dp"
+            android:maxHeight="48dp"/>
+    </LinearLayout>
+
+    <RelativeLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"
+        android:paddingTop="12dp"
+        android:paddingBottom="12dp">
+
+        <TextView android:id="@android:id/title"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:singleLine="true"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:ellipsize="marquee"
+            android:fadingEdge="horizontal" />
+
+        <TextView android:id="@+id/start_volume_label"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_below="@android:id/title"
+            android:layout_alignStart="@android:id/title"
+            android:paddingStart="18dp"
+            android:text="@string/increasing_ring_min_volume_title"
+            android:textAppearance="?android:attr/textAppearanceSmall"
+            android:textColor="?android:attr/textColorSecondary"
+            android:singleLine="true" />
+
+        <SeekBar android:id="@+id/start_volume"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_below="@id/start_volume_label"
+            android:layout_alignParentEnd="true"
+            android:max="1000" />
+
+        <TextView android:id="@+id/ramp_up_time_label"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_below="@id/start_volume"
+            android:layout_alignStart="@android:id/title"
+            android:paddingStart="18dp"
+            android:text="@string/increasing_ring_ramp_up_time_title"
+            android:textAppearance="?android:attr/textAppearanceSmall"
+            android:textColor="?android:attr/textColorSecondary"
+            android:singleLine="true" />
+
+        <TextView android:id="@+id/ramp_up_time_value"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_below="@id/start_volume"
+            android:layout_toEndOf="@id/ramp_up_time_label"
+            android:layout_alignBaseline="@id/ramp_up_time_label"
+            android:layout_alignParentEnd="true"
+            android:gravity="end"
+            android:textAppearance="?android:attr/textAppearanceSmall"
+            android:textColor="?android:attr/textColorSecondary"
+            android:singleLine="true" />
+
+        <SeekBar android:id="@+id/ramp_up_time"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_below="@id/ramp_up_time_label"
+            android:layout_alignParentEnd="true"
+            android:max="11" />
+
+        <TextView android:id="@android:id/summary"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_below="@id/ramp_up_time"
+            android:layout_alignStart="@android:id/title"
+            android:textAppearance="?android:attr/textAppearanceSmall"
+            android:textColor="?android:attr/textColorSecondary"
+            android:maxLines="4" />
+
+    </RelativeLayout>
+
+</LinearLayout>
diff --git a/res/layout/private_dns_mode_dialog.xml b/res/layout/private_dns_mode_dialog.xml
index 12e29e6..7c765d5 100644
--- a/res/layout/private_dns_mode_dialog.xml
+++ b/res/layout/private_dns_mode_dialog.xml
@@ -36,6 +36,10 @@
                 layout="@layout/preference_widget_dialog_radiobutton"/>
 
             <include
+                android:id="@+id/private_dns_mode_cloudflare"
+                layout="@layout/preference_widget_dialog_radiobutton"/>
+
+            <include
                 android:id="@+id/private_dns_mode_opportunistic"
                 layout="@layout/preference_widget_dialog_radiobutton"/>
 
diff --git a/res/layout/settings_main_prefs.xml b/res/layout/settings_main_prefs.xml
index 48352e2..ceb52ee 100644
--- a/res/layout/settings_main_prefs.xml
+++ b/res/layout/settings_main_prefs.xml
@@ -38,35 +38,37 @@
                     android:layout_height="wrap_content"
                     android:layout_width="match_parent"
                     android:layout_weight="0"
-                    android:visibility="gone">
+                    android:visibility="gone"
+                    style="@style/SudGlifButtonBar">
 
         <Button android:id="@+id/back_button"
-                android:layout_width="150dip"
-                android:layout_height="wrap_content"
-                android:layout_margin="5dip"
-                android:layout_alignParentStart="true"
-                android:text="@*android:string/back_button_label"/>
-
-        <LinearLayout
-                android:orientation="horizontal"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_alignParentEnd="true">
+                android:layout_alignParentStart="true"
+                android:text="@*android:string/back_button_label"
+                style="@style/SudGlifButton.Secondary"/>
+
+        <RelativeLayout
+                android:orientation="horizontal"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content">
 
             <Button android:id="@+id/skip_button"
-                    android:layout_width="150dip"
+                    android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:layout_margin="5dip"
+                    android:layout_alignParentStart="true"
                     android:text="@*android:string/skip_button_label"
-                    android:visibility="gone"/>
+                    android:visibility="gone"
+                    style="@style/SudGlifButton.Secondary"/>
 
             <Button android:id="@+id/next_button"
-                    android:layout_width="150dip"
+                    android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:layout_margin="5dip"
-                    android:text="@*android:string/next_button_label"/>
+                    android:layout_alignParentEnd="true"
+                    android:text="@*android:string/next_button_label"
+                    style="@style/SudGlifButton.Primary"/>
 
-        </LinearLayout>
+        </RelativeLayout>
 
     </RelativeLayout>
 
diff --git a/res/layout/storage_wizard_init_internal.xml b/res/layout/storage_wizard_init_internal.xml
index 0a18070..9a48283 100644
--- a/res/layout/storage_wizard_init_internal.xml
+++ b/res/layout/storage_wizard_init_internal.xml
@@ -26,6 +26,13 @@
         android:textColor="?android:attr/textColorSecondary"
         android:textSize="18sp"
         android:text="@string/storage_wizard_init_v2_internal_summary" />
+     <TextView
+         android:layout_width="match_parent"
+         android:layout_height="wrap_content"
+         android:layout_marginBottom="32dp"
+         android:textColor="?android:attr/colorError"
+         android:textSize="18sp"
+         android:text="@string/storage_warning_internal" />
      <ImageView
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
diff --git a/res/mipmap-hdpi/ic_launcher_settings.png b/res/mipmap-hdpi/ic_launcher_settings.png
deleted file mode 100644
index ddce98e..0000000
--- a/res/mipmap-hdpi/ic_launcher_settings.png
+++ /dev/null
Binary files differ
diff --git a/res/mipmap-mdpi/ic_launcher_settings.png b/res/mipmap-mdpi/ic_launcher_settings.png
deleted file mode 100644
index 86f3be8..0000000
--- a/res/mipmap-mdpi/ic_launcher_settings.png
+++ /dev/null
Binary files differ
diff --git a/res/mipmap-xhdpi/ic_launcher_settings.png b/res/mipmap-xhdpi/ic_launcher_settings.png
deleted file mode 100644
index 360aa69..0000000
--- a/res/mipmap-xhdpi/ic_launcher_settings.png
+++ /dev/null
Binary files differ
diff --git a/res/mipmap-xxhdpi/ic_launcher_settings.png b/res/mipmap-xxhdpi/ic_launcher_settings.png
deleted file mode 100644
index 7cb67a9..0000000
--- a/res/mipmap-xxhdpi/ic_launcher_settings.png
+++ /dev/null
Binary files differ
diff --git a/res/mipmap-xxxhdpi/ic_launcher_settings.png b/res/mipmap-xxxhdpi/ic_launcher_settings.png
deleted file mode 100644
index 3fec9c4..0000000
--- a/res/mipmap-xxxhdpi/ic_launcher_settings.png
+++ /dev/null
Binary files differ
diff --git a/res/raw/lottie_quickly_open_camera.json b/res/raw/lottie_quickly_open_camera.json
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/res/raw/lottie_quickly_open_camera.json
diff --git a/res/values-af/cm_strings.xml b/res/values-af/cm_strings.xml
new file mode 100644
index 0000000..83f92a2
--- /dev/null
+++ b/res/values-af/cm_strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">LineageOS Regs</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Jy is nou <xliff:g id="step_count">%1$d</xliff:g> stap weg van bemagtigende ontwikkelaar opsies.</item>
+        <item quantity="other">Jy is nou <xliff:g id="step_count">%1$d</xliff:g> stappe weg van bemagtigende ontwikkelaar opsies.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Jy het die ontwikkeling opsies geaktiveer!</string>
+    <string name="show_dev_already_cm">Nie nodig, het jy reeds die ontwikkeling opsies geaktiveer.</string>
+    <string name="peak_refresh_rate_summary_custom">Verhoog die herlaaikoers vir sommige inhoud outomaties van 60 na %1$d Hz. Verhoog batterygebruik.</string>
+    <string name="heads_up_notifications_enabled_title">Swewende kennisgewings</string>
+    <string name="heads_up_notifications_enabled_summary">Wys prioriteit kennisgewings in \'n klein swewende venster</string>
+    <string name="high_touch_sensitivity_title">Hoë raak sensitiwiteit</string>
+    <string name="high_touch_sensitivity_summary">Verhoog skerm sensitiwiteit, sodat dit kan gebruik word met die dra van handskoene</string>
+    <string name="increasing_ring_volume_option_title">Toenemende luitoon volume</string>
+    <string name="increasing_ring_min_volume_title">Begin volume</string>
+    <string name="increasing_ring_ramp_up_time_title">Tydsduur</string>
+    <string name="lockscreen_media_art_title">Wys media kuns</string>
+    <string name="lock_settings_picker_pattern_size_message">Kies \'n patroongrootte</string>
+    <string name="lockpattern_settings_enable_error_path_title">Wys patroon fout</string>
+    <string name="lockpattern_settings_enable_dots_title">Wys patroon kolle</string>
+    <string name="app_notification_sound_timeout_title">Minimum tyd tussen kennisgewingklanke</string>
+    <string name="app_notification_sound_timeout_summary_template">Laat geluide of vibrasie nie meer as een keer elke <xliff:g id="duration">%1$s </xliff:g> toe</string>
+    <string name="app_notification_sound_timeout_value_none">Geen beperkings</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 sekondes</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 sekondes</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minuut</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minute</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minute</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minute</string>
+    <string name="unlock_scramble_pin_layout_title">Skommel uitleg</string>
+    <string name="unlock_scramble_pin_layout_summary">Skommel PIN uitleg wanneer die toestel ontsluit word</string>
+    <string name="proximity_wake_title">Voorkom toevallige wakker word</string>
+    <string name="touchscreen_hovering_title">Raakskerm swewing</string>
+    <string name="touchscreen_hovering_summary">Laat toe om bo die skerm te sweef soos \'n muis in web blaaiers, \"remote desktops\", ens</string>
+    <string name="wake_when_plugged_or_unplugged_title">Word wakker op in/uit prop</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Skakel die skerm aan met die koppeling of ontkoppeling van \'n kragbron</string>
+</resources>
diff --git a/res/values-am/cm_strings.xml b/res/values-am/cm_strings.xml
new file mode 100644
index 0000000..3a79691
--- /dev/null
+++ b/res/values-am/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">ለአንዳንድ ይዘት የማደሻ ፍጥነቱን በራስ-ሰር ከ60 ወደ %1$d ኸርዝ ያሳድገዋል። የባትሪ ፍጆታን ይጨምራል።</string>
+</resources>
diff --git a/res/values-ar/cm_strings.xml b/res/values-ar/cm_strings.xml
new file mode 100644
index 0000000..9044d5f
--- /dev/null
+++ b/res/values-ar/cm_strings.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">الإضافات</string>
+    <string name="advanced_keyboard_settings_title">الإعدادات المتقدمة</string>
+    <string name="adb_enable_root">تصحيح بالروت</string>
+    <string name="adb_enable_summary_root">السماح بتشغيل مصحح أخطاء أندرويد بصلاحية روت</string>
+    <string name="backup_transport_setting_label">تغيير موفر النسخ الاحتياطي</string>
+    <string name="backup_transport_title">حدد موفر النسخ الاحتياطي</string>
+    <string name="berry_black_theme_title">أسود خالص</string>
+    <string name="berry_black_theme_summary">خلفية سوداء خالصة للوضع المظلم</string>
+    <string name="lineagelicense_title">قانون LineageOS</string>
+    <string name="device_info_protected_single_press">انقر لعرض المعلومات</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="zero">أنت الآن على بُعد <xliff:g id="step_count">%1$d</xliff:g> خطوة من تمكين خيارات المطور.</item>
+        <item quantity="one">أنت الآن على بُعد خطوة واحدة من تمكين خيارات المطور.</item>
+        <item quantity="two">أنت الآن على بُعد خطوتين من تمكين خيارات المطور.</item>
+        <item quantity="few">أنت الآن على بُعد <xliff:g id="step_count">%1$d</xliff:g> خطوات من تمكين خيارات المطور.</item>
+        <item quantity="many">أنت الآن على بُعد <xliff:g id="step_count">%1$d</xliff:g> خطوة من تمكين خيارات المطور.</item>
+        <item quantity="other">أنت الآن على بُعد <xliff:g id="step_count">%1$d</xliff:g> خطوة من تمكين خيارات المطور.</item>
+    </plurals>
+    <string name="show_dev_on_cm">مكّنتَ خيارات المطور!</string>
+    <string name="show_dev_already_cm">لا داعي، فخيارات المطور مفعّلة.</string>
+    <string name="peak_refresh_rate_summary_custom">تعمل هذه الميزة على رفع معدل إعادة التحميل تلقائيًا من 60 إلى %1$d هرتز لبعض أنواع المحتوى، ما يؤدي إلى زيادة استخدام البطارية.</string>
+    <string name="status_bar_double_tap_to_sleep_title">اضغط للنوم</string>
+    <string name="status_bar_double_tap_to_sleep_summary">الضغط مرتين فوق شريط الحالة لإطفاء الشاشة</string>
+    <string name="heads_up_notifications_enabled_title">الإشعارات العائمة</string>
+    <string name="heads_up_notifications_enabled_summary">عرض الإشعارات ذات الأولوية في إطار عائم صغير</string>
+    <string name="high_touch_sensitivity_title">حساسية ذات لمس عالي</string>
+    <string name="high_touch_sensitivity_summary">زيادة حساسية شاشة اللمس حتى يمكن استخدامها أثناء ارتداء القفازات</string>
+    <string name="tethering_allow_vpn_upstreams_title">السماح للعملاء باستخدام الـ VPN</string>
+    <string name="tethering_allow_vpn_upstreams_summary">السماح لعملاء نقطة الاتصال باستخدام اتصالات الـVPN لهذا الجهاز\u2019</string>
+    <string name="increasing_ring_volume_option_title">حجم الصوت متزايد</string>
+    <string name="increasing_ring_min_volume_title">حجم الصوت البدئيّ</string>
+    <string name="increasing_ring_ramp_up_time_title">زمن التدرج</string>
+    <string name="lockscreen_media_art_title">عرض الغلاف الفني للوسائط</string>
+    <string name="lock_settings_picker_pattern_size_message">اختر حجم النمط</string>
+    <string name="lockpattern_settings_enable_error_path_title">إظهار خطأ النمط</string>
+    <string name="lockpattern_settings_enable_dots_title">إظهار نقاط النمط</string>
+    <string name="max_refresh_rate_title">معدل التحديث الأقصى</string>
+    <string name="min_refresh_rate_title">معدل تحديث الشاشة الأدنى</string>
+    <string name="show_navbar_hint_title">تلميح عن التنقل</string>
+    <string name="show_navbar_hint_summary">إظهار شريط تنقل التلميح أسفل الشاشة</string>
+    <string name="app_notification_sound_timeout_title">الحد الأدنى من الوقت بين أصوات الإشعار</string>
+    <string name="app_notification_sound_timeout_summary_template">السماح بالصوت أو الاهتزاز ليس لأكثر من مرة واحدة كل <xliff:g id="duration">%1$s </xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">لا توجد قيود</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 ثوان</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 ثانية</string>
+    <string name="app_notification_sound_timeout_value_1_minute">دقيقة واحدة</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 دقائق</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 دقائق</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 دقيقة</string>
+    <string name="data_usage_app_restrict_all">السماح بالوصول إلى الشبكة</string>
+    <string name="data_usage_app_restrict_all_summary">تمكين استخدام الشبكة</string>
+    <string name="data_usage_app_restrict_mobile">بيانات الجوال</string>
+    <string name="data_usage_app_restrict_mobile_summary">تمكين استخدام بيانات الجوال</string>
+    <string name="data_usage_app_restrict_vpn">بيانات الـ VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">تمكين استخدام بيانات الـ VPN</string>
+    <string name="data_usage_app_restrict_wifi">بيانات WiFi</string>
+    <string name="data_usage_app_restrict_wifi_summary">تمكين استخدام بيانات WiFi</string>
+    <string name="unlock_scramble_pin_layout_title">تخطيط الترميز</string>
+    <string name="unlock_scramble_pin_layout_summary">تخطيط رقم PIN المرمز عند إلغاء تأمين الجهاز</string>
+    <string name="proximity_wake_title">منع الاستيقاظ العشوائي</string>
+    <string name="proximity_wake_summary">التحقق من مستشعر القرب قبل إيقاظ الشاشة</string>
+    <string name="touchscreen_gesture_settings_title">الإيماءات اللمسية</string>
+    <string name="touchscreen_gesture_settings_summary">عمل إيماءات لمسية متعددة لأعمال سريعة</string>
+    <string name="touchscreen_hovering_title">المرور فوق الشاشة اللمسية</string>
+    <string name="touchscreen_hovering_summary">يسمح لك بالمرور فوق الشاشة مثل الماوس في مستعرضات الويب، أو سطح المكتب عن بُعد، إلخ</string>
+    <string name="wake_when_plugged_or_unplugged_title">الإيقاظ عند التوصيل</string>
+    <string name="wake_when_plugged_or_unplugged_summary">تشغيل الشاشة عند الاتصال أو قطع الاتصال بمصدر الطاقة</string>
+    <string name="fast_charging_title">الشحن السريع</string>
+    <string name="fast_charging_summary">قم بتعطيله لتقليل الحرارة التي ينتجها الجهاز أثناء الشحن أو لتمديد عمر البطارية</string>
+</resources>
diff --git a/res/values-as/cm_strings.xml b/res/values-as/cm_strings.xml
new file mode 100644
index 0000000..fb1ad73
--- /dev/null
+++ b/res/values-as/cm_strings.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">LineageOS আইনী</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">আপুনি এতিয়া ডেভেলপমেণ্ট ছেটিংচ সক্ষম কৰাৰ পৰা <xliff:g id="step_count">%1$d</xliff:g>টা পদক্ষেপ দূৰত আছে।</item>
+        <item quantity="other">আপুনি এতিয়া ডেভেলপমেণ্ট ছেটিংচ সক্ষম কৰাৰ পৰা <xliff:g id="step_count">%1$d</xliff:g>টা পদক্ষেপ দূৰত আছে।</item>
+    </plurals>
+    <string name="show_dev_on_cm">আপুনি ডেভেলপমেণ্ট ছেটিংচ সক্ষম কৰিলে!</string>
+    <string name="show_dev_already_cm">আৱশ্যক নাই, আপুনি ইতিমধ্যে ডেভেলপমেণ্ট ছেটিংচ সক্ষম কৰিলে।</string>
+    <string name="peak_refresh_rate_summary_custom">কিছুমান সমলৰ বাবে ৰিফ্ৰেশ্বৰ হাৰ স্বয়ংক্ৰিয়ভাৱে ৬০ৰ পৰা ৯০হাৰ্টজলৈ বঢ়ায়। বেটাৰীৰ ব্যৱহাৰ বৃদ্ধি কৰে।</string>
+    <string name="high_touch_sensitivity_title">উচ্চ স্পৰ্শ সংবেদনশীলতা</string>
+    <string name="high_touch_sensitivity_summary">টাচ্চস্ক্ৰীণৰ সংবেদনশীলতা বৃদ্ধি কৰক যাতে হাতমোজা পিন্ধি থাকিলেও ইয়াক ব্যৱহাৰ কৰিব পাৰি</string>
+    <string name="increasing_ring_volume_option_title">ৰিং ভলিউম বৃদ্ধি কৰক</string>
+    <string name="increasing_ring_min_volume_title">ৰিং ভলিউম</string>
+    <string name="increasing_ring_ramp_up_time_title">ৰেম্প-আপ সময়</string>
+    <string name="lockpattern_settings_enable_error_path_title">পেটাৰ্ণৰ ত্ৰুটি প্ৰদৰ্শন কৰক</string>
+    <string name="lockpattern_settings_enable_dots_title">পেটাৰ্ণৰ ডটবোৰ প্ৰদৰ্শন কৰক</string>
+    <string name="unlock_scramble_pin_layout_title">স্ক্ৰেম্বল লেআউট</string>
+    <string name="unlock_scramble_pin_layout_summary">ডিভাইচ আনলকিং কৰোতে PIN লেআউট স্ক্ৰেম্বল কৰক</string>
+    <string name="proximity_wake_title">দুৰ্ঘটনাক্ৰমে ৱেক-আপ হোৱাটো প্ৰতিৰোধ কৰক</string>
+    <string name="touchscreen_hovering_title">টাচ্চস্ক্ৰীণ ভাসমান কৰাৰ</string>
+    <string name="touchscreen_hovering_summary">আপোনাক স্ক্ৰীণৰ ওপৰত ৱেব ব্ৰাউজাৰ, ৰিম\'ট ডেস্কটপ আদিৰ দৰে মাউচ ভাসমান কৰাৰ অনুমতি দিয়ে</string>
+    <string name="wake_when_plugged_or_unplugged_title">প্লাগ কৰিলে ৱেক কৰক</string>
+    <string name="wake_when_plugged_or_unplugged_summary">পাৱাৰ উৎসৰ সৈতে সংযোগ কৰিলে বা সংযোগহীন কৰিলে স্ক্ৰীণ অন কৰক</string>
+</resources>
diff --git a/res/values-ast-rES/cm_strings.xml b/res/values-ast-rES/cm_strings.xml
new file mode 100644
index 0000000..11e79c2
--- /dev/null
+++ b/res/values-ast-rES/cm_strings.xml
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Configuración adicional</string>
+    <string name="advanced_keyboard_settings_title">Configuración avanzada</string>
+    <string name="adb_enable_root">Depuración como root</string>
+    <string name="adb_enable_summary_root">Permite la execución de la depuración d\'Android como root</string>
+    <string name="berry_black_theme_title">Prietu puro</string>
+    <string name="berry_black_theme_summary">Un fondu en prieto puro pal estilu «Escuridá»</string>
+    <string name="lineagelicense_title">Información llegal de LineageOS</string>
+    <string name="device_info_protected_single_press">Toca equí p\'amosar la información</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Quédate <xliff:g id="step_count">%1$d</xliff:g> toque p\'activar la configuración de desendolcu.</item>
+        <item quantity="other">Quédente <xliff:g id="step_count">%1$d</xliff:g> toques p\'activar la configuración de desendolcu.</item>
+    </plurals>
+    <string name="show_dev_on_cm">¡Activesti les opciones de desendolcu!</string>
+    <string name="show_dev_already_cm">Nun fai falta, la configuración de desendolcu yá tán activaos.</string>
+    <string name="peak_refresh_rate_summary_custom">Incrementa automáticamente la frecuencia d\'anovamientu de 60 a %1$d Hz en dalgún tipu de conteníu. Esta opción aumenta l\'usu de la batería.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Tocar pa dormir</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Toca dos vegaes na barra d\'estáu o na pantalla de bloquéu p\'apagar la pantalla</string>
+    <string name="high_touch_polling_rate_title">Tasa de rexistru alta de los toques</string>
+    <string name="high_touch_polling_rate_summary">Aumenta la tasa de rexistru de la pantalla táctil</string>
+    <string name="heads_up_notifications_enabled_title">Avisos emerxentes</string>
+    <string name="high_touch_sensitivity_title">Sensibilidá alta al tactu</string>
+    <string name="high_touch_sensitivity_summary">Aumenta la sensibilidá de la pantalla táctil pa que puedas usala mentanto lleves guantes</string>
+    <string name="tethering_allow_vpn_upstreams_title">Permitir que los veceros usen les VPNs</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Permite que los veceros del puntu Wi-Fi usen les conexones VPN d\u2019esti preséu pa la conectividá</string>
+    <string name="increasing_ring_volume_option_title">Volume creciente del timbre</string>
+    <string name="increasing_ring_min_volume_title">Volume inicial</string>
+    <string name="lockscreen_media_art_title">Amosar les portaes de los álbumes</string>
+    <string name="lockpattern_settings_enable_error_path_title">Amosar los patrones incorreutos</string>
+    <string name="lockpattern_settings_enable_dots_title">Amosar los puntos del patrón</string>
+    <string name="max_refresh_rate_title">Tasa d\'anovamientu máxima</string>
+    <string name="min_refresh_rate_title">Tasa d\'anovamientu mínima</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Atopa\'l sensor de buelgues na parte d\'alantre de la tableta.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Atopa\'l sensor de buelgues na parte d\'alantre del preséu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Atopa\'l sensor de buelgues na parte d\'alantre del teléfonu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Atopa\'l sensor de buelgues na parte d\'atrás de la tableta.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Atopa\'l sensor de buelgues na parte d\'atrás del preséu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Atopa\'l sensor de buelgues na parte d\'atrás del teléfonu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Atopa\'l sensor de buelgues na parte llateral de la tableta.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Atopa\'l sensor de buelgues na parte llateral del preséu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Atopa\'l sensor de buelgues na parte llateral del teléfonu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Toca\'l sensor de la parte d\'alantre de la tableta.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Toca\'l sensor de la parte d\'alantre del preséu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Toca\'l sensor de la parte d\'alantre del teléfonu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Toca\'l sensor de la parte d\'atrás de la tableta.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Toca\'l sensor de la parte d\'atrás del preséu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Toca\'l sensor de la parte d\'atrás del teléfonu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Toca\'l sensor de la parte llateral de la tableta.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Toca\'l sensor de la parte llateral del preséu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Toca\'l sensor de la parte llateral del teléfonu.</string>
+    <string name="show_navbar_hint_title">Indicador de navegación</string>
+    <string name="show_navbar_hint_summary">Amuesa una barra indicadora de navegación no baxero de la pantalla</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 segundos</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 segundos</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minutu</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minutos</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minutos</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minutos</string>
+    <string name="auto_brightness_one_shot_title">Brillu automáticu namás una vegada</string>
+    <string name="auto_brightness_one_shot_summary">L\'axuste del brillu namás se produz nel momentu que la pantalla se prenda</string>
+    <string name="data_usage_app_restrict_all">Permitir l\'accesu a la rede</string>
+    <string name="data_usage_app_restrict_all_summary">Activa l\'usu de la rede</string>
+    <string name="data_usage_app_restrict_mobile">Datos móviles</string>
+    <string name="data_usage_app_restrict_mobile_summary">Activa l\'usu de los datos móviles</string>
+    <string name="data_usage_app_restrict_vpn">Datos per VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Activa l\'usu de los datos per VPN</string>
+    <string name="data_usage_app_restrict_wifi">Datos Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Activa l\'usu de los datos Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">Distribución al debalu</string>
+    <string name="unlock_scramble_pin_layout_summary">Alteria la distribución del tecláu del PIN al desbloquiar el preséu</string>
+    <string name="proximity_wake_title">Evitar l\'esconsueñu accidental</string>
+    <string name="proximity_wake_summary">Revisa\'l sensor de proximidá enantes de prender la pantalla</string>
+    <string name="touchscreen_gesture_settings_title">Xestos de la pantalla táctil</string>
+    <string name="touchscreen_gesture_settings_summary">Permítete facer dellos xestos na pantalla táctil pa executar aiciones rápides</string>
+    <string name="wake_when_plugged_or_unplugged_title">Esconsoñar al espatar</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Priende la pantalla al des/espatar el preséu d\'una fonte llétrica</string>
+    <string name="fast_charging_title">Carga rápida</string>
+    <string name="fast_charging_summary">Desactiva esta opción p\'amenorgar la calor producida pol preséu mentanto carga y aumentar la vida útil de la batería</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Ten primíu\'l sensor de buelgues pa desbloquiar el teléfonu</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Ten primíu\'l sensor de buelgues pa desbloquiar la tableta</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Ten primíu\'l sensor de buelgues pa desbloquiar el preséu</string>
+    <string name="ambient_display_screen_off_udfps_summary">Pa esconsoñar la pantalla y desbloquiar el preséu, ten primío sobre\'l sensor de buelgues que ta so la pantalla.</string>
+    <string name="storage_warning_internal">Alvertencia: ¡ye posible qu\'esta opción nun funcione afayadizamente o provoque la perda de datos, y polo tanto, nun s\'aconseya!</string>
+    <string name="assisted_gps_summary">Baxa los datos d\'asistencia satelitales d\'internet que puen ameyorar muncho\'l rindimientu inicial del GPS. Pa les llamaes d\'emerxencia, el GPS asistíu permítese siempres.</string>
+</resources>
diff --git a/res/values-az/cm_strings.xml b/res/values-az/cm_strings.xml
new file mode 100644
index 0000000..54d14cb
--- /dev/null
+++ b/res/values-az/cm_strings.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Əlavələr</string>
+    <string name="advanced_keyboard_settings_title">Qabaqcıl tənzimləmələr</string>
+    <string name="adb_enable_root">Rootlu sazlama</string>
+    <string name="adb_enable_summary_root">Android sazlamanın rootlu olaraq işləməsinə icazə ver</string>
+    <string name="backup_transport_setting_label">Nüsxələmə provayderini dəyişdir</string>
+    <string name="backup_transport_title">Nüsxələmə provayderini seç</string>
+    <string name="berry_black_theme_title">Təmiz qara</string>
+    <string name="berry_black_theme_summary">Tünd tema üçün təmiz qara arxaplan</string>
+    <string name="lineagelicense_title">LineageOS qanuni</string>
+    <string name="device_info_protected_single_press">Məlumatı göstərmək üçün toxunun</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Tərtibatçı tənzimləmələrinin fəallaşdırılmasına <xliff:g id="step_count">%1$d</xliff:g> addım qaldı.</item>
+        <item quantity="other">Tərtibatçı tənzimləmələrinin fəallaşdırılmasına <xliff:g id="step_count">%1$d</xliff:g> addım qaldı.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Tərtibatçı tənzimləmələrini fəallaşdırdınız!</string>
+    <string name="show_dev_already_cm">Artıq tərtibatçı tənzimləmələrini fəallaşdırmısınız.</string>
+    <string name="peak_refresh_rate_summary_custom">Bəzi məzmun üçün yeniləmə dərəcəsini 60 Hs-dən %1$d Hs-ə avtomatik yüksəldir. Batareya istifadəsini artırır.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Yuxlatmaq üçün toxun</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Ekranı söndürmək üçün vəziyyət sətrinə və ya kilid ekranına cüt toxunun</string>
+    <string name="high_touch_polling_rate_title">Yüksək toxunuş yoxlama dərəcəsi</string>
+    <string name="high_touch_polling_rate_summary">Toxunaqlı ekran yoxlama dərəcəsini artırın</string>
+    <string name="heads_up_notifications_enabled_title">Açılan başlıqlar</string>
+    <string name="heads_up_notifications_enabled_summary">Kiçik bir üzən pəncərədə əhəmiyyətli bildirişləri görüntülə</string>
+    <string name="high_touch_sensitivity_title">Yüksək toxunuş həssaslığı</string>
+    <string name="high_touch_sensitivity_summary">Toxunuş həssaslığını artıraraq əlcəklə istifadəni mümkün edər</string>
+    <string name="tethering_allow_vpn_upstreams_title">Müştərilərin VPN istifadəsinə icazə ver</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Hotspot istifadəçilərinin bağlantıları arasında bu cihazın VPN bağlantısını istifadə etməsinə icazə ver</string>
+    <string name="increasing_ring_volume_option_title">Artan zəng səsi</string>
+    <string name="increasing_ring_min_volume_title">Başlanğıc səsi</string>
+    <string name="increasing_ring_ramp_up_time_title">Artma vaxtı</string>
+    <string name="lockscreen_media_art_title">Medianın qapaq üzünü göstər</string>
+    <string name="lock_settings_picker_pattern_size_message">Forma ölçüsünü seçin</string>
+    <string name="lockpattern_settings_enable_error_path_title">Forma xətalarını göstər</string>
+    <string name="lockpattern_settings_enable_dots_title">Forma nöqtələrini göstər</string>
+    <string name="max_refresh_rate_title">Ən yüksək təzələnmə sürəti</string>
+    <string name="min_refresh_rate_title">Minimum təzələmə əmsalı</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Planşetinizin ön tərəfindəki barmaq izi sensorunu tapın.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Cihazınızın ön tərəfindəki barmaq izi sensorunu tapın.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Telefonunuzun ön tərəfindəki barmaq izi sensorunu tapın.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Planşetinizin arxa tərəfindəki barmaq izi sensorunu tapın.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Cihazınızın arxa tərəfindəki barmaq izi sensorunu tapın.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Telefonunuzun arxa tərəfindəki barmaq izi sensorunu tapın.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Planşetinizin yan tərəfindəki barmaq izi sensorunu tapın.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Cihazınızın yan tərəfindəki barmaq izi sensorunu tapın.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Telefonunuzun yan tərəfindəki barmaq izi sensorunu tapın.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Planşetinizin ön tərəfindəki sensora toxunun.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Cihazınızın ön tərəfindəki sensora toxunun.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Telefonunuzun ön tərəfindəki sensora toxunun.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Planşetinizin arxa tərəfindəki sensora toxunun.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Cihazınızın arxa tərəfindəki sensora toxunun.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Telefonunuzun arxa tərəfindəki sensora toxunun.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Planşetinizin yan tərəfindəki sensora toxunun.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Cihazınızın yan tərəfindəki sensora toxunun.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Telefonunuzun yan tərəfindəki sensora toxunun.</string>
+    <string name="show_navbar_hint_title">Hərəkət məsləhəti</string>
+    <string name="show_navbar_hint_summary">Ekranın altında hərəkət məsləhət sətrini göstər</string>
+    <string name="app_notification_sound_timeout_title">Bildiriş səsləri arası ən az vaxt</string>
+    <string name="app_notification_sound_timeout_summary_template">Bir dəfədən çox olmayaraq hər <xliff:g id="duration">%1$s</xliff:g> də bir titrəmə və ya səsə icazə ver</string>
+    <string name="app_notification_sound_timeout_value_none">Məhdudiyyət yoxdur</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 saniyə</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 saniyə</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 dəqiqə</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 dəqiqə</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 dəqiqə</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 dəqiqə</string>
+    <string name="auto_brightness_one_shot_title">Tək çəkilişdə avto-parlaqlıq</string>
+    <string name="auto_brightness_one_shot_summary">Parlaqlıq nizamı yalnız ekran açılanda icra edilir</string>
+    <string name="data_usage_app_restrict_all">Şəbəkə müraciətinə icazə ver</string>
+    <string name="data_usage_app_restrict_all_summary">Şəbəkə istifadəsini fəallaşdır</string>
+    <string name="data_usage_app_restrict_mobile">Mobil internet</string>
+    <string name="data_usage_app_restrict_mobile_summary">Mobil internet istifadəsini fəallaşdır</string>
+    <string name="data_usage_app_restrict_vpn">VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">VPN istifadəsini fəallaşdır</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Wi\u2011Fi istifadəsini fəallaşdır</string>
+    <string name="unlock_scramble_pin_layout_title">Düzümü qarışdır</string>
+    <string name="unlock_scramble_pin_layout_summary">Cihaz kilidini açarkən PIN düzümünü qarışdır</string>
+    <string name="proximity_wake_title">Təsadüfi oyanmaların qarşısını al</string>
+    <string name="proximity_wake_summary">Ekranı oyandırmamışdan qabaq yaxınlıq sensorunu yoxlayın</string>
+    <string name="touchscreen_gesture_settings_title">Ekran toxunuş jestləri</string>
+    <string name="touchscreen_gesture_settings_summary">Cəld hərəkətlər üçün cürbəcür toxunaqlı ekran jestlərini həyata keçirin</string>
+    <string name="touchscreen_hovering_title">Toxunuşlu ekranda toxunmadan hərəkət</string>
+    <string name="touchscreen_hovering_summary">Ekrana toxunmadan barmağınızı yaxınlaşdıraraq siçan (maus) kimi veb səyyahlarda, uzaq masaüstlərində və s. hərəkətinizi təmin edər</string>
+    <string name="wake_when_plugged_or_unplugged_title">Taxıb çıxaranda oyan</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Cərəyan mənbəyinə taxarkən və ya çıxararkən bir səs oynat</string>
+    <string name="fast_charging_title">Sürətli enerji yığma</string>
+    <string name="fast_charging_summary">Cihazın enerji yığarkən istehsal etdiyi istiliyi azaltmaq və ya batereyanın ömrünü uzatmaq üçün sıradan çıxardın</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Telefonun kilidini açmaq üçün barmaq izi sensoruna uzun basın</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Planşetin kilidini açmaq üçün barmaq izi sensoruna uzun basın</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Cihazın kilidini açmaq üçün barmaq izi sensoruna uzun basın</string>
+    <string name="ambient_display_screen_off_udfps_summary">Ekranı oyandırmaq və kilidi açmaq üçün, ekran altındakı barmaq izi sensoruna uzun basın.</string>
+    <string name="storage_warning_internal">Xəbərdarlıq: Bu seçim, düzgün işləməyə və ya məlumat itkisinə səbəb ola bilər, buna görə də tövsiyə edilmir!</string>
+    <string name="assisted_gps_summary">GPS-in başlatma performansını əhəmiyyətli dərəcədə artıra bilən peyk köməkçi datalarını internetdən endirin. Fövqəladə hal zəngləri üçün köməkçi GPS-ə həmişə icazə verilir.</string>
+</resources>
diff --git a/res/values-b+sr+Latn/cm_strings.xml b/res/values-b+sr+Latn/cm_strings.xml
new file mode 100644
index 0000000..703ea87
--- /dev/null
+++ b/res/values-b+sr+Latn/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">Automatski podiže učestalost osvežavanja sa 60 na %1$d Hz za određeni sadržaj. Povećava potrošnju baterije.</string>
+</resources>
diff --git a/res/values-be/cm_strings.xml b/res/values-be/cm_strings.xml
new file mode 100644
index 0000000..52a7ed3
--- /dev/null
+++ b/res/values-be/cm_strings.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Дадаткі</string>
+    <string name="backup_transport_setting_label">Змяніць пастаўшчыка рэзервовага капіявання</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Застаўся <xliff:g id="step_count">%1$d</xliff:g> крок, каб уключыць налады для распрацоўшчыка.</item>
+        <item quantity="few">Засталося <xliff:g id="step_count">%1$d</xliff:g> крокі, каб уключыць налады для распрацоўшчыка.</item>
+        <item quantity="many">Засталося <xliff:g id="step_count">%1$d</xliff:g> крокаў, каб уключыць налады для распрацоўшчыка.</item>
+        <item quantity="other">Засталося <xliff:g id="step_count">%1$d</xliff:g> крокаў, каб уключыць налады для распрацоўшчыка.</item>
+    </plurals>
+    <string name="status_bar_double_tap_to_sleep_summary">Двойчы націсніце на панэль стану або экран блакіроўкі, каб перавесці прыладу ў рэжым сну</string>
+    <string name="high_touch_polling_rate_title">Высокая частата апытання дотыку</string>
+    <string name="high_touch_polling_rate_summary">Павялічыць частату апытання дотыку</string>
+    <string name="heads_up_notifications_enabled_summary">Паказваць прыярытэтныя апавяшчэнні з дапамогай невялікіх усплывальных вокнаў</string>
+    <string name="high_touch_sensitivity_title">Высокая адчувальнасць дотыку</string>
+    <string name="high_touch_sensitivity_summary">Павялічыць адчувальнасць экрана для магчымасці працы ў пальчатках</string>
+    <string name="tethering_allow_vpn_upstreams_title">Дазволіць кліентам выкарыстоўваць VPN</string>
+    <string name="increasing_ring_min_volume_title">Пачатковая гучнасць</string>
+    <string name="increasing_ring_ramp_up_time_title">Час павелічэння</string>
+    <string name="lockscreen_media_art_title">Паказваць вокладку мультымедыя</string>
+    <string name="lock_settings_picker_pattern_size_message">Выберыце памер графічнага ключа</string>
+    <string name="lockpattern_settings_enable_error_path_title">Паказваць няправільны ўвод</string>
+    <string name="lockpattern_settings_enable_dots_title">Паказваць кропкі</string>
+    <string name="show_navbar_hint_title">Падказкі навігацыі</string>
+    <string name="app_notification_sound_timeout_value_none">Без абмежаванняў</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 секунд</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 секунд</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 хвіліна</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 хвілін</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 хвілін</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 хвілін</string>
+    <string name="unlock_scramble_pin_layout_title">Змешваць кнопкі</string>
+    <string name="unlock_scramble_pin_layout_summary">Перастаўляць кнопкі ўводу PIN-кода ў выпадковым парадку</string>
+    <string name="touchscreen_gesture_settings_summary">Выкананне розных сэнсарных жэстаў на экране для хуткіх дзеянняў</string>
+    <string name="touchscreen_hovering_title">Навядзенне пальца</string>
+    <string name="touchscreen_hovering_summary">Дазваляе распазнаваць набліжэнне пальца да экрана для падзей навядзення курсора ў браўзеры або іншых праграмах</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Уключаць экран пры падключэнні або адключэнні крыніцы сілкавання</string>
+    <string name="fast_charging_summary">Адключыць, каб паменшыць нагрэў прылады падчас зарадкі або падоўжыць тэрмін службы акумулятара</string>
+</resources>
diff --git a/res/values-bg/cm_strings.xml b/res/values-bg/cm_strings.xml
new file mode 100644
index 0000000..7cc2d29
--- /dev/null
+++ b/res/values-bg/cm_strings.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Екстри</string>
+    <string name="advanced_keyboard_settings_title">Разширени настройки</string>
+    <string name="adb_enable_root">Отстраняване на грешки с достъп на съперползвател (root)</string>
+    <string name="adb_enable_summary_root">Разрешете отстраняване на грешки в Android с права на суперпотребител</string>
+    <string name="backup_transport_setting_label">Промяна на доставчика на резервни копия</string>
+    <string name="backup_transport_title">Изберете доставчик на резервни копия</string>
+    <string name="berry_black_theme_title">Натурално черно</string>
+    <string name="berry_black_theme_summary">Натурален черен фон за тъмна тема</string>
+    <string name="lineagelicense_title">LineageOS правна информация</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Вече сте на <xliff:g id="step_count">%1$d </xliff:g> крачка от включването на \"Опции на програмиста\".</item>
+        <item quantity="other">Вече сте на <xliff:g id="step_count">%1$d </xliff:g> крачки от включването на \"Опции на програмиста\".</item>
+    </plurals>
+    <string name="show_dev_on_cm">Включихте менюто \"Опции на програмиста\"!</string>
+    <string name="show_dev_already_cm">Няма нужда, вече сте включили менюто Опции на програмиста.</string>
+    <string name="peak_refresh_rate_summary_custom">Автоматично увеличава честотата на опресняване от 60 на %1$d Hz за част от съдържанието. По-интензивно използване на батерията.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Натиснете, за заспиване</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Докоснете двукратно лентата на състоянието или заключващия екран, за да изключите дисплея</string>
+    <string name="heads_up_notifications_enabled_title">Изскачащи известия</string>
+    <string name="heads_up_notifications_enabled_summary">Покажи приоритетни известия в малък плаващ прозорец</string>
+    <string name="high_touch_sensitivity_title">Висока чувствителност на допир</string>
+    <string name="high_touch_sensitivity_summary">Увеличи сензорната чувствителност, така че може да се използва докато носите ръкавици</string>
+    <string name="tethering_allow_vpn_upstreams_title">Разрешете на клиентите да използват VPN</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Разрешете на клиентите на точка за достъп да използват VPN връзките на това устройство, за да се свържат с мрежата</string>
+    <string name="increasing_ring_volume_option_title">Увеличаване силата на звука при звънене</string>
+    <string name="increasing_ring_min_volume_title">Начална сила на звука</string>
+    <string name="increasing_ring_ramp_up_time_title">Време на увеличение</string>
+    <string name="lockscreen_media_art_title">Показване на артистична обложка</string>
+    <string name="lock_settings_picker_pattern_size_message">Изберете размера на шаблона</string>
+    <string name="lockpattern_settings_enable_error_path_title">Покажи модела на грешката</string>
+    <string name="lockpattern_settings_enable_dots_title">Покажи точките на модела</string>
+    <string name="max_refresh_rate_title">Пикова честота на опресняване</string>
+    <string name="min_refresh_rate_title">Минимална честота на опресняване</string>
+    <string name="show_navbar_hint_title">Подсказки за навигация</string>
+    <string name="show_navbar_hint_summary">Показване на подсказки за навигация в долната част на екрана</string>
+    <string name="app_notification_sound_timeout_title">Минимално време между напомняния</string>
+    <string name="app_notification_sound_timeout_summary_template">Разреши звуци или вибрации, но не повече от веднъж на всеки <xliff:g id="duration">%1$s </xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Без ограничение</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 секунди</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 секунди</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 минута</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 минути</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 минути</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 минути</string>
+    <string name="auto_brightness_one_shot_title">Автоматична яркост на един кадър</string>
+    <string name="auto_brightness_one_shot_summary">Регулирането на яркостта ще се извършва само в момента на включване на екрана</string>
+    <string name="data_usage_app_restrict_all">Разреши достъп до мрежата</string>
+    <string name="data_usage_app_restrict_all_summary">Активирай използване на мрежата</string>
+    <string name="data_usage_app_restrict_mobile">Мобилни данни</string>
+    <string name="data_usage_app_restrict_mobile_summary">Разреши използването на мобилни данни</string>
+    <string name="data_usage_app_restrict_vpn">VPN данни</string>
+    <string name="data_usage_app_restrict_vpn_summary">Активиране използването на VPN данни</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi данни</string>
+    <string name="data_usage_app_restrict_wifi_summary">Разреши използването на Wi\u2011Fi данни</string>
+    <string name="unlock_scramble_pin_layout_title">Разбъркано оформление</string>
+    <string name="unlock_scramble_pin_layout_summary">Разбъркано PIN оформление при отключване на устройството</string>
+    <string name="proximity_wake_title">Предотвратяване на случайно събуждане</string>
+    <string name="proximity_wake_summary">Провери сензора за близост преди събуждане на екрана</string>
+    <string name="touchscreen_gesture_settings_title">Тъчскрийн жестове</string>
+    <string name="touchscreen_gesture_settings_summary">Изпълнява различни бързи действия чрез жестове върху сензорния екран</string>
+    <string name="touchscreen_hovering_title">Сочейки по сензорния екран</string>
+    <string name="touchscreen_hovering_summary">Позволява ви да сочите по екрана като с мишка в уеб браузъри, отдалечени настолни компютри и др</string>
+    <string name="wake_when_plugged_or_unplugged_title">Събуждане при зареждане</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Включване на екрана, когато включвате или изключвате източник на захранване</string>
+    <string name="fast_charging_title">Бързо зареждане</string>
+    <string name="fast_charging_summary">Деактивирайте, за да намалите топлината, произведена от устройството по време на зареждане или да удължите живота на батерията</string>
+</resources>
diff --git a/res/values-bn/cm_strings.xml b/res/values-bn/cm_strings.xml
new file mode 100644
index 0000000..3d20c47
--- /dev/null
+++ b/res/values-bn/cm_strings.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">অতিরিক্ত</string>
+    <string name="advanced_keyboard_settings_title">অ্যাডভান্সড সেটিংস</string>
+    <string name="adb_enable_root">রুট করা ডিবাগিং</string>
+    <string name="adb_enable_summary_root">রুট করা অবস্থায় অ্যান্ড্রয়েড ডিবাগিং করার অনুমতি দিন</string>
+    <string name="lineagelicense_title">সায়ানোজেনমড বৈধতা</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">আপনি ডেভেলপার সেটিংস সক্রিয় করার থেকে এখন <xliff:g id="step_count">%1$d</xliff:g> ধাপ দূরে।</item>
+        <item quantity="other">আপনি ডেভেলপার সেটিংস সক্রিয় করার থেকে এখন <xliff:g id="step_count">%1$d</xliff:g> ধাপ দূরে।</item>
+    </plurals>
+    <string name="show_dev_on_cm">আপনি ডেভেলপার সেটিংস সক্রিয় করেছেন!</string>
+    <string name="show_dev_already_cm">প্রয়োজন নেই, আপনি ইতিমধ্যে ডেভেলপার সেটিংস সক্রিয় করেছেন।</string>
+    <string name="peak_refresh_rate_summary_custom">কিছু কন্টেন্টের রিফ্রেশ রেট অটোমেটিক ৬০ থেকে ৯০ Hz পর্যন্ত বেড়ে যায়। ব্যাটারির ব্যবহার বেড়ে যায়।</string>
+    <string name="heads_up_notifications_enabled_title">Heads-up</string>
+    <string name="heads_up_notifications_enabled_summary">ছোট ভাসমান উইন্ডোতে অগ্রাধিকার প্রজ্ঞাপন প্রদর্শন করুন</string>
+    <string name="high_touch_sensitivity_title">উচ্চ স্পর্শ সংবেদনশীলতা</string>
+    <string name="high_touch_sensitivity_summary">টাচস্ক্রীন সংবেদনশীলতা বৃদ্ধি করুন যাতে গ্লাভস পরিহিত অবস্থায় ব্যবহার করা যেতে পারে</string>
+    <string name="lock_settings_picker_pattern_size_message">প্যাটার্নের আকার নির্ধারন করুন</string>
+    <string name="min_refresh_rate_title">সর্বনিম্ন রিফ্রেশ রেট</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">ফিঙ্গারপ্রিন্ট সেন্সরটি আপনার ট্যাবলেটের সামনের দিকে আছে</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">ফিঙ্গারপ্রিন্ট সেন্সরটি আপনার ডিভাইসের সামনের দিকে আছে</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">ফিঙ্গারপ্রিন্ট সেন্সরটি আপনার ফোনের সামনের দিকে আছে</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">ফিঙ্গারপ্রিন্ট সেন্সরটি আপনার ট্যাবলেটের পিছনের দিকে আছে</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">ফিঙ্গারপ্রিন্ট সেন্সরটি আপনার ডিভাইসের পিছনের দিকে আছে</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">ফিঙ্গারপ্রিন্ট সেন্সরটি আপনার ফোনের পিছনের দিকে আছে</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">ফিঙ্গারপ্রিন্ট সেন্সরটি আপনার ট্যাবলেটের এক পাশে আছে</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">ফিঙ্গারপ্রিন্ট সেন্সরটি আপনার ডিভাইসের এক পাশে আছে</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">ফিঙ্গারপ্রিন্ট সেন্সরটি আপনার ফোনের এক পাশে আছে</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">আপনার ট্যাবলেটের সামনের সেন্সরে টিপ দিন</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">আপনার ডিভাইসের সামনের সেন্সরে টিপ দিন</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">আপনার ফোনের সামনের সেন্সরে টিপ দিন</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">আপনার ট্যাবলেটের পিছনের সেন্সরে টিপ দিন</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">আপনার ডিভাইসের পিছনের সেন্সরে টিপ দিন</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">আপনার ফোনের পিছনের সেন্সরে টিপ দিন</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">আপনার ট্যাবলেটের পাশের সেন্সরে টিপ দিন</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">আপনার ডিভাইসের পাশের সেন্সরে টিপ দিন</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">আপনার ফোনের পাশের সেন্সরে টিপ দিন</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">১০ সেকেন্ড</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">৩০ সেকেন্ড</string>
+    <string name="app_notification_sound_timeout_value_1_minute">১ মিনিট</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">৫ মিনিট</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">১০ মিনিট</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">৩০ মিনিট</string>
+    <string name="data_usage_app_restrict_mobile">মোবাইল ডাটা</string>
+    <string name="data_usage_app_restrict_mobile_summary">মোবাইল ডাটার ব্যবহার সক্ষম করো</string>
+    <string name="data_usage_app_restrict_vpn">ভিপিএন ডাটা</string>
+    <string name="unlock_scramble_pin_layout_title">একত্র বিন্যাস</string>
+    <string name="unlock_scramble_pin_layout_summary">একত্র পিন বিন্যাস যখন ডিভাইস অবমুক্ত করার সময়</string>
+    <string name="proximity_wake_title">আকস্মিক জেগে ওঠা প্রতিহত করুন</string>
+    <string name="wake_when_plugged_or_unplugged_title">প্লাগইন অবস্থায় জেগে উঠা</string>
+    <string name="wake_when_plugged_or_unplugged_summary">শক্তির উৎস যখন যুক্ত অথবা বিচ্ছিন্ন করা হচ্ছে তখন পর্দা সচল করুন</string>
+    <string name="fast_charging_title">ফাস্ট চার্জিং</string>
+    <string name="fast_charging_summary">চার্জিং এর সময় ডিভাইস কম গরম হতে অথবা ব্যাটারির আয়ু বাড়াতে অক্ষম করতে পারেন</string>
+</resources>
diff --git a/res/values-bs/cm_strings.xml b/res/values-bs/cm_strings.xml
new file mode 100644
index 0000000..945ac38
--- /dev/null
+++ b/res/values-bs/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">Automatski povećava interval osvježavanja sa 60 na %1$d Hz za određeni sadržaj. Povećava potrošnju baterije.</string>
+</resources>
diff --git a/res/values-ca/cm_strings.xml b/res/values-ca/cm_strings.xml
new file mode 100644
index 0000000..c7f275b
--- /dev/null
+++ b/res/values-ca/cm_strings.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Extres</string>
+    <string name="advanced_keyboard_settings_title">Configuració avançada</string>
+    <string name="adb_enable_root">Depuració arrelada</string>
+    <string name="adb_enable_summary_root">Permet executar la depuració d\'Android com a root</string>
+    <string name="backup_transport_setting_label">Canvia el proveïdor de còpia de seguretat</string>
+    <string name="backup_transport_title">Trieu un proveïdor de còpia de seguretat</string>
+    <string name="berry_black_theme_title">Negre pur</string>
+    <string name="berry_black_theme_summary">Fons negre pur per al tema fosc</string>
+    <string name="lineagelicense_title">Llicència LineageOS</string>
+    <string name="device_info_protected_single_press">Toqueu per mostrar la informació</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Ara ets a <xliff:g id="step_count">%1$d</xliff:g> pas d\'habilitar les configuracions de desenvolupament.</item>
+        <item quantity="other">Ara ets a <xliff:g id="step_count">%1$d</xliff:g> passos d\'habilitar les configuracions de desenvolupament.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Has habilitat les configuracions de desenvolupament!</string>
+    <string name="show_dev_already_cm">No fa falta, ja has habilitat les configuracions de desenvolupament.</string>
+    <string name="peak_refresh_rate_summary_custom">Augmenta automàticament la freqüència d\'actualització de 60 a %1$d Hz en alguns continguts. Augmenta l\'ús de la bateria.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Pica per posar en repòs</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Pica dues vegades a la barra d\'estat o a la pantalla de bloqueig per apagar la pantalla</string>
+    <string name="high_touch_polling_rate_title">Taxa de petició tàctil elevada</string>
+    <string name="high_touch_polling_rate_summary">Augmenta la taxa de sondeig de la pantalla tàctil</string>
+    <string name="heads_up_notifications_enabled_title">Notificacions emergents</string>
+    <string name="heads_up_notifications_enabled_summary">Mostra les notificacions prioritàries en una petita finestra flotant</string>
+    <string name="high_touch_sensitivity_title">Sensibilitat al tacte alta</string>
+    <string name="high_touch_sensitivity_summary">Incrementa la sensibilitat de la pantalla tàctil de manera que pugui utilitzar-se si es porten guants</string>
+    <string name="tethering_allow_vpn_upstreams_title">Permet als clients utilitzar les VPN</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Permet que els clients de punts d\'accés utilitzin les connexions VPN d\'aquest dispositiu per a la connectivitat ascendent</string>
+    <string name="increasing_ring_volume_option_title">Volum del to de trucada creixent</string>
+    <string name="increasing_ring_min_volume_title">Volum inicial</string>
+    <string name="increasing_ring_ramp_up_time_title">Durada del crescendo</string>
+    <string name="lockscreen_media_art_title">Mostra la coberta de l\'àlbum</string>
+    <string name="lock_settings_picker_pattern_size_message">Tria una mida de patró</string>
+    <string name="lockpattern_settings_enable_error_path_title">Mostra el patró erroni</string>
+    <string name="lockpattern_settings_enable_dots_title">Mostra els punts del patró</string>
+    <string name="max_refresh_rate_title">Freqüència de refresc màxima</string>
+    <string name="min_refresh_rate_title">Freqüència de refresc mínima</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Localitza el sensor d\'empremtes digitals a la part davantera de la tauleta.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Localitza el sensor d\'empremtes digitals a la part davantera del teu dispositiu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Localitza el sensor d\'empremtes digitals a la part davantera del teu mòbil.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Localitza el sensor d\'empremtes digitals a la part trasera de la tauleta.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Localitza el sensor d\'empremtes digitals a la part trasera del teu dispositiu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Localitza el sensor d\'empremtes digitals a la part trasera del teu mòbil.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Localitza el sensor d\'empremtes digitals al costat de la teua tauleta.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Localitza el sensor d\'empremtes digitals al costat del teu dispositiu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Localitza el sensor d\'empremtes digitals al costat del teu mòbil.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Toca el sensor a la part davantera de la tauleta.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Toca el sensor a la part davantera del dispositiu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Toca el sensor a la part davantera del mòbil.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Toca el sensor a la part trasera de la tauleta.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Toca el sensor a la part trasera del teu dispositiu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Toca el sensor a la part trasera del mòbil.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Toca el sensor al costat de la tauleta.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Toca el sensor al costat del dispositiu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Toca el sensor al costat del mòbil.</string>
+    <string name="show_navbar_hint_title">Suggerència de navegació</string>
+    <string name="show_navbar_hint_summary">Mostra la barra de suggeriments de navegació a la part inferior de la pantalla</string>
+    <string name="app_notification_sound_timeout_title">Temps mínim entre els sons de notificació</string>
+    <string name="app_notification_sound_timeout_summary_template">Permet sons o vibració no més d\'una vegada cada <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Sense restricció</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 segons</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 segons</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minut</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minuts</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minuts</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minuts</string>
+    <string name="auto_brightness_one_shot_title">Ajusta la lluentor una sola vegada</string>
+    <string name="auto_brightness_one_shot_summary">L\'ajust de la lluentor només es produirà en el moment que la pantalla estigui encesa</string>
+    <string name="data_usage_app_restrict_all">Permet l\'accés a la xarxa</string>
+    <string name="data_usage_app_restrict_all_summary">Activa l\'ús de la xarxa</string>
+    <string name="data_usage_app_restrict_mobile">Dades mòbils</string>
+    <string name="data_usage_app_restrict_mobile_summary">Activa l\'ús de dades mòbils</string>
+    <string name="data_usage_app_restrict_vpn">Dades VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Habilita l\'ús de dades via VPN</string>
+    <string name="data_usage_app_restrict_wifi">Dades Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Activa l\'ús de dades Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">Disposició aleatòria</string>
+    <string name="unlock_scramble_pin_layout_summary">Disposa aleatòriament les tecles del PIN quan es desbloquegi el dispositiu</string>
+    <string name="proximity_wake_title">Evita l\'encesa accidental</string>
+    <string name="proximity_wake_summary">Comprova el sensor de proximitat abans d\'encendre la pantalla</string>
+    <string name="touchscreen_gesture_settings_title">Gestos a la pantalla tàctil</string>
+    <string name="touchscreen_gesture_settings_summary">Fes diversos gestos a la pantalla tàctil per fer accions ràpides</string>
+    <string name="touchscreen_hovering_title">Sura per sobre la pantalla tàctil</string>
+    <string name="touchscreen_hovering_summary">Et permet surar per sobre la pantalla com un ratolí en els navegadors web, escriptoris remots, etc</string>
+    <string name="wake_when_plugged_or_unplugged_title">Encén en endollar</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Encén la pantalla en connectar o desconnectar d\'una font d\'energia</string>
+    <string name="fast_charging_title">Càrrega ràpida</string>
+    <string name="fast_charging_summary">Desactiveu-lo per reduir la calor produïda pel dispositiu mentre es carrega o per ampliar la vida útil de la bateria</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Mantingueu premut el sensor d\'empremtes digitals per desbloquejar el telèfon</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Mantingueu premut el sensor d\'empremtes digitals per desbloquejar la tauleta</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Mantingueu premut el sensor d\'empremtes digitals per desbloquejar el dispositiu</string>
+    <string name="ambient_display_screen_off_udfps_summary">Per activar la pantalla i desbloquejar-la, mantingueu premut el sensor d\'empremtes dactilars de sota la pantalla.</string>
+    <string name="storage_warning_internal">Avís: aquesta opció pot no funcionar correctament o provocar la pèrdua de dades i, per tant, no es recomana!</string>
+    <string name="assisted_gps_summary">Baixa dades dassistència satelital d\'Internet que poden millorar en gran mesura el rendiment inicial del GPS. Per a trucades d\'emergència, sempre es permet el GPS assistit.</string>
+</resources>
diff --git a/res/values-cs/cm_strings.xml b/res/values-cs/cm_strings.xml
new file mode 100644
index 0000000..221fed2
--- /dev/null
+++ b/res/values-cs/cm_strings.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Doplňky</string>
+    <string name="advanced_keyboard_settings_title">Pokročilá nastavení</string>
+    <string name="adb_enable_root">Ladění s\u00a0právy root</string>
+    <string name="adb_enable_summary_root">Povolit spuštění ladění Androidu s\u00a0právy root</string>
+    <string name="backup_transport_setting_label">Změnit poskytovatele zálohování</string>
+    <string name="backup_transport_title">Vyberte poskytovatele zálohování</string>
+    <string name="berry_black_theme_title">Čistě černý</string>
+    <string name="berry_black_theme_summary">Čistě černé pozadí při tmavém motivu</string>
+    <string name="lineagelicense_title">Právní ujednání LineageOS</string>
+    <string name="device_info_protected_single_press">Klepnutím zobrazit informace</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Už jste jen <xliff:g id="step_count">%1$d</xliff:g> krok od povolení vývojářských nastavení.</item>
+        <item quantity="few">Už jste jen <xliff:g id="step_count">%1$d</xliff:g> kroky od povolení vývojářských nastavení.</item>
+        <item quantity="many">Už jste jen <xliff:g id="step_count">%1$d</xliff:g> kroků od povolení vývojářských nastavení.</item>
+        <item quantity="other">Už jste jen <xliff:g id="step_count">%1$d</xliff:g> kroků od povolení vývojářských nastavení.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Vývojářské nastavení je povoleno!</string>
+    <string name="show_dev_already_cm">Vývojářské nastavení je již povoleno.</string>
+    <string name="peak_refresh_rate_summary_custom">U některého obsahu automaticky zvýší obnovovací frekvenci z 60 na %1$d Hz. Zvyšuje využití baterie.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Klepnutím uspat</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Dvojitým poklepáním na stavovou lištu nebo zamykací obrazovku vypnout obrazovku</string>
+    <string name="high_touch_polling_rate_title">Vysoká vzorkovací frekvence pro dotyk</string>
+    <string name="high_touch_polling_rate_summary">Zvýšení vzorkovací frekvence dotykové obrazovky</string>
+    <string name="heads_up_notifications_enabled_title">Plovoucí upozornění</string>
+    <string name="heads_up_notifications_enabled_summary">Zobrazit prioritní oznámení v malém plovoucím okně</string>
+    <string name="high_touch_sensitivity_title">Vysoká citlivost dotyku</string>
+    <string name="high_touch_sensitivity_summary">Zvýšení citlivosti dotykové vrstvy, což umožňuje použít rukavice</string>
+    <string name="tethering_allow_vpn_upstreams_title">Umožnit klientům používat VPN</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Povolit klientům hotspotu používat připojení VPN tohoto zařízení pro upstream konektivitu</string>
+    <string name="increasing_ring_volume_option_title">Zvyšující se hlasitost vyzvánění</string>
+    <string name="increasing_ring_min_volume_title">Počáteční hlasitost</string>
+    <string name="increasing_ring_ramp_up_time_title">Doba zesilování</string>
+    <string name="lockscreen_media_art_title">Zobrazit obal médií</string>
+    <string name="lock_settings_picker_pattern_size_message">Zvolit velikost vzoru</string>
+    <string name="lockpattern_settings_enable_error_path_title">Zobrazit cestu chybného gesta</string>
+    <string name="lockpattern_settings_enable_dots_title">Zobrazit body gesta</string>
+    <string name="max_refresh_rate_title">Maximální obnovovací frekvence</string>
+    <string name="min_refresh_rate_title">Minimální obnovovací frekvence</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Vyhledejte snímač otisků prstů na přední straně tabletu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Vyhledejte snímač otisků prstů na přední straně zařízení.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Vyhledejte snímač otisků prstů na přední straně telefonu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Vyhledejte snímač otisků prstů na zadní straně tabletu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Vyhledejte snímač otisků prstů na zadní straně zařízení.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Vyhledejte snímač otisků prstů na zadní straně telefonu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Vyhledejte snímač otisků prstů na straně tabletu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Vyhledejte snímač otisků prstů na straně zařízení.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Vyhledejte snímač otisků prstů na straně telefonu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Dotkněte se senzoru na přední straně tabletu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Dotkněte se senzoru na přední straně zařízení.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Dotkněte se senzoru na přední straně telefonu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Dotkněte se senzoru na zadní straně tabletu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Dotkněte se senzoru na zadní straně zařízení.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Dotkněte se senzoru na zadní straně telefonu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Dotkněte se senzoru na straně tabletu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Dotkněte se senzoru na straně zařízení.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Dotkněte se senzoru na boční straně telefonu.</string>
+    <string name="show_navbar_hint_title">Navigační nápověda</string>
+    <string name="show_navbar_hint_summary">Zobrazit navigační nápovědu ve spodní části obrazovky (tenký proužek)</string>
+    <string name="app_notification_sound_timeout_title">Minimální doba mezi zvuky oznámení</string>
+    <string name="app_notification_sound_timeout_summary_template">Povolit zvuky nebo vibrace ne více než jednou každých <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Bez omezení</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 sekund</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 sekund</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minuta</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minut</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minut</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minut</string>
+    <string name="auto_brightness_one_shot_title">Rychlé nastavení automatického jasu</string>
+    <string name="auto_brightness_one_shot_summary">K úpravě jasu dojde pouze v okamžiku zapnutí obrazovky</string>
+    <string name="data_usage_app_restrict_all">Povolit přístup k síti</string>
+    <string name="data_usage_app_restrict_all_summary">Povolit využití sítě</string>
+    <string name="data_usage_app_restrict_mobile">Mobilní data</string>
+    <string name="data_usage_app_restrict_mobile_summary">Povolit používání mobilních dat</string>
+    <string name="data_usage_app_restrict_vpn">VPN data</string>
+    <string name="data_usage_app_restrict_vpn_summary">Povolit používání VPN dat</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi data</string>
+    <string name="data_usage_app_restrict_wifi_summary">Povolit používání Wi\u2011Fi dat</string>
+    <string name="unlock_scramble_pin_layout_title">Přeházet rozložení</string>
+    <string name="unlock_scramble_pin_layout_summary">Přeházet rozložení pro zadání PIN při odemykání zařízení</string>
+    <string name="proximity_wake_title">Zabránit nechtěnému probuzení</string>
+    <string name="proximity_wake_summary">Kontrolovat senzor přiblížení pro zabránění nechtěného probuzení</string>
+    <string name="touchscreen_gesture_settings_title">Gesta na obrazovce</string>
+    <string name="touchscreen_gesture_settings_summary">Možnost spustit rychlou akci pomocí různých gest na obrazovce</string>
+    <string name="touchscreen_hovering_title">Detekce nad obrazovkou</string>
+    <string name="touchscreen_hovering_summary">Umožňuje pohybovat se jakoby nad obsahem obrazovky podobně, jako když myší najedete na nějaký ovládací prvek</string>
+    <string name="wake_when_plugged_or_unplugged_title">Probudit při nabíjení</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Zapnout obrazovku při připojení nebo odpojení nabíječky</string>
+    <string name="fast_charging_title">Rychlé nabíjení</string>
+    <string name="fast_charging_summary">Vypnutím snížíte teplo produkované zařízením během nabíjení nebo prodloužíte životnost baterie</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Dlouhým stisknutím snímače otisků prstů odemknout telefon</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Dlouhým stisknutím snímače otisků prstů odemknout tablet</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Dlouhým stisknutím snímače otisků prstů odemknout zařízení</string>
+    <string name="ambient_display_screen_off_udfps_summary">Chcete-li obrazovku probudit a odemknout, dlouze stiskněte snímač otisků prstů v displeji.</string>
+    <string name="storage_warning_internal">Varování: Tato možnost nemusí fungovat správně nebo může vést ke ztrátě dat, proto se nedoporučuje!</string>
+</resources>
diff --git a/res/values-cy/cm_strings.xml b/res/values-cy/cm_strings.xml
new file mode 100644
index 0000000..eb894de
--- /dev/null
+++ b/res/values-cy/cm_strings.xml
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Ychwanegion</string>
+    <string name="advanced_keyboard_settings_title">Gosodiadau uwch</string>
+    <string name="adb_enable_root">Dadfygio wedi gwreiddio</string>
+    <string name="adb_enable_summary_root">Caniatáu rhedeg dadfygio Android fel gwraidd</string>
+    <string name="backup_transport_setting_label">Newid darparwr wrth gefn</string>
+    <string name="backup_transport_title">Dewis darparwr wrth gefn</string>
+    <string name="berry_black_theme_title">Du pur</string>
+    <string name="berry_black_theme_summary">Cefndir du pur i\'r thema dywyll</string>
+    <string name="lineagelicense_title">Cyfreithiol LineageOS</string>
+    <string name="device_info_protected_single_press">Tapio i ddangos gwybodaeth</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="zero">Rwyt nawr <xliff:g id="step_count">%1$d</xliff:g> camau i ffwrdd o alluogi gosodiadau datblygu.</item>
+        <item quantity="one">Rwyt nawr <xliff:g id="step_count">%1$d</xliff:g> cam i ffwrdd o alluogi gosodiadau datblygu.</item>
+        <item quantity="two">Rwyt nawr <xliff:g id="step_count">%1$d</xliff:g> gam i ffwrdd o alluogi gosodiadau datblygu.</item>
+        <item quantity="few">Rwyt nawr <xliff:g id="step_count">%1$d</xliff:g> cam i ffwrdd o alluogi gosodiadau datblygu.</item>
+        <item quantity="many">Rwyt nawr <xliff:g id="step_count">%1$d</xliff:g> cham i ffwrdd o alluogi gosodiadau datblygu.</item>
+        <item quantity="other">Rwyt nawr <xliff:g id="step_count">%1$d</xliff:g> cam i ffwrdd o alluogi gosodiadau datblygu.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Rwyt wedi galluogi gosodiadau datblygu!</string>
+    <string name="show_dev_already_cm">Dim angen; rwyt eisoes wedi galluogi gosodiadau datblygu.</string>
+    <string name="peak_refresh_rate_summary_custom">Mae\'n codi\'r gyfradd adnewyddu yn awtomatig o 60 i %1$d Hz ar gyfer rhai cynnwys. Mae\'n defnyddio mwy o fatri.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Tapio i gysgu</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Tapio dwywaith ar y bar statws neu\'r sgrin cloi i droi\'r sgrin i ffwrdd</string>
+    <string name="high_touch_polling_rate_title">Cyfradd polio cyffyrddiad uchel</string>
+    <string name="high_touch_polling_rate_summary">Cynyddu cyfradd polio\'r sgrin gyffwrdd</string>
+    <string name="heads_up_notifications_enabled_title">Rhagrybudd</string>
+    <string name="heads_up_notifications_enabled_summary">Dangos hysbysiadau blaenoriaeth mewn ffenestr fach sy\'n arnofio</string>
+    <string name="high_touch_sensitivity_title">Sensitifrwydd cyffwrdd uchel</string>
+    <string name="high_touch_sensitivity_summary">Cynyddu sensitifrwydd y sgrin gyffwrdd fel y gellir ei defnyddio wrth wisgo menig</string>
+    <string name="tethering_allow_vpn_upstreams_title">Caniatáu cleientiaid i ddefnyddio VPNau</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Caniatáu cleientiaid llecynnau Wi-Fi i ddefnyddio cysylltiadau VPN y ddyfais hon</string>
+    <string name="increasing_ring_volume_option_title">Uchder sain yn cynyddu</string>
+    <string name="increasing_ring_min_volume_title">Uchder sain i ddechrau</string>
+    <string name="increasing_ring_ramp_up_time_title">Amser i gynyddu</string>
+    <string name="lockscreen_media_art_title">Dangos llun clawr cyfryngau</string>
+    <string name="lock_settings_picker_pattern_size_message">Dewisa faint patrwm</string>
+    <string name="lockpattern_settings_enable_error_path_title">Dangos gwall patrwm</string>
+    <string name="lockpattern_settings_enable_dots_title">Dangos dotiau patrwm</string>
+    <string name="max_refresh_rate_title">Cyfradd adnewyddu uchaf</string>
+    <string name="min_refresh_rate_title">Cyfradd adnewyddu leiaf</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Ffeindia\'r synhwyrydd ôl bys ar flaen dy lechen.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Ffeindia\'r synhwyrydd ôl bys ar flaen dy ddyfais.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Ffeindia\'r synhwyrydd ôl bys ar flaen dy ffôn.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Ffeindia\'r synhwyrydd ôl bys ar gefn dy lechen.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Ffeindia\'r synhwyrydd ôl bys ar gefn dy ddyfais.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Ffeindia\'r synhwyrydd ôl bys ar gefn dy ffôn.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Ffeindia\'r synhwyrydd ôl bys ar ochr dy lechen.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Ffeindia\'r synhwyrydd ôl bys ar ochr dy ddyfais.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Ffeindia\'r synhwyrydd ôl bys ar ochr dy ffôn.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Cyffyrdda\'r synhwyrydd ar flaen dy lechen.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Cyffyrdda\'r synhwyrydd ar flaen dy ddyfais.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Cyffyrdda\'r synhwyrydd ar flaen dy ffôn.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Cyffyrdda\'r synhwyrydd ar gefn dy lechen.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Cyffyrdda\'r synhwyrydd ar gefn dy ddyfais.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Cyffyrdda\'r synhwyrydd ar gefn dy ffôn.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Cyffyrdda\'r synhwyrydd ar ochr dy lechen.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Cyffyrdda\'r synhwyrydd ar ochr dy ddyfais.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Cyffyrdda\'r synhwyrydd ar ochr dy ffôn.</string>
+    <string name="show_navbar_hint_title">Awgrymiad llywio</string>
+    <string name="show_navbar_hint_summary">Dangos bar awgrymiadau llywio ar waelod y sgrin</string>
+    <string name="app_notification_sound_timeout_title">Y cyfnod lleiaf o amser rhwng seiniau hysbysiadau</string>
+    <string name="app_notification_sound_timeout_summary_template">Peidio â chaniatáu synau na dirgrynu yn amlach nag unwaith pob <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Dim cyfyngiad</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 eiliad</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 eiliad</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 munud</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 munud</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 munud</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 munud</string>
+    <string name="auto_brightness_one_shot_title">Awto-disgleirdeb un tro</string>
+    <string name="auto_brightness_one_shot_summary">Caiff y disgleirdeb ei addasu dim ond ar y foment mae\'r sgrin yn troi ymlaen.</string>
+    <string name="data_usage_app_restrict_all">Caniatáu mynediad i rwydwaith</string>
+    <string name="data_usage_app_restrict_all_summary">Caniatáu defnydd o rwydwaith</string>
+    <string name="data_usage_app_restrict_mobile">Data symudol</string>
+    <string name="data_usage_app_restrict_mobile_summary">Galluogi\'r defnydd o ddata symudol</string>
+    <string name="data_usage_app_restrict_vpn">VPN data</string>
+    <string name="data_usage_app_restrict_vpn_summary">Galluogi defnyddio VPN data</string>
+    <string name="data_usage_app_restrict_wifi">Data Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Galluogi defnydd data Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">Cymysgu\'r cynllun</string>
+    <string name="unlock_scramble_pin_layout_summary">Cymysgu cynllun y PIN wrth ddatgloi\'r ddyfais</string>
+    <string name="proximity_wake_title">Rhwystro deffro ar gam</string>
+    <string name="proximity_wake_summary">Gwirio\'r synhwyrydd agosrwydd cyn deffro\'r sgrin</string>
+    <string name="touchscreen_gesture_settings_title">Ystumiau sgrin gyffwrdd</string>
+    <string name="touchscreen_gesture_settings_summary">Perfformio ystumiau amrywiol ar y sgrin gyffwrdd am weithredoedd cyflym</string>
+    <string name="touchscreen_hovering_title">Hofran sgrin gyffwrdd</string>
+    <string name="touchscreen_hovering_summary">Mae\'n dy ganiatáu i hofran ar y sgrin fel defnyddio llygoden mewn porwyr, byrddau gwaith pell, ayyb</string>
+    <string name="wake_when_plugged_or_unplugged_title">Deffro wrth gysylltu â phŵer</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Troi\'r sgrin ymlaen wrth gysylltu neu ddatgysylltu â phŵer</string>
+    <string name="fast_charging_title">Gwefru cyflym</string>
+    <string name="fast_charging_summary">Analluoga i leihau\'r gwres sy\'n cael ei gynhyrchu gan y ddyfais wrth wefru neu i ymestyn oes y batri</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Dal yn hir ar y synhwyrydd ôl bys i ddatgloi\'r ffôn</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Dal yn hir ar y synhwyrydd ôl bys i ddatgloi\'r llechen</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Dal yn hir ar y synhwyrydd ôl bys i ddatgloi\'r ddyfais</string>
+    <string name="ambient_display_screen_off_udfps_summary">I ddeffro a datgloi dy sgrin, dalia yn hir dros y synhwyrydd ôl bys sydd o dan y sgrin.</string>
+    <string name="storage_warning_internal">Rhybudd: Mae\'n bosib na fydd yr opsiwn hwn yn gweithio\'n iawn ac yn arwain at golli data, felly ni argymhellir!</string>
+</resources>
diff --git a/res/values-da/cm_strings.xml b/res/values-da/cm_strings.xml
new file mode 100644
index 0000000..23f3139
--- /dev/null
+++ b/res/values-da/cm_strings.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Ekstra</string>
+    <string name="advanced_keyboard_settings_title">Avancerede indstillinger</string>
+    <string name="adb_enable_root">Fejlfinding med \'root\'</string>
+    <string name="adb_enable_summary_root">Tillad kørsel af Android fejlretning som \'root\'</string>
+    <string name="backup_transport_setting_label">Skift backup udbyder</string>
+    <string name="backup_transport_title">Vælg backup udbyder</string>
+    <string name="berry_black_theme_title">Ren sort</string>
+    <string name="berry_black_theme_summary">Ren sort baggrund til mørkt tema</string>
+    <string name="lineagelicense_title">LineageOS-juridisk</string>
+    <string name="device_info_protected_single_press">Tryk for at vise info</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Du er nu <xliff:g id="step_count">%1$d</xliff:g> skridt fra at aktivere udvikler-indstillinger.</item>
+        <item quantity="other">Du er nu <xliff:g id="step_count">%1$d</xliff:g> skridt fra at aktivere udvikler-indstillinger.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Du har aktiveret udvikler-indstillinger!</string>
+    <string name="show_dev_already_cm">Behøves ikke.; du har allerede aktiveret udvikler-indstillinger.</string>
+    <string name="peak_refresh_rate_summary_custom">Øger automatisk opdateringshastigheden fra 60 til %1$d Hz for noget indhold. Medfører højere batteriforbrug.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Tryk for at slumre</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Dobbelt-tryk på statusbjælken eller låseskærmen, for at slukke for skærmen</string>
+    <string name="high_touch_polling_rate_title">Høj berøringsmåling rate</string>
+    <string name="high_touch_polling_rate_summary">Forøg berøringsskærm afstemningshastigheden</string>
+    <string name="heads_up_notifications_enabled_title">Banner notifikationer</string>
+    <string name="heads_up_notifications_enabled_summary">Vis prioriterede notifikationer i et lille svævende vindue</string>
+    <string name="high_touch_sensitivity_title">Høj berøringsfølsomhed</string>
+    <string name="high_touch_sensitivity_summary">Forøg berøringsfølsom skærms følsomhed, så den kan bruges med handsker på</string>
+    <string name="tethering_allow_vpn_upstreams_title">Tillad klienter at bruge VPN\'er</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Tillad hotspot klienter at bruge denne enhed\u2019s VPN-forbindelser til upstream forbindelse</string>
+    <string name="increasing_ring_volume_option_title">Stigende ringe-lydstyrke</string>
+    <string name="increasing_ring_min_volume_title">Start-lydstyrke</string>
+    <string name="increasing_ring_ramp_up_time_title">Opvarmningstid</string>
+    <string name="lockscreen_media_art_title">Vis medie-albumbilleder</string>
+    <string name="lock_settings_picker_pattern_size_message">Vælg en mønsterstørrelse</string>
+    <string name="lockpattern_settings_enable_error_path_title">Vis mønster-fejl</string>
+    <string name="lockpattern_settings_enable_dots_title">Vis mønster-prikker</string>
+    <string name="max_refresh_rate_title">Maksimal opdateringshastighed</string>
+    <string name="min_refresh_rate_title">Minimum skærm forfriskningstid</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Find fingeraftrykssensoren på tablet\'ens forside.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Find fingeraftrykssensoren på enhedens forside.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Find fingeraftrykssensoren på forsiden af ​​telefonen.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Find fingeraftrykssensoren på tablet\'ens bagside.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Find fingeraftrykslæseren på enhedens bagside.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Find fingeraftrykssensoren på bagsiden af ​​telefonen.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Find fingeraftrykslæseren på tablet\'ens side.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Find fingeraftrykslæseren på enhedens side.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Find fingeraftrykssensoren på mobilens side.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Tryk på fingeraftrykslæseren på tablet\'ens forside.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Tryk på fingeraftrykssensoren på enhedens forside.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Tryk på fingeraftrykssensoren på mobilens forside.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Tryk på fingeraftrykssensoren på tablet\'ens bagside.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Tryk på fingeraftrykssensoren på enhedens bagside.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Tryk på fingeraftrykssensoren på mobilens bagside.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Tryk på fingeraftrykssensoren på tablet\'ens side.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Tryk på fingeraftrykssensoren på enhedens side.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Tryk på fingeraftrykssensoren på mobilens side.</string>
+    <string name="show_navbar_hint_title">Navigations hint</string>
+    <string name="show_navbar_hint_summary">Vis navigationsbjælke nederst på skærmen</string>
+    <string name="app_notification_sound_timeout_title">Minimumstid imellem notifikationslyde</string>
+    <string name="app_notification_sound_timeout_summary_template">Tillad ikke lyde, eller vibration, mere end én gang hver <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Ingen restriktion</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 sekunder</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 sekunder</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minut</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minutter</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minutter</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minutter</string>
+    <string name="auto_brightness_one_shot_title">Etskuds automatisk lysstyrke</string>
+    <string name="auto_brightness_one_shot_summary">Lysstyrkejustering vil kun forekomme i det øjeblik, skærmen tændes</string>
+    <string name="data_usage_app_restrict_all">Tillad netværksadgang</string>
+    <string name="data_usage_app_restrict_all_summary">Aktiver netværksforbrug</string>
+    <string name="data_usage_app_restrict_mobile">Mobildata</string>
+    <string name="data_usage_app_restrict_mobile_summary">Aktiver brug af mobildata</string>
+    <string name="data_usage_app_restrict_vpn">VPN data</string>
+    <string name="data_usage_app_restrict_vpn_summary">Aktivér brug af VPN-data</string>
+    <string name="data_usage_app_restrict_wifi">Wi‑Fi data</string>
+    <string name="data_usage_app_restrict_wifi_summary">Aktivér brug af Wi-Fi data</string>
+    <string name="unlock_scramble_pin_layout_title">Omvælt opsætning</string>
+    <string name="unlock_scramble_pin_layout_summary">Omvælt PIN-opsætning, ved oplåsning af enhed</string>
+    <string name="proximity_wake_title">Forhindr utilsigtet vækning</string>
+    <string name="proximity_wake_summary">Check nærheds scensoren før skrærmen vækkes</string>
+    <string name="touchscreen_gesture_settings_title">Bevægelser på berøringsfølsom skærm</string>
+    <string name="touchscreen_gesture_settings_summary">Udfør forskellige bevægelser på berøringsfølsom skærm, for hurtig-handlinger</string>
+    <string name="touchscreen_hovering_title">Berøringsfølsom skærm-svævning</string>
+    <string name="touchscreen_hovering_summary">Tillader dig at holde fingeren over skærmen, som en mus i netlæsere, på fjernskriveborde, osv.</string>
+    <string name="wake_when_plugged_or_unplugged_title">Vågn ved tilslutning</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Tænd for skærmen, ved tilslutning til, eller afbrydelse fra en strømkilde</string>
+    <string name="fast_charging_title">Hurtig opladning</string>
+    <string name="fast_charging_summary">Deaktiver for at reducere den varme, der produceres af enheden, mens du oplader og forlæng batteriets levetid</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Langt tryk på fingeraftrykssensoren for at låse telefonen op</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Langt tryk på fingeraftrykssensoren for at låse tabletten op</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Langt tryk på fingeraftrykssensoren for at låse enheden op</string>
+    <string name="ambient_display_screen_off_udfps_summary">For at vække skærmen og låse den op, skal du trykke lang tid på fingeraftrykssensoren under displayet.</string>
+    <string name="storage_warning_internal">Advarsel: Denne indstilling fungerer muligvis ikke korrekt eller fører til tab af data og anbefales derfor ikke!</string>
+    <string name="assisted_gps_summary">Download satellit-hjælpedata fra internettet, som i høj grad kan forbedre GPS opstartsfunktionen. Til nødopkald er assisteret GPS altid tilladt.</string>
+</resources>
diff --git a/res/values-de/cm_strings.xml b/res/values-de/cm_strings.xml
new file mode 100644
index 0000000..a546419
--- /dev/null
+++ b/res/values-de/cm_strings.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Extras</string>
+    <string name="advanced_keyboard_settings_title">Erweiterte Einstellungen</string>
+    <string name="adb_enable_root">Root-Debugging</string>
+    <string name="adb_enable_summary_root">Android-Debugging als Root erlauben</string>
+    <string name="backup_transport_setting_label">Backup-Anbieter ändern</string>
+    <string name="backup_transport_title">Backup-Anbieter auswählen</string>
+    <string name="berry_black_theme_title">Reines Schwarz</string>
+    <string name="berry_black_theme_summary">Rein schwarzer Hintergrund für dunkles Design</string>
+    <string name="lineagelicense_title">Rechtliche Hinweise zu LineageOS</string>
+    <string name="device_info_protected_single_press">Antippen, um Information anzuzeigen</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Du bist <xliff:g id="step_count">%1$d</xliff:g> Schritt vom Aktivieren der Entwicklereinstellungen entfernt.</item>
+        <item quantity="other">Du bist <xliff:g id="step_count">%1$d</xliff:g> Schritte vom Aktivieren der Entwicklereinstellungen entfernt.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Du hast die Entwicklereinstellungen aktiviert!</string>
+    <string name="show_dev_already_cm">Nicht nötig, du hast die Entwicklereinstellungen bereits aktiviert.</string>
+    <string name="peak_refresh_rate_summary_custom">Setzt die Aktualisierungsrate für einige Inhalte automatisch von 60 auf %1$d Hz herauf. Erhöhter Akkuverbrauch.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Tippen für Standby</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Doppeltippe auf Statusleiste oder Sperrbildschirm, um das Display auszuschalten</string>
+    <string name="high_touch_polling_rate_title">Hohe Touchscreen-Abtastrate</string>
+    <string name="high_touch_polling_rate_summary">Touchscreen-Abtastrate erhöhen</string>
+    <string name="heads_up_notifications_enabled_title">Pop-up</string>
+    <string name="heads_up_notifications_enabled_summary">Wichtige Benachrichtigungen in einem kleinen, schwebenden Fenster anzeigen</string>
+    <string name="high_touch_sensitivity_title">Hohe Touch-Empfindlichkeit</string>
+    <string name="high_touch_sensitivity_summary">Touch-Empfindlichkeit erhöhen, um den Touchscreen auch mit Handschuhen bedienen zu können</string>
+    <string name="tethering_allow_vpn_upstreams_title">Clients erlauben VPN zu verwenden</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Erlaubt Hotspot-Clients die VPN-Verbindungen dieses Gerätes für die Upstream-Konnektivität zu verwenden</string>
+    <string name="increasing_ring_volume_option_title">Ansteigende Klingeltonlautstärke</string>
+    <string name="increasing_ring_min_volume_title">Anfangslautstärke</string>
+    <string name="increasing_ring_ramp_up_time_title">Anstiegszeit</string>
+    <string name="lockscreen_media_art_title">Albumcover anzeigen</string>
+    <string name="lock_settings_picker_pattern_size_message">Größe des Musters auswählen</string>
+    <string name="lockpattern_settings_enable_error_path_title">Sperrmuster-Fehler anzeigen</string>
+    <string name="lockpattern_settings_enable_dots_title">Sperrmuster-Punkte anzeigen</string>
+    <string name="max_refresh_rate_title">Maximale Aktualisierungsrate</string>
+    <string name="min_refresh_rate_title">Minimale Aktualisierungsrate</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Finde den Fingerabdrucksensor auf der Vorderseite deines Tablets.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Finde den Fingerabdrucksensor auf der Vorderseite deines Geräts.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Finde den Fingerabdrucksensor auf der Vorderseite deines Telefons.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Finde den Fingerabdrucksensor auf der Rückseite deines Tablets.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Finde den Fingerabdrucksensor auf der Rückseite deines Geräts.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Finde den Fingerabdrucksensor auf der Rückseite deines Telefons.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Finde den Fingerabdrucksensor an der Seite deines Tablets.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Finde den Fingerabdrucksensor an der Seite deines Geräts.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Finde den Fingerabdrucksensor an der Seite deines Telefons.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Berühre den Sensor auf der Vorderseite deines Tablets.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Berühre den Sensor auf der Vorderseite deines Geräts.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Berühre den Sensor auf der Vorderseite deines Telefons.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Berühre den Sensor auf der Rückseite deines Tablets.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Berühre den Sensor auf der Rückseite deines Geräts.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Berühre den Sensor auf der Rückseite deines Telefons.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Berühre den Sensor an der Seite deines Tablets.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Berühre den Sensor an der Seite deines Geräts.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Berühre den Sensor an der Seite deines Telefons.</string>
+    <string name="show_navbar_hint_title">Angedeutete Navigationsleiste</string>
+    <string name="show_navbar_hint_summary">Deutet Navigationsleiste am unteren Bildschirmrand an</string>
+    <string name="app_notification_sound_timeout_title">Minimale Zeit zwischen Benachrichtigungstönen</string>
+    <string name="app_notification_sound_timeout_summary_template">Töne und Vibrationen nur alle <xliff:g id="duration">%1$s</xliff:g> zulassen</string>
+    <string name="app_notification_sound_timeout_value_none">Keine Beschränkung</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 Sekunden</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 Sekunden</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 Minute</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 Minuten</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 Minuten</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 Minuten</string>
+    <string name="auto_brightness_one_shot_title">Einmalige automatische Helligkeitseinstellung</string>
+    <string name="auto_brightness_one_shot_summary">Helligkeitsanpassung erfolgt nur beim Einschalten des Bildschirms</string>
+    <string name="data_usage_app_restrict_all">Netzwerkzugriff erlauben</string>
+    <string name="data_usage_app_restrict_all_summary">Netzwerknutzung aktivieren</string>
+    <string name="data_usage_app_restrict_mobile">Mobile Daten</string>
+    <string name="data_usage_app_restrict_mobile_summary">Nutzung mobiler Daten erlauben</string>
+    <string name="data_usage_app_restrict_vpn">VPN-Daten</string>
+    <string name="data_usage_app_restrict_vpn_summary">VPN-Datennutzung erlauben</string>
+    <string name="data_usage_app_restrict_wifi">WLAN-Daten</string>
+    <string name="data_usage_app_restrict_wifi_summary">WLAN-Datenzugriff erlauben</string>
+    <string name="unlock_scramble_pin_layout_title">Zufällige Anordnung</string>
+    <string name="unlock_scramble_pin_layout_summary">Bei jedem Entsperrversuch die Ziffernanordnung zufällig neu wählen</string>
+    <string name="proximity_wake_title">Unbeabsichtigtes Aufwecken verhindern</string>
+    <string name="proximity_wake_summary">Vor dem Aufwecken des Gerätes Näherungssensor überprüfen</string>
+    <string name="touchscreen_gesture_settings_title">Bildschirmgesten</string>
+    <string name="touchscreen_gesture_settings_summary">Führe durch verschiedene Bildschirmgesten einige schnelle Aktionen aus</string>
+    <string name="touchscreen_hovering_title">Touchscreen als Maus verwenden</string>
+    <string name="touchscreen_hovering_summary">Erlaubt es, den über dem Touchscreen schwebenden Finger im Browser, Remote Desktop usw. als Mauszeiger zu verwenden.</string>
+    <string name="wake_when_plugged_or_unplugged_title">Beim Einstecken aufwecken</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Beim Anschließen oder Trennen einer Stromquelle den Bildschirm einschalten</string>
+    <string name="fast_charging_title">Schnelles Laden</string>
+    <string name="fast_charging_summary">Deaktivieren, um die vom Gerät beim Laden erzeugte Wärme zu reduzieren oder die Lebensdauer des Akkus zu verlängern</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Fingerabdrucksensor lange drücken, um das Telefon zu entsperren</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Fingerabdrucksensor lange drücken, um das Tablet zu entsperren</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Fingerabdrucksensor lange drücken, um das Gerät zu entsperren</string>
+    <string name="ambient_display_screen_off_udfps_summary">Zum Anschalten und Entsperren des Geräts den Fingerabdrucksensor im Display gedrückt halten.</string>
+    <string name="storage_warning_internal">Warnung: Diese Option funktioniert möglicherweise nicht richtig oder führt zu Datenverlust und wird daher nicht empfohlen!</string>
+    <string name="assisted_gps_summary">Satellitenhilfsdaten aus dem Internet herunterladen, die den Startvorgang von GPS erheblich verbessern können. Für Notrufe ist das unterstützte GPS immer erlaubt.</string>
+</resources>
diff --git a/res/values-de/config.xml b/res/values-de/config.xml
index 6b1e0fb..e0ba348 100644
--- a/res/values-de/config.xml
+++ b/res/values-de/config.xml
@@ -17,4 +17,5 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="config_backup_settings_label" msgid="1623475653989899715"></string>
+    <bool name="language_capitalizes_nouns">true</bool>
 </resources>
diff --git a/res/values-el/cm_strings.xml b/res/values-el/cm_strings.xml
new file mode 100644
index 0000000..d0b288f
--- /dev/null
+++ b/res/values-el/cm_strings.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Επιπλέον ρυθμίσεις</string>
+    <string name="advanced_keyboard_settings_title">Ρυθμίσεις για προχωρημένους</string>
+    <string name="adb_enable_root">Εντοπισμός σφαλμάτων root</string>
+    <string name="adb_enable_summary_root">Επιτρέψτε την εκτέλεση του εντοπισμού σφαλμάτων Android ως root</string>
+    <string name="backup_transport_setting_label">Αλλαγή παρόχου αντιγράφων ασφαλείας</string>
+    <string name="backup_transport_title">Επιλέξτε πάροχο αντιγράφων ασφαλείας</string>
+    <string name="berry_black_theme_title">Αμιγές μαύρο</string>
+    <string name="berry_black_theme_summary">Αμιγές μαύρο παρασκήνιο για το σκοτεινό θέμα</string>
+    <string name="lineagelicense_title">Νομικές πληροφορίες LineageOS</string>
+    <string name="device_info_protected_single_press">Πατήστε για εμφάνιση πληροφοριών</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Απομένει <xliff:g id="step_count">%1$d</xliff:g> βήμα για να ενεργοποιήσετε τις ρυθμίσεις για προγραμματιστές.</item>
+        <item quantity="other">Απομένουν <xliff:g id="step_count">%1$d</xliff:g> βήματα για να ενεργοποιήσετε τις ρυθμίσεις για προγραμματιστές.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Ενεργοποιήσατε τις ρυθμίσεις για προγραμματιστές!</string>
+    <string name="show_dev_already_cm">Δεν χρειάζεται, έχετε ήδη ενεργοποιήσει τις ρυθμίσεις για προγραμματιστές.</string>
+    <string name="peak_refresh_rate_summary_custom">Αυξάνει αυτόματα τον ρυθμό ανανέωσης από τα 60 στα %1$d Hz για ορισμένο περιεχόμενο. Αυξάνει τη χρήση της μπαταρίας.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Πατήστε για αναστολή</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Πατήστε δύο φορές στη γραμμή κατάστασης ή την οθόνη κλειδώματος για αναστολή της συσκευής</string>
+    <string name="high_touch_polling_rate_title">Υψηλός ρυθμός ανάγνωσης αφής</string>
+    <string name="high_touch_polling_rate_summary">Αύξηση της ταχύτητας ανάγνωσης της αφής</string>
+    <string name="heads_up_notifications_enabled_title">Αναδυόμενες ειδοποιήσεις</string>
+    <string name="heads_up_notifications_enabled_summary">Εμφάνιση ειδοποιήσεων προτεραιότητας σε ένα μικρό αιωρούμενο παράθυρο</string>
+    <string name="high_touch_sensitivity_title">Υψηλή ευαισθησία αφής</string>
+    <string name="high_touch_sensitivity_summary">Αύξηση της ευαισθησίας της οθόνης αφής έτσι ώστε να μπορεί να χρησιμοποιηθεί φορώντας γάντια</string>
+    <string name="tethering_allow_vpn_upstreams_title">Επιτρέψτε στους πελάτες να χρησιμοποιούν VPN</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Επιτρέψτε στους πελάτες σημείου πρόσβασης να χρησιμοποιούν τις συνδέσεις VPN αυτής της συσκευής για σύνδεση upstream</string>
+    <string name="increasing_ring_volume_option_title">Αυξανόμενη ένταση κουδουνίσματος</string>
+    <string name="increasing_ring_min_volume_title">Αρχική ένταση</string>
+    <string name="increasing_ring_ramp_up_time_title">Χρονικό διάστημα αύξησης</string>
+    <string name="lockscreen_media_art_title">Προβολή εξώφυλλου άλμπουμ</string>
+    <string name="lock_settings_picker_pattern_size_message">Επιλέξτε ένα μέγεθος μοτίβου</string>
+    <string name="lockpattern_settings_enable_error_path_title">Εμφάνιση λάθος μοτίβου</string>
+    <string name="lockpattern_settings_enable_dots_title">Εμφάνιση τελειών μοτίβου</string>
+    <string name="max_refresh_rate_title">Μέγιστος ρυθμός ανανέωσης</string>
+    <string name="min_refresh_rate_title">Ελάχιστος ρυθμός ανανέωσης</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Εντοπίστε τον αισθητήρα δακτυλικού αποτυπώματος στο εμπρόσθιο μέρος του τάμπλετ σας.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Εντοπίστε τον αισθητήρα δακτυλικού αποτυπώματος στο εμπρόσθιο μέρος της συσκευής σας.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Εντοπίστε τον αισθητήρα δακτυλικού αποτυπώματος στο εμπρόσθιο μέρος του τηλεφώνου σας.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Εντοπίστε τον αισθητήρα δακτυλικού αποτυπώματος στο πίσω μέρος του τάμπλετ σας.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Εντοπίστε τον αισθητήρα δακτυλικού αποτυπώματος στο πίσω μέρος της συσκευής σας.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Εντοπίστε τον αισθητήρα δακτυλικού αποτυπώματος στο πίσω μέρος του τηλεφώνου σας.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Εντοπίστε τον αισθητήρα δακτυλικού αποτυπώματος στο πλάι του τάμπλετ σας.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Εντοπίστε τον αισθητήρα δακτυλικού αποτυπώματος στο πλάι της συσκευής σας.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Εντοπίστε τον αισθητήρα δακτυλικού αποτυπώματος στο πλάι του τηλεφώνου σας.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Αγγίξτε τον αισθητήρα στο εμπρόσθιο μέρος του tablet σας.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Αγγίξτε τον αισθητήρα στο εμπρόσθιο μέρος της συσκευής σας.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Αγγίξτε τον αισθητήρα στο εμπρόσθιο μέρος του τηλεφώνου σας.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Αγγίξτε τον αισθητήρα στο πίσω μέρος του tablet σας.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Αγγίξτε τον αισθητήρα στο πίσω μέρος της συσκευής σας.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Αγγίξτε τον αισθητήρα στο πίσω μέρος του τηλεφώνου σας.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Αγγίξτε τον αισθητήρα στο πλάι του tablet σας.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Αγγίξτε τον αισθητήρα στο πλάι της συσκευής σας.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Αγγίξτε τον αισθητήρα στο πλάι του τηλεφώνου σας.</string>
+    <string name="show_navbar_hint_title">Υπόδειξη πλοήγησης</string>
+    <string name="show_navbar_hint_summary">Εμφάνιση γραμμής υπόδειξης πλοήγησης στο κάτω μέρος της οθόνης</string>
+    <string name="app_notification_sound_timeout_title">Ελάχιστος χρόνος μεταξύ ήχων ειδοποίησης</string>
+    <string name="app_notification_sound_timeout_summary_template">Να επιτρέπονται ήχοι ή δονήσεις όχι περισσότερο από μία φορά κάθε <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Χωρίς περιορισμό</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 δευτερόλεπτα</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 δευτερόλεπτα</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 λεπτό</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 λεπτά</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 λεπτά</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 λεπτά</string>
+    <string name="auto_brightness_one_shot_title">Αυτόματη φωτεινότητα με μία λήψη</string>
+    <string name="auto_brightness_one_shot_summary">Η ρύθμιση φωτεινότητας θα πραγματοποιηθεί μόνο τη στιγμή που ενεργοποιείται η οθόνη</string>
+    <string name="data_usage_app_restrict_all">Να επιτρέπεται η πρόσβαση στο δίκτυο</string>
+    <string name="data_usage_app_restrict_all_summary">Ενεργοποίηση χρήσης δικτύου</string>
+    <string name="data_usage_app_restrict_mobile">Δεδομένα κινητής τηλεφωνίας</string>
+    <string name="data_usage_app_restrict_mobile_summary">Ενεργοποίηση χρήσης δεδομένων κινητής τηλεφωνίας</string>
+    <string name="data_usage_app_restrict_vpn">Δεδομένα VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Ενεργοποίηση χρήσης δεδομένων VPN</string>
+    <string name="data_usage_app_restrict_wifi">Δεδομένα Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Ενεργοποίηση χρήσης δεδομένων Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">Ανακάτεμα διάταξης</string>
+    <string name="unlock_scramble_pin_layout_summary">Ανακάτεμα της διάταξης PIN κατά το ξεκλείδωμα της συσκευής</string>
+    <string name="proximity_wake_title">Πρόληψη ακούσιας αφύπνισης</string>
+    <string name="proximity_wake_summary">Έλεγχος του αισθητήρα εγγύτητας πριν την αφύπνιση της οθόνης</string>
+    <string name="touchscreen_gesture_settings_title">Χειρονομίες αφής</string>
+    <string name="touchscreen_gesture_settings_summary">Εκτελέστε διάφορες χειρονομίες αφής για γρήγορες ενέργειες</string>
+    <string name="touchscreen_hovering_title">Αιώρηση οθόνης αφής</string>
+    <string name="touchscreen_hovering_summary">Σας επιτρέπει να αιωρείτε πάνω από την οθόνη όπως ένα ποντίκι σε προγράμματα περιήγησης στο web, απομακρυσμένες επιφάνειες εργασίας, κλπ</string>
+    <string name="wake_when_plugged_or_unplugged_title">Αφύπνιση κατά τη σύνδεση</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Ενεργοποίηση της οθόνης κατά την σύνδεση ή αποσύνδεση μιας πηγής ισχύος</string>
+    <string name="fast_charging_title">Γρήγορη φόρτιση</string>
+    <string name="fast_charging_summary">Απενεργοποιήστε για να μειώσετε τη θερμότητα που παράγεται από τη συσκευή κατά τη φόρτιση ή για να επεκτείνετε τη διάρκεια ζωής της μπαταρίας</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Πατήστε παρατεταμένα τον αισθητήρα δακτυλικών αποτυπωμάτων για να ξεκλειδώσετε το τηλέφωνο</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Πατήστε παρατεταμένα τον αισθητήρα δακτυλικών αποτυπωμάτων για να ξεκλειδώσετε το tablet</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Πατήστε παρατεταμένα τον αισθητήρα δακτυλικών αποτυπωμάτων για να ξεκλειδώσετε τη συσκευή</string>
+    <string name="ambient_display_screen_off_udfps_summary">Για να ενεργοποιηθεί η οθόνη σας και να ξεκλειδώσετε, πατήστε παρατεταμένα τον αισθητήρα δακτυλικών αποτυπωμάτων κάτω από την οθόνη.</string>
+    <string name="storage_warning_internal">Προειδοποίηση: Αυτή η επιλογή μπορεί να μη λειτουργήσει σωστά ή να οδηγήσει σε απώλεια δεδομένων και επομένως δε συνιστάται!</string>
+    <string name="assisted_gps_summary">Κατεβάστε δεδομένα δορυφορικής βοήθειας από το διαδίκτυο, τα οποία μπορούν να βελτιώσουν σημαντικά την απόδοση της εκκίνησης του GPS. Για κλήσεις έκτακτης ανάγκης, επιτρέπεται πάντα η υποβοήθηση GPS.</string>
+</resources>
diff --git a/res/values-en-rAU/cm_strings.xml b/res/values-en-rAU/cm_strings.xml
new file mode 100644
index 0000000..f1ca5b2
--- /dev/null
+++ b/res/values-en-rAU/cm_strings.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Extras</string>
+    <string name="advanced_keyboard_settings_title">Advanced settings</string>
+    <string name="adb_enable_root">Rooted debugging</string>
+    <string name="adb_enable_summary_root">Allow running Android debugging as root</string>
+    <string name="backup_transport_setting_label">Change backup provider</string>
+    <string name="backup_transport_title">Select backup provider</string>
+    <string name="berry_black_theme_title">Pure black</string>
+    <string name="berry_black_theme_summary">Pure black background for dark theme</string>
+    <string name="lineagelicense_title">LineageOS legal</string>
+    <string name="device_info_protected_single_press">Tap to show info</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">You are now <xliff:g id="step_count">%1$d</xliff:g> step away from enabling development settings.</item>
+        <item quantity="other">You are now <xliff:g id="step_count">%1$d</xliff:g> steps away from enabling development settings.</item>
+    </plurals>
+    <string name="show_dev_on_cm">You have enabled development settings!</string>
+    <string name="show_dev_already_cm">No need, you have already enabled development settings.</string>
+    <string name="peak_refresh_rate_summary_custom">Automatically raises the refresh rate from 60 to %1$d Hz for some content. Increases battery usage.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Tap to sleep</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Double-tap on the status bar or lockscreen to turn off the display</string>
+    <string name="high_touch_polling_rate_title">High touch polling rate</string>
+    <string name="high_touch_polling_rate_summary">Increase touchscreen polling rate</string>
+    <string name="heads_up_notifications_enabled_title">Heads-up</string>
+    <string name="heads_up_notifications_enabled_summary">Display priority notifications in a small floating window</string>
+    <string name="high_touch_sensitivity_title">High touch sensitivity</string>
+    <string name="high_touch_sensitivity_summary">Increase touchscreen sensitivity so it can be used while wearing gloves</string>
+    <string name="tethering_allow_vpn_upstreams_title">Allow clients to use VPNs</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Permit hotspot clients to use this device\u2019s VPN connections for upstream connectivity</string>
+    <string name="increasing_ring_volume_option_title">Increasing ring volume</string>
+    <string name="increasing_ring_min_volume_title">Start volume</string>
+    <string name="increasing_ring_ramp_up_time_title">Ramp-up time</string>
+    <string name="lockscreen_media_art_title">Display media cover art</string>
+    <string name="lock_settings_picker_pattern_size_message">Choose a pattern size</string>
+    <string name="lockpattern_settings_enable_error_path_title">Show pattern error</string>
+    <string name="lockpattern_settings_enable_dots_title">Show pattern dots</string>
+    <string name="max_refresh_rate_title">Peak refresh rate</string>
+    <string name="min_refresh_rate_title">Minimum refresh rate</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Locate the fingerprint sensor on the front of your tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Locate the fingerprint sensor on the front of your device.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Locate the fingerprint sensor on the front of your phone.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Locate the fingerprint sensor on the back of your tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Locate the fingerprint sensor on the back of your device.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Locate the fingerprint sensor on the back of your phone.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Locate the fingerprint sensor on the side of your tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Locate the fingerprint sensor on the side of your device.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Locate the fingerprint sensor on the side of your phone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Touch the sensor on the front of your tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Touch the sensor on the front of your device.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Touch the sensor on the front of your phone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Touch the sensor on the back of your tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Touch the sensor on the back of your device.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Touch the sensor on the back of your phone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Touch the sensor on the side of your tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Touch the sensor on the side of your device.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Touch the sensor on the side of your phone.</string>
+    <string name="show_navbar_hint_title">Navigation hint</string>
+    <string name="show_navbar_hint_summary">Show navigation hint bar at the bottom of the screen</string>
+    <string name="app_notification_sound_timeout_title">Minimum time between notification sounds</string>
+    <string name="app_notification_sound_timeout_summary_template">Allow sounds or vibration no more than once every <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">No restriction</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 seconds</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 seconds</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minute</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minutes</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minutes</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minutes</string>
+    <string name="auto_brightness_one_shot_title">One shot auto-brightness</string>
+    <string name="auto_brightness_one_shot_summary">Brightness adjustment will only occur at the moment the screen is turned on</string>
+    <string name="data_usage_app_restrict_all">Allow network access</string>
+    <string name="data_usage_app_restrict_all_summary">Enable network usage</string>
+    <string name="data_usage_app_restrict_mobile">Mobile data</string>
+    <string name="data_usage_app_restrict_mobile_summary">Enable usage of mobile data</string>
+    <string name="data_usage_app_restrict_vpn">VPN data</string>
+    <string name="data_usage_app_restrict_vpn_summary">Enable usage of VPN data</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi data</string>
+    <string name="data_usage_app_restrict_wifi_summary">Enable usage of Wi\u2011Fi data</string>
+    <string name="unlock_scramble_pin_layout_title">Scramble layout</string>
+    <string name="unlock_scramble_pin_layout_summary">Scramble PIN layout when unlocking device</string>
+    <string name="proximity_wake_title">Prevent accidental wake-up</string>
+    <string name="proximity_wake_summary">Check the proximity sensor prior to waking up screen</string>
+    <string name="touchscreen_gesture_settings_title">Touchscreen gestures</string>
+    <string name="touchscreen_gesture_settings_summary">Perform various touchscreen gestures for quick actions</string>
+    <string name="touchscreen_hovering_title">Touchscreen hovering</string>
+    <string name="touchscreen_hovering_summary">Allows you to hover the screen like a mouse in web browsers, remote desktops, etc</string>
+    <string name="wake_when_plugged_or_unplugged_title">Wake on plug</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Turn the screen on when connecting or disconnecting a power source</string>
+    <string name="fast_charging_title">Fast charging</string>
+    <string name="fast_charging_summary">Disable to reduce the heat produced by the device while charging or to extend the lifespan of the battery</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Long press on fingerprint sensor to unlock phone</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Long press on fingerprint sensor to unlock tablet</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Long press on fingerprint sensor to unlock device</string>
+    <string name="ambient_display_screen_off_udfps_summary">To wake up your screen and unlock, long press your under-display fingerprint sensor.</string>
+    <string name="storage_warning_internal">Warning: This option may not work properly or lead to data loss and is therefore not recommended!</string>
+    <string name="assisted_gps_summary">Download satellite assistance data from the internet which can greatly improve the GPS startup performance. For emergency calls, assisted GPS is always allowed.</string>
+</resources>
diff --git a/res/values-en-rCA/cm_strings.xml b/res/values-en-rCA/cm_strings.xml
new file mode 100644
index 0000000..f1ca5b2
--- /dev/null
+++ b/res/values-en-rCA/cm_strings.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Extras</string>
+    <string name="advanced_keyboard_settings_title">Advanced settings</string>
+    <string name="adb_enable_root">Rooted debugging</string>
+    <string name="adb_enable_summary_root">Allow running Android debugging as root</string>
+    <string name="backup_transport_setting_label">Change backup provider</string>
+    <string name="backup_transport_title">Select backup provider</string>
+    <string name="berry_black_theme_title">Pure black</string>
+    <string name="berry_black_theme_summary">Pure black background for dark theme</string>
+    <string name="lineagelicense_title">LineageOS legal</string>
+    <string name="device_info_protected_single_press">Tap to show info</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">You are now <xliff:g id="step_count">%1$d</xliff:g> step away from enabling development settings.</item>
+        <item quantity="other">You are now <xliff:g id="step_count">%1$d</xliff:g> steps away from enabling development settings.</item>
+    </plurals>
+    <string name="show_dev_on_cm">You have enabled development settings!</string>
+    <string name="show_dev_already_cm">No need, you have already enabled development settings.</string>
+    <string name="peak_refresh_rate_summary_custom">Automatically raises the refresh rate from 60 to %1$d Hz for some content. Increases battery usage.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Tap to sleep</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Double-tap on the status bar or lockscreen to turn off the display</string>
+    <string name="high_touch_polling_rate_title">High touch polling rate</string>
+    <string name="high_touch_polling_rate_summary">Increase touchscreen polling rate</string>
+    <string name="heads_up_notifications_enabled_title">Heads-up</string>
+    <string name="heads_up_notifications_enabled_summary">Display priority notifications in a small floating window</string>
+    <string name="high_touch_sensitivity_title">High touch sensitivity</string>
+    <string name="high_touch_sensitivity_summary">Increase touchscreen sensitivity so it can be used while wearing gloves</string>
+    <string name="tethering_allow_vpn_upstreams_title">Allow clients to use VPNs</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Permit hotspot clients to use this device\u2019s VPN connections for upstream connectivity</string>
+    <string name="increasing_ring_volume_option_title">Increasing ring volume</string>
+    <string name="increasing_ring_min_volume_title">Start volume</string>
+    <string name="increasing_ring_ramp_up_time_title">Ramp-up time</string>
+    <string name="lockscreen_media_art_title">Display media cover art</string>
+    <string name="lock_settings_picker_pattern_size_message">Choose a pattern size</string>
+    <string name="lockpattern_settings_enable_error_path_title">Show pattern error</string>
+    <string name="lockpattern_settings_enable_dots_title">Show pattern dots</string>
+    <string name="max_refresh_rate_title">Peak refresh rate</string>
+    <string name="min_refresh_rate_title">Minimum refresh rate</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Locate the fingerprint sensor on the front of your tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Locate the fingerprint sensor on the front of your device.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Locate the fingerprint sensor on the front of your phone.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Locate the fingerprint sensor on the back of your tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Locate the fingerprint sensor on the back of your device.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Locate the fingerprint sensor on the back of your phone.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Locate the fingerprint sensor on the side of your tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Locate the fingerprint sensor on the side of your device.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Locate the fingerprint sensor on the side of your phone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Touch the sensor on the front of your tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Touch the sensor on the front of your device.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Touch the sensor on the front of your phone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Touch the sensor on the back of your tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Touch the sensor on the back of your device.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Touch the sensor on the back of your phone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Touch the sensor on the side of your tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Touch the sensor on the side of your device.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Touch the sensor on the side of your phone.</string>
+    <string name="show_navbar_hint_title">Navigation hint</string>
+    <string name="show_navbar_hint_summary">Show navigation hint bar at the bottom of the screen</string>
+    <string name="app_notification_sound_timeout_title">Minimum time between notification sounds</string>
+    <string name="app_notification_sound_timeout_summary_template">Allow sounds or vibration no more than once every <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">No restriction</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 seconds</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 seconds</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minute</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minutes</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minutes</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minutes</string>
+    <string name="auto_brightness_one_shot_title">One shot auto-brightness</string>
+    <string name="auto_brightness_one_shot_summary">Brightness adjustment will only occur at the moment the screen is turned on</string>
+    <string name="data_usage_app_restrict_all">Allow network access</string>
+    <string name="data_usage_app_restrict_all_summary">Enable network usage</string>
+    <string name="data_usage_app_restrict_mobile">Mobile data</string>
+    <string name="data_usage_app_restrict_mobile_summary">Enable usage of mobile data</string>
+    <string name="data_usage_app_restrict_vpn">VPN data</string>
+    <string name="data_usage_app_restrict_vpn_summary">Enable usage of VPN data</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi data</string>
+    <string name="data_usage_app_restrict_wifi_summary">Enable usage of Wi\u2011Fi data</string>
+    <string name="unlock_scramble_pin_layout_title">Scramble layout</string>
+    <string name="unlock_scramble_pin_layout_summary">Scramble PIN layout when unlocking device</string>
+    <string name="proximity_wake_title">Prevent accidental wake-up</string>
+    <string name="proximity_wake_summary">Check the proximity sensor prior to waking up screen</string>
+    <string name="touchscreen_gesture_settings_title">Touchscreen gestures</string>
+    <string name="touchscreen_gesture_settings_summary">Perform various touchscreen gestures for quick actions</string>
+    <string name="touchscreen_hovering_title">Touchscreen hovering</string>
+    <string name="touchscreen_hovering_summary">Allows you to hover the screen like a mouse in web browsers, remote desktops, etc</string>
+    <string name="wake_when_plugged_or_unplugged_title">Wake on plug</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Turn the screen on when connecting or disconnecting a power source</string>
+    <string name="fast_charging_title">Fast charging</string>
+    <string name="fast_charging_summary">Disable to reduce the heat produced by the device while charging or to extend the lifespan of the battery</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Long press on fingerprint sensor to unlock phone</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Long press on fingerprint sensor to unlock tablet</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Long press on fingerprint sensor to unlock device</string>
+    <string name="ambient_display_screen_off_udfps_summary">To wake up your screen and unlock, long press your under-display fingerprint sensor.</string>
+    <string name="storage_warning_internal">Warning: This option may not work properly or lead to data loss and is therefore not recommended!</string>
+    <string name="assisted_gps_summary">Download satellite assistance data from the internet which can greatly improve the GPS startup performance. For emergency calls, assisted GPS is always allowed.</string>
+</resources>
diff --git a/res/values-en-rGB/cm_strings.xml b/res/values-en-rGB/cm_strings.xml
new file mode 100644
index 0000000..8173154
--- /dev/null
+++ b/res/values-en-rGB/cm_strings.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Extras</string>
+    <string name="advanced_keyboard_settings_title">Advanced settings</string>
+    <string name="adb_enable_root">Rooted debugging</string>
+    <string name="adb_enable_summary_root">Allow running Android debugging as root</string>
+    <string name="backup_transport_setting_label">Change backup provider</string>
+    <string name="backup_transport_title">Select backup provider</string>
+    <string name="berry_black_theme_title">Pure black</string>
+    <string name="berry_black_theme_summary">Pure black background for dark theme</string>
+    <string name="lineagelicense_title">LineageOS legal</string>
+    <string name="device_info_protected_single_press">Tap to show info</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">You are now <xliff:g id="step_count">%1$d</xliff:g> step away from enabling development settings.</item>
+        <item quantity="other">You are now <xliff:g id="step_count">%1$d</xliff:g> steps away from enabling development settings.</item>
+    </plurals>
+    <string name="show_dev_on_cm">You have enabled development settings!</string>
+    <string name="show_dev_already_cm">No need, you have already enabled development settings.</string>
+    <string name="peak_refresh_rate_summary_custom">Automatically raises the refresh rate from 60 to %1$d Hz for some content. Increases battery usage.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Tap to sleep</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Double-tap on the status bar or lockscreen to turn off the display</string>
+    <string name="high_touch_polling_rate_title">High touch polling rate</string>
+    <string name="high_touch_polling_rate_summary">Increase touchscreen polling rate</string>
+    <string name="heads_up_notifications_enabled_title">Heads-up</string>
+    <string name="heads_up_notifications_enabled_summary">Display priority notifications in a small floating window</string>
+    <string name="high_touch_sensitivity_title">High touch sensitivity</string>
+    <string name="high_touch_sensitivity_summary">Increase touchscreen sensitivity so it can be used while wearing gloves</string>
+    <string name="tethering_allow_vpn_upstreams_title">Allow clients to use VPNs</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Permit hotspot clients to use this device\u2019s VPN connections for upstream connectivity</string>
+    <string name="increasing_ring_volume_option_title">Increasing ring volume</string>
+    <string name="increasing_ring_min_volume_title">Start volume</string>
+    <string name="increasing_ring_ramp_up_time_title">Ramp-up time</string>
+    <string name="lockscreen_media_art_title">Display media cover art</string>
+    <string name="lock_settings_picker_pattern_size_message">Choose a pattern size</string>
+    <string name="lockpattern_settings_enable_error_path_title">Show pattern error</string>
+    <string name="lockpattern_settings_enable_dots_title">Show pattern dots</string>
+    <string name="max_refresh_rate_title">Peak refresh rate</string>
+    <string name="min_refresh_rate_title">Minimum refresh rate</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Locate the fingerprint sensor on the front of your tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Locate the fingerprint sensor on the front of your device.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Locate the fingerprint sensor on the front of your phone.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Locate the fingerprint sensor on the back of your tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Locate the fingerprint sensor on the back of your device.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Locate the fingerprint sensor on the back of your phone.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Locate the fingerprint sensor on the side of your tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Locate the fingerprint sensor on the side of your device.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Locate the fingerprint sensor on the side of your phone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Touch the sensor on the front of your tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Touch the sensor on the front of your device.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Touch the sensor on the front of your phone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Touch the sensor on the back of your tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Touch the sensor on the back of your device.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Touch the sensor on the back of your phone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Touch the sensor on the side of your tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Touch the sensor on the side of your device.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Touch the sensor on the side of your phone.</string>
+    <string name="show_navbar_hint_title">Navigation hint</string>
+    <string name="show_navbar_hint_summary">Show navigation hint bar at the bottom of the screen</string>
+    <string name="app_notification_sound_timeout_title">Minimum time between notification sounds</string>
+    <string name="app_notification_sound_timeout_summary_template">Allow sounds or vibration no more than once every <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">No restriction</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 seconds</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 seconds</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minute</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minutes</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minutes</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minutes</string>
+    <string name="auto_brightness_one_shot_title">One shot auto-brightness</string>
+    <string name="auto_brightness_one_shot_summary">Brightness adjustment will only occur at the moment the screen is turned on</string>
+    <string name="data_usage_app_restrict_all">Allow network access</string>
+    <string name="data_usage_app_restrict_all_summary">Enable network usage</string>
+    <string name="data_usage_app_restrict_mobile">Mobile data</string>
+    <string name="data_usage_app_restrict_mobile_summary">Enable usage of mobile data</string>
+    <string name="data_usage_app_restrict_vpn">VPN data</string>
+    <string name="data_usage_app_restrict_vpn_summary">Enable usage of VPN data</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi data</string>
+    <string name="data_usage_app_restrict_wifi_summary">Enable usage of Wi\u2011Fi data</string>
+    <string name="unlock_scramble_pin_layout_title">Scramble layout</string>
+    <string name="unlock_scramble_pin_layout_summary">Scramble PIN layout when unlocking device</string>
+    <string name="proximity_wake_title">Prevent accidental wake-up</string>
+    <string name="proximity_wake_summary">Check the proximity sensor prior to waking up screen</string>
+    <string name="touchscreen_gesture_settings_title">Touchscreen gestures</string>
+    <string name="touchscreen_gesture_settings_summary">Perform various touchscreen gestures for quick actions</string>
+    <string name="touchscreen_hovering_title">Touchscreen hovering</string>
+    <string name="touchscreen_hovering_summary">Allows you to hover the screen like a mouse in web browsers, remote desktops, etc</string>
+    <string name="wake_when_plugged_or_unplugged_title">Wake on plug</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Turn the screen on when connecting or disconnecting a power source</string>
+    <string name="fast_charging_title">Fast charging</string>
+    <string name="fast_charging_summary">Disable to reduce the heat produced by the device while charging or to extend the lifespan of the battery</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Long press on fingerprint sensor to unlock phone</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Long press on fingerprint sensor to unlock tablet</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Long press on fingerprint sensor to unlock device</string>
+    <string name="ambient_display_screen_off_udfps_summary">To wake up your screen and unlock, long press your under-display fingerprint sensor.</string>
+    <string name="storage_warning_internal">Warning: This option may not work properly or lead to data loss and is therefore not recommended!</string>
+    <string name="assisted_gps_summary">Download satellite assistance data from the Internet which can greatly improve the GPS startup performance. For emergency calls, assisted GPS is always allowed.</string>
+</resources>
diff --git a/res/values-en-rIN/cm_strings.xml b/res/values-en-rIN/cm_strings.xml
new file mode 100644
index 0000000..f1ca5b2
--- /dev/null
+++ b/res/values-en-rIN/cm_strings.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Extras</string>
+    <string name="advanced_keyboard_settings_title">Advanced settings</string>
+    <string name="adb_enable_root">Rooted debugging</string>
+    <string name="adb_enable_summary_root">Allow running Android debugging as root</string>
+    <string name="backup_transport_setting_label">Change backup provider</string>
+    <string name="backup_transport_title">Select backup provider</string>
+    <string name="berry_black_theme_title">Pure black</string>
+    <string name="berry_black_theme_summary">Pure black background for dark theme</string>
+    <string name="lineagelicense_title">LineageOS legal</string>
+    <string name="device_info_protected_single_press">Tap to show info</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">You are now <xliff:g id="step_count">%1$d</xliff:g> step away from enabling development settings.</item>
+        <item quantity="other">You are now <xliff:g id="step_count">%1$d</xliff:g> steps away from enabling development settings.</item>
+    </plurals>
+    <string name="show_dev_on_cm">You have enabled development settings!</string>
+    <string name="show_dev_already_cm">No need, you have already enabled development settings.</string>
+    <string name="peak_refresh_rate_summary_custom">Automatically raises the refresh rate from 60 to %1$d Hz for some content. Increases battery usage.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Tap to sleep</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Double-tap on the status bar or lockscreen to turn off the display</string>
+    <string name="high_touch_polling_rate_title">High touch polling rate</string>
+    <string name="high_touch_polling_rate_summary">Increase touchscreen polling rate</string>
+    <string name="heads_up_notifications_enabled_title">Heads-up</string>
+    <string name="heads_up_notifications_enabled_summary">Display priority notifications in a small floating window</string>
+    <string name="high_touch_sensitivity_title">High touch sensitivity</string>
+    <string name="high_touch_sensitivity_summary">Increase touchscreen sensitivity so it can be used while wearing gloves</string>
+    <string name="tethering_allow_vpn_upstreams_title">Allow clients to use VPNs</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Permit hotspot clients to use this device\u2019s VPN connections for upstream connectivity</string>
+    <string name="increasing_ring_volume_option_title">Increasing ring volume</string>
+    <string name="increasing_ring_min_volume_title">Start volume</string>
+    <string name="increasing_ring_ramp_up_time_title">Ramp-up time</string>
+    <string name="lockscreen_media_art_title">Display media cover art</string>
+    <string name="lock_settings_picker_pattern_size_message">Choose a pattern size</string>
+    <string name="lockpattern_settings_enable_error_path_title">Show pattern error</string>
+    <string name="lockpattern_settings_enable_dots_title">Show pattern dots</string>
+    <string name="max_refresh_rate_title">Peak refresh rate</string>
+    <string name="min_refresh_rate_title">Minimum refresh rate</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Locate the fingerprint sensor on the front of your tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Locate the fingerprint sensor on the front of your device.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Locate the fingerprint sensor on the front of your phone.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Locate the fingerprint sensor on the back of your tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Locate the fingerprint sensor on the back of your device.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Locate the fingerprint sensor on the back of your phone.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Locate the fingerprint sensor on the side of your tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Locate the fingerprint sensor on the side of your device.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Locate the fingerprint sensor on the side of your phone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Touch the sensor on the front of your tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Touch the sensor on the front of your device.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Touch the sensor on the front of your phone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Touch the sensor on the back of your tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Touch the sensor on the back of your device.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Touch the sensor on the back of your phone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Touch the sensor on the side of your tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Touch the sensor on the side of your device.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Touch the sensor on the side of your phone.</string>
+    <string name="show_navbar_hint_title">Navigation hint</string>
+    <string name="show_navbar_hint_summary">Show navigation hint bar at the bottom of the screen</string>
+    <string name="app_notification_sound_timeout_title">Minimum time between notification sounds</string>
+    <string name="app_notification_sound_timeout_summary_template">Allow sounds or vibration no more than once every <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">No restriction</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 seconds</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 seconds</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minute</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minutes</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minutes</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minutes</string>
+    <string name="auto_brightness_one_shot_title">One shot auto-brightness</string>
+    <string name="auto_brightness_one_shot_summary">Brightness adjustment will only occur at the moment the screen is turned on</string>
+    <string name="data_usage_app_restrict_all">Allow network access</string>
+    <string name="data_usage_app_restrict_all_summary">Enable network usage</string>
+    <string name="data_usage_app_restrict_mobile">Mobile data</string>
+    <string name="data_usage_app_restrict_mobile_summary">Enable usage of mobile data</string>
+    <string name="data_usage_app_restrict_vpn">VPN data</string>
+    <string name="data_usage_app_restrict_vpn_summary">Enable usage of VPN data</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi data</string>
+    <string name="data_usage_app_restrict_wifi_summary">Enable usage of Wi\u2011Fi data</string>
+    <string name="unlock_scramble_pin_layout_title">Scramble layout</string>
+    <string name="unlock_scramble_pin_layout_summary">Scramble PIN layout when unlocking device</string>
+    <string name="proximity_wake_title">Prevent accidental wake-up</string>
+    <string name="proximity_wake_summary">Check the proximity sensor prior to waking up screen</string>
+    <string name="touchscreen_gesture_settings_title">Touchscreen gestures</string>
+    <string name="touchscreen_gesture_settings_summary">Perform various touchscreen gestures for quick actions</string>
+    <string name="touchscreen_hovering_title">Touchscreen hovering</string>
+    <string name="touchscreen_hovering_summary">Allows you to hover the screen like a mouse in web browsers, remote desktops, etc</string>
+    <string name="wake_when_plugged_or_unplugged_title">Wake on plug</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Turn the screen on when connecting or disconnecting a power source</string>
+    <string name="fast_charging_title">Fast charging</string>
+    <string name="fast_charging_summary">Disable to reduce the heat produced by the device while charging or to extend the lifespan of the battery</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Long press on fingerprint sensor to unlock phone</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Long press on fingerprint sensor to unlock tablet</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Long press on fingerprint sensor to unlock device</string>
+    <string name="ambient_display_screen_off_udfps_summary">To wake up your screen and unlock, long press your under-display fingerprint sensor.</string>
+    <string name="storage_warning_internal">Warning: This option may not work properly or lead to data loss and is therefore not recommended!</string>
+    <string name="assisted_gps_summary">Download satellite assistance data from the internet which can greatly improve the GPS startup performance. For emergency calls, assisted GPS is always allowed.</string>
+</resources>
diff --git a/res/values-es-rUS/cm_strings.xml b/res/values-es-rUS/cm_strings.xml
new file mode 100644
index 0000000..ac18174
--- /dev/null
+++ b/res/values-es-rUS/cm_strings.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="adb_enable_root">Depuración como Superusuario</string>
+    <string name="adb_enable_summary_root">Permitir ejecutar la depuración de Android como superusuario</string>
+    <string name="berry_black_theme_title">Negro puro</string>
+    <string name="lineagelicense_title">Licencia de LineageOS</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Estás a <xliff:g id="step_count">%1$d</xliff:g> paso de activar los ajustes de desarrollo.</item>
+        <item quantity="other">Estás a <xliff:g id="step_count">%1$d</xliff:g> pasos de activar los ajustes de desarrollo.</item>
+    </plurals>
+    <string name="show_dev_on_cm">¡Has activado los ajustes de desarrollo!</string>
+    <string name="show_dev_already_cm">No es necesario. Los ajustes de desarrollo ya están activos.</string>
+    <string name="peak_refresh_rate_summary_custom">Aumentar automáticamente la frecuencia de actualización de 60 Hz a %1$d Hz para cierto contenido. Incrementa el uso de batería</string>
+    <string name="status_bar_double_tap_to_sleep_title">Pulsar para suspender</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Pulsa dos veces en la barra de estado o en la pantalla de bloqueo para apagar la pantalla</string>
+    <string name="heads_up_notifications_enabled_title">Notificaciones emergentes</string>
+    <string name="heads_up_notifications_enabled_summary">Mostrar notificaciones prioritarias en una pequeña ventana flotante</string>
+    <string name="high_touch_sensitivity_title">Alta sensibilidad táctil</string>
+    <string name="high_touch_sensitivity_summary">Aumentar la sensibilidad del panel táctil para que pueda usarse con guantes</string>
+    <string name="tethering_allow_vpn_upstreams_title">Permitir a los clientes usar VPN</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Permitir a los clientes de hotspot usar las conexiones VPN de este dispositivo\u2019 como conectividad principal</string>
+    <string name="increasing_ring_volume_option_title">Volumen de tono ascendente</string>
+    <string name="increasing_ring_min_volume_title">Volumen de inicio</string>
+    <string name="increasing_ring_ramp_up_time_title">Tiempo de incremento</string>
+    <string name="lockscreen_media_art_title">Mostrar portada del álbum</string>
+    <string name="lock_settings_picker_pattern_size_message">Elija un tamaño de patrón</string>
+    <string name="lockpattern_settings_enable_error_path_title">Mostrar patrón erróneo</string>
+    <string name="lockpattern_settings_enable_dots_title">Mostrar puntos de patrón</string>
+    <string name="show_navbar_hint_title">Sugerencia de navegación</string>
+    <string name="app_notification_sound_timeout_title">Tiempo mínimo entre los sonidos de notificación</string>
+    <string name="app_notification_sound_timeout_summary_template">Permitir sonidos o vibraciones no más de una vez cada <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Sin restricción</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 segundos</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 segundos</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minuto</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minutos</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minutos</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minutos</string>
+    <string name="data_usage_app_restrict_all">Permitir acceso a la red</string>
+    <string name="data_usage_app_restrict_all_summary">Habilitar el uso de red</string>
+    <string name="data_usage_app_restrict_vpn">Datos de VPN</string>
+    <string name="data_usage_app_restrict_wifi">Datos Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Activar el uso de datos Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">Disposición aleatoria</string>
+    <string name="unlock_scramble_pin_layout_summary">Cambiar la disposición de los números del PIN para desbloquear el dispositivo</string>
+    <string name="proximity_wake_title">Prevenir encendido accidental</string>
+    <string name="proximity_wake_summary">Comprobar el sensor de proximidad antes de encender la pantalla</string>
+    <string name="touchscreen_gesture_settings_title">Gestos de pantalla táctil</string>
+    <string name="touchscreen_gesture_settings_summary">Realizar varios gestos en la pantalla para acciones rápidas</string>
+    <string name="touchscreen_hovering_title">Pantalla táctil deslizante</string>
+    <string name="touchscreen_hovering_summary">Permite deslizarse por la pantalla como un ratón en navegadores, escritorios remotos, etc</string>
+    <string name="wake_when_plugged_or_unplugged_title">Encender al conectar el cargador</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Encender la pantalla al conectar o desconectar el cargador</string>
+    <string name="fast_charging_title">Carga rápida</string>
+    <string name="fast_charging_summary">Desactivar para reducir el calor producido por el dispositivo mientras se carga o para extender la duración de la batería</string>
+</resources>
diff --git a/res/values-es/cm_strings.xml b/res/values-es/cm_strings.xml
new file mode 100644
index 0000000..31f97a3
--- /dev/null
+++ b/res/values-es/cm_strings.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="adb_enable_root">Depuración como Superusuario</string>
+    <string name="adb_enable_summary_root">Permitir ejecutar la depuración de Android como Superusuario</string>
+    <string name="backup_transport_setting_label">Cambiar proveedor de la copia de seguridad</string>
+    <string name="backup_transport_title">Seleccionar el proveedor de la copia de seguridad</string>
+    <string name="berry_black_theme_title">Negro puro</string>
+    <string name="berry_black_theme_summary">Fondo negro puro para el tema oscuro</string>
+    <string name="lineagelicense_title">Licencia de LineageOS</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Ahora estás a <xliff:g id="step_count">%1$d</xliff:g> paso de habilitar las opciones de desarrollo.</item>
+        <item quantity="other">Ahora estás a <xliff:g id="step_count">%1$d</xliff:g> pasos de habilitar las opciones de desarrollo.</item>
+    </plurals>
+    <string name="show_dev_on_cm">¡Has activado los ajustes de desarrollo!</string>
+    <string name="show_dev_already_cm">No es necesario. Las opciones de desarrollo ya están activadas.</string>
+    <string name="peak_refresh_rate_summary_custom">Aumenta automáticamente la frecuencia de actualización de 60 a %1$d Hz en determinados tipos de contenido. Se usará más batería.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Pulsar para suspender</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Doble toque en la barra de estado o pantalla de bloqueo para apagar la pantalla</string>
+    <string name="heads_up_notifications_enabled_title">Notificaciones emergentes</string>
+    <string name="heads_up_notifications_enabled_summary">Mostrar las notificaciones prioritarias en una pequeña ventana flotante</string>
+    <string name="high_touch_sensitivity_title">Alta sensibilidad táctil</string>
+    <string name="high_touch_sensitivity_summary">Incrementar la sensibilidad del panel táctil para que pueda usarse llevando guantes</string>
+    <string name="tethering_allow_vpn_upstreams_title">Permitir a los clientes usar VPNs</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Permitir a los clientes de hotspot usar las conexiones VPN de este dispositivo\u2019 como conectividad principal</string>
+    <string name="increasing_ring_volume_option_title">Volumen de timbre ascendente</string>
+    <string name="increasing_ring_min_volume_title">Volumen inicial</string>
+    <string name="increasing_ring_ramp_up_time_title">Tiempo de incremento</string>
+    <string name="lockscreen_media_art_title">Mostrar portada del álbum</string>
+    <string name="lock_settings_picker_pattern_size_message">Elije un tamaño de patrón</string>
+    <string name="lockpattern_settings_enable_error_path_title">Mostrar patrón erróneo</string>
+    <string name="lockpattern_settings_enable_dots_title">Mostrar puntos de patrón</string>
+    <string name="show_navbar_hint_title">Sugerencia de navegación</string>
+    <string name="show_navbar_hint_summary">Mostrar barra de sugerencias de navegación en la parte inferior de la pantalla</string>
+    <string name="app_notification_sound_timeout_title">Tiempo mínimo entre sonidos de notificaciones</string>
+    <string name="app_notification_sound_timeout_summary_template">Permite sonidos o vibraciones no más de una vez cada <xliff:g id="duration">%1$s </xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Sin restricción</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 segundos</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 segundos</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minuto</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minutos</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minutos</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minutos</string>
+    <string name="data_usage_app_restrict_all">Permitir acceso a la red</string>
+    <string name="data_usage_app_restrict_all_summary">Habilitar uso de red</string>
+    <string name="unlock_scramble_pin_layout_title">Disposición aleatoria</string>
+    <string name="unlock_scramble_pin_layout_summary">Cambiar la disposición de los números del PIN para desbloquear el dispositivo</string>
+    <string name="proximity_wake_title">Prevenir encendido accidental</string>
+    <string name="proximity_wake_summary">Comprobar el sensor de proximidad antes de encender la pantalla</string>
+    <string name="touchscreen_gesture_settings_title">Gestos en pantalla táctil</string>
+    <string name="touchscreen_gesture_settings_summary">Realizar varios gestos en la pantalla para acciones rápidas</string>
+    <string name="touchscreen_hovering_title">Pantalla táctil deslizante</string>
+    <string name="touchscreen_hovering_summary">Te permitirá deslizar por la pantalla como un ratón en navegadores, escritorios remotos, etc.</string>
+    <string name="wake_when_plugged_or_unplugged_title">Encender al conectar el cargador</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Encender la pantalla al conectar o desconectar el cargador</string>
+</resources>
diff --git a/res/values-et/cm_strings.xml b/res/values-et/cm_strings.xml
new file mode 100644
index 0000000..58a9733
--- /dev/null
+++ b/res/values-et/cm_strings.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Lisad</string>
+    <string name="advanced_keyboard_settings_title">Täpsemad seaded</string>
+    <string name="adb_enable_root">Juurkasutajaga silumine</string>
+    <string name="adb_enable_summary_root">Luba Androidi silumist juurkasutajaga</string>
+    <string name="backup_transport_setting_label">Muuda varunduste pakkujat</string>
+    <string name="backup_transport_title">Vali varunduste pakkuja</string>
+    <string name="berry_black_theme_title">Täiesti must</string>
+    <string name="berry_black_theme_summary">Täiesti must taust tumeda teema jaoks</string>
+    <string name="lineagelicense_title">LineageOS juriidiline info</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Olete <xliff:g id="step_count">%1$d</xliff:g> sammu kaugusel arendussätete lubamisest.</item>
+        <item quantity="other">Olete <xliff:g id="step_count">%1$d</xliff:g> sammu kaugusel arendussätete lubamisest.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Arendussätted aktiveeritud!</string>
+    <string name="show_dev_already_cm">Ei ole vaja, arendussätted juba aktiveeritud.</string>
+    <string name="peak_refresh_rate_summary_custom">Suurendab teatud sisu puhul värskendamissagedust 60 hertsilt %1$d hertsini. Akukasutus suureneb.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Koputa unerežiimiks</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Topeltkoputa olekuriba või lukustuskuva ekraani väljalülitamiseks</string>
+    <string name="heads_up_notifications_enabled_title">Hüpikmärguanded</string>
+    <string name="high_touch_sensitivity_title">Kõrge puutetundlikus</string>
+    <string name="high_touch_sensitivity_summary">Suurenda puuteekraani tundlikust, et saaksid seda kasutada kindaid kandes</string>
+    <string name="tethering_allow_vpn_upstreams_title">Luba klientidel kasutada VPN-e</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Luba kuumkoha klientidel kasutada selle seadme VPN-ühendusi ülesvoolu ühenduvuseks</string>
+    <string name="increasing_ring_volume_option_title">Kasvav helisemistugevus</string>
+    <string name="increasing_ring_min_volume_title">Lähtevaljusus</string>
+    <string name="increasing_ring_ramp_up_time_title">Käivitamisetapi aeg</string>
+    <string name="lockscreen_media_art_title">Näita meedia kaanepilti</string>
+    <string name="lockpattern_settings_enable_dots_title">Näita mustri punkte</string>
+    <string name="min_refresh_rate_title">Minimaalne värskendussagedus</string>
+    <string name="show_navbar_hint_title">Navigeerimise vihje</string>
+    <string name="show_navbar_hint_summary">Kuva navigeerimise vihjeriba ekraani allosas</string>
+    <string name="data_usage_app_restrict_all">Luba võrgujuurdepääs</string>
+    <string name="data_usage_app_restrict_all_summary">Luba võrgukasutus</string>
+    <string name="data_usage_app_restrict_mobile">Mobiilne andmeside</string>
+    <string name="data_usage_app_restrict_mobile_summary">Luba mobiilse andmeside kasutus</string>
+    <string name="data_usage_app_restrict_vpn">VPNi andmeside</string>
+    <string name="data_usage_app_restrict_vpn_summary">Lubage VPNi andmeside kasutus</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi andmeside</string>
+    <string name="data_usage_app_restrict_wifi_summary">Luba Wi\u2011Fi andmeside kasutus</string>
+    <string name="unlock_scramble_pin_layout_title">Segatud paigutus</string>
+    <string name="unlock_scramble_pin_layout_summary">Sega PIN paigutust seadme lahtilukustamisel</string>
+    <string name="proximity_wake_title">Väldi juhuslikku ärkamist</string>
+    <string name="proximity_wake_summary">Kontrolli lähedussensorit enne ekraani äratamist</string>
+    <string name="touchscreen_gesture_settings_title">Puuteekraani žestid</string>
+    <string name="touchscreen_gesture_settings_summary">Soorita mitmeid puuteekraani žeste kiirtoimingute teostamiseks</string>
+    <string name="touchscreen_hovering_title">Puuteekraani hõljumine</string>
+    <string name="touchscreen_hovering_summary">Lubab hõljuda ekraani kohal nagu hiirega veebilehitsejas, kaugtöölaual jne</string>
+    <string name="wake_when_plugged_or_unplugged_title">Ärka laadija ühendamisel</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Lülita ekraan sisse kui ühendatakse või eemaldatakse toite allikas</string>
+    <string name="fast_charging_title">Kiirlaadimine</string>
+</resources>
diff --git a/res/values-eu/cm_strings.xml b/res/values-eu/cm_strings.xml
new file mode 100644
index 0000000..d8c7dad
--- /dev/null
+++ b/res/values-eu/cm_strings.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">LineageOS lizentzia</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Garatzaileen aukerak gaitzeko urrats <xliff:g id="step_count">%1$d</xliff:g>era zaude.</item>
+        <item quantity="other">Garatzaileen aukerak gaitzeko <xliff:g id="step_count">%1$d</xliff:g> urratsera zaude.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Garatzaileen aukerak gaitu dituzu!</string>
+    <string name="show_dev_already_cm">Ez da behar, aurretik gaitu dituzu garatzaileek aukerak.</string>
+    <string name="peak_refresh_rate_summary_custom">Automatikoki igotzen du freskatze-abiadura 60 Hz-tik %1$d Hz-ra zenbait edukitarako. Bateria-erabilera luzatzen du.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Sakatu lokartzeko</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Sakatu birritan egoera-barra edo blokeo-pantaila pantaila itzaltzeko</string>
+    <string name="heads_up_notifications_enabled_title">Jakinarazpen flotatzaileak</string>
+    <string name="heads_up_notifications_enabled_summary">Bistaratu lehentasunezko jakinarazpenak leiho flotatzaile txiki batean</string>
+    <string name="high_touch_sensitivity_title">Ukipen sentsibilitate altua</string>
+    <string name="high_touch_sensitivity_summary">Areagotu pantailaren sentsibilitatea, eskularruekin erabilgarria izan dadin</string>
+    <string name="increasing_ring_volume_option_title">Dei doinu gorakorra</string>
+    <string name="increasing_ring_min_volume_title">Hasierako bolumena</string>
+    <string name="increasing_ring_ramp_up_time_title">Maldaren iraupena</string>
+    <string name="lockscreen_media_art_title">Bistaratu azalaren irudia</string>
+    <string name="lock_settings_picker_pattern_size_message">Aukeratu ereduaren tamaina</string>
+    <string name="lockpattern_settings_enable_error_path_title">Erakutsi eredu errorea</string>
+    <string name="lockpattern_settings_enable_dots_title">Erakutsi ereduaren puntuak</string>
+    <string name="app_notification_sound_timeout_title">Gutxieneko denbora jakinarazpen soinuen artean</string>
+    <string name="app_notification_sound_timeout_summary_template">Ez baimendu soinua edo bibrazioa aurrekotik denbora bat pasatu arte: <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Mugarik gabe</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 segundo</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 segundo</string>
+    <string name="app_notification_sound_timeout_value_1_minute">minutu bat</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minutu</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minutu</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minutu</string>
+    <string name="data_usage_app_restrict_vpn">VPN datuak</string>
+    <string name="data_usage_app_restrict_vpn_summary">Gaitu VPN datuen erabilera</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi datuak</string>
+    <string name="data_usage_app_restrict_wifi_summary">Gaitu of Wi\u2011Fi datuen erabilera</string>
+    <string name="unlock_scramble_pin_layout_title">Zorizko diseinua</string>
+    <string name="unlock_scramble_pin_layout_summary">PIN zenbakiaren antolaketa nahastu gailua desblokeatzean</string>
+    <string name="proximity_wake_title">Eragotzi ustekabeko esnatzea</string>
+    <string name="proximity_wake_summary">Kontsultatu gertutasun sentsorea pantaila piztu baino lehen</string>
+    <string name="touchscreen_gesture_settings_title">Ukitze-pantailaren keinuak</string>
+    <string name="touchscreen_gesture_settings_summary">Egin ukimen-pantailako keinuak ekintza azkarretarako</string>
+    <string name="touchscreen_hovering_title">Pantailaren gainetik pasatu</string>
+    <string name="touchscreen_hovering_summary">Sagua bailitzan pantailaren gainetik pasatzea ahalbidetzen dizu, nabigatzaileetan, urruneko mahaigainetan, eta abar</string>
+    <string name="wake_when_plugged_or_unplugged_title">Esnatu kargadorearekin</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Piztu pantaila kargadorea konektatu edo deskonektatzean</string>
+</resources>
diff --git a/res/values-fa/cm_strings.xml b/res/values-fa/cm_strings.xml
new file mode 100644
index 0000000..233916f
--- /dev/null
+++ b/res/values-fa/cm_strings.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">موارد حقوقی سایانوژن‌مود</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">شما اکنون <xliff:g id="step_count">%1$d</xliff:g> ضربه با فعال‌سازی ابزارهای توسعه فاصله دارید.</item>
+        <item quantity="other">شما اکنون <xliff:g id="step_count">%1$d</xliff:g> ضربه با فعال‌سازی ابزارهای توسعه فاصله دارید.</item>
+    </plurals>
+    <string name="show_dev_on_cm">شما ابزارهای توسعه را فعال کرده‌اید!</string>
+    <string name="show_dev_already_cm">نیازی نیست، ابزارهای توسعه قبلا فعال شده‌اند.</string>
+    <string name="peak_refresh_rate_summary_custom">به‌طور خودکار سرعت بازخوانی را برای بعضی محتواها، از ۶۰ هرتز تا ۹۰ هرتز بالا می‌برد. مصرف باتری را افزایش می‌دهد.</string>
+    <string name="high_touch_sensitivity_title">حساسیت بالا به لمس</string>
+    <string name="high_touch_sensitivity_summary">افزایش حساسیت صفحه به لمس تا هنگام پوشیدن دستکش نیز قابل استفاده باشد</string>
+    <string name="increasing_ring_volume_option_title">صدای صعودی زنگ</string>
+    <string name="increasing_ring_min_volume_title">میزان صدا هنگام شروع</string>
+    <string name="increasing_ring_ramp_up_time_title">زمان افزایش صدا</string>
+    <string name="lockpattern_settings_enable_error_path_title">نمایش الگوی نادرست</string>
+    <string name="lockpattern_settings_enable_dots_title">نمایش نقطه‌های الگو</string>
+    <string name="unlock_scramble_pin_layout_title">چینش درهم</string>
+    <string name="unlock_scramble_pin_layout_summary">چینش درهم پین هنگام باز کردن قفل دستگاه</string>
+    <string name="proximity_wake_title">جلوگیری از بیدار شدن تصادفی</string>
+    <string name="touchscreen_hovering_title">لمس شناور صفحه</string>
+    <string name="touchscreen_hovering_summary">به شما اجازه می‌دهد مانند عملکرد ماوس در مرورگرهای وب، ریموت دسکتاپ و غیره، صفحه نمایش را به صورت شناور کنترل کنید</string>
+    <string name="wake_when_plugged_or_unplugged_title">بیدار شدن هنگام اتصال به برق</string>
+    <string name="wake_when_plugged_or_unplugged_summary">روشن شدن صفحه هنگام اتصال یا قطع اتصال منبع برق</string>
+</resources>
diff --git a/res/values-fi/cm_strings.xml b/res/values-fi/cm_strings.xml
new file mode 100644
index 0000000..57a44b6
--- /dev/null
+++ b/res/values-fi/cm_strings.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Ekstrat</string>
+    <string name="advanced_keyboard_settings_title">Lisäasetukset</string>
+    <string name="adb_enable_root">Vianetsintä root-tilassa</string>
+    <string name="adb_enable_summary_root">Sallii Androidin virheenkorjauksen root-tilassa</string>
+    <string name="backup_transport_setting_label">Vaihda varmuuskopiopalvelua</string>
+    <string name="backup_transport_title">Valitse varmuuskopiopalvelu</string>
+    <string name="berry_black_theme_title">Kokonaan musta</string>
+    <string name="berry_black_theme_summary">Kokonaan musta tausta tummalle teemalle</string>
+    <string name="lineagelicense_title">LineageOSin lakiasiat</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Kehittäjäasetukset otetaan käyttöön <xliff:g id="step_count">%1$d</xliff:g> vaiheen päästä.</item>
+        <item quantity="other">Kehittäjäasetukset otetaan käyttöön <xliff:g id="step_count">%1$d</xliff:g> vaiheen päästä.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Kehittäjäasetukset ovat nyt käytössä!</string>
+    <string name="show_dev_already_cm">Olet jo ottanut kehittäjäasetukset käyttöön.</string>
+    <string name="peak_refresh_rate_summary_custom">Nostaa tietyn sisällön päivitysvälin automaattisesti 60 hertsistä %1$d:een. Lisää akun käyttöä.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Sammuta näyttö napauttamalla</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Sulje laitteen näyttö tuplanapauttamalla tilapalkkia tai lukitusnäyttöä</string>
+    <string name="heads_up_notifications_enabled_title">Leijuvat ilmoitukset</string>
+    <string name="heads_up_notifications_enabled_summary">Näytä tärkeät ilmoitukset pienessä kelluvassa ikkunassa</string>
+    <string name="high_touch_sensitivity_title">Korkea kosketusherkkyys</string>
+    <string name="high_touch_sensitivity_summary">Lisää kosketusnäytön herkkyyttä käyttääksesi laitetta käsineiden kanssa</string>
+    <string name="tethering_allow_vpn_upstreams_title">Salli laitteiden käyttää VPN:ää</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Salli hotspot-yhteyksien kayttää tämän laitteen VPN-yhteyksiä yhteyden muodostamiseen</string>
+    <string name="increasing_ring_volume_option_title">Voimistuva soittoääni</string>
+    <string name="increasing_ring_min_volume_title">Aloitusvoimakkuus</string>
+    <string name="increasing_ring_ramp_up_time_title">Nousun aika</string>
+    <string name="lockscreen_media_art_title">Näytä median kansikuva</string>
+    <string name="lock_settings_picker_pattern_size_message">Valitse ruudukon koko</string>
+    <string name="lockpattern_settings_enable_error_path_title">Näytä kuvion virhe</string>
+    <string name="lockpattern_settings_enable_dots_title">Näytä kuvion pisteet</string>
+    <string name="min_refresh_rate_title">Minimi virkistystaajuus</string>
+    <string name="show_navbar_hint_title">Alapalkki</string>
+    <string name="show_navbar_hint_summary">Näytä alapalkki näytön alareunassa</string>
+    <string name="app_notification_sound_timeout_title">Vähimmäisväli ilmoitusäänissä</string>
+    <string name="app_notification_sound_timeout_summary_template">Sallii äänen tai värinän vain seuraavin välein: <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Ei rajoitusta</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 sekuntia</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 sekuntia</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minuutti</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minuuttia</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minuuttia</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minuuttia</string>
+    <string name="data_usage_app_restrict_all">Salli verkkoyhteys</string>
+    <string name="data_usage_app_restrict_all_summary">Ota verkkoyhteys käyttöön</string>
+    <string name="data_usage_app_restrict_mobile">Mobiilitiedonsiirto</string>
+    <string name="data_usage_app_restrict_mobile_summary">Ota mobiilidata käyttöön</string>
+    <string name="data_usage_app_restrict_vpn">VPN data</string>
+    <string name="data_usage_app_restrict_vpn_summary">Ota käyttöön VPN data</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi data</string>
+    <string name="data_usage_app_restrict_wifi_summary">Ota Wi\u2011Fi data käyttöön</string>
+    <string name="unlock_scramble_pin_layout_title">Sekoitettu asettelu</string>
+    <string name="unlock_scramble_pin_layout_summary">Sekoita PIN-numerot poistettaessa lukitusta</string>
+    <string name="proximity_wake_title">Estä herätys vahingossa</string>
+    <string name="proximity_wake_summary">Tarkista lähesyysanturi ennen laitteen herättämistä</string>
+    <string name="touchscreen_gesture_settings_title">Kosketusnäytön eleet</string>
+    <string name="touchscreen_gesture_settings_summary">Tee erilaisia kosketusnäytön eleitä käyttääksesi pikatoimintoja</string>
+    <string name="touchscreen_hovering_title">Kosketusnäytön leijunta</string>
+    <string name="touchscreen_hovering_summary">Sallii näytön leijuttamisen kuten hiiri selaimessa, etätyöpöytäyhteyksissä, jne.</string>
+    <string name="wake_when_plugged_or_unplugged_title">Herää laturista</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Käynnistä näyttö kun virtalähde liitetään tai irrotetaan</string>
+    <string name="fast_charging_title">Pikalataus</string>
+    <string name="fast_charging_summary">Poista käytöstä vähentääksesi laitteen tuottamaa lämpöä latauksen aikana tai pidentääksesi akun käyttöikää</string>
+</resources>
diff --git a/res/values-fr-rCA/cm_strings.xml b/res/values-fr-rCA/cm_strings.xml
new file mode 100644
index 0000000..ab88f01
--- /dev/null
+++ b/res/values-fr-rCA/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">Augmente automatiquement la fréquence d\'actualisation de 60 Hz à %1$d Hz pour certains contenus. Cette fonction sollicite davantage la pile de l\'appareil.</string>
+</resources>
diff --git a/res/values-fr/cm_strings.xml b/res/values-fr/cm_strings.xml
new file mode 100644
index 0000000..ba5b1b3
--- /dev/null
+++ b/res/values-fr/cm_strings.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Extras</string>
+    <string name="advanced_keyboard_settings_title">Paramètres avancés</string>
+    <string name="adb_enable_root">Débogage rooté</string>
+    <string name="adb_enable_summary_root">Autoriser le débogage Android en tant que root</string>
+    <string name="backup_transport_setting_label">Modifier le fournisseur de sauvegarde</string>
+    <string name="backup_transport_title">Sélectionner un fournisseur de sauvegarde</string>
+    <string name="berry_black_theme_title">Noir pur</string>
+    <string name="berry_black_theme_summary">Fond noir pur pour le thème sombre</string>
+    <string name="lineagelicense_title">Infos légales LineageOS</string>
+    <string name="device_info_protected_single_press">Appuyez pour afficher les informations</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Vous êtes maintenant à <xliff:g id="step_count">%1$d</xliff:g> étape de l\'activation des paramètres de développement.
+Vous êtes maintenant à <xliff:g id="step_count">%1$d</xliff:g> étapes de l\'activation des paramètres de développement.</item>
+        <item quantity="other">Vous êtes maintenant à <xliff:g id="step_count">%1$d</xliff:g> étapes de l\'activation des paramètres de développement.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Vous avez activé les paramètres de développement !</string>
+    <string name="show_dev_already_cm">Inutile, vous avez déjà activé les paramètres de développement.</string>
+    <string name="peak_refresh_rate_summary_custom">Augmente automatiquement le taux de rafraîchissement de 60 à %1$d Hz pour certains contenus. Accroît l\'utilisation de la batterie.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Appuyer pour mettre en veille</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Appuyer deux fois sur la barre d\'état ou sur l\'écran de verrouillage pour éteindre l\'écran</string>
+    <string name="high_touch_polling_rate_title">Taux d\'échantillonnage tactile élevé</string>
+    <string name="high_touch_polling_rate_summary">Augmenter le taux d\'échantillonnage de l\'écran tactile</string>
+    <string name="heads_up_notifications_enabled_title">Notifications flottantes</string>
+    <string name="heads_up_notifications_enabled_summary">Afficher les notifications prioritaires dans une petite fenêtre de notification flottante</string>
+    <string name="high_touch_sensitivity_title">Haute sensibilité tactile</string>
+    <string name="high_touch_sensitivity_summary">Augmenter la sensibilité de l\'écran permettant ainsi le port de gants</string>
+    <string name="tethering_allow_vpn_upstreams_title">Autoriser les clients à utiliser des VPNs</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Permettre aux clients de point d\'accès d\'utiliser les connexions VPN de cet appareil pour la connectivité en amont</string>
+    <string name="increasing_ring_volume_option_title">Sonnerie progressive</string>
+    <string name="increasing_ring_min_volume_title">Volume de démarrage</string>
+    <string name="increasing_ring_ramp_up_time_title">Durée de progression</string>
+    <string name="lockscreen_media_art_title">Afficher la couverture du média</string>
+    <string name="lock_settings_picker_pattern_size_message">Choisissez une taille de modèle</string>
+    <string name="lockpattern_settings_enable_error_path_title">Afficher l\'erreur de schéma</string>
+    <string name="lockpattern_settings_enable_dots_title">Afficher les points du schéma</string>
+    <string name="max_refresh_rate_title">Taux de rafraîchissement maximal</string>
+    <string name="min_refresh_rate_title">Taux de rafraîchissement minimum</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Localisez le lecteur d\'empreintes digitales à l\'avant de votre tablette.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Localisez le lecteur d\'empreintes digitales à l\'avant de votre appareil.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Localisez le lecteur d\'empreintes digitales à l\'avant de votre téléphone.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Localisez le lecteur d\'empreintes digitales à l\'arrière de votre tablette.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Localisez le lecteur d\'empreintes digitales à l\'arrière de votre appareil.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Localisez le lecteur d\'empreintes digitales à l\'arrière de votre téléphone.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Localisez le lecteur d\'empreintes digitales sur le côté de votre tablette.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Localisez le lecteur d\'empreintes digitales sur le côté de votre appareil.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Localisez le lecteur d\'empreintes digitales sur le côté de votre téléphone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Touchez le capteur à l\'avant de votre tablette.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Touchez le capteur à l\'avant de votre appareil.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Touchez le capteur à l\'avant de votre téléphone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Touchez le capteur à l\'arrière de votre tablette.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Touchez le capteur à l\'arrière de votre appareil.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Touchez le capteur à l\'arrière de votre téléphone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Touchez le capteur sur le côté de votre tablette.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Touchez le capteur sur le côté de votre appareil.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Touchez le capteur sur le côté de votre téléphone.</string>
+    <string name="show_navbar_hint_title">Indice de navigation</string>
+    <string name="show_navbar_hint_summary">Afficher l\'indice de navigation en bas de l\'écran</string>
+    <string name="app_notification_sound_timeout_title">Temps minimum entre les sons de notification</string>
+    <string name="app_notification_sound_timeout_summary_template">Ne pas permettre plus d\'un son ou une vibration toutes les <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Aucune restriction</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 secondes</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 secondes</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minute</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minutes</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minutes</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minutes</string>
+    <string name="auto_brightness_one_shot_title">Luminosité automatique rapide</string>
+    <string name="auto_brightness_one_shot_summary">La luminosité ne s\'ajustera qu\'au moment où l\'écran s\'allume</string>
+    <string name="data_usage_app_restrict_all">Autoriser l\'accès au réseau</string>
+    <string name="data_usage_app_restrict_all_summary">Activer l\'utilisation du réseau</string>
+    <string name="data_usage_app_restrict_mobile">Données mobiles</string>
+    <string name="data_usage_app_restrict_mobile_summary">Activer l\'utilisation des données mobiles</string>
+    <string name="data_usage_app_restrict_vpn">Données VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Activer l\'utilisation des données VPN</string>
+    <string name="data_usage_app_restrict_wifi">Données Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Activer l\'utilisation des données Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">Disposition aléatoire</string>
+    <string name="unlock_scramble_pin_layout_summary">Disposer aléatoirement les touches lors du déverrouillage</string>
+    <string name="proximity_wake_title">Empêcher un réveil accidentel</string>
+    <string name="proximity_wake_summary">Vérifier le capteur de proximité avant d\'allumer l\'écran</string>
+    <string name="touchscreen_gesture_settings_title">Gestes tactiles</string>
+    <string name="touchscreen_gesture_settings_summary">Effectuer différents gestes tactiles pour des actions rapides</string>
+    <string name="touchscreen_hovering_title">Survol de l\'écran tactile</string>
+    <string name="touchscreen_hovering_summary">Permet de survoler l\'écran comme avec une souris dans les navigateurs web, les bureaux à distance, etc.</string>
+    <string name="wake_when_plugged_or_unplugged_title">Réveiller au branchement</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Allumer l\'écran lors du branchement ou du débranchement d\'une source d\'alimentation</string>
+    <string name="fast_charging_title">Charge rapide</string>
+    <string name="fast_charging_summary">Désactiver pour réduire la chaleur produite par l\'appareil pendant la charge ou pour prolonger la durée de vie de la batterie</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Appui long sur le capteur d\'empreintes pour déverrouiller</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Appui long sur le capteur d\'empreintes pour déverrouiller</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Appui long sur le capteur d\'empreintes pour déverrouiller</string>
+    <string name="ambient_display_screen_off_udfps_summary">Pour allumer votre écran et le déverrouiller, appuyez longuement sur votre lecteur d\'empreinte digitale sous l\'écran.</string>
+    <string name="storage_warning_internal">Attention : Cette option peut ne pas fonctionner correctement ou entraîner une perte de données et n\'est donc pas recommandée !</string>
+    <string name="assisted_gps_summary">Télécharger les données d\'assistance par satellite à partir d\'Internet peut grandement améliorer les performances de démarrage du GPS. Pour les appels d\'urgence, le GPS assisté est toujours autorisé.</string>
+</resources>
diff --git a/res/values-fur-rIT/cm_strings.xml b/res/values-fur-rIT/cm_strings.xml
new file mode 100644
index 0000000..8288bec
--- /dev/null
+++ b/res/values-fur-rIT/cm_strings.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Extras</string>
+    <string name="advanced_keyboard_settings_title">Impostazions avanzadis</string>
+    <string name="adb_enable_root">Debug cun acès root</string>
+    <string name="adb_enable_summary_root">Permet la esecuzion dal debug di Android come root</string>
+    <string name="backup_transport_setting_label">Cambie gjestôr dai backups</string>
+    <string name="backup_transport_title">Selezione un gjestôr dai backups</string>
+    <string name="berry_black_theme_title">Neri pûr</string>
+    <string name="berry_black_theme_summary">Fonts neri pûr pal teme scûr</string>
+    <string name="lineagelicense_title">Notis legâls di LineageOS</string>
+    <string name="device_info_protected_single_press">Tocje par mostrâ informazions</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Ti mancje <xliff:g id="step_count">%1$d</xliff:g> passaç par ativâ lis impostazions di disvilup.</item>
+        <item quantity="other">Ti mancjin <xliff:g id="step_count">%1$d</xliff:g> passaçs par ativâ lis impostazions di disvilup.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Tu âs abilitât lis impostazions di disvilup!</string>
+    <string name="show_dev_already_cm">Nol covente, tu âs za abilitât lis impostazions di disvilup.</string>
+    <string name="peak_refresh_rate_summary_custom">Aumente in automatic la frecuence di inzornament di 60 a %1$d Hz par cualchi contignût. Al aumente il consum de batarie.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Tocje par sospindi</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Tocje dôs volti la sbare di stât o la schermade di sbloc par distudâ il schermi</string>
+    <string name="high_touch_polling_rate_title">Campionament des tocjadis a elevde frecuence</string>
+    <string name="high_touch_polling_rate_summary">Aumente la frecuence di campionament dal schermi tatil</string>
+    <string name="heads_up_notifications_enabled_title">Notifichis a comparse</string>
+    <string name="heads_up_notifications_enabled_summary">Visualize lis notifichis prioritaris intun piçul barcon flotant</string>
+    <string name="high_touch_sensitivity_title">Tocjade a alte sensibilitât</string>
+    <string name="high_touch_sensitivity_summary">Aumente la sensibilitât dal schermi tatil par podêlu doprâ cu lis manecis</string>
+    <string name="tethering_allow_vpn_upstreams_title">Permet ai dispositîfs conetûts di doprâ lis VPNs</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Permet ai dispositîfs conetûts al pont di acès di doprâ lis conessions VPN di chest dispositîf</string>
+    <string name="increasing_ring_volume_option_title">Sunarie incrementâl</string>
+    <string name="increasing_ring_min_volume_title">Volum iniziâl</string>
+    <string name="increasing_ring_ramp_up_time_title">Timp par aumentâ</string>
+    <string name="lockscreen_media_art_title">Mostre cuvierte album</string>
+    <string name="lock_settings_picker_pattern_size_message">Sielç la dimension de secuence</string>
+    <string name="lockpattern_settings_enable_error_path_title">Mostre erôr de secuence</string>
+    <string name="lockpattern_settings_enable_dots_title">Mostre ponts de secuence</string>
+    <string name="max_refresh_rate_title">Frecuence di inzornament massime</string>
+    <string name="min_refresh_rate_title">Frecuence di inzornament minime</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Individue il sensôr di impronts digjitâi de bande anteriôr dal to tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Individue il sensôr di impronts digjitâi de bande anteriôr dal to dispositîf.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Individue il sensôr di impronts digjitâi de bande anteriôr dal to telefon.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Individue il sensôr di impronts digjitâi de bande posteriôr dal to tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Individue il sensôr di impronts digjitâi de bande posteriôr dal to dispositîf.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Individue il sensôr di impronts digjitâi de bande posteriôr dal to telefon.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Individue il sensôr di impronts digjitâi de bande laterâl dal to tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Individue il sensôr di impronts digjitâi de bande laterâl dal to dispositîf.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Individue il sensôr di impronts digjitâi de bande laterâl dal to telefon.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Tocje il sensôr de bande anteriôr dal to tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Tocjeil sensôr de bande anteriôr dal to dispositîf.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Tocjeil sensôr de bande anteriôr dal to telefon.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Tocje il sensôr de bande posteriôr dal to tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Tocjeil sensôr de bande posteriôr dal to dispositîf.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Tocjeil sensôr de bande posteriôr dal to telefon.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Tocje il sensôr de bande laterâl dal to tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Tocjeil sensôr de bande laterâl dal to dispositîf.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Tocjeil sensôr de bande laterâl dal to telefon.</string>
+    <string name="show_navbar_hint_title">Indicadôr navigazion</string>
+    <string name="show_navbar_hint_summary">Mostre l\'indicadôr di navigazion te part basse dal schermi</string>
+    <string name="app_notification_sound_timeout_title">Timp minim tra i suns des notifichis</string>
+    <string name="app_notification_sound_timeout_summary_template">Permet suns o vibrazions no plui di une volte ogni <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Nissune restrizion</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 seconts</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 seconts</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minût</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minûts</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minûts</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minûts</string>
+    <string name="auto_brightness_one_shot_title">Luminositât automatiche intun colp</string>
+    <string name="auto_brightness_one_shot_summary">La regolazion de luminositât e capitarà dome cuant che il schermi al ven ativât</string>
+    <string name="data_usage_app_restrict_all">Permet acès ae rêt</string>
+    <string name="data_usage_app_restrict_all_summary">Abilite l\'ûs de rêt</string>
+    <string name="data_usage_app_restrict_mobile">Dâts mobii</string>
+    <string name="data_usage_app_restrict_mobile_summary">Abilite l\'ûs dai dâts mobii</string>
+    <string name="data_usage_app_restrict_vpn">Dâts VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Abilte l\'ûs dai dâts VPN</string>
+    <string name="data_usage_app_restrict_wifi">Dâts Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Abilite l\'ûs dai dâts Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">Messede disposizion</string>
+    <string name="unlock_scramble_pin_layout_summary">Messede la disposizion de tastiere PIN pal sbloc dal dispositîf</string>
+    <string name="proximity_wake_title">Preven il disveâsi acidentâl</string>
+    <string name="proximity_wake_summary">Controle il sensôr di prossimitât prime di impiâ il schermi</string>
+    <string name="touchscreen_gesture_settings_title">Mots su schermi tatil</string>
+    <string name="touchscreen_gesture_settings_summary">Eseguìs varis mots su schermi tatic par fâ azions rapidis</string>
+    <string name="touchscreen_hovering_title">Schermi tatil a pontadôr</string>
+    <string name="touchscreen_hovering_summary">Permet di passâ parsore dal schermi come cuntun mouse intal navigadôr web, tai scritoris lontans e v.i.</string>
+    <string name="wake_when_plugged_or_unplugged_title">Disvee al colegament</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Impie il schermi se e ven colegade o distacade une sorzint di alimentazion</string>
+    <string name="fast_charging_title">Ricjarie rapide</string>
+    <string name="fast_charging_summary">Disabilite par ridusi il calôr prodot dal dispositîf intant de ricjarie o par sprolungjâ la durade de batarie</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Frache a dilunc sul sensôr di impronts digjitâi par sblocâ il telefon</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Frache a dilunc sul sensôr di impronts digjitâi par sblocâ il tablet</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Frache a dilunc sul sensôr di impronts digjitâi par sblocâ il dispositîf</string>
+    <string name="ambient_display_screen_off_udfps_summary">Par impiâ il schermi e sblocâ il dispositîf, frache a dilunc sul sensôr di impronts digjitâi sot dal schermi.</string>
+    <string name="storage_warning_internal">Atenzion: cheste opzion e podarès no funzionâ ben o puartâ a pierditis di dâts e duncje no je conseade!</string>
+    <string name="assisted_gps_summary">Discjame di internet i dâts di assistence satelitâr, che a puedin miorâ une vore lis prestazions di inviament dal GPS. Pes clamadis di emergjence, il GPS assistût al è simpri consintût.</string>
+</resources>
diff --git a/res/values-fy-rNL/cm_strings.xml b/res/values-fy-rNL/cm_strings.xml
new file mode 100644
index 0000000..2ef2ded
--- /dev/null
+++ b/res/values-fy-rNL/cm_strings.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="adb_enable_root">Root-debugging</string>
+    <string name="adb_enable_summary_root">Android-debugging as root tastean</string>
+    <string name="lineagelicense_title">Juridyske ynformaasje fan LineageOS</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Jo binne noch <xliff:g id="step_count">%1$d</xliff:g> stap fan de opsjes foar ûntwikkelers.</item>
+        <item quantity="other">Jo binne noch <xliff:g id="step_count">%1$d</xliff:g> stappen fan de opsjes foar ûntwikkelers.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Jo hawwe de opsjes foar ûntwikkelers ynskeakele!</string>
+    <string name="show_dev_already_cm">Net nedich jo hawwe de opsjes foar ûntwikkelers al ynskeakele.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Dûbeld tikke foar sliepstân</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Dûbeld tikke op de steatbalke of beskoattelskerm om it skerm út te skeakeljen</string>
+    <string name="heads_up_notifications_enabled_title">Heads-up</string>
+    <string name="heads_up_notifications_enabled_summary">Prioriteitsmeldingen toane yn lyts swevend finster</string>
+    <string name="high_touch_sensitivity_title">Hege gefoelichheid oanreitsjen</string>
+    <string name="high_touch_sensitivity_summary">Gefoelichheid fan it skerm ferheegje, sadat it betsjinne wurde kin mei wanten</string>
+    <string name="tethering_allow_vpn_upstreams_title">Clients tastean om VPN\'s te brûken</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Hotspot-brûkers tastean om de VPN-ferbiningen fan dit apparaat te brûken om te uploaden</string>
+    <string name="increasing_ring_volume_option_title">Tanimmend belfolume</string>
+    <string name="increasing_ring_min_volume_title">Startfolume</string>
+    <string name="increasing_ring_ramp_up_time_title">Opheechtiid</string>
+    <string name="lockscreen_media_art_title">Albumhoezen toane</string>
+    <string name="lock_settings_picker_pattern_size_message">Grutte patroan kieze</string>
+    <string name="lockpattern_settings_enable_error_path_title">Patroanflater toane</string>
+    <string name="lockpattern_settings_enable_dots_title">Patroanknoppen toane</string>
+    <string name="app_notification_sound_timeout_title">Minimale tiid tusken meldingslûden</string>
+    <string name="app_notification_sound_timeout_summary_template">Lûd of trillen net mear as ien kear yn de <xliff:g id="duration">%1$s</xliff:g> tastean</string>
+    <string name="app_notification_sound_timeout_value_none">Gjin beheining</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 sekonden</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 sekonden</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minút</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minuten</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minuten</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minuten</string>
+    <string name="data_usage_app_restrict_vpn">VPN-gegevens</string>
+    <string name="data_usage_app_restrict_vpn_summary">Tagong ta VPN-gegevens tastean</string>
+    <string name="data_usage_app_restrict_wifi">Gegevens fia wifi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Gebrûk fan gegevens fia wifi ynskeakelje</string>
+    <string name="unlock_scramble_pin_layout_title">Lay-out hutselje</string>
+    <string name="unlock_scramble_pin_layout_summary">Pin-lay-out troch inoar hutselje by apparaat ûntskoatteljen</string>
+    <string name="proximity_wake_title">Troch fersin wekker meitsje opkeare</string>
+    <string name="proximity_wake_summary">Tichtebysensor brûke foarôfgeand oan ûntweitsjen fan skerm</string>
+    <string name="touchscreen_gesture_settings_title">fingergebearen</string>
+    <string name="touchscreen_gesture_settings_summary">Skermgebearen brûke foar flugge aksjes</string>
+    <string name="touchscreen_hovering_title">Sweve boppe skerm</string>
+    <string name="touchscreen_hovering_summary">Mei jo finger boppe it skerm sweve, lykas in mûs yn browsers, buroblêd op ôfstân, ensfh.</string>
+    <string name="wake_when_plugged_or_unplugged_title">Wekker meitsjen troch lader</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Skerm oan by it oansluten of loskeppeljen fan in lader</string>
+</resources>
diff --git a/res/values-gd/cm_strings.xml b/res/values-gd/cm_strings.xml
new file mode 100644
index 0000000..75d3493
--- /dev/null
+++ b/res/values-gd/cm_strings.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Rudan a bharrachd</string>
+    <string name="advanced_keyboard_settings_title">Roghainnean adhartach</string>
+    <string name="adb_enable_root">Dì-bhugachadh root</string>
+    <string name="adb_enable_summary_root">Ceadaich gun dèid dì-bhugachadh Android a ruith ’na root</string>
+    <string name="backup_transport_setting_label">Atharraich solaraiche nan lethbhreacan-glèidhidh</string>
+    <string name="backup_transport_title">Tagh solaraiche nan lethbhreacan-glèidhidh</string>
+    <string name="berry_black_theme_title">Dubh</string>
+    <string name="berry_black_theme_summary">Cleachd cùlaibh dubh leis an ùrlar dhorcha</string>
+    <string name="lineagelicense_title">Sgrìobhainnean laghail LineageOS</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Tha thu <xliff:g id="step_count">%1$d</xliff:g> cheum air falbh o bhith a’ cur an comas roghainnean an luchd-leasachaidh.</item>
+        <item quantity="two">Tha thu <xliff:g id="step_count">%1$d</xliff:g> cheum air falbh o bhith a’ cur an comas roghainnean an luchd-leasachaidh.</item>
+        <item quantity="few">Tha thu <xliff:g id="step_count">%1$d</xliff:g> ceuman air falbh o bhith a’ cur an comas roghainnean an luchd-leasachaidh.</item>
+        <item quantity="other">Tha thu <xliff:g id="step_count">%1$d</xliff:g> ceum air falbh o bhith a’ cur an comas roghainnean an luchd-leasachaidh.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Chuir thu roghainnean an luchd-leasachaidh an comas!</string>
+    <string name="show_dev_already_cm">Cha leig thu leas, chuir thu roghainnean an luchd-leasachaidh an comas mu thràth.</string>
+    <string name="peak_refresh_rate_summary_custom">Àrdaichidh seo reat an ath-nuadhachaidh o 60 gu %1$d Hz do chuid a shusbaint gu fèin-obrachail. Caithidh seo barrachd dhen bhataraidh.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Thoir gnogag airson cadal</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Thoir gnogag dhùbailte air bàr na staid no air an sgrìn-ghlasaidh gus an uidheam-taisbeanaidh a chur dheth</string>
+    <string name="heads_up_notifications_enabled_title">An aire</string>
+    <string name="heads_up_notifications_enabled_summary">Seall brathan le prìomhachas ann an uinneag bheag air fleòd</string>
+    <string name="high_touch_sensitivity_title">Mothalachd àrd air an t-suathadh</string>
+    <string name="high_touch_sensitivity_summary">Meudaich mothalachd na sgrìn-shuathaidh ach an gabh a cleachdadh le miotagan</string>
+    <string name="tethering_allow_vpn_upstreams_title">Leig le cliantan VPN a chleachdadh</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Thoir cead do chliantan hotspot gun cleachd iad ceanglaichean VPN an uidheim seo airson ceangal upstream a dhèanamh</string>
+    <string name="increasing_ring_volume_option_title">Cur an àirde fuaim na seirme</string>
+    <string name="increasing_ring_min_volume_title">Àirde na fuaime thòiseachail</string>
+    <string name="increasing_ring_ramp_up_time_title">Àm ramp-up</string>
+    <string name="lockscreen_media_art_title">Seall obair-ealain còmhdachaidh nam meadhanan</string>
+    <string name="lock_settings_picker_pattern_size_message">Tagh meud a’ phàtrain</string>
+    <string name="lockpattern_settings_enable_error_path_title">Seall mearachd a’ phàtrain</string>
+    <string name="lockpattern_settings_enable_dots_title">Seall dotagan a’ phàtrain</string>
+    <string name="max_refresh_rate_title">Bàrr tricead an ath-nuadhachaidh</string>
+    <string name="min_refresh_rate_title">Reat as lugha an ath-nuadhachaidh</string>
+    <string name="show_navbar_hint_title">Oidheam na seòladaireachd</string>
+    <string name="show_navbar_hint_summary">Seall bàr oidheam na seòladaireachd aig bonn na sgrìn</string>
+    <string name="app_notification_sound_timeout_title">An ùine as lugha eadar fuaimean bhrathan</string>
+    <string name="app_notification_sound_timeout_summary_template">Na ceadaich fuaim no brath nas trice na gach <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Gun chuingeachadh</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 diogan</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 diog</string>
+    <string name="app_notification_sound_timeout_value_1_minute">Mionaid</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 mionaidean</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 mionaidean</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">Leth-uair a thìde</string>
+    <string name="auto_brightness_one_shot_title">Soilleireachd fhèin-obrachail an aon losgaidh</string>
+    <string name="auto_brightness_one_shot_summary">Cha dèid gleus a chur air an t-soilleireachd ach aig an àm a thèid an sgrìn a chur air</string>
+    <string name="data_usage_app_restrict_all">Ceadaich inntrigeadh dhan lìonra</string>
+    <string name="data_usage_app_restrict_all_summary">Cuir an comas cleachdadh an lìonraidh</string>
+    <string name="data_usage_app_restrict_mobile">Dàta mobile</string>
+    <string name="data_usage_app_restrict_mobile_summary">Cuir an comas cleachdadh dàta mobile</string>
+    <string name="data_usage_app_restrict_vpn">Dàta VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Cuir an comas cleachdadh dàta VPN</string>
+    <string name="data_usage_app_restrict_wifi">Dàta WiFi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Cuir an comas cleachdadh dàta WiFi</string>
+    <string name="unlock_scramble_pin_layout_title">Cuir a’ cho-dhealbhachd tro chèile</string>
+    <string name="unlock_scramble_pin_layout_summary">Cuir co-dhealbhachd a’ PIN tro chèile nuair a bheirear a’ ghlas far an uidheim</string>
+    <string name="proximity_wake_title">Caisg dùsgadh air mhearachd</string>
+    <string name="proximity_wake_summary">Dearbh le mothaichear na fagasachd mus dèid an sgrìn a dhùsgadh</string>
+    <string name="touchscreen_gesture_settings_title">Gluasadan na sgrìn-shuathaidh</string>
+    <string name="touchscreen_gesture_settings_summary">Cleachd gluasadan sgrìn-shuathaidh airson gnìomhan luatha</string>
+    <string name="touchscreen_hovering_title">Fantainn os cionn na sgrìn</string>
+    <string name="touchscreen_hovering_summary">Bheir seo comas dhut fantainn os cionn na sgrìn, mar luchag ann am brabhsairean-lìn, desktops cèin is msaa</string>
+    <string name="wake_when_plugged_or_unplugged_title">Dùisg nuair a cheanglar ri bun-dealain</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Cuir an sgrìn air nuair a thèid tùs cumhachd a cheangal ris no a dhì-cheangal</string>
+    <string name="fast_charging_title">Teàirrdseadh luath</string>
+    <string name="fast_charging_summary">Cuir à comas e ach nach adhbharaich an t-uidheam uiread de theas nuair a bhios e ’ga theàirrdseadh no ach am mair am bataraidh nas fhaide</string>
+</resources>
diff --git a/res/values-gl/cm_strings.xml b/res/values-gl/cm_strings.xml
new file mode 100644
index 0000000..2b46e68
--- /dev/null
+++ b/res/values-gl/cm_strings.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Extras</string>
+    <string name="advanced_keyboard_settings_title">Configuración avanzada</string>
+    <string name="adb_enable_root">Depuración como root</string>
+    <string name="adb_enable_summary_root">Permitir executar a depuración de Android como root</string>
+    <string name="backup_transport_setting_label">Trocar provedor de copias de seguranza</string>
+    <string name="backup_transport_title">Seleccionar provedor de copias de seguranza</string>
+    <string name="berry_black_theme_title">Negro puro</string>
+    <string name="berry_black_theme_summary">Fondo negro puro para o tema escuro</string>
+    <string name="lineagelicense_title">Licenza de LineageOS</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Está a <xliff:g id="step_count">%1$d</xliff:g> paso de activar a configuración de desenvolvemento.</item>
+        <item quantity="other">Está a <xliff:g id="step_count">%1$d</xliff:g> pasos de activar a configuración de desenvolvemento.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Activou a configuración de desenvolvemento!</string>
+    <string name="show_dev_already_cm">Non fai falla, a configuración de desenvolvemento xa están activa.</string>
+    <string name="peak_refresh_rate_summary_custom">Incrementa automaticamente a frecuencia de actualización de 60 a %1$d Hz en determinados tipos de contido. Aumenta o uso da batería.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Tocar para suspender</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Duplo toque na barra de estado ou na pantalla de bloqueo para apagar a pantalla</string>
+    <string name="heads_up_notifications_enabled_title">Notificacións emerxentes</string>
+    <string name="heads_up_notifications_enabled_summary">Amosar notificacions de prioridad nunha pequena xanela flotante</string>
+    <string name="high_touch_sensitivity_title">Alta sensibilidade</string>
+    <string name="high_touch_sensitivity_summary">Aumentar a sensibilidade da pantalla para poder utilizalo con luvas</string>
+    <string name="tethering_allow_vpn_upstreams_title">Permitir aos clientes usar VPNs</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Permite aos clientes do punto de acceso usar as conexións VPN deste dispositivo como conexión principal</string>
+    <string name="increasing_ring_volume_option_title">Aumentando o volume de chamada</string>
+    <string name="increasing_ring_min_volume_title">Volume inicial</string>
+    <string name="increasing_ring_ramp_up_time_title">Intervalo de aumento</string>
+    <string name="lockscreen_media_art_title">Amosar a portada do álbum</string>
+    <string name="lock_settings_picker_pattern_size_message">Escolle un tamaño para o patrón</string>
+    <string name="lockpattern_settings_enable_error_path_title">Mostrar erro do padrón</string>
+    <string name="lockpattern_settings_enable_dots_title">Mostrar puntos do padrón</string>
+    <string name="max_refresh_rate_title">Taxa de actualización máxima</string>
+    <string name="min_refresh_rate_title">Taxa mínima de actualización </string>
+    <string name="show_navbar_hint_title">Suxerencia de navegación</string>
+    <string name="show_navbar_hint_summary">Amosar barra de suxestións de navegación na parte inferior da pantalla</string>
+    <string name="app_notification_sound_timeout_title">Tempo mínimo entre os sons das notificacións</string>
+    <string name="app_notification_sound_timeout_summary_template">Permitir os sons ou vibración non máis dunha vez cada <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Sen restrición</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 segundos</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 segundos</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minuto</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minutos</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minutos</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minutos</string>
+    <string name="auto_brightness_one_shot_title">Brillo automático ao encender a pantalla</string>
+    <string name="auto_brightness_one_shot_summary">O axuste do brillo ocorrerá só no momento en que a pantalla for encendida</string>
+    <string name="data_usage_app_restrict_all">Permitir acceso á rede</string>
+    <string name="data_usage_app_restrict_all_summary">Habilitar uso da rede</string>
+    <string name="data_usage_app_restrict_mobile">Datos móbiles</string>
+    <string name="data_usage_app_restrict_mobile_summary">Activar o uso dos datos móbiles</string>
+    <string name="data_usage_app_restrict_vpn">Datos VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Activar o uso de datos por VPN</string>
+    <string name="data_usage_app_restrict_wifi">Datos Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Activar o uso dos datos Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">Disposición aleatoria</string>
+    <string name="unlock_scramble_pin_layout_summary">Cambiar a disposición dos números do PIN para desbloquear o dispositivo</string>
+    <string name="proximity_wake_title">Previr acender de forma accidental</string>
+    <string name="proximity_wake_summary">Comprobar o sensor de proximidade antes de acender a pantalla</string>
+    <string name="touchscreen_gesture_settings_title">Xestos na pantalla táctil</string>
+    <string name="touchscreen_gesture_settings_summary">Realizar varios xestos na pantalla para accións rápidas</string>
+    <string name="touchscreen_hovering_title">Pantalla táctil deslizante</string>
+    <string name="touchscreen_hovering_summary">Permítelle utilizar o dedo coma un rato ao deslizalo en navegadores web, escritorios remotos, etc.</string>
+    <string name="wake_when_plugged_or_unplugged_title">Acender ao enchufar</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Acende a pantalla ao contectarse e desconectarse dunha fonte de enerxía</string>
+    <string name="fast_charging_title">Carga rápida</string>
+    <string name="fast_charging_summary">Desactivar para reducir a calor producida polo dispositivo durante a súa carga ou para aumentar a vida útil da batería</string>
+</resources>
diff --git a/res/values-gu/cm_strings.xml b/res/values-gu/cm_strings.xml
new file mode 100644
index 0000000..41d2612
--- /dev/null
+++ b/res/values-gu/cm_strings.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">LineageOS lકાયદાકીય</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">હવે તમે ડેવેલપમેન્ટ સેટિંગ્સ સક્ષમ કરવાથી <xliff:g id="step_count">%1$d</xliff:g> પગલા દૂર છો.</item>
+        <item quantity="other">હવે તમે ડેવેલપમેન્ટ સેટિંગ્સ સક્ષમ કરવાથી <xliff:g id="step_count">%1$d</xliff:g> પગલાં દૂર છો.</item>
+    </plurals>
+    <string name="show_dev_on_cm">તમે ડેવેલપમેન્ટ સેટિંગ્સ સક્ષમ કર્યું!</string>
+    <string name="show_dev_already_cm">જરૂર નથી, તમે ડેવેલપમેન્ટ સેટિંગ્સ સક્ષમ કરી ચુક્યા છો.</string>
+    <string name="peak_refresh_rate_summary_custom">અમુક કન્ટેન્ટ માટે રિફ્રેશ થવાનો રેટ ઑટોમૅટિક રીતે 60થી વધારીને %1$d Hz કરે છે. બૅટરીનો વપરાશ વધારે છે.</string>
+    <string name="high_touch_sensitivity_title">ઉચ્ચ ટચ સંવેદનશીલતા</string>
+    <string name="high_touch_sensitivity_summary">ટચસ્ક્રીન સંવેદનશીલતા વધારો જેથી હાથમોજા પહેરીને તેનો ઉપયોગ થઈ શકે</string>
+    <string name="increasing_ring_volume_option_title">રિંગ વૉલ્યુમ વધારી રહ્યા છે</string>
+    <string name="increasing_ring_min_volume_title">શરૂઆતનું વૉલ્યુમ</string>
+    <string name="increasing_ring_ramp_up_time_title">રૅમ્પ-અપ સમય</string>
+    <string name="lockpattern_settings_enable_error_path_title">પૅટર્ન ખામી દર્શાવો</string>
+    <string name="lockpattern_settings_enable_dots_title">પૅટર્ન ડોટ્સ દર્શાવો</string>
+    <string name="unlock_scramble_pin_layout_title">લેઆઉટ આમતેમ કરો</string>
+    <string name="unlock_scramble_pin_layout_summary">ડિવાઇસ અનલૉક કરો ત્યારે PIN લેઆઉટ આમતેમ કરો</string>
+    <string name="proximity_wake_title">આકસ્મિક વેક અપ રોકો</string>
+    <string name="touchscreen_hovering_title">ટચસ્ક્રીન ભમવું</string>
+    <string name="touchscreen_hovering_summary">વેબ બ્રાઉઝરો, રિમોટ ડેસ્કટૉપ વગેરેમાં માઉસ હોય તે પ્રમાણે તમને સ્ક્રીન પર ભમતાં રહેવાની છૂટ આપે છે</string>
+    <string name="wake_when_plugged_or_unplugged_title">વેક ઑન પ્લગ</string>
+    <string name="wake_when_plugged_or_unplugged_summary">પાવર સ્ત્રોત જોડો અથવા પરવાનગીું પાડો ત્યારે સ્ક્રીન ચાલુ કરો</string>
+</resources>
diff --git a/res/values-hi/cm_strings.xml b/res/values-hi/cm_strings.xml
new file mode 100644
index 0000000..6e1d948
--- /dev/null
+++ b/res/values-hi/cm_strings.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">सियानोजेनमोड क़ानूनी</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">विकास सेटिंग को सक्षम करने के लिए अब सिर्फ़ <xliff:g id="step_count">%1$d</xliff:g> चरण बाकी है।</item>
+        <item quantity="other">विकास सेटिंग को सक्षम करने के लिए अब सिर्फ़ <xliff:g id="step_count">%1$d</xliff:g> चरण बाकी हैं।</item>
+    </plurals>
+    <string name="show_dev_on_cm">आपने विकास सेटिंग को सक्षम किया है!</string>
+    <string name="show_dev_already_cm">इसकी ज़रूरत नहीं है, आपने पहले ही विकास सेटिंग को सक्षम कर दिया है।</string>
+    <string name="peak_refresh_rate_summary_custom">कुछ कॉन्टेंट के लिए, यह अपने-आप ही रीफ़्रेश दर को 60 हर्ट्ज़ से बढ़ाकर %1$d हर्ट्ज़ कर देता है. इसमें बैटरी ज़्यादा खर्च होती है.</string>
+    <string name="high_touch_sensitivity_title">उच्च स्पर्श संवेदनशीलता</string>
+    <string name="high_touch_sensitivity_summary">स्पर्श स्क्रीन संवेदनशीलता को बढ़ाएँ ताकि दस्ताने पहने हुए हाथ से उसका उपयोग किया जा सके</string>
+    <string name="increasing_ring_volume_option_title">बढ़ता हुआ रिंगटोन वोल्यूम</string>
+    <string name="increasing_ring_min_volume_title">वोल्यूम को शुरू करें</string>
+    <string name="increasing_ring_ramp_up_time_title">समय को बढ़ाएँ</string>
+    <string name="lockpattern_settings_enable_error_path_title">पैटर्न त्रुटि दिखाएँ</string>
+    <string name="lockpattern_settings_enable_dots_title">पैटर्न बिंदु दिखाएँ</string>
+    <string name="unlock_scramble_pin_layout_title">विन्यास को बेतरतीब करें</string>
+    <string name="unlock_scramble_pin_layout_summary">उपकरण को अनलॉक करते समय पिन विन्यास को बेतरतीब कर दें</string>
+    <string name="proximity_wake_title">ग़लती से जगाए जाने को रोकें</string>
+    <string name="touchscreen_hovering_title">स्पर्श स्क्रीन मँडराना</string>
+    <string name="touchscreen_hovering_summary">यह आपको वेब ब्राउसरों, दूरस्थ डेस्कटॉपों, आदि में स्क्रीन को माउस की तरह मँडराने देता है</string>
+    <string name="wake_when_plugged_or_unplugged_title">प्लग करने पर जागना</string>
+    <string name="wake_when_plugged_or_unplugged_summary">पावर स्रोत से कनेक्ट करते समय या उससे डिसकनेक्ट करते समय स्क्रीन को चालू करें</string>
+</resources>
diff --git a/res/values-hr/cm_strings.xml b/res/values-hr/cm_strings.xml
new file mode 100644
index 0000000..a0f0d19
--- /dev/null
+++ b/res/values-hr/cm_strings.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Dodatno</string>
+    <string name="advanced_keyboard_settings_title">Napredne postavke</string>
+    <string name="lineagelicense_title">LineageOS licenca</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Sada ste <xliff:g id="step_count">%1$d</xliff:g> korak od omogućavanja razvojnih postavki.</item>
+        <item quantity="few">Sada ste <xliff:g id="step_count">%1$d</xliff:g> koraka od omogućavanja razvojnih postavki.</item>
+        <item quantity="other">Sada ste <xliff:g id="step_count">%1$d</xliff:g> koraka od omogućavanja razvojnih postavki.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Omogućili ste razvojne postavke!</string>
+    <string name="show_dev_already_cm">Nema potrebe, već ste omogućili postavke za razvoj.</string>
+    <string name="peak_refresh_rate_summary_custom">Automatski povećava učestalost osvježavanja sa 60 na %1$d Hz za određeni sadržaj. Povećava potrošnju baterije.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Dodir za spavanje</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Dvaput dodirnite traku statusa na zaključanom zaslonu za isključivanje zaslona</string>
+    <string name="heads_up_notifications_enabled_title">Plutajuće obavijesti</string>
+    <string name="heads_up_notifications_enabled_summary">Prikazuje prioritetne obavijesti u malim plutajućim prozorima</string>
+    <string name="high_touch_sensitivity_title">Visoka osjetljivost na dodir</string>
+    <string name="high_touch_sensitivity_summary">Povećaj osjetljivost na dodir tako da se mogu koristiti rukavice</string>
+    <string name="increasing_ring_volume_option_title">Pojačavanje glasnoće zvona</string>
+    <string name="increasing_ring_min_volume_title">Početna jačina zvuka</string>
+    <string name="increasing_ring_ramp_up_time_title">Vrijeme podizanja</string>
+    <string name="lockscreen_media_art_title">Prikaži omot medija</string>
+    <string name="lock_settings_picker_pattern_size_message">Odaberite veličinu uzorka</string>
+    <string name="lockpattern_settings_enable_error_path_title">Pokaži grešku uzorka</string>
+    <string name="lockpattern_settings_enable_dots_title">Pokaži točke uzorka</string>
+    <string name="min_refresh_rate_title">Minimalna brzina osvježavanja</string>
+    <string name="app_notification_sound_timeout_title">Minimalno vrijeme između zvukova obavijesti</string>
+    <string name="app_notification_sound_timeout_summary_template">Dopusti zvukove ili vibraciju ne više od jednom svakih <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Bez ograničenja</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 sekundi</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 sekundi</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minuta</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minuta</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minuta</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minuta</string>
+    <string name="data_usage_app_restrict_mobile">Mobilni podaci</string>
+    <string name="data_usage_app_restrict_mobile_summary">Omogući upotrebu mobilnih podataka</string>
+    <string name="unlock_scramble_pin_layout_title">Nasumičan raspored</string>
+    <string name="unlock_scramble_pin_layout_summary">Nasumičan PIN raspored pri otključavanju uređaja</string>
+    <string name="proximity_wake_title">Sprječavanje slučajnog buđenja</string>
+    <string name="proximity_wake_summary">Provjera senzora blizine prije buđenja zaslona</string>
+    <string name="touchscreen_gesture_settings_title">Geste zaslona</string>
+    <string name="touchscreen_gesture_settings_summary">Razne geste zaslona za brze radnje</string>
+    <string name="touchscreen_hovering_title">Lebdenje zaslonom</string>
+    <string name="touchscreen_hovering_summary">Dopušta vam da lebdite zaslonom kao miš u web pretraživaču, udaljenom desktopu, itd</string>
+    <string name="wake_when_plugged_or_unplugged_title">Buđenje pri priključivanju</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Uključite zaslon prilikom spajanja ili odspajanja izvora napajanja</string>
+    <string name="fast_charging_title">Brzo punjenje</string>
+    <string name="fast_charging_summary">Onemogućite kako biste smanjili toplinu koju uređaj proizvodi tijekom punjenja ili produljili vijek trajanja baterije</string>
+</resources>
diff --git a/res/values-hu/cm_strings.xml b/res/values-hu/cm_strings.xml
new file mode 100644
index 0000000..b8429c2
--- /dev/null
+++ b/res/values-hu/cm_strings.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Extrák</string>
+    <string name="advanced_keyboard_settings_title">Haladó beállítások</string>
+    <string name="adb_enable_root">Rootolt hibakeresés</string>
+    <string name="adb_enable_summary_root">Rootolva engedélyezi az Android hibakeresését</string>
+    <string name="backup_transport_setting_label">Mentési-szolgáltatás megváltoztatása</string>
+    <string name="backup_transport_title">Mentési-szolgáltatás kiválasztása</string>
+    <string name="berry_black_theme_title">Valódi fekete</string>
+    <string name="berry_black_theme_summary">Egy igazán fekete háttér a fekete témákhoz</string>
+    <string name="lineagelicense_title">LineageOS jogi nyilatkozat</string>
+    <string name="device_info_protected_single_press">Érintés után láthatja az infókat</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Ön <xliff:g id="step_count">%1$d</xliff:g> lépésre van attól, hogy engedélyezze a fejlesztői beállításokat.</item>
+        <item quantity="other">Ön <xliff:g id="step_count">%1$d</xliff:g> lépésre van attól, hogy engedélyezze a fejlesztői beállításokat.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Sikeresen engedélyezte a fejlesztői beállításokat!</string>
+    <string name="show_dev_already_cm">Már korábban engedélyezte a fejlesztői beállításokat.</string>
+    <string name="peak_refresh_rate_summary_custom">Néhány tartalomnál automatikusan megemeli a frissítés gyakoriságát 60-ról %1$d Hz-re. Növeli az akkumulátorhasználatot.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Dupla érintésre alvómód</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Az állapotsor vagy a záróképernyő dupla érintésére kikapcsol a képernyő</string>
+    <string name="high_touch_polling_rate_title">Magas értékű képernyő-lekérdezés</string>
+    <string name="high_touch_polling_rate_summary">Az érintőképernyő lekérdezési értékének növelése</string>
+    <string name="heads_up_notifications_enabled_title">Lebegő értesítés</string>
+    <string name="heads_up_notifications_enabled_summary">Kiemelt értesítések megjelenítése egy kis lebegő ablakban</string>
+    <string name="high_touch_sensitivity_title">Magas érintési érzékenység</string>
+    <string name="high_touch_sensitivity_summary">Érintőképernyő érzékenységének növelése, így kesztyű viselése esetén is használható</string>
+    <string name="tethering_allow_vpn_upstreams_title">Kliensek VPN-használatának engedélyezése</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Engedélyezze a hotspot-klienseknek, hogy a készülék VPN-kapcsolatait felfelé csatlakoztathassák</string>
+    <string name="increasing_ring_volume_option_title">Emelkedő csengőhang</string>
+    <string name="increasing_ring_min_volume_title">Kezdeti hangerő</string>
+    <string name="increasing_ring_ramp_up_time_title">Felfutási idő</string>
+    <string name="lockscreen_media_art_title">Média borítójának megjelenítése</string>
+    <string name="lock_settings_picker_pattern_size_message">Válassza ki a minta méretét</string>
+    <string name="lockpattern_settings_enable_error_path_title">Hibás minta megjelenítése</string>
+    <string name="lockpattern_settings_enable_dots_title">Feloldási pontok megjelenítése</string>
+    <string name="max_refresh_rate_title">Képernyőfrissítés-emelés</string>
+    <string name="min_refresh_rate_title">Minimális képernyőfrissítés</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Táblagépe előlapján találhatja meg az ujjlenyomat-olvasót.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Készüléke előlapján találhatja meg az ujjlenyomat-olvasót.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Telefonja előlapján találhatja meg az ujjlenyomat-olvasót.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Táblagépe hátlapján találhatja meg az ujjlenyomat-olvasót.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Készüléke hátlapján találhatja meg az ujjlenyomat-olvasót.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Telefonja hátlapján találhatja meg az ujjlenyomat-olvasót.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Táblagépe oldalán találhatja meg az ujjlenyomat-olvasót.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Készüléke oldalán találhatja meg az ujjlenyomat-olvasót.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Telefonja oldalán találhatja meg az ujjlenyomat-olvasót.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Érintse meg a szenzort készüléke előlapján.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Érintse meg a szenzort készüléke előlapján.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Érintse meg a szenzort telefonja előlapján.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Érintse meg a szenzort készüléke hátlapján.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Érintse meg a szenzort készüléke hátlapján.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Érintse meg a szenzort telefonja hátlapján.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Érintse meg a szenzort készüléke oldalán.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Érintse meg a szenzort készüléke oldalán.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Érintse meg a szenzort telefonja oldalán.</string>
+    <string name="show_navbar_hint_title">Navigációs tipp</string>
+    <string name="show_navbar_hint_summary">A navigáció ajánlásait a képernyő alján jeleníti meg</string>
+    <string name="app_notification_sound_timeout_title">Értesítési hangok közötti minimum időtartam</string>
+    <string name="app_notification_sound_timeout_summary_template">Hang vagy rezgés ismétlődésének engedélyezése: <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Nincs korlátozás</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 másodperc</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 másodperc</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 perc</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 perc</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 perc</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 perc</string>
+    <string name="auto_brightness_one_shot_title">Egylövéses automata-fényerő</string>
+    <string name="auto_brightness_one_shot_summary">A fényerőbeállítás csak a képernyő bekapcsolásának pillanatában történik</string>
+    <string name="data_usage_app_restrict_all">Hálózat-hozzáférés engedélyezése</string>
+    <string name="data_usage_app_restrict_all_summary">Lehetővé teszi a hálózathasználatot</string>
+    <string name="data_usage_app_restrict_mobile">Mobiladat</string>
+    <string name="data_usage_app_restrict_mobile_summary">Mobiladat-használat engedélyezés</string>
+    <string name="data_usage_app_restrict_vpn">VPN-adatok</string>
+    <string name="data_usage_app_restrict_vpn_summary">A VPN-adathasználat engedélyezése</string>
+    <string name="data_usage_app_restrict_wifi">Wi-Fi-kapcsolat</string>
+    <string name="data_usage_app_restrict_wifi_summary">Wi\u2011Fi-adathasználat engedélyezése</string>
+    <string name="unlock_scramble_pin_layout_title">Szoros elrendezés</string>
+    <string name="unlock_scramble_pin_layout_summary">PIN szoros elrendezése az eszköz feloldásakor</string>
+    <string name="proximity_wake_title">Véletlen ébresztés megakadályozása</string>
+    <string name="proximity_wake_summary">Közelségérzékelő ellenőrzése a képernyő felébresztése előtt</string>
+    <string name="touchscreen_gesture_settings_title">Érintőképernyő-mozdulatvezérlés</string>
+    <string name="touchscreen_gesture_settings_summary">Különböző képernyő-mozdulatvezérlések végrehajtása a gyorsműveletekhez</string>
+    <string name="touchscreen_hovering_title">Lebegő érintés</string>
+    <string name="touchscreen_hovering_summary">Engedélyezi a lebegéssel való vezérlést, mint egy egérrel a böngészőknél, távoli asztaloknál, stb.</string>
+    <string name="wake_when_plugged_or_unplugged_title">Felébredés töltő csatlakoztatásakor</string>
+    <string name="wake_when_plugged_or_unplugged_summary">A képernyő bekapcsolása a töltő csatlakoztatása/eltávolítása után</string>
+    <string name="fast_charging_title">Gyorstöltés</string>
+    <string name="fast_charging_summary">Ne engedélyezze, ha csökkentené a készülék töltés közbeni melegedését, vagy meghosszabbítaná az akkumulátor élettartamát</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Az ujjlenyomat-olvasó hosszannyomásával feloldható a telefon</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Az ujjlenyomat-olvasó hosszannyomásával feloldható a táblagép</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Az ujjlenyomat-olvasó hosszannyomásával feloldható a készülék</string>
+    <string name="ambient_display_screen_off_udfps_summary">A képernyő felébresztéséhez és feloldásához nyomja meg hosszan a képernyőbe épitett ujjlenyomat-olvasót.</string>
+    <string name="storage_warning_internal">Figyelmeztetés: Előfordulhat, hogy ez a lehetőség nem működik megfelelően, vagy adatvesztéshez vezethet, ezért nem javasolt!</string>
+</resources>
diff --git a/res/values-hy/cm_strings.xml b/res/values-hy/cm_strings.xml
new file mode 100644
index 0000000..84b3363
--- /dev/null
+++ b/res/values-hy/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">Որոշակի բովանդակության համար թարմացման հաճախականությունը 60-ից կդառնա %1$d Հց։ Երկարացնում է մարտկոցի օգտագործման ժամանակը։</string>
+</resources>
diff --git a/res/values-in/cm_strings.xml b/res/values-in/cm_strings.xml
new file mode 100644
index 0000000..3593fbd
--- /dev/null
+++ b/res/values-in/cm_strings.xml
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Tambahan</string>
+    <string name="advanced_keyboard_settings_title">Setelan lanjutan</string>
+    <string name="backup_transport_setting_label">Ubah penyedia cadangan</string>
+    <string name="backup_transport_title">Pilih penyedia cadangan</string>
+    <string name="berry_black_theme_title">Hitam</string>
+    <string name="berry_black_theme_summary">Latar belakang hitam untuk tema gelap</string>
+    <string name="lineagelicense_title">Hukum LineageOS</string>
+    <string name="device_info_protected_single_press">Ketuk untuk menampilkan info</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="other"><xliff:g id="step_count">%1$d</xliff:g> langkah lagi untuk mengaktifkan opsi pengembang.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Anda adalah seorang pengembang!</string>
+    <string name="show_dev_already_cm">Tidak perlu, Anda telah mengaktifkan opsi pengembang.</string>
+    <string name="peak_refresh_rate_summary_custom">Otomatis meningkatkan rasio pembaruan dari 60 menjadi %1$d Hz untuk beberapa konten. Meningkatkan penggunaan baterai.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Ketuk untuk tidur</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Ketukan ganda pada bilah status atau layar kunci untuk mematikan layar</string>
+    <string name="heads_up_notifications_enabled_title">Notifikasi mengambang</string>
+    <string name="heads_up_notifications_enabled_summary">Menampilkan pemberitahuan prioritas dalam jendela kecil yang mengambang</string>
+    <string name="high_touch_sensitivity_title">Kepekaan sentuh tinggi</string>
+    <string name="high_touch_sensitivity_summary">Tingkatkan kepekaan layar sentuh sehingga dapat digunakan saat mengenakan sarung tangan</string>
+    <string name="tethering_allow_vpn_upstreams_title">Izinkan klien menggunakan VPN</string>
+    <string name="increasing_ring_volume_option_title">Meningkatkan volume dering</string>
+    <string name="increasing_ring_min_volume_title">Volume awal</string>
+    <string name="increasing_ring_ramp_up_time_title">Waktu penguatan</string>
+    <string name="lockscreen_media_art_title">Tampilkan sampul media</string>
+    <string name="lock_settings_picker_pattern_size_message">Pilih ukuran pola</string>
+    <string name="lockpattern_settings_enable_error_path_title">Tunjukkan galat pola</string>
+    <string name="lockpattern_settings_enable_dots_title">Tunjukkan titik-titik pola</string>
+    <string name="min_refresh_rate_title">Kecepatan refresh minimum</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Temukan sensor sidik jari di bagian depan tablet Anda.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Temukan sensor sidik jari di bagian depan perangkat Anda</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Temukan lokasi sensor sidik jari di bagian depan telepon Anda.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Temukan sensor sidik jari di bagian belakang tablet Anda.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Temukan sensor sidik jari di bagian belakang perangkat Anda.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Temukan lokasi sensor sidik jari di bagian belakang telepon Anda.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Temukan sensor sidik jari di bagian samping tablet Anda.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Temukan sensor sidik jari di bagian samping perangkat Anda.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Temukan lokasi sensor sidik jari di bagian samping telepon Anda.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Sentuh sensor di bagian depan tablet Anda.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Sentuh sensor di bagian depan perangkat Anda.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Sentuh sensor di bagian depan ponsel Anda.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Sentuh sensor di bagian belakang tablet Anda.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Sentuh sensor di bagian belakang perangkat Anda.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Sentuh sensor di bagian belakang ponsel Anda.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Sentuh sensor di bagian samping tablet Anda.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Sentuh sensor di bagian samping perangkat Anda.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Sentuh sensor di bagian samping ponsel Anda.</string>
+    <string name="app_notification_sound_timeout_title">Waktu minimum antara suara pemberitahuan</string>
+    <string name="app_notification_sound_timeout_summary_template">Memungkinkan suara atau getaran tidak lebih dari sekali setiap <xliff:g id="duration">%1$s </xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Tidak ada pembatasan</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 detik</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 detik</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 menit</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 menit</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 menit</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 menit</string>
+    <string name="auto_brightness_one_shot_title">Kecerahan otomatis satu bidikan</string>
+    <string name="auto_brightness_one_shot_summary">Penyesuaian kecerahan hanya akan terjadi pada saat layar dihidupkan</string>
+    <string name="data_usage_app_restrict_all">Izinkan akses jaringan</string>
+    <string name="data_usage_app_restrict_all_summary">Aktifkan penggunaan jaringan</string>
+    <string name="data_usage_app_restrict_mobile">Data seluler</string>
+    <string name="data_usage_app_restrict_mobile_summary">Aktifkan penggunaan data seluler</string>
+    <string name="data_usage_app_restrict_vpn">Data VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Aktifkan penggunaan data VPN</string>
+    <string name="data_usage_app_restrict_wifi">Data Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Aktifkan penggunaan data Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">Tata letak acak</string>
+    <string name="unlock_scramble_pin_layout_summary">Acak tata letak PIN saat membuka perangkat</string>
+    <string name="proximity_wake_title">Mencegah bangun yang tidak disengaja</string>
+    <string name="proximity_wake_summary">Periksa sensor proximity sebelum membangunkan layar</string>
+    <string name="touchscreen_gesture_settings_title">Gerakan layar sentuh</string>
+    <string name="touchscreen_gesture_settings_summary">Melakukan berbagai gerakan layar sentuh untuk tindakan cepat</string>
+    <string name="touchscreen_hovering_title">Ambang jari di layar sentuh</string>
+    <string name="touchscreen_hovering_summary">Mengizinkan Anda mengambang jari di atas layar seperti menggunakan tetikus dalam peramban web, destop jarak jauh, dll</string>
+    <string name="wake_when_plugged_or_unplugged_title">Bangun saat pengisi daya di pasang</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Aktifkan layar ketika menghubungkan atau melepaskan sumber daya</string>
+    <string name="fast_charging_title">Pengisian daya cepat</string>
+    <string name="fast_charging_summary">Nonaktifkan untuk mengurangi panas yang dihasilkan oleh perangkat saat mengisi daya atau untuk memperpanjang masa pakai baterai</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Tekan lama pada sensor sidik jari untuk membuka kunci ponsel</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Tekan lama pada sensor sidik jari untuk membuka kunci tablet</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Tekan lama pada sensor sidik jari untuk membuka kunci perangkat</string>
+    <string name="ambient_display_screen_off_udfps_summary">Untuk mengaktifkan layar dan membuka kunci, tekan lama sensor sidik jari di bawah layar.</string>
+</resources>
diff --git a/res/values-is/cm_strings.xml b/res/values-is/cm_strings.xml
new file mode 100644
index 0000000..5f18398
--- /dev/null
+++ b/res/values-is/cm_strings.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Auka</string>
+    <string name="advanced_keyboard_settings_title">Ítarlegar stillingar</string>
+    <string name="adb_enable_root">Aflúsun í rótarham</string>
+    <string name="adb_enable_summary_root">Leyfa að villuleit í Android sé keyrð sem kerfisstjóri/root</string>
+    <string name="backup_transport_setting_label">Breyta öryggisafritunarveitu</string>
+    <string name="backup_transport_title">Veldu öryggisafritunarveitu</string>
+    <string name="berry_black_theme_title">Hreint svart</string>
+    <string name="berry_black_theme_summary">Hreinn svartur bakgrunnur í dökku þema</string>
+    <string name="lineagelicense_title">Lagalegir fyrirvarar LineageOS</string>
+    <string name="device_info_protected_single_press">Ýttu til þess að birta upplýsingar</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Þú ert núna <xliff:g id="step_count">%1$d</xliff:g> skref frá því að virkja þróunarstillingar.</item>
+        <item quantity="other">Þú ert núna <xliff:g id="step_count">%1$d</xliff:g> skrefum frá því að virkja þróunarstillingar.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Þú hefur virkjað þróunarstillingar!</string>
+    <string name="show_dev_already_cm">Ekki nauðsynlegt, þú hefur þegar virkjað þróunarstillingar.</string>
+    <string name="peak_refresh_rate_summary_custom">Breytir endurnýjunarhraða sjálfkrafa úr 60 í %1$d Hz fyrir sumt efni. Eykur rafhlöðunotkun.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Ýttu til að svæfa</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Tvíbankaðu á stöðustikuna eða læsiskjáinn til að slökkva á skjánum</string>
+    <string name="high_touch_polling_rate_title">Mikil tíðni snertinæmni</string>
+    <string name="high_touch_polling_rate_summary">Auka tíðni á snertinæmni</string>
+    <string name="heads_up_notifications_enabled_title">Áminningar</string>
+    <string name="heads_up_notifications_enabled_summary">Birta forgangstilkynningar í litlum fljótandi glugga</string>
+    <string name="high_touch_sensitivity_title">Mikil snertinæmni</string>
+    <string name="high_touch_sensitivity_summary">Auka næmni snertiskjás svo hægt sé að nota hann íklæddur vettlingum</string>
+    <string name="tethering_allow_vpn_upstreams_title">Leyfa forritum að nota VPN-tengingar</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Leyfa tengipunktsforritum að nota VPN-tengingar tækisins til að tengjast út (upstream)</string>
+    <string name="increasing_ring_volume_option_title">Eyk hljóðstyrk hringingar</string>
+    <string name="increasing_ring_min_volume_title">Upphafshljóðstyrkur</string>
+    <string name="increasing_ring_ramp_up_time_title">Stigmögnunartími</string>
+    <string name="lockscreen_media_art_title">Sýna umslagsmyndir margmiðlunarefnis</string>
+    <string name="lock_settings_picker_pattern_size_message">Veldu stærð mynsturs</string>
+    <string name="lockpattern_settings_enable_error_path_title">Birta villu í mynstri</string>
+    <string name="lockpattern_settings_enable_dots_title">Sýna mynsturpunkta</string>
+    <string name="max_refresh_rate_title">Mesta uppfærslutíðni</string>
+    <string name="min_refresh_rate_title">Lágmarks uppfærslutíðni</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Finndu fingrafaraskannann framan á spjaldtölvunni þinni.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Finndu fingrafaraskannann framan á tækinu þínu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Finndu fingrafaraskannann framan á símanum þínum.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Finndu fingrafaraskannann aftan á spjaldtölvunni þinni.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Finndu fingrafaraskannann aftan á tækinu þínu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Finndu fingrafaraskannann aftan á símanum þínum.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Finndu fingrafaraskannann á hlið spjaldtölvunnar þinnar.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Finndu fingrafaraskannann á hlið tækisins þíns.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Finndu fingrafaraskannann á hlið símans þíns.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Snertu lesarann framan á spjaldtölvunni.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Snertu lesarann framan á tækinu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Snertu lesarann framan á símanum.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Snertu lesarann aftan á spjaldtölvunni.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Snertu lesarann aftan á tækinu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Snertu lesarann aftan á símanum.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Snertu lesarann á hlið spjaldtölvunnar.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Snertu lesarann á hlið tækisins.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Snertu lesarann á hlið símans.</string>
+    <string name="show_navbar_hint_title">Ábending við flakk</string>
+    <string name="show_navbar_hint_summary">Birta stiku með ábendingum um flakk neðst á skjánum</string>
+    <string name="app_notification_sound_timeout_title">Lágmarkstími milli tilkynningahljóða</string>
+    <string name="app_notification_sound_timeout_summary_template">Leyfa hljóð eða titring ekki oftar en einu sinni á <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Engar takmarkanir</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 sekúndur</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 sekúndur</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 mínúta</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 mínútur</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 mínútur</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 mínútur</string>
+    <string name="data_usage_app_restrict_all">Leyfa aðgang að neti</string>
+    <string name="data_usage_app_restrict_all_summary">Virkja notkun nets</string>
+    <string name="data_usage_app_restrict_mobile">Farsímagögn</string>
+    <string name="data_usage_app_restrict_mobile_summary">Virkja notkun farsímagagna</string>
+    <string name="data_usage_app_restrict_vpn">VPN-gögn</string>
+    <string name="data_usage_app_restrict_vpn_summary">Virkja notkun VPN-gagna</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi gögn</string>
+    <string name="data_usage_app_restrict_wifi_summary">Virkja notkun á Wi\u2011Fi gögnum</string>
+    <string name="unlock_scramble_pin_layout_title">Rugla framsetningu</string>
+    <string name="unlock_scramble_pin_layout_summary">Rugla PIN-framsetningu þegar tæki er aflæst</string>
+    <string name="proximity_wake_title">Koma í veg fyrir slysalega vöknun</string>
+    <string name="proximity_wake_summary">Athuga nálægðarskynjara áður en skjár er vakinn</string>
+    <string name="touchscreen_gesture_settings_title">Bendingar á snertiskjá</string>
+    <string name="touchscreen_gesture_settings_summary">Framkvæma ýmsar bendingar á snertiskjá fyrir flýtiaðgerðir</string>
+    <string name="touchscreen_hovering_title">Svif yfir snertiskjá</string>
+    <string name="touchscreen_hovering_summary">Gerir þér kleift að láta bendil svífa eins og með mús yfir skjánum í vöfrum, fjartengdum skjáborðum, o.s.frv.</string>
+    <string name="wake_when_plugged_or_unplugged_title">Vakning við tengingu</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Kveikja á skjá þegar afltenging er sett í samband eða aftengd</string>
+    <string name="fast_charging_title">Hraðhleðsla</string>
+    <string name="fast_charging_summary">Gera þetta óvirkt til að minnka hitann sem tækið framleiðir við hleðslu eða
+ til að lengja líftíma rafhlöðunnar</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Ýttu lengi á fingrafaraskanna til að taka símann úr lás</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Ýttu lengi á fingrafaraskanna til að taka spjaldtölvuna úr lás</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Ýttu lengi á fingrafaraskanna til að taka tækið úr lás</string>
+    <string name="ambient_display_screen_off_udfps_summary">Til að vekja skjáinn og aflæsa, skaltu ýta lengi á fingrafaraskannann undir skjánum.</string>
+</resources>
diff --git a/res/values-it/cm_strings.xml b/res/values-it/cm_strings.xml
new file mode 100644
index 0000000..d3578b1
--- /dev/null
+++ b/res/values-it/cm_strings.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Extra</string>
+    <string name="advanced_keyboard_settings_title">Impostazioni avanzate</string>
+    <string name="adb_enable_root">Debug con accesso root</string>
+    <string name="adb_enable_summary_root">Consenti l\'utilizzo di funzioni di debug con permessi root</string>
+    <string name="backup_transport_setting_label">Cambia gestore di backup</string>
+    <string name="backup_transport_title">Seleziona un gestore di backup</string>
+    <string name="berry_black_theme_title">Nero puro</string>
+    <string name="berry_black_theme_summary">Tema scuro con sfondo nero</string>
+    <string name="lineagelicense_title">Note legali LineageOS</string>
+    <string name="device_info_protected_single_press">Tocca per mostrare l\'informazione</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Ora sei ad <xliff:g id="step_count">%1$d</xliff:g> passo dall\'attivare le impostazioni di sviluppo.</item>
+        <item quantity="other">Ora sei a <xliff:g id="step_count">%1$d</xliff:g> passi dall\'attivare le impostazioni di sviluppo.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Hai attivato le impostazioni di sviluppo!</string>
+    <string name="show_dev_already_cm">Non è necessario, hai già attivato le impostazioni di sviluppo.</string>
+    <string name="peak_refresh_rate_summary_custom">Aumenta automaticamente la frequenza di aggiornamento da 60 a %1$d Hz per alcuni contenuti. Aumenta l\'utilizzo della batteria.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Tocca per spegnere lo schermo</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Tocca due volte la barra di stato o la schermata di sblocco per spegnere lo schermo</string>
+    <string name="high_touch_polling_rate_title">Campionamento del touchscreen a frequenza elevata</string>
+    <string name="high_touch_polling_rate_summary">Aumenta la frequenza di campionamento del touchscreen</string>
+    <string name="heads_up_notifications_enabled_title">Heads-up</string>
+    <string name="heads_up_notifications_enabled_summary">Visualizza le notifiche prioritarie in una piccola finestra fluttuante</string>
+    <string name="high_touch_sensitivity_title">Tocco ad alta sensibilità</string>
+    <string name="high_touch_sensitivity_summary">Aumenta la sensibilità del touchscreen per l\'utilizzo con i guanti</string>
+    <string name="tethering_allow_vpn_upstreams_title">Consenti ai dispositivi connessi di utilizzare le VPN</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Consenti ai dispositivi connessi all\'hotspot di utilizzare le connessioni VPN di questo dispositivo</string>
+    <string name="increasing_ring_volume_option_title">Suoneria incrementale</string>
+    <string name="increasing_ring_min_volume_title">Volume iniziale</string>
+    <string name="increasing_ring_ramp_up_time_title">Tempo di aumento</string>
+    <string name="lockscreen_media_art_title">Mostra copertina album</string>
+    <string name="lock_settings_picker_pattern_size_message">Scegli la dimensione della sequenza</string>
+    <string name="lockpattern_settings_enable_error_path_title">Mostra sequenza errata</string>
+    <string name="lockpattern_settings_enable_dots_title">Mostra punti sequenza</string>
+    <string name="max_refresh_rate_title">Frequenza massima di aggiornamento</string>
+    <string name="min_refresh_rate_title">Frequenza di aggiornamento minima</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Individua il sensore d\'impronte digitali sulla parte anteriore del tuo tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Individua il sensore d\'impronte digitali sulla parte anteriore del tuo dispositivo.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Individua il sensore d\'impronte digitali sulla parte anteriore del tuo telefono.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Individua il sensore d\'impronte digitali sulla parte posteriore del tuo tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Individua il sensore d\'impronte digitali sulla parte posteriore del tuo dispositivo.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Individua il sensore d\'impronte digitali sulla parte posteriore del tuo telefono.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Individua il sensore d\'impronte digitali sulla parte laterale del tuo tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Individua il sensore d\'impronte digitali sulla parte laterale del tuo dispositivo.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Individua il sensore d\'impronte digitali sulla parte laterale del tuo telefono.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Tocca il sensore sulla parte anteriore del tuo tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Tocca il sensore sulla parte anteriore del tuo dispositivo.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Tocca il sensore sulla parte anteriore del tuo telefono.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Tocca il sensore sulla parte posteriore del tuo tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Tocca il sensore sulla parte posteriore del tuo dispositivo.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Tocca il sensore sulla parte posteriore del tuo telefono.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Tocca il sensore sulla parte laterale del tuo tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Tocca il sensore sulla parte laterale del tuo dispositivo.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Tocca il sensore sulla parte laterale del tuo telefono.</string>
+    <string name="show_navbar_hint_title">Indicatore navigazione</string>
+    <string name="show_navbar_hint_summary">Mostra l\'indicatore di navigazione in fondo allo schermo</string>
+    <string name="app_notification_sound_timeout_title">Tempo minimo tra suoni di notifica</string>
+    <string name="app_notification_sound_timeout_summary_template">Consenti suoni o vibrazioni non più di una volta ogni <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Nessuna restrizione</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 secondi</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 secondi</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minuto</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minuti</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minuti</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minuti</string>
+    <string name="auto_brightness_one_shot_title">Luminosità automatica singola </string>
+    <string name="auto_brightness_one_shot_summary">La regolazione della luminosità avverrà solo quando lo schermo viene acceso</string>
+    <string name="data_usage_app_restrict_all">Consenti accesso alla rete</string>
+    <string name="data_usage_app_restrict_all_summary">Abilita l\'utilizzo della rete</string>
+    <string name="data_usage_app_restrict_mobile">Dati mobili</string>
+    <string name="data_usage_app_restrict_mobile_summary">Abilita l\'utilizzo dei dati mobili</string>
+    <string name="data_usage_app_restrict_vpn">Dati VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Abilita utilizzo dati VPN</string>
+    <string name="data_usage_app_restrict_wifi">Dati Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Abilita l\'uso dei dati Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">Mescola disposizione</string>
+    <string name="unlock_scramble_pin_layout_summary">Mescola la disposizione del tastierino PIN per lo sblocco del dispositivo</string>
+    <string name="proximity_wake_title">Previeni risvegli accidentali</string>
+    <string name="proximity_wake_summary">Controlla il sensore di prossimità prima di accendere lo schermo</string>
+    <string name="touchscreen_gesture_settings_title">Gesture sullo schermo</string>
+    <string name="touchscreen_gesture_settings_summary">Esegui varie gesture sullo schermo per azioni rapide</string>
+    <string name="touchscreen_hovering_title">Touch a puntamento</string>
+    <string name="touchscreen_hovering_summary">Consente di utilizzare il tocco come un mouse nei browser e nei desktop remoti</string>
+    <string name="wake_when_plugged_or_unplugged_title">Risveglia al collegamento</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Accendi lo schermo quando si collega o si scollega l\'alimentazione</string>
+    <string name="fast_charging_title">Ricarica rapida</string>
+    <string name="fast_charging_summary">Disabilita per ridurre il calore prodotto dal dispositivo durante la carica o per prolungare la durata della batteria</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Premi a lungo sul sensore d\'impronte digitali per sbloccare il telefono</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Premi a lungo sul sensore d\'impronte digitali per sbloccare il tablet</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Premi a lungo sul sensore d\'impronte digitali per sbloccare il dispositivo</string>
+    <string name="ambient_display_screen_off_udfps_summary">Per accendere lo schermo e sbloccare il dispositivo, premi a lungo sul sensore d\'impronte digitali sotto lo schermo.</string>
+    <string name="storage_warning_internal">Attenzione: questa opzione potrebbe non funzionare correttamente o causare una perdita di dati, e quindi non è raccomandata!</string>
+    <string name="assisted_gps_summary">Scarica da internet i dati di assistenza satellitare, che possono migliorare notevolmente le prestazioni di avvio del GPS. Per le chiamate di emergenza, il GPS assistito è sempre permesso.</string>
+</resources>
diff --git a/res/values-iw/cm_strings.xml b/res/values-iw/cm_strings.xml
new file mode 100644
index 0000000..62395f3b
--- /dev/null
+++ b/res/values-iw/cm_strings.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">LineageOS משפטי</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">אתם נמצאים רק עוד צעד <xliff:g id="step_count">%1$d</xliff:g> מהפעלת אפשרויות מפתח.</item>
+        <item quantity="two">אתם נמצאים רק עוד <xliff:g id="step_count">%1$d</xliff:g> צעדים מהפעלת אפשרויות מפתח.</item>
+        <item quantity="many">אתם נמצאים רק עוד <xliff:g id="step_count">%1$d</xliff:g> צעדים מהפעלת אפשרויות מפתח.</item>
+        <item quantity="other">אתם נמצאים רק עוד <xliff:g id="step_count">%1$d</xliff:g> צעדים מהפעלת אפשרויות מפתח.</item>
+    </plurals>
+    <string name="show_dev_on_cm">אפשרויות מפתח פעילות!</string>
+    <string name="show_dev_already_cm">אין צורך. כבר הפעלת את אפשרויות המפתח.</string>
+    <string name="peak_refresh_rate_summary_custom">‏קצב הרענון עולה באופן אוטומטי מ-60 ל-Hz‏%1$d לחלק מהתוכן. פעולה זו מגבירה את השימוש בסוללה.</string>
+    <string name="status_bar_double_tap_to_sleep_title">הקש בכדי לכבות מסך</string>
+    <string name="status_bar_double_tap_to_sleep_summary">הקש פעמיים על שורת המצב או על מסך נעילה בכדי לכבות את המסך</string>
+    <string name="heads_up_notifications_enabled_title">התראות קופצות</string>
+    <string name="heads_up_notifications_enabled_summary">הראה התראות חשובות בחלון צף קטן</string>
+    <string name="high_touch_sensitivity_title">רגישות גבוהה למגע</string>
+    <string name="high_touch_sensitivity_summary">הגבר את רגישות מסך המגע, כך שניתן יהיה להשתמש בו בעת לבישת כפפות</string>
+    <string name="increasing_ring_volume_option_title">עוצמת צלצול מתגברת</string>
+    <string name="increasing_ring_min_volume_title">עוצמה התחלתית</string>
+    <string name="increasing_ring_ramp_up_time_title">אורך זמן ההגברה</string>
+    <string name="lockscreen_media_art_title">הצג תמונת אלבום/מדיה</string>
+    <string name="lock_settings_picker_pattern_size_message">בחר גודל תבנית</string>
+    <string name="lockpattern_settings_enable_error_path_title">הצג שגיאות דפוס</string>
+    <string name="lockpattern_settings_enable_dots_title">הצג נקודות דפוס</string>
+    <string name="app_notification_sound_timeout_title">זמן מינימלי בין צלילי התראות</string>
+    <string name="app_notification_sound_timeout_summary_template">אפשר צלילים או רטט לא יותר מפעם אחת בכל <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">ללא מגבלה</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 שניות</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 שניות</string>
+    <string name="app_notification_sound_timeout_value_1_minute">דקה 1</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 דקות</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 דקות</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 דקות</string>
+    <string name="data_usage_app_restrict_wifi">‏נתוני Wi‑Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">אפשר שימוש בנתוני Wi‑Fi</string>
+    <string name="unlock_scramble_pin_layout_title">ערבב פריסה</string>
+    <string name="unlock_scramble_pin_layout_summary">ערבב פריסת PIN בעת פתיחת המכשיר</string>
+    <string name="proximity_wake_title">מנע התעוררות מקרית</string>
+    <string name="proximity_wake_summary">בדוק את חיישן הקירבה לפני הפעלת המסך</string>
+    <string name="touchscreen_gesture_settings_title">מחוות מגע</string>
+    <string name="touchscreen_gesture_settings_summary">השתמש במחוות מגע שונות לפעולות מהירות</string>
+    <string name="touchscreen_hovering_title">מגע בריחוף</string>
+    <string name="touchscreen_hovering_summary">מאפשר להעביר את האצבע מעל המסך כמו עכבר של מחשב בדפדפנים, בעמדות שליטה מרחוק וכד\'</string>
+    <string name="wake_when_plugged_or_unplugged_title">הער מסך בעת חיבור</string>
+    <string name="wake_when_plugged_or_unplugged_summary">הפעל את המסך כאשר מקור חשמל מתחבר או מתנתק מהמכשיר</string>
+</resources>
diff --git a/res/values-ja/cm_strings.xml b/res/values-ja/cm_strings.xml
new file mode 100644
index 0000000..e4a357b
--- /dev/null
+++ b/res/values-ja/cm_strings.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">その他</string>
+    <string name="advanced_keyboard_settings_title">高度な設定</string>
+    <string name="adb_enable_root">ルート状態でのデバッグ</string>
+    <string name="adb_enable_summary_root">ルート状態でも Android デバッグを許可する</string>
+    <string name="backup_transport_setting_label">バックアップ プロバイダの変更</string>
+    <string name="backup_transport_title">バックアップ プロバイダの選択</string>
+    <string name="berry_black_theme_title">ピュアブラック</string>
+    <string name="berry_black_theme_summary">ダークテーマ時に背景をピュアブラックにする</string>
+    <string name="lineagelicense_title">LineageOS 利用規約</string>
+    <string name="device_info_protected_single_press">タップして情報を表示</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="other">開発者向けオプションが有効になるまであと<xliff:g id="step_count">%1$d</xliff:g>ステップです。</item>
+    </plurals>
+    <string name="show_dev_on_cm">開発者向けオプションが有効になりました。</string>
+    <string name="show_dev_already_cm">必要ありません、開発者向けオプションは既に有効になっています。</string>
+    <string name="peak_refresh_rate_summary_custom">コンテンツに応じて、リフレッシュ レートを自動的に 60 Hz から %1$d Hz に変更します。電池使用量が増えます。</string>
+    <string name="status_bar_double_tap_to_sleep_title">ロック画面をタップしてスリープ状態にする</string>
+    <string name="status_bar_double_tap_to_sleep_summary">ステータスバーかロックスクリーンをダブルタップしてディスプレイを消灯します</string>
+    <string name="high_touch_polling_rate_title">ポーリング速度の高速化</string>
+    <string name="high_touch_polling_rate_summary">タッチスクリーンのポーリング速度を上げます</string>
+    <string name="heads_up_notifications_enabled_title">ヘッドアップ</string>
+    <string name="heads_up_notifications_enabled_summary">小さなフローティングウインドウに重要な通知を表示します</string>
+    <string name="high_touch_sensitivity_title">高感度タッチ</string>
+    <string name="high_touch_sensitivity_summary">手袋を着けたまま使用できるようにタッチ画面の感度を向上させる</string>
+    <string name="tethering_allow_vpn_upstreams_title">クライアントの VPN 使用を許可</string>
+    <string name="tethering_allow_vpn_upstreams_summary">この端末の VPN 接続をホットスポットのクライアントが送信接続に使うことを許可する</string>
+    <string name="increasing_ring_volume_option_title">着信音量の増幅</string>
+    <string name="increasing_ring_min_volume_title">開始音量</string>
+    <string name="increasing_ring_ramp_up_time_title">増幅時間</string>
+    <string name="lockscreen_media_art_title">メディアのカバーアートを表示</string>
+    <string name="lock_settings_picker_pattern_size_message">パターンサイズを選択してください</string>
+    <string name="lockpattern_settings_enable_error_path_title">間違えたパターンを表示</string>
+    <string name="lockpattern_settings_enable_dots_title">パターンのドットを表示</string>
+    <string name="max_refresh_rate_title">最高リフレッシュレート</string>
+    <string name="min_refresh_rate_title">最小リフレッシュレート</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">端末前面にある指紋認証センサーを探してください</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">端末前面にある指紋認証センサーを探してください</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">端末前面にある指紋認証センサーを探してください</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">端末背面にある指紋認証センサーを探してください</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">端末背面にある指紋認証センサーを探してください</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">端末背面にある指紋認証センサーを探してください</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">端末側面にある指紋認証センサーを探してください</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">端末側面にある指紋認証センサーを探してください</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">端末側面にある指紋認証センサーを探してください</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">端末前面にある指紋認証センサーをタッチしてください</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">端末前面にある指紋認証センサーをタッチしてください</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">端末前面にある指紋認証センサーをタッチしてください</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">端末背面にある指紋認証センサーをタッチしてください</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">端末背面にある指紋認証センサーをタッチしてください</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">端末背面にある指紋認証センサーをタッチしてください</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">端末側面にある指紋認証センサーをタッチしてください</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">端末側面にある指紋認証センサーをタッチしてください</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">端末側面にある指紋認証センサーをタッチしてください</string>
+    <string name="show_navbar_hint_title">ナビゲーションバーのヒント</string>
+    <string name="show_navbar_hint_summary">画面下部にナビゲーションバーのヒントを表示します</string>
+    <string name="app_notification_sound_timeout_title">通知音の最小間隔</string>
+    <string name="app_notification_sound_timeout_summary_template"><xliff:g id="duration">%1$s</xliff:g>間に1回以上の通知音またはバイブレーションを許可しない</string>
+    <string name="app_notification_sound_timeout_value_none">無制限</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10秒</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30秒</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1分</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5分</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10分</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30分</string>
+    <string name="auto_brightness_one_shot_title">画面点灯時にのみ適用する</string>
+    <string name="auto_brightness_one_shot_summary">画面が点灯した時に一度だけ自動で画面の明るさ調整を行います</string>
+    <string name="data_usage_app_restrict_all">ネットワークアクセスを許可する</string>
+    <string name="data_usage_app_restrict_all_summary">ネットワークの使用状況を有効化する</string>
+    <string name="data_usage_app_restrict_mobile">モバイルデータ通信</string>
+    <string name="data_usage_app_restrict_mobile_summary">モバイルデータ使用量を有効化する</string>
+    <string name="data_usage_app_restrict_vpn">VPN データ</string>
+    <string name="data_usage_app_restrict_vpn_summary">VPN データ使用量を有効化する</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi データ使用量</string>
+    <string name="data_usage_app_restrict_wifi_summary">Wi\u2011Fi データ使用量を有効化します</string>
+    <string name="unlock_scramble_pin_layout_title">スクランブルレイアウト</string>
+    <string name="unlock_scramble_pin_layout_summary">端末のロック解除時にPINレイアウトをランダムにする</string>
+    <string name="proximity_wake_title">誤作動を防止</string>
+    <string name="proximity_wake_summary">スリープ解除する前に接近センサーで確認する</string>
+    <string name="touchscreen_gesture_settings_title">タッチスクリーンジェスチャー</string>
+    <string name="touchscreen_gesture_settings_summary">様々なタッチスクリーンジェスチャーですばやくアクションを実行します</string>
+    <string name="touchscreen_hovering_title">タッチ画面のホバリング</string>
+    <string name="touchscreen_hovering_summary">ウェブブラウザやリモードデスクトップなどでマウスのようにホバリングできるようにする</string>
+    <string name="wake_when_plugged_or_unplugged_title">接続時にスリープ解除</string>
+    <string name="wake_when_plugged_or_unplugged_summary">電源を接続または切断したときに画面を点灯します</string>
+    <string name="fast_charging_title">急速充電</string>
+    <string name="fast_charging_summary">充電中の端末の発熱を減らしバッテリー寿命を伸ばすためには無効にしてください</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">指紋センサーを長押しして端末のロックを解除する</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">指紋センサーを長押しして端末のロックを解除する</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">指紋センサーを長押しして端末のロックを解除する</string>
+    <string name="ambient_display_screen_off_udfps_summary">画面を起動してロックを解除するには、画面内指紋センサーを長押ししてください。</string>
+    <string name="storage_warning_internal">警告: このオプションは正常に動作しなかったりデータの消失に繋がる可能性があるため推奨しません！</string>
+    <string name="assisted_gps_summary">GPS 始動時のパフォーマンスを大幅に向上できる衛星支援データをインターネットからダウンロードします。緊急電話のために、アシスト GPS は常に許可されています。</string>
+</resources>
diff --git a/res/values-ka/cm_strings.xml b/res/values-ka/cm_strings.xml
new file mode 100644
index 0000000..805cee2
--- /dev/null
+++ b/res/values-ka/cm_strings.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">დამატებითი</string>
+    <string name="advanced_keyboard_settings_title">დამატებითი პარამეტრები</string>
+    <string name="adb_enable_root">ძირეული უფლებით გამართვა</string>
+    <string name="adb_enable_summary_root">ნებართვა, ძირეული უფლებით Android-გამართვისთვის</string>
+    <string name="backup_transport_setting_label">შეცვალეთ მარქაფის მომსახურება</string>
+    <string name="backup_transport_title">აირჩიეთ მარქაფის მომსახურება</string>
+    <string name="berry_black_theme_title">სადა შავი</string>
+    <string name="berry_black_theme_summary">სადა შავი ფონი მუქი იერსახისთვის</string>
+    <string name="lineagelicense_title">LineageOS – სამართლებრივი</string>
+    <string name="device_info_protected_single_press">შეეხეთ ინფორმაციისთვის</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">დარჩა <xliff:g id="step_count">%1$d</xliff:g> მცდელობა შემმუშავებლის პარამეტრების ჩართვამდე.</item>
+        <item quantity="other">დარჩა <xliff:g id="step_count">%1$d</xliff:g> მცდელობა შემმუშავებლის პარამეტრების ჩართვამდე.</item>
+    </plurals>
+    <string name="show_dev_on_cm">შემმუშავებლის პარამეტრები ჩართულია!</string>
+    <string name="show_dev_already_cm">საჭირო აღარაა, შემმუშავებლის პარამეტრები უკვე ამოქმედებულია.</string>
+    <string name="peak_refresh_rate_summary_custom">ავტომატურად ზრდის განახლების სიხშირეს 60-დან და %1$d ჰც-მდე გარკვეული კონტენტისთვის. გაზრდის ბატარეის მოხმარებას.</string>
+    <string name="status_bar_double_tap_to_sleep_title">შეხებით დაძინება</string>
+    <string name="status_bar_double_tap_to_sleep_summary">მდგომარეობის ზოლზე ან ჩაკეტილზე ორმაგი შეხებით ეკრანის ჩაქრობა</string>
+    <string name="high_touch_polling_rate_title">შეხებისას მაღალი შერჩევის სიხშირე</string>
+    <string name="high_touch_polling_rate_summary">ეკრანზე შეხების აღქმის სიხშირის გაზრდა</string>
+    <string name="heads_up_notifications_enabled_title">ამომხტომი</string>
+    <string name="heads_up_notifications_enabled_summary">მნიშვნელოვანი შეტყობინებების ჩვენება პატარა ამომხტომ ფანჯარაში</string>
+    <string name="high_touch_sensitivity_title">შეხების მაღალი მგრძნობელობა</string>
+    <string name="high_touch_sensitivity_summary">ეკრანის მგრძნობელობის გაზრდა, ხელთათმანით გამოსაყენებლად</string>
+    <string name="tethering_allow_vpn_upstreams_title">ნებართვა, გამოიყენონ VPN</string>
+    <string name="tethering_allow_vpn_upstreams_summary">ნების მიცემა წვდომის წერტილთან მიერთებული კლიენტებისთვის, რომ შეძლონ ამ მოწყობილობის VPN-კავშირების გამოყენება აღმავალი მიმართულებით.</string>
+    <string name="increasing_ring_volume_option_title">ზარის ხმის მომატება</string>
+    <string name="increasing_ring_min_volume_title">საწყისი დონე</string>
+    <string name="increasing_ring_ramp_up_time_title">მომატების დრო</string>
+    <string name="lockscreen_media_art_title">ფაილის გარეკანის ჩვენება</string>
+    <string name="lock_settings_picker_pattern_size_message">მოსახაზის ზომის არჩევა</string>
+    <string name="lockpattern_settings_enable_error_path_title">მონახაზის შეცდომის ჩვენება</string>
+    <string name="lockpattern_settings_enable_dots_title">წერტილების ჩვენება მონახაზისთვის</string>
+    <string name="max_refresh_rate_title">განახლების უკიდურესი სიხშირე</string>
+    <string name="min_refresh_rate_title">განახლების უმცირესი სიჩქარე</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">მონახეთ თითის ანაბეჭდის აღმქმელი პლანშეტის წინა მხარეს.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">მონახეთ თითის ანაბეჭდის აღმქმელი მოწყობილობის წინა მხარეს.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">მონახეთ თითის ანაბეჭდის აღმქმელი ტელეფონის წინა მხარეს.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">მონახეთ თითის ანაბეჭდის აღმქმელი პლანშეტის უკანა მხარეს.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">მონახეთ თითის ანაბეჭდის აღმქმელი მოწყობილობის უკანა მხარეს.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">მონახეთ თითის ანაბეჭდის აღმქმელი ტელეფონის უკანა მხარეს.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">მონახეთ თითის ანაბეჭდის აღმქმელი პლანშეტის გვერდითა მხარეს.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">მონახეთ თითის ანაბეჭდის აღმქმელი მოწყობილობის გვერდითა მხარეს.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">მონახეთ თითის ანაბეჭდის აღმქმელი ტელეფონის გვერდითა მხარეს.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">შეეხეთ აღმქმელს პლანშეტის წინა მხარეს.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">შეეხეთ აღმქმელს მოწყობილობის წინა მხარეს.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">შეეხეთ აღმქმელს ტელეფონის წინა მხარეს.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">შეეხეთ აღმქმელს პლანშეტის უკანა მხარეს.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">შეეხეთ აღმქმელს მოწყობილობის უკანა მხარეს.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">შეეხეთ აღმქმელს ტელეფონის უკანა მხარეს.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">შეეხეთ აღმქმელს პლანშეტის გვერდითა მხარეს.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">შეეხეთ აღმქმელს მოწყობილობის გვერდითა მხარეს.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">შეეხეთ აღმქმელს ტელეფონის გვერდითა მხარეს.</string>
+    <string name="show_navbar_hint_title">სამოძრაო მანიშნებელი</string>
+    <string name="show_navbar_hint_summary">სამოძრაო მანიშნებლის ზოლის გამოჩენა ეკრანის ქვემოთ</string>
+    <string name="app_notification_sound_timeout_title">უმცირესი დრო ხმოვან სიგნალებს შორის</string>
+    <string name="app_notification_sound_timeout_summary_template">მხოლოდ ერთი ხმოვანი სიგნალის ან ვიბრაციის შესაძლებლობა, ყოველ <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">შეზღუდვის გარეშე</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 წამში</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 წამში</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 წუთში</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 წუთში</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 წუთში</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 წუთში</string>
+    <string name="auto_brightness_one_shot_title">სიკაშკაშის ერთჯერადი თვითგასწორება</string>
+    <string name="auto_brightness_one_shot_summary">სიკაშკაშე გასწორდება, მხოლოდ ეკრანის ჩართვისას</string>
+    <string name="data_usage_app_restrict_all">ქსელთან წვდომის ნებართვა</string>
+    <string name="data_usage_app_restrict_all_summary">ქსელის გამოყენების შესაძლებლობა</string>
+    <string name="data_usage_app_restrict_mobile">მობილური ინტერნეტი</string>
+    <string name="data_usage_app_restrict_mobile_summary">მობილური ინტერნეტის გამოყენების შესაძლებლობა</string>
+    <string name="data_usage_app_restrict_vpn">VPN-კავშირი</string>
+    <string name="data_usage_app_restrict_vpn_summary">VPN-კავშირის გამოყენების შესაძლებლობა</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi ინტერნეტი</string>
+    <string name="data_usage_app_restrict_wifi_summary">WiFi-კავშირის გამოყენების შესაძლებლობა</string>
+    <string name="unlock_scramble_pin_layout_title">ღილაკების არევა</string>
+    <string name="unlock_scramble_pin_layout_summary">ღილაკების არეულად გამოჩენა PIN-კოდით გახსნისას</string>
+    <string name="proximity_wake_title">შემთხვევით გამოღვიძების არიდება</string>
+    <string name="proximity_wake_summary">სიახლოვის აღმქმელის შემოწმება, ეკრანის გამოღვიძებამდე</string>
+    <string name="touchscreen_gesture_settings_title">ეკრანზე შეხების ჟესტები</string>
+    <string name="touchscreen_gesture_settings_summary">ეკრანზე სხვადასხვაგვარი შეხება, სწრაფი მოქმედებებისთვის</string>
+    <string name="touchscreen_hovering_title">ეკრანზე შეხებით გადაფარვა</string>
+    <string name="touchscreen_hovering_summary">მსგავსად მაუსის მაჩვენებლით გადაფარვისა ბრაუზერებში, დაშორებულ კომპიუტერზე და ა.შ.</string>
+    <string name="wake_when_plugged_or_unplugged_title">გამოღვიძება შეერთებისას</string>
+    <string name="wake_when_plugged_or_unplugged_summary">ეკრანის ჩართვა კვების შეერთებისას ან გამოერთებისას</string>
+    <string name="fast_charging_title">სწრაფი დამუხტვა</string>
+    <string name="fast_charging_summary">გამორთეთ გამოყოფილი სითბოს შესამცირებლად მოწყობილობის დამუხტვისას ან ბატარეის სიცოცხლის გასახანგრძლივებლად.</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">ტელეფონის გახსნა თითის ანაბეჭდის აღმქმელზე დიდხანს დაჭერით</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">პლანშეტის გახსნა თითის ანაბეჭდის აღმქმელზე დიდხანს დაჭერით</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">მოწყობილობის გახსნა თითის ანაბეჭდის აღმქმელზე დიდხანს დაჭერით</string>
+    <string name="ambient_display_screen_off_udfps_summary">ეკრანის ჩასართავად და გასახსნელად დიდხანს დააჭირეთ თითის ანაბეჭდის ეკრანქვეშა აღმქმელს.</string>
+    <string name="storage_warning_internal">გაფრთხილება: ამ პარამეტრმა შეიძლება ვერ იმუშაოს სათანადოდ ან მონაცემთა დაკარგვა გამოიწვიოს, შესაბამისად არასასურველია!</string>
+    <string name="assisted_gps_summary">დამხმარე თანამგზავრული მონაცემების ინტერნეტიდან ჩამოტვირთვა, რომ მეტად გაუმჯობესდეს შედეგიანობა GPS-ის ამუშავებისთანავე. გადაუდებელი ზარებისას GPS-ის დამხმარე მონაცემები მუდამ ნებადართულია.</string>
+</resources>
diff --git a/res/values-kab-rDZ/cm_strings.xml b/res/values-kab-rDZ/cm_strings.xml
new file mode 100644
index 0000000..e4d5930
--- /dev/null
+++ b/res/values-kab-rDZ/cm_strings.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Ayen-nniḍen</string>
+    <string name="advanced_keyboard_settings_title">Iɣewwaṛen leqqayen</string>
+    <string name="berry_black_theme_title">Aberkan zeddigen</string>
+    <string name="berry_black_theme_summary">Agilal aberkan zeddigen i usentel aberkan</string>
+    <string name="lineagelicense_title">Talɣut tusḍift n LineageOS</string>
+    <string name="show_dev_on_cm">Tremdeḍ iγewwaṛen n tneflit!</string>
+    <string name="show_dev_already_cm">Ulayɣer, tremdeḍ yakan iγewwaṛen n tneflit.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Tekki akken ad yeṭṭes</string>
+    <string name="heads_up_notifications_enabled_title">Ilɣa yettafgen</string>
+    <string name="heads_up_notifications_enabled_summary">Sken-d ilɣa imezwura deg usfaylu ameẓẓyan yettifliwen</string>
+    <string name="high_touch_sensitivity_title">Aḥulfu ameqran n umaḍes</string>
+    <string name="high_touch_sensitivity_summary">Rnu ugar uḥulfu n ugdil ḥalam nezmer ad t-nesseqdec ula s iqeffazen</string>
+    <string name="increasing_ring_volume_option_title">A semɣeṛ n imesli n uṭenṭen</string>
+    <string name="increasing_ring_min_volume_title">Imesli n tazwara</string>
+    <string name="lock_settings_picker_pattern_size_message">Fren tiddi n wudlif</string>
+    <string name="lockpattern_settings_enable_error_path_title">Sken tuccḍa n uzenziɣ</string>
+    <string name="lockpattern_settings_enable_dots_title">Sken tinqiḍin n uzenziɣ</string>
+    <string name="app_notification_sound_timeout_value_none">Ulac tilisa</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 n tasinin</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 n tasinin</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 n tisdat</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 n tisdatin</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 n tisdatin</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 n tisdatin</string>
+    <string name="data_usage_app_restrict_all">Sireg anekcum ɣer uẓeṭṭa</string>
+    <string name="data_usage_app_restrict_all_summary">Rmed aseqdec n uẓeṭṭa</string>
+    <string name="data_usage_app_restrict_mobile">Isefka izirazen</string>
+    <string name="data_usage_app_restrict_wifi">Isefka Wi\u2011Fi</string>
+</resources>
diff --git a/res/values-kk/cm_strings.xml b/res/values-kk/cm_strings.xml
new file mode 100644
index 0000000..8ac067c
--- /dev/null
+++ b/res/values-kk/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">Кейбір мазмұндар үшін жаңарту жиілігі 60-тан %1$d Гц-ке автоматты түрде артады. Батарея заряды тезірек таусылады.</string>
+</resources>
diff --git a/res/values-km/cm_strings.xml b/res/values-km/cm_strings.xml
new file mode 100644
index 0000000..a40f24f
--- /dev/null
+++ b/res/values-km/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">បង្កើន​អត្រា​ផ្ទុកឡើងវិញ​ដោយស្វ័យប្រវត្តិ​ពី 60 ទៅ %1$d Hz សម្រាប់​ខ្លឹមសារ​មួយចំនួន។ ប្រើប្រាស់ថ្ម​ច្រើន​ជាងមុន។</string>
+</resources>
diff --git a/res/values-kn/cm_strings.xml b/res/values-kn/cm_strings.xml
new file mode 100644
index 0000000..ce8376f
--- /dev/null
+++ b/res/values-kn/cm_strings.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">LineageOS ಕಾನೂನು</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">ನೀವು ಡೆವಲಪ್‍ಮೆಂಟ್ ಸೆಟ್ಟಿಂಗ್ಸ್ ಸಕ್ರಿಯಗೊಳಿಸಲು <xliff:g id="step_count">%1$d</xliff:g> ಹಂತದಷ್ತು ದೂರವಿದ್ದೀರಿ.</item>
+        <item quantity="other">ನೀವು ಡೆವಲಪ್‍ಮೆಂಟ್ ಸೆಟ್ಟಿಂಗ್ಸ್ ಸಕ್ರಿಯಗೊಳಿಸಲು <xliff:g id="step_count">%1$d</xliff:g> ಹಂತಗಳಷ್ಟು ದೂರವಿದ್ದೀರಿ.</item>
+    </plurals>
+    <string name="show_dev_on_cm">ನೀವು ಡೆವಲಪ್‍ಮೆಂಟ್ ಸೆಟ್ಘಿಂಗ್ಸನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದ್ದೀರಿ!</string>
+    <string name="show_dev_already_cm">ಅಗತ್ಯವಿಲ್ಲ, ನೀವು ಈಗಾಗಲೇ ಡೆವಲಪ್‍ಮೆಂಟ್ ಸೆಟ್ಟಿಂಗ್ಸನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದ್ದೀರಿ.</string>
+    <string name="peak_refresh_rate_summary_custom">ಕೆಲವು ವಿಷಯಗಳಿಗೆ ರಿಫ್ರೆಶ್ ರೇಟ್ ಅನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ 60 ರಿಂದ %1$d ಕ್ಕೆ ಏರಿಸುತ್ತದೆ. ಬ್ಯಾಟರಿ ಬಳಕೆಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ.</string>
+    <string name="status_bar_double_tap_to_sleep_title">ನಿದ್ರಿಸಲು ಮುಟ್ಟು</string>
+    <string name="status_bar_double_tap_to_sleep_summary">ಪರದೆಯನ್ನು ನಂದಿಸಲು ಸ್ಥಿತಿಪಟ್ಟಿಕೆ ಅಥವಾ ಬಿಗಿದ ಪರದೆಯನ್ನು ಜೋಡಿವತ್ತ್ತಿ</string>
+    <string name="heads_up_notifications_enabled_title">ಮುನ್ನೆಚ್ಚರಿಕೆ</string>
+    <string name="heads_up_notifications_enabled_summary">ಆದ್ಯತೆ ಸೂಚನೆಗಳನ್ನು ಸಣ್ಣ ತೇಲುವ ಕಿಟಕಿಯಲ್ಲಿ ಪ್ರದರ್ಶಿಸು</string>
+    <string name="high_touch_sensitivity_title">ಅಧಿಕ ಸ್ಪರ್ಶ ಸಂವೇದನೆ</string>
+    <string name="high_touch_sensitivity_summary">ಸ್ಪರ್ಶಪರದೆ ಸಂವೇದನೆ ವೃದ್ಧಿಸಿದರೆ ಕೈಗವಸ ಧರಿಸಿಯೂ ಬಳಸಬಹುದು</string>
+    <string name="increasing_ring_volume_option_title">ವೃದ್ಧಿಯಾಗುವ ಗಂಟೆನಾದ</string>
+    <string name="increasing_ring_min_volume_title">ಆರಂಭ ವಾಲ್ಯೂಂ</string>
+    <string name="increasing_ring_ramp_up_time_title">ಚಲನಶೀಲ ಅವಧಿ</string>
+    <string name="lockscreen_media_art_title">ಮಾಧ್ಯಮದ ಕವಚ ಕಲೆ ಪ್ರದರ್ಶಿಸು</string>
+    <string name="lock_settings_picker_pattern_size_message">ರೂಪಿಕೆಯ ಗಾತ್ರವನ್ನು ಆರಿಸು</string>
+    <string name="lockpattern_settings_enable_error_path_title">ನಮೂನೆ ದೋಷವನ್ನು ಪ್ರದರ್ಶಿಸು</string>
+    <string name="lockpattern_settings_enable_dots_title">ನಮೂನೆ ಚುಕ್ಕಿಗಳನ್ನು ಪ್ರದರ್ಶಿಸು</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi ದತ್ತಾಂಶ</string>
+    <string name="data_usage_app_restrict_wifi_summary">Wi\u2011Fi ದತ್ತಾಂಶದ ಬಳಕೆ ಸಶಕ್ತಿಸು</string>
+    <string name="unlock_scramble_pin_layout_title">ವಿನ್ಯಾಸವನ್ನು ಅಸ್ತವ್ಯಸ್ತಗೊಳಿಸು</string>
+    <string name="unlock_scramble_pin_layout_summary">ಸಾಧನವನ್ನು ಅನ್‍ಲಾಕ್ ಮಾಡುವಾಗ ಪಿನ್ ವಿನ್ಯಾಸವನ್ನು ಅಸ್ತವ್ಯಸ್ತಗೊಳಿಸು</string>
+    <string name="proximity_wake_title">ಆಕಸ್ಮಿಕವಾಗಿ ಎಚ್ಚರವಾಗುವಿಕೆಯನ್ನು ತಡೆ</string>
+    <string name="proximity_wake_summary">ಪರದೆಯನ್ನು ಎಚ್ಚರಿಸುವ ಮೊದಲು ಸಾಮೀಪ್ಯ ಸಂವೇದಕವನ್ನು ಪರಿಶೀಲಿಸು</string>
+    <string name="touchscreen_gesture_settings_title">ಸ್ಪರ್ಷಪರದೆಯ ಸನ್ನೆಗಳು</string>
+    <string name="touchscreen_gesture_settings_summary">ತ್ವರಿತ ಪ್ರತಿಕ್ರಿಯೆಗಾಗಿ ಸ್ಪರ್ಶಪರದೆ ಮೇಲೆ ವಿವಿಧ ಸನ್ನೆಗಳನ್ನು ಮಾಡು</string>
+    <string name="touchscreen_hovering_title">ಸ್ಪರ್ಶಪರದೆ ಹರಿದಾಡುವಿಕೆ</string>
+    <string name="touchscreen_hovering_summary">ಜಾಲ ಬ್ರೌಸರ್, ದೂರ ಮೇಲ್ತೆರೆ, ಇತರೆಗಳಲ್ಲಿ ಇಲಿಯ ಹಾಗೆ ಪರದೆ ಮೇಲೆ ಹರಿದಾಡಲು ಅನುಮತಿಸುತ್ತದೆ</string>
+    <string name="wake_when_plugged_or_unplugged_title">ಪ್ಲಗ್‍ಮಾಡಿದಾಗ ಎಬ್ಬಿಸು</string>
+    <string name="wake_when_plugged_or_unplugged_summary">ವಿದ್ಯುತ್ ಮೂಲವನ್ನು ಸಂಪರ್ಕಿಸಿದಾಗ ಅಥವಾ ಅಸಂಪರ್ಕಿಸಿದಾಗ ಪರದೆಯನ್ನು ಆನ್ ಮಾಡು</string>
+</resources>
diff --git a/res/values-ko/cm_strings.xml b/res/values-ko/cm_strings.xml
new file mode 100644
index 0000000..9e56f00
--- /dev/null
+++ b/res/values-ko/cm_strings.xml
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">추가 기능</string>
+    <string name="advanced_keyboard_settings_title">고급 설정</string>
+    <string name="adb_enable_root">디버깅 시 루트 권한 사용</string>
+    <string name="adb_enable_summary_root">ADB와 같은 디버깅 모드 사용시 루트 권한을 사용합니다.</string>
+    <string name="backup_transport_setting_label">백업 제공자 변경</string>
+    <string name="backup_transport_title">백업 제공자 선택</string>
+    <string name="berry_black_theme_title">검정색</string>
+    <string name="berry_black_theme_summary">어두운 테마 사용 시 완전 검정색 배경 사용</string>
+    <string name="lineagelicense_title">LineageOS 법적 고지</string>
+    <string name="device_info_protected_single_press">눌러서 정보 보기</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="other">개발자 설정을 활성화하려면 <xliff:g id="step_count">%1$d</xliff:g>회 더 누르세요.</item>
+    </plurals>
+    <string name="show_dev_on_cm">개발자 설정이 활성화되었습니다.</string>
+    <string name="show_dev_already_cm">이미 개발자 설정이 활성화되어 있습니다.</string>
+    <string name="peak_refresh_rate_summary_custom">일부 콘텐츠의 새로고침 빈도를 자동으로 60Hz에서 %1$dHz로 늘립니다. 이렇게 하면 배터리 사용량이 증가합니다.</string>
+    <string name="status_bar_double_tap_to_sleep_title">두드려 화면 끄기</string>
+    <string name="status_bar_double_tap_to_sleep_summary">상태 표시줄이나 잠금 화면을 두 번 두드려 화면 끄기</string>
+    <string name="high_touch_polling_rate_title">높은 터치 응답 속도 사용</string>
+    <string name="high_touch_polling_rate_summary">터치 응답 속도 높이기</string>
+    <string name="heads_up_notifications_enabled_title">헤드업 알림</string>
+    <string name="heads_up_notifications_enabled_summary">작은 플로팅 창에 중요 알림 표시</string>
+    <string name="high_touch_sensitivity_title">터치 감도 높이기</string>
+    <string name="high_touch_sensitivity_summary">장갑을 착용해도 터치할 수 있도록 터치스크린 감도를 향상</string>
+    <string name="tethering_allow_vpn_upstreams_title">클라이언트가 VPN을 사용하도록 허용</string>
+    <string name="tethering_allow_vpn_upstreams_summary">핫스팟이나 테더링 클라이언트가 연결성 향상을 위해 내 장치의 VPN 연결을 사용하도록 허용합니다.</string>
+    <string name="increasing_ring_volume_option_title">점점 커지는 벨 소리</string>
+    <string name="increasing_ring_min_volume_title">시작 벨소리</string>
+    <string name="increasing_ring_ramp_up_time_title">소리 커짐 시간</string>
+    <string name="lockscreen_media_art_title">앨범 커버 이미지 표시</string>
+    <string name="lock_settings_picker_pattern_size_message">패턴의 크기를 선택하세요</string>
+    <string name="lockpattern_settings_enable_error_path_title">패턴 오류 표시</string>
+    <string name="lockpattern_settings_enable_dots_title">패턴 점 표시</string>
+    <string name="max_refresh_rate_title">최대 화면 재생률</string>
+    <string name="min_refresh_rate_title">최소 재생률</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">태블릿 앞면에 지문 센서가 있습니다.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">기기 앞면에 지문 센서가 있습니다.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">휴대전화 앞면에 지문 센서가 있습니다.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">태블릿 뒷면에 지문 센서가 있습니다.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">기기 뒷면에 지문 센서가 있습니다.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">휴대전화 뒷면에 지문 센서가 있습니다.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">태블릿 옆면에 지문 센서가 있습니다.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">기기 옆면에 지문 센서가 있습니다.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">휴대전화 옆면에 지문 센서가 있습니다.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">태블릿 앞면에 있는 지문 센서를 누르세요.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">기기 앞면에 있는 지문 센서를 누르세요.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">휴대전화 앞면에 있는 지문 센서를 누르세요.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">태블릿 뒷면에 있는 지문 센서를 누르세요.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">기기 뒷면에 있는 지문 센서를 누르세요.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">휴대전화 뒷면에 있는 지문 센서를 누르세요.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">태블릿 옆면에 있는 지문 센서를 누르세요.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">기기 옆면에 있는 지문 센서를 누르세요.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">휴대전화 옆면에 있는 지문 센서를 누르세요.</string>
+    <string name="show_navbar_hint_title">내비게이션 힌트</string>
+    <string name="show_navbar_hint_summary">화면 아래에 내비게이션 힌트 바를 표시합니다.</string>
+    <string name="app_notification_sound_timeout_title">알림 소리 최소 간격</string>
+    <string name="app_notification_sound_timeout_summary_template">매 <xliff:g id="duration">%1$s</xliff:g>마다 한 번씩만 소리 또는 진동을 허용합니다</string>
+    <string name="app_notification_sound_timeout_value_none">제한 없음</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10초</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30초</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1분</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5분</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10분</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30분</string>
+    <string name="auto_brightness_one_shot_title">화면이 켜질 때 한 번만 밝기 조절</string>
+    <string name="auto_brightness_one_shot_summary">자동 밝기 조절을 화면이 켜질 때 단 한 번만 실행합니다.</string>
+    <string name="data_usage_app_restrict_all">네트워크 액세스 허용</string>
+    <string name="data_usage_app_restrict_all_summary">네트워크 사용 허용</string>
+    <string name="data_usage_app_restrict_mobile">모바일 데이터</string>
+    <string name="data_usage_app_restrict_mobile_summary">모바일 데이터 사용 허용</string>
+    <string name="data_usage_app_restrict_vpn">VPN 데이터</string>
+    <string name="data_usage_app_restrict_vpn_summary">VPN 데이터 사용 허용</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi 데이터</string>
+    <string name="data_usage_app_restrict_wifi_summary">Wi\u2011Fi 데이터 사용 허용</string>
+    <string name="unlock_scramble_pin_layout_title">레이아웃 섞기</string>
+    <string name="unlock_scramble_pin_layout_summary">장치를 잠금 해제할 때 PIN 레이아웃 섞기</string>
+    <string name="proximity_wake_title">실수로 화면 켜기 방지</string>
+    <string name="proximity_wake_summary">화면을 켜기 전에 근접 센서 확인</string>
+    <string name="touchscreen_gesture_settings_title">터치스크린 제스처</string>
+    <string name="touchscreen_gesture_settings_summary">다양한 터치스크린 제스처를 사용하여 빠른 작업 실행</string>
+    <string name="touchscreen_hovering_title">터치스크린 호버링</string>
+    <string name="touchscreen_hovering_summary">웹 브라우저나 원격 데스크톱과 같은 앱에서 마우스처럼 화면에 호버링하여 사용할 수 있습니다.</string>
+    <string name="wake_when_plugged_or_unplugged_title">충전 시 켜짐</string>
+    <string name="wake_when_plugged_or_unplugged_summary">전원이 연결되거나 분리될 때 화면 켜기</string>
+    <string name="fast_charging_title">고속 충전</string>
+    <string name="fast_charging_summary">충전 중에 발생하는 열을 줄여 배터리 수명을 연장하려면 비활성화</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">지문 인식 센서를 길게 눌러 휴대 전화 잠금 해제</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">지문 인식 센서를 길게 눌러 태블릿 잠금 해제</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">지문 인식 센서를 길게 눌러 기기 잠금 해제</string>
+    <string name="ambient_display_screen_off_udfps_summary">화면을 켜고 잠금을 해제하려면, 화면 아래에 있는 지문 인식 센서를 길게 누르세요.</string>
+    <string name="storage_warning_internal">경고: 이 옵션은 제대로 작동하지 않거나 데이터 손실이 일어날 가능성이 있으므로 권장하지 않습니다!</string>
+</resources>
diff --git a/res/values-ku/cm_strings.xml b/res/values-ku/cm_strings.xml
new file mode 100644
index 0000000..c8d9ea2
--- /dev/null
+++ b/res/values-ku/cm_strings.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">یاسای وەشانەکە</string>
+    <string name="show_dev_on_cm">تۆ ڕێکخستنی گەشەپێدەریت چالاککرد!</string>
+    <string name="show_dev_already_cm">پێویست ناکا، تۆ پێشتر چالاکت کردوە.</string>
+    <string name="high_touch_sensitivity_title">هەستیاری ساوانی بەرز</string>
+    <string name="high_touch_sensitivity_summary">هەستیاری ساوڕوونما برز بکەوە، ئەوە ئەتوانرێ بەکاربهێنرێت کاتێک دەستەوانت لە دەستدایە</string>
+    <string name="increasing_ring_volume_option_title">زیادکردنی دەنگی زەنگ</string>
+    <string name="increasing_ring_min_volume_title">دەستپێکردنی دەنگ</string>
+    <string name="increasing_ring_ramp_up_time_title">هەڵسانی کات</string>
+    <string name="lockpattern_settings_enable_error_path_title">پیشاندانی هەڵەی چنراو</string>
+    <string name="lockpattern_settings_enable_dots_title">پیشاندانی خاڵەکانی چنراو</string>
+    <string name="unlock_scramble_pin_layout_title">ته‌خته‌ی تێکه‌ڵ</string>
+    <string name="unlock_scramble_pin_layout_summary">ته‌خته‌ی PIN تێکه‌ڵ له‌کاتی کردنه‌وه‌ی ئامێره‌که‌</string>
+    <string name="proximity_wake_title">قه‌ده‌غه‌کردنی هه‌ستانی ڕێکه‌وت</string>
+    <string name="touchscreen_hovering_title">دەستلێدانی شاشە سوڕانەوە</string>
+    <string name="touchscreen_hovering_summary">هەمیشە شاشەکە بسوڕێنەوە وەکو مشک لە وێبگەری ماڵپەر، ڕومێزی دور،هتد</string>
+    <string name="wake_when_plugged_or_unplugged_title">هەڵسان لە پلاگ</string>
+    <string name="wake_when_plugged_or_unplugged_summary">کردنەوەی ڕۆشای ڕوونماکە لە کاتی پەیوەندکردن یان پچڕانی لەکارەبا</string>
+</resources>
diff --git a/res/values-ky/cm_strings.xml b/res/values-ky/cm_strings.xml
new file mode 100644
index 0000000..19fad56
--- /dev/null
+++ b/res/values-ky/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">Айрым мазмундар үчүн жаңыртуу ылдамдыгын 60 Герцтен %1$d Герцке көтөрөт. Батареянын колдонулушун жогорулатат.</string>
+</resources>
diff --git a/res/values-lo/cm_strings.xml b/res/values-lo/cm_strings.xml
new file mode 100644
index 0000000..984f9f0
--- /dev/null
+++ b/res/values-lo/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">ເພີ່ມຣີເຟຣຊເຣດຈາກ 60 ເປັນ %1$d Hz ສຳລັບບາງເນື້ອຫາໂດຍອັດຕະໂນມັດ. ເພີ່ມການນຳໃຊ້ແບັດເຕີຣີ.</string>
+</resources>
diff --git a/res/values-lt/cm_strings.xml b/res/values-lt/cm_strings.xml
new file mode 100644
index 0000000..f062e07
--- /dev/null
+++ b/res/values-lt/cm_strings.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">Teisinė „LineageOS“ informacija</string>
+    <string name="show_dev_on_cm">Jūs įgalinote kūrėjo parinktys!</string>
+    <string name="show_dev_already_cm">Nereikia, jūs jau įgalinote kūrėjo parinktys.</string>
+    <string name="peak_refresh_rate_summary_custom">Automatiškai padidinamas kai kurio turinio atnaujinimo dažnis nuo 60 iki %1$d Hz. Vartojama daugiau akumuliatoriaus energijos.</string>
+    <string name="high_touch_sensitivity_title">Didelis lietimo jautrumas</string>
+    <string name="high_touch_sensitivity_summary">Padidinti liečiamojo ekrano jautrumą tam, kad juo būtų galima naudotis dėvint pirštines</string>
+    <string name="increasing_ring_volume_option_title">Didėjantis skambėjimo garsumas</string>
+    <string name="increasing_ring_min_volume_title">Pradinis garsumas</string>
+    <string name="increasing_ring_ramp_up_time_title">Didėjimo laikas</string>
+    <string name="lockpattern_settings_enable_error_path_title">Rodyti modelio klaidą</string>
+    <string name="lockpattern_settings_enable_dots_title">Rodyti modelio taškus</string>
+    <string name="unlock_scramble_pin_layout_title">Sumaišyti išdėstymą</string>
+    <string name="unlock_scramble_pin_layout_summary">Atrakinant įrenginį sumaišyti PIN išdėstymą</string>
+    <string name="proximity_wake_title">Išvengti atsitiktinio pažadinimo</string>
+    <string name="touchscreen_hovering_title">Jutiklinio ekrano slankiojimas</string>
+    <string name="touchscreen_hovering_summary">Leidžia slankioti ekraną kaip pelę internetinėse naršyklėse, nuotoliniuose staliniuose kompiuteriuose ir kt.</string>
+    <string name="wake_when_plugged_or_unplugged_title">Pažadinti, kai prijungiama</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Įjungti ekraną, kai prijungiamas ar atjungiamas maitinimo šaltinis</string>
+</resources>
diff --git a/res/values-lu/cm_strings.xml b/res/values-lu/cm_strings.xml
new file mode 100644
index 0000000..b207ed8
--- /dev/null
+++ b/res/values-lu/cm_strings.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">Rechtlech Hiweiser iwwer LineageOS</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Du bass <xliff:g id="step_count">%1$d</xliff:g> Schrëtt dovun ewech, d\'Entwéckleroptiounen z\'aktivéieren.</item>
+        <item quantity="other">Du bass <xliff:g id="step_count">%1$d</xliff:g> Schrëtter dovun ewech, d\'Entwéckleroptiounen z\'aktivéieren.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Du hues d\'Entwéckleroptiounen aktivéiert!</string>
+    <string name="show_dev_already_cm">Net néideg, du hues d\'Entwécklungsoptioune schonn aktivéiert.</string>
+    <string name="high_touch_sensitivity_title">Héich Beréierungsempfindlechkeet</string>
+    <string name="high_touch_sensitivity_summary">Touch-Empfindlechkeet erhéijen, fir den Touchscreen och mat Hännsche benotzen ze kënnen</string>
+    <string name="increasing_ring_volume_option_title">Usteigend Schelltounlautstäerkt</string>
+    <string name="increasing_ring_min_volume_title">Start-Lautstäerkt</string>
+    <string name="increasing_ring_ramp_up_time_title">Ulafzäit</string>
+    <string name="lockpattern_settings_enable_error_path_title">Musterfeeler uweisen</string>
+    <string name="lockpattern_settings_enable_dots_title">Musterpunkten uweisen</string>
+    <string name="unlock_scramble_pin_layout_title">Zoufälleg Unuerdnung</string>
+    <string name="unlock_scramble_pin_layout_summary">Bei all Entspärversuch d\'Zifferereiefolleg zoufälleg nei wielen</string>
+    <string name="proximity_wake_title">Onbeofsiichtegt waakreg maache verhënneren</string>
+    <string name="touchscreen_hovering_title">Iwwerschwiewe vum Touchscreen</string>
+    <string name="touchscreen_hovering_summary">Erméiglecht et, mam Fanger iwwer dem Schierm ze schwieren an den Zeiger wéi mat enger Maus ze beweegen</string>
+    <string name="wake_when_plugged_or_unplugged_title">Beim Astieche waakreg maachen</string>
+    <string name="wake_when_plugged_or_unplugged_summary">De Schierm uschalte wann eng Stroumquell ugeschloss oder getrennt gëtt</string>
+</resources>
diff --git a/res/values-lv/cm_strings.xml b/res/values-lv/cm_strings.xml
new file mode 100644
index 0000000..356a2cf
--- /dev/null
+++ b/res/values-lv/cm_strings.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">LineageOS atbildība</string>
+    <string name="peak_refresh_rate_summary_custom">Noteikta satura atsvaidzināšanas biežums tiek automātiski palielināts no 60 līdz %1$d Hz. Tas palielina akumulatora lietojumu.</string>
+    <string name="high_touch_sensitivity_title">Augsta pieskāriena jutība</string>
+    <string name="high_touch_sensitivity_summary">Palielināt skārienekrāna jutību, lai to varētu lietot, valkājot cimdus</string>
+    <string name="unlock_scramble_pin_layout_title">Samaisīt izkārtojumu</string>
+    <string name="unlock_scramble_pin_layout_summary">Atslēdzot iekārtu, samaisīt PIN izkārtojumu</string>
+    <string name="proximity_wake_title">Novērsiet nejaušu pamodināšanu</string>
+    <string name="wake_when_plugged_or_unplugged_title">Pamodināt, iespraužot vadu</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Pievienojot, vai atvienojot no barošanas avota, ieslēgt ekrānu</string>
+</resources>
diff --git a/res/values-mk/cm_strings.xml b/res/values-mk/cm_strings.xml
new file mode 100644
index 0000000..1a9e079
--- /dev/null
+++ b/res/values-mk/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">Автоматски ја зголемува зачестеноста на освежување од 60 на %1$d Hz за некои содржини. Го зголемува користењето на батеријата.</string>
+</resources>
diff --git a/res/values-ml/cm_strings.xml b/res/values-ml/cm_strings.xml
new file mode 100644
index 0000000..50c68c1
--- /dev/null
+++ b/res/values-ml/cm_strings.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">LineageOS ലീഗല്‍</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">ഡെവലപ്പ്മെന്റ് ക്രമീകരണങ്ങൾ പ്രാപ്തമാക്കുന്നതിന് നിങ്ങള്‍ %1$d ഘട്ടം അകലെയാണ്.</item>
+        <item quantity="other">ഡെവലപ്പ്മെന്റ് ക്രമീകരണങ്ങൾ പ്രാപ്തമാക്കുന്നതിന് നിങ്ങള്‍ <xliff:g id="step_count">%1$d</xliff:g> ഘട്ടങ്ങൾ അകലെയാണ്.</item>
+    </plurals>
+    <string name="show_dev_on_cm">നിങ്ങൾ ഡെവലപ്പ്മെന്റ് ക്രമീകരണങ്ങൾ പ്രാപ്തമാക്കി!</string>
+    <string name="show_dev_already_cm">ആവശ്യമില്ല, നിങ്ങൾ ഇതിനകം ഡെവലപ്പ്മെന്റ് ക്രമീകരണങ്ങൾ പ്രാപ്തമാക്കി.</string>
+    <string name="peak_refresh_rate_summary_custom">ചില ഉള്ളടക്കങ്ങളുടെ പുതുക്കൽ നിരക്ക് 60 Hz-ൽ നിന്നും %1$d Hz-ലേക്ക് സ്വയമേവ ഉയർത്തുന്നു. ബാറ്ററി ഉപയോഗം വർദ്ധിപ്പിക്കുന്നു.</string>
+    <string name="high_touch_sensitivity_title">ഉയര്‍ന്ന സ്പര്‍ശന സംവേദനക്ഷമത</string>
+    <string name="high_touch_sensitivity_summary">കയ്യുറകൾ ധരിച്ചിരിക്കുമ്പോള്‍ ഉപയോഗിക്കുന്നതിനായി ടച്ച്സ്ക്രീൻ സെന്‍സിറ്റിവിറ്റി വര്‍ദ്ധിപ്പിക്കുക</string>
+    <string name="increasing_ring_volume_option_title">വര്‍ദ്ധിക്കുന്ന റിംഗ് വോളിയം</string>
+    <string name="increasing_ring_min_volume_title">വോളിയം ആരംഭിക്കുക</string>
+    <string name="increasing_ring_ramp_up_time_title">റാംപ്-അപ്പ് സമയം</string>
+    <string name="lockpattern_settings_enable_error_path_title">പാറ്റേൺ പിശക് ദൃശ്യമാക്കുക</string>
+    <string name="lockpattern_settings_enable_dots_title">ഡോട്ടുകൾ പാറ്റേൺ ദൃശ്യമാക്കുക</string>
+    <string name="unlock_scramble_pin_layout_title">സ്ക്രാമ്പിള്‍ ചെയ്ത ലേഔട്ട്</string>
+    <string name="unlock_scramble_pin_layout_summary">ഉപകരണം അൺലോക്ക് ചെയ്യുമ്പോൾ PIN ലേയൌട്ട് സ്ക്രാമ്പിള്‍ ചെയ്യുക</string>
+    <string name="proximity_wake_title">യാദൃച്ഛികമായി സജീവമാകുന്നത് തടയുക</string>
+    <string name="touchscreen_hovering_title">ടച്ച്സ്ക്രീൻ ഹോവറിംഗ്</string>
+    <string name="touchscreen_hovering_summary">വെബ് ബ്രൌസറുകള്‍, റിമോട്ട് ഡെസ്ക്ടോപ്പുകള്‍ തുടങ്ങിയവയിലെ മൌസ് എന്നപോലെ സ്ക്രീന്‍ ഹോവര്‍ ചെയ്യാന്‍ നിങ്ങളെ അനുവദിക്കുന്നു.</string>
+    <string name="wake_when_plugged_or_unplugged_title">വേക്ക് ഓൺ പ്ലഗ്</string>
+    <string name="wake_when_plugged_or_unplugged_summary">ഒരു ഊര്‍ജ്ജ സ്രോതസ്സില്‍ ബന്ധിപ്പിക്കുമ്പോള്‍ അല്ലെങ്കില്‍ വിച്ഛേദിക്കുമ്പോൾ സ്ക്രീന്‍ ഓണ്‍ ചെയ്യുക</string>
+</resources>
diff --git a/res/values-mn/cm_strings.xml b/res/values-mn/cm_strings.xml
new file mode 100644
index 0000000..5fc5121
--- /dev/null
+++ b/res/values-mn/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">Зарим контентын сэргээх хурдыг автоматаар 60-с %1$d Гц болгож өсгөнө. Батарей ашиглалтыг нэмэгдүүлнэ.</string>
+</resources>
diff --git a/res/values-mr/cm_strings.xml b/res/values-mr/cm_strings.xml
new file mode 100644
index 0000000..bc8b5bf
--- /dev/null
+++ b/res/values-mr/cm_strings.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">LineageOS लिगल</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">विकास सेटिंग्ज सक्षम करण्यापासून तुम्ही <xliff:g id="step_count">%1$d</xliff:g> पायरी अनुपस्थित आहात.</item>
+        <item quantity="other">विकास सेटिंग्ज सक्षम करण्यापासून तुम्ही <xliff:g id="step_count">%1$d</xliff:g> पायऱ्या अनुपस्थित आहात.</item>
+    </plurals>
+    <string name="show_dev_on_cm">तुम्ही विकास सेटिंग्ज सक्षम केली आहेत!</string>
+    <string name="show_dev_already_cm">गरज नाही, तुम्ही आधीच विकास सेटिंग्ज सक्षम केली आहेत.</string>
+    <string name="peak_refresh_rate_summary_custom">काही आशयासाठी रिफ्रेश रेट ६० ते ९० Hz पर्यंत आपोआप वाढवते. बॅटरी वापर वाढवते.</string>
+    <string name="high_touch_sensitivity_title">उच्च स्पर्श संवेदनक्षमता</string>
+    <string name="high_touch_sensitivity_summary">टचस्क्रीन संवेदनक्षमता वाढवा म्हणजे ग्लोव्ज घातलेले असताना ती वापरता येईल</string>
+    <string name="increasing_ring_volume_option_title">रिंग ध्वनी वाढवणे</string>
+    <string name="increasing_ring_min_volume_title">प्रारंभ ध्वनी</string>
+    <string name="increasing_ring_ramp_up_time_title">रॅम्प-अप वेळ</string>
+    <string name="lockpattern_settings_enable_error_path_title">पॅटर्न त्रुटी दर्शवा</string>
+    <string name="lockpattern_settings_enable_dots_title">पॅटर्न डॉट्स दर्शवा</string>
+    <string name="unlock_scramble_pin_layout_title">मांडणी स्क्रॅम्बल करा</string>
+    <string name="unlock_scramble_pin_layout_summary">डिव्हाइस अनलॉक करताना पिन मांडणी स्क्रॅम्बल करा</string>
+    <string name="proximity_wake_title">अपघाताने जागे करण्यास प्रतिबंध करा</string>
+    <string name="touchscreen_hovering_title">टचस्क्रीन हॉवरिंग</string>
+    <string name="touchscreen_hovering_summary">वेब ब्राउझर्स, दूरस्थ डेस्कटॉप्स इ. मध्ये तुम्हाला माउसप्रमाणे स्क्रीनवर हॉवर करू देते</string>
+    <string name="wake_when_plugged_or_unplugged_title">जागे व्हा प्लग</string>
+    <string name="wake_when_plugged_or_unplugged_summary">पॉवर स्त्रोत कनेक्ट किंवा डिस्कनेक्ट करताना हा स्क्रीन चालू करा</string>
+</resources>
diff --git a/res/values-ms/cm_strings.xml b/res/values-ms/cm_strings.xml
new file mode 100644
index 0000000..fa154a3
--- /dev/null
+++ b/res/values-ms/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">Meningkatkan kadar muat semula daripada 60 kepada %1$d Hz untuk sesetengah kandungan secara automatik. Meningkatkan penggunaan bateri.</string>
+</resources>
diff --git a/res/values-my/cm_strings.xml b/res/values-my/cm_strings.xml
new file mode 100644
index 0000000..f231e21
--- /dev/null
+++ b/res/values-my/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">အကြောင်းအရာအချို့အတွက် ပြန်လည်စတင်နှုန်းကို ၆၀ မှ ၉၀ Hz သို့ အလိုအလျောက် တိုးပေးသည်။ ဘက်ထရီ အသုံးပြုမှု တိုးလာပါမည်။</string>
+</resources>
diff --git a/res/values-nb/cm_strings.xml b/res/values-nb/cm_strings.xml
new file mode 100644
index 0000000..20e8e61
--- /dev/null
+++ b/res/values-nb/cm_strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">LineageOS juridisk</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Du er nå <xliff:g id="step_count"> %1$d</xliff:g> skritt fra aktivering av utviklerinnstillinger.</item>
+        <item quantity="other">Du er nå <xliff:g id="step_count"> %1$d</xliff:g> skritt fra aktivering av utviklerinnstillinger.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Du har aktivert innstillinger for utviklere!</string>
+    <string name="show_dev_already_cm">Ikke nødvendig, du allerede har aktivert utviklingsinnstillinger.</string>
+    <string name="peak_refresh_rate_summary_custom">Øker oppdateringsfrekvensen automatisk fra 60 til %1$d Hz for noe innhold. Øker batteribruken.</string>
+    <string name="heads_up_notifications_enabled_title">Varselvindu</string>
+    <string name="heads_up_notifications_enabled_summary">Vis prioriterte varsler i et lite flytende vindu</string>
+    <string name="high_touch_sensitivity_title">Høy touch sensitivitet</string>
+    <string name="high_touch_sensitivity_summary">Øk berøringsskjermens følsomhet slik at den kan brukes med hansker</string>
+    <string name="increasing_ring_volume_option_title">Økende ringevolum</string>
+    <string name="increasing_ring_min_volume_title">Start volum</string>
+    <string name="increasing_ring_ramp_up_time_title">Ramp-up tid</string>
+    <string name="lockscreen_media_art_title">Vis media coverbilde</string>
+    <string name="lock_settings_picker_pattern_size_message">Velg størrelse på mønster</string>
+    <string name="lockpattern_settings_enable_error_path_title">Vis feil</string>
+    <string name="lockpattern_settings_enable_dots_title">Vis mønster prikker</string>
+    <string name="app_notification_sound_timeout_title">Minimum tid imellom varsellyder</string>
+    <string name="app_notification_sound_timeout_summary_template">Gi lyder og vibrasjoner bare lov å ringe hvert <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Ingen begrensning</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 sekunder</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 sekunder</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minutt</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minutter</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minutter</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minutter</string>
+    <string name="unlock_scramble_pin_layout_title">Endre layout</string>
+    <string name="unlock_scramble_pin_layout_summary">Endre PIN layout når enheten låses opp</string>
+    <string name="proximity_wake_title">Hindre utilsiktet vekking</string>
+    <string name="touchscreen_hovering_title">Berøringsskjerm hovring</string>
+    <string name="touchscreen_hovering_summary">Lar deg hovre over skjermen som en mus på en nettleser, eksternt skrivebord osv</string>
+    <string name="wake_when_plugged_or_unplugged_title">Våkne ved tilkobling av strøm</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Skjermen slås på når du kobler til eller kobler fra en strømkilde</string>
+</resources>
diff --git a/res/values-ne/cm_strings.xml b/res/values-ne/cm_strings.xml
new file mode 100644
index 0000000..49e589e
--- /dev/null
+++ b/res/values-ne/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">केही सामग्रीका लागि रिफ्रेस रेट स्वतः ६० हर्ट्जबाट बढाएर ९० हर्ट्ज बनाउँछ। ब्याट्रीको उपयोग बढाउँछ।</string>
+</resources>
diff --git a/res/values-nl/cm_strings.xml b/res/values-nl/cm_strings.xml
new file mode 100644
index 0000000..992227e
--- /dev/null
+++ b/res/values-nl/cm_strings.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Extra\'s</string>
+    <string name="advanced_keyboard_settings_title">Geavanceerde instellingen</string>
+    <string name="adb_enable_root">Geroote foutopsporing</string>
+    <string name="adb_enable_summary_root">Uitvoeren van Android foutopsporing als root toestaan</string>
+    <string name="backup_transport_setting_label">Wijzig back-up provider</string>
+    <string name="backup_transport_title">Kies back-up provider</string>
+    <string name="berry_black_theme_title">Puur zwart</string>
+    <string name="berry_black_theme_summary">Puur zwarte achtergrond voor donker thema</string>
+    <string name="lineagelicense_title">Juridische informatie van LineageOS</string>
+    <string name="device_info_protected_single_press">Tik om info te tonen</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">U bent nog <xliff:g id="step_count">%1$d</xliff:g> stap verwijderd van de opties voor ontwikkelaars.</item>
+        <item quantity="other">U bent nog <xliff:g id="step_count">%1$d</xliff:g> stappen verwijderd van de opties voor ontwikkelaars.</item>
+    </plurals>
+    <string name="show_dev_on_cm">U hebt de opties voor ontwikkelaars ingeschakeld!</string>
+    <string name="show_dev_already_cm">Niet nodig, u hebt de opties voor ontwikkelaars al ingeschakeld.</string>
+    <string name="peak_refresh_rate_summary_custom">Hiermee wordt de vernieuwingssnelheid automatisch verhoogd van 60 naar %1$d Hz voor bepaalde content. Het batterijgebruik neemt toe.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Tikken om te slapen</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Dubbeltikken op de statusbalk of schermvergrendeling om het scherm uit te schakelen</string>
+    <string name="high_touch_polling_rate_title">Hoge touch polling snelheid</string>
+    <string name="high_touch_polling_rate_summary">Verhoog touchscreen polling snelheid</string>
+    <string name="heads_up_notifications_enabled_title">Heads-up</string>
+    <string name="heads_up_notifications_enabled_summary">Prioriteitsmeldingen weergeven in klein zwevend venster</string>
+    <string name="high_touch_sensitivity_title">Hoge aanraakgevoeligheid</string>
+    <string name="high_touch_sensitivity_summary">Gevoeligheid van het scherm verhogen, zodat het bediend kan worden met handschoenen</string>
+    <string name="tethering_allow_vpn_upstreams_title">Clients toestaan om VPN\'s te gebruiken</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Sta hotspot-gebruikers toe om de VPN-verbindingen van dit apparaat te gebruiken om te uploaden</string>
+    <string name="increasing_ring_volume_option_title">In volume toenemende beltoon</string>
+    <string name="increasing_ring_min_volume_title">Startvolume</string>
+    <string name="increasing_ring_ramp_up_time_title">Ophoogtijd</string>
+    <string name="lockscreen_media_art_title">Albumhoezen weergeven</string>
+    <string name="lock_settings_picker_pattern_size_message">Grootte patroon kiezen</string>
+    <string name="lockpattern_settings_enable_error_path_title">Patroonfout weergeven</string>
+    <string name="lockpattern_settings_enable_dots_title">Patroonknoppen weergeven</string>
+    <string name="max_refresh_rate_title">Piek vernieuwingsfrequentie</string>
+    <string name="min_refresh_rate_title">Minimale verversingsfrequentie</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Vind de vingerafdruksensor op de voorkant van uw tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Vind de vingerafdruksensor op de voorkant van uw apparaat.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Vind de vingerafdruksensor op de voorkant van uw telefoon.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Vind de vingerafdruksensor op de achterkant van uw tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Vind de vingerafdrukscanner aan de linkerkant van uw apparaat.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Vind de vingerafdruksensor op de achterkant van uw telefoon.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Vind de vingerafdruksensor op de zijkant van uw tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Vind de vingerafdruksensor aan de zijkant van uw apparaat.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Vind de vingerafdruksensor op de zijkant van uw telefoon.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Raak de sensor aan op de voorkant van uw tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Raak de sensor aan op de voorkant van uw tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Raak de sensor aan op de voorkant van uw telefoon.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Raak de sensor aan op de achterkant van uw tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Raak de sensor aan op de achterkant van uw apparaat.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Raak de sensor aan op de achterkant van uw telefoon.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Raak de sensor aan de zijkant van uw tablet aan.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Raak de sensor aan de zijkant van uw apparaat.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Raak de sensor aan de zijkant van uw telefoon.</string>
+    <string name="show_navbar_hint_title">Navigatie hint</string>
+    <string name="show_navbar_hint_summary">Toon navigatiehintbalk aan de onderkant van het scherm</string>
+    <string name="app_notification_sound_timeout_title">Minimale tijd tussen meldingsgeluiden</string>
+    <string name="app_notification_sound_timeout_summary_template">Geluid of trillen niet meer dan één keer per <xliff:g id="duration">%1$s</xliff:g> toestaan</string>
+    <string name="app_notification_sound_timeout_value_none">Geen beperking</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 seconden</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 seconden</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minuut</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minuten</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minuten</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minuten</string>
+    <string name="auto_brightness_one_shot_title">Eén schot automatische helderheid</string>
+    <string name="auto_brightness_one_shot_summary">Helderheid aanpassing zal alleen plaatsvinden op het moment dat het scherm is ingeschakeld</string>
+    <string name="data_usage_app_restrict_all">Netwerktoegang toestaan</string>
+    <string name="data_usage_app_restrict_all_summary">Schakel netwerkgebruik in</string>
+    <string name="data_usage_app_restrict_mobile">Mobiele data</string>
+    <string name="data_usage_app_restrict_mobile_summary">Gebruik van mobiele data inschakelen</string>
+    <string name="data_usage_app_restrict_vpn">VPN-gegevens</string>
+    <string name="data_usage_app_restrict_vpn_summary">Toegang tot VPN-gegevens toestaan</string>
+    <string name="data_usage_app_restrict_wifi">Gegevens via wifi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Gebruik van gegevens via wifi inschakelen</string>
+    <string name="unlock_scramble_pin_layout_title">Lay-out husselen</string>
+    <string name="unlock_scramble_pin_layout_summary">PIN-lay-out door elkaar husselen bij apparaat ontgrendelen</string>
+    <string name="proximity_wake_title">Per ongeluk ontwaken voorkomen</string>
+    <string name="proximity_wake_summary">Nabijheidssensor gebruiken voorafgaand aan ontwaken van scherm</string>
+    <string name="touchscreen_gesture_settings_title">Schermgebaren</string>
+    <string name="touchscreen_gesture_settings_summary">Diverse schermgebaren gebruiken voor snelle acties</string>
+    <string name="touchscreen_hovering_title">Zweven boven scherm</string>
+    <string name="touchscreen_hovering_summary">Met uw vinger boven het zwerm zweven, zoals een muis in browsers, bureaublad op afstand, etc.</string>
+    <string name="wake_when_plugged_or_unplugged_title">Ontwaken door lader</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Scherm aan bij het aansluiten of loskoppelen van een lader</string>
+    <string name="fast_charging_title">Snelladen</string>
+    <string name="fast_charging_summary">Schakel uit om de warmteproductie van het apparaat te verminderen tijdens het opladen of om de levensduur van de batterij te verlengen</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Vingerafdruksensor lang indrukken om telefoon te ontgrendelen</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Vingerafdruksensor lang indrukken om tablet te ontgrendelen</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Vingerafdruksensor lang indrukken om apparaat te ontgrendelen</string>
+    <string name="ambient_display_screen_off_udfps_summary">Houdt de vingerafdruksensor lang ingedrukt om het scherm aan te zetten en te ontgrendelen.</string>
+    <string name="storage_warning_internal">Waarschuwing: Deze optie werkt mogelijk niet goed of leidt tot gegevensverlies en wordt daarom niet aangeraden!</string>
+    <string name="assisted_gps_summary">Download satellietondersteuningsgegevens van het internet die de opstartprestaties van GPS aanzienlijk kunnen verbeteren. Voor noodoproepen is assisted GPS altijd toegestaan.</string>
+</resources>
diff --git a/res/values-or/cm_strings.xml b/res/values-or/cm_strings.xml
new file mode 100644
index 0000000..204d2cc
--- /dev/null
+++ b/res/values-or/cm_strings.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">ସିଆନୋଜେନ୍‍ମୋଡ୍‍ ଲିଗାଲ୍‍</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">ଉନ୍ନତି ସେଟିଂସମୂହ‍ ସଷମ କରାଯିବା ଠାରୁ ଆପଣ ବର୍ତ୍ତମାନ <xliff:g id="step_count">%1$d</xliff:g> ପର୍ଯ୍ୟାୟ ଦୂରରେ ଅଛନ୍ତି।</item>
+        <item quantity="other">ଉନ୍ନତି ସେଟିଂସମୂହ ସଷମ କରାଯିବା ଠାରୁ ଆପଣ ବର୍ତ୍ତମାନ <xliff:g id="step_count">%1$d</xliff:g> ପର୍ଯ୍ୟାୟ ଦୂରରେ ଅଛନ୍ତି।</item>
+    </plurals>
+    <string name="show_dev_on_cm">ଆପଣ ଉନ୍ନତି ସେଟିଂସ୍‍ ସଷମ କରିଛନ୍ତି!</string>
+    <string name="show_dev_already_cm">ଆବଶ୍ୟକ ନାହିଁ, ଆପଣ ଆଗରୁ ଉନ୍ନତି ସେଟିଂସମୂହ ସଷମ କରିସାରିଛନ୍ତି।</string>
+    <string name="peak_refresh_rate_summary_custom">କିଛି ବିଷୟବସ୍ତୁ ପାଇଁ ରିଫ୍ରେସ୍ ରେଟ୍ ସ୍ୱଚାଳିତ ଭାବରେ 60ରୁ %1$d Hz ପର୍ଯ୍ୟନ୍ତ ବଢ଼ାଇଥାଏ। ବ୍ୟାଟେରୀର ବ୍ୟବହାର ବଢ଼ାଇଥାଏ।</string>
+    <string name="high_touch_sensitivity_title">ଅଧିକ ସ୍ପର୍ଶ ତୀବ୍ରତା</string>
+    <string name="high_touch_sensitivity_summary">ଟଚ୍‍ସ୍କ୍ରିନ୍‍ ତୀବ୍ରତା ବଢାନ୍ତୁ ଯାହା ଫଳରେ ତାହା ଗ୍ଲୋବ୍ସ ପିଂଧିବା ସମୟରେ ବ୍ୟବହାର କରାଯାଇପାରିବ</string>
+    <string name="increasing_ring_volume_option_title">ରିଙ୍ଗ୍‍ ଭୋଲ୍ୟୁମ୍‍ ବଢାଯାଉଛି</string>
+    <string name="increasing_ring_min_volume_title">ଭୋଲ୍ୟୁମ୍‍ ଆରଭ କରନ୍ତୁ</string>
+    <string name="increasing_ring_ramp_up_time_title">ସମୟ ରାମ୍ପ୍‍-ଅପ୍‍ କରନ୍ତୁ</string>
+    <string name="lockpattern_settings_enable_error_path_title">ପ୍ୟାଟର୍ଣ୍ଣ ତ୍ରୁଟି ଦେଖାନ୍ତୁ</string>
+    <string name="lockpattern_settings_enable_dots_title">ପାଟର୍ଣ୍ଣ ଡ୍ଟ୍ସ ଦେଖାନ୍ତୁ</string>
+    <string name="unlock_scramble_pin_layout_title">ସ୍କ୍ରାମେବୁଲ୍‍ ଲେଆଉଟ୍‍</string>
+    <string name="unlock_scramble_pin_layout_summary">ଡିଭାଇସ୍‍ ଅ୍ନ୍‍ଲକ୍‍ କରିବା ସମୟରେ ସ୍କ୍ରାମେବୁଲ୍ PIN ଲେଆଉଟ୍‍</string>
+    <string name="proximity_wake_title">ର୍ଆକ୍ସିଡେଂଟାଲ୍‍ ୱେକ୍‍-ଅପ୍‍ ପ୍ରତିରୋଧ କରନ୍ତୁ</string>
+    <string name="touchscreen_hovering_title">ଟଚ୍‍ସ୍କ୍ରିନ୍‍ ହୋଭରିଂ</string>
+    <string name="touchscreen_hovering_summary">ୱେବ୍‍ ବ୍ରାଉଜର୍‍, ରିମୋ‍ ଡେସ୍କଟପ୍ ଇତ୍ୟା୍ଦି‍ରେ ମାଉସ୍‍ ଭଳି ଆପଣଙ୍କୁ ସ୍କ୍ରିନ୍‍ରେ ହୋଭର୍‍ ପାଇଁ ଅନୁମତି ଦିଅ</string>
+    <string name="wake_when_plugged_or_unplugged_title">ପ୍ଲଗ୍‍କୁ ଉଠାନ୍ତୁ</string>
+    <string name="wake_when_plugged_or_unplugged_summary">ଏକ ପାୱାର୍‍ ଉତ୍ସ ସଂଯୋଗ ବା ବିଛିନ୍ନ କରିବା ସମୟରେ ସ୍କ୍ରିନ୍‍ ଅନ୍‍ କରନ୍ତୁ</string>
+</resources>
diff --git a/res/values-pa/cm_strings.xml b/res/values-pa/cm_strings.xml
new file mode 100644
index 0000000..3da1740
--- /dev/null
+++ b/res/values-pa/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਕੁਝ ਸਮੱਗਰੀਆਂ ਲਈ ਰਿਫ੍ਰੈਸ਼ ਦਰ ਨੂੰ 60 ਤੋਂ ਵਧਾ ਕੇ %1$d Hz ਕਰ ਦਿੰਦਾ ਹੈ। ਬੈਟਰੀ ਵਰਤੋਂ ਵੱਧ ਜਾਂਦੀ ਹੈ।</string>
+</resources>
diff --git a/res/values-pl/cm_strings.xml b/res/values-pl/cm_strings.xml
new file mode 100644
index 0000000..1b1e53d
--- /dev/null
+++ b/res/values-pl/cm_strings.xml
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Dodatki</string>
+    <string name="advanced_keyboard_settings_title">Ustawienia zaawansowane</string>
+    <string name="adb_enable_root">Debugowanie jako root</string>
+    <string name="adb_enable_summary_root">Zezwól na debugowanie Androida jako root</string>
+    <string name="backup_transport_setting_label">Zmień dostawcę kopii zapasowej</string>
+    <string name="backup_transport_title">Wybierz dostawcę kopii zapasowej</string>
+    <string name="berry_black_theme_title">Czysta czerń</string>
+    <string name="berry_black_theme_summary">Czysta czerń tła dla ciemnego motywu</string>
+    <string name="lineagelicense_title">Informacje prawne LineageOS</string>
+    <string name="device_info_protected_single_press">Dotknij, aby wyświetlić informacje</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Jesteś o <xliff:g id="step_count">%1$d</xliff:g> krok od włączenia ustawień programisty.</item>
+        <item quantity="few">Jesteś <xliff:g id="step_count">%1$d</xliff:g> kroki od włączenia ustawień programisty.</item>
+        <item quantity="many">Jesteś <xliff:g id="step_count">%1$d</xliff:g> kroków od włączenia ustawień programisty.</item>
+        <item quantity="other">Jesteś <xliff:g id="step_count">%1$d</xliff:g> kroków od włączenia ustawień programisty.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Aktywowano opcje programistyczne!</string>
+    <string name="show_dev_already_cm">Wystarczy, już jesteś programistą.</string>
+    <string name="peak_refresh_rate_summary_custom">W przypadku niektórych treści automatycznie podwyższa częstotliwość odświeżania z 60 na %1$d Hz. Zwiększa zużycie baterii.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Dotknij, by uśpić</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Dotknij dwukrotnie na pasku statusu lub ekranie blokady, aby wyłączyć ekran</string>
+    <string name="high_touch_polling_rate_title">Wysoka szybkość próbkowania dotykowego</string>
+    <string name="high_touch_polling_rate_summary">Zwiększ szybkość próbkowania ekranu dotykowego</string>
+    <string name="heads_up_notifications_enabled_title">Wyskakujące powiadomienia</string>
+    <string name="heads_up_notifications_enabled_summary">Wyświetlaj ważne powiadomienia w małym oknie pływającym</string>
+    <string name="high_touch_sensitivity_title">Wysoka czułość dotyku</string>
+    <string name="high_touch_sensitivity_summary">Zwiększa czułość ekranu dotykowego, więc możesz go używać podczas noszenia rękawiczek</string>
+    <string name="tethering_allow_vpn_upstreams_title">Zezwól podłączonym urządzeniom na korzystanie z VPN</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Zezwól urządzeniom, podłączonym do udostępnionej sieci, na wysyłanie pakietów, poprzez VPN tego urządzenia</string>
+    <string name="increasing_ring_volume_option_title">Narastająca głośność dzwonka</string>
+    <string name="increasing_ring_min_volume_title">Głośność początkowa</string>
+    <string name="increasing_ring_ramp_up_time_title">Wydłużenie odstępu</string>
+    <string name="lockscreen_media_art_title">Wyświetlanie okładki albumu</string>
+    <string name="lock_settings_picker_pattern_size_message">Wybierz rozmiar wzoru</string>
+    <string name="lockpattern_settings_enable_error_path_title">Pokazuj błędny wzór</string>
+    <string name="lockpattern_settings_enable_dots_title">Pokazuj punkty wzoru</string>
+    <string name="max_refresh_rate_title">Najwyższa częstotliwość odświeżania</string>
+    <string name="min_refresh_rate_title">Minimalna częstotliwość odświeżania</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Zlokalizuj czytnik linii papilarnych na przedniej stronie tabletu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Zlokalizuj czytnik linii papilarnych na przedniej stronie urządzenia.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Zlokalizuj czytnik linii papilarnych na przedniej stronie telefonu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Zlokalizuj czytnik linii papilarnych na tylnej stronie tabletu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Zlokalizuj czytnik linii papilarnych na tylnej stronie urządzenia.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Zlokalizuj czytnik linii papilarnych na tylnej stronie telefonu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Zlokalizuj czytnik linii papilarnych znajdujący się z boku tabletu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Zlokalizuj czytnik linii papilarnych znajdujący się z boku urządzenia.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Zlokalizuj czytnik linii papilarnych znajdujący się z boku telefonu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Dotknij czujnika znajdującego się z przodu twojego tabletu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Dotknij czujnika znajdującego się z przodu twojego urządzenia.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Dotknij czujnika znajdującego się z przodu twojego telefonu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Dotknij czujnika znajdującego się z tyłu twojego tabletu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Dotknij czujnika znajdującego się z tyłu twojego urządzenia.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Dotknij czujnika znajdującego się z tyłu twojego telefonu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Dotknij czujnika znajdującego się z boku twojego tabletu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Dotknij czujnika znajdującego się z boku twojego urządzenia.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Dotknij czujnika znajdującego się z boku twojego telefonu.</string>
+    <string name="show_navbar_hint_title">Pasek nawigacji</string>
+    <string name="show_navbar_hint_summary">Pokaż pasek nawigacji w dolnej części ekranu</string>
+    <string name="app_notification_sound_timeout_title">Minimalny czas między dźwiękami powiadomień</string>
+    <string name="app_notification_sound_timeout_summary_template">Zezwól na dźwięki i wibracje, nie więcej niż jeden raz co każde <xliff:g id="duration">%1$s </xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Brak ograniczeń</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 sekund</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 sekund</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 min</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 min</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 min</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minut</string>
+    <string name="auto_brightness_one_shot_title">Jednorazowa jasność automatyczna</string>
+    <string name="auto_brightness_one_shot_summary">Regulacja jasności nastąpi tylko w momencie włączenia ekranu</string>
+    <string name="data_usage_app_restrict_all">Zezwól na dostęp do sieci</string>
+    <string name="data_usage_app_restrict_all_summary">Włącz użycie sieci</string>
+    <string name="data_usage_app_restrict_mobile">Dane komórkowe</string>
+    <string name="data_usage_app_restrict_mobile_summary">Włącz użycie danych komórkowych</string>
+    <string name="data_usage_app_restrict_vpn">Dane VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Włącz użycie danych VPN</string>
+    <string name="data_usage_app_restrict_wifi">Dane Wi-Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Włącz użycie danych Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">Pomieszany układ</string>
+    <string name="unlock_scramble_pin_layout_summary">Pomieszany układ cyfr przy odblokowywaniu urządzenia kodem PIN</string>
+    <string name="proximity_wake_title">Zapobiega przypadkowemu wybudzeniu</string>
+    <string name="proximity_wake_summary">Sprawdź czujnik zbliżeniowy przed wybudzeniem ekranu</string>
+    <string name="touchscreen_gesture_settings_title">Gesty ekranu dotykowego</string>
+    <string name="touchscreen_gesture_settings_summary">Wykonuj różne gesty na ekranie dotykowym, aby wykonać szybkie akcje</string>
+    <string name="touchscreen_hovering_title">Wskazywanie ekranu dotykowego</string>
+    <string name="touchscreen_hovering_summary">Pozwala na wskazywanie na ekranie jak myszką w przeglądarce internetowej, pulpicie zdalnym itd.</string>
+    <string name="wake_when_plugged_or_unplugged_title">Wybudź przy podłączaniu</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Włącz ekran podczas podłączania i odłączania od źródła zasilania</string>
+    <string name="fast_charging_title">Szybkie ładowanie</string>
+    <string name="fast_charging_summary">Wyłącz, aby zmniejszyć ciepło wytwarzane przez urządzenie podczas ładowania lub wydłużyć żywotność baterii</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Odblokuj telefon dłużej dotykając czytnika linii papilarnych</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Odblokuj tablet dłużej dotykając czytnika linii papilarnych</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Odblokuj urządzenie dłużej dotykając czytnika linii papilar.</string>
+    <string name="ambient_display_screen_off_udfps_summary">Aby wybudzić i odblokować ekran, dotknij dłużej czytnika linii papilarnych, znajdującego się pod wyświetlaczem.</string>
+    <string name="storage_warning_internal">Ostrzeżenie: Ta opcja może nie działać poprawnie lub prowadzić do utraty danych i dlatego nie jest zalecana!</string>
+    <string name="assisted_gps_summary">Pobierz dane pomocy satelitarnej z Internetu, które mogą znacznie poprawić wydajność uruchamiania GPS. W przypadku połączeń awaryjnych wspomagany GPS jest zawsze dozwolony.</string>
+</resources>
diff --git a/res/values-pt-rBR/cm_strings.xml b/res/values-pt-rBR/cm_strings.xml
new file mode 100644
index 0000000..3845e38
--- /dev/null
+++ b/res/values-pt-rBR/cm_strings.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Extras</string>
+    <string name="advanced_keyboard_settings_title">Configurações avançadas</string>
+    <string name="adb_enable_root">Depuração como superusuário</string>
+    <string name="adb_enable_summary_root">Permitir a depuração do Android como superusuário</string>
+    <string name="backup_transport_setting_label">Alterar provedor de backup</string>
+    <string name="backup_transport_title">Selecione o provedor de backup</string>
+    <string name="berry_black_theme_title">Preto puro</string>
+    <string name="berry_black_theme_summary">Preto puro como cor de fundo para tema escuro</string>
+    <string name="lineagelicense_title">Licença LineageOS</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Você agora está a <xliff:g id="step_count">%1$d </xliff:g> passo de ativar as configurações de desenvolvimento.</item>
+        <item quantity="other">Você agora está a <xliff:g id="step_count">%1$d </xliff:g> passos de ativar as configurações de desenvolvimento.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Você ativou as configurações de desenvolvedor!</string>
+    <string name="show_dev_already_cm">Não é preciso, você já ativou as configurações de desenvolvedor.</string>
+    <string name="peak_refresh_rate_summary_custom">Aumenta automaticamente a taxa de atualização de 60 para %1$d Hz para alguns conteúdos. Maior uso da bateria</string>
+    <string name="status_bar_double_tap_to_sleep_title">Toque duplo para suspender</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Toque duas vezes na barra de status ou na tela de bloqueio para desligar a tela</string>
+    <string name="heads_up_notifications_enabled_title">Notificações pop-up</string>
+    <string name="heads_up_notifications_enabled_summary">Mostrar notificações prioritárias numa pequena janela flutuante</string>
+    <string name="high_touch_sensitivity_title">Toque de alta sensibilidade</string>
+    <string name="high_touch_sensitivity_summary">Aumenta a sensibilidade da tela para poder ser usada com luvas</string>
+    <string name="tethering_allow_vpn_upstreams_title">Permitir que clientes usem VPNs</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Permitir que os clientes de hotspot usem este dispositivo\u2019 para conexões VPN de alta velocidade</string>
+    <string name="increasing_ring_volume_option_title">Aumentando volume do toque</string>
+    <string name="increasing_ring_min_volume_title">Volume inicial</string>
+    <string name="increasing_ring_ramp_up_time_title">Intervalo de aumento</string>
+    <string name="lockscreen_media_art_title">Exibir capa do álbum</string>
+    <string name="lock_settings_picker_pattern_size_message">Escolha um tamanho para o padrão</string>
+    <string name="lockpattern_settings_enable_error_path_title">Exibir erro de padrão</string>
+    <string name="lockpattern_settings_enable_dots_title">Exibir pontos no padrão</string>
+    <string name="min_refresh_rate_title">Taxa de atualização mínima</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Localize o sensor de impressão digital na parte frontal do seu tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Localize o sensor de impressão digital na parte frontal do seu dispositivo.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Localize o sensor de impressão digital na parte frontal do seu telefone.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Localize o sensor de impressão digital na parte traseira do seu tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Localize o sensor de impressão digital na parte traseira do seu dispositivo.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Localize o sensor de impressão digital na parte de trás do seu telefone.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Localize o sensor de impressão digital na lateral do seu tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Localize o sensor de impressão digital na lateral do seu dispositivo.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Localize o sensor de impressão digital na parte lateral do seu telefone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Toque no sensor na parte frontal do seu dispositivo.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Toque no sensor na parte frontal do seu telefone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Toque no sensor na parte traseira do seu tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Toque no sensor na parte traseira do seu dispositivo.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Toque no sensor na parte traseira do seu telefone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Toque no sensor na lateral do seu tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Toque no sensor na lateral do seu dispositivo.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Toque no sensor na lateral do seu telefone.</string>
+    <string name="app_notification_sound_timeout_title">Tempo mínimo entre sons de notificação</string>
+    <string name="app_notification_sound_timeout_summary_template">Permitir sons ou vibrações apenas uma vez a cada <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Sem restrição</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 segundos</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 segundos</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minuto</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minutos</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minutos</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minutos</string>
+    <string name="data_usage_app_restrict_all">Permitir acesso à rede</string>
+    <string name="data_usage_app_restrict_all_summary">Permitir o uso da rede</string>
+    <string name="data_usage_app_restrict_mobile">Dados móveis</string>
+    <string name="data_usage_app_restrict_mobile_summary">Permitir o uso de dados móveis</string>
+    <string name="data_usage_app_restrict_vpn">Dados VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Permitir o uso de dados via VPN</string>
+    <string name="data_usage_app_restrict_wifi">Dados Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Permitir o uso de dados Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">Embaralhar layout</string>
+    <string name="unlock_scramble_pin_layout_summary">Embaralhar PIN ao desbloquear o dispositivo</string>
+    <string name="proximity_wake_title">Evitar despertar acidental</string>
+    <string name="proximity_wake_summary">Verificar o sensor de proximidade antes de ligar a tela</string>
+    <string name="touchscreen_gesture_settings_title">Gestos na tela</string>
+    <string name="touchscreen_gesture_settings_summary">Faça vários gestos na tela para ações rápidas</string>
+    <string name="touchscreen_hovering_title">Flutuar o dedo na tela</string>
+    <string name="touchscreen_hovering_summary">Permite que você flutue o dedo na tela como um mouse em navegadores web, desktops remotos, etc</string>
+    <string name="wake_when_plugged_or_unplugged_title">Acordar ao plugar</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Ativar a tela ao ligar ou desligar do carregador</string>
+    <string name="fast_charging_title">Carregamento rápido</string>
+</resources>
diff --git a/res/values-pt-rPT/cm_strings.xml b/res/values-pt-rPT/cm_strings.xml
new file mode 100644
index 0000000..b5189c9
--- /dev/null
+++ b/res/values-pt-rPT/cm_strings.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Extras</string>
+    <string name="advanced_keyboard_settings_title">Definições avançadas</string>
+    <string name="adb_enable_root">Depuração root</string>
+    <string name="adb_enable_summary_root">Permitir a execução da depuração Android como root</string>
+    <string name="backup_transport_setting_label">Alterar provedor de cópia de segurança</string>
+    <string name="backup_transport_title">Selecionar provedor de cópia de segurança</string>
+    <string name="berry_black_theme_title">Preto puro</string>
+    <string name="berry_black_theme_summary">Fundo em preto puro para tema escuro</string>
+    <string name="lineagelicense_title">Licença LineageOS</string>
+    <string name="device_info_protected_single_press">Toque para mostrar informações</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Está agora a <xliff:g id="step_count">%1$d</xliff:g> passo de ativar as opções de programador.</item>
+        <item quantity="other">Está agora a <xliff:g id="step_count">%1$d</xliff:g> passos de ativar as opções de programador.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Ativou as opções de programador!</string>
+    <string name="show_dev_already_cm">Não é necessário, já ativou as opções de programador.</string>
+    <string name="peak_refresh_rate_summary_custom">Aumenta automaticamente a taxa de atualização de 60 para %1$d Hz em certos conteúdos. Aumenta a utilização da bateria.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Toque duplo para desligar o ecrã</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Dê um toque duplo na barra de estado ou ecrã de bloqueio para desligar o ecrã</string>
+    <string name="high_touch_polling_rate_title">Alta taxa de amostragem de toque</string>
+    <string name="high_touch_polling_rate_summary">Aumentar a taxa de amostragem de toque do ecrã</string>
+    <string name="heads_up_notifications_enabled_title">Notificações flutuantes</string>
+    <string name="heads_up_notifications_enabled_summary">Mostrar notificações prioritárias numa pequena janela flutuante</string>
+    <string name="high_touch_sensitivity_title">Alta sensibilidade</string>
+    <string name="high_touch_sensitivity_summary">Aumentar a sensibilidade do ecrã para ser manuseado quando estiver a usar luvas</string>
+    <string name="tethering_allow_vpn_upstreams_title">Permitir que os clientes usem VPNs</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Permitir que os clientes de hotspot usem as ligações VPN deste dispositivo</string>
+    <string name="increasing_ring_volume_option_title">Toque crescente</string>
+    <string name="increasing_ring_min_volume_title">Volume inicial</string>
+    <string name="increasing_ring_ramp_up_time_title">Intervalo de aumento</string>
+    <string name="lockscreen_media_art_title">Mostrar capa do álbum</string>
+    <string name="lock_settings_picker_pattern_size_message">Escolha um tamanho para o padrão</string>
+    <string name="lockpattern_settings_enable_error_path_title">Mostrar erro no padrão</string>
+    <string name="lockpattern_settings_enable_dots_title">Mostrar os pontos do padrão</string>
+    <string name="max_refresh_rate_title">Taxa de atualização máxima</string>
+    <string name="min_refresh_rate_title">Taxa mínima de atualização</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Localize o sensor de impressões digitais na parte frontal do seu tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Localize o sensor de impressões digitais na parte frontal do seu dispositivo.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Localize o sensor de impressões digitais na parte frontal do seu telefone.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Localize o sensor de impressões digitais na parte traseira do seu tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Localize o sensor de impressões digitais na parte traseira do seu dispositivo.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Localize o sensor de impressões digitais na parte traseira do seu telefone.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Localize o sensor de impressões digitais na lateral do seu tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Localize o sensor de impressões digitais na lateral do seu dispositivo.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Localize o sensor de impressões digitais na lateral do seu telefone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Toque no sensor na parte frontal do seu tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Toque no sensor na parte frontal do seu dispositivo.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Toque no sensor na parte frontal do seu telefone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Toque no sensor na parte traseira do seu tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Toque no sensor na parte traseira do seu dispositivo.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Toque no sensor na parte traseira do seu telefone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Toque no sensor na lateral do seu tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Toque no sensor na lateral do seu dispositivo.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Toque no sensor na lateral do seu telefone.</string>
+    <string name="show_navbar_hint_title">Dica de navegação</string>
+    <string name="show_navbar_hint_summary">Mostrar a barra de dicas de navegação na parte inferior do ecrã</string>
+    <string name="app_notification_sound_timeout_title">Tempo mínimo entre sons de notificação</string>
+    <string name="app_notification_sound_timeout_summary_template">Permitir sons ou vibrações, apenas uma vez, a cada <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Sem restrição</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 segundos</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 segundos</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minuto</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minutos</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minutos</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minutos</string>
+    <string name="auto_brightness_one_shot_title">Brilho automático ao ligar o ecrã</string>
+    <string name="auto_brightness_one_shot_summary">O ajuste do brilho ocorrerá apenas no momento em que o ecrã for ligado</string>
+    <string name="data_usage_app_restrict_all">Permitir acesso à rede</string>
+    <string name="data_usage_app_restrict_all_summary">Ativar utilização da rede</string>
+    <string name="data_usage_app_restrict_mobile">Dados móveis</string>
+    <string name="data_usage_app_restrict_mobile_summary">Ativar utilização de dados móveis</string>
+    <string name="data_usage_app_restrict_vpn">Dados VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Ativar a utilização de dados VPN</string>
+    <string name="data_usage_app_restrict_wifi">Dados Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Ativar a utilização de dados Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">Disposição aleatória</string>
+    <string name="unlock_scramble_pin_layout_summary">Apresentar aleatoriamente a disposição do teclado numérico, quando desbloquear com PIN</string>
+    <string name="proximity_wake_title">Impedir que o ecrã se ligue acidentalmente</string>
+    <string name="proximity_wake_summary">Verificar o sensor de proximidade antes de ligar o ecrã</string>
+    <string name="touchscreen_gesture_settings_title">Gestos do ecrã</string>
+    <string name="touchscreen_gesture_settings_summary">Executar vários gestos no ecrã para ações rápidas</string>
+    <string name="touchscreen_hovering_title">Flutuar sobre o ecrã</string>
+    <string name="touchscreen_hovering_summary">Permite que flutue o dedo sobre o ecrã como um rato nos navegadores de internet, áreas de trabalho remotas, etc</string>
+    <string name="wake_when_plugged_or_unplugged_title">Ligar ecrã ao detetar carregador</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Ativar o ecrã quando conectar ou desconectar uma fonte de energia</string>
+    <string name="fast_charging_title">Carregamento rápido</string>
+    <string name="fast_charging_summary">Desative para reduzir a temperatura produzida pelo dispositivo enquanto carrega ou para aumentar a duração da bateria</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Mantenha premido o sensor de impressão digital para desbloquear o telemóvel</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Mantenha premido o sensor de impressão digital para desbloquear o tablet</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Mantenha premido o sensor de impressão digital para desbloquear o dispositivo</string>
+    <string name="ambient_display_screen_off_udfps_summary">Para ligar o ecrã e desbloquear, mantenha premido o sensor de impressão digital.</string>
+    <string name="storage_warning_internal">Aviso: Esta opção pode não funcionar corretamente ou levar à perda de dados, não sendo, portanto, recomendada!</string>
+</resources>
diff --git a/res/values-ro/cm_strings.xml b/res/values-ro/cm_strings.xml
new file mode 100644
index 0000000..a49dc45
--- /dev/null
+++ b/res/values-ro/cm_strings.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Mai multe</string>
+    <string name="advanced_keyboard_settings_title">Setări avansate</string>
+    <string name="adb_enable_root">Depanare ca root</string>
+    <string name="adb_enable_summary_root">Permite depanării sistemului Android să ruleze în modul root</string>
+    <string name="backup_transport_setting_label">Schimbă furnizorul de backup</string>
+    <string name="backup_transport_title">Selectați furnizorul de backup</string>
+    <string name="berry_black_theme_title">Negru pur</string>
+    <string name="berry_black_theme_summary">Fundal negru pur pentru tema întunecată</string>
+    <string name="lineagelicense_title">Juridic LineageOS</string>
+    <string name="device_info_protected_single_press">Atingeți pentru a afișa informații</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Ești la <xliff:g id="step_count">%1$d</xliff:g> pas distanță de a activa opțiunile de dezvoltator.</item>
+        <item quantity="few">Ești la <xliff:g id="step_count">%1$d</xliff:g> pași distanță de a activa opțiunile de dezvoltator.</item>
+        <item quantity="other">Ești la <xliff:g id="step_count">%1$d</xliff:g> pași distanță de a activa opțiunile de dezvoltator.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Ați deblocat setările de dezvoltator!</string>
+    <string name="show_dev_already_cm">Nu este nevoie, deja ai deblocat setările de dezvoltator.</string>
+    <string name="peak_refresh_rate_summary_custom">Crește automat rata de împrospătare de la 60 la %1$d Hz pentru anumite conținuturi. Crește consumul bateriei.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Atingeți pentru sleep</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Atingeți de două ori bara de stare sau ecranul de blocare pentru a opri ecranul</string>
+    <string name="high_touch_polling_rate_title">Rată mare pentru touch polling</string>
+    <string name="high_touch_polling_rate_summary">Crește rata de polling a ecranului tactil</string>
+    <string name="heads_up_notifications_enabled_title">Heads-up</string>
+    <string name="heads_up_notifications_enabled_summary">Afișează notificările prioritare într-o fereastră micuță plutitoare</string>
+    <string name="high_touch_sensitivity_title">Sensibilitate tactilă înaltă </string>
+    <string name="high_touch_sensitivity_summary">Crește sensibilitatea ecranului tactil, astfel încât acesta poate fi utilizat în timp ce se poartă mănuși</string>
+    <string name="tethering_allow_vpn_upstreams_title">Permite clienților să utilizeze VPN-uri</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Permite clienților hotspot-ului să utilizeze conexiunile VPN ale acestui dispozitiv pentru conexiunea upstream</string>
+    <string name="increasing_ring_volume_option_title">Volum crescător</string>
+    <string name="increasing_ring_min_volume_title">Volum inițial</string>
+    <string name="increasing_ring_ramp_up_time_title">Timp de creştere a volumului</string>
+    <string name="lockscreen_media_art_title">Afișează coperta artistică a piesei</string>
+    <string name="lock_settings_picker_pattern_size_message">Alegeți dimensiunea modelului</string>
+    <string name="lockpattern_settings_enable_error_path_title">Afișare eroare model</string>
+    <string name="lockpattern_settings_enable_dots_title">Afișare puncte model</string>
+    <string name="max_refresh_rate_title">Rata maximă de împrospătare</string>
+    <string name="min_refresh_rate_title">Rata minimă de împrospătare</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Găsiți senzorul de amprentă pe partea din faţă a tabletei.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Găsiți senzorul de amprentă pe partea din faţă a dispozitivului.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Găsiți senzorul de amprentă pe partea din faţă a telefonului.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Găsiți senzorul de amprentă pe partea din spate a tabletei.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Găsiți senzorul de amprentă pe partea din spate a dispozitivului.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Găsiți senzorul de amprentă pe partea din spate a telefonului.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Găsiți senzorul de amprentă pe partea laterală a tabletei.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Găsiți senzorul de amprentă pe partea laterală a dispozitivului.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Găsiți senzorul de amprentă pe partea laterală a telefonului.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Atingeţi senzorul de pe partea din faţă a tabletei.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Atingeți senzorul de pe partea din față a dispozitivului.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Atingeți senzorul de pe partea din față a telefonului.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Atingeţi senzorul de pe partea din spate a tabletei.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Atingeţi senzorul de pe partea din spate a dispozitivului.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Atingeți senzorul de pe partea din spate a telefonului.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Atingeţi senzorul de pe partea laterală a tabletei.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Atingeţi senzorul de pe partea laterală a dispozitivului.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Atingeţi senzorul de pe partea laterală a telefonului.</string>
+    <string name="show_navbar_hint_title">Indicii navigare</string>
+    <string name="show_navbar_hint_summary">Arată indiciul bării de navigare în partea de jos a ecranului</string>
+    <string name="app_notification_sound_timeout_title">Timp minim între sunetele notificărilor</string>
+    <string name="app_notification_sound_timeout_summary_template">Nu permiteți sunete sau vibrații mai mult de o singură dată la mai puțin de fiecare <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Fără restricţie</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 secunde</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 de secunde</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minut</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minute</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minute</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 de minute</string>
+    <string name="auto_brightness_one_shot_title">Luminozitate automată instantă</string>
+    <string name="auto_brightness_one_shot_summary">Ajustarea luminozității va avea loc doar în momentul în care ecranul este pornit</string>
+    <string name="data_usage_app_restrict_all">Permiteți accesul la rețea</string>
+    <string name="data_usage_app_restrict_all_summary">Activați utilizare rețea</string>
+    <string name="data_usage_app_restrict_mobile">Date mobile</string>
+    <string name="data_usage_app_restrict_mobile_summary">Permite utilizarea datelor mobile</string>
+    <string name="data_usage_app_restrict_vpn">Date VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Activează utilizarea datelor VPN</string>
+    <string name="data_usage_app_restrict_wifi">Date Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Permite utilizarea datelor Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">Amestecă așezarea în pagină</string>
+    <string name="unlock_scramble_pin_layout_summary">Amestecă așezarea în pagină a ecranului de PIN atunci când se deblochează aparatul</string>
+    <string name="proximity_wake_title">Previne trezirea accidentală</string>
+    <string name="proximity_wake_summary">Verificaţi senzorul de proximitate înainte de a trezi ecranul</string>
+    <string name="touchscreen_gesture_settings_title">Gesturi touchscreen</string>
+    <string name="touchscreen_gesture_settings_summary">Efectuați diverse gesturi pe touchscreen pentru acţiuni rapide</string>
+    <string name="touchscreen_hovering_title">Plutire peste ecran</string>
+    <string name="touchscreen_hovering_summary">Vă permite să plutiți degetul peste ecran ca un mouse în browserele web, remote desktop-uri, etc</string>
+    <string name="wake_when_plugged_or_unplugged_title">Trezire la alimentare</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Aprinde ecranul când se conectează sau deconectează sursa de alimentare</string>
+    <string name="fast_charging_title">Încărcare rapidă</string>
+    <string name="fast_charging_summary">Dezactivați pentru a reduce căldura produsă de dispozitiv în timpul încărcării sau pentru a prelungi durata de viață a bateriei</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Apăsați lung pe senzorul de amprentă pentru a debloca telefonul</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Apăsați lung pe senzorul de amprentă pentru a debloca tableta</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Apăsați lung pe senzorul de amprentă pentru a debloca dispozitivul</string>
+    <string name="ambient_display_screen_off_udfps_summary">Pentru a porni și debloca ecranul, țineți apăsat pe senzorul de amprentă under-display.</string>
+    <string name="storage_warning_internal">Atenție: Este posibil ca această opțiune să nu funcționeze corespunzător sau să ducă la pierderea datelor și, prin urmare, nu este recomandată!</string>
+    <string name="assisted_gps_summary">Descarcă datele de asistență prin satelit de pe internet, care pot îmbunătăți considerabil performanța de pornire a GPS-ului. Pentru apelurile de urgență, GPS-ul asistat este întotdeauna permis.</string>
+</resources>
diff --git a/res/values-ru/cm_strings.xml b/res/values-ru/cm_strings.xml
new file mode 100644
index 0000000..bf95e7d
--- /dev/null
+++ b/res/values-ru/cm_strings.xml
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Дополнительно</string>
+    <string name="advanced_keyboard_settings_title">Расширенные настройки</string>
+    <string name="adb_enable_root">Отладка суперпользователем</string>
+    <string name="adb_enable_summary_root">Разрешить запуск отладки Android с правами суперпользователя</string>
+    <string name="backup_transport_setting_label">Сменить поставщика резервного копирования</string>
+    <string name="backup_transport_title">Выберите поставщика резервного копирования</string>
+    <string name="berry_black_theme_title">Натурально черный</string>
+    <string name="berry_black_theme_summary">Натурально черный фон для темной темы</string>
+    <string name="lineagelicense_title">Политика конфиденциальности LineageOS</string>
+    <string name="device_info_protected_single_press">Нажмите, чтобы показать информацию</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Нажмите еще <xliff:g id="step_count">%1$d</xliff:g> раз, чтобы включить настройки для разработчиков.</item>
+        <item quantity="few">Нажмите еще <xliff:g id="step_count">%1$d</xliff:g> раза, чтобы включить настройки для разработчиков.</item>
+        <item quantity="many">Нажмите еще <xliff:g id="step_count">%1$d</xliff:g> раз, чтобы включить настройки для разработчиков.</item>
+        <item quantity="other">Нажмите еще <xliff:g id="step_count">%1$d</xliff:g> раз, чтобы включить настройки для разработчиков.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Настройки для разработчиков включены!</string>
+    <string name="show_dev_already_cm">Нет необходимости, вы уже включили параметры разработки.</string>
+    <string name="peak_refresh_rate_summary_custom">Автоматически увеличивать частоту обновления экрана с 60 до %1$d Гц для некоторых типов контента. Увеличивает расход заряда батареи.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Коснитесь для сна</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Дважды коснитесь строки состояния или экрана блокировки, чтобы перевести устройство в спящий режим</string>
+    <string name="high_touch_polling_rate_title">Высокая частота опроса прикосновений</string>
+    <string name="high_touch_polling_rate_summary">Увеличить скорость опроса сенсорного экрана</string>
+    <string name="heads_up_notifications_enabled_title">Всплывающие уведомления</string>
+    <string name="heads_up_notifications_enabled_summary">Показывать приоритетные уведомления небольшими всплывающими окнами</string>
+    <string name="high_touch_sensitivity_title">Режим перчаток</string>
+    <string name="high_touch_sensitivity_summary">Увеличить чувствительность экрана для возможности работы в перчатках</string>
+    <string name="tethering_allow_vpn_upstreams_title">Разрешить клиентам использовать VPN</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Разрешить клиентам точки доступа при подключении использовать VPN-соединения этого устройства</string>
+    <string name="increasing_ring_volume_option_title">Возрастающая громкость звонка</string>
+    <string name="increasing_ring_min_volume_title">Начальная громкость</string>
+    <string name="increasing_ring_ramp_up_time_title">Время увеличения</string>
+    <string name="lockscreen_media_art_title">Отображать обложку мультимедиа</string>
+    <string name="lock_settings_picker_pattern_size_message">Выберите размер граф. ключа</string>
+    <string name="lockpattern_settings_enable_error_path_title">Показывать неверный ввод</string>
+    <string name="lockpattern_settings_enable_dots_title">Показывать точки</string>
+    <string name="max_refresh_rate_title">Максимальная частота обновления</string>
+    <string name="min_refresh_rate_title">Минимальная частота обновления</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Найдите сканер отпечатков пальцев на вашем планшете.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Найдите сканер отпечатков пальцев на вашем устройстве.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Найдите сканер отпечатков пальцев на вашем телефоне.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Найдите сканер отпечатков пальцев на вашем планшете.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Найдите сканер отпечатков пальцев на вашем устройстве.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Найдите сканер отпечатков пальцев на вашем телефоне.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Найдите сканер отпечатков пальцев на вашем планшете.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Найдите сканер отпечатков пальцев на вашем устройстве.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Найдите сканер отпечатков пальцев на вашем телефоне.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Коснитесь сенсора на вашем планшете.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Коснитесь сенсора на вашем устройстве.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Коснитесь сенсора на вашем телефоне.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Коснитесь сенсора на вашем планшете.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Коснитесь сенсора на вашем устройстве.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Коснитесь сенсора на вашем телефоне.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Коснитесь сенсора на вашем планшете.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Коснитесь сенсора на вашем устройстве.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Коснитесь сенсора на вашем телефоне.</string>
+    <string name="show_navbar_hint_title">Подсказки по навигации</string>
+    <string name="show_navbar_hint_summary">Показать подсказку по навигации в нижней части экрана</string>
+    <string name="app_notification_sound_timeout_title">Частота звуковых уведомлений</string>
+    <string name="app_notification_sound_timeout_summary_template">Звуки и вибрация не чаще, чем раз в <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Без ограничений</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 секунд</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 секунд</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 минуту</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 минут</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 минут</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 минут</string>
+    <string name="auto_brightness_one_shot_title">Однократная автоматическая яркость</string>
+    <string name="auto_brightness_one_shot_summary">Регулировка яркости будет происходить только в момент включения экрана</string>
+    <string name="data_usage_app_restrict_all">Разрешить доступ к сети</string>
+    <string name="data_usage_app_restrict_all_summary">Отслеживание использование сети</string>
+    <string name="data_usage_app_restrict_mobile">Мобильные данные</string>
+    <string name="data_usage_app_restrict_mobile_summary">Включить использование мобильных данных</string>
+    <string name="data_usage_app_restrict_vpn">Данные VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Включить использование данных VPN</string>
+    <string name="data_usage_app_restrict_wifi">Данные Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Включить использование данных Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">Перемешивать кнопки</string>
+    <string name="unlock_scramble_pin_layout_summary">Переставлять кнопки ввода PIN-кода в случайном порядке</string>
+    <string name="proximity_wake_title">Предотвращать случайное включение</string>
+    <string name="proximity_wake_summary">Проверка датчика приближения перед включением экрана</string>
+    <string name="touchscreen_gesture_settings_title">Жесты сенсорного экрана</string>
+    <string name="touchscreen_gesture_settings_summary">Настройка жестов сенсорного экрана для выполнения действий</string>
+    <string name="touchscreen_hovering_title">Наведение пальца</string>
+    <string name="touchscreen_hovering_summary">Распознавать приближение пальца к экрану для событий наведения курсора в браузере или других приложениях</string>
+    <string name="wake_when_plugged_or_unplugged_title">Включение при зарядке</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Включать экран при подключении или отключении источника питания</string>
+    <string name="fast_charging_title">Быстрая зарядка</string>
+    <string name="fast_charging_summary">Отключите, чтобы уменьшить нагрев устройства во время зарядки или продлить срок службы батареи</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Длительное нажатие на датчик отпечатка пальца для разблокировки телефона</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Длительное нажатие на датчик отпечатка пальца для разблокировки планшета</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Длительное нажатие на датчик отпечатка пальца для разблокировки устройства</string>
+    <string name="ambient_display_screen_off_udfps_summary">Для пробуждения экрана и разблокировки удерживайте датчик отпечатков пальцев под дисплеем.</string>
+    <string name="storage_warning_internal">Предупреждение: эта опция может работать неправильно или привести к потере данных, поэтому не рекомендуется!</string>
+    <string name="assisted_gps_summary">Загружать вспомогательные данные спутников из интернета. Они помогут значительно ускорить подключение к GPS. Для экстренных вызовов использование вспомогательных данных GPS разрешено всегда.</string>
+</resources>
diff --git a/res/values-sc-rIT/cm_strings.xml b/res/values-sc-rIT/cm_strings.xml
new file mode 100644
index 0000000..73eee78
--- /dev/null
+++ b/res/values-sc-rIT/cm_strings.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_notification_sound_timeout_value_10_seconds">10 segundos</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 segundos</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minutu</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minutos</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minutos</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minutos</string>
+    <string name="data_usage_app_restrict_wifi">Datos Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Abìlita s\'impreu de sos datos Wi\u2011Fi</string>
+</resources>
diff --git a/res/values-si/cm_strings.xml b/res/values-si/cm_strings.xml
new file mode 100644
index 0000000..c174e94
--- /dev/null
+++ b/res/values-si/cm_strings.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">LineageOS නීතිමය තොරතුරු</string>
+    <string name="peak_refresh_rate_summary_custom">සමහර අන්තර්ගත සඳහා නැවුම් කිරීමේ අනුපාතය හර්ට්ස් 60 සිට %1$d දක්වා ස්වයංක්‍රියව ඉහළ නංවයි. බැටරි භාවිතය වැඩි කරයි.</string>
+    <string name="high_touch_sensitivity_title">ඉහළ ස්පර්ශ සංවේදිතාව</string>
+    <string name="high_touch_sensitivity_summary">ස්පර්ශ තීරයේ සංවේදීතාව වැඩිකරන්න, එබැවින් අත්මේස් පළඳා ඇතිවිට එය භාවිතාකලහැකිය</string>
+    <string name="unlock_scramble_pin_layout_title">සැලැස්ම පටලවන්න</string>
+    <string name="unlock_scramble_pin_layout_summary">උපාංගය අගුළු අරින විට PIN සැලැස්ම පටලවන්න</string>
+    <string name="proximity_wake_title">අහඹු අවදි වීම් වළක්වන්න</string>
+    <string name="wake_when_plugged_or_unplugged_title">පේණුගත කලවිට ඇහැරවන්න</string>
+    <string name="wake_when_plugged_or_unplugged_summary">බල මූලාශ්‍රය සම්බන්ධ කිරීමේදී හෝ විසන්ධි කිරීමේදී තිරය ඇහැරවන්න</string>
+</resources>
diff --git a/res/values-sk/cm_strings.xml b/res/values-sk/cm_strings.xml
new file mode 100644
index 0000000..c09a5eb
--- /dev/null
+++ b/res/values-sk/cm_strings.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Doplnky</string>
+    <string name="advanced_keyboard_settings_title">Rozšírené nastavenia</string>
+    <string name="adb_enable_root">Ladenie s\u00a0právami root</string>
+    <string name="adb_enable_summary_root">Povoliť spustenie ladenia Androidu s\u00a0právami root</string>
+    <string name="backup_transport_setting_label">Zmeniť poskytovateľa zálohovania</string>
+    <string name="backup_transport_title">Vybrať poskytovateľa zálohovania</string>
+    <string name="berry_black_theme_title">Čistá čierna</string>
+    <string name="berry_black_theme_summary">Čisto čierne pozadie pre tmavú tému vzhľadu</string>
+    <string name="lineagelicense_title">Právne informácie LineageOS</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Teraz ste <xliff:g id="step_count">%1$d</xliff:g> krok od povolenia možnosti pre vývojárov.</item>
+        <item quantity="few">Teraz ste <xliff:g id="step_count">%1$d</xliff:g> kroky od povolenia možnosti pre vývojárov.</item>
+        <item quantity="many">Teraz ste <xliff:g id="step_count">%1$d</xliff:g> krokov od povolenia možnosti pre vývojárov.</item>
+        <item quantity="other">Teraz ste <xliff:g id="step_count">%1$d</xliff:g> krokov od povolenia možnosti pre vývojárov.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Povolili ste možnosti pre vývojárov!</string>
+    <string name="show_dev_already_cm">Netreba, už ste povolili možnosti pre vývojárov.</string>
+    <string name="peak_refresh_rate_summary_custom">Automaticky zvyšuje frekvenciu obnovenia zo 60 na %1$d Hz pre určitý obsah. Zvýši sa spotreba batérie.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Kliknutím uspať</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Vypnúť obrazovku dvojklikom na stavový riadok alebo na obrazovku uzamknutia</string>
+    <string name="heads_up_notifications_enabled_title">Plávajúce upozornenia</string>
+    <string name="heads_up_notifications_enabled_summary">Zobraziť prioritné upozornenia v malom plávajúcom okne</string>
+    <string name="high_touch_sensitivity_title">Vysoká citlivosť na dotyky</string>
+    <string name="high_touch_sensitivity_summary">Zvýšiť citlivosť dotykovej obrazovky, takže ju bude možné používať pri nosení rukavíc</string>
+    <string name="tethering_allow_vpn_upstreams_title">Povoliť klientom používanie sietí VPN</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Povoliť hotspot klientom pripojenie cez VPN</string>
+    <string name="increasing_ring_volume_option_title">Zvyšovanie hlasitosti zvonenia</string>
+    <string name="increasing_ring_min_volume_title">Počiatočná hlasitosť</string>
+    <string name="increasing_ring_ramp_up_time_title">Doba zvyšovania</string>
+    <string name="lockscreen_media_art_title">Zobraziť obal médií</string>
+    <string name="lock_settings_picker_pattern_size_message">Zvoliť veľkosť vzoru</string>
+    <string name="lockpattern_settings_enable_error_path_title">Zobraziť chybu vzoru</string>
+    <string name="lockpattern_settings_enable_dots_title">Zobraziť body vzoru</string>
+    <string name="min_refresh_rate_title">Minimálna obnovovacia frekvencia</string>
+    <string name="show_navbar_hint_title">Navigačná nápoveda</string>
+    <string name="show_navbar_hint_summary">Zobraziť panel nápovedy k navigácii naspodu obrazovky</string>
+    <string name="app_notification_sound_timeout_title">Minimálny čas medzi zvukmi upozornenia</string>
+    <string name="app_notification_sound_timeout_summary_template">Povoliť zvuky alebo vibrácie nie viac ako raz za <xliff:g id="duration">%1$s </xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Bez obmedzení</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 sekúnd</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 sekúnd</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minúta</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minút</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minút</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minút</string>
+    <string name="data_usage_app_restrict_all">Povoliť prístup k sieti</string>
+    <string name="data_usage_app_restrict_all_summary">Povoliť použitie siete</string>
+    <string name="data_usage_app_restrict_mobile">Mobilné dáta</string>
+    <string name="data_usage_app_restrict_mobile_summary">Povoliť používanie mobilných dát</string>
+    <string name="data_usage_app_restrict_vpn">Dáta VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Povoliť používanie dát VPN</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi dáta</string>
+    <string name="data_usage_app_restrict_wifi_summary">Povoliť používanie Wi\u2011Fi dát</string>
+    <string name="unlock_scramble_pin_layout_title">Dynamické rozloženie</string>
+    <string name="unlock_scramble_pin_layout_summary">Prehádzať rozloženie pre zadanie kódu PIN pri odomykaní zariadenia</string>
+    <string name="proximity_wake_title">Zabrániť nechcenému prebudeniu</string>
+    <string name="proximity_wake_summary">Pred prebudením obrazovky skontrolovať senzor priblíženia</string>
+    <string name="touchscreen_gesture_settings_title">Gestá na obrazovke</string>
+    <string name="touchscreen_gesture_settings_summary">Možnosť spustiť rýchlu akciu pomocou rôzných gest na obrazovce</string>
+    <string name="touchscreen_hovering_title">Pohyb nad dotykovou obrazovkou</string>
+    <string name="touchscreen_hovering_summary">Pohybovať sa nad obrazovkou podobne ako myš vo webovom prehliadači, vzdielaneých plochý, atď</string>
+    <string name="wake_when_plugged_or_unplugged_title">Prebudiť po pripojení</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Zapnúť obrazovku pri pripojení alebo odpojení zdroja nabíjania</string>
+    <string name="fast_charging_title">Rýchle nabíjanie</string>
+    <string name="fast_charging_summary">Vypnutím znížite teplo produkované zariadením počas nabíjania alebo predĺžite životnosť batérie</string>
+</resources>
diff --git a/res/values-sl/cm_strings.xml b/res/values-sl/cm_strings.xml
new file mode 100644
index 0000000..d51a1a5
--- /dev/null
+++ b/res/values-sl/cm_strings.xml
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Dodatki</string>
+    <string name="advanced_keyboard_settings_title">Napredne nastavitve</string>
+    <string name="adb_enable_root">Skrbniško razhroščevanje</string>
+    <string name="adb_enable_summary_root">Dovoli izvajanje Android razhroščevanja kot skrbnik</string>
+    <string name="backup_transport_setting_label">Spremeni ponudnika varnostnih kopij</string>
+    <string name="backup_transport_title">Izberite ponudnika varnostnih kopij</string>
+    <string name="berry_black_theme_title">Popolnoma črna</string>
+    <string name="berry_black_theme_summary">Popolnoma črno ozadje za temno temo</string>
+    <string name="lineagelicense_title">Pravna obvestila LineageOS</string>
+    <string name="device_info_protected_single_press">Tapnite za prikaz informacij</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Zdaj ste <xliff:g id="step_count">%1$d</xliff:g> korak pred omogočenjem nastavitev za razvijalce.</item>
+        <item quantity="two">Zdaj ste <xliff:g id="step_count">%1$d</xliff:g> koraka pred omogočenjem nastavitev za razvijalce.</item>
+        <item quantity="few">Zdaj ste <xliff:g id="step_count">%1$d</xliff:g> korake pred omogočenjem nastavitev za razvijalce.</item>
+        <item quantity="other">Zdaj ste <xliff:g id="step_count">%1$d</xliff:g> korakov pred omogočenjem nastavitev za razvijalce.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Omogočili ste nastavitve za razvijalce!</string>
+    <string name="show_dev_already_cm">Ni treba, ste že omogočili nastavitve za razvijalce.</string>
+    <string name="peak_refresh_rate_summary_custom">Samodejno poveča hitrost osveževanja s 60 na %1$d Hz za nekatere vsebine. Poveča porabo baterije.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Tap za spanje</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Dvakrat tapnite na vrstico stanja ali zaklenjen zaslon, da izklopite zaslon</string>
+    <string name="high_touch_polling_rate_title">Visoka hitrost zaznavanja dotika</string>
+    <string name="high_touch_polling_rate_summary">Povečaj hitrost zaznavanja zaslona na dotik</string>
+    <string name="heads_up_notifications_enabled_title">Obvestila na zaslonu</string>
+    <string name="heads_up_notifications_enabled_summary">Prikaži prednostna obvestila v majhnem lebdečem oknu</string>
+    <string name="high_touch_sensitivity_title">Visoka občutljivost dotika</string>
+    <string name="high_touch_sensitivity_summary">Povečaj občutljivost dotika, tako da ga lahko uporabite, ko nosite rokavice</string>
+    <string name="tethering_allow_vpn_upstreams_title">Dovoli odjemalcem uporabo VPN-jev</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Dovoli odjemalcem dostopne točke uporabo VPN povezav te naprave za povezovanje</string>
+    <string name="increasing_ring_volume_option_title">Naraščajoča glasnost zvonjenja</string>
+    <string name="increasing_ring_min_volume_title">Začetna glasnost</string>
+    <string name="increasing_ring_ramp_up_time_title">Čas povečanja</string>
+    <string name="lockscreen_media_art_title">Prikaži naslovnico večpredstavnosti</string>
+    <string name="lock_settings_picker_pattern_size_message">Izberite velikost vzorca</string>
+    <string name="lockpattern_settings_enable_error_path_title">Prikaži napako vzorca</string>
+    <string name="lockpattern_settings_enable_dots_title">Prikaži pike vzorca</string>
+    <string name="max_refresh_rate_title">Najvišja hitrost osveževanja</string>
+    <string name="min_refresh_rate_title">Najmanjša hitrost osveževanja</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Poiščite tipalo za prstne odtise na sprednji strani vašega tabličnega računalnika.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Poiščite tipalo za prstne odtise na sprednji strani vaše naprave.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Poiščite tipalo za prstne odtise na sprednji strani vašega telefona.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Poiščite tipalo za prstne odtise na zadnji strani vašega tabličnega računalnika.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Poiščite tipalo za prstne odtise na zadnji strani vaše naprave.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Poiščite tipalo za prstne odtise na zadnji strani vašega telefona.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Poiščite tipalo za prstne odtise ob strani vašega tabličnega računalnika.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Poiščite tipalo za prstne odtise ob strani vaše naprave.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Poiščite tipalo za prstne odtise ob strani vašega telefona.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Dotaknite se tipala na sprednji strani vašega tabličnega računalnika.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Dotaknite se tipala na sprednji strani vaše naprave.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Dotaknite se tipala na sprednji strani vašega telefona.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Dotaknite se tipala na zadnji strani vašega tabličnega računalnika.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Dotaknite se tipala na zadnji strani vaše naprave.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Dotaknite se tipala na zadnji strani vašega telefona.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Dotaknite se tipala ob strani vašega tabličnega računalnika.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Dotaknite se tipala ob strani vaše naprave.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Dotaknite se tipala ob strani vašega telefona.</string>
+    <string name="show_navbar_hint_title">Namig krmarjenja</string>
+    <string name="show_navbar_hint_summary">Pokaži namig krmarjenja na dnu zaslona</string>
+    <string name="app_notification_sound_timeout_title">Najmanjši čas med zvoki obvestil</string>
+    <string name="app_notification_sound_timeout_summary_template">Najmanjši čas med zvoki ali vibriranji: <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Brez omejitev</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 s</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 s</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 min.</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 min.</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 min.</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 min.</string>
+    <string name="auto_brightness_one_shot_title">Enkratna samodejna svetlost</string>
+    <string name="auto_brightness_one_shot_summary">Prilagoditev svetlosti se bo zgodila samo v trenutku, ko se zaslon vklopi</string>
+    <string name="data_usage_app_restrict_all">Dovoli dostop do omrežja</string>
+    <string name="data_usage_app_restrict_all_summary">Omogoči uporabo omrežja</string>
+    <string name="data_usage_app_restrict_mobile">Mobilni podatki</string>
+    <string name="data_usage_app_restrict_mobile_summary">Omogoči uporabo mobilnih podatkov</string>
+    <string name="data_usage_app_restrict_vpn">VPN podatki</string>
+    <string name="data_usage_app_restrict_vpn_summary">Omogoči uporabo VPN podatkov</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi podatki</string>
+    <string name="data_usage_app_restrict_wifi_summary">Omogoči uporabo Wi\u2011Fi podatkov</string>
+    <string name="unlock_scramble_pin_layout_title">Premešaj razporeditev</string>
+    <string name="unlock_scramble_pin_layout_summary">Premešaj razporeditev PIN ob odklepanju naprave</string>
+    <string name="proximity_wake_title">Prepreči nenamerno bujenje</string>
+    <string name="proximity_wake_summary">Pred bujenjem zaslona preveri tipalo bližine</string>
+    <string name="touchscreen_gesture_settings_title">Poteze na zaslonu na dotik</string>
+    <string name="touchscreen_gesture_settings_summary">Za hitra dejanja na zaslonu na dotik izvedite različne poteze</string>
+    <string name="touchscreen_hovering_title">Prehod zaslona na dotik</string>
+    <string name="touchscreen_hovering_summary">Dovoli vam prehod nad zaslonom, kot miška v spletnih brskalnikih, oddaljenih namizjih itd.</string>
+    <string name="wake_when_plugged_or_unplugged_title">Zbudi ob priključitvi napajalnika</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Vklopi zaslon ob priključitvi/izključitvi napajanja</string>
+    <string name="fast_charging_title">Hitro polnjenje</string>
+    <string name="fast_charging_summary">Onemogočite za zmanjšanje vročine, povzročene iz naprave med polnjenjem ali za podaljšanje življenjske dobe baterije</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Pridržanje na tipalo za prstne odtise za odklep telefona</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Pridržanje na tipalo za prstne odtise za odklep tabličnega računalnika</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Pridržanje na tipalo za prstne odtise za odklep naprave</string>
+    <string name="ambient_display_screen_off_udfps_summary">Da zbudite vaš zaslon in ga odklenete, pridržite vašo podzaslonsko tipalo za prstne odtise</string>
+    <string name="storage_warning_internal">Opozorilo: Ta možnost morda ne bo delovala pravilno, ali bo vodila do izgube podatkov, zato ni priporočljiva!</string>
+    <string name="assisted_gps_summary">Prenesi pomožne podatke satelita iz interneta, kateri lahko močno izboljšajo zagonsko zmogljivost GPS-a. Za nujne klice je pomožni GPS vedno dovoljen.</string>
+</resources>
diff --git a/res/values-sq/cm_strings.xml b/res/values-sq/cm_strings.xml
new file mode 100644
index 0000000..b606a98
--- /dev/null
+++ b/res/values-sq/cm_strings.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Shtesat</string>
+    <string name="advanced_keyboard_settings_title">Parametra të përparuar</string>
+    <string name="adb_enable_root">korrigjimi rrënjë</string>
+    <string name="adb_enable_summary_root">Lejoni ekzekutimin e korrigjimit e gabimeve të Android si root</string>
+    <string name="backup_transport_setting_label">Ndryshoni ofruesin e rezervës</string>
+    <string name="backup_transport_title">Zgjidhni siguruesin e rezervës</string>
+    <string name="berry_black_theme_title">E zezë e pastër</string>
+    <string name="berry_black_theme_summary">Sfond i zi i pastër për temë të errët</string>
+    <string name="lineagelicense_title">Liçensa e LineageOS</string>
+    <string name="device_info_protected_single_press">Trokit për të shfaqur informacionin</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Ju jeni edhe <xliff:g id="step_count">%1$d</xliff:g> hap larg aktivizimit të parametrave të zhvillimit.</item>
+        <item quantity="other">Ju jeni edhe <xliff:g id="step_count">%1$d</xliff:g> hapa larg aktivizimit të parametrave të zhvillimit.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Ju keni aktivizuar parametrat e zhvillimit!</string>
+    <string name="show_dev_already_cm">Nuk ka më nevojë të shtypni! Parametrat e zhvillimit janë të aktivizuara.</string>
+    <string name="peak_refresh_rate_summary_custom">Rrit automatikisht shpejtësinë e rifreskimit nga 60 në %1$d Hz për disa përmbajtje. Rrit përdorimin e baterisë.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Shtyp për të fjetur</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Shtyp dy herë shiritin e ekranit ose mbyllekranin për të fikur ekranin</string>
+    <string name="high_touch_polling_rate_title">Shkalla e lartë e sondazheve me prekje</string>
+    <string name="high_touch_polling_rate_summary">Rrit normën e sondazheve me ekran me prekje</string>
+    <string name="heads_up_notifications_enabled_title">Heads-up</string>
+    <string name="heads_up_notifications_enabled_summary">Shfaq njoftimet kryesore në një dritare të vogël lundruese</string>
+    <string name="high_touch_sensitivity_title">Ndjesi e lartë e prekjes</string>
+    <string name="high_touch_sensitivity_summary">Rrit ndjeshmërinë e prekjes kështu që mund të përdoret kur keni dorashka</string>
+    <string name="tethering_allow_vpn_upstreams_title">Lejo klientët të përdorin VPN -enet</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Lejo klientët e HotSpot të përdorin lidhjet VPN të kësaj paisje për lidhje në rrjedhën e ngarkimit</string>
+    <string name="increasing_ring_volume_option_title">Volum me rritje graduale</string>
+    <string name="increasing_ring_min_volume_title">Volumi fillestar</string>
+    <string name="increasing_ring_ramp_up_time_title">Kohëzgjatja e rritjes</string>
+    <string name="lockscreen_media_art_title">Shfaq ikonën e albumit</string>
+    <string name="lock_settings_picker_pattern_size_message">Zgjidh madhësinë e modelit</string>
+    <string name="lockpattern_settings_enable_error_path_title">Shfaq gabimet në vizatimin e modelit</string>
+    <string name="lockpattern_settings_enable_dots_title">Shfaq pikat e modelit</string>
+    <string name="max_refresh_rate_title">Kulmi maksimal i rifreskimit</string>
+    <string name="min_refresh_rate_title">Shkalla minimale e rifreskimit</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Gjeni sensorin e gjurmës së gishtit në pjesën e përparme të tabletit tuaj</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Gjeni sensorin e gjurmës së gishtit në pjesën e përparme të pajisjes tuaj.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Gjeni sensorin e gjurmës së gishtit në pjesën e përparme të telefonit tuaj.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Gjeni sensorin e gjurmës së gishtit në anën e pasme të tabletit tuaj</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Gjeni sensorin e gjurmës së gishtit në anën e pasme të pajisjes tuaj.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Gjeni sensorin e gjurmës së gishtit në anën e pasme të telefonit tuaj.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Gjeni sensorin e gjurmës së gishtit në anën e tabletit tuaj.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Gjeni sensorin e gjurmës së gishtit në anën e pajisjes tuaj.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Gjeni sensorin e gjurmës së gishtit në anën e telefonit tuaj.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Prekni sensorin në pjesën e përparme të tabletit tuaj.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Prekni sensorin në pjesën e përparme të pajisjes tuaj.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Prekni sensorin në pjesën e përparme të telefonit tuaj.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Prekni sensorin në pjesën e pasme të tabletit tuaj.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Prekni sensorin në pjesën e pasme të pajisjes tuaj.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Prekni sensorin në anën e pasme të telefonit tuaj.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Prekni sensorin në anën e tabletit tuaj.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Prekni sensorin në anën e pajisjes tuaj.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Prekni sensorin në anë të telefonit tuaj.</string>
+    <string name="show_navbar_hint_title">Udhëzim për navigim</string>
+    <string name="show_navbar_hint_summary">Shfaq shiritin e sugjerimeve të navigimit në fund të ekranit</string>
+    <string name="app_notification_sound_timeout_title">Koha minimale midis zileve të njoftimeve</string>
+    <string name="app_notification_sound_timeout_summary_template">Mos lejo zilet apo dridhjet më shumë se një herë në <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">E pakufizim</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 sekonda</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 sekonda</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minutë</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minuta</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minuta</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minuta</string>
+    <string name="auto_brightness_one_shot_title">Ndriçimi automatik me një goditje</string>
+    <string name="auto_brightness_one_shot_summary">Rregullimi i ndriçimit do të ndodhë në momentin kur ekrani ndizet</string>
+    <string name="data_usage_app_restrict_all">Lejo hyrjen në rrjet</string>
+    <string name="data_usage_app_restrict_all_summary">Lejo përdorimin e rrjetit</string>
+    <string name="data_usage_app_restrict_mobile">Të dhënat celulare</string>
+    <string name="data_usage_app_restrict_mobile_summary">Aktivizo përdorimin e të dhënave celulare</string>
+    <string name="data_usage_app_restrict_vpn">Të dhëna VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Lejo përdorimin e internetit nga VPN</string>
+    <string name="data_usage_app_restrict_wifi">Të dhëna Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Hap përdorimin e internetit nga Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">Paraqitja e përplasjes</string>
+    <string name="unlock_scramble_pin_layout_summary">Përzieni paraqitjen e kodit PIN kur zhbllokoni pajisjen</string>
+    <string name="proximity_wake_title">Parandalo zgjimin aksidental</string>
+    <string name="proximity_wake_summary">Kontrollo sensorin e afërsisë para se të ndezësh ekranin</string>
+    <string name="touchscreen_gesture_settings_title">Gjestet me prekje në ekran</string>
+    <string name="touchscreen_gesture_settings_summary">Kryej gjeste të ndryshme duke prekur ekranin për veprime të shpejta</string>
+    <string name="touchscreen_hovering_title">Ekrani me prekje qëndron pezull</string>
+    <string name="touchscreen_hovering_summary">Ju lejon të rri pezull në ekran si një mi në shfletuesit e internetit, desktopët e largët, etj</string>
+    <string name="wake_when_plugged_or_unplugged_title">Zgjohoje kur lidh karikuesin</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Ndizni ekranin kur lidhni ose shkëputni karikuesin</string>
+    <string name="fast_charging_title">Karikim i shpejtë</string>
+    <string name="fast_charging_summary">Çaktivizoni për të zvogëluar nxehtësinë e prodhuar nga pajisja gjatë karikimit ose për të zgjatur jetëgjatësinë e baterisë</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Shtypni gjatë sensorin e gjurmës së gishtit për të zhbllokuar telefonin</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Shtypni gjatë sensorin e gjurmës së gishtit për të zhbllokuar tabletin</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Shtypni gjatë sensorin e gjurmës së gishtit për të shkyçur pajisjen</string>
+    <string name="ambient_display_screen_off_udfps_summary">Për të zgjuar ekranin dhe për të shkyçur, shtypni gjatë sensorin e gjurmës së gishtit nën ekran.</string>
+    <string name="storage_warning_internal">Paralajmërim: Ky opsion mund të mos funksionojë siç duhet ose të çojë në humbje të të dhënave dhe për këtë arsye nuk rekomandohet!</string>
+    <string name="assisted_gps_summary">Shkarkoni të dhënat e ndihmës satelitore nga interneti, të cilat mund të përmirësojnë shumë performancën e nisjes së GPS. Për thirrjet e urgjencës, GPS i asistuar lejohet gjithmonë.</string>
+</resources>
diff --git a/res/values-sr/cm_strings.xml b/res/values-sr/cm_strings.xml
new file mode 100644
index 0000000..868de34
--- /dev/null
+++ b/res/values-sr/cm_strings.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="adb_enable_root">Откл. грешака с root приступом</string>
+    <string name="adb_enable_summary_root">Дозволи покретање Android отклањања грешака као root</string>
+    <string name="lineagelicense_title">Политика приватности LineageOS-а</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Додирните још <xliff:g id="step_count">%1$d</xliff:g> пут да бисте омогућили опције за програмера.</item>
+        <item quantity="few">Додирните још <xliff:g id="step_count">%1$d</xliff:g> пута да бисте омогућили опције за програмера.</item>
+        <item quantity="other">Додирните још <xliff:g id="step_count">%1$d</xliff:g> пута да бисте омогућили опције за програмера.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Омогућили сте опције за програмера.</string>
+    <string name="show_dev_already_cm">Нема потебе, опције за програмера су већ омогућене.</string>
+    <string name="peak_refresh_rate_summary_custom">Аутоматски подиже учесталост освежавања са 60 на %1$d Hz за одређени садржај. Повећава потрошњу батерије.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Додир за спавање</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Додирните двапут на статусну траку или на закључани екран да бисте искључили екран</string>
+    <string name="heads_up_notifications_enabled_title">Искачућа обавештења</string>
+    <string name="heads_up_notifications_enabled_summary">Приказује приоритетна обавештења у малим искачућим прозорима.</string>
+    <string name="high_touch_sensitivity_title">Велика осетљивост на додир</string>
+    <string name="high_touch_sensitivity_summary">Повећава осетљивост екрана ради коришћења уређаја у рукавицама.</string>
+    <string name="increasing_ring_volume_option_title">Појачавање јачине звука звона</string>
+    <string name="increasing_ring_min_volume_title">Почетна јачина звука</string>
+    <string name="increasing_ring_ramp_up_time_title">Време појачавања</string>
+    <string name="lockscreen_media_art_title">Прикажи омот медија</string>
+    <string name="lock_settings_picker_pattern_size_message">Изаберите величину шаблона</string>
+    <string name="lockpattern_settings_enable_error_path_title">Прикажи неисправан унос</string>
+    <string name="lockpattern_settings_enable_dots_title">Прикажи тачке</string>
+    <string name="app_notification_sound_timeout_title">Учесталост звучних обавештења</string>
+    <string name="app_notification_sound_timeout_summary_template">Звуци и вибрација не чешће од једном сваких <xliff:g id="duration">%1$s</xliff:g>.</string>
+    <string name="app_notification_sound_timeout_value_none">Без ограничења</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 секунди</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 секунди</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 минут</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 минута</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 минута</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 минута</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi подаци</string>
+    <string name="data_usage_app_restrict_wifi_summary">Укључи употребу Wi\u2011Fi података</string>
+    <string name="unlock_scramble_pin_layout_title">Насумични распоред</string>
+    <string name="unlock_scramble_pin_layout_summary">Приказује дугмад за унос PIN кода у насумичном реду.</string>
+    <string name="proximity_wake_title">Спречи случајно буђење</string>
+    <string name="proximity_wake_summary">Провери сензор близине пре буђења екрана</string>
+    <string name="touchscreen_gesture_settings_title">Гестови по екрану</string>
+    <string name="touchscreen_gesture_settings_summary">Подеси разне гестове по екрану за брзе акције</string>
+    <string name="touchscreen_hovering_title">Задржавање прста</string>
+    <string name="touchscreen_hovering_summary">Омогућава радње при задржавању прста изнад елемената интерфејса у веб-прегледачима или другим апликацијама.</string>
+    <string name="wake_when_plugged_or_unplugged_title">Буђење при пуњењу</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Укључује екран при повезивању или прекиду везе са извором напајања.</string>
+</resources>
diff --git a/res/values-sv/cm_strings.xml b/res/values-sv/cm_strings.xml
new file mode 100644
index 0000000..f01c08c
--- /dev/null
+++ b/res/values-sv/cm_strings.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="berry_black_theme_title">Helsvart</string>
+    <string name="berry_black_theme_summary">Helsvart bakgrund för mörkt tema</string>
+    <string name="lineagelicense_title">LineageOS Juridik</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Du är nu <xliff:g id="step_count">%1$d</xliff:g> steg från att aktivera utvecklingsinställningar.</item>
+        <item quantity="other">Du är nu <xliff:g id="step_count">%1$d</xliff:g> steg från att aktivera utvecklingsinställningar.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Du har aktiverat utvecklingsinställningar!</string>
+    <string name="show_dev_already_cm">Det behövs inte, du har redan aktiverat utvecklingsinställningar.</string>
+    <string name="peak_refresh_rate_summary_custom">Höjer uppdateringsfrekvensen dynamiskt från 60 till %1$d Hz för visst innehåll. Ökar batteriförbrukningen.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Dubbeltryck för att släcka skärmen</string>
+    <string name="high_touch_sensitivity_title">Hög fingerkänslighet</string>
+    <string name="high_touch_sensitivity_summary">Öka tryckskärmens känslighet så att den kan användas samtidigt som du bär handskar</string>
+    <string name="increasing_ring_volume_option_title">Ökande ljudvolym</string>
+    <string name="increasing_ring_min_volume_title">Startvolym</string>
+    <string name="increasing_ring_ramp_up_time_title">Upprampningstid</string>
+    <string name="lockpattern_settings_enable_error_path_title">Visa mönster vid fel</string>
+    <string name="lockpattern_settings_enable_dots_title">Visa mönsterpunkter</string>
+    <string name="app_notification_sound_timeout_title">Minsta tid mellan aviseringsljud</string>
+    <string name="app_notification_sound_timeout_value_none">Ingen begränsning</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 sekunder</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 sekunder</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minut</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minuter</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minuter</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minuter</string>
+    <string name="data_usage_app_restrict_all">Tillåt nätverksåtkomst</string>
+    <string name="data_usage_app_restrict_all_summary">Aktivera nätverksanvändning</string>
+    <string name="data_usage_app_restrict_mobile">Mobildata</string>
+    <string name="data_usage_app_restrict_mobile_summary">Aktivera användning av mobildata</string>
+    <string name="data_usage_app_restrict_vpn">VPN-data</string>
+    <string name="data_usage_app_restrict_vpn_summary">Aktivera användning av VPN-data</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi\u2011data</string>
+    <string name="data_usage_app_restrict_wifi_summary">Aktivera användning av Wi\u2011Fi\u2011data</string>
+    <string name="unlock_scramble_pin_layout_title">Kasta om layout</string>
+    <string name="unlock_scramble_pin_layout_summary">Kasta om PIN-layout vid upplåsning av enheten</string>
+    <string name="proximity_wake_title">Förhindra oavsiktlig väckning</string>
+    <string name="touchscreen_gesture_settings_title">Skärmgester</string>
+    <string name="touchscreen_hovering_title">Tryckskärm-hovring</string>
+    <string name="touchscreen_hovering_summary">Låter dig hovra över skärmen som en mus i webbläsare, fjärrskrivbord, etc</string>
+    <string name="wake_when_plugged_or_unplugged_title">Vakna vid koppling</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Starta skärmen vid anslutning till eller frånkoppling från strömkälla</string>
+    <string name="assisted_gps_summary">Ladda ner satellitdata från internet som avsevärt kan förbättra GPS:ens startprestanda. För nödsamtal är assisterad GPS alltid tillåten.</string>
+</resources>
diff --git a/res/values-sw/cm_strings.xml b/res/values-sw/cm_strings.xml
new file mode 100644
index 0000000..02fbd02
--- /dev/null
+++ b/res/values-sw/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">Huinua kiotomatiki kiwango cha kuonyesha upya kutoka Hz 60 hadi %1$d kwa baadhi ya maudhui. Huongeza matumizi ya betri.</string>
+</resources>
diff --git a/res/values-ta/cm_strings.xml b/res/values-ta/cm_strings.xml
new file mode 100644
index 0000000..e4dcaf0
--- /dev/null
+++ b/res/values-ta/cm_strings.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">LineageOS சட்டம்</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">வளர்ச்சி அமைப்புகளை செயல்படுத்துவதற்கு <xliff:g id="step_count">%1$d</xliff:g>  படி தொலைவில் நீங்கள் இப்போது உள்ளீர்கள்.</item>
+        <item quantity="other">வளர்ச்சி அமைப்புகளை செயல்படுத்துவதற்கு <xliff:g id="step_count">%1$d</xliff:g>  படிகள் தொலைவில் நீங்கள் இப்போது உள்ளீர்கள்.</item>
+    </plurals>
+    <string name="show_dev_on_cm">நீங்கள் வளர்ச்சி அமைப்புகளை செயல்படுத்தினீர்கள்!</string>
+    <string name="show_dev_already_cm">தேவை இல்லை, நீங்கள் முன்பே வளர்ச்சி அமைப்புகளை செயல்படுத்துவிட்டீர்கள்.</string>
+    <string name="peak_refresh_rate_summary_custom">சில உள்ளடக்கத்திற்குப் புதுப்பிக்கும் விகிதத்தை 60லிருந்து %1$d Hzக்குத் தானாகவே உயர்த்தும். இதனால் பேட்டரி உபயோகம் அதிகரிக்கும்.</string>
+    <string name="high_touch_sensitivity_title">உயர்ந்த தொடல் உணர்திறன்</string>
+    <string name="high_touch_sensitivity_summary">கையுறை அணிந்தும் அதை பயன்படுத்தும்படி தொடல்திறை உணர்திறனை அதிகரிக்கவும்</string>
+    <string name="increasing_ring_volume_option_title">ரிங் வால்யூமை அதிகரித்தல்</string>
+    <string name="increasing_ring_min_volume_title">வால்யூமை தொடங்கு</string>
+    <string name="increasing_ring_ramp_up_time_title">ராம்ப்-அப் நேரம்</string>
+    <string name="lockpattern_settings_enable_error_path_title">பேட்டர்ன் பிழையை காட்டு</string>
+    <string name="lockpattern_settings_enable_dots_title">பேட்டர்ன் புள்ளிகளை காட்டு</string>
+    <string name="unlock_scramble_pin_layout_title">ஸ்க்ராம்பில் லேயவுட்</string>
+    <string name="unlock_scramble_pin_layout_summary">கருவியை திறக்கும்போது PIN லேயவுட்டை ஸ்க்ராம்பில் செய்</string>
+    <string name="proximity_wake_title">தற்செயலான விழித்தலை தடு</string>
+    <string name="touchscreen_hovering_title">தொடல்திறைக்கு மேல் நகர்தல்</string>
+    <string name="touchscreen_hovering_summary">வலைதள உலாவிகள், ரிமோட்-டெஸ்க்டாப்புகள் உள்ளிட்டவற்றில் மவுஸ் போன்று நீங்கள் திரையின் மீது உலாவ உங்களை அனுமதிக்கிறது</string>
+    <string name="wake_when_plugged_or_unplugged_title">பிளக் செய்தால் விழி</string>
+    <string name="wake_when_plugged_or_unplugged_summary">ஒரு மின் வளத்தை இணைத்தல் அல்லது துண்டித்தலின் போது திரையை ஆன் செய்க</string>
+</resources>
diff --git a/res/values-te/cm_strings.xml b/res/values-te/cm_strings.xml
new file mode 100644
index 0000000..49310e8
--- /dev/null
+++ b/res/values-te/cm_strings.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">సయనోజెన్ మోడ్ లీగల్</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">డెవలప్మెంట్ సెట్టింగులను ప్రారంభించడానికి ఇప్పుడు మీరు <xliff:g id="step_count">%1$d</xliff:g> అడుగు దూరంలో ఉన్నారు.</item>
+        <item quantity="other">డెవలప్మెంట్ సెట్టింగులను ప్రారంభించడానికి ఇప్పుడు మీరు <xliff:g id="step_count">%1$d</xliff:g> అడుగుల దూరంలో ఉన్నారు.</item>
+    </plurals>
+    <string name="show_dev_on_cm">మీరు ఇప్పుడు డెవలప్మెంట్ సెట్టింగులను ప్రారంభించారు!</string>
+    <string name="show_dev_already_cm">అవసరం లేదు, మీరు ఇప్పటికే డెవలప్మెంట్ సెట్టింగులను ప్రారంభించేశారు.</string>
+    <string name="peak_refresh_rate_summary_custom">కొంత కంటెంట్ కోసం రిఫ్రెష్ రేటును ఆటోమేటిక్‌గా 60 నుండి %1$d Hz వరకు పెంచుతుంది. బ్యాటరీ వినియోగం పెరుగుతుంది.</string>
+    <string name="high_touch_sensitivity_title">అధిక స్పర్శ సున్నితత్వం</string>
+    <string name="high_touch_sensitivity_summary">టచ్ స్క్రీన్ సున్నితత్వాన్ని పెంచండి ఎందుకంటే చేతి తొడుగులు వేసుకున్నప్పుడు అది ఉపయోగపడుతుంది</string>
+    <string name="increasing_ring_volume_option_title">రింగ్ వాల్యూమును పెంచడం</string>
+    <string name="increasing_ring_min_volume_title">ప్రారంభ వాల్యూమ్</string>
+    <string name="increasing_ring_ramp_up_time_title">రాంప్-అప్ సమయం</string>
+    <string name="lockpattern_settings_enable_error_path_title">నమూనా దోషాన్ని చూపుము</string>
+    <string name="lockpattern_settings_enable_dots_title">నమూనా చుక్కలను చూపుము</string>
+    <string name="unlock_scramble_pin_layout_title">క్రమరాహిత్య లేఅవుట్</string>
+    <string name="unlock_scramble_pin_layout_summary">పరికరాన్ని అన్లాక్ చేసేటప్పుడు PIN లేఅవుట్ ను క్రమరాహిత్యం చేయండి</string>
+    <string name="proximity_wake_title">అప్రయత్నంగా మేల్కొల్పబడటాన్ని నివారించండి</string>
+    <string name="touchscreen_hovering_title">టచ్ స్క్రీన్ యొక్క హోవరింగ్ స్వభావం</string>
+    <string name="touchscreen_hovering_summary">వెబ్ బౌజర్లు, రిమోట్ డెస్క్‌టాప్‌లు, మొదలైన వాటిలో మౌస్ వలే తెరను హోవర్ చేయడానికి అనుమతిస్తుంది</string>
+    <string name="wake_when_plugged_or_unplugged_title">మేల్కొలుపు ప్లగ్</string>
+    <string name="wake_when_plugged_or_unplugged_summary">విద్యుత్ ఆధారాన్ని అనుసంధానం చేసేటప్పుడు లేదా తొలిగించేటప్పుడు స్క్రీనును ఆన్ చేయండి</string>
+</resources>
diff --git a/res/values-th/cm_strings.xml b/res/values-th/cm_strings.xml
new file mode 100644
index 0000000..bce17bc
--- /dev/null
+++ b/res/values-th/cm_strings.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">เพิ่มเติม</string>
+    <string name="advanced_keyboard_settings_title">การตั้งค่าขั้นสูง</string>
+    <string name="adb_enable_root">การดีบักแบบรูท</string>
+    <string name="adb_enable_summary_root">อนุญาตการดีบัก Android ในฐานะรูท</string>
+    <string name="berry_black_theme_title">ดำสนิท</string>
+    <string name="berry_black_theme_summary">พื้นหลังสีดำสนิทสำหรับธีมมืด</string>
+    <string name="lineagelicense_title">เกี่ยวกับกฎหมาย LineageOS</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="other">คุณเหลืออีก <xliff:g id="step_count">%1$d</xliff:g> ขั้นก่อนจะสามารถเปิดใช้งานการตั้งค่าการพัฒนา</item>
+    </plurals>
+    <string name="show_dev_on_cm">คุณเปิดใช้งานการตั้งค่าการพัฒนาแล้ว!</string>
+    <string name="show_dev_already_cm">ไม่จำเป็น คุณได้เปิดใช้งานการตั้งค่าการพัฒนาแล้ว</string>
+    <string name="peak_refresh_rate_summary_custom">เพิ่มอัตราการรีเฟรชจาก 60 เป็น %1$d Hz โดยอัตโนมัติสำหรับเนื้อหาบางรายการ เพิ่มการใช้งานแบตเตอรี่</string>
+    <string name="status_bar_double_tap_to_sleep_title">แตะเพื่อหลับ</string>
+    <string name="status_bar_double_tap_to_sleep_summary">แตะสองครั้งที่แถบสถานะเพื่อพักหน้าจอ</string>
+    <string name="heads_up_notifications_enabled_title">การแจ้งเตือนด้านบน</string>
+    <string name="high_touch_sensitivity_title">ความไวต่อสัมผัสสูง</string>
+    <string name="high_touch_sensitivity_summary">เพิ่มความไวของหน้าจอสัมผัสเพื่อสามารถใช้ขณะสวมถุงมือ</string>
+    <string name="tethering_allow_vpn_upstreams_title">อนุญาตให้ไคลเอ็นต์ใช้ VPN</string>
+    <string name="tethering_allow_vpn_upstreams_summary">อนุญาตให้ไคลเอ็นต์ฮอตสปอตเชื่อมต่อ VPN ของอุปกรณ์นี้ สำหรับการเชื่อมต่ออัปสตรีม</string>
+    <string name="increasing_ring_volume_option_title">การเพิ่มเสียงเรียกเข้า</string>
+    <string name="increasing_ring_min_volume_title">ระดับเสียงเริ่มต้น</string>
+    <string name="increasing_ring_ramp_up_time_title">ระยะเวลาที่ดังเพิ่มขึ้น</string>
+    <string name="lockscreen_media_art_title">แสดงหน้าปกสื่อ</string>
+    <string name="lock_settings_picker_pattern_size_message">เลือกขนาดรูปแบบ</string>
+    <string name="lockpattern_settings_enable_error_path_title">แสดงลายเส้นที่ผิดพลาด</string>
+    <string name="lockpattern_settings_enable_dots_title">แสดงจุดที่ลากผ่าน</string>
+    <string name="min_refresh_rate_title">อัตรารีเฟรชต่ำสุด</string>
+    <string name="app_notification_sound_timeout_title">ระยะเวลาขั้นต่ำระหว่างเสียงการแจ้งเตือน</string>
+    <string name="app_notification_sound_timeout_summary_template">อนุญาตให้มีเสียงหรือการสั่นไม่เกินหนึ่งครั้งทุก <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">ไม่จำกัด</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 วินาที</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 วินาที</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 นาที</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 นาที</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 นาที</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 นาที</string>
+    <string name="data_usage_app_restrict_mobile">ข้อมูลมือถือ</string>
+    <string name="data_usage_app_restrict_mobile_summary">เปิดใช้งานการใช้ข้อมูลมือถือ</string>
+    <string name="data_usage_app_restrict_vpn">ข้อมูล VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">เปิดใช้งานการใช้ข้อมูล VPN</string>
+    <string name="data_usage_app_restrict_wifi">ข้อมูล Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">เปิดการใช้งานของข้อมูล Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">แบบสุ่มสลับ</string>
+    <string name="unlock_scramble_pin_layout_summary">สุ่มสลับรหัสเมื่อปลดล็อคอุปกรณ์</string>
+    <string name="proximity_wake_title">ป้องกันการเปิดหน้าจอโดยไม่เจตนา</string>
+    <string name="proximity_wake_summary">ตรวจสอบด้วยเซ็นเซอร์ก่อนปลุกหน้าจอ</string>
+    <string name="touchscreen_gesture_settings_title">ท่าทางสัมผัสบนหน้าจอ</string>
+    <string name="touchscreen_gesture_settings_summary">ใช้ท่าทางสัมผัสรูปแบบต่าง ๆ เพื่อการทำงานที่รวดเร็วขึ้น</string>
+    <string name="touchscreen_hovering_title">วางนิ้วเหนือจอ</string>
+    <string name="touchscreen_hovering_summary">อนุญาตให้คุณสามารถวางนิ้วเหนือจอเหมือนการวางเม้าส์เหนือปุ่มในคอมพิวเตอร์</string>
+    <string name="wake_when_plugged_or_unplugged_title">ตื่นเมื่อเสียบปลั๊ก</string>
+    <string name="wake_when_plugged_or_unplugged_summary">เปิดหน้าจอเมื่อเชื่อมต่อหรือตัดการเชื่อมต่อกับแหล่งจ่ายไฟ</string>
+    <string name="fast_charging_title">ชาร์จเร็ว</string>
+    <string name="fast_charging_summary">ปิดใช้งานเพื่อลดความร้อนที่เกิดจากอุปกรณ์ขณะชาร์จ หรือเพื่อยืดอายุการใช้งานของแบตเตอรี่</string>
+</resources>
diff --git a/res/values-tl/cm_strings.xml b/res/values-tl/cm_strings.xml
new file mode 100644
index 0000000..bd167cc
--- /dev/null
+++ b/res/values-tl/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">Awtomatikong itinataas sa %1$d Hz mula sa 60 Hz ang refresh rate para sa ilang content. Mas lumalakas ang paggamit ng baterya.</string>
+</resources>
diff --git a/res/values-tr/cm_strings.xml b/res/values-tr/cm_strings.xml
new file mode 100644
index 0000000..26bd425
--- /dev/null
+++ b/res/values-tr/cm_strings.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Ekstralar</string>
+    <string name="advanced_keyboard_settings_title">Gelişmiş ayarlar</string>
+    <string name="adb_enable_root">Rootlu hata ayıklama</string>
+    <string name="adb_enable_summary_root">Android hata ayıklamanın rootlu olarak çalışmasına izin verin</string>
+    <string name="backup_transport_setting_label">Yedekleme sağlayıcısını değiştir</string>
+    <string name="backup_transport_title">Yedekleme sağlayıcısını seçin</string>
+    <string name="berry_black_theme_title">Saf siyah</string>
+    <string name="berry_black_theme_summary">Karanlık tema için saf siyah arka plan</string>
+    <string name="lineagelicense_title">LineageOS yasal</string>
+    <string name="device_info_protected_single_press">Bilgileri göstermek için dokunun</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Geliştirici ayarlarının etkinleştirilmesi için <xliff:g id="step_count">%1$d</xliff:g> adım kaldı.</item>
+        <item quantity="other">Geliştirici ayarlarının etkinleştirilmesi için <xliff:g id="step_count">%1$d</xliff:g> adım kaldı.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Geliştirici ayarlarını etkinleştirdiniz!</string>
+    <string name="show_dev_already_cm">Gerek yok, zaten geliştirme ayarlarını etkinleştirdiniz.</string>
+    <string name="peak_refresh_rate_summary_custom">Bazı içerikler için yenileme hızını otomatik olarak 60 Hz\'den %1$d Hz\'e yükseltir. Pil kullanımını artırır.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Uyutmak için dokunun</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Ekranı kapatmak için durum çubuğuna veya kilit ekranına çift dokunun</string>
+    <string name="high_touch_polling_rate_title">Yüksek dokunmatik yoklama oranı</string>
+    <string name="high_touch_polling_rate_summary">Dokunmatik ekran yoklama oranını artırın</string>
+    <string name="heads_up_notifications_enabled_title">Bildirim pencereleri</string>
+    <string name="heads_up_notifications_enabled_summary">Küçük bir yüzen pencerede öncelikli bildirimleri görüntüle</string>
+    <string name="high_touch_sensitivity_title">Yüksek dokunma hassasiyeti</string>
+    <string name="high_touch_sensitivity_summary">Dokunmatik ekran hassasiyetini arttırarak eldiven ile kullanıma olanak verir</string>
+    <string name="tethering_allow_vpn_upstreams_title">İstemcilerin VPN kullanmasına izin ver</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Hotspot kullanıcılarının bağlantıları sırasında bu cihazın \u2019s VPN bağlantısını kullanmasına izin ver</string>
+    <string name="increasing_ring_volume_option_title">Artan zil sesi</string>
+    <string name="increasing_ring_min_volume_title">Başlangıç sesi</string>
+    <string name="increasing_ring_ramp_up_time_title">Yükselme zamanı</string>
+    <string name="lockscreen_media_art_title">Medya kapak resmini göster</string>
+    <string name="lock_settings_picker_pattern_size_message">Bir desen boyutu seçin</string>
+    <string name="lockpattern_settings_enable_error_path_title">Desen hatasını göster</string>
+    <string name="lockpattern_settings_enable_dots_title">Desen noktalarını göster</string>
+    <string name="max_refresh_rate_title">En yüksek yenileme hızı</string>
+    <string name="min_refresh_rate_title">Minimum yenileme hızı</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Tabletinizin önündeki parmak izi sensörünü bulun.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Cihazınızın önündeki parmak izi sensörünü bulun.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Telefonunuzun önündeki parmak izi sensörünü bulun.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Tabletinizin arkasındaki parmak izi sensörünü bulun.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Cihazınızın arkasındaki parmak izi sensörünü bulun.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Telefonunuzun arkasındaki parmak izi sensörünü bulun.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Tabletinizin yan tarafındaki parmak izi sensörünü bulun.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Cihazınızın yan tarafındaki parmak izi sensörünü bulun.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Telefonunuzun yan tarafındaki parmak izi sensörünü bulun.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Tabletinizin önündeki sensöre dokunun.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Cihazınızın önündeki sensöre dokunun.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Telefonunuzun önündeki sensöre dokunun.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Tabletinizin arkasındaki sensöre dokunun.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Cihazınızın arkasındaki sensöre dokunun.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Telefonunuzun arkasındaki sensöre dokunun.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Tabletinizin yan tarafındaki sensöre dokunun.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Cihazınızın yan tarafındaki sensöre dokunun.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Telefonunuzun yan tarafındaki sensöre dokunun.</string>
+    <string name="show_navbar_hint_title">Gezinme ipucu</string>
+    <string name="show_navbar_hint_summary">Ekranın altında gezinme ipucu çubuğunu göster</string>
+    <string name="app_notification_sound_timeout_title">Bildirim sesleri arasında en az zaman</string>
+    <string name="app_notification_sound_timeout_summary_template">Bir defadan fazla olmayacak şekilde her <xliff:g id="duration">%1$s</xliff:g>\'da bir titreme veya sese izin ver</string>
+    <string name="app_notification_sound_timeout_value_none">Kısıtlama yok</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 saniye</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 Saniye</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 dakika</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 dakika</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 dakika</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 dakika</string>
+    <string name="auto_brightness_one_shot_title">Tek seferlik otomatik parlaklık</string>
+    <string name="auto_brightness_one_shot_summary">Parlaklık ayarı yalnızca ekran açıldığında gerçekleşir</string>
+    <string name="data_usage_app_restrict_all">Ağ erişimine izin ver</string>
+    <string name="data_usage_app_restrict_all_summary">Ağ kullanımını etkinleştir</string>
+    <string name="data_usage_app_restrict_mobile">Mobil veri</string>
+    <string name="data_usage_app_restrict_mobile_summary">Mobil veri kullanımını etkinleştir</string>
+    <string name="data_usage_app_restrict_vpn">VPN verileri</string>
+    <string name="data_usage_app_restrict_vpn_summary">VPN veri kullanımını etkinleştir</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi veri</string>
+    <string name="data_usage_app_restrict_wifi_summary">Wi\u2011Fi veri kullanımını etkinleştir</string>
+    <string name="unlock_scramble_pin_layout_title">Düzeni karıştır</string>
+    <string name="unlock_scramble_pin_layout_summary">Cihaz kilidini açarken PIN düzenini karıştırır</string>
+    <string name="proximity_wake_title">Yanlış uyandırmaları önle</string>
+    <string name="proximity_wake_summary">Ekranı uyandırmadan önce yakınlık sensörünü kontrol et</string>
+    <string name="touchscreen_gesture_settings_title">Ekran hareketleri</string>
+    <string name="touchscreen_gesture_settings_summary">Hızlı işlemler için çeşitli dokunmatik ekran hareketleri gerçekleştirin</string>
+    <string name="touchscreen_hovering_title">Dokunmatik ekrana dokunmadan gezinme</string>
+    <string name="touchscreen_hovering_summary">Ekrana dokunmadan parmağınızı yakınlaştırarak bir fare kullanıyormuş gibi web tarayıcılarında, uzak masaüstlerinde, vb. dolaşmanızı sağlar</string>
+    <string name="wake_when_plugged_or_unplugged_title">Takıp çıkarmada uyan</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Bir güç kaynağına bağlanırken ya da bağlantısını keserken ekranı aç</string>
+    <string name="fast_charging_title">Hızlı şarj oluyor</string>
+    <string name="fast_charging_summary">Cihazın şarj ederken ürettiği ısıyı azaltmak veya pilin ömrünü uzatmak için devre dışı bırakın</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Telefonun kilidini açmak için parmak izi sensörüne uzun basın</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Tabletin kilidini açmak için parmak izi sensörüne uzun basın</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Cihazın kilidini açmak için parmak izi sensörüne uzun basın</string>
+    <string name="ambient_display_screen_off_udfps_summary">Ekranınızı uyandırmak ve kilidini açmak için ekranın altındaki parmak izi sensörünüze uzun basın.</string>
+    <string name="storage_warning_internal">Uyarı: Bu özellik düzgün çalışmayabileceğinden veya veri kaybına neden olabileceğinden önerilmez!</string>
+</resources>
diff --git a/res/values-ug/cm_strings.xml b/res/values-ug/cm_strings.xml
new file mode 100644
index 0000000..0cd399b
--- /dev/null
+++ b/res/values-ug/cm_strings.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">LineageOS قانۇن ئۇچۇرى</string>
+    <string name="show_dev_on_cm">ئىجادكارلار تەڭشەكلىرىنى قوزغاتتىڭىز!</string>
+    <string name="show_dev_already_cm">ھاجەتسىز، سىز ئاللىبۇرۇن ئىجادكارلار تەڭشەكلىرىنى قوزغاتقان.</string>
+    <string name="high_touch_sensitivity_title">سەزگۈر ئېكراننىڭ يۇقىرى سېزىمچانلىقى</string>
+    <string name="high_touch_sensitivity_summary">سەزگۈر ئېكراننىڭ سېزىمچانلىقىنى كۈچەيتىپ پەلەي كىيگەندە ئىشلىتىشكە قولايلىق يارىتىدۇ</string>
+    <string name="increasing_ring_volume_option_title">قوڭغۇراق ئاۋازىنى تەدرىجىي كۈچەيتىش</string>
+    <string name="increasing_ring_min_volume_title">باشلاش ئاۋازى</string>
+    <string name="increasing_ring_ramp_up_time_title">كۈچەيتىش ۋاقتى</string>
+    <string name="lockpattern_settings_enable_error_path_title">ئەندىزە خاتالىقىنى كۆرسىتىش</string>
+    <string name="lockpattern_settings_enable_dots_title">ئەندىزە نۇقتىسىنى كۆرسىتىش</string>
+    <string name="unlock_scramble_pin_layout_title">قالايمىقان جايلاشتۇرۇش</string>
+    <string name="unlock_scramble_pin_layout_summary">ئۈسكۈنە قۇلۇپىنى ئاچقاندا قالايمىقان تەرتىپتىكى PIN جايلاشتۇرۇشنى ئىشلىتىدۇ</string>
+    <string name="proximity_wake_title">تاسادىپىي ئويغىتىشنىڭ ئالدىنى ئېلىش</string>
+    <string name="touchscreen_hovering_title">لەيلىتىش مەشغۇلاتى</string>
+    <string name="touchscreen_hovering_summary">بارمىقىڭىزنى ئېكراننىڭ ئۈستىگە لەيلىتىپ توركۆرگۈ، يىراقتىكى ئۈستەلئۈستى قاتارلىقلارنىڭ چاشقىنەك ئىستىرىلكىسى سۈپىتىدە ئىشلىتىشىگە يول قويىدۇ</string>
+    <string name="wake_when_plugged_or_unplugged_title">چېتىلغاندا ئويغات</string>
+    <string name="wake_when_plugged_or_unplugged_summary">توكقا چېتىلغان ياكى ئۈزۈلگەندە ئېكراننى ئاچىدۇ</string>
+</resources>
diff --git a/res/values-uk/cm_strings.xml b/res/values-uk/cm_strings.xml
new file mode 100644
index 0000000..3e38e06
--- /dev/null
+++ b/res/values-uk/cm_strings.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="adb_enable_root">Налагодження суперкористувачем</string>
+    <string name="adb_enable_summary_root">Дозволити налагодження Android із правами суперкористувача</string>
+    <string name="backup_transport_setting_label">Змінити провайдера резервного копіювання</string>
+    <string name="backup_transport_title">Оберіть провайдера резервного копіювання</string>
+    <string name="lineagelicense_title">Політика конфіденційності LineageOS</string>
+    <string name="show_dev_on_cm">Ви увімкнули налаштування розробника!</string>
+    <string name="show_dev_already_cm">Це зайве, параметри розробки вже ввімкнено.</string>
+    <string name="peak_refresh_rate_summary_custom">Автоматично збільшує частоту оновлення певного вмісту з 60 до %1$d Гц. Підвищує використання заряду акумулятора.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Торкніться для сну</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Двічі торкніть рядок стану чи екран блокування, щоб приспати екран</string>
+    <string name="heads_up_notifications_enabled_title">Спливаючі сповіщення</string>
+    <string name="heads_up_notifications_enabled_summary">Відображати пріоритетні сповіщення у невеликому плаваючому вікні</string>
+    <string name="high_touch_sensitivity_title">Висока чутливість дотику</string>
+    <string name="high_touch_sensitivity_summary">Підвищити чутливість сенсорного екрану для користуванням пристроєм у рукавичках</string>
+    <string name="tethering_allow_vpn_upstreams_title">Дозволити клієнтам використовувати VPN</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Пропускати трафік клієнтів точки доступу через VPN-з\'єднання цього пристрою</string>
+    <string name="increasing_ring_volume_option_title">Наростаюча гучність дзвінка</string>
+    <string name="increasing_ring_min_volume_title">Початкова гучність</string>
+    <string name="increasing_ring_ramp_up_time_title">Час збільшення</string>
+    <string name="lockscreen_media_art_title">Показувати обкладинку мультимедіа</string>
+    <string name="lock_settings_picker_pattern_size_message">Оберіть розмір шаблону</string>
+    <string name="lockpattern_settings_enable_error_path_title">Показувати неправильний ключ</string>
+    <string name="lockpattern_settings_enable_dots_title">Показувати точки</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Знайдіть сканер відбитків пальців спереду планшета.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Знайдіть сканер відбитків пальців спереду пристрою.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Знайдіть сканер відбитків пальців спереду телефона.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Знайдіть сканер відбитків пальців ззаду планшета.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Знайдіть сканер відбитків пальців ззаду пристрою.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Знайдіть сканер відбитків пальців ззаду телефона.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Знайдіть сканер відбитків пальців збоку планшета.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Знайдіть сканер відбитків пальців збоку пристрою.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Знайдіть сканер відбитків пальців збоку телефона.</string>
+    <string name="show_navbar_hint_title">Панель навігації</string>
+    <string name="show_navbar_hint_summary">Показувати панель навігації внизу екрану</string>
+    <string name="app_notification_sound_timeout_title">Мінімальний час між звуками повідомлень</string>
+    <string name="app_notification_sound_timeout_summary_template">Дозволити звуки або вібрації не більше ніж один раз кожні <xliff:g id="duration">%1$s </xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Без обмежень</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 секунд</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 секунд</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 хвилина</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 хвилин</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 хвилин</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 хвилин</string>
+    <string name="data_usage_app_restrict_all">Мережа</string>
+    <string name="data_usage_app_restrict_all_summary">Дозволити використання мережі</string>
+    <string name="data_usage_app_restrict_vpn">Дані VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Дозволити використання даних VPN</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi-дані</string>
+    <string name="data_usage_app_restrict_wifi_summary">Дозволити використання Wi\u2011Fi-даних</string>
+    <string name="unlock_scramble_pin_layout_title">Перемішана розкладка</string>
+    <string name="unlock_scramble_pin_layout_summary">Перемішувати розкладку PIN-коду під час розблокування пристрою</string>
+    <string name="proximity_wake_title">Запобігання випадкового пробудження</string>
+    <string name="touchscreen_gesture_settings_title">Жести сенсорного екрану</string>
+    <string name="touchscreen_hovering_title">Зависання над сенсорним екраном</string>
+    <string name="touchscreen_hovering_summary">Дозволяє виділяти елементи інтерфейсу при зависанні над ними без дотику</string>
+    <string name="wake_when_plugged_or_unplugged_title">Екран прокидається при підключені</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Екран прокидається при підключені до зарядного пристрою</string>
+</resources>
diff --git a/res/values-ur/cm_strings.xml b/res/values-ur/cm_strings.xml
new file mode 100644
index 0000000..22c08b8
--- /dev/null
+++ b/res/values-ur/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">‏کچھ مواد کے لیے 60 سے %1$d Hz تک ریفریش کی شرح خودکار طور پر بڑھ جاتی ہے۔ بیٹری کے استعمال میں اضافہ کرتا ہے۔</string>
+</resources>
diff --git a/res/values-uz/cm_strings.xml b/res/values-uz/cm_strings.xml
new file mode 100644
index 0000000..dd273eb
--- /dev/null
+++ b/res/values-uz/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">Ayrim kontent uchun ekranning yangilanish chastotasi 60-%1$d Gs orasida almashib turadi. Batareya tezroq sarflanadi.</string>
+</resources>
diff --git a/res/values-vi/cm_strings.xml b/res/values-vi/cm_strings.xml
new file mode 100644
index 0000000..7397b82
--- /dev/null
+++ b/res/values-vi/cm_strings.xml
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Thêm</string>
+    <string name="advanced_keyboard_settings_title">Cài đặt nâng cao</string>
+    <string name="adb_enable_root">Gỡ lỗi với quyền root</string>
+    <string name="adb_enable_summary_root">Cho phép chạy gỡ lỗi Android với quyền root</string>
+    <string name="backup_transport_setting_label">Thay đổi nơi lưu trữ dữ liệu sao lưu của bạn</string>
+    <string name="backup_transport_title">Chọn nơi lưu trữ dữ liệu sao lưu</string>
+    <string name="berry_black_theme_title">Đen tuyền</string>
+    <string name="berry_black_theme_summary">Nền đen tuyền cho chủ đề tối</string>
+    <string name="lineagelicense_title">Bộ phận pháp chế của LineageOS</string>
+    <string name="device_info_protected_single_press">Chạm để hiển thị thông tin</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="other">Hiện tại bạn còn <xliff:g id="step_count">%1$d</xliff:g> bước nữa để bật cài đặt nhà phát triển.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Bạn đã bật cài đặt nhà phát triển!</string>
+    <string name="show_dev_already_cm">Không cần thiết, bạn đã bật cài đặt nhà phát triển.</string>
+    <string name="peak_refresh_rate_summary_custom">Tự động tăng tốc độ làm mới từ 60 lên %1$d Hz đối với một số nội dung. Làm tăng mức sử dụng pin.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Chạm để tắt màn hình</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Chạm hai lần vào thanh trạng thái hoặc màn hình khoá để tắt màn hình</string>
+    <string name="high_touch_polling_rate_title">Tỷ lệ làm mới cảm ứng cao</string>
+    <string name="high_touch_polling_rate_summary">Tăng tỷ lệ làm mới trên màn hình cảm ứng</string>
+    <string name="heads_up_notifications_enabled_title">Thông báo nổi</string>
+    <string name="heads_up_notifications_enabled_summary">Hiển thị các thông báo ưu tiên trong một cửa sổ nổi nhỏ</string>
+    <string name="high_touch_sensitivity_title">Độ nhạy cảm ứng cao</string>
+    <string name="high_touch_sensitivity_summary">Tăng độ nhạy màn hình cảm ứng để nó có thể được sử dụng trong khi đeo găng tay</string>
+    <string name="tethering_allow_vpn_upstreams_title">Cho phép máy khách sử dụng VPN</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Cho phép hotspot các máy khách sử dụng các kết nối VPN của thiết bị\u2019 này để kết nối đến máy chủ</string>
+    <string name="increasing_ring_volume_option_title">Tăng âm lượng chuông</string>
+    <string name="increasing_ring_min_volume_title">Âm lượng khởi động</string>
+    <string name="increasing_ring_ramp_up_time_title">Thời gian tăng</string>
+    <string name="lockscreen_media_art_title">Hiển thị ảnh bìa phương tiện</string>
+    <string name="lock_settings_picker_pattern_size_message">Chọn một kích cỡ mẫu hình</string>
+    <string name="lockpattern_settings_enable_error_path_title">Hiện lỗi mẫu hình</string>
+    <string name="lockpattern_settings_enable_dots_title">Hiện dấu chấm mẫu hình</string>
+    <string name="max_refresh_rate_title">Tốc độ làm mới cao nhất</string>
+    <string name="min_refresh_rate_title">Tốc độ làm mới tối thiểu</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Xác định vị trí của cảm biến vân tay ở mặt trước máy tính bảng của bạn.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Xác định vị trí của cảm biến vân tay ở mặt trước thiết bị của bạn.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Xác định vị trí của cảm biến vân tay ở mặt trước điện thoại của bạn.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Xác định cảm biến vân tay ở mặt sau máy tính bảng của bạn.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Xác định cảm biến vân tay ở mặt sau thiết bị của bạn.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Xác định cảm biến vân tay ở mặt sau điện thoại của bạn.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Xác định vị trí của cảm biến vân tay ở bên cạnh máy tính bảng của bạn.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Xác định cảm biến vân tay ở bên cạnh thiết bị của bạn.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Xác định vị trí của cảm biến vân tay ở bên cạnh điện thoại của bạn.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Chạm vào cảm biến ở mặt trước máy tính bảng của bạn.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Chạm vào cảm biến ở mặt trước thiết bị của bạn.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Chạm vào cảm biến ở mặt trước điện thoại của bạn.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Chạm vào cảm biến ở mặt sau máy tính bảng của bạn.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Chạm vào cảm biến ở mặt sau thiết bị của bạn.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Chạm vào cảm biến ở mặt sau điện thoại của bạn.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Chạm vào cảm biến ở mặt bên máy tính bảng của bạn.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Chạm vào cảm biến ở bên cạnh thiết bị của bạn.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Chạm vào cảm biến ở mặt bên điện thoại của bạn.</string>
+    <string name="show_navbar_hint_title">Gợi ý điều hướng</string>
+    <string name="show_navbar_hint_summary">Hiển thị thanh gợi ý điều hướng ở cuối màn hình</string>
+    <string name="app_notification_sound_timeout_title">Thời gian tối thiểu giữa các âm thanh thông báo</string>
+    <string name="app_notification_sound_timeout_summary_template">Cho phép âm thanh hoặc rung không nhiều hơn một lần mỗi <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Không giới hạn</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 giây</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 giây</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 phút</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 phút</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 phút</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 phút</string>
+    <string name="auto_brightness_one_shot_title">Tự động điều chỉnh độ sáng một lần duy nhất</string>
+    <string name="auto_brightness_one_shot_summary">Điều chỉnh độ sáng sẽ chỉ thực hiện một lần duy nhất khi màn hình được bật</string>
+    <string name="data_usage_app_restrict_all">Cho phép truy cập mạng</string>
+    <string name="data_usage_app_restrict_all_summary">Bật chế độ theo dõi dung lượng kết nối.</string>
+    <string name="data_usage_app_restrict_mobile">Dữ liệu di động</string>
+    <string name="data_usage_app_restrict_mobile_summary">Bật cho phép sử dụng dữ liệu di động</string>
+    <string name="data_usage_app_restrict_vpn">Dữ liệu VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Cho phép sử dụng dữ liệu VPN</string>
+    <string name="data_usage_app_restrict_wifi">Dữ liệu Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Bật sử dụng dữ liệu Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">Bố trí linh tinh</string>
+    <string name="unlock_scramble_pin_layout_summary">Bố trí PIN linh tinh khi mở khóa thiết bị</string>
+    <string name="proximity_wake_title">Ngăn ngừa tình cờ mở màn hình</string>
+    <string name="proximity_wake_summary">Kiểm tra cảm biến tiệm cận trước khi mở màn hình</string>
+    <string name="touchscreen_gesture_settings_title">Cử chỉ màn hình cảm ứng</string>
+    <string name="touchscreen_gesture_settings_summary">Thực hiện các cử chỉ màn hình cảm ứng khác nhau cho các thao tác nhanh</string>
+    <string name="touchscreen_hovering_title">Di trên màn hình cảm ứng</string>
+    <string name="touchscreen_hovering_summary">Cho phép bạn di trên màn hình như chuột trong trình duyệt web, điều khiển máy tính từ xa, v.v.</string>
+    <string name="wake_when_plugged_or_unplugged_title">Sáng màn hình khi cắm sạc</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Bật màn hình khi kết nối hoặc ngắt kết nối nguồn điện</string>
+    <string name="fast_charging_title">Đang sạc nhanh</string>
+    <string name="fast_charging_summary">Tắt để giảm nhiệt do thiết bị tạo ra trong khi sạc hoặc để kéo dài tuổi thọ của pin</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Giữ cảm biến vân tay để mở khóa điện thoại</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Giữ cảm biến vân tay để mở khóa máy tính bảng</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Giữ cảm biến vân tay để mở khóa thiết bị</string>
+    <string name="ambient_display_screen_off_udfps_summary">Để đánh thức màn hình và mở khóa, đặt ngón tay vào cảm biến vân tay dưới màn hình của bạn</string>
+    <string name="storage_warning_internal">Cảnh báo: Tùy chọn này có thể không hoạt động bình thường hoặc dẫn đến mất dữ liệu và do đó không được khuyến khích</string>
+</resources>
diff --git a/res/values-zh-rCN/cm_strings.xml b/res/values-zh-rCN/cm_strings.xml
new file mode 100644
index 0000000..fd98e22
--- /dev/null
+++ b/res/values-zh-rCN/cm_strings.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">附加功能</string>
+    <string name="advanced_keyboard_settings_title">高级设置</string>
+    <string name="adb_enable_root">Root 身份的调试</string>
+    <string name="adb_enable_summary_root">允许以 root 身份运行 Android 调试</string>
+    <string name="backup_transport_setting_label">更改备份提供商</string>
+    <string name="backup_transport_title">选择备份提供商</string>
+    <string name="berry_black_theme_title">纯黑色</string>
+    <string name="berry_black_theme_summary">暗色主题使用纯黑色背景</string>
+    <string name="lineagelicense_title">LineageOS 法律信息</string>
+    <string name="device_info_protected_single_press">点击以显示信息</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="other">还需 <xliff:g id="step_count">%1$d</xliff:g> 步就可以启用开发者选项。</item>
+    </plurals>
+    <string name="show_dev_on_cm">您已经启用了开发者选项！</string>
+    <string name="show_dev_already_cm">不用了，您已启用开发者选项。</string>
+    <string name="peak_refresh_rate_summary_custom">自动将某些内容的刷新频率从 60 Hz 调高到 %1$d Hz。这么做会增加耗电量。</string>
+    <string name="status_bar_double_tap_to_sleep_title">双击关屏</string>
+    <string name="status_bar_double_tap_to_sleep_summary">双击状态栏或锁屏以关闭屏幕</string>
+    <string name="high_touch_polling_rate_title">高触控采样率</string>
+    <string name="high_touch_polling_rate_summary">提高触摸屏采样率</string>
+    <string name="heads_up_notifications_enabled_title">浮动通知</string>
+    <string name="heads_up_notifications_enabled_summary">在一个小的浮动窗口中显示优先通知</string>
+    <string name="high_touch_sensitivity_title">触摸屏高灵敏度</string>
+    <string name="high_touch_sensitivity_summary">增加触摸屏的灵敏度，以便在戴手套时使用</string>
+    <string name="tethering_allow_vpn_upstreams_title">允许客户端使用 VPN</string>
+    <string name="tethering_allow_vpn_upstreams_summary">允许热点客户端使用此设备的 VPN 连接到上游连接</string>
+    <string name="increasing_ring_volume_option_title">铃声音量渐强</string>
+    <string name="increasing_ring_min_volume_title">初始音量</string>
+    <string name="increasing_ring_ramp_up_time_title">增强时间</string>
+    <string name="lockscreen_media_art_title">显示媒体艺术封面</string>
+    <string name="lock_settings_picker_pattern_size_message">选择图案大小</string>
+    <string name="lockpattern_settings_enable_error_path_title">显示图案错误</string>
+    <string name="lockpattern_settings_enable_dots_title">显示图案圆点</string>
+    <string name="max_refresh_rate_title">最高刷新率</string>
+    <string name="min_refresh_rate_title">最小刷新率</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">在您的平板电脑正面找到指纹传感器。</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">在您的设备正面找到指纹传感器。</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">在您的手机正面找到指纹传感器。</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">在您的平板电脑背面找到指纹传感器。</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">在您的设备背面找到指纹传感器。</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">在您的手机背面找到指纹传感器。</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">在您的平板电脑侧面找到指纹传感器。</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">在您的设备侧面找到指纹传感器。</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">在您的手机侧面找到指纹传感器。</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">触摸位于平板电脑正面的指纹传感器。</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">触摸位于设备正面的指纹传感器。</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">触摸位于手机正面的指纹传感器。</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">触摸位于平板电脑背面的指纹传感器。</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">触摸位于设备背面的指纹传感器。</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">触摸位于手机背面的指纹传感器。</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">触摸位于平板电脑侧面的指纹传感器。</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">触摸位于设备侧面的指纹传感器。</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">触摸位于手机侧面的指纹传感器。</string>
+    <string name="show_navbar_hint_title">导航提示</string>
+    <string name="show_navbar_hint_summary">在屏幕底部显示导航提示栏</string>
+    <string name="app_notification_sound_timeout_title">最短通知铃声间隔</string>
+    <string name="app_notification_sound_timeout_summary_template">每 <xliff:g id="duration">%1$s</xliff:g> 允许一次响铃或振动</string>
+    <string name="app_notification_sound_timeout_value_none">无限制</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 秒</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 秒</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 分钟</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 分钟</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 分钟</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 分钟</string>
+    <string name="auto_brightness_one_shot_title">一键自动调整亮度</string>
+    <string name="auto_brightness_one_shot_summary">亮度调整只会在打开屏幕的那一刻发生</string>
+    <string name="data_usage_app_restrict_all">允许网络访问</string>
+    <string name="data_usage_app_restrict_all_summary">启用网络使用统计</string>
+    <string name="data_usage_app_restrict_mobile">移动数据</string>
+    <string name="data_usage_app_restrict_mobile_summary">允许使用移动数据</string>
+    <string name="data_usage_app_restrict_vpn">VPN 数据</string>
+    <string name="data_usage_app_restrict_vpn_summary">启用 VPN 的数据使用统计</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi 数据</string>
+    <string name="data_usage_app_restrict_wifi_summary">启用 Wi\u2011Fi 流量使用统计</string>
+    <string name="unlock_scramble_pin_layout_title">乱序布局</string>
+    <string name="unlock_scramble_pin_layout_summary">当解锁设备时使用乱序 PIN 布局</string>
+    <string name="proximity_wake_title">防止意外唤醒</string>
+    <string name="proximity_wake_summary">唤醒屏幕前检查距离传感器</string>
+    <string name="touchscreen_gesture_settings_title">触摸屏手势</string>
+    <string name="touchscreen_gesture_settings_summary">为快捷操作采用各种触摸屏手势</string>
+    <string name="touchscreen_hovering_title">悬空操作</string>
+    <string name="touchscreen_hovering_summary">允许您将手指悬停在屏幕上作为浏览器、远程桌面等处的鼠标指针</string>
+    <string name="wake_when_plugged_or_unplugged_title">连接或移除电源时唤醒</string>
+    <string name="wake_when_plugged_or_unplugged_summary">连接或断开电源时点亮屏幕</string>
+    <string name="fast_charging_title">快速充电</string>
+    <string name="fast_charging_summary">禁用以减少设备在充电时产生的热量或延长电池的使用寿命</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">长按指纹传感器解锁手机</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">长按指纹传感器解锁平板电脑</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">长按指纹传感器解锁设备</string>
+    <string name="ambient_display_screen_off_udfps_summary">要唤醒您的屏幕并解锁，长按您的屏下指纹传感器。</string>
+    <string name="storage_warning_internal">警告: 此选项可能无法正常工作或导致数据丢失, 因此不推荐!</string>
+    <string name="assisted_gps_summary">从互联网下载卫星辅助数据，这可以极大地提高GPS启动性能。对于紧急呼叫，总是允许GPS辅助。</string>
+</resources>
diff --git a/res/values-zh-rHK/cm_strings.xml b/res/values-zh-rHK/cm_strings.xml
new file mode 100644
index 0000000..ba64bfe
--- /dev/null
+++ b/res/values-zh-rHK/cm_strings.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">LineageOS 法律條款</string>
+    <string name="peak_refresh_rate_summary_custom">自動將部分內容的重新整理頻率，從 60 Hz 提升到 %1$d Hz。此功能會增加耗電量。</string>
+    <string name="high_touch_sensitivity_title">高觸碰靈敏度</string>
+    <string name="high_touch_sensitivity_summary">增加觸控螢幕的靈敏度，戴著手套也可以使用手機</string>
+    <string name="increasing_ring_ramp_up_time_title">漸強時間</string>
+    <string name="lockpattern_settings_enable_error_path_title">顯示圖樣錯誤</string>
+    <string name="lockpattern_settings_enable_dots_title">顯示圖樣圓點</string>
+    <string name="unlock_scramble_pin_layout_title">無序佈局</string>
+    <string name="unlock_scramble_pin_layout_summary">解鎖裝置時使用無序 PIN 佈局</string>
+    <string name="proximity_wake_title">防止意外喚醒</string>
+    <string name="touchscreen_hovering_title">觸控螢幕懸浮</string>
+    <string name="touchscreen_hovering_summary">允許您把手指懸浮在螢幕上，像滑鼠般控制瀏覽器、遠程桌面等</string>
+    <string name="wake_when_plugged_or_unplugged_title">當接上喚醒</string>
+    <string name="wake_when_plugged_or_unplugged_summary">當連接或拔除電源時開啓螢幕</string>
+</resources>
diff --git a/res/values-zh-rTW/cm_strings.xml b/res/values-zh-rTW/cm_strings.xml
new file mode 100644
index 0000000..b0a8bb1
--- /dev/null
+++ b/res/values-zh-rTW/cm_strings.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">附加功能</string>
+    <string name="advanced_keyboard_settings_title">進階設定</string>
+    <string name="adb_enable_root">Root 偵錯</string>
+    <string name="adb_enable_summary_root">允許以 root 身份進行 Android 偵錯</string>
+    <string name="backup_transport_setting_label">變更備份服務提供者</string>
+    <string name="backup_transport_title">選擇備份服務提供者</string>
+    <string name="berry_black_theme_title">純黑色</string>
+    <string name="berry_black_theme_summary">深色主題使用純黑色的背景</string>
+    <string name="lineagelicense_title">LineageOS 法律條款</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="other">您僅需完成剩餘的 <xliff:g id="step_count">%1$d</xliff:g> 個步驟啟用開發人員選項。</item>
+    </plurals>
+    <string name="show_dev_on_cm">您已啟用開發人員選項。</string>
+    <string name="show_dev_already_cm">不需要，您已經啟用開發人員選項。</string>
+    <string name="peak_refresh_rate_summary_custom">自動將某些內容的重新整理頻率從 60 調高到 %1$d 赫茲 (Hz)。請注意，開啟這項設定會增加電池用量。</string>
+    <string name="status_bar_double_tap_to_sleep_title">輕觸即可休眠</string>
+    <string name="status_bar_double_tap_to_sleep_summary">輕觸兩下狀態列或鎖定來關閉螢幕</string>
+    <string name="heads_up_notifications_enabled_title">浮動通知</string>
+    <string name="heads_up_notifications_enabled_summary">在一個小的浮動視窗中顯示優先通知</string>
+    <string name="high_touch_sensitivity_title">高觸控靈敏度</string>
+    <string name="high_touch_sensitivity_summary">增加觸控螢幕的靈敏度，因此戴著手套也可以使用手機</string>
+    <string name="tethering_allow_vpn_upstreams_title">允許客戶端使用 VPN</string>
+    <string name="tethering_allow_vpn_upstreams_summary">允許熱點客戶端使用此裝置的 VPN 連線進行上游連線</string>
+    <string name="increasing_ring_volume_option_title">漸強鈴聲音量</string>
+    <string name="increasing_ring_min_volume_title">開始音量</string>
+    <string name="increasing_ring_ramp_up_time_title">漸強時間</string>
+    <string name="lockscreen_media_art_title">顯示媒體封面藝術</string>
+    <string name="lock_settings_picker_pattern_size_message">選擇解鎖圖案大小</string>
+    <string name="lockpattern_settings_enable_error_path_title">顯示解鎖圖案錯誤</string>
+    <string name="lockpattern_settings_enable_dots_title">顯示解鎖圖案節點</string>
+    <string name="min_refresh_rate_title">最低更新率</string>
+    <string name="show_navbar_hint_title">導覽列提示</string>
+    <string name="show_navbar_hint_summary">在螢幕底部顯示導航列提示欄</string>
+    <string name="app_notification_sound_timeout_title">通知音效之間的最短時間</string>
+    <string name="app_notification_sound_timeout_summary_template">允許音效或震動每一次不超過 <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">無限制</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 秒</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 秒</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 分鐘</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 分鐘</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 分鐘</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 分鐘</string>
+    <string name="auto_brightness_one_shot_title">使用自動調整亮度一次</string>
+    <string name="auto_brightness_one_shot_summary">將在開啟螢幕時自動調整螢幕亮度一次</string>
+    <string name="data_usage_app_restrict_all">允許網路存取</string>
+    <string name="data_usage_app_restrict_all_summary">啟用網路用量</string>
+    <string name="data_usage_app_restrict_mobile">行動數據</string>
+    <string name="data_usage_app_restrict_mobile_summary">啟用行動網路流量統計</string>
+    <string name="data_usage_app_restrict_vpn">VPN 數據</string>
+    <string name="data_usage_app_restrict_vpn_summary">啟用 VPN 數據用量</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi 數據</string>
+    <string name="data_usage_app_restrict_wifi_summary">啟用 Wi\u2011Fi 數據</string>
+    <string name="unlock_scramble_pin_layout_title">亂序佈局</string>
+    <string name="unlock_scramble_pin_layout_summary">解鎖裝置時使用亂序 PIN 碼佈局</string>
+    <string name="proximity_wake_title">防止意外喚醒</string>
+    <string name="proximity_wake_summary">喚醒螢幕前檢查接近感應器</string>
+    <string name="touchscreen_gesture_settings_title">觸控螢幕手勢</string>
+    <string name="touchscreen_gesture_settings_summary">執行各種觸控螢幕手勢以進行快速動作</string>
+    <string name="touchscreen_hovering_title">懸浮操作</string>
+    <string name="touchscreen_hovering_summary">允許您把手指懸停在螢幕上作為瀏覽器、遠程桌面等的滑鼠</string>
+    <string name="wake_when_plugged_or_unplugged_title">接上或拔除電源時喚醒</string>
+    <string name="wake_when_plugged_or_unplugged_summary">接上或拔除電源時開啟螢幕</string>
+    <string name="fast_charging_title">快速充電</string>
+    <string name="fast_charging_summary">停用以減少裝置在充電時產生的熱量或延長電池的使用壽命</string>
+</resources>
diff --git a/res/values-zu/cm_strings.xml b/res/values-zu/cm_strings.xml
new file mode 100644
index 0000000..b4a9a4b
--- /dev/null
+++ b/res/values-zu/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">Iphakamisa ngokuzenzakalela isilinganiso sokuvuselela kusukela kokungu-60 ukuya kokungu-%1$d Hz kokunye okuqukethwe. Ikhuphula ukusetshenziswa kwebhethri.</string>
+</resources>
diff --git a/res/values/cm_arrays.xml b/res/values/cm_arrays.xml
new file mode 100644
index 0000000..32c93ce
--- /dev/null
+++ b/res/values/cm_arrays.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2016 The CyanogenMod Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources>
+    <!-- Per-app notification settings: Timeout period in which the app notifications are muted. These are shown in a list dialog. -->
+    <string-array name="app_notification_sound_timeout_entries" translatable="false">
+        <item>@string/app_notification_sound_timeout_value_none</item>
+        <item>@string/app_notification_sound_timeout_value_10_seconds</item>
+        <item>@string/app_notification_sound_timeout_value_30_seconds</item>
+        <item>@string/app_notification_sound_timeout_value_1_minute</item>
+        <item>@string/app_notification_sound_timeout_value_5_minutes</item>
+        <item>@string/app_notification_sound_timeout_value_15_minutes</item>
+        <item>@string/app_notification_sound_timeout_value_30_minutes</item>
+    </string-array>
+
+    <!-- Do not translate. -->
+    <string-array name="app_notification_sound_timeout_values" translatable="false">
+        <item>0</item>
+        <item>10000</item>
+        <item>30000</item>
+        <item>60000</item>
+        <item>300000</item>
+        <item>900000</item>
+        <item>1800000</item>
+    </string-array>
+</resources>
diff --git a/res/values/cm_strings.xml b/res/values/cm_strings.xml
new file mode 100644
index 0000000..9cda169
--- /dev/null
+++ b/res/values/cm_strings.xml
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- Private DNS -->
+    <string name="private_dns_mode_cloudflare" translatable="false">Cloudflare DNS</string>
+    <!-- Alternative: 1dot1dot1dot1.cloudflare-dns.com -->
+    <string name="private_dns_hostname_cloudflare" translatable="false">one.one.one.one</string>
+
+    <!-- Advanced keyboard settings -->
+    <string name="keyboard_extras_title">Extras</string>
+    <string name="advanced_keyboard_settings_title">Advanced settings</string>
+
+    <!-- Android debugging as root -->
+    <string name="adb_enable_root">Rooted debugging</string>
+    <string name="adb_enable_summary_root">Allow running Android debugging as root</string>
+
+    <!-- Backup Transport selection settings menu and activity title -->
+    <string name="backup_transport_setting_label">Change backup provider</string>
+    <string name="backup_transport_title">Select backup provider</string>
+
+    <!-- Black theme for dark mode -->
+    <string name="berry_black_theme_title">Pure black</string>
+    <string name="berry_black_theme_summary">Pure black background for dark theme</string>
+
+    <!-- Device Info screen. LineageOS legal. -->
+    <string name="lineagelicense_title">LineageOS legal</string>
+
+    <!-- String for removal of sensitive info on about, depending on tap -->
+    <string name="device_info_protected_single_press">Tap to show info</string>
+
+    <!-- [CHAR LIMIT=NONE] Device Info screen. Countdown for user taps to enable development settings -->
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">You are now <xliff:g id="step_count">%1$d</xliff:g> step away from enabling development settings.</item>
+        <item quantity="other">You are now <xliff:g id="step_count">%1$d</xliff:g> steps away from enabling development settings.</item>
+    </plurals>
+    <!-- [CHAR LIMIT=NONE] Device Info screen. Confirmation that developer settings are enabled -->
+    <string name="show_dev_on_cm">You have enabled development settings!</string>
+    <!-- [CHAR LIMIT=NONE] Device Info screen. Okay we get it, stop pressing, you already have it on -->
+    <string name="show_dev_already_cm">No need, you have already enabled development settings.</string>
+
+    <!-- Display settings screen, peak refresh rate settings summary [CHAR LIMIT=NONE] -->
+    <string name="peak_refresh_rate_summary_custom">Automatically raises the refresh rate from 60 to %1$d Hz for some content. Increases battery usage.</string>
+
+    <!-- Double tap to sleep on status bar or lockscreen -->
+    <string name="status_bar_double_tap_to_sleep_title">Tap to sleep</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Double-tap on the status bar or lockscreen to turn off the display</string>
+
+    <!-- High touch polling rate -->
+    <string name="high_touch_polling_rate_title">High touch polling rate</string>
+    <string name="high_touch_polling_rate_summary">Increase touchscreen polling rate</string>
+
+    <!-- Heads-up -->
+    <string name="heads_up_notifications_enabled_title">Heads-up</string>
+    <string name="heads_up_notifications_enabled_summary">Display priority notifications in a small floating window</string>
+
+    <!-- High touch sensitivity -->
+    <string name="high_touch_sensitivity_title">High touch sensitivity</string>
+    <string name="high_touch_sensitivity_summary">Increase touchscreen sensitivity so it can be used while wearing gloves</string>
+
+    <!-- Hotspot extras -->
+    <string name="tethering_allow_vpn_upstreams_title">Allow clients to use VPNs</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Permit hotspot clients to use this device\u2019s VPN connections for upstream connectivity</string>
+
+    <!-- Increasing ring tone volume -->
+    <string name="increasing_ring_volume_option_title">Increasing ring volume</string>
+    <string name="increasing_ring_min_volume_title">Start volume</string>
+    <string name="increasing_ring_ramp_up_time_title">Ramp-up time</string>
+
+    <!-- Lock screen cover art -->
+    <string name="lockscreen_media_art_title">Display media cover art</string>
+
+    <!-- Lock screen pattern size -->
+    <string name="lock_pattern_size_3" translatable="false">3 \u00d7 3</string>
+    <string name="lock_pattern_size_4" translatable="false">4 \u00d7 4</string>
+    <string name="lock_pattern_size_5" translatable="false">5 \u00d7 5</string>
+    <string name="lock_pattern_size_6" translatable="false">6 \u00d7 6</string>
+    <string name="lock_settings_picker_pattern_size_message">Choose a pattern size</string>
+    <!-- Whether a visible red line will be drawn after the user has drawn the unlock pattern incorrectly -->
+    <string name="lockpattern_settings_enable_error_path_title">Show pattern error</string>
+    <!-- Whether the dots will be drawn when using the lockscreen pattern -->
+    <string name="lockpattern_settings_enable_dots_title">Show pattern dots</string>
+
+    <!-- Max refresh rate -->
+    <string name="max_refresh_rate_title">Peak refresh rate</string>
+
+    <!-- Min refresh rate -->
+    <string name="min_refresh_rate_title">Minimum refresh rate</string>
+
+    <!-- Message shown in fingerprint enrollment dialog to locate the sensor -->
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Locate the fingerprint sensor on the front of your tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Locate the fingerprint sensor on the front of your device.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Locate the fingerprint sensor on the front of your phone.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Locate the fingerprint sensor on the back of your tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Locate the fingerprint sensor on the back of your device.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Locate the fingerprint sensor on the back of your phone.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Locate the fingerprint sensor on the side of your tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Locate the fingerprint sensor on the side of your device.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Locate the fingerprint sensor on the side of your phone.</string>
+
+    <!-- Message shown when user touches the icon on the screen, instead of the real fingerprint sensor -->
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Touch the sensor on the front of your tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Touch the sensor on the front of your device.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Touch the sensor on the front of your phone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Touch the sensor on the back of your tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Touch the sensor on the back of your device.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Touch the sensor on the back of your phone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Touch the sensor on the side of your tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Touch the sensor on the side of your device.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Touch the sensor on the side of your phone.</string>
+
+    <!-- Navigation bar hint -->
+    <string name="show_navbar_hint_title">Navigation hint</string>
+    <string name="show_navbar_hint_summary">Show navigation hint bar at the bottom of the screen</string>
+
+    <!-- Notification sound timeout -->
+    <string name="app_notification_sound_timeout_title">Minimum time between notification sounds</string>
+    <string name="app_notification_sound_timeout_summary_template">Allow sounds or vibration no more than once every <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">No restriction</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 seconds</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 seconds</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minute</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minutes</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minutes</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minutes</string>
+
+    <!-- One shot automatic brightness -->
+    <string name="auto_brightness_one_shot_title">One shot auto-brightness</string>
+    <string name="auto_brightness_one_shot_summary">Brightness adjustment will only occur at the moment the screen is turned on</string>
+
+    <!-- Per-app data restrictions -->
+    <string name="data_usage_app_restrict_all">Allow network access</string>
+    <string name="data_usage_app_restrict_all_summary">Enable network usage</string>
+    <string name="data_usage_app_restrict_mobile">Mobile data</string>
+    <string name="data_usage_app_restrict_mobile_summary">Enable usage of mobile data</string>
+    <string name="data_usage_app_restrict_vpn">VPN data</string>
+    <string name="data_usage_app_restrict_vpn_summary">Enable usage of VPN data</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi data</string>
+    <string name="data_usage_app_restrict_wifi_summary">Enable usage of Wi\u2011Fi data</string>
+
+    <!-- PIN scramble -->
+    <string name="unlock_scramble_pin_layout_title">Scramble layout</string>
+    <string name="unlock_scramble_pin_layout_summary">Scramble PIN layout when unlocking device</string>
+
+    <!-- Proximity wake -->
+    <string name="proximity_wake_title">Prevent accidental wake-up</string>
+    <string name="proximity_wake_summary">Check the proximity sensor prior to waking up screen</string>
+
+    <!-- Touchscreen gesture settings -->
+    <string name="touchscreen_gesture_settings_title">Touchscreen gestures</string>
+    <string name="touchscreen_gesture_settings_summary">Perform various touchscreen gestures for quick actions</string>
+
+    <!-- Touchscreen hovering -->
+    <string name="touchscreen_hovering_title">Touchscreen hovering</string>
+    <string name="touchscreen_hovering_summary">Allows you to hover the screen like a mouse in web browsers, remote desktops, etc</string>
+
+    <!-- Wake on plug -->
+    <string name="wake_when_plugged_or_unplugged_title">Wake on plug</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Turn the screen on when connecting or disconnecting a power source</string>
+
+    <!-- FastCharge feature -->
+    <string name="fast_charging_title">Fast charging</string>
+    <string name="fast_charging_summary">Disable to reduce the heat produced by the device while charging or to extend the lifespan of the battery</string>
+
+    <!-- Preference and settings suggestion title text for screen off UDFPS (phone) [CHAR LIMIT=60]-->
+    <string name="ambient_display_screen_off_udfps_title" product="default">Long press on fingerprint sensor to unlock phone</string>
+    <!-- Preference and settings suggestion title text for screen off UDFPS  (tablet) [CHAR LIMIT=60]-->
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Long press on fingerprint sensor to unlock tablet</string>
+    <!-- Preference and settings suggestion title text for screen off UDFPS  (device) [CHAR LIMIT=60]-->
+    <string name="ambient_display_screen_off_udfps_title" product="device">Long press on fingerprint sensor to unlock device</string>
+    <!-- Summary text for screen off UDFPS [CHAR LIMIT=NONE]-->
+    <string name="ambient_display_screen_off_udfps_summary">To wake up your screen and unlock, long press your under-display fingerprint sensor.</string>
+
+    <!-- Warning message for the sd card setup -->
+    <string name="storage_warning_internal">Warning: This option may not work properly or lead to data loss and is therefore not recommended!</string>
+
+    <!-- Location settings screen, setting summary for Assisted GPS switch -->
+    <string name="assisted_gps_summary">Download satellite assistance data from the internet which can greatly improve the GPS startup performance. For emergency calls, assisted GPS is always allowed.</string>
+</resources>
diff --git a/res/values/config.xml b/res/values/config.xml
index 7444b57..2e53a2f 100755
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -689,4 +689,7 @@
 
     <item name="a11y_extra_dim_banner" type="raw" product="default">@raw/extra_dim_banner</item>
     <item name="a11y_extra_dim_banner" type="raw" product="tablet">@raw/extra_dim_banner_tablet</item>
+
+    <!-- Whether the given language capitalizes nouns -->
+    <bool name="language_capitalizes_nouns">false</bool>
 </resources>
diff --git a/res/values/lineage_config.xml b/res/values/lineage_config.xml
new file mode 100644
index 0000000..3fc6576
--- /dev/null
+++ b/res/values/lineage_config.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2020-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources>
+    <!-- Indicates whether device has a front facing fingerprint sensor (not udfps). -->
+    <bool name="config_is_front_facing_fps" translatable="false">false</bool>
+
+    <!-- Indicates whether device has a side mounted fingerprint sensor,
+         but a dedicated one, i.e. not embedded in the power button. -->
+    <bool name="config_is_side_fps" translatable="false">false</bool>
+
+    <string-array name="config_ignored_backup_transports" translatable="false">
+        <item>com.android.localtransport/.LocalTransport</item>
+    </string-array>
+
+    <!-- Whether to show peak refresh rate in display settings -->
+    <bool name="config_show_peak_refresh_rate_switch">false</bool>
+
+    <!-- Whether to show min refresh rate in display settings -->
+    <bool name="config_show_min_refresh_rate_switch">false</bool>
+
+    <!-- Max network scan search time in seconds -->
+    <integer name="config_network_scan_helper_max_search_time_sec">300</integer>
+</resources>
diff --git a/res/values/lineage_dimens.xml b/res/values/lineage_dimens.xml
new file mode 100644
index 0000000..d9c2d7d
--- /dev/null
+++ b/res/values/lineage_dimens.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2019 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<resources>
+    <!-- Fingerprint -->
+    <dimen name="fingerprint_find_sensor_padding_top">16dp</dimen>
+</resources>
diff --git a/res/values/lineage_styles.xml b/res/values/lineage_styles.xml
new file mode 100644
index 0000000..1ce2e23
--- /dev/null
+++ b/res/values/lineage_styles.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2018 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources>
+    <style name="LockPatternSizeHeaderStyle" parent="android:style/TextAppearance.Material.Subhead">
+        <item name="android:paddingTop">16dp</item>
+        <item name="android:textColor">@color/primary_dark_material_light</item>
+        <item name="android:lineSpacingMultiplier">1.2</item>
+    </style>
+</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index ccf4af7..044d70e 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -4227,23 +4227,23 @@
     <!-- Button title to factory data reset the entire device. The "(factory reset)" part is optional for translation. [CHAR LIMIT=30 BACKUP_MESSAGE_ID=3531267871084279512]-->
     <string name="main_clear_short_title">Erase all data (factory reset)</string>
     <!-- SD card & phone storage settings screen, message on screen after user selects Factory data reset [CHAR LIMIT=NONE] -->
-    <string name="main_clear_desc" product="tablet">"This will erase all data from your tablet\u2019s <b>internal storage</b>, including:\n\n<li>Your Google Account</li>\n<li>System and app data and settings</li>\n<li>Downloaded apps</li>"</string>
+    <string name="main_clear_desc" product="tablet">This will erase all data from your tablet\u2019s <b>internal storage</b>, including:\n\n<li>Your Google Account</li>\n<li>System and app data and settings</li>\n<li>Downloaded apps</li></string>
     <!-- SD card & phone storage settings screen, message on screen after user selects Factory data reset [CHAR LIMIT=NONE] -->
-    <string name="main_clear_desc" product="default">"This will erase all data from your phone\u2019s <b>internal storage</b>, including:\n\n<li>Your Google Account</li>\n<li>System and app data and settings</li>\n<li>Downloaded apps</li>"</string>
+    <string name="main_clear_desc" product="default">This will erase all data from your phone\u2019s <b>internal storage</b>, including:\n\n<li>Your Google Account</li>\n<li>System and app data and settings</li>\n<li>Downloaded apps</li></string>
     <!-- SD card & phone storage settings screen, instructions and list of current accounts.  The list of accounts follows this text[CHAR LIMIT=NONE] -->
-    <string name="main_clear_accounts" product="default">"\n\nYou are currently signed into the following accounts:\n"</string>
+    <string name="main_clear_accounts" product="default">\n\nYou are currently signed into the following accounts:\n</string>
     <!-- SD card & phone storage settings screen, notification if other users are present on the device [CHAR LIMIT=NONE] -->
-    <string name="main_clear_other_users_present" product="default">"\n\nThere are other users present on this device.\n"</string>
+    <string name="main_clear_other_users_present" product="default">\n\nThere are other users present on this device.\n</string>
     <!-- SD card & phone storage settings screen, list of items in user data storage (USB storage or SD card) that will be erased during this operation [CHAR LIMIT=NONE] -->
-    <string name="main_clear_desc_also_erases_external">"<li>Music</li>\n<li>Photos</li>\n<li>Other user data</li>"</string>
+    <string name="main_clear_desc_also_erases_external"><li>Music</li>\n<li>Photos</li>\n<li>Other user data</li></string>
     <!-- SD card & phone storage settings screen, list of items on an eSIM (embedded SIM) that will be erased during this operation [CHAR LIMIT=NONE] -->
-    <string name="main_clear_desc_also_erases_esim">"<li>eSIMs</li>"</string>
+    <string name="main_clear_desc_also_erases_esim"><li>eSIMs</li></string>
     <!-- SD card & phone storage settings screen, notification if there are eSIM (embedded SIM) profiles present that the user's mobile service plan will not be canceled [CHAR LIMIT=NONE] -->
-    <string name="main_clear_desc_no_cancel_mobile_plan">"\n\nThis will not cancel your mobile service plan.</string>
+    <string name="main_clear_desc_no_cancel_mobile_plan">\n\nThis will not cancel your mobile service plan.</string>
     <!-- SD card & phone storage settings screen, instructions about whether to also erase the external storage (SD card) when erasing the internal storage [CHAR LIMIT=NONE] -->
-    <string name="main_clear_desc_erase_external_storage" product="nosdcard">"\n\nTo clear music, pictures, and other user data, the <b>USB storage</b> needs to be erased."</string>
+    <string name="main_clear_desc_erase_external_storage" product="nosdcard">\n\nTo clear music, pictures, and other user data, the <b>USB storage</b> needs to be erased.</string>
     <!-- SD card & phone storage settings screen, instructions about whether to also erase the external storage (SD card) when erasing the internal storage [CHAR LIMIT=NONE] -->
-    <string name="main_clear_desc_erase_external_storage" product="default">"\n\nTo clear music, pictures, and other user data, the <b>SD card</b> needs to be erased."</string>
+    <string name="main_clear_desc_erase_external_storage" product="default">\n\nTo clear music, pictures, and other user data, the <b>SD card</b> needs to be erased.</string>
     <!-- SD card & phone storage settings screen, label for check box to erase USB storage [CHAR LIMIT=30] -->
     <string name="erase_external_storage" product="nosdcard">Erase USB storage</string>
     <!-- SD card & phone storage settings screen, label for check box to erase SD card [CHAR LIMIT=30] -->
diff --git a/res/xml/about_legal.xml b/res/xml/about_legal.xml
index d30ceaa..a36ab66 100644
--- a/res/xml/about_legal.xml
+++ b/res/xml/about_legal.xml
@@ -35,6 +35,12 @@
         android:title="@string/license_title"
         settings:controller="com.android.settings.deviceinfo.legal.LicensePreferenceController" />
 
+    <!-- LineageOS License information -->
+    <Preference
+        android:key="lineage_license"
+        android:title="@string/lineagelicense_title"
+        settings:controller="com.android.settings.deviceinfo.legal.LineageLicensePreferenceController" />
+
     <!-- Terms and conditions -->
     <Preference
         android:key="terms"
diff --git a/res/xml/app_data_usage.xml b/res/xml/app_data_usage.xml
index aacc1f6..3a2cb43 100644
--- a/res/xml/app_data_usage.xml
+++ b/res/xml/app_data_usage.xml
@@ -59,6 +59,21 @@
             android:title="@string/data_usage_app_settings" />
 
         <com.android.settingslib.RestrictedSwitchPreference
+            android:key="restrict_all"
+            android:title="@string/data_usage_app_restrict_all"
+            android:summary="@string/data_usage_app_restrict_all_summary" />
+
+        <com.android.settingslib.RestrictedSwitchPreference
+            android:key="restrict_wifi"
+            android:title="@string/data_usage_app_restrict_wifi"
+            android:summary="@string/data_usage_app_restrict_wifi_summary" />
+
+        <com.android.settingslib.RestrictedSwitchPreference
+            android:key="restrict_cellular"
+            android:title="@string/data_usage_app_restrict_mobile"
+            android:summary="@string/data_usage_app_restrict_mobile_summary" />
+
+        <com.android.settingslib.RestrictedSwitchPreference
             android:key="restrict_background"
             android:title="@string/data_usage_app_restrict_background"
             android:summary="@string/data_usage_app_restrict_background_summary"
@@ -66,6 +81,11 @@
             settings:restrictedSwitchSummary="@string/disabled_by_admin" />
 
         <com.android.settingslib.RestrictedSwitchPreference
+            android:key="restrict_vpn"
+            android:title="@string/data_usage_app_restrict_vpn"
+            android:summary="@string/data_usage_app_restrict_vpn_summary" />
+
+        <com.android.settingslib.RestrictedSwitchPreference
             android:key="unrestricted_data_saver"
             android:title="@string/unrestricted_app_title"
             android:summary="@string/unrestricted_app_summary"
diff --git a/res/xml/app_info_settings.xml b/res/xml/app_info_settings.xml
index 2bb05d0..b155edc 100644
--- a/res/xml/app_info_settings.xml
+++ b/res/xml/app_info_settings.xml
@@ -207,9 +207,16 @@
     <Preference
         android:key="app_version"
         android:selectable="false"
-        android:order="9999"
+        android:order="9998"
         settings:controller="com.android.settings.applications.appinfo.AppVersionPreferenceController"
         settings:allowDividerAbove="true"
         settings:enableCopying="true"/>
 
+    <Preference
+        android:key="app_package_name"
+        android:selectable="false"
+        android:order="9999"
+        settings:controller="com.android.settings.applications.appinfo.AppPackageNamePreferenceController"
+        settings:enableCopying="true"/>
+
 </PreferenceScreen>
diff --git a/res/xml/app_notification_settings.xml b/res/xml/app_notification_settings.xml
index 5b744fb..b2df89c 100644
--- a/res/xml/app_notification_settings.xml
+++ b/res/xml/app_notification_settings.xml
@@ -86,6 +86,14 @@
         android:title="@string/app_notification_override_dnd_title"
         android:summary="@string/app_notification_override_dnd_summary"/>
 
+    <com.android.settings.RestrictedListPreference
+        android:key="sound_timeout"
+        android:title="@string/app_notification_sound_timeout_title"
+        android:entries="@array/app_notification_sound_timeout_entries"
+        android:entryValues="@array/app_notification_sound_timeout_values"
+        android:order="1003"
+        android:persistent="false" />
+
         <Preference
             android:key="app_link"
             android:order="1003"
diff --git a/res/xml/auto_brightness_detail.xml b/res/xml/auto_brightness_detail.xml
index 0584d77..b31808e 100644
--- a/res/xml/auto_brightness_detail.xml
+++ b/res/xml/auto_brightness_detail.xml
@@ -32,6 +32,17 @@
         settings:userRestriction="no_config_brightness"
         settings:controller="com.android.settings.display.AutoBrightnessDetailPreferenceController"/>
 
+    <com.android.settingslib.RestrictedSwitchPreference
+        android:key="auto_brightness_one_shot"
+        android:title="@string/auto_brightness_one_shot_title"
+        android:summary="@string/auto_brightness_one_shot_summary"
+        android:dependency="auto_brightness"
+        settings:keywords="@string/keywords_display_auto_brightness"
+        settings:controller="com.android.settings.display.AutoBrightnessOneShotPreferenceController"
+        settings:useAdminDisabledSummary="true"
+        settings:userRestriction="no_config_brightness"
+        settings:allowDividerAbove="true" />
+
     <com.android.settingslib.widget.FooterPreference
         android:key="auto_brightness_footer"
         android:title="@string/auto_brightness_description"
diff --git a/res/xml/backup_transport_settings.xml b/res/xml/backup_transport_settings.xml
new file mode 100644
index 0000000..cc8cc9a
--- /dev/null
+++ b/res/xml/backup_transport_settings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Calyx Institute
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:settings="http://schemas.android.com/apk/res-auto"
+    android:title="@string/backup_transport_title">
+
+    <!-- content gets filled programmatically -->
+
+</PreferenceScreen>
diff --git a/res/xml/configure_notification_settings.xml b/res/xml/configure_notification_settings.xml
index 27d5760..a5d5831 100644
--- a/res/xml/configure_notification_settings.xml
+++ b/res/xml/configure_notification_settings.xml
@@ -169,5 +169,18 @@
             android:title="@string/notification_assistant_title"
             android:summary="@string/notification_assistant_summary"
             settings:controller="com.android.settings.notification.NotificationAssistantPreferenceController"/>
+
+        <!-- Heads up -->
+        <lineageos.preference.GlobalSettingSwitchPreference
+            android:key="heads_up_notifications_enabled"
+            android:order="24"
+            android:title="@string/heads_up_notifications_enabled_title"
+            android:summary="@string/heads_up_notifications_enabled_summary" />
+
+        <!-- Notification lights -->
+        <lineageos.preference.LineagePartsPreference
+            android:key="notification_lights"
+            settings:requiresConfig="@*android:bool/config_intrusiveNotificationLed"
+            settings:replacesKey="notification_pulse" />
     </PreferenceCategory>
 </PreferenceScreen>
diff --git a/res/xml/dark_mode_settings.xml b/res/xml/dark_mode_settings.xml
index 7f13659..5ad39a2 100644
--- a/res/xml/dark_mode_settings.xml
+++ b/res/xml/dark_mode_settings.xml
@@ -62,4 +62,10 @@
         settings:searchable="false"
         settings:controller="com.android.settings.display.darkmode.DarkModeCustomBedtimePreferenceController" />
 
+    <lineageos.preference.LineageSecureSettingSwitchPreference
+        android:key="berry_black_theme"
+        android:dependency="dark_ui_activated"
+        android:title="@string/berry_black_theme_title"
+        android:summary="@string/berry_black_theme_summary"
+        android:defaultValue="false" />
 </PreferenceScreen>
diff --git a/res/xml/development_settings.xml b/res/xml/development_settings.xml
index 19c1209..160d81d 100644
--- a/res/xml/development_settings.xml
+++ b/res/xml/development_settings.xml
@@ -137,6 +137,13 @@
             android:title="@string/enable_adb"
             android:summary="@string/enable_adb_summary" />
 
+        <SwitchPreference
+            android:key="enable_adb_root"
+            android:title="@string/adb_enable_root"
+            android:summary="@string/adb_enable_summary_root"
+            android:dependency="enable_adb"
+            android:persistent="false" />
+
         <Preference android:key="clear_adb_keys"
                     android:title="@string/clear_adb_keys" />
 
diff --git a/res/xml/display_settings.xml b/res/xml/display_settings.xml
index ad5236e..43f4bc4 100644
--- a/res/xml/display_settings.xml
+++ b/res/xml/display_settings.xml
@@ -86,6 +86,10 @@
             settings:controller="com.android.settings.display.NightDisplayPreferenceController"
             settings:keywords="@string/keywords_display_night_display"/>
 
+        <lineageos.preference.LineagePartsPreference
+            android:key="livedisplay"
+            settings:requiresConfig="@*lineageos.platform:bool/config_enableLiveDisplay" />
+
         <Preference
             android:key="color_mode"
             android:title="@string/color_mode_title"
@@ -107,16 +111,10 @@
             settings:keywords="@string/keywords_auto_rotate"
             settings:controller="com.android.settings.display.AutoRotatePreferenceController"/>
 
-        <!--
-            Auto-rotation preference that will be shown when device state based auto-rotation
-            settings are available.
-          -->
-        <Preference
-            android:key="device_state_auto_rotate"
-            android:title="@string/accelerometer_title"
-            android:fragment="com.android.settings.display.DeviceStateAutoRotateDetailsFragment"
-            settings:keywords="@string/keywords_auto_rotate"
-            settings:controller="com.android.settings.display.DeviceStateAutoRotateOverviewController"/>
+        <lineageos.preference.LineagePartsPreference
+            android:key="rotation"
+            settings:replacesKey="auto_rotate"
+            settings:requiresFeature="android.hardware.sensor.accelerometer" />
 
         <Preference
             android:key="screen_resolution"
@@ -131,10 +129,21 @@
             android:summary="@string/display_white_balance_summary"
             settings:controller="com.android.settings.display.DisplayWhiteBalancePreferenceController"/>
 
+        <ListPreference
+            android:key="max_refresh_rate"
+            android:title="@string/max_refresh_rate_title"
+            android:summary="@string/summary_placeholder"
+            settings:controller="com.android.settings.display.PeakRefreshRateListPreferenceController" />
+
+        <ListPreference
+            android:key="min_refresh_rate"
+            android:title="@string/min_refresh_rate_title"
+            android:summary="@string/summary_placeholder"
+            settings:controller="com.android.settings.display.MinRefreshRatePreferenceController" />
+
         <SwitchPreference
             android:key="peak_refresh_rate"
             android:title="@string/peak_refresh_rate_title"
-            android:summary="@string/peak_refresh_rate_summary"
             settings:controller="com.android.settings.display.PeakRefreshRatePreferenceController"/>
 
         <SwitchPreference
@@ -142,6 +151,10 @@
             android:title="@string/show_operator_name_title"
             android:summary="@string/show_operator_name_summary"/>
 
+        <lineageos.preference.LineagePartsPreference
+            android:key="long_screen_settings"
+            settings:requiresConfig="@*lineageos.platform:bool/config_haveHigherAspectRatioScreen" />
+
         <Preference
             android:key="screensaver"
             android:title="@string/screensaver_settings_title"
@@ -163,6 +176,41 @@
             android:title="@string/tap_to_wake"
             android:summary="@string/tap_to_wake_summary"/>
 
+        <!-- Prevent accidental wake-up -->
+        <lineageos.preference.LineageSystemSettingSwitchPreference
+            android:key="proximity_on_wake"
+            android:title="@string/proximity_wake_title"
+            android:summary="@string/proximity_wake_summary"
+            android:defaultValue="@*lineageos.platform:bool/config_proximityCheckOnWakeEnabledByDefault"
+            settings:requiresConfig="@*lineageos.platform:bool/config_proximityCheckOnWake" />
+
+        <!-- Double tap to sleep -->
+        <lineageos.preference.LineageSystemSettingSwitchPreference
+            android:key="double_tap_sleep_gesture"
+            android:title="@string/status_bar_double_tap_to_sleep_title"
+            android:summary="@string/status_bar_double_tap_to_sleep_summary"
+            android:defaultValue="true" />
+
+        <lineageos.preference.LineageGlobalSettingSwitchPreference
+            android:key="wake_when_plugged_or_unplugged"
+            android:title="@string/wake_when_plugged_or_unplugged_title"
+            android:summary="@string/wake_when_plugged_or_unplugged_summary"
+            android:defaultValue="@*android:bool/config_unplugTurnsOnScreen" />
+
+        <lineageos.preference.LineageSystemSettingSwitchPreference
+            android:key="high_touch_polling_rate_enable"
+            android:title="@string/high_touch_polling_rate_title"
+            android:summary="@string/high_touch_polling_rate_summary"
+            android:defaultValue="false"
+            settings:requiresFeature="lineagehardware:FEATURE_HIGH_TOUCH_POLLING_RATE" />
+
+        <lineageos.preference.LineageSystemSettingSwitchPreference
+            android:key="high_touch_sensitivity_enable"
+            android:title="@string/high_touch_sensitivity_title"
+            android:summary="@string/high_touch_sensitivity_summary"
+            android:defaultValue="false"
+            settings:requiresFeature="lineagehardware:FEATURE_HIGH_TOUCH_SENSITIVITY" />
+
         <ListPreference
             android:key="theme"
             android:title="@string/device_theme"
diff --git a/res/xml/double_tap_power_settings.xml b/res/xml/double_tap_power_settings.xml
index f4d7607..37a5028 100644
--- a/res/xml/double_tap_power_settings.xml
+++ b/res/xml/double_tap_power_settings.xml
@@ -24,7 +24,7 @@
     <com.android.settingslib.widget.IllustrationPreference
         android:key="gesture_double_tap_power_video"
         settings:searchable="false"
-        app:lottie_rawRes="@drawable/quickly_open_camera"/>
+        app:lottie_rawRes="@raw/lottie_quickly_open_camera"/>
 
     <SwitchPreference
         android:key="gesture_double_tap_power"
diff --git a/res/xml/firmware_version.xml b/res/xml/firmware_version.xml
index 41f7733..4eb25fd 100644
--- a/res/xml/firmware_version.xml
+++ b/res/xml/firmware_version.xml
@@ -30,6 +30,14 @@
         settings:searchable="false"
         settings:controller="com.android.settings.deviceinfo.firmwareversion.FirmwareVersionDetailPreferenceController"/>
 
+    <!-- Lineage version -->
+    <Preference
+        android:key="lineage_version"
+        android:title="@*lineageos.platform:string/lineage_version"
+        android:summary="@string/summary_placeholder"
+        settings:enableCopying="true"
+        settings:controller="com.android.settings.deviceinfo.firmwareversion.LineageVersionDetailPreferenceController"/>
+
     <!-- Security patch -->
     <Preference
         android:key="security_key"
@@ -37,13 +45,23 @@
         settings:enableCopying="true"
         settings:controller="com.android.settings.deviceinfo.firmwareversion.SecurityPatchLevelPreferenceController"/>
 
+    <!-- Vendor security patch -->
+    <Preference
+        android:key="vendor_security_key"
+        android:title="@*lineageos.platform:string/lineage_vendor_security_patch"
+        android:selectable="false"
+        settings:enableCopying="true"
+        settings:controller="com.android.settings.deviceinfo.firmwareversion.LineageVendorSecurityPatchLevelPreferenceController"/>
+
     <!-- Mainline module version -->
+    <!--
     <Preference
         android:key="module_version"
         android:title="@string/module_version"
         android:summary="@string/summary_placeholder"
         settings:enableCopying="true"
         settings:controller="com.android.settings.deviceinfo.firmwareversion.MainlineModuleVersionPreferenceController"/>
+    -->
 
     <!-- Baseband -->
     <Preference
@@ -63,6 +81,15 @@
         settings:enableCopying="true"
         settings:controller="com.android.settings.deviceinfo.firmwareversion.KernelVersionPreferenceController"/>
 
+    <!-- Build date -->
+    <Preference
+        android:key="os_build_date"
+        android:title="@*lineageos.platform:string/build_date"
+        android:summary="@string/summary_placeholder"
+        android:selectable="false"
+        settings:enableCopying="true"
+        settings:controller="com.android.settings.deviceinfo.firmwareversion.LineageBuildDatePreferenceController"/>
+
     <!-- Build -->
     <Preference
         android:key="os_build_number"
diff --git a/res/xml/gesture_navigation_settings.xml b/res/xml/gesture_navigation_settings.xml
index 022583c..a3ce307 100644
--- a/res/xml/gesture_navigation_settings.xml
+++ b/res/xml/gesture_navigation_settings.xml
@@ -23,6 +23,13 @@
     android:title="@string/gesture_settings_activity_title"
     settings:keywords="@string/keywords_gesture_navigation_settings">
 
+    <lineageos.preference.LineageSystemSettingSwitchPreference
+        android:key="navigation_bar_hint"
+        android:title="@string/show_navbar_hint_title"
+        android:summary="@string/show_navbar_hint_summary"
+        android:defaultValue="true"
+        settings:requiresPackage="org.lineageos.overlay.customization.navbar.nohint" />
+
     <PreferenceCategory
         android:key="assistant_gesture_category"
         android:persistent="false"
diff --git a/res/xml/gestures.xml b/res/xml/gestures.xml
index 4881360..10ed22d 100644
--- a/res/xml/gestures.xml
+++ b/res/xml/gestures.xml
@@ -20,6 +20,19 @@
     xmlns:settings="http://schemas.android.com/apk/res-auto"
     android:title="@string/gesture_preference_title">
 
+    <lineageos.preference.LineagePartsPreference
+        android:key="touchscreen_gesture_settings"
+        settings:requiresFeature="lineagehardware:FEATURE_TOUCHSCREEN_GESTURES" />
+
+    <lineageos.preference.RemotePreference
+            android:key="device_touchscreen_gesture_settings"
+            android:title="@string/touchscreen_gesture_settings_title"
+            android:summary="@string/touchscreen_gesture_settings_summary"
+            settings:replacesKey="touchscreen_gesture_settings"
+            settings:requiresFeature="lineagehardware:FEATURE_TOUCHSCREEN_GESTURES">
+        <intent android:action="org.lineageos.settings.device.GESTURE_SETTINGS" />
+    </lineageos.preference.RemotePreference>
+
     <Preference
         android:key="gesture_assist_input_summary"
         android:title="@string/assist_gesture_title"
@@ -82,6 +95,13 @@
         settings:controller="com.android.settings.gestures.PickupGesturePreferenceController" />
 
     <Preference
+        android:key="gesture_screen_off_udfps_input_summary"
+        android:title="@string/ambient_display_screen_off_udfps_title"
+        android:fragment="com.android.settings.gestures.ScreenOffUdfpsSettings"
+        settings:searchable="false"
+        settings:controller="com.android.settings.gestures.ScreenOffUdfpsPreferenceController" />
+
+    <Preference
         android:key="gesture_power_menu_summary"
         android:title="@string/power_menu_setting_name"
         android:fragment="com.android.settings.gestures.PowerMenuSettings"
diff --git a/res/xml/language_and_input.xml b/res/xml/language_and_input.xml
index 64b5003..415edb7 100644
--- a/res/xml/language_and_input.xml
+++ b/res/xml/language_and_input.xml
@@ -105,6 +105,14 @@
             android:key="pointer_speed"
             android:title="@string/pointer_speed"
             android:dialogTitle="@string/pointer_speed" />
+
+        <lineageos.preference.LineageSecureSettingSwitchPreference
+            android:key="feature_touch_hovering"
+            android:title="@string/touchscreen_hovering_title"
+            android:summary="@string/touchscreen_hovering_summary"
+            android:defaultValue="false"
+            settings:requiresFeature="lineagehardware:FEATURE_TOUCH_HOVERING" />
+
     </PreferenceCategory>
 
     <SwitchPreference
diff --git a/res/xml/location_settings.xml b/res/xml/location_settings.xml
index fe87efd..477bbe2 100644
--- a/res/xml/location_settings.xml
+++ b/res/xml/location_settings.xml
@@ -35,6 +35,12 @@
         settings:controller="com.android.settings.location.RecentLocationAccessSeeAllButtonPreferenceController"
         settings:searchable="false"/>
 
+    <SwitchPreference
+        android:key="assisted_gps"
+        android:title="@string/assisted_gps"
+        android:summary="@string/assisted_gps_summary"
+        settings:controller="com.android.settings.location.AgpsPreferenceController"/>
+
     <PreferenceCategory
         android:key="location_advanced_settings"
         android:layout="@layout/preference_category_no_label">
diff --git a/res/xml/my_device_info.xml b/res/xml/my_device_info.xml
index 9b80410..7eeffee 100644
--- a/res/xml/my_device_info.xml
+++ b/res/xml/my_device_info.xml
@@ -23,10 +23,9 @@
 
     <com.android.settingslib.widget.LayoutPreference
         android:key="my_device_info_header"
-        android:order="0"
+        android:order="-1"
         android:layout="@layout/settings_entity_header"
-        android:selectable="false"
-        settings:isPreferenceVisible="false"/>
+        android:selectable="false"/>
 
     <PreferenceCategory
         android:key="basic_info_category"
@@ -57,7 +56,6 @@
             android:order="3"
             android:title="@string/status_number"
             android:summary="@string/summary_placeholder"
-            android:selectable="false"
             settings:isPreferenceVisible="@bool/config_show_sim_info"
             settings:controller="com.android.settings.deviceinfo.PhoneNumberPreferenceController"
             settings:enableCopying="true"/>
@@ -133,6 +131,15 @@
             android:summary="@string/summary_placeholder"
             android:fragment="com.android.settings.deviceinfo.firmwareversion.FirmwareVersionSettings"
             settings:controller="com.android.settings.deviceinfo.firmwareversion.FirmwareVersionPreferenceController"/>
+
+        <!-- Lineage version -->
+        <Preference
+            android:key="lineage_os_version"
+            android:order="43"
+            android:title="@*lineageos.platform:string/lineage_version"
+            android:summary="@string/summary_placeholder"
+            settings:enableCopying="true"
+            settings:controller="com.android.settings.deviceinfo.firmwareversion.LineageVersionDetailPreferenceController"/>
     </PreferenceCategory>
 
     <PreferenceCategory
diff --git a/res/xml/physical_keyboard_settings.xml b/res/xml/physical_keyboard_settings.xml
index 96946a9..f00f0f8 100644
--- a/res/xml/physical_keyboard_settings.xml
+++ b/res/xml/physical_keyboard_settings.xml
@@ -15,6 +15,7 @@
 -->
 <PreferenceScreen
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:settings="http://schemas.android.com/apk/res-auto"
     android:title="@string/physical_keyboard_title">
     <!-- Additional preference screens are inserted here programmatically
          with low order values to set the key map of each attached keyboard. -->
@@ -32,4 +33,20 @@
             android:title="@string/keyboard_shortcuts_helper"
             android:summary="@string/keyboard_shortcuts_helper_summary" />
     </PreferenceCategory>
+
+    <!-- Device-specific keyboard settings. -->
+    <PreferenceCategory
+        android:key="keyboard_extras_category"
+        android:title="@string/keyboard_extras_title" >
+
+        <lineageos.preference.RemotePreference
+            android:key="advanced_keyboard_settings"
+            android:title="@string/advanced_keyboard_settings_title"
+            settings:requiresAction="org.lineageos.settings.device.ADVANCED_KEYBOARD_SETTINGS">
+            <intent
+                android:action="org.lineageos.settings.device.ADVANCED_KEYBOARD_SETTINGS" />
+        </lineageos.preference.RemotePreference>
+
+    </PreferenceCategory>
+
 </PreferenceScreen>
diff --git a/res/xml/power_usage_summary.xml b/res/xml/power_usage_summary.xml
index 9e86bf5..a02851d 100644
--- a/res/xml/power_usage_summary.xml
+++ b/res/xml/power_usage_summary.xml
@@ -58,12 +58,29 @@
         settings:controller="com.android.settings.fuelgauge.batterytip.BatteryManagerPreferenceController"
         settings:keywords="@string/keywords_battery_adaptive_preferences" />
 
+    <!-- Charging control -->
+    <lineageos.preference.LineagePartsPreference
+        android:key="charging_control"
+        settings:requiresService="lineagehealth" />
+
+    <!-- Battery light -->
+    <lineageos.preference.LineagePartsPreference
+        android:key="battery_lights"
+        settings:requiresConfig="@*lineageos.platform:integer/config_deviceLightCapabilities"
+        settings:requiresConfigMask="64" />
+
     <SwitchPreference
         android:key="battery_percentage"
         android:title="@string/battery_percentage"
         android:summary="@string/battery_percentage_description"
         settings:controller="com.android.settings.display.BatteryPercentagePreferenceController" />
 
+    <SwitchPreference
+        android:key="fast_charging"
+        android:title="@string/fast_charging_title"
+        android:summary="@string/fast_charging_summary"
+        settings:controller="com.android.settings.fuelgauge.FastChargingPreferenceController"/>
+
     <com.android.settingslib.widget.FooterPreference
         android:key="power_usage_footer"
         android:title="@string/battery_footer_summary"
diff --git a/res/xml/screen_lock_settings.xml b/res/xml/screen_lock_settings.xml
index 930120e..4deb8be 100644
--- a/res/xml/screen_lock_settings.xml
+++ b/res/xml/screen_lock_settings.xml
@@ -27,6 +27,14 @@
         android:key="visiblepattern"
         android:title="@string/lockpattern_settings_enable_visible_pattern_title" />
 
+    <SwitchPreference
+        android:key="visible_error_pattern"
+        android:title="@string/lockpattern_settings_enable_error_path_title"/>
+
+    <SwitchPreference
+        android:key="visibledots"
+        android:title="@string/lockpattern_settings_enable_dots_title"/>
+
     <!-- available in pin -->
     <SwitchPreference
         android:key="enhancedPinPrivacy"
@@ -46,4 +54,10 @@
         android:key="power_button_instantly_locks"
         android:title="@string/lockpattern_settings_enable_power_button_instantly_locks" />
 
+    <!-- Lineage additions, available in pin/pattern/password/slide -->
+    <SwitchPreference
+        android:key="lockscreen_scramble_pin_layout"
+        android:title="@string/unlock_scramble_pin_layout_title"
+        android:summary="@string/unlock_scramble_pin_layout_summary" />
+
 </PreferenceScreen>
diff --git a/res/xml/screen_off_udfps_settings.xml b/res/xml/screen_off_udfps_settings.xml
new file mode 100644
index 0000000..f723321
--- /dev/null
+++ b/res/xml/screen_off_udfps_settings.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2022 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:title="@string/ambient_display_screen_off_udfps_title">
+
+    <SwitchPreference
+        android:key="gesture_screen_off_udfps"
+        android:title="@string/ambient_display_screen_off_udfps_title"
+        android:summary="@string/ambient_display_screen_off_udfps_summary"
+        app:keywords="@string/keywords_gesture"
+        app:controller="com.android.settings.gestures.ScreenOffUdfpsPreferenceController"
+        app:allowDividerAbove="true" />
+
+</PreferenceScreen>
diff --git a/res/xml/security_lockscreen_settings.xml b/res/xml/security_lockscreen_settings.xml
index 80e8fe6..77a3212 100644
--- a/res/xml/security_lockscreen_settings.xml
+++ b/res/xml/security_lockscreen_settings.xml
@@ -45,6 +45,11 @@
             android:title="@string/owner_info_settings_title"
             android:summary="@string/owner_info_settings_summary" />
 
+        <lineageos.preference.LineageSecureSettingSwitchPreference
+            android:key="lockscreen_media_metadata"
+            android:title="@string/lockscreen_media_art_title"
+            android:defaultValue="false" />
+
         <SwitchPreference
             android:key="lockscreen_privacy_wallet_switch"
             android:title="@string/lockscreen_privacy_wallet_setting_toggle"
@@ -116,12 +121,26 @@
             settings:searchable="false"
             settings:controller="com.android.settings.gestures.PickupGesturePreferenceController" />
 
+        <Preference
+            android:key="gesture_screen_off_udfps_input_summary"
+            android:title="@string/ambient_display_screen_off_udfps_title"
+            android:fragment="com.android.settings.gestures.ScreenOffUdfpsSettings"
+            settings:searchable="false"
+            settings:controller="com.android.settings.gestures.ScreenOffUdfpsPreferenceController" />
+
         <SwitchPreference
             android:key="ambient_display_notification"
             android:title="@string/doze_title"
             android:summary="@string/doze_summary"
             settings:controller="com.android.settings.display.AmbientDisplayNotificationsPreferenceController" />
 
+        <lineageos.preference.RemotePreference
+            android:key="doze_device_settings"
+            android:title="@string/ambient_display_screen_title"
+            settings:replacesKey="ambient_display_always_on|ambient_display_notification">
+            <intent android:action="org.lineageos.settings.device.DOZE_SETTINGS" />
+        </lineageos.preference.RemotePreference>
+
     </PreferenceCategory>
 
     <!-- Work profile settings are at the bottom with high order value to avoid users thinking that
diff --git a/res/xml/security_settings_pattern_size.xml b/res/xml/security_settings_pattern_size.xml
new file mode 100644
index 0000000..bb0cb23
--- /dev/null
+++ b/res/xml/security_settings_pattern_size.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2012-2013 The CyanogenMod Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <Preference
+        android:icon="@drawable/ic_security_pattern_3x3"
+        android:key="lock_pattern_size_3"
+        android:title="@string/lock_pattern_size_3"
+        android:persistent="false"/>
+
+    <Preference
+        android:icon="@drawable/ic_security_pattern_4x4"
+        android:key="lock_pattern_size_4"
+        android:title="@string/lock_pattern_size_4"
+        android:persistent="false"/>
+
+    <Preference
+        android:icon="@drawable/ic_security_pattern_5x5"
+        android:key="lock_pattern_size_5"
+        android:title="@string/lock_pattern_size_5"
+        android:persistent="false"/>
+
+    <Preference
+        android:icon="@drawable/ic_security_pattern_6x6"
+        android:key="lock_pattern_size_6"
+        android:title="@string/lock_pattern_size_6"
+        android:persistent="false"/>
+
+</PreferenceScreen>
diff --git a/res/xml/sound_settings.xml b/res/xml/sound_settings.xml
index 7181e80..9493bba 100644
--- a/res/xml/sound_settings.xml
+++ b/res/xml/sound_settings.xml
@@ -97,6 +97,21 @@
         android:order="-140"
         settings:controller="com.android.settings.notification.AlarmVolumePreferenceController"/>
 
+    <!-- Increasing ring -->
+    <lineageos.preference.LineageSystemSettingSwitchPreference
+        android:key="increasing_ring"
+        android:title="@string/increasing_ring_volume_option_title"
+        android:order="-136"
+        settings:controller="com.android.settings.notification.IncreasingRingPreferenceController" />
+
+    <!-- Increasing ring volume -->
+    <com.android.settings.notification.IncreasingRingVolumePreference
+        android:key="increasing_ring_volume"
+        android:icon="@drawable/ring_notif_increasing"
+        android:dependency="increasing_ring"
+        android:order="-135"
+        settings:controller="com.android.settings.notification.IncreasingRingVolumePreferenceController" />
+
     <!-- TODO(b/174964721): make this a PrimarySwitchPreference -->
     <!-- Interruptions -->
     <com.android.settingslib.RestrictedPreference
@@ -189,6 +204,11 @@
         android:title="@string/charging_sounds_title"
         android:order="-40"/>
 
+    <!-- Custom charging sounds -->
+    <lineageos.preference.LineagePartsPreference
+        android:key="charging_sounds_settings"
+        settings:replacesKey="charging_sounds" />
+
     <!-- Docking sounds -->
     <SwitchPreference
         android:key="docking_sounds"
diff --git a/res/xml/tether_prefs.xml b/res/xml/tether_prefs.xml
index 97ad5fd..23d7df2 100644
--- a/res/xml/tether_prefs.xml
+++ b/res/xml/tether_prefs.xml
@@ -49,6 +49,12 @@
         android:summary="@string/ethernet_tethering_subtext"
         settings:keywords="@string/keywords_hotspot_tethering" />
 
+    <lineageos.preference.LineageSecureSettingSwitchPreference
+        android:key="tethering_allow_vpn_upstreams"
+        android:title="@string/tethering_allow_vpn_upstreams_title"
+        android:summary="@string/tethering_allow_vpn_upstreams_summary"
+        android:defaultValue="false" />
+
     <com.android.settingslib.widget.FooterPreference
         android:key="disabled_on_data_saver"
         android:title="@string/tether_settings_disabled_on_data_saver"
diff --git a/res/xml/usb_details_fragment.xml b/res/xml/usb_details_fragment.xml
index 96a449b..a3be090 100644
--- a/res/xml/usb_details_fragment.xml
+++ b/res/xml/usb_details_fragment.xml
@@ -17,14 +17,9 @@
 <PreferenceScreen
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:settings="http://schemas.android.com/apk/res-auto"
-    android:title="@string/usb_preference"
+    android:title="@string/usb_pref"
     android:key="usb_details_fragment">
 
-    <com.android.settingslib.widget.LayoutPreference
-        android:key="usb_device_header"
-        android:layout="@layout/settings_entity_header"
-        android:selectable="false"/>
-
     <PreferenceCategory
         android:key="usb_details_data_role"
         android:title="@string/usb_control_title"/>
diff --git a/src/com/android/settings/DisplaySettings.java b/src/com/android/settings/DisplaySettings.java
index 97b9aae..1de331d 100644
--- a/src/com/android/settings/DisplaySettings.java
+++ b/src/com/android/settings/DisplaySettings.java
@@ -33,6 +33,8 @@
 import com.android.settingslib.core.lifecycle.Lifecycle;
 import com.android.settingslib.search.SearchIndexable;
 
+import lineageos.hardware.LineageHardwareManager;
+
 import java.util.ArrayList;
 import java.util.List;
 
@@ -40,6 +42,10 @@
 public class DisplaySettings extends DashboardFragment {
     private static final String TAG = "DisplaySettings";
 
+    private static final String KEY_HIGH_TOUCH_POLLING_RATE = "high_touch_polling_rate_enable";
+    private static final String KEY_HIGH_TOUCH_SENSITIVITY = "high_touch_sensitivity_enable";
+    private static final String KEY_PROXIMITY_ON_WAKE = "proximity_on_wake";
+
     @Override
     public int getMetricsCategory() {
         return SettingsEnums.DISPLAY;
@@ -87,6 +93,25 @@
             new BaseSearchIndexProvider(R.xml.display_settings) {
 
                 @Override
+                public List<String> getNonIndexableKeys(Context context) {
+                    List<String> keys = super.getNonIndexableKeys(context);
+                    LineageHardwareManager hardware = LineageHardwareManager.getInstance(context);
+                    if (!hardware.isSupported(
+                            LineageHardwareManager.FEATURE_HIGH_TOUCH_POLLING_RATE)) {
+                        keys.add(KEY_HIGH_TOUCH_POLLING_RATE);
+                    }
+                    if (!hardware.isSupported(
+                            LineageHardwareManager.FEATURE_HIGH_TOUCH_SENSITIVITY)) {
+                        keys.add(KEY_HIGH_TOUCH_SENSITIVITY);
+                    }
+                    if (!context.getResources().getBoolean(
+                            org.lineageos.platform.internal.R.bool.config_proximityCheckOnWake)) {
+                        keys.add(KEY_PROXIMITY_ON_WAKE);
+                    }
+                    return keys;
+                }
+
+                @Override
                 public List<AbstractPreferenceController> createPreferenceControllers(
                         Context context) {
                     return buildPreferenceControllers(context, null);
diff --git a/src/com/android/settings/SetupWizardUtils.java b/src/com/android/settings/SetupWizardUtils.java
index 25e9159..29c4b21 100644
--- a/src/com/android/settings/SetupWizardUtils.java
+++ b/src/com/android/settings/SetupWizardUtils.java
@@ -98,7 +98,7 @@
                 }
             }
         }
-        return R.style.GlifTheme;
+        return R.style.GlifV3Theme;
     }
 
     public static int getTransparentTheme(Context context, Intent intent) {
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index 58788de..07d2549 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -1247,4 +1247,11 @@
         final UserManager userManager = context.getSystemService(UserManager.class);
         return userManager != null && userManager.isSystemUser();
     }
+
+    public static String normalizeTitleCaseIfRequired(Context context, String input) {
+        if (!context.getResources().getBoolean(R.bool.language_capitalizes_nouns)) {
+            return input.toLowerCase();
+        }
+        return input;
+    }
 }
diff --git a/src/com/android/settings/applications/AppPermissionsPreferenceController.java b/src/com/android/settings/applications/AppPermissionsPreferenceController.java
index 4458ea4..68a97d7 100644
--- a/src/com/android/settings/applications/AppPermissionsPreferenceController.java
+++ b/src/com/android/settings/applications/AppPermissionsPreferenceController.java
@@ -23,6 +23,7 @@
 import androidx.preference.Preference;
 
 import com.android.settings.R;
+import com.android.settings.Utils;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settingslib.applications.PermissionsSummaryHelper;
 
@@ -106,12 +107,12 @@
         CharSequence summary;
 
         if (!permissionsToShow.isEmpty()) {
+            final String formatted = Utils.normalizeTitleCaseIfRequired(mContext,
+                    ListFormatter.getInstance().format(permissionsToShow));
             if (isMoreShowed) {
-                summary = mContext.getString(R.string.app_permissions_summary_more,
-                        ListFormatter.getInstance().format(permissionsToShow).toLowerCase());
+                summary = mContext.getString(R.string.app_permissions_summary_more, formatted);
             } else {
-                summary = mContext.getString(R.string.app_permissions_summary,
-                        ListFormatter.getInstance().format(permissionsToShow).toLowerCase());
+                summary = mContext.getString(R.string.app_permissions_summary, formatted);
             }
         } else {
             summary = mContext.getString(
diff --git a/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java b/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java
index 54455d4..e1e5851 100755
--- a/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java
+++ b/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java
@@ -178,6 +178,7 @@
         use(AppAllServicesPreferenceController.class).setPackageName(packageName);
         use(AppStoragePreferenceController.class).setParentFragment(this);
         use(AppVersionPreferenceController.class).setParentFragment(this);
+        use(AppPackageNamePreferenceController.class).setParentFragment(this);
         use(InstantAppDomainsPreferenceController.class).setParentFragment(this);
 
         final HibernationSwitchPreferenceController appHibernationSettings =
diff --git a/src/com/android/settings/applications/appinfo/AppPackageNamePreferenceController.java b/src/com/android/settings/applications/appinfo/AppPackageNamePreferenceController.java
new file mode 100644
index 0000000..bd4f12f
--- /dev/null
+++ b/src/com/android/settings/applications/appinfo/AppPackageNamePreferenceController.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2018 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.applications.appinfo;
+
+import android.content.Context;
+
+public class AppPackageNamePreferenceController extends AppInfoPreferenceControllerBase {
+
+    public AppPackageNamePreferenceController(Context context, String key) {
+        super(context, key);
+    }
+
+    @Override
+    public CharSequence getSummary() {
+        return mParent.getPackageInfo().packageName;
+    }
+}
diff --git a/src/com/android/settings/applications/manageapplications/ManageApplications.java b/src/com/android/settings/applications/manageapplications/ManageApplications.java
index 2186bc1..e147688 100644
--- a/src/com/android/settings/applications/manageapplications/ManageApplications.java
+++ b/src/com/android/settings/applications/manageapplications/ManageApplications.java
@@ -767,9 +767,11 @@
         }
         mOptionsMenu.findItem(R.id.advanced).setVisible(false);
 
-        mOptionsMenu.findItem(R.id.sort_order_alpha).setVisible(mListType == LIST_TYPE_STORAGE
+        mOptionsMenu.findItem(R.id.sort_order_alpha).setVisible(
+                (mListType == LIST_TYPE_STORAGE || mListType == LIST_TYPE_MAIN)
                 && mSortOrder != R.id.sort_order_alpha);
-        mOptionsMenu.findItem(R.id.sort_order_size).setVisible(mListType == LIST_TYPE_STORAGE
+        mOptionsMenu.findItem(R.id.sort_order_size).setVisible(
+                (mListType == LIST_TYPE_STORAGE || mListType == LIST_TYPE_MAIN)
                 && mSortOrder != R.id.sort_order_size);
 
         mOptionsMenu.findItem(R.id.show_system).setVisible(!mShowSystem
diff --git a/src/com/android/settings/backup/BackupSettingsFragment.java b/src/com/android/settings/backup/BackupSettingsFragment.java
index 7df19f5..7fcbd63 100644
--- a/src/com/android/settings/backup/BackupSettingsFragment.java
+++ b/src/com/android/settings/backup/BackupSettingsFragment.java
@@ -42,6 +42,13 @@
         super.onCreate(savedInstanceState);
     }
 
+    @Override
+    public void onStart() {
+        super.onStart();
+        // update information when we navigate back from TransportActivity
+        displayResourceTilesToScreen(getPreferenceScreen());
+    }
+
     /**
      * Get the tag string for logging.
      */
diff --git a/src/com/android/settings/backup/BackupSettingsPreferenceController.java b/src/com/android/settings/backup/BackupSettingsPreferenceController.java
index 4e0e3b4..3208ae4 100644
--- a/src/com/android/settings/backup/BackupSettingsPreferenceController.java
+++ b/src/com/android/settings/backup/BackupSettingsPreferenceController.java
@@ -30,24 +30,24 @@
         implements PreferenceControllerMixin {
     private static final String BACKUP_SETTINGS = "backup_settings";
     private static final  String MANUFACTURER_SETTINGS = "manufacturer_backup";
-    private Intent mBackupSettingsIntent;
-    private CharSequence mBackupSettingsTitle;
-    private String mBackupSettingsSummary;
+    private final BackupSettingsHelper settingsHelper;
     private Intent mManufacturerIntent;
     private String mManufacturerLabel;
 
     public BackupSettingsPreferenceController(Context context) {
         super(context);
-        BackupSettingsHelper settingsHelper = new BackupSettingsHelper(context);
-        mBackupSettingsIntent = settingsHelper.getIntentForBackupSettings();
-        mBackupSettingsTitle = settingsHelper.getLabelForBackupSettings();
-        mBackupSettingsSummary = settingsHelper.getSummaryForBackupSettings();
+        settingsHelper = new BackupSettingsHelper(context);
         mManufacturerIntent = settingsHelper.getIntentProvidedByManufacturer();
         mManufacturerLabel = settingsHelper.getLabelProvidedByManufacturer();
     }
 
     @Override
     public void displayPreference(PreferenceScreen screen) {
+        // we don't get these in the constructor, so we can get updates for them later
+        Intent mBackupSettingsIntent = settingsHelper.getIntentForBackupSettings();
+        CharSequence mBackupSettingsTitle = settingsHelper.getLabelForBackupSettings();
+        String mBackupSettingsSummary = settingsHelper.getSummaryForBackupSettings();
+
         Preference backupSettings = screen.findPreference(BACKUP_SETTINGS);
         Preference manufacturerSettings = screen.findPreference(MANUFACTURER_SETTINGS);
         backupSettings.setIntent(mBackupSettingsIntent);
diff --git a/src/com/android/settings/backup/transport/Transport.java b/src/com/android/settings/backup/transport/Transport.java
new file mode 100644
index 0000000..d2fd6e0
--- /dev/null
+++ b/src/com/android/settings/backup/transport/Transport.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2020 The Calyx Institute
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.settings.backup.transport;
+
+class Transport {
+    final String name;
+    final CharSequence dataManagementLabel;
+    final CharSequence destinationString;
+
+    Transport(String name, CharSequence dataManagementLabel, CharSequence destinationString) {
+        this.name = name;
+        this.dataManagementLabel = dataManagementLabel;
+        this.destinationString = destinationString;
+    }
+}
diff --git a/src/com/android/settings/backup/transport/TransportActivity.java b/src/com/android/settings/backup/transport/TransportActivity.java
new file mode 100644
index 0000000..1adcb90
--- /dev/null
+++ b/src/com/android/settings/backup/transport/TransportActivity.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2020 The Calyx Institute
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.settings.backup.transport;
+
+import android.os.Bundle;
+import androidx.fragment.app.FragmentActivity;
+
+/**
+ * Activity to allow the user to choose the {@link android.app.backup.BackupTransport}.
+ *
+ * Set {@code config_backup_settings_intent} to {@code settings://com.android.settings.backup.transport} to activate.
+ * Don't forget to also set {@code config_backup_settings_label} or else it won't be shown.
+ */
+public class TransportActivity extends FragmentActivity {
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        getSupportFragmentManager().beginTransaction()
+            .replace(android.R.id.content, new TransportFragment())
+            .commit();
+    }
+
+}
diff --git a/src/com/android/settings/backup/transport/TransportFragment.java b/src/com/android/settings/backup/transport/TransportFragment.java
new file mode 100644
index 0000000..6c6a8ce
--- /dev/null
+++ b/src/com/android/settings/backup/transport/TransportFragment.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2020 The Calyx Institute
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.settings.backup.transport;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import com.android.settings.R;
+import com.android.settings.backup.transport.TransportPreferenceController.OnTransportChangedListener;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settingslib.core.AbstractPreferenceController;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class TransportFragment extends DashboardFragment implements OnTransportChangedListener {
+
+    private static final String TAG = "TransportFragment";
+
+    /**
+     * Get the tag string for logging.
+     */
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+
+    /**
+     * Get the res id for static preference xml for this fragment.
+     */
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.backup_transport_settings;
+    }
+
+    /**
+     * Get a list of {@link AbstractPreferenceController} for this fragment.
+     */
+    @Override
+    protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
+        final List<AbstractPreferenceController> controllers = new ArrayList<>();
+        controllers.add(new TransportPreferenceController(context, this));
+        return controllers;
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.BACKUP_SETTINGS;
+    }
+
+    @Override
+    public void onTransportChanged(String transportName) {
+        requireActivity().finish();
+    }
+
+}
diff --git a/src/com/android/settings/backup/transport/TransportHelper.java b/src/com/android/settings/backup/transport/TransportHelper.java
new file mode 100644
index 0000000..1ab5a59
--- /dev/null
+++ b/src/com/android/settings/backup/transport/TransportHelper.java
@@ -0,0 +1,116 @@
+/*
+ * Copyright (C) 2020 The Calyx Institute
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.settings.backup.transport;
+
+import android.app.backup.IBackupManager;
+import android.content.Context;
+import android.os.RemoteException;
+import android.os.ServiceManager;
+import android.os.UserHandle;
+import android.util.Log;
+import androidx.annotation.Nullable;
+
+import com.android.settings.R;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Helper class for {@link TransportActivity} that interacts with {@link IBackupManager}.
+ */
+class TransportHelper {
+    private static final String TAG = "TransportHelper";
+
+    private final IBackupManager mBackupManager = IBackupManager.Stub.asInterface(
+        ServiceManager.getService(Context.BACKUP_SERVICE));
+
+    private Context mContext;
+
+    TransportHelper(Context context) {
+        mContext = context;
+    }
+
+    List<Transport> getTransports() {
+        String[] backupTransports = getBackupTransports();
+        if (backupTransports == null) return Collections.emptyList();
+        ArrayList<Transport> transports = new ArrayList<>(backupTransports.length);
+        String[] ignoredTransports = mContext.getResources().getStringArray(
+                R.array.config_ignored_backup_transports);
+        for (String name : getBackupTransports()) {
+            boolean ignored = false;
+            for (String ignoredTransport : ignoredTransports) {
+                if (name.equals(ignoredTransport)) ignored = true;
+            }
+            if (ignored) continue;
+            CharSequence label = getLabelFromBackupTransport(name);
+            if (label == null || label.length() == 0) label = name;
+            Transport transport = new Transport(name, label, getSummaryFromBackupTransport(name));
+            transports.add(transport);
+        }
+        return transports;
+    }
+
+    void selectTransport(String name) {
+        try {
+            mBackupManager.selectBackupTransport(name);
+        } catch (RemoteException e) {
+            Log.e(TAG, "Error selecting transport: " + name, e);
+        }
+    }
+
+    @Nullable
+    private String[] getBackupTransports() {
+        try {
+            String[] transports = mBackupManager.listAllTransports();
+            if (Log.isLoggable(TAG, Log.DEBUG)) {
+                Log.d(TAG, "Received all backup transports: " + Arrays.toString(transports));
+            }
+            return transports;
+        } catch (RemoteException e) {
+            Log.e(TAG, "Error getting all backup transports", e);
+        }
+        return null;
+    }
+
+    private CharSequence getLabelFromBackupTransport(String transport) {
+        try {
+            CharSequence label = mBackupManager.getDataManagementLabelForUser(UserHandle.myUserId(), transport);
+            if (Log.isLoggable(TAG, Log.DEBUG)) {
+                Log.d(TAG, "Received the backup settings label from " + transport + ": " + label);
+            }
+            return label;
+        } catch (RemoteException e) {
+            Log.e(TAG, "Error getting data management label for " + transport, e);
+        }
+        return null;
+    }
+
+    private String getSummaryFromBackupTransport(String transport) {
+        try {
+            String summary = mBackupManager.getDestinationString(transport);
+            if (Log.isLoggable(TAG, Log.DEBUG)) {
+                Log.d(TAG, "Received the backup settings summary from " + transport + ": " + summary);
+            }
+            return summary;
+        } catch (RemoteException e) {
+            Log.e(TAG, "Error getting data management summary", e);
+        }
+        return null;
+    }
+}
diff --git a/src/com/android/settings/backup/transport/TransportPreferenceController.java b/src/com/android/settings/backup/transport/TransportPreferenceController.java
new file mode 100644
index 0000000..1dc5a51
--- /dev/null
+++ b/src/com/android/settings/backup/transport/TransportPreferenceController.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2020 The Calyx Institute
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.settings.backup.transport;
+
+import android.content.Context;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+import com.android.settingslib.core.AbstractPreferenceController;
+
+public class TransportPreferenceController extends AbstractPreferenceController {
+
+    interface OnTransportChangedListener {
+        void onTransportChanged(String transportName);
+    }
+
+    private final OnTransportChangedListener listener;
+    private final TransportHelper transportHelper;
+
+    public TransportPreferenceController(Context context, OnTransportChangedListener listener) {
+        super(context);
+        this.listener = listener;
+        transportHelper = new TransportHelper(context);
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        for (Transport transport : transportHelper.getTransports()) {
+            screen.addPreference(getPreferenceForTransport(transport));
+        }
+    }
+
+    private Preference getPreferenceForTransport(Transport transport) {
+        Preference p = new Preference(mContext);
+        p.setTitle(transport.dataManagementLabel);
+        p.setSummary(transport.destinationString);
+        p.setIconSpaceReserved(false);
+        p.setOnPreferenceClickListener(preference -> {
+            transportHelper.selectTransport(transport.name);
+            listener.onTransportChanged(transport.name);
+            return true;
+        });
+        return p;
+    }
+
+    /**
+     * Returns true if preference is available (should be displayed)
+     */
+    @Override
+    public boolean isAvailable() {
+        return true;
+    }
+
+    /**
+     * Returns the key for this preference.
+     */
+    @Override
+    public String getPreferenceKey() {
+        return null;
+    }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
index 368564a..2348141 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
@@ -1103,10 +1103,19 @@
 
         @Override
         public Dialog onCreateDialog(Bundle savedInstanceState) {
+            final boolean isFrontFacingFps = getResources().getBoolean(
+                    R.bool.config_is_front_facing_fps);
+            final boolean isSideMountedFps = getResources().getBoolean(
+                    R.bool.config_is_side_fps);
+            final String fpsLocation = getString(isSideMountedFps
+                    ? R.string.fingerprint_enroll_touch_dialog_message_side : isFrontFacingFps
+                            ? R.string.fingerprint_enroll_touch_dialog_message_front
+                            : R.string.fingerprint_enroll_touch_dialog_message_rear);
+
             AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(),
                     R.style.Theme_AlertDialog);
             builder.setTitle(R.string.security_settings_fingerprint_enroll_touch_dialog_title)
-                    .setMessage(R.string.security_settings_fingerprint_enroll_touch_dialog_message)
+                    .setMessage(fpsLocation)
                     .setPositiveButton(R.string.security_settings_fingerprint_enroll_dialog_ok,
                             new DialogInterface.OnClickListener() {
                                 @Override
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java
index 89bda20..a346431 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java
@@ -124,8 +124,23 @@
             mIsReverseDefaultRotation = getApplicationContext().getResources().getBoolean(
                     com.android.internal.R.bool.config_reverseDefaultRotation);
         } else {
+            // Remaining usecases can be either front facing fps or dedicated
+            // side mounted fps (not embedded in the power button)
+            final boolean isFrontFacingFps = getResources().getBoolean(
+                    R.bool.config_is_front_facing_fps);
+            final boolean isSideMountedFps = getResources().getBoolean(
+                    R.bool.config_is_side_fps);
+            final String fpsLocation = getString(isSideMountedFps
+                    ? R.string.fingerprint_enroll_find_sensor_message_side : isFrontFacingFps
+                            ? R.string.fingerprint_enroll_find_sensor_message_front
+                            : R.string.fingerprint_enroll_find_sensor_message_rear);
+
             setHeaderText(R.string.security_settings_fingerprint_enroll_find_sensor_title);
-            setDescriptionText(R.string.security_settings_fingerprint_enroll_find_sensor_message);
+            setDescriptionText(fpsLocation);
+            if (isFrontFacingFps) {
+                findViewById(R.id.fingerprint_sensor_location_front_overlay)
+                        .setVisibility(View.VISIBLE);
+            }
         }
         if (savedInstanceState != null) {
             mNextClicked = savedInstanceState.getBoolean(SAVED_STATE_IS_NEXT_CLICKED, mNextClicked);
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java
index 08fb5c0..9057024 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java
@@ -28,6 +28,7 @@
 import android.os.Bundle;
 import android.text.Html;
 import android.text.method.LinkMovementMethod;
+import android.text.TextUtils;
 import android.util.Log;
 import android.view.View;
 import android.widget.ImageView;
@@ -127,6 +128,10 @@
 
         final ScrollView scrollView = findViewById(R.id.sud_scroll_view);
         scrollView.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES);
+
+        if (TextUtils.isEmpty(footerLink.getText())) {
+            findViewById(R.id.layout_footer_learn_more).setVisibility(View.GONE);
+        }
     }
 
     @Override
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintLocationAnimationView.java b/src/com/android/settings/biometrics/fingerprint/FingerprintLocationAnimationView.java
index 99d4ff9..4d7e2d2 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintLocationAnimationView.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintLocationAnimationView.java
@@ -28,6 +28,7 @@
 import android.view.View;
 import android.view.animation.AnimationUtils;
 import android.view.animation.Interpolator;
+import android.widget.ImageView;
 
 import com.android.settings.R;
 import com.android.settings.Utils;
@@ -53,6 +54,7 @@
     private float mPulseRadius;
     private ValueAnimator mRadiusAnimator;
     private ValueAnimator mAlphaAnimator;
+    private ImageView mOverlayImage;
 
     public FingerprintLocationAnimationView(Context context, @Nullable AttributeSet attrs) {
         super(context, attrs);
@@ -92,7 +94,11 @@
     }
 
     private float getCenterY() {
-        return getHeight() * mFractionCenterY;
+        if (mOverlayImage == null) {
+            mOverlayImage = (ImageView) getRootView().findViewById(
+                    R.id.fingerprint_sensor_location);
+        }
+        return mOverlayImage.getHeight() * mFractionCenterY;
     }
 
     @Override
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
index 7f99ae9..c3062ab 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
@@ -181,6 +181,7 @@
                 mRequireScreenOnToAuthPreferenceController;
         private RestrictedSwitchPreference mRequireScreenOnToAuthPreference;
         private PreferenceCategory mFingerprintUnlockCategory;
+        private boolean mRequireScreenOnToAuth;
 
         private FingerprintManager mFingerprintManager;
         private FingerprintUpdater mFingerprintUpdater;
@@ -247,7 +248,7 @@
                     }
 
                     private void updateDialog() {
-                        if (isSfps()) {
+                        if (isSfps() && !mRequireScreenOnToAuth) {
                             setRequireScreenOnToAuthVisibility();
                         }
                         RenameDialog renameDialog = (RenameDialog) getFragmentManager().
@@ -352,6 +353,8 @@
             mFingerprintManager = Utils.getFingerprintManagerOrNull(activity);
             mFingerprintUpdater = new FingerprintUpdater(activity, mFingerprintManager);
             mSensorProperties = mFingerprintManager.getSensorPropertiesInternal();
+            mRequireScreenOnToAuth = getContext().getResources().getBoolean(
+                    com.android.internal.R.bool.config_performantAuthDefault);
 
             mToken = getIntent().getByteArrayExtra(
                     ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN);
@@ -521,7 +524,7 @@
                         return true;
                     });
             mFingerprintUnlockCategory.setVisible(false);
-            if (isSfps()) {
+            if (isSfps() && !mRequireScreenOnToAuth) {
                 setRequireScreenOnToAuthVisibility();
             }
             setPreferenceScreen(root);
diff --git a/src/com/android/settings/connecteddevice/NfcAndPaymentFragmentController.java b/src/com/android/settings/connecteddevice/NfcAndPaymentFragmentController.java
index ee0021e..f16dd37 100644
--- a/src/com/android/settings/connecteddevice/NfcAndPaymentFragmentController.java
+++ b/src/com/android/settings/connecteddevice/NfcAndPaymentFragmentController.java
@@ -16,21 +16,47 @@
 
 package com.android.settings.connecteddevice;
 
+import android.content.BroadcastReceiver;
 import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
 import android.content.pm.PackageManager;
 import android.nfc.NfcAdapter;
 import android.os.UserManager;
 
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnResume;
+import com.android.settingslib.core.lifecycle.events.OnStop;
 
 /**
  * Controller that used to show NFC and payment features
  */
-public class NfcAndPaymentFragmentController extends BasePreferenceController {
+public class NfcAndPaymentFragmentController extends BasePreferenceController
+        implements LifecycleObserver, OnResume, OnStop {
     private final NfcAdapter mNfcAdapter;
     private final PackageManager mPackageManager;
     private final UserManager mUserManager;
+    private final IntentFilter mIntentFilter;
+    private Preference mPreference;
+
+    private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            if (mPreference == null) {
+                return;
+            }
+
+            final String action = intent.getAction();
+            if (NfcAdapter.ACTION_ADAPTER_STATE_CHANGED.equals(action)) {
+                refreshSummary(mPreference);
+            }
+        }
+    };
 
     public NfcAndPaymentFragmentController(Context context, String preferenceKey) {
         super(context, preferenceKey);
@@ -38,6 +64,15 @@
         mPackageManager = context.getPackageManager();
         mUserManager = context.getSystemService(UserManager.class);
         mNfcAdapter = NfcAdapter.getDefaultAdapter(context);
+
+        mIntentFilter = isNfcAvailable()
+                ? new IntentFilter(NfcAdapter.ACTION_ADAPTER_STATE_CHANGED) : null;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mPreference = screen.findPreference(getPreferenceKey());
     }
 
     @Override
@@ -61,4 +96,26 @@
         }
         return null;
     }
+
+    @Override
+    public void onStop() {
+        if (!isNfcAvailable()) {
+            return;
+        }
+
+        mContext.unregisterReceiver(mReceiver);
+    }
+
+    @Override
+    public void onResume() {
+        if (!isNfcAvailable()) {
+            return;
+        }
+
+        mContext.registerReceiver(mReceiver, mIntentFilter);
+    }
+
+    private boolean isNfcAvailable() {
+        return mNfcAdapter != null;
+    }
 }
diff --git a/src/com/android/settings/connecteddevice/usb/UsbBackend.java b/src/com/android/settings/connecteddevice/usb/UsbBackend.java
index 7f3a598..a4ca405 100644
--- a/src/com/android/settings/connecteddevice/usb/UsbBackend.java
+++ b/src/com/android/settings/connecteddevice/usb/UsbBackend.java
@@ -164,6 +164,30 @@
                 && mPortStatus.isRoleCombinationSupported(POWER_ROLE_SOURCE, DATA_ROLE_HOST);
     }
 
+    public boolean isSingleDataRoleSupported() {
+        return mPort != null && mPortStatus != null
+                && ((!mPortStatus
+                .isRoleCombinationSupported(POWER_ROLE_SINK, DATA_ROLE_HOST)
+                && !mPortStatus
+                .isRoleCombinationSupported(POWER_ROLE_SOURCE, DATA_ROLE_HOST))
+                || (!mPortStatus
+                .isRoleCombinationSupported(POWER_ROLE_SINK, DATA_ROLE_DEVICE)
+                && !mPortStatus
+                .isRoleCombinationSupported(POWER_ROLE_SOURCE, DATA_ROLE_DEVICE)));
+    }
+
+    public boolean isSinglePowerRoleSupported() {
+        return mPort != null && mPortStatus != null
+                && ((!mPortStatus
+                .isRoleCombinationSupported(POWER_ROLE_SINK, DATA_ROLE_DEVICE)
+                && !mPortStatus
+                .isRoleCombinationSupported(POWER_ROLE_SINK, DATA_ROLE_HOST))
+                || (!mPortStatus
+                .isRoleCombinationSupported(POWER_ROLE_SOURCE, DATA_ROLE_DEVICE)
+                && !mPortStatus
+                .isRoleCombinationSupported(POWER_ROLE_SOURCE, DATA_ROLE_HOST)));
+    }
+
     public static String usbFunctionsToString(long functions) {
         // TODO replace with UsbManager.usbFunctionsToString once supported by Roboelectric
         return Long.toBinaryString(functions);
diff --git a/src/com/android/settings/connecteddevice/usb/UsbDetailsDataRoleController.java b/src/com/android/settings/connecteddevice/usb/UsbDetailsDataRoleController.java
index 6d455a6..322cb00 100644
--- a/src/com/android/settings/connecteddevice/usb/UsbDetailsDataRoleController.java
+++ b/src/com/android/settings/connecteddevice/usb/UsbDetailsDataRoleController.java
@@ -113,7 +113,8 @@
 
     @Override
     public boolean isAvailable() {
-        return !Utils.isMonkeyRunning();
+        return !Utils.isMonkeyRunning()
+                && !mUsbBackend.isSingleDataRoleSupported();
     }
 
     @Override
diff --git a/src/com/android/settings/connecteddevice/usb/UsbDetailsFragment.java b/src/com/android/settings/connecteddevice/usb/UsbDetailsFragment.java
index 0c94d19..8602b07 100644
--- a/src/com/android/settings/connecteddevice/usb/UsbDetailsFragment.java
+++ b/src/com/android/settings/connecteddevice/usb/UsbDetailsFragment.java
@@ -91,7 +91,6 @@
     private static List<UsbDetailsController> createControllerList(Context context,
             UsbBackend usbBackend, UsbDetailsFragment fragment) {
         List<UsbDetailsController> ret = new ArrayList<>();
-        ret.add(new UsbDetailsHeaderController(context, fragment, usbBackend));
         ret.add(new UsbDetailsDataRoleController(context, fragment, usbBackend));
         ret.add(new UsbDetailsFunctionsController(context, fragment, usbBackend));
         ret.add(new UsbDetailsPowerRoleController(context, fragment, usbBackend));
diff --git a/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderController.java b/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderController.java
deleted file mode 100644
index e151258..0000000
--- a/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderController.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.connecteddevice.usb;
-
-import android.content.Context;
-
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.R;
-import com.android.settings.widget.EntityHeaderController;
-import com.android.settingslib.widget.LayoutPreference;
-
-/**
- * This class adds a header with device name.
- */
-public class UsbDetailsHeaderController extends UsbDetailsController {
-    private static final String KEY_DEVICE_HEADER = "usb_device_header";
-
-    private EntityHeaderController mHeaderController;
-
-    public UsbDetailsHeaderController(Context context, UsbDetailsFragment fragment,
-            UsbBackend backend) {
-        super(context, fragment, backend);
-    }
-
-    @Override
-    public void displayPreference(PreferenceScreen screen) {
-        super.displayPreference(screen);
-        final LayoutPreference headerPreference = screen.findPreference(KEY_DEVICE_HEADER);
-        mHeaderController = EntityHeaderController.newInstance(mFragment.getActivity(), mFragment,
-                headerPreference.findViewById(R.id.entity_header));
-    }
-
-
-    @Override
-    protected void refresh(boolean connected, long functions, int powerRole, int dataRole) {
-        mHeaderController.setLabel(mContext.getString(R.string.usb_pref));
-        mHeaderController.setIcon(mContext.getDrawable(R.drawable.ic_usb));
-        mHeaderController.done(mFragment.getActivity(), true /* rebindActions */);
-    }
-
-    @Override
-    public String getPreferenceKey() {
-        return KEY_DEVICE_HEADER;
-    }
-}
diff --git a/src/com/android/settings/connecteddevice/usb/UsbDetailsPowerRoleController.java b/src/com/android/settings/connecteddevice/usb/UsbDetailsPowerRoleController.java
index 13b3076..e8ff684 100644
--- a/src/com/android/settings/connecteddevice/usb/UsbDetailsPowerRoleController.java
+++ b/src/com/android/settings/connecteddevice/usb/UsbDetailsPowerRoleController.java
@@ -123,7 +123,8 @@
 
     @Override
     public boolean isAvailable() {
-        return !Utils.isMonkeyRunning();
+        return !Utils.isMonkeyRunning()
+                && !mUsbBackend.isSinglePowerRoleSupported();
     }
 
     @Override
diff --git a/src/com/android/settings/datausage/AppDataUsage.java b/src/com/android/settings/datausage/AppDataUsage.java
index e15cead..04a2014 100644
--- a/src/com/android/settings/datausage/AppDataUsage.java
+++ b/src/com/android/settings/datausage/AppDataUsage.java
@@ -15,7 +15,11 @@
 package com.android.settings.datausage;
 
 import static android.net.NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND;
+import static android.net.NetworkPolicyManager.POLICY_REJECT_CELLULAR;
+import static android.net.NetworkPolicyManager.POLICY_REJECT_VPN;
+import static android.net.NetworkPolicyManager.POLICY_REJECT_WIFI;
 
+import android.Manifest;
 import android.app.Activity;
 import android.app.settings.SettingsEnums;
 import android.content.Context;
@@ -23,6 +27,8 @@
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.graphics.drawable.Drawable;
+import android.net.ConnectivitySettingsManager;
+import android.net.NetworkPolicyManager;
 import android.net.NetworkTemplate;
 import android.os.Bundle;
 import android.os.Process;
@@ -58,6 +64,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Set;
 
 public class AppDataUsage extends DataUsageBaseFragment implements OnPreferenceChangeListener,
         DataSaverBackend.Listener {
@@ -73,7 +80,11 @@
     private static final String KEY_FOREGROUND_USAGE = "foreground_usage";
     private static final String KEY_BACKGROUND_USAGE = "background_usage";
     private static final String KEY_APP_SETTINGS = "app_settings";
+    private static final String KEY_RESTRICT_ALL = "restrict_all";
     private static final String KEY_RESTRICT_BACKGROUND = "restrict_background";
+    private static final String KEY_RESTRICT_CELLULAR = "restrict_cellular";
+    private static final String KEY_RESTRICT_VPN = "restrict_vpn";
+    private static final String KEY_RESTRICT_WIFI = "restrict_wifi";
     private static final String KEY_APP_LIST = "app_list";
     private static final String KEY_CYCLE = "cycle";
     private static final String KEY_UNRESTRICTED_DATA = "unrestricted_data_saver";
@@ -87,7 +98,11 @@
     private Preference mForegroundUsage;
     private Preference mBackgroundUsage;
     private Preference mAppSettings;
+    private RestrictedSwitchPreference mRestrictAll;
     private RestrictedSwitchPreference mRestrictBackground;
+    private RestrictedSwitchPreference mRestrictCellular;
+    private RestrictedSwitchPreference mRestrictVpn;
+    private RestrictedSwitchPreference mRestrictWifi;
     private PreferenceCategory mAppList;
 
     private Drawable mIcon;
@@ -171,7 +186,11 @@
                 mIcon = uidDetail.icon;
                 mLabel = uidDetail.label;
                 removePreference(KEY_UNRESTRICTED_DATA);
+                removePreference(KEY_RESTRICT_ALL);
                 removePreference(KEY_RESTRICT_BACKGROUND);
+                removePreference(KEY_RESTRICT_CELLULAR);
+                removePreference(KEY_RESTRICT_VPN);
+                removePreference(KEY_RESTRICT_WIFI);
             } else {
                 if (mPackages.size() != 0) {
                     try {
@@ -183,8 +202,16 @@
                     } catch (PackageManager.NameNotFoundException e) {
                     }
                 }
+                mRestrictAll = findPreference(KEY_RESTRICT_ALL);
+                mRestrictAll.setOnPreferenceChangeListener(this);
                 mRestrictBackground = findPreference(KEY_RESTRICT_BACKGROUND);
                 mRestrictBackground.setOnPreferenceChangeListener(this);
+                mRestrictCellular = findPreference(KEY_RESTRICT_CELLULAR);
+                mRestrictCellular.setOnPreferenceChangeListener(this);
+                mRestrictVpn = findPreference(KEY_RESTRICT_VPN);
+                mRestrictVpn.setOnPreferenceChangeListener(this);
+                mRestrictWifi = findPreference(KEY_RESTRICT_WIFI);
+                mRestrictWifi.setOnPreferenceChangeListener(this);
                 mUnrestrictedData = findPreference(KEY_UNRESTRICTED_DATA);
                 mUnrestrictedData.setOnPreferenceChangeListener(this);
             }
@@ -224,7 +251,11 @@
 
             removePreference(KEY_UNRESTRICTED_DATA);
             removePreference(KEY_APP_SETTINGS);
+            removePreference(KEY_RESTRICT_ALL);
             removePreference(KEY_RESTRICT_BACKGROUND);
+            removePreference(KEY_RESTRICT_CELLULAR);
+            removePreference(KEY_RESTRICT_VPN);
+            removePreference(KEY_RESTRICT_WIFI);
             removePreference(KEY_APP_LIST);
         }
 
@@ -266,6 +297,29 @@
             mDataSaverBackend.setIsDenylisted(mAppItem.key, mPackageName, !(Boolean) newValue);
             updatePrefs();
             return true;
+        } else if (preference == mRestrictAll) {
+            Set<Integer> uids =
+                    ConnectivitySettingsManager.getUidsAllowedOnRestrictedNetworks(mContext);
+            if (!(Boolean) newValue) {
+                uids.remove(mAppItem.key);
+            } else {
+                uids.add(mAppItem.key);
+            }
+            ConnectivitySettingsManager.setUidsAllowedOnRestrictedNetworks(mContext, uids);
+            updatePrefs();
+            return true;
+        } else if (preference == mRestrictCellular) {
+            setAppRestrictCellular(!(Boolean) newValue);
+            updatePrefs();
+            return true;
+        } else if (preference == mRestrictVpn) {
+            setAppRestrictVpn(!(Boolean) newValue);
+            updatePrefs();
+            return true;
+        } else if (preference == mRestrictWifi) {
+            setAppRestrictWifi(!(Boolean) newValue);
+            updatePrefs();
+            return true;
         } else if (preference == mUnrestrictedData) {
             mDataSaverBackend.setIsAllowlisted(mAppItem.key, mPackageName, (Boolean) newValue);
             return true;
@@ -296,7 +350,9 @@
 
     @VisibleForTesting
     void updatePrefs() {
-        updatePrefs(getAppRestrictBackground(), getUnrestrictData());
+        updatePrefs(getAppRestrictBackground(), getUnrestrictData(), getAppRestrictAll(),
+                getAppRestrictCellular(), getAppRestrictVpn(), getAppRestrictWifi(),
+                hasInternetPermission());
     }
 
     @VisibleForTesting
@@ -332,25 +388,46 @@
         }
     }
 
-    private void updatePrefs(boolean restrictBackground, boolean unrestrictData) {
+    private void updatePrefs(boolean restrictBackground, boolean unrestrictData,
+            boolean restrictAll, boolean restrictCellular, boolean restrictVpn,
+            boolean restrictWifi, boolean hasInternetPermission) {
         if (!isSimHardwareVisible(mContext)) {
             return;
         }
         setBackPreferenceListAnimatorIfLoaded();
         final EnforcedAdmin admin = RestrictedLockUtilsInternal.checkIfMeteredDataRestricted(
                 mContext, mPackageName, UserHandle.getUserId(mAppItem.key));
+        if (mRestrictAll != null) {
+            mRestrictAll.setEnabled(hasInternetPermission);
+            mRestrictAll.setChecked(!restrictAll);
+        }
         if (mRestrictBackground != null) {
-            mRestrictBackground.setChecked(!restrictBackground);
             mRestrictBackground.setDisabledByAdmin(admin);
+            mRestrictBackground.setEnabled(hasInternetPermission &&
+                    !mRestrictBackground.isDisabledByAdmin() && !restrictAll &&
+                    !restrictCellular);
+            mRestrictBackground.setChecked(!restrictBackground && !restrictAll &&
+                    !restrictCellular);
+        }
+        if (mRestrictCellular != null) {
+            mRestrictCellular.setEnabled(hasInternetPermission && !restrictAll);
+            mRestrictCellular.setChecked(!restrictAll && !restrictCellular);
+        }
+        if (mRestrictVpn != null) {
+            mRestrictVpn.setEnabled(hasInternetPermission && !restrictAll);
+            mRestrictVpn.setChecked(!restrictAll && !restrictVpn);
+        }
+        if (mRestrictWifi != null) {
+            mRestrictWifi.setEnabled(hasInternetPermission && !restrictAll);
+            mRestrictWifi.setChecked(!restrictAll && !restrictWifi);
         }
         if (mUnrestrictedData != null) {
-            if (restrictBackground) {
-                mUnrestrictedData.setVisible(false);
-            } else {
-                mUnrestrictedData.setVisible(true);
-                mUnrestrictedData.setChecked(unrestrictData);
-                mUnrestrictedData.setDisabledByAdmin(admin);
-            }
+            mUnrestrictedData.setDisabledByAdmin(admin);
+            mUnrestrictedData.setEnabled(hasInternetPermission &&
+                    !mUnrestrictedData.isDisabledByAdmin() && !restrictBackground && !restrictAll &&
+                    !restrictCellular);
+            mUnrestrictedData.setChecked(unrestrictData && !restrictBackground && !restrictAll &&
+                    !restrictCellular);
         }
     }
 
@@ -387,9 +464,24 @@
     }
 
     private boolean getAppRestrictBackground() {
-        final int uid = mAppItem.key;
-        final int uidPolicy = services.mPolicyManager.getUidPolicy(uid);
-        return (uidPolicy & POLICY_REJECT_METERED_BACKGROUND) != 0;
+        return getAppRestriction(POLICY_REJECT_METERED_BACKGROUND);
+    }
+
+    private boolean getAppRestrictCellular() {
+        return getAppRestriction(POLICY_REJECT_CELLULAR);
+    }
+
+    private boolean getAppRestrictVpn() {
+        return getAppRestriction(POLICY_REJECT_VPN);
+    }
+
+    private boolean getAppRestrictWifi() {
+        return getAppRestriction(POLICY_REJECT_WIFI);
+    }
+
+    private boolean getAppRestrictAll() {
+        return !ConnectivitySettingsManager.getUidsAllowedOnRestrictedNetworks(mContext)
+                .contains(mAppItem.key);
     }
 
     private boolean getUnrestrictData() {
@@ -399,6 +491,38 @@
         return false;
     }
 
+    private boolean getAppRestriction(int policy) {
+        final int uid = mAppItem.key;
+        final int uidPolicy = services.mPolicyManager.getUidPolicy(uid);
+        return (uidPolicy & policy) != 0;
+    }
+
+    private boolean hasInternetPermission() {
+        return mPackageManager.checkPermission(Manifest.permission.INTERNET, mPackageName)
+                == PackageManager.PERMISSION_GRANTED;
+    }
+
+    private void setAppRestrictCellular(boolean restrict) {
+        setAppRestriction(POLICY_REJECT_CELLULAR, restrict);
+    }
+
+    private void setAppRestrictVpn(boolean restrict) {
+        setAppRestriction(POLICY_REJECT_VPN, restrict);
+    }
+
+    private void setAppRestrictWifi(boolean restrict) {
+        setAppRestriction(POLICY_REJECT_WIFI, restrict);
+    }
+
+    private void setAppRestriction(int policy, boolean restrict) {
+        final int uid = mAppItem.key;
+        if (restrict) {
+            services.mPolicyManager.addUidPolicy(uid, policy);
+        } else {
+            services.mPolicyManager.removeUidPolicy(uid, policy);
+        }
+    }
+
     @VisibleForTesting
     void addEntityHeader() {
         String pkg = mPackages.size() != 0 ? mPackages.valueAt(0) : null;
@@ -525,14 +649,18 @@
     @Override
     public void onAllowlistStatusChanged(int uid, boolean isAllowlisted) {
         if (mAppItem.uids.get(uid, false)) {
-            updatePrefs(getAppRestrictBackground(), isAllowlisted);
+            updatePrefs(getAppRestrictBackground(), isAllowlisted, getAppRestrictAll(),
+                    getAppRestrictCellular(), getAppRestrictVpn(), getAppRestrictWifi(),
+                    hasInternetPermission());
         }
     }
 
     @Override
     public void onDenylistStatusChanged(int uid, boolean isDenylisted) {
         if (mAppItem.uids.get(uid, false)) {
-            updatePrefs(isDenylisted, getUnrestrictData());
+            updatePrefs(isDenylisted, getUnrestrictData(), getAppRestrictAll(),
+                    getAppRestrictCellular(), getAppRestrictVpn(), getAppRestrictWifi(),
+                    hasInternetPermission());
         }
     }
 }
diff --git a/src/com/android/settings/datausage/DataSaverBackend.java b/src/com/android/settings/datausage/DataSaverBackend.java
index e39e41a..98d909f 100644
--- a/src/com/android/settings/datausage/DataSaverBackend.java
+++ b/src/com/android/settings/datausage/DataSaverBackend.java
@@ -80,12 +80,15 @@
 
     public void setIsAllowlisted(int uid, String packageName, boolean allowlisted) {
         final int policy = allowlisted ? POLICY_ALLOW_METERED_BACKGROUND : POLICY_NONE;
-        mPolicyManager.setUidPolicy(uid, policy);
         mUidPolicies.put(uid, policy);
         if (allowlisted) {
+            mPolicyManager.addUidPolicy(uid, POLICY_ALLOW_METERED_BACKGROUND);
             mMetricsFeatureProvider.action(
                     mContext, SettingsEnums.ACTION_DATA_SAVER_WHITELIST, packageName);
+        } else {
+            mPolicyManager.removeUidPolicy(uid, POLICY_ALLOW_METERED_BACKGROUND);
         }
+        mPolicyManager.removeUidPolicy(uid, POLICY_REJECT_METERED_BACKGROUND);
     }
 
     public boolean isAllowlisted(int uid) {
@@ -110,12 +113,15 @@
 
     public void setIsDenylisted(int uid, String packageName, boolean denylisted) {
         final int policy = denylisted ? POLICY_REJECT_METERED_BACKGROUND : POLICY_NONE;
-        mPolicyManager.setUidPolicy(uid, policy);
         mUidPolicies.put(uid, policy);
         if (denylisted) {
+            mPolicyManager.addUidPolicy(uid, POLICY_REJECT_METERED_BACKGROUND);
             mMetricsFeatureProvider.action(
                     mContext, SettingsEnums.ACTION_DATA_SAVER_BLACKLIST, packageName);
+        } else {
+            mPolicyManager.removeUidPolicy(uid, POLICY_REJECT_METERED_BACKGROUND);
         }
+        mPolicyManager.removeUidPolicy(uid, POLICY_ALLOW_METERED_BACKGROUND);
     }
 
     public boolean isDenylisted(int uid) {
@@ -155,6 +161,9 @@
         loadAllowlist();
         loadDenylist();
 
+        // We only care about allow/reject metered background policy here.
+        newPolicy &= POLICY_ALLOW_METERED_BACKGROUND | POLICY_REJECT_METERED_BACKGROUND;
+
         final int oldPolicy = mUidPolicies.get(uid, POLICY_NONE);
         if (newPolicy == POLICY_NONE) {
             mUidPolicies.delete(uid);
diff --git a/src/com/android/settings/development/AdbRootPreferenceController.java b/src/com/android/settings/development/AdbRootPreferenceController.java
new file mode 100644
index 0000000..54f249e
--- /dev/null
+++ b/src/com/android/settings/development/AdbRootPreferenceController.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2018 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+import android.adb.ADBRootService;
+import android.content.Context;
+import android.os.UserManager;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+import androidx.preference.SwitchPreference;
+
+import com.android.settings.R;
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.development.DeveloperOptionsPreferenceController;
+
+public class AdbRootPreferenceController extends DeveloperOptionsPreferenceController
+        implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin {
+
+    private static final String TAG = "AdbRootPreferenceController";
+    private static final String PREF_KEY = "enable_adb_root";
+
+    private final ADBRootService mADBRootService;
+
+    public AdbRootPreferenceController(Context context,
+            DevelopmentSettingsDashboardFragment fragment) {
+        super(context);
+
+        mADBRootService = new ADBRootService();
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return PREF_KEY;
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return mADBRootService.isSupported();
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+
+        ((SwitchPreference) mPreference).setChecked(mADBRootService.getEnabled());
+
+        if (!isAdminUser()) {
+            mPreference.setEnabled(false);
+        }
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        final boolean rootEnabled = (Boolean) newValue;
+        mADBRootService.setEnabled(rootEnabled);
+        return true;
+    }
+
+    @Override
+    protected void onDeveloperOptionsSwitchEnabled() {
+        if (isAdminUser()) {
+            mPreference.setEnabled(true);
+        }
+    }
+
+    boolean isAdminUser() {
+        return ((UserManager) mContext.getSystemService(Context.USER_SERVICE)).isAdminUser();
+    }
+}
diff --git a/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceController.java b/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceController.java
index e47048a..d8a0f21 100644
--- a/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceController.java
+++ b/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceController.java
@@ -73,23 +73,10 @@
         }
     }
 
-    @Override
-    protected void onDeveloperOptionsSwitchDisabled() {
-        super.onDeveloperOptionsSwitchDisabled();
-        final boolean offloadSupported =
-                SystemProperties.getBoolean(A2DP_OFFLOAD_SUPPORTED_PROPERTY, false);
-        if (offloadSupported) {
-            ((SwitchPreference) mPreference).setChecked(false);
-            SystemProperties.set(A2DP_OFFLOAD_DISABLED_PROPERTY, "false");
-        }
-    }
-
     public boolean isDefaultValue() {
-        final boolean offloadSupported =
-                SystemProperties.getBoolean(A2DP_OFFLOAD_SUPPORTED_PROPERTY, false);
-        final boolean offloadDisabled =
-                    SystemProperties.getBoolean(A2DP_OFFLOAD_DISABLED_PROPERTY, false);
-        return offloadSupported ? !offloadDisabled : true;
+        // Always return true here to avoid needing to reboot when disabling
+        // developer options, since we aren't turning this off when doing so anymore.
+        return true;
     }
 
     /**
diff --git a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
index 70fbefc..70237e0 100644
--- a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
+++ b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
@@ -524,6 +524,7 @@
         controllers.add(new DisableAutomaticUpdatesPreferenceController(context));
         controllers.add(new SelectDSUPreferenceController(context));
         controllers.add(new AdbPreferenceController(context, fragment));
+        controllers.add(new AdbRootPreferenceController(context, fragment));
         controllers.add(new ClearAdbKeysPreferenceController(context, fragment));
         controllers.add(new WirelessDebuggingPreferenceController(context, lifecycle));
         controllers.add(new AdbAuthorizationTimeoutPreferenceController(context));
diff --git a/src/com/android/settings/development/NotificationChannelWarningsPreferenceController.java b/src/com/android/settings/development/NotificationChannelWarningsPreferenceController.java
index 22b3f83..d829e2d 100644
--- a/src/com/android/settings/development/NotificationChannelWarningsPreferenceController.java
+++ b/src/com/android/settings/development/NotificationChannelWarningsPreferenceController.java
@@ -75,6 +75,6 @@
 
     @VisibleForTesting
     boolean isDebuggable() {
-        return Build.IS_DEBUGGABLE;
+        return Build.IS_ENG;
     }
 }
diff --git a/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java b/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java
index 6af58b5..a40caf8 100644
--- a/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java
@@ -182,7 +182,7 @@
                 }
                 mDevHitToast = Toast.makeText(mContext,
                         mContext.getResources().getQuantityString(
-                                R.plurals.show_dev_countdown, mDevHitCountdown,
+                                R.plurals.show_dev_countdown_cm, mDevHitCountdown,
                                 mDevHitCountdown),
                         Toast.LENGTH_SHORT);
                 mDevHitToast.show();
@@ -198,7 +198,7 @@
             if (mDevHitToast != null) {
                 mDevHitToast.cancel();
             }
-            mDevHitToast = Toast.makeText(mContext, R.string.show_dev_already,
+            mDevHitToast = Toast.makeText(mContext, R.string.show_dev_already_cm,
                     Toast.LENGTH_LONG);
             mDevHitToast.show();
             mMetricsFeatureProvider.action(
@@ -237,7 +237,7 @@
         if (mDevHitToast != null) {
             mDevHitToast.cancel();
         }
-        mDevHitToast = Toast.makeText(mContext, R.string.show_dev_on,
+        mDevHitToast = Toast.makeText(mContext, R.string.show_dev_on_cm,
                 Toast.LENGTH_LONG);
         mDevHitToast.show();
 
diff --git a/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java b/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java
index 5b247f8..622c1e7 100644
--- a/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java
@@ -58,7 +58,24 @@
 
     @Override
     public CharSequence getSummary() {
-        return getFirstPhoneNumber();
+        return mContext.getString(R.string.device_info_protected_single_press);
+    }
+
+    @Override
+    public boolean handlePreferenceTreeClick(Preference preference) {
+        String prefKey = preference.getKey();
+        if (prefKey.startsWith(KEY_PHONE_NUMBER)) {
+            int simSlotNumber = 0;
+            if (!TextUtils.equals(prefKey, KEY_PHONE_NUMBER)) {
+                // Get multisim slot number from preference key.
+                // Multisim preference key is KEY_PHONE_NUMBER + simSlotNumber
+                simSlotNumber = Integer.parseInt(
+                        prefKey.replaceAll("[^0-9]", ""));
+            }
+            final Preference simStatusPreference = mPreferenceList.get(simSlotNumber);
+            simStatusPreference.setSummary(getPhoneNumber(simSlotNumber));
+        }
+        return super.handlePreferenceTreeClick(preference);
     }
 
     @Override
@@ -78,7 +95,6 @@
             final Preference multiSimPreference = createNewPreference(screen.getContext());
             multiSimPreference.setOrder(phonePreferenceOrder + simSlotNumber);
             multiSimPreference.setKey(KEY_PHONE_NUMBER + simSlotNumber);
-            multiSimPreference.setSelectable(false);
             category.addPreference(multiSimPreference);
             mPreferenceList.add(multiSimPreference);
         }
@@ -89,7 +105,7 @@
         for (int simSlotNumber = 0; simSlotNumber < mPreferenceList.size(); simSlotNumber++) {
             final Preference simStatusPreference = mPreferenceList.get(simSlotNumber);
             simStatusPreference.setTitle(getPreferenceTitle(simSlotNumber));
-            simStatusPreference.setSummary(getPhoneNumber(simSlotNumber));
+            simStatusPreference.setSummary(getSummary());
         }
     }
 
diff --git a/src/com/android/settings/deviceinfo/firmwareversion/BasebandVersionPreferenceController.java b/src/com/android/settings/deviceinfo/firmwareversion/BasebandVersionPreferenceController.java
index dd3d560..a81993b 100644
--- a/src/com/android/settings/deviceinfo/firmwareversion/BasebandVersionPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/firmwareversion/BasebandVersionPreferenceController.java
@@ -18,6 +18,7 @@
 
 import android.content.Context;
 import android.os.SystemProperties;
+import android.text.TextUtils;
 
 import androidx.annotation.VisibleForTesting;
 
@@ -41,7 +42,13 @@
 
     @Override
     public CharSequence getSummary() {
-        return SystemProperties.get(BASEBAND_PROPERTY,
+        String baseband = SystemProperties.get(BASEBAND_PROPERTY,
                 mContext.getString(R.string.device_info_default));
+        for (String str : baseband.split(",")) {
+            if (!TextUtils.isEmpty(str)) {
+                return str;
+            }
+        }
+        return baseband;
     }
 }
diff --git a/src/com/android/settings/deviceinfo/firmwareversion/LineageBuildDatePreferenceController.java b/src/com/android/settings/deviceinfo/firmwareversion/LineageBuildDatePreferenceController.java
new file mode 100644
index 0000000..468ea5e
--- /dev/null
+++ b/src/com/android/settings/deviceinfo/firmwareversion/LineageBuildDatePreferenceController.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2019 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.deviceinfo.firmwareversion;
+
+import android.content.Context;
+import android.os.SystemProperties;
+
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+
+public class LineageBuildDatePreferenceController extends BasePreferenceController {
+
+    private static final String TAG = "LineageBuildDateCtrl";
+
+    private static final String KEY_BUILD_DATE_PROP = "ro.build.date";
+
+    public LineageBuildDatePreferenceController(Context context, String key) {
+        super(context, key);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return AVAILABLE;
+    }
+
+    @Override
+    public CharSequence getSummary() {
+        return SystemProperties.get(KEY_BUILD_DATE_PROP,
+                mContext.getString(R.string.unknown));
+    }
+}
diff --git a/src/com/android/settings/deviceinfo/firmwareversion/LineageVendorSecurityPatchLevelPreferenceController.java b/src/com/android/settings/deviceinfo/firmwareversion/LineageVendorSecurityPatchLevelPreferenceController.java
new file mode 100644
index 0000000..40887ee
--- /dev/null
+++ b/src/com/android/settings/deviceinfo/firmwareversion/LineageVendorSecurityPatchLevelPreferenceController.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2019 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.deviceinfo.firmwareversion;
+
+import android.content.Context;
+import android.os.SystemProperties;
+import android.text.format.DateFormat;
+
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Locale;
+
+public class LineageVendorSecurityPatchLevelPreferenceController extends BasePreferenceController {
+
+    private static final String TAG = "LineageVendorSecurityPatchCtrl";
+
+    private static final String KEY_AOSP_VENDOR_SECURITY_PATCH =
+            "ro.vendor.build.security_patch";
+
+    private static final String KEY_LINEAGE_VENDOR_SECURITY_PATCH =
+            "ro.lineage.build.vendor_security_patch";
+
+    public LineageVendorSecurityPatchLevelPreferenceController(Context context, String key) {
+        super(context, key);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return AVAILABLE;
+    }
+
+    @Override
+    public CharSequence getSummary() {
+        String patchLevel = SystemProperties.get(KEY_AOSP_VENDOR_SECURITY_PATCH);
+
+        if (patchLevel.isEmpty()) {
+            patchLevel = SystemProperties.get(KEY_LINEAGE_VENDOR_SECURITY_PATCH);
+        }
+
+        if (!patchLevel.isEmpty()) {
+            try {
+                SimpleDateFormat template = new SimpleDateFormat("yyyy-MM-dd");
+                Date patchLevelDate = template.parse(patchLevel);
+                String format = DateFormat.getBestDateTimePattern(Locale.getDefault(), "dMMMMyyyy");
+                patchLevel = DateFormat.format(format, patchLevelDate).toString();
+            } catch (ParseException e) {
+                // parsing failed, use raw string
+            }
+        } else {
+            patchLevel = mContext.getString(R.string.unknown);
+        }
+
+        return patchLevel;
+    }
+}
diff --git a/src/com/android/settings/deviceinfo/firmwareversion/LineageVersionDetailPreferenceController.java b/src/com/android/settings/deviceinfo/firmwareversion/LineageVersionDetailPreferenceController.java
new file mode 100644
index 0000000..0f2fead
--- /dev/null
+++ b/src/com/android/settings/deviceinfo/firmwareversion/LineageVersionDetailPreferenceController.java
@@ -0,0 +1,129 @@
+/*
+ * Copyright (C) 2019-2022 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.deviceinfo.firmwareversion;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.Build;
+import android.os.SystemClock;
+import android.os.SystemProperties;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.text.TextUtils;
+import android.util.Log;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+
+import com.android.settings.R;
+import com.android.settings.Utils;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.RestrictedLockUtilsInternal;
+
+public class LineageVersionDetailPreferenceController extends BasePreferenceController {
+
+    private static final String TAG = "lineageVersionDialogCtrl";
+    private static final int DELAY_TIMER_MILLIS = 500;
+    private static final int ACTIVITY_TRIGGER_COUNT = 3;
+
+    private static final String KEY_LINEAGE_VERSION_PROP = "ro.lineage.display.version";
+
+    private static final String PLATLOGO_PACKAGE_NAME = "org.lineageos.lineageparts";
+    private static final String PLATLOGO_ACTIVITY_CLASS =
+            PLATLOGO_PACKAGE_NAME + ".logo.PlatLogoActivity";
+
+    private final UserManager mUserManager;
+    private final long[] mHits = new long[ACTIVITY_TRIGGER_COUNT];
+
+    private RestrictedLockUtils.EnforcedAdmin mFunDisallowedAdmin;
+    private boolean mFunDisallowedBySystem;
+
+    public LineageVersionDetailPreferenceController(Context context, String key) {
+        super(context, key);
+        mUserManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
+        initializeAdminPermissions();
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return AVAILABLE;
+    }
+
+    @Override
+    public boolean useDynamicSliceSummary() {
+        return true;
+    }
+
+    @Override
+    public boolean isSliceable() {
+        return true;
+    }
+
+    @Override
+    public CharSequence getSummary() {
+        return SystemProperties.get(KEY_LINEAGE_VERSION_PROP,
+                mContext.getString(R.string.unknown));
+    }
+
+    @Override
+    public boolean handlePreferenceTreeClick(Preference preference) {
+        if (!TextUtils.equals(preference.getKey(), getPreferenceKey())) {
+            return false;
+        }
+        if (Utils.isMonkeyRunning()) {
+            return false;
+        }
+        arrayCopy();
+        mHits[mHits.length - 1] = SystemClock.uptimeMillis();
+        if (mHits[0] >= (SystemClock.uptimeMillis() - DELAY_TIMER_MILLIS)) {
+            if (mUserManager.hasUserRestriction(UserManager.DISALLOW_FUN)) {
+                if (mFunDisallowedAdmin != null && !mFunDisallowedBySystem) {
+                    RestrictedLockUtils.sendShowAdminSupportDetailsIntent(mContext,
+                            mFunDisallowedAdmin);
+                }
+                Log.d(TAG, "Sorry, no fun for you!");
+                return true;
+            }
+
+            final Intent intent = new Intent(Intent.ACTION_MAIN)
+                     .setClassName(PLATLOGO_PACKAGE_NAME, PLATLOGO_ACTIVITY_CLASS);
+            try {
+                mContext.startActivity(intent);
+            } catch (Exception e) {
+                Log.e(TAG, "Unable to start activity " + intent.toString());
+            }
+        }
+        return true;
+    }
+
+    /**
+     * Copies the array onto itself to remove the oldest hit.
+     */
+    @VisibleForTesting
+    void arrayCopy() {
+        System.arraycopy(mHits, 1, mHits, 0, mHits.length - 1);
+    }
+
+    @VisibleForTesting
+    void initializeAdminPermissions() {
+        mFunDisallowedAdmin = RestrictedLockUtilsInternal.checkIfRestrictionEnforced(
+                mContext, UserManager.DISALLOW_FUN, UserHandle.myUserId());
+        mFunDisallowedBySystem = RestrictedLockUtilsInternal.hasBaseUserRestriction(
+                mContext, UserManager.DISALLOW_FUN, UserHandle.myUserId());
+    }
+}
diff --git a/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java b/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java
index d6f8a51..9b7359b 100644
--- a/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java
@@ -100,7 +100,7 @@
 
     @Override
     public CharSequence getSummary() {
-        return getSummary(0);
+        return mContext.getString(R.string.device_info_protected_single_press);
     }
 
     private CharSequence getSummary(int simSlot) {
@@ -117,6 +117,7 @@
         }
 
         ImeiInfoDialogFragment.show(mFragment, simSlot, preference.getTitle().toString());
+        preference.setSummary(getSummary(simSlot));
         return true;
     }
 
@@ -134,7 +135,7 @@
 
     private void updatePreference(Preference preference, int simSlot) {
         preference.setTitle(getTitle(simSlot));
-        preference.setSummary(getSummary(simSlot));
+        preference.setSummary(getSummary());
     }
 
     private CharSequence getTitleForGsmPhone(int simSlot) {
diff --git a/src/com/android/settings/deviceinfo/legal/LineageLicensePreferenceController.java b/src/com/android/settings/deviceinfo/legal/LineageLicensePreferenceController.java
new file mode 100644
index 0000000..a59f5cf
--- /dev/null
+++ b/src/com/android/settings/deviceinfo/legal/LineageLicensePreferenceController.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2021 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.deviceinfo.legal;
+
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.SystemProperties;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.core.BasePreferenceController;
+
+public class LineageLicensePreferenceController extends BasePreferenceController {
+
+    private static final String PROPERTY_LINEAGE_LICENSE_URL = "ro.lineagelegal.url";
+
+    public LineageLicensePreferenceController(Context context, String key) {
+        super(context, key);
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+
+        Preference preference = screen.findPreference(getPreferenceKey());
+        if (preference != null) {
+            preference.setOnPreferenceClickListener(pref -> {
+                mContext.startActivity(getIntent());
+                return true;
+            });
+        }
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        if (getIntent().resolveActivity(mContext.getPackageManager()) != null) {
+            return AVAILABLE;
+        } else {
+            return UNSUPPORTED_ON_DEVICE;
+        }
+    }
+
+    private Intent getIntent() {
+        return new Intent(Intent.ACTION_VIEW,
+                Uri.parse(SystemProperties.get(PROPERTY_LINEAGE_LICENSE_URL)));
+    }
+}
diff --git a/src/com/android/settings/display/AutoBrightnessOneShotPreferenceController.java b/src/com/android/settings/display/AutoBrightnessOneShotPreferenceController.java
new file mode 100644
index 0000000..aebcd3d
--- /dev/null
+++ b/src/com/android/settings/display/AutoBrightnessOneShotPreferenceController.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2021 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.display;
+
+import android.content.Context;
+
+import lineageos.providers.LineageSettings;
+
+import com.android.settings.R;
+import com.android.settings.core.TogglePreferenceController;
+
+public class AutoBrightnessOneShotPreferenceController extends TogglePreferenceController {
+
+    public AutoBrightnessOneShotPreferenceController(Context context, String key) {
+        super(context, key);
+    }
+
+    @Override
+    public boolean isChecked() {
+        return LineageSettings.System.getInt(mContext.getContentResolver(),
+                LineageSettings.System.AUTO_BRIGHTNESS_ONE_SHOT, 0) == 1;
+    }
+
+    @Override
+    public boolean setChecked(boolean isChecked) {
+        LineageSettings.System.putInt(mContext.getContentResolver(),
+                LineageSettings.System.AUTO_BRIGHTNESS_ONE_SHOT, isChecked ? 1 : 0);
+        return true;
+    }
+
+    @Override
+    @AvailabilityStatus
+    public int getAvailabilityStatus() {
+        return mContext.getResources().getBoolean(
+                com.android.internal.R.bool.config_automatic_brightness_available)
+                ? AVAILABLE_UNSEARCHABLE
+                : UNSUPPORTED_ON_DEVICE;
+    }
+
+    @Override
+    public CharSequence getSummary() {
+        return mContext.getText(isChecked()
+                ? R.string.auto_brightness_summary_on
+                : R.string.auto_brightness_summary_off);
+    }
+
+    @Override
+    public int getSliceHighlightMenuRes() {
+        return R.string.menu_key_display;
+    }
+}
diff --git a/src/com/android/settings/display/ColorModePreferenceController.java b/src/com/android/settings/display/ColorModePreferenceController.java
index 6cd4867..14a2241 100644
--- a/src/com/android/settings/display/ColorModePreferenceController.java
+++ b/src/com/android/settings/display/ColorModePreferenceController.java
@@ -28,8 +28,11 @@
 
     @Override
     public int getAvailabilityStatus() {
+        final int[] availableColorModes = mContext.getResources().getIntArray(
+                com.android.internal.R.array.config_availableColorModes);
         return mContext.getSystemService(ColorDisplayManager.class)
                 .isDeviceColorManaged()
+                && availableColorModes.length > 0
                 && !ColorDisplayManager.areAccessibilityTransformsEnabled(mContext) ?
                 AVAILABLE : DISABLED_FOR_USER;
     }
diff --git a/src/com/android/settings/display/MinRefreshRatePreferenceController.java b/src/com/android/settings/display/MinRefreshRatePreferenceController.java
new file mode 100644
index 0000000..caaf11b
--- /dev/null
+++ b/src/com/android/settings/display/MinRefreshRatePreferenceController.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2020 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.display;
+
+import static android.provider.Settings.System.MIN_REFRESH_RATE;
+
+import android.content.Context;
+import android.provider.Settings;
+import android.view.Display;
+
+import androidx.preference.ListPreference;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+
+public class MinRefreshRatePreferenceController extends BasePreferenceController
+        implements Preference.OnPreferenceChangeListener {
+
+    private static final String KEY_MIN_REFRESH_RATE = "min_refresh_rate";
+
+    private ListPreference mListPreference;
+
+    private List<String> mEntries = new ArrayList<>();
+    private List<String> mValues = new ArrayList<>();
+
+    public MinRefreshRatePreferenceController(Context context) {
+        super(context, KEY_MIN_REFRESH_RATE);
+
+        if (mContext.getResources().getBoolean(R.bool.config_show_min_refresh_rate_switch)) {
+            Display.Mode mode = mContext.getDisplay().getMode();
+            Display.Mode[] modes = mContext.getDisplay().getSupportedModes();
+            for (Display.Mode m : modes) {
+                if (m.getPhysicalWidth() == mode.getPhysicalWidth() &&
+                        m.getPhysicalHeight() == mode.getPhysicalHeight()) {
+                    mEntries.add(String.format("%.02fHz", m.getRefreshRate())
+                            .replaceAll("[\\.,]00", ""));
+                    mValues.add(String.format(Locale.US, "%.02f", m.getRefreshRate()));
+                }
+            }
+        }
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return mEntries.size() > 1 ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_MIN_REFRESH_RATE;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        mListPreference = screen.findPreference(getPreferenceKey());
+        mListPreference.setEntries(mEntries.toArray(new String[mEntries.size()]));
+        mListPreference.setEntryValues(mValues.toArray(new String[mValues.size()]));
+
+        super.displayPreference(screen);
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        final float currentValue = Settings.System.getFloat(mContext.getContentResolver(),
+                MIN_REFRESH_RATE, 60.00f);
+        int index = mListPreference.findIndexOfValue(
+                String.format(Locale.US, "%.02f", currentValue));
+        if (index < 0) index = 0;
+        mListPreference.setValueIndex(index);
+        mListPreference.setSummary(mListPreference.getEntries()[index]);
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        Settings.System.putFloat(mContext.getContentResolver(), MIN_REFRESH_RATE,
+                Float.valueOf((String) newValue));
+        updateState(preference);
+        return true;
+    }
+
+}
diff --git a/src/com/android/settings/display/PeakRefreshRateListPreferenceController.java b/src/com/android/settings/display/PeakRefreshRateListPreferenceController.java
new file mode 100644
index 0000000..e4f4a07
--- /dev/null
+++ b/src/com/android/settings/display/PeakRefreshRateListPreferenceController.java
@@ -0,0 +1,202 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ * Copyright (C) 2021 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.display;
+
+import android.content.Context;
+import android.hardware.display.DisplayManager;
+import android.os.Handler;
+import android.provider.DeviceConfig;
+import android.provider.Settings;
+import android.util.Log;
+import android.view.Display;
+
+import androidx.preference.ListPreference;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnStart;
+import com.android.settingslib.core.lifecycle.events.OnStop;
+
+import java.util.ArrayList;
+import java.util.concurrent.Executor;
+import java.util.List;
+import java.util.Locale;
+
+public class PeakRefreshRateListPreferenceController extends BasePreferenceController
+        implements LifecycleObserver, OnStart, OnStop, Preference.OnPreferenceChangeListener {
+
+    private static float DEFAULT_REFRESH_RATE = 60f;
+
+    private static final String TAG = "PeakRefreshRatePrefCtr";
+    private static final float INVALIDATE_REFRESH_RATE = -1f;
+
+    private final Handler mHandler;
+    private final IDeviceConfigChange mOnDeviceConfigChange;
+    private final DeviceConfigDisplaySettings mDeviceConfigDisplaySettings;
+    private ListPreference mListPreference;
+
+    private List<String> mEntries = new ArrayList<>();
+    private List<String> mValues = new ArrayList<>();
+
+    private interface IDeviceConfigChange {
+        void onDefaultRefreshRateChanged();
+    }
+
+    public PeakRefreshRateListPreferenceController(Context context, String key) {
+        super(context, key);
+        mHandler = new Handler(context.getMainLooper());
+        mDeviceConfigDisplaySettings = new DeviceConfigDisplaySettings();
+        mOnDeviceConfigChange =
+                new IDeviceConfigChange() {
+                    public void onDefaultRefreshRateChanged() {
+                        updateState(mListPreference);
+                    }
+                };
+
+        final DisplayManager dm = mContext.getSystemService(DisplayManager.class);
+        final Display display = dm.getDisplay(Display.DEFAULT_DISPLAY);
+
+        if (display == null) {
+            Log.w(TAG, "No valid default display device");
+        } else {
+            Display.Mode mode = display.getMode();
+            Display.Mode[] modes = display.getSupportedModes();
+            for (Display.Mode m : modes) {
+                if (m.getPhysicalWidth() == mode.getPhysicalWidth() &&
+                        m.getPhysicalHeight() == mode.getPhysicalHeight()) {
+                    mEntries.add(String.format("%.02fHz", m.getRefreshRate())
+                            .replaceAll("[\\.,]00", ""));
+                    mValues.add(String.format(Locale.US, "%.02f", m.getRefreshRate()));
+                }
+            }
+        }
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+
+        mListPreference = screen.findPreference(getPreferenceKey());
+        mListPreference.setEntries(mEntries.toArray(new String[mEntries.size()]));
+        mListPreference.setEntryValues(mValues.toArray(new String[mValues.size()]));
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        if (mContext.getResources().getBoolean(R.bool.config_show_peak_refresh_rate_switch)) {
+            return AVAILABLE;
+        } else {
+            return UNSUPPORTED_ON_DEVICE;
+        }
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        final float currentValue = Settings.System.getFloat(mContext.getContentResolver(),
+                Settings.System.PEAK_REFRESH_RATE, getDefaultPeakRefreshRate());
+        int index = mListPreference.findIndexOfValue(
+                String.format(Locale.US, "%.02f", currentValue));
+        if (index < 0) index = 0;
+        mListPreference.setValueIndex(index);
+        mListPreference.setSummary(mListPreference.getEntries()[index]);
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        Settings.System.putFloat(mContext.getContentResolver(), Settings.System.PEAK_REFRESH_RATE,
+                Float.valueOf((String) newValue));
+        updateState(preference);
+        return true;
+    }
+
+    @Override
+    public void onStart() {
+        mDeviceConfigDisplaySettings.startListening();
+    }
+
+    @Override
+    public void onStop() {
+        mDeviceConfigDisplaySettings.stopListening();
+    }
+
+    private float findPeakRefreshRate(Display.Mode[] modes) {
+        float peakRefreshRate = DEFAULT_REFRESH_RATE;
+        for (Display.Mode mode : modes) {
+            if (Math.round(mode.getRefreshRate()) > DEFAULT_REFRESH_RATE) {
+                peakRefreshRate = mode.getRefreshRate();
+            }
+        }
+        return peakRefreshRate;
+    }
+
+    private class DeviceConfigDisplaySettings
+            implements DeviceConfig.OnPropertiesChangedListener, Executor {
+        public void startListening() {
+            DeviceConfig.addOnPropertiesChangedListener(
+                    DeviceConfig.NAMESPACE_DISPLAY_MANAGER,
+                    this /* Executor */,
+                    this /* Listener */);
+        }
+
+        public void stopListening() {
+            DeviceConfig.removeOnPropertiesChangedListener(this);
+        }
+
+        public float getDefaultPeakRefreshRate() {
+            float defaultPeakRefreshRate =
+                    DeviceConfig.getFloat(
+                            DeviceConfig.NAMESPACE_DISPLAY_MANAGER,
+                            DisplayManager.DeviceConfig.KEY_PEAK_REFRESH_RATE_DEFAULT,
+                            INVALIDATE_REFRESH_RATE);
+            Log.d(TAG, "DeviceConfig getDefaultPeakRefreshRate : " + defaultPeakRefreshRate);
+
+            return defaultPeakRefreshRate;
+        }
+
+        @Override
+        public void onPropertiesChanged(DeviceConfig.Properties properties) {
+            // Got notified if any property has been changed in NAMESPACE_DISPLAY_MANAGER. The
+            // KEY_PEAK_REFRESH_RATE_DEFAULT value could be added, changed, removed or unchanged.
+            // Just force a UI update for any case.
+            if (mOnDeviceConfigChange != null) {
+                mOnDeviceConfigChange.onDefaultRefreshRateChanged();
+                updateState(mListPreference);
+            }
+        }
+
+        @Override
+        public void execute(Runnable runnable) {
+            if (mHandler != null) {
+                mHandler.post(runnable);
+            }
+        }
+    }
+
+    private float getDefaultPeakRefreshRate() {
+        float defaultPeakRefreshRate = mDeviceConfigDisplaySettings.getDefaultPeakRefreshRate();
+        if (defaultPeakRefreshRate == INVALIDATE_REFRESH_RATE) {
+            defaultPeakRefreshRate = (float) mContext.getResources().getInteger(
+                    com.android.internal.R.integer.config_defaultPeakRefreshRate);
+        }
+
+        return defaultPeakRefreshRate;
+    }
+}
diff --git a/src/com/android/settings/display/PeakRefreshRatePreferenceController.java b/src/com/android/settings/display/PeakRefreshRatePreferenceController.java
index 27ba340..7bc34ef 100644
--- a/src/com/android/settings/display/PeakRefreshRatePreferenceController.java
+++ b/src/com/android/settings/display/PeakRefreshRatePreferenceController.java
@@ -89,6 +89,10 @@
         super.displayPreference(screen);
 
         mPreference = screen.findPreference(getPreferenceKey());
+
+        final String summary = mContext.getString(R.string.peak_refresh_rate_summary_custom,
+                (int)mPeakRefreshRate);
+        mPreference.setSummary(summary);
     }
 
     @Override
diff --git a/src/com/android/settings/fuelgauge/FastChargingPreferenceController.java b/src/com/android/settings/fuelgauge/FastChargingPreferenceController.java
new file mode 100644
index 0000000..21586ea
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/FastChargingPreferenceController.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2021 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.fuelgauge;
+
+import android.content.Context;
+import android.os.RemoteException;
+import android.util.Log;
+
+import androidx.preference.Preference;
+import androidx.preference.SwitchPreference;
+
+import com.android.settings.core.BasePreferenceController;
+
+import vendor.lineage.fastcharge.V1_0.IFastCharge;
+
+import java.util.NoSuchElementException;
+
+/**
+ * Controller to change and update the fast charging toggle
+ */
+public class FastChargingPreferenceController extends BasePreferenceController
+        implements Preference.OnPreferenceChangeListener {
+
+    private static final String KEY_FAST_CHARGING = "fast_charging";
+    private static final String TAG = "FastChargingPreferenceController";
+
+    private IFastCharge mFastCharge = null;
+
+    public FastChargingPreferenceController(Context context) {
+        super(context, KEY_FAST_CHARGING);
+        try {
+            mFastCharge = IFastCharge.getService();
+        } catch (NoSuchElementException | RemoteException e) {
+            Log.e(TAG, "Failed to get IFastCharge interface", e);
+        }
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return mFastCharge != null ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        super.updateState(preference);
+        boolean fastChargingEnabled = false;
+
+        try {
+            fastChargingEnabled = mFastCharge.isEnabled();
+        } catch (RemoteException e) {
+            Log.e(TAG, "isEnabled failed", e);
+        }
+
+        ((SwitchPreference) preference).setChecked(fastChargingEnabled);
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        final boolean shouldEnableFastCharging = (Boolean) newValue;
+
+        try {
+            mFastCharge.setEnabled(shouldEnableFastCharging);
+            updateState(preference);
+        } catch (RemoteException e) {
+            Log.e(TAG, "setEnabled failed", e);
+        }
+
+        return false;
+    }
+}
diff --git a/src/com/android/settings/gestures/GestureNavigationSettingsFragment.java b/src/com/android/settings/gestures/GestureNavigationSettingsFragment.java
index 546581b..0672b77 100644
--- a/src/com/android/settings/gestures/GestureNavigationSettingsFragment.java
+++ b/src/com/android/settings/gestures/GestureNavigationSettingsFragment.java
@@ -31,6 +31,10 @@
 import com.android.settings.widget.SeekBarPreference;
 import com.android.settingslib.search.SearchIndexable;
 
+import static com.android.systemui.shared.recents.utilities.Utilities.isLargeScreen;
+
+import lineageos.providers.LineageSettings;
+
 /**
  * A fragment to include all the settings related to Gesture Navigation mode.
  */
@@ -45,6 +49,8 @@
     private static final String LEFT_EDGE_SEEKBAR_KEY = "gesture_left_back_sensitivity";
     private static final String RIGHT_EDGE_SEEKBAR_KEY = "gesture_right_back_sensitivity";
 
+    private static final String NAVIGATION_BAR_HINT_KEY = "navigation_bar_hint";
+
     private WindowManager mWindowManager;
     private BackGestureIndicatorView mIndicatorView;
 
@@ -75,6 +81,13 @@
 
         initSeekBarPreference(LEFT_EDGE_SEEKBAR_KEY);
         initSeekBarPreference(RIGHT_EDGE_SEEKBAR_KEY);
+
+        boolean isTaskbarEnabled = LineageSettings.System.getInt(getContext().getContentResolver(),
+                LineageSettings.System.ENABLE_TASKBAR, isLargeScreen(getContext()) ? 1 : 0) == 1;
+        if (isTaskbarEnabled) {
+            getPreferenceScreen().removePreference(
+                    getPreferenceScreen().findPreference(NAVIGATION_BAR_HINT_KEY));
+        }
     }
 
     @Override
diff --git a/src/com/android/settings/gestures/GestureSettings.java b/src/com/android/settings/gestures/GestureSettings.java
index d82cb10..4c2b099 100644
--- a/src/com/android/settings/gestures/GestureSettings.java
+++ b/src/com/android/settings/gestures/GestureSettings.java
@@ -56,6 +56,7 @@
         use(AssistGestureSettingsPreferenceController.class).setAssistOnly(false);
         use(PickupGesturePreferenceController.class).setConfig(getConfig(context));
         use(DoubleTapScreenPreferenceController.class).setConfig(getConfig(context));
+        use(ScreenOffUdfpsPreferenceController.class).setConfig(getConfig(context));
     }
 
     private AmbientDisplayConfiguration getConfig(Context context) {
diff --git a/src/com/android/settings/gestures/GesturesSettingPreferenceController.java b/src/com/android/settings/gestures/GesturesSettingPreferenceController.java
index ff069ab..a93b740 100644
--- a/src/com/android/settings/gestures/GesturesSettingPreferenceController.java
+++ b/src/com/android/settings/gestures/GesturesSettingPreferenceController.java
@@ -77,6 +77,8 @@
         controllers.add(new DoubleTapScreenPreferenceController(context, FAKE_PREF_KEY)
                 .setConfig(ambientDisplayConfiguration));
         controllers.add(new PreventRingingParentPreferenceController(context, FAKE_PREF_KEY));
+        controllers.add(new ScreenOffUdfpsPreferenceController(context, FAKE_PREF_KEY)
+                .setConfig(ambientDisplayConfiguration));
         return controllers;
     }
 }
diff --git a/src/com/android/settings/gestures/ScreenOffUdfpsPreferenceController.java b/src/com/android/settings/gestures/ScreenOffUdfpsPreferenceController.java
new file mode 100644
index 0000000..0128ea0
--- /dev/null
+++ b/src/com/android/settings/gestures/ScreenOffUdfpsPreferenceController.java
@@ -0,0 +1,109 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.gestures;
+
+import android.annotation.UserIdInt;
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.hardware.display.AmbientDisplayConfiguration;
+import android.os.UserHandle;
+import android.provider.Settings;
+import android.text.TextUtils;
+
+import androidx.annotation.VisibleForTesting;
+
+public class ScreenOffUdfpsPreferenceController extends GesturePreferenceController {
+
+    private final int ON = 1;
+    private final int OFF = 0;
+
+    private static final String PREF_KEY_VIDEO = "gesture_screen_off_udfps_video";
+
+    private static final String SECURE_KEY = "screen_off_udfps_enabled";
+
+    private AmbientDisplayConfiguration mAmbientConfig;
+    @UserIdInt
+    private final int mUserId;
+
+    public ScreenOffUdfpsPreferenceController(Context context, String key) {
+        super(context, key);
+        mUserId = UserHandle.myUserId();
+    }
+
+    public ScreenOffUdfpsPreferenceController setConfig(AmbientDisplayConfiguration config) {
+        mAmbientConfig = config;
+        return this;
+    }
+
+    private static boolean screenOffUdfpsAvailable(AmbientDisplayConfiguration config) {
+        return !TextUtils.isEmpty(config.udfpsLongPressSensorType());
+    }
+
+    public static boolean isSuggestionComplete(Context context, SharedPreferences prefs) {
+        return isSuggestionComplete(new AmbientDisplayConfiguration(context), prefs);
+    }
+
+    @VisibleForTesting
+    static boolean isSuggestionComplete(AmbientDisplayConfiguration config,
+            SharedPreferences prefs) {
+        return !screenOffUdfpsAvailable(config)
+                || prefs.getBoolean(ScreenOffUdfpsSettings.PREF_KEY_SUGGESTION_COMPLETE, false);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        // No hardware support for Screen-Off UDFPS
+        if (!screenOffUdfpsAvailable(mAmbientConfig)) {
+            return UNSUPPORTED_ON_DEVICE;
+        }
+
+        return AVAILABLE;
+    }
+
+    @Override
+    public boolean isSliceable() {
+        return TextUtils.equals(getPreferenceKey(), "gesture_screen_off_udfps");
+    }
+
+    @Override
+    public boolean isPublicSlice() {
+        return true;
+    }
+
+    @Override
+    public boolean setChecked(boolean isChecked) {
+        return Settings.Secure.putInt(mContext.getContentResolver(), SECURE_KEY,
+                isChecked ? ON : OFF);
+    }
+
+    @Override
+    protected String getVideoPrefKey() {
+        return PREF_KEY_VIDEO;
+    }
+
+    @Override
+    public boolean isChecked() {
+        return getAmbientConfig().screenOffUdfpsEnabled(mUserId);
+    }
+
+    private AmbientDisplayConfiguration getAmbientConfig() {
+        if (mAmbientConfig == null) {
+            mAmbientConfig = new AmbientDisplayConfiguration(mContext);
+        }
+        return mAmbientConfig;
+    }
+}
diff --git a/src/com/android/settings/gestures/ScreenOffUdfpsSettings.java b/src/com/android/settings/gestures/ScreenOffUdfpsSettings.java
new file mode 100644
index 0000000..751f0b3
--- /dev/null
+++ b/src/com/android/settings/gestures/ScreenOffUdfpsSettings.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.gestures;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.hardware.display.AmbientDisplayConfiguration;
+import android.provider.SearchIndexableResource;
+
+import com.android.settings.R;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settingslib.search.SearchIndexable;
+
+import java.util.Arrays;
+import java.util.List;
+
+@SearchIndexable
+public class ScreenOffUdfpsSettings extends DashboardFragment {
+
+    private static final String TAG = "ScreenOffUdfps";
+
+    public static final String PREF_KEY_SUGGESTION_COMPLETE =
+            "pref_screen_off_udfps_suggestion_complete";
+
+    @Override
+    public void onAttach(Context context) {
+        super.onAttach(context);
+        SuggestionFeatureProvider suggestionFeatureProvider = FeatureFactory.getFactory(context)
+                .getSuggestionFeatureProvider(context);
+        SharedPreferences prefs = suggestionFeatureProvider.getSharedPrefs(context);
+        prefs.edit().putBoolean(PREF_KEY_SUGGESTION_COMPLETE, true).apply();
+
+        use(ScreenOffUdfpsPreferenceController.class)
+                .setConfig(new AmbientDisplayConfiguration(context));
+    }
+
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.PAGE_UNKNOWN;
+    }
+
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.screen_off_udfps_settings;
+    }
+
+    public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+            new BaseSearchIndexProvider(R.xml.screen_off_udfps_settings);
+}
diff --git a/src/com/android/settings/gestures/SystemNavigationGestureSettings.java b/src/com/android/settings/gestures/SystemNavigationGestureSettings.java
index 0363d9e..9a44098 100644
--- a/src/com/android/settings/gestures/SystemNavigationGestureSettings.java
+++ b/src/com/android/settings/gestures/SystemNavigationGestureSettings.java
@@ -56,6 +56,10 @@
 import com.android.settingslib.widget.IllustrationPreference;
 import com.android.settingslib.widget.SelectorWithWidgetPreference;
 
+import static com.android.systemui.shared.recents.utilities.Utilities.isLargeScreen;
+
+import lineageos.providers.LineageSettings;
+
 import java.util.ArrayList;
 import java.util.List;
 
@@ -186,6 +190,9 @@
         final Context c = getContext();
         List<CandidateInfoExtra> candidates = new ArrayList<>();
 
+        boolean isTaskbarEnabled = LineageSettings.System.getInt(getContext().getContentResolver(),
+                LineageSettings.System.ENABLE_TASKBAR, isLargeScreen(getContext()) ? 1 : 0) == 1;
+
         if (SystemNavigationPreferenceController.isOverlayPackageAvailable(c,
                 NAV_BAR_MODE_GESTURAL_OVERLAY)) {
             candidates.add(new CandidateInfoExtra(
@@ -193,7 +200,7 @@
                     c.getText(R.string.edge_to_edge_navigation_summary),
                     KEY_SYSTEM_NAV_GESTURAL, true /* enabled */));
         }
-        if (SystemNavigationPreferenceController.isOverlayPackageAvailable(c,
+        if (!isTaskbarEnabled && SystemNavigationPreferenceController.isOverlayPackageAvailable(c,
                 NAV_BAR_MODE_2BUTTON_OVERLAY)) {
             candidates.add(new CandidateInfoExtra(
                     c.getText(R.string.swipe_up_to_switch_apps_title),
diff --git a/src/com/android/settings/gestures/SystemNavigationPreferenceController.java b/src/com/android/settings/gestures/SystemNavigationPreferenceController.java
index ab83a9d..c50be5c 100644
--- a/src/com/android/settings/gestures/SystemNavigationPreferenceController.java
+++ b/src/com/android/settings/gestures/SystemNavigationPreferenceController.java
@@ -23,6 +23,10 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageManager;
+import android.os.RemoteException;
+import android.view.Display;
+import android.view.IWindowManager;
+import android.view.WindowManagerGlobal;
 
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
@@ -53,9 +57,19 @@
     }
 
     static boolean isGestureAvailable(Context context) {
+        boolean hasNavigationBar = false;
+        final boolean configEnabled = context.getResources().getBoolean(
+                com.android.internal.R.bool.config_swipe_up_gesture_setting_available);
+
+        try {
+            IWindowManager windowManager = WindowManagerGlobal.getWindowManagerService();
+            hasNavigationBar = windowManager.hasNavigationBar(Display.DEFAULT_DISPLAY);
+        } catch (RemoteException ex) {
+            // no window manager? good luck with that
+        }
         // Skip if the swipe up settings are not available
-        if (!context.getResources().getBoolean(
-                com.android.internal.R.bool.config_swipe_up_gesture_setting_available)) {
+        // or if on-screen navbar is disabled (for devices with hardware keys)
+        if (!configEnabled || !hasNavigationBar) {
             return false;
         }
 
diff --git a/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java b/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java
index 808129f..8daf126 100644
--- a/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java
+++ b/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java
@@ -60,6 +60,7 @@
         KeyboardLayoutDialogFragment.OnSetupKeyboardLayoutsListener {
 
     private static final String KEYBOARD_ASSISTANCE_CATEGORY = "keyboard_assistance_category";
+    private static final String KEYBOARD_EXTRAS_CATEGORY = "keyboard_extras_category";
     private static final String SHOW_VIRTUAL_KEYBOARD_SWITCH = "show_virtual_keyboard_switch";
     private static final String KEYBOARD_SHORTCUTS_HELPER = "keyboard_shortcuts_helper";
 
@@ -70,6 +71,8 @@
     @NonNull
     private PreferenceCategory mKeyboardAssistanceCategory;
     @NonNull
+    private PreferenceCategory mKeyboardExtrasCategory;
+    @NonNull
     private SwitchPreference mShowVirtualKeyboardSwitch;
 
     private Intent mIntentWaitingForResult;
@@ -81,6 +84,8 @@
         mIm = Preconditions.checkNotNull(activity.getSystemService(InputManager.class));
         mKeyboardAssistanceCategory = Preconditions.checkNotNull(
                 (PreferenceCategory) findPreference(KEYBOARD_ASSISTANCE_CATEGORY));
+        mKeyboardExtrasCategory = Preconditions.checkNotNull(
+                (PreferenceCategory) findPreference(KEYBOARD_EXTRAS_CATEGORY));
         mShowVirtualKeyboardSwitch = Preconditions.checkNotNull(
                 (SwitchPreference) mKeyboardAssistanceCategory.findPreference(
                         SHOW_VIRTUAL_KEYBOARD_SWITCH));
@@ -176,6 +181,8 @@
 
         mKeyboardAssistanceCategory.setOrder(1);
         preferenceScreen.addPreference(mKeyboardAssistanceCategory);
+        mKeyboardExtrasCategory.setOrder(99);
+        preferenceScreen.addPreference(mKeyboardExtrasCategory);
         updateShowVirtualKeyboardSwitch();
     }
 
diff --git a/src/com/android/settings/language/LanguageAndInputSettings.java b/src/com/android/settings/language/LanguageAndInputSettings.java
index 2d80da5..86c200b 100644
--- a/src/com/android/settings/language/LanguageAndInputSettings.java
+++ b/src/com/android/settings/language/LanguageAndInputSettings.java
@@ -39,6 +39,8 @@
 import com.android.settingslib.core.lifecycle.Lifecycle;
 import com.android.settingslib.search.SearchIndexable;
 
+import lineageos.hardware.LineageHardwareManager;
+
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -53,6 +55,7 @@
     private static final String KEY_ON_DEVICE_RECOGNITION = "odsr_settings";
     private static final String KEY_TEXT_TO_SPEECH = "tts_settings_summary";
     private static final String KEY_POINTER_CATEGORY = "pointer_category";
+    private static final String KEY_TOUCH_HOVERING = "feature_touch_hovering";
 
     @Override
     public int getMetricsCategory() {
@@ -156,6 +159,16 @@
             new BaseSearchIndexProvider(R.xml.language_and_input) {
 
                 @Override
+                public List<String> getNonIndexableKeys(Context context) {
+                    List<String> keys = super.getNonIndexableKeys(context);
+                    LineageHardwareManager hardware = LineageHardwareManager.getInstance(context);
+                    if (!hardware.isSupported(LineageHardwareManager.FEATURE_TOUCH_HOVERING)) {
+                        keys.add(KEY_TOUCH_HOVERING);
+                    }
+                    return keys;
+                }
+
+                @Override
                 public List<AbstractPreferenceController> createPreferenceControllers(
                         Context context) {
                     return buildPreferenceControllers(context, null);
diff --git a/src/com/android/settings/location/AgpsPreferenceController.java b/src/com/android/settings/location/AgpsPreferenceController.java
new file mode 100755
index 0000000..8fed53a
--- /dev/null
+++ b/src/com/android/settings/location/AgpsPreferenceController.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.location;
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.provider.Settings;
+
+import androidx.preference.SwitchPreference;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+public class AgpsPreferenceController extends LocationBasePreferenceController {
+    private static final String KEY_ASSISTED_GPS = "assisted_gps";
+
+    private SwitchPreference mAgpsPreference;
+
+    public AgpsPreferenceController(Context context, String key) {
+        super(context, key);
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_ASSISTED_GPS;
+    }
+
+    @AvailabilityStatus
+    public int getAvailabilityStatus() {
+        return AVAILABLE;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mAgpsPreference = (SwitchPreference) screen.findPreference(KEY_ASSISTED_GPS);
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        if (mAgpsPreference != null) {
+            mAgpsPreference.setChecked(Settings.Global.getInt(
+                    mContext.getContentResolver(), Settings.Global.ASSISTED_GPS_ENABLED, 1) == 1);
+        }
+    }
+
+    @Override
+    public boolean handlePreferenceTreeClick(Preference preference) {
+        if (KEY_ASSISTED_GPS.equals(preference.getKey())) {
+            final ContentResolver cr = mContext.getContentResolver();
+            final boolean switchState = mAgpsPreference.isChecked();
+            Settings.Global.putInt(cr, Settings.Global.ASSISTED_GPS_ENABLED,
+                    switchState ? 1 : 0);
+            return true;
+        }
+        return false;
+    }
+
+    @Override
+    public void onLocationModeChanged(int mode, boolean restricted) {}
+}
diff --git a/src/com/android/settings/location/LocationSettings.java b/src/com/android/settings/location/LocationSettings.java
index ff8b4be..aac19a7 100644
--- a/src/com/android/settings/location/LocationSettings.java
+++ b/src/com/android/settings/location/LocationSettings.java
@@ -109,6 +109,7 @@
         use(RecentLocationAccessSeeAllButtonPreferenceController.class).init(this);
         use(LocationForWorkPreferenceController.class).init(this);
         use(LocationSettingsFooterPreferenceController.class).init(this);
+        use(AgpsPreferenceController.class).init(this);
     }
 
     @Override
diff --git a/src/com/android/settings/network/NetworkProviderSettings.java b/src/com/android/settings/network/NetworkProviderSettings.java
index ae2cfbc..b8d8f9b 100644
--- a/src/com/android/settings/network/NetworkProviderSettings.java
+++ b/src/com/android/settings/network/NetworkProviderSettings.java
@@ -44,10 +44,12 @@
 import android.util.Log;
 import android.view.ContextMenu;
 import android.view.ContextMenu.ContextMenuInfo;
+import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuInflater;
 import android.view.MenuItem;
 import android.view.View;
+import android.view.ViewGroup;
 import android.widget.Toast;
 
 import androidx.annotation.Nullable;
@@ -94,6 +96,10 @@
 import com.android.wifitrackerlib.WifiEntry.ConnectCallback;
 import com.android.wifitrackerlib.WifiPickerTracker;
 
+import com.google.android.setupcompat.template.FooterButtonStyleUtils;
+import com.google.android.setupcompat.util.WizardManagerHelper;
+import com.google.android.setupdesign.GlifPreferenceLayout;
+
 import java.util.List;
 import java.util.Optional;
 
@@ -167,6 +173,8 @@
     // Enable the Next button when a Wi-Fi network is connected.
     private boolean mEnableNextOnConnection;
 
+    private boolean mIsInSetupWizard;
+
     // This string extra specifies a network to open the connect dialog on, so the user can enter
     // network credentials.  This is used by quick settings for secured networks, among other
     // things.
@@ -271,6 +279,18 @@
             return;
         }
 
+        if (mIsInSetupWizard) {
+            GlifPreferenceLayout layout = (GlifPreferenceLayout) view;
+            layout.setDividerInsets(Integer.MAX_VALUE, 0);
+
+            layout.setIcon(getContext().getDrawable(R.drawable.ic_network_setup));
+            layout.setHeaderText(R.string.provider_internet_settings);
+            FooterButtonStyleUtils.applyPrimaryButtonPartnerResource(activity, getNextButton(),
+                    true);
+
+            return;
+        }
+
         setPinnedHeaderView(R.layout.progress_header);
         setProgressBarVisible(false);
 
@@ -303,6 +323,9 @@
 
         mIsRestricted = isUiRestricted();
         mIsAdmin = isAdminUser();
+
+        final Intent intent = this.getIntent();
+        mIsInSetupWizard = WizardManagerHelper.isAnySetupWizard(intent);
     }
 
     private boolean isAdminUser() {
@@ -311,6 +334,17 @@
         return userManager.isAdminUser();
     }
 
+    @Override
+    public RecyclerView onCreateRecyclerView(LayoutInflater inflater, ViewGroup parent,
+            Bundle savedInstanceState) {
+        if (mIsInSetupWizard) {
+            GlifPreferenceLayout layout = (GlifPreferenceLayout) parent;
+            return layout.onCreateRecyclerView(inflater, parent, savedInstanceState);
+        } else {
+            return super.onCreateRecyclerView(inflater, parent, savedInstanceState);
+        }
+    }
+
     private void addPreferences() {
         addPreferencesFromResource(R.xml.network_provider_settings);
 
@@ -436,7 +470,12 @@
                 }
             }
         };
-        setHasOptionsMenu(true);
+        if (mIsInSetupWizard) {
+            mConfigureWifiSettingsPreference.setVisible(false);
+            mDataUsagePreference.setVisible(false);
+        } else {
+            setHasOptionsMenu(true);
+        }
 
         if (savedInstanceState != null) {
             mDialogMode = savedInstanceState.getInt(SAVE_DIALOG_MODE);
@@ -981,7 +1020,9 @@
 
                 if (mClickedConnect) {
                     mClickedConnect = false;
-                    scrollToPreference(connectedWifiPreferenceCategory);
+                    if (!mIsInSetupWizard) {
+                        scrollToPreference(connectedWifiPreferenceCategory);
+                    }
                 }
             }
         } else {
@@ -1107,10 +1148,12 @@
 
     @VisibleForTesting
     void setAdditionalSettingsSummaries() {
-        mConfigureWifiSettingsPreference.setSummary(getString(
-                isWifiWakeupEnabled()
-                        ? R.string.wifi_configure_settings_preference_summary_wakeup_on
-                        : R.string.wifi_configure_settings_preference_summary_wakeup_off));
+        if (!mIsInSetupWizard) {
+            mConfigureWifiSettingsPreference.setSummary(getString(
+                    isWifiWakeupEnabled()
+                            ? R.string.wifi_configure_settings_preference_summary_wakeup_on
+                            : R.string.wifi_configure_settings_preference_summary_wakeup_off));
+        }
 
         final int numSavedNetworks = mWifiPickerTracker == null ? 0 :
                 mWifiPickerTracker.getNumSavedNetworks();
@@ -1159,7 +1202,9 @@
     }
 
     protected void setProgressBarVisible(boolean visible) {
-        showPinnedHeader(visible);
+        if (!mIsInSetupWizard) {
+            showPinnedHeader(visible);
+        }
     }
 
     @VisibleForTesting
diff --git a/src/com/android/settings/network/NetworkSetupActivity.java b/src/com/android/settings/network/NetworkSetupActivity.java
new file mode 100644
index 0000000..80290ed
--- /dev/null
+++ b/src/com/android/settings/network/NetworkSetupActivity.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ * Copyright (C) 2021 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.network;
+
+import android.content.Intent;
+import android.content.res.Resources;
+
+import androidx.preference.PreferenceFragmentCompat;
+
+import com.android.settings.ButtonBarHandler;
+import com.android.settings.network.NetworkProviderSettings;
+import com.android.settings.R;
+import com.android.settings.SettingsActivity;
+import com.android.settings.SetupWizardUtils;
+import com.android.settings.wifi.p2p.WifiP2pSettings;
+import com.android.settings.wifi.savedaccesspoints2.SavedAccessPointsWifiSettings2;
+
+public class NetworkSetupActivity extends SettingsActivity implements ButtonBarHandler {
+
+    @Override
+    public Intent getIntent() {
+        Intent modIntent = new Intent(super.getIntent());
+        if (!modIntent.hasExtra(EXTRA_SHOW_FRAGMENT)) {
+            modIntent.putExtra(EXTRA_SHOW_FRAGMENT, getNetworkProviderSettingsClass().getName());
+            modIntent.putExtra(EXTRA_SHOW_FRAGMENT_TITLE_RESID,
+                    R.string.provider_internet_settings);
+        }
+        return modIntent;
+    }
+
+    @Override
+    protected boolean isValidFragment(String fragmentName) {
+        final boolean isSavedAccessPointsWifiSettings =
+                SavedAccessPointsWifiSettings2.class.getName().equals(fragmentName);
+
+        if (NetworkProviderSettings.class.getName().equals(fragmentName)
+                || WifiP2pSettings.class.getName().equals(fragmentName)
+                || isSavedAccessPointsWifiSettings) {
+            return true;
+        }
+        return false;
+    }
+
+    /* package */ Class<? extends PreferenceFragmentCompat> getNetworkProviderSettingsClass() {
+        return NetworkProviderSettings.class;
+    }
+
+    @Override
+    protected void onApplyThemeResource(Resources.Theme theme, int resid, boolean first) {
+        final int new_resid = SetupWizardUtils.getTheme(this, getIntent());
+        super.onApplyThemeResource(theme, new_resid, first);
+    }
+}
diff --git a/src/com/android/settings/network/PrivateDnsModeDialogPreference.java b/src/com/android/settings/network/PrivateDnsModeDialogPreference.java
index 5c7c54e..66575c3 100644
--- a/src/com/android/settings/network/PrivateDnsModeDialogPreference.java
+++ b/src/com/android/settings/network/PrivateDnsModeDialogPreference.java
@@ -72,9 +72,13 @@
     // DNS_MODE -> RadioButton id
     private static final Map<Integer, Integer> PRIVATE_DNS_MAP;
 
+    // Only used in Settings, update on additions to ConnectivitySettingsUtils
+    private static final int PRIVATE_DNS_MODE_CLOUDFLARE = 4;
+
     static {
         PRIVATE_DNS_MAP = new HashMap<>();
         PRIVATE_DNS_MAP.put(PRIVATE_DNS_MODE_OFF, R.id.private_dns_mode_off);
+        PRIVATE_DNS_MAP.put(PRIVATE_DNS_MODE_CLOUDFLARE, R.id.private_dns_mode_cloudflare);
         PRIVATE_DNS_MAP.put(PRIVATE_DNS_MODE_OPPORTUNISTIC, R.id.private_dns_mode_opportunistic);
         PRIVATE_DNS_MAP.put(PRIVATE_DNS_MODE_PROVIDER_HOSTNAME, R.id.private_dns_mode_provider);
     }
@@ -144,6 +148,15 @@
         final ContentResolver contentResolver = context.getContentResolver();
 
         mMode = ConnectivitySettingsManager.getPrivateDnsMode(context);
+        if (mMode == PRIVATE_DNS_MODE_PROVIDER_HOSTNAME) {
+            final String privateDnsHostname =
+                    ConnectivitySettingsManager.getPrivateDnsHostname(context);
+            final String cloudflareHostname =
+                    context.getString(R.string.private_dns_hostname_cloudflare);
+            if (privateDnsHostname.equals(cloudflareHostname)) {
+                mMode = PRIVATE_DNS_MODE_CLOUDFLARE;
+            }
+        }
 
         mEditText = view.findViewById(R.id.private_dns_mode_provider_hostname);
         mEditText.addTextChangedListener(this);
@@ -156,6 +169,9 @@
         // Initial radio button text
         final RadioButton offRadioButton = view.findViewById(R.id.private_dns_mode_off);
         offRadioButton.setText(R.string.private_dns_mode_off);
+        final RadioButton cloudflareRadioButton =
+                view.findViewById(R.id.private_dns_mode_cloudflare);
+        cloudflareRadioButton.setText(R.string.private_dns_mode_cloudflare);
         final RadioButton opportunisticRadioButton =
                 view.findViewById(R.id.private_dns_mode_opportunistic);
         opportunisticRadioButton.setText(R.string.private_dns_mode_opportunistic);
@@ -181,15 +197,21 @@
     public void onClick(DialogInterface dialog, int which) {
         if (which == DialogInterface.BUTTON_POSITIVE) {
             final Context context = getContext();
+            int modeToSet = mMode;
             if (mMode == PRIVATE_DNS_MODE_PROVIDER_HOSTNAME) {
                 // Only clickable if hostname is valid, so we could save it safely
                 ConnectivitySettingsManager.setPrivateDnsHostname(context,
                         mEditText.getText().toString());
+            } else if (mMode == PRIVATE_DNS_MODE_CLOUDFLARE) {
+                final String cloudflareHostname =
+                        context.getString(R.string.private_dns_hostname_cloudflare);
+                ConnectivitySettingsManager.setPrivateDnsHostname(context, cloudflareHostname);
+                modeToSet = PRIVATE_DNS_MODE_PROVIDER_HOSTNAME;
             }
 
             FeatureFactory.getFactory(context).getMetricsFeatureProvider().action(context,
-                    SettingsEnums.ACTION_PRIVATE_DNS_MODE, mMode);
-            ConnectivitySettingsManager.setPrivateDnsMode(context, mMode);
+                    SettingsEnums.ACTION_PRIVATE_DNS_MODE, modeToSet);
+            ConnectivitySettingsManager.setPrivateDnsMode(context, modeToSet);
         }
     }
 
@@ -197,6 +219,8 @@
     public void onCheckedChanged(RadioGroup group, int checkedId) {
         if (checkedId == R.id.private_dns_mode_off) {
             mMode = PRIVATE_DNS_MODE_OFF;
+        } else if (checkedId == R.id.private_dns_mode_cloudflare) {
+            mMode = PRIVATE_DNS_MODE_CLOUDFLARE;
         } else if (checkedId == R.id.private_dns_mode_opportunistic) {
             mMode = PRIVATE_DNS_MODE_OPPORTUNISTIC;
         } else if (checkedId == R.id.private_dns_mode_provider) {
diff --git a/src/com/android/settings/network/PrivateDnsPreferenceController.java b/src/com/android/settings/network/PrivateDnsPreferenceController.java
index ed6f9ed..ca6a434 100644
--- a/src/com/android/settings/network/PrivateDnsPreferenceController.java
+++ b/src/com/android/settings/network/PrivateDnsPreferenceController.java
@@ -65,6 +65,9 @@
         Settings.Global.getUriFor(PRIVATE_DNS_SPECIFIER),
     };
 
+    // Only used in Settings, update on additions to ConnectivitySettingsUtils
+    private static final int PRIVATE_DNS_MODE_CLOUDFLARE = 4;
+
     private final Handler mHandler;
     private final ContentObserver mSettingsObserver;
     private final ConnectivityManager mConnectivityManager;
@@ -89,7 +92,7 @@
             return UNSUPPORTED_ON_DEVICE;
         }
         final UserManager userManager = mContext.getSystemService(UserManager.class);
-        if (userManager.isGuestUser()) return DISABLED_FOR_USER;
+        if (!userManager.isAdminUser()) return DISABLED_FOR_USER;
         return AVAILABLE;
     }
 
@@ -129,13 +132,22 @@
         switch (mode) {
             case PRIVATE_DNS_MODE_OFF:
                 return res.getString(R.string.private_dns_mode_off);
+            case PRIVATE_DNS_MODE_CLOUDFLARE:
             case PRIVATE_DNS_MODE_OPPORTUNISTIC:
                 return dnsesResolved ? res.getString(R.string.private_dns_mode_on)
                         : res.getString(R.string.private_dns_mode_opportunistic);
             case PRIVATE_DNS_MODE_PROVIDER_HOSTNAME:
-                return dnsesResolved
-                        ? PrivateDnsModeDialogPreference.getHostnameFromSettings(cr)
-                        : res.getString(R.string.private_dns_mode_provider_failure);
+                if (!dnsesResolved) {
+                    return res.getString(R.string.private_dns_mode_provider_failure);
+                }
+                final String privateDnsHostname =
+                        ConnectivitySettingsManager.getPrivateDnsHostname(mContext);
+                final String cloudflareHostname =
+                        res.getString(R.string.private_dns_hostname_cloudflare);
+                if (privateDnsHostname.equals(cloudflareHostname)) {
+                    return res.getString(R.string.private_dns_mode_cloudflare);
+                }
+                return PrivateDnsModeDialogPreference.getHostnameFromSettings(cr);
         }
         return "";
     }
diff --git a/src/com/android/settings/network/telephony/NetworkScanHelper.java b/src/com/android/settings/network/telephony/NetworkScanHelper.java
index e0a9c5e..1961329 100644
--- a/src/com/android/settings/network/telephony/NetworkScanHelper.java
+++ b/src/com/android/settings/network/telephony/NetworkScanHelper.java
@@ -17,6 +17,7 @@
 package com.android.settings.network.telephony;
 
 import android.annotation.IntDef;
+import android.content.Context;
 import android.telephony.AccessNetworkConstants.AccessNetworkType;
 import android.telephony.CellInfo;
 import android.telephony.NetworkScan;
@@ -31,6 +32,8 @@
 
 import com.android.internal.telephony.CellNetworkScanResult;
 
+import com.android.settings.R;
+
 import com.google.common.util.concurrent.FutureCallback;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
@@ -129,6 +132,7 @@
     private final TelephonyScanManager.NetworkScanCallback mInternalNetworkScanCallback;
     private final Executor mExecutor;
 
+    private int mMaxSearchTimeSec = MAX_SEARCH_TIME_SEC;
     private NetworkScan mNetworkScanRequester;
 
     /** Callbacks for sync network scan */
@@ -141,6 +145,13 @@
         mExecutor = executor;
     }
 
+    public NetworkScanHelper(Context context, TelephonyManager tm, NetworkScanCallback callback,
+            Executor executor) {
+        this(tm, callback, executor);
+        mMaxSearchTimeSec = context.getResources().getInteger(
+                R.integer.config_network_scan_helper_max_search_time_sec);
+    }
+
     @VisibleForTesting
     NetworkScanRequest createNetworkScanForPreferredAccessNetworks() {
         long networkTypeBitmap3gpp = mTelephonyManager.getPreferredNetworkTypeBitmask()
@@ -183,7 +194,7 @@
                 radioAccessSpecifiers.toArray(
                         new RadioAccessSpecifier[radioAccessSpecifiers.size()]),
                 SEARCH_PERIODICITY_SEC,
-                MAX_SEARCH_TIME_SEC,
+                mMaxSearchTimeSec,
                 INCREMENTAL_RESULTS,
                 INCREMENTAL_RESULTS_PERIODICITY_SEC,
                 null /* List of PLMN ids (MCC-MNC) */);
diff --git a/src/com/android/settings/network/telephony/NetworkSelectSettings.java b/src/com/android/settings/network/telephony/NetworkSelectSettings.java
index b26e783..64939dc 100644
--- a/src/com/android/settings/network/telephony/NetworkSelectSettings.java
+++ b/src/com/android/settings/network/telephony/NetworkSelectSettings.java
@@ -111,7 +111,7 @@
         mSelectedPreference = null;
         mTelephonyManager = getTelephonyManager(getContext(), mSubId);
         mNetworkScanHelper = new NetworkScanHelper(
-                mTelephonyManager, mCallback, mNetworkScanExecutor);
+                getContext(), mTelephonyManager, mCallback, mNetworkScanExecutor);
         PersistableBundle bundle = getCarrierConfigManager(getContext())
                 .getConfigForSubId(mSubId);
         if (bundle != null) {
diff --git a/src/com/android/settings/notification/IncreasingRingPreferenceController.java b/src/com/android/settings/notification/IncreasingRingPreferenceController.java
new file mode 100644
index 0000000..2152451
--- /dev/null
+++ b/src/com/android/settings/notification/IncreasingRingPreferenceController.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+
+import com.android.settings.Utils;
+import com.android.settings.core.BasePreferenceController;
+
+public class IncreasingRingPreferenceController extends BasePreferenceController {
+    private static final String KEY_INCREASING_RING = "increasing_ring";
+
+    public IncreasingRingPreferenceController(Context context) {
+        super(context, KEY_INCREASING_RING);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return Utils.isVoiceCapable(mContext) ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+    }
+}
diff --git a/src/com/android/settings/notification/IncreasingRingVolumePreference.java b/src/com/android/settings/notification/IncreasingRingVolumePreference.java
new file mode 100644
index 0000000..efa2614
--- /dev/null
+++ b/src/com/android/settings/notification/IncreasingRingVolumePreference.java
@@ -0,0 +1,257 @@
+/*
+ * Copyright (C) 2014 CyanogenMod Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.media.AudioAttributes;
+import android.media.AudioManager;
+import android.media.Ringtone;
+import android.media.RingtoneManager;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.Message;
+import android.provider.Settings;
+import android.text.format.Formatter;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.widget.SeekBar;
+import android.widget.TextView;
+
+import androidx.core.content.res.TypedArrayUtils;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceViewHolder;
+
+import com.android.settings.R;
+
+import lineageos.providers.LineageSettings;
+
+public class IncreasingRingVolumePreference extends Preference
+        implements Handler.Callback, SeekBar.OnSeekBarChangeListener {
+    private static final String TAG = "IncreasingRingMinVolumePreference";
+
+    public interface Callback {
+        void onSampleStarting(IncreasingRingVolumePreference pref);
+    }
+
+    private SeekBar mStartVolumeSeekBar;
+    private SeekBar mRampUpTimeSeekBar;
+    private TextView mRampUpTimeValue;
+
+    private Ringtone mRingtone;
+    private Callback mCallback;
+
+    private Handler mHandler;
+    private final Handler mMainHandler = new Handler(this);
+
+    private static final int MSG_START_SAMPLE = 1;
+    private static final int MSG_STOP_SAMPLE = 2;
+    private static final int MSG_INIT_SAMPLE = 3;
+    private static final int MSG_SET_VOLUME = 4;
+    private static final int CHECK_RINGTONE_PLAYBACK_DELAY_MS = 1000;
+
+    public IncreasingRingVolumePreference(Context context) {
+        this(context, null);
+    }
+
+    public IncreasingRingVolumePreference(Context context, AttributeSet attrs) {
+        this(context, attrs, TypedArrayUtils.getAttr(context,
+                R.attr.preferenceStyle, android.R.attr.preferenceStyle));
+    }
+
+    public IncreasingRingVolumePreference(Context context, AttributeSet attrs,
+            int defStyleAttr) {
+        this(context, attrs, defStyleAttr, 0);
+    }
+
+    public IncreasingRingVolumePreference(Context context, AttributeSet attrs,
+            int defStyleAttr, int defStyleRes) {
+        super(context, attrs, defStyleAttr, defStyleRes);
+        setLayoutResource(R.layout.preference_increasing_ring);
+        initHandler();
+    }
+
+    public void setCallback(Callback callback) {
+        mCallback = callback;
+    }
+
+    public void onActivityResume() {
+        initHandler();
+    }
+
+    public void onActivityStop() {
+        if (mHandler != null) {
+            postStopSample();
+            mHandler.getLooper().quitSafely();
+            mHandler = null;
+        }
+    }
+
+    @Override
+    public boolean handleMessage(Message msg) {
+        switch (msg.what) {
+            case MSG_START_SAMPLE:
+                onStartSample((float) msg.arg1 / 1000F);
+                break;
+            case MSG_STOP_SAMPLE:
+                onStopSample();
+                break;
+            case MSG_INIT_SAMPLE:
+                onInitSample();
+                break;
+            case MSG_SET_VOLUME:
+                onSetVolume((float) msg.arg1 / 1000F);
+                break;
+        }
+        return true;
+    }
+
+    @Override
+    public void onBindViewHolder(PreferenceViewHolder holder) {
+        super.onBindViewHolder(holder);
+
+        initHandler();
+
+        final SeekBar seekBar = (SeekBar) holder.findViewById(R.id.start_volume);
+        if (seekBar == mStartVolumeSeekBar) return;
+
+        mStartVolumeSeekBar = seekBar;
+        mRampUpTimeSeekBar = (SeekBar) holder.findViewById(R.id.ramp_up_time);
+        mRampUpTimeValue = (TextView) holder.findViewById(R.id.ramp_up_time_value);
+
+        final ContentResolver cr = getContext().getContentResolver();
+        float startVolume = LineageSettings.System.getFloat(cr,
+                LineageSettings.System.INCREASING_RING_START_VOLUME, 0.1f);
+        int rampUpTime = LineageSettings.System.getInt(cr,
+                LineageSettings.System.INCREASING_RING_RAMP_UP_TIME, 10);
+
+        mStartVolumeSeekBar.setProgress(Math.round(startVolume * 1000F));
+        mStartVolumeSeekBar.setOnSeekBarChangeListener(this);
+        mRampUpTimeSeekBar.setOnSeekBarChangeListener(this);
+        mRampUpTimeSeekBar.setProgress((rampUpTime / 5) - 1);
+        mRampUpTimeValue.setText(
+                Formatter.formatShortElapsedTime(getContext(), rampUpTime * 1000));
+    }
+
+    @Override
+    public void onStartTrackingTouch(SeekBar seekBar) {
+    }
+
+    @Override
+    public void onStopTrackingTouch(SeekBar seekBar) {
+        if (seekBar == mStartVolumeSeekBar) {
+            postStartSample(seekBar.getProgress());
+        }
+    }
+
+    @Override
+    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromTouch) {
+        ContentResolver cr = getContext().getContentResolver();
+        if (fromTouch && seekBar == mStartVolumeSeekBar) {
+            LineageSettings.System.putFloat(cr,
+                    LineageSettings.System.INCREASING_RING_START_VOLUME, (float) progress / 1000F);
+        } else if (seekBar == mRampUpTimeSeekBar) {
+            int seconds = (progress + 1) * 5;
+            mRampUpTimeValue.setText(
+                    Formatter.formatShortElapsedTime(getContext(), seconds * 1000));
+            if (fromTouch) {
+                LineageSettings.System.putInt(cr,
+                        LineageSettings.System.INCREASING_RING_RAMP_UP_TIME, seconds);
+            }
+        }
+    }
+
+    private void initHandler() {
+        if (mHandler != null) return;
+
+        HandlerThread thread = new HandlerThread(TAG + ".CallbackHandler");
+        thread.start();
+
+        mHandler = new Handler(thread.getLooper(), this);
+        mHandler.sendEmptyMessage(MSG_INIT_SAMPLE);
+    }
+
+    private void onInitSample() {
+        mRingtone = RingtoneManager.getRingtone(getContext(),
+                Settings.System.DEFAULT_RINGTONE_URI);
+        if (mRingtone != null) {
+            mRingtone.setStreamType(AudioManager.STREAM_RING);
+            mRingtone.setAudioAttributes(
+                    new AudioAttributes.Builder(mRingtone.getAudioAttributes())
+                            .setFlags(AudioAttributes.FLAG_BYPASS_INTERRUPTION_POLICY |
+                                    AudioAttributes.FLAG_BYPASS_MUTE)
+                            .build());
+        }
+    }
+
+    private void postStartSample(int progress) {
+        boolean playing = isSamplePlaying();
+        mHandler.removeMessages(MSG_START_SAMPLE);
+        mHandler.removeMessages(MSG_SET_VOLUME);
+        mHandler.sendMessageDelayed(mHandler.obtainMessage(MSG_START_SAMPLE, progress, 0),
+                playing ? CHECK_RINGTONE_PLAYBACK_DELAY_MS : 0);
+        if (playing) {
+            mHandler.sendMessage(mHandler.obtainMessage(MSG_SET_VOLUME, progress, 0));
+        }
+    }
+
+    private void onStartSample(float volume) {
+        if (mRingtone == null) {
+            return;
+        }
+        if (!isSamplePlaying()) {
+            if (mCallback != null) {
+                mCallback.onSampleStarting(this);
+            }
+            try {
+                mRingtone.play();
+            } catch (Throwable e) {
+                Log.w(TAG, "Error playing ringtone", e);
+            }
+        }
+        mRingtone.setVolume(volume);
+    }
+
+    private void onSetVolume(float volume) {
+        if (mRingtone != null) {
+            mRingtone.setVolume(volume);
+        }
+    }
+
+    private boolean isSamplePlaying() {
+        return mRingtone != null && mRingtone.isPlaying();
+    }
+
+    public void stopSample() {
+        if (mHandler != null) {
+            postStopSample();
+        }
+    }
+
+    private void postStopSample() {
+        // remove pending delayed start messages
+        mHandler.removeMessages(MSG_START_SAMPLE);
+        mHandler.removeMessages(MSG_STOP_SAMPLE);
+        mHandler.sendEmptyMessage(MSG_STOP_SAMPLE);
+    }
+
+    private void onStopSample() {
+        if (mRingtone != null) {
+            mRingtone.stop();
+        }
+    }
+}
diff --git a/src/com/android/settings/notification/IncreasingRingVolumePreferenceController.java b/src/com/android/settings/notification/IncreasingRingVolumePreferenceController.java
new file mode 100644
index 0000000..78da248
--- /dev/null
+++ b/src/com/android/settings/notification/IncreasingRingVolumePreferenceController.java
@@ -0,0 +1,109 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.Utils;
+import com.android.settings.slices.SliceData;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnResume;
+import com.android.settingslib.core.lifecycle.events.OnStop;
+
+/**
+ * Base class for preference controller that handles VolumeSeekBarPreference
+ */
+public class IncreasingRingVolumePreferenceController
+        extends AdjustVolumeRestrictedPreferenceController
+        implements LifecycleObserver, OnResume, OnStop {
+
+    private static final String KEY_INCREASING_RING_VOLUME = "increasing_ring_volume";
+
+    private IncreasingRingVolumePreference mPreference;
+    private IncreasingRingVolumePreference.Callback mCallback;
+    private AudioHelper mHelper;
+
+    public IncreasingRingVolumePreferenceController(Context context) {
+        super(context, KEY_INCREASING_RING_VOLUME);
+        mHelper = new AudioHelper(context);
+    }
+
+    public void setCallback(IncreasingRingVolumePreference.Callback callback) {
+        mCallback = callback;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        if (isAvailable()) {
+            mPreference = screen.findPreference(getPreferenceKey());
+            mPreference.setCallback(mCallback);
+        }
+    }
+
+    @Override
+    public void onResume() {
+        if (mPreference != null) {
+            mPreference.onActivityResume();
+        }
+    }
+
+    @Override
+    public void onStop() {
+        if (mPreference != null) {
+            mPreference.onActivityStop();
+        }
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_INCREASING_RING_VOLUME;
+    }
+
+    @Override
+    public int getSliderPosition() {
+        return 0;
+    }
+
+    @Override
+    public boolean setSliderPosition(int position) {
+        return false;
+    }
+
+    @Override
+    public int getMin() {
+        return 0;
+    }
+
+    @Override
+    public int getMax() {
+        return 0;
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return Utils.isVoiceCapable(mContext) && !mHelper.isSingleVolume() ?
+                AVAILABLE : UNSUPPORTED_ON_DEVICE;
+    }
+
+    @Override
+    public int getSliceType() {
+        return SliceData.SliceType.INTENT;
+    }
+}
diff --git a/src/com/android/settings/notification/NotificationBackend.java b/src/com/android/settings/notification/NotificationBackend.java
index 68f5d08..9a35695 100644
--- a/src/com/android/settings/notification/NotificationBackend.java
+++ b/src/com/android/settings/notification/NotificationBackend.java
@@ -102,6 +102,7 @@
         row.userId = UserHandle.getUserId(row.uid);
         row.blockedChannelCount = getBlockedChannelCount(row.pkg, row.uid);
         row.channelCount = getChannelCount(row.pkg, row.uid);
+        row.soundTimeout = getNotificationSoundTimeout(row.pkg, row.uid);
         recordAggregatedUsageEvents(context, row);
         return row;
     }
@@ -659,6 +660,25 @@
         sINM = inm;
     }
 
+    public long getNotificationSoundTimeout(String pkg, int uid) {
+        try {
+            return sINM.getNotificationSoundTimeout(pkg, uid);
+        } catch (Exception e) {
+            Log.w(TAG, "Error calling NoMan", e);
+            return 0;
+        }
+    }
+
+    public boolean setNotificationSoundTimeout(String pkg, int uid, long timeout) {
+        try {
+            sINM.setNotificationSoundTimeout(pkg, uid, timeout);
+            return true;
+        } catch (Exception e) {
+            Log.w(TAG, "Error calling NoMan", e);
+            return false;
+        }
+    }
+
     /**
      * NotificationsSentState contains how often an app sends notifications and how recently it sent
      * one.
@@ -692,6 +712,7 @@
         public int userId;
         public int blockedChannelCount;
         public int channelCount;
+        public long soundTimeout;
         public Map<String, NotificationsSentState> sentByChannel;
         public NotificationsSentState sentByApp;
     }
diff --git a/src/com/android/settings/notification/SoundSettings.java b/src/com/android/settings/notification/SoundSettings.java
index 2cc1b1c..6586688 100644
--- a/src/com/android/settings/notification/SoundSettings.java
+++ b/src/com/android/settings/notification/SoundSettings.java
@@ -63,6 +63,8 @@
 
     @VisibleForTesting
     final VolumePreferenceCallback mVolumeCallback = new VolumePreferenceCallback();
+    private final IncreasingRingVolumePreferenceCallback mIncreasingRingVolumeCallback =
+            new IncreasingRingVolumePreferenceCallback();
     @VisibleForTesting
     final Handler mHandler = new Handler(Looper.getMainLooper()) {
         @Override
@@ -70,6 +72,7 @@
             switch (msg.what) {
                 case STOP_SAMPLE:
                     mVolumeCallback.stopSample();
+                    mIncreasingRingVolumeCallback.stopSample();
                     break;
             }
         }
@@ -113,6 +116,7 @@
     public void onPause() {
         super.onPause();
         mVolumeCallback.stopSample();
+        mIncreasingRingVolumeCallback.stopSample();
     }
 
     @Override
@@ -201,6 +205,11 @@
             controller.setCallback(mVolumeCallback);
             getSettingsLifecycle().addObserver(controller);
         }
+
+        IncreasingRingVolumePreferenceController irvpc =
+                use(IncreasingRingVolumePreferenceController.class);
+        irvpc.setCallback(mIncreasingRingVolumeCallback);
+        getLifecycle().addObserver(irvpc);
     }
 
     // === Volumes ===
@@ -210,6 +219,7 @@
 
         @Override
         public void onSampleStarting(SeekBarVolumizer sbv) {
+            mIncreasingRingVolumeCallback.stopSample();
             if (mCurrent != null) {
                 mHandler.removeMessages(STOP_SAMPLE);
                 mHandler.sendEmptyMessageDelayed(STOP_SAMPLE, SAMPLE_CUTOFF);
@@ -240,6 +250,26 @@
         }
     }
 
+    final class IncreasingRingVolumePreferenceCallback implements
+            IncreasingRingVolumePreference.Callback {
+        private IncreasingRingVolumePreference mPlayingPref;
+
+        @Override
+        public void onSampleStarting(IncreasingRingVolumePreference pref) {
+            mPlayingPref = pref;
+            mVolumeCallback.stopSample();
+            mHandler.removeMessages(STOP_SAMPLE);
+            mHandler.sendEmptyMessageDelayed(STOP_SAMPLE, SAMPLE_CUTOFF);
+        }
+
+        public void stopSample() {
+            if (mPlayingPref != null) {
+                mPlayingPref.stopSample();
+                mPlayingPref = null;
+            }
+        }
+    };
+
     private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
             SoundSettings fragment, Lifecycle lifecycle) {
         final List<AbstractPreferenceController> controllers = new ArrayList<>();
@@ -250,6 +280,8 @@
         controllers.add(new PhoneRingtonePreferenceController(context));
         controllers.add(new AlarmRingtonePreferenceController(context));
         controllers.add(new NotificationRingtonePreferenceController(context));
+        controllers.add(new IncreasingRingPreferenceController(context));
+        controllers.add(new IncreasingRingVolumePreferenceController(context));
 
         // === Other Sound Settings ===
         final DialPadTonePreferenceController dialPadTonePreferenceController =
diff --git a/src/com/android/settings/notification/VibrateIconPreferenceController.java b/src/com/android/settings/notification/VibrateIconPreferenceController.java
index d772b47..e538dd1 100644
--- a/src/com/android/settings/notification/VibrateIconPreferenceController.java
+++ b/src/com/android/settings/notification/VibrateIconPreferenceController.java
@@ -40,6 +40,6 @@
 
     @Override
     public boolean isAvailable() {
-        return mHasVibrator;
+        return false;
     }
 }
diff --git a/src/com/android/settings/notification/app/AppNotificationSettings.java b/src/com/android/settings/notification/app/AppNotificationSettings.java
index ebcd261..ff104e9 100644
--- a/src/com/android/settings/notification/app/AppNotificationSettings.java
+++ b/src/com/android/settings/notification/app/AppNotificationSettings.java
@@ -82,6 +82,7 @@
         mControllers.add(new HeaderPreferenceController(context, this));
         mControllers.add(new BlockPreferenceController(context, mDependentFieldListener, mBackend));
         mControllers.add(new BadgePreferenceController(context, mBackend));
+        mControllers.add(new SoundTimeoutPreferenceController(context, mBackend));
         mControllers.add(new AllowSoundPreferenceController(
                 context, mDependentFieldListener, mBackend));
         mControllers.add(new ImportancePreferenceController(
diff --git a/src/com/android/settings/notification/app/SoundTimeoutPreferenceController.java b/src/com/android/settings/notification/app/SoundTimeoutPreferenceController.java
new file mode 100644
index 0000000..1fb9a21
--- /dev/null
+++ b/src/com/android/settings/notification/app/SoundTimeoutPreferenceController.java
@@ -0,0 +1,79 @@
+/*
+ * Copyright (C) 2019 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.app;
+
+import android.content.Context;
+import android.provider.Settings;
+
+import androidx.preference.Preference;
+
+import com.android.settings.RestrictedListPreference;
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.notification.NotificationBackend;
+
+public class SoundTimeoutPreferenceController extends NotificationPreferenceController
+        implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
+
+    private static final String TAG = "SoundTimeoutPreferenceController";
+    private static final String KEY_SOUND_TIMEOUT = "sound_timeout";
+
+    public SoundTimeoutPreferenceController(Context context,
+            NotificationBackend backend) {
+        super(context, backend);
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_SOUND_TIMEOUT;
+    }
+
+    @Override
+    public boolean isAvailable() {
+        if (!super.isAvailable()) {
+            return false;
+        }
+        if (mAppRow == null) {
+            return false;
+        }
+        return true;
+    }
+
+    @Override
+    boolean isIncludedInFilter() {
+        return false;
+    }
+
+    public void updateState(Preference preference) {
+        if (mAppRow != null) {
+            RestrictedListPreference pref = (RestrictedListPreference) preference;
+            pref.setDisabledByAdmin(mAdmin);
+
+            pref.setSummary("%s");
+            pref.setValue(Long.toString(mAppRow.soundTimeout));
+        }
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        if (mAppRow != null) {
+            mAppRow.soundTimeout = Long.valueOf((String) newValue);
+            mBackend.setNotificationSoundTimeout(mAppRow.pkg, mAppRow.uid, mAppRow.soundTimeout);
+        }
+        return true;
+    }
+
+}
diff --git a/src/com/android/settings/password/ChooseLockPattern.java b/src/com/android/settings/password/ChooseLockPattern.java
index c0342d1..e545680 100644
--- a/src/com/android/settings/password/ChooseLockPattern.java
+++ b/src/com/android/settings/password/ChooseLockPattern.java
@@ -105,7 +105,8 @@
         private final Intent mIntent;
 
         public IntentBuilder(Context context) {
-            mIntent = new Intent(context, ChooseLockPattern.class);
+            mIntent = new Intent(context, ChooseLockPatternSize.class);
+            mIntent.putExtra("className", ChooseLockPattern.class.getName());
             mIntent.putExtra(EncryptionInterstitial.EXTRA_REQUIRE_PASSWORD, false);
             mIntent.putExtra(ChooseLockGeneric.CONFIRM_CREDENTIALS, false);
         }
@@ -214,19 +215,14 @@
         protected FooterButton mSkipOrClearButton;
         protected FooterButton mNextButton;
         @VisibleForTesting protected LockscreenCredential mChosenPattern;
+        private byte mPatternSize = LockPatternUtils.PATTERN_SIZE_DEFAULT;
         private ColorStateList mDefaultHeaderColorList;
         private View mSudContent;
 
         /**
          * The patten used during the help screen to show how to draw a pattern.
          */
-        private final List<LockPatternView.Cell> mAnimatePattern =
-                Collections.unmodifiableList(Lists.newArrayList(
-                        LockPatternView.Cell.of(0, 0),
-                        LockPatternView.Cell.of(0, 1),
-                        LockPatternView.Cell.of(1, 1),
-                        LockPatternView.Cell.of(2, 1)
-                ));
+        private List<LockPatternView.Cell> mAnimatePattern;
 
         @Override
         public void onActivityResult(int requestCode, int resultCode,
@@ -276,7 +272,7 @@
                         if (mChosenPattern == null) throw new IllegalStateException(
                                 "null chosen pattern in stage 'need to confirm");
                         try (LockscreenCredential confirmPattern =
-                                LockscreenCredential.createPattern(pattern)) {
+                                LockscreenCredential.createPattern(pattern, mPatternSize)) {
                             if (mChosenPattern.equals(confirmPattern)) {
                                 updateStage(Stage.ChoiceConfirmed);
                             } else {
@@ -287,7 +283,8 @@
                         if (pattern.size() < LockPatternUtils.MIN_LOCK_PATTERN_SIZE) {
                             updateStage(Stage.ChoiceTooShort);
                         } else {
-                            mChosenPattern = LockscreenCredential.createPattern(pattern);
+                            mChosenPattern = LockscreenCredential.createPattern(
+                                    pattern, mPatternSize);
                             updateStage(Stage.FirstChoiceValid);
                         }
                     } else {
@@ -471,7 +468,7 @@
                 w.setBlocking(true);
                 w.setListener(this);
                 w.start(mLockPatternUtils, required, false /* requestGatekeeperPassword */, current,
-                        current, mUserId);
+                        current, mUserId, mPatternSize);
             }
             mForFingerprint = intent.getBooleanExtra(
                     ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT, false);
@@ -546,6 +543,16 @@
             mSudContent.setPadding(mSudContent.getPaddingLeft(), 0, mSudContent.getPaddingRight(),
                     0);
 
+            mPatternSize = getActivity().getIntent().getByteExtra("pattern_size",
+                    LockPatternUtils.PATTERN_SIZE_DEFAULT);
+            LockPatternView.Cell.updateSize(mPatternSize);
+            mAnimatePattern = Collections.unmodifiableList(Lists.newArrayList(
+                    LockPatternView.Cell.of(0, 0, mPatternSize),
+                    LockPatternView.Cell.of(0, 1, mPatternSize),
+                    LockPatternView.Cell.of(1, 1, mPatternSize),
+                    LockPatternView.Cell.of(2, 1, mPatternSize)
+                    ));
+
             return layout;
         }
 
@@ -559,6 +566,8 @@
             mLockPatternView = (LockPatternView) view.findViewById(R.id.lockPattern);
             mLockPatternView.setOnPatternListener(mChooseNewLockPatternListener);
             mLockPatternView.setFadePattern(false);
+            mLockPatternView.setLockPatternUtils(mLockPatternUtils);
+            mLockPatternView.setLockPatternSize(mPatternSize);
 
             mFooterText = (TextView) view.findViewById(R.id.footerText);
 
@@ -602,6 +611,9 @@
                 // restore from previous state
                 mChosenPattern = savedInstanceState.getParcelable(KEY_PATTERN_CHOICE);
                 mCurrentCredential = savedInstanceState.getParcelable(KEY_CURRENT_PATTERN);
+                mLockPatternView.setPattern(DisplayMode.Correct,
+                        LockPatternUtils.byteArrayToPattern(
+                                mChosenPattern.getCredential(), mPatternSize));
 
                 updateStage(Stage.values()[savedInstanceState.getInt(KEY_UI_STAGE)]);
 
@@ -861,7 +873,8 @@
                 }
             }
             mSaveAndFinishWorker.start(mLockPatternUtils, required,
-                    mRequestGatekeeperPassword, mChosenPattern, mCurrentCredential, mUserId);
+                    mRequestGatekeeperPassword, mChosenPattern, mCurrentCredential, mUserId,
+                    mPatternSize);
         }
 
         @Override
@@ -890,16 +903,18 @@
         private LockscreenCredential mChosenPattern;
         private LockscreenCredential mCurrentCredential;
         private boolean mLockVirgin;
+        private byte mPatternSize;
 
         public void start(LockPatternUtils utils, boolean credentialRequired,
                 boolean requestGatekeeperPassword, LockscreenCredential chosenPattern,
-                LockscreenCredential currentCredential, int userId) {
+                LockscreenCredential currentCredential, int userId, byte patternSize) {
             prepare(utils, credentialRequired, requestGatekeeperPassword, userId);
 
             mCurrentCredential = currentCredential != null ? currentCredential
                     : LockscreenCredential.createNone();
             mChosenPattern = chosenPattern;
             mUserId = userId;
+            mPatternSize = patternSize;
 
             mLockVirgin = !mUtils.isPatternEverChosen(mUserId);
 
@@ -909,6 +924,7 @@
         @Override
         protected Pair<Boolean, Intent> saveAndVerifyInBackground() {
             final int userId = mUserId;
+            mUtils.setLockPatternSize(mPatternSize, userId);
             final boolean success = mUtils.setLockCredential(mChosenPattern, mCurrentCredential,
                     userId);
             if (success) {
diff --git a/src/com/android/settings/password/ChooseLockPatternSize.java b/src/com/android/settings/password/ChooseLockPatternSize.java
new file mode 100644
index 0000000..0db35ef
--- /dev/null
+++ b/src/com/android/settings/password/ChooseLockPatternSize.java
@@ -0,0 +1,142 @@
+/*
+ * Copyright (C) 2012-2013 The CyanogenMod Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.password;
+
+import android.content.Intent;
+import android.content.res.Resources.Theme;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.preference.Preference;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.android.internal.widget.LockPatternUtils;
+import com.android.internal.widget.LockscreenCredential;
+import com.android.settings.EncryptionInterstitial;
+import com.android.settings.R;
+import com.android.settings.SettingsActivity;
+import com.android.settings.SetupWizardUtils;
+import com.android.settings.SettingsPreferenceFragment;
+import com.android.settings.utils.SettingsDividerItemDecoration;
+
+import com.google.android.setupdesign.GlifPreferenceLayout;
+
+import org.lineageos.internal.logging.LineageMetricsLogger;
+
+public class ChooseLockPatternSize extends SettingsActivity {
+
+    @Override
+    public Intent getIntent() {
+        Intent modIntent = new Intent(super.getIntent());
+        modIntent.putExtra(EXTRA_SHOW_FRAGMENT, ChooseLockPatternSizeFragment.class.getName());
+        return modIntent;
+    }
+
+    @Override
+    protected void onApplyThemeResource(Theme theme, int resid, boolean first) {
+        resid = SetupWizardUtils.getTheme(this, getIntent());
+        super.onApplyThemeResource(theme, resid, first);
+    }
+
+    @Override
+    protected boolean isValidFragment(String fragmentName) {
+        if (ChooseLockPatternSizeFragment.class.getName().equals(fragmentName)) return true;
+        return false;
+    }
+
+    @Override
+    protected boolean isToolbarEnabled() {
+        return false;
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        findViewById(R.id.content_parent).setFitsSystemWindows(false);
+    }
+
+    public static class ChooseLockPatternSizeFragment extends SettingsPreferenceFragment {
+        @Override
+        public void onCreate(Bundle savedInstanceState) {
+            super.onCreate(savedInstanceState);
+            if (!(getActivity() instanceof ChooseLockPatternSize)) {
+                throw new SecurityException("Fragment contained in wrong activity");
+            }
+            addPreferencesFromResource(R.xml.security_settings_pattern_size);
+        }
+
+        @Override
+        public boolean onPreferenceTreeClick(Preference preference) {
+            final String key = preference.getKey();
+
+            byte patternSize;
+            if ("lock_pattern_size_4".equals(key)) {
+                patternSize = 4;
+            } else if ("lock_pattern_size_5".equals(key)) {
+                patternSize = 5;
+            } else if ("lock_pattern_size_6".equals(key)) {
+                patternSize = 6;
+            } else {
+                patternSize = 3;
+            }
+
+            Bundle extras = getActivity().getIntent().getExtras();
+            Intent intent = new Intent();
+            intent.setClassName(getActivity(), extras.getString("className"));
+            intent.putExtras(extras);
+            intent.putExtra("pattern_size", patternSize);
+            intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
+            startActivity(intent);
+
+            finish();
+            return true;
+        }
+
+        @Override
+        public void onViewCreated(View view, Bundle savedInstanceState) {
+            super.onViewCreated(view, savedInstanceState);
+            GlifPreferenceLayout layout = (GlifPreferenceLayout) view;
+            layout.setDividerItemDecoration(new SettingsDividerItemDecoration(getContext()));
+
+            layout.setIcon(getContext().getDrawable(R.drawable.ic_lock));
+
+            if (getActivity() != null) {
+                getActivity().setTitle(R.string.lock_settings_picker_pattern_size_message);
+            }
+
+            layout.setHeaderText(R.string.lock_settings_picker_pattern_size_message);
+
+            // Use the dividers in SetupWizardRecyclerLayout. Suppress the dividers in
+            // PreferenceFragment.
+            setDivider(null);
+        }
+
+        @Override
+        public RecyclerView onCreateRecyclerView(LayoutInflater inflater, ViewGroup parent,
+                Bundle savedInstanceState) {
+            GlifPreferenceLayout layout = (GlifPreferenceLayout) parent;
+            return layout.onCreateRecyclerView(inflater, parent, savedInstanceState);
+        }
+
+        @Override
+        public int getMetricsCategory() {
+            return LineageMetricsLogger.CHOOSE_LOCK_PATTERN_SIZE;
+        }
+    }
+}
diff --git a/src/com/android/settings/password/ChooseLockSettingsHelper.java b/src/com/android/settings/password/ChooseLockSettingsHelper.java
index e4d52ba..62c470d 100644
--- a/src/com/android/settings/password/ChooseLockSettingsHelper.java
+++ b/src/com/android/settings/password/ChooseLockSettingsHelper.java
@@ -313,7 +313,9 @@
         switch (mLockPatternUtils.getKeyguardStoredPasswordQuality(effectiveUserId)) {
             case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING:
                 launched = launchConfirmationActivity(request, title, header, description,
-                        returnCredentials || forceVerifyPath
+                        userId == LockPatternUtils.USER_FRP
+                                ? ChooseLockPatternSize.class
+                                : returnCredentials || forceVerifyPath
                                 ? ConfirmLockPattern.InternalActivity.class
                                 : ConfirmLockPattern.class, returnCredentials, external,
                                 forceVerifyPath, userId, alternateButton, allowAnyUser,
@@ -362,6 +364,9 @@
         intent.setClassName(SETTINGS_PACKAGE_NAME, activityClass.getName());
         intent.putExtra(SettingsBaseActivity.EXTRA_PAGE_TRANSITION_TYPE,
                 SettingsTransitionHelper.TransitionType.TRANSITION_SLIDE);
+        if (userId == LockPatternUtils.USER_FRP) {
+            intent.putExtra("className", ConfirmLockPattern.class.getName());
+        }
 
         Intent inIntent = mFragment != null ? mFragment.getActivity().getIntent() :
                 mActivity.getIntent();
diff --git a/src/com/android/settings/password/ConfirmLockPattern.java b/src/com/android/settings/password/ConfirmLockPattern.java
index b4f0aa3..be39e70 100644
--- a/src/com/android/settings/password/ConfirmLockPattern.java
+++ b/src/com/android/settings/password/ConfirmLockPattern.java
@@ -110,6 +110,7 @@
         private DisappearAnimationUtils mDisappearAnimationUtils;
 
         private boolean mIsManagedProfile;
+        private byte mPatternSize;
 
         // required constructor for fragments
         public ConfirmLockPatternFragment() {
@@ -135,6 +136,7 @@
             mSudContent.setPadding(mSudContent.getPaddingLeft(), 0, mSudContent.getPaddingRight(),
                     0);
             mIsManagedProfile = UserManager.get(getActivity()).isManagedProfile(mEffectiveUserId);
+            mPatternSize = mLockPatternUtils.getLockPatternSize(mEffectiveUserId);
 
             // make it so unhandled touch events within the unlock screen go to the
             // lock pattern view.
@@ -148,6 +150,7 @@
                         ConfirmDeviceCredentialBaseFragment.HEADER_TEXT);
                 mDetailsText = intent.getCharSequenceExtra(
                         ConfirmDeviceCredentialBaseFragment.DETAILS_TEXT);
+                mPatternSize = intent.getByteExtra("pattern_size", mPatternSize);
             }
             if (TextUtils.isEmpty(mHeaderText) && mIsManagedProfile) {
                 mHeaderText = mDevicePolicyManager.getOrganizationNameForUser(mUserId);
@@ -155,6 +158,7 @@
 
             mLockPatternView.setInStealthMode(!mLockPatternUtils.isVisiblePatternEnabled(
                     mEffectiveUserId));
+            mLockPatternView.setLockPatternSize(mPatternSize);
             mLockPatternView.setOnPatternListener(mConfirmExistingLockPatternListener);
             mLockPatternView.setOnTouchListener((v, event) -> {
                 if (event.getAction() == MotionEvent.ACTION_DOWN) {
@@ -452,7 +456,8 @@
 
                 mLockPatternView.setEnabled(false);
 
-                final LockscreenCredential credential = LockscreenCredential.createPattern(pattern);
+                final LockscreenCredential credential = LockscreenCredential.createPattern(pattern,
+                        mPatternSize);
                 // TODO(b/161956762): Sanitize this
                 Intent intent = new Intent();
                 if (mReturnGatekeeperPassword) {
diff --git a/src/com/android/settings/password/SetupChooseLockPattern.java b/src/com/android/settings/password/SetupChooseLockPattern.java
index 09ecda4..8a60faf 100644
--- a/src/com/android/settings/password/SetupChooseLockPattern.java
+++ b/src/com/android/settings/password/SetupChooseLockPattern.java
@@ -42,7 +42,8 @@
 public class SetupChooseLockPattern extends ChooseLockPattern {
 
     public static Intent modifyIntentForSetup(Context context, Intent chooseLockPatternIntent) {
-        chooseLockPatternIntent.setClass(context, SetupChooseLockPattern.class);
+        chooseLockPatternIntent.setClass(context, ChooseLockPatternSize.class);
+        chooseLockPatternIntent.putExtra("className", SetupChooseLockPattern.class.getName());
         return chooseLockPatternIntent;
     }
 
diff --git a/src/com/android/settings/security/LockscreenDashboardFragment.java b/src/com/android/settings/security/LockscreenDashboardFragment.java
index 2e4a1f2..cbd7edf 100644
--- a/src/com/android/settings/security/LockscreenDashboardFragment.java
+++ b/src/com/android/settings/security/LockscreenDashboardFragment.java
@@ -37,6 +37,7 @@
 import com.android.settings.display.AmbientDisplayNotificationsPreferenceController;
 import com.android.settings.gestures.DoubleTapScreenPreferenceController;
 import com.android.settings.gestures.PickupGesturePreferenceController;
+import com.android.settings.gestures.ScreenOffUdfpsPreferenceController;
 import com.android.settings.notification.LockScreenNotificationPreferenceController;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.security.screenlock.LockScreenPreferenceController;
@@ -113,6 +114,7 @@
         use(AmbientDisplayNotificationsPreferenceController.class).setConfig(getConfig(context));
         use(DoubleTapScreenPreferenceController.class).setConfig(getConfig(context));
         use(PickupGesturePreferenceController.class).setConfig(getConfig(context));
+        use(ScreenOffUdfpsPreferenceController.class).setConfig(getConfig(context));
 
         mControlsContentObserver = new ContentObserver(
                 new Handler(Looper.getMainLooper())) {
diff --git a/src/com/android/settings/security/screenlock/AbstractPatternSwitchPreferenceController.java b/src/com/android/settings/security/screenlock/AbstractPatternSwitchPreferenceController.java
new file mode 100644
index 0000000..e2102aa
--- /dev/null
+++ b/src/com/android/settings/security/screenlock/AbstractPatternSwitchPreferenceController.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.security.screenlock;
+
+import android.content.Context;
+
+import androidx.preference.Preference;
+import androidx.preference.TwoStatePreference;
+
+import com.android.internal.widget.LockPatternUtils;
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.core.AbstractPreferenceController;
+
+public abstract class AbstractPatternSwitchPreferenceController
+        extends AbstractPreferenceController
+        implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
+
+    private final String mKey;
+    private final int mUserId;
+    private final LockPatternUtils mLockPatternUtils;
+
+    public AbstractPatternSwitchPreferenceController(Context context, String key,
+            int userId, LockPatternUtils lockPatternUtils) {
+        super(context);
+        mKey = key;
+        mUserId = userId;
+        mLockPatternUtils = lockPatternUtils;
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return isPatternLock();
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return mKey;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        ((TwoStatePreference) preference).setChecked(isEnabled(mLockPatternUtils, mUserId));
+    }
+
+    private boolean isPatternLock() {
+        return mLockPatternUtils.getCredentialTypeForUser(mUserId)
+                == LockPatternUtils.CREDENTIAL_TYPE_PATTERN;
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        setEnabled(mLockPatternUtils, mUserId, (Boolean) newValue);
+        return true;
+    }
+
+    protected abstract boolean isEnabled(LockPatternUtils utils, int userId);
+    protected abstract void setEnabled(LockPatternUtils utils, int userId, boolean enabled);
+}
diff --git a/src/com/android/settings/security/screenlock/PatternDotsVisiblePreferenceController.java b/src/com/android/settings/security/screenlock/PatternDotsVisiblePreferenceController.java
new file mode 100644
index 0000000..8da044d
--- /dev/null
+++ b/src/com/android/settings/security/screenlock/PatternDotsVisiblePreferenceController.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.security.screenlock;
+
+import android.content.Context;
+
+import com.android.internal.widget.LockPatternUtils;
+
+public class PatternDotsVisiblePreferenceController
+        extends AbstractPatternSwitchPreferenceController {
+    private static final String PREF_KEY = "visibledots";
+
+    public PatternDotsVisiblePreferenceController(Context context, int userId,
+            LockPatternUtils lockPatternUtils) {
+        super(context, PREF_KEY, userId, lockPatternUtils);
+    }
+
+    @Override
+    protected boolean isEnabled(LockPatternUtils utils, int userId) {
+        return utils.isVisibleDotsEnabled(userId);
+    }
+
+    @Override
+    protected void setEnabled(LockPatternUtils utils, int userId, boolean enabled) {
+        utils.setVisibleDotsEnabled(enabled, userId);
+    }
+}
diff --git a/src/com/android/settings/security/screenlock/PatternErrorVisiblePreferenceController.java b/src/com/android/settings/security/screenlock/PatternErrorVisiblePreferenceController.java
new file mode 100644
index 0000000..b9a18c1
--- /dev/null
+++ b/src/com/android/settings/security/screenlock/PatternErrorVisiblePreferenceController.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.security.screenlock;
+
+import android.content.Context;
+
+import com.android.internal.widget.LockPatternUtils;
+
+public class PatternErrorVisiblePreferenceController
+        extends AbstractPatternSwitchPreferenceController {
+    private static final String PREF_KEY = "visible_error_pattern";
+
+    public PatternErrorVisiblePreferenceController(Context context, int userId,
+            LockPatternUtils lockPatternUtils) {
+        super(context, PREF_KEY, userId, lockPatternUtils);
+    }
+
+    @Override
+    protected boolean isEnabled(LockPatternUtils utils, int userId) {
+        return utils.isShowErrorPath(userId);
+    }
+
+    @Override
+    protected void setEnabled(LockPatternUtils utils, int userId, boolean enabled) {
+        utils.setShowErrorPath(enabled, userId);
+    }
+}
diff --git a/src/com/android/settings/security/screenlock/PatternVisiblePreferenceController.java b/src/com/android/settings/security/screenlock/PatternVisiblePreferenceController.java
index ea3403b..2f8b641 100644
--- a/src/com/android/settings/security/screenlock/PatternVisiblePreferenceController.java
+++ b/src/com/android/settings/security/screenlock/PatternVisiblePreferenceController.java
@@ -18,52 +18,23 @@
 
 import android.content.Context;
 
-import androidx.preference.Preference;
-import androidx.preference.TwoStatePreference;
-
 import com.android.internal.widget.LockPatternUtils;
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settingslib.core.AbstractPreferenceController;
 
-public class PatternVisiblePreferenceController extends AbstractPreferenceController
-        implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
-
+public class PatternVisiblePreferenceController extends AbstractPatternSwitchPreferenceController {
     private static final String PREF_KEY = "visiblepattern";
 
-    private final int mUserId;
-    private final LockPatternUtils mLockPatternUtils;
-
     public PatternVisiblePreferenceController(Context context, int userId,
             LockPatternUtils lockPatternUtils) {
-        super(context);
-        mUserId = userId;
-        mLockPatternUtils = lockPatternUtils;
+        super(context, PREF_KEY, userId, lockPatternUtils);
     }
 
     @Override
-    public boolean isAvailable() {
-        return isPatternLock();
+    protected boolean isEnabled(LockPatternUtils utils, int userId) {
+        return utils.isVisiblePatternEnabled(userId);
     }
 
     @Override
-    public String getPreferenceKey() {
-        return PREF_KEY;
-    }
-
-    @Override
-    public void updateState(Preference preference) {
-        ((TwoStatePreference) preference).setChecked(
-                mLockPatternUtils.isVisiblePatternEnabled(mUserId));
-    }
-
-    private boolean isPatternLock() {
-        return mLockPatternUtils.getCredentialTypeForUser(mUserId)
-                == LockPatternUtils.CREDENTIAL_TYPE_PATTERN;
-    }
-
-    @Override
-    public boolean onPreferenceChange(Preference preference, Object newValue) {
-        mLockPatternUtils.setVisiblePatternEnabled((Boolean) newValue, mUserId);
-        return true;
+    protected void setEnabled(LockPatternUtils utils, int userId, boolean enabled) {
+        utils.setVisiblePatternEnabled(enabled, userId);
     }
 }
diff --git a/src/com/android/settings/security/screenlock/PinScramblePreferenceController.java b/src/com/android/settings/security/screenlock/PinScramblePreferenceController.java
new file mode 100644
index 0000000..6d7ae8a
--- /dev/null
+++ b/src/com/android/settings/security/screenlock/PinScramblePreferenceController.java
@@ -0,0 +1,78 @@
+/*
+ * Copyright (C) 2018 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.security.screenlock;
+
+import android.app.admin.DevicePolicyManager;
+import android.content.Context;
+import androidx.preference.Preference;
+import androidx.preference.TwoStatePreference;
+
+import com.android.internal.widget.LockPatternUtils;
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.core.AbstractPreferenceController;
+
+import lineageos.providers.LineageSettings;
+
+public class PinScramblePreferenceController extends AbstractPreferenceController
+        implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
+
+    static final String KEY_LOCKSCREEN_SCRAMBLE_PIN_LAYOUT = "lockscreen_scramble_pin_layout";
+
+    private final int mUserId;
+    private final LockPatternUtils mLockPatternUtils;
+
+    public PinScramblePreferenceController(Context context, int userId,
+            LockPatternUtils lockPatternUtils) {
+        super(context);
+        mUserId = userId;
+        mLockPatternUtils = lockPatternUtils;
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return isPinLock();
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_LOCKSCREEN_SCRAMBLE_PIN_LAYOUT;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        ((TwoStatePreference) preference).setChecked(LineageSettings.System.getInt(
+                mContext.getContentResolver(),
+                LineageSettings.System.LOCKSCREEN_PIN_SCRAMBLE_LAYOUT,
+                0) == 1);
+    }
+
+    private boolean isPinLock() {
+        int quality = mLockPatternUtils.getKeyguardStoredPasswordQuality(mUserId);
+        boolean hasPin = quality == DevicePolicyManager.PASSWORD_QUALITY_NUMERIC ||
+                quality == DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX;
+        return mLockPatternUtils.isSecure(mUserId) && hasPin;
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        LineageSettings.System.putInt(
+                mContext.getContentResolver(),
+                LineageSettings.System.LOCKSCREEN_PIN_SCRAMBLE_LAYOUT,
+                (Boolean) newValue ? 1 : 0);
+        return true;
+    }
+}
diff --git a/src/com/android/settings/security/screenlock/ScreenLockSettings.java b/src/com/android/settings/security/screenlock/ScreenLockSettings.java
index 8c9dacb..ec6f91f 100644
--- a/src/com/android/settings/security/screenlock/ScreenLockSettings.java
+++ b/src/com/android/settings/security/screenlock/ScreenLockSettings.java
@@ -72,12 +72,18 @@
         final List<AbstractPreferenceController> controllers = new ArrayList<>();
         controllers.add(new PatternVisiblePreferenceController(
                 context, MY_USER_ID, lockPatternUtils));
+        controllers.add(new PatternErrorVisiblePreferenceController(
+                context, MY_USER_ID, lockPatternUtils));
+        controllers.add(new PatternDotsVisiblePreferenceController(
+                context, MY_USER_ID, lockPatternUtils));
         controllers.add(new PinPrivacyPreferenceController(
                 context, MY_USER_ID, lockPatternUtils));
         controllers.add(new PowerButtonInstantLockPreferenceController(
                 context, MY_USER_ID, lockPatternUtils));
         controllers.add(new LockAfterTimeoutPreferenceController(
                 context, MY_USER_ID, lockPatternUtils));
+        controllers.add(new PinScramblePreferenceController(
+                context, MY_USER_ID, lockPatternUtils));
         controllers.add(new OwnerInfoPreferenceController(context, parent));
         return controllers;
     }
diff --git a/src/com/android/settings/shortcut/CreateShortcutPreferenceController.java b/src/com/android/settings/shortcut/CreateShortcutPreferenceController.java
index 89ee19b..17f3fe5 100644
--- a/src/com/android/settings/shortcut/CreateShortcutPreferenceController.java
+++ b/src/com/android/settings/shortcut/CreateShortcutPreferenceController.java
@@ -152,7 +152,7 @@
             intent = new Intent();
         }
         intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
-                Intent.ShortcutIconResource.fromContext(mContext, R.mipmap.ic_launcher_settings))
+                Intent.ShortcutIconResource.fromContext(mContext, R.drawable.ic_launcher_settings))
                 .putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent)
                 .putExtra(Intent.EXTRA_SHORTCUT_NAME, label);
 
diff --git a/src/com/android/settings/vpn2/ConfigDialog.java b/src/com/android/settings/vpn2/ConfigDialog.java
index bf0dfc9..5657416 100644
--- a/src/com/android/settings/vpn2/ConfigDialog.java
+++ b/src/com/android/settings/vpn2/ConfigDialog.java
@@ -524,25 +524,7 @@
                 PackageManager.FEATURE_IPSEC_TUNNELS)) {
             Log.wtf(TAG, "FEATURE_IPSEC_TUNNELS missing from system");
         }
-        // If the vpn is new or is not already a legacy type,
-        // don't allow the user to set the type to a legacy option.
 
-        // Set the mProfile.type to TYPE_IKEV2_IPSEC_USER_PASS if the VPN not exist
-        if (!mExists) {
-            mProfile.type = VpnProfile.TYPE_IKEV2_IPSEC_USER_PASS;
-        }
-
-        // Remove all types which are legacy types from the typesList
-        if (!VpnProfile.isLegacyType(mProfile.type)) {
-            for (int i = mAllowedTypes.size() - 1; i >= 0; i--) {
-                // This must be removed from back to front in order to ensure index consistency
-                if (VpnProfile.isLegacyType(i)) {
-                    mAllowedTypes.remove(i);
-                }
-            }
-
-            types = mAllowedTypes.toArray(new String[0]);
-        }
         final ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                 getContext(), android.R.layout.simple_spinner_item, types);
         adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
diff --git a/src/com/android/settings/wifi/WifiConfigController2.java b/src/com/android/settings/wifi/WifiConfigController2.java
index e55ea16..ab13405 100644
--- a/src/com/android/settings/wifi/WifiConfigController2.java
+++ b/src/com/android/settings/wifi/WifiConfigController2.java
@@ -315,7 +315,7 @@
                         : NOT_HIDDEN_NETWORK);
 
                 final int prefMacValue = WifiPrivacyPreferenceController2
-                        .translateMacRandomizedValueToPrefValue(config.macRandomizationSetting);
+                        .translateMacRandomizedValueToPrefValue(mWifiEntry.getPrivacy());
                 mPrivacySettingsSpinner.setSelection(prefMacValue);
 
                 if (config.getIpConfiguration().getIpAssignment() == IpAssignment.STATIC) {
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderControllerTest.java
deleted file mode 100644
index 280b8d4..0000000
--- a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderControllerTest.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.connecteddevice.usb;
-
-import static android.hardware.usb.UsbPortStatus.DATA_ROLE_DEVICE;
-import static android.hardware.usb.UsbPortStatus.POWER_ROLE_SINK;
-
-import static org.mockito.ArgumentMatchers.argThat;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-import android.hardware.usb.UsbManager;
-import android.hardware.usb.UsbPort;
-
-import androidx.fragment.app.FragmentActivity;
-import androidx.lifecycle.LifecycleOwner;
-import androidx.preference.PreferenceManager;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.R;
-import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
-import com.android.settings.widget.EntityHeaderController;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-import com.android.settingslib.testutils.DrawableTestHelper;
-import com.android.settingslib.widget.LayoutPreference;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Answers;
-import org.mockito.ArgumentMatcher;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
-
-@RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowEntityHeaderController.class)
-public class UsbDetailsHeaderControllerTest {
-
-    private UsbDetailsHeaderController mDetailsHeaderController;
-    private Context mContext;
-    private Lifecycle mLifecycle;
-    private LifecycleOwner mLifecycleOwner;
-    private LayoutPreference mPreference;
-    private PreferenceManager mPreferenceManager;
-    private PreferenceScreen mScreen;
-
-    @Mock
-    private UsbBackend mUsbBackend;
-    @Mock
-    private UsbDetailsFragment mFragment;
-    @Mock
-    private FragmentActivity mActivity;
-    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
-    private EntityHeaderController mHeaderController;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-
-        mContext = RuntimeEnvironment.application;
-        mLifecycleOwner = () -> mLifecycle;
-        mLifecycle = new Lifecycle(mLifecycleOwner);
-        mPreferenceManager = new PreferenceManager(mContext);
-        mScreen = mPreferenceManager.createPreferenceScreen(mContext);
-
-        when(mFragment.getActivity()).thenReturn(mActivity);
-        when(mActivity.getApplicationContext()).thenReturn(mContext);
-        when(mFragment.getContext()).thenReturn(mContext);
-        when(mFragment.getPreferenceManager()).thenReturn(mPreferenceManager);
-        when(mFragment.getPreferenceScreen()).thenReturn(mScreen);
-
-        ShadowEntityHeaderController.setUseMock(mHeaderController);
-        mDetailsHeaderController = new UsbDetailsHeaderController(mContext, mFragment, mUsbBackend);
-        mPreference = new LayoutPreference(mContext, R.layout.settings_entity_header);
-        mPreference.setKey(mDetailsHeaderController.getPreferenceKey());
-        mScreen.addPreference(mPreference);
-    }
-
-    @After
-    public void tearDown() {
-        ShadowEntityHeaderController.reset();
-    }
-
-    @Test
-    public void displayRefresh_charging_shouldSetHeader() {
-        mDetailsHeaderController.displayPreference(mScreen);
-        mDetailsHeaderController.refresh(true, UsbManager.FUNCTION_NONE, POWER_ROLE_SINK,
-                DATA_ROLE_DEVICE);
-        verify(mHeaderController).setLabel(mContext.getString(R.string.usb_pref));
-        verify(mHeaderController).setIcon(argThat((ArgumentMatcher<Drawable>) t -> {
-            DrawableTestHelper.assertDrawableResId(t, R.drawable.ic_usb);
-            return true;
-        }));
-        verify(mHeaderController).done(mActivity, true);
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java
index 057b6cb..285c102 100644
--- a/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java
@@ -179,8 +179,8 @@
     }
 
     @Test
-    public void getAvailabilityStatus_disabledForGuestUser() {
-        doReturn(true).when(mUserManager).isGuestUser();
+    public void getAvailabilityStatus_disabledForNonAdminUser() {
+        doReturn(false).when(mUserManager).isAdminUser();
         assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_FOR_USER);
     }
 
