diff --git a/Core/Localization/Resources/ar.lproj/Localizable.strings b/Core/Localization/Resources/ar.lproj/Localizable.strings
index 2153d6d2..b0d62a00 100644
--- a/Core/Localization/Resources/ar.lproj/Localizable.strings
+++ b/Core/Localization/Resources/ar.lproj/Localizable.strings
@@ -7,16 +7,12 @@
 
 // MARK: - Errors
 
-"error.title" = "خطأ";
-"NetworkError_ConnectionLost" = "فقد الإتصال بشبكة الإنترنت. من فضلك تحرك إلى مكان به إشارة أفضل.";
-"NetworkError_InternationalRoamingOff" = "لا يسمح باستخدام التجوال الدولي. من فضلك قم بتغيير إعدادات خدمة التجوال الدولي، أو إتصل بالإنترنت عن طريق Wi-Fi.";
-"NetworkError_NotConnectedToInternet" = "لا يوجد إتصال بشبكة الإنترنت. من فضلك قم بتشغيل Wi-Fi، أو السماح باتصال البيانات الخلوية.";
-"NetworkError_ServerNotReachable" = "عفوا. حدث خطأ، حاول مرة اخرى.";
-"unknown_error_message" = "عفوا. حدث خطأ، حاول مرة اخرى.";
-"NetworkError_Parsing" = "عفوا. حدث خطأ، حاول مرة اخرى.";
-
-"FileSystemError_Unknown" = "عفوا. حدث خطأ، حاول مرة اخرى.";
-"FileSystemError_NoDiskSpace" = "لا توجد مساحة كافيه في ذاكرة الهاتف لحفظ التنزيلات.";
+"error.dialog.title" = "خطأ";
+"error.message.connection_lost" = "فقد الإتصال بشبكة الإنترنت. من فضلك تحرك إلى مكان به إشارة أفضل.";
+"error.message.international_roaming_off" = "لا يسمح باستخدام التجوال الدولي. من فضلك قم بتغيير إعدادات خدمة التجوال الدولي، أو إتصل بالإنترنت عن طريق Wi-Fi.";
+"error.message.not_connected_to_internet" = "لا يوجد إتصال بشبكة الإنترنت. من فضلك قم بتشغيل Wi-Fi، أو السماح باتصال البيانات الخلوية.";
+"error.message.general" = "عفوا. حدث خطأ، حاول مرة اخرى.";
+"error.message.no_disk_space" = "لا توجد مساحة كافيه في ذاكرة الهاتف لحفظ التنزيلات.";
 
 // MARK: - Quran
 
@@ -25,33 +21,28 @@
 
 // MARK: - Translation
 
-"translationTextType" = "الترجمة إلى الإنجليزية";
-"transliterationTextType" = "نسخ الحروف للإنجليزية";
-
-"translations.selectedTranslations" = "المختار";
-
-"translatorLabel: " = "المفسر: ";
-"upgradeTranslationButtonTitle" = "تحديث";
-
-"errorInTranslationText" = "عفوا. حدث خطأ، حاول مرة اخرى.";
-"noAvailableTranslationText" = "لا توجد ترجمة متاحة لهذه الآية.";
-"referenceVerseTranslationText" = "انظر آية رقم %d.";
-
-"ayah.text.read-more" = "اقرأ المزيد";
+"translation.text-type.translation" = "الترجمة إلى الإنجليزية";
+"translation.text-type.transliteration" = "نسخ الحروف للإنجليزية";
+"translation.selectedTranslations" = "المختار";
+"translation.translator" = "المفسر: ";
+"translation.text.see-referenced-verse" = "انظر آية رقم %d.";
+"translation.text.read-more" = "اقرأ المزيد";
+"error.translation.text-retrieval" = "عفوا. حدث خطأ، حاول مرة اخرى.";
+"error.translation.text-not-available" = "لا توجد ترجمة متاحة لهذه الآية.";
 
 // MARK: - Search
 
-"searchRecentsTitle" = "عمليات البحث الأخيرة";
-"searchPopularTitle" = "اختبر البحث بإستخدام";
-"searchPlaceholder" = "سور أو آيات أو تفاسير أو ترجمات أو الأرقام";
-"searchResultTitle" = "(%2$d) %1$@";
+"search.recents.title" = "عمليات البحث الأخيرة";
+"search.popular.title" = "اختبر البحث بإستخدام";
+"search.placeholder.text" = "سور أو آيات أو تفاسير أو ترجمات أو الأرقام";
+"search.result.count" = "(%2$d) %1$@";
 
 // MARK: - Settings
 
-"write_review" = "قيم التطبيق على المتجر الالكتروني‎...";
-"contact_us" = "اتصل بنا";
-"share_app" = "مشاركة التطبيق...";
-"app_version" = "نسخة التطبيق";
+"setting.write_review" = "قيم التطبيق على المتجر الالكتروني‎...";
+"setting.contact_us" = "اتصل بنا";
+"setting.share_app" = "مشاركة التطبيق...";
+"setting.app_version" = "نسخة التطبيق";
 
 // MARK: - Quran Menu
 
@@ -66,7 +57,8 @@
 "menu.twoPages" = "عرض صفحتين في الوضع الأفقي";
 "menu.verticalScrolling" = "تمرير رأسي";
 
-// Theme
+// MARK: - Theme
+
 "theme.light" = "فاتح";
 "theme.dark" = "داكن";
 "theme.auto" = "تلقائي";
diff --git a/Core/Localization/Resources/de.lproj/Localizable.strings b/Core/Localization/Resources/de.lproj/Localizable.strings
index 2a26a4bd..6a1a005b 100644
--- a/Core/Localization/Resources/de.lproj/Localizable.strings
+++ b/Core/Localization/Resources/de.lproj/Localizable.strings
@@ -6,17 +6,12 @@
 // MARK: - Errors
 
 
-
 // MARK: - Quran
 
 
 // MARK: - Translation
 
 
-
-
-
-
 // MARK: - Search
 
 
@@ -26,7 +21,8 @@
 // MARK: - Quran Menu
 
 
-// Theme
+// MARK: - Theme
+
 
 // MARK: - Tabs
 
diff --git a/Core/Localization/Resources/en.lproj/Localizable.strings b/Core/Localization/Resources/en.lproj/Localizable.strings
index 78535323..40a9a7f7 100644
--- a/Core/Localization/Resources/en.lproj/Localizable.strings
+++ b/Core/Localization/Resources/en.lproj/Localizable.strings
@@ -10,16 +10,12 @@
 
 // MARK: - Errors
 
