diff --git a/assets/localization/ca.json b/assets/localization/ca.json new file mode 100644 index 00000000..0df36c1c --- /dev/null +++ b/assets/localization/ca.json @@ -0,0 +1,125 @@ +{ + "radarr.AddMovie": "Afegeix una pel·lícula", + "radarr.AddMovieAndSearch": "Afegeix i cerca", + "radarr.AddedTag": "S'ha afegit l'etiqueta", + "radarr.Age": "Edat", + "radarr.All": "Tot", + "radarr.Alphabetical": "Alfabètic", + "radarr.Approved": "Aprovat", + "radarr.Audio": "Àudio", + "radarr.Automatic": "Automàtic", + "radarr.AvailabilityUnknown": "Disponibilitat desconeguda", + "radarr.AvailableIn": "Disponible a {}", + "radarr.AvailableToday": "Disponible avui", + "radarr.BackupDatabase": "Còpia de seguretat de la Base de Dades", + "radarr.BitDepth": "Profunditat de bits", + "radarr.Channels": "Canals", + "radarr.CinemaDateUnknown": "Data en cinemes desconeguda", + "radarr.Codec": "Còdec", + "radarr.Configure": "Configura", + "radarr.Copy": "Copia", + "radarr.CopyFull": "Enllaç fort/Copia fitxers", + "radarr.CutoffUnmet": "Data límit no trobada", + "radarr.DateAdded": "Data d'alta", + "radarr.DigitalRelease": "Versió digital", + "radarr.DirectoryNotFound": "Directori no trobat", + "radarr.Discover": "Descobreix", + "radarr.Disks": "Discs", + "radarr.DownloadFailed": "La baixada ha fallat", + "radarr.DownloadIgnored": "Descàrrega ignorada", + "radarr.DynamicRange": "Interval dinàmic", + "radarr.EditMovie": "Edita la pel·lícula", + "radarr.FPS": "FPS", + "radarr.FailedToAddTag": "No s'ha pogut afegir l'etiqueta", + "radarr.FileBrowser": "Explorador d'arxius…", + "radarr.FilterCatalogue": "Filtra el catàleg", + "radarr.GrabbedFrom": "Obtingut de {}", + "radarr.History": "Historial", + "radarr.HistoryDescription": "Mostra l'activitat recent", + "radarr.Import": "Importa", + "radarr.ImportMode": "Mode d'importació", + "radarr.InCinemas": "Als cinemes", + "radarr.InCinemasIn": "Als cinemes el {}", + "radarr.InCinemasToday": "Als cinemes avui", + "radarr.Interactive": "Interactiu", + "radarr.Language": "Idioma", + "radarr.Languages": "Llengues", + "radarr.ManualImport": "Importació manual", + "radarr.ManualImportDescription": "Importa pel·lícules des del sistema de fitxers", + "radarr.MinimumAvailability": "Disponibilitat mínima", + "radarr.Missing": "Perdudes", + "radarr.Monitor": "Segueix", + "radarr.MonitorMovie": "Segueix la pel·lícula", + "radarr.Monitored": "Seguida", + "radarr.MonitoredDescription": "Segueix les noves versions", + "radarr.More": "Més", + "radarr.Move": "Mou", + "radarr.MoveFull": "Mou fitxers", + "radarr.Movie": "Pel·lícula", + "radarr.MovieFileDeleted": "S'ha suprimit el fitxer de la pel·lícula", + "radarr.MovieFileRenamed": "S'ha reanomenat el fitxer de la pel·lícula", + "radarr.MovieImported": "S'ha importat la pel·lícula ({})", + "radarr.MovieNotFound": "No s'ha trobat la pel·lícula", + "radarr.MoviePath": "Camí de la pel·lícula", + "radarr.Movies": "Pel·lícules", + "radarr.NoDisksFound": "No s'han trobat discs", + "radarr.NoFilesFound": "No s'ha trobat cap fitxer", + "radarr.NoHistoryFound": "No s'ha trobat l'historial", + "radarr.NoMoviesFound": "No s'han trobat pel·lícules", + "radarr.NoResultsFound": "No s'ha trobat cap resultat", + "radarr.NoRootFoldersFound": "No s'han trobat carpetes arrel", + "radarr.NoSubdirectoriesFound": "No s'han trobat subdirectoris", + "radarr.NoSummaryIsAvailable": "El resum no està disponible.", + "radarr.NoTagsFound": "No s'han trobat etiquetes", + "radarr.Other": "Altri", + "radarr.ParentDirectory": "Directori superior", + "radarr.PhysicalRelease": "Versió física", + "radarr.Quality": "Qualitat", + "radarr.QualityProfile": "Perfil de qualitat", + "radarr.Queue": "Posa a la cua", + "radarr.QueueDescription": "Mostra actius i en la cua", + "radarr.Quick": "Ràpid", + "radarr.RefreshMovie": "Refresca la pel·lícula", + "radarr.Rejected": "Rebutjada", + "radarr.Released": "Estrenada", + "radarr.ReleasedToday": "Estrenada avui", + "radarr.Releases": "Versions", + "radarr.RemoveMovie": "Elimina la pel·lícula", + "radarr.Resolution": "Resolució", + "radarr.RootFolder": "Carpeta arrel", + "radarr.RootFolders": "Carpetes arrels", + "radarr.RunRSSSync": "Executa la sincronització RSS", + "radarr.Runtime": "Durada", + "radarr.ScanType": "Tipus d'escaneig", + "radarr.Search": "Cerca", + "radarr.SearchAllMissing": "Cerca tots els que falten", + "radarr.SearchFor": "Cerca {}", + "radarr.Seeders": "Llavors", + "radarr.SelectLanguage": "Selecciona els idiomes", + "radarr.SelectMovie": "Seleccioneu la pel·lícula", + "radarr.SelectQuality": "Selecciona la qualitat", + "radarr.Size": "Mida", + "radarr.SortCatalogue": "Ordena el catàleg", + "radarr.StartSearchFor": "Inicia la cerca de…", + "radarr.StartSearchForMissingMovie": "Comença a buscar una pel·lícula que falta", + "radarr.Streams": "Fluxos de reproducció", + "radarr.Studio": "Estudi", + "radarr.Subtitles": "Subtítols", + "radarr.SystemStatus": "Estat del sistema", + "radarr.SystemStatusDescription": "Estat del sistema i espai al disc", + "radarr.Tags": "Etiquetes", + "radarr.TagsDescription": "Gestiona les teves etiquetes", + "radarr.Type": "Tipus", + "radarr.UnmappedFolder": "1 carpeta no assignada", + "radarr.UnmappedFolders": "{} carpetes no assignades", + "radarr.UnmonitorMovie": "Deixa de seguir la pel·lícula", + "radarr.Unmonitored": "Deixa de seguir", + "radarr.Upcoming": "Proper", + "radarr.UpdateLibrary": "Actualitza la biblioteca", + "radarr.UpdateMovie": "Actualitza la pel·lícula", + "radarr.Video": "Vídeo", + "radarr.ViewWebGUI": "Mostra la GUI de la WEB", + "radarr.Wanted": "Volgudes", + "radarr.Weight": "Mida", + "radarr.Year": "Any" +} \ No newline at end of file diff --git a/assets/localization/de.json b/assets/localization/de.json index 8ab2c84f..eb76e1e3 100644 --- a/assets/localization/de.json +++ b/assets/localization/de.json @@ -233,6 +233,30 @@ "radarr.Wanted": "Gesucht", "radarr.Weight": "Gewicht", "radarr.Year": "Jahr", + "sabnzbd.Age": "Alter", + "sabnzbd.All": "Alle", + "sabnzbd.Ascending": "Aufsteigend", + "sabnzbd.CategoryDefault": "Standard Kategorie", + "sabnzbd.Completed": "Abgeschlossen", + "sabnzbd.Descending": "Absteigend", + "sabnzbd.Duplicate": "Duplikat", + "sabnzbd.Failed": "fehlgeschlagen", + "sabnzbd.Force": "erzwingen", + "sabnzbd.HibernatePC": "Ruhezustand", + "sabnzbd.High": "Hoch", + "sabnzbd.Low": "Niedrig", + "sabnzbd.Name": "Name", + "sabnzbd.None": "Keines", + "sabnzbd.Normal": "Normal", + "sabnzbd.Paused": "Pausiert", + "sabnzbd.Repair": "Reparieren", + "sabnzbd.RepairUnpack": "Reparieren/Entpacken", + "sabnzbd.RepairUnpackDelete": "Reparieren/Entpacken/Löschen", + "sabnzbd.Size": "Größe", + "sabnzbd.ShutdownPC": "PC Herunterfahren", + "sabnzbd.ShutdownSABnzbd": "SABnzbd Herunterfahren", + "sabnzbd.StandbyPC": "PC in den Standbymodus setzten", + "sabnzbd.Stop": "Stopp", "search.NoCategoriesFound": "Keine Kategorien gefunden", "search.FailedToSend": "Senden fehlgeschlagen", "search.FailedToDownloadNZB": "Herunterladen der NZB fehlgeschlagen", @@ -481,6 +505,35 @@ "settings.Home": "Startseite", "settings.PasswordHint1": "Wenn Ihr Passwort Sonderzeichen enthält, sollten Sie stattdessen einen Basic Authentication Header mit Ihrem Benutzernamen und Passwort hinzufügen, um eine bessere Unterstützung zu gewährleisten", "settings.QuickActionsBannerLine1": "Mit den Schnellaktionen können Sie direkt vom Startbildschirm oder dem Launcher Ihres Geräts in die Module springen, indem Sie lange auf das LunaSea-Symbol drücken.", + "settings.EmailValidation": "Falsche E-Mail Adresse", + "settings.Channel": "Kanal", + "settings.FailedToUpdateEmail": "E-Mail konnte nicht aktualisiert werden", + "settings.NoAdditionalProfilesAdded": "Es wurden keine zusätzlichen Profile hinzugefügt", + "settings.DatabaseCorruptionDetected": "Datenbankbeschädigung erkannt", + "settings.DatabaseCorruptionDetectedMessageLine1": "Datenbankbeschädigung wurde erkannt und Ihre Konfiguration wurde gelöscht.", + "settings.DatabaseCorruptionDetectedMessageLine2": "Entschuldigen Sie die Unannehmlichkeiten, alle zuvor erstellten Sicherungen sollten wiederherstellbar sein, auch wenn sie zuvor mit einer beschädigten Datenbank exportiert wurden.", + "settings.NoProfilesFound": "Keine Profile gefunden", + "settings.Platform": "Plattform", + "settings.BuildChannels": "Build Kanäle", + "settings.BuildChannelsDescription": "Erfahre mehr über zusätzliche Build-Kanäle", + "settings.FailedToUpdatePassword": "Passwort konnte nicht aktualisiert werden", + "settings.NewPassword": "Neues Passwort", + "settings.PasswordUpdated": "Passwort aktualisiert", + "settings.PleaseSignInAgain": "Bitte erneut anmelden", + "settings.RestoreFromDeviceDescription": "Konfigurationsdaten wiederherstellen", + "settings.AddedProfile": "Profil hinzugefügt", + "settings.Build": "Build", + "settings.ChangedProfile": "Profil geändert", + "settings.CurrentPassword": "Aktuelles Passwort", + "settings.DeletedProfile": "Profil gelöscht", + "settings.ProfileToProfile": "\"{}\" zu \"{}\"", + "settings.RenamedProfile": "Profil umbenannt", + "settings.RestoreFromDevice": "Vom Gerät wiederherstellen", + "settings.BackupToDevice": "Sicherung auf Gerät", + "settings.BackupToDeviceDescription": "Konfigurationsdaten sichern", + "settings.DownloadUpdate": "Update herunterladen", + "settings.EmailUpdated": "E-Mail aktualisiert", + "settings.EnableInAppNotifications": "App-Benachrichtigungen Aktivieren", "sonarr.AddSeries": "Serie hinzufügen", "sonarr.AddToExclusionList": "Zur Ignorierliste hinzufügen", "sonarr.AllSeasons": "Alle Staffeln", diff --git a/assets/localization/es.json b/assets/localization/es.json index cf95bdcb..daa562dd 100644 --- a/assets/localization/es.json +++ b/assets/localization/es.json @@ -274,6 +274,14 @@ "radarr.Wanted": "Se busca", "radarr.Weight": "Peso", "radarr.Year": "Año", + "sabnzbd.Age": "Años", + "sabnzbd.All": "Todos", + "sabnzbd.Ascending": "Ascendente", + "sabnzbd.CategoryDefault": "Categoría Predeterminada", + "sabnzbd.Completed": "Terminado", + "sabnzbd.Descending": "Descendente", + "sabnzbd.Duplicate": "Duplicado", + "sabnzbd.Failed": "Fallido", "search.Alphabetical": "Alfabética", "search.Category": "Categoria", "search.Comments": "Comentarios", diff --git a/assets/localization/fr.json b/assets/localization/fr.json index dbf63f18..3cc14ea0 100644 --- a/assets/localization/fr.json +++ b/assets/localization/fr.json @@ -554,6 +554,11 @@ "settings.RenamedProfile": "Profil renommé", "settings.Platform": "Plateforme", "settings.Version": "Version", + "settings.SentryLogging": "Journaux de Sentry", + "settings.SentryLoggingDescription": "Soumettre toutes les erreurs et plantages à Sentry", + "settings.DatabaseCorruptionDetectedMessageLine1": "Une corruption de la base de données a été détectée et votre configuration a été effacée.", + "settings.DatabaseCorruptionDetectedMessageLine2": "Désolé pour ce problème, toutes les sauvegardes devraient pouvoir être restaurés même celles créés avec une base de données corrompue.", + "settings.DatabaseCorruptionDetected": "Base de données corrompue détectée", "sonarr.AddedOn": "Ajouté le", "sonarr.AddedSeries": "Série ajoutée", "sonarr.AddedTag": "Étiquette ajoutée", diff --git a/assets/localization/pt.json b/assets/localization/pt.json index 42b37d6d..db998723 100644 --- a/assets/localization/pt.json +++ b/assets/localization/pt.json @@ -447,6 +447,36 @@ "settings.Documentation": "Documentação", "settings.AccountDeletedMessage": "Deletar sua Conta LunaSea", "settings.ConfigurationDescription": "Ajustar e Configurar LunaSea", + "settings.SortCategory": "Classificar categoria", + "settings.SortDirection": "Direção de classificação", + "settings.TLSCertificateValidation": "Validação do certificado TLS", + "settings.DatabaseCorruptionDetectedMessageLine1": "Banco de dados corrompido foi detectado e sua configurações foram limpas.", + "settings.DatabaseCorruptionDetectedMessageLine2": "Desculpe a inconveniência, todos os backups criados anteriormente devem ser restaurados mesmo quando exportados anteriormente com um banco de dados corrompido.", + "settings.DatabaseCorruptionDetected": "Detectado banco de dados corrompido", + "settings.AddedProfile": "Perfil Adicionado", + "settings.ChangedProfile": "Perfil Alterado", + "settings.DeletedProfile": "Perfil Excluído", + "settings.NoAdditionalProfilesAdded": "Nenhum perfil adicional foi adicionado", + "settings.NoProfilesFound": "Nenhum perfil encontrado", + "settings.Platform": "Plataforma", + "settings.ProfileToProfile": "\"{}\" para \"{}\"", + "settings.RenamedProfile": "Perfil Renomeado", + "settings.SystemStatusDescription": "Página de status para serviços hospedados", + "settings.Version": "Versão", + "settings.UpToDate": "Atualizado", + "settings.WeblateDescription": "Ajude a localizar o LunaSea", + "settings.ViewRecentChanges": "Ver alterações recentes", + "settings.Website": "Site", + "settings.WebsiteDescription": "Visitar o site da LunaSea", + "settings.ViewTypeLogs": "Ver {} registros", + "settings.Build": "Build", + "settings.Channel": "Canal", + "settings.DownloadUpdate": "Baixar Atualização", + "settings.EnableInAppNotifications": "Ativar notificações no aplicativo", + "settings.SystemStatus": "Status do Sistema", + "settings.TLSCertificateValidationDescription": "Validar certificados em conexões TLS", + "settings.UpdateEmail": "Atualizar e-mail", + "settings.UpdatePassword": "Atualizar senha", "sonarr.AddedTag": "Tag Adicionada", "sonarr.AddSeries": "Adicionar Série", "sonarr.DeleteFile": "Deletar Arquivo", @@ -576,5 +606,15 @@ "tautulli.Users": "Utilizadores", "tautulli.Video": "Vídeo", "tautulli.ViewWebGUI": "Ver WEB GUI", - "tautulli.Year": "Ano" + "tautulli.Year": "Ano", + "tautulli.TerminationAttachMessage": "Opcionalmente, você pode anexar uma mensagem de rescisão abaixo.", + "tautulli.TerminationConfirmMessage": "Deseja encerrar esta sessão?", + "tautulli.TerminationMessage": "Mensagem de Rescisão", + "tautulli.Transcode": "Transcodificar", + "tautulli.TerminateSession": "Encerrar Sessão", + "tautulli.TerminatedSession": "Sessão Encerrada", + "tautulli.TerminateSessionFailed": "Falha ao encerrar a sessão", + "wake_on_lan.MagicPacketSent": "Pacote mágico enviado", + "wake_on_lan.MagicPacketSentMessage": "Sua máquina deve estar acordando!", + "wake_on_lan.MagicPacketFailedToSend": "Falha ao enviar pacote mágico" } \ No newline at end of file diff --git a/assets/localization/zh-Hans.json b/assets/localization/zh-Hans.json index 754a7f4e..799cb008 100644 --- a/assets/localization/zh-Hans.json +++ b/assets/localization/zh-Hans.json @@ -275,6 +275,30 @@ "radarr.Wanted": "需要", "radarr.Weight": "轻重", "radarr.Year": "年", + "sabnzbd.CategoryDefault": "默认类别", + "sabnzbd.Completed": "完成", + "sabnzbd.Ascending": "升序", + "sabnzbd.Paused": "暂停", + "sabnzbd.Normal": "一般", + "sabnzbd.Name": "名称", + "sabnzbd.None": "没有", + "sabnzbd.RepairUnpack": "纠正/拆包", + "sabnzbd.All": "全部", + "sabnzbd.Descending": "降序", + "sabnzbd.Duplicate": "复制", + "sabnzbd.Failed": "失败", + "sabnzbd.Age": "时代", + "sabnzbd.Force": "强制", + "sabnzbd.HibernatePC": "电脑休眠", + "sabnzbd.High": "高", + "sabnzbd.Low": "低", + "sabnzbd.Repair": "纠正", + "sabnzbd.RepairUnpackDelete": "纠正/拆包/删除", + "sabnzbd.Size": "大小", + "sabnzbd.ShutdownPC": "关机", + "sabnzbd.ShutdownSABnzbd": "关闭SABnzbd", + "sabnzbd.StandbyPC": "备用PC", + "sabnzbd.Stop": "停止", "search.AllSubcategories": "所有子类别", "search.Alphabetical": "字母顺序", "search.Categories": "类别", diff --git a/lib/system/localization.dart b/lib/system/localization.dart index cf65abff..9b273742 100644 --- a/lib/system/localization.dart +++ b/lib/system/localization.dart @@ -22,21 +22,27 @@ class LunaLocalization { } enum LunaLanguage { - CHINESE_SIMPLIFIED, - CROATIAN, - DUTCH, - ENGLISH, - FRENCH, - GERMAN, - HUNGARIAN, - ITALIAN, - NORWEGIAN_BOKMAL, - PORTUGUESE, - RUSSIAN, - SPANISH, - SWEDISH, - TURKISH, - VIETNAMESE; + CATALAN('ca', Locale('ca'), 'Catalan'), + CHINESE_SIMPLIFIED('zh-Hans', Locale('zh', 'Hans'), 'Chinese (Simplified)'), + CROATIAN('hr', Locale('hr'), 'Croatian'), + DUTCH('nl', Locale('nl'), 'Dutch'), + ENGLISH('en', Locale('en'), 'English'), + FRENCH('fr', Locale('fr'), 'French'), + GERMAN('de', Locale('de'), 'German'), + HUNGARIAN('hu', Locale('hu'), 'Hungarian'), + ITALIAN('it', Locale('it'), 'Italian'), + NORWEGIAN_BOKMAL('nb-NO', Locale('nb', 'NO'), 'Norwegian (Bokmål)'), + PORTUGUESE('pt', Locale('pt'), 'Portuguese'), + RUSSIAN('ru', Locale('ru'), 'Russian'), + SPANISH('es', Locale('es'), 'Spanish'), + SWEDISH('sv', Locale('sv'), 'Swedish'), + TURKISH('tr', Locale('tr'), 'Turkish'), + VIETNAMESE('vi', Locale('vi'), 'Vietnamese'); + + final String languageTag; + final Locale locale; + final String name; + const LunaLanguage(this.languageTag, this.locale, this.name); static LunaLanguage get current { final locale = LunaState.context.locale; @@ -44,41 +50,13 @@ enum LunaLanguage { } static LunaLanguage? fromLocale(Locale locale) { - if (locale.toLanguageTag() == LunaLanguage.CHINESE_SIMPLIFIED.languageTag) - return LunaLanguage.CHINESE_SIMPLIFIED; - if (locale.toLanguageTag() == LunaLanguage.CROATIAN.languageTag) - return LunaLanguage.CROATIAN; - if (locale.toLanguageTag() == LunaLanguage.DUTCH.languageTag) - return LunaLanguage.DUTCH; - if (locale.toLanguageTag() == LunaLanguage.ENGLISH.languageTag) - return LunaLanguage.ENGLISH; - if (locale.toLanguageTag() == LunaLanguage.FRENCH.languageTag) - return LunaLanguage.FRENCH; - if (locale.toLanguageTag() == LunaLanguage.GERMAN.languageTag) - return LunaLanguage.GERMAN; - if (locale.toLanguageTag() == LunaLanguage.HUNGARIAN.languageTag) - return LunaLanguage.HUNGARIAN; - if (locale.toLanguageTag() == LunaLanguage.ITALIAN.languageTag) - return LunaLanguage.ITALIAN; - if (locale.toLanguageTag() == LunaLanguage.NORWEGIAN_BOKMAL.languageTag) - return LunaLanguage.NORWEGIAN_BOKMAL; - if (locale.toLanguageTag() == LunaLanguage.PORTUGUESE.languageTag) - return LunaLanguage.PORTUGUESE; - if (locale.toLanguageTag() == LunaLanguage.RUSSIAN.languageTag) - return LunaLanguage.RUSSIAN; - if (locale.toLanguageTag() == LunaLanguage.SPANISH.languageTag) - return LunaLanguage.SPANISH; - if (locale.toLanguageTag() == LunaLanguage.SWEDISH.languageTag) - return LunaLanguage.SWEDISH; - if (locale.toLanguageTag() == LunaLanguage.TURKISH.languageTag) - return LunaLanguage.TURKISH; - if (locale.toLanguageTag() == LunaLanguage.VIETNAMESE.languageTag) - return LunaLanguage.VIETNAMESE; + final tag = locale.toLanguageTag(); + for (final language in LunaLanguage.values) { + if (tag == language.languageTag) return language; + } return null; } -} -extension LunaLanguageExtension on LunaLanguage { Future use() async { await LunaState.context.setLocale(locale); Intl.defaultLocale = languageTag; @@ -88,6 +66,7 @@ extension LunaLanguageExtension on LunaLanguage { switch (this) { case LunaLanguage.ENGLISH: return true; + case LunaLanguage.CATALAN: case LunaLanguage.CHINESE_SIMPLIFIED: case LunaLanguage.CROATIAN: case LunaLanguage.DUTCH: @@ -105,109 +84,4 @@ extension LunaLanguageExtension on LunaLanguage { return LunaFlavor.BETA.isRunningFlavor(); } } - - String get name { - switch (this) { - case LunaLanguage.CHINESE_SIMPLIFIED: - return 'Chinese (Simplified)'; - case LunaLanguage.CROATIAN: - return 'Crotian'; - case LunaLanguage.DUTCH: - return 'Dutch'; - case LunaLanguage.ENGLISH: - return 'English'; - case LunaLanguage.FRENCH: - return 'French'; - case LunaLanguage.GERMAN: - return 'German'; - case LunaLanguage.HUNGARIAN: - return 'Hungarian'; - case LunaLanguage.ITALIAN: - return 'Italian'; - case LunaLanguage.NORWEGIAN_BOKMAL: - return 'Norwegian (Bokmål)'; - case LunaLanguage.PORTUGUESE: - return 'Portuguese'; - case LunaLanguage.RUSSIAN: - return 'Russian'; - case LunaLanguage.SPANISH: - return 'Spanish'; - case LunaLanguage.SWEDISH: - return 'Swedish'; - case LunaLanguage.TURKISH: - return 'Turkish'; - case LunaLanguage.VIETNAMESE: - return 'Vietnamese'; - } - } - - String get languageTag { - switch (this) { - case LunaLanguage.CHINESE_SIMPLIFIED: - return 'zh-Hans'; - case LunaLanguage.CROATIAN: - return 'hr'; - case LunaLanguage.DUTCH: - return 'nl'; - case LunaLanguage.ENGLISH: - return 'en'; - case LunaLanguage.FRENCH: - return 'fr'; - case LunaLanguage.GERMAN: - return 'de'; - case LunaLanguage.HUNGARIAN: - return 'hu'; - case LunaLanguage.ITALIAN: - return 'it'; - case LunaLanguage.NORWEGIAN_BOKMAL: - return 'nb-NO'; - case LunaLanguage.PORTUGUESE: - return 'pt'; - case LunaLanguage.RUSSIAN: - return 'ru'; - case LunaLanguage.SPANISH: - return 'es'; - case LunaLanguage.SWEDISH: - return 'sv'; - case LunaLanguage.TURKISH: - return 'tr'; - case LunaLanguage.VIETNAMESE: - return 'vi'; - } - } - - Locale get locale { - switch (this) { - case LunaLanguage.CHINESE_SIMPLIFIED: - return const Locale('zh', 'Hans'); - case LunaLanguage.CROATIAN: - return const Locale('hr'); - case LunaLanguage.DUTCH: - return const Locale('nl'); - case LunaLanguage.ENGLISH: - return const Locale('en'); - case LunaLanguage.FRENCH: - return const Locale('fr'); - case LunaLanguage.GERMAN: - return const Locale('de'); - case LunaLanguage.HUNGARIAN: - return const Locale('hu'); - case LunaLanguage.ITALIAN: - return const Locale('it'); - case LunaLanguage.NORWEGIAN_BOKMAL: - return const Locale('nb', 'NO'); - case LunaLanguage.PORTUGUESE: - return const Locale('pt'); - case LunaLanguage.RUSSIAN: - return const Locale('ru'); - case LunaLanguage.SPANISH: - return const Locale('es'); - case LunaLanguage.SWEDISH: - return const Locale('sv'); - case LunaLanguage.TURKISH: - return const Locale('tr'); - case LunaLanguage.VIETNAMESE: - return const Locale('vi'); - } - } } diff --git a/localization/dashboard/ca.json b/localization/dashboard/ca.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/localization/dashboard/ca.json @@ -0,0 +1 @@ +{} diff --git a/localization/lidarr/ca.json b/localization/lidarr/ca.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/localization/lidarr/ca.json @@ -0,0 +1 @@ +{} diff --git a/localization/lunasea/ca.json b/localization/lunasea/ca.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/localization/lunasea/ca.json @@ -0,0 +1 @@ +{} diff --git a/localization/nzbget/ca.json b/localization/nzbget/ca.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/localization/nzbget/ca.json @@ -0,0 +1 @@ +{} diff --git a/localization/overseerr/ca.json b/localization/overseerr/ca.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/localization/overseerr/ca.json @@ -0,0 +1 @@ +{} diff --git a/localization/radarr/ca.json b/localization/radarr/ca.json new file mode 100644 index 00000000..710b2695 --- /dev/null +++ b/localization/radarr/ca.json @@ -0,0 +1,125 @@ +{ + "radarr.AddMovie": "Afegeix una pel·lícula", + "radarr.AddMovieAndSearch": "Afegeix i cerca", + "radarr.AddedTag": "S'ha afegit l'etiqueta", + "radarr.Age": "Edat", + "radarr.All": "Tot", + "radarr.Alphabetical": "Alfabètic", + "radarr.Approved": "Aprovat", + "radarr.Audio": "Àudio", + "radarr.Automatic": "Automàtic", + "radarr.AvailabilityUnknown": "Disponibilitat desconeguda", + "radarr.AvailableIn": "Disponible a {}", + "radarr.AvailableToday": "Disponible avui", + "radarr.BackupDatabase": "Còpia de seguretat de la Base de Dades", + "radarr.BitDepth": "Profunditat de bits", + "radarr.Channels": "Canals", + "radarr.CinemaDateUnknown": "Data en cinemes desconeguda", + "radarr.Codec": "Còdec", + "radarr.Configure": "Configura", + "radarr.Copy": "Copia", + "radarr.CopyFull": "Enllaç fort/Copia fitxers", + "radarr.CutoffUnmet": "Data límit no trobada", + "radarr.DateAdded": "Data d'alta", + "radarr.DigitalRelease": "Versió digital", + "radarr.DirectoryNotFound": "Directori no trobat", + "radarr.Discover": "Descobreix", + "radarr.Disks": "Discs", + "radarr.DownloadFailed": "La baixada ha fallat", + "radarr.DownloadIgnored": "Descàrrega ignorada", + "radarr.DynamicRange": "Interval dinàmic", + "radarr.EditMovie": "Edita la pel·lícula", + "radarr.FPS": "FPS", + "radarr.FailedToAddTag": "No s'ha pogut afegir l'etiqueta", + "radarr.FileBrowser": "Explorador d'arxius…", + "radarr.FilterCatalogue": "Filtra el catàleg", + "radarr.GrabbedFrom": "Obtingut de {}", + "radarr.History": "Historial", + "radarr.HistoryDescription": "Mostra l'activitat recent", + "radarr.Import": "Importa", + "radarr.ImportMode": "Mode d'importació", + "radarr.InCinemas": "Als cinemes", + "radarr.InCinemasIn": "Als cinemes el {}", + "radarr.InCinemasToday": "Als cinemes avui", + "radarr.Interactive": "Interactiu", + "radarr.Language": "Idioma", + "radarr.Languages": "Llengues", + "radarr.ManualImport": "Importació manual", + "radarr.ManualImportDescription": "Importa pel·lícules des del sistema de fitxers", + "radarr.MinimumAvailability": "Disponibilitat mínima", + "radarr.Missing": "Perdudes", + "radarr.Monitor": "Segueix", + "radarr.MonitorMovie": "Segueix la pel·lícula", + "radarr.Monitored": "Seguida", + "radarr.MonitoredDescription": "Segueix les noves versions", + "radarr.More": "Més", + "radarr.Move": "Mou", + "radarr.MoveFull": "Mou fitxers", + "radarr.Movie": "Pel·lícula", + "radarr.MovieFileDeleted": "S'ha suprimit el fitxer de la pel·lícula", + "radarr.MovieFileRenamed": "S'ha reanomenat el fitxer de la pel·lícula", + "radarr.MovieImported": "S'ha importat la pel·lícula ({})", + "radarr.MovieNotFound": "No s'ha trobat la pel·lícula", + "radarr.MoviePath": "Camí de la pel·lícula", + "radarr.Movies": "Pel·lícules", + "radarr.NoDisksFound": "No s'han trobat discs", + "radarr.NoFilesFound": "No s'ha trobat cap fitxer", + "radarr.NoHistoryFound": "No s'ha trobat l'historial", + "radarr.NoMoviesFound": "No s'han trobat pel·lícules", + "radarr.NoResultsFound": "No s'ha trobat cap resultat", + "radarr.NoRootFoldersFound": "No s'han trobat carpetes arrel", + "radarr.NoSubdirectoriesFound": "No s'han trobat subdirectoris", + "radarr.NoSummaryIsAvailable": "El resum no està disponible.", + "radarr.NoTagsFound": "No s'han trobat etiquetes", + "radarr.Other": "Altri", + "radarr.ParentDirectory": "Directori superior", + "radarr.PhysicalRelease": "Versió física", + "radarr.Quality": "Qualitat", + "radarr.QualityProfile": "Perfil de qualitat", + "radarr.Queue": "Posa a la cua", + "radarr.QueueDescription": "Mostra actius i en la cua", + "radarr.Quick": "Ràpid", + "radarr.RefreshMovie": "Refresca la pel·lícula", + "radarr.Rejected": "Rebutjada", + "radarr.Released": "Estrenada", + "radarr.ReleasedToday": "Estrenada avui", + "radarr.Releases": "Versions", + "radarr.RemoveMovie": "Elimina la pel·lícula", + "radarr.Resolution": "Resolució", + "radarr.RootFolder": "Carpeta arrel", + "radarr.RootFolders": "Carpetes arrels", + "radarr.RunRSSSync": "Executa la sincronització RSS", + "radarr.Runtime": "Durada", + "radarr.ScanType": "Tipus d'escaneig", + "radarr.Search": "Cerca", + "radarr.SearchAllMissing": "Cerca tots els que falten", + "radarr.SearchFor": "Cerca {}", + "radarr.Seeders": "Llavors", + "radarr.SelectLanguage": "Selecciona els idiomes", + "radarr.SelectMovie": "Seleccioneu la pel·lícula", + "radarr.SelectQuality": "Selecciona la qualitat", + "radarr.Size": "Mida", + "radarr.SortCatalogue": "Ordena el catàleg", + "radarr.StartSearchFor": "Inicia la cerca de…", + "radarr.StartSearchForMissingMovie": "Comença a buscar una pel·lícula que falta", + "radarr.Streams": "Fluxos de reproducció", + "radarr.Studio": "Estudi", + "radarr.Subtitles": "Subtítols", + "radarr.SystemStatus": "Estat del sistema", + "radarr.SystemStatusDescription": "Estat del sistema i espai al disc", + "radarr.Tags": "Etiquetes", + "radarr.TagsDescription": "Gestiona les teves etiquetes", + "radarr.Type": "Tipus", + "radarr.UnmappedFolder": "1 carpeta no assignada", + "radarr.UnmappedFolders": "{} carpetes no assignades", + "radarr.UnmonitorMovie": "Deixa de seguir la pel·lícula", + "radarr.Unmonitored": "Deixa de seguir", + "radarr.Upcoming": "Proper", + "radarr.UpdateLibrary": "Actualitza la biblioteca", + "radarr.UpdateMovie": "Actualitza la pel·lícula", + "radarr.Video": "Vídeo", + "radarr.ViewWebGUI": "Mostra la GUI de la WEB", + "radarr.Wanted": "Volgudes", + "radarr.Weight": "Mida", + "radarr.Year": "Any" +} diff --git a/localization/sabnzbd/ca.json b/localization/sabnzbd/ca.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/localization/sabnzbd/ca.json @@ -0,0 +1 @@ +{} diff --git a/localization/sabnzbd/de.json b/localization/sabnzbd/de.json index 9e26dfee..7da053ac 100644 --- a/localization/sabnzbd/de.json +++ b/localization/sabnzbd/de.json @@ -1 +1,26 @@ -{} \ No newline at end of file +{ + "sabnzbd.Age": "Alter", + "sabnzbd.All": "Alle", + "sabnzbd.Ascending": "Aufsteigend", + "sabnzbd.CategoryDefault": "Standard Kategorie", + "sabnzbd.Completed": "Abgeschlossen", + "sabnzbd.Descending": "Absteigend", + "sabnzbd.Duplicate": "Duplikat", + "sabnzbd.Failed": "fehlgeschlagen", + "sabnzbd.Force": "erzwingen", + "sabnzbd.HibernatePC": "Ruhezustand", + "sabnzbd.High": "Hoch", + "sabnzbd.Low": "Niedrig", + "sabnzbd.Name": "Name", + "sabnzbd.None": "Keines", + "sabnzbd.Normal": "Normal", + "sabnzbd.Paused": "Pausiert", + "sabnzbd.Repair": "Reparieren", + "sabnzbd.RepairUnpack": "Reparieren/Entpacken", + "sabnzbd.RepairUnpackDelete": "Reparieren/Entpacken/Löschen", + "sabnzbd.Size": "Größe", + "sabnzbd.ShutdownPC": "PC Herunterfahren", + "sabnzbd.ShutdownSABnzbd": "SABnzbd Herunterfahren", + "sabnzbd.StandbyPC": "PC in den Standbymodus setzten", + "sabnzbd.Stop": "Stopp" +} diff --git a/localization/sabnzbd/es.json b/localization/sabnzbd/es.json index 0967ef42..333032b5 100644 --- a/localization/sabnzbd/es.json +++ b/localization/sabnzbd/es.json @@ -1 +1,10 @@ -{} +{ + "sabnzbd.Age": "Años", + "sabnzbd.All": "Todos", + "sabnzbd.Ascending": "Ascendente", + "sabnzbd.CategoryDefault": "Categoría Predeterminada", + "sabnzbd.Completed": "Terminado", + "sabnzbd.Descending": "Descendente", + "sabnzbd.Duplicate": "Duplicado", + "sabnzbd.Failed": "Fallido" +} diff --git a/localization/sabnzbd/zh-Hans.json b/localization/sabnzbd/zh-Hans.json index 0967ef42..b2ffe0d6 100644 --- a/localization/sabnzbd/zh-Hans.json +++ b/localization/sabnzbd/zh-Hans.json @@ -1 +1,26 @@ -{} +{ + "sabnzbd.CategoryDefault": "默认类别", + "sabnzbd.Completed": "完成", + "sabnzbd.Ascending": "升序", + "sabnzbd.Paused": "暂停", + "sabnzbd.Normal": "一般", + "sabnzbd.Name": "名称", + "sabnzbd.None": "没有", + "sabnzbd.RepairUnpack": "纠正/拆包", + "sabnzbd.All": "全部", + "sabnzbd.Descending": "降序", + "sabnzbd.Duplicate": "复制", + "sabnzbd.Failed": "失败", + "sabnzbd.Age": "时代", + "sabnzbd.Force": "强制", + "sabnzbd.HibernatePC": "电脑休眠", + "sabnzbd.High": "高", + "sabnzbd.Low": "低", + "sabnzbd.Repair": "纠正", + "sabnzbd.RepairUnpackDelete": "纠正/拆包/删除", + "sabnzbd.Size": "大小", + "sabnzbd.ShutdownPC": "关机", + "sabnzbd.ShutdownSABnzbd": "关闭SABnzbd", + "sabnzbd.StandbyPC": "备用PC", + "sabnzbd.Stop": "停止" +} diff --git a/localization/search/ca.json b/localization/search/ca.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/localization/search/ca.json @@ -0,0 +1 @@ +{} diff --git a/localization/settings/ca.json b/localization/settings/ca.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/localization/settings/ca.json @@ -0,0 +1 @@ +{} diff --git a/localization/settings/de.json b/localization/settings/de.json index 4d69c9f6..bcc25041 100644 --- a/localization/settings/de.json +++ b/localization/settings/de.json @@ -225,5 +225,34 @@ "settings.Use24HourTimeDescription": "Zeitstempel im 24-Stunden-Stil anzeigen", "settings.Home": "Startseite", "settings.PasswordHint1": "Wenn Ihr Passwort Sonderzeichen enthält, sollten Sie stattdessen einen Basic Authentication Header mit Ihrem Benutzernamen und Passwort hinzufügen, um eine bessere Unterstützung zu gewährleisten", - "settings.QuickActionsBannerLine1": "Mit den Schnellaktionen können Sie direkt vom Startbildschirm oder dem Launcher Ihres Geräts in die Module springen, indem Sie lange auf das LunaSea-Symbol drücken." -} \ No newline at end of file + "settings.QuickActionsBannerLine1": "Mit den Schnellaktionen können Sie direkt vom Startbildschirm oder dem Launcher Ihres Geräts in die Module springen, indem Sie lange auf das LunaSea-Symbol drücken.", + "settings.EmailValidation": "Falsche E-Mail Adresse", + "settings.Channel": "Kanal", + "settings.FailedToUpdateEmail": "E-Mail konnte nicht aktualisiert werden", + "settings.NoAdditionalProfilesAdded": "Es wurden keine zusätzlichen Profile hinzugefügt", + "settings.DatabaseCorruptionDetected": "Datenbankbeschädigung erkannt", + "settings.DatabaseCorruptionDetectedMessageLine1": "Datenbankbeschädigung wurde erkannt und Ihre Konfiguration wurde gelöscht.", + "settings.DatabaseCorruptionDetectedMessageLine2": "Entschuldigen Sie die Unannehmlichkeiten, alle zuvor erstellten Sicherungen sollten wiederherstellbar sein, auch wenn sie zuvor mit einer beschädigten Datenbank exportiert wurden.", + "settings.NoProfilesFound": "Keine Profile gefunden", + "settings.Platform": "Plattform", + "settings.BuildChannels": "Build Kanäle", + "settings.BuildChannelsDescription": "Erfahre mehr über zusätzliche Build-Kanäle", + "settings.FailedToUpdatePassword": "Passwort konnte nicht aktualisiert werden", + "settings.NewPassword": "Neues Passwort", + "settings.PasswordUpdated": "Passwort aktualisiert", + "settings.PleaseSignInAgain": "Bitte erneut anmelden", + "settings.RestoreFromDeviceDescription": "Konfigurationsdaten wiederherstellen", + "settings.AddedProfile": "Profil hinzugefügt", + "settings.Build": "Build", + "settings.ChangedProfile": "Profil geändert", + "settings.CurrentPassword": "Aktuelles Passwort", + "settings.DeletedProfile": "Profil gelöscht", + "settings.ProfileToProfile": "\"{}\" zu \"{}\"", + "settings.RenamedProfile": "Profil umbenannt", + "settings.RestoreFromDevice": "Vom Gerät wiederherstellen", + "settings.BackupToDevice": "Sicherung auf Gerät", + "settings.BackupToDeviceDescription": "Konfigurationsdaten sichern", + "settings.DownloadUpdate": "Update herunterladen", + "settings.EmailUpdated": "E-Mail aktualisiert", + "settings.EnableInAppNotifications": "App-Benachrichtigungen Aktivieren" +} diff --git a/localization/settings/fr.json b/localization/settings/fr.json index d101e68e..1ee0bfeb 100644 --- a/localization/settings/fr.json +++ b/localization/settings/fr.json @@ -256,5 +256,10 @@ "settings.NoProfilesFound": "Aucun profil trouvé", "settings.RenamedProfile": "Profil renommé", "settings.Platform": "Plateforme", - "settings.Version": "Version" -} \ No newline at end of file + "settings.Version": "Version", + "settings.SentryLogging": "Journaux de Sentry", + "settings.SentryLoggingDescription": "Soumettre toutes les erreurs et plantages à Sentry", + "settings.DatabaseCorruptionDetectedMessageLine1": "Une corruption de la base de données a été détectée et votre configuration a été effacée.", + "settings.DatabaseCorruptionDetectedMessageLine2": "Désolé pour ce problème, toutes les sauvegardes devraient pouvoir être restaurés même celles créés avec une base de données corrompue.", + "settings.DatabaseCorruptionDetected": "Base de données corrompue détectée" +} diff --git a/localization/settings/pt.json b/localization/settings/pt.json index 4f4683b0..24b6c96d 100644 --- a/localization/settings/pt.json +++ b/localization/settings/pt.json @@ -224,5 +224,35 @@ "settings.DeleteAccountDescription": "Excluir permanentemente sua conta", "settings.Documentation": "Documentação", "settings.AccountDeletedMessage": "Deletar sua Conta LunaSea", - "settings.ConfigurationDescription": "Ajustar e Configurar LunaSea" -} \ No newline at end of file + "settings.ConfigurationDescription": "Ajustar e Configurar LunaSea", + "settings.SortCategory": "Classificar categoria", + "settings.SortDirection": "Direção de classificação", + "settings.TLSCertificateValidation": "Validação do certificado TLS", + "settings.DatabaseCorruptionDetectedMessageLine1": "Banco de dados corrompido foi detectado e sua configurações foram limpas.", + "settings.DatabaseCorruptionDetectedMessageLine2": "Desculpe a inconveniência, todos os backups criados anteriormente devem ser restaurados mesmo quando exportados anteriormente com um banco de dados corrompido.", + "settings.DatabaseCorruptionDetected": "Detectado banco de dados corrompido", + "settings.AddedProfile": "Perfil Adicionado", + "settings.ChangedProfile": "Perfil Alterado", + "settings.DeletedProfile": "Perfil Excluído", + "settings.NoAdditionalProfilesAdded": "Nenhum perfil adicional foi adicionado", + "settings.NoProfilesFound": "Nenhum perfil encontrado", + "settings.Platform": "Plataforma", + "settings.ProfileToProfile": "\"{}\" para \"{}\"", + "settings.RenamedProfile": "Perfil Renomeado", + "settings.SystemStatusDescription": "Página de status para serviços hospedados", + "settings.Version": "Versão", + "settings.UpToDate": "Atualizado", + "settings.WeblateDescription": "Ajude a localizar o LunaSea", + "settings.ViewRecentChanges": "Ver alterações recentes", + "settings.Website": "Site", + "settings.WebsiteDescription": "Visitar o site da LunaSea", + "settings.ViewTypeLogs": "Ver {} registros", + "settings.Build": "Build", + "settings.Channel": "Canal", + "settings.DownloadUpdate": "Baixar Atualização", + "settings.EnableInAppNotifications": "Ativar notificações no aplicativo", + "settings.SystemStatus": "Status do Sistema", + "settings.TLSCertificateValidationDescription": "Validar certificados em conexões TLS", + "settings.UpdateEmail": "Atualizar e-mail", + "settings.UpdatePassword": "Atualizar senha" +} diff --git a/localization/sonarr/ca.json b/localization/sonarr/ca.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/localization/sonarr/ca.json @@ -0,0 +1 @@ +{} diff --git a/localization/tautulli/ca.json b/localization/tautulli/ca.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/localization/tautulli/ca.json @@ -0,0 +1 @@ +{} diff --git a/localization/tautulli/pt.json b/localization/tautulli/pt.json index ae05110b..1c6c3a86 100644 --- a/localization/tautulli/pt.json +++ b/localization/tautulli/pt.json @@ -56,5 +56,12 @@ "tautulli.Users": "Utilizadores", "tautulli.Video": "Vídeo", "tautulli.ViewWebGUI": "Ver WEB GUI", - "tautulli.Year": "Ano" + "tautulli.Year": "Ano", + "tautulli.TerminationAttachMessage": "Opcionalmente, você pode anexar uma mensagem de rescisão abaixo.", + "tautulli.TerminationConfirmMessage": "Deseja encerrar esta sessão?", + "tautulli.TerminationMessage": "Mensagem de Rescisão", + "tautulli.Transcode": "Transcodificar", + "tautulli.TerminateSession": "Encerrar Sessão", + "tautulli.TerminatedSession": "Sessão Encerrada", + "tautulli.TerminateSessionFailed": "Falha ao encerrar a sessão" } diff --git a/localization/wake_on_lan/ca.json b/localization/wake_on_lan/ca.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/localization/wake_on_lan/ca.json @@ -0,0 +1 @@ +{} diff --git a/localization/wake_on_lan/pt.json b/localization/wake_on_lan/pt.json index 9e26dfee..7e07e2a7 100644 --- a/localization/wake_on_lan/pt.json +++ b/localization/wake_on_lan/pt.json @@ -1 +1,5 @@ -{} \ No newline at end of file +{ + "wake_on_lan.MagicPacketSent": "Pacote mágico enviado", + "wake_on_lan.MagicPacketSentMessage": "Sua máquina deve estar acordando!", + "wake_on_lan.MagicPacketFailedToSend": "Falha ao enviar pacote mágico" +}