import type { MessageSchema } from './es'; const ca: MessageSchema = { nav: { dashboard: 'Tauler', clients: 'Clients OAuth', tokens: 'Personal Access Tokens', authorizedApps: 'Apps autoritzades', security: 'Seguretat', users: 'Usuaris', analytics: 'Analítiques', auditLog: 'Audit log', apiDocs: 'API Docs', logout: 'Sortir', }, common: { loading: 'Carregant…', creating: 'Creant…', create: 'Crear', save: 'Desar', cancel: 'Cancel·lar', close: 'Tancar', edit: 'Editar', delete: 'Esborrar', none: '(cap)', unexpectedError: "Alguna cosa ha fallat. Torna-ho a provar d'aquí a una estona.", }, login: { title: 'Entrar', subtitle: "Servidor OAuth2 — tauler d'administració.", email: 'Email', password: 'Contrasenya', submit: 'Entrar', submitting: 'Entrant…', noAccount: 'No tens compte?', signUp: "Registra't", invalidCredentials: 'Credencials no vàlides.', twoFactorTitle: 'Verificació en dos passos', twoFactorSubtitle: "Introdueix el codi de la teva app autenticadora (o un codi de recuperació).", twoFactorCode: 'Codi', twoFactorSubmit: 'Verificar', invalidTwoFactorCode: 'Codi no vàlid.', backToLogin: 'Tornar a entrar', forgotPassword: 'Has oblidat la contrasenya?', }, forgotPassword: { title: 'Restablir contrasenya', subtitle: "Introdueix el teu email i t'enviarem un enllaç per triar una contrasenya nova.", email: 'Email', submit: 'Enviar enllaç', submitting: 'Enviant…', sent: "Si existeix un compte amb aquest email, t'hem enviat un enllaç per restablir la contrasenya. Revisa la teva bústia.", backToLogin: 'Tornar a entrar', }, resetPassword: { title: 'Tria una contrasenya nova', subtitle: 'Gairebé — confirma la contrasenya nova per al teu compte.', password: 'Contrasenya nova', passwordConfirm: 'Confirmar contrasenya', submit: 'Restablir contrasenya', submitting: 'Restablint…', success: "La teva contrasenya s'ha restablert. Ja pots entrar amb la nova — hem tancat les sessions actives per seguretat.", goToLogin: 'Anar a entrar', invalidLink: 'Aquest enllaç no és vàlid o ha caducat. Demana\'n un de nou.', missingParams: 'Falta informació a l\'enllaç. Demana\'n un de nou des de "Has oblidat la contrasenya?".', }, register: { title: 'Crear compte', name: 'Nom', email: 'Email', password: 'Contrasenya', passwordConfirm: 'Confirmar contrasenya', submit: 'Crear compte', submitFirstUser: 'Crear compte d\'administrador', submitting: 'Creant…', haveAccount: 'Ja tens compte?', signIn: 'Entra', firstUserBanner: 'Encara no hi ha cap usuari. Aquest compte quedarà com a administrador, amb accés immediat (sense aprovació).', pendingTitle: 'Compte creat', pendingBody: "Un administrador ha d'aprovar el teu compte abans que puguis entrar. És possible que t'avisin fora de l'app quan estigui llest.", backToLogin: 'Tornar a entrar', }, dashboard: { greeting: 'Hola, {name}', subtitle: "Aquest és el tauler d'administració del servidor OAuth2.", clientsTitle: 'Clients OAuth', clientsDesc: 'Registra apps (Authorization Code+PKCE, Client Credentials o Password Grant).', tokensTitle: 'Personal Access Tokens', tokensDesc: "Genera tokens d'accés directe a l'API, com API keys.", appsTitle: 'Apps autoritzades', appsDesc: 'Apps de tercers a les quals has donat accés al teu compte.', securityTitle: 'Seguretat', securityDesc: 'Activa la verificació en dos passos (2FA) per al teu compte.', usersTitle: 'Usuaris', usersDesc: 'Alta, edició de rol/estat i baixa de comptes (només admins).', analyticsTitle: 'Analítiques', analyticsDesc: 'Sessions actives, logins per app i usuaris més actius (només admins).', apiTitle: 'API REST', apiDesc: 'Aquest servidor exposa el recurs {resource} (scopes {read}/{write}) perquè aplicacions de tercers gestionin usuaris via OAuth2. Requereix un access token de Passport. Documentació interactiva a {link}.', }, clients: { title: 'Clients OAuth', subtitle: 'Apps registrades que poden demanar tokens a aquest servidor.', secretWarning: 'Desa aquest client secret ara, no el podràs tornar a veure:', clientIdLabel: 'client_id:', clientSecretLabel: 'client_secret:', newClient: 'Nou client', name: 'Nom', grantType: 'Grant type', grantAuthCode: 'Authorization Code + PKCE', grantClientCredentials: 'Client Credentials', grantPassword: 'Password Grant', redirectUris: 'Redirect URIs (separades per coma)', confidentialLabel: "Client confidencial (amb secret). Desmarca-ho per a un client públic que només faci servir PKCE.", create: 'Crear client', empty: 'Encara no has creat cap client.', revoke: 'Revocar', revokeConfirm: 'Vols revocar el client "{name}"? Els seus tokens deixaran de funcionar.', clientIdShort: 'client_id', redirectLabel: 'redirect', webhooksTitle: 'Webhooks', hideWebhooks: 'Amagar webhooks', webhooksDesc: "Notificacions sortints a la teva app quan passa alguna cosa rellevant — sense haver de fer polling.", webhookSecretWarning: 'Guarda aquest secret ara, no es podrà tornar a veure. Fes-lo servir per verificar la signatura HMAC-SHA256 a la capçalera X-Webhook-Signature.', webhookSecretLabel: 'secret:', webhookPaused: 'pausat', lastDelivery: 'últim enviament', pending: 'pendent', pause: 'Pausar', resume: 'Reprendre', viewHistory: 'Veure historial', hideHistory: 'Amagar historial', noDeliveries: 'Encara no hi ha hagut entregues per a aquest webhook.', attempts: 'intents: {count}', retryDelivery: 'Reintentar', retrying: 'Reintentant…', noWebhooks: 'Encara no has registrat cap webhook per a aquesta app.', webhookUrl: 'URL del webhook', addWebhook: 'Afegir webhook', webhookDeleteConfirm: 'Vols esborrar el webhook "{url}"?', eventTokenRevoked: 'Token revocat', eventUserDeactivated: 'Usuari desactivat', rotateSecret: 'Rotar secret', rotateSecretConfirm: 'Vols rotar el secret de "{name}"? El secret actual seguirà funcionant 48 hores més per no tallar integracions que encara no s\'han actualitzat.', rotateSecretFailed: 'No s\'ha pogut rotar el secret.', previousSecretStillValid: 'El secret anterior segueix sent vàlid fins al {date}.', }, tokens: { title: 'Personal Access Tokens', subtitle: "Tokens d'accés directe a l'API, sense passar pel flux d'authorize (tipus API key).", tokenWarning: 'Desa aquest token ara, no el podràs tornar a veure:', newToken: 'Nou token', name: 'Nom', namePlaceholder: 'El meu script', scopes: 'Scopes', create: 'Crear token', empty: 'Encara no has creat cap token.', revoke: 'Revocar', revokeConfirm: 'Vols revocar el token "{name}"?', scopesLabel: 'scopes', }, authorizedApps: { title: 'Apps autoritzades', subtitle: 'Aplicacions de tercers a les quals has donat accés al teu compte.', empty: 'Encara no has autoritzat cap app.', revoke: 'Revocar accés', revokeConfirm: "Vols revocar l'accés de \"{name}\"?", scopesLabel: 'scopes', }, authorize: { title: 'Autoritzar aplicació', wantsAccess: '{client} vol accedir al teu compte ({email}) amb els següents permisos:', noScopes: "No sol·licita permisos addicionals (accés bàsic).", approve: 'Autoritzar', cancel: 'Cancel·lar', notFoundTitle: 'Sol·licitud no trobada', notFoundBody: "Aquesta pantalla només funciona quan hi arribes redirigit per una aplicació client via {path}. Torna-ho a provar des d'aquella app.", goDashboard: 'Anar al tauler', }, adminUsers: { title: 'Usuaris', subtitle: 'Alta, edició de rol/estat i baixa de comptes.', newUser: 'Nou usuari', name: 'Nom', email: 'Email', password: 'Contrasenya', role: 'Rol', roleUser: 'Usuari', roleAdmin: 'Admin', create: 'Crear usuari', colName: 'Nom', colEmail: 'Email', colRole: 'Rol', colStatus: 'Estat', active: 'Actiu', inactive: 'Desactivat', noRole: '(sense rol)', edit: 'Editar', delete: 'Esborrar', deleteConfirm: 'Vols esborrar l\'usuari "{name}"? Anirà a la paperera i es pot restaurar.', deleteFailed: "No s'ha pogut esborrar l'usuari.", newPassword: 'Nova contrasenya', noChange: '(sense canvis)', save: 'Desar', cancel: 'Cancel·lar', appRolesTitle: 'Rols per app', appRolesDesc: 'El rol global de dalt mana en aquest panell. Aquí es defineix quin rol té {name} dins de cada app quan aquella app demana el seu usuari per API.', noAppRoles: 'Encara no hi ha rols assignats en cap app.', chooseApp: 'Tria una app…', assign: 'Assignar', assignFailed: "No s'ha pogut assignar el rol.", trashTitle: 'Paperera', viewTrash: 'Veure paperera', viewActive: 'Veure actius', trashEmpty: 'No hi ha usuaris esborrats.', deletedAt: 'Esborrat el {date}', restore: 'Restaurar', restoreFailed: "No s'ha pogut restaurar l'usuari.", forceDelete: 'Esborrar definitivament', forceDeleteConfirm: 'Vols esborrar definitivament "{name}"? Aquesta acció no es pot desfer.', forceDeleteFailed: "No s'ha pogut esborrar definitivament.", pendingTitle: 'Pendents', viewPending: 'Pendents', pendingEmpty: "No hi ha registres pendents d'aprovació.", registeredAt: 'Es va registrar el {date}', approve: 'Aprovar', approveFailed: "No s'ha pogut aprovar l'usuari.", reject: 'Rebutjar', rejectConfirm: 'Vols rebutjar el registre de "{name}"? Anirà a la paperera i es pot restaurar després.', rejectFailed: "No s'ha pogut rebutjar el registre.", sessionsTitle: 'Sessions actives', sessionsDesc: "Tokens OAuth vigents d'aquest usuari — apps amb accés al seu compte ara mateix.", noSessions: 'No hi ha sessions actives.', sessionUnknownClient: '(app esborrada)', revokeSession: 'Revocar', revokeSessionConfirm: 'Vols revocar la sessió de "{name}"? Aquesta app deixarà de tenir accés.', revokeAllSessions: 'Tancar totes', revokeAllSessionsConfirm: 'Vols tancar totes les sessions actives de "{name}"? Tots els seus tokens OAuth quedaran revocats.', }, analytics: { title: 'Analítiques', subtitle: "Sessions, logins per app i activitat d'usuaris.", last7: 'Últims 7 dies', last30: 'Últims 30 dies', last90: 'Últims 90 dies', exportPdf: 'Exportar PDF', totalUsers: 'Usuaris totals', activeSessions: 'Sessions actives', activeSessionsHint: 'tokens OAuth vigents', loginsToday: 'Logins avui', logins7d: 'Logins últims 7 dies', loginsByDay: 'Logins per dia', appsOAuth: 'Apps (OAuth)', panelAdmin: 'Tauler admin', loginsByApp: 'Logins per app', topUsers: 'Usuaris més actius', noAppLogins: 'Encara no hi ha logins d\'apps en aquest període.', noUserActivity: 'Encara no hi ha activitat en aquest període.', recentActivity: 'Activitat recent', hide: 'Amagar', viewAll: 'Veure-ho tot', colUser: 'Usuari', colApp: 'App', colType: 'Tipus', colIp: 'IP', colWhen: 'Quan', serviceNoUser: '(servei, sense usuari)', deletedApp: '(app esborrada)', recentCount: '{count} esdeveniments recents — clica "Veure-ho tot" per a la taula completa.', chartAriaLabel: 'Logins per dia, apilat per tipus', tooltipAppLabel: 'Apps (OAuth):', tooltipSessionLabel: 'Tauler admin:', barAriaLabel: "{date}: {oauth} logins d'apps, {session} al tauler admin", loginFailureRate: 'Taxa de fallades de login', loginFailureRateHint: '{count} fallits en els últims 7 dies', oauthApprovalRate: "Taxa d'aprovació OAuth", oauthApprovalRateHint: '{approved}/{attempted} en aquest període', funnelTitle: "Funnel d'autorització OAuth", funnelEmpty: "Encara no hi ha intents d'autorització en aquest període.", colClient: 'Client', colAttempted: 'Intents', colApproved: 'Aprovats', colDenied: 'Denegats', colApprovalRate: 'Aprovació', activeTokensByClient: 'Tokens actius per client', noActiveTokens: 'No hi ha tokens actius ara mateix.', scopeUsageTitle: "Ús d'scopes", noScopeUsage: "Encara no s'ha concedit cap scope en aquest període.", }, auditLog: { title: 'Audit log', subtitle: "Canvis de permisos, altes/baixes d'usuaris i clients OAuth.", allSubjects: 'Tots els subjectes', subjectUser: 'Usuaris', subjectClient: 'Clients OAuth', allActions: 'Totes les accions', empty: 'Encara no hi ha esdeveniments registrats.', colWhen: 'Quan', colActor: 'Qui', colAction: 'Acció', colSubject: 'Subjecte', colDetails: 'Detalls', colIp: 'IP', systemActor: '(sistema)', fieldChanged: '{field} canviat', prevPage: 'Anterior', nextPage: 'Següent', pageInfo: 'Pàgina {page} de {lastPage} — {total} esdeveniments', actions: { userCreated: 'Usuari creat', userUpdated: 'Usuari editat', userDeleted: 'Usuari esborrat', userRestored: 'Usuari restaurat', userForceDeleted: 'Usuari esborrat definitivament', userApproved: 'Usuari aprovat', appRoleAssigned: 'Rol per app assignat', appRoleRevoked: 'Rol per app revocat', clientCreated: 'Client OAuth creat', clientRevoked: 'Client OAuth revocat', twoFactorEnabled: '2FA activat', twoFactorDisabled: '2FA desactivat', twoFactorRecoveryRegenerated: 'Codis de recuperació regenerats', sessionRevoked: 'Sessió revocada', sessionsRevokedAll: 'Totes les sessions tancades', webhookCreated: 'Webhook creat', webhookDeleted: 'Webhook esborrat', secretRotated: 'Secret rotat', passwordReset: 'Contrasenya restablerta', }, }, security: { title: 'Seguretat', subtitle: 'Verificació en dos passos (2FA) per al teu compte.', enabled: '2FA activat', enabledDesc: "El teu compte demana un codi de la teva app autenticadora cada cop que inicies sessió.", disabled: '2FA desactivat', disabledDesc: 'Afegeix una capa extra de seguretat: un codi del teu telèfon a més de la contrasenya.', enable: 'Activar 2FA', disable: 'Desactivar', disableConfirm: 'Confirmar desactivació', regenerateCodes: 'Regenerar codis de recuperació', confirmPassword: 'Confirma la teva contrasenya', confirm: 'Confirmar', setupTitle: 'Escaneja el codi QR', setupDesc: 'Fes servir Google Authenticator, Authy o qualsevol app compatible amb TOTP.', manualEntry: 'No pots escanejar? Introdueix aquest codi a mà:', enterCode: 'Codi de 6 dígits', invalidCode: 'Codi no vàlid. Torna-ho a provar.', invalidPassword: 'Contrasenya incorrecta.', setupFailed: "No s'ha pogut iniciar l'activació del 2FA.", qrAlt: 'Codi QR per configurar el 2FA', recoveryCodesTitle: 'Guarda aquests codis de recuperació', recoveryCodesWarning: "Cadascun serveix una sola vegada. Fes-los servir si perds l'accés a la teva app autenticadora. No es tornaran a mostrar.", }, }; export default ca;