-"error.title" = "Error";
-"NetworkError_ConnectionLost" = "Internet connection is lost. Move to a location where more stable connection is available, or wait until the connection returns to be stable.";
-"NetworkError_InternationalRoamingOff" = "International roaming is not allowed. Change the international roaming setting, or turn on Wi-Fi.";
-"NetworkError_NotConnectedToInternet" = "Not connected to the internet. Turn on Wi-Fi, or allow cellular data connection.";
-"NetworkError_ServerNotReachable" = "Oops! Something went wrong. Please try again.";
-"unknown_error_message" = "Oops! Something went wrong. Please try again.";
-"NetworkError_Parsing" = "Oops! Something went wrong. Please try again.";
-
-"FileSystemError_Unknown" = "Oops! Something went wrong. Please try again.";
-"FileSystemError_NoDiskSpace" = "No available disk space to save the downloads";
+"error.dialog.title" = "Error";
+"error.message.connection_lost" = "Internet connection is lost. Move to a location where more stable connection is available, or wait until the connection returns to be stable.";
+"error.message.international_roaming_off" = "International roaming is not allowed. Change the international roaming setting, or turn on Wi-Fi.";
+"error.message.not_connected_to_internet" = "Not connected to the internet. Turn on Wi-Fi, or allow cellular data connection.";
+"error.message.general" = "Oops! Something went wrong. Please try again.";
+"error.message.no_disk_space" = "No available disk space to save the downloads.";
 
 // MARK: - Quran
 
@@ -28,33 +24,28 @@
 
 // MARK: - Translation
 
-"translationTextType" = "Translation";
-"transliterationTextType" = "Transliteration";
-
-"translations.selectedTranslations" = "Selected";
-
-"translatorLabel: " = "Translator: ";
-"upgradeTranslationButtonTitle" = "UPDATE";
-
-"errorInTranslationText" = "Oops! Something went wrong. We couldn't retrieve the translation.";
-"noAvailableTranslationText" = "No translation available for this Ayah.";
-"referenceVerseTranslationText" = "See ayah %d.";
-
-"ayah.text.read-more" = "Read more";
+"translation.text-type.translation" = "Translation";
+"translation.text-type.transliteration" = "Transliteration";
+"translation.selectedTranslations" = "Selected";
+"translation.translator" = "Translator: ";
+"translation.text.see-referenced-verse" = "See ayah %d.";
+"translation.text.read-more" = "Read more";
+"error.translation.text-retrieval" = "Oops! Something went wrong. We couldn't retrieve the translation.";
+"error.translation.text-not-available" = "No translation available for this Ayah.";
 
 // MARK: - Search
 
-"searchRecentsTitle" = "Recent searches";
-"searchPopularTitle" = "Try searching with";
-"searchPlaceholder" = "Surah, verse, translation, tafseer, and numbers";
-"searchResultTitle" = "%@ (%d)";
+"search.recents.title" = "Recent searches";
+"search.popular.title" = "Try searching with";
+"search.placeholder.text" = "Surah, verse, translation, tafseer, and numbers";
+"search.result.count" = "%@ (%d)";
 
 // MARK: - Settings
 
-"write_review" = "Write an app store review...";
-"contact_us" = "Contact Us";
-"share_app" = "Share the app...";
-"app_version" = "App Version";
+"setting.write_review" = "Write an app store review...";
+"setting.contact_us" = "Contact Us";
+"setting.share_app" = "Share the app...";
+"setting.app_version" = "App Version";
 
 // MARK: - Quran Menu
 
@@ -69,7 +60,8 @@
 "menu.twoPages" = "2 pages side-by-side (in landscape)";
 "menu.verticalScrolling" = "Vertical scrolling";
 
-// Theme
+// MARK: - Theme
+
 "theme.light" = "Light";
 "theme.dark" = "Dark";
 "theme.auto" = "Auto";
diff --git a/Core/Localization/Resources/es.lproj/Localizable.strings b/Core/Localization/Resources/es.lproj/Localizable.strings
index c4a6d16b..981770eb 100644
--- a/Core/Localization/Resources/es.lproj/Localizable.strings
+++ b/Core/Localization/Resources/es.lproj/Localizable.strings
@@ -6,17 +6,12 @@
 // MARK: - Errors
 
 
-
 // MARK: - Quran
 
 
 // MARK: - Translation
 
 
-
-
-
-
 // MARK: - Search
 
 
@@ -26,7 +21,8 @@
 // MARK: - Quran Menu
 
 
-// Theme
+// MARK: - Theme
+
 
 // MARK: - Tabs
 
diff --git a/Core/Localization/Resources/fa.lproj/Localizable.strings b/Core/Localization/Resources/fa.lproj/Localizable.strings
index c6349de5..e687889b 100644
--- a/Core/Localization/Resources/fa.lproj/Localizable.strings
+++ b/Core/Localization/Resources/fa.lproj/Localizable.strings
@@ -6,17 +6,12 @@
 // MARK: - Errors
 
 
-
 // MARK: - Quran
 
 
 // MARK: - Translation
 
 
-
-
-
-
 // MARK: - Search
 
 
@@ -26,7 +21,8 @@
 // MARK: - Quran Menu
 
 
-// Theme
+// MARK: - Theme
+
 
 // MARK: - Tabs
 
diff --git a/Core/Localization/Resources/fr.lproj/Localizable.strings b/Core/Localization/Resources/fr.lproj/Localizable.strings
index db476f74..c4f97cc7 100644
--- a/Core/Localization/Resources/fr.lproj/Localizable.strings
+++ b/Core/Localization/Resources/fr.lproj/Localizable.strings
@@ -6,17 +6,12 @@
 // MARK: - Errors
 
 
-
 // MARK: - Quran
 
 
 // MARK: - Translation
 
 
-
-
-
-
 // MARK: - Search
 
 
@@ -26,7 +21,8 @@
 // MARK: - Quran Menu
 
 
-// Theme
+// MARK: - Theme
+
 
 // MARK: - Tabs
 
diff --git a/Core/Localization/Resources/kk.lproj/Localizable.strings b/Core/Localization/Resources/kk.lproj/Localizable.strings
index f49c6b76..382fdf91 100644
--- a/Core/Localization/Resources/kk.lproj/Localizable.strings
+++ b/Core/Localization/Resources/kk.lproj/Localizable.strings
@@ -6,17 +6,12 @@
 // MARK: - Errors
 
 
-
 // MARK: - Quran
 
 
 // MARK: - Translation
 
 
-
-
-
-
 // MARK: - Search
 
 
@@ -26,7 +21,8 @@
 // MARK: - Quran Menu
 
 
-// Theme
+// MARK: - Theme
+
 
 // MARK: - Tabs
 
diff --git a/Core/Localization/Resources/ms.lproj/Localizable.strings b/Core/Localization/Resources/ms.lproj/Localizable.strings
index 47334768..a3bd586e 100644
--- a/Core/Localization/Resources/ms.lproj/Localizable.strings
+++ b/Core/Localization/Resources/ms.lproj/Localizable.strings
@@ -8,42 +8,33 @@
 
 // MARK: - Errors
 
-"NetworkError_ConnectionLost" = "Tiada sambungan internet. Ubah ke lokasi yang mempunyai internet yang stabil atau tunggu sehingga sambungan internet menjadi lebih stabil.";
-"NetworkError_InternationalRoamingOff" = "Perayauan antarabangsa tidak dibenarkan. Ubah tetapan perayauan atau hidupkan Wi-Fi anda.";
-"NetworkError_NotConnectedToInternet" = "Tiada sambungan internet. Hidupkan Wi-Fi atau hidupkan sambungan data selular.";
-"NetworkError_ServerNotReachable" = "Maaf! sesuatu yang tidak diingini terjadi. Sila cuba lagi.";
-"unknown_error_message" = "Maaf! sesuatu yang tidak diingini terjadi. Sila cuba lagi.";
-"NetworkError_Parsing" = "Maaf! sesuatu yang tidak diingini terjadi. Sila cuba lagi.";
-
-"FileSystemError_Unknown" = "Maaf! sesuatu yang tidak diingini terjadi. Sila cuba lagi.";
-"FileSystemError_NoDiskSpace" = "Ruang storan tidak mencukupi untuk memuat turun.";
+"error.message.connection_lost" = "Tiada sambungan internet. Ubah ke lokasi yang mempunyai internet yang stabil atau tunggu sehingga sambungan internet menjadi lebih stabil.";
+"error.message.international_roaming_off" = "Perayauan antarabangsa tidak dibenarkan. Ubah tetapan perayauan atau hidupkan Wi-Fi anda.";
+"error.message.not_connected_to_internet" = "Tiada sambungan internet. Hidupkan Wi-Fi atau hidupkan sambungan data selular.";
+"error.message.general" = "Maaf! sesuatu yang tidak diingini terjadi. Sila cuba lagi.";
+"error.message.no_disk_space" = "Ruang storan tidak mencukupi untuk memuat turun.";
 
 // MARK: - Quran
 
 
 // MARK: - Translation
 
-"translationTextType" = "Terjemahan";
-"transliterationTextType" = "Transliterasi";
-
-
-"translatorLabel: " = "Penterjemah: ";
-"upgradeTranslationButtonTitle" = "KEMASKINI";
-
-"errorInTranslationText" = "Maaf! Sesuatu yang tidak diingini terjadi. Kami tidak dapat menjumpai terjemahannya.";
-"noAvailableTranslationText" = "Tiada terjemahan untuk Ayat ini.";
-
+"translation.text-type.translation" = "Terjemahan";
+"translation.text-type.transliteration" = "Transliterasi";
+"translation.translator" = "Penterjemah: ";
+"error.translation.text-retrieval" = "Maaf! Sesuatu yang tidak diingini terjadi. Kami tidak dapat menjumpai terjemahannya.";
+"error.translation.text-not-available" = "Tiada terjemahan untuk Ayat ini.";
 
 // MARK: - Search
 
-"searchRecentsTitle" = "Carian terbaharu";
-"searchPopularTitle" = "Cuba cari";
+"search.recents.title" = "Carian terbaharu";
+"search.popular.title" = "Cuba cari";
 
 // MARK: - Settings
 
-"write_review" = "Tinggalkan ulasan di App Store...";
-"contact_us" = "Hubungi Kami";
-"share_app" = "Kongi aplikasi ini...";
+"setting.write_review" = "Tinggalkan ulasan di App Store...";
+"setting.contact_us" = "Hubungi Kami";
+"setting.share_app" = "Kongi aplikasi ini...";
 
 // MARK: - Quran Menu
 
@@ -53,7 +44,8 @@
 "menu.pointer" = "Penuding terjemahan perkataan";
 "menu.fontSizeLetter" = "A";
 
-// Theme
+// MARK: - Theme
+
 
 // MARK: - Tabs
 
diff --git a/Core/Localization/Resources/nl.lproj/Localizable.strings b/Core/Localization/Resources/nl.lproj/Localizable.strings
index c779bdb1..23d44b05 100644
--- a/Core/Localization/Resources/nl.lproj/Localizable.strings
+++ b/Core/Localization/Resources/nl.lproj/Localizable.strings
@@ -10,15 +10,11 @@
 
 // MARK: - Errors
 
-"NetworkError_ConnectionLost" = "Internet verbinding is verbroken. Ga naar een locatie waar een meer stabiele verbinding beschikbaar is, of wacht tot de verbinding terug tot stand is gekomen.";
-"NetworkError_InternationalRoamingOff" = "Internationale roaming is niet toegestaan. Verander de internationale roaming-instelling, of schakel Wi-Fi aan.";
-"NetworkError_NotConnectedToInternet" = "Niet verbonden met het internet. Schakel Wifi aan, of mobiele dataverbinding.";
-"NetworkError_ServerNotReachable" = "Oeps! Er is iets verkeerd gegaan. Probeer het opnieuw.";
-"unknown_error_message" = "Oeps! Er is iets verkeerd gegaan. Probeer het opnieuw.";
-"NetworkError_Parsing" = "Oeps! Er is iets verkeerd gegaan. Probeer het opnieuw.";
-
-"FileSystemError_Unknown" = "Er is een onbekende fout opgetreden bij het toetreden van de hardeschijf van het toestel.";
-"FileSystemError_NoDiskSpace" = "Er is geen opslagruimte meer beschikbaar. Downloaden mislukt.";
+"error.message.connection_lost" = "Internet verbinding is verbroken. Ga naar een locatie waar een meer stabiele verbinding beschikbaar is, of wacht tot de verbinding terug tot stand is gekomen.";
+"error.message.international_roaming_off" = "Internationale roaming is niet toegestaan. Verander de internationale roaming-instelling, of schakel Wi-Fi aan.";
+"error.message.not_connected_to_internet" = "Niet verbonden met het internet. Schakel Wifi aan, of mobiele dataverbinding.";
+"error.message.general" = "Oeps! Er is iets verkeerd gegaan. Probeer het opnieuw.";
+"error.message.no_disk_space" = "Er is geen opslagruimte meer beschikbaar. Downloaden mislukt.";
 
 // MARK: - Quran
 
