diff --git a/public/sw.js b/public/sw.js index 9df35c0..172c377 100644 --- a/public/sw.js +++ b/public/sw.js @@ -1,7 +1,7 @@ // Tchatou service worker — installable PWA + offline app shell. // Scope: /app/. Only handles same-origin /app/ GETs; the IRC websocket and all // API calls (cloudflare, change_password, upload) pass straight through. -const CACHE = 'tchatou-v19'; +const CACHE = 'tchatou-v20'; const SHELL = ['/app/', '/app/index.html', '/app/favicon.svg', '/app/manifest.webmanifest']; self.addEventListener('install', (e) => { diff --git a/src/components/chat/MessageList.tsx b/src/components/chat/MessageList.tsx index 70ba7af..d02c661 100644 --- a/src/components/chat/MessageList.tsx +++ b/src/components/chat/MessageList.tsx @@ -1,4 +1,5 @@ import { useEffect, useRef, useState, type ReactNode } from 'react'; +import { useTranslation } from 'react-i18next'; import { useChat, SERVER } from '../../store'; import type { ChatMessage } from '../../irc/types'; import { fmtTime, nickColor, IRCOP_COLOR, formatIrc } from '../../lib/format'; @@ -145,6 +146,7 @@ function SearchResults({ messages, query }: { messages: ChatMessage[]; query: st } export function MessageList() { + const { t } = useTranslation(); const active = useChat((s) => s.active); const buffer = useChat((s) => s.buffers[s.active]); const search = useChat((s) => s.search); @@ -272,7 +274,7 @@ export function MessageList() {
🛡️
- Sécurité + {t('security.tag')} {m.text}
, diff --git a/src/components/profile/ProfileModal.tsx b/src/components/profile/ProfileModal.tsx index b983c76..6dc338c 100644 --- a/src/components/profile/ProfileModal.tsx +++ b/src/components/profile/ProfileModal.tsx @@ -1,12 +1,15 @@ import { useState, useEffect, type CSSProperties, type ReactNode } from 'react'; +import { useTranslation } from 'react-i18next'; import { useChat } from '../../store'; import { IRCOP_COLOR, hashHue, fmtDuration, formatUserModes } from '../../lib/format'; import { Avatar } from '../Avatar'; -const PM_WIDE_KEYS = new Set(['Identifiant', 'Serveur', 'Salons en commun', 'Empreinte du certificat', 'Info', 'Modes utilisateur']); +// Which info rows take the full width — keyed by stable id (not the translated label). +const PM_WIDE_KEYS = new Set(['identifier', 'server', 'channels', 'certfp', 'info', 'umodes']); /* Wide horizontal profile card — pops over a blurred "nebula" of the app */ export function ProfileModal() { + const { t } = useTranslation(); const nick = useChat((s) => s.profileUser); const info = useChat((s) => s.whois[s.profileUser]); const me = useChat((s) => s.nick); @@ -51,43 +54,44 @@ export function ProfileModal() { const targetIsOp = /[~&@]/.test(targetMember?.prefixes || targetMember?.prefix || ''); const canModerate = !isMe && amOp && !!targetMember && (active.startsWith('#') || active.startsWith('&')); + // [icon, stable key id, value] — the label is translated from the key at render. const rows: Array<[string, string, ReactNode]> = []; - if (info?.realname) rows.push(['📝', 'Nom affiché', info.realname]); - if (info?.user || info?.host) rows.push(['🪪', 'Identifiant', `${info?.user ?? '?'}@${info?.host ?? '?'}`]); - if (info?.server) rows.push(['🛰️', 'Serveur', info.server + (info.serverInfo ? ` · ${info.serverInfo}` : '')]); - if (info?.channels) rows.push(['#️⃣', 'Salons en commun', info.channels]); - if (info?.signon) rows.push(['🕓', 'Connecté depuis', new Date(info.signon * 1000).toLocaleString('fr-FR')]); - if (info?.idle != null) rows.push(['💤', 'Inactif depuis', fmtDuration(info.idle)]); - if (info?.secure) rows.push(['🔒', 'Connexion', 'Sécurisée (TLS)']); + if (info?.realname) rows.push(['📝', 'realname', info.realname]); + if (info?.user || info?.host) rows.push(['🪪', 'identifier', `${info?.user ?? '?'}@${info?.host ?? '?'}`]); + if (info?.server) rows.push(['🛰️', 'server', info.server + (info.serverInfo ? ` · ${info.serverInfo}` : '')]); + if (info?.channels) rows.push(['#️⃣', 'channels', info.channels]); + if (info?.signon) rows.push(['🕓', 'signon', new Date(info.signon * 1000).toLocaleString()]); + if (info?.idle != null) rows.push(['💤', 'idle', fmtDuration(info.idle)]); + if (info?.secure) rows.push(['🔒', 'connection', t('whois.secureTls')]); const shownModes = info?.modes || (isMe ? myUmodes : ''); - if (shownModes) rows.push(['⚙️', 'Modes utilisateur', formatUserModes(shownModes)]); - if (info?.certfp) rows.push(['🔑', 'Empreinte du certificat', {info.certfp}]); + if (shownModes) rows.push(['⚙️', 'umodes', formatUserModes(shownModes)]); + if (info?.certfp) rows.push(['🔑', 'certfp', {info.certfp}]); for (const line of info?.special ?? []) { const verif = line.match(/verified\s+(\S+)\s+account\s*\(([^)]+)\)/i); const groups = line.match(/security groups?:?\s*(.+)/i); const score = line.match(/score:?\s*([\d.]+)/i); if (verif) { - rows.push(['✅', 'Compte vérifié', + rows.push(['✅', 'verified', {verif[2]} · {verif[1]}]); } else if (groups) { - rows.push(['🛡️', 'Groupes', + rows.push(['🛡️', 'groups', {groups[1].split(/[\s,]+/).filter(Boolean).map((g) => {g})}]); } else if (score) { - rows.push(['📊', 'Score', score[1]]); + rows.push(['📊', 'score', score[1]]); } else { - rows.push(['ℹ️', 'Info', line]); + rows.push(['ℹ️', 'info', line]); } } - const status = info?.offline ? 'hors ligne' : info?.away ? 'absent' : 'en ligne'; - const statusKey = status === 'en ligne' ? 'on' : 'away'; + const statusText = info?.offline ? t('whois.offline') : info?.away ? t('whois.away') : t('whois.online'); + const statusKey = !info?.offline && !info?.away ? 'on' : 'away'; const chCount = info?.channels?.trim() ? info.channels.trim().split(/\s+/).length : null; return (
e.stopPropagation()}> - +
@@ -98,20 +102,20 @@ export function ProfileModal() {
{nick} - {info?.account && } + {info?.account && }
-
{info?.loading && !info?.user ? 'chargement du profil…' : (info?.account ? `@${info.account}` : 'visiteur')}
+
{info?.loading && !info?.user ? t('whois.loading') : (info?.account ? `@${info.account}` : t('whois.visitor'))}
- ● {status} + ● {statusText} {info?.bot && 🤖 BOT} - {info?.oper && 🛡 Opérateur} + {info?.oper && 🛡 {t('whois.badgeOp')}} {info?.account - ? ✓ Enregistré - : Invité} + ? ✓ {t('whois.badgeRegistered')} + : {t('whois.badgeGuest')}} {info?.secure && 🔒 TLS}
{info?.away &&
💤 {info.away}
} @@ -119,68 +123,67 @@ export function ProfileModal() {
- {status} - Statut + {statusText} + {t('whois.statStatus')}
{chCount ?? '—'} - Salons communs + {t('whois.statCommon')}
{info?.secure ? '🔒' : info?.loading ? '…' : '—'} - {info?.secure ? 'Sécurisé' : 'Connexion'} + {info?.secure ? t('whois.statSecure') : t('whois.connection')}
{!isMe && (
- - + +
)} {!isMe && (
- +
)} {canModerate && (
- 🛡 Modération + 🛡 {t('whois.moderation')}
- - - - + + + +
)}
- {rows.length > 0 &&
Informations
} + {rows.length > 0 &&
{t('whois.section')}
} {info?.loading && rows.length === 0 && (
)} - {rows.map(([icon, k, v]) => ( -
+ {rows.map(([icon, k, v], i) => ( +
{icon}
-
{k}
+
{t('whois.' + k)}
{v}
))} - {!info?.loading && rows.length === 0 &&
Aucune information publique disponible.
} + {!info?.loading && rows.length === 0 &&
{t('profile.noInfo')}
}
); } - diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index 2605c4c..177b1bc 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -1,11 +1,221 @@ { - "nav": { "home": "Startseite", "settings": "Einstellungen", "profile": "Mein Profil", "friends": "Freunde", "explore": "Kanäle erkunden", "newDM": "Neue Unterhaltung", "away": "Abwesend", "quit": "Chat verlassen" }, - "sidebar": { "all": "Alle", "channels": "Kanäle", "dms": "Direkt", "search": "Suchen", "noChannel": "Wähle einen Kanal, um zu chatten." }, - "topbar": { "search": "Suchen", "members": "Mitglieder anzeigen", "manage": "Kanal verwalten", "modes": "Kanalmodi", "notifications": "Benachrichtigungen", "closeSearch": "Suche schließen", "membersCount": "Mitglieder · {{n}}", "publicChannel": "Öffentlicher Kanal · {{n}} Mitglieder", "commonChannels": "Gemeinsame Kanäle" }, - "connect": { "onlineBadge": "{{n}} Personen online", "pseudoPlaceholder": "Wähle deinen Spitznamen…", "enter": "Eintreten", "joinHint": "Du betrittst", "registered": "Konto bereits vorhanden?", "hidePassword": "Passwort verbergen", "passwordPlaceholder": "Passwort (falls dein Nick registriert ist)", "passwordLabel": "Passwort", "noData": "Keine Registrierung erforderlich", "encrypted": "Ende-zu-Ende-verschlüsselt", "ircv3": "IRCv3", "helpButton": "Hilfe & FAQ", "forgotButton": "Passwort vergessen?", "createButton": "Konto erstellen", "faqTitle": "Hilfe & FAQ", "error_error": "Verbindung fehlgeschlagen. Bitte erneut versuchen.", "error_closed": "Die Verbindung wurde getrennt.", "error_sasl": "Unbekannter Spitzname oder falsches Passwort." }, - "messages": { "reply": "Als Antwort auf", "react": "Reagieren", "respond": "Antworten", "delete": "Löschen", "hideJoins": "Beitritte/Abschiede ausblenden", "unread": "Neue Nachrichten", "jumpUnread": "Neue Nachrichten", "loadHistory": "Verlauf laden", "copyLink": "Link kopieren", "copyText": "Text kopieren", "info": "Info", "notice": "HINWEIS", "guest": "Gast", "poweredBy": "Betrieben von Orbit" }, - "modals": { "closeButton": "Schließen", "join": { "title": "Kanäle erkunden", "search": "Kanal suchen oder erstellen…", "loading": "Kanäle werden geladen…", "noResults": "Keine Ergebnisse" }, "dm": { "title": "Neue Unterhaltung", "search": "Spitznamen hinzufügen…", "noResults": "Keine Ergebnisse" }, "friends": { "title": "Freunde", "noFriends": "Noch keine Freunde." }, "chanadmin": { "title": "Kanal verwalten", "topic": "Kanalthema…", "bans": "Sperren ({{n}})", "noBans": "Keine Sperren.", "ban": "Sperren", "unban": "Sperre aufheben", "kick": "Rauswerfen", "maskPlaceholder": "*!*@Maske oder Spitzname…", "channelSearch": "#Kanal oder Spitzname", "setTopic": "Festlegen", "info": "Info", "modes": "Kanalmodi", "subject": "Thema" } }, - "settings": { "title": "Einstellungen", "sections": { "account": "Konto", "appearance": "Darstellung", "notifications": "Benachrichtigungen", "privacy": "Datenschutz", "advanced": "Erweitert" }, "account": { "login": "Anmelden", "register": "Konto erstellen", "logout": "Abmelden", "accountName": "Kontoname", "password": "Passwort", "currentPassword": "Aktuelles Passwort", "newPassword": "Neues Passwort", "minPassword": "Min. 6 Zeichen", "changeNick": "Spitznamen ändern", "nickHint": "Ändert den in Kanälen angezeigten Spitznamen.", "emailPlaceholder": "du@beispiel.de", "totpCode": "z.B. 123456", "verificationCode": "Bestätigungscode", "resend": "Code erneut senden", "restart": "Neu starten", "connecting": "Verbinde…", "validating": "Überprüfe…", "security": "Sicherheit", "status": "Status", "loggedIn": "Verbunden", "loggedInAs": "Verbunden · {{nick}}", "identifiedAs": "Du bist angemeldet als {{nick}}", "unknownError": "Unbekanntes Konto oder falsches Passwort.", "saslFailed": "Falscher Spitzname oder Passwort.", "antiBot": "Anti-Bot-Verifizierung", "wrongPassword": "Falsches Passwort.", "join": "Beitreten", "channelHint": "Kanal beitreten (beginnt mit #)", "channelPlaceholder": "z.B. orbit, hilfe", "fromChannel": "Vom Kanal" }, "appearance": { "theme": "Design", "language": "Sprache", "timeFormat": "Zeitformat", "compact": "Kompakte Nachrichten", "textSize": "Textgröße" }, "notifications": { "browser": "Browser-Benachrichtigungen", "push": "Push-Benachrichtigungen" } }, - "profile": { "refresh": "Aktualisieren", "close": "Schließen", "away": "Abwesend", "noInfo": "Keine öffentlichen Informationen verfügbar.", "noMembers": "Keine Mitglieder", "filterMembers": "Mitglieder filtern", "openDM": "Direktnachricht", "openProfile": "Profil", "cancel": "Abbrechen" }, - "language": { "label": "Sprache", "en": "English", "fr": "Français", "de": "Deutsch", "tr": "Türkçe", "ne": "नेपाली", "es": "Español", "ru": "Русский", "it": "Italiano", "pt-PT": "Português (Portugal)", "pt-BR": "Português (Brasil)" } -} + "nav": { + "home": "Startseite", + "settings": "Einstellungen", + "profile": "Mein Profil", + "friends": "Freunde", + "explore": "Kanäle erkunden", + "newDM": "Neue Unterhaltung", + "away": "Abwesend", + "quit": "Chat verlassen" + }, + "sidebar": { + "all": "Alle", + "channels": "Kanäle", + "dms": "Direkt", + "search": "Suchen", + "noChannel": "Wähle einen Kanal, um zu chatten." + }, + "topbar": { + "search": "Suchen", + "members": "Mitglieder anzeigen", + "manage": "Kanal verwalten", + "modes": "Kanalmodi", + "notifications": "Benachrichtigungen", + "closeSearch": "Suche schließen", + "membersCount": "Mitglieder · {{n}}", + "publicChannel": "Öffentlicher Kanal · {{n}} Mitglieder", + "commonChannels": "Gemeinsame Kanäle" + }, + "connect": { + "onlineBadge": "{{n}} Personen online", + "pseudoPlaceholder": "Wähle deinen Spitznamen…", + "enter": "Eintreten", + "joinHint": "Du betrittst", + "registered": "Konto bereits vorhanden?", + "hidePassword": "Passwort verbergen", + "passwordPlaceholder": "Passwort (falls dein Nick registriert ist)", + "passwordLabel": "Passwort", + "noData": "Keine Registrierung erforderlich", + "encrypted": "Ende-zu-Ende-verschlüsselt", + "ircv3": "IRCv3", + "helpButton": "Hilfe & FAQ", + "forgotButton": "Passwort vergessen?", + "createButton": "Konto erstellen", + "faqTitle": "Hilfe & FAQ", + "error_error": "Verbindung fehlgeschlagen. Bitte erneut versuchen.", + "error_closed": "Die Verbindung wurde getrennt.", + "error_sasl": "Unbekannter Spitzname oder falsches Passwort." + }, + "messages": { + "reply": "Als Antwort auf", + "react": "Reagieren", + "respond": "Antworten", + "delete": "Löschen", + "hideJoins": "Beitritte/Abschiede ausblenden", + "unread": "Neue Nachrichten", + "jumpUnread": "Neue Nachrichten", + "loadHistory": "Verlauf laden", + "copyLink": "Link kopieren", + "copyText": "Text kopieren", + "info": "Info", + "notice": "HINWEIS", + "guest": "Gast", + "poweredBy": "Betrieben von Orbit" + }, + "modals": { + "closeButton": "Schließen", + "join": { + "title": "Kanäle erkunden", + "search": "Kanal suchen oder erstellen…", + "loading": "Kanäle werden geladen…", + "noResults": "Keine Ergebnisse" + }, + "dm": { + "title": "Neue Unterhaltung", + "search": "Spitznamen hinzufügen…", + "noResults": "Keine Ergebnisse" + }, + "friends": { + "title": "Freunde", + "noFriends": "Noch keine Freunde." + }, + "chanadmin": { + "title": "Kanal verwalten", + "topic": "Kanalthema…", + "bans": "Sperren ({{n}})", + "noBans": "Keine Sperren.", + "ban": "Sperren", + "unban": "Sperre aufheben", + "kick": "Rauswerfen", + "maskPlaceholder": "*!*@Maske oder Spitzname…", + "channelSearch": "#Kanal oder Spitzname", + "setTopic": "Festlegen", + "info": "Info", + "modes": "Kanalmodi", + "subject": "Thema" + } + }, + "settings": { + "title": "Einstellungen", + "sections": { + "account": "Konto", + "appearance": "Darstellung", + "notifications": "Benachrichtigungen", + "privacy": "Datenschutz", + "advanced": "Erweitert" + }, + "account": { + "login": "Anmelden", + "register": "Konto erstellen", + "logout": "Abmelden", + "accountName": "Kontoname", + "password": "Passwort", + "currentPassword": "Aktuelles Passwort", + "newPassword": "Neues Passwort", + "minPassword": "Min. 6 Zeichen", + "changeNick": "Spitznamen ändern", + "nickHint": "Ändert den in Kanälen angezeigten Spitznamen.", + "emailPlaceholder": "du@beispiel.de", + "totpCode": "z.B. 123456", + "verificationCode": "Bestätigungscode", + "resend": "Code erneut senden", + "restart": "Neu starten", + "connecting": "Verbinde…", + "validating": "Überprüfe…", + "security": "Sicherheit", + "status": "Status", + "loggedIn": "Verbunden", + "loggedInAs": "Verbunden · {{nick}}", + "identifiedAs": "Du bist angemeldet als {{nick}}", + "unknownError": "Unbekanntes Konto oder falsches Passwort.", + "saslFailed": "Falscher Spitzname oder Passwort.", + "antiBot": "Anti-Bot-Verifizierung", + "wrongPassword": "Falsches Passwort.", + "join": "Beitreten", + "channelHint": "Kanal beitreten (beginnt mit #)", + "channelPlaceholder": "z.B. orbit, hilfe", + "fromChannel": "Vom Kanal" + }, + "appearance": { + "theme": "Design", + "language": "Sprache", + "timeFormat": "Zeitformat", + "compact": "Kompakte Nachrichten", + "textSize": "Textgröße" + }, + "notifications": { + "browser": "Browser-Benachrichtigungen", + "push": "Push-Benachrichtigungen" + } + }, + "profile": { + "refresh": "Aktualisieren", + "close": "Schließen", + "away": "Abwesend", + "noInfo": "Keine öffentlichen Informationen verfügbar.", + "noMembers": "Keine Mitglieder", + "filterMembers": "Mitglieder filtern", + "openDM": "Direktnachricht", + "openProfile": "Profil", + "cancel": "Abbrechen" + }, + "language": { + "label": "Sprache", + "en": "English", + "fr": "Français", + "de": "Deutsch", + "tr": "Türkçe", + "ne": "नेपाली", + "es": "Español", + "ru": "Русский", + "it": "Italiano", + "pt-PT": "Português (Portugal)", + "pt-BR": "Português (Brasil)" + }, + "whois": { + "section": "Informationen", + "realname": "Anzeigename", + "identifier": "Kennung", + "server": "Server", + "channels": "Gemeinsame Kanäle", + "signon": "Online seit", + "idle": "Inaktiv seit", + "connection": "Verbindung", + "secureTls": "Sicher (TLS)", + "umodes": "Benutzermodi", + "certfp": "Zertifikat-Fingerabdruck", + "verified": "Verifiziertes Konto", + "groups": "Gruppen", + "score": "Punktzahl", + "info": "Info", + "statStatus": "Status", + "statCommon": "Gemeinsame Kanäle", + "statSecure": "Sicher", + "loading": "Profil wird geladen…", + "visitor": "Besucher", + "registeredTitle": "Registriert: {{account}}", + "badgeOp": "Operator", + "badgeRegistered": "Registriert", + "badgeGuest": "Gast", + "friend": "Freund", + "friendAdd": "Freund hinzufügen", + "ignore": "Ignorieren", + "unignore": "Nicht mehr ignorieren", + "report": "Melden", + "moderation": "Moderation", + "kick": "Rauswerfen", + "ban": "Sperren", + "opAdd": "Op", + "opRemove": "Op entfernen", + "voice": "Voice", + "dm": "Direktnachricht", + "online": "online", + "away": "abwesend", + "offline": "offline" + }, + "security": { + "tag": "Sicherheit", + "leakGuard": "Wir haben deinen Identify-Befehl abgefangen: So gesendet wäre dein Passwort für alle in {{channel}} sichtbar gewesen. Keine Sorge — wir haben ihn privat an {{service}} weitergeleitet, nichts wurde preisgegeben. Melde dich nächstes Mal über Einstellungen › Konto an." + } +} \ No newline at end of file diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index 25fe923..a9e034b 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -172,5 +172,50 @@ "it": "Italiano", "pt-PT": "Português (Portugal)", "pt-BR": "Português (Brasil)" + }, + "whois": { + "section": "Information", + "realname": "Display name", + "identifier": "Identifier", + "server": "Server", + "channels": "Common channels", + "signon": "Online since", + "idle": "Idle for", + "connection": "Connection", + "secureTls": "Secure (TLS)", + "umodes": "User modes", + "certfp": "Certificate fingerprint", + "verified": "Verified account", + "groups": "Groups", + "score": "Score", + "info": "Info", + "statStatus": "Status", + "statCommon": "Common channels", + "statSecure": "Secure", + "loading": "loading profile…", + "visitor": "visitor", + "registeredTitle": "Registered: {{account}}", + "badgeOp": "Operator", + "badgeRegistered": "Registered", + "badgeGuest": "Guest", + "friend": "Friend", + "friendAdd": "Add friend", + "ignore": "Ignore", + "unignore": "Unignore", + "report": "Report", + "moderation": "Moderation", + "kick": "Kick", + "ban": "Ban", + "opAdd": "Op", + "opRemove": "Remove op", + "voice": "Voice", + "dm": "Direct message", + "online": "online", + "away": "away", + "offline": "offline" + }, + "security": { + "tag": "Security", + "leakGuard": "We intercepted your identify command: sent as-is here, your password would have been visible to everyone in {{channel}}. Don't worry — we forwarded it to {{service}} privately, nothing was leaked. Next time, log in from Settings › Account." } -} +} \ No newline at end of file diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index 562784a..3ae824f 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -1,11 +1,221 @@ { - "nav": { "home": "Inicio", "settings": "Ajustes", "profile": "Mi perfil", "friends": "Amigos", "explore": "Explorar canales", "newDM": "Nueva conversación", "away": "Ausente", "quit": "Salir del chat" }, - "sidebar": { "all": "Todo", "channels": "Canales", "dms": "Directos", "search": "Buscar", "noChannel": "Elige un canal para empezar a chatear." }, - "topbar": { "search": "Buscar", "members": "Ver miembros", "manage": "Administrar canal", "modes": "Modos del canal", "notifications": "Notificaciones", "closeSearch": "Cerrar búsqueda", "membersCount": "Miembros · {{n}}", "publicChannel": "Canal público · {{n}} miembros", "commonChannels": "Canales en común" }, - "connect": { "onlineBadge": "{{n}} personas en línea", "pseudoPlaceholder": "Elige tu apodo…", "enter": "Entrar", "joinHint": "Te vas a unir a", "registered": "¿Ya tienes cuenta?", "hidePassword": "Ocultar contraseña", "passwordPlaceholder": "Contraseña (si tu nick está registrado)", "passwordLabel": "Contraseña", "noData": "Sin registro necesario", "encrypted": "Cifrado de extremo a extremo", "ircv3": "IRCv3", "helpButton": "Ayuda & FAQ", "forgotButton": "¿Olvidaste tu contraseña?", "createButton": "Crear una cuenta", "faqTitle": "Ayuda & FAQ", "error_error": "No se puede conectar. Inténtalo de nuevo.", "error_closed": "La conexión se ha cerrado.", "error_sasl": "Apodo desconocido o contraseña incorrecta." }, - "messages": { "reply": "En respuesta a", "react": "Reaccionar", "respond": "Responder", "delete": "Eliminar", "hideJoins": "Ocultar entradas/salidas", "unread": "Nuevos mensajes", "jumpUnread": "Nuevos mensajes", "loadHistory": "Cargar historial", "copyLink": "Copiar enlace", "copyText": "Copiar texto", "info": "Info", "notice": "AVISO", "guest": "Invitado", "poweredBy": "Impulsado por Orbit" }, - "modals": { "closeButton": "Cerrar", "join": { "title": "Explorar canales", "search": "Buscar o crear #canal…", "loading": "Cargando canales…", "noResults": "Sin resultados" }, "dm": { "title": "Nueva conversación", "search": "Añadir apodo…", "noResults": "Sin resultados" }, "friends": { "title": "Amigos", "noFriends": "Aún no tienes amigos." }, "chanadmin": { "title": "Administrar canal", "topic": "Tema del canal…", "bans": "Expulsiones ({{n}})", "noBans": "Sin expulsiones.", "ban": "Expulsar", "unban": "Levantar expulsión", "kick": "Echar", "maskPlaceholder": "*!*@máscara o apodo…", "channelSearch": "#canal o apodo", "setTopic": "Establecer", "info": "Info", "modes": "Modos del canal", "subject": "Tema" } }, - "settings": { "title": "Ajustes", "sections": { "account": "Cuenta", "appearance": "Apariencia", "notifications": "Notificaciones", "privacy": "Privacidad", "advanced": "Avanzado" }, "account": { "login": "Iniciar sesión", "register": "Crear cuenta", "logout": "Cerrar sesión", "accountName": "Nombre de cuenta", "password": "Contraseña", "currentPassword": "Contraseña actual", "newPassword": "Nueva contraseña", "minPassword": "Mín. 6 caracteres", "changeNick": "Cambiar apodo", "nickHint": "Cambia el apodo que se muestra en los canales.", "emailPlaceholder": "tu@ejemplo.com", "totpCode": "p. ej. 123456", "verificationCode": "Código de verificación", "resend": "Reenviar código", "restart": "Empezar de nuevo", "connecting": "Conectando…", "validating": "Validando…", "security": "Seguridad", "status": "Estado", "loggedIn": "Conectado", "loggedInAs": "Conectado · {{nick}}", "identifiedAs": "Has iniciado sesión como {{nick}}", "unknownError": "Cuenta desconocida o contraseña incorrecta.", "saslFailed": "Apodo o contraseña incorrectos.", "antiBot": "Verificación antibot", "wrongPassword": "Contraseña incorrecta.", "join": "Unirse", "channelHint": "Únete a un canal (empieza por #)", "channelPlaceholder": "p. ej. orbit, ayuda", "fromChannel": "Desde el canal" }, "appearance": { "theme": "Tema", "language": "Idioma", "timeFormat": "Formato de hora", "compact": "Mensajes compactos", "textSize": "Tamaño de texto" }, "notifications": { "browser": "Notificaciones del navegador", "push": "Notificaciones push" } }, - "profile": { "refresh": "Actualizar", "close": "Cerrar", "away": "Ausente", "noInfo": "No hay información pública disponible.", "noMembers": "Sin miembros", "filterMembers": "Filtrar miembros", "openDM": "Mensaje directo", "openProfile": "Perfil", "cancel": "Cancelar" }, - "language": { "label": "Idioma", "en": "English", "fr": "Français", "de": "Deutsch", "tr": "Türkçe", "ne": "नेपाली", "es": "Español", "ru": "Русский", "it": "Italiano", "pt-PT": "Português (Portugal)", "pt-BR": "Português (Brasil)" } -} + "nav": { + "home": "Inicio", + "settings": "Ajustes", + "profile": "Mi perfil", + "friends": "Amigos", + "explore": "Explorar canales", + "newDM": "Nueva conversación", + "away": "Ausente", + "quit": "Salir del chat" + }, + "sidebar": { + "all": "Todo", + "channels": "Canales", + "dms": "Directos", + "search": "Buscar", + "noChannel": "Elige un canal para empezar a chatear." + }, + "topbar": { + "search": "Buscar", + "members": "Ver miembros", + "manage": "Administrar canal", + "modes": "Modos del canal", + "notifications": "Notificaciones", + "closeSearch": "Cerrar búsqueda", + "membersCount": "Miembros · {{n}}", + "publicChannel": "Canal público · {{n}} miembros", + "commonChannels": "Canales en común" + }, + "connect": { + "onlineBadge": "{{n}} personas en línea", + "pseudoPlaceholder": "Elige tu apodo…", + "enter": "Entrar", + "joinHint": "Te vas a unir a", + "registered": "¿Ya tienes cuenta?", + "hidePassword": "Ocultar contraseña", + "passwordPlaceholder": "Contraseña (si tu nick está registrado)", + "passwordLabel": "Contraseña", + "noData": "Sin registro necesario", + "encrypted": "Cifrado de extremo a extremo", + "ircv3": "IRCv3", + "helpButton": "Ayuda & FAQ", + "forgotButton": "¿Olvidaste tu contraseña?", + "createButton": "Crear una cuenta", + "faqTitle": "Ayuda & FAQ", + "error_error": "No se puede conectar. Inténtalo de nuevo.", + "error_closed": "La conexión se ha cerrado.", + "error_sasl": "Apodo desconocido o contraseña incorrecta." + }, + "messages": { + "reply": "En respuesta a", + "react": "Reaccionar", + "respond": "Responder", + "delete": "Eliminar", + "hideJoins": "Ocultar entradas/salidas", + "unread": "Nuevos mensajes", + "jumpUnread": "Nuevos mensajes", + "loadHistory": "Cargar historial", + "copyLink": "Copiar enlace", + "copyText": "Copiar texto", + "info": "Info", + "notice": "AVISO", + "guest": "Invitado", + "poweredBy": "Impulsado por Orbit" + }, + "modals": { + "closeButton": "Cerrar", + "join": { + "title": "Explorar canales", + "search": "Buscar o crear #canal…", + "loading": "Cargando canales…", + "noResults": "Sin resultados" + }, + "dm": { + "title": "Nueva conversación", + "search": "Añadir apodo…", + "noResults": "Sin resultados" + }, + "friends": { + "title": "Amigos", + "noFriends": "Aún no tienes amigos." + }, + "chanadmin": { + "title": "Administrar canal", + "topic": "Tema del canal…", + "bans": "Expulsiones ({{n}})", + "noBans": "Sin expulsiones.", + "ban": "Expulsar", + "unban": "Levantar expulsión", + "kick": "Echar", + "maskPlaceholder": "*!*@máscara o apodo…", + "channelSearch": "#canal o apodo", + "setTopic": "Establecer", + "info": "Info", + "modes": "Modos del canal", + "subject": "Tema" + } + }, + "settings": { + "title": "Ajustes", + "sections": { + "account": "Cuenta", + "appearance": "Apariencia", + "notifications": "Notificaciones", + "privacy": "Privacidad", + "advanced": "Avanzado" + }, + "account": { + "login": "Iniciar sesión", + "register": "Crear cuenta", + "logout": "Cerrar sesión", + "accountName": "Nombre de cuenta", + "password": "Contraseña", + "currentPassword": "Contraseña actual", + "newPassword": "Nueva contraseña", + "minPassword": "Mín. 6 caracteres", + "changeNick": "Cambiar apodo", + "nickHint": "Cambia el apodo que se muestra en los canales.", + "emailPlaceholder": "tu@ejemplo.com", + "totpCode": "p. ej. 123456", + "verificationCode": "Código de verificación", + "resend": "Reenviar código", + "restart": "Empezar de nuevo", + "connecting": "Conectando…", + "validating": "Validando…", + "security": "Seguridad", + "status": "Estado", + "loggedIn": "Conectado", + "loggedInAs": "Conectado · {{nick}}", + "identifiedAs": "Has iniciado sesión como {{nick}}", + "unknownError": "Cuenta desconocida o contraseña incorrecta.", + "saslFailed": "Apodo o contraseña incorrectos.", + "antiBot": "Verificación antibot", + "wrongPassword": "Contraseña incorrecta.", + "join": "Unirse", + "channelHint": "Únete a un canal (empieza por #)", + "channelPlaceholder": "p. ej. orbit, ayuda", + "fromChannel": "Desde el canal" + }, + "appearance": { + "theme": "Tema", + "language": "Idioma", + "timeFormat": "Formato de hora", + "compact": "Mensajes compactos", + "textSize": "Tamaño de texto" + }, + "notifications": { + "browser": "Notificaciones del navegador", + "push": "Notificaciones push" + } + }, + "profile": { + "refresh": "Actualizar", + "close": "Cerrar", + "away": "Ausente", + "noInfo": "No hay información pública disponible.", + "noMembers": "Sin miembros", + "filterMembers": "Filtrar miembros", + "openDM": "Mensaje directo", + "openProfile": "Perfil", + "cancel": "Cancelar" + }, + "language": { + "label": "Idioma", + "en": "English", + "fr": "Français", + "de": "Deutsch", + "tr": "Türkçe", + "ne": "नेपाली", + "es": "Español", + "ru": "Русский", + "it": "Italiano", + "pt-PT": "Português (Portugal)", + "pt-BR": "Português (Brasil)" + }, + "whois": { + "section": "Información", + "realname": "Nombre visible", + "identifier": "Identificador", + "server": "Servidor", + "channels": "Canales en común", + "signon": "En línea desde", + "idle": "Inactivo desde", + "connection": "Conexión", + "secureTls": "Segura (TLS)", + "umodes": "Modos de usuario", + "certfp": "Huella del certificado", + "verified": "Cuenta verificada", + "groups": "Grupos", + "score": "Puntuación", + "info": "Info", + "statStatus": "Estado", + "statCommon": "Canales en común", + "statSecure": "Seguro", + "loading": "cargando perfil…", + "visitor": "visitante", + "registeredTitle": "Registrado: {{account}}", + "badgeOp": "Operador", + "badgeRegistered": "Registrado", + "badgeGuest": "Invitado", + "friend": "Amigo", + "friendAdd": "Añadir amigo", + "ignore": "Ignorar", + "unignore": "Dejar de ignorar", + "report": "Reportar", + "moderation": "Moderación", + "kick": "Expulsar", + "ban": "Banear", + "opAdd": "Op", + "opRemove": "Quitar op", + "voice": "Voz", + "dm": "Mensaje directo", + "online": "en línea", + "away": "ausente", + "offline": "desconectado" + }, + "security": { + "tag": "Seguridad", + "leakGuard": "Interceptamos tu comando de identificación: enviado tal cual aquí, tu contraseña habría sido visible para todos en {{channel}}. Tranquilo — lo enviamos a {{service}} en privado, no se filtró nada. La próxima vez, inicia sesión desde Ajustes › Cuenta." + } +} \ No newline at end of file diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index d8e9bb4..dfdc5ef 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -172,5 +172,50 @@ "it": "Italiano", "pt-PT": "Português (Portugal)", "pt-BR": "Português (Brasil)" + }, + "whois": { + "section": "Informations", + "realname": "Nom affiché", + "identifier": "Identifiant", + "server": "Serveur", + "channels": "Salons en commun", + "signon": "Connecté depuis", + "idle": "Inactif depuis", + "connection": "Connexion", + "secureTls": "Sécurisée (TLS)", + "umodes": "Modes utilisateur", + "certfp": "Empreinte du certificat", + "verified": "Compte vérifié", + "groups": "Groupes", + "score": "Score", + "info": "Info", + "statStatus": "Statut", + "statCommon": "Salons communs", + "statSecure": "Sécurisé", + "loading": "chargement du profil…", + "visitor": "visiteur", + "registeredTitle": "Enregistré : {{account}}", + "badgeOp": "Opérateur", + "badgeRegistered": "Enregistré", + "badgeGuest": "Invité", + "friend": "Ami", + "friendAdd": "Ajouter en ami", + "ignore": "Ignorer", + "unignore": "Ne plus ignorer", + "report": "Signaler", + "moderation": "Modération", + "kick": "Expulser", + "ban": "Bannir", + "opAdd": "Op", + "opRemove": "Retirer op", + "voice": "Voix", + "dm": "Message privé", + "online": "en ligne", + "away": "absent", + "offline": "hors ligne" + }, + "security": { + "tag": "Sécurité", + "leakGuard": "On a intercepté ta commande d’identification : envoyée telle quelle ici, ton mot de passe aurait été visible par tout le monde dans {{channel}}. Pas d’inquiétude — on l’a transmise à {{service}} en privé, rien n’a été divulgué. La prochaine fois, connecte-toi depuis Réglages › Compte." } -} +} \ No newline at end of file diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index 78c7e0b..841aac9 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -1,11 +1,221 @@ { - "nav": { "home": "Home", "settings": "Impostazioni", "profile": "Il mio profilo", "friends": "Amici", "explore": "Esplora canali", "newDM": "Nuova conversazione", "away": "Assente", "quit": "Esci dalla chat" }, - "sidebar": { "all": "Tutti", "channels": "Canali", "dms": "Diretti", "search": "Cerca", "noChannel": "Scegli un canale per iniziare a chattare." }, - "topbar": { "search": "Cerca", "members": "Vedi membri", "manage": "Gestisci canale", "modes": "Modalità del canale", "notifications": "Notifiche", "closeSearch": "Chiudi ricerca", "membersCount": "Membri · {{n}}", "publicChannel": "Canale pubblico · {{n}} membri", "commonChannels": "Canali in comune" }, - "connect": { "onlineBadge": "{{n}} persone online", "pseudoPlaceholder": "Scegli il tuo soprannome…", "enter": "Entra", "joinHint": "Stai entrando in", "registered": "Hai già un account?", "hidePassword": "Nascondi password", "passwordPlaceholder": "Password (se il tuo nick è registrato)", "passwordLabel": "Password", "noData": "Nessuna registrazione richiesta", "encrypted": "Crittografia end-to-end", "ircv3": "IRCv3", "helpButton": "Aiuto & FAQ", "forgotButton": "Password dimenticata?", "createButton": "Crea un account", "faqTitle": "Aiuto & FAQ", "error_error": "Impossibile connettersi. Riprova tra poco.", "error_closed": "La connessione è stata chiusa.", "error_sasl": "Soprannome sconosciuto o password errata." }, - "messages": { "reply": "In risposta a", "react": "Reagisci", "respond": "Rispondi", "delete": "Elimina", "hideJoins": "Nascondi entrate/uscite", "unread": "Nuovi messaggi", "jumpUnread": "Nuovi messaggi", "loadHistory": "Carica cronologia", "copyLink": "Copia link", "copyText": "Copia testo", "info": "Info", "notice": "AVVISO", "guest": "Ospite", "poweredBy": "Realizzato con Orbit" }, - "modals": { "closeButton": "Chiudi", "join": { "title": "Esplora canali", "search": "Cerca o crea #canale…", "loading": "Caricamento canali…", "noResults": "Nessun risultato" }, "dm": { "title": "Nuova conversazione", "search": "Aggiungi un soprannome…", "noResults": "Nessun risultato" }, "friends": { "title": "Amici", "noFriends": "Ancora nessun amico." }, "chanadmin": { "title": "Gestisci canale", "topic": "Argomento del canale…", "bans": "Ban ({{n}})", "noBans": "Nessun ban.", "ban": "Banna", "unban": "Rimuovi ban", "kick": "Espelli", "maskPlaceholder": "*!*@maschera o soprannome…", "channelSearch": "#canale o soprannome", "setTopic": "Imposta", "info": "Info", "modes": "Modalità del canale", "subject": "Argomento" } }, - "settings": { "title": "Impostazioni", "sections": { "account": "Account", "appearance": "Aspetto", "notifications": "Notifiche", "privacy": "Privacy", "advanced": "Avanzate" }, "account": { "login": "Accedi", "register": "Crea account", "logout": "Disconnetti", "accountName": "Nome account", "password": "Password", "currentPassword": "Password attuale", "newPassword": "Nuova password", "minPassword": "Min. 6 caratteri", "changeNick": "Cambia soprannome", "nickHint": "Cambia il soprannome mostrato nei canali.", "emailPlaceholder": "tu@esempio.com", "totpCode": "es. 123456", "verificationCode": "Codice di verifica", "resend": "Reinvia codice", "restart": "Ricomincia", "connecting": "Connessione…", "validating": "Convalida…", "security": "Sicurezza", "status": "Stato", "loggedIn": "Connesso", "loggedInAs": "Connesso · {{nick}}", "identifiedAs": "Hai effettuato l'accesso come {{nick}}", "unknownError": "Account sconosciuto o password errata.", "saslFailed": "Soprannome o password errati.", "antiBot": "Verifica anti-bot", "wrongPassword": "Password errata.", "join": "Entra", "channelHint": "Entra in un canale (inizia con #)", "channelPlaceholder": "es. orbit, aiuto", "fromChannel": "Dal canale" }, "appearance": { "theme": "Tema", "language": "Lingua", "timeFormat": "Formato ora", "compact": "Messaggi compatti", "textSize": "Dimensione testo" }, "notifications": { "browser": "Notifiche del browser", "push": "Notifiche push" } }, - "profile": { "refresh": "Aggiorna", "close": "Chiudi", "away": "Assente", "noInfo": "Nessuna informazione pubblica disponibile.", "noMembers": "Nessun membro", "filterMembers": "Filtra membri", "openDM": "Messaggio diretto", "openProfile": "Profilo", "cancel": "Annulla" }, - "language": { "label": "Lingua", "en": "English", "fr": "Français", "de": "Deutsch", "tr": "Türkçe", "ne": "नेपाली", "es": "Español", "ru": "Русский", "it": "Italiano", "pt-PT": "Português (Portugal)", "pt-BR": "Português (Brasil)" } -} + "nav": { + "home": "Home", + "settings": "Impostazioni", + "profile": "Il mio profilo", + "friends": "Amici", + "explore": "Esplora canali", + "newDM": "Nuova conversazione", + "away": "Assente", + "quit": "Esci dalla chat" + }, + "sidebar": { + "all": "Tutti", + "channels": "Canali", + "dms": "Diretti", + "search": "Cerca", + "noChannel": "Scegli un canale per iniziare a chattare." + }, + "topbar": { + "search": "Cerca", + "members": "Vedi membri", + "manage": "Gestisci canale", + "modes": "Modalità del canale", + "notifications": "Notifiche", + "closeSearch": "Chiudi ricerca", + "membersCount": "Membri · {{n}}", + "publicChannel": "Canale pubblico · {{n}} membri", + "commonChannels": "Canali in comune" + }, + "connect": { + "onlineBadge": "{{n}} persone online", + "pseudoPlaceholder": "Scegli il tuo soprannome…", + "enter": "Entra", + "joinHint": "Stai entrando in", + "registered": "Hai già un account?", + "hidePassword": "Nascondi password", + "passwordPlaceholder": "Password (se il tuo nick è registrato)", + "passwordLabel": "Password", + "noData": "Nessuna registrazione richiesta", + "encrypted": "Crittografia end-to-end", + "ircv3": "IRCv3", + "helpButton": "Aiuto & FAQ", + "forgotButton": "Password dimenticata?", + "createButton": "Crea un account", + "faqTitle": "Aiuto & FAQ", + "error_error": "Impossibile connettersi. Riprova tra poco.", + "error_closed": "La connessione è stata chiusa.", + "error_sasl": "Soprannome sconosciuto o password errata." + }, + "messages": { + "reply": "In risposta a", + "react": "Reagisci", + "respond": "Rispondi", + "delete": "Elimina", + "hideJoins": "Nascondi entrate/uscite", + "unread": "Nuovi messaggi", + "jumpUnread": "Nuovi messaggi", + "loadHistory": "Carica cronologia", + "copyLink": "Copia link", + "copyText": "Copia testo", + "info": "Info", + "notice": "AVVISO", + "guest": "Ospite", + "poweredBy": "Realizzato con Orbit" + }, + "modals": { + "closeButton": "Chiudi", + "join": { + "title": "Esplora canali", + "search": "Cerca o crea #canale…", + "loading": "Caricamento canali…", + "noResults": "Nessun risultato" + }, + "dm": { + "title": "Nuova conversazione", + "search": "Aggiungi un soprannome…", + "noResults": "Nessun risultato" + }, + "friends": { + "title": "Amici", + "noFriends": "Ancora nessun amico." + }, + "chanadmin": { + "title": "Gestisci canale", + "topic": "Argomento del canale…", + "bans": "Ban ({{n}})", + "noBans": "Nessun ban.", + "ban": "Banna", + "unban": "Rimuovi ban", + "kick": "Espelli", + "maskPlaceholder": "*!*@maschera o soprannome…", + "channelSearch": "#canale o soprannome", + "setTopic": "Imposta", + "info": "Info", + "modes": "Modalità del canale", + "subject": "Argomento" + } + }, + "settings": { + "title": "Impostazioni", + "sections": { + "account": "Account", + "appearance": "Aspetto", + "notifications": "Notifiche", + "privacy": "Privacy", + "advanced": "Avanzate" + }, + "account": { + "login": "Accedi", + "register": "Crea account", + "logout": "Disconnetti", + "accountName": "Nome account", + "password": "Password", + "currentPassword": "Password attuale", + "newPassword": "Nuova password", + "minPassword": "Min. 6 caratteri", + "changeNick": "Cambia soprannome", + "nickHint": "Cambia il soprannome mostrato nei canali.", + "emailPlaceholder": "tu@esempio.com", + "totpCode": "es. 123456", + "verificationCode": "Codice di verifica", + "resend": "Reinvia codice", + "restart": "Ricomincia", + "connecting": "Connessione…", + "validating": "Convalida…", + "security": "Sicurezza", + "status": "Stato", + "loggedIn": "Connesso", + "loggedInAs": "Connesso · {{nick}}", + "identifiedAs": "Hai effettuato l'accesso come {{nick}}", + "unknownError": "Account sconosciuto o password errata.", + "saslFailed": "Soprannome o password errati.", + "antiBot": "Verifica anti-bot", + "wrongPassword": "Password errata.", + "join": "Entra", + "channelHint": "Entra in un canale (inizia con #)", + "channelPlaceholder": "es. orbit, aiuto", + "fromChannel": "Dal canale" + }, + "appearance": { + "theme": "Tema", + "language": "Lingua", + "timeFormat": "Formato ora", + "compact": "Messaggi compatti", + "textSize": "Dimensione testo" + }, + "notifications": { + "browser": "Notifiche del browser", + "push": "Notifiche push" + } + }, + "profile": { + "refresh": "Aggiorna", + "close": "Chiudi", + "away": "Assente", + "noInfo": "Nessuna informazione pubblica disponibile.", + "noMembers": "Nessun membro", + "filterMembers": "Filtra membri", + "openDM": "Messaggio diretto", + "openProfile": "Profilo", + "cancel": "Annulla" + }, + "language": { + "label": "Lingua", + "en": "English", + "fr": "Français", + "de": "Deutsch", + "tr": "Türkçe", + "ne": "नेपाली", + "es": "Español", + "ru": "Русский", + "it": "Italiano", + "pt-PT": "Português (Portugal)", + "pt-BR": "Português (Brasil)" + }, + "whois": { + "section": "Informazioni", + "realname": "Nome visualizzato", + "identifier": "Identificatore", + "server": "Server", + "channels": "Canali in comune", + "signon": "Online da", + "idle": "Inattivo da", + "connection": "Connessione", + "secureTls": "Sicura (TLS)", + "umodes": "Modalità utente", + "certfp": "Impronta del certificato", + "verified": "Account verificato", + "groups": "Gruppi", + "score": "Punteggio", + "info": "Info", + "statStatus": "Stato", + "statCommon": "Canali in comune", + "statSecure": "Sicuro", + "loading": "caricamento profilo…", + "visitor": "visitatore", + "registeredTitle": "Registrato: {{account}}", + "badgeOp": "Operatore", + "badgeRegistered": "Registrato", + "badgeGuest": "Ospite", + "friend": "Amico", + "friendAdd": "Aggiungi amico", + "ignore": "Ignora", + "unignore": "Non ignorare più", + "report": "Segnala", + "moderation": "Moderazione", + "kick": "Espelli", + "ban": "Banna", + "opAdd": "Op", + "opRemove": "Rimuovi op", + "voice": "Voce", + "dm": "Messaggio diretto", + "online": "online", + "away": "assente", + "offline": "offline" + }, + "security": { + "tag": "Sicurezza", + "leakGuard": "Abbiamo intercettato il tuo comando di identificazione: inviato così com'è qui, la tua password sarebbe stata visibile a tutti in {{channel}}. Tranquillo — l'abbiamo inoltrato a {{service}} in privato, nulla è trapelato. La prossima volta, accedi da Impostazioni › Account." + } +} \ No newline at end of file diff --git a/src/i18n/locales/ne.json b/src/i18n/locales/ne.json index 44025af..95ccd2a 100644 --- a/src/i18n/locales/ne.json +++ b/src/i18n/locales/ne.json @@ -1,11 +1,221 @@ { - "nav": { "home": "गृहपृष्ठ", "settings": "सेटिङ", "profile": "मेरो प्रोफाइल", "friends": "साथीहरू", "explore": "च्यानलहरू अन्वेषण गर्नुहोस्", "newDM": "नयाँ कुराकानी", "away": "अनुपस्थित", "quit": "च्याट छोड्नुहोस्" }, - "sidebar": { "all": "सबै", "channels": "च्यानलहरू", "dms": "प्रत्यक्ष", "search": "खोज्नुहोस्", "noChannel": "कुराकानी सुरु गर्न च्यानल छान्नुहोस्।" }, - "topbar": { "search": "खोज्नुहोस्", "members": "सदस्यहरू हेर्नुहोस्", "manage": "च्यानल व्यवस्थापन", "modes": "च्यानल मोडहरू", "notifications": "सूचनाहरू", "closeSearch": "खोज बन्द गर्नुहोस्", "membersCount": "सदस्यहरू · {{n}}", "publicChannel": "सार्वजनिक च्यानल · {{n}} सदस्यहरू", "commonChannels": "साझा च्यानलहरू" }, - "connect": { "onlineBadge": "{{n}} जना अनलाइन", "pseudoPlaceholder": "आफ्नो उपनाम छान्नुहोस्…", "enter": "प्रवेश गर्नुहोस्", "joinHint": "तपाईं सामेल हुँदै हुनुहुन्छ", "registered": "पहिले नै खाता छ?", "hidePassword": "पासवर्ड लुकाउनुहोस्", "passwordPlaceholder": "पासवर्ड (यदि तपाईंको उपनाम दर्ता छ)", "passwordLabel": "पासवर्ड", "noData": "दर्ता आवश्यक छैन", "encrypted": "एन्ड-टु-एन्ड एन्क्रिप्टेड", "ircv3": "IRCv3", "helpButton": "मद्दत र FAQ", "forgotButton": "पासवर्ड बिर्सनुभयो?", "createButton": "खाता बनाउनुहोस्", "faqTitle": "मद्दत र FAQ", "error_error": "जडान गर्न सकिएन। कृपया फेरि प्रयास गर्नुहोस्।", "error_closed": "जडान बन्द भयो।", "error_sasl": "अज्ञात उपनाम वा गलत पासवर्ड।" }, - "messages": { "reply": "जवाफमा", "react": "प्रतिक्रिया", "respond": "जवाफ दिनुहोस्", "delete": "मेट्नुहोस्", "hideJoins": "सामेल/प्रस्थान लुकाउनुहोस्", "unread": "नयाँ सन्देशहरू", "jumpUnread": "नयाँ सन्देशहरू", "loadHistory": "इतिहास लोड गर्नुहोस्", "copyLink": "लिंक प्रतिलिपि गर्नुहोस्", "copyText": "पाठ प्रतिलिपि गर्नुहोस्", "info": "जानकारी", "notice": "सूचना", "guest": "अतिथि", "poweredBy": "Orbit द्वारा संचालित" }, - "modals": { "closeButton": "बन्द गर्नुहोस्", "join": { "title": "च्यानलहरू अन्वेषण", "search": "च्यानल खोज्नुहोस् वा बनाउनुहोस्…", "loading": "च्यानलहरू लोड हुँदैछ…", "noResults": "कुनै नतिजा छैन" }, "dm": { "title": "नयाँ कुराकानी", "search": "उपनाम थप्नुहोस्…", "noResults": "कुनै नतिजा छैन" }, "friends": { "title": "साथीहरू", "noFriends": "अहिलेसम्म कुनै साथी छैन।" }, "chanadmin": { "title": "च्यानल व्यवस्थापन", "topic": "च्यानल विषय…", "bans": "प्रतिबन्धहरू ({{n}})", "noBans": "कुनै प्रतिबन्ध छैन।", "ban": "प्रतिबन्ध गर्नुहोस्", "unban": "प्रतिबन्ध हटाउनुहोस्", "kick": "निकाल्नुहोस्", "maskPlaceholder": "*!*@मास्क वा उपनाम…", "channelSearch": "#च्यानल वा उपनाम", "setTopic": "सेट गर्नुहोस्", "info": "जानकारी", "modes": "च्यानल मोडहरू", "subject": "विषय" } }, - "settings": { "title": "सेटिङ", "sections": { "account": "खाता", "appearance": "स्वरूप", "notifications": "सूचनाहरू", "privacy": "गोपनीयता", "advanced": "उन्नत" }, "account": { "login": "लगइन गर्नुहोस्", "register": "खाता बनाउनुहोस्", "logout": "लगआउट गर्नुहोस्", "accountName": "खाताको नाम", "password": "पासवर्ड", "currentPassword": "हालको पासवर्ड", "newPassword": "नयाँ पासवर्ड", "minPassword": "कम्तीमा ६ अक्षर", "changeNick": "उपनाम परिवर्तन गर्नुहोस्", "nickHint": "च्यानलहरूमा देखाइने उपनाम परिवर्तन गर्छ।", "emailPlaceholder": "vasna@udaharan.com", "totpCode": "जस्तै: 123456", "verificationCode": "प्रमाणीकरण कोड", "resend": "कोड पुनः पठाउनुहोस्", "restart": "पुनः सुरु गर्नुहोस्", "connecting": "जडान हुँदैछ…", "validating": "प्रमाणित हुँदैछ…", "security": "सुरक्षा", "status": "स्थिति", "loggedIn": "जडित", "loggedInAs": "जडित · {{nick}}", "identifiedAs": "तपाईं {{nick}} को रूपमा लगइन हुनुहुन्छ", "unknownError": "अज्ञात खाता वा गलत पासवर्ड।", "saslFailed": "गलत उपनाम वा पासवर्ड।", "antiBot": "एन्टि-बट प्रमाणीकरण", "wrongPassword": "गलत पासवर्ड।", "join": "सामेल हुनुहोस्", "channelHint": "च्यानलमा सामेल हुनुहोस् (# बाट सुरु)", "channelPlaceholder": "जस्तै: orbit, सहायता", "fromChannel": "च्यानलबाट" }, "appearance": { "theme": "थिम", "language": "भाषा", "timeFormat": "समय ढाँचा", "compact": "कम्प्याक्ट सन्देशहरू", "textSize": "पाठ आकार" }, "notifications": { "browser": "ब्राउजर सूचनाहरू", "push": "पुश सूचनाहरू" } }, - "profile": { "refresh": "ताजा गर्नुहोस्", "close": "बन्द गर्नुहोस्", "away": "अनुपस्थित", "noInfo": "कुनै सार्वजनिक जानकारी उपलब्ध छैन।", "noMembers": "कुनै सदस्य छैन", "filterMembers": "सदस्यहरू फिल्टर गर्नुहोस्", "openDM": "प्रत्यक्ष सन्देश", "openProfile": "प्रोफाइल", "cancel": "रद्द गर्नुहोस्" }, - "language": { "label": "भाषा", "en": "English", "fr": "Français", "de": "Deutsch", "tr": "Türkçe", "ne": "नेपाली", "es": "Español", "ru": "Русский", "it": "Italiano", "pt-PT": "Português (Portugal)", "pt-BR": "Português (Brasil)" } -} + "nav": { + "home": "गृहपृष्ठ", + "settings": "सेटिङ", + "profile": "मेरो प्रोफाइल", + "friends": "साथीहरू", + "explore": "च्यानलहरू अन्वेषण गर्नुहोस्", + "newDM": "नयाँ कुराकानी", + "away": "अनुपस्थित", + "quit": "च्याट छोड्नुहोस्" + }, + "sidebar": { + "all": "सबै", + "channels": "च्यानलहरू", + "dms": "प्रत्यक्ष", + "search": "खोज्नुहोस्", + "noChannel": "कुराकानी सुरु गर्न च्यानल छान्नुहोस्।" + }, + "topbar": { + "search": "खोज्नुहोस्", + "members": "सदस्यहरू हेर्नुहोस्", + "manage": "च्यानल व्यवस्थापन", + "modes": "च्यानल मोडहरू", + "notifications": "सूचनाहरू", + "closeSearch": "खोज बन्द गर्नुहोस्", + "membersCount": "सदस्यहरू · {{n}}", + "publicChannel": "सार्वजनिक च्यानल · {{n}} सदस्यहरू", + "commonChannels": "साझा च्यानलहरू" + }, + "connect": { + "onlineBadge": "{{n}} जना अनलाइन", + "pseudoPlaceholder": "आफ्नो उपनाम छान्नुहोस्…", + "enter": "प्रवेश गर्नुहोस्", + "joinHint": "तपाईं सामेल हुँदै हुनुहुन्छ", + "registered": "पहिले नै खाता छ?", + "hidePassword": "पासवर्ड लुकाउनुहोस्", + "passwordPlaceholder": "पासवर्ड (यदि तपाईंको उपनाम दर्ता छ)", + "passwordLabel": "पासवर्ड", + "noData": "दर्ता आवश्यक छैन", + "encrypted": "एन्ड-टु-एन्ड एन्क्रिप्टेड", + "ircv3": "IRCv3", + "helpButton": "मद्दत र FAQ", + "forgotButton": "पासवर्ड बिर्सनुभयो?", + "createButton": "खाता बनाउनुहोस्", + "faqTitle": "मद्दत र FAQ", + "error_error": "जडान गर्न सकिएन। कृपया फेरि प्रयास गर्नुहोस्।", + "error_closed": "जडान बन्द भयो।", + "error_sasl": "अज्ञात उपनाम वा गलत पासवर्ड।" + }, + "messages": { + "reply": "जवाफमा", + "react": "प्रतिक्रिया", + "respond": "जवाफ दिनुहोस्", + "delete": "मेट्नुहोस्", + "hideJoins": "सामेल/प्रस्थान लुकाउनुहोस्", + "unread": "नयाँ सन्देशहरू", + "jumpUnread": "नयाँ सन्देशहरू", + "loadHistory": "इतिहास लोड गर्नुहोस्", + "copyLink": "लिंक प्रतिलिपि गर्नुहोस्", + "copyText": "पाठ प्रतिलिपि गर्नुहोस्", + "info": "जानकारी", + "notice": "सूचना", + "guest": "अतिथि", + "poweredBy": "Orbit द्वारा संचालित" + }, + "modals": { + "closeButton": "बन्द गर्नुहोस्", + "join": { + "title": "च्यानलहरू अन्वेषण", + "search": "च्यानल खोज्नुहोस् वा बनाउनुहोस्…", + "loading": "च्यानलहरू लोड हुँदैछ…", + "noResults": "कुनै नतिजा छैन" + }, + "dm": { + "title": "नयाँ कुराकानी", + "search": "उपनाम थप्नुहोस्…", + "noResults": "कुनै नतिजा छैन" + }, + "friends": { + "title": "साथीहरू", + "noFriends": "अहिलेसम्म कुनै साथी छैन।" + }, + "chanadmin": { + "title": "च्यानल व्यवस्थापन", + "topic": "च्यानल विषय…", + "bans": "प्रतिबन्धहरू ({{n}})", + "noBans": "कुनै प्रतिबन्ध छैन।", + "ban": "प्रतिबन्ध गर्नुहोस्", + "unban": "प्रतिबन्ध हटाउनुहोस्", + "kick": "निकाल्नुहोस्", + "maskPlaceholder": "*!*@मास्क वा उपनाम…", + "channelSearch": "#च्यानल वा उपनाम", + "setTopic": "सेट गर्नुहोस्", + "info": "जानकारी", + "modes": "च्यानल मोडहरू", + "subject": "विषय" + } + }, + "settings": { + "title": "सेटिङ", + "sections": { + "account": "खाता", + "appearance": "स्वरूप", + "notifications": "सूचनाहरू", + "privacy": "गोपनीयता", + "advanced": "उन्नत" + }, + "account": { + "login": "लगइन गर्नुहोस्", + "register": "खाता बनाउनुहोस्", + "logout": "लगआउट गर्नुहोस्", + "accountName": "खाताको नाम", + "password": "पासवर्ड", + "currentPassword": "हालको पासवर्ड", + "newPassword": "नयाँ पासवर्ड", + "minPassword": "कम्तीमा ६ अक्षर", + "changeNick": "उपनाम परिवर्तन गर्नुहोस्", + "nickHint": "च्यानलहरूमा देखाइने उपनाम परिवर्तन गर्छ।", + "emailPlaceholder": "vasna@udaharan.com", + "totpCode": "जस्तै: 123456", + "verificationCode": "प्रमाणीकरण कोड", + "resend": "कोड पुनः पठाउनुहोस्", + "restart": "पुनः सुरु गर्नुहोस्", + "connecting": "जडान हुँदैछ…", + "validating": "प्रमाणित हुँदैछ…", + "security": "सुरक्षा", + "status": "स्थिति", + "loggedIn": "जडित", + "loggedInAs": "जडित · {{nick}}", + "identifiedAs": "तपाईं {{nick}} को रूपमा लगइन हुनुहुन्छ", + "unknownError": "अज्ञात खाता वा गलत पासवर्ड।", + "saslFailed": "गलत उपनाम वा पासवर्ड।", + "antiBot": "एन्टि-बट प्रमाणीकरण", + "wrongPassword": "गलत पासवर्ड।", + "join": "सामेल हुनुहोस्", + "channelHint": "च्यानलमा सामेल हुनुहोस् (# बाट सुरु)", + "channelPlaceholder": "जस्तै: orbit, सहायता", + "fromChannel": "च्यानलबाट" + }, + "appearance": { + "theme": "थिम", + "language": "भाषा", + "timeFormat": "समय ढाँचा", + "compact": "कम्प्याक्ट सन्देशहरू", + "textSize": "पाठ आकार" + }, + "notifications": { + "browser": "ब्राउजर सूचनाहरू", + "push": "पुश सूचनाहरू" + } + }, + "profile": { + "refresh": "ताजा गर्नुहोस्", + "close": "बन्द गर्नुहोस्", + "away": "अनुपस्थित", + "noInfo": "कुनै सार्वजनिक जानकारी उपलब्ध छैन।", + "noMembers": "कुनै सदस्य छैन", + "filterMembers": "सदस्यहरू फिल्टर गर्नुहोस्", + "openDM": "प्रत्यक्ष सन्देश", + "openProfile": "प्रोफाइल", + "cancel": "रद्द गर्नुहोस्" + }, + "language": { + "label": "भाषा", + "en": "English", + "fr": "Français", + "de": "Deutsch", + "tr": "Türkçe", + "ne": "नेपाली", + "es": "Español", + "ru": "Русский", + "it": "Italiano", + "pt-PT": "Português (Portugal)", + "pt-BR": "Português (Brasil)" + }, + "whois": { + "section": "जानकारी", + "realname": "प्रदर्शन नाम", + "identifier": "पहिचानकर्ता", + "server": "सर्भर", + "channels": "साझा च्यानलहरू", + "signon": "अनलाइन भएदेखि", + "idle": "निष्क्रिय", + "connection": "जडान", + "secureTls": "सुरक्षित (TLS)", + "umodes": "प्रयोगकर्ता मोडहरू", + "certfp": "प्रमाणपत्र फिंगरप्रिन्ट", + "verified": "प्रमाणित खाता", + "groups": "समूहहरू", + "score": "स्कोर", + "info": "जानकारी", + "statStatus": "स्थिति", + "statCommon": "साझा च्यानलहरू", + "statSecure": "सुरक्षित", + "loading": "प्रोफाइल लोड हुँदै…", + "visitor": "आगन्तुक", + "registeredTitle": "दर्ता: {{account}}", + "badgeOp": "अपरेटर", + "badgeRegistered": "दर्ता", + "badgeGuest": "अतिथि", + "friend": "साथी", + "friendAdd": "साथी थप्नुहोस्", + "ignore": "बेवास्ता", + "unignore": "बेवास्ता हटाउनुहोस्", + "report": "रिपोर्ट", + "moderation": "मध्यस्थता", + "kick": "निकाल्नुहोस्", + "ban": "प्रतिबन्ध", + "opAdd": "अप", + "opRemove": "अप हटाउनुहोस्", + "voice": "आवाज", + "dm": "प्रत्यक्ष सन्देश", + "online": "अनलाइन", + "away": "अनुपस्थित", + "offline": "अफलाइन" + }, + "security": { + "tag": "सुरक्षा", + "leakGuard": "हामीले तपाईंको पहिचान आदेश रोक्यौं: यहाँ जस्ताको तस्तै पठाएको भए, तपाईंको पासवर्ड {{channel}} मा सबैलाई देखिने थियो। चिन्ता नगर्नुहोस् — हामीले यसलाई {{service}} लाई निजी रूपमा पठायौं, केही चुहिएन। अर्को पटक, सेटिङ › खाता बाट लगइन गर्नुहोस्।" + } +} \ No newline at end of file diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index 3e91cf5..28dccdd 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -1,11 +1,221 @@ { - "nav": { "home": "Início", "settings": "Configurações", "profile": "Meu perfil", "friends": "Amigos", "explore": "Explorar canais", "newDM": "Nova conversa", "away": "Ausente", "quit": "Sair do chat" }, - "sidebar": { "all": "Todos", "channels": "Canais", "dms": "Diretas", "search": "Pesquisar", "noChannel": "Escolha um canal para começar a conversar." }, - "topbar": { "search": "Pesquisar", "members": "Ver membros", "manage": "Gerenciar canal", "modes": "Modos do canal", "notifications": "Notificações", "closeSearch": "Fechar pesquisa", "membersCount": "Membros · {{n}}", "publicChannel": "Canal público · {{n}} membros", "commonChannels": "Canais em comum" }, - "connect": { "onlineBadge": "{{n}} pessoas online", "pseudoPlaceholder": "Escolha seu apelido…", "enter": "Entrar", "joinHint": "Você está entrando em", "registered": "Já tem uma conta?", "hidePassword": "Ocultar senha", "passwordPlaceholder": "Senha (se seu apelido estiver registrado)", "passwordLabel": "Senha", "noData": "Sem cadastro necessário", "encrypted": "Criptografado de ponta a ponta", "ircv3": "IRCv3", "helpButton": "Ajuda & FAQ", "forgotButton": "Esqueceu a senha?", "createButton": "Criar uma conta", "faqTitle": "Ajuda & FAQ", "error_error": "Não foi possível conectar. Tente novamente.", "error_closed": "A conexão foi encerrada.", "error_sasl": "Apelido desconhecido ou senha incorreta." }, - "messages": { "reply": "Em resposta a", "react": "Reagir", "respond": "Responder", "delete": "Excluir", "hideJoins": "Ocultar entradas/saídas", "unread": "Novas mensagens", "jumpUnread": "Novas mensagens", "loadHistory": "Carregar histórico", "copyLink": "Copiar link", "copyText": "Copiar texto", "info": "Info", "notice": "AVISO", "guest": "Convidado", "poweredBy": "Desenvolvido com Orbit" }, - "modals": { "closeButton": "Fechar", "join": { "title": "Explorar canais", "search": "Pesquisar ou criar #canal…", "loading": "Carregando canais…", "noResults": "Nenhum resultado" }, "dm": { "title": "Nova conversa", "search": "Adicionar um apelido…", "noResults": "Nenhum resultado" }, "friends": { "title": "Amigos", "noFriends": "Ainda sem amigos." }, "chanadmin": { "title": "Gerenciar canal", "topic": "Tópico do canal…", "bans": "Banimentos ({{n}})", "noBans": "Sem banimentos.", "ban": "Banir", "unban": "Remover banimento", "kick": "Expulsar", "maskPlaceholder": "*!*@máscara ou apelido…", "channelSearch": "#canal ou apelido", "setTopic": "Definir", "info": "Info", "modes": "Modos do canal", "subject": "Tópico" } }, - "settings": { "title": "Configurações", "sections": { "account": "Conta", "appearance": "Aparência", "notifications": "Notificações", "privacy": "Privacidade", "advanced": "Avançado" }, "account": { "login": "Entrar", "register": "Criar conta", "logout": "Sair da conta", "accountName": "Nome da conta", "password": "Senha", "currentPassword": "Senha atual", "newPassword": "Nova senha", "minPassword": "Mín. 6 caracteres", "changeNick": "Mudar apelido", "nickHint": "Muda o apelido mostrado nos canais.", "emailPlaceholder": "voce@exemplo.com", "totpCode": "ex. 123456", "verificationCode": "Código de verificação", "resend": "Reenviar código", "restart": "Recomeçar", "connecting": "Conectando…", "validating": "Validando…", "security": "Segurança", "status": "Status", "loggedIn": "Conectado", "loggedInAs": "Conectado · {{nick}}", "identifiedAs": "Você está logado como {{nick}}", "unknownError": "Conta desconhecida ou senha incorreta.", "saslFailed": "Apelido ou senha incorretos.", "antiBot": "Verificação anti-robô", "wrongPassword": "Senha incorreta.", "join": "Entrar", "channelHint": "Entre em um canal (começa com #)", "channelPlaceholder": "ex. orbit, ajuda", "fromChannel": "Do canal" }, "appearance": { "theme": "Tema", "language": "Idioma", "timeFormat": "Formato de hora", "compact": "Mensagens compactas", "textSize": "Tamanho do texto" }, "notifications": { "browser": "Notificações do navegador", "push": "Notificações push" } }, - "profile": { "refresh": "Atualizar", "close": "Fechar", "away": "Ausente", "noInfo": "Nenhuma informação pública disponível.", "noMembers": "Sem membros", "filterMembers": "Filtrar membros", "openDM": "Mensagem direta", "openProfile": "Perfil", "cancel": "Cancelar" }, - "language": { "label": "Idioma", "en": "English", "fr": "Français", "de": "Deutsch", "tr": "Türkçe", "ne": "नेपाली", "es": "Español", "ru": "Русский", "it": "Italiano", "pt-PT": "Português (Portugal)", "pt-BR": "Português (Brasil)" } -} + "nav": { + "home": "Início", + "settings": "Configurações", + "profile": "Meu perfil", + "friends": "Amigos", + "explore": "Explorar canais", + "newDM": "Nova conversa", + "away": "Ausente", + "quit": "Sair do chat" + }, + "sidebar": { + "all": "Todos", + "channels": "Canais", + "dms": "Diretas", + "search": "Pesquisar", + "noChannel": "Escolha um canal para começar a conversar." + }, + "topbar": { + "search": "Pesquisar", + "members": "Ver membros", + "manage": "Gerenciar canal", + "modes": "Modos do canal", + "notifications": "Notificações", + "closeSearch": "Fechar pesquisa", + "membersCount": "Membros · {{n}}", + "publicChannel": "Canal público · {{n}} membros", + "commonChannels": "Canais em comum" + }, + "connect": { + "onlineBadge": "{{n}} pessoas online", + "pseudoPlaceholder": "Escolha seu apelido…", + "enter": "Entrar", + "joinHint": "Você está entrando em", + "registered": "Já tem uma conta?", + "hidePassword": "Ocultar senha", + "passwordPlaceholder": "Senha (se seu apelido estiver registrado)", + "passwordLabel": "Senha", + "noData": "Sem cadastro necessário", + "encrypted": "Criptografado de ponta a ponta", + "ircv3": "IRCv3", + "helpButton": "Ajuda & FAQ", + "forgotButton": "Esqueceu a senha?", + "createButton": "Criar uma conta", + "faqTitle": "Ajuda & FAQ", + "error_error": "Não foi possível conectar. Tente novamente.", + "error_closed": "A conexão foi encerrada.", + "error_sasl": "Apelido desconhecido ou senha incorreta." + }, + "messages": { + "reply": "Em resposta a", + "react": "Reagir", + "respond": "Responder", + "delete": "Excluir", + "hideJoins": "Ocultar entradas/saídas", + "unread": "Novas mensagens", + "jumpUnread": "Novas mensagens", + "loadHistory": "Carregar histórico", + "copyLink": "Copiar link", + "copyText": "Copiar texto", + "info": "Info", + "notice": "AVISO", + "guest": "Convidado", + "poweredBy": "Desenvolvido com Orbit" + }, + "modals": { + "closeButton": "Fechar", + "join": { + "title": "Explorar canais", + "search": "Pesquisar ou criar #canal…", + "loading": "Carregando canais…", + "noResults": "Nenhum resultado" + }, + "dm": { + "title": "Nova conversa", + "search": "Adicionar um apelido…", + "noResults": "Nenhum resultado" + }, + "friends": { + "title": "Amigos", + "noFriends": "Ainda sem amigos." + }, + "chanadmin": { + "title": "Gerenciar canal", + "topic": "Tópico do canal…", + "bans": "Banimentos ({{n}})", + "noBans": "Sem banimentos.", + "ban": "Banir", + "unban": "Remover banimento", + "kick": "Expulsar", + "maskPlaceholder": "*!*@máscara ou apelido…", + "channelSearch": "#canal ou apelido", + "setTopic": "Definir", + "info": "Info", + "modes": "Modos do canal", + "subject": "Tópico" + } + }, + "settings": { + "title": "Configurações", + "sections": { + "account": "Conta", + "appearance": "Aparência", + "notifications": "Notificações", + "privacy": "Privacidade", + "advanced": "Avançado" + }, + "account": { + "login": "Entrar", + "register": "Criar conta", + "logout": "Sair da conta", + "accountName": "Nome da conta", + "password": "Senha", + "currentPassword": "Senha atual", + "newPassword": "Nova senha", + "minPassword": "Mín. 6 caracteres", + "changeNick": "Mudar apelido", + "nickHint": "Muda o apelido mostrado nos canais.", + "emailPlaceholder": "voce@exemplo.com", + "totpCode": "ex. 123456", + "verificationCode": "Código de verificação", + "resend": "Reenviar código", + "restart": "Recomeçar", + "connecting": "Conectando…", + "validating": "Validando…", + "security": "Segurança", + "status": "Status", + "loggedIn": "Conectado", + "loggedInAs": "Conectado · {{nick}}", + "identifiedAs": "Você está logado como {{nick}}", + "unknownError": "Conta desconhecida ou senha incorreta.", + "saslFailed": "Apelido ou senha incorretos.", + "antiBot": "Verificação anti-robô", + "wrongPassword": "Senha incorreta.", + "join": "Entrar", + "channelHint": "Entre em um canal (começa com #)", + "channelPlaceholder": "ex. orbit, ajuda", + "fromChannel": "Do canal" + }, + "appearance": { + "theme": "Tema", + "language": "Idioma", + "timeFormat": "Formato de hora", + "compact": "Mensagens compactas", + "textSize": "Tamanho do texto" + }, + "notifications": { + "browser": "Notificações do navegador", + "push": "Notificações push" + } + }, + "profile": { + "refresh": "Atualizar", + "close": "Fechar", + "away": "Ausente", + "noInfo": "Nenhuma informação pública disponível.", + "noMembers": "Sem membros", + "filterMembers": "Filtrar membros", + "openDM": "Mensagem direta", + "openProfile": "Perfil", + "cancel": "Cancelar" + }, + "language": { + "label": "Idioma", + "en": "English", + "fr": "Français", + "de": "Deutsch", + "tr": "Türkçe", + "ne": "नेपाली", + "es": "Español", + "ru": "Русский", + "it": "Italiano", + "pt-PT": "Português (Portugal)", + "pt-BR": "Português (Brasil)" + }, + "whois": { + "section": "Informações", + "realname": "Nome de exibição", + "identifier": "Identificador", + "server": "Servidor", + "channels": "Canais em comum", + "signon": "Online desde", + "idle": "Inativo há", + "connection": "Conexão", + "secureTls": "Segura (TLS)", + "umodes": "Modos de usuário", + "certfp": "Impressão do certificado", + "verified": "Conta verificada", + "groups": "Grupos", + "score": "Pontuação", + "info": "Info", + "statStatus": "Status", + "statCommon": "Canais em comum", + "statSecure": "Seguro", + "loading": "carregando perfil…", + "visitor": "visitante", + "registeredTitle": "Registrado: {{account}}", + "badgeOp": "Operador", + "badgeRegistered": "Registrado", + "badgeGuest": "Convidado", + "friend": "Amigo", + "friendAdd": "Adicionar amigo", + "ignore": "Ignorar", + "unignore": "Não ignorar mais", + "report": "Denunciar", + "moderation": "Moderação", + "kick": "Expulsar", + "ban": "Banir", + "opAdd": "Op", + "opRemove": "Remover op", + "voice": "Voz", + "dm": "Mensagem direta", + "online": "online", + "away": "ausente", + "offline": "offline" + }, + "security": { + "tag": "Segurança", + "leakGuard": "Interceptamos seu comando de identificação: enviado assim aqui, sua senha teria ficado visível para todos em {{channel}}. Não se preocupe — encaminhamos para {{service}} em privado, nada vazou. Da próxima vez, faça login em Configurações › Conta." + } +} \ No newline at end of file diff --git a/src/i18n/locales/pt-PT.json b/src/i18n/locales/pt-PT.json index 4946e4a..1baf59e 100644 --- a/src/i18n/locales/pt-PT.json +++ b/src/i18n/locales/pt-PT.json @@ -1,11 +1,221 @@ { - "nav": { "home": "Início", "settings": "Definições", "profile": "O meu perfil", "friends": "Amigos", "explore": "Explorar canais", "newDM": "Nova conversa", "away": "Ausente", "quit": "Sair do chat" }, - "sidebar": { "all": "Todos", "channels": "Canais", "dms": "Diretas", "search": "Pesquisar", "noChannel": "Escolhe um canal para começar a conversar." }, - "topbar": { "search": "Pesquisar", "members": "Ver membros", "manage": "Gerir canal", "modes": "Modos do canal", "notifications": "Notificações", "closeSearch": "Fechar pesquisa", "membersCount": "Membros · {{n}}", "publicChannel": "Canal público · {{n}} membros", "commonChannels": "Canais em comum" }, - "connect": { "onlineBadge": "{{n}} pessoas online", "pseudoPlaceholder": "Escolhe a tua alcunha…", "enter": "Entrar", "joinHint": "Vais entrar em", "registered": "Já tens conta?", "hidePassword": "Ocultar palavra-passe", "passwordPlaceholder": "Palavra-passe (se a tua alcunha estiver registada)", "passwordLabel": "Palavra-passe", "noData": "Sem registo necessário", "encrypted": "Encriptado de ponta a ponta", "ircv3": "IRCv3", "helpButton": "Ajuda & FAQ", "forgotButton": "Esqueceste-te da palavra-passe?", "createButton": "Criar uma conta", "faqTitle": "Ajuda & FAQ", "error_error": "Não foi possível ligar. Tenta novamente.", "error_closed": "A ligação foi fechada.", "error_sasl": "Alcunha desconhecida ou palavra-passe incorreta." }, - "messages": { "reply": "Em resposta a", "react": "Reagir", "respond": "Responder", "delete": "Eliminar", "hideJoins": "Ocultar entradas/saídas", "unread": "Novas mensagens", "jumpUnread": "Novas mensagens", "loadHistory": "Carregar histórico", "copyLink": "Copiar ligação", "copyText": "Copiar texto", "info": "Info", "notice": "AVISO", "guest": "Convidado", "poweredBy": "Desenvolvido com Orbit" }, - "modals": { "closeButton": "Fechar", "join": { "title": "Explorar canais", "search": "Pesquisar ou criar #canal…", "loading": "A carregar canais…", "noResults": "Sem resultados" }, "dm": { "title": "Nova conversa", "search": "Adicionar uma alcunha…", "noResults": "Sem resultados" }, "friends": { "title": "Amigos", "noFriends": "Ainda sem amigos." }, "chanadmin": { "title": "Gerir canal", "topic": "Tópico do canal…", "bans": "Banimentos ({{n}})", "noBans": "Sem banimentos.", "ban": "Banir", "unban": "Remover banimento", "kick": "Expulsar", "maskPlaceholder": "*!*@máscara ou alcunha…", "channelSearch": "#canal ou alcunha", "setTopic": "Definir", "info": "Info", "modes": "Modos do canal", "subject": "Tópico" } }, - "settings": { "title": "Definições", "sections": { "account": "Conta", "appearance": "Aparência", "notifications": "Notificações", "privacy": "Privacidade", "advanced": "Avançado" }, "account": { "login": "Iniciar sessão", "register": "Criar conta", "logout": "Terminar sessão", "accountName": "Nome da conta", "password": "Palavra-passe", "currentPassword": "Palavra-passe atual", "newPassword": "Nova palavra-passe", "minPassword": "Mín. 6 caracteres", "changeNick": "Mudar alcunha", "nickHint": "Muda a alcunha mostrada nos canais.", "emailPlaceholder": "tu@exemplo.com", "totpCode": "ex. 123456", "verificationCode": "Código de verificação", "resend": "Reenviar código", "restart": "Recomeçar", "connecting": "A ligar…", "validating": "A validar…", "security": "Segurança", "status": "Estado", "loggedIn": "Ligado", "loggedInAs": "Ligado · {{nick}}", "identifiedAs": "Tens a sessão iniciada como {{nick}}", "unknownError": "Conta desconhecida ou palavra-passe incorreta.", "saslFailed": "Alcunha ou palavra-passe incorretas.", "antiBot": "Verificação anti-robô", "wrongPassword": "Palavra-passe incorreta.", "join": "Entrar", "channelHint": "Entra num canal (começa por #)", "channelPlaceholder": "ex. orbit, ajuda", "fromChannel": "Do canal" }, "appearance": { "theme": "Tema", "language": "Idioma", "timeFormat": "Formato da hora", "compact": "Mensagens compactas", "textSize": "Tamanho do texto" }, "notifications": { "browser": "Notificações do navegador", "push": "Notificações push" } }, - "profile": { "refresh": "Atualizar", "close": "Fechar", "away": "Ausente", "noInfo": "Sem informação pública disponível.", "noMembers": "Sem membros", "filterMembers": "Filtrar membros", "openDM": "Mensagem direta", "openProfile": "Perfil", "cancel": "Cancelar" }, - "language": { "label": "Idioma", "en": "English", "fr": "Français", "de": "Deutsch", "tr": "Türkçe", "ne": "नेपाली", "es": "Español", "ru": "Русский", "it": "Italiano", "pt-PT": "Português (Portugal)", "pt-BR": "Português (Brasil)" } -} + "nav": { + "home": "Início", + "settings": "Definições", + "profile": "O meu perfil", + "friends": "Amigos", + "explore": "Explorar canais", + "newDM": "Nova conversa", + "away": "Ausente", + "quit": "Sair do chat" + }, + "sidebar": { + "all": "Todos", + "channels": "Canais", + "dms": "Diretas", + "search": "Pesquisar", + "noChannel": "Escolhe um canal para começar a conversar." + }, + "topbar": { + "search": "Pesquisar", + "members": "Ver membros", + "manage": "Gerir canal", + "modes": "Modos do canal", + "notifications": "Notificações", + "closeSearch": "Fechar pesquisa", + "membersCount": "Membros · {{n}}", + "publicChannel": "Canal público · {{n}} membros", + "commonChannels": "Canais em comum" + }, + "connect": { + "onlineBadge": "{{n}} pessoas online", + "pseudoPlaceholder": "Escolhe a tua alcunha…", + "enter": "Entrar", + "joinHint": "Vais entrar em", + "registered": "Já tens conta?", + "hidePassword": "Ocultar palavra-passe", + "passwordPlaceholder": "Palavra-passe (se a tua alcunha estiver registada)", + "passwordLabel": "Palavra-passe", + "noData": "Sem registo necessário", + "encrypted": "Encriptado de ponta a ponta", + "ircv3": "IRCv3", + "helpButton": "Ajuda & FAQ", + "forgotButton": "Esqueceste-te da palavra-passe?", + "createButton": "Criar uma conta", + "faqTitle": "Ajuda & FAQ", + "error_error": "Não foi possível ligar. Tenta novamente.", + "error_closed": "A ligação foi fechada.", + "error_sasl": "Alcunha desconhecida ou palavra-passe incorreta." + }, + "messages": { + "reply": "Em resposta a", + "react": "Reagir", + "respond": "Responder", + "delete": "Eliminar", + "hideJoins": "Ocultar entradas/saídas", + "unread": "Novas mensagens", + "jumpUnread": "Novas mensagens", + "loadHistory": "Carregar histórico", + "copyLink": "Copiar ligação", + "copyText": "Copiar texto", + "info": "Info", + "notice": "AVISO", + "guest": "Convidado", + "poweredBy": "Desenvolvido com Orbit" + }, + "modals": { + "closeButton": "Fechar", + "join": { + "title": "Explorar canais", + "search": "Pesquisar ou criar #canal…", + "loading": "A carregar canais…", + "noResults": "Sem resultados" + }, + "dm": { + "title": "Nova conversa", + "search": "Adicionar uma alcunha…", + "noResults": "Sem resultados" + }, + "friends": { + "title": "Amigos", + "noFriends": "Ainda sem amigos." + }, + "chanadmin": { + "title": "Gerir canal", + "topic": "Tópico do canal…", + "bans": "Banimentos ({{n}})", + "noBans": "Sem banimentos.", + "ban": "Banir", + "unban": "Remover banimento", + "kick": "Expulsar", + "maskPlaceholder": "*!*@máscara ou alcunha…", + "channelSearch": "#canal ou alcunha", + "setTopic": "Definir", + "info": "Info", + "modes": "Modos do canal", + "subject": "Tópico" + } + }, + "settings": { + "title": "Definições", + "sections": { + "account": "Conta", + "appearance": "Aparência", + "notifications": "Notificações", + "privacy": "Privacidade", + "advanced": "Avançado" + }, + "account": { + "login": "Iniciar sessão", + "register": "Criar conta", + "logout": "Terminar sessão", + "accountName": "Nome da conta", + "password": "Palavra-passe", + "currentPassword": "Palavra-passe atual", + "newPassword": "Nova palavra-passe", + "minPassword": "Mín. 6 caracteres", + "changeNick": "Mudar alcunha", + "nickHint": "Muda a alcunha mostrada nos canais.", + "emailPlaceholder": "tu@exemplo.com", + "totpCode": "ex. 123456", + "verificationCode": "Código de verificação", + "resend": "Reenviar código", + "restart": "Recomeçar", + "connecting": "A ligar…", + "validating": "A validar…", + "security": "Segurança", + "status": "Estado", + "loggedIn": "Ligado", + "loggedInAs": "Ligado · {{nick}}", + "identifiedAs": "Tens a sessão iniciada como {{nick}}", + "unknownError": "Conta desconhecida ou palavra-passe incorreta.", + "saslFailed": "Alcunha ou palavra-passe incorretas.", + "antiBot": "Verificação anti-robô", + "wrongPassword": "Palavra-passe incorreta.", + "join": "Entrar", + "channelHint": "Entra num canal (começa por #)", + "channelPlaceholder": "ex. orbit, ajuda", + "fromChannel": "Do canal" + }, + "appearance": { + "theme": "Tema", + "language": "Idioma", + "timeFormat": "Formato da hora", + "compact": "Mensagens compactas", + "textSize": "Tamanho do texto" + }, + "notifications": { + "browser": "Notificações do navegador", + "push": "Notificações push" + } + }, + "profile": { + "refresh": "Atualizar", + "close": "Fechar", + "away": "Ausente", + "noInfo": "Sem informação pública disponível.", + "noMembers": "Sem membros", + "filterMembers": "Filtrar membros", + "openDM": "Mensagem direta", + "openProfile": "Perfil", + "cancel": "Cancelar" + }, + "language": { + "label": "Idioma", + "en": "English", + "fr": "Français", + "de": "Deutsch", + "tr": "Türkçe", + "ne": "नेपाली", + "es": "Español", + "ru": "Русский", + "it": "Italiano", + "pt-PT": "Português (Portugal)", + "pt-BR": "Português (Brasil)" + }, + "whois": { + "section": "Informações", + "realname": "Nome a mostrar", + "identifier": "Identificador", + "server": "Servidor", + "channels": "Canais em comum", + "signon": "Online desde", + "idle": "Inativo há", + "connection": "Ligação", + "secureTls": "Segura (TLS)", + "umodes": "Modos de utilizador", + "certfp": "Impressão do certificado", + "verified": "Conta verificada", + "groups": "Grupos", + "score": "Pontuação", + "info": "Info", + "statStatus": "Estado", + "statCommon": "Canais em comum", + "statSecure": "Seguro", + "loading": "a carregar perfil…", + "visitor": "visitante", + "registeredTitle": "Registado: {{account}}", + "badgeOp": "Operador", + "badgeRegistered": "Registado", + "badgeGuest": "Convidado", + "friend": "Amigo", + "friendAdd": "Adicionar amigo", + "ignore": "Ignorar", + "unignore": "Deixar de ignorar", + "report": "Denunciar", + "moderation": "Moderação", + "kick": "Expulsar", + "ban": "Banir", + "opAdd": "Op", + "opRemove": "Remover op", + "voice": "Voz", + "dm": "Mensagem direta", + "online": "online", + "away": "ausente", + "offline": "offline" + }, + "security": { + "tag": "Segurança", + "leakGuard": "Intercetámos o teu comando de identificação: enviado tal como está, a tua palavra-passe teria ficado visível para todos em {{channel}}. Não te preocupes — encaminhámo-lo para {{service}} em privado, nada foi divulgado. Da próxima vez, inicia sessão em Definições › Conta." + } +} \ No newline at end of file diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json index 0a2c70e..a71507e 100644 --- a/src/i18n/locales/ru.json +++ b/src/i18n/locales/ru.json @@ -1,11 +1,221 @@ { - "nav": { "home": "Главная", "settings": "Настройки", "profile": "Мой профиль", "friends": "Друзья", "explore": "Обзор каналов", "newDM": "Новый разговор", "away": "Отошёл", "quit": "Выйти из чата" }, - "sidebar": { "all": "Все", "channels": "Каналы", "dms": "Личные", "search": "Поиск", "noChannel": "Выберите канал, чтобы начать общение." }, - "topbar": { "search": "Поиск", "members": "Показать участников", "manage": "Управление каналом", "modes": "Режимы канала", "notifications": "Уведомления", "closeSearch": "Закрыть поиск", "membersCount": "Участники · {{n}}", "publicChannel": "Открытый канал · {{n}} участников", "commonChannels": "Общие каналы" }, - "connect": { "onlineBadge": "{{n}} человек онлайн", "pseudoPlaceholder": "Выберите псевдоним…", "enter": "Войти", "joinHint": "Вы заходите в", "registered": "Уже есть аккаунт?", "hidePassword": "Скрыть пароль", "passwordPlaceholder": "Пароль (если псевдоним зарегистрирован)", "passwordLabel": "Пароль", "noData": "Регистрация не нужна", "encrypted": "Сквозное шифрование", "ircv3": "IRCv3", "helpButton": "Помощь и FAQ", "forgotButton": "Забыли пароль?", "createButton": "Создать аккаунт", "faqTitle": "Помощь и FAQ", "error_error": "Не удаётся подключиться. Попробуйте ещё раз.", "error_closed": "Соединение закрыто.", "error_sasl": "Неизвестный псевдоним или неверный пароль." }, - "messages": { "reply": "В ответ на", "react": "Реакция", "respond": "Ответить", "delete": "Удалить", "hideJoins": "Скрыть входы/выходы", "unread": "Новые сообщения", "jumpUnread": "Новые сообщения", "loadHistory": "Загрузить историю", "copyLink": "Копировать ссылку", "copyText": "Копировать текст", "info": "Инфо", "notice": "УВЕДОМЛЕНИЕ", "guest": "Гость", "poweredBy": "Работает на Orbit" }, - "modals": { "closeButton": "Закрыть", "join": { "title": "Обзор каналов", "search": "Найти или создать #канал…", "loading": "Загрузка каналов…", "noResults": "Нет результатов" }, "dm": { "title": "Новый разговор", "search": "Добавить псевдоним…", "noResults": "Нет результатов" }, "friends": { "title": "Друзья", "noFriends": "Пока нет друзей." }, "chanadmin": { "title": "Управление каналом", "topic": "Тема канала…", "bans": "Баны ({{n}})", "noBans": "Нет банов.", "ban": "Забанить", "unban": "Снять бан", "kick": "Кикнуть", "maskPlaceholder": "*!*@маска или псевдоним…", "channelSearch": "#канал или псевдоним", "setTopic": "Задать", "info": "Инфо", "modes": "Режимы канала", "subject": "Тема" } }, - "settings": { "title": "Настройки", "sections": { "account": "Аккаунт", "appearance": "Оформление", "notifications": "Уведомления", "privacy": "Конфиденциальность", "advanced": "Дополнительно" }, "account": { "login": "Войти", "register": "Создать аккаунт", "logout": "Выйти из аккаунта", "accountName": "Имя аккаунта", "password": "Пароль", "currentPassword": "Текущий пароль", "newPassword": "Новый пароль", "minPassword": "Минимум 6 символов", "changeNick": "Сменить псевдоним", "nickHint": "Меняет псевдоним, показываемый в каналах.", "emailPlaceholder": "vy@primer.com", "totpCode": "напр. 123456", "verificationCode": "Код подтверждения", "resend": "Отправить код снова", "restart": "Начать заново", "connecting": "Подключение…", "validating": "Проверка…", "security": "Безопасность", "status": "Статус", "loggedIn": "Подключено", "loggedInAs": "Подключено · {{nick}}", "identifiedAs": "Вы вошли как {{nick}}", "unknownError": "Неизвестный аккаунт или неверный пароль.", "saslFailed": "Неверный псевдоним или пароль.", "antiBot": "Проверка на бота", "wrongPassword": "Неверный пароль.", "join": "Присоединиться", "channelHint": "Зайти в канал (начинается с #)", "channelPlaceholder": "напр. orbit, помощь", "fromChannel": "Из канала" }, "appearance": { "theme": "Тема", "language": "Язык", "timeFormat": "Формат времени", "compact": "Компактные сообщения", "textSize": "Размер текста" }, "notifications": { "browser": "Уведомления браузера", "push": "Push-уведомления" } }, - "profile": { "refresh": "Обновить", "close": "Закрыть", "away": "Отошёл", "noInfo": "Публичная информация недоступна.", "noMembers": "Нет участников", "filterMembers": "Фильтр участников", "openDM": "Личное сообщение", "openProfile": "Профиль", "cancel": "Отмена" }, - "language": { "label": "Язык", "en": "English", "fr": "Français", "de": "Deutsch", "tr": "Türkçe", "ne": "नेपाली", "es": "Español", "ru": "Русский", "it": "Italiano", "pt-PT": "Português (Portugal)", "pt-BR": "Português (Brasil)" } -} + "nav": { + "home": "Главная", + "settings": "Настройки", + "profile": "Мой профиль", + "friends": "Друзья", + "explore": "Обзор каналов", + "newDM": "Новый разговор", + "away": "Отошёл", + "quit": "Выйти из чата" + }, + "sidebar": { + "all": "Все", + "channels": "Каналы", + "dms": "Личные", + "search": "Поиск", + "noChannel": "Выберите канал, чтобы начать общение." + }, + "topbar": { + "search": "Поиск", + "members": "Показать участников", + "manage": "Управление каналом", + "modes": "Режимы канала", + "notifications": "Уведомления", + "closeSearch": "Закрыть поиск", + "membersCount": "Участники · {{n}}", + "publicChannel": "Открытый канал · {{n}} участников", + "commonChannels": "Общие каналы" + }, + "connect": { + "onlineBadge": "{{n}} человек онлайн", + "pseudoPlaceholder": "Выберите псевдоним…", + "enter": "Войти", + "joinHint": "Вы заходите в", + "registered": "Уже есть аккаунт?", + "hidePassword": "Скрыть пароль", + "passwordPlaceholder": "Пароль (если псевдоним зарегистрирован)", + "passwordLabel": "Пароль", + "noData": "Регистрация не нужна", + "encrypted": "Сквозное шифрование", + "ircv3": "IRCv3", + "helpButton": "Помощь и FAQ", + "forgotButton": "Забыли пароль?", + "createButton": "Создать аккаунт", + "faqTitle": "Помощь и FAQ", + "error_error": "Не удаётся подключиться. Попробуйте ещё раз.", + "error_closed": "Соединение закрыто.", + "error_sasl": "Неизвестный псевдоним или неверный пароль." + }, + "messages": { + "reply": "В ответ на", + "react": "Реакция", + "respond": "Ответить", + "delete": "Удалить", + "hideJoins": "Скрыть входы/выходы", + "unread": "Новые сообщения", + "jumpUnread": "Новые сообщения", + "loadHistory": "Загрузить историю", + "copyLink": "Копировать ссылку", + "copyText": "Копировать текст", + "info": "Инфо", + "notice": "УВЕДОМЛЕНИЕ", + "guest": "Гость", + "poweredBy": "Работает на Orbit" + }, + "modals": { + "closeButton": "Закрыть", + "join": { + "title": "Обзор каналов", + "search": "Найти или создать #канал…", + "loading": "Загрузка каналов…", + "noResults": "Нет результатов" + }, + "dm": { + "title": "Новый разговор", + "search": "Добавить псевдоним…", + "noResults": "Нет результатов" + }, + "friends": { + "title": "Друзья", + "noFriends": "Пока нет друзей." + }, + "chanadmin": { + "title": "Управление каналом", + "topic": "Тема канала…", + "bans": "Баны ({{n}})", + "noBans": "Нет банов.", + "ban": "Забанить", + "unban": "Снять бан", + "kick": "Кикнуть", + "maskPlaceholder": "*!*@маска или псевдоним…", + "channelSearch": "#канал или псевдоним", + "setTopic": "Задать", + "info": "Инфо", + "modes": "Режимы канала", + "subject": "Тема" + } + }, + "settings": { + "title": "Настройки", + "sections": { + "account": "Аккаунт", + "appearance": "Оформление", + "notifications": "Уведомления", + "privacy": "Конфиденциальность", + "advanced": "Дополнительно" + }, + "account": { + "login": "Войти", + "register": "Создать аккаунт", + "logout": "Выйти из аккаунта", + "accountName": "Имя аккаунта", + "password": "Пароль", + "currentPassword": "Текущий пароль", + "newPassword": "Новый пароль", + "minPassword": "Минимум 6 символов", + "changeNick": "Сменить псевдоним", + "nickHint": "Меняет псевдоним, показываемый в каналах.", + "emailPlaceholder": "vy@primer.com", + "totpCode": "напр. 123456", + "verificationCode": "Код подтверждения", + "resend": "Отправить код снова", + "restart": "Начать заново", + "connecting": "Подключение…", + "validating": "Проверка…", + "security": "Безопасность", + "status": "Статус", + "loggedIn": "Подключено", + "loggedInAs": "Подключено · {{nick}}", + "identifiedAs": "Вы вошли как {{nick}}", + "unknownError": "Неизвестный аккаунт или неверный пароль.", + "saslFailed": "Неверный псевдоним или пароль.", + "antiBot": "Проверка на бота", + "wrongPassword": "Неверный пароль.", + "join": "Присоединиться", + "channelHint": "Зайти в канал (начинается с #)", + "channelPlaceholder": "напр. orbit, помощь", + "fromChannel": "Из канала" + }, + "appearance": { + "theme": "Тема", + "language": "Язык", + "timeFormat": "Формат времени", + "compact": "Компактные сообщения", + "textSize": "Размер текста" + }, + "notifications": { + "browser": "Уведомления браузера", + "push": "Push-уведомления" + } + }, + "profile": { + "refresh": "Обновить", + "close": "Закрыть", + "away": "Отошёл", + "noInfo": "Публичная информация недоступна.", + "noMembers": "Нет участников", + "filterMembers": "Фильтр участников", + "openDM": "Личное сообщение", + "openProfile": "Профиль", + "cancel": "Отмена" + }, + "language": { + "label": "Язык", + "en": "English", + "fr": "Français", + "de": "Deutsch", + "tr": "Türkçe", + "ne": "नेपाली", + "es": "Español", + "ru": "Русский", + "it": "Italiano", + "pt-PT": "Português (Portugal)", + "pt-BR": "Português (Brasil)" + }, + "whois": { + "section": "Информация", + "realname": "Отображаемое имя", + "identifier": "Идентификатор", + "server": "Сервер", + "channels": "Общие каналы", + "signon": "В сети с", + "idle": "Неактивен", + "connection": "Соединение", + "secureTls": "Защищённое (TLS)", + "umodes": "Режимы пользователя", + "certfp": "Отпечаток сертификата", + "verified": "Подтверждённый аккаунт", + "groups": "Группы", + "score": "Рейтинг", + "info": "Инфо", + "statStatus": "Статус", + "statCommon": "Общие каналы", + "statSecure": "Защищено", + "loading": "загрузка профиля…", + "visitor": "гость", + "registeredTitle": "Зарегистрирован: {{account}}", + "badgeOp": "Оператор", + "badgeRegistered": "Зарегистрирован", + "badgeGuest": "Гость", + "friend": "Друг", + "friendAdd": "Добавить в друзья", + "ignore": "Игнорировать", + "unignore": "Не игнорировать", + "report": "Пожаловаться", + "moderation": "Модерация", + "kick": "Кикнуть", + "ban": "Забанить", + "opAdd": "Оп", + "opRemove": "Снять оп", + "voice": "Голос", + "dm": "Личное сообщение", + "online": "в сети", + "away": "отошёл", + "offline": "не в сети" + }, + "security": { + "tag": "Безопасность", + "leakGuard": "Мы перехватили вашу команду идентификации: отправленный как есть, ваш пароль был бы виден всем в {{channel}}. Не волнуйтесь — мы передали её {{service}} приватно, ничего не утекло. В следующий раз входите через Настройки › Аккаунт." + } +} \ No newline at end of file diff --git a/src/i18n/locales/tr.json b/src/i18n/locales/tr.json index dfe7fe9..8e8a8c7 100644 --- a/src/i18n/locales/tr.json +++ b/src/i18n/locales/tr.json @@ -1,11 +1,221 @@ { - "nav": { "home": "Ana sayfa", "settings": "Ayarlar", "profile": "Profilim", "friends": "Arkadaşlar", "explore": "Kanalları keşfet", "newDM": "Yeni sohbet", "away": "Uzakta", "quit": "Sohbetten çık" }, - "sidebar": { "all": "Tümü", "channels": "Kanallar", "dms": "Direkt", "search": "Ara", "noChannel": "Sohbet başlatmak için bir kanal seçin." }, - "topbar": { "search": "Ara", "members": "Üyeleri görüntüle", "manage": "Kanalı yönet", "modes": "Kanal modları", "notifications": "Bildirimler", "closeSearch": "Aramayı kapat", "membersCount": "Üyeler · {{n}}", "publicChannel": "Herkese açık kanal · {{n}} üye", "commonChannels": "Ortak kanallar" }, - "connect": { "onlineBadge": "{{n}} kişi çevrimiçi", "pseudoPlaceholder": "Takma adını seç…", "enter": "Gir", "joinHint": "Katılıyorsunuz:", "registered": "Zaten hesabınız var mı?", "hidePassword": "Şifreyi gizle", "passwordPlaceholder": "Şifre (takma adınız kayıtlıysa)", "passwordLabel": "Şifre", "noData": "Kayıt gerekmez", "encrypted": "Uçtan uca şifreli", "ircv3": "IRCv3", "helpButton": "Yardım & SSS", "forgotButton": "Şifremi unuttum?", "createButton": "Hesap oluştur", "faqTitle": "Yardım & SSS", "error_error": "Bağlanılamıyor. Lütfen tekrar deneyin.", "error_closed": "Bağlantı kesildi.", "error_sasl": "Bilinmeyen takma ad veya yanlış şifre." }, - "messages": { "reply": "Yanıt:", "react": "Tepki ver", "respond": "Yanıtla", "delete": "Sil", "hideJoins": "Katılımları/ayrılmaları gizle", "unread": "Yeni mesajlar", "jumpUnread": "Yeni mesajlar", "loadHistory": "Geçmişi yükle", "copyLink": "Bağlantıyı kopyala", "copyText": "Metni kopyala", "info": "Bilgi", "notice": "DUYURU", "guest": "Misafir", "poweredBy": "Orbit ile desteklenmektedir" }, - "modals": { "closeButton": "Kapat", "join": { "title": "Kanalları keşfet", "search": "Kanal ara veya oluştur…", "loading": "Kanallar yükleniyor…", "noResults": "Sonuç yok" }, "dm": { "title": "Yeni sohbet", "search": "Takma ad ekle…", "noResults": "Sonuç yok" }, "friends": { "title": "Arkadaşlar", "noFriends": "Henüz arkadaş yok." }, "chanadmin": { "title": "Kanalı yönet", "topic": "Kanal konusu…", "bans": "Yasaklar ({{n}})", "noBans": "Yasak yok.", "ban": "Yasakla", "unban": "Yasağı kaldır", "kick": "At", "maskPlaceholder": "*!*@maske veya takma ad…", "channelSearch": "#kanal veya takma ad", "setTopic": "Ayarla", "info": "Bilgi", "modes": "Kanal modları", "subject": "Konu" } }, - "settings": { "title": "Ayarlar", "sections": { "account": "Hesap", "appearance": "Görünüm", "notifications": "Bildirimler", "privacy": "Gizlilik", "advanced": "Gelişmiş" }, "account": { "login": "Giriş yap", "register": "Hesap oluştur", "logout": "Çıkış yap", "accountName": "Hesap adı", "password": "Şifre", "currentPassword": "Mevcut şifre", "newPassword": "Yeni şifre", "minPassword": "En az 6 karakter", "changeNick": "Takma adı değiştir", "nickHint": "Kanallarda görünen takma adı değiştirir.", "emailPlaceholder": "sen@ornek.com", "totpCode": "örn. 123456", "verificationCode": "Doğrulama kodu", "resend": "Kodu yeniden gönder", "restart": "Yeniden başla", "connecting": "Bağlanıyor…", "validating": "Doğrulanıyor…", "security": "Güvenlik", "status": "Durum", "loggedIn": "Bağlı", "loggedInAs": "Bağlı · {{nick}}", "identifiedAs": "{{nick}} olarak giriş yaptınız", "unknownError": "Bilinmeyen hesap veya yanlış şifre.", "saslFailed": "Yanlış takma ad veya şifre.", "antiBot": "Bot karşıtı doğrulama", "wrongPassword": "Yanlış şifre.", "join": "Katıl", "channelHint": "Bir kanala katıl (# ile başlar)", "channelPlaceholder": "örn. orbit, yardım", "fromChannel": "Kanaldan" }, "appearance": { "theme": "Tema", "language": "Dil", "timeFormat": "Saat biçimi", "compact": "Kompakt mesajlar", "textSize": "Metin boyutu" }, "notifications": { "browser": "Tarayıcı bildirimleri", "push": "Anlık bildirimler" } }, - "profile": { "refresh": "Yenile", "close": "Kapat", "away": "Uzakta", "noInfo": "Kamuya açık bilgi yok.", "noMembers": "Üye yok", "filterMembers": "Üyeleri filtrele", "openDM": "Doğrudan mesaj", "openProfile": "Profil", "cancel": "İptal" }, - "language": { "label": "Dil", "en": "English", "fr": "Français", "de": "Deutsch", "tr": "Türkçe", "ne": "नेपाली", "es": "Español", "ru": "Русский", "it": "Italiano", "pt-PT": "Português (Portugal)", "pt-BR": "Português (Brasil)" } -} + "nav": { + "home": "Ana sayfa", + "settings": "Ayarlar", + "profile": "Profilim", + "friends": "Arkadaşlar", + "explore": "Kanalları keşfet", + "newDM": "Yeni sohbet", + "away": "Uzakta", + "quit": "Sohbetten çık" + }, + "sidebar": { + "all": "Tümü", + "channels": "Kanallar", + "dms": "Direkt", + "search": "Ara", + "noChannel": "Sohbet başlatmak için bir kanal seçin." + }, + "topbar": { + "search": "Ara", + "members": "Üyeleri görüntüle", + "manage": "Kanalı yönet", + "modes": "Kanal modları", + "notifications": "Bildirimler", + "closeSearch": "Aramayı kapat", + "membersCount": "Üyeler · {{n}}", + "publicChannel": "Herkese açık kanal · {{n}} üye", + "commonChannels": "Ortak kanallar" + }, + "connect": { + "onlineBadge": "{{n}} kişi çevrimiçi", + "pseudoPlaceholder": "Takma adını seç…", + "enter": "Gir", + "joinHint": "Katılıyorsunuz:", + "registered": "Zaten hesabınız var mı?", + "hidePassword": "Şifreyi gizle", + "passwordPlaceholder": "Şifre (takma adınız kayıtlıysa)", + "passwordLabel": "Şifre", + "noData": "Kayıt gerekmez", + "encrypted": "Uçtan uca şifreli", + "ircv3": "IRCv3", + "helpButton": "Yardım & SSS", + "forgotButton": "Şifremi unuttum?", + "createButton": "Hesap oluştur", + "faqTitle": "Yardım & SSS", + "error_error": "Bağlanılamıyor. Lütfen tekrar deneyin.", + "error_closed": "Bağlantı kesildi.", + "error_sasl": "Bilinmeyen takma ad veya yanlış şifre." + }, + "messages": { + "reply": "Yanıt:", + "react": "Tepki ver", + "respond": "Yanıtla", + "delete": "Sil", + "hideJoins": "Katılımları/ayrılmaları gizle", + "unread": "Yeni mesajlar", + "jumpUnread": "Yeni mesajlar", + "loadHistory": "Geçmişi yükle", + "copyLink": "Bağlantıyı kopyala", + "copyText": "Metni kopyala", + "info": "Bilgi", + "notice": "DUYURU", + "guest": "Misafir", + "poweredBy": "Orbit ile desteklenmektedir" + }, + "modals": { + "closeButton": "Kapat", + "join": { + "title": "Kanalları keşfet", + "search": "Kanal ara veya oluştur…", + "loading": "Kanallar yükleniyor…", + "noResults": "Sonuç yok" + }, + "dm": { + "title": "Yeni sohbet", + "search": "Takma ad ekle…", + "noResults": "Sonuç yok" + }, + "friends": { + "title": "Arkadaşlar", + "noFriends": "Henüz arkadaş yok." + }, + "chanadmin": { + "title": "Kanalı yönet", + "topic": "Kanal konusu…", + "bans": "Yasaklar ({{n}})", + "noBans": "Yasak yok.", + "ban": "Yasakla", + "unban": "Yasağı kaldır", + "kick": "At", + "maskPlaceholder": "*!*@maske veya takma ad…", + "channelSearch": "#kanal veya takma ad", + "setTopic": "Ayarla", + "info": "Bilgi", + "modes": "Kanal modları", + "subject": "Konu" + } + }, + "settings": { + "title": "Ayarlar", + "sections": { + "account": "Hesap", + "appearance": "Görünüm", + "notifications": "Bildirimler", + "privacy": "Gizlilik", + "advanced": "Gelişmiş" + }, + "account": { + "login": "Giriş yap", + "register": "Hesap oluştur", + "logout": "Çıkış yap", + "accountName": "Hesap adı", + "password": "Şifre", + "currentPassword": "Mevcut şifre", + "newPassword": "Yeni şifre", + "minPassword": "En az 6 karakter", + "changeNick": "Takma adı değiştir", + "nickHint": "Kanallarda görünen takma adı değiştirir.", + "emailPlaceholder": "sen@ornek.com", + "totpCode": "örn. 123456", + "verificationCode": "Doğrulama kodu", + "resend": "Kodu yeniden gönder", + "restart": "Yeniden başla", + "connecting": "Bağlanıyor…", + "validating": "Doğrulanıyor…", + "security": "Güvenlik", + "status": "Durum", + "loggedIn": "Bağlı", + "loggedInAs": "Bağlı · {{nick}}", + "identifiedAs": "{{nick}} olarak giriş yaptınız", + "unknownError": "Bilinmeyen hesap veya yanlış şifre.", + "saslFailed": "Yanlış takma ad veya şifre.", + "antiBot": "Bot karşıtı doğrulama", + "wrongPassword": "Yanlış şifre.", + "join": "Katıl", + "channelHint": "Bir kanala katıl (# ile başlar)", + "channelPlaceholder": "örn. orbit, yardım", + "fromChannel": "Kanaldan" + }, + "appearance": { + "theme": "Tema", + "language": "Dil", + "timeFormat": "Saat biçimi", + "compact": "Kompakt mesajlar", + "textSize": "Metin boyutu" + }, + "notifications": { + "browser": "Tarayıcı bildirimleri", + "push": "Anlık bildirimler" + } + }, + "profile": { + "refresh": "Yenile", + "close": "Kapat", + "away": "Uzakta", + "noInfo": "Kamuya açık bilgi yok.", + "noMembers": "Üye yok", + "filterMembers": "Üyeleri filtrele", + "openDM": "Doğrudan mesaj", + "openProfile": "Profil", + "cancel": "İptal" + }, + "language": { + "label": "Dil", + "en": "English", + "fr": "Français", + "de": "Deutsch", + "tr": "Türkçe", + "ne": "नेपाली", + "es": "Español", + "ru": "Русский", + "it": "Italiano", + "pt-PT": "Português (Portugal)", + "pt-BR": "Português (Brasil)" + }, + "whois": { + "section": "Bilgi", + "realname": "Görünen ad", + "identifier": "Tanımlayıcı", + "server": "Sunucu", + "channels": "Ortak kanallar", + "signon": "Çevrimiçi olma", + "idle": "Hareketsiz", + "connection": "Bağlantı", + "secureTls": "Güvenli (TLS)", + "umodes": "Kullanıcı modları", + "certfp": "Sertifika parmak izi", + "verified": "Doğrulanmış hesap", + "groups": "Gruplar", + "score": "Puan", + "info": "Bilgi", + "statStatus": "Durum", + "statCommon": "Ortak kanallar", + "statSecure": "Güvenli", + "loading": "profil yükleniyor…", + "visitor": "ziyaretçi", + "registeredTitle": "Kayıtlı: {{account}}", + "badgeOp": "Operatör", + "badgeRegistered": "Kayıtlı", + "badgeGuest": "Misafir", + "friend": "Arkadaş", + "friendAdd": "Arkadaş ekle", + "ignore": "Yoksay", + "unignore": "Yoksaymayı bırak", + "report": "Bildir", + "moderation": "Moderasyon", + "kick": "At", + "ban": "Yasakla", + "opAdd": "Op", + "opRemove": "Op'u kaldır", + "voice": "Ses", + "dm": "Doğrudan mesaj", + "online": "çevrimiçi", + "away": "uzakta", + "offline": "çevrimdışı" + }, + "security": { + "tag": "Güvenlik", + "leakGuard": "Kimlik doğrulama komutunu yakaladık: buraya olduğu gibi gönderilseydi, şifren {{channel}} kanalındaki herkese görünür olurdu. Endişelenme — bunu {{service}} hizmetine gizlice ilettik, hiçbir şey sızmadı. Bir dahaki sefere Ayarlar › Hesap'tan giriş yap." + } +} \ No newline at end of file diff --git a/src/store.ts b/src/store.ts index dad6c84..f35279e 100644 --- a/src/store.ts +++ b/src/store.ts @@ -1,4 +1,5 @@ import { create } from 'zustand'; +import i18n from './i18n'; import { IrcClient } from './irc/client'; import { initNotify, desktopNotify, blip } from './services/notify'; import { getPrefs, savePrefs, applyPrefs, type Prefs } from './ui/prefs'; @@ -1435,7 +1436,7 @@ export const useChat = create((set, get) => { if (leak && !isService(active)) { client.privmsg(leak.service, leak.command); sysLine(active, - `On a intercepté ta commande d’identification : envoyée telle quelle ici, ton mot de passe aurait été visible par tout le monde dans ${active}. Pas d’inquiétude — on l’a transmise à ${leak.service} en privé, rien n’a été divulgué. La prochaine fois, connecte-toi depuis Réglages › Compte.`, + i18n.t('security.leakGuard', { channel: active, service: leak.service }), 'warning'); ensureBuffer(leak.service); if (!client.hasCap('echo-message')) {