mirror of
https://github.com/strapi/strapi.git
synced 2025-10-16 10:33:34 +00:00
Merge branch 'main' into fix/swaggerParameterLocale
This commit is contained in:
commit
db6e3b8097
@ -73,7 +73,7 @@
|
||||
"ResetPasswordToken": "Redefinir o token de senha",
|
||||
"Role": "Função",
|
||||
"Roles & Permissions": "Funções e Permissões",
|
||||
"Roles.ListPage.notification.delete-all-not-allowed": "Algumass funções não puderam ser removidos por estarem associadas a alguns usuários",
|
||||
"Roles.ListPage.notification.delete-all-not-allowed": "Algumas funções não puderam ser removidos por estarem associadas a alguns usuários",
|
||||
"Roles.ListPage.notification.delete-not-allowed": "A função não pode ser removida se ainda estiver associada a algum usuário",
|
||||
"Roles.RoleRow.select-all": "Selecione {name} para ações em massa",
|
||||
"Roles.RoleRow.user-count": "{number, plural, =0 {# user} um {# user} outros {# users}}",
|
||||
@ -153,7 +153,7 @@
|
||||
"Settings.profile.form.section.experience.clear.select": "Limpar a linguagem da interface selecionada",
|
||||
"Settings.profile.form.section.experience.here": "aqui",
|
||||
"Settings.profile.form.section.experience.interfaceLanguage": "Linguagem da interface",
|
||||
"Settings.profile.form.section.experience.interfaceLanguage.hint": "Somente sua interface será exibida com a lingaugem selecionada.",
|
||||
"Settings.profile.form.section.experience.interfaceLanguage.hint": "Somente sua interface será exibida com a linguagem selecionada.",
|
||||
"Settings.profile.form.section.experience.interfaceLanguageHelp": "A nova linguagem seleciona só será exibida a você. Por favor, leia essa {documentation} para disponibilizar outras linguagens para sua equipe.",
|
||||
"Settings.profile.form.section.experience.mode.label": "Modo de interface",
|
||||
"Settings.profile.form.section.experience.mode.hint": "Selecione o modo de interface que você deseja usar",
|
||||
@ -212,7 +212,7 @@
|
||||
"Settings.webhooks.trigger.cancel": "Cancelar disparo",
|
||||
"Settings.webhooks.trigger.pending": "Pendente…",
|
||||
"Settings.webhooks.trigger.save": "Por favor salve para disparar",
|
||||
"Settings.webhooks.trigger.success": "Successo!",
|
||||
"Settings.webhooks.trigger.success": "Sucesso!",
|
||||
"Settings.webhooks.trigger.success.label": "Disparo realizado com sucesso",
|
||||
"Settings.webhooks.trigger.test": "Disparo de teste",
|
||||
"Settings.webhooks.trigger.title": "Salvar antes do Disparo",
|
||||
@ -235,7 +235,7 @@
|
||||
"admin.pages.MarketPlacePage.helmet": "Loja - Extensões",
|
||||
"admin.pages.MarketPlacePage.offline.title": "Você está offline",
|
||||
"admin.pages.MarketPlacePage.offline.subtitle": "Você precisa estar online para ver as extensões",
|
||||
"admin.pages.MarketPlacePage.plugins": "Extenções",
|
||||
"admin.pages.MarketPlacePage.plugins": "Extensões",
|
||||
"admin.pages.MarketPlacePage.plugin.copy": "Copiar comando de instalação",
|
||||
"admin.pages.MarketPlacePage.plugin.copy.success": "Comando de instalação pronto para ser colado em seu terminal",
|
||||
"admin.pages.MarketPlacePage.plugin.info": "Saber mais",
|
||||
@ -249,10 +249,10 @@
|
||||
"admin.pages.MarketPlacePage.search.empty": "Sem resultado para \"{target}\"",
|
||||
"admin.pages.MarketPlacePage.search.placeholder": "Pesquisar",
|
||||
"admin.pages.MarketPlacePage.submit.plugin.link": "Submeta sua extensão",
|
||||
"admin.pages.MarketPlacePage.submit.provider.link": "Submit provider",
|
||||
"admin.pages.MarketPlacePage.submit.provider.link": "Submeta provedor",
|
||||
"admin.pages.MarketPlacePage.subtitle": "Faça mais com o Strapi",
|
||||
"admin.pages.MarketPlacePage.tab-group.label": "Plugins and Providers for Strapi",
|
||||
"admin.pages.MarketPlacePage.missingPlugin.title": "Missing a plugin?",
|
||||
"admin.pages.MarketPlacePage.tab-group.label": "Plugins e Provedores para Strapi",
|
||||
"admin.pages.MarketPlacePage.missingPlugin.title": "Falta-lhe um plugin?",
|
||||
"admin.pages.MarketPlacePage.missingPlugin.description": "Diga-nos qual extensão você está procurando e informaremos nossos desenvolvedores de extensões da comunidade caso eles estejam em busca de inspiração!",
|
||||
"anErrorOccurred": "Ops! Algo deu errado. Por favor, tente novamente.",
|
||||
"app.component.CopyToClipboard.label": "Copiar pra área de transferência",
|
||||
@ -275,7 +275,7 @@
|
||||
"app.components.DownloadInfo.download": "Transferência em andamento...",
|
||||
"app.components.DownloadInfo.text": "Isto poderá levar alguns minutos. Obrigado pela sua paciência",
|
||||
"app.components.EmptyAttributes.title": "Ainda não existem campos",
|
||||
"app.components.EmptyStateLayout.content-document": "Nenhum conteúdo encontrato",
|
||||
"app.components.EmptyStateLayout.content-document": "Nenhum conteúdo encontrado",
|
||||
"app.components.EmptyStateLayout.content-permissions": "Você não tem permissão para acessar esse conteúdo",
|
||||
"app.components.GuidedTour.CM.create.content": "<p>Crie e gerencie todo o conteúdo aqui no Gerenciador de Conteúdos.</p><p>Ex: Levando ainda mais o exemplo do site do Blog, pode-se escrever um artigo, salvá-lo e publicá-lo como quiser.</p><p>💡 Dica rápida - Não se esqueça de clicar em publicar no conteúdo que você criar.</p>",
|
||||
"app.components.GuidedTour.CM.create.title": "⚡️ Crie seu primeiro conteúdo",
|
||||
@ -320,7 +320,7 @@
|
||||
"app.components.InputFileDetails.size": "Tamanho:",
|
||||
"app.components.InstallPluginPage.Download.description": "Pode demorar alguns segundos para baixar e instalar a extensão.",
|
||||
"app.components.InstallPluginPage.Download.title": "Baixando...",
|
||||
"app.components.InstallPluginPage.description": "Extenda seu aplicativo sem esforço.",
|
||||
"app.components.InstallPluginPage.description": "Estenda seu aplicativo sem esforço.",
|
||||
"app.components.LeftMenu.collapse": "Recolher barra de navegação",
|
||||
"app.components.LeftMenu.expand": "Expandir barra de navegação",
|
||||
"app.components.LeftMenu.general": "Geral",
|
||||
@ -334,7 +334,7 @@
|
||||
"app.components.LeftMenuLinkContainer.collectionTypes": "Tipos de coleção",
|
||||
"app.components.LeftMenuLinkContainer.configuration": "Configurações",
|
||||
"app.components.LeftMenuLinkContainer.general": "Geral",
|
||||
"app.components.LeftMenuLinkContainer.noPluginsInstalled": "Nehuma extensão instalada ainda",
|
||||
"app.components.LeftMenuLinkContainer.noPluginsInstalled": "Nenhuma extensão instalada ainda",
|
||||
"app.components.LeftMenuLinkContainer.plugins": "Extensões",
|
||||
"app.components.LeftMenuLinkContainer.singleTypes": "Tipos singulares",
|
||||
"app.components.ListPluginsPage.deletePlugin.description": "Pode demorar alguns segundos para desinstalar a extensão.",
|
||||
@ -357,9 +357,9 @@
|
||||
"app.components.PluginCard.PopUpWarning.install.impossible.autoReload.needed": "O recurso autoReload precisa estar ativado. Por favor, inicie seu aplicativo com `yarn develop`.",
|
||||
"app.components.PluginCard.PopUpWarning.install.impossible.confirm": "Eu compreendo!",
|
||||
"app.components.PluginCard.PopUpWarning.install.impossible.environment": "Por motivos de segurança, uma extensão só pode ser baixada no ambiente de desenvolvimento.",
|
||||
"app.components.PluginCard.PopUpWarning.install.impossible.title": "Não é possivel baixar",
|
||||
"app.components.PluginCard.PopUpWarning.install.impossible.title": "Não é possível baixar",
|
||||
"app.components.PluginCard.compatible": "Compatível com a sua aplicação",
|
||||
"app.components.PluginCard.compatibleCommunity": "Compativel com a comunidade",
|
||||
"app.components.PluginCard.compatibleCommunity": "Compatível com a comunidade",
|
||||
"app.components.PluginCard.more-details": "Mais detalhes",
|
||||
"app.components.ToggleCheckbox.off-label": "Desativado",
|
||||
"app.components.ToggleCheckbox.on-label": "Ativado",
|
||||
@ -527,7 +527,7 @@
|
||||
"content-manager.components.NotAllowedInput.text": "Sem permissão para ver esse campo",
|
||||
"content-manager.components.RepeatableComponent.error-message": "Um ou mais componentes contêm erros",
|
||||
"content-manager.components.Search.placeholder": "Buscar registro...",
|
||||
"content-manager.components.Select.draft-info-title": "Estado: Rasunho",
|
||||
"content-manager.components.Select.draft-info-title": "Estado: Rascunho",
|
||||
"content-manager.components.Select.publish-info-title": "Estado: Publicado",
|
||||
"content-manager.components.SettingsViewWrapper.pluginHeader.description.edit-settings": "Customizar visualização de edição.",
|
||||
"content-manager.components.SettingsViewWrapper.pluginHeader.description.list-settings": "Customizar visualização de lista.",
|
||||
@ -718,7 +718,7 @@
|
||||
"global.plugins.users-permissions": "Funções e permissões",
|
||||
"global.plugins.users-permissions.description": "Proteja sua API com um processo de autenticação completo baseado em JWT. Esta extensão também vem com uma estratégia de ACL que permite gerenciar as permissões entre os grupos de usuários.",
|
||||
"global.profile": "Perfil",
|
||||
"global.prompt.unsaved": "Você tem certeza que deseja sair desta página? Todas as suas modificacões serão perdidas",
|
||||
"global.prompt.unsaved": "Você tem certeza que deseja sair desta página? Todas as suas modificações serão perdidas",
|
||||
"global.reset-password": "Redefinir senha",
|
||||
"global.roles": "Funções",
|
||||
"global.save": "Salvar",
|
||||
|
@ -4,10 +4,10 @@
|
||||
"Auth.components.Oops.text.admin": "Kontakta din administratör om du tror detta är av misstag.",
|
||||
"Auth.components.Oops.title": "Oj då...",
|
||||
"Auth.form.active.label": "Aktiv",
|
||||
"Auth.form.button.forgot-password": "Skicka Email",
|
||||
"Auth.form.button.forgot-password": "Skicka e-post",
|
||||
"Auth.form.button.go-home": "GÅ TILLBAKA HEM",
|
||||
"Auth.form.button.login": "Logga in",
|
||||
"Auth.form.button.login.providers.error": "Vi kan inte ansluta dig genom den valda tjänsten.",
|
||||
"Auth.form.button.login.providers.error": "Vi kan inte logga in dig med den valda tjänsten.",
|
||||
"Auth.form.button.login.strapi": "Logga in via Strapi",
|
||||
"Auth.form.button.password-recovery": "Återställning av lösenord",
|
||||
"Auth.form.button.register": "Låt oss börja",
|
||||
@ -15,16 +15,16 @@
|
||||
"Auth.form.currentPassword.label": "Nuvarande lösenord",
|
||||
"Auth.form.email.label": "E-post",
|
||||
"Auth.form.email.placeholder": "t.ex. kai@doe.com",
|
||||
"Auth.form.error.blocked": "Ditt konto har blockerats av administratören.",
|
||||
"Auth.form.error.blocked": "Ditt konto har blockerats en administratör.",
|
||||
"Auth.form.error.code.provide": "Felaktig kod angiven.",
|
||||
"Auth.form.error.confirmed": "E-postadressen för ditt konto är inte verifierad.",
|
||||
"Auth.form.error.email.invalid": "Denna E-postadressen är ogiltig.",
|
||||
"Auth.form.error.email.invalid": "Denna e-postadress är ogiltig.",
|
||||
"Auth.form.error.email.provide": "Ange användarnamn eller e-postadress.",
|
||||
"Auth.form.error.email.taken": "E-postadressen är upptagen.",
|
||||
"Auth.form.error.invalid": "Användarnamn/E-post eller lösenordet är felaktigt.",
|
||||
"Auth.form.error.invalid": "Användarnamn/e-postadress eller lösenordet är felaktigt.",
|
||||
"Auth.form.error.params.provide": "Felaktiga parametrar angivna.",
|
||||
"Auth.form.error.password.format": "Ditt lösenord får inte innehålla symbolen `$` mer än tre gånger.",
|
||||
"Auth.form.error.password.local": "Denna användare har aldrig angett ett lokalt lösenord, logga in via den tjänsten som användes när kontot skapades.",
|
||||
"Auth.form.error.password.local": "Denna användare har inte ett lokalt lösenord, logga in via den tjänsten som användes när kontot skapades.",
|
||||
"Auth.form.error.password.matching": "Lösenorden stämmer inte överens.",
|
||||
"Auth.form.error.password.provide": "Ange ditt lösenord.",
|
||||
"Auth.form.error.ratelimit": "För många försök, försök igen om en minut.",
|
||||
@ -40,11 +40,11 @@
|
||||
"Auth.form.password.hint": "Måste bestå av minst 8 tecken, en stor bokstav, en liten bokstav och en siffra",
|
||||
"Auth.form.password.show-password": "Visa lösenord",
|
||||
"Auth.form.register.news.label": "Håll mig uppdaterad om nya funktioner och förbättringar (genom att göra detta godkänner du {terms} och {policy}).",
|
||||
"Auth.form.register.subtitle": "Inloggningsuppgifter används endast för att logga in i Strapi. All data kommer att sparas i din databas.",
|
||||
"Auth.form.register.subtitle": "Inloggningsuppgifter används bara för att logga in i Strapi. All data kommer att sparas i din databas.",
|
||||
"Auth.form.rememberMe.label": "Kom ihåg mig",
|
||||
"Auth.form.username.label": "Användarnamn",
|
||||
"Auth.form.username.placeholder": "t.ex. Kai_Doe",
|
||||
"Auth.form.welcome.subtitle": "Logga in till Strapi-konto",
|
||||
"Auth.form.welcome.subtitle": "Logga in till ett Strapi-konto",
|
||||
"Auth.form.welcome.title": "Välkommen till Strapi!",
|
||||
"Auth.link.forgot-password": "Glömt ditt lösenord?",
|
||||
"Auth.link.ready": "Redo att logga in?",
|
||||
@ -52,18 +52,18 @@
|
||||
"Auth.link.signin.account": "Har du redan ett konto?",
|
||||
"Auth.login.sso.divider": "Eller logga in med",
|
||||
"Auth.login.sso.loading": "Laddar inloggningstjänster...",
|
||||
"Auth.login.sso.subtitle": "Logga in på ditt konto med SSO",
|
||||
"Auth.privacy-policy-agreement.policy": "integritetspolicy",
|
||||
"Auth.privacy-policy-agreement.terms": "villkor",
|
||||
"Auth.login.sso.subtitle": "Logga in med SSO",
|
||||
"Auth.privacy-policy-agreement.policy": "integritetspolicyn",
|
||||
"Auth.privacy-policy-agreement.terms": "villkoren",
|
||||
"Auth.reset-password.title": "Återställ lösenord",
|
||||
"Content Manager": "Innehållshantering",
|
||||
"Content Type Builder": "Innehållstypsbyggaren",
|
||||
"Content Type Builder": "Innehållstypsbyggare",
|
||||
"Documentation": "Dokumentation",
|
||||
"Email": "E-post",
|
||||
"Files Upload": "Uppladdning av filer",
|
||||
"Files Upload": "Filuppladdning",
|
||||
"HomePage.helmet.title": "Hemsida",
|
||||
"HomePage.roadmap": "Se vår roadmap",
|
||||
"HomePage.welcome.congrats": "Gratulerar!",
|
||||
"HomePage.welcome.congrats": "Grattis!",
|
||||
"HomePage.welcome.congrats.content": "Du är inloggad som administratör. För att upptäcka de kraftfulla funktionerna från Strapi,",
|
||||
"HomePage.welcome.congrats.content.bold": "vi rekommenderar dig att skapa din första innehållstyp.",
|
||||
"Media Library": "Mediebibliotek",
|
||||
@ -79,45 +79,38 @@
|
||||
"Roles.RoleRow.user-count": "användare",
|
||||
"Roles.components.List.empty.withSearch": "Det finns inga roller som matchar sökningen ({search})...",
|
||||
"Settings.PageTitle": "Inställningar - {name}",
|
||||
"Settings.apiTokens.addFirstToken": "Lägg till ditt första API-token",
|
||||
"Settings.apiTokens.addNewToken": "Lägg till ny API-token",
|
||||
"Settings.apiTokens.addFirstToken": "Lägg till din första API-token",
|
||||
"Settings.apiTokens.addNewToken": "Lägg till en ny API-token",
|
||||
"Settings.apiTokens.copy.editMessage": "Av säkerhetsskäl kan du bara se din token en gång.",
|
||||
"Settings.apiTokens.copy.editTitle": "Denna token är inte tillgänglig längre.",
|
||||
"Settings.apiTokens.copy.editTitle": "Denna token är inte längre tillgänglig.",
|
||||
"Settings.apiTokens.copy.lastWarning": "Kopiera denna token nu, den kommer inte visas igen!",
|
||||
"Settings.apiTokens.create": "Skapa en ny API-token",
|
||||
"Settings.apiTokens.description": "Lista över genererade tokens för att använda API:t",
|
||||
"Settings.apiTokens.emptyStateLayout": "Det finns inget innehåll ännu...",
|
||||
"Settings.apiTokens.notification.copied": "Token har kopierats till urklipp.",
|
||||
"Settings.apiTokens.ListView.headers.name": "Name",
|
||||
"Settings.apiTokens.ListView.headers.description": "Description",
|
||||
"Settings.apiTokens.ListView.headers.type": "Token type",
|
||||
"Settings.apiTokens.ListView.headers.createdAt": "Created at",
|
||||
"Settings.apiTokens.ListView.headers.lastUsedAt": "Last used",
|
||||
"Settings.apiTokens.notification.copied": "Token har kopierats.",
|
||||
"Settings.apiTokens.title": "API-tokens",
|
||||
"Settings.apiTokens.types.full-access": "Full åtkomst",
|
||||
"Settings.apiTokens.types.read-only": "Endast läsa",
|
||||
"Settings.application.customization": "Anpassning",
|
||||
"Settings.application.customization.carousel-hint": "Ändra adminpanelens logotyp (Maximal upplösning: {dimension}x{dimension}, Maximal filstorlek: {size}KB)",
|
||||
"Settings.application.customization.carousel-slide.label": "Logotyphjul",
|
||||
"Settings.application.customization.carousel.change-action": "Ändra logga",
|
||||
"Settings.application.customization.carousel.reset-action": "Återställ logga",
|
||||
"Settings.application.customization.carousel.title": "Logga",
|
||||
"Settings.application.customization.modal.cancel": "Avbryt",
|
||||
"Settings.application.customization.modal.pending": "Ändra logga",
|
||||
"Settings.application.customization.modal.pending.card-badge": "bild",
|
||||
"Settings.application.customization.modal.pending.choose-another": "Välj ny logga",
|
||||
"Settings.application.customization.modal.pending.subtitle": "Ändra den valda loggan innan du laddar upp den",
|
||||
"Settings.application.customization.modal.pending.title": "Loggan är redo att laddas upp",
|
||||
"Settings.application.customization.modal.pending.upload": "Ladda upp ny logga",
|
||||
"Settings.application.customization.modal.tab.label": "Hur vill du ladda dina mediefiler?",
|
||||
"Settings.application.customization.modal.upload": "Ladda upp logga",
|
||||
"Settings.application.customization.modal.upload.cta.browse": "Bläddra bland filer",
|
||||
"Settings.application.customization.modal.upload.drag-drop": "Dra och släpp här eller",
|
||||
"Settings.application.customization.modal.upload.error-format": "Fel format uppladdat (godkända format: jpeg, jpg, png, svg).",
|
||||
"Settings.application.customization.modal.upload.error-network": "Nätverksfel",
|
||||
"Settings.application.customization.modal.upload.error-size": "Den uppladdade filen är för stor (Maximal upplösning: {dimension}x{dimension}, Maximal filstorlek: {size}KB)",
|
||||
"Settings.application.customization.modal.upload.file-validation": "Maximal upplösning: {dimension}x{dimension}, Maximal filstorlek: {size}KB",
|
||||
"Settings.application.customization.modal.upload.from-computer": "Från datorn",
|
||||
"Settings.application.customization.modal.upload.from-url": "Från url",
|
||||
"Settings.application.customization.modal.upload.from-url.input-label": "URL",
|
||||
"Settings.application.customization.modal.upload.next": "Nästa",
|
||||
"Settings.application.description": "Administrationspanelens globala information",
|
||||
"Settings.application.edition-title": "aktiv plan",
|
||||
"Settings.apiTokens.types.read-only": "Skrivskyddad",
|
||||
"Settings.apiTokens.duration.7-days": "7 dagar",
|
||||
"Settings.apiTokens.duration.30-days": "30 dagar",
|
||||
"Settings.apiTokens.duration.90-days": "90 dagar",
|
||||
"Settings.apiTokens.duration.unlimited": "Evig",
|
||||
"Settings.apiTokens.form.duration": "Giltighetstid för token",
|
||||
"Settings.apiTokens.form.type": "Token-typ",
|
||||
"Settings.apiTokens.duration.expiration-date": "Utgångsdatum",
|
||||
"Settings.apiTokens.createPage.permissions.title": "Behörigheter",
|
||||
"Settings.apiTokens.createPage.permissions.description": "Endast åtgärder som är kopplade till en rutt listas nedan.",
|
||||
"Settings.apiTokens.RegenerateDialog.title": "Återställ token",
|
||||
"Settings.apiTokens.popUpWarning.message": "Är du säker på att du vill återställa denna token?",
|
||||
"Settings.apiTokens.Button.cancel": "Avbryt",
|
||||
"Settings.apiTokens.Button.regenerate": "Återställ",
|
||||
"Settings.application.description": "Adminpanelens globala information",
|
||||
"Settings.application.edition-title": "aktiv version",
|
||||
"Settings.application.get-help": "Få hjälp",
|
||||
"Settings.application.link-pricing": "Se alla prisplaner",
|
||||
"Settings.application.link-upgrade": "Uppgradera din adminpanel",
|
||||
@ -125,6 +118,31 @@
|
||||
"Settings.application.strapi-version": "strapi-version",
|
||||
"Settings.application.strapiVersion": "strapi-version",
|
||||
"Settings.application.title": "Översikt",
|
||||
"Settings.application.customization": "Anpassning",
|
||||
"Settings.application.customization.carousel.title": "Logga",
|
||||
"Settings.application.customization.carousel.change-action": "Ändra logga",
|
||||
"Settings.application.customization.carousel.reset-action": "Återställ logga",
|
||||
"Settings.application.customization.carousel-slide.label": "Logotyphjul",
|
||||
"Settings.application.customization.carousel-hint": "Ändra adminpanelens logotyp (Högsta upplösning: {dimension}x{dimension}, Största filstorlek: {size}KB)",
|
||||
"Settings.application.customization.modal.cancel": "Avbryt",
|
||||
"Settings.application.customization.modal.upload": "Ladda upp logga",
|
||||
"Settings.application.customization.modal.tab.label": "Hur vill du ladda dina mediefiler?",
|
||||
"Settings.application.customization.modal.upload.from-computer": "Från datorn",
|
||||
"Settings.application.customization.modal.upload.file-validation": "Högsta upplösning: {dimension}x{dimension}, Största filstorlek: {size}KB",
|
||||
"Settings.application.customization.modal.upload.error-format": "Fel format uppladdat (tillåtna format: jpeg, jpg, png, svg).",
|
||||
"Settings.application.customization.modal.upload.error-size": "Den uppladdade filen är för stor (Högsta upplösning: {dimension}x{dimension}, Största filstorlek: {size}KB)",
|
||||
"Settings.application.customization.modal.upload.error-network": "Nätverksfel",
|
||||
"Settings.application.customization.modal.upload.cta.browse": "Bläddra bland filer",
|
||||
"Settings.application.customization.modal.upload.drag-drop": "Dra och släpp här eller",
|
||||
"Settings.application.customization.modal.upload.from-url": "Från URL",
|
||||
"Settings.application.customization.modal.upload.from-url.input-label": "URL",
|
||||
"Settings.application.customization.modal.upload.next": "Nästa",
|
||||
"Settings.application.customization.modal.pending": "Ändra logga",
|
||||
"Settings.application.customization.modal.pending.choose-another": "Välj ny logga",
|
||||
"Settings.application.customization.modal.pending.title": "Loggan är redo att laddas upp",
|
||||
"Settings.application.customization.modal.pending.subtitle": "Ändra den valda loggan innan du laddar upp den",
|
||||
"Settings.application.customization.modal.pending.upload": "Ladda upp ny logga",
|
||||
"Settings.application.customization.modal.pending.card-badge": "bild",
|
||||
"Settings.error": "Fel",
|
||||
"Settings.global": "Globala inställningar",
|
||||
"Settings.permissions": "Administrationspanel",
|
||||
@ -142,22 +160,32 @@
|
||||
"Settings.permissions.select-all-by-permission": "Välj alla behörighet för {label}",
|
||||
"Settings.permissions.select-by-permission": "Välj behörighet för {label}",
|
||||
"Settings.permissions.users.create": "Bjud in användare",
|
||||
"Settings.permissions.users.form.email": "E-post",
|
||||
"Settings.permissions.users.form.firstname": "Förnamn",
|
||||
"Settings.permissions.users.form.lastname": "Efternamn",
|
||||
"Settings.permissions.users.email": "Email",
|
||||
"Settings.permissions.users.firstname": "Firstname",
|
||||
"Settings.permissions.users.lastname": "Lastname",
|
||||
"Settings.permissions.users.user-status": "User status",
|
||||
"Settings.permissions.users.roles": "Roller",
|
||||
"Settings.permissions.users.username": "Användarnamn",
|
||||
"Settings.permissions.users.active": "Aktiv",
|
||||
"Settings.permissions.users.inactive": "Inaktiv",
|
||||
"Settings.permissions.users.form.sso": "Anslut med SSO",
|
||||
"Settings.permissions.users.form.sso.description": "När aktivt (PÅ) kan användare logga in med SSO",
|
||||
"Settings.permissions.users.listview.header.subtitle": "Alla användare som har tillgång till Strapi-adminpanel",
|
||||
"Settings.permissions.users.tabs.label": "Behörighetsfliken",
|
||||
"Settings.permissions.users.strapi-super-admin": "Super Admin",
|
||||
"Settings.permissions.users.strapi-editor": "Redigerare",
|
||||
"Settings.permissions.users.strapi-author": "Författare",
|
||||
"Settings.profile.form.notify.data.loaded": "Din profildata har laddats",
|
||||
"Settings.profile.form.section.experience.clear.select": "Återställ det valda gränssnittsspråket",
|
||||
"Settings.profile.form.section.experience.here": "här",
|
||||
"Settings.profile.form.section.experience.interfaceLanguage": "Gränssnittsspråk",
|
||||
"Settings.profile.form.section.experience.interfaceLanguage.hint": "Detta kommer bara att visa ditt egna gränssnitt på det valda språket.",
|
||||
"Settings.profile.form.section.experience.interfaceLanguageHelp": "Ändringar av inställningar kommer bara att gälla dig. Mer information finns {here}.",
|
||||
"Settings.profile.form.section.experience.mode.hint": "Visar ditt gränssnitt i det valda läget.",
|
||||
"Settings.profile.form.section.experience.mode.label": "Gränssnittsläge",
|
||||
"Settings.profile.form.section.experience.mode.hint": "Visar ditt gränssnitt i det valda läget.",
|
||||
"Settings.profile.form.section.experience.mode.option-label": "{name}-läge",
|
||||
"light": "Ljust",
|
||||
"dark": "Mörkt",
|
||||
"Settings.profile.form.section.experience.title": "Upplevelse",
|
||||
"Settings.profile.form.section.helmet.title": "Användarprofil",
|
||||
"Settings.profile.form.section.profile.page.title": "Profilsida",
|
||||
@ -220,7 +248,7 @@
|
||||
"Usecase.content-creator": "Innehållsskapare",
|
||||
"Usecase.front-end": "Front-end utvecklare",
|
||||
"Usecase.full-stack": "Full-stack utvecklare",
|
||||
"Usecase.input.work-type": "Vad arbetar du med?",
|
||||
"Usecase.input.work-type": "Vad jobbar du som?",
|
||||
"Usecase.notification.success.project-created": "Projektet har skapats",
|
||||
"Usecase.other": "Annat",
|
||||
"Usecase.title": "Berätta lite mer om dig själv",
|
||||
@ -228,13 +256,12 @@
|
||||
"Users": "Användare",
|
||||
"Users & Permissions": "Användare och behörigheter",
|
||||
"Users.components.List.empty": "Det finns inga användare...",
|
||||
"Users.components.List.empty.withFilters": "Det finns inga användare med de valda filtren...",
|
||||
"Users.components.List.empty.withFilters": "Det finns inga användare som matchar filtreringen...",
|
||||
"Users.components.List.empty.withSearch": "Det finns inga användare som matchar sökningen ({search})...",
|
||||
"admin.pages.MarketPlacePage.helmet": "Plugin-marknad",
|
||||
"admin.pages.MarketPlacePage.missingPlugin.description": "Berätta vilket plugin du letar efter så kan vi meddela våra plugin-utvecklare om de letar efter inspiration!",
|
||||
"admin.pages.MarketPlacePage.missingPlugin.title": "Saknar du ett plugin?",
|
||||
"admin.pages.MarketPlacePage.offline.subtitle": "Du måste vara ansluten till Internet för att komma åt Strapi-marknaden.",
|
||||
"admin.pages.MarketPlacePage.offline.title": "Du är offline",
|
||||
"admin.pages.MarketPlacePage.offline.subtitle": "Du måste vara ansluten till Internet för att komma åt Strapi-marknaden.",
|
||||
"admin.pages.MarketPlacePage.plugins": "Plugins",
|
||||
"admin.pages.MarketPlacePage.plugin.copy": "Kopiera installationskommando",
|
||||
"admin.pages.MarketPlacePage.plugin.copy.success": "Installationskommandot redo att klistras in i din terminal",
|
||||
"admin.pages.MarketPlacePage.plugin.info": "Läs mer",
|
||||
@ -243,8 +270,13 @@
|
||||
"admin.pages.MarketPlacePage.plugin.installed": "Installerat",
|
||||
"admin.pages.MarketPlacePage.plugin.tooltip.madeByStrapi": "Skapat av Strapi",
|
||||
"admin.pages.MarketPlacePage.plugin.tooltip.verified": "Plugin verifierat av Strapi",
|
||||
"admin.pages.MarketPlacePage.plugins": "Plugins",
|
||||
"admin.pages.MarketPlacePage.plugin.version": "Uppdatera din strapi-version: \"{strapiAppVersion}\" till: \"{versionRange}\"",
|
||||
"admin.pages.MarketPlacePage.plugin.version.null": "Det går inte att verifiera kompatibiliteten med din Strapi-version: \"{strapiAppVersion}\"",
|
||||
"admin.pages.MarketPlacePage.plugin.githubStars": "Detta plugin stjärnmarkerades {starsCount} på GitHub",
|
||||
"admin.pages.MarketPlacePage.plugin.downloads": "Detta plugin har {downloadsCount} nedladdningar per vecka",
|
||||
"admin.pages.MarketPlacePage.providers": "Tjänster",
|
||||
"admin.pages.MarketPlacePage.provider.githubStars": "Den här leverantören stjärnmärktes med {starsCount} på GitHub",
|
||||
"admin.pages.MarketPlacePage.provider.downloads": "Denna tjänsten har {downloadsCount} nedladdningar per vecka",
|
||||
"admin.pages.MarketPlacePage.search.clear": "Rensa sökningen",
|
||||
"admin.pages.MarketPlacePage.search.empty": "Inget resultat för \"{target}\"",
|
||||
"admin.pages.MarketPlacePage.search.placeholder": "Sök",
|
||||
@ -252,6 +284,16 @@
|
||||
"admin.pages.MarketPlacePage.submit.provider.link": "Skicka tjänst",
|
||||
"admin.pages.MarketPlacePage.subtitle": "Få ut mer av Strapi",
|
||||
"admin.pages.MarketPlacePage.tab-group.label": "Plugins och leverantörer för Strapi",
|
||||
"admin.pages.MarketPlacePage.missingPlugin.title": "Saknar du ett plugin?",
|
||||
"admin.pages.MarketPlacePage.missingPlugin.description": "Berätta vilket plugin du letar efter så kan vi meddela våra plugin-utvecklare om de letar efter inspiration!",
|
||||
"admin.pages.MarketPlacePage.sort.alphabetical": "Alfabetisk ordning",
|
||||
"admin.pages.MarketPlacePage.sort.newest": "Nyast",
|
||||
"admin.pages.MarketPlacePage.sort.alphabetical.selected": "Sortera i alfabetisk ordning",
|
||||
"admin.pages.MarketPlacePage.sort.newest.selected": "Sortera efter ålder",
|
||||
"admin.pages.MarketPlacePage.filters.collections": "Samlingar",
|
||||
"admin.pages.MarketPlacePage.filters.collectionsSelected": "{count, plural, =0 {Inga samlingar valda} one {# samling vald} other {# samlingar valda}}",
|
||||
"admin.pages.MarketPlacePage.filters.categories": "Kategorier",
|
||||
"admin.pages.MarketPlacePage.filters.categoriesSelected": "{count, plural, =0 {Inga kategorier valda} one {# kategori vald} other {# kategorier valda}}",
|
||||
"anErrorOccurred": "Hoppsan! Något gick fel. Försök igen.",
|
||||
"app.component.CopyToClipboard.label": "Kopiera till urklipp",
|
||||
"app.component.search.label": "Söka efter {target}",
|
||||
@ -293,7 +335,7 @@
|
||||
"app.components.GuidedTour.apiTokens.success.title": "Steg 3: Avklarat ✅",
|
||||
"app.components.GuidedTour.create-content": "Skapa innehåll",
|
||||
"app.components.GuidedTour.home.CM.title": "⚡️ Vad skulle du vilja dela med dig till världen?",
|
||||
"app.components.GuidedTour.home.CTB.cta.title": "Gå till innehållstypsbyggaren",
|
||||
"app.components.GuidedTour.home.CTB.cta.title": "Gå till innehållstypsskaparen",
|
||||
"app.components.GuidedTour.home.CTB.title": "🧠 Bygg en innehållsstruktur",
|
||||
"app.components.GuidedTour.home.apiTokens.cta.title": "Testa API:t",
|
||||
"app.components.GuidedTour.skip": "Hoppa över guiden",
|
||||
@ -322,11 +364,11 @@
|
||||
"app.components.LeftMenu.collapse": "Dölj navigeringsfältet",
|
||||
"app.components.LeftMenu.expand": "Expandera navigeringsfältet",
|
||||
"app.components.LeftMenu.general": "Allmänt",
|
||||
"app.components.LeftMenu.logo.alt": "Applikationslogga",
|
||||
"app.components.LeftMenu.logout": "Logga ut",
|
||||
"app.components.LeftMenu.logo.alt": "Applikationslogga",
|
||||
"app.components.LeftMenu.plugins": "Plugins",
|
||||
"app.components.LeftMenu.navbrand.title": "Strapi Dashboard",
|
||||
"app.components.LeftMenu.navbrand.workplace": "Arbetsplats",
|
||||
"app.components.LeftMenu.plugins": "Plugins",
|
||||
"app.components.LeftMenuFooter.help": "Hjälp",
|
||||
"app.components.LeftMenuFooter.poweredBy": "Drivs av ",
|
||||
"app.components.LeftMenuLinkContainer.collectionTypes": "Samlingstyper",
|
||||
@ -402,6 +444,7 @@
|
||||
"app.utils.defaultMessage": " ",
|
||||
"app.utils.duplicate": "Duplicera",
|
||||
"app.utils.edit": "Redigera",
|
||||
"app.utils.delete": "Delete",
|
||||
"app.utils.errors.file-too-big.message": "Filen är för stor",
|
||||
"app.utils.filter-value": "Filtervärde",
|
||||
"app.utils.filters": "Filter",
|
||||
@ -416,7 +459,7 @@
|
||||
"coming.soon": "Det här innehållet är för närvarande under uppbyggnad och kommer tillbaka om några veckor!",
|
||||
"component.Input.error.validation.integer": "Värdet måste vara ett heltal",
|
||||
"components.AutoReloadBlocker.description": "Kör Strapi med ett av de följande kommandon:",
|
||||
"components.AutoReloadBlocker.header": "Reload funktionen krävs för detta plugin.",
|
||||
"components.AutoReloadBlocker.header": "Reload-funktionen krävs för detta plugin.",
|
||||
"components.ErrorBoundary.title": "Någonting gick fel...",
|
||||
"components.FilterOptions.FILTER_TYPES.$contains": "innehåller (skiftlägeskänslig)",
|
||||
"components.FilterOptions.FILTER_TYPES.$endsWith": "slutar med",
|
||||
@ -489,9 +532,8 @@
|
||||
"content-manager.DynamicTable.relation-loading": "Relationer laddas",
|
||||
"content-manager.DynamicTable.relation-more": "Denna relation innehåller mer data än vad som visas",
|
||||
"content-manager.EditRelations.title": "Relationsdata",
|
||||
"content-manager.HeaderLayout.button.label-add-entry": "Skapa ny post",
|
||||
"content-manager.HeaderLayout.button.label-add-entry": "Skapa innehåll",
|
||||
"content-manager.api.id": "API-id",
|
||||
"content-manager.apiError.This attribute must be unique": "{field} måste vara unikt",
|
||||
"content-manager.components.AddFilterCTA.add": "Filter",
|
||||
"content-manager.components.AddFilterCTA.hide": "Filter",
|
||||
"content-manager.components.DragHandle-label": "Drag",
|
||||
@ -561,7 +603,7 @@
|
||||
"content-manager.containers.Edit.information.editing": "Redigerar",
|
||||
"content-manager.containers.Edit.information.lastUpdate": "Senast uppdatering",
|
||||
"content-manager.containers.Edit.information.publishedVersion": "publicerad version",
|
||||
"content-manager.containers.Edit.pluginHeader.title.new": "Skapa en post",
|
||||
"content-manager.containers.Edit.pluginHeader.title.new": "Skapa nytt innehåll",
|
||||
"content-manager.containers.Edit.reset": "Återställ",
|
||||
"content-manager.containers.Edit.returnList": "Tillbaka till listan",
|
||||
"content-manager.containers.Edit.seeDetails": "Detaljer",
|
||||
@ -577,10 +619,9 @@
|
||||
"content-manager.containers.List.published": "Publicerad",
|
||||
"content-manager.containers.ListPage.displayedFields": "Visade fält",
|
||||
"content-manager.containers.ListPage.items": "{number, plural, =0 {poster} one {post} other {poster}}",
|
||||
"content-manager.containers.ListPage.table-headers.published_at": "Status",
|
||||
"content-manager.containers.ListPage.table-headers.publishedAt": "State",
|
||||
"content-manager.containers.ListSettingsView.modal-form.edit-label": "Redigera {fieldName}",
|
||||
"content-manager.containers.SettingPage.add.field": "Infoga ett annat fält",
|
||||
"content-manager.containers.SettingPage.add.relational-field": "Infoga ett annat relationsfält",
|
||||
"content-manager.containers.SettingPage.attributes": "Attributfält",
|
||||
"content-manager.containers.SettingPage.attributes.description": "Definiera ordningen på attributen",
|
||||
"content-manager.containers.SettingPage.editSettings.description": "Dra och släpp fälten för att skapa layouten",
|
||||
@ -592,7 +633,6 @@
|
||||
"content-manager.containers.SettingPage.listSettings.description": "Konfigurera alternativen för denna samlingstyp",
|
||||
"content-manager.containers.SettingPage.listSettings.title": "Listvy (inställningar)",
|
||||
"content-manager.containers.SettingPage.pluginHeaderDescription": "Konfigurera de specifika inställningarna för denna samlingstyp",
|
||||
"content-manager.containers.SettingPage.relations": "Relationsfält",
|
||||
"content-manager.containers.SettingPage.settings": "Inställningar",
|
||||
"content-manager.containers.SettingPage.view": "Visa",
|
||||
"content-manager.containers.SettingViewModel.pluginHeader.title": "Innehållshanterare - {name}",
|
||||
@ -605,7 +645,7 @@
|
||||
"content-manager.containers.SettingsView.list.title": "Visa konfigurationer",
|
||||
"content-manager.edit-settings-view.link-to-ctb.components": "Redigera komponenten",
|
||||
"content-manager.edit-settings-view.link-to-ctb.content-types": "Redigera innehållstypen",
|
||||
"content-manager.emptyAttributes.button": "Gå till samlingstypbyggaren",
|
||||
"content-manager.emptyAttributes.button": "Gå till samlingstypskaparen",
|
||||
"content-manager.emptyAttributes.description": "Lägg till ditt första fält i din samlingstyp",
|
||||
"content-manager.emptyAttributes.title": "Det finns inga fält ännu",
|
||||
"content-manager.error.attribute.key.taken": "Detta värde finns redan",
|
||||
@ -672,14 +712,15 @@
|
||||
"content-manager.success.record.save": "Sparade",
|
||||
"content-manager.success.record.unpublish": "Opublicerade",
|
||||
"content-manager.utils.data-loaded": "{number, plural, =1 {Posten} other {Posterna}} har laddats",
|
||||
"content-manager.apiError.This attribute must be unique": "{field} måste vara unikt",
|
||||
"content-manager.popUpWarning.warning.has-draft-relations.title": "Bekräfta",
|
||||
"content-manager.popUpWarning.warning.publish-question": "Vill du fortfarande publicera?",
|
||||
"content-manager.popUpwarning.warning.has-draft-relations.button-confirm": "Ja, publicera",
|
||||
"content-manager.popUpwarning.warning.has-draft-relations.message": "<b>{count, plural, =0 { av dina innehållsrelationer är} one { av dina innehållsrelationer är} other { av dina innehållsrelationer är}}</b> inte publicerade ännu.<br></br>Det kan skapa trasiga länkar och fel i ditt projekt.",
|
||||
"dark": "Mörkt",
|
||||
"form.button.continue": "Fortsätt",
|
||||
"form.button.done": "Klar",
|
||||
"global.search": "Sök",
|
||||
"global.actions": "Åtgärder",
|
||||
"global.active": "Aktiv",
|
||||
"global.back": "Backa",
|
||||
"global.cancel": "Avbryt",
|
||||
"global.change-password": "Ändra lösenord",
|
||||
@ -693,7 +734,6 @@
|
||||
"global.documentation": "Dokumentation",
|
||||
"global.enabled": "Aktiv",
|
||||
"global.finish": "Slutför",
|
||||
"global.inactive": "Inaktiv",
|
||||
"global.marketplace": "Marketplace",
|
||||
"global.name": "Namn",
|
||||
"global.none": "Ingen",
|
||||
@ -701,20 +741,20 @@
|
||||
"global.plugins": "Plugins",
|
||||
"global.plugins.content-manager": "Innehållshanterare",
|
||||
"global.plugins.content-manager.description": "Snabbt sätt att se, redigera och ta bort data i din databas.",
|
||||
"global.plugins.content-type-builder": "Innehållstypsbyggare",
|
||||
"global.plugins.content-type-builder": "Innehållstypsskapare",
|
||||
"global.plugins.content-type-builder.description": "Modellera datastrukturen för ditt API. Skapa nya fält och relationer snabbt. Filerna skapas och uppdateras automatiskt i ditt projekt.",
|
||||
"global.plugins.documentation": "Dokumentation",
|
||||
"global.plugins.documentation.description": "Skapa ett OpenAPI-dokument och visualisera ditt API med SWAGGER UI.",
|
||||
"global.plugins.email": "Email",
|
||||
"global.plugins.email.description": "Konfigurera din applikation för att skicka e-post.",
|
||||
"global.plugins.upload": "Mediebibliotek",
|
||||
"global.plugins.upload.description": "Mediafilhantering.",
|
||||
"global.plugins.graphql": "GraphQL",
|
||||
"global.plugins.graphql.description": "Lägger till GraphQL-endpoint med standard-API-metoder.",
|
||||
"global.plugins.documentation": "Dokumentation",
|
||||
"global.plugins.documentation.description": "Skapa ett OpenAPI-dokument och visualisera ditt API med SWAGGER UI.",
|
||||
"global.plugins.i18n": "Internationalisering",
|
||||
"global.plugins.i18n.description": "Denna plugin gör det möjligt att skapa, läsa och uppdatera innehåll på olika språk, både från adminpanelen och från API:et.",
|
||||
"global.plugins.sentry": "Sentry",
|
||||
"global.plugins.sentry.description": "Skicka Strapi-fel till Sentry.",
|
||||
"global.plugins.upload": "Mediebibliotek",
|
||||
"global.plugins.upload.description": "Mediafilhantering.",
|
||||
"global.plugins.users-permissions": "Roller och behörigheter",
|
||||
"global.plugins.users-permissions.description": "Skydda ditt API med en autentiseringsprocess baserad på JWT. Detta plugin kommer också med ACL som låter dig hantera behörigheterna mellan användargrupperna.",
|
||||
"global.profile": "Profil",
|
||||
@ -722,23 +762,12 @@
|
||||
"global.reset-password": "Återställ lösenord",
|
||||
"global.roles": "Roller",
|
||||
"global.save": "Spara",
|
||||
"global.search": "Sök",
|
||||
"global.see-more": "Se mer",
|
||||
"global.select": "Välj",
|
||||
"global.select-all-entries": "Välj alla poster",
|
||||
"global.settings": "Inställningar",
|
||||
"global.strapi-author": "Författare",
|
||||
"global.strapi-editor": "Redigerare",
|
||||
"global.strapi-super-admin": "Superadministratör",
|
||||
"global.table.header.email": "E-post",
|
||||
"global.table.header.firstname": "Förnamn",
|
||||
"global.table.header.isActive": "Användarstatus",
|
||||
"global.table.header.lastname": "Efternamn",
|
||||
"global.table.header.roles": "Roller",
|
||||
"global.table.header.username": "Användarnamn",
|
||||
"global.type": "Typ",
|
||||
"global.users": "Användare",
|
||||
"light": "Ljust",
|
||||
"notification.contentType.relations.conflict": "Innehållstypen har inkompatibla relationer",
|
||||
"notification.default.title": "Information:",
|
||||
"notification.error": "Ett fel uppstod",
|
||||
@ -750,9 +779,12 @@
|
||||
"notification.success.delete": "Objektet har tagits bort",
|
||||
"notification.success.saved": "Sparat",
|
||||
"notification.success.title": "Lyckat:",
|
||||
"notification.success.tokencreated": "API-token skapad",
|
||||
"notification.success.tokenedited": "API-token uppdaterad",
|
||||
"notification.error.tokennamenotunique": "Namnet används redan av en annan token",
|
||||
"notification.version.update.message": "En ny version av Strapi är tillgänglig!",
|
||||
"notification.warning.404": "404 - sidan finns inte",
|
||||
"notification.warning.title": "Varning:",
|
||||
"notification.warning.404": "404 - sidan finns inte",
|
||||
"or": "ELLER",
|
||||
"request.error.model.unknown": "Denna modellen finns inte",
|
||||
"skipToContent": "Hoppa till innehållet",
|
||||
|
@ -67,7 +67,7 @@ module.exports = {
|
||||
required: false,
|
||||
},
|
||||
lifespan: {
|
||||
type: 'integer',
|
||||
type: 'biginteger',
|
||||
configurable: false,
|
||||
required: false,
|
||||
},
|
||||
|
@ -177,12 +177,12 @@ describe('Admin API Token v2 CRUD (api)', () => {
|
||||
});
|
||||
});
|
||||
|
||||
test('Creates a token with a lifespan', async () => {
|
||||
test('Creates a token with a 7-day lifespan', async () => {
|
||||
const now = Date.now();
|
||||
jest.useFakeTimers('modern').setSystemTime(now);
|
||||
|
||||
const body = {
|
||||
name: 'api-token_tests-lifespan',
|
||||
name: 'api-token_tests-lifespan7',
|
||||
description: 'api-token_tests-description',
|
||||
type: 'read-only',
|
||||
lifespan: 7 * 24 * 60 * 60 * 1000, // 7 days
|
||||
@ -206,7 +206,85 @@ describe('Admin API Token v2 CRUD (api)', () => {
|
||||
lastUsedAt: null,
|
||||
updatedAt: expect.toBeISODate(),
|
||||
expiresAt: expect.toBeISODate(),
|
||||
lifespan: body.lifespan,
|
||||
lifespan: String(body.lifespan),
|
||||
});
|
||||
|
||||
// Datetime stored in some databases may lose ms accuracy, so allow a range of 2 seconds for timing edge cases
|
||||
expect(Date.parse(res.body.data.expiresAt)).toBeGreaterThan(now + body.lifespan - 2000);
|
||||
expect(Date.parse(res.body.data.expiresAt)).toBeLessThan(now + body.lifespan + 2000);
|
||||
|
||||
jest.useRealTimers();
|
||||
});
|
||||
|
||||
test('Creates a token with a 30-day lifespan', async () => {
|
||||
const now = Date.now();
|
||||
jest.useFakeTimers('modern').setSystemTime(now);
|
||||
|
||||
const body = {
|
||||
name: 'api-token_tests-lifespan30',
|
||||
description: 'api-token_tests-description',
|
||||
type: 'read-only',
|
||||
lifespan: 30 * 24 * 60 * 60 * 1000, // 30 days
|
||||
};
|
||||
|
||||
const res = await rq({
|
||||
url: '/admin/api-tokens',
|
||||
method: 'POST',
|
||||
body,
|
||||
});
|
||||
|
||||
expect(res.statusCode).toBe(201);
|
||||
expect(res.body.data).toStrictEqual({
|
||||
accessKey: expect.any(String),
|
||||
name: body.name,
|
||||
permissions: [],
|
||||
description: body.description,
|
||||
type: body.type,
|
||||
id: expect.any(Number),
|
||||
createdAt: expect.toBeISODate(),
|
||||
lastUsedAt: null,
|
||||
updatedAt: expect.toBeISODate(),
|
||||
expiresAt: expect.toBeISODate(),
|
||||
lifespan: String(body.lifespan),
|
||||
});
|
||||
|
||||
// Datetime stored in some databases may lose ms accuracy, so allow a range of 2 seconds for timing edge cases
|
||||
expect(Date.parse(res.body.data.expiresAt)).toBeGreaterThan(now + body.lifespan - 2000);
|
||||
expect(Date.parse(res.body.data.expiresAt)).toBeLessThan(now + body.lifespan + 2000);
|
||||
|
||||
jest.useRealTimers();
|
||||
});
|
||||
|
||||
test('Creates a token with a 90-day lifespan', async () => {
|
||||
const now = Date.now();
|
||||
jest.useFakeTimers('modern').setSystemTime(now);
|
||||
|
||||
const body = {
|
||||
name: 'api-token_tests-lifespan90',
|
||||
description: 'api-token_tests-description',
|
||||
type: 'read-only',
|
||||
lifespan: 90 * 24 * 60 * 60 * 1000, // 90 days
|
||||
};
|
||||
|
||||
const res = await rq({
|
||||
url: '/admin/api-tokens',
|
||||
method: 'POST',
|
||||
body,
|
||||
});
|
||||
|
||||
expect(res.statusCode).toBe(201);
|
||||
expect(res.body.data).toStrictEqual({
|
||||
accessKey: expect.any(String),
|
||||
name: body.name,
|
||||
permissions: [],
|
||||
description: body.description,
|
||||
type: body.type,
|
||||
id: expect.any(Number),
|
||||
createdAt: expect.toBeISODate(),
|
||||
lastUsedAt: null,
|
||||
updatedAt: expect.toBeISODate(),
|
||||
expiresAt: expect.toBeISODate(),
|
||||
lifespan: String(body.lifespan),
|
||||
});
|
||||
|
||||
// Datetime stored in some databases may lose ms accuracy, so allow a range of 2 seconds for timing edge cases
|
||||
|
@ -16,7 +16,7 @@
|
||||
"attribute.json": "JSON",
|
||||
"attribute.json.description": "Dados no formato de JSON",
|
||||
"attribute.media": "Mídia",
|
||||
"attribute.media.description": "Arquivos como imagens, videos, etc",
|
||||
"attribute.media.description": "Arquivos como imagens, vídeos, etc",
|
||||
"attribute.null": " ",
|
||||
"attribute.number": "Número",
|
||||
"attribute.number.description": "Números (inteiro, flutuante, decimal)",
|
||||
@ -37,11 +37,11 @@
|
||||
"button.component.create": "Criar novo componente",
|
||||
"button.model.create": "Criar novo tipo de coleção",
|
||||
"button.single-types.create": "Criar novo tipo único",
|
||||
"component.repeatable": "(repetivel)",
|
||||
"component.repeatable": "(repetível)",
|
||||
"components.SelectComponents.displayed-value": "{number, plural, =0 {# componentes} one {# componente} other {# componentes}} selecionados",
|
||||
"components.componentSelect.no-component-available": "Você já adicionou todos os seus componentes",
|
||||
"components.componentSelect.no-component-available.with-search": "Não há nenhum componente que corresponda à sua pesquisa",
|
||||
"components.componentSelect.value-component": "{number} component selected (type to search for a component)",
|
||||
"components.componentSelect.value-component": "{number} componente selecionado (digite para pesquisar por um componente)",
|
||||
"components.componentSelect.value-components": "{number} componentes selecionados",
|
||||
"configurations": "Configurações",
|
||||
"contentType.apiId-plural.description": "ID de API pluralizado",
|
||||
@ -65,7 +65,7 @@
|
||||
"error.validation.positive": "Valor deve ser positivo",
|
||||
"error.validation.regex": "O padrão Regex é inválido",
|
||||
"error.validation.relation.targetAttribute-taken": "Este atributo já está sendo usado",
|
||||
"form.attribute.component.option.add": "Adicioanr componente",
|
||||
"form.attribute.component.option.add": "Adicionar componente",
|
||||
"form.attribute.component.option.create": "Criar novo componente",
|
||||
"form.attribute.component.option.create.description": "Um componente é compartilhado entre tipos e componentes, ele estará disponível e acessível em qualquer lugar.",
|
||||
"form.attribute.component.option.repeatable": "Componente repetível",
|
||||
@ -149,14 +149,14 @@
|
||||
"modalForm.header.categories": "Categorias",
|
||||
"modalForm.singleType.header-create": "Criar tipo único",
|
||||
"modalForm.sub-header.addComponentToDynamicZone": "Adicionar novo componente à zona dinâmica",
|
||||
"modalForm.sub-header.attribute.create": "Adicioanr novo campo {type}",
|
||||
"modalForm.sub-header.attribute.create.step": "Adicioanr novo componente ({step}/2)",
|
||||
"modalForm.sub-header.attribute.create": "Adicionar novo campo {type}",
|
||||
"modalForm.sub-header.attribute.create.step": "Adicionar novo componente ({step}/2)",
|
||||
"modalForm.sub-header.attribute.edit": "Editar {name}",
|
||||
"modalForm.sub-header.chooseAttribute.collectionType": "Selecione um campo para seu tipo de coleção",
|
||||
"modalForm.sub-header.chooseAttribute.component": "Selecione um campo para seu componente",
|
||||
"modalForm.sub-header.chooseAttribute.singleType": "Selecione um campo para seu tipo único",
|
||||
"modelPage.attribute.relation-polymorphic": "Relação (polimórfica)",
|
||||
"modelPage.attribute.relationWith": "Relation with",
|
||||
"modelPage.attribute.relationWith": "Relação com",
|
||||
"notification.error.dynamiczone-min.validation": "Pelo menos um componente é necessário em uma zona dinâmica para poder salvar um tipo de conteúdo",
|
||||
"notification.info.autoreaload-disable": "O recurso autoReload é necessário para usar este plugin. Inicie seu servidor com `strapi develop`",
|
||||
"notification.info.creating.notSaved": "Por favor, salve seu trabalho antes de criar um novo tipo de coleção ou componente",
|
||||
|
@ -226,8 +226,7 @@ const cleanOrderColumns = async ({ id, attribute, db, inverseRelIds, transaction
|
||||
// https://github.com/knex/knex/issues/2504
|
||||
switch (strapi.db.dialect.client) {
|
||||
case 'mysql':
|
||||
await db
|
||||
.getConnection()
|
||||
await db.connection
|
||||
.raw(
|
||||
`UPDATE
|
||||
?? as a,
|
||||
@ -243,17 +242,16 @@ const cleanOrderColumns = async ({ id, attribute, db, inverseRelIds, transaction
|
||||
.transacting(trx);
|
||||
break;
|
||||
default:
|
||||
await db
|
||||
.getConnection()
|
||||
await db.connection
|
||||
.raw(
|
||||
`UPDATE ?? as a
|
||||
SET ${update.join(', ')}
|
||||
FROM (
|
||||
SELECT ${select.join(', ')}
|
||||
FROM ??
|
||||
WHERE ${where.join(' OR ')}
|
||||
) AS b
|
||||
WHERE b.id = a.id`,
|
||||
SET ${update.join(', ')}
|
||||
FROM (
|
||||
SELECT ${select.join(', ')}
|
||||
FROM ??
|
||||
WHERE ${where.join(' OR ')}
|
||||
) AS b
|
||||
WHERE b.id = a.id`,
|
||||
[joinTable.name, ...updateBinding, ...selectBinding, joinTable.name, ...whereBinding]
|
||||
)
|
||||
.transacting(trx);
|
||||
|
4
packages/core/database/lib/index.d.ts
vendored
4
packages/core/database/lib/index.d.ts
vendored
@ -1,6 +1,6 @@
|
||||
import { LifecycleProvider } from './lifecycles';
|
||||
import { MigrationProvider } from './migrations';
|
||||
import { SchemaProvideer } from './schema';
|
||||
import { SchemaProvider } from './schema';
|
||||
|
||||
type LogicalOperators<T> = {
|
||||
$and?: WhereParams<T>[];
|
||||
@ -154,7 +154,7 @@ interface DatabaseConfig {
|
||||
models: ModelConfig[];
|
||||
}
|
||||
export interface Database {
|
||||
schema: SchemaProvideer;
|
||||
schema: SchemaProvider;
|
||||
lifecycles: LifecycleProvider;
|
||||
migrations: MigrationProvider;
|
||||
entityManager: EntityManager;
|
||||
|
4
packages/core/database/lib/schema/index.d.ts
vendored
4
packages/core/database/lib/schema/index.d.ts
vendored
@ -38,7 +38,7 @@ export interface Model {
|
||||
};
|
||||
}
|
||||
|
||||
export interface SchemaProvideer {
|
||||
export interface SchemaProvider {
|
||||
sync(): Promise<void>;
|
||||
syncSchema(): Promise<void>;
|
||||
reset(): Promise<void>;
|
||||
@ -46,4 +46,4 @@ export interface SchemaProvideer {
|
||||
drop(): Promise<void>;
|
||||
}
|
||||
|
||||
export default function(db: Database): SchemaProvideer;
|
||||
export default function(db: Database): SchemaProvider;
|
||||
|
12
packages/plugins/color-picker/admin/src/translations/sv.json
Normal file
12
packages/plugins/color-picker/admin/src/translations/sv.json
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"color-picker.label": "Färgväljare",
|
||||
"color-picker.description": "Välj färger",
|
||||
"color-picker.settings": "Inställningar",
|
||||
"color-picket.input.format": "HEX",
|
||||
"color-picker.options.advanced.regex": "RegEx-mönster",
|
||||
"color-picker.options.advanced.regex.description": "Ange ett regex-mönster för att validera HEX-värdet",
|
||||
"color-picker.options.advanced.requiredField": "Obligatoriskt fält",
|
||||
"color-picker.options.advanced.requiredField.description": "Du kommer inte att kunna skapa en post om det här fältet är tomt",
|
||||
"color-picker.toggle.aria-label": "Växla färgväljare",
|
||||
"color-picker.input.aria-label": "Färgväljarinmatning"
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
{
|
||||
"coming-soon": "Det här innehållet är för närvarande under uppbyggnad och kommer tillbaka om några veckor!",
|
||||
"components.Row.open": "Öppen",
|
||||
"components.Row.regenerate": "Återskapa",
|
||||
"containers.HomePage.Block.title": "Versioner",
|
||||
"containers.HomePage.Button.update": "Uppdatera",
|
||||
"containers.HomePage.PluginHeader.title": "Dokumentation - Inställningar",
|
||||
"containers.HomePage.PopUpWarning.confirm": "Jag förstår",
|
||||
"containers.HomePage.PopUpWarning.message": "Är du säker på att du vill ta bort denna versionen?",
|
||||
"containers.HomePage.copied": "Token har kopierats till urklipp",
|
||||
"containers.HomePage.form.jwtToken": "Hämta din jwt-token",
|
||||
"containers.HomePage.form.jwtToken.description": "Kopiera denna token och använd den i swagger för att göra förfrågningar",
|
||||
"containers.HomePage.form.password": "Lösenord",
|
||||
"containers.HomePage.form.password.inputDescription": "Ställ in lösenordet som ska behövas för att komma åt dokumentationen",
|
||||
"containers.HomePage.form.restrictedAccess": "Begränsad åtkomst",
|
||||
"containers.HomePage.form.restrictedAccess.inputDescription": "Gör dokumentationensrutten privat. Som standard är åtkomsten publik",
|
||||
"containers.HomePage.form.showGeneratedFiles": "Visa genererade filer",
|
||||
"containers.HomePage.form.showGeneratedFiles.inputDescription": "Användbart när du vill överskrida den automatiskt genererade dokumentationen. \nPluginet genererar filer uppdelade efter modell och plugin. \nGenom att aktivera det här blir det lättare att anpassa din dokumentation",
|
||||
"error.deleteDoc.versionMissing": "Den version du försöker ta bort finns inte.",
|
||||
"error.noVersion": "En version krävs",
|
||||
"error.regenerateDoc": "Ett fel uppstod när dokumentet återskapades",
|
||||
"error.regenerateDoc.versionMissing": "Den version du försöker generera finns inte",
|
||||
"notification.delete.success": "Dokument raderat",
|
||||
"notification.generate.success": "Dokument genererat",
|
||||
"notification.update.success": "Inställningarna har uppdaterats",
|
||||
"pages.PluginPage.Button.open": "Öppna dokumentation",
|
||||
"pages.PluginPage.header.description": "Konfigurera dokumentationspluginet",
|
||||
"pages.PluginPage.table.generated": "Senast genererade",
|
||||
"pages.PluginPage.table.icon.regenerate": "Återskapa {target}",
|
||||
"pages.PluginPage.table.icon.show": "Öppna {target}",
|
||||
"pages.PluginPage.table.version": "Version",
|
||||
"pages.SettingsPage.Button.description": "Konfigurera dokumentationspluginet",
|
||||
"pages.SettingsPage.header.save": "Spara",
|
||||
"pages.SettingsPage.toggle.hint": "Gör dokumentationensrutten privat",
|
||||
"pages.SettingsPage.toggle.label": "Begränsad åtkomst",
|
||||
"plugin.description.long": "Skapa ett OpenAPI-dokument och visualisera din API med SWAGGER UI.",
|
||||
"plugin.description.short": "Skapa ett OpenAPI-dokument och visualisera din API med SWAGGER UI.",
|
||||
"plugin.name": "Dokumentation"
|
||||
}
|
4
packages/plugins/graphql/admin/src/translations/sv.json
Normal file
4
packages/plugins/graphql/admin/src/translations/sv.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"plugin.description.long": "Lägger till en GraphQL-rutt med standard API-metoder.",
|
||||
"plugin.description.short": "Lägger till en GraphQL-rutt med standard API-metoder."
|
||||
}
|
4
packages/plugins/sentry/admin/src/translations/sv.json
Normal file
4
packages/plugins/sentry/admin/src/translations/sv.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"plugin.description.long": "Skicka felkoder från strapi som Sentry-events.",
|
||||
"plugin.description.short": "Skicka felkoder från strapi som Sentry-events."
|
||||
}
|
@ -2,20 +2,29 @@
|
||||
"BoundRoute.title": "Bind rutt till",
|
||||
"EditForm.inputSelect.description.role": "Den bifogar den nya autentiserade användaren till den valda rollen.",
|
||||
"EditForm.inputSelect.label.role": "Standardroll för autentiserade användare",
|
||||
"EditForm.inputToggle.description.email": "Tillåt ej användaren att skapa flera konton med samma e-postadress med olika autentiseringsleverantörer.",
|
||||
"EditForm.inputToggle.description.email": "Tillåt ej användaren att skapa flera konton med samma e-postadress med olika autentiseringstjänster.",
|
||||
"EditForm.inputToggle.description.email-confirmation": "När aktiverat (PÅ) får nya registrerade användare ett bekräftelsemeddelande.",
|
||||
"EditForm.inputToggle.description.email-confirmation-redirection": "När du har bekräftat din e-post väljer du var du ska omdirigeras.",
|
||||
"EditForm.inputToggle.description.email-reset-password": "URL:en till din applikations sida för återställning av lösenord",
|
||||
"EditForm.inputToggle.description.sign-up": "När inaktiverad (AV) är registreringsprocessen förbjuden. Ingen kan prenumerera längre oavsett vilken leverantör som används.",
|
||||
"EditForm.inputToggle.description.sign-up": "När inaktiverad (AV) är registreringsprocessen förbjuden. Ingen kan prenumerera längre oavsett vilken autentiseringstjänst som används.",
|
||||
"EditForm.inputToggle.label.email": "Ett konto per e-postadress",
|
||||
"EditForm.inputToggle.label.email-confirmation": "Aktivera e-postbekräftelse",
|
||||
"EditForm.inputToggle.label.email-confirmation-redirection": "Omdirigerings-url",
|
||||
"EditForm.inputToggle.label.email-reset-password": "Återställ lösenordssidan",
|
||||
"EditForm.inputToggle.label.sign-up": "Tillåt registreringar",
|
||||
"EditForm.inputToggle.placeholder.email-confirmation-redirection": "t.ex: https://yourfrontend.com/email-confirmation-redirection",
|
||||
"EditForm.inputToggle.placeholder.email-reset-password": "t.ex: https://yourfrontend.com/reset-password",
|
||||
"EditPage.form.roles": "Rolldetaljer",
|
||||
"Email.template.data.loaded": "E-postmallar har laddats",
|
||||
"Email.template.email_confirmation": "Bekräftelse av e-postadress",
|
||||
"Email.template.form.edit.label": "Redigera en mall",
|
||||
"Email.template.table.action.label": "händelse",
|
||||
"Email.template.table.icon.label": "ikon",
|
||||
"Email.template.table.name.label": "namn",
|
||||
"Form.advancedSettings.data.loaded": "Data för avancerade inställningar har laddats",
|
||||
"HeaderNav.link.advancedSettings": "Avancerade inställningar",
|
||||
"HeaderNav.link.emailTemplates": "E-postmall",
|
||||
"HeaderNav.link.providers": "Leverantörer",
|
||||
"HeaderNav.link.providers": "Autentiseringstjänster",
|
||||
"Plugin.permissions.plugins.description": "Definiera alla tillåtna åtgärder för {name} plugin.",
|
||||
"Plugins.header.description": "Endast åtgärder som är bundna av en rutt listas nedan.",
|
||||
"Plugins.header.title": "Behörigheter",
|
||||
@ -32,7 +41,7 @@
|
||||
"PopUpForm.Email.options.object.placeholder": "Bekräfta din e-postadress för %APP_NAME%",
|
||||
"PopUpForm.Email.options.response_email.label": "Svarsmail",
|
||||
"PopUpForm.Email.options.response_email.placeholder": "kai@doe.com",
|
||||
"PopUpForm.Providers.enabled.description": "Om inaktiverat kan användarna inte använda den här leverantören.",
|
||||
"PopUpForm.Providers.enabled.description": "Om inaktiverat kan användarna inte använda den här tjänsten.",
|
||||
"PopUpForm.Providers.enabled.label": "Tillåt",
|
||||
"PopUpForm.Providers.key.label": "Klient ID",
|
||||
"PopUpForm.Providers.key.placeholder": "TEXT",
|
||||
@ -41,13 +50,29 @@
|
||||
"PopUpForm.Providers.secret.label": "Klient hemlighet",
|
||||
"PopUpForm.Providers.secret.placeholder": "TEXT",
|
||||
"PopUpForm.Providers.subdomain.label": "Host URI (Subdomän)",
|
||||
"PopUpForm.Providers.subdomain.placeholder": "min.subdomän.com",
|
||||
"PopUpForm.Providers.subdomain.placeholder": "min.subdoman.com",
|
||||
"PopUpForm.header.edit.email-templates": "Redigera e-postmallar",
|
||||
"PopUpForm.header.edit.providers": "Redigera leverantör",
|
||||
"PopUpForm.header.edit.providers": "Redigera tjänst",
|
||||
"Providers.data.loaded": "Tjänster har laddats in",
|
||||
"Providers.image": "Bild",
|
||||
"Providers.status": "Status",
|
||||
"Roles.empty": "Du har inga roller än.",
|
||||
"Roles.empty.search": "Inga roller matchar sökningen.",
|
||||
"Settings.roles.deleted": "Roll borttagen",
|
||||
"Settings.roles.edited": "Role redigerad",
|
||||
"Settings.roles.edited": "Roll redigerad",
|
||||
"Settings.section-label": "Roller och behörigheter",
|
||||
"components.Input.error.validation.email": "E-postadressen är ogiltig",
|
||||
"components.Input.error.validation.json": "Detta är inte giltig JSON",
|
||||
"components.Input.error.validation.max": "Värdet är för högt.",
|
||||
"components.Input.error.validation.maxLength": "Värdet är för långt.",
|
||||
"components.Input.error.validation.min": "Värdet är för lågt.",
|
||||
"components.Input.error.validation.minLength": "Värdet är för kort.",
|
||||
"components.Input.error.validation.minSupMax": "Minsta värdet är större än maximalt värde.",
|
||||
"components.Input.error.validation.regex": "Värdet matchar inte regex-mönstret.",
|
||||
"components.Input.error.validation.required": "Värdet är obligatoriskt.",
|
||||
"components.Input.error.validation.unique": "Detta värdet är redan använt.",
|
||||
"notification.success.submit": "Inställningar har uppdaterats",
|
||||
"page.title": "Inställningar - Roller",
|
||||
"plugin.description.long": "Skydda ditt API med en fullständig autentiseringsprocess baserad på JWT. Detta plugin har också en ACL-strategi som låter dig hantera behörigheterna mellan användargrupperna.",
|
||||
"plugin.description.short": "Skydda ditt API med en fullständig autentiseringsprocess baserad på JWT",
|
||||
"plugin.name": "Roller och behörigheter",
|
||||
|
Loading…
x
Reference in New Issue
Block a user