@@ -27,32 +23,27 @@
 
 // MARK: - Translation
 
-"translationTextType" = "Vertaling";
-"transliterationTextType" = "Transliteratie";
-
-
-"translatorLabel: " = "Vertaler: ";
-"upgradeTranslationButtonTitle" = "BIJWERKEN";
-
-"errorInTranslationText" = "Oeps! Er is iets fout gegaan. We konden de vertaling niet ophalen.";
-"noAvailableTranslationText" = "Er is geen vertaling beschikbaar voor deze ayah.";
-"referenceVerseTranslationText" = "Zie ayah %d.";
-
-"ayah.text.read-more" = "Lees Meer";
+"translation.text-type.translation" = "Vertaling";
+"translation.text-type.transliteration" = "Transliteratie";
+"translation.translator" = "Vertaler: ";
+"translation.text.see-referenced-verse" = "Zie ayah %d.";
+"translation.text.read-more" = "Lees Meer";
+"error.translation.text-retrieval" = "Oeps! Er is iets fout gegaan. We konden de vertaling niet ophalen.";
+"error.translation.text-not-available" = "Er is geen vertaling beschikbaar voor deze ayah.";
 
 // MARK: - Search
 
-"searchRecentsTitle" = "Recente zoekopdrachten";
-"searchPopularTitle" = "Probeer te zoeken met";
-"searchPlaceholder" = "Soera, vers, vertaling, tafseer en nummers";
-"searchResultTitle" = "%@ (%d)";
+"search.recents.title" = "Recente zoekopdrachten";
+"search.popular.title" = "Probeer te zoeken met";
+"search.placeholder.text" = "Soera, vers, vertaling, tafseer en nummers";
+"search.result.count" = "%@ (%d)";
 
 // MARK: - Settings
 
-"write_review" = "Schrijf een app store-recensie...";
-"contact_us" = "Contacteer ons";
-"share_app" = "Deel de app...";
-"app_version" = "App Versie";
+"setting.write_review" = "Schrijf een app store-recensie...";
+"setting.contact_us" = "Contacteer ons";
+"setting.share_app" = "Deel de app...";
+"setting.app_version" = "App Versie";
 
 // MARK: - Quran Menu
 
@@ -67,7 +58,8 @@
 "menu.twoPages" = "2 pagina's naast elkaar (liggend)";
 "menu.verticalScrolling" = "Verticaal scrollen";
 
-// Theme
+// MARK: - Theme
+
 "theme.light" = "Licht";
 "theme.dark" = "Donker";
 "theme.auto" = "Auto";
diff --git a/Core/Localization/Resources/pt.lproj/Localizable.strings b/Core/Localization/Resources/pt.lproj/Localizable.strings
index 635d85a7..38f743e4 100644
--- a/Core/Localization/Resources/pt.lproj/Localizable.strings
+++ b/Core/Localization/Resources/pt.lproj/Localizable.strings
@@ -6,17 +6,12 @@
 // MARK: - Errors
 
 
-
 // MARK: - Quran
 
 
 // MARK: - Translation
 
 
-
-
-
-
 // MARK: - Search
 
 
@@ -26,7 +21,8 @@
 // MARK: - Quran Menu
 
 
-// Theme
+// MARK: - Theme
+
 
 // MARK: - Tabs
 
diff --git a/Core/Localization/Resources/ru.lproj/Localizable.strings b/Core/Localization/Resources/ru.lproj/Localizable.strings
index 6154ddfb..182173c9 100644
--- a/Core/Localization/Resources/ru.lproj/Localizable.strings
+++ b/Core/Localization/Resources/ru.lproj/Localizable.strings
@@ -6,17 +6,12 @@
 // MARK: - Errors
 
 
-
 // MARK: - Quran
 
 
 // MARK: - Translation
 
 
-
-
-
-
 // MARK: - Search
 
 
@@ -26,7 +21,8 @@
 // MARK: - Quran Menu
 
 
-// Theme
+// MARK: - Theme
+
 
 // MARK: - Tabs
 
diff --git a/Core/Localization/Resources/tr.lproj/Localizable.strings b/Core/Localization/Resources/tr.lproj/Localizable.strings
index 53d463b2..5ef312d4 100644
--- a/Core/Localization/Resources/tr.lproj/Localizable.strings
+++ b/Core/Localization/Resources/tr.lproj/Localizable.strings
@@ -10,15 +10,11 @@
 
 // MARK: - Errors
 
-"NetworkError_ConnectionLost" = "İnternet bağlantısı bulunamadı. İnternet bağlantısının daha stabil olduğu bir yere geçin veya düzelene kadar bekleyin.";
-"NetworkError_InternationalRoamingOff" = "Uluslararası dolaşıma izin verilmedi. Uluslararası dolaşım ayarlarını değiştirin veya bir kablosuz ağa bağlanın.";
-"NetworkError_NotConnectedToInternet" = "İnternet bağlantısı bulunamadı. Kablosuz bağlantıyı veya hücresel ağ bağlantısını etkinleştirin.";
-"NetworkError_ServerNotReachable" = "Hay aksi! Bir sorun oluştu. Lütfen tekrar deneyin.";
-"unknown_error_message" = "Hay aksi! Bir sorun oluştu. Lütfen tekrar deneyin.";
-"NetworkError_Parsing" = "Hay aksi! Bir sorun oluştu. Lütfen tekrar deneyin.";
-
-"FileSystemError_Unknown" = "Hay aksi! Bir sorun oluştu. Lütfen tekrar deneyin.";
-"FileSystemError_NoDiskSpace" = "İndirilenleri kaydetmek için disk alanı yetersiz";
+"error.message.connection_lost" = "İnternet bağlantısı bulunamadı. İnternet bağlantısının daha stabil olduğu bir yere geçin veya düzelene kadar bekleyin.";
+"error.message.international_roaming_off" = "Uluslararası dolaşıma izin verilmedi. Uluslararası dolaşım ayarlarını değiştirin veya bir kablosuz ağa bağlanın.";
+"error.message.not_connected_to_internet" = "İnternet bağlantısı bulunamadı. Kablosuz bağlantıyı veya hücresel ağ bağlantısını etkinleştirin.";
+"error.message.general" = "Hay aksi! Bir sorun oluştu. Lütfen tekrar deneyin.";
+"error.message.no_disk_space" = "İndirilenleri kaydetmek için disk alanı yetersiz.";
 
 // MARK: - Quran
 
