Merge branch 'master' of https://github.com/bitwarden/web into feature/hide-passwords
This commit is contained in:
commit
b2bf192677
2
jslib
2
jslib
|
@ -1 +1 @@
|
|||
Subproject commit 2858724f4431038be190fc0b748efe287dd1bae6
|
||||
Subproject commit 212a2e3745e6e0e2b3057ed308c47daf6aeefbc8
|
|
@ -179,6 +179,7 @@ import localeCa from '@angular/common/locales/ca';
|
|||
import localeCs from '@angular/common/locales/cs';
|
||||
import localeDa from '@angular/common/locales/da';
|
||||
import localeDe from '@angular/common/locales/de';
|
||||
import localeEl from '@angular/common/locales/el';
|
||||
import localeEnGb from '@angular/common/locales/en-GB';
|
||||
import localeEs from '@angular/common/locales/es';
|
||||
import localeEt from '@angular/common/locales/et';
|
||||
|
@ -203,6 +204,7 @@ registerLocaleData(localeCa, 'ca');
|
|||
registerLocaleData(localeCs, 'cs');
|
||||
registerLocaleData(localeDa, 'da');
|
||||
registerLocaleData(localeDe, 'de');
|
||||
registerLocaleData(localeEl, 'el');
|
||||
registerLocaleData(localeEnGb, 'en-GB');
|
||||
registerLocaleData(localeEs, 'es');
|
||||
registerLocaleData(localeEt, 'et');
|
||||
|
|
|
@ -16,9 +16,11 @@
|
|||
<i class="fa fa-spinner fa-spin text-muted" title="{{'loading' | i18n}}" aria-hidden="true"></i>
|
||||
<span class="sr-only">{{'loading' | i18n}}</span>
|
||||
</ng-container>
|
||||
<ng-container *ngIf="!loading && (collections | search:searchText:'name':'id') as searchedCollections">
|
||||
<ng-container
|
||||
*ngIf="!loading && (isPaging() ? pagedCollections : collections | search:searchText:'name':'id') as searchedCollections">
|
||||
<p *ngIf="!searchedCollections.length">{{'noCollectionsInList' | i18n}}</p>
|
||||
<table class="table table-hover table-list" *ngIf="searchedCollections.length">
|
||||
<table class="table table-hover table-list" *ngIf="searchedCollections.length" infiniteScroll
|
||||
[infiniteScrollDistance]="1" [infiniteScrollDisabled]="!isPaging()" (scrolled)="loadMore()">
|
||||
<tbody>
|
||||
<tr *ngFor="let c of searchedCollections">
|
||||
<td>
|
||||
|
|
|
@ -14,6 +14,7 @@ import { ApiService } from 'jslib/abstractions/api.service';
|
|||
import { CollectionService } from 'jslib/abstractions/collection.service';
|
||||
import { I18nService } from 'jslib/abstractions/i18n.service';
|
||||
import { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';
|
||||
import { SearchService } from 'jslib/abstractions/search.service';
|
||||
import { UserService } from 'jslib/abstractions/user.service';
|
||||
|
||||
import { CollectionData } from 'jslib/models/data/collectionData';
|
||||
|
@ -40,15 +41,20 @@ export class CollectionsComponent implements OnInit {
|
|||
loading = true;
|
||||
organizationId: string;
|
||||
collections: CollectionView[];
|
||||
pagedCollections: CollectionView[];
|
||||
searchText: string;
|
||||
|
||||
protected didScroll = false;
|
||||
protected pageSize = 100;
|
||||
|
||||
private pagedCollectionsCount = 0;
|
||||
private modal: ModalComponent = null;
|
||||
|
||||
constructor(private apiService: ApiService, private route: ActivatedRoute,
|
||||
private collectionService: CollectionService, private componentFactoryResolver: ComponentFactoryResolver,
|
||||
private analytics: Angulartics2, private toasterService: ToasterService,
|
||||
private i18nService: I18nService, private platformUtilsService: PlatformUtilsService,
|
||||
private userService: UserService) { }
|
||||
private userService: UserService, private searchService: SearchService) { }
|
||||
|
||||
async ngOnInit() {
|
||||
this.route.parent.parent.params.subscribe(async (params) => {
|
||||
|
@ -74,9 +80,27 @@ export class CollectionsComponent implements OnInit {
|
|||
const collections = response.data.filter((c) => c.organizationId === this.organizationId).map((r) =>
|
||||
new Collection(new CollectionData(r as CollectionDetailsResponse)));
|
||||
this.collections = await this.collectionService.decryptMany(collections);
|
||||
this.resetPaging();
|
||||
this.loading = false;
|
||||
}
|
||||
|
||||
loadMore() {
|
||||
if (this.collections.length <= this.pageSize) {
|
||||
return;
|
||||
}
|
||||
const pagedLength = this.pagedCollections.length;
|
||||
let pagedSize = this.pageSize;
|
||||
if (pagedLength === 0 && this.pagedCollectionsCount > this.pageSize) {
|
||||
pagedSize = this.pagedCollectionsCount;
|
||||
}
|
||||
if (this.collections.length > pagedLength) {
|
||||
this.pagedCollections =
|
||||
this.pagedCollections.concat(this.collections.slice(pagedLength, pagedLength + pagedSize));
|
||||
}
|
||||
this.pagedCollectionsCount = this.pagedCollections.length;
|
||||
this.didScroll = this.pagedCollections.length > this.pageSize;
|
||||
}
|
||||
|
||||
edit(collection: CollectionView) {
|
||||
if (this.modal != null) {
|
||||
this.modal.close();
|
||||
|
@ -147,10 +171,28 @@ export class CollectionsComponent implements OnInit {
|
|||
});
|
||||
}
|
||||
|
||||
async resetPaging() {
|
||||
this.pagedCollections = [];
|
||||
this.loadMore();
|
||||
}
|
||||
|
||||
isSearching() {
|
||||
return this.searchService.isSearchable(this.searchText);
|
||||
}
|
||||
|
||||
isPaging() {
|
||||
const searching = this.isSearching();
|
||||
if (searching && this.didScroll) {
|
||||
this.resetPaging();
|
||||
}
|
||||
return !searching && this.collections.length > this.pageSize;
|
||||
}
|
||||
|
||||
private removeCollection(collection: CollectionView) {
|
||||
const index = this.collections.indexOf(collection);
|
||||
if (index > -1) {
|
||||
this.collections.splice(index, 1);
|
||||
this.resetPaging();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,9 +16,10 @@
|
|||
<i class="fa fa-spinner fa-spin text-muted" title="{{'loading' | i18n}}" aria-hidden="true"></i>
|
||||
<span class="sr-only">{{'loading' | i18n}}</span>
|
||||
</ng-container>
|
||||
<ng-container *ngIf="!loading && (groups | search:searchText:'name':'id') as searchedGroups">
|
||||
<ng-container *ngIf="!loading && (isPaging() ? pagedGroups : groups | search:searchText:'name':'id') as searchedGroups">
|
||||
<p *ngIf="!searchedGroups.length">{{'noGroupsInList' | i18n}}</p>
|
||||
<table class="table table-hover table-list" *ngIf="searchedGroups.length">
|
||||
<table class="table table-hover table-list" *ngIf="searchedGroups.length" infiniteScroll
|
||||
[infiniteScrollDistance]="1" [infiniteScrollDisabled]="!isPaging()" (scrolled)="loadMore()">
|
||||
<tbody>
|
||||
<tr *ngFor="let g of searchedGroups">
|
||||
<td>
|
||||
|
|
|
@ -16,6 +16,7 @@ import { Angulartics2 } from 'angulartics2';
|
|||
import { ApiService } from 'jslib/abstractions/api.service';
|
||||
import { I18nService } from 'jslib/abstractions/i18n.service';
|
||||
import { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';
|
||||
import { SearchService } from 'jslib/abstractions/search.service';
|
||||
import { UserService } from 'jslib/abstractions/user.service';
|
||||
|
||||
import { GroupResponse } from 'jslib/models/response/groupResponse';
|
||||
|
@ -37,15 +38,20 @@ export class GroupsComponent implements OnInit {
|
|||
loading = true;
|
||||
organizationId: string;
|
||||
groups: GroupResponse[];
|
||||
pagedGroups: GroupResponse[];
|
||||
searchText: string;
|
||||
|
||||
protected didScroll = false;
|
||||
protected pageSize = 100;
|
||||
|
||||
private pagedGroupsCount = 0;
|
||||
private modal: ModalComponent = null;
|
||||
|
||||
constructor(private apiService: ApiService, private route: ActivatedRoute,
|
||||
private i18nService: I18nService, private componentFactoryResolver: ComponentFactoryResolver,
|
||||
private analytics: Angulartics2, private toasterService: ToasterService,
|
||||
private platformUtilsService: PlatformUtilsService, private userService: UserService,
|
||||
private router: Router) { }
|
||||
private router: Router, private searchService: SearchService) { }
|
||||
|
||||
async ngOnInit() {
|
||||
this.route.parent.parent.params.subscribe(async (params) => {
|
||||
|
@ -70,9 +76,26 @@ export class GroupsComponent implements OnInit {
|
|||
const groups = response.data != null && response.data.length > 0 ? response.data : [];
|
||||
groups.sort(Utils.getSortFunction(this.i18nService, 'name'));
|
||||
this.groups = groups;
|
||||
this.resetPaging();
|
||||
this.loading = false;
|
||||
}
|
||||
|
||||
loadMore() {
|
||||
if (this.groups.length <= this.pageSize) {
|
||||
return;
|
||||
}
|
||||
const pagedLength = this.pagedGroups.length;
|
||||
let pagedSize = this.pageSize;
|
||||
if (pagedLength === 0 && this.pagedGroupsCount > this.pageSize) {
|
||||
pagedSize = this.pagedGroupsCount;
|
||||
}
|
||||
if (this.groups.length > pagedLength) {
|
||||
this.pagedGroups = this.pagedGroups.concat(this.groups.slice(pagedLength, pagedLength + pagedSize));
|
||||
}
|
||||
this.pagedGroupsCount = this.pagedGroups.length;
|
||||
this.didScroll = this.pagedGroups.length > this.pageSize;
|
||||
}
|
||||
|
||||
edit(group: GroupResponse) {
|
||||
if (this.modal != null) {
|
||||
this.modal.close();
|
||||
|
@ -142,10 +165,28 @@ export class GroupsComponent implements OnInit {
|
|||
});
|
||||
}
|
||||
|
||||
async resetPaging() {
|
||||
this.pagedGroups = [];
|
||||
this.loadMore();
|
||||
}
|
||||
|
||||
isSearching() {
|
||||
return this.searchService.isSearchable(this.searchText);
|
||||
}
|
||||
|
||||
isPaging() {
|
||||
const searching = this.isSearching();
|
||||
if (searching && this.didScroll) {
|
||||
this.resetPaging();
|
||||
}
|
||||
return !searching && this.groups.length > this.pageSize;
|
||||
}
|
||||
|
||||
private removeGroup(group: GroupResponse) {
|
||||
const index = this.groups.indexOf(group);
|
||||
if (index > -1) {
|
||||
this.groups.splice(index, 1);
|
||||
this.resetPaging();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -35,13 +35,15 @@
|
|||
<i class="fa fa-spinner fa-spin text-muted" title="{{'loading' | i18n}}" aria-hidden="true"></i>
|
||||
<span class="sr-only">{{'loading' | i18n}}</span>
|
||||
</ng-container>
|
||||
<ng-container *ngIf="!loading && (users | search:searchText:'name':'email':'id') as searchedUsers">
|
||||
<ng-container
|
||||
*ngIf="!loading && (isPaging() ? pagedUsers : users | search:searchText:'name':'email':'id') as searchedUsers">
|
||||
<p *ngIf="!searchedUsers.length">{{'noUsersInList' | i18n}}</p>
|
||||
<ng-container *ngIf="searchedUsers.length">
|
||||
<app-callout type="info" title="{{'confirmUsers' | i18n}}" icon="fa-check-circle" *ngIf="showConfirmUsers">
|
||||
{{'usersNeedConfirmed' | i18n}}
|
||||
</app-callout>
|
||||
<table class="table table-hover table-list">
|
||||
<table class="table table-hover table-list" infiniteScroll [infiniteScrollDistance]="1"
|
||||
[infiniteScrollDisabled]="!isPaging()" (scrolled)="loadMore()">
|
||||
<tbody>
|
||||
<tr *ngFor="let u of searchedUsers">
|
||||
<td width="30">
|
||||
|
|
|
@ -19,6 +19,7 @@ import { ApiService } from 'jslib/abstractions/api.service';
|
|||
import { CryptoService } from 'jslib/abstractions/crypto.service';
|
||||
import { I18nService } from 'jslib/abstractions/i18n.service';
|
||||
import { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';
|
||||
import { SearchService } from 'jslib/abstractions/search.service';
|
||||
import { StorageService } from 'jslib/abstractions/storage.service';
|
||||
import { UserService } from 'jslib/abstractions/user.service';
|
||||
|
||||
|
@ -50,6 +51,7 @@ export class PeopleComponent implements OnInit {
|
|||
loading = true;
|
||||
organizationId: string;
|
||||
users: OrganizationUserUserDetailsResponse[];
|
||||
pagedUsers: OrganizationUserUserDetailsResponse[];
|
||||
searchText: string;
|
||||
status: OrganizationUserStatusType = null;
|
||||
statusMap = new Map<OrganizationUserStatusType, OrganizationUserUserDetailsResponse[]>();
|
||||
|
@ -59,6 +61,10 @@ export class PeopleComponent implements OnInit {
|
|||
accessEvents = false;
|
||||
accessGroups = false;
|
||||
|
||||
protected didScroll = false;
|
||||
protected pageSize = 100;
|
||||
|
||||
private pagedUsersCount = 0;
|
||||
private modal: ModalComponent = null;
|
||||
private allUsers: OrganizationUserUserDetailsResponse[];
|
||||
|
||||
|
@ -67,7 +73,7 @@ export class PeopleComponent implements OnInit {
|
|||
private platformUtilsService: PlatformUtilsService, private analytics: Angulartics2,
|
||||
private toasterService: ToasterService, private cryptoService: CryptoService,
|
||||
private userService: UserService, private router: Router,
|
||||
private storageService: StorageService) { }
|
||||
private storageService: StorageService, private searchService: SearchService) { }
|
||||
|
||||
async ngOnInit() {
|
||||
this.route.parent.parent.params.subscribe(async (params) => {
|
||||
|
@ -119,6 +125,23 @@ export class PeopleComponent implements OnInit {
|
|||
} else {
|
||||
this.users = this.allUsers;
|
||||
}
|
||||
this.resetPaging();
|
||||
}
|
||||
|
||||
loadMore() {
|
||||
if (this.users.length <= this.pageSize) {
|
||||
return;
|
||||
}
|
||||
const pagedLength = this.pagedUsers.length;
|
||||
let pagedSize = this.pageSize;
|
||||
if (pagedLength === 0 && this.pagedUsersCount > this.pageSize) {
|
||||
pagedSize = this.pagedUsersCount;
|
||||
}
|
||||
if (this.users.length > pagedLength) {
|
||||
this.pagedUsers = this.pagedUsers.concat(this.users.slice(pagedLength, pagedLength + pagedSize));
|
||||
}
|
||||
this.pagedUsersCount = this.pagedUsers.length;
|
||||
this.didScroll = this.pagedUsers.length > this.pageSize;
|
||||
}
|
||||
|
||||
get allCount() {
|
||||
|
@ -294,6 +317,23 @@ export class PeopleComponent implements OnInit {
|
|||
});
|
||||
}
|
||||
|
||||
async resetPaging() {
|
||||
this.pagedUsers = [];
|
||||
this.loadMore();
|
||||
}
|
||||
|
||||
isSearching() {
|
||||
return this.searchService.isSearchable(this.searchText);
|
||||
}
|
||||
|
||||
isPaging() {
|
||||
const searching = this.isSearching();
|
||||
if (searching && this.didScroll) {
|
||||
this.resetPaging();
|
||||
}
|
||||
return !searching && this.users.length > this.pageSize;
|
||||
}
|
||||
|
||||
private async doConfirmation(user: OrganizationUserUserDetailsResponse) {
|
||||
const orgKey = await this.cryptoService.getOrgKey(this.organizationId);
|
||||
const publicKeyResponse = await this.apiService.getUserPublicKey(user.userId);
|
||||
|
@ -313,6 +353,7 @@ export class PeopleComponent implements OnInit {
|
|||
let index = this.users.indexOf(user);
|
||||
if (index > -1) {
|
||||
this.users.splice(index, 1);
|
||||
this.resetPaging();
|
||||
}
|
||||
if (this.statusMap.has(OrganizationUserStatusType.Accepted)) {
|
||||
index = this.statusMap.get(OrganizationUserStatusType.Accepted).indexOf(user);
|
||||
|
|
|
@ -1833,10 +1833,10 @@
|
|||
"message": "Organizations allow you to share parts of your vault with others as well as manage related users for a specific entity such as a family, small team, or large company."
|
||||
},
|
||||
"generalInformation": {
|
||||
"message": "General Information"
|
||||
"message": "Algemene Inligting"
|
||||
},
|
||||
"organizationName": {
|
||||
"message": "Organization Name"
|
||||
"message": "Organisasienaam"
|
||||
},
|
||||
"accountOwnedBusiness": {
|
||||
"message": "This account is owned by a business."
|
||||
|
@ -1848,10 +1848,10 @@
|
|||
"message": "Business Name"
|
||||
},
|
||||
"chooseYourPlan": {
|
||||
"message": "Choose Your Plan"
|
||||
"message": "Kies U Plan"
|
||||
},
|
||||
"users": {
|
||||
"message": "Users"
|
||||
"message": "Gebruikers"
|
||||
},
|
||||
"userSeats": {
|
||||
"message": "User Seats"
|
||||
|
@ -1879,7 +1879,7 @@
|
|||
"message": "How many user seats do you need? You can also add additional seats later if needed."
|
||||
},
|
||||
"planNameFree": {
|
||||
"message": "Free",
|
||||
"message": "Gratis",
|
||||
"description": "Free as in 'free beer'."
|
||||
},
|
||||
"planDescFree": {
|
||||
|
@ -1892,16 +1892,16 @@
|
|||
}
|
||||
},
|
||||
"planNameFamilies": {
|
||||
"message": "Families"
|
||||
"message": "Gesinne"
|
||||
},
|
||||
"planDescFamilies": {
|
||||
"message": "For personal use, to share with family & friends."
|
||||
"message": "Vir persoonlike gebruik om met vriende en familie te deel."
|
||||
},
|
||||
"planNameTeams": {
|
||||
"message": "Teams"
|
||||
"message": "Spanne"
|
||||
},
|
||||
"planDescTeams": {
|
||||
"message": "For businesses and other team organizations."
|
||||
"message": "Vir sake- en ander spanorganisasies."
|
||||
},
|
||||
"planNameEnterprise": {
|
||||
"message": "Enterprise"
|
||||
|
@ -1910,10 +1910,10 @@
|
|||
"message": "For businesses and other large organizations."
|
||||
},
|
||||
"freeForever": {
|
||||
"message": "Free Forever"
|
||||
"message": "Altyd Gratis"
|
||||
},
|
||||
"includesXUsers": {
|
||||
"message": "includes $COUNT$ users",
|
||||
"message": "sluit $COUNT$ gebruikers in",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"content": "$1",
|
||||
|
@ -1922,10 +1922,10 @@
|
|||
}
|
||||
},
|
||||
"additionalUsers": {
|
||||
"message": "Additional Users"
|
||||
"message": "Bykomende Gebruikers"
|
||||
},
|
||||
"costPerUser": {
|
||||
"message": "$COST$ per user",
|
||||
"message": "$COST$ per gebruiker",
|
||||
"placeholders": {
|
||||
"cost": {
|
||||
"content": "$1",
|
||||
|
@ -2006,76 +2006,76 @@
|
|||
}
|
||||
},
|
||||
"monthly": {
|
||||
"message": "Monthly"
|
||||
"message": "Maandeliks"
|
||||
},
|
||||
"annually": {
|
||||
"message": "Annually"
|
||||
"message": "Jaarliks"
|
||||
},
|
||||
"basePrice": {
|
||||
"message": "Base Price"
|
||||
"message": "Basisprys"
|
||||
},
|
||||
"organizationCreated": {
|
||||
"message": "Organization Created"
|
||||
"message": "Organisasie Geskep"
|
||||
},
|
||||
"organizationReadyToGo": {
|
||||
"message": "Your new organization is ready to go!"
|
||||
"message": "U nuwe organisasie is gereed vir gebruik!"
|
||||
},
|
||||
"organizationUpgraded": {
|
||||
"message": "Your organization has been upgraded."
|
||||
"message": "U organisasie is opgegradeer."
|
||||
},
|
||||
"leave": {
|
||||
"message": "Leave"
|
||||
"message": "Verlaat"
|
||||
},
|
||||
"leaveOrganizationConfirmation": {
|
||||
"message": "Are you sure you want to leave this organization?"
|
||||
"message": "Is u seker u wil hierdie organisasie verlaat?"
|
||||
},
|
||||
"leftOrganization": {
|
||||
"message": "You have left the organization."
|
||||
"message": "U het die organisasie verlaat."
|
||||
},
|
||||
"defaultCollection": {
|
||||
"message": "Default Collection"
|
||||
"message": "Verstekversameling"
|
||||
},
|
||||
"getHelp": {
|
||||
"message": "Get Help"
|
||||
"message": "Kry Hulp"
|
||||
},
|
||||
"getApps": {
|
||||
"message": "Get the Apps"
|
||||
"message": "Kry die Toeps"
|
||||
},
|
||||
"loggedInAs": {
|
||||
"message": "Logged in as"
|
||||
"message": "Aangeteken as"
|
||||
},
|
||||
"eventLogs": {
|
||||
"message": "Event Logs"
|
||||
},
|
||||
"people": {
|
||||
"message": "People"
|
||||
"message": "Mense"
|
||||
},
|
||||
"policies": {
|
||||
"message": "Policies"
|
||||
"message": "Beleide"
|
||||
},
|
||||
"editPolicy": {
|
||||
"message": "Edit Policy"
|
||||
"message": "Wysig Beleid"
|
||||
},
|
||||
"groups": {
|
||||
"message": "Groups"
|
||||
"message": "Groepe"
|
||||
},
|
||||
"newGroup": {
|
||||
"message": "New Group"
|
||||
"message": "Nuwe Groep"
|
||||
},
|
||||
"addGroup": {
|
||||
"message": "Add Group"
|
||||
"message": "Voeg Groep Toe"
|
||||
},
|
||||
"editGroup": {
|
||||
"message": "Edit Group"
|
||||
"message": "Wysig Groep"
|
||||
},
|
||||
"deleteGroupConfirmation": {
|
||||
"message": "Are you sure you want to delete this group?"
|
||||
"message": "Is u seker u wil hierdie groep skrap?"
|
||||
},
|
||||
"removeUserConfirmation": {
|
||||
"message": "Are you sure you want to remove this user?"
|
||||
"message": "Is u seker u wil hierdie gebruiker verwyder?"
|
||||
},
|
||||
"externalId": {
|
||||
"message": "External Id"
|
||||
"message": "Eksterne ID"
|
||||
},
|
||||
"externalIdDesc": {
|
||||
"message": "The external id can be used as a reference or to link this resource to an external system such as a user directory."
|
||||
|
@ -2084,31 +2084,31 @@
|
|||
"message": "Access Control"
|
||||
},
|
||||
"groupAccessAllItems": {
|
||||
"message": "This group can access and modify all items."
|
||||
"message": "Hierdie groep het toegang tot alle items en kan dit wysig."
|
||||
},
|
||||
"groupAccessSelectedCollections": {
|
||||
"message": "This group can access only the selected collections."
|
||||
"message": "Hierdie groep het slegs toegang tot die gekose versamelings."
|
||||
},
|
||||
"readOnly": {
|
||||
"message": "Read Only"
|
||||
"message": "Leesalleen"
|
||||
},
|
||||
"newCollection": {
|
||||
"message": "New Collection"
|
||||
"message": "Nuwe Versameling"
|
||||
},
|
||||
"addCollection": {
|
||||
"message": "Add Collection"
|
||||
"message": "Voeg Versameling Toe"
|
||||
},
|
||||
"editCollection": {
|
||||
"message": "Edit Collection"
|
||||
"message": "Wysig Versameling"
|
||||
},
|
||||
"deleteCollectionConfirmation": {
|
||||
"message": "Are you sure you want to delete this collection?"
|
||||
"message": "Is u seker u wil hierdie versameling skrap?"
|
||||
},
|
||||
"editUser": {
|
||||
"message": "Edit User"
|
||||
"message": "Wysig Gebruiker"
|
||||
},
|
||||
"inviteUser": {
|
||||
"message": "Invite User"
|
||||
"message": "Nooi Gebruiker Uit"
|
||||
},
|
||||
"inviteUserDesc": {
|
||||
"message": "Invite a new user to your organization by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account."
|
||||
|
@ -2132,7 +2132,7 @@
|
|||
"message": "This user can access only the selected collections."
|
||||
},
|
||||
"search": {
|
||||
"message": "Search"
|
||||
"message": "Soek"
|
||||
},
|
||||
"invited": {
|
||||
"message": "Invited"
|
||||
|
@ -2156,55 +2156,55 @@
|
|||
"message": "Admins can access and manage all items, collections and users in your organization."
|
||||
},
|
||||
"user": {
|
||||
"message": "User"
|
||||
"message": "Gebruiker"
|
||||
},
|
||||
"userDesc": {
|
||||
"message": "A regular user with access to assigned collections in your organization."
|
||||
},
|
||||
"manager": {
|
||||
"message": "Manager"
|
||||
"message": "Bestuurder"
|
||||
},
|
||||
"managerDesc": {
|
||||
"message": "Managers can access and manage assigned collections in your organization."
|
||||
"message": "Bestuurders bestuur en het toegang tot toegewysde versamelings in u organisasie."
|
||||
},
|
||||
"all": {
|
||||
"message": "All"
|
||||
"message": "Alle"
|
||||
},
|
||||
"refresh": {
|
||||
"message": "Refresh"
|
||||
"message": "Verfris"
|
||||
},
|
||||
"timestamp": {
|
||||
"message": "Timestamp"
|
||||
"message": "Tydstempel"
|
||||
},
|
||||
"event": {
|
||||
"message": "Event"
|
||||
"message": "Gebeurtenis"
|
||||
},
|
||||
"unknown": {
|
||||
"message": "Unknown"
|
||||
"message": "Onbekend"
|
||||
},
|
||||
"loadMore": {
|
||||
"message": "Load More"
|
||||
"message": "Laai Meer"
|
||||
},
|
||||
"mobile": {
|
||||
"message": "Mobile",
|
||||
"message": "Mobiel",
|
||||
"description": "Mobile app"
|
||||
},
|
||||
"extension": {
|
||||
"message": "Extension",
|
||||
"message": "Uitbreiding",
|
||||
"description": "Browser extension/addon"
|
||||
},
|
||||
"desktop": {
|
||||
"message": "Desktop",
|
||||
"message": "Werkskerm",
|
||||
"description": "Desktop app"
|
||||
},
|
||||
"webVault": {
|
||||
"message": "Web Vault"
|
||||
"message": "Webkluis"
|
||||
},
|
||||
"loggedIn": {
|
||||
"message": "Logged in."
|
||||
"message": "Aangeteken."
|
||||
},
|
||||
"changedPassword": {
|
||||
"message": "Changed account password."
|
||||
"message": "Rekeningwagwoord is verander."
|
||||
},
|
||||
"enabledUpdated2fa": {
|
||||
"message": "Enabled/updated two-step login."
|
||||
|
@ -2474,37 +2474,37 @@
|
|||
}
|
||||
},
|
||||
"device": {
|
||||
"message": "Device"
|
||||
"message": "Toestel"
|
||||
},
|
||||
"view": {
|
||||
"message": "View"
|
||||
"message": "Bekyk"
|
||||
},
|
||||
"invalidDateRange": {
|
||||
"message": "Invalid date range."
|
||||
"message": "Ongeldige datumbereik."
|
||||
},
|
||||
"errorOccurred": {
|
||||
"message": "An error has occurred."
|
||||
"message": "’n Fout het voorgekom."
|
||||
},
|
||||
"userAccess": {
|
||||
"message": "User Access"
|
||||
"message": "Gebruikertoegang"
|
||||
},
|
||||
"userType": {
|
||||
"message": "User Type"
|
||||
"message": "Gebruikertipe"
|
||||
},
|
||||
"groupAccess": {
|
||||
"message": "Group Access"
|
||||
"message": "Groeptoegang"
|
||||
},
|
||||
"groupAccessUserDesc": {
|
||||
"message": "Edit the groups that this user belongs to."
|
||||
},
|
||||
"invitedUsers": {
|
||||
"message": "Invited user(s)."
|
||||
"message": "Gebruiker(s) genooi."
|
||||
},
|
||||
"resendInvitation": {
|
||||
"message": "Resend Invitation"
|
||||
},
|
||||
"hasBeenReinvited": {
|
||||
"message": "$USER$ has been reinvited.",
|
||||
"message": "$USER$ is weer uitgenooi.",
|
||||
"placeholders": {
|
||||
"user": {
|
||||
"content": "$1",
|
||||
|
@ -2516,10 +2516,10 @@
|
|||
"message": "Bevestig"
|
||||
},
|
||||
"confirmUser": {
|
||||
"message": "Confirm User"
|
||||
"message": "Bevestig Gebruiker"
|
||||
},
|
||||
"hasBeenConfirmed": {
|
||||
"message": "$USER$ has been confirmed.",
|
||||
"message": "$USER$ is bevestig.",
|
||||
"placeholders": {
|
||||
"user": {
|
||||
"content": "$1",
|
||||
|
@ -2528,7 +2528,7 @@
|
|||
}
|
||||
},
|
||||
"confirmUsers": {
|
||||
"message": "Confirm Users"
|
||||
"message": "Bevestig Gebruikers"
|
||||
},
|
||||
"usersNeedConfirmed": {
|
||||
"message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the organization until they are confirmed."
|
||||
|
@ -2558,7 +2558,7 @@
|
|||
"message": "Unable to verify your email. Try sending a new verification email."
|
||||
},
|
||||
"updateBrowser": {
|
||||
"message": "Update Browser"
|
||||
"message": "Werk Blaaier By"
|
||||
},
|
||||
"updateBrowserDesc": {
|
||||
"message": "You are using an unsupported web browser. The web vault may not function properly."
|
||||
|
@ -2570,7 +2570,7 @@
|
|||
"message": "You've been invited to join the organization listed above. To accept the invitation, you need to log in or create a new Bitwarden account."
|
||||
},
|
||||
"inviteAccepted": {
|
||||
"message": "Invitation Accepted"
|
||||
"message": "Uitnodiging is Aanvaar"
|
||||
},
|
||||
"inviteAcceptedDesc": {
|
||||
"message": "You can access this organization once an administrator confirms your membership. We'll send you an email when that happens."
|
||||
|
@ -2612,25 +2612,25 @@
|
|||
"message": "You have requested to delete your Bitwarden account. Click the button below to confirm."
|
||||
},
|
||||
"myOrganization": {
|
||||
"message": "My Organization"
|
||||
"message": "My Organisasie"
|
||||
},
|
||||
"deleteOrganization": {
|
||||
"message": "Delete Organization"
|
||||
"message": "Skrap Organisasie"
|
||||
},
|
||||
"deleteOrganizationDesc": {
|
||||
"message": "Proceed below to delete this organization and all associated data. Individual user accounts will remain, though they will not be associated to this organization anymore. "
|
||||
"message": "Gaan hieronder voort om hierdie organisasie en alle verwante data te skrap. Individuele gebruikersrekeninge bly bestaan maar sal nie meer aan hierdie organisasie gekoppel wees nie. "
|
||||
},
|
||||
"deleteOrganizationWarning": {
|
||||
"message": "Deleting the organization is permanent. It cannot be undone."
|
||||
"message": "Skrap van die organisasie is permanent. Dit kan nie ontdaan word nie."
|
||||
},
|
||||
"organizationDeleted": {
|
||||
"message": "Organization Deleted"
|
||||
"message": "Organisasie Geskrap"
|
||||
},
|
||||
"organizationDeletedDesc": {
|
||||
"message": "The organization and all associated data has been deleted."
|
||||
"message": "Die organisasie en alle verwante data is geskrap."
|
||||
},
|
||||
"organizationUpdated": {
|
||||
"message": "Organization updated"
|
||||
"message": "Organisasie bygewerk"
|
||||
},
|
||||
"taxInformation": {
|
||||
"message": "Belastinginligting"
|
||||
|
@ -2808,7 +2808,7 @@
|
|||
"description": "A policy is something like Terms of Service, Privacy Policy, etc."
|
||||
},
|
||||
"termsOfService": {
|
||||
"message": "Terms of Service"
|
||||
"message": "Gebruiksvoorwaardes"
|
||||
},
|
||||
"privacyPolicy": {
|
||||
"message": "Privaatheidsbeleid"
|
||||
|
@ -2967,13 +2967,13 @@
|
|||
"message": "U moet u intekening bestuur vanuit die winkel waarin u toepgebonde aankoop gedoen is."
|
||||
},
|
||||
"minLength": {
|
||||
"message": "Minimum Length"
|
||||
"message": "Minimum lengte"
|
||||
},
|
||||
"clone": {
|
||||
"message": "Clone"
|
||||
"message": "Kloon"
|
||||
},
|
||||
"masterPassPolicyDesc": {
|
||||
"message": "Set minimum requirements for master password strength."
|
||||
"message": "Stel minimum vereistes vir hoofwagwoordsterkte."
|
||||
},
|
||||
"twoStepLoginPolicyDesc": {
|
||||
"message": "Require users to set up two-step login on their personal accounts."
|
||||
|
@ -2985,16 +2985,16 @@
|
|||
"message": "You are a member of an organization that requires two-step login to be enabled on your user account. If you disable all two-step login providers you will be automatically removed from these organizations."
|
||||
},
|
||||
"passwordGeneratorPolicyDesc": {
|
||||
"message": "Set minimum requirements for password generator configuration."
|
||||
"message": "Stel minimum vereistes vir opstelling van wagwoordgenereerder."
|
||||
},
|
||||
"passwordGeneratorPolicyInEffect": {
|
||||
"message": "One or more organization policies are affecting your generator settings."
|
||||
"message": "Een of meer organisasiebeleide beïnvloed u genereerderinstellings."
|
||||
},
|
||||
"masterPasswordPolicyInEffect": {
|
||||
"message": "One or more organization policies require your master password to meet the following requirements:"
|
||||
"message": "Een of meer organisasiebeleide stel die volgende eise aan u hoofwagwoord:"
|
||||
},
|
||||
"policyInEffectMinComplexity": {
|
||||
"message": "Minimum complexity score of $SCORE$",
|
||||
"message": "Minimum ingewikkeldheidstelling van $SCORE$",
|
||||
"placeholders": {
|
||||
"score": {
|
||||
"content": "$1",
|
||||
|
@ -3003,7 +3003,7 @@
|
|||
}
|
||||
},
|
||||
"policyInEffectMinLength": {
|
||||
"message": "Minimum length of $LENGTH$",
|
||||
"message": "Minimum lengte van $LENGTH$",
|
||||
"placeholders": {
|
||||
"length": {
|
||||
"content": "$1",
|
||||
|
@ -3012,16 +3012,16 @@
|
|||
}
|
||||
},
|
||||
"policyInEffectUppercase": {
|
||||
"message": "Contain one or more uppercase characters"
|
||||
"message": "Bevat een of meer hoofletterkarakters"
|
||||
},
|
||||
"policyInEffectLowercase": {
|
||||
"message": "Contain one or more lowercase characters"
|
||||
"message": "Bevat een of meer kleinletterkarakters"
|
||||
},
|
||||
"policyInEffectNumbers": {
|
||||
"message": "Contain one or more numbers"
|
||||
"message": "Bevat een of meer syfers"
|
||||
},
|
||||
"policyInEffectSpecial": {
|
||||
"message": "Contain one or more of the following special characters $CHARS$",
|
||||
"message": "Bevat een of meer van die volgende spesiale karakters $CHARS$",
|
||||
"placeholders": {
|
||||
"chars": {
|
||||
"content": "$1",
|
||||
|
@ -3030,16 +3030,16 @@
|
|||
}
|
||||
},
|
||||
"masterPasswordPolicyRequirementsNotMet": {
|
||||
"message": "Your new master password does not meet the policy requirements."
|
||||
"message": "U nuwe hoofwagwoord voldoen nie aan die beleidsvereistes nie."
|
||||
},
|
||||
"minimumNumberOfWords": {
|
||||
"message": "Minimum Number of Words"
|
||||
"message": "Minimum Aantal Woorde"
|
||||
},
|
||||
"defaultType": {
|
||||
"message": "Default Type"
|
||||
"message": "Verstektipe"
|
||||
},
|
||||
"userPreference": {
|
||||
"message": "User Preference"
|
||||
"message": "Gebruikersvoorkeure"
|
||||
},
|
||||
"vaultTimeoutAction": {
|
||||
"message": "Vault Timeout Action"
|
||||
|
@ -3051,33 +3051,33 @@
|
|||
"message": "A logged out vault requires that you re-authenticate to access it again."
|
||||
},
|
||||
"lock": {
|
||||
"message": "Lock",
|
||||
"message": "Vergrendel",
|
||||
"description": "Verb form: to make secure or inaccesible by"
|
||||
},
|
||||
"trash": {
|
||||
"message": "Trash",
|
||||
"message": "Asblik",
|
||||
"description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted"
|
||||
},
|
||||
"searchTrash": {
|
||||
"message": "Search Trash"
|
||||
"message": "Deursoek Asblik"
|
||||
},
|
||||
"permanentlyDelete": {
|
||||
"message": "Permanently Delete"
|
||||
"message": "Skrap Permanent"
|
||||
},
|
||||
"permanentlyDeleteSelected": {
|
||||
"message": "Permanently Delete Selected"
|
||||
"message": "Skrap Gekose Permanent"
|
||||
},
|
||||
"permanentlyDeleteItem": {
|
||||
"message": "Permanently Delete Item"
|
||||
"message": "Skrap Item Permanent"
|
||||
},
|
||||
"permanentlyDeleteItemConfirmation": {
|
||||
"message": "Are you sure you want to permanently delete this item?"
|
||||
"message": "Is u seker u wil hierdie item permanent skrap?"
|
||||
},
|
||||
"permanentlyDeletedItem": {
|
||||
"message": "Permanently Deleted item"
|
||||
"message": "Permanent Geskrapte Item"
|
||||
},
|
||||
"permanentlyDeletedItems": {
|
||||
"message": "Permanently Deleted items"
|
||||
"message": "Permanent Geskrapte Items"
|
||||
},
|
||||
"permanentlyDeleteSelectedItemsDesc": {
|
||||
"message": "You have selected $COUNT$ item(s) to permanently delete. Are you sure you want to permanently delete all of these items?",
|
||||
|
@ -3089,7 +3089,7 @@
|
|||
}
|
||||
},
|
||||
"permanentlyDeletedItemId": {
|
||||
"message": "Permanently Deleted item $ID$.",
|
||||
"message": "Permanent Geskrapte Items $ID$.",
|
||||
"placeholders": {
|
||||
"id": {
|
||||
"content": "$1",
|
||||
|
|
|
@ -2817,10 +2817,10 @@
|
|||
"message": "Filtry"
|
||||
},
|
||||
"vaultTimeout": {
|
||||
"message": "Vault Timeout"
|
||||
"message": "Časový limit trezoru"
|
||||
},
|
||||
"vaultTimeoutDesc": {
|
||||
"message": "Choose when your vault will timeout and perform the selected action."
|
||||
"message": "Vyberte, kdy vyprší bezpečnostní limit trezoru. Poté bude provedena vybraná akce."
|
||||
},
|
||||
"oneMinute": {
|
||||
"message": "Po 1 minutě"
|
||||
|
@ -3042,16 +3042,16 @@
|
|||
"message": "Uživatelská volba"
|
||||
},
|
||||
"vaultTimeoutAction": {
|
||||
"message": "Vault Timeout Action"
|
||||
"message": "Akce při vypršení časového limitu"
|
||||
},
|
||||
"vaultTimeoutActionLockDesc": {
|
||||
"message": "A locked vault requires that you re-enter your master password to access it again."
|
||||
"message": "Trezor bude uzamčen. Pro opětovný přístup k trezoru bude vyžadováno hlavní heslo."
|
||||
},
|
||||
"vaultTimeoutActionLogOutDesc": {
|
||||
"message": "A logged out vault requires that you re-authenticate to access it again."
|
||||
"message": "Budete odhlášeni. Pro opětovný přístup k trezoru bude vyžadováno ověření."
|
||||
},
|
||||
"lock": {
|
||||
"message": "Lock",
|
||||
"message": "Zamknout",
|
||||
"description": "Verb form: to make secure or inaccesible by"
|
||||
},
|
||||
"trash": {
|
||||
|
@ -3062,25 +3062,25 @@
|
|||
"message": "Hledat v koši"
|
||||
},
|
||||
"permanentlyDelete": {
|
||||
"message": "Permanently Delete"
|
||||
"message": "Trvale smazat"
|
||||
},
|
||||
"permanentlyDeleteSelected": {
|
||||
"message": "Permanently Delete Selected"
|
||||
"message": "Trvale smazat vybrané"
|
||||
},
|
||||
"permanentlyDeleteItem": {
|
||||
"message": "Permanently Delete Item"
|
||||
"message": "Trvale smazat položku"
|
||||
},
|
||||
"permanentlyDeleteItemConfirmation": {
|
||||
"message": "Are you sure you want to permanently delete this item?"
|
||||
"message": "Opravdu chcete tuto položku trvale smazat?"
|
||||
},
|
||||
"permanentlyDeletedItem": {
|
||||
"message": "Permanently Deleted item"
|
||||
"message": "Trvale smazaná položka"
|
||||
},
|
||||
"permanentlyDeletedItems": {
|
||||
"message": "Permanently Deleted items"
|
||||
"message": "Trvale smazané položky"
|
||||
},
|
||||
"permanentlyDeleteSelectedItemsDesc": {
|
||||
"message": "You have selected $COUNT$ item(s) to permanently delete. Are you sure you want to permanently delete all of these items?",
|
||||
"message": "Vybrané položky ($COUNT$) budou trvale smazány. Opravdu chcete všechny vybrané položky trvale smazat?",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"content": "$1",
|
||||
|
@ -3089,7 +3089,7 @@
|
|||
}
|
||||
},
|
||||
"permanentlyDeletedItemId": {
|
||||
"message": "Permanently Deleted item $ID$.",
|
||||
"message": "Položka $ID$ trvale smazána.",
|
||||
"placeholders": {
|
||||
"id": {
|
||||
"content": "$1",
|
||||
|
@ -3098,25 +3098,25 @@
|
|||
}
|
||||
},
|
||||
"restore": {
|
||||
"message": "Restore"
|
||||
"message": "Obnovit"
|
||||
},
|
||||
"restoreSelected": {
|
||||
"message": "Restore Selected"
|
||||
"message": "Obnovit vybrané"
|
||||
},
|
||||
"restoreItem": {
|
||||
"message": "Restore Item"
|
||||
"message": "Obnovit položku"
|
||||
},
|
||||
"restoredItem": {
|
||||
"message": "Restored Item"
|
||||
"message": "Obnovená položka"
|
||||
},
|
||||
"restoredItems": {
|
||||
"message": "Restored Items"
|
||||
"message": "Obnovené položky"
|
||||
},
|
||||
"restoreItemConfirmation": {
|
||||
"message": "Are you sure you want to restore this item?"
|
||||
"message": "Opravdu chcete tuto položku obnovit?"
|
||||
},
|
||||
"restoreItems": {
|
||||
"message": "Restore items"
|
||||
"message": "Obnovit položky"
|
||||
},
|
||||
"restoreSelectedItemsDesc": {
|
||||
"message": "You have selected $COUNT$ item(s) to restore. Are you sure you want to restore all of these items?",
|
||||
|
@ -3128,7 +3128,7 @@
|
|||
}
|
||||
},
|
||||
"restoredItemId": {
|
||||
"message": "Restored item $ID$.",
|
||||
"message": "Položka $ID$ obnovena.",
|
||||
"placeholders": {
|
||||
"id": {
|
||||
"content": "$1",
|
||||
|
@ -3137,9 +3137,9 @@
|
|||
}
|
||||
},
|
||||
"vaultTimeoutLogOutConfirmation": {
|
||||
"message": "Logging out will remove all access to your vault and requires online authentication after the timeout period. Are you sure you want to use this setting?"
|
||||
"message": "Po vypršení časového limitu dojde k odhlášení. Přístup k trezoru bude odebrán a pro opětovné přihlášení bude vyžadováno online ověření. Opravdu chcete použít toto nastavení?"
|
||||
},
|
||||
"vaultTimeoutLogOutConfirmationTitle": {
|
||||
"message": "Timeout Action Confirmation"
|
||||
"message": "Potvrzení akce při vypršení časového limitu"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -461,10 +461,10 @@
|
|||
"message": "Er du sikker på, at du vil slette dette element?"
|
||||
},
|
||||
"deletedItem": {
|
||||
"message": "Slettede element"
|
||||
"message": "Element sendt til papirkurven"
|
||||
},
|
||||
"deletedItems": {
|
||||
"message": "Slettede elementer"
|
||||
"message": "Elementer sendt til papirkurven"
|
||||
},
|
||||
"movedItems": {
|
||||
"message": "Flyttede elementer"
|
||||
|
@ -2249,7 +2249,7 @@
|
|||
}
|
||||
},
|
||||
"deletedItemId": {
|
||||
"message": "Slettede element $ID$.",
|
||||
"message": "Element $ID$ sendt til papirkurven.",
|
||||
"placeholders": {
|
||||
"id": {
|
||||
"content": "$1",
|
||||
|
@ -2817,10 +2817,10 @@
|
|||
"message": "Filtre"
|
||||
},
|
||||
"vaultTimeout": {
|
||||
"message": "Vault Timeout"
|
||||
"message": "Boks timeout"
|
||||
},
|
||||
"vaultTimeoutDesc": {
|
||||
"message": "Choose when your vault will timeout and perform the selected action."
|
||||
"message": "Vælg timeout for din boks, hvorefter den vil udføre den valgte handling."
|
||||
},
|
||||
"oneMinute": {
|
||||
"message": "1 minut"
|
||||
|
@ -3042,45 +3042,45 @@
|
|||
"message": "Brugerindstilling"
|
||||
},
|
||||
"vaultTimeoutAction": {
|
||||
"message": "Vault Timeout Action"
|
||||
"message": "Boks timeout-handling"
|
||||
},
|
||||
"vaultTimeoutActionLockDesc": {
|
||||
"message": "A locked vault requires that you re-enter your master password to access it again."
|
||||
"message": "En låst boks kræver at du gentaster din hovedadgangskode for at tilgå den igen."
|
||||
},
|
||||
"vaultTimeoutActionLogOutDesc": {
|
||||
"message": "A logged out vault requires that you re-authenticate to access it again."
|
||||
"message": "En boks der er logget ud kræver, at du godkender igen for at få adgang til den."
|
||||
},
|
||||
"lock": {
|
||||
"message": "Lock",
|
||||
"message": "Lås",
|
||||
"description": "Verb form: to make secure or inaccesible by"
|
||||
},
|
||||
"trash": {
|
||||
"message": "Trash",
|
||||
"message": "Papirkurv",
|
||||
"description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted"
|
||||
},
|
||||
"searchTrash": {
|
||||
"message": "Search Trash"
|
||||
"message": "Søg i papirkurven"
|
||||
},
|
||||
"permanentlyDelete": {
|
||||
"message": "Permanently Delete"
|
||||
"message": "Slette permanent"
|
||||
},
|
||||
"permanentlyDeleteSelected": {
|
||||
"message": "Permanently Delete Selected"
|
||||
"message": "Slet valgte elementer permanent"
|
||||
},
|
||||
"permanentlyDeleteItem": {
|
||||
"message": "Permanently Delete Item"
|
||||
"message": "Slet element permanent"
|
||||
},
|
||||
"permanentlyDeleteItemConfirmation": {
|
||||
"message": "Are you sure you want to permanently delete this item?"
|
||||
"message": "Er du sikker på, at du vil slette dette element permanent?"
|
||||
},
|
||||
"permanentlyDeletedItem": {
|
||||
"message": "Permanently Deleted item"
|
||||
"message": "Element slettet permanent"
|
||||
},
|
||||
"permanentlyDeletedItems": {
|
||||
"message": "Permanently Deleted items"
|
||||
"message": "Elementer slettet permanent"
|
||||
},
|
||||
"permanentlyDeleteSelectedItemsDesc": {
|
||||
"message": "You have selected $COUNT$ item(s) to permanently delete. Are you sure you want to permanently delete all of these items?",
|
||||
"message": "Du har valgt $COUNT$ element(er), der skal slettes permanent. Er du sikker på, at du vil slette alle disse elementer permanent?",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"content": "$1",
|
||||
|
@ -3089,7 +3089,7 @@
|
|||
}
|
||||
},
|
||||
"permanentlyDeletedItemId": {
|
||||
"message": "Permanently Deleted item $ID$.",
|
||||
"message": "Element $ID$ slettet permanent.",
|
||||
"placeholders": {
|
||||
"id": {
|
||||
"content": "$1",
|
||||
|
@ -3098,28 +3098,28 @@
|
|||
}
|
||||
},
|
||||
"restore": {
|
||||
"message": "Restore"
|
||||
"message": "Gendan"
|
||||
},
|
||||
"restoreSelected": {
|
||||
"message": "Restore Selected"
|
||||
"message": "Gendan valgte"
|
||||
},
|
||||
"restoreItem": {
|
||||
"message": "Restore Item"
|
||||
"message": "Gendan element"
|
||||
},
|
||||
"restoredItem": {
|
||||
"message": "Restored Item"
|
||||
"message": "Element gendannet"
|
||||
},
|
||||
"restoredItems": {
|
||||
"message": "Restored Items"
|
||||
"message": "Elementer gendannet"
|
||||
},
|
||||
"restoreItemConfirmation": {
|
||||
"message": "Are you sure you want to restore this item?"
|
||||
"message": "Er du sikker på, at du vil gendanne dette element?"
|
||||
},
|
||||
"restoreItems": {
|
||||
"message": "Restore items"
|
||||
"message": "Gendan elementer"
|
||||
},
|
||||
"restoreSelectedItemsDesc": {
|
||||
"message": "You have selected $COUNT$ item(s) to restore. Are you sure you want to restore all of these items?",
|
||||
"message": "Du har valgt $COUNT$ element(er), der skal gendannes. Er du sikker på, at du vil gendanne alle disse elementer?",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"content": "$1",
|
||||
|
@ -3128,7 +3128,7 @@
|
|||
}
|
||||
},
|
||||
"restoredItemId": {
|
||||
"message": "Restored item $ID$.",
|
||||
"message": "Element $ID$ gendannet.",
|
||||
"placeholders": {
|
||||
"id": {
|
||||
"content": "$1",
|
||||
|
@ -3137,9 +3137,9 @@
|
|||
}
|
||||
},
|
||||
"vaultTimeoutLogOutConfirmation": {
|
||||
"message": "Logging out will remove all access to your vault and requires online authentication after the timeout period. Are you sure you want to use this setting?"
|
||||
"message": "Ved at logge ud fjernes al adgang til din boks og kræver online-godkendelse efter timeout-perioden. Er du sikker på, at du vil bruge denne indstilling?"
|
||||
},
|
||||
"vaultTimeoutLogOutConfirmationTitle": {
|
||||
"message": "Timeout Action Confirmation"
|
||||
"message": "Bekræft timeout-handling"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -854,7 +854,7 @@
|
|||
"message": "E-Mail-Adresse ändern"
|
||||
},
|
||||
"newEmail": {
|
||||
"message": "Neue E-Mail Adresse"
|
||||
"message": "Neue E-Mail-Adresse"
|
||||
},
|
||||
"code": {
|
||||
"message": "Code"
|
||||
|
@ -1032,7 +1032,7 @@
|
|||
"message": "Ändern Sie die Sprache für den Web-Tresor."
|
||||
},
|
||||
"disableIcons": {
|
||||
"message": "Webseiten Icons deaktivieren"
|
||||
"message": "Website-Icons deaktivieren"
|
||||
},
|
||||
"disableIconsDesc": {
|
||||
"message": "Website-Icons zeigen ein wiedererkennbares Bild neben jedem Eintrag in Ihrem Tresor."
|
||||
|
@ -1048,16 +1048,16 @@
|
|||
"message": "Standard"
|
||||
},
|
||||
"domainRules": {
|
||||
"message": "Domänenregeln"
|
||||
"message": "Domain-Regeln"
|
||||
},
|
||||
"domainRulesDesc": {
|
||||
"message": "Wenn Sie die gleiche Anmeldung über mehrere verschiedene Webseitendomänen hinweg haben, können Sie die Webseite als \"gleichwertig\" markieren. \"Globale\" Domänen wurden bereits von Bitwarden für Sie angelegt."
|
||||
},
|
||||
"globalEqDomains": {
|
||||
"message": "Globale gleichwertige Domänen"
|
||||
"message": "Globale gleichwertige Domains"
|
||||
},
|
||||
"customEqDomains": {
|
||||
"message": "Benutzerdefinierte gleichwertige Domänen"
|
||||
"message": "Benutzerdefinierte gleichwertige Domains"
|
||||
},
|
||||
"exclude": {
|
||||
"message": "Ausschließen"
|
||||
|
@ -2153,7 +2153,7 @@
|
|||
"message": "Administrator"
|
||||
},
|
||||
"adminDesc": {
|
||||
"message": "Administratoren können auf alle Elemente, Sammlungen und Benutzer in der Organisation zugreifen und diese verwalten."
|
||||
"message": "Administratoren können auf alle Einträge, Sammlungen und Benutzer in der Organisation zugreifen und diese verwalten."
|
||||
},
|
||||
"user": {
|
||||
"message": "Benutzer"
|
||||
|
@ -2276,7 +2276,7 @@
|
|||
}
|
||||
},
|
||||
"viewedPasswordItemId": {
|
||||
"message": "Passwort für Element $ID$ kopiert.",
|
||||
"message": "Passwort für Eintrag $ID$ angesehen.",
|
||||
"placeholders": {
|
||||
"id": {
|
||||
"content": "$1",
|
||||
|
@ -2285,7 +2285,7 @@
|
|||
}
|
||||
},
|
||||
"viewedHiddenFieldItemId": {
|
||||
"message": "Verstecktes Feld für Element $ID$ angesehen.",
|
||||
"message": "Verstecktes Feld für Eintrag $ID$ angesehen.",
|
||||
"placeholders": {
|
||||
"id": {
|
||||
"content": "$1",
|
||||
|
@ -2294,7 +2294,7 @@
|
|||
}
|
||||
},
|
||||
"viewedSecurityCodeItemId": {
|
||||
"message": "Sicherheitscode für Element $ID$ angesehen.",
|
||||
"message": "Sicherheitscode für Eintrag $ID$ angesehen.",
|
||||
"placeholders": {
|
||||
"id": {
|
||||
"content": "$1",
|
||||
|
@ -2303,7 +2303,7 @@
|
|||
}
|
||||
},
|
||||
"copiedPasswordItemId": {
|
||||
"message": "Passwort für Element $ID$ kopiert.",
|
||||
"message": "Passwort für Eintrag $ID$ kopiert.",
|
||||
"placeholders": {
|
||||
"id": {
|
||||
"content": "$1",
|
||||
|
@ -2312,7 +2312,7 @@
|
|||
}
|
||||
},
|
||||
"copiedHiddenFieldItemId": {
|
||||
"message": "Verstecktes Feld für Element $ID$ kopiert.",
|
||||
"message": "Verstecktes Feld für Eintrag $ID$ kopiert.",
|
||||
"placeholders": {
|
||||
"id": {
|
||||
"content": "$1",
|
||||
|
@ -2321,7 +2321,7 @@
|
|||
}
|
||||
},
|
||||
"copiedSecurityCodeItemId": {
|
||||
"message": "Sicherheitscode für Element $ID$ kopiert.",
|
||||
"message": "Sicherheitscode für Eintrag $ID$ kopiert.",
|
||||
"placeholders": {
|
||||
"id": {
|
||||
"content": "$1",
|
||||
|
@ -2330,7 +2330,7 @@
|
|||
}
|
||||
},
|
||||
"autofilledItemId": {
|
||||
"message": "Element $ID$ automatisch ausgefüllt.",
|
||||
"message": "Eintrag $ID$ automatisch ausgefüllt.",
|
||||
"placeholders": {
|
||||
"id": {
|
||||
"content": "$1",
|
||||
|
@ -3012,10 +3012,10 @@
|
|||
}
|
||||
},
|
||||
"policyInEffectUppercase": {
|
||||
"message": "Enthält ein oder mehrere Großbuchstaben"
|
||||
"message": "Enthält einen oder mehrere Großbuchstaben"
|
||||
},
|
||||
"policyInEffectLowercase": {
|
||||
"message": "Enthält ein oder mehrere Kleinbuchstaben"
|
||||
"message": "Enthält einen oder mehrere Kleinbuchstaben"
|
||||
},
|
||||
"policyInEffectNumbers": {
|
||||
"message": "Enthält eine oder mehrere Zahlen"
|
||||
|
@ -3080,7 +3080,7 @@
|
|||
"message": "Dauerhaft gelöschte Einträge"
|
||||
},
|
||||
"permanentlyDeleteSelectedItemsDesc": {
|
||||
"message": "Sie haben $COUNT$ Eintrag/Einträge zum unwiderruflichen Löschen ausgewählt. Sind Sie sicher, dass Sie alle diese(n) Eintrag/Einträge dauerhaft löschen möchten?",
|
||||
"message": "Sie haben $COUNT$ Eintrag/Einträge zum unwiderruflichen Löschen ausgewählt. Sind Sie sicher, dass Sie diese(n) Eintrag/Einträge dauerhaft löschen möchten?",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"content": "$1",
|
||||
|
@ -3119,7 +3119,7 @@
|
|||
"message": "Einträge wiederherstellen"
|
||||
},
|
||||
"restoreSelectedItemsDesc": {
|
||||
"message": "Sie haben $COUNT$ Eintrag/Einträge zum Wiederherstellen ausgewählt. Sind Sie sicher, dass Sie alle diese Einträge wiederherstellen möchten?",
|
||||
"message": "Sie haben $COUNT$ Eintrag/Einträge zum Wiederherstellen ausgewählt. Sind Sie sicher, dass Sie diese(n) Eintrag/Einträge dauerhaft löschen möchten?",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"content": "$1",
|
||||
|
|
|
@ -461,10 +461,10 @@
|
|||
"message": "Are you sure you want to delete this item?"
|
||||
},
|
||||
"deletedItem": {
|
||||
"message": "Deleted item"
|
||||
"message": "Item sent to bin"
|
||||
},
|
||||
"deletedItems": {
|
||||
"message": "Deleted items"
|
||||
"message": "Items sent to bin"
|
||||
},
|
||||
"movedItems": {
|
||||
"message": "Moved items"
|
||||
|
@ -2249,7 +2249,7 @@
|
|||
}
|
||||
},
|
||||
"deletedItemId": {
|
||||
"message": "Deleted item $ID$.",
|
||||
"message": "Sent item $ID$ to bin.",
|
||||
"placeholders": {
|
||||
"id": {
|
||||
"content": "$1",
|
||||
|
@ -3055,11 +3055,11 @@
|
|||
"description": "Verb form: to make secure or inaccesible by"
|
||||
},
|
||||
"trash": {
|
||||
"message": "Rubbish",
|
||||
"message": "Bin",
|
||||
"description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted"
|
||||
},
|
||||
"searchTrash": {
|
||||
"message": "Search rubbish"
|
||||
"message": "Search bin"
|
||||
},
|
||||
"permanentlyDelete": {
|
||||
"message": "Permanently delete"
|
||||
|
|
|
@ -1485,7 +1485,7 @@
|
|||
"message": "Breached Accounts Found"
|
||||
},
|
||||
"compromisedData": {
|
||||
"message": "Compromised data"
|
||||
"message": "Vaarantunutta tietoa"
|
||||
},
|
||||
"website": {
|
||||
"message": "Sivusto"
|
||||
|
|
|
@ -2817,10 +2817,10 @@
|
|||
"message": "Filtri"
|
||||
},
|
||||
"vaultTimeout": {
|
||||
"message": "Vault Timeout"
|
||||
"message": "Timeout Cassaforte"
|
||||
},
|
||||
"vaultTimeoutDesc": {
|
||||
"message": "Choose when your vault will timeout and perform the selected action."
|
||||
"message": "Scegli quando la tua cassaforte andrà in timeout ed esegui l'azione selezionata."
|
||||
},
|
||||
"oneMinute": {
|
||||
"message": "1 minuto"
|
||||
|
@ -3042,45 +3042,45 @@
|
|||
"message": "Preferenze utente"
|
||||
},
|
||||
"vaultTimeoutAction": {
|
||||
"message": "Vault Timeout Action"
|
||||
"message": "Azione Timeout Cassaforte"
|
||||
},
|
||||
"vaultTimeoutActionLockDesc": {
|
||||
"message": "Scegli quando bloccare la tua cassaforte. Una cassaforte bloccata richiede l'inserimento della password principale per potervi accedere."
|
||||
"message": "Una cassaforte bloccata richiede l'inserimento della password principale per accedere nuovamente."
|
||||
},
|
||||
"vaultTimeoutActionLogOutDesc": {
|
||||
"message": "A logged out vault requires that you re-authenticate to access it again."
|
||||
"message": "La disconnessione dalla cassaforte richiede l'inserimento della password principale per accedere nuovamente."
|
||||
},
|
||||
"lock": {
|
||||
"message": "Lock",
|
||||
"message": "Blocca",
|
||||
"description": "Verb form: to make secure or inaccesible by"
|
||||
},
|
||||
"trash": {
|
||||
"message": "Trash",
|
||||
"message": "Cestino",
|
||||
"description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted"
|
||||
},
|
||||
"searchTrash": {
|
||||
"message": "Search Trash"
|
||||
"message": "Cerca nel cestino"
|
||||
},
|
||||
"permanentlyDelete": {
|
||||
"message": "Permanently Delete"
|
||||
"message": "Elimina definitivamente"
|
||||
},
|
||||
"permanentlyDeleteSelected": {
|
||||
"message": "Permanently Delete Selected"
|
||||
"message": "Elimina definitivamente l'elemento selezionato"
|
||||
},
|
||||
"permanentlyDeleteItem": {
|
||||
"message": "Permanently Delete Item"
|
||||
"message": "Elimina definitivamente l'elemento"
|
||||
},
|
||||
"permanentlyDeleteItemConfirmation": {
|
||||
"message": "Are you sure you want to permanently delete this item?"
|
||||
"message": "Sei sicuro di voler eliminare definitivamente questo elemento?"
|
||||
},
|
||||
"permanentlyDeletedItem": {
|
||||
"message": "Permanently Deleted item"
|
||||
"message": "Elimina definitivamente l'elemento"
|
||||
},
|
||||
"permanentlyDeletedItems": {
|
||||
"message": "Permanently Deleted items"
|
||||
"message": "Elimina definitivamente gli elementi"
|
||||
},
|
||||
"permanentlyDeleteSelectedItemsDesc": {
|
||||
"message": "You have selected $COUNT$ item(s) to permanently delete. Are you sure you want to permanently delete all of these items?",
|
||||
"message": "Hai selezionato $COUNT$ elemento/i da eliminare definitivamente. Sei sicuro di voler eliminare definitivamente tutti gli elementi selezionati?",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"content": "$1",
|
||||
|
@ -3089,7 +3089,7 @@
|
|||
}
|
||||
},
|
||||
"permanentlyDeletedItemId": {
|
||||
"message": "Permanently Deleted item $ID$.",
|
||||
"message": "Elemento definitivamente eliminato $ID$.",
|
||||
"placeholders": {
|
||||
"id": {
|
||||
"content": "$1",
|
||||
|
@ -3098,28 +3098,28 @@
|
|||
}
|
||||
},
|
||||
"restore": {
|
||||
"message": "Restore"
|
||||
"message": "Ripristina"
|
||||
},
|
||||
"restoreSelected": {
|
||||
"message": "Restore Selected"
|
||||
"message": "Ripristina selezionato"
|
||||
},
|
||||
"restoreItem": {
|
||||
"message": "Restore Item"
|
||||
"message": "Ripristina elemento"
|
||||
},
|
||||
"restoredItem": {
|
||||
"message": "Restored Item"
|
||||
"message": "Ripristina Elemento"
|
||||
},
|
||||
"restoredItems": {
|
||||
"message": "Restored Items"
|
||||
"message": "Elementi Ripristinati"
|
||||
},
|
||||
"restoreItemConfirmation": {
|
||||
"message": "Are you sure you want to restore this item?"
|
||||
"message": "Sei sicuro di voler ripristinare questo elemento?"
|
||||
},
|
||||
"restoreItems": {
|
||||
"message": "Restore items"
|
||||
"message": "Ripristina elementi"
|
||||
},
|
||||
"restoreSelectedItemsDesc": {
|
||||
"message": "You have selected $COUNT$ item(s) to restore. Are you sure you want to restore all of these items?",
|
||||
"message": "Hai selezionato $COUNT$ elemento/i da ripristinare. Sei sicuro di voler ripristinare tutti gli elementi selezionati?",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"content": "$1",
|
||||
|
@ -3128,7 +3128,7 @@
|
|||
}
|
||||
},
|
||||
"restoredItemId": {
|
||||
"message": "Restored item $ID$.",
|
||||
"message": "Elemento ripristinato $ID$.",
|
||||
"placeholders": {
|
||||
"id": {
|
||||
"content": "$1",
|
||||
|
@ -3137,9 +3137,9 @@
|
|||
}
|
||||
},
|
||||
"vaultTimeoutLogOutConfirmation": {
|
||||
"message": "Logging out will remove all access to your vault and requires online authentication after the timeout period. Are you sure you want to use this setting?"
|
||||
"message": "La disconnessione rimuove tutti gli accessi alla tua cassaforte e richiede l'autenticazione online dopo il periodo di timeout. Sei sicuro di voler utilizzare questa impostazione?"
|
||||
},
|
||||
"vaultTimeoutLogOutConfirmationTitle": {
|
||||
"message": "Timeout Action Confirmation"
|
||||
"message": "Conferma Azione di Timeout"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1423,7 +1423,7 @@
|
|||
"message": "Znaleźliśmy identyczne hasła"
|
||||
},
|
||||
"reusedPasswordsFoundDesc": {
|
||||
"message": "Znaleźliśmy hasła ($COUNT$), które powtarzają się w sejfie. Zmień je, aby były unikalne.",
|
||||
"message": "Znaleźliśmy hasła, które powtarzają się w sejfie. Zmień je, aby były unikalne.",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"content": "$1",
|
||||
|
|
|
@ -2817,10 +2817,10 @@
|
|||
"message": "Filtros"
|
||||
},
|
||||
"vaultTimeout": {
|
||||
"message": "Vault Timeout"
|
||||
"message": "Tempo de expiração do Cofre"
|
||||
},
|
||||
"vaultTimeoutDesc": {
|
||||
"message": "Choose when your vault will timeout and perform the selected action."
|
||||
"message": "Escolha quando o seu cofre irá de expirar e a ação que irá executar."
|
||||
},
|
||||
"oneMinute": {
|
||||
"message": "1 minuto"
|
||||
|
@ -3042,13 +3042,13 @@
|
|||
"message": "Preferência do utilizador"
|
||||
},
|
||||
"vaultTimeoutAction": {
|
||||
"message": "Vault Timeout Action"
|
||||
"message": "Ação de expiração do Cofre"
|
||||
},
|
||||
"vaultTimeoutActionLockDesc": {
|
||||
"message": "A locked vault requires that you re-enter your master password to access it again."
|
||||
"message": "Um cofre bloqueado requer que você reinsira a sua palavra-passe mestra para o aceder novamente."
|
||||
},
|
||||
"vaultTimeoutActionLogOutDesc": {
|
||||
"message": "A logged out vault requires that you re-authenticate to access it again."
|
||||
"message": "Um cofre com a sessão desligada requer que você se autentique novamente para o poder aceder."
|
||||
},
|
||||
"lock": {
|
||||
"message": "Bloquear",
|
||||
|
@ -3140,6 +3140,6 @@
|
|||
"message": "Terminar sessão irá remover todos os acessos ao seu cofre e requer autenticação online após o período de espera. Tem a certeza de que pretende utilizar esta definição?"
|
||||
},
|
||||
"vaultTimeoutLogOutConfirmationTitle": {
|
||||
"message": "Timeout Action Confirmation"
|
||||
"message": "Confirmação de expiração do Cofre"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3137,9 +3137,9 @@
|
|||
}
|
||||
},
|
||||
"vaultTimeoutLogOutConfirmation": {
|
||||
"message": "登出将会在超时后删除您访问密码库的所有权限,并且需要进行在线认证。 您确定要使用此设置吗?"
|
||||
"message": "注销时将会移除密码库的所有访问权限,并且需要在超时后进行在线认证。 您确定要使用此设置吗?"
|
||||
},
|
||||
"vaultTimeoutLogOutConfirmationTitle": {
|
||||
"message": "超时动作确认"
|
||||
"message": "超时操作确认"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@ export class I18nService extends BaseI18nService {
|
|||
});
|
||||
|
||||
this.supportedTranslationLocales = [
|
||||
'en', 'ca', 'cs', 'da', 'de', 'en-GB', 'es', 'et', 'fr', 'he', 'it', 'ja', 'ko', 'nb', 'nl', 'pl',
|
||||
'en', 'ca', 'cs', 'da', 'de', 'el', 'en-GB', 'es', 'et', 'fr', 'he', 'it', 'ja', 'ko', 'nb', 'nl', 'pl',
|
||||
'pt-PT', 'pt-BR', 'ru', 'sk', 'sv', 'uk', 'zh-CN', 'zh-TW',
|
||||
];
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue