diff --git a/composeApp/src/commonMain/kotlin/com/rafaelfelipeac/replyradar/core/language/AppLanguage.kt b/composeApp/src/commonMain/kotlin/com/rafaelfelipeac/replyradar/core/language/AppLanguage.kt index 5c92c91..9387726 100644 --- a/composeApp/src/commonMain/kotlin/com/rafaelfelipeac/replyradar/core/language/AppLanguage.kt +++ b/composeApp/src/commonMain/kotlin/com/rafaelfelipeac/replyradar/core/language/AppLanguage.kt @@ -3,6 +3,9 @@ package com.rafaelfelipeac.replyradar.core.language enum class AppLanguage { ENGLISH, PORTUGUESE, + GERMAN, + FRENCH, + SPANISH, SYSTEM; companion object { diff --git a/composeApp/src/commonMain/kotlin/com/rafaelfelipeac/replyradar/core/strings/Strings.kt b/composeApp/src/commonMain/kotlin/com/rafaelfelipeac/replyradar/core/strings/Strings.kt index 6026bfb..a3781e5 100644 --- a/composeApp/src/commonMain/kotlin/com/rafaelfelipeac/replyradar/core/strings/Strings.kt +++ b/composeApp/src/commonMain/kotlin/com/rafaelfelipeac/replyradar/core/strings/Strings.kt @@ -61,6 +61,9 @@ interface Strings { val settingsLanguage: String val settingsLanguageEnglish: String val settingsLanguagePortuguese: String + val settingsLanguageGerman: String + val settingsLanguageFrench: String + val settingsLanguageSpanish: String val settingsLanguageSystem: String val settingsFeedbackTitle: String val settingsFeedbackDescription: String diff --git a/composeApp/src/commonMain/kotlin/com/rafaelfelipeac/replyradar/core/strings/StringsDe.kt b/composeApp/src/commonMain/kotlin/com/rafaelfelipeac/replyradar/core/strings/StringsDe.kt new file mode 100644 index 0000000..14b2f33 --- /dev/null +++ b/composeApp/src/commonMain/kotlin/com/rafaelfelipeac/replyradar/core/strings/StringsDe.kt @@ -0,0 +1,129 @@ +@file:Suppress("MaxLineLength") + +package com.rafaelfelipeac.replyradar.core.strings + +import com.rafaelfelipeac.replyradar.core.version.getAppVersion + +// ktlint-disable max-line-length +object StringsDe : Strings { + override val appName = "Reply Radar" + + override val genericErrorMessage = "Ein unerwarteter Fehler ist aufgetreten." + + override val replyListActivityLog = "Aktivitätsprotokoll" + override val replyListTabOnTheRadar = "Auf dem Radar" + override val replyListTabResolved = "Erledigt" + override val replyListTabArchived = "Archiviert" + override val replyListPlaceholderOnTheRadar = + "Momentan nichts auf dem Radar!\nWie wäre es, etwas hinzuzufügen?" + override val replyListGetRepliesError = "Antworten konnten nicht geladen werden. Bitte versuche es erneut." + override val replyListPlaceholderResolved = + "Noch keine erledigten Antworten.\nZeit, etwas zu erledigen?" + override val replyListPlaceholderArchived = + "Archiv sieht leer aus!\nZeit, dein Radar zu leeren?" + override val replyListBottomSheetName = "Name" + override val replyListBottomSheetSubject = "Betreff" + override val replyListBottomSheetAdd = "Hinzufügen" + override val replyListBottomSheetSave = "Speichern" + override val replyListBottomSheetResolve = "Erledigen" + override val replyListBottomSheetReopen = "Wieder öffnen" + override val replyListBottomSheetArchive = "Archivieren" + override val replyListBottomSheetUnarchive = "Dearchivieren" + override val replyListBottomSheetDelete = "Löschen" + override val replyListItemResolve = "Erledigen" + override val replyListItemCreatedAt = "Erstellt am: %1" + override val replyListItemUpdatedAt = "Aktualisiert am: %1" + override val replyListItemResolvedAt = "Erledigt am: %1" + override val replyListItemArchivedAt = "Archiviert am: %1" + override val replyListFabContentDescription = "Füge eine neue Antwort zu deinem Radar hinzu." + override val replyListDeleteDialogTitle = "Bist du sicher?" + override val replyListDeleteDialogDescription = "Diese Aktion löscht \"%1\" dauerhaft und kann nicht rückgängig gemacht werden." + override val replyListDeleteDialogConfirm = "Löschen" + override val replyListDeleteDialogDismiss = "Abbrechen" + override val replyListSnackbarArchived = "Element erfolgreich archiviert." + override val replyListSnackbarRemoved = "Element dauerhaft gelöscht." + override val replyListSnackbarReopened = "Element wieder geöffnet und zurück auf dem Radar." + override val replyListSnackbarResolved = "Element als erledigt markiert." + override val replyListSnackbarUnarchived = "Element erfolgreich dearchiviert." + override val replyListReminder = "Erinnerung" + override val replyListReminderSet = "Erinnerung eingestellt für:" + override val replyListReminderSetSeparator = "%1 um %2" + override val replyListReminderToday = "heute" + override val replyListReminderTomorrow = "morgen" + override val replyListReminderTimeIconContentDescription = "Zeit" + override val replyListReminderDateIconContentDescription = "Datum" + override val replyListReminderCloseIconContentDescription = "Schließen" + override val replyListReminderInvalidDateTime = "Das ausgewählte Datum und die Uhrzeit sind bereits vergangen." + override val replyListReminderTimePickerTitle = "Zeit auswählen" + override val replyListReminderTimePickerConfirmButton = "OK" + override val replyListReminderTimePickerDismissButton = "Abbrechen" + override val replyListReminderDatePickerConfirmButton = "OK" + override val replyListReminderDatePickerDismissButton = "Abbrechen" + + override val settingsTitle = "Einstellungen" + override val settingsBackButton = "Zurück" + override val settingsTheme = "Thema" + override val settingsThemeLight = "Hell" + override val settingsThemeDark = "Dunkel" + override val settingsThemeSystem = "Systemstandard verwenden" + override val settingsLanguage = "Sprache" + override val settingsLanguageEnglish = "Englisch" + override val settingsLanguagePortuguese = "Portugiesisch" + override val settingsLanguageGerman = "Deutsch" + override val settingsLanguageFrench = "Französisch" + override val settingsLanguageSpanish = "Spanisch" + override val settingsLanguageSystem = "Systemstandard verwenden" + override val settingsFeedbackTitle = "Feedback" + override val settingsFeedbackDescription = + "Sende uns eine E-Mail mit Fragen, Vorschlägen oder um einen Fehler zu melden. Dein Feedback hilft, Reply Radar zu verbessern!" + override val settingsFeedbackEmailSubject = "Reply Radar - Feedback & Vorschläge" + override val settingsFeedbackEmailBody = """ +Hallo! + +Fühle dich frei, deine Fragen, Vorschläge zu teilen oder einen Fehler zu melden. + +Jedes Feedback ist sehr willkommen :) + +--- + +App-Version: ${getAppVersion()} + """.trimIndent() + override val settingsRateTitle = "App bewerten" + override val settingsRateDescription = + "Gefällt dir Reply Radar? Hinterlasse eine Bewertung im Play Store und hilf anderen, die App zu entdecken!" + override val settingsAppVersion = "Reply Radar - Version:" + + override val activityLogTitle = "Aktivitätsprotokoll" + override val activityLogBackButton = "Zurück" + override val activityLogItemContentDescription = "Aktivitätsprotokollelement" + override val activityLogPlaceholder = + "Noch keine Aktivität!\nDein Radar wartet auf Aktion." + override val activityLogGetActivityLogsError = + "Aktivitätsprotokoll konnte nicht geladen werden. Bitte versuche es erneut." + override val activityLogMessageFormat = "Du hast %1 %2" + override val activityLogMessageItem = "das Element \"%1\"." + override val activityLogMessageItemRemoved = "ein Element, das nicht mehr existiert." + override val activityLogUserActionArchiveVerb = "archiviert" + override val activityLogUserActionCreateVerb = "erstellt" + override val activityLogUserActionDeleteVerb = "gelöscht" + override val activityLogUserActionEditVerb = "bearbeitet" + override val activityLogUserActionReopenVerb = "wieder geöffnet" + override val activityLogUserActionResolveVerb = "erledigt" + override val activityLogUserActionUnarchiveVerb = "dearchiviert" + override val activityLogUserActionOpenVerb = "geöffnet" + override val activityLogUserActionScheduledVerb = "eine Erinnerung geplant für" + override val activityLogUserActionOpenedNotificationVerb = "eine Benachrichtigung geöffnet für" + override val activityLogUserActionTheme = "Du hast das App-Thema gewechselt." + override val activityLogUserActionLanguage = "Du hast die App-Sprache geändert." + override val activityLogUserActionFeedback = "Du hast Feedback zur App gegeben." + override val activityLogUserActionRate = "Du hast die App bewertet." + + override val notificationPermissionDialogTitle = "Benachrichtigungsberechtigung" + override val notificationPermissionDialogDescription = "Um dich daran zu erinnern, auf deine Nachrichten zu antworten, benötigen wir die Berechtigung, Benachrichtigungen zu senden. \n\nDu kannst sie in den App-Einstellungen aktivieren." + override val notificationPermissionDialogConfirmButton = "Einstellungen öffnen" + override val notificationPermissionDialogDismissButton = "Verstanden" + override val notificationTitle = "Hey, wie wäre es mit einer Antwort an %1?" + override val notificationContent = "%1 wartet auf deine Antwort zu \"%2\"." + override val notificationContentWithoutSubject = "%1 wartet auf deine Antwort." +} +// ktlint-enable max-line-length diff --git a/composeApp/src/commonMain/kotlin/com/rafaelfelipeac/replyradar/core/strings/StringsEn.kt b/composeApp/src/commonMain/kotlin/com/rafaelfelipeac/replyradar/core/strings/StringsEn.kt index ca64cd6..ccf600e 100644 --- a/composeApp/src/commonMain/kotlin/com/rafaelfelipeac/replyradar/core/strings/StringsEn.kt +++ b/composeApp/src/commonMain/kotlin/com/rafaelfelipeac/replyradar/core/strings/StringsEn.kt @@ -69,6 +69,9 @@ object StringsEn : Strings { override val settingsLanguage = "Language" override val settingsLanguageEnglish = "English" override val settingsLanguagePortuguese = "Portuguese" + override val settingsLanguageGerman = "German" + override val settingsLanguageFrench = "French" + override val settingsLanguageSpanish = "Spanish" override val settingsLanguageSystem = "Use system default" override val settingsFeedbackTitle = "Feedback" override val settingsFeedbackDescription = diff --git a/composeApp/src/commonMain/kotlin/com/rafaelfelipeac/replyradar/core/strings/StringsEs.kt b/composeApp/src/commonMain/kotlin/com/rafaelfelipeac/replyradar/core/strings/StringsEs.kt new file mode 100644 index 0000000..3e38991 --- /dev/null +++ b/composeApp/src/commonMain/kotlin/com/rafaelfelipeac/replyradar/core/strings/StringsEs.kt @@ -0,0 +1,129 @@ +@file:Suppress("MaxLineLength") + +package com.rafaelfelipeac.replyradar.core.strings + +import com.rafaelfelipeac.replyradar.core.version.getAppVersion + +// ktlint-disable max-line-length +object StringsEs : Strings { + override val appName = "Reply Radar" + + override val genericErrorMessage = "Ocurrió un error inesperado." + + override val replyListActivityLog = "Registro de actividad" + override val replyListTabOnTheRadar = "En el radar" + override val replyListTabResolved = "Resuelto" + override val replyListTabArchived = "Archivado" + override val replyListPlaceholderOnTheRadar = + "¡Nada en el radar por ahora!\n¿Qué tal si agregas algo?" + override val replyListGetRepliesError = "No se pudieron cargar tus respuestas. Inténtalo de nuevo." + override val replyListPlaceholderResolved = + "Aún no hay respuestas resueltas.\n¿Es hora de hacer algo?" + override val replyListPlaceholderArchived = + "¡El archivo se ve vacío!\n¿Es hora de limpiar tu radar?" + override val replyListBottomSheetName = "Nombre" + override val replyListBottomSheetSubject = "Asunto" + override val replyListBottomSheetAdd = "Agregar" + override val replyListBottomSheetSave = "Guardar" + override val replyListBottomSheetResolve = "Resolver" + override val replyListBottomSheetReopen = "Reabrir" + override val replyListBottomSheetArchive = "Archivar" + override val replyListBottomSheetUnarchive = "Desarchivar" + override val replyListBottomSheetDelete = "Eliminar" + override val replyListItemResolve = "Resolver" + override val replyListItemCreatedAt = "Creado el: %1" + override val replyListItemUpdatedAt = "Actualizado el: %1" + override val replyListItemResolvedAt = "Resuelto el: %1" + override val replyListItemArchivedAt = "Archivado el: %1" + override val replyListFabContentDescription = "Agrega una nueva respuesta a tu radar." + override val replyListDeleteDialogTitle = "¿Estás seguro?" + override val replyListDeleteDialogDescription = "Esta acción eliminará permanentemente \"%1\" y no se puede deshacer." + override val replyListDeleteDialogConfirm = "Eliminar" + override val replyListDeleteDialogDismiss = "Cancelar" + override val replyListSnackbarArchived = "Elemento archivado con éxito." + override val replyListSnackbarRemoved = "Elemento eliminado permanentemente." + override val replyListSnackbarReopened = "Elemento reabierto y de vuelta en el radar." + override val replyListSnackbarResolved = "Elemento marcado como resuelto." + override val replyListSnackbarUnarchived = "Elemento desarchivado con éxito." + override val replyListReminder = "Recordatorio" + override val replyListReminderSet = "Recordatorio establecido para:" + override val replyListReminderSetSeparator = "%1 a las %2" + override val replyListReminderToday = "hoy" + override val replyListReminderTomorrow = "mañana" + override val replyListReminderTimeIconContentDescription = "Hora" + override val replyListReminderDateIconContentDescription = "Fecha" + override val replyListReminderCloseIconContentDescription = "Cerrar" + override val replyListReminderInvalidDateTime = "La fecha y hora seleccionadas ya pasaron." + override val replyListReminderTimePickerTitle = "Seleccionar hora" + override val replyListReminderTimePickerConfirmButton = "Aceptar" + override val replyListReminderTimePickerDismissButton = "Cancelar" + override val replyListReminderDatePickerConfirmButton = "Aceptar" + override val replyListReminderDatePickerDismissButton = "Cancelar" + + override val settingsTitle = "Configuración" + override val settingsBackButton = "Atrás" + override val settingsTheme = "Tema" + override val settingsThemeLight = "Claro" + override val settingsThemeDark = "Oscuro" + override val settingsThemeSystem = "Usar predeterminado del sistema" + override val settingsLanguage = "Idioma" + override val settingsLanguageEnglish = "Inglés" + override val settingsLanguagePortuguese = "Portugués" + override val settingsLanguageGerman = "Alemán" + override val settingsLanguageFrench = "Francés" + override val settingsLanguageSpanish = "Español" + override val settingsLanguageSystem = "Usar predeterminado del sistema" + override val settingsFeedbackTitle = "Comentarios" + override val settingsFeedbackDescription = + "Envíanos un correo electrónico con preguntas, sugerencias o para informar un error. ¡Tus comentarios ayudan a mejorar Reply Radar!" + override val settingsFeedbackEmailSubject = "Reply Radar - Comentarios y Sugerencias" + override val settingsFeedbackEmailBody = """ +¡Hola! + +No dudes en compartir tus preguntas, sugerencias o informar un error. + +Todos los comentarios son muy bienvenidos :) + +--- + +Versión de la aplicación: ${getAppVersion()} + """.trimIndent() + override val settingsRateTitle = "Calificar la aplicación" + override val settingsRateDescription = + "¿Disfrutas de Reply Radar? ¡Deja una reseña en Play Store y ayuda a otros a descubrir la aplicación!" + override val settingsAppVersion = "Reply Radar - Versión:" + + override val activityLogTitle = "Registro de actividad" + override val activityLogBackButton = "Atrás" + override val activityLogItemContentDescription = "Elemento del registro de actividad" + override val activityLogPlaceholder = + "¡Aún no hay actividad!\nTu radar está esperando acción." + override val activityLogGetActivityLogsError = + "No se pudo cargar tu registro de actividad. Inténtalo de nuevo." + override val activityLogMessageFormat = "Has %1 %2" + override val activityLogMessageItem = "el elemento \"%1\"." + override val activityLogMessageItemRemoved = "un elemento que ya no existe." + override val activityLogUserActionArchiveVerb = "archivado" + override val activityLogUserActionCreateVerb = "creado" + override val activityLogUserActionDeleteVerb = "eliminado" + override val activityLogUserActionEditVerb = "editado" + override val activityLogUserActionReopenVerb = "reabierto" + override val activityLogUserActionResolveVerb = "resuelto" + override val activityLogUserActionUnarchiveVerb = "desarchivado" + override val activityLogUserActionOpenVerb = "abierto" + override val activityLogUserActionScheduledVerb = "programado un recordatorio para" + override val activityLogUserActionOpenedNotificationVerb = "abierto una notificación para" + override val activityLogUserActionTheme = "Cambiaste el tema de la aplicación." + override val activityLogUserActionLanguage = "Cambiaste el idioma de la aplicación." + override val activityLogUserActionFeedback = "Diste tu opinión sobre la aplicación." + override val activityLogUserActionRate = "Calificaste la aplicación." + + override val notificationPermissionDialogTitle = "Permiso de notificación" + override val notificationPermissionDialogDescription = "Para recordarte que respondas a tus mensajes, necesitamos permiso para enviar notificaciones. \n\nPuedes habilitarlo en la configuración de la aplicación." + override val notificationPermissionDialogConfirmButton = "Abrir configuración" + override val notificationPermissionDialogDismissButton = "Entendido" + override val notificationTitle = "¿Qué tal si le respondes a %1?" + override val notificationContent = "%1 está esperando tu respuesta sobre \"%2\"." + override val notificationContentWithoutSubject = "%1 está esperando tu respuesta." +} +// ktlint-enable max-line-length diff --git a/composeApp/src/commonMain/kotlin/com/rafaelfelipeac/replyradar/core/strings/StringsFr.kt b/composeApp/src/commonMain/kotlin/com/rafaelfelipeac/replyradar/core/strings/StringsFr.kt new file mode 100644 index 0000000..529a7db --- /dev/null +++ b/composeApp/src/commonMain/kotlin/com/rafaelfelipeac/replyradar/core/strings/StringsFr.kt @@ -0,0 +1,129 @@ +@file:Suppress("MaxLineLength") + +package com.rafaelfelipeac.replyradar.core.strings + +import com.rafaelfelipeac.replyradar.core.version.getAppVersion + +// ktlint-disable max-line-length +object StringsFr : Strings { + override val appName = "Reply Radar" + + override val genericErrorMessage = "Une erreur inattendue est survenue." + + override val replyListActivityLog = "Journal d'activité" + override val replyListTabOnTheRadar = "Sur le radar" + override val replyListTabResolved = "Résolu" + override val replyListTabArchived = "Archivé" + override val replyListPlaceholderOnTheRadar = + "Rien sur le radar pour le moment !\nEt si vous ajoutiez quelque chose ?" + override val replyListGetRepliesError = "Échec du chargement de vos réponses. Veuillez réessayer." + override val replyListPlaceholderResolved = + "Aucune réponse résolue pour le moment.\nIl est temps de passer à l'action ?" + override val replyListPlaceholderArchived = + "Les archives sont vides !\nIl est temps de vider votre radar ?" + override val replyListBottomSheetName = "Nom" + override val replyListBottomSheetSubject = "Sujet" + override val replyListBottomSheetAdd = "Ajouter" + override val replyListBottomSheetSave = "Enregistrer" + override val replyListBottomSheetResolve = "Résoudre" + override val replyListBottomSheetReopen = "Rouvrir" + override val replyListBottomSheetArchive = "Archiver" + override val replyListBottomSheetUnarchive = "Désarchiver" + override val replyListBottomSheetDelete = "Supprimer" + override val replyListItemResolve = "Résoudre" + override val replyListItemCreatedAt = "Créé le : %1" + override val replyListItemUpdatedAt = "Mis à jour le : %1" + override val replyListItemResolvedAt = "Résolu le : %1" + override val replyListItemArchivedAt = "Archivé le : %1" + override val replyListFabContentDescription = "Ajoutez une nouvelle réponse à votre radar." + override val replyListDeleteDialogTitle = "Êtes-vous sûr ?" + override val replyListDeleteDialogDescription = "Cette action supprimera définitivement \"%1\" et ne pourra pas être annulée." + override val replyListDeleteDialogConfirm = "Supprimer" + override val replyListDeleteDialogDismiss = "Annuler" + override val replyListSnackbarArchived = "Élément archivé avec succès." + override val replyListSnackbarRemoved = "Élément supprimé définitivement." + override val replyListSnackbarReopened = "Élément rouvert et de retour sur le radar." + override val replyListSnackbarResolved = "Élément marqué comme résolu." + override val replyListSnackbarUnarchived = "Élément désarchivé avec succès." + override val replyListReminder = "Rappel" + override val replyListReminderSet = "Rappel défini pour :" + override val replyListReminderSetSeparator = "%1 à %2" + override val replyListReminderToday = "aujourd'hui" + override val replyListReminderTomorrow = "demain" + override val replyListReminderTimeIconContentDescription = "Heure" + override val replyListReminderDateIconContentDescription = "Date" + override val replyListReminderCloseIconContentDescription = "Fermer" + override val replyListReminderInvalidDateTime = "La date et l'heure sélectionnées sont déjà passées." + override val replyListReminderTimePickerTitle = "Sélectionner l'heure" + override val replyListReminderTimePickerConfirmButton = "OK" + override val replyListReminderTimePickerDismissButton = "Annuler" + override val replyListReminderDatePickerConfirmButton = "OK" + override val replyListReminderDatePickerDismissButton = "Annuler" + + override val settingsTitle = "Paramètres" + override val settingsBackButton = "Retour" + override val settingsTheme = "Thème" + override val settingsThemeLight = "Clair" + override val settingsThemeDark = "Sombre" + override val settingsThemeSystem = "Utiliser le thème par défaut du système" + override val settingsLanguage = "Langue" + override val settingsLanguageEnglish = "Anglais" + override val settingsLanguagePortuguese = "Portugais" + override val settingsLanguageGerman = "Allemand" + override val settingsLanguageFrench = "Français" + override val settingsLanguageSpanish = "Espagnol" + override val settingsLanguageSystem = "Utiliser la langue par défaut du système" + override val settingsFeedbackTitle = "Commentaires" + override val settingsFeedbackDescription = + "Envoyez-nous un e-mail avec vos questions, suggestions ou pour signaler un bug. Vos commentaires aident à améliorer Reply Radar !" + override val settingsFeedbackEmailSubject = "Reply Radar - Commentaires & Suggestions" + override val settingsFeedbackEmailBody = """ +Bonjour ! + +N'hésitez pas à partager vos questions, suggestions ou à signaler un bug. + +Tous les commentaires sont les bienvenus :) + +--- + +Version de l'application : ${getAppVersion()} + """.trimIndent() + override val settingsRateTitle = "Évaluer l'application" + override val settingsRateDescription = + "Vous aimez Reply Radar ? Laissez un avis sur le Play Store et aidez les autres à découvrir l'application !" + override val settingsAppVersion = "Reply Radar - Version :" + + override val activityLogTitle = "Journal d'activité" + override val activityLogBackButton = "Retour" + override val activityLogItemContentDescription = "Élément du journal d'activité" + override val activityLogPlaceholder = + "Aucune activité pour le moment !\nVotre radar attend de l'action." + override val activityLogGetActivityLogsError = + "Échec du chargement de votre journal d'activité. Veuillez réessayer." + override val activityLogMessageFormat = "Vous avez %1 %2" + override val activityLogMessageItem = "l'élément \"%1\"." + override val activityLogMessageItemRemoved = "un élément qui n'existe plus." + override val activityLogUserActionArchiveVerb = "archivé" + override val activityLogUserActionCreateVerb = "créé" + override val activityLogUserActionDeleteVerb = "supprimé" + override val activityLogUserActionEditVerb = "modifié" + override val activityLogUserActionReopenVerb = "rouvert" + override val activityLogUserActionResolveVerb = "résolu" + override val activityLogUserActionUnarchiveVerb = "désarchivé" + override val activityLogUserActionOpenVerb = "ouvert" + override val activityLogUserActionScheduledVerb = "planifié un rappel pour" + override val activityLogUserActionOpenedNotificationVerb = "ouvert une notification pour" + override val activityLogUserActionTheme = "Vous avez changé le thème de l'application." + override val activityLogUserActionLanguage = "Vous avez changé la langue de l'application." + override val activityLogUserActionFeedback = "Vous avez donné votre avis sur l'application." + override val activityLogUserActionRate = "Vous avez évalué l'application." + + override val notificationPermissionDialogTitle = "Autorisation de notification" + override val notificationPermissionDialogDescription = "Pour vous rappeler de répondre à vos messages, nous avons besoin de l'autorisation d'envoyer des notifications. \n\nVous pouvez l'activer dans les paramètres de l'application." + override val notificationPermissionDialogConfirmButton = "Ouvrir les paramètres" + override val notificationPermissionDialogDismissButton = "Compris" + override val notificationTitle = "Hey, et si vous répondiez à %1 ?" + override val notificationContent = "%1 attend votre réponse concernant \"%2\"." + override val notificationContentWithoutSubject = "%1 attend votre réponse." +} +// ktlint-enable max-line-length diff --git a/composeApp/src/commonMain/kotlin/com/rafaelfelipeac/replyradar/core/strings/StringsProvider.kt b/composeApp/src/commonMain/kotlin/com/rafaelfelipeac/replyradar/core/strings/StringsProvider.kt index f25b583..c71bf2b 100644 --- a/composeApp/src/commonMain/kotlin/com/rafaelfelipeac/replyradar/core/strings/StringsProvider.kt +++ b/composeApp/src/commonMain/kotlin/com/rafaelfelipeac/replyradar/core/strings/StringsProvider.kt @@ -2,12 +2,18 @@ package com.rafaelfelipeac.replyradar.core.strings import com.rafaelfelipeac.replyradar.core.language.AppLanguage import com.rafaelfelipeac.replyradar.core.language.AppLanguage.ENGLISH +import com.rafaelfelipeac.replyradar.core.language.AppLanguage.FRENCH +import com.rafaelfelipeac.replyradar.core.language.AppLanguage.GERMAN import com.rafaelfelipeac.replyradar.core.language.AppLanguage.PORTUGUESE +import com.rafaelfelipeac.replyradar.core.language.AppLanguage.SPANISH import com.rafaelfelipeac.replyradar.core.language.AppLanguage.SYSTEM object StringsProvider { private val english = StringsEn private val portuguese = StringsPt + private val german = StringsDe + private val french = StringsFr + private val spanish = StringsEs var current: Strings = english @@ -19,6 +25,9 @@ object StringsProvider { return when (language) { ENGLISH -> english PORTUGUESE -> portuguese + GERMAN -> german + FRENCH -> french + SPANISH -> spanish SYSTEM -> english } } diff --git a/composeApp/src/commonMain/kotlin/com/rafaelfelipeac/replyradar/core/strings/StringsPt.kt b/composeApp/src/commonMain/kotlin/com/rafaelfelipeac/replyradar/core/strings/StringsPt.kt index 918cb18..33bd443 100644 --- a/composeApp/src/commonMain/kotlin/com/rafaelfelipeac/replyradar/core/strings/StringsPt.kt +++ b/composeApp/src/commonMain/kotlin/com/rafaelfelipeac/replyradar/core/strings/StringsPt.kt @@ -69,6 +69,9 @@ object StringsPt : Strings { override val settingsLanguage = "Idioma" override val settingsLanguageEnglish = "Inglês" override val settingsLanguagePortuguese = "Português" + override val settingsLanguageGerman = "Alemão" + override val settingsLanguageFrench = "Francês" + override val settingsLanguageSpanish = "Espanhol" override val settingsLanguageSystem = "Usar padrão do sistema" override val settingsFeedbackTitle = "Feedback" override val settingsFeedbackDescription = diff --git a/composeApp/src/commonMain/kotlin/com/rafaelfelipeac/replyradar/features/settings/presentation/SettingsScreen.kt b/composeApp/src/commonMain/kotlin/com/rafaelfelipeac/replyradar/features/settings/presentation/SettingsScreen.kt index 9cc0173..c8a319a 100644 --- a/composeApp/src/commonMain/kotlin/com/rafaelfelipeac/replyradar/features/settings/presentation/SettingsScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/rafaelfelipeac/replyradar/features/settings/presentation/SettingsScreen.kt @@ -41,7 +41,10 @@ import com.rafaelfelipeac.replyradar.core.external.openEmailApp import com.rafaelfelipeac.replyradar.core.external.openPlayStoreApp import com.rafaelfelipeac.replyradar.core.language.AppLanguage import com.rafaelfelipeac.replyradar.core.language.AppLanguage.ENGLISH +import com.rafaelfelipeac.replyradar.core.language.AppLanguage.FRENCH +import com.rafaelfelipeac.replyradar.core.language.AppLanguage.GERMAN import com.rafaelfelipeac.replyradar.core.language.AppLanguage.PORTUGUESE +import com.rafaelfelipeac.replyradar.core.language.AppLanguage.SPANISH import com.rafaelfelipeac.replyradar.core.strings.LocalReplyRadarStrings import com.rafaelfelipeac.replyradar.core.theme.model.AppTheme import com.rafaelfelipeac.replyradar.core.theme.model.AppTheme.DARK @@ -278,9 +281,10 @@ private fun getThemeOptionLabel(theme: AppTheme) = when (theme) { @Composable private fun LanguageOptions(state: SettingsState, onLanguageSelected: (AppLanguage) -> Unit) { LanguageOption(ENGLISH, state.language, onLanguageSelected) - LanguageOption(PORTUGUESE, state.language, onLanguageSelected) - + LanguageOption(GERMAN, state.language, onLanguageSelected) + LanguageOption(FRENCH, state.language, onLanguageSelected) + LanguageOption(SPANISH, state.language, onLanguageSelected) LanguageOption(AppLanguage.SYSTEM, state.language, onLanguageSelected) } @@ -317,6 +321,9 @@ private fun LanguageOption( private fun getLanguageLabel(language: AppLanguage) = when (language) { ENGLISH -> LocalReplyRadarStrings.current.settingsLanguageEnglish PORTUGUESE -> LocalReplyRadarStrings.current.settingsLanguagePortuguese + GERMAN -> LocalReplyRadarStrings.current.settingsLanguageGerman + FRENCH -> LocalReplyRadarStrings.current.settingsLanguageFrench + SPANISH -> LocalReplyRadarStrings.current.settingsLanguageSpanish AppLanguage.SYSTEM -> LocalReplyRadarStrings.current.settingsLanguageSystem }