@@ -27,29 +23,24 @@
 
 // MARK: - Translation
 
-"translationTextType" = "Meal";
-"transliterationTextType" = "Okunuşu";
-
-
-"translatorLabel: " = "Çevirmen: ";
-"upgradeTranslationButtonTitle" = "GÜNCELLE";
-
-"errorInTranslationText" = "Hay aksi! Bir sorun çıktı. Meali bulamadık.";
-"noAvailableTranslationText" = "Bu Ayetin meali bulunmamaktadır.";
-
-"ayah.text.read-more" = "Daha fazlası";
+"translation.text-type.translation" = "Meal";
+"translation.text-type.transliteration" = "Okunuşu";
+"translation.translator" = "Çevirmen: ";
+"translation.text.read-more" = "Daha fazlası";
+"error.translation.text-retrieval" = "Hay aksi! Bir sorun çıktı. Meali bulamadık.";
+"error.translation.text-not-available" = "Bu Ayetin meali bulunmamaktadır.";
 
 // MARK: - Search
 
-"searchRecentsTitle" = "Son aramalar";
-"searchPopularTitle" = "Bununla aramayı deneyin";
-"searchPlaceholder" = "Sure, ayet, meal, tefsir, and numaralar";
+"search.recents.title" = "Son aramalar";
+"search.popular.title" = "Bununla aramayı deneyin";
+"search.placeholder.text" = "Sure, ayet, meal, tefsir, and numaralar";
 
 // MARK: - Settings
 
-"write_review" = "Uygulamamızı AppStore'de değerlendirin...";
-"contact_us" = "Bizimle iletişime geçin!";
-"share_app" = "Uygulamayı paylaşın...";
+"setting.write_review" = "Uygulamamızı AppStore'de değerlendirin...";
+"setting.contact_us" = "Bizimle iletişime geçin!";
+"setting.share_app" = "Uygulamayı paylaşın...";
 
 // MARK: - Quran Menu
 
@@ -62,7 +53,8 @@
 "menu.translationFontSize" = "Çeviri Boyutu";
 "menu.arabicFontSize" = "Kuran Boyutu";
 
-// Theme
+// MARK: - Theme
+
 "theme.light" = "Açık";
 "theme.dark" = "Koyu";
 "theme.auto" = "Otomatik";
diff --git a/Core/Localization/Resources/ug.lproj/Localizable.strings b/Core/Localization/Resources/ug.lproj/Localizable.strings
index 7aecb233..984fc459 100644
--- a/Core/Localization/Resources/ug.lproj/Localizable.strings
+++ b/Core/Localization/Resources/ug.lproj/Localizable.strings
@@ -6,17 +6,12 @@
 // MARK: - Errors
 
 
-
 // MARK: - Quran
 
 
 // MARK: - Translation
 
 
-
-
-
-
 // MARK: - Search
 
 
@@ -26,7 +21,8 @@
 // MARK: - Quran Menu
 
 
-// Theme
+// MARK: - Theme
+
 
 // MARK: - Tabs
 
diff --git a/Core/Localization/Resources/uz.lproj/Localizable.strings b/Core/Localization/Resources/uz.lproj/Localizable.strings
index ac5cee7a..ffa555fa 100644
--- a/Core/Localization/Resources/uz.lproj/Localizable.strings
+++ b/Core/Localization/Resources/uz.lproj/Localizable.strings
@@ -6,17 +6,12 @@
 // MARK: - Errors
 
 
-
 // MARK: - Quran
 
 
 // MARK: - Translation
 
 
-
-
-
-
 // MARK: - Search
 
 
@@ -26,7 +21,8 @@
 // MARK: - Quran Menu
 
 
-// Theme
+// MARK: - Theme
+
 
 // MARK: - Tabs
 
diff --git a/Core/Localization/Resources/vi.lproj/Localizable.strings b/Core/Localization/Resources/vi.lproj/Localizable.strings
index 471a3903..f0404c1b 100644
--- a/Core/Localization/Resources/vi.lproj/Localizable.strings
+++ b/Core/Localization/Resources/vi.lproj/Localizable.strings
@@ -10,15 +10,11 @@
 
 // MARK: - Errors
 
-"NetworkError_ConnectionLost" = "Mất kết nối mạng. Di chuyển đến nới có kết nối ổn định hơn hoặc đợi cho đến khi kết nối ổn định trở lại.";
-"NetworkError_InternationalRoamingOff" = "Chuyển vùng quốc tế không được phép. Thay đổi cài đặt chuyển vùng quốc tế hoặc bật Wi-Fi.";
-"NetworkError_NotConnectedToInternet" = "Không được kết nối với internet. Bật Wi-Fi hoặc cho phép kết nối dữ liệu di động.";
-"NetworkError_ServerNotReachable" = "Ối! Đã xảy ra sự cố. Vui lòng thử lại.";
-"unknown_error_message" = "Ối! Đã xảy ra sự cố. Vui lòng thử lại.";
-"NetworkError_Parsing" = "Ối! Đã xảy ra sự cố. Vui lòng thử lại.";
-
-"FileSystemError_Unknown" = "Ối! Đã xảy ra sự cố. Vui lòng thử lại.";
-"FileSystemError_NoDiskSpace" = "Không đủ dung lượng trống để lưu các bản tải xuống";
+"error.message.connection_lost" = "Mất kết nối mạng. Di chuyển đến nới có kết nối ổn định hơn hoặc đợi cho đến khi kết nối ổn định trở lại.";
+"error.message.international_roaming_off" = "Chuyển vùng quốc tế không được phép. Thay đổi cài đặt chuyển vùng quốc tế hoặc bật Wi-Fi.";
+"error.message.not_connected_to_internet" = "Không được kết nối với internet. Bật Wi-Fi hoặc cho phép kết nối dữ liệu di động.";
+"error.message.general" = "Ối! Đã xảy ra sự cố. Vui lòng thử lại.";
+"error.message.no_disk_space" = "Không đủ dung lượng trống để lưu các bản tải xuống.";
 
 // MARK: - Quran
 
