Add i18n support: per-locale catalogs, URL-driven locale, translated core and examples
CI / full-gate (push) Successful in 2m37s
CI / full-gate (push) Successful in 2m37s
This commit is contained in:
@@ -0,0 +1,161 @@
|
||||
// The admin plugin's own catalog — the baseline its other locales are written against. Its keys
|
||||
// are looked up before the host's, so this plugin owns its words without prefixing them.
|
||||
|
||||
const messages = {
|
||||
"admin.capability.hydra": "Hydra OAuth2 admin",
|
||||
"admin.capability.keto": "Keto and Kratos identity admin",
|
||||
"admin.capability.kratos": "Kratos identity admin",
|
||||
|
||||
"admin.clients.column.id": "Client ID",
|
||||
"admin.clients.column.name": "Name",
|
||||
"admin.clients.column.type": "Type",
|
||||
"admin.clients.confidential": "Confidential",
|
||||
"admin.clients.consent.firstParty": "First-party (auto-granted)",
|
||||
"admin.clients.consent.label": "Consent",
|
||||
"admin.clients.consent.screen": "Shows the consent screen",
|
||||
"admin.clients.created": "Client registered",
|
||||
"admin.clients.createdNotice": "Client registered.",
|
||||
"admin.clients.delete": "Delete client",
|
||||
"admin.clients.deleteMessage": "Delete client {{name}}? Apps using it can no longer sign in through Plainpages.",
|
||||
"admin.clients.error.rejected": "Hydra rejected the client — check the redirect URIs and scopes.",
|
||||
"admin.clients.field.name": "Name",
|
||||
"admin.clients.field.redirectUris": "Redirect URIs",
|
||||
"admin.clients.field.redirectUrisHint": "One per line — where the app is sent back after sign-in.",
|
||||
"admin.clients.field.scopes": "Scopes",
|
||||
"admin.clients.field.scopesHint": "Space-separated scopes the client may request.",
|
||||
"admin.clients.field.typeHint":
|
||||
"Browser and mobile apps can't keep a secret — choose Public. Server-side apps that can store one — leave it Confidential.",
|
||||
"admin.clients.filter": "Filter clients",
|
||||
"admin.clients.pagination": "Clients pagination",
|
||||
"admin.clients.public": "Public",
|
||||
"admin.clients.publicPkce": "Public (PKCE)",
|
||||
"admin.clients.register": "Register",
|
||||
"admin.clients.registerClient": "Register client",
|
||||
"admin.clients.registerTitle": "Register client",
|
||||
"admin.clients.rereg": "To change a client, delete and re-register — this issues a new client ID and secret. The secret is shown only once, at registration.",
|
||||
"admin.clients.searchLabel": "Search clients",
|
||||
"admin.clients.searchPlaceholder": "Search name or client ID…",
|
||||
"admin.clients.secret": "Client secret",
|
||||
"admin.clients.secretHint": "Copy these now — the secret can't be shown again. Store them where the app reads its credentials.",
|
||||
"admin.clients.title": "OAuth2 clients",
|
||||
"admin.clients.validation.name": "Enter a name for the client.",
|
||||
"admin.clients.validation.redirectUri": "\"{{uri}}\" is not a valid redirect URI — use an absolute URL like https://app.example.com/callback.",
|
||||
"admin.clients.validation.redirectUris": "Add at least one redirect URI.",
|
||||
|
||||
"admin.common.actions": "Actions",
|
||||
"admin.common.add": "Add",
|
||||
"admin.common.apply": "Apply",
|
||||
"admin.common.cancel": "Cancel",
|
||||
"admin.common.chooseMember": "Choose a user or group…",
|
||||
"admin.common.delete": "Delete",
|
||||
"admin.common.edit": "Edit",
|
||||
"admin.common.go": "Go",
|
||||
"admin.common.group": "Group",
|
||||
"admin.common.member": "Member",
|
||||
"admin.common.new": "New",
|
||||
"admin.common.remove": "Remove",
|
||||
"admin.common.rows": "Rows",
|
||||
"admin.common.search": "Search",
|
||||
"admin.common.type": "Type",
|
||||
"admin.common.user": "User",
|
||||
|
||||
"admin.groups.actions": "Group actions",
|
||||
"admin.groups.addMember": "Add a member",
|
||||
"admin.groups.allMembers": "All users and groups are already members.",
|
||||
"admin.groups.column.members": "Members",
|
||||
"admin.groups.column.name": "Group",
|
||||
"admin.groups.create": "Create group",
|
||||
"admin.groups.delete": "Delete group",
|
||||
"admin.groups.deleteMessage": "Delete group {{name}}? This removes the group and all its memberships.",
|
||||
"admin.groups.field.name": "Group name",
|
||||
"admin.groups.field.nameHint": "Lowercase letters, digits, dashes and underscores.",
|
||||
"admin.groups.filter": "Filter groups",
|
||||
"admin.groups.firstMember": "First member",
|
||||
"admin.groups.firstMemberHint": "A group exists once it has a member; add more after creating it.",
|
||||
"admin.groups.members": "Members",
|
||||
"admin.groups.membersOf": "Members of {{name}}",
|
||||
"admin.groups.new": "New group",
|
||||
"admin.groups.noMembers": "No members yet.",
|
||||
"admin.groups.pagination": "Groups pagination",
|
||||
"admin.groups.searchLabel": "Search groups",
|
||||
"admin.groups.searchPlaceholder": "Search group name…",
|
||||
"admin.groups.title": "Groups",
|
||||
"admin.groups.validation.member": "Pick a member to add as the group's first member.",
|
||||
"admin.groups.validation.name": "Group names use lowercase letters, digits, dashes and underscores.",
|
||||
|
||||
"admin.nav.clients": "OAuth2 clients",
|
||||
"admin.nav.groups": "Groups",
|
||||
"admin.nav.permissions": "Permissions",
|
||||
"admin.nav.section": "Admin",
|
||||
"admin.nav.users": "Users",
|
||||
|
||||
"admin.notFound.message": "That item doesn't exist.",
|
||||
"admin.notFound.title": "Not found",
|
||||
|
||||
"admin.permissions.assignTo": "Assign to",
|
||||
"admin.permissions.assignedTo": "Assigned to",
|
||||
"admin.permissions.column.members": "Members",
|
||||
"admin.permissions.column.name": "Permission",
|
||||
"admin.permissions.create": "Create permission",
|
||||
"admin.permissions.delete": "Delete permission",
|
||||
"admin.permissions.deleteMessage": "Delete permission {{name}}? This revokes it from everyone it's assigned to.",
|
||||
"admin.permissions.error.adminUndeletable": "The admin permission can't be deleted — it would remove all admin access.",
|
||||
"admin.permissions.error.selfRevoke": "You can't revoke your own admin access.",
|
||||
"admin.permissions.field.name": "Permission name",
|
||||
"admin.permissions.field.nameHint": "Lowercase letters, digits, dashes and underscores.",
|
||||
"admin.permissions.filter": "Filter permissions",
|
||||
"admin.permissions.new": "New permission",
|
||||
"admin.permissions.noMembers": "Not assigned to anyone yet.",
|
||||
"admin.permissions.pagination": "Permissions pagination",
|
||||
"admin.permissions.revoke": "Revoke",
|
||||
"admin.permissions.searchLabel": "Search permissions",
|
||||
"admin.permissions.searchPlaceholder": "Search permission name…",
|
||||
"admin.permissions.title": "Permissions",
|
||||
"admin.permissions.validation.member": "Pick a user or group to assign the permission to.",
|
||||
"admin.permissions.validation.name": "Permission names use lowercase letters, digits, dashes and underscores.",
|
||||
|
||||
"admin.unavailable.message": "{{what}} is not configured on this deployment.",
|
||||
"admin.unavailable.title": "Admin unavailable",
|
||||
|
||||
"admin.users.actions": "Account actions",
|
||||
"admin.users.column.email": "Email",
|
||||
"admin.users.column.name": "Name",
|
||||
"admin.users.column.status": "Status",
|
||||
"admin.users.confirm": "Confirm action",
|
||||
"admin.users.create": "Create user",
|
||||
"admin.users.deactivate": "Deactivate",
|
||||
"admin.users.delete": "Delete user",
|
||||
"admin.users.deleteMessage": "Delete {{email}}? This permanently removes the account and can't be undone.",
|
||||
"admin.users.edit": "Edit user",
|
||||
"admin.users.error.create": "Could not create the user — check the email and try again.",
|
||||
"admin.users.error.duplicate": "A user with that email already exists.",
|
||||
"admin.users.error.save": "Could not save changes — check the fields and try again.",
|
||||
"admin.users.error.selfDeactivate": "You can't deactivate your own account.",
|
||||
"admin.users.error.selfDelete": "You can't delete your own account.",
|
||||
"admin.users.field.email": "Email",
|
||||
"admin.users.field.emailHint": "The login identifier — can't be changed here.",
|
||||
"admin.users.field.first": "First name",
|
||||
"admin.users.field.last": "Last name",
|
||||
"admin.users.field.password": "Password",
|
||||
"admin.users.field.passwordHint": "Optional — leave blank to have the user set one via a recovery code.",
|
||||
"admin.users.filter": "Filter users",
|
||||
"admin.users.new": "New user",
|
||||
"admin.users.pagination": "Users pagination",
|
||||
"admin.users.reactivate": "Reactivate",
|
||||
"admin.users.recovery.body":
|
||||
"Give it to the user — they enter it on the <a href=\"/recovery\">password-reset screen</a> to set a new password (generate a fresh one if it has expired).",
|
||||
"admin.users.recovery.generate": "Generate recovery code",
|
||||
"admin.users.recovery.title": "Recovery code generated",
|
||||
"admin.users.save": "Save changes",
|
||||
"admin.users.searchLabel": "Search users",
|
||||
"admin.users.searchPlaceholder": "Search name or email…",
|
||||
"admin.users.status.active": "Active",
|
||||
"admin.users.status.all": "All",
|
||||
"admin.users.status.inactive": "Inactive",
|
||||
"admin.users.status.label": "Status",
|
||||
"admin.users.title": "Users",
|
||||
};
|
||||
|
||||
export type AdminMessages = typeof messages;
|
||||
|
||||
export default messages;
|
||||
@@ -0,0 +1,159 @@
|
||||
import type { AdminMessages } from "./en-US.ts";
|
||||
|
||||
const messages: AdminMessages = {
|
||||
"admin.capability.hydra": "Hydra OAuth2-administration",
|
||||
"admin.capability.keto": "Keto- och Kratos-identitetsadministration",
|
||||
"admin.capability.kratos": "Kratos identitetsadministration",
|
||||
|
||||
"admin.clients.column.id": "Klient-ID",
|
||||
"admin.clients.column.name": "Namn",
|
||||
"admin.clients.column.type": "Typ",
|
||||
"admin.clients.confidential": "Konfidentiell",
|
||||
"admin.clients.consent.firstParty": "Förstapart (godkänns automatiskt)",
|
||||
"admin.clients.consent.label": "Godkännande",
|
||||
"admin.clients.consent.screen": "Visar godkännandesidan",
|
||||
"admin.clients.created": "Klienten är registrerad",
|
||||
"admin.clients.createdNotice": "Klienten är registrerad.",
|
||||
"admin.clients.delete": "Ta bort klient",
|
||||
"admin.clients.deleteMessage": "Ta bort klienten {{name}}? Appar som använder den kan inte längre logga in via Plainpages.",
|
||||
"admin.clients.error.rejected": "Hydra nekade klienten — kontrollera omdirigerings-URI:erna och scopen.",
|
||||
"admin.clients.field.name": "Namn",
|
||||
"admin.clients.field.redirectUris": "Omdirigerings-URI:er",
|
||||
"admin.clients.field.redirectUrisHint": "En per rad — dit appen skickas tillbaka efter inloggning.",
|
||||
"admin.clients.field.scopes": "Scope",
|
||||
"admin.clients.field.scopesHint": "Mellanslagsseparerade scope som klienten får begära.",
|
||||
"admin.clients.field.typeHint":
|
||||
"Webbläsar- och mobilappar kan inte hålla en hemlighet — välj Publik. Serverappar som kan lagra en — låt stå som Konfidentiell.",
|
||||
"admin.clients.filter": "Filtrera klienter",
|
||||
"admin.clients.pagination": "Sidnavigering för klienter",
|
||||
"admin.clients.public": "Publik",
|
||||
"admin.clients.publicPkce": "Publik (PKCE)",
|
||||
"admin.clients.register": "Registrera",
|
||||
"admin.clients.registerClient": "Registrera klient",
|
||||
"admin.clients.registerTitle": "Registrera klient",
|
||||
"admin.clients.rereg":
|
||||
"För att ändra en klient: ta bort den och registrera på nytt — det ger ett nytt klient-ID och en ny hemlighet. Hemligheten visas bara en gång, vid registreringen.",
|
||||
"admin.clients.searchLabel": "Sök klienter",
|
||||
"admin.clients.searchPlaceholder": "Sök på namn eller klient-ID…",
|
||||
"admin.clients.secret": "Klienthemlighet",
|
||||
"admin.clients.secretHint": "Kopiera nu — hemligheten kan inte visas igen. Spara dem där appen läser sina uppgifter.",
|
||||
"admin.clients.title": "OAuth2-klienter",
|
||||
"admin.clients.validation.name": "Ange ett namn för klienten.",
|
||||
"admin.clients.validation.redirectUri": "\"{{uri}}\" är inte en giltig omdirigerings-URI — använd en absolut URL som https://app.example.com/callback.",
|
||||
"admin.clients.validation.redirectUris": "Lägg till minst en omdirigerings-URI.",
|
||||
|
||||
"admin.common.actions": "Åtgärder",
|
||||
"admin.common.add": "Lägg till",
|
||||
"admin.common.apply": "Använd",
|
||||
"admin.common.cancel": "Avbryt",
|
||||
"admin.common.chooseMember": "Välj en användare eller grupp…",
|
||||
"admin.common.delete": "Ta bort",
|
||||
"admin.common.edit": "Redigera",
|
||||
"admin.common.go": "Visa",
|
||||
"admin.common.group": "Grupp",
|
||||
"admin.common.member": "Medlem",
|
||||
"admin.common.new": "Ny",
|
||||
"admin.common.remove": "Ta bort",
|
||||
"admin.common.rows": "Rader",
|
||||
"admin.common.search": "Sök",
|
||||
"admin.common.type": "Typ",
|
||||
"admin.common.user": "Användare",
|
||||
|
||||
"admin.groups.actions": "Gruppåtgärder",
|
||||
"admin.groups.addMember": "Lägg till en medlem",
|
||||
"admin.groups.allMembers": "Alla användare och grupper är redan medlemmar.",
|
||||
"admin.groups.column.members": "Medlemmar",
|
||||
"admin.groups.column.name": "Grupp",
|
||||
"admin.groups.create": "Skapa grupp",
|
||||
"admin.groups.delete": "Ta bort grupp",
|
||||
"admin.groups.deleteMessage": "Ta bort gruppen {{name}}? Det tar bort gruppen och alla dess medlemskap.",
|
||||
"admin.groups.field.name": "Gruppnamn",
|
||||
"admin.groups.field.nameHint": "Små bokstäver, siffror, bindestreck och understreck.",
|
||||
"admin.groups.filter": "Filtrera grupper",
|
||||
"admin.groups.firstMember": "Första medlem",
|
||||
"admin.groups.firstMemberHint": "En grupp finns så snart den har en medlem; lägg till fler efteråt.",
|
||||
"admin.groups.members": "Medlemmar",
|
||||
"admin.groups.membersOf": "Medlemmar i {{name}}",
|
||||
"admin.groups.new": "Ny grupp",
|
||||
"admin.groups.noMembers": "Inga medlemmar ännu.",
|
||||
"admin.groups.pagination": "Sidnavigering för grupper",
|
||||
"admin.groups.searchLabel": "Sök grupper",
|
||||
"admin.groups.searchPlaceholder": "Sök på gruppnamn…",
|
||||
"admin.groups.title": "Grupper",
|
||||
"admin.groups.validation.member": "Välj en medlem som gruppens första medlem.",
|
||||
"admin.groups.validation.name": "Gruppnamn använder små bokstäver, siffror, bindestreck och understreck.",
|
||||
|
||||
"admin.nav.clients": "OAuth2-klienter",
|
||||
"admin.nav.groups": "Grupper",
|
||||
"admin.nav.permissions": "Behörigheter",
|
||||
"admin.nav.section": "Administration",
|
||||
"admin.nav.users": "Användare",
|
||||
|
||||
"admin.notFound.message": "Objektet finns inte.",
|
||||
"admin.notFound.title": "Hittades inte",
|
||||
|
||||
"admin.permissions.assignTo": "Tilldela till",
|
||||
"admin.permissions.assignedTo": "Tilldelad till",
|
||||
"admin.permissions.column.members": "Medlemmar",
|
||||
"admin.permissions.column.name": "Behörighet",
|
||||
"admin.permissions.create": "Skapa behörighet",
|
||||
"admin.permissions.delete": "Ta bort behörighet",
|
||||
"admin.permissions.deleteMessage": "Ta bort behörigheten {{name}}? Den återkallas från alla den är tilldelad till.",
|
||||
"admin.permissions.error.adminUndeletable": "Behörigheten admin kan inte tas bort — det skulle ta bort all administratörsåtkomst.",
|
||||
"admin.permissions.error.selfRevoke": "Du kan inte återkalla din egen administratörsåtkomst.",
|
||||
"admin.permissions.field.name": "Behörighetens namn",
|
||||
"admin.permissions.field.nameHint": "Små bokstäver, siffror, bindestreck och understreck.",
|
||||
"admin.permissions.filter": "Filtrera behörigheter",
|
||||
"admin.permissions.new": "Ny behörighet",
|
||||
"admin.permissions.noMembers": "Inte tilldelad till någon ännu.",
|
||||
"admin.permissions.pagination": "Sidnavigering för behörigheter",
|
||||
"admin.permissions.revoke": "Återkalla",
|
||||
"admin.permissions.searchLabel": "Sök behörigheter",
|
||||
"admin.permissions.searchPlaceholder": "Sök på behörighetens namn…",
|
||||
"admin.permissions.title": "Behörigheter",
|
||||
"admin.permissions.validation.member": "Välj en användare eller grupp att tilldela behörigheten till.",
|
||||
"admin.permissions.validation.name": "Behörighetsnamn använder små bokstäver, siffror, bindestreck och understreck.",
|
||||
|
||||
"admin.unavailable.message": "{{what}} är inte konfigurerat i den här installationen.",
|
||||
"admin.unavailable.title": "Administrationen är otillgänglig",
|
||||
|
||||
"admin.users.actions": "Kontoåtgärder",
|
||||
"admin.users.column.email": "E-postadress",
|
||||
"admin.users.column.name": "Namn",
|
||||
"admin.users.column.status": "Status",
|
||||
"admin.users.confirm": "Bekräfta åtgärden",
|
||||
"admin.users.create": "Skapa användare",
|
||||
"admin.users.deactivate": "Inaktivera",
|
||||
"admin.users.delete": "Ta bort användare",
|
||||
"admin.users.deleteMessage": "Ta bort {{email}}? Kontot tas bort permanent och det går inte att ångra.",
|
||||
"admin.users.edit": "Redigera användare",
|
||||
"admin.users.error.create": "Användaren kunde inte skapas — kontrollera e-postadressen och försök igen.",
|
||||
"admin.users.error.duplicate": "Det finns redan en användare med den e-postadressen.",
|
||||
"admin.users.error.save": "Ändringarna kunde inte sparas — kontrollera fälten och försök igen.",
|
||||
"admin.users.error.selfDeactivate": "Du kan inte inaktivera ditt eget konto.",
|
||||
"admin.users.error.selfDelete": "Du kan inte ta bort ditt eget konto.",
|
||||
"admin.users.field.email": "E-postadress",
|
||||
"admin.users.field.emailHint": "Inloggningsidentiteten — den kan inte ändras här.",
|
||||
"admin.users.field.first": "Förnamn",
|
||||
"admin.users.field.last": "Efternamn",
|
||||
"admin.users.field.password": "Lösenord",
|
||||
"admin.users.field.passwordHint": "Frivilligt — lämna tomt så får användaren sätta det själv via en återställningskod.",
|
||||
"admin.users.filter": "Filtrera användare",
|
||||
"admin.users.new": "Ny användare",
|
||||
"admin.users.pagination": "Sidnavigering för användare",
|
||||
"admin.users.reactivate": "Aktivera igen",
|
||||
"admin.users.recovery.body":
|
||||
"Ge den till användaren — koden anges på <a href=\"/recovery\">sidan för lösenordsåterställning</a> för att sätta ett nytt lösenord (skapa en ny om den hunnit gå ut).",
|
||||
"admin.users.recovery.generate": "Skapa återställningskod",
|
||||
"admin.users.recovery.title": "Återställningskod skapad",
|
||||
"admin.users.save": "Spara ändringar",
|
||||
"admin.users.searchLabel": "Sök användare",
|
||||
"admin.users.searchPlaceholder": "Sök på namn eller e-postadress…",
|
||||
"admin.users.status.active": "Aktiv",
|
||||
"admin.users.status.all": "Alla",
|
||||
"admin.users.status.inactive": "Inaktiv",
|
||||
"admin.users.status.label": "Status",
|
||||
"admin.users.title": "Användare",
|
||||
};
|
||||
|
||||
export default messages;
|
||||
Reference in New Issue
Block a user