enterprise: cleanup v2 (#6330)
* cleanup minor stuff Signed-off-by: Jens Langhammer <jens@goauthentik.io> * change default user type to internal to be more consistent Signed-off-by: Jens Langhammer <jens@goauthentik.io> --------- Signed-off-by: Jens Langhammer <jens@goauthentik.io>
This commit is contained in:
parent
03f3ad89df
commit
d50f92d8b4
|
@ -12,7 +12,7 @@ def migrate_user_type(apps: Apps, schema_editor: BaseDatabaseSchemaEditor):
|
|||
from authentik.core.models import UserTypes
|
||||
|
||||
for user in User.objects.using(db_alias).all():
|
||||
user.type = UserTypes.DEFAULT
|
||||
user.type = UserTypes.INTERNAL
|
||||
if "goauthentik.io/user/service-account" in user.attributes:
|
||||
user.type = UserTypes.SERVICE_ACCOUNT
|
||||
if "goauthentik.io/user/override-ips" in user.attributes:
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
# Generated by Django 4.1.10 on 2023-07-21 12:54
|
||||
|
||||
from django.apps.registry import Apps
|
||||
from django.db import migrations, models
|
||||
from django.db.backends.base.schema import BaseDatabaseSchemaEditor
|
||||
|
||||
|
||||
def migrate_user_type_v2(apps: Apps, schema_editor: BaseDatabaseSchemaEditor):
|
||||
db_alias = schema_editor.connection.alias
|
||||
User = apps.get_model("authentik_core", "User")
|
||||
|
||||
from authentik.core.models import UserTypes
|
||||
|
||||
for user in User.objects.using(db_alias).all():
|
||||
if user.type != "default":
|
||||
continue
|
||||
user.type = UserTypes.INTERNAL
|
||||
user.save()
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("authentik_core", "0030_user_type"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name="user",
|
||||
name="type",
|
||||
field=models.TextField(
|
||||
choices=[
|
||||
("internal", "Internal"),
|
||||
("external", "External"),
|
||||
("service_account", "Service Account"),
|
||||
("internal_service_account", "Internal Service Account"),
|
||||
],
|
||||
default="internal",
|
||||
),
|
||||
),
|
||||
migrations.RunPython(migrate_user_type_v2),
|
||||
]
|
|
@ -67,7 +67,7 @@ class UserTypes(models.TextChoices):
|
|||
"""User types, both for grouping, licensing and permissions in the case
|
||||
of the internal_service_account"""
|
||||
|
||||
DEFAULT = "default"
|
||||
INTERNAL = "internal"
|
||||
EXTERNAL = "external"
|
||||
|
||||
# User-created service accounts
|
||||
|
@ -161,7 +161,7 @@ class User(SerializerModel, GuardianUserMixin, AbstractUser):
|
|||
uuid = models.UUIDField(default=uuid4, editable=False, unique=True)
|
||||
name = models.TextField(help_text=_("User's display name."))
|
||||
path = models.TextField(default="users")
|
||||
type = models.TextField(choices=UserTypes.choices, default=UserTypes.DEFAULT)
|
||||
type = models.TextField(choices=UserTypes.choices, default=UserTypes.INTERNAL)
|
||||
|
||||
sources = models.ManyToManyField("Source", through="UserSourceConnection")
|
||||
ak_groups = models.ManyToManyField("Group", related_name="users")
|
||||
|
|
|
@ -137,7 +137,7 @@ class LicenseViewSet(UsedByMixin, ModelViewSet):
|
|||
last_month = now() - timedelta(days=30)
|
||||
# Forecast for default users
|
||||
users_in_last_month = User.objects.filter(
|
||||
type=UserTypes.DEFAULT, date_joined__gte=last_month
|
||||
type=UserTypes.INTERNAL, date_joined__gte=last_month
|
||||
).count()
|
||||
# Forecast for external users
|
||||
external_in_last_month = LicenseKey.get_external_user_count()
|
||||
|
|
|
@ -105,7 +105,7 @@ class LicenseKey:
|
|||
@staticmethod
|
||||
def get_default_user_count():
|
||||
"""Get current default user count"""
|
||||
return LicenseKey.base_user_qs().filter(type=UserTypes.DEFAULT).count()
|
||||
return LicenseKey.base_user_qs().filter(type=UserTypes.INTERNAL).count()
|
||||
|
||||
@staticmethod
|
||||
def get_external_user_count():
|
||||
|
|
|
@ -24,7 +24,7 @@ class EnterprisePolicy(Policy):
|
|||
def passes(self, request: PolicyRequest) -> PolicyResult:
|
||||
if not LicenseKey.get_total().is_valid():
|
||||
return PolicyResult(False)
|
||||
if request.user.type != UserTypes.DEFAULT:
|
||||
if request.user.type != UserTypes.INTERNAL:
|
||||
return PolicyResult(False)
|
||||
return PolicyResult(True)
|
||||
|
||||
|
|
|
@ -3984,7 +3984,7 @@
|
|||
"type": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"default",
|
||||
"internal",
|
||||
"external",
|
||||
"service_account",
|
||||
"internal_service_account"
|
||||
|
@ -4185,7 +4185,7 @@
|
|||
"type": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"default",
|
||||
"internal",
|
||||
"external",
|
||||
"service_account",
|
||||
"internal_service_account"
|
||||
|
@ -4390,7 +4390,7 @@
|
|||
"type": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"default",
|
||||
"internal",
|
||||
"external",
|
||||
"service_account",
|
||||
"internal_service_account"
|
||||
|
@ -6556,7 +6556,7 @@
|
|||
"type": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"default",
|
||||
"internal",
|
||||
"external",
|
||||
"service_account",
|
||||
"internal_service_account"
|
||||
|
@ -7301,7 +7301,7 @@
|
|||
"type": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"default",
|
||||
"internal",
|
||||
"external",
|
||||
"service_account",
|
||||
"internal_service_account"
|
||||
|
@ -8387,7 +8387,7 @@
|
|||
"type": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"default",
|
||||
"internal",
|
||||
"external",
|
||||
"service_account",
|
||||
"internal_service_account"
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-07-16 13:59+0000\n"
|
||||
"POT-Creation-Date: 2023-07-21 13:04+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -2017,33 +2017,33 @@ msgstr ""
|
|||
msgid "Dummy Stages"
|
||||
msgstr ""
|
||||
|
||||
#: authentik/stages/email/models.py:25
|
||||
#: authentik/stages/email/models.py:26
|
||||
msgid "Password Reset"
|
||||
msgstr ""
|
||||
|
||||
#: authentik/stages/email/models.py:29
|
||||
#: authentik/stages/email/models.py:30
|
||||
msgid "Account Confirmation"
|
||||
msgstr ""
|
||||
|
||||
#: authentik/stages/email/models.py:58
|
||||
#: authentik/stages/email/models.py:59
|
||||
msgid ""
|
||||
"When enabled, global Email connection settings will be used and connection "
|
||||
"settings below will be ignored."
|
||||
msgstr ""
|
||||
|
||||
#: authentik/stages/email/models.py:73
|
||||
#: authentik/stages/email/models.py:74
|
||||
msgid "Activate users upon completion of stage."
|
||||
msgstr ""
|
||||
|
||||
#: authentik/stages/email/models.py:77
|
||||
#: authentik/stages/email/models.py:78
|
||||
msgid "Time in minutes the token sent is valid."
|
||||
msgstr ""
|
||||
|
||||
#: authentik/stages/email/models.py:122
|
||||
#: authentik/stages/email/models.py:132
|
||||
msgid "Email Stage"
|
||||
msgstr ""
|
||||
|
||||
#: authentik/stages/email/models.py:123
|
||||
#: authentik/stages/email/models.py:133
|
||||
msgid "Email Stages"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -4609,12 +4609,12 @@ paths:
|
|||
schema:
|
||||
type: string
|
||||
enum:
|
||||
- default
|
||||
- external
|
||||
- internal
|
||||
- internal_service_account
|
||||
- service_account
|
||||
description: |-
|
||||
* `default` - Default
|
||||
* `internal` - Internal
|
||||
* `external` - External
|
||||
* `service_account` - Service Account
|
||||
* `internal_service_account` - Internal Service Account
|
||||
|
@ -42581,13 +42581,13 @@ components:
|
|||
- user
|
||||
UserTypeEnum:
|
||||
enum:
|
||||
- default
|
||||
- internal
|
||||
- external
|
||||
- service_account
|
||||
- internal_service_account
|
||||
type: string
|
||||
description: |-
|
||||
* `default` - Default
|
||||
* `internal` - Internal
|
||||
* `external` - External
|
||||
* `service_account` - Service Account
|
||||
* `internal_service_account` - Internal Service Account
|
||||
|
|
|
@ -92,6 +92,24 @@ export class EnterpriseLicenseListPage extends TablePage<License> {
|
|||
];
|
||||
}
|
||||
|
||||
// TODO: Make this more generic, maybe automatically get the plural name
|
||||
// of the object to use in the renderEmpty
|
||||
renderEmpty(inner?: TemplateResult): TemplateResult {
|
||||
return super.renderEmpty(html`
|
||||
${inner
|
||||
? inner
|
||||
: html`<ak-empty-state
|
||||
icon=${this.pageIcon()}
|
||||
header="${msg("No licenses found.")}"
|
||||
>
|
||||
<div slot="body">
|
||||
${this.searchEnabled() ? this.renderEmptyClearSearch() : html``}
|
||||
</div>
|
||||
<div slot="primary">${this.renderObjectCreate()}</div>
|
||||
</ak-empty-state>`}
|
||||
`);
|
||||
}
|
||||
|
||||
renderToolbarSelected(): TemplateResult {
|
||||
const disabled = this.selectedElements.length < 1;
|
||||
return html`<ak-forms-delete-bulk
|
||||
|
@ -149,9 +167,9 @@ export class EnterpriseLicenseListPage extends TablePage<License> {
|
|||
<ak-aggregate-card
|
||||
class="pf-l-grid__item"
|
||||
icon="pf-icon pf-icon-user"
|
||||
header=${msg("Forecast default users")}
|
||||
header=${msg("Forecast internal users")}
|
||||
subtext=${msg(
|
||||
str`Estimated user count one year from now based on ${this.forecast?.users} current users and ${this.forecast?.forecastedUsers} forecasted users.`,
|
||||
str`Estimated user count one year from now based on ${this.forecast?.users} current internal users and ${this.forecast?.forecastedUsers} forecasted internal users.`,
|
||||
)}
|
||||
>
|
||||
~ ${(this.forecast?.users || 0) +
|
||||
|
|
|
@ -80,22 +80,27 @@ export class UserForm extends ModelForm<User, number> {
|
|||
<ak-form-element-horizontal label=${msg("User type")} ?required=${true} name="type">
|
||||
<ak-radio
|
||||
.options=${[
|
||||
// TODO: Add better copy
|
||||
{
|
||||
label: "Default",
|
||||
value: UserTypeEnum.Default,
|
||||
label: "Internal",
|
||||
value: UserTypeEnum.Internal,
|
||||
default: true,
|
||||
description: html`${msg("Default user")}`,
|
||||
description: html`${msg(
|
||||
"Internal users might be users such as company employees, which will get access to the full Enterprise feature set.",
|
||||
)}`,
|
||||
},
|
||||
{
|
||||
label: "External",
|
||||
value: UserTypeEnum.External,
|
||||
description: html`${msg("External user")}`,
|
||||
description: html`${msg(
|
||||
"External users might be external consultants or B2C customers. These users don't get access to enterprise features.",
|
||||
)}`,
|
||||
},
|
||||
{
|
||||
label: "Service account",
|
||||
value: UserTypeEnum.ServiceAccount,
|
||||
description: html`${msg("Service account")}`,
|
||||
description: html`${msg(
|
||||
"Service accounts should be used for machine-to-machine authentication or other automations.",
|
||||
)}`,
|
||||
},
|
||||
]}
|
||||
.value=${this.instance?.type}
|
||||
|
|
|
@ -5775,45 +5775,18 @@ Bindings to groups/users are checked against the user of the event.</source>
|
|||
<trans-unit id="s2e109263b73c12d5">
|
||||
<source>Licenses</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf8f9f3032e891e16">
|
||||
<source>TODO Copy</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sd49099e9522635f4">
|
||||
<source>License(s)</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s3be1d90ffa46b7f1">
|
||||
<source>Enterprise is in preview.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s34dca481f039c226">
|
||||
<source>How to get a license</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s948364901c166232">
|
||||
<source>Copy the installation ID</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s75c167446b237e0f">
|
||||
<source>Then open the customer portal</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s9748dd3bd53d27a4">
|
||||
<source>Forecasted default users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6b18f594d94c2374">
|
||||
<source>Estimated user count one year from now</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s69f246d164be88d0">
|
||||
<source>Forecasted external users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s878fc2eaf94642db">
|
||||
<source>Estimated external user count one year from now</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sd22bd01bdf28c548">
|
||||
<source>Cumulative license expiry</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sdeb6cee42435dd07">
|
||||
<source>Update License</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s99afa741c259d70e">
|
||||
<source>Create License</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s7df5b92a3f93544f">
|
||||
<source>Warning: The current user count has exceeded the configured licenses.</source>
|
||||
</trans-unit>
|
||||
|
@ -5825,6 +5798,36 @@ Bindings to groups/users are checked against the user of the event.</source>
|
|||
</trans-unit>
|
||||
<trans-unit id="s9ce7cc01fb9b5b53">
|
||||
<source>Manage enterprise licenses</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf9ebf11ac2645820">
|
||||
<source>No licenses found.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sa1db89262360550b">
|
||||
<source>Send us feedback!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4015746f55a8d89f">
|
||||
<source>Get a license</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sb2cbd06f8e25b47e">
|
||||
<source>Go to Customer Portal</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf58825457d61c429">
|
||||
<source>Forecast internal users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sde9a3f41977ec1f8">
|
||||
<source>Estimated user count one year from now based on <x id="0" equiv-text="${this.forecast?.users}"/> current internal users and <x id="1" equiv-text="${this.forecast?.forecastedUsers}"/> forecasted internal users.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4557b6b9da258643">
|
||||
<source>Forecast external users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf52479d6daa0a4a8">
|
||||
<source>Estimated user count one year from now based on <x id="0" equiv-text="${this.forecast?.externalUsers}"/> current external users and <x id="1" equiv-text="${this.forecast?.forecastedExternalUsers}"/> forecasted external users.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6196153c4b0c1ea0">
|
||||
<source>Install</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s0285b4bd69130fa3">
|
||||
<source>Install License</source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
|
|
@ -6091,45 +6091,18 @@ Bindings to groups/users are checked against the user of the event.</source>
|
|||
<trans-unit id="s2e109263b73c12d5">
|
||||
<source>Licenses</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf8f9f3032e891e16">
|
||||
<source>TODO Copy</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sd49099e9522635f4">
|
||||
<source>License(s)</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s3be1d90ffa46b7f1">
|
||||
<source>Enterprise is in preview.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s34dca481f039c226">
|
||||
<source>How to get a license</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s948364901c166232">
|
||||
<source>Copy the installation ID</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s75c167446b237e0f">
|
||||
<source>Then open the customer portal</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s9748dd3bd53d27a4">
|
||||
<source>Forecasted default users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6b18f594d94c2374">
|
||||
<source>Estimated user count one year from now</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s69f246d164be88d0">
|
||||
<source>Forecasted external users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s878fc2eaf94642db">
|
||||
<source>Estimated external user count one year from now</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sd22bd01bdf28c548">
|
||||
<source>Cumulative license expiry</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sdeb6cee42435dd07">
|
||||
<source>Update License</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s99afa741c259d70e">
|
||||
<source>Create License</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s7df5b92a3f93544f">
|
||||
<source>Warning: The current user count has exceeded the configured licenses.</source>
|
||||
</trans-unit>
|
||||
|
@ -6141,6 +6114,36 @@ Bindings to groups/users are checked against the user of the event.</source>
|
|||
</trans-unit>
|
||||
<trans-unit id="s9ce7cc01fb9b5b53">
|
||||
<source>Manage enterprise licenses</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf9ebf11ac2645820">
|
||||
<source>No licenses found.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sa1db89262360550b">
|
||||
<source>Send us feedback!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4015746f55a8d89f">
|
||||
<source>Get a license</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sb2cbd06f8e25b47e">
|
||||
<source>Go to Customer Portal</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf58825457d61c429">
|
||||
<source>Forecast internal users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sde9a3f41977ec1f8">
|
||||
<source>Estimated user count one year from now based on <x id="0" equiv-text="${this.forecast?.users}"/> current internal users and <x id="1" equiv-text="${this.forecast?.forecastedUsers}"/> forecasted internal users.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4557b6b9da258643">
|
||||
<source>Forecast external users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf52479d6daa0a4a8">
|
||||
<source>Estimated user count one year from now based on <x id="0" equiv-text="${this.forecast?.externalUsers}"/> current external users and <x id="1" equiv-text="${this.forecast?.forecastedExternalUsers}"/> forecasted external users.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6196153c4b0c1ea0">
|
||||
<source>Install</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s0285b4bd69130fa3">
|
||||
<source>Install License</source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
|
|
@ -5683,45 +5683,18 @@ Bindings to groups/users are checked against the user of the event.</source>
|
|||
<trans-unit id="s2e109263b73c12d5">
|
||||
<source>Licenses</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf8f9f3032e891e16">
|
||||
<source>TODO Copy</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sd49099e9522635f4">
|
||||
<source>License(s)</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s3be1d90ffa46b7f1">
|
||||
<source>Enterprise is in preview.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s34dca481f039c226">
|
||||
<source>How to get a license</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s948364901c166232">
|
||||
<source>Copy the installation ID</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s75c167446b237e0f">
|
||||
<source>Then open the customer portal</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s9748dd3bd53d27a4">
|
||||
<source>Forecasted default users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6b18f594d94c2374">
|
||||
<source>Estimated user count one year from now</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s69f246d164be88d0">
|
||||
<source>Forecasted external users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s878fc2eaf94642db">
|
||||
<source>Estimated external user count one year from now</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sd22bd01bdf28c548">
|
||||
<source>Cumulative license expiry</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sdeb6cee42435dd07">
|
||||
<source>Update License</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s99afa741c259d70e">
|
||||
<source>Create License</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s7df5b92a3f93544f">
|
||||
<source>Warning: The current user count has exceeded the configured licenses.</source>
|
||||
</trans-unit>
|
||||
|
@ -5733,6 +5706,36 @@ Bindings to groups/users are checked against the user of the event.</source>
|
|||
</trans-unit>
|
||||
<trans-unit id="s9ce7cc01fb9b5b53">
|
||||
<source>Manage enterprise licenses</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf9ebf11ac2645820">
|
||||
<source>No licenses found.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sa1db89262360550b">
|
||||
<source>Send us feedback!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4015746f55a8d89f">
|
||||
<source>Get a license</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sb2cbd06f8e25b47e">
|
||||
<source>Go to Customer Portal</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf58825457d61c429">
|
||||
<source>Forecast internal users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sde9a3f41977ec1f8">
|
||||
<source>Estimated user count one year from now based on <x id="0" equiv-text="${this.forecast?.users}"/> current internal users and <x id="1" equiv-text="${this.forecast?.forecastedUsers}"/> forecasted internal users.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4557b6b9da258643">
|
||||
<source>Forecast external users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf52479d6daa0a4a8">
|
||||
<source>Estimated user count one year from now based on <x id="0" equiv-text="${this.forecast?.externalUsers}"/> current external users and <x id="1" equiv-text="${this.forecast?.forecastedExternalUsers}"/> forecasted external users.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6196153c4b0c1ea0">
|
||||
<source>Install</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s0285b4bd69130fa3">
|
||||
<source>Install License</source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
|
|
@ -5790,45 +5790,18 @@ Bindings to groups/users are checked against the user of the event.</source>
|
|||
<trans-unit id="s2e109263b73c12d5">
|
||||
<source>Licenses</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf8f9f3032e891e16">
|
||||
<source>TODO Copy</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sd49099e9522635f4">
|
||||
<source>License(s)</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s3be1d90ffa46b7f1">
|
||||
<source>Enterprise is in preview.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s34dca481f039c226">
|
||||
<source>How to get a license</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s948364901c166232">
|
||||
<source>Copy the installation ID</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s75c167446b237e0f">
|
||||
<source>Then open the customer portal</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s9748dd3bd53d27a4">
|
||||
<source>Forecasted default users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6b18f594d94c2374">
|
||||
<source>Estimated user count one year from now</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s69f246d164be88d0">
|
||||
<source>Forecasted external users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s878fc2eaf94642db">
|
||||
<source>Estimated external user count one year from now</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sd22bd01bdf28c548">
|
||||
<source>Cumulative license expiry</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sdeb6cee42435dd07">
|
||||
<source>Update License</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s99afa741c259d70e">
|
||||
<source>Create License</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s7df5b92a3f93544f">
|
||||
<source>Warning: The current user count has exceeded the configured licenses.</source>
|
||||
</trans-unit>
|
||||
|
@ -5840,6 +5813,36 @@ Bindings to groups/users are checked against the user of the event.</source>
|
|||
</trans-unit>
|
||||
<trans-unit id="s9ce7cc01fb9b5b53">
|
||||
<source>Manage enterprise licenses</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf9ebf11ac2645820">
|
||||
<source>No licenses found.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sa1db89262360550b">
|
||||
<source>Send us feedback!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4015746f55a8d89f">
|
||||
<source>Get a license</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sb2cbd06f8e25b47e">
|
||||
<source>Go to Customer Portal</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf58825457d61c429">
|
||||
<source>Forecast internal users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sde9a3f41977ec1f8">
|
||||
<source>Estimated user count one year from now based on <x id="0" equiv-text="${this.forecast?.users}"/> current internal users and <x id="1" equiv-text="${this.forecast?.forecastedUsers}"/> forecasted internal users.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4557b6b9da258643">
|
||||
<source>Forecast external users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf52479d6daa0a4a8">
|
||||
<source>Estimated user count one year from now based on <x id="0" equiv-text="${this.forecast?.externalUsers}"/> current external users and <x id="1" equiv-text="${this.forecast?.forecastedExternalUsers}"/> forecasted external users.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6196153c4b0c1ea0">
|
||||
<source>Install</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s0285b4bd69130fa3">
|
||||
<source>Install License</source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
|
|
@ -5922,45 +5922,18 @@ Bindings to groups/users are checked against the user of the event.</source>
|
|||
<trans-unit id="s2e109263b73c12d5">
|
||||
<source>Licenses</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf8f9f3032e891e16">
|
||||
<source>TODO Copy</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sd49099e9522635f4">
|
||||
<source>License(s)</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s3be1d90ffa46b7f1">
|
||||
<source>Enterprise is in preview.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s34dca481f039c226">
|
||||
<source>How to get a license</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s948364901c166232">
|
||||
<source>Copy the installation ID</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s75c167446b237e0f">
|
||||
<source>Then open the customer portal</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s9748dd3bd53d27a4">
|
||||
<source>Forecasted default users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6b18f594d94c2374">
|
||||
<source>Estimated user count one year from now</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s69f246d164be88d0">
|
||||
<source>Forecasted external users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s878fc2eaf94642db">
|
||||
<source>Estimated external user count one year from now</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sd22bd01bdf28c548">
|
||||
<source>Cumulative license expiry</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sdeb6cee42435dd07">
|
||||
<source>Update License</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s99afa741c259d70e">
|
||||
<source>Create License</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s7df5b92a3f93544f">
|
||||
<source>Warning: The current user count has exceeded the configured licenses.</source>
|
||||
</trans-unit>
|
||||
|
@ -5972,6 +5945,36 @@ Bindings to groups/users are checked against the user of the event.</source>
|
|||
</trans-unit>
|
||||
<trans-unit id="s9ce7cc01fb9b5b53">
|
||||
<source>Manage enterprise licenses</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf9ebf11ac2645820">
|
||||
<source>No licenses found.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sa1db89262360550b">
|
||||
<source>Send us feedback!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4015746f55a8d89f">
|
||||
<source>Get a license</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sb2cbd06f8e25b47e">
|
||||
<source>Go to Customer Portal</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf58825457d61c429">
|
||||
<source>Forecast internal users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sde9a3f41977ec1f8">
|
||||
<source>Estimated user count one year from now based on <x id="0" equiv-text="${this.forecast?.users}"/> current internal users and <x id="1" equiv-text="${this.forecast?.forecastedUsers}"/> forecasted internal users.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4557b6b9da258643">
|
||||
<source>Forecast external users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf52479d6daa0a4a8">
|
||||
<source>Estimated user count one year from now based on <x id="0" equiv-text="${this.forecast?.externalUsers}"/> current external users and <x id="1" equiv-text="${this.forecast?.forecastedExternalUsers}"/> forecasted external users.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6196153c4b0c1ea0">
|
||||
<source>Install</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s0285b4bd69130fa3">
|
||||
<source>Install License</source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
|
|
@ -6026,45 +6026,18 @@ Bindings to groups/users are checked against the user of the event.</source>
|
|||
<trans-unit id="s2e109263b73c12d5">
|
||||
<source>Licenses</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf8f9f3032e891e16">
|
||||
<source>TODO Copy</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sd49099e9522635f4">
|
||||
<source>License(s)</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s3be1d90ffa46b7f1">
|
||||
<source>Enterprise is in preview.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s34dca481f039c226">
|
||||
<source>How to get a license</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s948364901c166232">
|
||||
<source>Copy the installation ID</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s75c167446b237e0f">
|
||||
<source>Then open the customer portal</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s9748dd3bd53d27a4">
|
||||
<source>Forecasted default users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6b18f594d94c2374">
|
||||
<source>Estimated user count one year from now</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s69f246d164be88d0">
|
||||
<source>Forecasted external users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s878fc2eaf94642db">
|
||||
<source>Estimated external user count one year from now</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sd22bd01bdf28c548">
|
||||
<source>Cumulative license expiry</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sdeb6cee42435dd07">
|
||||
<source>Update License</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s99afa741c259d70e">
|
||||
<source>Create License</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s7df5b92a3f93544f">
|
||||
<source>Warning: The current user count has exceeded the configured licenses.</source>
|
||||
</trans-unit>
|
||||
|
@ -6076,6 +6049,36 @@ Bindings to groups/users are checked against the user of the event.</source>
|
|||
</trans-unit>
|
||||
<trans-unit id="s9ce7cc01fb9b5b53">
|
||||
<source>Manage enterprise licenses</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf9ebf11ac2645820">
|
||||
<source>No licenses found.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sa1db89262360550b">
|
||||
<source>Send us feedback!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4015746f55a8d89f">
|
||||
<source>Get a license</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sb2cbd06f8e25b47e">
|
||||
<source>Go to Customer Portal</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf58825457d61c429">
|
||||
<source>Forecast internal users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sde9a3f41977ec1f8">
|
||||
<source>Estimated user count one year from now based on <x id="0" equiv-text="${this.forecast?.users}"/> current internal users and <x id="1" equiv-text="${this.forecast?.forecastedUsers}"/> forecasted internal users.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4557b6b9da258643">
|
||||
<source>Forecast external users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf52479d6daa0a4a8">
|
||||
<source>Estimated user count one year from now based on <x id="0" equiv-text="${this.forecast?.externalUsers}"/> current external users and <x id="1" equiv-text="${this.forecast?.forecastedExternalUsers}"/> forecasted external users.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6196153c4b0c1ea0">
|
||||
<source>Install</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s0285b4bd69130fa3">
|
||||
<source>Install License</source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
|
|
@ -5673,45 +5673,18 @@ Bindings to groups/users are checked against the user of the event.</source>
|
|||
<trans-unit id="s2e109263b73c12d5">
|
||||
<source>Licenses</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf8f9f3032e891e16">
|
||||
<source>TODO Copy</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sd49099e9522635f4">
|
||||
<source>License(s)</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s3be1d90ffa46b7f1">
|
||||
<source>Enterprise is in preview.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s34dca481f039c226">
|
||||
<source>How to get a license</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s948364901c166232">
|
||||
<source>Copy the installation ID</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s75c167446b237e0f">
|
||||
<source>Then open the customer portal</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s9748dd3bd53d27a4">
|
||||
<source>Forecasted default users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6b18f594d94c2374">
|
||||
<source>Estimated user count one year from now</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s69f246d164be88d0">
|
||||
<source>Forecasted external users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s878fc2eaf94642db">
|
||||
<source>Estimated external user count one year from now</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sd22bd01bdf28c548">
|
||||
<source>Cumulative license expiry</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sdeb6cee42435dd07">
|
||||
<source>Update License</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s99afa741c259d70e">
|
||||
<source>Create License</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s7df5b92a3f93544f">
|
||||
<source>Warning: The current user count has exceeded the configured licenses.</source>
|
||||
</trans-unit>
|
||||
|
@ -5723,6 +5696,36 @@ Bindings to groups/users are checked against the user of the event.</source>
|
|||
</trans-unit>
|
||||
<trans-unit id="s9ce7cc01fb9b5b53">
|
||||
<source>Manage enterprise licenses</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf9ebf11ac2645820">
|
||||
<source>No licenses found.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sa1db89262360550b">
|
||||
<source>Send us feedback!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4015746f55a8d89f">
|
||||
<source>Get a license</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sb2cbd06f8e25b47e">
|
||||
<source>Go to Customer Portal</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf58825457d61c429">
|
||||
<source>Forecast internal users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sde9a3f41977ec1f8">
|
||||
<source>Estimated user count one year from now based on <x id="0" equiv-text="${this.forecast?.users}"/> current internal users and <x id="1" equiv-text="${this.forecast?.forecastedUsers}"/> forecasted internal users.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4557b6b9da258643">
|
||||
<source>Forecast external users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf52479d6daa0a4a8">
|
||||
<source>Estimated user count one year from now based on <x id="0" equiv-text="${this.forecast?.externalUsers}"/> current external users and <x id="1" equiv-text="${this.forecast?.forecastedExternalUsers}"/> forecasted external users.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6196153c4b0c1ea0">
|
||||
<source>Install</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s0285b4bd69130fa3">
|
||||
<source>Install License</source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?xml version="1.0" ?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
|
||||
<?xml version="1.0"?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
|
||||
<file target-language="zh-Hans" source-language="en" original="lit-localize-inputs" datatype="plaintext">
|
||||
<body>
|
||||
<trans-unit id="s4caed5b7a7e5d89b">
|
||||
|
@ -618,9 +618,9 @@
|
|||
|
||||
</trans-unit>
|
||||
<trans-unit id="saa0e2675da69651b">
|
||||
<source>The URL "<x id="0" equiv-text="${this.url}"/>" was not found.</source>
|
||||
<target>未找到 URL "
|
||||
<x id="0" equiv-text="${this.url}"/>"。</target>
|
||||
<source>The URL "<x id="0" equiv-text="${this.url}"/>" was not found.</source>
|
||||
<target>未找到 URL "
|
||||
<x id="0" equiv-text="${this.url}"/>"。</target>
|
||||
|
||||
</trans-unit>
|
||||
<trans-unit id="s58cd9c2fe836d9c6">
|
||||
|
@ -1072,8 +1072,8 @@
|
|||
|
||||
</trans-unit>
|
||||
<trans-unit id="sa8384c9c26731f83">
|
||||
<source>To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have.</source>
|
||||
<target>要允许任何重定向 URI,请将此值设置为 ".*"。请注意这可能带来的安全影响。</target>
|
||||
<source>To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have.</source>
|
||||
<target>要允许任何重定向 URI,请将此值设置为 ".*"。请注意这可能带来的安全影响。</target>
|
||||
|
||||
</trans-unit>
|
||||
<trans-unit id="s55787f4dfcdce52b">
|
||||
|
@ -1819,8 +1819,8 @@
|
|||
|
||||
</trans-unit>
|
||||
<trans-unit id="sa90b7809586c35ce">
|
||||
<source>Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test".</source>
|
||||
<target>输入完整 URL、相对路径,或者使用 'fa://fa-test' 来使用 Font Awesome 图标 "fa-test"。</target>
|
||||
<source>Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test".</source>
|
||||
<target>输入完整 URL、相对路径,或者使用 'fa://fa-test' 来使用 Font Awesome 图标 "fa-test"。</target>
|
||||
|
||||
</trans-unit>
|
||||
<trans-unit id="s0410779cb47de312">
|
||||
|
@ -3248,8 +3248,8 @@ doesn't pass when either or both of the selected options are equal or above the
|
|||
|
||||
</trans-unit>
|
||||
<trans-unit id="s76768bebabb7d543">
|
||||
<source>Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...'</source>
|
||||
<target>包含组成员的字段。请注意,如果使用 "memberUid" 字段,则假定该值包含相对可分辨名称。例如,'memberUid=some-user' 而不是 'memberUid=cn=some-user,ou=groups,...'</target>
|
||||
<source>Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...'</source>
|
||||
<target>包含组成员的字段。请注意,如果使用 "memberUid" 字段,则假定该值包含相对可分辨名称。例如,'memberUid=some-user' 而不是 'memberUid=cn=some-user,ou=groups,...'</target>
|
||||
|
||||
</trans-unit>
|
||||
<trans-unit id="s026555347e589f0e">
|
||||
|
@ -4046,8 +4046,8 @@ doesn't pass when either or both of the selected options are equal or above the
|
|||
|
||||
</trans-unit>
|
||||
<trans-unit id="s7b1fba26d245cb1c">
|
||||
<source>When using an external logging solution for archiving, this can be set to "minutes=5".</source>
|
||||
<target>使用外部日志记录解决方案进行存档时,可以将其设置为 "minutes=5"。</target>
|
||||
<source>When using an external logging solution for archiving, this can be set to "minutes=5".</source>
|
||||
<target>使用外部日志记录解决方案进行存档时,可以将其设置为 "minutes=5"。</target>
|
||||
|
||||
</trans-unit>
|
||||
<trans-unit id="s44536d20bb5c8257">
|
||||
|
@ -4056,8 +4056,8 @@ doesn't pass when either or both of the selected options are equal or above the
|
|||
|
||||
</trans-unit>
|
||||
<trans-unit id="s3bb51cabb02b997e">
|
||||
<source>Format: "weeks=3;days=2;hours=3,seconds=2".</source>
|
||||
<target>格式:"weeks=3;days=2;hours=3,seconds=2"。</target>
|
||||
<source>Format: "weeks=3;days=2;hours=3,seconds=2".</source>
|
||||
<target>格式:"weeks=3;days=2;hours=3,seconds=2"。</target>
|
||||
|
||||
</trans-unit>
|
||||
<trans-unit id="s04bfd02201db5ab8">
|
||||
|
@ -4253,10 +4253,10 @@ doesn't pass when either or both of the selected options are equal or above the
|
|||
|
||||
</trans-unit>
|
||||
<trans-unit id="sa95a538bfbb86111">
|
||||
<source>Are you sure you want to update <x id="0" equiv-text="${this.objectLabel}"/> "<x id="1" equiv-text="${this.obj?.name}"/>"?</source>
|
||||
<source>Are you sure you want to update <x id="0" equiv-text="${this.objectLabel}"/> "<x id="1" equiv-text="${this.obj?.name}"/>"?</source>
|
||||
<target>您确定要更新
|
||||
<x id="0" equiv-text="${this.objectLabel}"/>"
|
||||
<x id="1" equiv-text="${this.obj?.name}"/>" 吗?</target>
|
||||
<x id="0" equiv-text="${this.objectLabel}"/>"
|
||||
<x id="1" equiv-text="${this.obj?.name}"/>" 吗?</target>
|
||||
|
||||
</trans-unit>
|
||||
<trans-unit id="sc92d7cfb6ee1fec6">
|
||||
|
@ -5372,7 +5372,7 @@ doesn't pass when either or both of the selected options are equal or above the
|
|||
|
||||
</trans-unit>
|
||||
<trans-unit id="sdf1d8edef27236f0">
|
||||
<source>A "roaming" authenticator, like a YubiKey</source>
|
||||
<source>A "roaming" authenticator, like a YubiKey</source>
|
||||
<target>像 YubiKey 这样的“漫游”身份验证器</target>
|
||||
|
||||
</trans-unit>
|
||||
|
@ -5712,10 +5712,10 @@ doesn't pass when either or both of the selected options are equal or above the
|
|||
|
||||
</trans-unit>
|
||||
<trans-unit id="s2d5f69929bb7221d">
|
||||
<source><x id="0" equiv-text="${prompt.name}"/> ("<x id="1" equiv-text="${prompt.fieldKey}"/>", of type <x id="2" equiv-text="${prompt.type}"/>)</source>
|
||||
<source><x id="0" equiv-text="${prompt.name}"/> ("<x id="1" equiv-text="${prompt.fieldKey}"/>", of type <x id="2" equiv-text="${prompt.type}"/>)</source>
|
||||
<target>
|
||||
<x id="0" equiv-text="${prompt.name}"/>("
|
||||
<x id="1" equiv-text="${prompt.fieldKey}"/>",类型为
|
||||
<x id="0" equiv-text="${prompt.name}"/>("
|
||||
<x id="1" equiv-text="${prompt.fieldKey}"/>",类型为
|
||||
<x id="2" equiv-text="${prompt.type}"/>)</target>
|
||||
|
||||
</trans-unit>
|
||||
|
@ -5764,7 +5764,7 @@ doesn't pass when either or both of the selected options are equal or above the
|
|||
|
||||
</trans-unit>
|
||||
<trans-unit id="s1608b2f94fa0dbd4">
|
||||
<source>If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here.</source>
|
||||
<source>If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here.</source>
|
||||
<target>如果设置时长大于 0,用户可以选择“保持登录”选项,这将使用户的会话延长此处设置的时间。</target>
|
||||
|
||||
</trans-unit>
|
||||
|
@ -7617,10 +7617,6 @@ Bindings to groups/users are checked against the user of the event.</source>
|
|||
<source>Licenses</source>
|
||||
<target>许可证</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf8f9f3032e891e16">
|
||||
<source>TODO Copy</source>
|
||||
<target>未定副本</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="sd49099e9522635f4">
|
||||
<source>License(s)</source>
|
||||
<target>许可证</target>
|
||||
|
@ -7629,34 +7625,6 @@ Bindings to groups/users are checked against the user of the event.</source>
|
|||
<source>Enterprise is in preview.</source>
|
||||
<target>企业版目前处于预览状态。</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="s34dca481f039c226">
|
||||
<source>How to get a license</source>
|
||||
<target>如何获取许可证</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="s948364901c166232">
|
||||
<source>Copy the installation ID</source>
|
||||
<target>复制安装 ID</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="s75c167446b237e0f">
|
||||
<source>Then open the customer portal</source>
|
||||
<target>然后打开消费者中心</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="s9748dd3bd53d27a4">
|
||||
<source>Forecasted default users</source>
|
||||
<target>预测默认用户</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6b18f594d94c2374">
|
||||
<source>Estimated user count one year from now</source>
|
||||
<target>预计从此时开始一年内的用户数</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="s69f246d164be88d0">
|
||||
<source>Forecasted external users</source>
|
||||
<target>预测外部用户</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="s878fc2eaf94642db">
|
||||
<source>Estimated external user count one year from now</source>
|
||||
<target>预计从此时开始一年内的外部用户数</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="sd22bd01bdf28c548">
|
||||
<source>Cumulative license expiry</source>
|
||||
<target>累计许可证过期时间</target>
|
||||
|
@ -7665,10 +7633,6 @@ Bindings to groups/users are checked against the user of the event.</source>
|
|||
<source>Update License</source>
|
||||
<target>更新许可证</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="s99afa741c259d70e">
|
||||
<source>Create License</source>
|
||||
<target>创建许可证</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="s7df5b92a3f93544f">
|
||||
<source>Warning: The current user count has exceeded the configured licenses.</source>
|
||||
<target>警告:当前用户数超过了配置的许可证限制</target>
|
||||
|
@ -7684,6 +7648,36 @@ Bindings to groups/users are checked against the user of the event.</source>
|
|||
<trans-unit id="s9ce7cc01fb9b5b53">
|
||||
<source>Manage enterprise licenses</source>
|
||||
<target>管理企业版许可证</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf9ebf11ac2645820">
|
||||
<source>No licenses found.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sa1db89262360550b">
|
||||
<source>Send us feedback!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4015746f55a8d89f">
|
||||
<source>Get a license</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sb2cbd06f8e25b47e">
|
||||
<source>Go to Customer Portal</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf58825457d61c429">
|
||||
<source>Forecast internal users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sde9a3f41977ec1f8">
|
||||
<source>Estimated user count one year from now based on <x id="0" equiv-text="${this.forecast?.users}"/> current internal users and <x id="1" equiv-text="${this.forecast?.forecastedUsers}"/> forecasted internal users.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4557b6b9da258643">
|
||||
<source>Forecast external users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf52479d6daa0a4a8">
|
||||
<source>Estimated user count one year from now based on <x id="0" equiv-text="${this.forecast?.externalUsers}"/> current external users and <x id="1" equiv-text="${this.forecast?.forecastedExternalUsers}"/> forecasted external users.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6196153c4b0c1ea0">
|
||||
<source>Install</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s0285b4bd69130fa3">
|
||||
<source>Install License</source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
|
|
@ -5728,45 +5728,18 @@ Bindings to groups/users are checked against the user of the event.</source>
|
|||
<trans-unit id="s2e109263b73c12d5">
|
||||
<source>Licenses</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf8f9f3032e891e16">
|
||||
<source>TODO Copy</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sd49099e9522635f4">
|
||||
<source>License(s)</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s3be1d90ffa46b7f1">
|
||||
<source>Enterprise is in preview.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s34dca481f039c226">
|
||||
<source>How to get a license</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s948364901c166232">
|
||||
<source>Copy the installation ID</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s75c167446b237e0f">
|
||||
<source>Then open the customer portal</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s9748dd3bd53d27a4">
|
||||
<source>Forecasted default users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6b18f594d94c2374">
|
||||
<source>Estimated user count one year from now</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s69f246d164be88d0">
|
||||
<source>Forecasted external users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s878fc2eaf94642db">
|
||||
<source>Estimated external user count one year from now</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sd22bd01bdf28c548">
|
||||
<source>Cumulative license expiry</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sdeb6cee42435dd07">
|
||||
<source>Update License</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s99afa741c259d70e">
|
||||
<source>Create License</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s7df5b92a3f93544f">
|
||||
<source>Warning: The current user count has exceeded the configured licenses.</source>
|
||||
</trans-unit>
|
||||
|
@ -5778,6 +5751,36 @@ Bindings to groups/users are checked against the user of the event.</source>
|
|||
</trans-unit>
|
||||
<trans-unit id="s9ce7cc01fb9b5b53">
|
||||
<source>Manage enterprise licenses</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf9ebf11ac2645820">
|
||||
<source>No licenses found.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sa1db89262360550b">
|
||||
<source>Send us feedback!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4015746f55a8d89f">
|
||||
<source>Get a license</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sb2cbd06f8e25b47e">
|
||||
<source>Go to Customer Portal</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf58825457d61c429">
|
||||
<source>Forecast internal users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sde9a3f41977ec1f8">
|
||||
<source>Estimated user count one year from now based on <x id="0" equiv-text="${this.forecast?.users}"/> current internal users and <x id="1" equiv-text="${this.forecast?.forecastedUsers}"/> forecasted internal users.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4557b6b9da258643">
|
||||
<source>Forecast external users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf52479d6daa0a4a8">
|
||||
<source>Estimated user count one year from now based on <x id="0" equiv-text="${this.forecast?.externalUsers}"/> current external users and <x id="1" equiv-text="${this.forecast?.forecastedExternalUsers}"/> forecasted external users.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6196153c4b0c1ea0">
|
||||
<source>Install</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s0285b4bd69130fa3">
|
||||
<source>Install License</source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
|
|
@ -5727,45 +5727,18 @@ Bindings to groups/users are checked against the user of the event.</source>
|
|||
<trans-unit id="s2e109263b73c12d5">
|
||||
<source>Licenses</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf8f9f3032e891e16">
|
||||
<source>TODO Copy</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sd49099e9522635f4">
|
||||
<source>License(s)</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s3be1d90ffa46b7f1">
|
||||
<source>Enterprise is in preview.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s34dca481f039c226">
|
||||
<source>How to get a license</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s948364901c166232">
|
||||
<source>Copy the installation ID</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s75c167446b237e0f">
|
||||
<source>Then open the customer portal</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s9748dd3bd53d27a4">
|
||||
<source>Forecasted default users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6b18f594d94c2374">
|
||||
<source>Estimated user count one year from now</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s69f246d164be88d0">
|
||||
<source>Forecasted external users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s878fc2eaf94642db">
|
||||
<source>Estimated external user count one year from now</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sd22bd01bdf28c548">
|
||||
<source>Cumulative license expiry</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sdeb6cee42435dd07">
|
||||
<source>Update License</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s99afa741c259d70e">
|
||||
<source>Create License</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s7df5b92a3f93544f">
|
||||
<source>Warning: The current user count has exceeded the configured licenses.</source>
|
||||
</trans-unit>
|
||||
|
@ -5777,6 +5750,36 @@ Bindings to groups/users are checked against the user of the event.</source>
|
|||
</trans-unit>
|
||||
<trans-unit id="s9ce7cc01fb9b5b53">
|
||||
<source>Manage enterprise licenses</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf9ebf11ac2645820">
|
||||
<source>No licenses found.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sa1db89262360550b">
|
||||
<source>Send us feedback!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4015746f55a8d89f">
|
||||
<source>Get a license</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sb2cbd06f8e25b47e">
|
||||
<source>Go to Customer Portal</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf58825457d61c429">
|
||||
<source>Forecast internal users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sde9a3f41977ec1f8">
|
||||
<source>Estimated user count one year from now based on <x id="0" equiv-text="${this.forecast?.users}"/> current internal users and <x id="1" equiv-text="${this.forecast?.forecastedUsers}"/> forecasted internal users.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4557b6b9da258643">
|
||||
<source>Forecast external users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="sf52479d6daa0a4a8">
|
||||
<source>Estimated user count one year from now based on <x id="0" equiv-text="${this.forecast?.externalUsers}"/> current external users and <x id="1" equiv-text="${this.forecast?.forecastedExternalUsers}"/> forecasted external users.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6196153c4b0c1ea0">
|
||||
<source>Install</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s0285b4bd69130fa3">
|
||||
<source>Install License</source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
|
|
@ -57,7 +57,7 @@ export default function pricingPage() {
|
|||
</div>
|
||||
<div className="card__footer">
|
||||
<h1>
|
||||
$5 <small>/default user/month</small>
|
||||
$5 <small>/internal user/month</small>
|
||||
</h1>
|
||||
<h1>
|
||||
$0.02{" "}
|
||||
|
@ -129,8 +129,8 @@ export default function pricingPage() {
|
|||
body="We only offer support as part of an enterprise license. You can get community support on GitHub and Discord for the open-source version."
|
||||
/>
|
||||
<Card
|
||||
title="What's the difference between default and external users?"
|
||||
body="Default users might be users such as company employees, which will get access to the full Enterprise feature set. External users might be external consultants or B2C customers. These users don't get access to enterprise features."
|
||||
title="What's the difference between internal and external users?"
|
||||
body="Internal users might be users such as company employees, which will get access to the full Enterprise feature set. External users might be external consultants or B2C customers. These users don't get access to enterprise features."
|
||||
/>
|
||||
<Card
|
||||
title="Are you planning to add X to authentik?"
|
||||
|
|
Reference in New Issue