@@ -27,32 +23,27 @@
 
 // MARK: - Translation
 
-"translationTextType" = "Bản dịch";
-"transliterationTextType" = "Phiên âm";
-
-
-"translatorLabel: " = "Dịch giả: ";
-"upgradeTranslationButtonTitle" = "CẬP NHẬT";
-
-"errorInTranslationText" = "Ối! Đã xảy ra sự cố. Chúng tôi không thể truy xuất bản dịch.";
-"noAvailableTranslationText" = "Không có bản dịch nào cho Ayah này.";
-"referenceVerseTranslationText" = "Xem ayah %d.";
-
-"ayah.text.read-more" = "Xem thêm";
+"translation.text-type.translation" = "Bản dịch";
+"translation.text-type.transliteration" = "Phiên âm";
+"translation.translator" = "Dịch giả: ";
+"translation.text.see-referenced-verse" = "Xem ayah %d.";
+"translation.text.read-more" = "Xem thêm";
+"error.translation.text-retrieval" = "Ối! Đã xảy ra sự cố. Chúng tôi không thể truy xuất bản dịch.";
+"error.translation.text-not-available" = "Không có bản dịch nào cho Ayah này.";
 
 // MARK: - Search
 
-"searchRecentsTitle" = "Tìm kiếm gần đây";
-"searchPopularTitle" = "Thử tìm kiếm với";
-"searchPlaceholder" = "Surah, câu kinh, bản dịch, tafseer và số";
-"searchResultTitle" = "%@ (%d)";
+"search.recents.title" = "Tìm kiếm gần đây";
+"search.popular.title" = "Thử tìm kiếm với";
+"search.placeholder.text" = "Surah, câu kinh, bản dịch, tafseer và số";
+"search.result.count" = "%@ (%d)";
 
 // MARK: - Settings
 
-"write_review" = "Đánh giá ứng dụng trên Appstore...";
-"contact_us" = "Liên hệ";
-"share_app" = "Chia sẻ ứng dụng...";
-"app_version" = "Phiên bản ứng dụng";
+"setting.write_review" = "Đánh giá ứng dụng trên Appstore...";
+"setting.contact_us" = "Liên hệ";
+"setting.share_app" = "Chia sẻ ứng dụng...";
+"setting.app_version" = "Phiên bản ứng dụng";
 
 // MARK: - Quran Menu
 
@@ -67,7 +58,8 @@
 "menu.twoPages" = "2 trang cạnh nhau (xoay ngang)";
 "menu.verticalScrolling" = "Cuộn dọc";
 
-// Theme
+// MARK: - Theme
+
 "theme.light" = "Sáng";
 "theme.dark" = "Tối";
 "theme.auto" = "Tự động";
diff --git a/Core/Localization/Resources/zh.lproj/Localizable.strings b/Core/Localization/Resources/zh.lproj/Localizable.strings
index 425f2ae4..539d1d1c 100644
--- a/Core/Localization/Resources/zh.lproj/Localizable.strings
+++ b/Core/Localization/Resources/zh.lproj/Localizable.strings
@@ -6,17 +6,12 @@
 // MARK: - Errors
 
 
-
 // MARK: - Quran
 
 
 // MARK: - Translation
 
 
-
-
-
-
 // MARK: - Search
 
 
@@ -26,7 +21,8 @@
 // MARK: - Quran Menu
 
 
-// Theme
+// MARK: - Theme
+
 
 // MARK: - Tabs
 
