diff --git a/frontend/dashboard/src/locales/de.json b/frontend/dashboard/src/locales/de.json index a049e1c79..42e3c342b 100644 --- a/frontend/dashboard/src/locales/de.json +++ b/frontend/dashboard/src/locales/de.json @@ -20,7 +20,8 @@ "send": "Senden", "next": "Nächste", "previous": "Vorherige", - "reset": "Zurücksetzen" + "reset": "Zurücksetzen", + "popout": "Popout in neuem Fenster öffnen" }, "sharedTexts": { "saved": "Erfolgreich gespeichert", @@ -47,16 +48,19 @@ "paginationPerPage": "Pro Seite", "searchPlaceholder": "Suche...", "messages": "Nachrichten", - "asc": "Asc", - "desc": "Desc", + "asc": "Aufstieg", + "desc": "Absteigend", "hide": "Ausblenden", "view": "Anzeigen", - "toggleColumns": "Toggle columns", + "toggleColumns": "Spalten umschalten", "copied": "Kopiert", - "userSelected": "{count} users selected", - "userSelectPlaceholder": "Wähle einen Benutzer | Wähle mehrere Benutzer", + "userSelected": "{count} Benutzer ausgewählt", + "userSelectPlaceholder": "Wähle einen Benutzer|Wähle mehrere Benutzer", "userNotFound": "Keine Benutzer gefunden", - "settings": "Einstellungen" + "settings": "Einstellungen", + "create": "Erstelle", + "edit": "Bearbeite", + "noData": "Keine Daten verfügbar" }, "sidebar": { "dashboard": "Übersicht", @@ -80,13 +84,15 @@ "games": "Spiele", "users": "Benutzer", "moderation": "Moderation", - "import": "Importieren", - "community": "Community" - }, - "navbar": { - "logout": "Abmelden", "publicPage": "Öffentliche Seite", - "seeAll": "Alles anzeigen" + "import": "Importieren", + "community": "Community", + "logout": "Ausloggen", + "loggedAs": "Eingeloggt als", + "lang": "Sprache", + "darkTheme": "Dunkles Design", + "lightTheme": "Helles Design", + "notifications": "Benachrichtigungen" }, "deleteConfirmation": { "text": "Bist du sicher, dass du das löschen möchtest?", @@ -126,11 +132,20 @@ } }, "aliases": { - "label": "Aliase" + "label": "Zusatznamen" }, "gameCategories": { "label": "Aktiviere Befehl nur in bestimmten Kategorien (leer lassen für Deaktivierung)" }, + "expiration": { + "label": "Ablauf", + "actionsLabel": "Aktion nach Ablauf", + "defaultWarning": "Ablaufdatum kann nicht für Standardbefehle gesetzt werden", + "actions": { + "delete": "Befehl wird gelöscht", + "disable": "Befehl wird deaktiviert" + } + }, "description": { "label": "Befehlsbeschreibung" }, @@ -148,7 +163,9 @@ "name": "Rollen", "placeholder": "Wählen Sie Rollen aus, um Berechtigungen zur Verwendung von Befehlen zu gewähren", "deniedUsers": "Benutzer, die diesen Befehl nicht verwenden können.", - "allowedUsers": "Benutzer, die die Rollenbeschränkung für diesen Befehl umgehen können." + "allowedUsers": "Benutzer, die die Rollenbeschränkung für diesen Befehl umgehen können.", + "exceptions": "Ausnahmen", + "blocked": "Blockierte Nutzer" }, "restrictions": { "name": "Einschränkungen nach Statistiken", @@ -230,6 +247,45 @@ }, "bot": { "title": "Bot-Verwaltung" + }, + "audit-logs": { + "title": "Audit-Logs", + "search-label": "Suche nach", + "search": { + "channel": "Kanal", + "actor": "Akteur" + }, + "operation-type-label": "Operationstyp", + "operation-type": { + "create": "Erstellt", + "delete": "Gelöscht", + "update": "Bearbeitet" + }, + "systems-label": "Systeme", + "systems": { + "badge": "Badge", + "badge-user": "Benutzer Abzeichen", + "channel-command": "Befehl", + "channel-command-group": "Befehlsgruppe", + "channel-variable": "Variabel", + "channel-games-eight-ball": "8ball", + "channel-games-duel": "Duell", + "channel-games-russian-roulette": "Russisches Roulette", + "channel-games-seppuku": "Seppuku", + "channel-games-voteban": "Voteban", + "channel-greeting": "Begrüßung", + "channel-keyword": "Schlüsselwort", + "channel-moderation-setting": "Moderations-Einstellung", + "channel-overlay-chat": "Chat Overlay", + "channel-overlay-dudes": "Dudes Overlay", + "channel-overlay-now-playing": "Now Playing Overlay", + "channel-roles": "Rolle", + "channel-timers": "Timer", + "channel-song-requests": "Song Requests", + "channel-integrations": "Integration", + "channel-alerts": "Alert", + "channel-chat-alerts": "Chat Alerts" + } } } }, @@ -545,7 +601,7 @@ "example": "!brbstop" }, "text": "Overlay-Text", - "background": "", + "background": "Overlay-Hintergrund", "backgroundOpacity": "Deckkraft des Overlay-Hintergrunds", "font": { "color": "Schriftfarbe", @@ -556,7 +612,7 @@ "late": { "label": "Post-Timer Einstellungen", "text": "Overlay Post-Timer Text", - "displayBrb": "Display Countdown Information" + "displayBrb": "Countdown-Informationen anzeigen" } }, "preview": { @@ -566,10 +622,10 @@ } }, "songRequests": { - "waiting": "Awaiting a Song Request...", + "waiting": "Warte auf eine Songanfrage...", "player": { "title": "Aktueller Song", - "noAccess": "Seems, that you are not able to listen songs there... Go to your own dashboard Song Requests to access the player." + "noAccess": "Anscheinend kannst du dort keine Songs anhören... Gehe zu deinem eigenen Dashboard „Song-Anfragen“, um auf den Player zuzugreifen." }, "table": { "title": "Warteschlange", @@ -582,19 +638,19 @@ }, "settings": { "onlineOnly": "Liedanfragen während des Streamens erlauben?", - "announcePlay": "Announce Current Song into Chat?", - "playerNoCookieMode": "Incognito mode for player", - "playerNoCookieModeDescription": "Enabling this option will allow you to listen to songs without cookies and viewing history. Need refresh page after enabling.", - "neededPercentageForskip": "User Skip Percentage", - "channelReward": "Channel Points Reward Request Trigger", - "deniedChannels": "Banned YouTube Channels List (from requesting songs)", - "deniedWords": "Banned Word List (affects both titles and YouTube channel names)", + "announcePlay": "Aktuellen Song im Chat ankündigen?", + "playerNoCookieMode": "Inkognito-Modus für Spieler", + "playerNoCookieModeDescription": "Wenn Sie diese Option aktivieren, kannst du Songs ohne Cookies anhören und den Verlauf anzeigen. Nach der Aktivierung muss die Seite aktualisiert werden.", + "neededPercentageForskip": "Prozentsatz der übersprungenen Benutzer", + "channelReward": "Auslöser für Kanalpunkte-Belohnungen", + "deniedChannels": "Liste gesperrter YouTube-Kanäle (vom Anfordern von Songs)", + "deniedWords": "Liste verbotener Wörter (betrifft sowohl Titel, als auch YouTube-Kanalnamen)", "deniedUsers": "Gesperrter Benutzer", "deniedSongs": "Gesperrte Songliste", - "takeSongFromDonationMessage": "Attempt to get song links from donation messages?", - "confirmClearQueue": "Are you sure you want to clear the queue?", + "takeSongFromDonationMessage": "Versuche Song-Links aus Donation-Nachrichten zu erhalten?", + "confirmClearQueue": "Bist du sicher, dass du die Warteschlange löschen möchtest?", "users": { - "maxRequests": "Maximum Request Per-User Amount", + "maxRequests": "Maximaler Anforderungsbetrag pro Benutzer", "minimalWatchTime": "Minimale Zuschauzeit (in Minuten)", "minimalMessages": "Minimale Nachrichtenanzahl", "minimalFollowTime": "Minimale Folgezeit (in Minuten)" @@ -622,26 +678,26 @@ "timers": { "table": { "columns": { - "intervalInMinutes": "Intervall (in Minuten)", - "intervalInMessages": "Intervall (in Chat-Nachrichten, auf 0 stellen zur Deaktivierung)" + "intervalInMinutes": "Intervall in Minuten", + "intervalInMessages": "Chatzeilen-Intervall" } }, "modal": { - "timelineDescription": "Each response will be sent once both interval conditions is met.", + "timelineDescription": "Jede Antwort wird gesendet, sobald beide Intervallbedingungen erfüllt sind.", "validations": { - "nameLong": "Timer Name is too long!", - "nameRequired": "Timer Name is required!", - "responseRequired": "Response Text is required!", - "responseLong": "Response is too long!" + "nameLong": "Timer Name ist zu lang!", + "nameRequired": "Timer Name ist erforderlich!", + "responseRequired": "Antworttext ist erforderlich!", + "responseLong": "Antwort ist zu lang!" } }, - "limitExceeded": "Timer Limit exceeded!", - "newTimer": "New timer" + "limitExceeded": "Timer-Limit überschritten!", + "newTimer": "Neuer Timer" }, "roles": { "modal": { - "accessToUsers": "Permitted Users", - "accessByStats": "Permitted Users (by stats)", + "accessToUsers": "Zulässige Benutzer", + "accessByStats": "Zulässige Benutzer (nach Statistiken)", "requiredWatchTime": "Erforderliche Beobachtungszeit", "requiredMessages": "Benötigte Nachrichtenanzahl", "requiredChannelPoints": "Benötigte Kanalpunkte", @@ -654,9 +710,9 @@ "keywords": { "title": "Schlagwörter", "info": { - "text": "Keywords helps you to trigger chat message on certain words matching." + "text": "Mithilfe von Schlüsselwörtern kannst du bei bestimmten passenden Wörtern eine Chat-Nachricht auslösen." }, - "create": "Create keyword", + "create": "Schlüsselwort erstellen", "triggerText": "Auslösetext", "usages": "Anzahl der Verwendungen", "isRegular": "Ist ein regulärer Ausdruck?", @@ -681,8 +737,8 @@ }, "greetings": { "title": "Begrüßung", - "create": "Create greeting", - "edit": "Edit greeting", + "create": "Begrüßung erstellen", + "edit": "Begrüßung bearbeiten", "info": { "title": "Grüßinformationen", "text": "Grüße sind eine Art von Nachrichten, die Bot verwendet, um bekannte Stream-Zuschauer willkommen zu heißen, wenn sie ihre erste Nachricht im Chat auf jedem Stream senden. Wenn Sie jeden Benutzer im Chat begrüßen möchten, dann können Sie sich die Veranstaltungskategorie ansehen, anstatt Grüße." @@ -696,10 +752,10 @@ "title": "Warnungen", "info": "Warnungsinformationen", "overlayLabel": "Warnungen sind ein grafischer Teil der Befehls- oder Ereignis-Implementierung. Sie können eine Benachrichtigung mit spezifiziertem Audio, Bild und Text konfigurieren und sie dann einem bestimmten Befehl, Event, Schlüsselwort oder Gruß zuordnen. Vergessen Sie auch nicht, Overlay-URL als Browserquelle in Ihre Streaming-Software einzufügen! (z. B. OBS, XSplit, etc.)", - "copyOverlayLink": "Copy overlay link", + "copyOverlayLink": "Overlay-Link kopieren", "name": "Name", - "rewards": "Rewards", - "commands": "Commands", + "rewards": "Belohnungen", + "commands": "Befehle", "validations": { "name": "Der Name darf nicht leer oder länger als 30 Zeichen sein!" }, @@ -710,14 +766,14 @@ "greetings": "Grußauslöser" }, "select": { - "audio": "Confugure an audio", - "image": "Configure an image", - "text": "Configure text" + "audio": "Konfugiere eine Audio", + "image": "Konfiguriere ein Bild", + "text": "Konfiguriere einen Text" }, - "audioVolume": "Audio volume", - "createAlert": "Create alert", - "editAlert": "Edit alert", - "tableEmpty": "No alerts found" + "audioVolume": "Audiolautstärke", + "createAlert": "Erstelle einen Alert", + "editAlert": "Alert bearbeiten", + "tableEmpty": "Keine Alerts gefunden" }, "games": { "command": "Befehl", @@ -730,18 +786,18 @@ "canBeUsedByModerator": "Timeout Moderatoren? *Moderatorenrechte werden nach dem Timeout wieder gewährt.", "timeoutSeconds": "Timeout-Zeit (in Sekunden, setzen Sie es auf 0, um ein Timeout zu deaktivieren)", "decisionSeconds": "Verzögerung (in Sek.)", - "initMessage": "Trigger Pull Announcement (Game Start Message)", - "surviveMessage": "User Survived Message", - "deathMessage": "User Lost Message", - "chargedBullets": "Charged Bullets Amount: {tumberSize}", - "tumberSize": "Revolver Сylinder's Size" + "initMessage": "Trigger Pull Ankündigung (Game Start Nachricht)", + "surviveMessage": "Benutzer hat die Nachricht überlebt", + "deathMessage": "Nachricht des Benutzers verloren", + "chargedBullets": "Menge aufgeladener Kugeln: {tumberSize}", + "tumberSize": "Größe der Revolvertrommel" }, "duel": { "title": "Duelle", - "description": "A simple chat game between two users allowing to test their dodge skills!", + "description": "Ein einfaches Chat-Spiel zwischen zwei Benutzern, bei dem Sie Ihre Ausweichfähigkeiten testen können!", "commands": { "title": "Duellbefehle", - "duel": "Ask for a Duel", + "duel": "Frage nach einem Duell", "accept": "Duell akzeptieren", "stats": "Statistiken" }, @@ -792,9 +848,9 @@ "banDuration": "Dauer des Banns", "voteMode": "Modus der Abstimmung", "voteDuration": "Dauer der Abstimmung in Sekunden", - "wordsNegative": "Words for vote to \"no\" option", - "wordsPositive": "Words for vote to \"yes\" option", - "timeoutModerators": "Aktiviere voteban gegen Moderatoren" + "wordsNegative": "Wörter für die Abstimmung mit der Option „Nein“", + "wordsPositive": "Wörter für die Abstimmung mit der Option „Ja“", + "timeoutModerators": "Aktiviere Voteban gegen Moderatoren" } }, "community": { @@ -824,7 +880,7 @@ "usages": "Gesamtnutzung", "users": "Benutzer", "empty": "Keine Emotes", - "chart": "Usages chart", + "chart": "Verwendungsdiagramm", "lastDay": "Tag", "lastWeek": "Woche", "lastMonth": "Monat", @@ -858,90 +914,90 @@ "name": "Overlay Name", "createNewLayer": "Neue Ebene erstellen", "validations": { - "name": "Overlay Name cannot be empty and longer than 30 symbols!", - "layers": "Layers cannot be empty! This overlay cannot contain more than 15 layers." + "name": "Overlay Name darf nicht leer sein und muss länger als 30 Zeichen sein!", + "layers": "Ebenen dürfen nicht leer sein! Dieses Overlay darf nicht mehr als 15 Ebenen enthalten." }, "html": { - "description": "Allows you to use custom HTML, CSS and bot variables.", - "updateInterval": "HTML Variables Update Interval", + "description": "Erlaubt dir benutzerdefinierte HTML-, CSS- und Bot-Variablen zu verwenden.", + "updateInterval": "Aktualisierungsintervall für HTML-Variablen", "variablesAlert": { - "title": "You can use bot variables in HTML, click on the list below to show available options.", - "selectToCopy": "Select a required variable. It will be automatically copied to the clipboard." + "title": "Du kannst Bot-Variablen in HTML verwenden, klicke auf die Liste unten, um verfügbare Optionen anzuzeigen.", + "selectToCopy": "Wähle eine erforderliche Variable aus. Sie wird automatisch in die Zwischenablage kopiert." }, - "periodicallyRefetchData": "Periodically parse and update HTML data from server?" + "periodicallyRefetchData": "HTML-Daten vom Server regelmäßig analysieren und aktualisieren?" } }, "chatAlerts": { - "randomedMessage": "If there are several variants of the chat alerts, then they will be picked randomly.
", - "randomMessageWithCount": "If there will be several variants with the same counter number, then they will be picked randomly.
", - "replacedInfo": "Available Variables: {vars}. They will be replaced with the actual information in the alert.
", - "cooldown": "Message Cooldown (in seconds)", + "randomedMessage": "Wenn es mehrere Varianten der Chat Alerts gibt, wird zufällig ausgewählt.
", + "randomMessageWithCount": "Wenn es mehrere Varianten mit der gleichen Zählernummer gibt, wird zufällig ausgewählt.
", + "replacedInfo": "Verfügbare Variablen: {vars}. Sie werden durch die tatsächlichen Informationen im Alert ersetzt.
", + "cooldown": "Nachrichten Cooldown (in Sekunden)", "ban": { - "alertInfo": "Set time to 0 to print a message when the user is permanently banned.
", - "countLabel": "Time (in minutes)", - "ignoreTimeoutFrom": "Ignore timeouts from" + "alertInfo": "Setze die Zeit auf 0, um eine Nachricht zu drucken, wenn der Benutzer permanent gesperrt ist.
", + "countLabel": "Zeit (in Minuten)", + "ignoreTimeoutFrom": "Ignoriere Timeouts von" }, "labels": { - "followers": "Followers", + "followers": "Follower", "raids": "Raids", "donations": "Spenden", - "subscriptions": "Subscriptions", + "subscriptions": "Abonnements", "rewards": "Belohnungen", - "firstUserMessage": "First User Message", + "firstUserMessage": "Erste Nachricht des Benutzers", "streamOnline": "Stream Online", "streamOffline": "Stream Offline", - "chatCleared": "Chat Clear", + "chatCleared": "Chat leeren", "userBanned": "Benutzer-Sperren", - "channelUnbanRequestCreate": "Unban Request Create", - "channelUnbanRequestResolve": "Unban Request Resolve", - "messageDelete": "Message Deleted" + "channelUnbanRequestCreate": "Erstelle einen Entbannungsantrag", + "channelUnbanRequestResolve": "Entbannungsantrag auflösen", + "messageDelete": "Nachricht gelöscht" } }, "moderation": { - "createNewRule": "Create a New Moderation Rule", - "banTime": "Timeout Time", - "banDescription": "Set to 0 for ban permamently.", - "banMessage": "Timeout Message", + "createNewRule": "Erstelle eine neue Moderations-Regel", + "banTime": "Timeout Zeit", + "banDescription": "Auf 0 gesetzt für permanenten Bann.", + "banMessage": "Timeout Nachricht", "warningMessage": "Warnmeldung", - "warningMaxCount": "Warning Maximum Count", - "excludedRoles": "Select roles which won't be impacted by this filter:", + "warningMaxCount": "Warnung Maximale Anzahl", + "excludedRoles": "Wähle Rollen aus, die von diesem Filter nicht beeinflusst werden:", "types": { "links": { "name": "Links", - "description": "Scans Twitch chat for any web links or URLs and promptly removes them to prevent spam or unsafe content from being sent into chat." + "description": "Scannt Twitch-Chat nach Weblinks oder URLs und entfernt diese sofort, um zu verhindern, dass Spam oder unsichere Inhalte in den Chat geschickt werden." }, "deny_list": { - "name": "Disallowed Words List", - "description": "Helps to maintain clean chat by filtering out words or phrases specified in a predefined list, preventing them from being displayed.", - "empty": "List of disallowed words is empty! You can add one there.", - "regexp": "If you are an advanced user, Disallowed Words List also support regular expressions. Regular Expression should be written in golang format! See {0} here.", - "regexpCheatSheet": "cheat sheet" + "name": "Nicht erlaubte Wörterliste", + "description": "Hilft beim Erhalt eines sauberen Chats, indem man Wörter oder Phrasen aus einer vordefinierten Liste herausfiltert und verhindert, dass sie angezeigt werden.", + "empty": "Liste der nicht erlaubten Wörter ist leer! Du kannst dort welche hinzufügen.", + "regexp": "Wenn du ein fortgeschrittener Benutzer bist, unterstützt die Liste nicht erlaubter Wörter auch reguläre Ausdrücke. Reguläre Ausdrücke sollten im golang-Format geschrieben werden! Siehe {0} hier.", + "regexpCheatSheet": "Spickzettel" }, "symbols": { "name": "Symbole", - "description": "Identifies and restricts excessive use of symbols, preventing clutter, chaos and maintaining readability in the chat.", - "triggerLength": "Minimal Message Length", - "maxPercentage": "Maximum Symbols Percentage" + "description": "Identifiziert und beschränkt den übermäßigen Gebrauch von Symbolen, verhindert Unklarheiten, Chaos und hält die Lesbarkeit im Chat aufrecht.", + "triggerLength": "Minimale Nachrichtenlänge", + "maxPercentage": "Maximaler Prozentsatz der Symbole" }, "long_message": { "name": "Nachrichtenlänge", - "description": "Identifies and restricts long messages by limiting the length of messages sent into chat.", + "description": "Identifiziert und beschränkt lange Nachrichten, indem die Länge der Nachrichten im Chat begrenzt wird.", "triggerLength": "Maximale Nachrichtenlänge" }, "caps": { "name": "Großbuchstaben", - "description": "Identifies and restricts excessive use of capital letters, promoting a more balanced and respectful conversation in the chat.", - "maxPercentage": "Maximum Capital Letters Percentage", + "description": "Identifiziert und beschränkt übermäßige Verwendung von Großbuchstaben und fördert ein ausgewogeneres und respektvolleres Gespräch im Chat.", + "maxPercentage": "Maximaler Prozentsatz der Großbuchstaben", "triggerLength": "Minimale Nachrichtenlänge" }, "emotes": { "name": "Emotes", - "description": "Detects the frequency and amount of emoticons used in messages, avoiding overuse and spam of them.", + "description": "Erkennt die Häufigkeit und die Menge der Emoticons, die in Nachrichten verwendet werden, um Überlastung und Spam zu vermeiden.", "triggerLength": "Maximales Emote Nutzungslimit" }, "language": { "name": "Sprache", - "description": "Scans and filters out inappropriate languages.", + "description": "Scannt und filtert unangemessene Sprachen heraus.", "allowedLanguages": "Liste der erlaubten Sprachen", "disallowedLanguages": "Liste der nicht erlaubten Sprachen" } @@ -960,10 +1016,10 @@ "title": "Benutzereinstellungen", "account": { "title": "Account", - "showMeOnLanding": "Show yourself on the Landing Page?", + "showMeOnLanding": "Lasse dich auf der Start-Seite zeigen?", "regenerateApiKey": { "button": "Privaten API Schlüssel neu generieren", - "info": "This key is used for all overlays links. When you regenerate it, you need to check all your overlays in your streaming software and replace URLs with the new links." + "info": "Dieser Schlüssel wird für alle Overlay-Links verwendet. Wenn du es neu generierst, musst du alle deiner Overlays in deiner Streaming-Software überprüfen und URLs durch die neuen Links ersetzen." } }, "public": { @@ -1031,20 +1087,23 @@ "title": "EventSub abonnieren", "condition": "Bedingung", "type": "Typ", - "typeError": "Geben Sie einen Typ an", + "typeError": "Gebe einen Typ an", "version": "Version", "user": "Benutzer", "channel": "Kanal", - "channelWithBotId": "Channel with bot ID", - "channelWithModeratorId": "Channel with moderator ID" + "channelWithBotId": "Kanal mit Bot-ID", + "channelWithModeratorId": "Kanal mit Moderator-ID" }, "dangerZone": { - "title": "Danger Zone", - "revoke": "Revoke", - "revokeSessions": "Revoke sessions", - "revokeAllSessionsDescription": "All user sessions will be revoked", - "revokeAllSessionsConfirm": "Are you sure you want to revoke all sessions?" + "title": "Gefahrenzone", + "revoke": "Widerrufen", + "revokeSessions": "Sitzungen widerrufen", + "revokeAllSessionsDescription": "Alle Benutzersitzungen werden widerrufen", + "revokeAllSessionsConfirm": "Bist du sicher, dass du alle Sitzungen widerrufen möchtest?" } + }, + "auditLogs": { + "title": "Audit-Logs" } } } diff --git a/frontend/dashboard/src/locales/en.json b/frontend/dashboard/src/locales/en.json index bce4fe6de..beb14a763 100644 --- a/frontend/dashboard/src/locales/en.json +++ b/frontend/dashboard/src/locales/en.json @@ -20,7 +20,8 @@ "send": "Send", "next": "Next", "previous": "Previous", - "reset": "Reset" + "reset": "Reset", + "popout": "Popout in new window" }, "sharedTexts": { "saved": "Saved", @@ -56,7 +57,10 @@ "userSelected": "{count} users selected", "userSelectPlaceholder": "Select user|Select users", "userNotFound": "No users found", - "settings": "Settings" + "settings": "Settings", + "create": "Create", + "edit": "Edit", + "noData": "No data" }, "sidebar": { "dashboard": "Dashboard", @@ -80,13 +84,15 @@ "games": "Games", "users": "Users", "moderation": "Moderation", + "publicPage": "Public Page", "import": "Import", - "community": "Community" - }, - "navbar": { + "community": "Community", "logout": "Logout", - "publicPage": "Public page", - "seeAll": "See all" + "loggedAs": "Logged as", + "lang": "Language", + "darkTheme": "Dark Theme", + "lightTheme": "Light Theme", + "notifications": "Notifications" }, "deleteConfirmation": { "text": "Are you sure about deleting this thing?", @@ -126,11 +132,20 @@ } }, "aliases": { - "label": "Aliases" + "label": "Additional names" }, "gameCategories": { "label": "Enable command only in certain categories (leave empty for disable)" }, + "expiration": { + "label": "Expiration", + "actionsLabel": "Action on expire", + "defaultWarning": "Expiration cannot be set for default command", + "actions": { + "delete": "Command will be deleted", + "disable": "Command will be disabled" + } + }, "description": { "label": "Command Description" }, @@ -148,7 +163,9 @@ "name": "Roles", "placeholder": "Select roles to grant permissions to use commands", "deniedUsers": "Users, who cannot use that command.", - "allowedUsers": "Users, who can bypass roles restriction for that command." + "allowedUsers": "Users, who can bypass roles restriction for that command.", + "exceptions": "Exceptions", + "blocked": "Blocked users" }, "restrictions": { "name": "Restrictions by stats", @@ -230,6 +247,45 @@ }, "bot": { "title": "Bot Management" + }, + "audit-logs": { + "title": "Audit logs", + "search-label": "Search by", + "search": { + "channel": "Channel", + "actor": "Actor" + }, + "operation-type-label": "Operation type", + "operation-type": { + "create": "Created", + "delete": "Deleted", + "update": "Edited" + }, + "systems-label": "Systems", + "systems": { + "badge": "Badge", + "badge-user": "Badge User", + "channel-command": "Command", + "channel-command-group": "Command Group", + "channel-variable": "Variable", + "channel-games-eight-ball": "8ball", + "channel-games-duel": "Duel", + "channel-games-russian-roulette": "Russian Roulette", + "channel-games-seppuku": "Seppuku", + "channel-games-voteban": "Voteban", + "channel-greeting": "Greeting", + "channel-keyword": "Keyword", + "channel-moderation-setting": "Moderation Setting", + "channel-overlay-chat": "Chat Overlay", + "channel-overlay-dudes": "Dudes Overlay", + "channel-overlay-now-playing": "Now Playing Overlay", + "channel-roles": "Role", + "channel-timers": "Timer", + "channel-song-requests": "Song Requests", + "channel-integrations": "Integration", + "channel-alerts": "Alert", + "channel-chat-alerts": "Chat alerts" + } } } }, @@ -622,8 +678,8 @@ "timers": { "table": { "columns": { - "intervalInMinutes": "Interval (in minutes)", - "intervalInMessages": "Interval (in chat messages, set 0 to disable)" + "intervalInMinutes": "Interval in minutes", + "intervalInMessages": "Chat lines interval" } }, "modal": { @@ -817,7 +873,7 @@ } }, "emotesStatistic": { - "title": "Emotes statistics", + "title": "Emotes Statistics", "searchPlaceholder": "Search emotes...", "table": { "emote": "Emote", @@ -1045,6 +1101,9 @@ "revokeAllSessionsDescription": "All user sessions will be revoked", "revokeAllSessionsConfirm": "Are you sure you want to revoke all sessions?" } + }, + "auditLogs": { + "title": "Audit logs" } } } diff --git a/frontend/dashboard/src/locales/pt.json b/frontend/dashboard/src/locales/pt.json new file mode 100644 index 000000000..368af0f5a --- /dev/null +++ b/frontend/dashboard/src/locales/pt.json @@ -0,0 +1,1109 @@ +{ + "languageName": "Inglês", + "sharedButtons": { + "create": "Criar", + "save": "Salvar", + "close": "Fechar", + "copy": "Copiar", + "delete": "Apagar", + "settings": "Configurações", + "login": "Entrar", + "logout": "Sair", + "edit": "Editar", + "select": "Selecione", + "cancel": "Cancelar", + "confirm": "Confirmar", + "saveSettings": "Salvar configurações", + "setDefaultSettings": "Definir configurações padrão", + "goToDashboard": "Vá para o painel", + "add": "Adicionar", + "send": "Enviar", + "next": "Próximo", + "previous": "Anterior", + "reset": "Reiniciar", + "popout": "‘Pop’ out. Em nova janela" + }, + "sharedTexts": { + "saved": "Salvo", + "errorOnSave": "Erro ao salvar {error}", + "enabled": "Habilitado", + "status": "Estatuto", + "name": "Nome", + "actions": "Ações", + "responses": "Respostas", + "reply": { + "label": "Responder", + "text": "O bot enviará respostas de comandos como resposta" + }, + "response": "Resposta", + "user": "Usuário", + "userName": "Nome de Usuário", + "dangerZone": "Zona de Perigo", + "deleted": "Excluído", + "updated": "Atualizado", + "disabled": "Desativado", + "setDefaultSettings": "Tem certeza de que deseja restaurar as configurações padrão?", + "placeCursorMessage": "Coloque o cursor depois de \"$\" para alterar a variável", + "pagination": "{page} página(s) / {total} item(s)", + "paginationPerPage": "Por página", + "searchPlaceholder": "Pesquisar...", + "messages": "Mensagens", + "asc": "Cresc", + "desc": "Decresc", + "hide": "Ocultar", + "view": "Mostrar", + "toggleColumns": "Alternar colunas", + "copied": "Copiado", + "userSelected": "{count} Usuários selecionados", + "userSelectPlaceholder": "Selecionar usuário/Selecionar Usuários", + "userNotFound": "Nenhum usuário encontrado", + "settings": "Configurações", + "create": "Criar", + "edit": "Editar", + "noData": "No data" + }, + "sidebar": { + "dashboard": "Painel de Controle", + "commands": { + "label": "Comandos", + "custom": "Personalizado", + "builtin": "Embutido" + }, + "integrations": "Integrações", + "events": "Eventos", + "chatAlerts": "Alertas de Bate-papo", + "overlays": "Sobreposições", + "overlaysRegistry": "Cadastro de Sobreposições", + "songRequests": "Pedidos de Músicas", + "timers": "Temporizadores", + "roles": "Permissões", + "keywords": "Palavras-chave", + "variables": "Variáveis", + "greetings": "Saudações", + "alerts": "Alertas", + "games": "Jogos", + "users": "Usuários", + "moderation": "Moderação", + "publicPage": "Página Pública", + "import": "Importar", + "community": "Comunidade", + "logout": "Sair", + "loggedAs": "Logado como", + "lang": "Idioma", + "darkTheme": "Tema Escuro", + "lightTheme": "Tema Claro", + "notifications": "Notificações" + }, + "deleteConfirmation": { + "text": "Tem certeza em deletar esta coisa?", + "cancel": "Cancelar", + "confirm": "Confirmar" + }, + "haveNoAccess": { + "title": "Sem acesso", + "description": "Você não tem autorização para isso, peça permissão ao streamer." + }, + "pageNotFound": { + "title": "404 Não Encontrado", + "description": "Você sabe que a vida é sempre ridícula." + }, + "commands": { + "name": "Comando | Comandos", + "searchPlaceholder": "Procurar pelo comando...", + "newCommandTitle": "Novo Comando", + "importCommands": "Importar comandos", + "groups": { + "manageButton": "Gerenciar Grupos", + "name": "Nome", + "color": "Cor" + }, + "table": { + "responses": { + "empty": "As respostas estão vazias!" + } + }, + "modal": { + "name": { + "label": "Nome", + "validations": { + "empty": "Nome do Comando é obrigatório.", + "startsWith": "Nome do Comando não deve começar com '!'.", + "len": "Nome do Comando deve ter menos de 25 caracteres." + } + }, + "aliases": { + "label": "Additional names" + }, + "gameCategories": { + "label": "Ativar comando apenas em certas categorias (deixe em branco para desativar)" + }, + "expiration": { + "label": "Expiração", + "actionsLabel": "Ação ao expirar", + "defaultWarning": "Expiration cannot be set for default command", + "actions": { + "delete": "Comando será excluído", + "disable": "Comando será desativado" + } + }, + "description": { + "label": "Descrição do Comando" + }, + "responses": { + "add": "Adicionar Resposta", + "description": "Esta é sua resposta do comando. Você pode usar variáveis de comando como {0}.", + "validations": { + "empty": "A resposta não deve estar vazia. Comandos podem ser criados sem uma resposta, então você pode pular este campo.", + "len": "A resposta deve conter menos de 500 caracteres." + }, + "defaultWarning": "As respostas não podem ser editadas para comandos padrão." + }, + "permissions": { + "divider": "Permissões", + "name": "Funções", + "placeholder": "Selecione funções para conceder permissões para usar comandos", + "deniedUsers": "Usuários, que não podem usar esse comando.", + "allowedUsers": "Usuários, que podem ignorar as restrições de funções para esse comando.", + "exceptions": "Exceptions", + "blocked": "Blocked users" + }, + "restrictions": { + "name": "Restrições por estatísticas", + "watchTime": "Tempo de relógio necessário para usar esse comando.", + "messages": "Contagem de mensagens necessárias para usar esse comando.", + "channelsPoints": "Gasto de Pontos de Canais necessário para usar esse comando." + }, + "cooldown": { + "label": "Tempo de Recarga", + "value": "Tempo de Recarga em segundos", + "type": { + "name": "Tempo de Recarga por", + "global": "Global", + "user": "Individual (por usuário)" + } + }, + "settings": { + "divider": "Configurações", + "visible": { + "label": "Visibilidade", + "text": "Visibilidade do comando em uma página de comandos pública." + }, + "keepOrder": { + "label": "Manter a Ordem", + "text": "O Bot irá manter esta ordem de respostas quando enviá-las ao bate-papo." + }, + "onlineOnly": { + "label": "Somente quando Online", + "text": "Este comando só funcionará quando a stream estiver online." + }, + "other": { + "divider": "Outro", + "commandGroup": "Grupo de Comando" + } + }, + "alert": { + "label": "Selecione um alerta, o qual será acionado quando o comando for usado." + } + } + }, + "dashboard": { + "header": { + "managingUser": "Gerenciando Usuário", + "channelsAccess": "Canais que você tem acesso" + }, + "botManage": { + "title": "Estado do bot", + "success": "Ativar e ter estado de moderador", + "notEnabledTitle": "O bot não está habilitado no canal", + "notModerator": "Descobrimos que o bot não é um moderador neste canal. Por favor, use {0}, caso contrário o bot não enviará mensagens no bate-papo e a maioria das funções não funcionará", + "leave": "Desabilitar", + "join": "Habilitado" + }, + "statsWidgets": { + "streamInfo": { + "noTitle": "Não foi possível obter o Título da Transmissão!", + "noCategory": "Não foi possível obter Categoria!", + "modalTitle": "Editar informações da Transmissão", + "title": "Título da Transmissão", + "category": "Categoria" + }, + "uptime": "Tempo de atividade", + "followers": "Seguidores", + "messages": "Mensagens", + "subs": "Subscritores", + "usedEmotes": "Emotes Enviados", + "viewers": "Espectadores", + "requestedSongs": "Músicas solicitadas" + }, + "widgets": { + "chat": { + "title": "Conversa" + }, + "stream": { + "title": "Transmissão" + }, + "events": { + "title": "Lista de eventos" + }, + "bot": { + "title": "Gestão de bots" + }, + "audit-logs": { + "title": "Registos de auditoria", + "search-label": "Pesquisar por", + "search": { + "channel": "Canal", + "actor": "Atriz" + }, + "operation-type-label": "Tipo de operação", + "operation-type": { + "create": "Criado", + "delete": "Excluído", + "update": "Editado" + }, + "systems-label": "Sistemas", + "systems": { + "badge": "Medalha", + "badge-user": "Usuário do selo", + "channel-command": "Comando", + "channel-command-group": "Grupo de Comando", + "channel-variable": "Variável", + "channel-games-eight-ball": "8ball", + "channel-games-duel": "Duelo", + "channel-games-russian-roulette": "Roleta Russa", + "channel-games-seppuku": "Seppuku", + "channel-games-voteban": "Voteban", + "channel-greeting": "Saudar", + "channel-keyword": "Palavra-chave", + "channel-moderation-setting": "Configurações da moderação", + "channel-overlay-chat": "Sobreposição do chat", + "channel-overlay-dudes": "Dudes Overlay", + "channel-overlay-now-playing": "Now Playing Overlay", + "channel-roles": "Funções", + "channel-timers": "Temporizadora", + "channel-song-requests": "Solicitações de músicas", + "channel-integrations": "Integração", + "channel-alerts": "Alerta", + "channel-chat-alerts": "Chat alerts" + } + } + } + }, + "integrations": { + "notLoggedIn": "You have not logged in!", + "songServicesInfo": "Providing access to this service allows Twir to automatically get and print your currently playing song into chat when {0} command is being used.", + "donateServicesInfo": "Providing access to this service allows Twir to listen to incoming donations, and will setup interactions for you in {0}, {1} categories.", + "discord": { + "description": "Providing access to Discord allows Twir to setup automatic pings and alerts about the stream status on your Discord servers.", + "guildPluralization": "No servers | 1 server | {count} servers", + "connectedGuilds": "{guilds} connected", + "alerts": { + "label": "Alertas", + "showTitle": "Mostrar título da transmissão?", + "showCategory": "Mostrar categoria de transmissão?", + "showViewers": "Mostrar contador de espectadores?", + "showPreview": "Mostrar visualização da transmissão?", + "showProfileImage": "Mostrar avatar do perfil do Twitch?", + "channelsSelect": "Onde serão publicados os alertas?", + "streamOnlineLabel": "Mensagem de alerta de fluxo", + "streamOnlinePlaceholder": "This message Twir will send when the stream starts.", + "streamOfflineLabel": "Stream Ended Message", + "streamOfflinePlaceholder": "This message Twir will send when the stream goes offline.", + "updateAlert": "Twir will update embed message periodically to make sure it is synced with your stream state. (viewers, title, category, etc.)", + "shouldDeleteMessageOnOffline": "Delete alert message instead of editing it when stream goes offline?", + "additionalUsersIdsForLiveCheck": "Additional list of Twitch users to follow to send stream alerts." + }, + "connectGuild": "+ Connect Server", + "disconnectGuild": "Disconnect Server", + "noGuilds": "No Servers Connected", + "cannotSendMessage": "Bot has no ability to send messages in that channel. Check out channel permissions to solve this." + }, + "faceit": { + "info": "Providing access to this service allows Twir to track your Faceit matches and will setup command variables such as {0}, {1} and much more." + }, + "nightbot": { + "info": "Providing access to this service allows Twir to import commands and timers from Nightbot." + }, + "valorant": { + "info": "Providing access to this service allows Twir to track your Valorant matches and will setup command variables such as {0}, {1} and much more. " + }, + "sevenTv": { + "description": "We can manage 7tv channel emotes, when this integration is enabled.", + "alert": "You also can do advanced flow via {0} system to manage 7tv emotes.", + "connected": "Conectado", + "notConnected": "Não conectado", + "notRegistered": "You are not registered at {0}", + "errorSameReward": "You cannot use the same reward for adding and removing emotes!", + "deleteOnlyAddedByApp": "Remove emotes only added by Twir", + "connectSteps": { + "step1": "Open your {0} profile", + "step2": "Click on \"Add editors\" button", + "step3": "Add {0} as an editor" + }, + "rewardForAddEmote": "Reward for adding emote", + "rewardForRemoveEmote": "Reward for removing emote", + "rewardSelectorDescription": "You should create reward with input. Users must use 7tv link to emote when they're activating reward." + } + }, + "events": { + "delay": "Delay (in seconds)", + "repeat": "Contagem de testes", + "onlineOnly": "Online-Only Execution", + "type": "Tipo", + "description": "Descrição", + "targetCommand": "Comando de Destino", + "targetVariable": "Target Variable", + "targetTwitchReward": "Target Twitch Reward", + "targetKeyword": "Target Keyword", + "operations": { + "divider": "Ações", + "name": "Action", + "inputs": { + "message": "Message To Send (supports variables)", + "default": "Action Text (supports variables)", + "vipSlots": "VIP Slots Amount", + "username": "Username (supports variables)", + "variableValue": "New Variable Value (supports variables)", + "variableIncrementDecrement": "Increment/Decrement Value (supports variables)" + }, + "banMessage": "Ban Message", + "banTime": "Ban Time", + "obs": { + "warningTitle": "You need to configure OBS first before proceeding further!", + "warningText": "Seems like you have not connected Twir with OBS. You can do it on the “Overlays” page.", + "scene": "OBS Scene", + "source": "OBS Source", + "audioSource": "OBS Audio Source" + }, + "values": "Valores", + "triggerAlert": "Trigger Alert", + "filters": { + "label": "Filtros", + "description": "You can filter events by specific conditions. For example if you use \"{'{raidViewers}'} equals 10\" on raid event, it will trigger operation only when raiders amount is 10.", + "placeholderLeft": "Left side of the condition", + "placeholderRight": "Right side of the condition", + "empty": "No filters added yet" + } + }, + "variables": { + "userName": "Event Triggerer Username", + "userDisplayName": "Event Triggerer Display Name", + "targetUserName": "Event Target Username", + "targetDisplayUserName": "Event Target Display Name", + "subLevel": "Níveis de assinatura (como “1”/“2”/“3”/“primo”)", + "resubMonths": "Comprimento da assinatura", + "resubStreak": "Contagem total de meses assinantes", + "resubMessage": "User Resubscription Message", + "rewardName": "Channel Points Reward Name", + "rewardCost": "Channel Points Reward Price", + "rewardInput": "Channel Points Reward Custom Message", + "commandName": "Command Name", + "commandInput": "Command Arguments", + "raidViewers": "Amount of Raiders", + "oldStreamTitle": "Old Stream Title", + "newStreamTitle": "New Stream Title", + "oldStreamCategory": "Old Stream Category", + "newStreamCategory": "New Stream Category", + "streamTitle": "Stream Title", + "streamCategory": "Stream Category", + "donateAmount": "Donation Amount", + "donateCurrency": "Donation Currency", + "donateMessage": "Donation Message", + "keywordName": "Keyword Name", + "keywordResponse": "Keyword Responses (separated by space)", + "greetingText": "Greeting Message", + "pollTitle": "Poll Title", + "pollOptionsNames": "Poll Settings (separated by comma)", + "pollTotalVotes": "Total Poll Votes", + "pollWinnerTitle": "Poll Winner Name", + "pollWinnerBitsVotes": "Number of Winner's Bits Votes", + "pollWinnerChannelsPointsVotes": "Number of Winner's Channel Points Votes", + "pollWinnerTotalVotes": "Total Winner's Poll Votes", + "predictionTitle": "Prediction Title", + "predictionOptionsNames": "Prediction Outcomes (separated by · symbol)", + "predictionTotalChannelPoints": "Total Channel Points Placed", + "predictionWinner": { + "title": "Prediction Winner Outcome", + "totalUsers": "Total Winner Outcome Users", + "totalPoints": "Total Channel Points Placed on Winner Outcome", + "topUsers": "Top 10 Users of Winner Outcome" + }, + "moderatorName": "Event Triggerer Moderator Username", + "moderatorDisplayName": "Event Triggerer Moderator Display Name", + "banReason": "Ban Reason", + "banEndsInMinutes": "Timeout (in minutes, or set to \"permanent\" to ban permamently)", + "message": "Message" + } + }, + "overlays": { + "copyOverlayLink": "Copy Overlay Link", + "uncongirured": "You should configure overlay first!", + "noAccess": "You do not have access to this overlay!", + "copied": "Successfully copied overlay link URL! You need to set this as browser source in OBS.", + "nowPlaying": { + "description": "Overlay with current playable song information. This overlay will work only if you have connected your song service integration like spotify, lastfm." + }, + "tts": { + "description": "This overlay allows you to play chat messages as audio through OBS with the set of preconfigured voices. You can control this overlay using commands or events.", + "eventsHint": "Hint: You can use events system to trigger TTS on specific event.", + "allowUsersChooseVoice": "Allow chatters to use different voices?", + "doNotReadEmoji": "Do Not Read Emojis", + "doNotReadTwitchEmotes": "Do Not Read Twitch Emotes (including 7TV, FFZ, BTTV", + "doNotReadLinks": "Do Not Read Links", + "readChatMessages": "Read All Chat Messages", + "readChatMessagesNicknames": "Read Usernames", + "voice": "Default Voice", + "disallowedVoices": "Disallowed Voices List", + "volume": "Volume", + "pitch": "Pitch", + "rate": "Rate", + "users": { + "selectAll": "Select All", + "undoSelection": "Undo Selection", + "empty": "No one have created their own customizations yet..." + }, + "tabs": { + "general": "General", + "usersSettings": "Individual Settings" + }, + "previewText": "Preview voice with text, pitch and rate:" + }, + "obs": { + "description": "This overlay allows you to connect Twir with your OBS. It gives an ability to manage your sources, scenes, audio sources and events.", + "address": "Address of OBS WebSocket server", + "port": "Port of OBS WebSocket server", + "connected": "Connected!", + "notConnected": "Not Connected!", + "checkConnection": "Check Connection" + }, + "alerts": { + "description": "This overlay allows you to play configured alerts from the “Alerts” section." + }, + "chat": { + "presets": "Presets", + "selectSubsetPlaceholder": "Select preferable subsets", + "hideTimeout": "Message Hide Timeout", + "showDelay": "Message Show Delay", + "showBadges": "Show Badges", + "showAnnounceBadge": "Show Announcement Border", + "paddingContainer": "Inside Container Padding", + "resetToDefault": "Reset to Default", + "textShadow": "Text Shadow", + "backgroundColor": "Background Color", + "direction": "Message Direction", + "directions": { + "left": "Left", + "right": "Right", + "top": "Top", + "bottom": "Bottom" + }, + "directionWarning": "To use 'Left' and 'Right' you should set overlay height up to 50x for the chat to display properly!", + "fontFamily": "Font Family", + "fontSize": "Font Size", + "fontStyle": "Font Style", + "fontWeight": "Font Weight", + "availabeFonts": "Available Fonts", + "hideCommands": "Hide Commands", + "hideBots": "Hide Other Bots Messages", + "style": "Message Style", + "description": "This overlay allows you to display your Twitch chat in your streaming software (such as OBS, XSplit, etc).)" + }, + "dudes": { + "description": "Animated characters for chatters in your stream", + "enable": "Enable", + "dudeDivider": "Dude", + "dudeDefaultSprite": "Default sprite", + "dudeMaxOnScreen": "Max on screen", + "dudeMaxOnScreenUnlimited": "Unlimited", + "dudeColor": "Default user color", + "dudeGravity": "Gravity", + "dudeMaxLifeTime": "Max life time", + "dudeScale": "Scale", + "dudeSoundsDivider": "Sounds", + "dudeSoundsVolume": "Volume", + "ignoreDivider": "Ignoring", + "ignoreCommands": "Ignore commands", + "ignoreUsers": "Ignore users", + "ignoreUsersList": "List of ignored users", + "nameBoxDivider": "Name box", + "nameBoxFill": "Text colors", + "nameBoxFillError": "Color is required", + "nameBoxFillGradientStops": "Text colors of gradient stops", + "nameBoxFillGradientStopsError": "Text colors of gradient range should be from 0 to 1", + "nameBoxGradientType": "Gradient type", + "nameBoxFontFamily": "Font family", + "nameBoxFontSize": "Font size", + "nameBoxFontWeight": "Font weight", + "nameBoxFontStyle": "Font style", + "nameBoxFontVariant": "Font variant", + "nameBoxStroke": "Stroke color", + "nameStrokeThickness": "Stroke thickness", + "nameBoxLineJoin": "Stroke line join", + "nameBoxDropShadow": "Drop shadow", + "nameBoxDropShadowColor": "Shadow color", + "nameBoxDropShadowAlpha": "Shadow alpha", + "nameBoxDropShadowBlur": "Shadow blur", + "nameBoxDropShadowDistance": "Shadow distance", + "nameBoxDropShadowAngle": "Shadow angle", + "messageBoxIgnoreCommands": "Ignore commands", + "messageBoxDivider": "Message box", + "messageBoxShowTime": "Show time", + "messageBoxFill": "Text color", + "messageBoxBackground": "Background color", + "messageBoxPadding": "Padding", + "messageBoxBorderRadius": "Border radius", + "messageBoxFontSize": "Font size", + "emoteDivider": "Emote", + "growDivider": "Grow", + "growTime": "Grow time", + "growMaxScale": "Max scale" + }, + "kappagen": { + "description": "This overlay allows you to fill up your screen with explosions, movements, fireworks, walls of emotes through the chat.", + "testKappagen": "Test Kappagen", + "testSpawn": "Test Emote Spawn", + "clear": "Clear Overlay", + "info": "Spawn will show emotes on screen while users just chatting around and sending emotes. Kappagen will show configured amount of emotes on a command or configured events.", + "tabs": { + "main": "Settings", + "events": "Events", + "animations": "Animations" + }, + "settings": { + "spawn": "Spawn an emote on each chat message?", + "size": "Size", + "sizeSmall": "Size for Small Emote Variant", + "time": "Emote Livespan", + "maxEmotes": "Emotes Amount", + "animationsOnAppear": "Appearing Emote Animation", + "animationsOnDisappear": "Disappearing Emote Animation", + "excludedEmotes": "Excluded Emotes", + "rave": "Show Rave (Rainbow) Emotes", + "emotes": { + "bttvEnabled": "Enable BetterTTV Emotes?", + "ffzEnabled": "Enable FrankerFaceZ Emotes?", + "seventvEnabled": "Enable 7TV Emotes?", + "emojiStyle": "Emoji Style" + } + } + }, + "brb": { + "description": "This overlay allows you to show a countdown on screen for specific events or while you're AFK.", + "settings": { + "main": { + "label": "Settings", + "startCommand": { + "description": "Overlay Start Command", + "example": "!brb 1 Coffee – starts an 1-minute timer with 'Coffee' label.
!brb 1 – starts an 1-minute timer with default text specified in the Settings and Post-Timer Settings sections." + }, + "stopCommand": { + "description": "Overlay Stop Command", + "example": "!brbstop" + }, + "text": "Overlay Text", + "background": "Overlay Background", + "backgroundOpacity": "Overlay Background Opacity", + "font": { + "color": "Font Color", + "family": "Font Family", + "size": "Font Size" + } + }, + "late": { + "label": "Post-Timer Settings", + "text": "Overlay Post-Timer Text", + "displayBrb": "Display Countdown Information" + } + }, + "preview": { + "start": "Start Overlay Preview", + "stop": "Stop Overlay Preview" + } + } + }, + "songRequests": { + "waiting": "Awaiting a Song Request...", + "player": { + "title": "Current Song", + "noAccess": "Seems, that you are not able to listen songs there... Go to your own dashboard Song Requests to access the player." + }, + "table": { + "title": "Queue", + "columns": { + "title": "Title", + "author": "Author", + "added": "Added by", + "duration": "Duration" + } + }, + "settings": { + "onlineOnly": "Allow Song Requests when streaming?", + "announcePlay": "Announce Current Song into Chat?", + "playerNoCookieMode": "Incognito mode for player", + "playerNoCookieModeDescription": "Enabling this option will allow you to listen to songs without cookies and viewing history. Need refresh page after enabling.", + "neededPercentageForskip": "User Skip Percentage", + "channelReward": "Channel Points Reward Request Trigger", + "deniedChannels": "Banned YouTube Channels List (from requesting songs)", + "deniedWords": "Banned Word List (affects both titles and YouTube channel names)", + "deniedUsers": "Banned Users", + "deniedSongs": "Banned Songs List", + "takeSongFromDonationMessage": "Attempt to get song links from donation messages?", + "confirmClearQueue": "Are you sure you want to clear the queue?", + "users": { + "maxRequests": "Maximum Request Per-User Amount", + "minimalWatchTime": "Minimal Watch Time (in minutes)", + "minimalMessages": "Minimal Message Amount", + "minimalFollowTime": "Minimal Follow Time (in minutes)" + }, + "songs": { + "maxRequests": "Maximum Song Queue Limit", + "minLength": "Minimal Song Length (in minutes)", + "maxLength": "Maximum Song Length (in minutes)", + "minViews": "Minimal Views Amount" + } + }, + "tabs": { + "general": "General", + "users": "Users", + "songs": "Songs", + "translations": "Translations" + }, + "ban": { + "user": "Ban user", + "song": "Ban song", + "userConfirm": "Are you sure you want to ban this user?", + "songConfirm": "Are you sure you want to ban this song?" + } + }, + "timers": { + "table": { + "columns": { + "intervalInMinutes": "Interval in minutes", + "intervalInMessages": "Chat lines interval" + } + }, + "modal": { + "timelineDescription": "Each response will be sent once both interval conditions is met.", + "validations": { + "nameLong": "Timer Name is too long!", + "nameRequired": "Timer Name is required!", + "responseRequired": "Response Text is required!", + "responseLong": "Response is too long!" + } + }, + "limitExceeded": "Timer Limit exceeded!", + "newTimer": "New timer" + }, + "roles": { + "modal": { + "accessToUsers": "Permitted Users", + "accessByStats": "Permitted Users (by stats)", + "requiredWatchTime": "Required Watch Time", + "requiredMessages": "Required Messages Amount", + "requiredChannelPoints": "Required Channel Points Spent", + "permissions": "Permissions" + }, + "validations": { + "nameRequired": "Name is required!" + } + }, + "keywords": { + "title": "Keywords", + "info": { + "text": "Keywords helps you to trigger chat message on certain words matching." + }, + "create": "Create keyword", + "triggerText": "Trigger Text", + "usages": "Usage Count", + "isRegular": "Is a Regular Expression?", + "regularDescription": "Regular Expression should be written in golang format! See {0} here.", + "regularDescriptionCheatSheet": "cheat sheet", + "settings": "Settings", + "cooldown": "Cooldown (in seconds)", + "validations": { + "triggerRequired": "Trigger Text is required!", + "triggerLong": "Trigger Text is too long!", + "responseLong": "Response Text is too long!" + } + }, + "variables": { + "title": "Variables", + "type": "Type", + "info": "Variables is a type of a context that can be used in bot responses, commands and other parts of the bot. You can specify a constant value or put a script to get some values that is usually cannot be easily accessed by the bot. Script Variables are recommended for advanced users.", + "validations": { + "nameRequired": "Variable Name is required!", + "nameLong": "Variable Name is too long" + } + }, + "greetings": { + "title": "Greetings", + "create": "Create greeting", + "edit": "Edit greeting", + "info": { + "title": "Greetings Information", + "text": "Greetings are a type of messages that bot uses to welcome known stream viewers when they send their first message in chat on each stream. If you wish to greet every user in chat, then you can look at the events category instead of Greetings." + }, + "validations": { + "userName": "Username is required!", + "textRequired": "Response Text is required!" + } + }, + "alerts": { + "title": "Alerts", + "info": "Alerts Information", + "overlayLabel": "Alerts are a graphical part of the command or event implementation. You can configure an alert with specified audio, image and text, then assign it to specific command, event, keyword or greeting. Also do not forget to insert overlay URL as a browser source into your streaming software scene! (such as OBS, XSplit, etc.)", + "copyOverlayLink": "Copy overlay link", + "name": "Name", + "rewards": "Rewards", + "commands": "Commands", + "validations": { + "name": "Name cannot be empty or longer than 30 symbols!" + }, + "trigger": { + "commands": "Command Trigger", + "rewards": "Channel Points Reward Trigger", + "keywords": "Keyword Trigger", + "greetings": "Greeting Trigger" + }, + "select": { + "audio": "Confugure an audio", + "image": "Configure an image", + "text": "Configure text" + }, + "audioVolume": "Audio volume", + "createAlert": "Create alert", + "editAlert": "Edit alert", + "tableEmpty": "No alerts found" + }, + "games": { + "command": "Command", + "8ball": { + "description": "A simple chat game that allows chatters to ask the magic 8ball something and it will answer to the chatter.", + "answers": "Answers" + }, + "russianRoulette": { + "description": "A simple chat game that allows chatters to test luck in a classic russian funny* roulette game.", + "canBeUsedByModerator": "Timeout Moderators? *Moderator privileges will be granted again after the timeout.", + "timeoutSeconds": "Timeout Time (in seconds, set it to 0 to disable a timeout)", + "decisionSeconds": "Result Delay (in seconds)", + "initMessage": "Trigger Pull Announcement (Game Start Message)", + "surviveMessage": "User Survived Message", + "deathMessage": "User Lost Message", + "chargedBullets": "Charged Bullets Amount: {tumberSize}", + "tumberSize": "Revolver Сylinder's Size" + }, + "duel": { + "title": "Duels", + "description": "A simple chat game between two users allowing to test their dodge skills!", + "commands": { + "title": "Duel Commands", + "duel": "Ask for a Duel", + "accept": "Accept a Duel", + "stats": "Statistics" + }, + "cooldown": { + "title": "Duel Cooldown", + "user": "Individual", + "global": "Global" + }, + "messages": { + "title": "Messages", + "start": { + "title": "Initial Message", + "description": "Sends this message when duel initiated. Available variables: {'{target}, {initiator}, {duelAcceptCommandName}, {acceptSeconds}'}" + }, + "result": { + "title": "Result Message", + "description": "Sends this message when duel happened. Available variables: {'{loser}, {winner}'}" + }, + "bothDie": { + "title": "«No One Survived» Message", + "description": "Sends this message when duel happened and both duelists are dead. Available variables: {'{target}, {initiator}'}" + } + }, + "settings": { + "title": "Settings", + "secondsToAccept": "Seconds to accept duel", + "timeoutTime": "Timeout time for loser", + "pointsPerWin": "Reputation for win", + "pointsPerLose": "Reputation for lose", + "bothDiePercent": "Percent of chance both users die" + } + }, + "seppuku": { + "description": "Seppuku, is a form of Japanese ritualistic suicide by disembowelment.", + "message": "Message", + "timeoutModerators": "Enable seppuku for moderators", + "messageModerators": "Message when moderator used seppuku", + "timeoutSeconds": "Timeout seconds" + }, + "voteban": { + "description": "Commence jury trial of the guilty chatterer!", + "banMessage": "Message on ban", + "banMessageModerators": "Message for ban moderator", + "surviveMessage": "Survive message", + "surviveMessageModerators": "Survive message for moderators", + "initialMessage": "Init message", + "neededVotes": "Needed votes", + "banDuration": "Duration of ban", + "voteMode": "Mode of vote", + "voteDuration": "Duration of vote in seconds", + "wordsNegative": "Words for vote to \"no\" option", + "wordsPositive": "Words for vote to \"yes\" option", + "timeoutModerators": "Enable voteban on moderators" + } + }, + "community": { + "title": "Community", + "users": { + "title": "Users", + "searchPlaceholder": "Search users...", + "table": { + "user": "User", + "watchedTime": "Watched Time", + "messages": "Messages", + "usedEmotes": "Used Emotes", + "usedChannelPoints": "Channel Points Spent", + "empty": "No users" + }, + "total": "Total users: {total}", + "reset": { + "label": "Reset", + "resetQuestion": "Are you sure you want to reset {title}?" + } + }, + "emotesStatistic": { + "title": "Emotes Statistics", + "searchPlaceholder": "Search emotes...", + "table": { + "emote": "Emote", + "usages": "Total usages", + "users": "Users", + "empty": "No emotes", + "chart": "Usages chart", + "lastDay": "Day", + "lastWeek": "Week", + "lastMonth": "Month", + "lastThreeMonth": "3 months", + "lastYear": "Year" + }, + "total": "Total emotes: {total}", + "details": { + "stats": "Stats", + "users": "Users", + "usersTabs": { + "top": "Top", + "history": "History" + } + } + } + }, + "filePicker": { + "innerText": "Select or drop {type} here.", + "usedSpace": "Used {used} / {max} MB", + "emptyText": "No {type} uploaded." + }, + "overlaysRegistry": { + "description": "This category allows you to create custom configurable overlays for OBS. Currently only HTML Overlays are supported, but other overlay variants will be added later. Thank you for the patience. <3", + "noLayersCreated": { + "title": "Not Configured", + "description": "Currently layers of overlays not created" + }, + "customWidth": "Width", + "customHeight": "Height", + "name": "Overlay Name", + "createNewLayer": "Create New Layer", + "validations": { + "name": "Overlay Name cannot be empty and longer than 30 symbols!", + "layers": "Layers cannot be empty! This overlay cannot contain more than 15 layers." + }, + "html": { + "description": "Allows you to use custom HTML, CSS and bot variables.", + "updateInterval": "HTML Variables Update Interval", + "variablesAlert": { + "title": "You can use bot variables in HTML, click on the list below to show available options.", + "selectToCopy": "Select a required variable. It will be automatically copied to the clipboard." + }, + "periodicallyRefetchData": "Periodically parse and update HTML data from server?" + } + }, + "chatAlerts": { + "randomedMessage": "If there are several variants of the chat alerts, then they will be picked randomly.
", + "randomMessageWithCount": "If there will be several variants with the same counter number, then they will be picked randomly.
", + "replacedInfo": "Available Variables: {vars}. They will be replaced with the actual information in the alert.
", + "cooldown": "Message Cooldown (in seconds)", + "ban": { + "alertInfo": "Set time to 0 to print a message when the user is permanently banned.
", + "countLabel": "Time (in minutes)", + "ignoreTimeoutFrom": "Ignore timeouts from" + }, + "labels": { + "followers": "Followers", + "raids": "Raids", + "donations": "Donations", + "subscriptions": "Subscriptions", + "rewards": "Rewards", + "firstUserMessage": "First User Message", + "streamOnline": "Stream Online", + "streamOffline": "Stream Offline", + "chatCleared": "Chat Clear", + "userBanned": "User Ban", + "channelUnbanRequestCreate": "Unban Request Create", + "channelUnbanRequestResolve": "Unban Request Resolve", + "messageDelete": "Message Deleted" + } + }, + "moderation": { + "createNewRule": "Create a New Moderation Rule", + "banTime": "Timeout Time", + "banDescription": "Set to 0 for ban permamently.", + "banMessage": "Timeout Message", + "warningMessage": "Warning Message", + "warningMaxCount": "Warning Maximum Count", + "excludedRoles": "Select roles which won't be impacted by this filter:", + "types": { + "links": { + "name": "Links", + "description": "Scans Twitch chat for any web links or URLs and promptly removes them to prevent spam or unsafe content from being sent into chat." + }, + "deny_list": { + "name": "Disallowed Words List", + "description": "Helps to maintain clean chat by filtering out words or phrases specified in a predefined list, preventing them from being displayed.", + "empty": "List of disallowed words is empty! You can add one there.", + "regexp": "If you are an advanced user, Disallowed Words List also support regular expressions. Regular Expression should be written in golang format! See {0} here.", + "regexpCheatSheet": "cheat sheet" + }, + "symbols": { + "name": "Symbols", + "description": "Identifies and restricts excessive use of symbols, preventing clutter, chaos and maintaining readability in the chat.", + "triggerLength": "Minimal Message Length", + "maxPercentage": "Maximum Symbols Percentage" + }, + "long_message": { + "name": "Message Length", + "description": "Identifies and restricts long messages by limiting the length of messages sent into chat.", + "triggerLength": "Maximum Message Length" + }, + "caps": { + "name": "Caps", + "description": "Identifies and restricts excessive use of capital letters, promoting a more balanced and respectful conversation in the chat.", + "maxPercentage": "Maximum Capital Letters Percentage", + "triggerLength": "Minimal Message Length" + }, + "emotes": { + "name": "Emotes", + "description": "Detects the frequency and amount of emoticons used in messages, avoiding overuse and spam of them.", + "triggerLength": "Maximum Emote Usage Limit" + }, + "language": { + "name": "Language", + "description": "Scans and filters out inappropriate languages.", + "allowedLanguages": "Allowed Languages List", + "disallowedLanguages": "Disallowed Languages List" + } + } + }, + "feedback": { + "button": "Send feedback", + "notification": "Your feedback sended", + "rateLimited": "You are sending messages to quickly, try again in {time}", + "messageLabel": "Message", + "validation": { + "emptyMessage": "Message cannot be empty" + } + }, + "userSettings": { + "title": "User settings", + "account": { + "title": "Account", + "showMeOnLanding": "Show yourself on the Landing Page?", + "regenerateApiKey": { + "button": "Regenerate Private API key", + "info": "This key is used for all overlays links. When you regenerate it, you need to check all your overlays in your streaming software and replace URLs with the new links." + } + }, + "public": { + "title": "Public page", + "description": "Description of channel", + "socialLinks": "Social links", + "errorCreateLink": "\"{title}\" contains not a valid link {href}", + "errorInvalidLength": "Invalid length", + "errorInvalidLink": "Invalid link", + "errorEmpty": "Cannot be empty", + "errorTooLong": "Too long", + "linkTitle": "Title", + "linkLabel": "Link" + } + }, + "adminPanel": { + "title": "Admin Panel", + "notifications": { + "title": "Notifications", + "formTitle": "Send or edit notification", + "emptyNotifications": "No notifications", + "userLabel": "User", + "userPlaceholder": "Select a user", + "messageLabel": "Message", + "messagePreview": "Preview", + "createdAt": "Created At", + "globals": "Globals", + "users": "Users", + "confirmResetForm": "Are you sure you want to reset the form?" + }, + "manageUsers": { + "title": "Users", + "user": "User", + "userId": "User ID", + "followers": "Followers", + "noUsers": "No users", + "filters": "Filters", + "clearFilters": "Clear filters", + "countSelected": "{count} selected", + "isAdmin": "Admin", + "isBanned": "Banned", + "isBotEnabled": "Bot enabled", + "statusGroup": "Status", + "badgesGroup": "Badges", + "giveBan": "Ban user", + "unBan": "Unban user", + "giveMod": "Give admin", + "unMod": "Remove admin", + "dropSession": "Drop session" + }, + "manageBadges": { + "title": "Badges", + "formTitle": "Create or edit badge", + "name": "Name", + "users": "Users", + "slot": "Slot", + "image": "Image", + "preview": "Preview", + "usesCount": "Uses {count}", + "badgeSlot": "Slot {slot}" + }, + "adminActions": { + "title": "Actions", + "eventsub": { + "title": "Subscribe to EventSub", + "condition": "Condition", + "type": "Type", + "typeError": "Please select a type", + "version": "Version", + "user": "User", + "channel": "Channel", + "channelWithBotId": "Channel with bot ID", + "channelWithModeratorId": "Channel with moderator ID" + }, + "dangerZone": { + "title": "Danger Zone", + "revoke": "Revoke", + "revokeSessions": "Revoke sessions", + "revokeAllSessionsDescription": "All user sessions will be revoked", + "revokeAllSessionsConfirm": "Are you sure you want to revoke all sessions?" + } + }, + "auditLogs": { + "title": "Audit logs" + } + } +} diff --git a/frontend/dashboard/src/locales/ru.json b/frontend/dashboard/src/locales/ru.json index 5d31ac867..62c5b6dbf 100644 --- a/frontend/dashboard/src/locales/ru.json +++ b/frontend/dashboard/src/locales/ru.json @@ -20,7 +20,8 @@ "send": "Отправить", "next": "Далее", "previous": "Назад", - "reset": "Сбросить" + "reset": "Сбросить", + "popout": "Открыть в отдельном окне" }, "sharedTexts": { "saved": "Сохранено", @@ -35,7 +36,7 @@ "text": "Бот будет отправлять команду как ответ" }, "response": "Ответ", - "user": "User", + "user": "Пользователь", "userName": "Имя пользователя", "dangerZone": "Опасная зона", "deleted": "Удалено", @@ -43,20 +44,23 @@ "disabled": "Отключено", "setDefaultSettings": "Сбросить настройки по умолчанию?", "placeCursorMessage": "Поместите курсор после \"$\", чтобы изменить переменную", - "pagination": "{page} page(s) / {total} item(s)", - "paginationPerPage": "Per page", + "pagination": "из {page} страниц / {total} записей", + "paginationPerPage": "Постранично", "searchPlaceholder": "Поиск", - "messages": "Messages", - "asc": "Asc", - "desc": "Desc", - "hide": "Hide", - "view": "View", - "toggleColumns": "Toggle columns", - "copied": "Copied", - "userSelected": "{count} users selected", - "userSelectPlaceholder": "Select user|Select users", - "userNotFound": "No users found", - "settings": "Settings" + "messages": "Сообщения", + "asc": "", + "desc": "Описание", + "hide": "Скрыть", + "view": "Смотреть", + "toggleColumns": "Переключить столбцы", + "copied": "Скопировано", + "userSelected": "Выбрано {count} пользователей", + "userSelectPlaceholder": "Выберите пользователя|Выбрать пользователей", + "userNotFound": "Пользователи не найдены", + "settings": "Настройки", + "create": "Создать", + "edit": "Редактировать", + "noData": "Нет данных" }, "sidebar": { "dashboard": "Панель управления", @@ -80,13 +84,15 @@ "games": "Игры", "users": "Зрители", "moderation": "Модерация", + "publicPage": "Публичная страница", "import": "Импортировать", - "community": "Community" - }, - "navbar": { + "community": "Сообщество", "logout": "Выйти", - "publicPage": "Публичная страница", - "seeAll": "Показать все" + "loggedAs": "В системе как", + "lang": "Язык", + "darkTheme": "Тёмная тема", + "lightTheme": "Светлая тема", + "notifications": "Уведомление" }, "deleteConfirmation": { "text": "Вы уверены, что хотите удалить это?", @@ -94,8 +100,8 @@ "confirm": "Подтвердить" }, "haveNoAccess": { - "title": "No access", - "description": "You are not authorized to this, ask the broadcaster to provide it." + "title": "Нет доступа", + "description": "У вас нет прав для просмотра этой страницы, обратитесь к стримеру за доступом." }, "pageNotFound": { "title": "404 Страница не найдена", @@ -126,11 +132,20 @@ } }, "aliases": { - "label": "Псевдонимы" + "label": "Дополнительные имена" }, "gameCategories": { "label": "Включить команду только в определенных категориях (оставьте пустым для отключения)" }, + "expiration": { + "label": "Срок действия", + "actionsLabel": "Действие по истечению", + "defaultWarning": "Срок действия не может быть установлен для команды по умолчанию", + "actions": { + "delete": "Команда будет удалена", + "disable": "Команда будет отключена" + } + }, "description": { "label": "Описание команды" }, @@ -148,7 +163,9 @@ "name": "Роли", "placeholder": "Выберите роли, которым будут предоставлены права на использование команд.", "deniedUsers": "Пользователи, которые не смогут использовать эту команду.", - "allowedUsers": "Пользователи, которые смогут пользоваться этой командой, несмотря на роль." + "allowedUsers": "Пользователи, которые смогут пользоваться этой командой, несмотря на роль.", + "exceptions": "Исключения", + "blocked": "Заблокированные пользователи" }, "restrictions": { "name": "Ограничения по статистике", @@ -230,6 +247,45 @@ }, "bot": { "title": "Управление ботом" + }, + "audit-logs": { + "title": "Журналы аудита", + "search-label": "Поиск по", + "search": { + "channel": "Канал", + "actor": "Актер" + }, + "operation-type-label": "Тип операции", + "operation-type": { + "create": "Создан", + "delete": "Удалено", + "update": "Отредактировано" + }, + "systems-label": "Системы", + "systems": { + "badge": "Значок", + "badge-user": "Значок пользователя", + "channel-command": "Команда", + "channel-command-group": "Группа команды", + "channel-variable": "Переменная", + "channel-games-eight-ball": "8мяч", + "channel-games-duel": "Дуэль", + "channel-games-russian-roulette": "Русская Рулетка", + "channel-games-seppuku": "Харакири", + "channel-games-voteban": "", + "channel-greeting": "Приветствие", + "channel-keyword": "Ключевое слово", + "channel-moderation-setting": "Настройки Модерации", + "channel-overlay-chat": "Всплывающий чат", + "channel-overlay-dudes": "Наложение оверлея", + "channel-overlay-now-playing": "Играет в оверлей", + "channel-roles": "Роль", + "channel-timers": "Таймер", + "channel-song-requests": "Заказ песен", + "channel-integrations": "Интеграция", + "channel-alerts": "Оповещение", + "channel-chat-alerts": "Оповещения в чате" + } } } }, @@ -592,7 +648,7 @@ "deniedUsers": "Пользователи, которые не могут заказывать песни", "deniedSongs": "Запрещенные песни для заказа", "takeSongFromDonationMessage": "Попытаться получать ссылки на песни из сообщений о пожертвованиях?", - "confirmClearQueue": "Are you sure you want to clear the queue?", + "confirmClearQueue": "Вы уверены что хотите очистить очередь?", "users": { "maxRequests": "Максимальное количество заказов для пользователя", "minimalWatchTime": "Минимальное время просмотра для заказа песни (в минутах)", @@ -610,7 +666,7 @@ "general": "Общие настройки", "users": "Настройки пользователей", "songs": "Звуковые настройки", - "translations": "Translations" + "translations": "Переводы" }, "ban": { "user": "Забанить пользователя", @@ -622,8 +678,8 @@ "timers": { "table": { "columns": { - "intervalInMinutes": "Интервал (в минутах)", - "intervalInMessages": "Интервал (в сообщениях, укажите 0, чтобы выключить)" + "intervalInMinutes": "Интервал в минутах", + "intervalInMessages": "Интервал в сообщениях" } }, "modal": { @@ -636,7 +692,7 @@ } }, "limitExceeded": "Достигнут предел таймеров!", - "newTimer": "New timer" + "newTimer": "Новый таймер" }, "roles": { "modal": { @@ -654,9 +710,9 @@ "keywords": { "title": "Ключевые слова", "info": { - "text": "Keywords helps you to trigger chat message on certain words matching." + "text": "Ключевые слова помогают срабатывать чат сообщение при совпадении определенных слов." }, - "create": "Create keyword", + "create": "Создать ключевое слово", "triggerText": "Текст активации", "usages": "Количество использований", "isRegular": "Является регулярным выражением?", @@ -673,7 +729,7 @@ "variables": { "title": "Переменные", "type": "Тип", - "info": "Variables is a type of a context that can be used in bot responses, commands and other parts of the bot. You can specify a constant value or put a script to get some values that is usually cannot be easily accessed by the bot. Script Variables are recommended for advanced users.", + "info": "Переменные - это тип контекста, который может использоваться в ответах ботов, командах и других частях бота. Вы можете указать постоянное значение или установить скрипт, чтобы получить некоторые значения, которые обычно не могут быть легко доступны ботом. Переменные скрипта рекомендуются опытным пользователям.", "validations": { "nameRequired": "Название не должно быть пустым!", "nameLong": "Слишком длинное название" @@ -681,11 +737,11 @@ }, "greetings": { "title": "Приветствия", - "create": "Create greeting", - "edit": "Edit greeting", + "create": "Создать приветствие", + "edit": "Редактировать приветствие", "info": { "title": "Информация о приветствиях", - "text": "Greetings are a type of messages that bot uses to welcome known stream viewers when they send their first message in chat on each stream. If you wish to greet every user in chat, then you can look at the events category instead of Greetings." + "text": "Приветствие - это тип сообщений, которые бот использует, чтобы приветствовать известных зрителей потока, когда они посылают свое первое сообщение в чате в каждом потоке. Если вы хотите поприветствовать каждого пользователя в чате, вы можете посмотреть на категорию событий вместо приветствия." }, "validations": { "userName": "Имя пользователя не должно быть пустым!", @@ -695,11 +751,11 @@ "alerts": { "title": "Оповещения", "info": "Информация по оповещениям", - "overlayLabel": "Alerts are a graphical part of the command or event implementation. You can configure an alert with specified audio, image and text, then assign it to specific command, event, keyword or greeting. Also do not forget to insert overlay URL as a browser source into your streaming software scene! (such as OBS, XSplit, etc.)", - "copyOverlayLink": "Copy overlay link", + "overlayLabel": "Оповещения - это графическая часть реализации команды или события. Вы можете настроить оповещение с помощью указанного аудио, изображения и текста, а затем назначить его определенной команде, событию, ключевому слову или приветствию. Также не забудьте вставить URL оверлей в качестве источника браузера в область вашего программного обеспечения потокового вещания (например, OBS, XSplit и т. д.)", + "copyOverlayLink": "Скопировать ссылку на оверлей", "name": "Название", - "rewards": "Rewards", - "commands": "Commands", + "rewards": "Награды", + "commands": "Команды", "validations": { "name": "Имя не может быть пустым или содержать более 30 символов!" }, @@ -710,14 +766,14 @@ "greetings": "Приветствия для триггера" }, "select": { - "audio": "Confugure an audio", - "image": "Configure an image", - "text": "Configure text" + "audio": "Настроить звук", + "image": "Настроить изображение", + "text": "Настроить текст" }, - "audioVolume": "Audio volume", - "createAlert": "Create alert", - "editAlert": "Edit alert", - "tableEmpty": "No alerts found" + "audioVolume": "Громкость звука", + "createAlert": "Создать оповещение", + "editAlert": "Изменить оповещение ", + "tableEmpty": "Уведомления не найдены" }, "games": { "command": "Команда", @@ -747,17 +803,17 @@ }, "cooldown": { "title": "Перезарядка Дуэли", - "user": "Individual", - "global": "Global" + "user": "Индивидуальный", + "global": "Глобальный" }, "messages": { "title": "Сообщения", "start": { - "title": "Initial Message", + "title": "Исходное сообщение", "description": "Это сообщение будет отправлено при начале дуэли. Доступные переменные: {'{target}, {initiator}, {duelAcceptCommandName}, {acceptSeconds}'}" }, "result": { - "title": "Result Message", + "title": "Результат сообщения", "description": "Это сообщение будет отправлено, когда дуэль завершится. Доступные переменные: {'{loser}, {winner}'}" }, "bothDie": { @@ -768,76 +824,76 @@ "settings": { "title": "Настройки", "secondsToAccept": "Время для принятия вызова (сек.)", - "timeoutTime": "Timeout time for loser", + "timeoutTime": "Время ожидания проигравшего", "pointsPerWin": "Репутация за победу", "pointsPerLose": "Репутация за поражение", "bothDiePercent": "Вероятность того, что оба пользователя умрут" } }, "seppuku": { - "description": "Seppuku, is a form of Japanese ritualistic suicide by disembowelment.", - "message": "Message", - "timeoutModerators": "Enable seppuku for moderators", - "messageModerators": "Message when moderator used seppuku", - "timeoutSeconds": "Timeout seconds" + "description": "Сеппуку – это форма японского ритуалистического самоубийства дизелем.", + "message": "Сообщение", + "timeoutModerators": "Включить seppuku для модераторов", + "messageModerators": "Сообщение при использовании seppuku модератором", + "timeoutSeconds": "Таймаут в секундах" }, "voteban": { - "description": "Commence jury trial of the guilty chatterer!", - "banMessage": "Message on ban", - "banMessageModerators": "Message for ban moderator", - "surviveMessage": "Survive message", - "surviveMessageModerators": "Survive message for moderators", - "initialMessage": "Init message", - "neededVotes": "Needed votes", - "banDuration": "Duration of ban", - "voteMode": "Mode of vote", - "voteDuration": "Duration of vote in seconds", - "wordsNegative": "Words for vote to \"no\" option", - "wordsPositive": "Words for vote to \"yes\" option", - "timeoutModerators": "Enable voteban on moderators" + "description": "Начиная суду жюри виновного чаттерера!", + "banMessage": "Сообщение о бане", + "banMessageModerators": "Сообщение для модератора бана", + "surviveMessage": "Сообщение о выживании", + "surviveMessageModerators": "Сообщение о выживании для модераторов", + "initialMessage": "Исходное сообщение", + "neededVotes": "Нужно голосов", + "banDuration": "Срок блокировки", + "voteMode": "Режим голосования", + "voteDuration": "Продолжительность голосования в секундах", + "wordsNegative": "Слова для голосования в опцию \"нет\"", + "wordsPositive": "Слова для голосования в опцию \"да\"", + "timeoutModerators": "Включить бан голосований для модераторов" } }, "community": { - "title": "Community", + "title": "Сообщество", "users": { - "title": "Users", - "searchPlaceholder": "Search users...", + "title": "Пользователи", + "searchPlaceholder": "Поиск пользователей...", "table": { "user": "Пользователь", "watchedTime": "Время просмотра", "messages": "Сообщения", "usedEmotes": "Использовано эмоций", "usedChannelPoints": "Использовано баллов канала", - "empty": "No users" + "empty": "Нет пользователей" }, "total": "Всего пользователей: {total} ", "reset": { - "label": "Reset", + "label": "Сбросить", "resetQuestion": "Вы уверены, что хотите сбросить {title}?" } }, "emotesStatistic": { "title": "Emotes statistics", - "searchPlaceholder": "Search emotes...", + "searchPlaceholder": "Поиск смайлов...", "table": { - "emote": "Emote", - "usages": "Total usages", - "users": "Users", - "empty": "No emotes", - "chart": "Usages chart", - "lastDay": "Day", - "lastWeek": "Week", - "lastMonth": "Month", - "lastThreeMonth": "3 months", - "lastYear": "Year" + "emote": "Эмоция", + "usages": "Всего использовано", + "users": "Пользователи", + "empty": "Нет смайлика", + "chart": "График использования", + "lastDay": "День", + "lastWeek": "Неделя", + "lastMonth": "Месяц", + "lastThreeMonth": "3 месяца", + "lastYear": "Год" }, - "total": "Total emotes: {total}", + "total": "Всего смайликов: {total} ", "details": { - "stats": "Stats", - "users": "Users", + "stats": "Статистика", + "users": "Пользователи", "usersTabs": { - "top": "Top", - "history": "History" + "top": "Сверху", + "history": "История" } } } @@ -879,7 +935,7 @@ "ban": { "alertInfo": "Установите время на 0, чтобы выводить сообщение при перманентной блокировке
", "countLabel": "Время (в минутах)", - "ignoreTimeoutFrom": "Ignore timeouts from" + "ignoreTimeoutFrom": "Игнорировать тайм-ауты от" }, "labels": { "followers": "Фолловеры", @@ -894,7 +950,7 @@ "userBanned": "Отстранение пользователя", "channelUnbanRequestCreate": "Запрос на разбан создан", "channelUnbanRequestResolve": "Запрос на разбан обработан", - "messageDelete": "Message Deleted" + "messageDelete": "Сообщение удалено" } }, "moderation": { @@ -914,7 +970,7 @@ "name": "Список запрещённых слов", "description": "Помогает поддерживать чистоту чата, отфильтровывая слова и фразы, указанные в предопределенном списке, предотвращая их отправку.", "empty": "Список запрещенных слов пуст, добавьте хотя бы одно.", - "regexp": "If you are an advanced user, Disallowed Words List also support regular expressions. Regular Expression should be written in golang format! See {0} here.", + "regexp": "Если вы продвинутый пользователь, список запрещённых слов также поддерживает регулярные выражения. Регулярное выражение должно быть написано в формате golang! Смотрите {0} здесь.", "regexpCheatSheet": "шпаргалку" }, "symbols": { @@ -967,84 +1023,87 @@ } }, "public": { - "title": "Public page", + "title": "Публичная страница", "description": "Описание канала", "socialLinks": "Ссылки", "errorCreateLink": "\"{title}\" содержит некорректную ссылку {href}", "errorInvalidLength": "Недопустимое количество символов", "errorInvalidLink": "Некорректная ссылка", "errorEmpty": "Не может быть пустым", - "errorTooLong": "Too long", - "linkTitle": "Title", - "linkLabel": "Link" + "errorTooLong": "Слишком длинно", + "linkTitle": "Название", + "linkLabel": "Ссылка" } }, "adminPanel": { - "title": "Admin Panel", + "title": "Панель администратора", "notifications": { - "title": "Notifications", - "formTitle": "Send or edit notification", - "emptyNotifications": "No notifications", - "userLabel": "User", - "userPlaceholder": "Select a user", - "messageLabel": "Message", - "messagePreview": "Preview", - "createdAt": "Created At", - "globals": "Globals", - "users": "Users", - "confirmResetForm": "Are you sure you want to reset the form?" + "title": "Уведомления", + "formTitle": "Отправить или изменить уведомление", + "emptyNotifications": "Нет уведомлений", + "userLabel": "Пользователь", + "userPlaceholder": "Выберите пользователя", + "messageLabel": "Сообщение", + "messagePreview": "Предпросмотр", + "createdAt": "Создано в", + "globals": "Глобальный", + "users": "Пользователи", + "confirmResetForm": "Вы действительно хотите удалить форму?" }, "manageUsers": { - "title": "Users", - "user": "User", - "userId": "User ID", - "followers": "Followers", - "noUsers": "No users", - "filters": "Filters", - "clearFilters": "Clear filters", - "countSelected": "{count} selected", - "isAdmin": "Admin", - "isBanned": "Banned", - "isBotEnabled": "Bot enabled", - "statusGroup": "Status", - "badgesGroup": "Badges", - "giveBan": "Ban user", - "unBan": "Unban user", - "giveMod": "Give admin", - "unMod": "Remove admin", - "dropSession": "Drop session" + "title": "Пользователи", + "user": "Пользователь", + "userId": "ID пользователя", + "followers": "Фолловеры", + "noUsers": "Нет пользователей", + "filters": "Фильтры", + "clearFilters": "Очистить фильтры", + "countSelected": "Выбрано {count}", + "isAdmin": "Администратор", + "isBanned": "Заблокирован", + "isBotEnabled": "Бот включен", + "statusGroup": "Статус", + "badgesGroup": "Значки", + "giveBan": "Забанить пользователя", + "unBan": "Разбанить пользователя", + "giveMod": "Дать администрирование", + "unMod": "Удалить администратора", + "dropSession": "Сбросить сессию" }, "manageBadges": { - "title": "Badges", - "formTitle": "Create or edit badge", - "name": "Name", - "users": "Users", - "slot": "Slot", - "image": "Image", - "preview": "Preview", - "usesCount": "Uses {count}", - "badgeSlot": "Slot {slot}" + "title": "Значки", + "formTitle": "Создать или изменить значок", + "name": "Имя", + "users": "Пользователи", + "slot": "Слот", + "image": "Изображение", + "preview": "Предпросмотр", + "usesCount": "Использует {count}", + "badgeSlot": "Слот {slot}" }, "adminActions": { - "title": "Actions", + "title": "Действия", "eventsub": { - "title": "Subscribe to EventSub", - "condition": "Condition", - "type": "Type", - "typeError": "Please select a type", - "version": "Version", - "user": "User", - "channel": "Channel", - "channelWithBotId": "Channel with bot ID", - "channelWithModeratorId": "Channel with moderator ID" + "title": "Подписаться на EventSub", + "condition": "Условие", + "type": "Тип", + "typeError": "Пожалуйста выберите тип", + "version": "Версия", + "user": "Пользователь", + "channel": "Канал", + "channelWithBotId": "Канал с ID бота", + "channelWithModeratorId": "Канал с ID модератора" }, "dangerZone": { - "title": "Danger Zone", - "revoke": "Revoke", - "revokeSessions": "Revoke sessions", - "revokeAllSessionsDescription": "All user sessions will be revoked", - "revokeAllSessionsConfirm": "Are you sure you want to revoke all sessions?" + "title": "Опасная зона", + "revoke": "Отмена", + "revokeSessions": "Прервать сессии", + "revokeAllSessionsDescription": "Все сессии пользователей будут отозваны", + "revokeAllSessionsConfirm": "Вы уверены, что хотите отменить все сеансы?" } + }, + "auditLogs": { + "title": "Журналы аудита" } } } diff --git a/frontend/dashboard/src/locales/sk.json b/frontend/dashboard/src/locales/sk.json index 1292dfa9e..a0c9d17bd 100644 --- a/frontend/dashboard/src/locales/sk.json +++ b/frontend/dashboard/src/locales/sk.json @@ -20,7 +20,8 @@ "send": "Odoslať", "next": "Ďalšie", "previous": "Predchádzajúce", - "reset": "Resetovať" + "reset": "Resetovať", + "popout": "Popout v novom okne" }, "sharedTexts": { "saved": "Uložené", @@ -56,7 +57,10 @@ "userSelected": "{count} vybraných používateľov", "userSelectPlaceholder": "Vybrať používateľa|Vybrať používateľov", "userNotFound": "Nenašli sa žiadni používatelia", - "settings": "Nastavenia" + "settings": "Nastavenia", + "create": "Vytvoriť", + "edit": "Upraviť", + "noData": "Žiadne údaje" }, "sidebar": { "dashboard": "Prehľad", @@ -80,13 +84,15 @@ "games": "Hry", "users": "Užívatelia", "moderation": "Moderovanie", + "publicPage": "Verejná stránka", "import": "Importovať", - "community": "Komunita" - }, - "navbar": { + "community": "Komunita", "logout": "Odhlásiť sa", - "publicPage": "Verejná stránka", - "seeAll": "Zobraziť všetko" + "loggedAs": "Príhlásený ako", + "lang": "Jazyk", + "darkTheme": "Tmavá téma", + "lightTheme": "Svetlá téma", + "notifications": "Notifikácie" }, "deleteConfirmation": { "text": "Ste si istí, že to chcete odstrániť?", @@ -126,11 +132,20 @@ } }, "aliases": { - "label": "Aliasy" + "label": "Dodatočné názvy" }, "gameCategories": { "label": "Povoliť príkaz len v určitých kategóriách (pre zakázanie nechajte prázdne)" }, + "expiration": { + "label": "Vypršanie platnosti", + "actionsLabel": "Akcia pri expirovaní platnosti", + "defaultWarning": "Expiráciu nie je možné nastaviť pre predvolený príkaz", + "actions": { + "delete": "Príkaz bude vymazaný", + "disable": "Príkaz bude deaktivovaný" + } + }, "description": { "label": "Popis príkazu" }, @@ -148,7 +163,9 @@ "name": "Roly", "placeholder": "Výber rolí na udelenie oprávnení na používanie príkazov", "deniedUsers": "Používatelia, ktorí tento príkaz nemôžu použiť.", - "allowedUsers": "Používatelia, ktorí môžu obísť obmedzenie rolí pre tento príkaz." + "allowedUsers": "Používatelia, ktorí môžu obísť obmedzenie rolí pre tento príkaz.", + "exceptions": "Výnimky", + "blocked": "Blokovaní užívatelia" }, "restrictions": { "name": "Obmedzenia podľa štatistík", @@ -230,6 +247,45 @@ }, "bot": { "title": "Správa bota" + }, + "audit-logs": { + "title": "Denník záznamov", + "search-label": "Hľadať podľa", + "search": { + "channel": "Kanál", + "actor": "Činiteľ" + }, + "operation-type-label": "Typ operácie", + "operation-type": { + "create": "Vytvorené", + "delete": "Odstránené", + "update": "Upravené" + }, + "systems-label": "Systémy", + "systems": { + "badge": "Odznak", + "badge-user": "Používateľské odznaky", + "channel-command": "Príkaz", + "channel-command-group": "Skupina príkazov", + "channel-variable": "Premenná", + "channel-games-eight-ball": "8ball", + "channel-games-duel": "Duel", + "channel-games-russian-roulette": "Ruská ruleta", + "channel-games-seppuku": "Seppuku", + "channel-games-voteban": "Voteban", + "channel-greeting": "Pozdrav", + "channel-keyword": "Kľúčové slovo", + "channel-moderation-setting": "Nastavenia moderovania", + "channel-overlay-chat": "Prekrytie chatu", + "channel-overlay-dudes": "Prekrytie Dudes", + "channel-overlay-now-playing": "Prekrytie Now Playing", + "channel-roles": "Rola", + "channel-timers": "Timer", + "channel-song-requests": "Žiadosti o pieseň", + "channel-integrations": "Integrácia", + "channel-alerts": "Upozornenie", + "channel-chat-alerts": "Upozornenia chatu" + } } } }, @@ -586,7 +642,7 @@ "playerNoCookieMode": "Režim inkognito pre hráča", "playerNoCookieModeDescription": "Ak túto možnosť povolíte, budete môcť počúvať skladby bez povolenia cookies a histórie zobrazenia. Po povolení je potrebné obnoviť stránku.", "neededPercentageForskip": "Percentuálny podiel užívateľov za preskočenie", - "channelReward": "Odmena kanálovými bodmi kanálu za žiadosť o pieseň", + "channelReward": "Spúšťače odmien kanálových bodov", "deniedChannels": "Zoznam zakázaných kanálov YouTube (zo žiadostí o skladby)", "deniedWords": "Zoznam zakázaných slov (týka sa názvov videí aj kanálov YouTube)", "deniedUsers": "Zablokovaní používatelia", @@ -622,8 +678,8 @@ "timers": { "table": { "columns": { - "intervalInMinutes": "Interval (v minútach)", - "intervalInMessages": "Interval (v chatových správach, nastavte 0 pre vypnutie)" + "intervalInMinutes": "Interval v minútach", + "intervalInMessages": "Interval v správach" } }, "modal": { @@ -694,7 +750,7 @@ }, "alerts": { "title": "Upozornenia", - "info": "Alerts Information", + "info": "Informácie o upozorneniach", "overlayLabel": "Upozornenia sú grafickou súčasťou implementácie príkazu alebo udalosti. Upozornenie môžete nakonfigurovať s určeným zvukom, obrázkom a textom a potom ho priradiť ku konkrétnemu príkazu, udalosti, kľúčovému slovu alebo pozdravu. Nezabudnite tiež vložiť overlay adresu URL ako zdroj prehliadača do scény streamovacieho softvéru! (napríklad OBS, XSplit atď.)", "copyOverlayLink": "Skopírovať link prekrytia", "name": "Názov", @@ -705,14 +761,14 @@ }, "trigger": { "commands": "Spúšťací príkaz", - "rewards": "Channel Points Reward Trigger", + "rewards": "Spúšťač odmeny za kanálové body", "keywords": "Spúštacie kľúčové slovo", "greetings": "Spúšťač pozdravu" }, "select": { "audio": "Konfigurácia zvuku", - "image": "Configure an image", - "text": "Configure text" + "image": "Vybrať obrázok", + "text": "Konfigurovať text" }, "audioVolume": "Hlasitosť zvuku", "createAlert": "Vytvoriť upozornenie", @@ -730,11 +786,11 @@ "canBeUsedByModerator": "Dočasne zablokovať moderátora? *Právomoci moderátora budú po uplynutí timeoutu opäť udelené.", "timeoutSeconds": "Čas timeoutu (v sekundách, ak chcete zrušiť timeout, nastavte ho na 0)", "decisionSeconds": "Oneskorenie (v sek.)", - "initMessage": "Trigger Pull Announcement (Game Start Message)", - "surviveMessage": "User Survived Message", - "deathMessage": "User Lost Message", - "chargedBullets": "Charged Bullets Amount: {tumberSize}", - "tumberSize": "Revolver Сylinder's Size" + "initMessage": "Oznámenie spustenia (správa o spustení hry)", + "surviveMessage": "Správa Používateľ prežil", + "deathMessage": "Správa Používateľ prehral", + "chargedBullets": "Množstvo nabitých nábojov: {tumberSize}", + "tumberSize": "Veľkosť revolverového bubna" }, "duel": { "title": "Duely", @@ -754,15 +810,15 @@ "title": "Správy", "start": { "title": "Úvodná správa", - "description": "Sends this message when duel initiated. Available variables: {'{target}, {initiator}, {duelAcceptCommandName}, {acceptSeconds}'}" + "description": "Túto správu odošle po spustení duelu. Dostupné premenné: {'{target}, {initiator}, {duelAcceptCommandName}, {acceptSeconds}'}" }, "result": { "title": "Výsledná správa", "description": "Odošle túto správu, keď dôjde k súboju. Dostupné premenné: {'{loser}, {winner}'}" }, "bothDie": { - "title": "«No One Survived» Message", - "description": "Sends this message when duel happened and both duelists are dead. Available variables: {'{target}, {initiator}'}" + "title": "«Nikto neprežil» Správa", + "description": "Odošle túto správu, keď sa uskutočnil duel a obaja účastníci súboja sú mŕtvi. Dostupné premenné: {'{target}, {initiator}'}" } }, "settings": { @@ -775,26 +831,26 @@ } }, "seppuku": { - "description": "Seppuku, is a form of Japanese ritualistic suicide by disembowelment.", + "description": "Seppuku je forma japonskej rituálnej samovraždy vykuchaním.", "message": "Správa", "timeoutModerators": "Povoliť seppuku pre moderátorov", - "messageModerators": "Message when moderator used seppuku", - "timeoutSeconds": "Timeout seconds" + "messageModerators": "Správa, keď moderátor použil seppuku", + "timeoutSeconds": "Timeout v sekundách" }, "voteban": { "description": "Začnite súdny proces s porotou s vinným četujúcim!", - "banMessage": "Message on ban", - "banMessageModerators": "Message for ban moderator", + "banMessage": "Správa pri bane", + "banMessageModerators": "Správa pri bane moderátora", "surviveMessage": "Správa o prežití", "surviveMessageModerators": "Správa o prežití pre moderátora", - "initialMessage": "Init message", + "initialMessage": "Úvodná správa", "neededVotes": "Potrebné hlasy", "banDuration": "Dĺžka banu", - "voteMode": "Mode of vote", + "voteMode": "Spôsob hlasovania", "voteDuration": "Dĺžka hlasovania v sekundách", - "wordsNegative": "Words for vote to \"no\" option", - "wordsPositive": "Words for vote to \"yes\" option", - "timeoutModerators": "Enable voteban on moderators" + "wordsNegative": "Slová pre hlasovanie pre možnosť \"nie\"", + "wordsPositive": "Slová pre hlasovanie pre možnosť \"áno\"", + "timeoutModerators": "Aktivovať voteban proti moderátorom" } }, "community": { @@ -836,16 +892,16 @@ "stats": "Štatistiky", "users": "Užívatelia", "usersTabs": { - "top": "Top", + "top": "Hore", "history": "História" } } } }, "filePicker": { - "innerText": "Select or drop {type} here.", + "innerText": "Tu vyberte alebo presuňte {type}.", "usedSpace": "Použité {used} / {max} MB", - "emptyText": "No {type} uploaded." + "emptyText": "Nebol nahraný žiadny {type}." }, "overlaysRegistry": { "description": "Táto kategória umožňuje vytvárať vlastné konfigurovateľné prekrytia pre OBS. V súčasnosti sú podporované len HTML prekrytia, ale neskôr budú pridané aj ďalšie varianty prekrytia. Ďakujeme vám za trpezlivosť. <3", @@ -891,10 +947,10 @@ "streamOnline": "Vysielanie je online", "streamOffline": "Vysielanie je offline", "chatCleared": "Chat vyčistený", - "userBanned": "User Ban", + "userBanned": "Bany používateľov", "channelUnbanRequestCreate": "Vytvoriť žiadosť o unban", "channelUnbanRequestResolve": "Vyriešiť žiadosť o unban", - "messageDelete": "Message Deleted" + "messageDelete": "Správa bola zmazaná" } }, "moderation": { @@ -903,7 +959,7 @@ "banDescription": "Nastavte na 0 pre trvalý ban.", "banMessage": "Správa timeoutu", "warningMessage": "Varovná správa", - "warningMaxCount": "Warning Maximum Count", + "warningMaxCount": "Upozornenie Maximálny počet", "excludedRoles": "Vyberte roly, na ktoré tento filter nebude mať vplyv:", "types": { "links": { @@ -914,7 +970,7 @@ "name": "Zoznam zakázaných slov", "description": "Pomáha udržiavať čistý chat filtrovaním slov alebo fráz uvedených v preddefinovanom zozname, čím zabraňuje ich zobrazovaniu.", "empty": "Zoznam nepovolených slov je prázdny! Môžete ho vytvoriť tu.", - "regexp": "If you are an advanced user, Disallowed Words List also support regular expressions. Regular Expression should be written in golang format! See {0} here.", + "regexp": "Ak ste pokročilý používateľ, zoznam zakázaných slov podporuje aj regulárne výrazy. Regulárny výraz by mal byť zapísaný vo formáte golang! Pozri {0} tu.", "regexpCheatSheet": "Ťahák" }, "symbols": { @@ -960,7 +1016,7 @@ "title": "Užívateľské nastavenia", "account": { "title": "Účet", - "showMeOnLanding": "Show yourself on the Landing Page?", + "showMeOnLanding": "Ukázať sa na domovskej stránke?", "regenerateApiKey": { "button": "Vygenerovať súkromný kľúč API", "info": "Tento kľúč sa používa pre všetky odkazy prekrytí. Pri jeho vygenerovaní musíte skontrolovať všetky svoje prekrytia v softvéri na streamovanie a nahradiť adresy URL novými odkazmi." @@ -983,14 +1039,14 @@ "title": "Administračný panel", "notifications": { "title": "Notifikácie", - "formTitle": "Send or edit notification", + "formTitle": "Odoslať alebo upraviť oznámenie", "emptyNotifications": "Žiadne upozornenia", "userLabel": "Užívateľ", "userPlaceholder": "Vybrať užívateľa", "messageLabel": "Správa", "messagePreview": "Ukážka", "createdAt": "Vytvorené", - "globals": "Globals", + "globals": "Global", "users": "Užívatelia", "confirmResetForm": "Ste si istí, že chcete resetovať formulár?" }, @@ -1002,7 +1058,7 @@ "noUsers": "Žiadni používatelia", "filters": "Filtre", "clearFilters": "Vymazať filtre", - "countSelected": "{count} vybraný", + "countSelected": "{count} vybraných", "isAdmin": "Admin", "isBanned": "Zabanovaný", "isBotEnabled": "Bot povolený", @@ -1010,9 +1066,9 @@ "badgesGroup": "Odznaky", "giveBan": "Zabanovať užívateľa", "unBan": "Odbanovať užívateľa", - "giveMod": "Give admin", + "giveMod": "Dať admina", "unMod": "Odstrániť správcu", - "dropSession": "Drop session" + "dropSession": "Zrušiť reláciu" }, "manageBadges": { "title": "Odznaky", @@ -1028,23 +1084,26 @@ "adminActions": { "title": "Akcie", "eventsub": { - "title": "Subscribe to EventSub", + "title": "Prihlásiť sa na odber EventSub", "condition": "Podmienka", "type": "Typ", - "typeError": "Please select a type", + "typeError": "Vyberte typ", "version": "Verzia", "user": "Užívateľ", "channel": "Kanál", - "channelWithBotId": "Channel with bot ID", - "channelWithModeratorId": "Channel with moderator ID" + "channelWithBotId": "Kanál s bot ID", + "channelWithModeratorId": "Kanál s Moderator ID" }, "dangerZone": { - "title": "Danger Zone", - "revoke": "Revoke", - "revokeSessions": "Revoke sessions", - "revokeAllSessionsDescription": "All user sessions will be revoked", - "revokeAllSessionsConfirm": "Are you sure you want to revoke all sessions?" + "title": "Nebezpečná zóna", + "revoke": "Odvolať", + "revokeSessions": "Odvolať relácie", + "revokeAllSessionsDescription": "Všetky používateľské relácie budú odvolané", + "revokeAllSessionsConfirm": "Naozaj chcete odvolať všetky relácie?" } + }, + "auditLogs": { + "title": "Denník záznamov" } } } diff --git a/frontend/dashboard/src/locales/uk.json b/frontend/dashboard/src/locales/uk.json index 43ba46380..187512e79 100644 --- a/frontend/dashboard/src/locales/uk.json +++ b/frontend/dashboard/src/locales/uk.json @@ -20,7 +20,8 @@ "send": "Відправити", "next": "Далі", "previous": "Назад", - "reset": "Скинути" + "reset": "Скинути", + "popout": "Вигляд у новому вікні" }, "sharedTexts": { "saved": "Збережено", @@ -35,7 +36,7 @@ "text": "Бот надсилатиме команди відповіді як відповідь" }, "response": "Відповідь", - "user": "User", + "user": "Користувачі", "userName": "Ім’я користувача", "dangerZone": "Небезпечна зона", "deleted": "Видалено", @@ -43,20 +44,23 @@ "disabled": "Вимкнено", "setDefaultSettings": "Ви впевнені, що хочете встановити параметри за замовчуванням?", "placeCursorMessage": "Помістіть курсор після \"$\", щоб змінити змінну", - "pagination": "{page} page(s) / {total} item(s)", - "paginationPerPage": "Per page", + "pagination": "Сторінки {page} / {total} елемент(и)", + "paginationPerPage": "На сторінці", "searchPlaceholder": "Найти", - "messages": "Messages", - "asc": "Asc", - "desc": "Desc", - "hide": "Hide", - "view": "View", - "toggleColumns": "Toggle columns", - "copied": "Copied", - "userSelected": "{count} users selected", - "userSelectPlaceholder": "Select user|Select users", - "userNotFound": "No users found", - "settings": "Settings" + "messages": "Повідомлення", + "asc": "За зростанням", + "desc": "За спаданням", + "hide": "Приховати", + "view": "Перегляд", + "toggleColumns": "Перемкнути стовпці", + "copied": "Скопійовано", + "userSelected": "Вибрано {count} користувачів", + "userSelectPlaceholder": "Виберіть користувача|Вибрати користувачів", + "userNotFound": "Користувачів не знайдено", + "settings": "Налаштування", + "create": "Створити", + "edit": "Редагувати", + "noData": "No data" }, "sidebar": { "dashboard": "Панель керування", @@ -80,13 +84,15 @@ "games": "Ігри", "users": "Глядачі", "moderation": "Модерація", + "publicPage": "Публічна сторінка", "import": "Імпортувати", - "community": "Community" - }, - "navbar": { + "community": "Спільнота", "logout": "Вийти", - "publicPage": "Публічна сторінка", - "seeAll": "Показати всі" + "loggedAs": "Зареєстровано як", + "lang": "Мова", + "darkTheme": "Темна тема", + "lightTheme": "Світла тема", + "notifications": "Сповіщення" }, "deleteConfirmation": { "text": "Ви впевнені, що хочете видалити це?", @@ -94,8 +100,8 @@ "confirm": "Підтвердити" }, "haveNoAccess": { - "title": "No access", - "description": "You are not authorized to this, ask the broadcaster to provide it." + "title": "Немає доступу", + "description": "У вас немає прав для перегляду цієї сторінки, зверніться до стримера за доступом." }, "pageNotFound": { "title": "404 Сторінка не знайдена", @@ -126,11 +132,20 @@ } }, "aliases": { - "label": "Псевдоніми" + "label": "Additional names" }, "gameCategories": { "label": "Увімкнути команду лише в певних категоріях (залиште порожнім для вимкнення)" }, + "expiration": { + "label": "Термін дії", + "actionsLabel": "Дія на закінчення терміну дії", + "defaultWarning": "Expiration cannot be set for default command", + "actions": { + "delete": "Команда буде видалена", + "disable": "Команда буде вимкнута" + } + }, "description": { "label": "Опис команди" }, @@ -148,7 +163,9 @@ "name": "Ролі", "placeholder": "Оберіть ролі, які матимуть дозволи на використання команд", "deniedUsers": "Користувачі, які не можуть використовувати цю команду.", - "allowedUsers": "Користувачі, які можуть обійти обмеження ролей для цієї команди." + "allowedUsers": "Користувачі, які можуть обійти обмеження ролей для цієї команди.", + "exceptions": "Exceptions", + "blocked": "Blocked users" }, "restrictions": { "name": "Обмеження за статистикою", @@ -230,6 +247,45 @@ }, "bot": { "title": "Керування ботом та інформація" + }, + "audit-logs": { + "title": "Журнали аудиту", + "search-label": "Пошук по", + "search": { + "channel": "Канал", + "actor": "Актор" + }, + "operation-type-label": "Тип операції", + "operation-type": { + "create": "Створена", + "delete": "Видалено", + "update": "Відредаговано" + }, + "systems-label": "Системи", + "systems": { + "badge": "Значок", + "badge-user": "Значок користувача", + "channel-command": "Команда", + "channel-command-group": "Командна група", + "channel-variable": "Змінна", + "channel-games-eight-ball": "магічна вісімкааа", + "channel-games-duel": "Поєдинок", + "channel-games-russian-roulette": "Російська рулетка", + "channel-games-seppuku": "Seppuku", + "channel-games-voteban": "Проголосувати", + "channel-greeting": "Привітання", + "channel-keyword": "Ключове слово", + "channel-moderation-setting": "Налаштування модерації", + "channel-overlay-chat": "Спливаючий чат", + "channel-overlay-dudes": "Dudes Overlay", + "channel-overlay-now-playing": "Зараз грає оверлей", + "channel-roles": "Роль", + "channel-timers": "Лічильник", + "channel-song-requests": "Запити на пісні", + "channel-integrations": "Інтеграція", + "channel-alerts": "Сповіщення", + "channel-chat-alerts": "Сповіщення чата" + } } } }, @@ -592,7 +648,7 @@ "deniedUsers": "Користувачі, які не можуть замовляти пісні", "deniedSongs": "Заблоковані для замовлення пісні", "takeSongFromDonationMessage": "Бере посилання пісні з донат повідомлень?", - "confirmClearQueue": "Are you sure you want to clear the queue?", + "confirmClearQueue": "Справді бажаєте залишити чергу?", "users": { "maxRequests": "Максимальна кількість замовлень для користувача", "minimalWatchTime": "Мінімальний час перегляду для замовлення пісні (у хвилинах)", @@ -610,7 +666,7 @@ "general": "Загальні", "users": "Налаштування користувачів", "songs": "Звукові налаштування", - "translations": "Translations" + "translations": "Переклади" }, "ban": { "user": "Заблокувати користувача", @@ -622,8 +678,8 @@ "timers": { "table": { "columns": { - "intervalInMinutes": "Інтервал (у хвилинах)", - "intervalInMessages": "Інтервал у повідомленнях (встановіть 0, щоб вимкнути)" + "intervalInMinutes": "Інтервал у хвилинах", + "intervalInMessages": "Інтервал рядка чату" } }, "modal": { @@ -636,7 +692,7 @@ } }, "limitExceeded": "Ліміт перевищено!", - "newTimer": "New timer" + "newTimer": "Новий таймер" }, "roles": { "modal": { @@ -654,9 +710,9 @@ "keywords": { "title": "Ключові слова", "info": { - "text": "Keywords helps you to trigger chat message on certain words matching." + "text": "Ключові слова допоможуть вам запускати повідомлення в чаті на певних словах відповідності." }, - "create": "Create keyword", + "create": "Створіть ключове слово", "triggerText": "Текст тригеру", "usages": "Кількість використань", "isRegular": "Є регулярним виразом?", @@ -681,8 +737,8 @@ }, "greetings": { "title": "Привітання", - "create": "Create greeting", - "edit": "Edit greeting", + "create": "Створити привітання", + "edit": "Редагувати привітання", "info": { "title": "Інформація про привітання", "text": "Привітання - це той тип повідомлень, які використовує бот, щоб привітати відомих глядачів трансляції, коли вони надсилають своє перше повідомлення в чаті. Якщо ви бажаєте вітати кожного користувача у чаті, ви можете подивитися на категорію подій замість категорії привітань." @@ -696,10 +752,10 @@ "title": "Сповіщення", "info": "Інформація про сповіщення", "overlayLabel": "Сповіщення - це графічна частина реалізації команди або події. Ви можете налаштувати сповіщення із заданим звуком, зображенням і текстом, а потім призначити його певній команді, події, ключовому слову або привітанню. Також не забудьте вставити URL-адресу накладання як джерело браузера у вашу сцену додатку для трансляцій! (наприклад, OBS, XSplit тощо)", - "copyOverlayLink": "Copy overlay link", + "copyOverlayLink": "Скопіювати посилання на оверлей", "name": "Назва", - "rewards": "Rewards", - "commands": "Commands", + "rewards": "Нагороди", + "commands": "Команди", "validations": { "name": "Назва не може бути порожньою і містити понад 30 символів!" }, @@ -710,14 +766,14 @@ "greetings": "Привітання для тригера" }, "select": { - "audio": "Confugure an audio", - "image": "Configure an image", - "text": "Configure text" + "audio": "Налаштувати звук", + "image": "Налаштувати зображення", + "text": "Налаштувати текст" }, - "audioVolume": "Audio volume", - "createAlert": "Create alert", - "editAlert": "Edit alert", - "tableEmpty": "No alerts found" + "audioVolume": "Гучність звуку", + "createAlert": "Створити оповіщення", + "editAlert": "Редагувати оповіщення", + "tableEmpty": "Сповіщення не знайдені" }, "games": { "command": "Команда", @@ -775,69 +831,69 @@ } }, "seppuku": { - "description": "Seppuku, is a form of Japanese ritualistic suicide by disembowelment.", - "message": "Message", - "timeoutModerators": "Enable seppuku for moderators", - "messageModerators": "Message when moderator used seppuku", - "timeoutSeconds": "Timeout seconds" + "description": "Сеппуку – це форма японського ритуалістського самогубства шляхом невдоволення.", + "message": "Повідомлення", + "timeoutModerators": "Увімкнути seppuku для модераторів", + "messageModerators": "Повідомлення, якщо модератор використовує seppuku", + "timeoutSeconds": "Час очікування секунд" }, "voteban": { - "description": "Commence jury trial of the guilty chatterer!", - "banMessage": "Message on ban", - "banMessageModerators": "Message for ban moderator", - "surviveMessage": "Survive message", - "surviveMessageModerators": "Survive message for moderators", - "initialMessage": "Init message", - "neededVotes": "Needed votes", - "banDuration": "Duration of ban", - "voteMode": "Mode of vote", - "voteDuration": "Duration of vote in seconds", - "wordsNegative": "Words for vote to \"no\" option", - "wordsPositive": "Words for vote to \"yes\" option", - "timeoutModerators": "Enable voteban on moderators" + "description": "Спостереження щодо винного гачка!", + "banMessage": "Повідомлення на блокування", + "banMessageModerators": "Повідомлення для блокування модератора", + "surviveMessage": "Повідомлення вижити", + "surviveMessageModerators": "Повідомлення з виживання для модераторів", + "initialMessage": "Початкове повідомлення", + "neededVotes": "Потрібні голоси", + "banDuration": "Тривалість блокування", + "voteMode": "Режим голосування", + "voteDuration": "Тривалість голосування у секундах", + "wordsNegative": "Слова за голосування в опції \"ні\"", + "wordsPositive": "Слова за голосування за опцією \"так\"", + "timeoutModerators": "Увімкнути заборону на голосування модераторів" } }, "community": { - "title": "Community", + "title": "Спільнота", "users": { - "title": "Users", - "searchPlaceholder": "Search users...", + "title": "Користувачі", + "searchPlaceholder": "Пошук користувачів...", "table": { "user": "Користувач", "watchedTime": "Час перегляду", "messages": "Повідомлення", "usedEmotes": "Використано емодзі", "usedChannelPoints": "Використані бали каналу", - "empty": "No users" + "empty": "Немає користувачів" }, "total": "Всього {total} користувачів", "reset": { - "label": "Reset", + "label": "Скинути", "resetQuestion": "Ви впевнені, що хочете скинути значення {title}?" } }, "emotesStatistic": { - "title": "Emotes statistics", - "searchPlaceholder": "Search emotes...", + "title": "Статистика емоцій", + "searchPlaceholder": "Пошук смайлів...", "table": { - "emote": "Emote", - "usages": "Total usages", - "users": "Users", - "empty": "No emotes", - "chart": "Usages chart", - "lastDay": "Day", - "lastWeek": "Week", - "lastMonth": "Month", - "lastThreeMonth": "3 months", - "lastYear": "Year" + "emote": "Емоція", + "usages": "історія", + "users": "Користувачі", + "empty": "Без емоцій", + "chart": "Використовуваний графік", + "lastDay": "День", + "lastWeek": "Тиждень", + "lastMonth": "Місяць", + "lastThreeMonth": "3 місяці", + "lastYear": "Рік" }, - "total": "Total emotes: {total}", + "total": "Загальна кількість емоцій: {total}", "details": { - "stats": "Stats", - "users": "Users", + "stats": "Статистика", + "users": "Користувачі", "usersTabs": { - "top": "Top", - "history": "History" + "top": "Зверху", + "history": "Історія" } } } @@ -879,7 +935,7 @@ "ban": { "alertInfo": "Встановіть час на 0, щоб виводити повідомлення в разі перманентного блокування
", "countLabel": "Час (у хвилинах)", - "ignoreTimeoutFrom": "Ignore timeouts from" + "ignoreTimeoutFrom": "Ігнорувати тайм-аути від" }, "labels": { "followers": "Фоловери", @@ -894,7 +950,7 @@ "userBanned": "Заблокувати користувача", "channelUnbanRequestCreate": "Запит на зняття блокування створений", "channelUnbanRequestResolve": "Запит на зняття блокування вирішений", - "messageDelete": "Message Deleted" + "messageDelete": "Повідомлення видалено" } }, "moderation": { @@ -980,71 +1036,74 @@ } }, "adminPanel": { - "title": "Admin Panel", + "title": "Панель адміністратора", "notifications": { - "title": "Notifications", - "formTitle": "Send or edit notification", - "emptyNotifications": "No notifications", - "userLabel": "User", - "userPlaceholder": "Select a user", - "messageLabel": "Message", - "messagePreview": "Preview", - "createdAt": "Created At", - "globals": "Globals", - "users": "Users", - "confirmResetForm": "Are you sure you want to reset the form?" + "title": "Сповіщення", + "formTitle": "Надіслати або відредагувати сповіщення", + "emptyNotifications": "Немає повідомлень", + "userLabel": "Користувачі", + "userPlaceholder": "Виберіть користувача", + "messageLabel": "Повідомлення", + "messagePreview": "Попередній перегляд", + "createdAt": "Створено в", + "globals": "Глобальні", + "users": "Користувачі", + "confirmResetForm": "Ви впевнені, що бажаєте скинути форму?" }, "manageUsers": { - "title": "Users", - "user": "User", - "userId": "User ID", - "followers": "Followers", - "noUsers": "No users", - "filters": "Filters", - "clearFilters": "Clear filters", - "countSelected": "{count} selected", - "isAdmin": "Admin", - "isBanned": "Banned", - "isBotEnabled": "Bot enabled", - "statusGroup": "Status", - "badgesGroup": "Badges", - "giveBan": "Ban user", - "unBan": "Unban user", - "giveMod": "Give admin", - "unMod": "Remove admin", - "dropSession": "Drop session" + "title": "Користувачі", + "user": "Користувач", + "userId": "ID користувача", + "followers": "Послідовники", + "noUsers": "Немає користувачів", + "filters": "Фільтри", + "clearFilters": "Прибрати фільтри", + "countSelected": "Вибрано {count}", + "isAdmin": "Адмін", + "isBanned": "Заблокований", + "isBotEnabled": "Бот увімкнено", + "statusGroup": "Статус", + "badgesGroup": "Позначки", + "giveBan": "Заблокувати користувача", + "unBan": "Розблокувати користувача", + "giveMod": "Надати адміністратора", + "unMod": "Видалити адміністратора", + "dropSession": "Видалити сесію" }, "manageBadges": { - "title": "Badges", - "formTitle": "Create or edit badge", - "name": "Name", - "users": "Users", - "slot": "Slot", - "image": "Image", - "preview": "Preview", - "usesCount": "Uses {count}", - "badgeSlot": "Slot {slot}" + "title": "Позначки", + "formTitle": "Створити або редагувати значок", + "name": "Ім’я", + "users": "Користувачі", + "slot": "Слот", + "image": "Зображення", + "preview": "Попередній перегляд", + "usesCount": "Використовує {count}", + "badgeSlot": "Слот {slot}" }, "adminActions": { - "title": "Actions", + "title": "Дії", "eventsub": { - "title": "Subscribe to EventSub", - "condition": "Condition", - "type": "Type", - "typeError": "Please select a type", - "version": "Version", - "user": "User", - "channel": "Channel", - "channelWithBotId": "Channel with bot ID", - "channelWithModeratorId": "Channel with moderator ID" + "title": "Підписатися на EventSub", + "condition": "Умова", + "type": "Вид", + "typeError": "Будь ласка, оберіть тип", + "version": "Версія", + "user": "Користувач", + "channel": "Канал", + "channelWithBotId": "Канал з ID бота", + "channelWithModeratorId": "Канал з ID модератора" }, "dangerZone": { - "title": "Danger Zone", - "revoke": "Revoke", - "revokeSessions": "Revoke sessions", - "revokeAllSessionsDescription": "All user sessions will be revoked", - "revokeAllSessionsConfirm": "Are you sure you want to revoke all sessions?" + "title": "Небезпечна зона", + "revoke": "Скасувати", + "revokeSessions": "Скасувати сесії", + "revokeAllSessionsDescription": "Усі сеанси користувачів буде скасовано", + "revokeAllSessionsConfirm": "Ви впевнені, що хочете скасувати всі сеанси?" } + }, + "auditLogs": { + "title": "Журнал аудиту" } } }