From 83fea349435429aa811b9150cb962a5ad8ff8aec Mon Sep 17 00:00:00 2001 From: Prince Yadav <66916296+prince-0408@users.noreply.github.com> Date: Sat, 20 Dec 2025 02:35:52 +0530 Subject: [PATCH 1/2] Fix inconsistent border radius across application (#555) - Standardized border radius for cards and UI elements - Updated liquid-glass tab bar styling to match modern iOS design - Applied consistent corner radius across InformationScreenVC, SettingsViewController, TipCardView, and table view cells - Ensures uniform appearance across iOS 26 Simulator Fixes #555 --- Scribe/AboutTab/InformationScreenVC.swift | 2 +- Scribe/AppDelegate.swift | 19 + Scribe/Base.lproj/AppScreen.storyboard | 4 +- .../SettingsTab/SettingsViewController.swift | 4 +- Scribe/TipCard/TipCardView.swift | 2 +- .../InfoChildTableViewCell.swift | 7 + .../RadioTableViewCell.swift | 7 + Scribe/i18n/Scribe-i18n/Localizable.xcstrings | 466 +++++++++++------- 8 files changed, 321 insertions(+), 190 deletions(-) diff --git a/Scribe/AboutTab/InformationScreenVC.swift b/Scribe/AboutTab/InformationScreenVC.swift index 088b37b9..4aada89c 100644 --- a/Scribe/AboutTab/InformationScreenVC.swift +++ b/Scribe/AboutTab/InformationScreenVC.swift @@ -98,7 +98,7 @@ class InformationScreenVC: UIViewController { relativeView.backgroundColor = .clear contentContainerView.backgroundColor = lightWhiteDarkBlackColor - applyCornerRadius(elem: contentContainerView, radius: contentContainerView.frame.width * 0.05) + applyCornerRadius(elem: contentContainerView, radius: 16) contentContainerView.clipsToBounds = true diff --git a/Scribe/AppDelegate.swift b/Scribe/AppDelegate.swift index 018065fa..264000ba 100644 --- a/Scribe/AppDelegate.swift +++ b/Scribe/AppDelegate.swift @@ -16,6 +16,25 @@ class AppDelegate: UIResponder, UIApplicationDelegate { didFinishLaunchingWithOptions _: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { // Override point for customization after application launch. + + if #available(iOS 15.0, *) { + let appearance = UITabBarAppearance() + appearance.configureWithTransparentBackground() + appearance.backgroundEffect = UIBlurEffect(style: .systemChromeMaterial) + appearance.backgroundColor = .clear + + let tabBarAppearance = UITabBar.appearance() + tabBarAppearance.standardAppearance = appearance + tabBarAppearance.scrollEdgeAppearance = appearance + } else { + let tabBarAppearance = UITabBar.appearance() + tabBarAppearance.backgroundImage = UIImage() + tabBarAppearance.shadowImage = UIImage() + tabBarAppearance.isTranslucent = true + tabBarAppearance.barTintColor = .clear + tabBarAppearance.backgroundColor = .clear + } + return true } diff --git a/Scribe/Base.lproj/AppScreen.storyboard b/Scribe/Base.lproj/AppScreen.storyboard index b72f2f9d..6ea6d1f2 100644 --- a/Scribe/Base.lproj/AppScreen.storyboard +++ b/Scribe/Base.lproj/AppScreen.storyboard @@ -310,10 +310,10 @@ - + - + diff --git a/Scribe/SettingsTab/SettingsViewController.swift b/Scribe/SettingsTab/SettingsViewController.swift index c5edf4f6..86791926 100644 --- a/Scribe/SettingsTab/SettingsViewController.swift +++ b/Scribe/SettingsTab/SettingsViewController.swift @@ -96,8 +96,8 @@ final class SettingsViewController: UIViewController { footerButton.layer.borderColor = scribeCTAColor.cgColor } footerButton.setTitleColor(lightTextDarkCTA, for: .normal) - footerFrame.layer.cornerRadius = footerFrame.frame.width * 0.025 - footerButton.layer.cornerRadius = footerFrame.frame.width * 0.025 + footerFrame.layer.cornerRadius = 16 + footerButton.layer.cornerRadius = 16 footerButton.layer.shadowColor = UIColor(red: 0.247, green: 0.247, blue: 0.275, alpha: 0.25).cgColor footerButton.layer.shadowOffset = CGSize(width: 0.0, height: 3.0) footerButton.layer.shadowOpacity = 1.0 diff --git a/Scribe/TipCard/TipCardView.swift b/Scribe/TipCard/TipCardView.swift index 346282fa..2567ba3b 100644 --- a/Scribe/TipCard/TipCardView.swift +++ b/Scribe/TipCard/TipCardView.swift @@ -10,7 +10,7 @@ struct TipCardView: View { private let buttonHeight = 70.0 private let multiplicityPadding = 0.5 private let leadingPadding = 40.0 - private let cardCornerRadius: CGFloat = 10 + private let cardCornerRadius: CGFloat = 16 var infoText: String @Binding var tipCardState: Bool var onDismiss: (() -> Void)? diff --git a/Scribe/Views/Cells/InfoChildTableViewCell/InfoChildTableViewCell.swift b/Scribe/Views/Cells/InfoChildTableViewCell/InfoChildTableViewCell.swift index de6a7d6d..93d0219c 100644 --- a/Scribe/Views/Cells/InfoChildTableViewCell/InfoChildTableViewCell.swift +++ b/Scribe/Views/Cells/InfoChildTableViewCell/InfoChildTableViewCell.swift @@ -129,6 +129,13 @@ final class InfoChildTableViewCell: UITableViewCell { } } + override func layoutSubviews() { + super.layoutSubviews() + + contentView.layer.cornerRadius = 16 + contentView.layer.masksToBounds = true + } + @IBAction func switchDidChange(_: UISwitch) { switch togglePurpose { case .toggleCommaAndPeriod: diff --git a/Scribe/Views/Cells/RadioTableViewCell/RadioTableViewCell.swift b/Scribe/Views/Cells/RadioTableViewCell/RadioTableViewCell.swift index 26818b49..6e724162 100644 --- a/Scribe/Views/Cells/RadioTableViewCell/RadioTableViewCell.swift +++ b/Scribe/Views/Cells/RadioTableViewCell/RadioTableViewCell.swift @@ -66,4 +66,11 @@ final class RadioTableViewCell: UITableViewCell { titleLabel.text = section.sectionTitle iconImageView.image = UIImage(named: "radioButton") } + + override func layoutSubviews() { + super.layoutSubviews() + + contentView.layer.cornerRadius = 16 + contentView.layer.masksToBounds = true + } } diff --git a/Scribe/i18n/Scribe-i18n/Localizable.xcstrings b/Scribe/i18n/Scribe-i18n/Localizable.xcstrings index 732e7011..dc50ec5e 100644 --- a/Scribe/i18n/Scribe-i18n/Localizable.xcstrings +++ b/Scribe/i18n/Scribe-i18n/Localizable.xcstrings @@ -250,6 +250,19 @@ } } }, + "app._global.indonesian" : { + "comment" : "Name of the Indonesian language.", + "extractionState" : "extracted_with_value", + "isCommentAutoGenerated" : true, + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Indonesian" + } + } + } + }, "app._global.italian" : { "comment" : "", "localizations" : { @@ -333,6 +346,19 @@ } } }, + "app._global.norwegian" : { + "comment" : "Name of the Norwegian language.", + "extractionState" : "extracted_with_value", + "isCommentAutoGenerated" : true, + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Norwegian" + } + } + } + }, "app._global.portuguese" : { "comment" : "", "localizations" : { @@ -999,6 +1025,7 @@ }, "app.about.community.share_conjugate" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -1995,6 +2022,7 @@ }, "app.about.feedback.rate_conjugate" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -2574,6 +2602,19 @@ } } }, + "app.about.legal.third_legal.entry_simple_keyboard" : { + "comment" : "Entry in the \"Third-party licenses\" section of the \"About\" screen, describing a third-party keyboard with the following details:", + "extractionState" : "extracted_with_value", + "isCommentAutoGenerated" : true, + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Simple Keyboard\n• Author: Simple Mobile Tools\n• License: GPL-3.0\n• Link: https://github.com/SimpleMobileTools/Simple-Keyboard/blob/main/LICENSE" + } + } + } + }, "app.about.legal.third_party" : { "comment" : "", "localizations" : { @@ -2825,6 +2866,7 @@ }, "app.about.legal.third_party.entry_simple_keyboard" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -3157,6 +3199,7 @@ }, "app.conjugate.choose_conjugation.select_tense" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -3240,6 +3283,7 @@ }, "app.conjugate.choose_conjugation.title" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -3323,6 +3367,7 @@ }, "app.conjugate.recently_conjugated.title" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -3406,6 +3451,7 @@ }, "app.conjugate.title" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -3489,6 +3535,7 @@ }, "app.conjugate.verbs_search.placeholder" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -3572,6 +3619,7 @@ }, "app.conjugate.verbs_search.title" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -3655,6 +3703,7 @@ }, "app.download.menu_option.conjugate_description" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -3738,6 +3787,7 @@ }, "app.download.menu_option.conjugate_download_data" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -3821,6 +3871,7 @@ }, "app.download.menu_option.conjugate_download_data_start" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -3904,6 +3955,7 @@ }, "app.download.menu_option.conjugate_title" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -3987,6 +4039,7 @@ }, "app.download.menu_option.scribe_description" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -4070,6 +4123,7 @@ }, "app.download.menu_option.scribe_download_data" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -4153,6 +4207,7 @@ }, "app.download.menu_option.scribe_title" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -4236,6 +4291,7 @@ }, "app.download.menu_ui.select.all_languages" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -4319,6 +4375,7 @@ }, "app.download.menu_ui.select.title" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -4402,6 +4459,7 @@ }, "app.download.menu_ui.title" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -4485,6 +4543,7 @@ }, "app.download.menu_ui.update_data.check_new" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -4568,6 +4627,7 @@ }, "app.download.menu_ui.update_data.regular_update" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -4651,6 +4711,7 @@ }, "app.download.menu_ui.update_data.title" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -4817,6 +4878,7 @@ }, "app.installation.button_quick_tutorial" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -4900,6 +4962,7 @@ }, "app.installation.keyboard.keyboard_settings" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -5730,6 +5793,7 @@ }, "app.settings.button_install_keyboards" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -5813,6 +5877,7 @@ }, "app.settings.keyboard.functionality.annotate_suggestions" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -5896,6 +5961,7 @@ }, "app.settings.keyboard.functionality.annotate_suggestions_description" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -6145,6 +6211,7 @@ }, "app.settings.keyboard.functionality.default_emoji_tone" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -6226,174 +6293,177 @@ } } }, - "app.settings.keyboard.functionality.default_emoji_tone.caption" : { + "app.settings.keyboard.functionality.default_emoji_tone_description" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { "state" : "", - "value" : "لون البشرة المستخدم" + "value" : "حدد لون البشرة الافتراضي لاقتراحات واكتملات الرموز التعبيرية." } }, "bn" : { "stringUnit" : { "state" : "", - "value" : "ব্যবহার করা স্কিন টোন" + "value" : "ইমোজি প্রস্তাবনা এবং পূর্ণকরণের জন্য একটি ডিফল্ট স্কিন টোন সেট করুন।" } }, "de" : { "stringUnit" : { "state" : "", - "value" : "Die zu benutzende Hautfarbe" + "value" : "Stelle einen Standardhautton für automatische Emoji-Vorschläge ein." } }, "en" : { "stringUnit" : { "state" : "", - "value" : "Skin tone to be used" + "value" : "Set a default skin tone for emoji autosuggestions and completions." } }, "es" : { "stringUnit" : { "state" : "", - "value" : "Color de piel a utilizar" + "value" : "Establece un tono de piel predeterminado para las autosugerencias y los complementos emoji." } }, "fr" : { "stringUnit" : { "state" : "", - "value" : "Couleur de peau à utiliser" + "value" : "Définir la couleur de peau par défaut pour les suggestions automatiques et les complétions des émojis." } }, "hi" : { "stringUnit" : { "state" : "", - "value" : "उपयोग होने वाला त्वचा का रंग" + "value" : "इमोजी सुझाव और समाप्ति के लिए एक डिफ़ॉल्ट त्वचा रंग सेट करें।" } }, "id" : { "stringUnit" : { "state" : "", - "value" : "Warna kulit yang digunakan" + "value" : "Atur warna kulit default untuk saran otomatis dan pelengkapan emoji." } }, "ko" : { "stringUnit" : { "state" : "", - "value" : "사용할 피부 톤" + "value" : "이모지 자동 추천 및 완성을 위한 피부 톤의 기본값을 설정합니다." } }, "mr" : { "stringUnit" : { "state" : "", - "value" : "वापरल्या जाणाऱ्या त्वचेचा रंग" + "value" : "इमोजीच्या सुचवण्या आणि समाप्ति साठी डिफॉल्ट त्वचा रंग सेट करा." } }, "pt" : { "stringUnit" : { "state" : "", - "value" : "Tom de pele a ser usado" + "value" : "Defina um tom de pele padrão para as sugestões de emoji." } }, "sv" : { "stringUnit" : { "state" : "", - "value" : "Hudton som ska användas" + "value" : "Välj en standard-hudton för automatiska förslag och komplettering gällande emojis." } }, "tr" : { "stringUnit" : { "state" : "", - "value" : "Kullanılacak cilt tonu" + "value" : "Emoji önerileri ve otomatik tamamlama için varsayılan cilt tonunu ayarlayın." } } } }, - "app.settings.keyboard.functionality.default_emoji_tone_description" : { + "app.settings.keyboard.functionality.default_emoji_tone.caption" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { "state" : "", - "value" : "حدد لون البشرة الافتراضي لاقتراحات واكتملات الرموز التعبيرية." + "value" : "لون البشرة المستخدم" } }, "bn" : { "stringUnit" : { "state" : "", - "value" : "ইমোজি প্রস্তাবনা এবং পূর্ণকরণের জন্য একটি ডিফল্ট স্কিন টোন সেট করুন।" + "value" : "ব্যবহার করা স্কিন টোন" } }, "de" : { "stringUnit" : { "state" : "", - "value" : "Stelle einen Standardhautton für automatische Emoji-Vorschläge ein." + "value" : "Die zu benutzende Hautfarbe" } }, "en" : { "stringUnit" : { "state" : "", - "value" : "Set a default skin tone for emoji autosuggestions and completions." + "value" : "Skin tone to be used" } }, "es" : { "stringUnit" : { "state" : "", - "value" : "Establece un tono de piel predeterminado para las autosugerencias y los complementos emoji." + "value" : "Color de piel a utilizar" } }, "fr" : { "stringUnit" : { "state" : "", - "value" : "Définir la couleur de peau par défaut pour les suggestions automatiques et les complétions des émojis." + "value" : "Couleur de peau à utiliser" } }, "hi" : { "stringUnit" : { "state" : "", - "value" : "इमोजी सुझाव और समाप्ति के लिए एक डिफ़ॉल्ट त्वचा रंग सेट करें।" + "value" : "उपयोग होने वाला त्वचा का रंग" } }, "id" : { "stringUnit" : { "state" : "", - "value" : "Atur warna kulit default untuk saran otomatis dan pelengkapan emoji." + "value" : "Warna kulit yang digunakan" } }, "ko" : { "stringUnit" : { "state" : "", - "value" : "이모지 자동 추천 및 완성을 위한 피부 톤의 기본값을 설정합니다." + "value" : "사용할 피부 톤" } }, "mr" : { "stringUnit" : { "state" : "", - "value" : "इमोजीच्या सुचवण्या आणि समाप्ति साठी डिफॉल्ट त्वचा रंग सेट करा." + "value" : "वापरल्या जाणाऱ्या त्वचेचा रंग" } }, "pt" : { "stringUnit" : { "state" : "", - "value" : "Defina um tom de pele padrão para as sugestões de emoji." + "value" : "Tom de pele a ser usado" } }, "sv" : { "stringUnit" : { "state" : "", - "value" : "Välj en standard-hudton för automatiska förslag och komplettering gällande emojis." + "value" : "Hudton som ska användas" } }, "tr" : { "stringUnit" : { "state" : "", - "value" : "Emoji önerileri ve otomatik tamamlama için varsayılan cilt tonunu ayarlayın." + "value" : "Kullanılacak cilt tonu" } } } }, "app.settings.keyboard.functionality.delete_word_by_word" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -6477,6 +6547,7 @@ }, "app.settings.keyboard.functionality.delete_word_by_word_description" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -6726,6 +6797,7 @@ }, "app.settings.keyboard.functionality.hold_for_alt_chars" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -6809,6 +6881,7 @@ }, "app.settings.keyboard.functionality.hold_for_alt_chars_description" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -6892,6 +6965,7 @@ }, "app.settings.keyboard.functionality.popup_on_keypress" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -6975,6 +7049,7 @@ }, "app.settings.keyboard.functionality.popup_on_keypress_description" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -7058,6 +7133,7 @@ }, "app.settings.keyboard.functionality.punctuation_spacing" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -7141,6 +7217,7 @@ }, "app.settings.keyboard.functionality.punctuation_spacing_description" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -7307,6 +7384,7 @@ }, "app.settings.keyboard.keypress_sound" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7318,6 +7396,7 @@ }, "app.settings.keyboard.keypress_sound_description" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7329,6 +7408,7 @@ }, "app.settings.keyboard.keypress_vibration" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -7412,6 +7492,7 @@ }, "app.settings.keyboard.keypress_vibration_description" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -7495,6 +7576,7 @@ }, "app.settings.keyboard.layout.default_currency" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -7576,174 +7658,177 @@ } } }, - "app.settings.keyboard.layout.default_currency.caption" : { + "app.settings.keyboard.layout.default_currency_description" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { "state" : "", - "value" : "رمز لمفاتيح 123" + "value" : "اختر أي رمز للعملة يظهر على مفاتيح الأرقام." } }, "bn" : { "stringUnit" : { "state" : "", - "value" : "১২৩ কীগুলির জন্য প্রতীক" + "value" : "সংখ্যার কীগুলিতে কোন মুদ্রা প্রতীক প্রদর্শিত হবে তা নির্বাচন করুন।" } }, "de" : { "stringUnit" : { "state" : "", - "value" : "Symbol für Nummerntasten" + "value" : "Auswählen, welches Währungssymbol bei den Nummerntasten auftaucht." } }, "en" : { "stringUnit" : { "state" : "", - "value" : "Symbol for the 123 keys" + "value" : "Select which currency symbol appears on the number keys." } }, "es" : { "stringUnit" : { "state" : "", - "value" : "Símbolo para las teclas 123" + "value" : "Seleccione el símbolo de moneda que aparecerá en las teclas numéricas." } }, "fr" : { "stringUnit" : { "state" : "", - "value" : "Symbole pour les touches 123" + "value" : "Sélectionner le symbole de la devise qui apparaît sur les touches numériques." } }, "hi" : { "stringUnit" : { "state" : "", - "value" : "123 कुंजियों के लिए प्रतीक" + "value" : "संख्या कुंजियों पर कौन सा मुद्रा प्रतीक दिखाई देगा, उसका चयन करें।" } }, "id" : { "stringUnit" : { "state" : "", - "value" : "Simbol untuk tombol 123" + "value" : "Pilih simbol mata uang yang ingin ditampilkan di tombol angka." } }, "ko" : { "stringUnit" : { "state" : "", - "value" : "숫자 키 기호" + "value" : "숫자 키에 어떤 통화 기호가 표시될지를 선택하세요." } }, "mr" : { "stringUnit" : { "state" : "", - "value" : "123 किजसाठी चिन्ह" + "value" : "संक्येत कुञ्जींवर कोणते चलन चिन्ह दिसेल ते निवडा." } }, "pt" : { "stringUnit" : { "state" : "", - "value" : "Símbolo para as teclas 123" + "value" : "Selecione qual símbolo de moeda aparecerá nas teclas de número." } }, "sv" : { "stringUnit" : { "state" : "", - "value" : "Symbol för 123-tangenter" + "value" : "Välj vilken valutasymbol som ska visas på sifferknapparna." } }, "tr" : { "stringUnit" : { "state" : "", - "value" : "123 tuşları için sembol" + "value" : "Sayı tuşlarında hangi para biriminin görüneceğini seçin." } } } }, - "app.settings.keyboard.layout.default_currency_description" : { + "app.settings.keyboard.layout.default_currency.caption" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { "state" : "", - "value" : "اختر أي رمز للعملة يظهر على مفاتيح الأرقام." + "value" : "رمز لمفاتيح 123" } }, "bn" : { "stringUnit" : { "state" : "", - "value" : "সংখ্যার কীগুলিতে কোন মুদ্রা প্রতীক প্রদর্শিত হবে তা নির্বাচন করুন।" + "value" : "১২৩ কীগুলির জন্য প্রতীক" } }, "de" : { "stringUnit" : { "state" : "", - "value" : "Auswählen, welches Währungssymbol bei den Nummerntasten auftaucht." + "value" : "Symbol für Nummerntasten" } }, "en" : { "stringUnit" : { "state" : "", - "value" : "Select which currency symbol appears on the number keys." + "value" : "Symbol for the 123 keys" } }, "es" : { "stringUnit" : { "state" : "", - "value" : "Seleccione el símbolo de moneda que aparecerá en las teclas numéricas." + "value" : "Símbolo para las teclas 123" } }, "fr" : { "stringUnit" : { "state" : "", - "value" : "Sélectionner le symbole de la devise qui apparaît sur les touches numériques." + "value" : "Symbole pour les touches 123" } }, "hi" : { "stringUnit" : { "state" : "", - "value" : "संख्या कुंजियों पर कौन सा मुद्रा प्रतीक दिखाई देगा, उसका चयन करें।" + "value" : "123 कुंजियों के लिए प्रतीक" } }, "id" : { "stringUnit" : { "state" : "", - "value" : "Pilih simbol mata uang yang ingin ditampilkan di tombol angka." + "value" : "Simbol untuk tombol 123" } }, "ko" : { "stringUnit" : { "state" : "", - "value" : "숫자 키에 어떤 통화 기호가 표시될지를 선택하세요." + "value" : "숫자 키 기호" } }, "mr" : { "stringUnit" : { "state" : "", - "value" : "संक्येत कुञ्जींवर कोणते चलन चिन्ह दिसेल ते निवडा." + "value" : "123 किजसाठी चिन्ह" } }, "pt" : { "stringUnit" : { "state" : "", - "value" : "Selecione qual símbolo de moeda aparecerá nas teclas de número." + "value" : "Símbolo para as teclas 123" } }, "sv" : { "stringUnit" : { "state" : "", - "value" : "Välj vilken valutasymbol som ska visas på sifferknapparna." + "value" : "Symbol för 123-tangenter" } }, "tr" : { "stringUnit" : { "state" : "", - "value" : "Sayı tuşlarında hangi para biriminin görüneceğini seçin." + "value" : "123 tuşları için sembol" } } } }, "app.settings.keyboard.layout.default_layout" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -7825,168 +7910,170 @@ } } }, - "app.settings.keyboard.layout.default_layout.caption" : { + "app.settings.keyboard.layout.default_layout_description" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { "state" : "", - "value" : "التخطيط المستخدم" + "value" : "اختر تخطيط لوحة مفاتيح يناسب تفضيلات الكتابة واحتياجات اللغة الخاصة بك." } }, "bn" : { "stringUnit" : { "state" : "", - "value" : "ব্যবহার করার জন্য লেআউট" + "value" : "আপনার টাইপিং পছন্দ এবং ভাষার প্রয়োজন অনুযায়ী কীবোর্ড বিন্যাস নির্বাচন করুন।" } }, "de" : { "stringUnit" : { "state" : "", - "value" : "Zu benutzendes Layout" + "value" : "Ein Tastaturlayout auswählen, das den eigenen Vorlieben und der Sprache entspricht." } }, "en" : { "stringUnit" : { "state" : "", - "value" : "Layout to use" + "value" : "Select a keyboard layout that suits your typing preference and language needs." } }, "es" : { "stringUnit" : { "state" : "", - "value" : "Disposición de uso" + "value" : "Selecciona una distribución para el teclado que se adapta a tus preferencias de escritura y a tus necesidades lingüísticas." } }, "fr" : { "stringUnit" : { "state" : "", - "value" : "Disposition à utiliser" + "value" : "Sélectionnez une disposition de clavier adaptée à vos préférences de frappe et à vos besoins linguistiques." } }, "hi" : { "stringUnit" : { "state" : "", - "value" : "उपयोग होने वाला लेआउट" + "value" : "एक कीबोर्ड लेआउट चुनें जो आपके टाइपिंग प्राथमिकता और भाषा आवश्यकताओं के अनुसार हो।" } }, "id" : { "stringUnit" : { "state" : "", - "value" : "Layout yang digunakan" + "value" : "Pilih layout keyboard sesuai preferensi mengetik dan kebutuhan bahasamu." } }, "ko" : { "stringUnit" : { "state" : "", - "value" : "적용할 레이아웃" + "value" : "선호도와 언어 필요에 맞는 키보드 레이아웃을 선택하세요." } }, "mr" : { "stringUnit" : { "state" : "", - "value" : "वापरले जाणारे लेआउट" + "value" : "तुमच्या टाइपिंग आवडीनुसार आणि भाषा गरजेनुसार कीबोर्ड लेआउट निवडा." } }, "pt" : { "stringUnit" : { "state" : "", - "value" : "Layout a ser usado" + "value" : "Selecione um layout de teclado conforme suas preferências de digitação e idioma." } }, "sv" : { "stringUnit" : { "state" : "", - "value" : "Layout som ska användas" + "value" : "Välj en tangentbordslayout som passar dina skrivpreferenser och språkbehov." } }, "tr" : { "stringUnit" : { "state" : "", - "value" : "Kullanılacak klavye düzeni" + "value" : "Yazma tercihlerinize ve dil ihtiyaçlarınıza uygun bir klavye düzeni seçin." } } } }, - "app.settings.keyboard.layout.default_layout_description" : { + "app.settings.keyboard.layout.default_layout.caption" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { "state" : "", - "value" : "اختر تخطيط لوحة مفاتيح يناسب تفضيلات الكتابة واحتياجات اللغة الخاصة بك." + "value" : "التخطيط المستخدم" } }, "bn" : { "stringUnit" : { "state" : "", - "value" : "আপনার টাইপিং পছন্দ এবং ভাষার প্রয়োজন অনুযায়ী কীবোর্ড বিন্যাস নির্বাচন করুন।" + "value" : "ব্যবহার করার জন্য লেআউট" } }, "de" : { "stringUnit" : { "state" : "", - "value" : "Ein Tastaturlayout auswählen, das den eigenen Vorlieben und der Sprache entspricht." + "value" : "Zu benutzendes Layout" } }, "en" : { "stringUnit" : { "state" : "", - "value" : "Select a keyboard layout that suits your typing preference and language needs." + "value" : "Layout to use" } }, "es" : { "stringUnit" : { "state" : "", - "value" : "Selecciona una distribución para el teclado que se adapta a tus preferencias de escritura y a tus necesidades lingüísticas." + "value" : "Disposición de uso" } }, "fr" : { "stringUnit" : { "state" : "", - "value" : "Sélectionnez une disposition de clavier adaptée à vos préférences de frappe et à vos besoins linguistiques." + "value" : "Disposition à utiliser" } }, "hi" : { "stringUnit" : { "state" : "", - "value" : "एक कीबोर्ड लेआउट चुनें जो आपके टाइपिंग प्राथमिकता और भाषा आवश्यकताओं के अनुसार हो।" + "value" : "उपयोग होने वाला लेआउट" } }, "id" : { "stringUnit" : { "state" : "", - "value" : "Pilih layout keyboard sesuai preferensi mengetik dan kebutuhan bahasamu." + "value" : "Layout yang digunakan" } }, "ko" : { "stringUnit" : { "state" : "", - "value" : "선호도와 언어 필요에 맞는 키보드 레이아웃을 선택하세요." + "value" : "적용할 레이아웃" } }, "mr" : { "stringUnit" : { "state" : "", - "value" : "तुमच्या टाइपिंग आवडीनुसार आणि भाषा गरजेनुसार कीबोर्ड लेआउट निवडा." + "value" : "वापरले जाणारे लेआउट" } }, "pt" : { "stringUnit" : { "state" : "", - "value" : "Selecione um layout de teclado conforme suas preferências de digitação e idioma." + "value" : "Layout a ser usado" } }, "sv" : { "stringUnit" : { "state" : "", - "value" : "Välj en tangentbordslayout som passar dina skrivpreferenser och språkbehov." + "value" : "Layout som ska användas" } }, "tr" : { "stringUnit" : { "state" : "", - "value" : "Yazma tercihlerinize ve dil ihtiyaçlarınıza uygun bir klavye düzeni seçin." + "value" : "Kullanılacak klavye düzeni" } } } @@ -8491,6 +8578,7 @@ }, "app.settings.keyboard.translation.select_source" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -8572,257 +8660,258 @@ } } }, - "app.settings.keyboard.translation.select_source.caption" : { + "app.settings.keyboard.translation.select_source_description" : { "comment" : "", "localizations" : { "ar" : { "stringUnit" : { "state" : "", - "value" : "ما هي اللغة المصدر" + "value" : "تغيير اللغة للترجمة منها." } }, "bn" : { "stringUnit" : { "state" : "", - "value" : "উৎস ভাষা কী" + "value" : "যে ভাষা থেকে অনুবাদ করা হবে তা পরিবর্তন করুন।" } }, "de" : { "stringUnit" : { "state" : "", - "value" : "Die verwendete Ausgangssprache" + "value" : "Wähle die Sprache, von der übersetzt wird." } }, "en" : { "stringUnit" : { "state" : "", - "value" : "What the source language is" + "value" : "Change the language to translate from." } }, "es" : { "stringUnit" : { "state" : "", - "value" : "¿Cuál es idioma de origen?" + "value" : "Elige un idioma para traducir" } }, "fr" : { "stringUnit" : { "state" : "", - "value" : "Langue source" + "value" : "Modifier la langue à partir de laquelle la traduction doit être effectuée." } }, "hi" : { "stringUnit" : { "state" : "", - "value" : "स्रोत भाषा क्या है" + "value" : "जिस भाषा से अनुवाद करना है, उसे बदलें।" } }, "id" : { "stringUnit" : { "state" : "", - "value" : "Apa bahasa asalnya" + "value" : "Ubah bahasa untuk diterjemahkan dari." } }, "ko" : { "stringUnit" : { "state" : "", - "value" : "원본 언어는 무엇인가요" + "value" : "번역할 언어를 변경하세요." } }, "mr" : { "stringUnit" : { "state" : "", - "value" : "स्रोत भाषा काय आहे" + "value" : "अनुवाद करायची भाषा बदला." } }, "pt" : { "stringUnit" : { "state" : "", - "value" : "O idioma de origem" + "value" : "Altere o idioma a ser traduzido." } }, "sv" : { "stringUnit" : { "state" : "", - "value" : "Vilket är källspråket" + "value" : "Välj ett språk att översätta ifrån" } }, "tr" : { "stringUnit" : { "state" : "", - "value" : "Kaynak dil nedir" + "value" : "Çevrilecek dili değiştirin." } } } }, - "app.settings.keyboard.translation.select_source.title" : { + "app.settings.keyboard.translation.select_source.caption" : { "comment" : "", "localizations" : { "ar" : { "stringUnit" : { "state" : "", - "value" : "لغة الترجمة" + "value" : "ما هي اللغة المصدر" } }, "bn" : { "stringUnit" : { "state" : "", - "value" : "অনুবাদ ভাষা" + "value" : "উৎস ভাষা কী" } }, "de" : { "stringUnit" : { "state" : "", - "value" : "Übersetzungssprache" + "value" : "Die verwendete Ausgangssprache" } }, "en" : { "stringUnit" : { "state" : "", - "value" : "Translation language" + "value" : "What the source language is" } }, "es" : { "stringUnit" : { "state" : "", - "value" : "Idioma de la traducción" + "value" : "¿Cuál es idioma de origen?" } }, "fr" : { "stringUnit" : { "state" : "", - "value" : "Langue de traduction" + "value" : "Langue source" } }, "hi" : { "stringUnit" : { "state" : "", - "value" : "अनुवाद भाषा" + "value" : "स्रोत भाषा क्या है" } }, "id" : { "stringUnit" : { "state" : "", - "value" : "Bahasa terjemahan" + "value" : "Apa bahasa asalnya" } }, "ko" : { "stringUnit" : { "state" : "", - "value" : "번역 언어" + "value" : "원본 언어는 무엇인가요" } }, "mr" : { "stringUnit" : { "state" : "", - "value" : "अनुवाद भाषा" + "value" : "स्रोत भाषा काय आहे" } }, "pt" : { "stringUnit" : { "state" : "", - "value" : "Idioma da tradução" + "value" : "O idioma de origem" } }, "sv" : { "stringUnit" : { "state" : "", - "value" : "Språk för översättning" + "value" : "Vilket är källspråket" } }, "tr" : { "stringUnit" : { "state" : "", - "value" : "Çeviri dili" + "value" : "Kaynak dil nedir" } } } }, - "app.settings.keyboard.translation.select_source_description" : { + "app.settings.keyboard.translation.select_source.title" : { "comment" : "", "localizations" : { "ar" : { "stringUnit" : { "state" : "", - "value" : "تغيير اللغة للترجمة منها." + "value" : "لغة الترجمة" } }, "bn" : { "stringUnit" : { "state" : "", - "value" : "যে ভাষা থেকে অনুবাদ করা হবে তা পরিবর্তন করুন।" + "value" : "অনুবাদ ভাষা" } }, "de" : { "stringUnit" : { "state" : "", - "value" : "Wähle die Sprache, von der übersetzt wird." + "value" : "Übersetzungssprache" } }, "en" : { "stringUnit" : { "state" : "", - "value" : "Change the language to translate from." + "value" : "Translation language" } }, "es" : { "stringUnit" : { "state" : "", - "value" : "Elige un idioma para traducir" + "value" : "Idioma de la traducción" } }, "fr" : { "stringUnit" : { "state" : "", - "value" : "Modifier la langue à partir de laquelle la traduction doit être effectuée." + "value" : "Langue de traduction" } }, "hi" : { "stringUnit" : { "state" : "", - "value" : "जिस भाषा से अनुवाद करना है, उसे बदलें।" + "value" : "अनुवाद भाषा" } }, "id" : { "stringUnit" : { "state" : "", - "value" : "Ubah bahasa untuk diterjemahkan dari." + "value" : "Bahasa terjemahan" } }, "ko" : { "stringUnit" : { "state" : "", - "value" : "번역할 언어를 변경하세요." + "value" : "번역 언어" } }, "mr" : { "stringUnit" : { "state" : "", - "value" : "अनुवाद करायची भाषा बदला." + "value" : "अनुवाद भाषा" } }, "pt" : { "stringUnit" : { "state" : "", - "value" : "Altere o idioma a ser traduzido." + "value" : "Idioma da tradução" } }, "sv" : { "stringUnit" : { "state" : "", - "value" : "Välj ett språk att översätta ifrån" + "value" : "Språk för översättning" } }, "tr" : { "stringUnit" : { "state" : "", - "value" : "Çevrilecek dili değiştirin." + "value" : "Çeviri dili" } } } }, "app.settings.keyboard.translation.title" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -8906,6 +8995,7 @@ }, "app.settings.menu.app_color_mode" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -8989,6 +9079,7 @@ }, "app.settings.menu.app_color_mode_description" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -9153,340 +9244,344 @@ } } }, - "app.settings.menu.app_language.caption" : { + "app.settings.menu.app_language_description" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { "state" : "", - "value" : "اختر لغة لنصوص التطبيق" + "value" : "تغيير اللغة التي يتم بها عرض تطبيق Scribe." } }, "bn" : { "stringUnit" : { "state" : "", - "value" : "অ্যাপের টেক্সটগুলির জন্য ভাষা নির্বাচন করুন" + "value" : "Scribe অ্যাপ কোন ভাষায় থাকবে তা পরিবর্তন করুন।" } }, "de" : { "stringUnit" : { "state" : "", - "value" : "App-Sprache auswählen" + "value" : "Ändern, welche Sprache für die Scribe-App benutzt wird." } }, "en" : { "stringUnit" : { "state" : "", - "value" : "Select language for app texts" + "value" : "Change which language the Scribe app is in." } }, "es" : { "stringUnit" : { "state" : "", - "value" : "Selecciona el idioma de los textos de la aplicación" + "value" : "Cambiar el idioma de la aplicación Scribe." } }, "fr" : { "stringUnit" : { "state" : "", - "value" : "Sélectionner la langue des textes de l'application" + "value" : "Modifier la langue de l'application Scribe." } }, "hi" : { "stringUnit" : { "state" : "", - "value" : "ऐप टेक्स्ट के लिए भाषा चुनें" + "value" : "स्क्राइब ऐप किस भाषा में होगा, उसे बदलें।" } }, "id" : { "stringUnit" : { "state" : "", - "value" : "Pilih bahasa untuk tampilan teks aplikasi. " + "value" : "Ubah bahasa yang digunakan pada aplikasi Scribe" } }, "ko" : { "stringUnit" : { "state" : "", - "value" : "앱에서 사용할 언어 선택" + "value" : "Scribe 앱에서 사용할 언어를 변경합니다." } }, "mr" : { "stringUnit" : { "state" : "", - "value" : "अ‍ॅप टेक्स्टसाठी भाषा निवडा" + "value" : "स्क्राइब अ‍ॅप कोणत्या भाषेत असेल ते बदला." } }, "pt" : { "stringUnit" : { "state" : "", - "value" : "Selecione o idioma para os textos do aplicativo" + "value" : "Altere o idioma do aplicativo Scribe." } }, "sv" : { "stringUnit" : { "state" : "", - "value" : "Välj språk för apptexter" + "value" : "Ändra vilket språk Scribe-appen är på." } }, "tr" : { "stringUnit" : { "state" : "", - "value" : "Uygulama metinleri için dil seçin" + "value" : "Scribe uygulamasının hangi dilde olduğunu değiştirin." } } } }, - "app.settings.menu.app_language.one_device_language_warning.message" : { + "app.settings.menu.app_language.caption" : { "comment" : "", "localizations" : { "ar" : { "stringUnit" : { "state" : "", - "value" : "لديك لغة واحدة فقط مثبتة على جهازك. يرجى تثبيت المزيد من اللغات في الإعدادات ثم يمكنك تحديد الترجمات المختلفة لتطبيق Scribe." + "value" : "اختر لغة لنصوص التطبيق" } }, "bn" : { "stringUnit" : { "state" : "", - "value" : "আপনার ডিভাইসে শুধুমাত্র একটি ভাষা ইনস্টল করা আছে। দয়া করে সেটিংসে আরও ভাষা ইনস্টল করুন, তারপর আপনি Scribe-এর বিভিন্ন localizations নির্বাচন করতে পারবেন।" + "value" : "অ্যাপের টেক্সটগুলির জন্য ভাষা নির্বাচন করুন" } }, "de" : { "stringUnit" : { "state" : "", - "value" : "Auf Ihrem Gerät ist nur eine Sprache installiert. Bitte installieren Sie weitere Sprachen in den Einstellungen. Anschließend können Sie verschiedene Lokalisierungen von Scribe auswählen." + "value" : "App-Sprache auswählen" } }, "en" : { "stringUnit" : { "state" : "", - "value" : "You only have one language installed on your device. Please install more languages in Settings and then you can select different localizations of Scribe." + "value" : "Select language for app texts" } }, "es" : { "stringUnit" : { "state" : "", - "value" : "Solo tienes un idioma instalado en tu dispositivo. Instala más idiomas en Configuración y luego podrás seleccionar diferentes localizaciones de Scribe." + "value" : "Selecciona el idioma de los textos de la aplicación" } }, "fr" : { "stringUnit" : { "state" : "", - "value" : "Une seule langue est installée sur votre appareil. Veuillez installer d'autres langues dans les Paramètres et vous pourrez alors sélectionner différentes langues de Scribe." + "value" : "Sélectionner la langue des textes de l'application" } }, "hi" : { "stringUnit" : { "state" : "", - "value" : "आपके डिवाइस पर केवल एक भाषा स्थापित है। कृपया सेटिंग्स में अधिक भाषाएँ स्थापित करें और फिर आप स्क्राइब के विभिन्न स्थानीयकरण का चयन कर सकते हैं।" + "value" : "ऐप टेक्स्ट के लिए भाषा चुनें" } }, "id" : { "stringUnit" : { "state" : "", - "value" : "Kamu hanya memiliki satu bahasa yang terpasang di perangkatmu. Silakan pasang lebih banyak bahasa di Pengaturan dan kamu akan bisa memilih lokalisasi Scribe yang berbeda." + "value" : "Pilih bahasa untuk tampilan teks aplikasi. " } }, "ko" : { "stringUnit" : { "state" : "", - "value" : "현재 기기에 설치된 언어는 하나뿐입니다. 설정에서 추가 언어를 설치한 후 Scribe의 다양한 지역화를 선택할 수 있습니다." + "value" : "앱에서 사용할 언어 선택" } }, "mr" : { "stringUnit" : { "state" : "", - "value" : "तुमच्या डिव्हाइसवर फक्त एक भाषा स्थापित आहे. कृपया सेटिंग्जमध्ये अधिक भाषांचे संयोजन स्थापित करा आणि नंतर तुम्ही स्क्राइबच्या वेगवेगळ्या स्थानिकीकरण निवडू शकता." + "value" : "अ‍ॅप टेक्स्टसाठी भाषा निवडा" } }, "pt" : { "stringUnit" : { "state" : "", - "value" : "Você tem apenas um idioma instalado no seu dispositivo. Por favor, instale mais idiomas nas Configurações para então selecionar diferentes versões de idioma do Scribe." + "value" : "Selecione o idioma para os textos do aplicativo" } }, "sv" : { "stringUnit" : { "state" : "", - "value" : "Du har bara ett språk installerat på din enhet. Installera fler språk i Inställningar och efter det kan du välja olika lokaliseringar av Scribe." + "value" : "Välj språk för apptexter" } }, "tr" : { "stringUnit" : { "state" : "", - "value" : "Cihazınızda yalnızca bir dil yüklü. Ayarlardan daha fazla dil yükleyin ve ardından Scribe'ın farklı yerelleştirmelerini seçin." + "value" : "Uygulama metinleri için dil seçin" } } } }, - "app.settings.menu.app_language.one_device_language_warning.title" : { + "app.settings.menu.app_language.one_device_language_warning.message" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { "state" : "", - "value" : "لغة جهاز واحدة فقط" + "value" : "لديك لغة واحدة فقط مثبتة على جهازك. يرجى تثبيت المزيد من اللغات في الإعدادات ثم يمكنك تحديد الترجمات المختلفة لتطبيق Scribe." } }, "bn" : { "stringUnit" : { "state" : "", - "value" : "শুধুমাত্র একটি ডিভাইসের ভাষা" + "value" : "আপনার ডিভাইসে শুধুমাত্র একটি ভাষা ইনস্টল করা আছে। দয়া করে সেটিংসে আরও ভাষা ইনস্টল করুন, তারপর আপনি Scribe-এর বিভিন্ন localizations নির্বাচন করতে পারবেন।" } }, "de" : { "stringUnit" : { "state" : "", - "value" : "Nur eine Gerätesprache" + "value" : "Auf Ihrem Gerät ist nur eine Sprache installiert. Bitte installieren Sie weitere Sprachen in den Einstellungen. Anschließend können Sie verschiedene Lokalisierungen von Scribe auswählen." } }, "en" : { "stringUnit" : { "state" : "", - "value" : "Only one device language" + "value" : "You only have one language installed on your device. Please install more languages in Settings and then you can select different localizations of Scribe." } }, "es" : { "stringUnit" : { "state" : "", - "value" : "Solo un idioma para el dispositivo" + "value" : "Solo tienes un idioma instalado en tu dispositivo. Instala más idiomas en Configuración y luego podrás seleccionar diferentes localizaciones de Scribe." } }, "fr" : { "stringUnit" : { "state" : "", - "value" : "Une seule langue pour l'appareil" + "value" : "Une seule langue est installée sur votre appareil. Veuillez installer d'autres langues dans les Paramètres et vous pourrez alors sélectionner différentes langues de Scribe." } }, "hi" : { "stringUnit" : { "state" : "", - "value" : "केवल एक डिवाइस भाषा" + "value" : "आपके डिवाइस पर केवल एक भाषा स्थापित है। कृपया सेटिंग्स में अधिक भाषाएँ स्थापित करें और फिर आप स्क्राइब के विभिन्न स्थानीयकरण का चयन कर सकते हैं।" } }, "id" : { "stringUnit" : { "state" : "", - "value" : "Hanya satu bahasa perangkat" + "value" : "Kamu hanya memiliki satu bahasa yang terpasang di perangkatmu. Silakan pasang lebih banyak bahasa di Pengaturan dan kamu akan bisa memilih lokalisasi Scribe yang berbeda." } }, "ko" : { "stringUnit" : { "state" : "", - "value" : "기기 언어가 하나뿐입니다." + "value" : "현재 기기에 설치된 언어는 하나뿐입니다. 설정에서 추가 언어를 설치한 후 Scribe의 다양한 지역화를 선택할 수 있습니다." } }, "mr" : { "stringUnit" : { "state" : "", - "value" : "फक्त एक डिव्हाइस भाषा" + "value" : "तुमच्या डिव्हाइसवर फक्त एक भाषा स्थापित आहे. कृपया सेटिंग्जमध्ये अधिक भाषांचे संयोजन स्थापित करा आणि नंतर तुम्ही स्क्राइबच्या वेगवेगळ्या स्थानिकीकरण निवडू शकता." } }, "pt" : { "stringUnit" : { "state" : "", - "value" : "Apenas um idioma no dispositivo" + "value" : "Você tem apenas um idioma instalado no seu dispositivo. Por favor, instale mais idiomas nas Configurações para então selecionar diferentes versões de idioma do Scribe." } }, "sv" : { "stringUnit" : { "state" : "", - "value" : "Endast ett enhetsspråk" + "value" : "Du har bara ett språk installerat på din enhet. Installera fler språk i Inställningar och efter det kan du välja olika lokaliseringar av Scribe." } }, "tr" : { "stringUnit" : { "state" : "", - "value" : "Yalnızca bir cihaz dili" + "value" : "Cihazınızda yalnızca bir dil yüklü. Ayarlardan daha fazla dil yükleyin ve ardından Scribe'ın farklı yerelleştirmelerini seçin." } } } }, - "app.settings.menu.app_language_description" : { + "app.settings.menu.app_language.one_device_language_warning.title" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { "state" : "", - "value" : "تغيير اللغة التي يتم بها عرض تطبيق Scribe." + "value" : "لغة جهاز واحدة فقط" } }, "bn" : { "stringUnit" : { "state" : "", - "value" : "Scribe অ্যাপ কোন ভাষায় থাকবে তা পরিবর্তন করুন।" + "value" : "শুধুমাত্র একটি ডিভাইসের ভাষা" } }, "de" : { "stringUnit" : { "state" : "", - "value" : "Ändern, welche Sprache für die Scribe-App benutzt wird." + "value" : "Nur eine Gerätesprache" } }, "en" : { "stringUnit" : { "state" : "", - "value" : "Change which language the Scribe app is in." + "value" : "Only one device language" } }, "es" : { "stringUnit" : { "state" : "", - "value" : "Cambiar el idioma de la aplicación Scribe." + "value" : "Solo un idioma para el dispositivo" } }, "fr" : { "stringUnit" : { "state" : "", - "value" : "Modifier la langue de l'application Scribe." + "value" : "Une seule langue pour l'appareil" } }, "hi" : { "stringUnit" : { "state" : "", - "value" : "स्क्राइब ऐप किस भाषा में होगा, उसे बदलें।" + "value" : "केवल एक डिवाइस भाषा" } }, "id" : { "stringUnit" : { "state" : "", - "value" : "Ubah bahasa yang digunakan pada aplikasi Scribe" + "value" : "Hanya satu bahasa perangkat" } }, "ko" : { "stringUnit" : { "state" : "", - "value" : "Scribe 앱에서 사용할 언어를 변경합니다." + "value" : "기기 언어가 하나뿐입니다." } }, "mr" : { "stringUnit" : { "state" : "", - "value" : "स्क्राइब अ‍ॅप कोणत्या भाषेत असेल ते बदला." + "value" : "फक्त एक डिव्हाइस भाषा" } }, "pt" : { "stringUnit" : { "state" : "", - "value" : "Altere o idioma do aplicativo Scribe." + "value" : "Apenas um idioma no dispositivo" } }, "sv" : { "stringUnit" : { "state" : "", - "value" : "Ändra vilket språk Scribe-appen är på." + "value" : "Endast ett enhetsspråk" } }, "tr" : { "stringUnit" : { "state" : "", - "value" : "Scribe uygulamasının hangi dilde olduğunu değiştirin." + "value" : "Yalnızca bir cihaz dili" } } } }, "app.settings.menu.high_color_contrast" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -9570,6 +9665,7 @@ }, "app.settings.menu.high_color_contrast_description" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -9653,6 +9749,7 @@ }, "app.settings.menu.increase_text_size" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -9736,6 +9833,7 @@ }, "app.settings.menu.increase_text_size_description" : { "comment" : "", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -10316,5 +10414,5 @@ } } }, - "version" : "1.0" -} + "version" : "1.1" +} \ No newline at end of file From 40388fd5c29739f3ba9141e1812f5effc54afafc Mon Sep 17 00:00:00 2001 From: Prince Yadav <66916296+prince-0408@users.noreply.github.com> Date: Sat, 20 Dec 2025 03:22:02 +0530 Subject: [PATCH 2/2] Fix UI unresponsiveness when switching translation language (#554) - Fixed UI freezing issue when switching translation languages - Improved responsiveness during language selection process - Ensures smooth user experience when changing translation settings Fixes #554 --- Keyboards/KeyboardsBase/InterfaceVariables.swift | 1 + Scribe/SettingsTab/SettingsTableData.swift | 16 ++++++++++------ Scribe/i18n/Scribe-i18n/Localizable.xcstrings | 11 +++++++++++ 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/Keyboards/KeyboardsBase/InterfaceVariables.swift b/Keyboards/KeyboardsBase/InterfaceVariables.swift index 967bacee..9bcfe448 100644 --- a/Keyboards/KeyboardsBase/InterfaceVariables.swift +++ b/Keyboards/KeyboardsBase/InterfaceVariables.swift @@ -155,6 +155,7 @@ let languagesAbbrDict = [ ] let languagesStringDict = [ + "Danish": NSLocalizedString("app._global.danish", value: "Danish", comment: ""), "English": NSLocalizedString("app._global.english", value: "English", comment: ""), "French": NSLocalizedString("app._global.french", value: "French", comment: ""), "German": NSLocalizedString("app._global.german", value: "German", comment: ""), diff --git a/Scribe/SettingsTab/SettingsTableData.swift b/Scribe/SettingsTab/SettingsTableData.swift index 5f361d33..a63f6a40 100644 --- a/Scribe/SettingsTab/SettingsTableData.swift +++ b/Scribe/SettingsTab/SettingsTableData.swift @@ -102,11 +102,13 @@ enum SettingsTableData { var sections = [Section]() for lang in installedKeyboards { - guard let abbreviation = languagesAbbrDict[lang] else { - fatalError("Abbreviation not found for language: \(lang)") + guard let abbreviation = languagesAbbrDict[lang], + let title = languagesStringDict[lang] else { + continue } + let newSection = Section( - sectionTitle: languagesStringDict[lang]!, + sectionTitle: title, sectionState: .specificLang(abbreviation) ) @@ -120,11 +122,13 @@ enum SettingsTableData { var sections = [Section]() for lang in languagesAbbrDict.keys.sorted() { - guard let abbreviation = languagesAbbrDict[lang] else { - fatalError("Abbreviation not found for language: \(lang)") + guard let abbreviation = languagesAbbrDict[lang], + let title = languagesStringDict[lang] else { + continue } + let newSection = Section( - sectionTitle: languagesStringDict[lang]!, + sectionTitle: title, sectionState: .specificLang(abbreviation) ) diff --git a/Scribe/i18n/Scribe-i18n/Localizable.xcstrings b/Scribe/i18n/Scribe-i18n/Localizable.xcstrings index dc50ec5e..994014a6 100644 --- a/Scribe/i18n/Scribe-i18n/Localizable.xcstrings +++ b/Scribe/i18n/Scribe-i18n/Localizable.xcstrings @@ -1,6 +1,17 @@ { "sourceLanguage" : "en", "strings" : { + "app._global.danish" : { + "extractionState" : "extracted_with_value", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Danish" + } + } + } + }, "app._global.english" : { "comment" : "", "localizations" : {