Localize setup and settings (#820)

This commit is contained in:
Leendert de Borst
2025-07-03 17:29:02 +02:00
committed by Leendert de Borst
parent 4d57f8dea3
commit db39a18ab5
19 changed files with 882 additions and 68 deletions

View File

@@ -1,4 +1,8 @@
@implements IDisposable
@inject IStringLocalizerFactory LocalizerFactory
@inject IStringLocalizer<SharedResources> SharedLocalizer
@using AliasVault.Client.Resources
@using Microsoft.Extensions.Localization
@using System.Timers
<div class="w-full mx-auto">
@@ -11,28 +15,18 @@
<div class="@(_isLoading ? "invisible opacity-0" : "opacity-100") transition-opacity duration-300 w-full">
<div class="bg-white dark:bg-gray-800 rounded-lg shadow-lg lg:shadow-none p-6">
<p class="text-sm text-gray-600 dark:text-gray-400 mb-4">
Please read and agree to the following terms and conditions before proceeding.
@Localizer["PleaseReadAndAgree"]
</p>
<div class="bg-gray-100 dark:bg-gray-700 rounded-lg p-4 mb-8 h-80 overflow-y-auto">
<h3 class="text-lg font-semibold text-gray-900 dark:text-white mb-2">Terms and Conditions</h3>
<p class="text-sm text-gray-600 dark:text-gray-400">
AliasVault is designed to enhance your online security and protect your privacy. With AliasVault, you can create unique identities and email aliases for your various online accounts, helping you maintain control over your personal information and reduce the risk of identity theft.
<br><br>
By using AliasVault, you agree to the following terms:
<br><br>
1. You will not use AliasVault for any illegal purposes, including but not limited to fraud, identity theft, or impersonating real individuals.
<br><br>
2. You are responsible for maintaining the confidentiality of your account and any aliases created through AliasVault.
<br><br>
3. AliasVault reserves the right to terminate your account if we suspect any misuse or violation of these terms.
<br><br>
4. You understand that while AliasVault enhances your privacy, no system is completely foolproof, and you use the service at your own risk.
<h3 class="text-lg font-semibold text-gray-900 dark:text-white mb-2">@Localizer["TermsAndConditionsTitle"]</h3>
<p class="text-sm text-gray-600 dark:text-gray-400 whitespace-pre-line">
@Localizer["TermsContent"]
</p>
</div>
<div class="flex items-center">
<input type="checkbox" id="agreeTerms" @bind="AgreedToTerms" @bind:after="OnAgreedToTerms" class="mr-2">
<label for="agreeTerms" class="text-sm font-bold text-gray-600 dark:text-gray-400">
I have read and agree to the Terms and Conditions
@Localizer["AgreementCheckboxLabel"]
</label>
</div>
</div>
@@ -40,6 +34,7 @@
</div>
@code {
private IStringLocalizer Localizer => LocalizerFactory.Create("Components.Auth.Setup.TermsAndConditionsStep", "AliasVault.Client");
/// <summary>
/// Gets or sets a value indicating whether the user has agreed to the terms and conditions.
/// </summary>

View File

@@ -1,5 +1,9 @@
@inherits AliasVault.Client.Auth.Pages.Base.LoginBase
@implements IDisposable
@inject IStringLocalizerFactory LocalizerFactory
@inject IStringLocalizer<SharedResources> SharedLocalizer
@using AliasVault.Client.Resources
@using Microsoft.Extensions.Localization
@using System.Timers
<div class="w-full mx-auto">
@@ -13,17 +17,17 @@
<div class="bg-white dark:bg-gray-800 rounded-lg shadow-lg lg:shadow-none p-6 mb-6">
<div class="flex items-start mb-4">
<div class="flex-shrink-0">
<img class="h-10 w-10 rounded-full" src="/img/avatar.webp" alt="AliasVault Assistant">
<img class="h-10 w-10 rounded-full" src="/img/avatar.webp" alt="@Localizer["AssistantAvatarAlt"]">
</div>
<div class="ml-3 bg-blue-100 dark:bg-blue-900 rounded-lg p-3">
<p class="text-sm text-gray-900 dark:text-white">
Great! Now, let's set up your username for AliasVault.
@Localizer["GreatNowLetsSetupUsername"]
</p>
<p class="text-sm text-gray-900 dark:text-white mt-3">
Please enter a username you'd like to use. This can be your email address or any unique name you prefer.
@Localizer["EnterUsernameInstructions"]
</p>
<p class="text-sm text-gray-900 dark:text-white mt-3 font-semibold">
Remember: This is what you'll use to log in later, so make sure it's something you'll remember!
@Localizer["RememberUsernameNote"]
</p>
</div>
</div>
@@ -31,14 +35,14 @@
<div class="space-y-4">
<div>
<EditFormRow Id="username" Label="Username" @bind-Value="Username" Placeholder="Enter your desired username or email" OnFocus="@OnUsernameInputFocus" />
<EditFormRow Id="username" Label="@Localizer["UsernameLabel"]" @bind-Value="Username" Placeholder="@Localizer["UsernamePlaceholder"]" OnFocus="@OnUsernameInputFocus" />
@if (_isValidating)
{
<div class="mt-2 text-sm text-gray-600 dark:text-gray-400">Validating username...</div>
<div class="mt-2 text-sm text-gray-600 dark:text-gray-400">@Localizer["ValidatingUsernameMessage"]</div>
}
else if (_isValid)
{
<div class="mt-2 text-sm text-green-600 dark:text-green-400">Username is available!</div>
<div class="mt-2 text-sm text-green-600 dark:text-green-400">@Localizer["UsernameAvailableMessage"]</div>
}
else if (!string.IsNullOrEmpty(_errorMessage))
{
@@ -50,6 +54,7 @@
</div>
@code {
private IStringLocalizer Localizer => LocalizerFactory.Create("Components.Auth.Setup.UsernameStep", "AliasVault.Client");
/// <summary>
/// The username that is previously entered by the user. When a user navigates with back/continue
/// and entered a username already, the existing username might be provided by the parent component.
@@ -161,7 +166,7 @@
{
_isValidating = false;
_isValid = false;
_errorMessage = "Username is required.";
_errorMessage = Localizer["UsernameRequiredError"];
await OnUsernameChange.InvokeAsync(string.Empty);
StateHasChanged();
return;
@@ -187,7 +192,7 @@
}
catch
{
_errorMessage = "An error occurred during communication with the AliasVault server.";
_errorMessage = Localizer["ServerCommunicationError"];
_isValid = false;
await OnUsernameChange.InvokeAsync(string.Empty);
}

View File

@@ -1,5 +1,9 @@
@page "/user/setup"
@using AliasVault.Client.Auth.Pages.Setup.Components
@inject IStringLocalizerFactory LocalizerFactory
@inject IStringLocalizer<SharedResources> SharedLocalizer
@using AliasVault.Client.Resources
@using Microsoft.Extensions.Localization
@inherits AliasVault.Client.Auth.Pages.Base.LoginBase
@layout Auth.Layout.EmptyLayout
@attribute [AllowAnonymous]
@@ -60,7 +64,7 @@
{
<button @onclick="GoNext"
class="w-full py-3 px-4 bg-green-600 hover:bg-green-700 text-white font-semibold rounded-lg transition duration-300 ease-in-out">
Create Account
@Localizer["CreateAccountButton"]
</button>
}
else if (_currentStep != SetupStep.Creating)
@@ -68,7 +72,7 @@
<button @onclick="GoNext"
class="w-full py-3 px-4 bg-primary-600 hover:bg-primary-700 text-white font-semibold rounded-lg transition duration-300 ease-in-out @(IsNextEnabled ? "" : "opacity-50 cursor-not-allowed")"
disabled="@(!IsNextEnabled)">
Continue
@Localizer["ContinueButton"]
</button>
}
</div>
@@ -77,6 +81,8 @@
</div>
@code {
private IStringLocalizer Localizer => LocalizerFactory.Create("Pages.Auth.Setup.Setup", "AliasVault.Client");
private SetupStep _currentStep = SetupStep.TermsAndConditions;
private readonly SetupData _setupData = new();
@@ -96,15 +102,15 @@
/// </summary>
/// <param name="step">The current setup step.</param>
/// <returns>The title for the setup step.</returns>
private static string GetStepTitle(SetupStep step)
private string GetStepTitle(SetupStep step)
{
return step switch
{
SetupStep.TermsAndConditions => "Using AliasVault",
SetupStep.Username => "Choose Username",
SetupStep.Password => "Set Password",
SetupStep.Creating => "Creating Vault",
_ => "Setup"
SetupStep.TermsAndConditions => Localizer["TermsAndConditionsStepTitle"],
SetupStep.Username => Localizer["UsernameStepTitle"],
SetupStep.Password => Localizer["PasswordStepTitle"],
SetupStep.Creating => Localizer["CreatingStepTitle"],
_ => Localizer["SetupStepTitle"]
};
}

View File

@@ -1,12 +1,16 @@
@inject DbService DbService
@inject IStringLocalizerFactory LocalizerFactory
@inject IStringLocalizer<SharedResources> SharedLocalizer
@using Microsoft.Extensions.Localization
@using AliasVault.Client.Resources
<div class="mb-4">
<label for="password-generator-settings-modal" class="block mb-2 text-sm font-medium text-gray-900 dark:text-white">Default password generator settings</label>
<label for="password-generator-settings-modal" class="block mb-2 text-sm font-medium text-gray-900 dark:text-white">@Localizer["PasswordGeneratorSettingsLabel"]</label>
<button type="button" id="password-generator-settings-modal" class="px-4 py-2 bg-primary-600 text-white rounded-md hover:bg-primary-700 focus:outline-none focus:ring-2 focus:ring-primary-500 dark:bg-primary-700 dark:hover:bg-primary-600" @onclick="OpenSettings">
Configure
@Localizer["ConfigureButton"]
</button>
<span class="block text-sm font-normal text-gray-500 truncate dark:text-gray-400 mt-2">
Configure the default settings used when generating new passwords. These settings will be used for all new passwords unless overridden for specific entries.
@Localizer["PasswordGeneratorSettingsDescription"]
</span>
</div>
@@ -20,6 +24,8 @@
}
@code {
private IStringLocalizer Localizer => LocalizerFactory.Create("Components.Main.Settings.DefaultPasswordSettings", "AliasVault.Client");
private PasswordSettings PasswordSettings { get; set; } = new();
private bool IsSettingsVisible { get; set; }

View File

@@ -2,22 +2,26 @@
@inherits MainBase
@inject IJSRuntime JsRuntime
@inject ILogger<Apps> Logger
@inject IStringLocalizerFactory LocalizerFactory
@inject IStringLocalizer<SharedResources> SharedLocalizer
@using AliasVault.Shared.Core.BrowserExtensions
@using AliasVault.Shared.Core.MobileApps
@using Microsoft.Extensions.Localization
@using AliasVault.Client.Resources
<LayoutPageTitle>Extensions & Apps</LayoutPageTitle>
<LayoutPageTitle>@Localizer["PageTitle"]</LayoutPageTitle>
<PageHeader
BreadcrumbItems="@BreadcrumbItems"
Title="Extensions & Apps"
Description="Install browser extensions and mobile apps to access your vault from all your devices and automatically fill credentials on websites.">
Title="@Localizer["PageTitle"]"
Description="@Localizer["PageDescription"]">
</PageHeader>
<div class="p-4 mb-4 mx-4 bg-white border border-gray-200 rounded-lg shadow-sm dark:border-gray-700 sm:p-6 dark:bg-gray-800">
<div class="mb-6">
<h3 class="text-lg font-medium text-gray-900 dark:text-white mb-2">Browser Extensions</h3>
<h3 class="text-lg font-medium text-gray-900 dark:text-white mb-2">@Localizer["BrowserExtensionsTitle"]</h3>
<p class="text-gray-600 dark:text-gray-400">
The AliasVault browser extension allows you to autofill existing credentials on any website. It also allows you to generate new aliases during registration, access received emails on all of your aliases, and view your aliases and identities.
@Localizer["BrowserExtensionsDescription"]
</p>
</div>
@@ -37,13 +41,13 @@
<a href="@extension.DownloadUrl"
target="_blank"
class="inline-flex items-center px-4 py-2 text-sm font-medium text-white bg-primary-600 rounded-lg hover:bg-primary-700 focus:ring-4 focus:ring-primary-200 dark:focus:ring-primary-900">
Install
@Localizer["InstallButton"]
</a>
}
else
{
<span class="inline-flex items-center px-4 py-2 text-sm font-medium text-gray-500 bg-gray-100 rounded-lg dark:text-gray-400 dark:bg-gray-800">
Coming soon
@Localizer["ComingSoonText"]
</span>
}
</div>
@@ -52,9 +56,9 @@
</div>
<div class="mb-6">
<h3 class="text-lg font-medium text-gray-900 dark:text-white mb-2">Mobile Apps</h3>
<h3 class="text-lg font-medium text-gray-900 dark:text-white mb-2">@Localizer["MobileAppsTitle"]</h3>
<p class="text-gray-600 dark:text-gray-400 mb-4">
The AliasVault mobile app allows you to access your aliases and identities on the go, view and manage received emails, and generate new aliases anytime. Your data is fully protected with on-device biometric authentication.
@Localizer["MobileAppsDescription"]
</p>
</div>
@@ -71,13 +75,13 @@
<a href="@app.DownloadUrl"
target="_blank"
class="inline-flex items-center px-4 py-2 text-sm font-medium text-white bg-primary-600 rounded-lg hover:bg-primary-700 focus:ring-4 focus:ring-primary-200 dark:focus:ring-primary-900">
Download
@Localizer["DownloadButton"]
</a>
}
else
{
<span class="inline-flex items-center px-4 py-2 text-sm font-medium text-gray-500 bg-gray-100 rounded-lg dark:text-gray-400 dark:bg-gray-800">
Coming soon
@Localizer["ComingSoonText"]
</span>
}
</div>
@@ -86,6 +90,8 @@
</div>
@code {
private IStringLocalizer Localizer => LocalizerFactory.Create("Pages.Main.Settings.Apps", "AliasVault.Client");
private BrowserType CurrentBrowser { get; set; }
private BrowserExtensionInfo? CurrentBrowserExtension { get; set; } = null;
@@ -93,7 +99,7 @@
protected override async Task OnInitializedAsync()
{
await base.OnInitializedAsync();
BreadcrumbItems.Add(new BreadcrumbItem { DisplayName = "Extensions & Apps" });
BreadcrumbItems.Add(new BreadcrumbItem { DisplayName = Localizer["BreadcrumbTitle"] });
try
{

View File

@@ -1,30 +1,34 @@
@page "/settings/general"
@inherits MainBase
@inject IStringLocalizerFactory LocalizerFactory
@inject IStringLocalizer<SharedResources> SharedLocalizer
@using Microsoft.Extensions.Localization
@using AliasVault.Client.Resources
<LayoutPageTitle>General settings</LayoutPageTitle>
<LayoutPageTitle>@Localizer["PageTitle"]</LayoutPageTitle>
<PageHeader
BreadcrumbItems="@BreadcrumbItems"
Title="General settings"
Description="Configure general AliasVault settings.">
Title="@Localizer["PageTitle"]"
Description="@Localizer["PageDescription"]">
</PageHeader>
<div class="p-4 mb-4 mx-4 bg-white border border-gray-200 rounded-lg shadow-sm dark:border-gray-700 sm:p-6 dark:bg-gray-800">
<h3 class="mb-4 text-lg font-medium text-gray-900 dark:text-white">Email Settings</h3>
<h3 class="mb-4 text-lg font-medium text-gray-900 dark:text-white">@Localizer["EmailSettingsTitle"]</h3>
<div class="mb-4">
<label for="defaultEmailDomain" class="block mb-2 text-sm font-medium text-gray-900 dark:text-white">Default email domain</label>
<label for="defaultEmailDomain" class="block mb-2 text-sm font-medium text-gray-900 dark:text-white">@Localizer["DefaultEmailDomainLabel"]</label>
<select @bind="DefaultEmailDomain" @bind:after="UpdateDefaultEmailDomain" id="defaultEmailDomain" class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500">
@if (ShowPrivateDomains)
{
<optgroup label="Private Domains">
<optgroup label="@Localizer["PrivateDomainsLabel"]">
@foreach (var domain in PrivateDomains)
{
<option value="@domain">@domain</option>
}
</optgroup>
}
<optgroup label="Public Domains">
<optgroup label="@Localizer["PublicDomainsLabel"]">
@foreach (var domain in PublicDomains)
{
<option value="@domain">@domain</option>
@@ -32,50 +36,52 @@
</optgroup>
</select>
<span class="block text-sm font-normal text-gray-500 truncate dark:text-gray-400">
Set the default email domain that will be used when creating new credentials.
@Localizer["DefaultEmailDomainDescription"]
</span>
</div>
<div class="flex items-center mb-4">
<input @bind="AutoEmailRefresh" @bind:after="UpdateAutoEmailRefresh" id="autoEmailRefresh" type="checkbox" class="w-4 h-4 text-blue-600 bg-gray-100 border-gray-300 rounded focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600">
<label for="autoEmailRefresh" class="ml-2 text-sm font-medium text-gray-900 dark:text-gray-300">Auto refresh emails content when new ones arrive</label>
<label for="autoEmailRefresh" class="ml-2 text-sm font-medium text-gray-900 dark:text-gray-300">@Localizer["AutoEmailRefreshLabel"]</label>
</div>
</div>
<div class="p-4 mx-4 mb-4 bg-white border border-gray-200 rounded-lg shadow-sm dark:border-gray-700 sm:p-6 dark:bg-gray-800">
<h3 class="mb-4 text-lg font-medium text-gray-900 dark:text-white">Alias Settings</h3>
<h3 class="mb-4 text-lg font-medium text-gray-900 dark:text-white">@Localizer["AliasSettingsTitle"]</h3>
<div class="mb-4">
<label for="defaultEmailDomain" class="block mb-2 text-sm font-medium text-gray-900 dark:text-white">Alias generation language</label>
<label for="defaultIdentityLanguage" class="block mb-2 text-sm font-medium text-gray-900 dark:text-white">@Localizer["AliasGenerationLanguageLabel"]</label>
<select @bind="DefaultIdentityLanguage" @bind:after="UpdateDefaultIdentityLanguage" id="defaultIdentityLanguage" class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500">
<option value="en">English</option>
<option value="nl">Dutch</option>
<option value="en">@Localizer["EnglishOption"]</option>
<option value="nl">@Localizer["DutchOption"]</option>
</select>
<span class="block text-sm font-normal text-gray-500 truncate dark:text-gray-400">
Set the default language that will be used when generating new identities.
@Localizer["AliasGenerationLanguageDescription"]
</span>
</div>
<div class="mb-4">
<label for="defaultIdentityGender" class="block mb-2 text-sm font-medium text-gray-900 dark:text-white">Alias generation gender</label>
<label for="defaultIdentityGender" class="block mb-2 text-sm font-medium text-gray-900 dark:text-white">@Localizer["AliasGenerationGenderLabel"]</label>
<select @bind="DefaultIdentityGender" @bind:after="UpdateDefaultIdentityGender" id="defaultIdentityGender" class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500">
<option value="random">Random</option>
<option value="male">Male</option>
<option value="female">Female</option>
<option value="random">@Localizer["RandomOption"]</option>
<option value="male">@Localizer["MaleOption"]</option>
<option value="female">@Localizer["FemaleOption"]</option>
</select>
<span class="block text-sm font-normal text-gray-500 truncate dark:text-gray-400">
Set the default gender preference for generating new identities.
@Localizer["AliasGenerationGenderDescription"]
</span>
</div>
</div>
<div class="p-4 mx-4 mb-4 bg-white border border-gray-200 rounded-lg shadow-sm dark:border-gray-700 sm:p-6 dark:bg-gray-800">
<h3 class="mb-4 text-lg font-medium text-gray-900 dark:text-white">Password Settings</h3>
<h3 class="mb-4 text-lg font-medium text-gray-900 dark:text-white">@Localizer["PasswordSettingsTitle"]</h3>
<DefaultPasswordSettings />
</div>
@code {
private IStringLocalizer Localizer => LocalizerFactory.Create("Pages.Main.Settings.General", "AliasVault.Client");
private List<string> PrivateDomains => Config.PrivateEmailDomains;
private List<string> PublicDomains => Config.PublicEmailDomains;
private bool ShowPrivateDomains => PrivateDomains.Count > 0 && !(PrivateDomains.Count == 1 && PrivateDomains[0] == "DISABLED.TLD");
@@ -89,7 +95,7 @@
protected override async Task OnInitializedAsync()
{
await base.OnInitializedAsync();
BreadcrumbItems.Add(new BreadcrumbItem { DisplayName = "General settings" });
BreadcrumbItems.Add(new BreadcrumbItem { DisplayName = Localizer["BreadcrumbTitle"] });
DefaultEmailDomain = DbService.Settings.DefaultEmailDomain;
if (DefaultEmailDomain == string.Empty)

View File

@@ -0,0 +1,56 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<!-- Instructions -->
<data name="PleaseReadAndAgree">
<value>Please read and agree to the following terms and conditions before proceeding.</value>
<comment>Instructions to read and agree to terms</comment>
</data>
<!-- Terms and Conditions title -->
<data name="TermsAndConditionsTitle">
<value>Terms and Conditions</value>
<comment>Title for the terms and conditions section</comment>
</data>
<!-- Terms content -->
<data name="TermsContent">
<value>AliasVault is designed to enhance your online security and protect your privacy. With AliasVault, you can create unique identities and email aliases for your various online accounts, helping you maintain control over your personal information and reduce the risk of identity theft.
By using AliasVault, you agree to the following terms:
1. You will not use AliasVault for any illegal purposes, including but not limited to fraud, identity theft, or impersonating real individuals.
2. You are responsible for maintaining the confidentiality of your account and any aliases created through AliasVault.
3. AliasVault reserves the right to terminate your account if we suspect any misuse or violation of these terms.
4. You understand that while AliasVault enhances your privacy, no system is completely foolproof, and you use the service at your own risk.</value>
<comment>Full terms and conditions content</comment>
</data>
<!-- Agreement checkbox -->
<data name="AgreementCheckboxLabel">
<value>I have read and agree to the Terms and Conditions</value>
<comment>Label for the agreement checkbox</comment>
</data>
</root>

View File

@@ -0,0 +1,56 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<!-- Instructions -->
<data name="PleaseReadAndAgree">
<value>Lees en ga akkoord met de volgende algemene voorwaarden voordat u verdergaat.</value>
<comment>Instructions to read and agree to terms</comment>
</data>
<!-- Terms and Conditions title -->
<data name="TermsAndConditionsTitle">
<value>Algemene voorwaarden</value>
<comment>Title for the terms and conditions section</comment>
</data>
<!-- Terms content -->
<data name="TermsContent">
<value>AliasVault is ontworpen om uw online beveiliging te verbeteren en uw privacy te beschermen. Met AliasVault kunt u unieke identiteiten en e-mailaliassen maken voor uw verschillende online accounts, waardoor u controle houdt over uw persoonlijke informatie en het risico op identiteitsdiefstal vermindert.
Door AliasVault te gebruiken, gaat u akkoord met de volgende voorwaarden:
1. U zult AliasVault niet gebruiken voor illegale doeleinden, inclusief maar niet beperkt tot fraude, identiteitsdiefstal of het zich voordoen als echte personen.
2. U bent verantwoordelijk voor het behouden van de vertrouwelijkheid van uw account en alle aliassen die zijn gemaakt via AliasVault.
3. AliasVault behoudt zich het recht voor om uw account te beëindigen als we misbruik of schending van deze voorwaarden vermoeden.
4. U begrijpt dat hoewel AliasVault uw privacy verbetert, geen enkel systeem volledig waterdicht is, en u gebruikt de service op eigen risico.</value>
<comment>Full terms and conditions content</comment>
</data>
<!-- Agreement checkbox -->
<data name="AgreementCheckboxLabel">
<value>Ik heb de algemene voorwaarden gelezen en ga er mee akkoord</value>
<comment>Label for the agreement checkbox</comment>
</data>
</root>

View File

@@ -0,0 +1,70 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<!-- Assistant messages -->
<data name="GreatNowLetsSetupUsername">
<value>Great! Now, let's set up your username for AliasVault.</value>
<comment>Assistant message about setting up username</comment>
</data>
<data name="EnterUsernameInstructions">
<value>Please enter a username you'd like to use. This can be your email address or any unique name you prefer.</value>
<comment>Instructions for entering username</comment>
</data>
<data name="RememberUsernameNote">
<value>Remember: This is what you'll use to log in later, so make sure it's something you'll remember!</value>
<comment>Important note about remembering username</comment>
</data>
<!-- Form labels -->
<data name="UsernameLabel">
<value>Username</value>
<comment>Label for username input field</comment>
</data>
<data name="UsernamePlaceholder">
<value>Enter your desired username or email</value>
<comment>Placeholder text for username input</comment>
</data>
<!-- Validation messages -->
<data name="ValidatingUsernameMessage">
<value>Validating username...</value>
<comment>Message shown while validating username</comment>
</data>
<data name="UsernameAvailableMessage">
<value>Username is available!</value>
<comment>Message shown when username is available</comment>
</data>
<data name="UsernameRequiredError">
<value>Username is required.</value>
<comment>Error message when username is empty</comment>
</data>
<data name="ServerCommunicationError">
<value>An error occurred during communication with the AliasVault server.</value>
<comment>Error message for server communication issues</comment>
</data>
<!-- Alt text -->
<data name="AssistantAvatarAlt">
<value>AliasVault Assistant</value>
<comment>Alt text for assistant avatar image</comment>
</data>
</root>

View File

@@ -0,0 +1,70 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<!-- Assistant messages -->
<data name="GreatNowLetsSetupUsername">
<value>Geweldig! Nu gaan we uw gebruikersnaam voor AliasVault instellen.</value>
<comment>Assistant message about setting up username</comment>
</data>
<data name="EnterUsernameInstructions">
<value>Voer een gebruikersnaam in die u wilt gebruiken. Dit kan uw e-mailadres zijn of elke unieke naam die u verkiest.</value>
<comment>Instructions for entering username</comment>
</data>
<data name="RememberUsernameNote">
<value>Onthoud: Dit is wat u later gebruikt om in te loggen, dus zorg ervoor dat het iets is wat u zich zult herinneren!</value>
<comment>Important note about remembering username</comment>
</data>
<!-- Form labels -->
<data name="UsernameLabel">
<value>Gebruikersnaam</value>
<comment>Label for username input field</comment>
</data>
<data name="UsernamePlaceholder">
<value>Voer uw gewenste gebruikersnaam of e-mail in</value>
<comment>Placeholder text for username input</comment>
</data>
<!-- Validation messages -->
<data name="ValidatingUsernameMessage">
<value>Gebruikersnaam valideren...</value>
<comment>Message shown while validating username</comment>
</data>
<data name="UsernameAvailableMessage">
<value>Gebruikersnaam is beschikbaar!</value>
<comment>Message shown when username is available</comment>
</data>
<data name="UsernameRequiredError">
<value>Gebruikersnaam is vereist.</value>
<comment>Error message when username is empty</comment>
</data>
<data name="ServerCommunicationError">
<value>Er is een fout opgetreden tijdens de communicatie met de AliasVault-server.</value>
<comment>Error message for server communication issues</comment>
</data>
<!-- Alt text -->
<data name="AssistantAvatarAlt">
<value>AliasVault Assistent</value>
<comment>Alt text for assistant avatar image</comment>
</data>
</root>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<data name="PasswordGeneratorSettingsLabel">
<value>Default password generator settings</value>
<comment>Label for default password generator settings</comment>
</data>
<data name="ConfigureButton">
<value>Configure</value>
<comment>Button text to configure settings</comment>
</data>
<data name="PasswordGeneratorSettingsDescription">
<value>Configure the default settings used when generating new passwords. These settings will be used for all new passwords unless overridden for specific entries.</value>
<comment>Description for password generator settings</comment>
</data>
</root>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<data name="PasswordGeneratorSettingsLabel">
<value>Standaard wachtwoord generator instellingen</value>
<comment>Label for default password generator settings</comment>
</data>
<data name="ConfigureButton">
<value>Configureren</value>
<comment>Button text to configure settings</comment>
</data>
<data name="PasswordGeneratorSettingsDescription">
<value>Configureer de standaardinstellingen die worden gebruikt bij het genereren van nieuwe wachtwoorden. Deze instellingen worden gebruikt voor alle nieuwe wachtwoorden, tenzij overschreven voor specifieke items.</value>
<comment>Description for password generator settings</comment>
</data>
</root>

View File

@@ -0,0 +1,54 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<!-- Step titles -->
<data name="TermsAndConditionsStepTitle">
<value>Using AliasVault</value>
<comment>Title for the terms and conditions step</comment>
</data>
<data name="UsernameStepTitle">
<value>Choose Username</value>
<comment>Title for the username selection step</comment>
</data>
<data name="PasswordStepTitle">
<value>Set Password</value>
<comment>Title for the password creation step</comment>
</data>
<data name="CreatingStepTitle">
<value>Creating Vault</value>
<comment>Title for the vault creation step</comment>
</data>
<data name="SetupStepTitle">
<value>Setup</value>
<comment>Default setup step title</comment>
</data>
<!-- Button text -->
<data name="CreateAccountButton">
<value>Create Account</value>
<comment>Button text for creating account</comment>
</data>
<data name="ContinueButton">
<value>Continue</value>
<comment>Continue button text</comment>
</data>
</root>

View File

@@ -0,0 +1,54 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<!-- Step titles -->
<data name="TermsAndConditionsStepTitle">
<value>AliasVault gebruiken</value>
<comment>Title for the terms and conditions step</comment>
</data>
<data name="UsernameStepTitle">
<value>Gebruikersnaam kiezen</value>
<comment>Title for the username selection step</comment>
</data>
<data name="PasswordStepTitle">
<value>Wachtwoord instellen</value>
<comment>Title for the password creation step</comment>
</data>
<data name="CreatingStepTitle">
<value>Kluis aanmaken</value>
<comment>Title for the vault creation step</comment>
</data>
<data name="SetupStepTitle">
<value>Instellen</value>
<comment>Default setup step title</comment>
</data>
<!-- Button text -->
<data name="CreateAccountButton">
<value>Account aanmaken</value>
<comment>Button text for creating account</comment>
</data>
<data name="ContinueButton">
<value>Doorgaan</value>
<comment>Continue button text</comment>
</data>
</root>

View File

@@ -0,0 +1,68 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<!-- Page title and description -->
<data name="PageTitle">
<value>Extensions &amp; Apps</value>
<comment>Page title for extensions and apps</comment>
</data>
<data name="PageDescription">
<value>Install browser extensions and mobile apps to access your vault from all your devices and automatically fill credentials on websites.</value>
<comment>Page description for extensions and apps</comment>
</data>
<data name="BreadcrumbTitle">
<value>Extensions &amp; Apps</value>
<comment>Breadcrumb title for extensions and apps</comment>
</data>
<!-- Browser Extensions Section -->
<data name="BrowserExtensionsTitle">
<value>Browser Extensions</value>
<comment>Title for browser extensions section</comment>
</data>
<data name="BrowserExtensionsDescription">
<value>The AliasVault browser extension allows you to autofill existing credentials on any website. It also allows you to generate new aliases during registration, access received emails on all of your aliases, and view your aliases and identities.</value>
<comment>Description for browser extensions</comment>
</data>
<data name="InstallButton">
<value>Install</value>
<comment>Install button text</comment>
</data>
<data name="ComingSoonText">
<value>Coming soon</value>
<comment>Coming soon text for unavailable extensions</comment>
</data>
<!-- Mobile Apps Section -->
<data name="MobileAppsTitle">
<value>Mobile Apps</value>
<comment>Title for mobile apps section</comment>
</data>
<data name="MobileAppsDescription">
<value>The AliasVault mobile app allows you to access your aliases and identities on the go, view and manage received emails, and generate new aliases anytime. Your data is fully protected with on-device biometric authentication.</value>
<comment>Description for mobile apps</comment>
</data>
<data name="DownloadButton">
<value>Download</value>
<comment>Download button text</comment>
</data>
</root>

View File

@@ -0,0 +1,68 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<!-- Page title and description -->
<data name="PageTitle">
<value>Extensies &amp; Apps</value>
<comment>Page title for extensions and apps</comment>
</data>
<data name="PageDescription">
<value>Installeer browserextensies en mobiele apps om toegang te krijgen tot je kluis vanaf al je apparaten en automatisch inloggegevens in te vullen op websites.</value>
<comment>Page description for extensions and apps</comment>
</data>
<data name="BreadcrumbTitle">
<value>Extensies &amp; Apps</value>
<comment>Breadcrumb title for extensions and apps</comment>
</data>
<!-- Browser Extensions Section -->
<data name="BrowserExtensionsTitle">
<value>Browserextensies</value>
<comment>Title for browser extensions section</comment>
</data>
<data name="BrowserExtensionsDescription">
<value>De AliasVault browserextensie stelt je in staat om bestaande inloggegevens automatisch in te vullen op elke website. Het stelt je ook in staat om nieuwe aliassen te genereren tijdens registratie, ontvangen e-mails op al je aliassen te bekijken, en je aliassen en identiteiten te bekijken.</value>
<comment>Description for browser extensions</comment>
</data>
<data name="InstallButton">
<value>Installeren</value>
<comment>Install button text</comment>
</data>
<data name="ComingSoonText">
<value>Binnenkort beschikbaar</value>
<comment>Coming soon text for unavailable extensions</comment>
</data>
<!-- Mobile Apps Section -->
<data name="MobileAppsTitle">
<value>Mobiele Apps</value>
<comment>Title for mobile apps section</comment>
</data>
<data name="MobileAppsDescription">
<value>De AliasVault mobiele app stelt je in staat om onderweg toegang te krijgen tot je aliassen en identiteiten, ontvangen e-mails te bekijken en beheren, en altijd nieuwe aliassen te genereren. Je gegevens zijn volledig beschermd met biometrische authenticatie op het apparaat.</value>
<comment>Description for mobile apps</comment>
</data>
<data name="DownloadButton">
<value>Downloaden</value>
<comment>Download button text</comment>
</data>
</root>

View File

@@ -0,0 +1,110 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<!-- Page title and description -->
<data name="PageTitle">
<value>General settings</value>
<comment>Page title for general settings</comment>
</data>
<data name="PageDescription">
<value>Configure general AliasVault settings.</value>
<comment>Page description for general settings</comment>
</data>
<data name="BreadcrumbTitle">
<value>General settings</value>
<comment>Breadcrumb title for general settings</comment>
</data>
<!-- Email Settings Section -->
<data name="EmailSettingsTitle">
<value>Email Settings</value>
<comment>Title for email settings section</comment>
</data>
<data name="DefaultEmailDomainLabel">
<value>Default email domain</value>
<comment>Label for default email domain setting</comment>
</data>
<data name="DefaultEmailDomainDescription">
<value>Set the default email domain that will be used when creating new credentials.</value>
<comment>Description for default email domain setting</comment>
</data>
<data name="PrivateDomainsLabel">
<value>Private Domains</value>
<comment>Label for private domains group</comment>
</data>
<data name="PublicDomainsLabel">
<value>Public Domains</value>
<comment>Label for public domains group</comment>
</data>
<data name="AutoEmailRefreshLabel">
<value>Auto refresh emails content when new ones arrive</value>
<comment>Label for auto email refresh setting</comment>
</data>
<!-- Alias Settings Section -->
<data name="AliasSettingsTitle">
<value>Alias Settings</value>
<comment>Title for alias settings section</comment>
</data>
<data name="AliasGenerationLanguageLabel">
<value>Alias generation language</value>
<comment>Label for alias generation language setting</comment>
</data>
<data name="AliasGenerationLanguageDescription">
<value>Set the default language that will be used when generating new identities.</value>
<comment>Description for alias generation language setting</comment>
</data>
<data name="EnglishOption">
<value>English</value>
<comment>English language option</comment>
</data>
<data name="DutchOption">
<value>Dutch</value>
<comment>Dutch language option</comment>
</data>
<data name="AliasGenerationGenderLabel">
<value>Alias generation gender</value>
<comment>Label for alias generation gender setting</comment>
</data>
<data name="AliasGenerationGenderDescription">
<value>Set the default gender preference for generating new identities.</value>
<comment>Description for alias generation gender setting</comment>
</data>
<data name="RandomOption">
<value>Random</value>
<comment>Random gender option</comment>
</data>
<data name="MaleOption">
<value>Male</value>
<comment>Male gender option</comment>
</data>
<data name="FemaleOption">
<value>Female</value>
<comment>Female gender option</comment>
</data>
<!-- Password Settings Section -->
<data name="PasswordSettingsTitle">
<value>Password Settings</value>
<comment>Title for password settings section</comment>
</data>
</root>

View File

@@ -0,0 +1,110 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<!-- Page title and description -->
<data name="PageTitle">
<value>Algemene instellingen</value>
<comment>Page title for general settings</comment>
</data>
<data name="PageDescription">
<value>Configureer algemene AliasVault instellingen.</value>
<comment>Page description for general settings</comment>
</data>
<data name="BreadcrumbTitle">
<value>Algemene instellingen</value>
<comment>Breadcrumb title for general settings</comment>
</data>
<!-- Email Settings Section -->
<data name="EmailSettingsTitle">
<value>E-mail Instellingen</value>
<comment>Title for email settings section</comment>
</data>
<data name="DefaultEmailDomainLabel">
<value>Standaard e-maildomein</value>
<comment>Label for default email domain setting</comment>
</data>
<data name="DefaultEmailDomainDescription">
<value>Stel het standaard e-maildomein in dat wordt gebruikt bij het aanmaken van nieuwe inloggegevens.</value>
<comment>Description for default email domain setting</comment>
</data>
<data name="PrivateDomainsLabel">
<value>Privé Domeinen</value>
<comment>Label for private domains group</comment>
</data>
<data name="PublicDomainsLabel">
<value>Publieke Domeinen</value>
<comment>Label for public domains group</comment>
</data>
<data name="AutoEmailRefreshLabel">
<value>Automatisch e-mailinhoud verversen wanneer nieuwe berichten aankomen</value>
<comment>Label for auto email refresh setting</comment>
</data>
<!-- Alias Settings Section -->
<data name="AliasSettingsTitle">
<value>Alias Instellingen</value>
<comment>Title for alias settings section</comment>
</data>
<data name="AliasGenerationLanguageLabel">
<value>Taal voor alias generatie</value>
<comment>Label for alias generation language setting</comment>
</data>
<data name="AliasGenerationLanguageDescription">
<value>Stel de standaardtaal in die wordt gebruikt bij het genereren van nieuwe identiteiten.</value>
<comment>Description for alias generation language setting</comment>
</data>
<data name="EnglishOption">
<value>Engels</value>
<comment>English language option</comment>
</data>
<data name="DutchOption">
<value>Nederlands</value>
<comment>Dutch language option</comment>
</data>
<data name="AliasGenerationGenderLabel">
<value>Geslacht voor alias generatie</value>
<comment>Label for alias generation gender setting</comment>
</data>
<data name="AliasGenerationGenderDescription">
<value>Stel de standaard geslachtsvoorkeur in voor het genereren van nieuwe identiteiten.</value>
<comment>Description for alias generation gender setting</comment>
</data>
<data name="RandomOption">
<value>Willekeurig</value>
<comment>Random gender option</comment>
</data>
<data name="MaleOption">
<value>Man</value>
<comment>Male gender option</comment>
</data>
<data name="FemaleOption">
<value>Vrouw</value>
<comment>Female gender option</comment>
</data>
<!-- Password Settings Section -->
<data name="PasswordSettingsTitle">
<value>Wachtwoord Instellingen</value>
<comment>Title for password settings section</comment>
</data>
</root>

View File

@@ -1352,6 +1352,10 @@ video {
white-space: nowrap;
}
.whitespace-pre-line {
white-space: pre-line;
}
.break-words {
overflow-wrap: break-word;
}