diff --git a/Domain/QuranTextKit/Sources/ShareableText/ShareableVerseTextRetriever.swift b/Domain/QuranTextKit/Sources/ShareableText/ShareableVerseTextRetriever.swift
index 06a97f64..e595b93f 100644
--- a/Domain/QuranTextKit/Sources/ShareableText/ShareableVerseTextRetriever.swift
+++ b/Domain/QuranTextKit/Sources/ShareableText/ShareableVerseTextRetriever.swift
@@ -106,7 +106,7 @@ public struct ShareableVerseTextRetriever {
     private func stringFromTranslationText(_ text: TranslationText) -> String {
         switch text {
         case .reference(let verse):
-            return lFormat("referenceVerseTranslationText", verse.ayah)
+            return lFormat("translation.text.see-referenced-verse", verse.ayah)
         case .string(let string):
             return string.text
         }
diff --git a/Domain/QuranTextKit/Sources/TranslationText/QuranTextDataService.swift b/Domain/QuranTextKit/Sources/TranslationText/QuranTextDataService.swift
index 19dce4f2..7f748c89 100644
--- a/Domain/QuranTextKit/Sources/TranslationText/QuranTextDataService.swift
+++ b/Domain/QuranTextKit/Sources/TranslationText/QuranTextDataService.swift
@@ -147,7 +147,7 @@ public struct QuranTextDataService {
         do {
             let versesText = try await translationPersistence.textForVerses(verses)
             for verse in verses {
-                let text = versesText[verse] ?? .string(l("noAvailableTranslationText"))
+                let text = versesText[verse] ?? .string(l("error.translation.text-not-available"))
                 verseTextList.append(translationText(text))
             }
         } catch {
@@ -155,7 +155,7 @@ public struct QuranTextDataService {
                 error,
                 reason: "Issue getting verse \(verses), translation: \(translation.id)"
             )
-            let errorText = l("errorInTranslationText")
+            let errorText = l("error.translation.text-retrieval")
             for _ in verses {
                 verseTextList.append(.string(TranslationString(text: errorText, quranRanges: [], footerRanges: [])))
             }
diff --git a/Features/FeaturesSupport/Errors+Description.swift b/Features/FeaturesSupport/Errors+Description.swift
index 71738621..0887dbe7 100644
--- a/Features/FeaturesSupport/Errors+Description.swift
+++ b/Features/FeaturesSupport/Errors+Description.swift
@@ -19,9 +19,9 @@ extension FileSystemError: LocalizedError {
         let text: String
         switch self {
         case .unknown:
-            text = l("FileSystemError_Unknown")
+            text = l("error.message.general")
         case .noDiskSpace:
-            text = l("FileSystemError_NoDiskSpace")
+            text = l("error.message.no_disk_space")
         }
         return text
     }
@@ -30,18 +30,20 @@ extension FileSystemError: LocalizedError {
 extension NetworkError: LocalizedError {
     public var errorDescription: String? {
         switch self {
-        case .unknown: return l("unknown_error_message")
-        case .serverError: return l("unknown_error_message")
-        case .notConnectedToInternet: return l("NetworkError_NotConnectedToInternet")
-        case .internationalRoamingOff: return l("NetworkError_InternationalRoamingOff")
-        case .serverNotReachable: return l("NetworkError_ServerNotReachable")
-        case .connectionLost: return l("NetworkError_ConnectionLost")
+        case .unknown, .serverError, .serverNotReachable:
+            return l("error.message.general")
+        case .notConnectedToInternet:
+            return l("error.message.not_connected_to_internet")
+        case .internationalRoamingOff:
+            return l("error.message.international_roaming_off")
+        case .connectionLost:
+            return l("error.message.connection_lost")
         }
     }
 }
 
 extension PersistenceError: LocalizedError {
     public var errorDescription: String? {
-        l("unknown_error_message")
+        l("error.message.general")
     }
 }
diff --git a/Features/QuranTranslationFeature/TranslationCellProvider.swift b/Features/QuranTranslationFeature/TranslationCellProvider.swift
index 142b8090..8435c5bd 100644
--- a/Features/QuranTranslationFeature/TranslationCellProvider.swift
+++ b/Features/QuranTranslationFeature/TranslationCellProvider.swift
@@ -132,7 +132,7 @@ public class TranslationCellProvider<Section: Hashable & Sendable> {
     private func translationTextToString(_ translationText: TranslationText) -> TranslationString {
         switch translationText {
         case .reference(let verse):
-            return TranslationString(text: lFormat("referenceVerseTranslationText", verse.ayah), quranRanges: [], footerRanges: [])
+            return TranslationString(text: lFormat("translation.text.see-referenced-verse", verse.ayah), quranRanges: [], footerRanges: [])
         case .string(let string):
             return string
         }
diff --git a/Features/QuranTranslationFeature/cells/QuranTranslationTextCollectionViewCell.swift b/Features/QuranTranslationFeature/cells/QuranTranslationTextCollectionViewCell.swift
index 2fa1568b..fd3ca90b 100644
--- a/Features/QuranTranslationFeature/cells/QuranTranslationTextCollectionViewCell.swift
+++ b/Features/QuranTranslationFeature/cells/QuranTranslationTextCollectionViewCell.swift
@@ -162,7 +162,7 @@ class QuranTranslationTextCollectionViewCell: QuranTranslationItemCollectionView
             .foregroundColor: UIColor.secondaryLabel.resolvedColor(with: traitCollection),
         ]
         let ellipsis = NSAttributedString(string: "\u{2026}", attributes: attributes)
-        let readMore = NSAttributedString(string: l("ayah.text.read-more"), attributes: attributes)
+        let readMore = NSAttributedString(string: l("translation.text.read-more"), attributes: attributes)
 
         let text = NSMutableAttributedString(attributedString: ellipsis)
         text.mutableString.append(" ")
diff --git a/Features/SearchFeature/SearchView.swift b/Features/SearchFeature/SearchView.swift
index be977245..713560de 100644
--- a/Features/SearchFeature/SearchView.swift
+++ b/Features/SearchFeature/SearchView.swift
@@ -71,7 +71,7 @@ private struct SearchViewUI: View {
             NoorList {
                 ForEach(searchResults) { result in
                     let plainTitle = title(of: result)
-                    let title = lFormat("searchResultTitle", plainTitle, result.items.count)
+                    let title = lFormat("search.result.count", plainTitle, result.items.count)
                     NoorSection(title: title, result.items) { item in
                         let localizedVerse = item.ayah.localizedName
                         let arabicSuraName = item.ayah.sura.arabicSuraName
@@ -115,7 +115,7 @@ private struct SearchViewUI: View {
     @ViewBuilder
     var entry: some View {
         NoorList {
-            NoorSection(title: l("searchRecentsTitle"), recents.map(SelfIdentifiable.init)) { item in
+            NoorSection(title: l("search.recents.title"), recents.map(SelfIdentifiable.init)) { item in
                 NoorListItem(
                     image: .init(.search),
                     title: .text(item.value)
@@ -124,7 +124,7 @@ private struct SearchViewUI: View {
                 }
             }
 
-            NoorSection(title: l("searchPopularTitle"), populars.map(SelfIdentifiable.init)) { item in
+            NoorSection(title: l("search.popular.title"), populars.map(SelfIdentifiable.init)) { item in
                 NoorListItem(
                     image: .init(.search),
                     title: .text(item.value)
diff --git a/Features/SearchFeature/SearchViewController.swift b/Features/SearchFeature/SearchViewController.swift
index 146d6afa..716c85be 100644
--- a/Features/SearchFeature/SearchViewController.swift
+++ b/Features/SearchFeature/SearchViewController.swift
@@ -40,7 +40,7 @@ final class SearchViewController: UIHostingController<SearchView>, UISearchResul
 
         searchController.obscuresBackgroundDuringPresentation = false
         searchController.hidesNavigationBarDuringPresentation = true
-        searchController.searchBar.placeholder = l("searchPlaceholder")
+        searchController.searchBar.placeholder = l("search.placeholder.text")
         searchController.searchResultsUpdater = self
         searchController.searchBar.delegate = self
         navigationItem.searchController = searchController
diff --git a/Features/SettingsFeature/SettingsRootView.swift b/Features/SettingsFeature/SettingsRootView.swift
index cbf6844f..f33da8e7 100644
--- a/Features/SettingsFeature/SettingsRootView.swift
+++ b/Features/SettingsFeature/SettingsRootView.swift
@@ -86,21 +86,21 @@ private struct SettingsRootViewUI: View {
             NoorBasicSection {
                 NoorListItem(
                     image: .init(.share),
-                    title: .text(l("share_app")),
+                    title: .text(l("setting.share_app")),
                     accessory: .disclosureIndicator,
                     action: shareApp
                 )
 
                 NoorListItem(
                     image: .init(.star),
-                    title: .text(l("write_review")),
+                    title: .text(l("setting.write_review")),
                     accessory: .disclosureIndicator,
                     action: writeReview
                 )
 
                 NoorListItem(
                     image: .init(.mail),
-                    title: .text(l("contact_us")),
+                    title: .text(l("setting.contact_us")),
                     accessory: .disclosureIndicator,
                     action: contactUs
                 )
diff --git a/Features/TranslationsFeature/TranslationsListView.swift b/Features/TranslationsFeature/TranslationsListView.swift
index 67805f88..6559e376 100644
--- a/Features/TranslationsFeature/TranslationsListView.swift
+++ b/Features/TranslationsFeature/TranslationsListView.swift
@@ -63,7 +63,7 @@ private struct TranslationsListViewUI: View {
             }
 
             TranslationsListSection(
-                title: l("translations.selectedTranslations"),
+                title: l("translation.selectedTranslations"),
                 items: selectedTranslations,
                 listItem: { item in
                     listItem(item, downloaded: true, image: NoorSystemImage.checkmark_checked) {
@@ -168,7 +168,7 @@ private struct TranslationsListViewUI: View {
     func subtitle(of translation: Translation) -> NoorListItem.Subtitle? {
         if let translatorDisplayName = translation.translatorDisplayName, !translatorDisplayName.isEmpty {
             return .init(
-                label: l("translatorLabel: "),
+                label: l("translation.translator"),
                 text: translatorDisplayName,
                 location: .bottom
             )
diff --git a/UI/NoorUI/BaseControllers/UIViewController+Error.swift b/UI/NoorUI/BaseControllers/UIViewController+Error.swift
index 4fa9b95b..cf18080b 100644
--- a/UI/NoorUI/BaseControllers/UIViewController+Error.swift
+++ b/UI/NoorUI/BaseControllers/UIViewController+Error.swift
@@ -39,7 +39,7 @@ extension UIViewController {
     private func _showErrorAlert(error: Error) {
         crasher.recordError(error, reason: "showErrorAlert")
         let message = error.getErrorDescription()
-        let controller = UIAlertController(title: l("error.title"), message: message, preferredStyle: .alert)
+        let controller = UIAlertController(title: l("error.dialog.title"), message: message, preferredStyle: .alert)
         controller.addAction(UIAlertAction(title: "Ok", style: .cancel, handler: nil))
         present(controller, animated: true)
     }
@@ -48,7 +48,7 @@ extension UIViewController {
 extension Error {
     func getErrorDescription() -> String {
         let description = (self as? LocalizedError)?.errorDescription
-        return description ?? l("unknown_error_message")
+        return description ?? l("error.message.general")
     }
 }
 
diff --git a/UI/NoorUI/Components/ErrorAlertModifier.swift b/UI/NoorUI/Components/ErrorAlertModifier.swift
index 20d5e93a..ddae48e0 100644
--- a/UI/NoorUI/Components/ErrorAlertModifier.swift
+++ b/UI/NoorUI/Components/ErrorAlertModifier.swift
@@ -45,7 +45,7 @@ struct ErrorAlertModifier: ViewModifier {
                 crasher.recordError(error, reason: "ErrorModifier")
                 if let retry {
                     return Alert(
-                        title: Text(l("error.title")),
+                        title: Text(l("error.dialog.title")),
                         message: Text(error.getErrorDescription()),
                         primaryButton: .default(Text(lAndroid("download_retry"))) {
                             Task {
@@ -56,13 +56,13 @@ struct ErrorAlertModifier: ViewModifier {
                     )
                 } else {
                     return Alert(
-                        title: Text(l("error.title")),
+                        title: Text(l("error.dialog.title")),
                         message: Text(error.getErrorDescription())
                     )
                 }
             } else {
                 return Alert(
-                    title: Text(l("error.title")),
+                    title: Text(l("error.dialog.title")),
                     message: Text("")
                 )
             }
diff --git a/UI/NoorUI/Features/Content/ContentStatusView.swift b/UI/NoorUI/Features/Content/ContentStatusView.swift
index dcc90da2..4f9e14c5 100644
--- a/UI/NoorUI/Features/Content/ContentStatusView.swift
+++ b/UI/NoorUI/Features/Content/ContentStatusView.swift
@@ -9,6 +9,11 @@ import Localization
 import SwiftUI
 
 public struct ContentStatusView: View {
+    public enum State {
+        case downloading(progress: Double)
+        case error(_ error: Error, retry: () -> Void)
+    }
+
     // MARK: Lifecycle
 
     public init(state: State) {
@@ -17,11 +22,6 @@ public struct ContentStatusView: View {
 
     // MARK: Public
 
-    public enum State {
-        case downloading(progress: Double)
-        case error(_ error: Error, retry: () -> Void)
-    }
-
     public var body: some View {
         VStack {
             Spacer()
@@ -50,7 +50,7 @@ public struct ContentStatusView: View {
 
     private func errorView(_ error: Error, retry: @escaping () -> Void) -> some View {
         VStack {
-            Text(l("unknown_error_message"))
+            Text(l("error.message.general"))
             Text(error.localizedDescription)
                 .font(.callout)
                 .padding(.bottom)
diff --git a/UI/NoorUI/Features/MoreMenu/MoreMenuView.swift b/UI/NoorUI/Features/MoreMenu/MoreMenuView.swift
index d460f2d1..72296499 100644
--- a/UI/NoorUI/Features/MoreMenu/MoreMenuView.swift
+++ b/UI/NoorUI/Features/MoreMenu/MoreMenuView.swift
@@ -182,11 +182,12 @@ private struct WordPointerSelection: View {
     }
 
     private func itemText(of item: MoreMenu.TranslationPointerType) -> String {
+        // TODO: This code is repeated.
         switch item {
         case .translation:
-            return l("translationTextType")
+            return l("translation.text-type.translation")
         case .transliteration:
-            return l("transliterationTextType")
+            return l("translation.text-type.transliteration")
         }
     }
 }
diff --git a/UI/NoorUI/Features/MoreMenu/components/MoreMenuWordPointerType.swift b/UI/NoorUI/Features/MoreMenu/components/MoreMenuWordPointerType.swift
index 93815622..3fff4b44 100644
--- a/UI/NoorUI/Features/MoreMenu/components/MoreMenuWordPointerType.swift
+++ b/UI/NoorUI/Features/MoreMenu/components/MoreMenuWordPointerType.swift
@@ -24,9 +24,9 @@ struct MoreMenuWordPointerType: View {
     var typeText: String {
         switch type {
         case .translation:
-            return l("translationTextType")
+            return l("translation.text-type.translation")
         case .transliteration:
-            return l("transliterationTextType")
+            return l("translation.text-type.transliteration")
         }
     }
 }