web/admin: theme adjustments (#5944)

* web/admin: theme adjustments

Signed-off-by: Jens Langhammer <jens@goauthentik.io>

* update locale

Signed-off-by: Jens Langhammer <jens@goauthentik.io>

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
This commit is contained in:
Jens L 2023-06-13 15:41:48 +02:00 committed by GitHub
parent c71a70a2e5
commit 16454af1c0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 151 additions and 71 deletions

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-12 12:11+0000\n" "POT-Creation-Date: 2023-06-13 11:23+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -102,7 +102,7 @@ msgstr ""
msgid "User's display name." msgid "User's display name."
msgstr "" msgstr ""
#: authentik/core/models.py:243 authentik/providers/oauth2/models.py:287 #: authentik/core/models.py:243 authentik/providers/oauth2/models.py:294
msgid "User" msgid "User"
msgstr "" msgstr ""
@ -662,33 +662,40 @@ msgid "Dummy Policies"
msgstr "" msgstr ""
#: authentik/policies/event_matcher/api.py:20 #: authentik/policies/event_matcher/api.py:20
#: authentik/policies/event_matcher/models.py:37 #: authentik/policies/event_matcher/models.py:55
msgid "" msgid ""
"Match events created by selected application. When left empty, all " "Match events created by selected application. When left empty, all "
"applications are matched." "applications are matched."
msgstr "" msgstr ""
#: authentik/policies/event_matcher/api.py:27 #: authentik/policies/event_matcher/api.py:29
#: authentik/policies/event_matcher/models.py:63
msgid ""
"Match events created by selected model. When left empty, all models are "
"matched. When an app is selected, all the application's models are matched."
msgstr ""
#: authentik/policies/event_matcher/api.py:42
msgid "At least one criteria must be set." msgid "At least one criteria must be set."
msgstr "" msgstr ""
#: authentik/policies/event_matcher/models.py:29 #: authentik/policies/event_matcher/models.py:47
msgid "" msgid ""
"Match created events with this action type. When left empty, all action " "Match created events with this action type. When left empty, all action "
"types will be matched." "types will be matched."
msgstr "" msgstr ""
#: authentik/policies/event_matcher/models.py:44 #: authentik/policies/event_matcher/models.py:71
msgid "" msgid ""
"Matches Event's Client IP (strict matching, for network matching use an " "Matches Event's Client IP (strict matching, for network matching use an "
"Expression Policy)" "Expression Policy)"
msgstr "" msgstr ""
#: authentik/policies/event_matcher/models.py:72 #: authentik/policies/event_matcher/models.py:141
msgid "Event Matcher Policy" msgid "Event Matcher Policy"
msgstr "" msgstr ""
#: authentik/policies/event_matcher/models.py:73 #: authentik/policies/event_matcher/models.py:142
msgid "Event Matcher Policies" msgid "Event Matcher Policies"
msgstr "" msgstr ""
@ -901,212 +908,212 @@ msgid ""
"this method only if you have different UPN and Mail domains." "this method only if you have different UPN and Mail domains."
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:39 #: authentik/providers/oauth2/models.py:42
msgid "Confidential" msgid "Confidential"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:40 #: authentik/providers/oauth2/models.py:43
msgid "Public" msgid "Public"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:62 #: authentik/providers/oauth2/models.py:65
msgid "Same identifier is used for all providers" msgid "Same identifier is used for all providers"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:64 #: authentik/providers/oauth2/models.py:67
msgid "Each provider has a different issuer, based on the application slug." msgid "Each provider has a different issuer, based on the application slug."
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:71 #: authentik/providers/oauth2/models.py:74
msgid "code (Authorization Code Flow)" msgid "code (Authorization Code Flow)"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:72 #: authentik/providers/oauth2/models.py:75
msgid "id_token (Implicit Flow)" msgid "id_token (Implicit Flow)"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:73 #: authentik/providers/oauth2/models.py:76
msgid "id_token token (Implicit Flow)" msgid "id_token token (Implicit Flow)"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:74 #: authentik/providers/oauth2/models.py:77
msgid "code token (Hybrid Flow)" msgid "code token (Hybrid Flow)"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:75 #: authentik/providers/oauth2/models.py:78
msgid "code id_token (Hybrid Flow)" msgid "code id_token (Hybrid Flow)"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:76 #: authentik/providers/oauth2/models.py:79
msgid "code id_token token (Hybrid Flow)" msgid "code id_token token (Hybrid Flow)"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:82 #: authentik/providers/oauth2/models.py:85
msgid "HS256 (Symmetric Encryption)" msgid "HS256 (Symmetric Encryption)"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:83 #: authentik/providers/oauth2/models.py:86
msgid "RS256 (Asymmetric Encryption)" msgid "RS256 (Asymmetric Encryption)"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:84 #: authentik/providers/oauth2/models.py:87
msgid "ES256 (Asymmetric Encryption)" msgid "ES256 (Asymmetric Encryption)"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:90 #: authentik/providers/oauth2/models.py:93
msgid "Scope used by the client" msgid "Scope used by the client"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:94 #: authentik/providers/oauth2/models.py:97
msgid "" msgid ""
"Description shown to the user when consenting. If left empty, the user won't " "Description shown to the user when consenting. If left empty, the user won't "
"be informed." "be informed."
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:113 #: authentik/providers/oauth2/models.py:116
msgid "Scope Mapping" msgid "Scope Mapping"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:114 #: authentik/providers/oauth2/models.py:117
msgid "Scope Mappings" msgid "Scope Mappings"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:124 #: authentik/providers/oauth2/models.py:127
msgid "Client Type" msgid "Client Type"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:126 #: authentik/providers/oauth2/models.py:129
msgid "" msgid ""
"Confidential clients are capable of maintaining the confidentiality of their " "Confidential clients are capable of maintaining the confidentiality of their "
"credentials. Public clients are incapable" "credentials. Public clients are incapable"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:133 #: authentik/providers/oauth2/models.py:136
msgid "Client ID" msgid "Client ID"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:139 #: authentik/providers/oauth2/models.py:142
msgid "Client Secret" msgid "Client Secret"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:145 #: authentik/providers/oauth2/models.py:148
msgid "Redirect URIs" msgid "Redirect URIs"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:146 #: authentik/providers/oauth2/models.py:149
msgid "Enter each URI on a new line." msgid "Enter each URI on a new line."
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:151 #: authentik/providers/oauth2/models.py:154
msgid "Include claims in id_token" msgid "Include claims in id_token"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:153 #: authentik/providers/oauth2/models.py:156
msgid "" msgid ""
"Include User claims from scopes in the id_token, for applications that don't " "Include User claims from scopes in the id_token, for applications that don't "
"access the userinfo endpoint." "access the userinfo endpoint."
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:162 #: authentik/providers/oauth2/models.py:165
msgid "" msgid ""
"Access codes not valid on or after current time + this value (Format: " "Access codes not valid on or after current time + this value (Format: "
"hours=1;minutes=2;seconds=3)." "hours=1;minutes=2;seconds=3)."
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:170 #: authentik/providers/oauth2/models.py:173
#: authentik/providers/oauth2/models.py:178 #: authentik/providers/oauth2/models.py:181
msgid "" msgid ""
"Tokens not valid on or after current time + this value (Format: hours=1;" "Tokens not valid on or after current time + this value (Format: hours=1;"
"minutes=2;seconds=3)." "minutes=2;seconds=3)."
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:187 #: authentik/providers/oauth2/models.py:190
msgid "" msgid ""
"Configure what data should be used as unique User Identifier. For most " "Configure what data should be used as unique User Identifier. For most "
"cases, the default should be fine." "cases, the default should be fine."
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:194 #: authentik/providers/oauth2/models.py:197
msgid "Configure how the issuer field of the ID Token should be filled." msgid "Configure how the issuer field of the ID Token should be filled."
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:199 #: authentik/providers/oauth2/models.py:202
msgid "Signing Key" msgid "Signing Key"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:203 #: authentik/providers/oauth2/models.py:206
msgid "" msgid ""
"Key used to sign the tokens. Only required when JWT Algorithm is set to " "Key used to sign the tokens. Only required when JWT Algorithm is set to "
"RS256." "RS256."
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:210 #: authentik/providers/oauth2/models.py:213
msgid "" msgid ""
"Any JWT signed by the JWK of the selected source can be used to authenticate." "Any JWT signed by the JWK of the selected source can be used to authenticate."
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:279 #: authentik/providers/oauth2/models.py:286
msgid "OAuth2/OpenID Provider" msgid "OAuth2/OpenID Provider"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:280 #: authentik/providers/oauth2/models.py:287
msgid "OAuth2/OpenID Providers" msgid "OAuth2/OpenID Providers"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:289 #: authentik/providers/oauth2/models.py:296
#: authentik/providers/oauth2/models.py:421 #: authentik/providers/oauth2/models.py:428
msgid "Scopes" msgid "Scopes"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:308 #: authentik/providers/oauth2/models.py:315
msgid "Code" msgid "Code"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:309 #: authentik/providers/oauth2/models.py:316
msgid "Nonce" msgid "Nonce"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:310 #: authentik/providers/oauth2/models.py:317
msgid "Code Challenge" msgid "Code Challenge"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:312 #: authentik/providers/oauth2/models.py:319
msgid "Code Challenge Method" msgid "Code Challenge Method"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:332 #: authentik/providers/oauth2/models.py:339
msgid "Authorization Code" msgid "Authorization Code"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:333 #: authentik/providers/oauth2/models.py:340
msgid "Authorization Codes" msgid "Authorization Codes"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:375 #: authentik/providers/oauth2/models.py:382
msgid "OAuth2 Access Token" msgid "OAuth2 Access Token"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:376 #: authentik/providers/oauth2/models.py:383
msgid "OAuth2 Access Tokens" msgid "OAuth2 Access Tokens"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:386 #: authentik/providers/oauth2/models.py:393
msgid "ID Token" msgid "ID Token"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:405 #: authentik/providers/oauth2/models.py:412
msgid "OAuth2 Refresh Token" msgid "OAuth2 Refresh Token"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:406 #: authentik/providers/oauth2/models.py:413
msgid "OAuth2 Refresh Tokens" msgid "OAuth2 Refresh Tokens"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:433 #: authentik/providers/oauth2/models.py:440
msgid "Device Token" msgid "Device Token"
msgstr "" msgstr ""
#: authentik/providers/oauth2/models.py:434 #: authentik/providers/oauth2/models.py:441
msgid "Device Tokens" msgid "Device Tokens"
msgstr "" msgstr ""
@ -1495,19 +1502,19 @@ msgid ""
"enabled on a single LDAP source." "enabled on a single LDAP source."
msgstr "" msgstr ""
#: authentik/sources/ldap/models.py:188 #: authentik/sources/ldap/models.py:190
msgid "LDAP Source" msgid "LDAP Source"
msgstr "" msgstr ""
#: authentik/sources/ldap/models.py:189 #: authentik/sources/ldap/models.py:191
msgid "LDAP Sources" msgid "LDAP Sources"
msgstr "" msgstr ""
#: authentik/sources/ldap/models.py:211 #: authentik/sources/ldap/models.py:213
msgid "LDAP Property Mapping" msgid "LDAP Property Mapping"
msgstr "" msgstr ""
#: authentik/sources/ldap/models.py:212 #: authentik/sources/ldap/models.py:214
msgid "LDAP Property Mappings" msgid "LDAP Property Mappings"
msgstr "" msgstr ""

View File

@ -30,7 +30,7 @@ import PFDrawer from "@patternfly/patternfly/components/Drawer/drawer.css";
import PFPage from "@patternfly/patternfly/components/Page/page.css"; import PFPage from "@patternfly/patternfly/components/Page/page.css";
import PFBase from "@patternfly/patternfly/patternfly-base.css"; import PFBase from "@patternfly/patternfly/patternfly-base.css";
import { AdminApi, SessionUser, Version } from "@goauthentik/api"; import { AdminApi, SessionUser, UiThemeEnum, Version } from "@goauthentik/api";
autoDetectLanguage(); autoDetectLanguage();
@ -116,7 +116,11 @@ export class AdminInterface extends Interface {
render(): TemplateResult { render(): TemplateResult {
return html` <div class="pf-c-page"> return html` <div class="pf-c-page">
<ak-sidebar <ak-sidebar
class="pf-c-page__sidebar ${this.sidebarOpen ? "pf-m-expanded" : "pf-m-collapsed"}" class="pf-c-page__sidebar ${this.sidebarOpen
? "pf-m-expanded"
: "pf-m-collapsed"} ${this.activeTheme === UiThemeEnum.Light
? "pf-m-light"
: ""}"
> >
${this.renderSidebarItems()} ${this.renderSidebarItems()}
</ak-sidebar> </ak-sidebar>
@ -203,18 +207,18 @@ export class AdminInterface extends Interface {
</ak-sidebar-item> </ak-sidebar-item>
<ak-sidebar-item> <ak-sidebar-item>
<span slot="label">${msg("Applications")}</span> <span slot="label">${msg("Applications")}</span>
<ak-sidebar-item
path="/core/applications"
.activeWhen=${[`^/core/applications/(?<slug>${SLUG_REGEX})$`]}
>
<span slot="label">${msg("Applications")}</span>
</ak-sidebar-item>
<ak-sidebar-item <ak-sidebar-item
path="/core/providers" path="/core/providers"
.activeWhen=${[`^/core/providers/(?<id>${ID_REGEX})$`]} .activeWhen=${[`^/core/providers/(?<id>${ID_REGEX})$`]}
> >
<span slot="label">${msg("Providers")}</span> <span slot="label">${msg("Providers")}</span>
</ak-sidebar-item> </ak-sidebar-item>
<ak-sidebar-item
path="/core/applications"
.activeWhen=${[`^/core/applications/(?<slug>${SLUG_REGEX})$`]}
>
<span slot="label">${msg("Applications")}</span>
</ak-sidebar-item>
<ak-sidebar-item path="/outpost/outposts"> <ak-sidebar-item path="/outpost/outposts">
<span slot="label">${msg("Outposts")}</span> <span slot="label">${msg("Outposts")}</span>
</ak-sidebar-item> </ak-sidebar-item>

View File

@ -160,6 +160,7 @@ export class AKElement extends LitElement {
root.adoptedStyleSheets = root.adoptedStyleSheets.filter((v) => v !== oldStylesheet); root.adoptedStyleSheets = root.adoptedStyleSheets.filter((v) => v !== oldStylesheet);
} }
this._activeTheme = theme; this._activeTheme = theme;
this.requestUpdate();
} }
disconnectedCallback() { disconnectedCallback() {

View File

@ -9,6 +9,8 @@ import PFNav from "@patternfly/patternfly/components/Nav/nav.css";
import PFPage from "@patternfly/patternfly/components/Page/page.css"; import PFPage from "@patternfly/patternfly/components/Page/page.css";
import PFBase from "@patternfly/patternfly/patternfly-base.css"; import PFBase from "@patternfly/patternfly/patternfly-base.css";
import { UiThemeEnum } from "@goauthentik/api";
@customElement("ak-sidebar") @customElement("ak-sidebar")
export class Sidebar extends AKElement { export class Sidebar extends AKElement {
static get styles(): CSSResult[] { static get styles(): CSSResult[] {
@ -25,6 +27,9 @@ export class Sidebar extends AKElement {
.pf-c-nav__item.pf-m-current:not(.pf-m-expanded) .pf-c-nav__link::after { .pf-c-nav__item.pf-m-current:not(.pf-m-expanded) .pf-c-nav__link::after {
--pf-c-nav__link--m-current--after--BorderColor: #fd4b2d; --pf-c-nav__link--m-current--after--BorderColor: #fd4b2d;
} }
:host([theme="light"]) {
border-right-color: transparent !important;
}
.pf-c-nav__section + .pf-c-nav__section { .pf-c-nav__section + .pf-c-nav__section {
--pf-c-nav__section--section--MarginTop: var(--pf-global--spacer--sm); --pf-c-nav__section--section--MarginTop: var(--pf-global--spacer--sm);
@ -61,7 +66,10 @@ export class Sidebar extends AKElement {
} }
render(): TemplateResult { render(): TemplateResult {
return html`<nav class="pf-c-nav" aria-label="Global"> return html`<nav
class="pf-c-nav ${this.activeTheme === UiThemeEnum.Light ? "pf-m-light" : ""}"
aria-label="Global"
>
<ak-sidebar-brand></ak-sidebar-brand> <ak-sidebar-brand></ak-sidebar-brand>
<ul class="pf-c-nav__list"> <ul class="pf-c-nav__list">
<slot></slot> <slot></slot>

View File

@ -5735,6 +5735,12 @@ Bindings to groups/users are checked against the user of the event.</source>
</trans-unit> </trans-unit>
<trans-unit id="s000ee3e634868b3c"> <trans-unit id="s000ee3e634868b3c">
<source>TLS Client authentication certificate</source> <source>TLS Client authentication certificate</source>
</trans-unit>
<trans-unit id="s5da52af9b083c29a">
<source>Model</source>
</trans-unit>
<trans-unit id="s3ba9b8aeb686d9f7">
<source>Match events created by selected model. When left empty, all models are matched.</source>
</trans-unit> </trans-unit>
</body> </body>
</file> </file>

View File

@ -6051,6 +6051,12 @@ Bindings to groups/users are checked against the user of the event.</source>
</trans-unit> </trans-unit>
<trans-unit id="s000ee3e634868b3c"> <trans-unit id="s000ee3e634868b3c">
<source>TLS Client authentication certificate</source> <source>TLS Client authentication certificate</source>
</trans-unit>
<trans-unit id="s5da52af9b083c29a">
<source>Model</source>
</trans-unit>
<trans-unit id="s3ba9b8aeb686d9f7">
<source>Match events created by selected model. When left empty, all models are matched.</source>
</trans-unit> </trans-unit>
</body> </body>
</file> </file>

View File

@ -5643,6 +5643,12 @@ Bindings to groups/users are checked against the user of the event.</source>
</trans-unit> </trans-unit>
<trans-unit id="s000ee3e634868b3c"> <trans-unit id="s000ee3e634868b3c">
<source>TLS Client authentication certificate</source> <source>TLS Client authentication certificate</source>
</trans-unit>
<trans-unit id="s5da52af9b083c29a">
<source>Model</source>
</trans-unit>
<trans-unit id="s3ba9b8aeb686d9f7">
<source>Match events created by selected model. When left empty, all models are matched.</source>
</trans-unit> </trans-unit>
</body> </body>
</file> </file>

View File

@ -5750,6 +5750,12 @@ Bindings to groups/users are checked against the user of the event.</source>
</trans-unit> </trans-unit>
<trans-unit id="s000ee3e634868b3c"> <trans-unit id="s000ee3e634868b3c">
<source>TLS Client authentication certificate</source> <source>TLS Client authentication certificate</source>
</trans-unit>
<trans-unit id="s5da52af9b083c29a">
<source>Model</source>
</trans-unit>
<trans-unit id="s3ba9b8aeb686d9f7">
<source>Match events created by selected model. When left empty, all models are matched.</source>
</trans-unit> </trans-unit>
</body> </body>
</file> </file>

View File

@ -5882,6 +5882,12 @@ Bindings to groups/users are checked against the user of the event.</source>
</trans-unit> </trans-unit>
<trans-unit id="s000ee3e634868b3c"> <trans-unit id="s000ee3e634868b3c">
<source>TLS Client authentication certificate</source> <source>TLS Client authentication certificate</source>
</trans-unit>
<trans-unit id="s5da52af9b083c29a">
<source>Model</source>
</trans-unit>
<trans-unit id="s3ba9b8aeb686d9f7">
<source>Match events created by selected model. When left empty, all models are matched.</source>
</trans-unit> </trans-unit>
</body> </body>
</file> </file>

View File

@ -5986,6 +5986,12 @@ Bindings to groups/users are checked against the user of the event.</source>
</trans-unit> </trans-unit>
<trans-unit id="s000ee3e634868b3c"> <trans-unit id="s000ee3e634868b3c">
<source>TLS Client authentication certificate</source> <source>TLS Client authentication certificate</source>
</trans-unit>
<trans-unit id="s5da52af9b083c29a">
<source>Model</source>
</trans-unit>
<trans-unit id="s3ba9b8aeb686d9f7">
<source>Match events created by selected model. When left empty, all models are matched.</source>
</trans-unit> </trans-unit>
</body> </body>
</file> </file>

View File

@ -5633,6 +5633,12 @@ Bindings to groups/users are checked against the user of the event.</source>
</trans-unit> </trans-unit>
<trans-unit id="s000ee3e634868b3c"> <trans-unit id="s000ee3e634868b3c">
<source>TLS Client authentication certificate</source> <source>TLS Client authentication certificate</source>
</trans-unit>
<trans-unit id="s5da52af9b083c29a">
<source>Model</source>
</trans-unit>
<trans-unit id="s3ba9b8aeb686d9f7">
<source>Match events created by selected model. When left empty, all models are matched.</source>
</trans-unit> </trans-unit>
</body> </body>
</file> </file>

View File

@ -7557,6 +7557,12 @@ Bindings to groups/users are checked against the user of the event.</source>
</trans-unit> </trans-unit>
<trans-unit id="s000ee3e634868b3c"> <trans-unit id="s000ee3e634868b3c">
<source>TLS Client authentication certificate</source> <source>TLS Client authentication certificate</source>
</trans-unit>
<trans-unit id="s5da52af9b083c29a">
<source>Model</source>
</trans-unit>
<trans-unit id="s3ba9b8aeb686d9f7">
<source>Match events created by selected model. When left empty, all models are matched.</source>
</trans-unit> </trans-unit>
</body> </body>
</file> </file>

View File

@ -5688,6 +5688,12 @@ Bindings to groups/users are checked against the user of the event.</source>
</trans-unit> </trans-unit>
<trans-unit id="s000ee3e634868b3c"> <trans-unit id="s000ee3e634868b3c">
<source>TLS Client authentication certificate</source> <source>TLS Client authentication certificate</source>
</trans-unit>
<trans-unit id="s5da52af9b083c29a">
<source>Model</source>
</trans-unit>
<trans-unit id="s3ba9b8aeb686d9f7">
<source>Match events created by selected model. When left empty, all models are matched.</source>
</trans-unit> </trans-unit>
</body> </body>
</file> </file>

View File

@ -5687,6 +5687,12 @@ Bindings to groups/users are checked against the user of the event.</source>
</trans-unit> </trans-unit>
<trans-unit id="s000ee3e634868b3c"> <trans-unit id="s000ee3e634868b3c">
<source>TLS Client authentication certificate</source> <source>TLS Client authentication certificate</source>
</trans-unit>
<trans-unit id="s5da52af9b083c29a">
<source>Model</source>
</trans-unit>
<trans-unit id="s3ba9b8aeb686d9f7">
<source>Match events created by selected model. When left empty, all models are matched.</source>
</trans-unit> </trans-unit>
</body> </body>
</file> </file>