web: use mermaidjs (#3623)
* flows: move flow diagram logic to separate file Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * idk Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * make web component work Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * remove subgraph for now Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * cleanup Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * add denied connection Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * fix Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * wrong list Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * fix tests Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * use custom styles Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * i18n Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * fix typing issues, make diagram centered Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * fix tests Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * fix lint Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
@ -2,10 +2,11 @@ import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
|
||||
import { EVENT_REFRESH } from "@goauthentik/common/constants";
|
||||
import { AKElement } from "@goauthentik/elements/Base";
|
||||
import "@goauthentik/elements/EmptyState";
|
||||
import FlowChart from "flowchart.js";
|
||||
import mermaid from "mermaid";
|
||||
|
||||
import { TemplateResult, html } from "lit";
|
||||
import { CSSResult, TemplateResult, css, html } from "lit";
|
||||
import { customElement, property } from "lit/decorators.js";
|
||||
import { unsafeHTML } from "lit/directives/unsafe-html.js";
|
||||
|
||||
import { FlowsApi } from "@goauthentik/api";
|
||||
|
||||
@ -35,34 +36,37 @@ export class FlowDiagram extends AKElement {
|
||||
@property({ attribute: false })
|
||||
diagram?: string;
|
||||
|
||||
@property()
|
||||
fontColour: string = FONT_COLOUR_DARK_MODE;
|
||||
|
||||
@property()
|
||||
fill: string = FILL_DARK_MODE;
|
||||
|
||||
handlerBound = false;
|
||||
|
||||
createRenderRoot(): Element | ShadowRoot {
|
||||
return this;
|
||||
}
|
||||
|
||||
get isInViewport(): boolean {
|
||||
const rect = this.getBoundingClientRect();
|
||||
return !(rect.x + rect.y + rect.width + rect.height === 0);
|
||||
}
|
||||
|
||||
static get styles(): CSSResult[] {
|
||||
return [
|
||||
css`
|
||||
:host {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
`,
|
||||
];
|
||||
}
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
const matcher = window.matchMedia("(prefers-color-scheme: light)");
|
||||
const handler = (ev?: MediaQueryListEvent) => {
|
||||
if (ev?.matches || matcher.matches) {
|
||||
this.fontColour = FONT_COLOUR_LIGHT_MODE;
|
||||
this.fill = FILL_LIGHT_MODE;
|
||||
} else {
|
||||
this.fontColour = FONT_COLOUR_DARK_MODE;
|
||||
this.fill = FILL_DARK_MODE;
|
||||
}
|
||||
console.log("setting config");
|
||||
mermaid.initialize({
|
||||
logLevel: "error",
|
||||
startOnLoad: false,
|
||||
theme: ev?.matches || matcher.matches ? "default" : "dark",
|
||||
flowchart: {
|
||||
curve: "linear",
|
||||
},
|
||||
});
|
||||
this.requestUpdate();
|
||||
};
|
||||
matcher.addEventListener("change", handler);
|
||||
@ -93,18 +97,9 @@ export class FlowDiagram extends AKElement {
|
||||
console.debug(`authentik/flow/diagram: failed to remove element ${el}`);
|
||||
}
|
||||
});
|
||||
if (this.diagram) {
|
||||
const diagram = FlowChart.parse(this.diagram);
|
||||
diagram.drawSVG(this, {
|
||||
"font-color": this.fontColour,
|
||||
"line-color": "#bebebe",
|
||||
"element-color": "#bebebe",
|
||||
"fill": this.fill,
|
||||
"yes-text": "Policy passes",
|
||||
"no-text": "Policy denies",
|
||||
});
|
||||
return html``;
|
||||
if (!this.diagram) {
|
||||
return html`<ak-empty-state ?loading=${true}></ak-empty-state>`;
|
||||
}
|
||||
return html`<ak-empty-state ?loading=${true}></ak-empty-state>`;
|
||||
return html`${unsafeHTML(mermaid.render("graph", this.diagram))}`;
|
||||
}
|
||||
}
|
||||
|
@ -83,7 +83,7 @@ export class FlowViewPage extends AKElement {
|
||||
<div
|
||||
class="pf-c-card pf-l-grid__item pf-m-12-col pf-m-2-col-on-xl pf-m-2-col-on-2xl"
|
||||
>
|
||||
<div class="pf-c-card__title">${t`Related`}</div>
|
||||
<div class="pf-c-card__title">${t`Related actions`}</div>
|
||||
<div class="pf-c-card__body">
|
||||
<dl class="pf-c-description-list">
|
||||
<div class="pf-c-description-list__group">
|
||||
@ -104,7 +104,7 @@ export class FlowViewPage extends AKElement {
|
||||
</ak-flow-form>
|
||||
<button
|
||||
slot="trigger"
|
||||
class="pf-c-button pf-m-secondary"
|
||||
class="pf-c-button pf-m-block pf-m-secondary"
|
||||
>
|
||||
${t`Edit`}
|
||||
</button>
|
||||
@ -119,7 +119,7 @@ export class FlowViewPage extends AKElement {
|
||||
<dd class="pf-c-description-list__description">
|
||||
<div class="pf-c-description-list__text">
|
||||
<button
|
||||
class="pf-c-button pf-m-primary"
|
||||
class="pf-c-button pf-m-block pf-m-primary"
|
||||
@click=${() => {
|
||||
const finalURL = `${
|
||||
window.location.origin
|
||||
@ -132,7 +132,7 @@ export class FlowViewPage extends AKElement {
|
||||
${t`Normal`}
|
||||
</button>
|
||||
<button
|
||||
class="pf-c-button pf-m-secondary"
|
||||
class="pf-c-button pf-m-block pf-m-secondary"
|
||||
@click=${() => {
|
||||
new FlowsApi(DEFAULT_CONFIG)
|
||||
.flowsInstancesExecuteRetrieve({
|
||||
@ -151,7 +151,7 @@ export class FlowViewPage extends AKElement {
|
||||
${t`with current user`}
|
||||
</button>
|
||||
<button
|
||||
class="pf-c-button pf-m-secondary"
|
||||
class="pf-c-button pf-m-block pf-m-secondary"
|
||||
@click=${() => {
|
||||
new FlowsApi(DEFAULT_CONFIG)
|
||||
.flowsInstancesExecuteRetrieve({
|
||||
@ -187,7 +187,7 @@ export class FlowViewPage extends AKElement {
|
||||
<dd class="pf-c-description-list__description">
|
||||
<div class="pf-c-description-list__text">
|
||||
<a
|
||||
class="pf-c-button pf-m-secondary"
|
||||
class="pf-c-button pf-m-block pf-m-secondary"
|
||||
href=${this.flow.exportUrl}
|
||||
>
|
||||
${t`Export`}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -646,6 +646,10 @@ msgstr "Auto-detect (based on your browser)"
|
||||
msgid "Automate and template configuration within authentik."
|
||||
msgstr "Automate and template configuration within authentik."
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Automatic import"
|
||||
msgstr "Automatic import"
|
||||
|
||||
#: src/user/UserInterface.ts
|
||||
msgid "Avatar image"
|
||||
msgstr "Avatar image"
|
||||
@ -2471,6 +2475,7 @@ msgstr "Forgot password?"
|
||||
msgid "Forgot username or password?"
|
||||
msgstr "Forgot username or password?"
|
||||
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
@ -3694,6 +3699,7 @@ msgstr "No additional data available."
|
||||
msgid "No additional setup is required."
|
||||
msgstr "No additional setup is required."
|
||||
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
@ -3998,6 +4004,10 @@ msgstr "Optionally set the 'FriendlyName' value of the Assertion attribute."
|
||||
msgid "Or"
|
||||
msgstr "Or"
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Or manually import"
|
||||
msgstr "Or manually import"
|
||||
|
||||
#: src/admin/flows/BoundStagesList.ts
|
||||
#: src/admin/flows/StageBindingForm.ts
|
||||
#: src/admin/policies/BoundPoliciesList.ts
|
||||
@ -4152,8 +4162,12 @@ msgid "Path"
|
||||
msgstr "Path"
|
||||
|
||||
#: src/admin/stages/user_write/UserWriteStageForm.ts
|
||||
msgid "Path new users will be created under. If left blank, the default path will be used.fo"
|
||||
msgstr "Path new users will be created under. If left blank, the default path will be used.fo"
|
||||
msgid "Path new users will be created under. If left blank, the default path will be used."
|
||||
msgstr "Path new users will be created under. If left blank, the default path will be used."
|
||||
|
||||
#: src/admin/stages/user_write/UserWriteStageForm.ts
|
||||
#~ msgid "Path new users will be created under. If left blank, the default path will be used.fo"
|
||||
#~ msgstr "Path new users will be created under. If left blank, the default path will be used.fo"
|
||||
|
||||
#: src/admin/sources/ldap/LDAPSourceForm.ts
|
||||
#: src/admin/sources/oauth/OAuthSourceForm.ts
|
||||
@ -4588,10 +4602,13 @@ msgid "Regular user"
|
||||
msgstr "Regular user"
|
||||
|
||||
#: src/admin/applications/ApplicationViewPage.ts
|
||||
#: src/admin/flows/FlowViewPage.ts
|
||||
msgid "Related"
|
||||
msgstr "Related"
|
||||
|
||||
#: src/admin/flows/FlowViewPage.ts
|
||||
msgid "Related actions"
|
||||
msgstr "Related actions"
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Related objects"
|
||||
@ -5338,6 +5355,10 @@ msgstr "Stages are single steps of a Flow that a user is guided through. A stage
|
||||
msgid "Stages used to configure Authenticator when user doesn't have any compatible devices. After this configuration Stage passes, the user is not prompted again."
|
||||
msgstr "Stages used to configure Authenticator when user doesn't have any compatible devices. After this configuration Stage passes, the user is not prompted again."
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Start automatic import"
|
||||
msgstr "Start automatic import"
|
||||
|
||||
#: src/admin/outposts/ServiceConnectionListPage.ts
|
||||
msgid "State"
|
||||
msgstr "State"
|
||||
@ -5582,6 +5603,10 @@ msgstr "Successfully imported flow."
|
||||
msgid "Successfully imported provider."
|
||||
msgstr "Successfully imported provider."
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Successfully imported {0} devices."
|
||||
msgstr "Successfully imported {0} devices."
|
||||
|
||||
#: src/admin/users/UserResetEmailForm.ts
|
||||
msgid "Successfully sent email."
|
||||
msgstr "Successfully sent email."
|
||||
|
@ -640,6 +640,10 @@ msgstr "Detección automática (según su navegador)"
|
||||
msgid "Automate and template configuration within authentik."
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Automatic import"
|
||||
msgstr ""
|
||||
|
||||
#: src/user/UserInterface.ts
|
||||
msgid "Avatar image"
|
||||
msgstr "Imagen de avatar"
|
||||
@ -2426,6 +2430,7 @@ msgstr "¿Has olvidado tu contraseña"
|
||||
msgid "Forgot username or password?"
|
||||
msgstr "¿Olvidó su nombre de usuario"
|
||||
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
@ -3634,6 +3639,7 @@ msgstr "No hay datos adicionales disponibles."
|
||||
msgid "No additional setup is required."
|
||||
msgstr "No se requiere ninguna configuración adicional."
|
||||
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
@ -3931,6 +3937,10 @@ msgstr "Si lo desea, defina el valor «FriendlyName» del atributo Assertion."
|
||||
msgid "Or"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Or manually import"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/flows/BoundStagesList.ts
|
||||
#: src/admin/flows/StageBindingForm.ts
|
||||
#: src/admin/policies/BoundPoliciesList.ts
|
||||
@ -4081,9 +4091,13 @@ msgid "Path"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/user_write/UserWriteStageForm.ts
|
||||
msgid "Path new users will be created under. If left blank, the default path will be used.fo"
|
||||
msgid "Path new users will be created under. If left blank, the default path will be used."
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/user_write/UserWriteStageForm.ts
|
||||
#~ msgid "Path new users will be created under. If left blank, the default path will be used.fo"
|
||||
#~ msgstr ""
|
||||
|
||||
#: src/admin/sources/ldap/LDAPSourceForm.ts
|
||||
#: src/admin/sources/oauth/OAuthSourceForm.ts
|
||||
#: src/admin/sources/plex/PlexSourceForm.ts
|
||||
@ -4507,10 +4521,13 @@ msgid "Regular user"
|
||||
msgstr "Usuario habitual"
|
||||
|
||||
#: src/admin/applications/ApplicationViewPage.ts
|
||||
#: src/admin/flows/FlowViewPage.ts
|
||||
msgid "Related"
|
||||
msgstr "Relacionado"
|
||||
|
||||
#: src/admin/flows/FlowViewPage.ts
|
||||
msgid "Related actions"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Related objects"
|
||||
@ -5236,6 +5253,10 @@ msgstr "Las etapas son pasos individuales de un flujo por los que se guía al us
|
||||
msgid "Stages used to configure Authenticator when user doesn't have any compatible devices. After this configuration Stage passes, the user is not prompted again."
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Start automatic import"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/outposts/ServiceConnectionListPage.ts
|
||||
msgid "State"
|
||||
msgstr "Estado"
|
||||
@ -5470,6 +5491,10 @@ msgstr "El flujo se importó correctamente."
|
||||
msgid "Successfully imported provider."
|
||||
msgstr "El proveedor se importó correctamente."
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Successfully imported {0} devices."
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/users/UserResetEmailForm.ts
|
||||
msgid "Successfully sent email."
|
||||
msgstr "El correo electrónico se envió correctamente."
|
||||
|
@ -646,6 +646,10 @@ msgstr ""
|
||||
msgid "Automate and template configuration within authentik."
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Automatic import"
|
||||
msgstr ""
|
||||
|
||||
#: src/user/UserInterface.ts
|
||||
msgid "Avatar image"
|
||||
msgstr "Image d'avatar"
|
||||
@ -2451,6 +2455,7 @@ msgstr "Mot de passe oublié ?"
|
||||
msgid "Forgot username or password?"
|
||||
msgstr "Mot de passe ou nom d'utilisateur oublié ?"
|
||||
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
@ -3665,6 +3670,7 @@ msgstr "Aucune donnée additionnelle disponible."
|
||||
msgid "No additional setup is required."
|
||||
msgstr ""
|
||||
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
@ -3966,6 +3972,10 @@ msgstr "Indiquer la valeur \"FriendlyName\" de l'attribut d'assertion (optionnel
|
||||
msgid "Or"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Or manually import"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/flows/BoundStagesList.ts
|
||||
#: src/admin/flows/StageBindingForm.ts
|
||||
#: src/admin/policies/BoundPoliciesList.ts
|
||||
@ -4117,9 +4127,13 @@ msgid "Path"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/user_write/UserWriteStageForm.ts
|
||||
msgid "Path new users will be created under. If left blank, the default path will be used.fo"
|
||||
msgid "Path new users will be created under. If left blank, the default path will be used."
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/user_write/UserWriteStageForm.ts
|
||||
#~ msgid "Path new users will be created under. If left blank, the default path will be used.fo"
|
||||
#~ msgstr ""
|
||||
|
||||
#: src/admin/sources/ldap/LDAPSourceForm.ts
|
||||
#: src/admin/sources/oauth/OAuthSourceForm.ts
|
||||
#: src/admin/sources/plex/PlexSourceForm.ts
|
||||
@ -4550,10 +4564,13 @@ msgid "Regular user"
|
||||
msgstr "Utilisateur normal"
|
||||
|
||||
#: src/admin/applications/ApplicationViewPage.ts
|
||||
#: src/admin/flows/FlowViewPage.ts
|
||||
msgid "Related"
|
||||
msgstr "Lié"
|
||||
|
||||
#: src/admin/flows/FlowViewPage.ts
|
||||
msgid "Related actions"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Related objects"
|
||||
@ -5289,6 +5306,10 @@ msgstr "Les étapes sont des étapes simples d'un flux au travers duquel un util
|
||||
msgid "Stages used to configure Authenticator when user doesn't have any compatible devices. After this configuration Stage passes, the user is not prompted again."
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Start automatic import"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/outposts/ServiceConnectionListPage.ts
|
||||
msgid "State"
|
||||
msgstr "État"
|
||||
@ -5531,6 +5552,10 @@ msgstr "Flux importé avec succès"
|
||||
msgid "Successfully imported provider."
|
||||
msgstr "Fournisseur importé avec succès"
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Successfully imported {0} devices."
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/users/UserResetEmailForm.ts
|
||||
msgid "Successfully sent email."
|
||||
msgstr "Email envoyé avec succès"
|
||||
|
@ -640,6 +640,10 @@ msgstr "Automatycznie wykryj (na podstawie Twojej przeglądarki)"
|
||||
msgid "Automate and template configuration within authentik."
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Automatic import"
|
||||
msgstr ""
|
||||
|
||||
#: src/user/UserInterface.ts
|
||||
msgid "Avatar image"
|
||||
msgstr "Obraz awatara"
|
||||
@ -2423,6 +2427,7 @@ msgstr "Zapomniałeś hasła?"
|
||||
msgid "Forgot username or password?"
|
||||
msgstr "Zapomniałeś nazwy użytkownika lub hasła?"
|
||||
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
@ -3631,6 +3636,7 @@ msgstr "Brak dodatkowych danych."
|
||||
msgid "No additional setup is required."
|
||||
msgstr "Nie jest wymagana żadna dodatkowa konfiguracja."
|
||||
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
@ -3928,6 +3934,10 @@ msgstr "Opcjonalnie ustaw wartość „FriendlyName” atrybutu asercji."
|
||||
msgid "Or"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Or manually import"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/flows/BoundStagesList.ts
|
||||
#: src/admin/flows/StageBindingForm.ts
|
||||
#: src/admin/policies/BoundPoliciesList.ts
|
||||
@ -4078,9 +4088,13 @@ msgid "Path"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/user_write/UserWriteStageForm.ts
|
||||
msgid "Path new users will be created under. If left blank, the default path will be used.fo"
|
||||
msgid "Path new users will be created under. If left blank, the default path will be used."
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/user_write/UserWriteStageForm.ts
|
||||
#~ msgid "Path new users will be created under. If left blank, the default path will be used.fo"
|
||||
#~ msgstr ""
|
||||
|
||||
#: src/admin/sources/ldap/LDAPSourceForm.ts
|
||||
#: src/admin/sources/oauth/OAuthSourceForm.ts
|
||||
#: src/admin/sources/plex/PlexSourceForm.ts
|
||||
@ -4504,10 +4518,13 @@ msgid "Regular user"
|
||||
msgstr "Zwykły użytkownik"
|
||||
|
||||
#: src/admin/applications/ApplicationViewPage.ts
|
||||
#: src/admin/flows/FlowViewPage.ts
|
||||
msgid "Related"
|
||||
msgstr "Związane z"
|
||||
|
||||
#: src/admin/flows/FlowViewPage.ts
|
||||
msgid "Related actions"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Related objects"
|
||||
@ -5233,6 +5250,10 @@ msgstr "Etapy to pojedyncze kroki przepływu, przez które prowadzony jest użyt
|
||||
msgid "Stages used to configure Authenticator when user doesn't have any compatible devices. After this configuration Stage passes, the user is not prompted again."
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Start automatic import"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/outposts/ServiceConnectionListPage.ts
|
||||
msgid "State"
|
||||
msgstr "Stan"
|
||||
@ -5467,6 +5488,10 @@ msgstr "Pomyślnie zaimportowano przepływ."
|
||||
msgid "Successfully imported provider."
|
||||
msgstr "Pomyślnie zaimportowano dostawcę."
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Successfully imported {0} devices."
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/users/UserResetEmailForm.ts
|
||||
msgid "Successfully sent email."
|
||||
msgstr "Pomyślnie wysłano e-mail."
|
||||
|
@ -638,6 +638,10 @@ msgstr ""
|
||||
msgid "Automate and template configuration within authentik."
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Automatic import"
|
||||
msgstr ""
|
||||
|
||||
#: src/user/UserInterface.ts
|
||||
msgid "Avatar image"
|
||||
msgstr ""
|
||||
@ -2457,6 +2461,7 @@ msgstr ""
|
||||
msgid "Forgot username or password?"
|
||||
msgstr ""
|
||||
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
@ -3676,6 +3681,7 @@ msgstr ""
|
||||
msgid "No additional setup is required."
|
||||
msgstr ""
|
||||
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
@ -3980,6 +3986,10 @@ msgstr ""
|
||||
msgid "Or"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Or manually import"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/flows/BoundStagesList.ts
|
||||
#: src/admin/flows/StageBindingForm.ts
|
||||
#: src/admin/policies/BoundPoliciesList.ts
|
||||
@ -4134,9 +4144,13 @@ msgid "Path"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/user_write/UserWriteStageForm.ts
|
||||
msgid "Path new users will be created under. If left blank, the default path will be used.fo"
|
||||
msgid "Path new users will be created under. If left blank, the default path will be used."
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/user_write/UserWriteStageForm.ts
|
||||
#~ msgid "Path new users will be created under. If left blank, the default path will be used.fo"
|
||||
#~ msgstr ""
|
||||
|
||||
#: src/admin/sources/ldap/LDAPSourceForm.ts
|
||||
#: src/admin/sources/oauth/OAuthSourceForm.ts
|
||||
#: src/admin/sources/plex/PlexSourceForm.ts
|
||||
@ -4568,10 +4582,13 @@ msgid "Regular user"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/applications/ApplicationViewPage.ts
|
||||
#: src/admin/flows/FlowViewPage.ts
|
||||
msgid "Related"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/flows/FlowViewPage.ts
|
||||
msgid "Related actions"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Related objects"
|
||||
@ -5318,6 +5335,10 @@ msgstr ""
|
||||
msgid "Stages used to configure Authenticator when user doesn't have any compatible devices. After this configuration Stage passes, the user is not prompted again."
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Start automatic import"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/outposts/ServiceConnectionListPage.ts
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
@ -5562,6 +5583,10 @@ msgstr ""
|
||||
msgid "Successfully imported provider."
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Successfully imported {0} devices."
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/users/UserResetEmailForm.ts
|
||||
msgid "Successfully sent email."
|
||||
msgstr ""
|
||||
|
@ -640,6 +640,10 @@ msgstr "Otomatik algıla (tarayıcınıza göre)"
|
||||
msgid "Automate and template configuration within authentik."
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Automatic import"
|
||||
msgstr ""
|
||||
|
||||
#: src/user/UserInterface.ts
|
||||
msgid "Avatar image"
|
||||
msgstr "Avatar resmi"
|
||||
@ -2426,6 +2430,7 @@ msgstr "Parolanı mi unuttun?"
|
||||
msgid "Forgot username or password?"
|
||||
msgstr "Kullanıcı adı veya parolayı mı unuttunuz?"
|
||||
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
@ -3635,6 +3640,7 @@ msgstr "Ek veri yok."
|
||||
msgid "No additional setup is required."
|
||||
msgstr "Ek kurulum gerekmez."
|
||||
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
@ -3933,6 +3939,10 @@ msgstr "İsteğe bağlı olarak onaylama özniteliğinin 'FriendlyName' değerin
|
||||
msgid "Or"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Or manually import"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/flows/BoundStagesList.ts
|
||||
#: src/admin/flows/StageBindingForm.ts
|
||||
#: src/admin/policies/BoundPoliciesList.ts
|
||||
@ -4083,9 +4093,13 @@ msgid "Path"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/user_write/UserWriteStageForm.ts
|
||||
msgid "Path new users will be created under. If left blank, the default path will be used.fo"
|
||||
msgid "Path new users will be created under. If left blank, the default path will be used."
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/user_write/UserWriteStageForm.ts
|
||||
#~ msgid "Path new users will be created under. If left blank, the default path will be used.fo"
|
||||
#~ msgstr ""
|
||||
|
||||
#: src/admin/sources/ldap/LDAPSourceForm.ts
|
||||
#: src/admin/sources/oauth/OAuthSourceForm.ts
|
||||
#: src/admin/sources/plex/PlexSourceForm.ts
|
||||
@ -4509,10 +4523,13 @@ msgid "Regular user"
|
||||
msgstr "Düzenli kullanıcı"
|
||||
|
||||
#: src/admin/applications/ApplicationViewPage.ts
|
||||
#: src/admin/flows/FlowViewPage.ts
|
||||
msgid "Related"
|
||||
msgstr "İlgili"
|
||||
|
||||
#: src/admin/flows/FlowViewPage.ts
|
||||
msgid "Related actions"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Related objects"
|
||||
@ -5238,6 +5255,10 @@ msgstr "Aşamalar, bir Akış'ın kullanıcının yönlendirildiği tek adımlar
|
||||
msgid "Stages used to configure Authenticator when user doesn't have any compatible devices. After this configuration Stage passes, the user is not prompted again."
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Start automatic import"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/outposts/ServiceConnectionListPage.ts
|
||||
msgid "State"
|
||||
msgstr "Eyalet"
|
||||
@ -5472,6 +5493,10 @@ msgstr "Akış başarıyla aktarıldı."
|
||||
msgid "Successfully imported provider."
|
||||
msgstr "Sağlayıcı başarıyla içe aktarıldı."
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Successfully imported {0} devices."
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/users/UserResetEmailForm.ts
|
||||
msgid "Successfully sent email."
|
||||
msgstr "Başarıyla e-posta gönderildi."
|
||||
|
@ -638,6 +638,10 @@ msgstr "自动检测(基于您的浏览器)"
|
||||
msgid "Automate and template configuration within authentik."
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Automatic import"
|
||||
msgstr ""
|
||||
|
||||
#: src/user/UserInterface.ts
|
||||
msgid "Avatar image"
|
||||
msgstr "头像图片"
|
||||
@ -2414,6 +2418,7 @@ msgstr "忘记密码了吗?"
|
||||
msgid "Forgot username or password?"
|
||||
msgstr "忘记用户名或密码?"
|
||||
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
@ -3617,6 +3622,7 @@ msgstr "没有可用的额外数据。"
|
||||
msgid "No additional setup is required."
|
||||
msgstr "无需进行额外设置。"
|
||||
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
@ -3910,6 +3916,10 @@ msgstr "可选,设置断言属性的 'FriendlyName' 值。"
|
||||
msgid "Or"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Or manually import"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/flows/BoundStagesList.ts
|
||||
#: src/admin/flows/StageBindingForm.ts
|
||||
#: src/admin/policies/BoundPoliciesList.ts
|
||||
@ -4056,9 +4066,13 @@ msgid "Path"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/user_write/UserWriteStageForm.ts
|
||||
msgid "Path new users will be created under. If left blank, the default path will be used.fo"
|
||||
msgid "Path new users will be created under. If left blank, the default path will be used."
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/user_write/UserWriteStageForm.ts
|
||||
#~ msgid "Path new users will be created under. If left blank, the default path will be used.fo"
|
||||
#~ msgstr ""
|
||||
|
||||
#: src/admin/sources/ldap/LDAPSourceForm.ts
|
||||
#: src/admin/sources/oauth/OAuthSourceForm.ts
|
||||
#: src/admin/sources/plex/PlexSourceForm.ts
|
||||
@ -4479,10 +4493,13 @@ msgid "Regular user"
|
||||
msgstr "普通用户"
|
||||
|
||||
#: src/admin/applications/ApplicationViewPage.ts
|
||||
#: src/admin/flows/FlowViewPage.ts
|
||||
msgid "Related"
|
||||
msgstr "相关"
|
||||
|
||||
#: src/admin/flows/FlowViewPage.ts
|
||||
msgid "Related actions"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Related objects"
|
||||
@ -5202,6 +5219,10 @@ msgstr "阶段是引导用户完成流程的单个步骤。阶段只能在流程
|
||||
msgid "Stages used to configure Authenticator when user doesn't have any compatible devices. After this configuration Stage passes, the user is not prompted again."
|
||||
msgstr "当用户没有任何兼容的设备时,用来配置身份验证器的阶段。此阶段通过后,将不再请求此用户。"
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Start automatic import"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/outposts/ServiceConnectionListPage.ts
|
||||
msgid "State"
|
||||
msgstr "状态"
|
||||
@ -5436,6 +5457,10 @@ msgstr "已成功导入流程。"
|
||||
msgid "Successfully imported provider."
|
||||
msgstr "已成功导入提供程序。"
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Successfully imported {0} devices."
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/users/UserResetEmailForm.ts
|
||||
msgid "Successfully sent email."
|
||||
msgstr "已成功发送电子邮件。"
|
||||
|
@ -640,6 +640,10 @@ msgstr "自动检测(基于您的浏览器)"
|
||||
msgid "Automate and template configuration within authentik."
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Automatic import"
|
||||
msgstr ""
|
||||
|
||||
#: src/user/UserInterface.ts
|
||||
msgid "Avatar image"
|
||||
msgstr "Avatar image"
|
||||
@ -2417,6 +2421,7 @@ msgstr "忘记密码了吗?"
|
||||
msgid "Forgot username or password?"
|
||||
msgstr "忘记用户名或密码?"
|
||||
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
@ -3621,6 +3626,7 @@ msgstr "没有其他可用数据。"
|
||||
msgid "No additional setup is required."
|
||||
msgstr "无需进行其他设置。"
|
||||
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
@ -3915,6 +3921,10 @@ msgstr "(可选)设置 “断言” 属性的'友好名称'值。"
|
||||
msgid "Or"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Or manually import"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/flows/BoundStagesList.ts
|
||||
#: src/admin/flows/StageBindingForm.ts
|
||||
#: src/admin/policies/BoundPoliciesList.ts
|
||||
@ -4061,9 +4071,13 @@ msgid "Path"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/user_write/UserWriteStageForm.ts
|
||||
msgid "Path new users will be created under. If left blank, the default path will be used.fo"
|
||||
msgid "Path new users will be created under. If left blank, the default path will be used."
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/user_write/UserWriteStageForm.ts
|
||||
#~ msgid "Path new users will be created under. If left blank, the default path will be used.fo"
|
||||
#~ msgstr ""
|
||||
|
||||
#: src/admin/sources/ldap/LDAPSourceForm.ts
|
||||
#: src/admin/sources/oauth/OAuthSourceForm.ts
|
||||
#: src/admin/sources/plex/PlexSourceForm.ts
|
||||
@ -4485,10 +4499,13 @@ msgid "Regular user"
|
||||
msgstr "普通用户"
|
||||
|
||||
#: src/admin/applications/ApplicationViewPage.ts
|
||||
#: src/admin/flows/FlowViewPage.ts
|
||||
msgid "Related"
|
||||
msgstr "相关"
|
||||
|
||||
#: src/admin/flows/FlowViewPage.ts
|
||||
msgid "Related actions"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Related objects"
|
||||
@ -5209,6 +5226,10 @@ msgstr "阶段是引导用户完成的流程的单个步骤。阶段只能在流
|
||||
msgid "Stages used to configure Authenticator when user doesn't have any compatible devices. After this configuration Stage passes, the user is not prompted again."
|
||||
msgstr "当用户没有任何兼容的设备时,用来配置身份验证器的阶段。此阶段通过后,将不再请求此用户。"
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Start automatic import"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/outposts/ServiceConnectionListPage.ts
|
||||
msgid "State"
|
||||
msgstr "州"
|
||||
@ -5443,6 +5464,10 @@ msgstr "已成功导入流程。"
|
||||
msgid "Successfully imported provider."
|
||||
msgstr "已成功导入提供程序。"
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Successfully imported {0} devices."
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/users/UserResetEmailForm.ts
|
||||
msgid "Successfully sent email."
|
||||
msgstr "已成功发送电子邮件。"
|
||||
|
@ -640,6 +640,10 @@ msgstr "自动检测(基于您的浏览器)"
|
||||
msgid "Automate and template configuration within authentik."
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Automatic import"
|
||||
msgstr ""
|
||||
|
||||
#: src/user/UserInterface.ts
|
||||
msgid "Avatar image"
|
||||
msgstr "Avatar image"
|
||||
@ -2417,6 +2421,7 @@ msgstr "忘记密码了吗?"
|
||||
msgid "Forgot username or password?"
|
||||
msgstr "忘记用户名或密码?"
|
||||
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
@ -3621,6 +3626,7 @@ msgstr "没有其他可用数据。"
|
||||
msgid "No additional setup is required."
|
||||
msgstr "无需进行其他设置。"
|
||||
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/forms/ModalForm.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
#: src/elements/wizard/FormWizardPage.ts
|
||||
@ -3915,6 +3921,10 @@ msgstr "(可选)设置 “断言” 属性的'友好名称'值。"
|
||||
msgid "Or"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Or manually import"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/flows/BoundStagesList.ts
|
||||
#: src/admin/flows/StageBindingForm.ts
|
||||
#: src/admin/policies/BoundPoliciesList.ts
|
||||
@ -4061,9 +4071,13 @@ msgid "Path"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/user_write/UserWriteStageForm.ts
|
||||
msgid "Path new users will be created under. If left blank, the default path will be used.fo"
|
||||
msgid "Path new users will be created under. If left blank, the default path will be used."
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/stages/user_write/UserWriteStageForm.ts
|
||||
#~ msgid "Path new users will be created under. If left blank, the default path will be used.fo"
|
||||
#~ msgstr ""
|
||||
|
||||
#: src/admin/sources/ldap/LDAPSourceForm.ts
|
||||
#: src/admin/sources/oauth/OAuthSourceForm.ts
|
||||
#: src/admin/sources/plex/PlexSourceForm.ts
|
||||
@ -4485,10 +4499,13 @@ msgid "Regular user"
|
||||
msgstr "普通用户"
|
||||
|
||||
#: src/admin/applications/ApplicationViewPage.ts
|
||||
#: src/admin/flows/FlowViewPage.ts
|
||||
msgid "Related"
|
||||
msgstr "相关"
|
||||
|
||||
#: src/admin/flows/FlowViewPage.ts
|
||||
msgid "Related actions"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Related objects"
|
||||
@ -5209,6 +5226,10 @@ msgstr "阶段是引导用户完成的流程的单个步骤。阶段只能在流
|
||||
msgid "Stages used to configure Authenticator when user doesn't have any compatible devices. After this configuration Stage passes, the user is not prompted again."
|
||||
msgstr "当用户没有任何兼容的设备时,用来配置身份验证器的阶段。此阶段通过后,将不再请求此用户。"
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Start automatic import"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/outposts/ServiceConnectionListPage.ts
|
||||
msgid "State"
|
||||
msgstr "州"
|
||||
@ -5443,6 +5464,10 @@ msgstr "已成功导入流程。"
|
||||
msgid "Successfully imported provider."
|
||||
msgstr "已成功导入提供程序。"
|
||||
|
||||
#: src/admin/stages/authenticator_duo/DuoDeviceImportForm.ts
|
||||
msgid "Successfully imported {0} devices."
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/users/UserResetEmailForm.ts
|
||||
msgid "Successfully sent email."
|
||||
msgstr "已成功发送电子邮件。"
|
||||
|
Reference in New Issue
Block a user