1
0
mirror of https://github.com/bitwarden/web synced 2025-12-06 00:03:28 +00:00

Compare commits

...

47 Commits

Author SHA1 Message Date
Kyle Spearrin
6b9c90f99b update jslib 2018-12-14 17:20:31 -05:00
Kyle Spearrin
4050bc1da8 accessReports typo 2018-12-14 14:50:15 -05:00
Kyle Spearrin
4bb9051136 show reports with upgrade message 2018-12-14 14:48:12 -05:00
Kyle Spearrin
ceca4fbe53 add more org reports 2018-12-14 14:42:04 -05:00
Kyle Spearrin
9b7c0288d4 inactive 2fa report for orgs 2018-12-14 14:22:30 -05:00
Kyle Spearrin
392a90c02c exposed passwords report for orgs 2018-12-14 13:56:01 -05:00
Kyle Spearrin
7a58f6d967 make sure routerService is newed 2018-12-14 11:15:50 -05:00
Kyle Spearrin
35d1e51f9b update jslib 2018-12-13 14:38:03 -05:00
Kyle Spearrin
9729a4c724 enpass json importer 2018-12-13 14:34:43 -05:00
Kyle Spearrin
f13713a055 update jslib 2018-12-13 10:59:05 -05:00
Kyle Spearrin
31655f7832 userInputs for strength check based on username 2018-12-12 19:37:27 -05:00
Kyle Spearrin
fb4bb81595 dashlane json importer 2018-12-12 17:06:22 -05:00
Kyle Spearrin
31cb6916c6 null check 2018-12-12 15:01:23 -05:00
Kyle Spearrin
61d37615af New translations messages.json (Portuguese) (#308) 2018-12-12 12:57:01 -05:00
Kyle Spearrin
eaa7701696 New translations messages.json (Portuguese) (#307) 2018-12-12 12:49:10 -05:00
Kyle Spearrin
d6cff8e0b0 Merge branch 'master' of github.com:bitwarden/web 2018-12-12 12:46:20 -05:00
Kyle Spearrin
8ba761b33c add missing "that" 2018-12-12 12:46:17 -05:00
Kyle Spearrin
05e7e452df New Crowdin translations (#306)
* New translations messages.json (Chinese Simplified)

* New translations messages.json (Korean)

* New translations messages.json (Turkish)

* New translations messages.json (Swedish)

* New translations messages.json (Spanish)

* New translations messages.json (Slovak)

* New translations messages.json (Russian)

* New translations messages.json (Portuguese, Brazilian)

* New translations messages.json (Portuguese)

* New translations messages.json (Polish)

* New translations messages.json (Norwegian Bokmal)

* New translations messages.json (Japanese)

* New translations messages.json (Chinese Traditional)

* New translations messages.json (Italian)

* New translations messages.json (Hungarian)

* New translations messages.json (German)

* New translations messages.json (French)

* New translations messages.json (Finnish)

* New translations messages.json (Estonian)

* New translations messages.json (Dutch)

* New translations messages.json (Danish)

* New translations messages.json (Czech)

* New translations messages.json (Ukrainian)
2018-12-12 12:03:03 -05:00
Kyle Spearrin
3f0fd4f771 use cache instead of async 2018-12-12 11:22:11 -05:00
Kyle Spearrin
a587c1d1da async the weak password checks 2018-12-12 10:34:05 -05:00
Kyle Spearrin
c3355f7fe4 premium reports feature 2018-12-12 10:05:54 -05:00
Kyle Spearrin
c182d874af premium labels for reports section 2018-12-12 09:45:50 -05:00
Kyle Spearrin
ab9ebfb667 fix i18n 2018-12-12 09:30:57 -05:00
Kyle Spearrin
cb953eda61 premium checks on reports 2018-12-12 09:29:51 -05:00
Kyle Spearrin
93c291dba1 base cipher report component class 2018-12-12 09:11:10 -05:00
Kyle Spearrin
603a1ef046 format numbers 2018-12-12 08:54:52 -05:00
Kyle Spearrin
5a504b00fb update report language 2018-12-12 08:53:44 -05:00
Kyle Spearrin
dfa59dc93d instructions language update 2018-12-12 00:02:57 -05:00
Kyle Spearrin
534bcdd52c rearrange reports 2018-12-11 23:29:36 -05:00
Kyle Spearrin
ea032bf551 inactive 2fa report 2018-12-11 23:25:05 -05:00
Kyle Spearrin
b44eee8d81 hasLoaded moved to load method 2018-12-11 22:10:26 -05:00
Kyle Spearrin
8f57ada128 exposed passwords report 2018-12-11 22:09:16 -05:00
Kyle Spearrin
3963990831 weak passwords report 2018-12-11 17:49:51 -05:00
Kyle Spearrin
dc1ffafdf3 hasLoaded spinners 2018-12-11 15:16:45 -05:00
Kyle Spearrin
4a0b4de322 unsecured websites report 2018-12-11 15:11:16 -05:00
Kyle Spearrin
0ede65e9ca add help link for searching 2018-12-11 14:51:44 -05:00
Kyle Spearrin
0ebf30b8b6 reused passwords report 2018-12-11 14:47:41 -05:00
Kyle Spearrin
4222b192c4 max-height on icon image 2018-12-08 14:36:55 -05:00
Kyle Spearrin
4a301aaec3 bump version 2018-12-08 14:11:57 -05:00
Kyle Spearrin
97a3a97a15 colorized password 2018-12-08 14:11:10 -05:00
Kyle Spearrin
c526d73e23 bump version 2018-12-08 10:48:05 -05:00
Kyle Spearrin
58baf137aa dont apply old pipe search during select all filter 2018-12-08 10:47:22 -05:00
Matej Kramny
066ab1500f enable clear button in search input types (#300) 2018-12-07 20:07:34 -05:00
Andrew Peng
224a468712 Fix typo (#298) 2018-12-03 15:39:33 -05:00
Kyle Spearrin
dd282383d7 use router.navigate rather than location 2018-11-30 10:28:46 -05:00
Kyle Spearrin
9a99a95b15 update jslib 2018-11-28 09:52:49 -05:00
Alexandre Lapeyre
e814494e37 fix logos in breach report page (#296) 2018-11-28 09:51:43 -05:00
62 changed files with 4681 additions and 255 deletions

2
jslib

Submodule jslib updated: 739d308498...27566c3fd5

2
package-lock.json generated
View File

@@ -1,6 +1,6 @@
{
"name": "bitwarden-web",
"version": "2.6.2",
"version": "2.7.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@@ -1,6 +1,6 @@
{
"name": "bitwarden-web",
"version": "2.6.2",
"version": "2.7.0",
"scripts": {
"sub:init": "git submodule update --init --recursive",
"sub:update": "git submodule update --remote",

View File

@@ -33,8 +33,23 @@ import {
} from './organizations/settings/two-factor-setup.component';
import { ExportComponent as OrgExportComponent } from './organizations/tools/export.component';
import {
ExposedPasswordsReportComponent as OrgExposedPasswordsReportComponent,
} from './organizations/tools/exposed-passwords-report.component';
import { ImportComponent as OrgImportComponent } from './organizations/tools/import.component';
import {
InactiveTwoFactorReportComponent as OrgInactiveTwoFactorReportComponent,
} from './organizations/tools/inactive-two-factor-report.component';
import {
ReusedPasswordsReportComponent as OrgReusedPasswordsReportComponent,
} from './organizations/tools/reused-passwords-report.component';
import { ToolsComponent as OrgToolsComponent } from './organizations/tools/tools.component';
import {
UnsecuredWebsitesReportComponent as OrgUnsecuredWebsitesReportComponent,
} from './organizations/tools/unsecured-websites-report.component';
import {
WeakPasswordsReportComponent as OrgWeakPasswordsReportComponent,
} from './organizations/tools/weak-passwords-report.component';
import { VaultComponent as OrgVaultComponent } from './organizations/vault/vault.component';
@@ -50,9 +65,14 @@ import { UserBillingComponent } from './settings/user-billing.component';
import { BreachReportComponent } from './tools/breach-report.component';
import { ExportComponent } from './tools/export.component';
import { ExposedPasswordsReportComponent } from './tools/exposed-passwords-report.component';
import { ImportComponent } from './tools/import.component';
import { InactiveTwoFactorReportComponent } from './tools/inactive-two-factor-report.component';
import { PasswordGeneratorComponent } from './tools/password-generator.component';
import { ReusedPasswordsReportComponent } from './tools/reused-passwords-report.component';
import { ToolsComponent } from './tools/tools.component';
import { UnsecuredWebsitesReportComponent } from './tools/unsecured-websites-report.component';
import { WeakPasswordsReportComponent } from './tools/weak-passwords-report.component';
import { VaultComponent } from './vault/vault.component';
@@ -148,6 +168,31 @@ const routes: Routes = [
data: { titleId: 'passwordGenerator' },
},
{ path: 'breach-report', component: BreachReportComponent, data: { titleId: 'dataBreachReport' } },
{
path: 'reused-passwords-report',
component: ReusedPasswordsReportComponent,
data: { titleId: 'reusedPasswordsReport' },
},
{
path: 'unsecured-websites-report',
component: UnsecuredWebsitesReportComponent,
data: { titleId: 'unsecuredWebsitesReport' },
},
{
path: 'weak-passwords-report',
component: WeakPasswordsReportComponent,
data: { titleId: 'weakPasswordsReport' },
},
{
path: 'exposed-passwords-report',
component: ExposedPasswordsReportComponent,
data: { titleId: 'exposedPasswordsReport' },
},
{
path: 'inactive-two-factor-report',
component: InactiveTwoFactorReportComponent,
data: { titleId: 'inactive2faReport' },
},
],
},
],
@@ -168,6 +213,31 @@ const routes: Routes = [
{ path: '', pathMatch: 'full', redirectTo: 'import' },
{ path: 'import', component: OrgImportComponent, data: { titleId: 'importData' } },
{ path: 'export', component: OrgExportComponent, data: { titleId: 'exportVault' } },
{
path: 'exposed-passwords-report',
component: OrgExposedPasswordsReportComponent,
data: { titleId: 'exposedPasswordsReport' },
},
{
path: 'inactive-two-factor-report',
component: OrgInactiveTwoFactorReportComponent,
data: { titleId: 'inactive2faReport' },
},
{
path: 'reused-passwords-report',
component: OrgReusedPasswordsReportComponent,
data: { titleId: 'reusedPasswordsReport' },
},
{
path: 'unsecured-websites-report',
component: OrgUnsecuredWebsitesReportComponent,
data: { titleId: 'unsecuredWebsitesReport' },
},
{
path: 'weak-passwords-report',
component: OrgWeakPasswordsReportComponent,
data: { titleId: 'weakPasswordsReport' },
},
],
},
{

View File

@@ -81,7 +81,7 @@ export class AppComponent implements OnDestroy, OnInit {
private lockService: LockService, private storageService: StorageService,
private cryptoService: CryptoService, private collectionService: CollectionService,
private sanitizer: DomSanitizer, private searchService: SearchService,
private notificationsService: NotificationsService) { }
private notificationsService: NotificationsService, private routerService: RouterService) { }
ngOnInit() {
this.ngZone.runOutsideAngular(() => {

View File

@@ -63,8 +63,23 @@ import {
} from './organizations/settings/two-factor-setup.component';
import { ExportComponent as OrgExportComponent } from './organizations/tools/export.component';
import {
ExposedPasswordsReportComponent as OrgExposedPasswordsReportComponent,
} from './organizations/tools/exposed-passwords-report.component';
import { ImportComponent as OrgImportComponent } from './organizations/tools/import.component';
import {
InactiveTwoFactorReportComponent as OrgInactiveTwoFactorReportComponent,
} from './organizations/tools/inactive-two-factor-report.component';
import {
ReusedPasswordsReportComponent as OrgReusedPasswordsReportComponent,
} from './organizations/tools/reused-passwords-report.component';
import { ToolsComponent as OrgToolsComponent } from './organizations/tools/tools.component';
import {
UnsecuredWebsitesReportComponent as OrgUnsecuredWebsitesReportComponent,
} from './organizations/tools/unsecured-websites-report.component';
import {
WeakPasswordsReportComponent as OrgWeakPasswordsReportComponent,
} from './organizations/tools/weak-passwords-report.component';
import { AddEditComponent as OrgAddEditComponent } from './organizations/vault/add-edit.component';
import { AttachmentsComponent as OrgAttachmentsComponent } from './organizations/vault/attachments.component';
@@ -105,10 +120,15 @@ import { VerifyEmailComponent } from './settings/verify-email.component';
import { BreachReportComponent } from './tools/breach-report.component';
import { ExportComponent } from './tools/export.component';
import { ExposedPasswordsReportComponent } from './tools/exposed-passwords-report.component';
import { ImportComponent } from './tools/import.component';
import { InactiveTwoFactorReportComponent } from './tools/inactive-two-factor-report.component';
import { PasswordGeneratorHistoryComponent } from './tools/password-generator-history.component';
import { PasswordGeneratorComponent } from './tools/password-generator.component';
import { ReusedPasswordsReportComponent } from './tools/reused-passwords-report.component';
import { ToolsComponent } from './tools/tools.component';
import { UnsecuredWebsitesReportComponent } from './tools/unsecured-websites-report.component';
import { WeakPasswordsReportComponent } from './tools/weak-passwords-report.component';
import { AddEditComponent } from './vault/add-edit.component';
import { AttachmentsComponent } from './vault/attachments.component';
@@ -134,6 +154,7 @@ import { StopClickDirective } from 'jslib/angular/directives/stop-click.directiv
import { StopPropDirective } from 'jslib/angular/directives/stop-prop.directive';
import { TrueFalseValueDirective } from 'jslib/angular/directives/true-false-value.directive';
import { ColorPasswordPipe } from 'jslib/angular/pipes/color-password.pipe';
import { I18nPipe } from 'jslib/angular/pipes/i18n.pipe';
import { SearchCiphersPipe } from 'jslib/angular/pipes/search-ciphers.pipe';
import { SearchPipe } from 'jslib/angular/pipes/search.pipe';
@@ -211,21 +232,24 @@ registerLocaleData(localeZhCn, 'zh-CN');
ChangePasswordComponent,
CiphersComponent,
CollectionsComponent,
ColorPasswordPipe,
CreateOrganizationComponent,
DeauthorizeSessionsComponent,
DeleteAccountComponent,
DeleteOrganizationComponent,
DomainRulesComponent,
ExportComponent,
ExposedPasswordsReportComponent,
FallbackSrcDirective,
FolderAddEditComponent,
FooterComponent,
FrontendLayoutComponent,
GroupingsComponent,
HintComponent,
IconComponent,
I18nPipe,
IconComponent,
ImportComponent,
InactiveTwoFactorReportComponent,
InputVerbatimDirective,
LockComponent,
LoginComponent,
@@ -243,13 +267,16 @@ registerLocaleData(localeZhCn, 'zh-CN');
OrgEntityUsersComponent,
OrgEventsComponent,
OrgExportComponent,
OrgExposedPasswordsReportComponent,
OrgImportComponent,
OrgInactiveTwoFactorReportComponent,
OrgGroupAddEditComponent,
OrgGroupingsComponent,
OrgGroupsComponent,
OrgManageCollectionsComponent,
OrgManageComponent,
OrgPeopleComponent,
OrgReusedPasswordsReportComponent,
OrgSettingComponent,
OrgToolsComponent,
OrgTwoFactorSetupComponent,
@@ -258,9 +285,12 @@ registerLocaleData(localeZhCn, 'zh-CN');
OrgUserGroupsComponent,
OrganizationsComponent,
OrganizationLayoutComponent,
OrgUnsecuredWebsitesReportComponent,
OrgVaultComponent,
OrgWeakPasswordsReportComponent,
PasswordGeneratorComponent,
PasswordGeneratorHistoryComponent,
PasswordStrengthComponent,
PaymentComponent,
PremiumComponent,
ProfileComponent,
@@ -268,6 +298,7 @@ registerLocaleData(localeZhCn, 'zh-CN');
RecoverDeleteComponent,
RecoverTwoFactorComponent,
RegisterComponent,
ReusedPasswordsReportComponent,
SearchCiphersPipe,
SearchPipe,
SettingsComponent,
@@ -286,6 +317,7 @@ registerLocaleData(localeZhCn, 'zh-CN');
TwoFactorU2fComponent,
TwoFactorVerifyComponent,
TwoFactorYubiKeyComponent,
UnsecuredWebsitesReportComponent,
UpdateKeyComponent,
UpdateLicenseComponent,
UserBillingComponent,
@@ -294,7 +326,7 @@ registerLocaleData(localeZhCn, 'zh-CN');
VerifyEmailComponent,
VerifyEmailTokenComponent,
VerifyRecoverDeleteComponent,
PasswordStrengthComponent,
WeakPasswordsReportComponent,
],
entryComponents: [
AddEditComponent,

View File

@@ -0,0 +1,39 @@
import {
Component,
ComponentFactoryResolver,
} from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { AuditService } from 'jslib/abstractions/audit.service';
import { CipherService } from 'jslib/abstractions/cipher.service';
import { MessagingService } from 'jslib/abstractions/messaging.service';
import { UserService } from 'jslib/abstractions/user.service';
import {
ExposedPasswordsReportComponent as BaseExposedPasswordsReportComponent,
} from '../../tools/exposed-passwords-report.component';
import { CipherView } from 'jslib/models/view/cipherView';
@Component({
selector: 'app-exposed-passwords-report',
templateUrl: '../../tools/exposed-passwords-report.component.html',
})
export class ExposedPasswordsReportComponent extends BaseExposedPasswordsReportComponent {
constructor(cipherService: CipherService, auditService: AuditService,
componentFactoryResolver: ComponentFactoryResolver, messagingService: MessagingService,
userService: UserService, private route: ActivatedRoute) {
super(cipherService, auditService, componentFactoryResolver, messagingService, userService);
}
ngOnInit() {
this.route.parent.parent.params.subscribe(async (params) => {
this.organization = await this.userService.getOrganization(params.organizationId);
super.ngOnInit();
});
}
getAllCiphers(): Promise<CipherView[]> {
return this.cipherService.getAllFromApiForOrganization(this.organization.id);
}
}

View File

@@ -0,0 +1,38 @@
import {
Component,
ComponentFactoryResolver,
} from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { CipherService } from 'jslib/abstractions/cipher.service';
import { MessagingService } from 'jslib/abstractions/messaging.service';
import { UserService } from 'jslib/abstractions/user.service';
import {
InactiveTwoFactorReportComponent as BaseInactiveTwoFactorReportComponent,
} from '../../tools/inactive-two-factor-report.component';
import { CipherView } from 'jslib/models/view/cipherView';
@Component({
selector: 'app-inactive-two-factor-report',
templateUrl: '../../tools/inactive-two-factor-report.component.html',
})
export class InactiveTwoFactorReportComponent extends BaseInactiveTwoFactorReportComponent {
constructor(cipherService: CipherService, componentFactoryResolver: ComponentFactoryResolver,
messagingService: MessagingService, userService: UserService,
private route: ActivatedRoute) {
super(cipherService, componentFactoryResolver, messagingService, userService);
}
async ngOnInit() {
this.route.parent.parent.params.subscribe(async (params) => {
this.organization = await this.userService.getOrganization(params.organizationId);
await super.ngOnInit();
});
}
getAllCiphers(): Promise<CipherView[]> {
return this.cipherService.getAllFromApiForOrganization(this.organization.id);
}
}

View File

@@ -0,0 +1,38 @@
import {
Component,
ComponentFactoryResolver,
} from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { CipherService } from 'jslib/abstractions/cipher.service';
import { MessagingService } from 'jslib/abstractions/messaging.service';
import { UserService } from 'jslib/abstractions/user.service';
import { CipherView } from 'jslib/models/view/cipherView';
import {
ReusedPasswordsReportComponent as BaseReusedPasswordsReportComponent,
} from '../../tools/reused-passwords-report.component';
@Component({
selector: 'app-reused-passwords-report',
templateUrl: '../../tools/reused-passwords-report.component.html',
})
export class ReusedPasswordsReportComponent extends BaseReusedPasswordsReportComponent {
constructor(cipherService: CipherService, componentFactoryResolver: ComponentFactoryResolver,
messagingService: MessagingService, userService: UserService,
private route: ActivatedRoute) {
super(cipherService, componentFactoryResolver, messagingService, userService);
}
async ngOnInit() {
this.route.parent.parent.params.subscribe(async (params) => {
this.organization = await this.userService.getOrganization(params.organizationId);
await super.ngOnInit();
});
}
getAllCiphers(): Promise<CipherView[]> {
return this.cipherService.getAllFromApiForOrganization(this.organization.id);
}
}

View File

@@ -1,7 +1,7 @@
<div class="container page-content">
<div class="row">
<div class="col-3">
<div class="card">
<div class="card mb-4">
<div class="card-header">{{'tools' | i18n}}</div>
<div class="list-group list-group-flush">
<a routerLink="import" class="list-group-item" routerLinkActive="active">
@@ -12,6 +12,33 @@
</a>
</div>
</div>
<div class="card">
<div class="card-header d-flex">
{{'reports' | i18n}}
<div class="ml-auto">
<a href="#" appStopClick class="badge badge-primary" *ngIf="!accessReports" (click)="upgradeOrganization()">
{{'upgrade' | i18n}}
</a>
</div>
</div>
<div class="list-group list-group-flush">
<a routerLink="exposed-passwords-report" class="list-group-item" routerLinkActive="active">
{{'exposedPasswordsReport' | i18n}}
</a>
<a routerLink="reused-passwords-report" class="list-group-item" routerLinkActive="active">
{{'reusedPasswordsReport' | i18n}}
</a>
<a routerLink="weak-passwords-report" class="list-group-item" routerLinkActive="active">
{{'weakPasswordsReport' | i18n}}
</a>
<a routerLink="unsecured-websites-report" class="list-group-item" routerLinkActive="active">
{{'unsecuredWebsitesReport' | i18n}}
</a>
<a routerLink="inactive-two-factor-report" class="list-group-item" routerLinkActive="active">
{{'inactive2faReport' | i18n}}
</a>
</div>
</div>
</div>
<div class="col-9">
<router-outlet></router-outlet>

View File

@@ -1,7 +1,32 @@
import { Component } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { Organization } from 'jslib/models/domain/organization';
import { MessagingService } from 'jslib/abstractions/messaging.service';
import { UserService } from 'jslib/abstractions/user.service';
@Component({
selector: 'app-org-tools',
templateUrl: 'tools.component.html',
})
export class ToolsComponent { }
export class ToolsComponent {
organization: Organization;
accessReports = false;
constructor(private route: ActivatedRoute, private userService: UserService,
private messagingService: MessagingService) { }
ngOnInit() {
this.route.parent.params.subscribe(async (params) => {
this.organization = await this.userService.getOrganization(params.organizationId);
// TODO: Maybe we want to just make sure they are not on a free plan? Just compare use2fa for now
// since all paid plans include use2fa
this.accessReports = this.organization.use2fa;
});
}
upgradeOrganization() {
this.messagingService.send('upgradeOrganization', { organizationId: this.organization.id });
}
}

View File

@@ -0,0 +1,38 @@
import {
Component,
ComponentFactoryResolver,
} from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { CipherService } from 'jslib/abstractions/cipher.service';
import { MessagingService } from 'jslib/abstractions/messaging.service';
import { UserService } from 'jslib/abstractions/user.service';
import {
UnsecuredWebsitesReportComponent as BaseUnsecuredWebsitesReportComponent,
} from '../../tools/unsecured-websites-report.component';
import { CipherView } from 'jslib/models/view/cipherView';
@Component({
selector: 'app-unsecured-websites-report',
templateUrl: '../../tools/unsecured-websites-report.component.html',
})
export class UnsecuredWebsitesReportComponent extends BaseUnsecuredWebsitesReportComponent {
constructor(cipherService: CipherService, componentFactoryResolver: ComponentFactoryResolver,
messagingService: MessagingService, userService: UserService,
private route: ActivatedRoute) {
super(cipherService, componentFactoryResolver, messagingService, userService);
}
async ngOnInit() {
this.route.parent.parent.params.subscribe(async (params) => {
this.organization = await this.userService.getOrganization(params.organizationId);
await super.ngOnInit();
});
}
getAllCiphers(): Promise<CipherView[]> {
return this.cipherService.getAllFromApiForOrganization(this.organization.id);
}
}

View File

@@ -0,0 +1,39 @@
import {
Component,
ComponentFactoryResolver,
} from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { CipherService } from 'jslib/abstractions/cipher.service';
import { MessagingService } from 'jslib/abstractions/messaging.service';
import { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';
import { UserService } from 'jslib/abstractions/user.service';
import { CipherView } from 'jslib/models/view/cipherView';
import {
WeakPasswordsReportComponent as BaseWeakPasswordsReportComponent,
} from '../../tools/weak-passwords-report.component';
@Component({
selector: 'app-weak-passwords-report',
templateUrl: '../../tools/weak-passwords-report.component.html',
})
export class WeakPasswordsReportComponent extends BaseWeakPasswordsReportComponent {
constructor(cipherService: CipherService, passwordGenerationService: PasswordGenerationService,
componentFactoryResolver: ComponentFactoryResolver, messagingService: MessagingService,
userService: UserService, private route: ActivatedRoute) {
super(cipherService, passwordGenerationService, componentFactoryResolver, messagingService, userService);
}
async ngOnInit() {
this.route.parent.parent.params.subscribe(async (params) => {
this.organization = await this.userService.getOrganization(params.organizationId);
await super.ngOnInit();
});
}
getAllCiphers(): Promise<CipherView[]> {
return this.cipherService.getAllFromApiForOrganization(this.organization.id);
}
}

View File

@@ -45,21 +45,7 @@ export class CiphersComponent extends BaseCiphersComponent {
return;
}
this.accessEvents = this.organization.useEvents;
const ciphers = await this.apiService.getCiphersOrganization(this.organization.id);
if (ciphers != null && ciphers.data != null && ciphers.data.length) {
const decCiphers: CipherView[] = [];
const promises: any[] = [];
ciphers.data.forEach((r) => {
const data = new CipherData(r);
const cipher = new Cipher(data);
promises.push(cipher.decrypt().then((c) => decCiphers.push(c)));
});
await Promise.all(promises);
decCiphers.sort(this.cipherService.getLocaleSortingFunction());
this.allCiphers = decCiphers;
} else {
this.allCiphers = [];
}
this.allCiphers = await this.cipherService.getAllFromApiForOrganization(this.organization.id);
this.applyFilter(filter);
this.loaded = true;
}

View File

@@ -1,4 +1,3 @@
import { Location } from '@angular/common';
import {
ChangeDetectorRef,
Component,
@@ -56,11 +55,10 @@ export class VaultComponent implements OnInit, OnDestroy {
private modal: ModalComponent = null;
constructor(private route: ActivatedRoute, private userService: UserService,
private location: Location, private router: Router,
private router: Router, private changeDetectorRef: ChangeDetectorRef,
private syncService: SyncService, private i18nService: I18nService,
private componentFactoryResolver: ComponentFactoryResolver, private messagingService: MessagingService,
private broadcasterService: BroadcasterService, private ngZone: NgZone,
private changeDetectorRef: ChangeDetectorRef) { }
private broadcasterService: BroadcasterService, private ngZone: NgZone) { }
ngOnInit() {
this.route.parent.params.subscribe(async (params) => {
@@ -295,8 +293,10 @@ export class VaultComponent implements OnInit, OnDestroy {
};
}
const url = this.router.createUrlTree(['organizations', this.organization.id, 'vault'],
{ queryParams: queryParams }).toString();
this.location.go(url);
this.router.navigate([], {
relativeTo: this.route,
queryParams: queryParams,
replaceUrl: true,
});
}
}

View File

@@ -15,6 +15,10 @@
<i class="fa fa-check text-success fa-li"></i>
{{'premiumSignUpTwoStep' | i18n}}
</li>
<li>
<i class="fa fa-check text-success fa-li"></i>
{{'premiumSignUpReports' | i18n}}
</li>
<li>
<i class="fa fa-check text-success fa-li"></i>
{{'premiumSignUpTotp' | i18n}}

View File

@@ -28,7 +28,7 @@
<li *ngFor="let a of breachedAccounts" class="list-group-item min-height-fix">
<div class="row">
<div class="col-2 text-center">
<img [src]="'https://haveibeenpwned.com/Content/Images/PwnedLogos/' + a.name + '.' + a.logoType" alt="" class="img-fluid">
<img [src]="a.logoPath" alt="" class="img-fluid">
</div>
<div class="col-7">
<h3 class="text-lg">{{a.title}}</h3>

View File

@@ -0,0 +1,95 @@
import {
ComponentFactoryResolver,
ViewChild,
ViewContainerRef,
} from '@angular/core';
import { CipherView } from 'jslib/models/view/cipherView';
import { Organization } from 'jslib/models/domain/organization';
import { ModalComponent } from '../modal.component';
import { AddEditComponent as OrgAddEditComponent } from '../organizations/vault/add-edit.component';
import { AddEditComponent } from '../vault/add-edit.component';
import { MessagingService } from 'jslib/abstractions/messaging.service';
import { UserService } from 'jslib/abstractions/user.service';
export class CipherReportComponent {
@ViewChild('cipherAddEdit', { read: ViewContainerRef }) cipherAddEditModalRef: ViewContainerRef;
loading = false;
hasLoaded = false;
ciphers: CipherView[] = [];
organization: Organization;
private modal: ModalComponent = null;
constructor(private componentFactoryResolver: ComponentFactoryResolver, protected userService: UserService,
protected messagingService: MessagingService, public requiresPaid: boolean) { }
async load() {
this.loading = true;
await this.setCiphers();
this.loading = false;
this.hasLoaded = true;
}
selectCipher(cipher: CipherView) {
if (this.modal != null) {
this.modal.close();
}
const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);
this.modal = this.cipherAddEditModalRef.createComponent(factory).instance;
let childComponent: OrgAddEditComponent | AddEditComponent;
if (this.organization != null) {
childComponent = this.modal.show<OrgAddEditComponent>(OrgAddEditComponent, this.cipherAddEditModalRef);
(childComponent as OrgAddEditComponent).organization = this.organization;
} else {
childComponent = this.modal.show<AddEditComponent>(AddEditComponent, this.cipherAddEditModalRef);
}
childComponent.cipherId = cipher == null ? null : cipher.id;
if (this.organization != null) {
childComponent.organizationId = this.organization.id;
}
childComponent.onSavedCipher.subscribe(async (c: CipherView) => {
this.modal.close();
await this.load();
});
childComponent.onDeletedCipher.subscribe(async (c: CipherView) => {
this.modal.close();
await this.load();
});
this.modal.onClosed.subscribe(() => {
this.modal = null;
});
return childComponent;
}
protected async checkAccess(): Promise<boolean> {
if (this.organization != null) {
// TODO: Maybe we want to just make sure they are not on a free plan? Just compare use2fa for now
// since all paid plans include use2fa
if (this.requiresPaid && !this.organization.use2fa) {
this.messagingService.send('upgradeOrganization', { organizationId: this.organization.id });
return false;
}
} else {
const accessPremium = await this.userService.canAccessPremium();
if (this.requiresPaid && !accessPremium) {
this.messagingService.send('premiumRequired');
this.loading = false;
return false;
}
}
return true;
}
protected async setCiphers() {
this.ciphers = [];
}
}

View File

@@ -0,0 +1,40 @@
<div class="page-header">
<h1>{{'exposedPasswordsReport' | i18n}}</h1>
</div>
<p>{{'exposedPasswordsReportDesc' | i18n}}</p>
<button type="button" class="btn btn-primary btn-submit" [disabled]="loading" (click)="load()">
<i class="fa fa-spinner fa-spin" title="{{'loading' | i18n}}"></i>
<span>{{'checkExposedPasswords' | i18n}}</span>
</button>
<div class="mt-4" *ngIf="hasLoaded">
<app-callout type="success" title="{{'goodNews' | i18n}}" *ngIf="!ciphers.length">
{{'noExposedPasswords' | i18n}}
</app-callout>
<ng-container *ngIf="ciphers.length">
<app-callout type="danger" title="{{'exposedPasswordsFound' | i18n}}">
{{'exposedPasswordsFoundDesc' | i18n : (ciphers.length | number)}}
</app-callout>
<table class="table table-hover table-list table-ciphers">
<tbody>
<tr *ngFor="let c of ciphers">
<td class="table-list-icon">
<app-vault-icon [cipher]="c"></app-vault-icon>
</td>
<td class="reduced-lh wrap">
<a href="#" appStopClick (click)="selectCipher(c)" title="{{'editItem' | i18n}}">{{c.name}}</a>
<i class="fa fa-share-alt" *ngIf="!organization && c.organizationId" title="{{'shared' | i18n}}"></i>
<i class="fa fa-paperclip" title="{{'attachments' | i18n}}" *ngIf="c.hasAttachments"></i>
<br>
<small>{{c.subTitle}}</small>
</td>
<td class="text-right">
<span class="badge badge-warning">
{{'exposedXTimes' | i18n : (exposedPasswordMap.get(c.id) | number)}}
</span>
</td>
</tr>
</tbody>
</table>
</ng-container>
</div>
<ng-template #cipherAddEdit></ng-template>

View File

@@ -0,0 +1,64 @@
import {
Component,
ComponentFactoryResolver,
OnInit,
} from '@angular/core';
import { AuditService } from 'jslib/abstractions/audit.service';
import { CipherService } from 'jslib/abstractions/cipher.service';
import { MessagingService } from 'jslib/abstractions/messaging.service';
import { UserService } from 'jslib/abstractions/user.service';
import { CipherView } from 'jslib/models/view/cipherView';
import { CipherType } from 'jslib/enums/cipherType';
import { CipherReportComponent } from './cipher-report.component';
@Component({
selector: 'app-exposed-passwords-report',
templateUrl: 'exposed-passwords-report.component.html',
})
export class ExposedPasswordsReportComponent extends CipherReportComponent implements OnInit {
exposedPasswordMap = new Map<string, number>();
constructor(protected cipherService: CipherService, protected auditService: AuditService,
componentFactoryResolver: ComponentFactoryResolver, messagingService: MessagingService,
userService: UserService) {
super(componentFactoryResolver, userService, messagingService, true);
}
ngOnInit() {
this.checkAccess();
}
async load() {
if (await this.checkAccess()) {
super.load();
}
}
async setCiphers() {
const allCiphers = await this.getAllCiphers();
const exposedPasswordCiphers: CipherView[] = [];
const promises: Array<Promise<void>> = [];
allCiphers.forEach((c) => {
if (c.type !== CipherType.Login || c.login.password == null || c.login.password === '') {
return;
}
const promise = this.auditService.passwordLeaked(c.login.password).then((exposedCount) => {
if (exposedCount > 0) {
exposedPasswordCiphers.push(c);
this.exposedPasswordMap.set(c.id, exposedCount);
}
});
promises.push(promise);
});
await Promise.all(promises);
this.ciphers = exposedPasswordCiphers;
}
protected getAllCiphers(): Promise<CipherView[]> {
return this.cipherService.getAllDecrypted();
}
}

View File

@@ -84,13 +84,17 @@
and save the CSV file. Note that the importer only supports files exported while Enpass is set to the English
language, so adjust your settings accordingly.
</ng-container>
<ng-container *ngIf="format === 'enpassjson'">
Using the Enpass 6 desktop application, click the menu button and navigate to "File" &rarr; "Export".
Select the ".json" file format option and save the JSON file.
</ng-container>
<ng-container *ngIf="format === 'pwsafexml'">
Using the Password Safe desktop application, navigate to "File" &rarr; "Export To" &rarr; "XML format..." and save the XML
file.
</ng-container>
<ng-container *ngIf="format === 'dashlanecsv'">
Using the Dashlane desktop application, navigate to "File" &rarr; "Export" &rarr; "Unsecured archive (readable) in CSV format"
and save the CSV file.
<ng-container *ngIf="format === 'dashlanejson'">
Using the Dashlane desktop application, navigate to "File" &rarr; "Export" &rarr; "Unsecured archive (readable) in JSON format"
and save the JSON file.
</ng-container>
<ng-container *ngIf="format === 'msecurecsv'">
Using the mSecure desktop application, navigate to "File" &rarr; "Export" &rarr; "CSV File..." and save the CSV file.

View File

@@ -0,0 +1,44 @@
<div class="page-header">
<h1>
{{'inactive2faReport' | i18n}}
<small *ngIf="hasLoaded && loading">
<i class="fa fa-spinner fa-spin text-muted" title="{{'loading' | i18n}}"></i>
</small>
</h1>
</div>
<p>{{'inactive2faReportDesc' | i18n}}</p>
<div *ngIf="!hasLoaded && loading">
<i class="fa fa-spinner fa-spin text-muted" title="{{'loading' | i18n}}"></i>
</div>
<div class="mt-4" *ngIf="hasLoaded">
<app-callout type="success" title="{{'goodNews' | i18n}}" *ngIf="!ciphers.length">
{{'noInactive2fa' | i18n}}
</app-callout>
<ng-container *ngIf="ciphers.length">
<app-callout type="danger" title="{{'inactive2faFound' | i18n}}">
{{'inactive2faFoundDesc' | i18n : (ciphers.length | number)}}
</app-callout>
<table class="table table-hover table-list table-ciphers">
<tbody>
<tr *ngFor="let c of ciphers">
<td class="table-list-icon">
<app-vault-icon [cipher]="c"></app-vault-icon>
</td>
<td class="reduced-lh wrap">
<a href="#" appStopClick (click)="selectCipher(c)" title="{{'editItem' | i18n}}">{{c.name}}</a>
<i class="fa fa-share-alt" *ngIf="!organization && c.organizationId" title="{{'shared' | i18n}}"></i>
<i class="fa fa-paperclip" title="{{'attachments' | i18n}}" *ngIf="c.hasAttachments"></i>
<br>
<small>{{c.subTitle}}</small>
</td>
<td class="text-right">
<a class="badge badge-primary" href="{{cipherDocs.get(c.id)}}" target="_blank" rel="noopener"
*ngIf="cipherDocs.has(c.id)">
{{'instructions' | i18n}}</a>
</td>
</tr>
</tbody>
</table>
</ng-container>
</div>
<ng-template #cipherAddEdit></ng-template>

View File

@@ -0,0 +1,101 @@
import {
Component,
ComponentFactoryResolver,
OnInit,
} from '@angular/core';
import { CipherService } from 'jslib/abstractions/cipher.service';
import { MessagingService } from 'jslib/abstractions/messaging.service';
import { UserService } from 'jslib/abstractions/user.service';
import { CipherView } from 'jslib/models/view/cipherView';
import { CipherType } from 'jslib/enums/cipherType';
import { Utils } from 'jslib/misc/utils';
import { CipherReportComponent } from './cipher-report.component';
@Component({
selector: 'app-inactive-two-factor-report',
templateUrl: 'inactive-two-factor-report.component.html',
})
export class InactiveTwoFactorReportComponent extends CipherReportComponent implements OnInit {
services = new Map<string, string>();
cipherDocs = new Map<string, string>();
constructor(protected cipherService: CipherService, componentFactoryResolver: ComponentFactoryResolver,
messagingService: MessagingService, userService: UserService) {
super(componentFactoryResolver, userService, messagingService, true);
}
async ngOnInit() {
if (await this.checkAccess()) {
await super.load();
}
}
async setCiphers() {
try {
await this.load2fa();
} catch { }
if (this.services.size > 0) {
const allCiphers = await this.getAllCiphers();
const inactive2faCiphers: CipherView[] = [];
const promises: Array<Promise<void>> = [];
const docs = new Map<string, string>();
allCiphers.forEach((c) => {
if (c.type !== CipherType.Login || (c.login.totp != null && c.login.totp !== '') || !c.login.hasUris) {
return;
}
for (let i = 0; i < c.login.uris.length; i++) {
const u = c.login.uris[i];
if (u.uri != null && u.uri !== '') {
const hostname = Utils.getHostname(u.uri);
if (hostname != null && this.services.has(hostname)) {
if (this.services.get(hostname) != null) {
docs.set(c.id, this.services.get(hostname));
}
inactive2faCiphers.push(c);
break;
}
}
}
});
await Promise.all(promises);
this.ciphers = inactive2faCiphers;
this.cipherDocs = docs;
}
}
protected getAllCiphers(): Promise<CipherView[]> {
return this.cipherService.getAllDecrypted();
}
private async load2fa() {
if (this.services.size > 0) {
return;
}
const response = await fetch(new Request('https://twofactorauth.org/data.json'));
if (response.status !== 200) {
throw new Error();
}
const responseJson = await response.json();
for (const categoryName in responseJson) {
if (responseJson.hasOwnProperty(categoryName)) {
const category = responseJson[categoryName];
for (const serviceName in category) {
if (category.hasOwnProperty(serviceName)) {
const service = category[serviceName];
if (service.tfa && service.url != null) {
const hostname = Utils.getHostname(service.url);
if (hostname != null) {
this.services.set(hostname, service.doc);
}
}
}
}
}
}
}
}

View File

@@ -10,7 +10,7 @@
<ul class="list-group list-group-flush" *ngIf="history.length">
<li class="list-group-item d-flex" *ngFor="let h of history">
<div>
<div class="password">{{h.password}}</div>
<div class="text-monospace password-wrapper" [innerHTML]="h.password | colorPassword"></div>
<small class="text-muted">{{h.date | date:'medium'}}</small>
</div>
<div class="ml-auto">

View File

@@ -2,9 +2,7 @@
<h1>{{'passwordGenerator' | i18n}}</h1>
</div>
<div class="card card-password bg-light my-4">
<div class="card-body">
{{password}}
</div>
<div class="card-body" [innerHTML]="password | colorPassword"></div>
</div>
<div class="form-group">
<div class="form-check form-check-inline">

View File

@@ -0,0 +1,44 @@
<div class="page-header">
<h1>
{{'reusedPasswordsReport' | i18n}}
<small *ngIf="hasLoaded && loading">
<i class="fa fa-spinner fa-spin text-muted" title="{{'loading' | i18n}}"></i>
</small>
</h1>
</div>
<p>{{'reusedPasswordsReportDesc' | i18n}}</p>
<div *ngIf="!hasLoaded && loading">
<i class="fa fa-spinner fa-spin text-muted" title="{{'loading' | i18n}}"></i>
</div>
<div class="mt-4" *ngIf="hasLoaded">
<app-callout type="success" title="{{'goodNews' | i18n}}" *ngIf="!ciphers.length">
{{'noReusedPasswords' | i18n}}
</app-callout>
<ng-container *ngIf="ciphers.length">
<app-callout type="danger" title="{{'reusedPasswordsFound' | i18n}}">
{{'reusedPasswordsFoundDesc' | i18n : (ciphers.length | number)}}
</app-callout>
<table class="table table-hover table-list table-ciphers">
<tbody>
<tr *ngFor="let c of ciphers">
<td class="table-list-icon">
<app-vault-icon [cipher]="c"></app-vault-icon>
</td>
<td class="reduced-lh wrap">
<a href="#" appStopClick (click)="selectCipher(c)" title="{{'editItem' | i18n}}">{{c.name}}</a>
<i class="fa fa-share-alt" *ngIf="!organization && c.organizationId" title="{{'shared' | i18n}}"></i>
<i class="fa fa-paperclip" title="{{'attachments' | i18n}}" *ngIf="c.hasAttachments"></i>
<br>
<small>{{c.subTitle}}</small>
</td>
<td class="text-right">
<span class="badge badge-warning">
{{'reusedXTimes' | i18n : passwordUseMap.get(c.login.password)}}
</span>
</td>
</tr>
</tbody>
</table>
</ng-container>
</div>
<ng-template #cipherAddEdit></ng-template>

View File

@@ -0,0 +1,58 @@
import {
Component,
ComponentFactoryResolver,
OnInit,
} from '@angular/core';
import { CipherService } from 'jslib/abstractions/cipher.service';
import { MessagingService } from 'jslib/abstractions/messaging.service';
import { UserService } from 'jslib/abstractions/user.service';
import { CipherView } from 'jslib/models/view/cipherView';
import { CipherType } from 'jslib/enums/cipherType';
import { CipherReportComponent } from './cipher-report.component';
@Component({
selector: 'app-reused-passwords-report',
templateUrl: 'reused-passwords-report.component.html',
})
export class ReusedPasswordsReportComponent extends CipherReportComponent implements OnInit {
passwordUseMap: Map<string, number>;
constructor(protected cipherService: CipherService, componentFactoryResolver: ComponentFactoryResolver,
messagingService: MessagingService, userService: UserService) {
super(componentFactoryResolver, userService, messagingService, true);
}
async ngOnInit() {
if (await this.checkAccess()) {
await super.load();
}
}
async setCiphers() {
const allCiphers = await this.getAllCiphers();
const ciphersWithPasswords: CipherView[] = [];
this.passwordUseMap = new Map<string, number>();
allCiphers.forEach((c) => {
if (c.type !== CipherType.Login || c.login.password == null || c.login.password === '') {
return;
}
ciphersWithPasswords.push(c);
if (this.passwordUseMap.has(c.login.password)) {
this.passwordUseMap.set(c.login.password, this.passwordUseMap.get(c.login.password) + 1);
} else {
this.passwordUseMap.set(c.login.password, 1);
}
});
const reusedPasswordCiphers = ciphersWithPasswords.filter((c) =>
this.passwordUseMap.has(c.login.password) && this.passwordUseMap.get(c.login.password) > 1);
this.ciphers = reusedPasswordCiphers;
}
protected getAllCiphers(): Promise<CipherView[]> {
return this.cipherService.getAllDecrypted();
}
}

View File

@@ -16,10 +16,37 @@
</div>
</div>
<div class="card">
<div class="card-header">{{'reports' | i18n}}</div>
<div class="card-header d-flex">
{{'reports' | i18n}}
<div class="ml-auto">
<a href="#" appStopClick class="badge badge-primary" *ngIf="!canAccessPremium" (click)="premiumRequired()">
{{'premium' | i18n}}
</a>
</div>
</div>
<div class="list-group list-group-flush">
<a routerLink="breach-report" class="list-group-item" routerLinkActive="active">
<a routerLink="exposed-passwords-report" class="list-group-item" routerLinkActive="active">
{{'exposedPasswordsReport' | i18n}}
</a>
<a routerLink="reused-passwords-report" class="list-group-item" routerLinkActive="active">
{{'reusedPasswordsReport' | i18n}}
</a>
<a routerLink="weak-passwords-report" class="list-group-item" routerLinkActive="active">
{{'weakPasswordsReport' | i18n}}
</a>
<a routerLink="unsecured-websites-report" class="list-group-item" routerLinkActive="active">
{{'unsecuredWebsitesReport' | i18n}}
</a>
<a routerLink="inactive-two-factor-report" class="list-group-item" routerLinkActive="active">
{{'inactive2faReport' | i18n}}
</a>
<a routerLink="breach-report" class="list-group-item d-flex" routerLinkActive="active">
{{'dataBreachReport' | i18n}}
<div class="ml-auto">
<span class="badge badge-success" *ngIf="!canAccessPremium">
{{'free' | i18n | uppercase}}
</span>
</div>
</a>
</div>
</div>

View File

@@ -1,7 +1,28 @@
import { Component } from '@angular/core';
import {
Component,
OnInit,
} from '@angular/core';
import { MessagingService } from 'jslib/abstractions/messaging.service';
import { UserService } from 'jslib/abstractions/user.service';
@Component({
selector: 'app-tools',
templateUrl: 'tools.component.html',
})
export class ToolsComponent { }
export class ToolsComponent implements OnInit {
canAccessPremium = false;
constructor(private userService: UserService, private messagingService: MessagingService) { }
async ngOnInit() {
this.canAccessPremium = await this.userService.canAccessPremium();
}
premiumRequired() {
if (!this.canAccessPremium) {
this.messagingService.send('premiumRequired');
return;
}
}
}

View File

@@ -0,0 +1,39 @@
<div class="page-header">
<h1>
{{'unsecuredWebsitesReport' | i18n}}
<small *ngIf="hasLoaded && loading">
<i class="fa fa-spinner fa-spin text-muted" title="{{'loading' | i18n}}"></i>
</small>
</h1>
</div>
<p>{{'unsecuredWebsitesReportDesc' | i18n}}</p>
<div *ngIf="!hasLoaded && loading">
<i class="fa fa-spinner fa-spin text-muted" title="{{'loading' | i18n}}"></i>
</div>
<div class="mt-4" *ngIf="hasLoaded">
<app-callout type="success" title="{{'goodNews' | i18n}}" *ngIf="!ciphers.length">
{{'noUnsecuredWebsites' | i18n}}
</app-callout>
<ng-container *ngIf="ciphers.length">
<app-callout type="danger" title="{{'unsecuredWebsitesFound' | i18n}}">
{{'unsecuredWebsitesFoundDesc' | i18n : (ciphers.length | number)}}
</app-callout>
<table class="table table-hover table-list table-ciphers">
<tbody>
<tr *ngFor="let c of ciphers">
<td class="table-list-icon">
<app-vault-icon [cipher]="c"></app-vault-icon>
</td>
<td class="reduced-lh wrap">
<a href="#" appStopClick (click)="selectCipher(c)" title="{{'editItem' | i18n}}">{{c.name}}</a>
<i class="fa fa-share-alt" *ngIf="!organization && c.organizationId" title="{{'shared' | i18n}}"></i>
<i class="fa fa-paperclip" title="{{'attachments' | i18n}}" *ngIf="c.hasAttachments"></i>
<br>
<small>{{c.subTitle}}</small>
</td>
</tr>
</tbody>
</table>
</ng-container>
</div>
<ng-template #cipherAddEdit></ng-template>

View File

@@ -0,0 +1,47 @@
import {
Component,
ComponentFactoryResolver,
OnInit,
} from '@angular/core';
import { CipherService } from 'jslib/abstractions/cipher.service';
import { MessagingService } from 'jslib/abstractions/messaging.service';
import { UserService } from 'jslib/abstractions/user.service';
import { CipherType } from 'jslib/enums/cipherType';
import { CipherView } from 'jslib/models/view/cipherView';
import { CipherReportComponent } from './cipher-report.component';
@Component({
selector: 'app-unsecured-websites-report',
templateUrl: 'unsecured-websites-report.component.html',
})
export class UnsecuredWebsitesReportComponent extends CipherReportComponent implements OnInit {
constructor(protected cipherService: CipherService, componentFactoryResolver: ComponentFactoryResolver,
messagingService: MessagingService, userService: UserService) {
super(componentFactoryResolver, userService, messagingService, true);
}
async ngOnInit() {
if (await this.checkAccess()) {
await super.load();
}
}
async setCiphers() {
const allCiphers = await this.getAllCiphers();
const unsecuredCiphers = allCiphers.filter((c) => {
if (c.type !== CipherType.Login || !c.login.hasUris) {
return false;
}
return c.login.uris.find((u) => u.uri != null && u.uri.indexOf('http://') === 0) != null;
});
this.ciphers = unsecuredCiphers;
}
protected getAllCiphers(): Promise<CipherView[]> {
return this.cipherService.getAllDecrypted();
}
}

View File

@@ -0,0 +1,44 @@
<div class="page-header">
<h1>
{{'weakPasswordsReport' | i18n}}
<small *ngIf="hasLoaded && loading">
<i class="fa fa-spinner fa-spin text-muted" title="{{'loading' | i18n}}"></i>
</small>
</h1>
</div>
<p>{{'weakPasswordsReportDesc' | i18n}}</p>
<div *ngIf="!hasLoaded && loading">
<i class="fa fa-spinner fa-spin text-muted" title="{{'loading' | i18n}}"></i>
</div>
<div class="mt-4" *ngIf="hasLoaded">
<app-callout type="success" title="{{'goodNews' | i18n}}" *ngIf="!ciphers.length">
{{'noWeakPasswords' | i18n}}
</app-callout>
<ng-container *ngIf="ciphers.length">
<app-callout type="danger" title="{{'weakPasswordsFound' | i18n}}">
{{'weakPasswordsFoundDesc' | i18n : (ciphers.length | number)}}
</app-callout>
<table class="table table-hover table-list table-ciphers">
<tbody>
<tr *ngFor="let c of ciphers">
<td class="table-list-icon">
<app-vault-icon [cipher]="c"></app-vault-icon>
</td>
<td class="reduced-lh wrap">
<a href="#" appStopClick (click)="selectCipher(c)" title="{{'editItem' | i18n}}">{{c.name}}</a>
<i class="fa fa-share-alt" *ngIf="!organization && c.organizationId" title="{{'shared' | i18n}}"></i>
<i class="fa fa-paperclip" title="{{'attachments' | i18n}}" *ngIf="c.hasAttachments"></i>
<br>
<small>{{c.subTitle}}</small>
</td>
<td class="text-right">
<span class="badge badge-{{passwordStrengthMap.get(c.id)[1]}}">
{{passwordStrengthMap.get(c.id)[0] | i18n}}
</span>
</td>
</tr>
</tbody>
</table>
</ng-container>
</div>
<ng-template #cipherAddEdit></ng-template>

View File

@@ -0,0 +1,90 @@
import {
Component,
ComponentFactoryResolver,
OnInit,
} from '@angular/core';
import { CipherService } from 'jslib/abstractions/cipher.service';
import { MessagingService } from 'jslib/abstractions/messaging.service';
import { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';
import { UserService } from 'jslib/abstractions/user.service';
import { CipherView } from 'jslib/models/view/cipherView';
import { CipherType } from 'jslib/enums/cipherType';
import { CipherReportComponent } from './cipher-report.component';
@Component({
selector: 'app-weak-passwords-report',
templateUrl: 'weak-passwords-report.component.html',
})
export class WeakPasswordsReportComponent extends CipherReportComponent implements OnInit {
passwordStrengthMap = new Map<string, [string, string]>();
private passwordStrengthCache = new Map<string, number>();
constructor(protected cipherService: CipherService, protected passwordGenerationService: PasswordGenerationService,
componentFactoryResolver: ComponentFactoryResolver, messagingService: MessagingService,
userService: UserService) {
super(componentFactoryResolver, userService, messagingService, true);
}
async ngOnInit() {
if (await this.checkAccess()) {
await super.load();
}
}
async setCiphers() {
const allCiphers = await this.getAllCiphers();
const weakPasswordCiphers: CipherView[] = [];
allCiphers.forEach((c) => {
if (c.type !== CipherType.Login || c.login.password == null || c.login.password === '') {
return;
}
const hasUsername = c.login.username != null && c.login.username.trim() !== '';
const cacheKey = c.login.password + '_____' + (hasUsername ? c.login.username : '');
if (!this.passwordStrengthCache.has(cacheKey)) {
let userInput: string[] = [];
if (hasUsername) {
const atPosition = c.login.username.indexOf('@');
if (atPosition > -1) {
userInput = userInput.concat(
c.login.username.substr(0, atPosition).trim().toLowerCase().split(/[^A-Za-z0-9]/))
.filter((i) => i.length >= 3);
} else {
userInput = c.login.username.trim().toLowerCase().split(/[^A-Za-z0-9]/)
.filter((i) => i.length >= 3);
}
}
const result = this.passwordGenerationService.passwordStrength(c.login.password,
userInput.length > 0 ? userInput : null);
this.passwordStrengthCache.set(cacheKey, result.score);
}
const score = this.passwordStrengthCache.get(cacheKey);
if (score != null && score <= 3) {
this.passwordStrengthMap.set(c.id, this.scoreKey(score));
weakPasswordCiphers.push(c);
}
});
this.ciphers = weakPasswordCiphers;
}
protected getAllCiphers(): Promise<CipherView[]> {
return this.cipherService.getAllDecrypted();
}
private scoreKey(score: number): [string, string] {
switch (score) {
case 4:
return ['strong', 'success'];
case 3:
return ['good', 'primary'];
case 2:
return ['weak', 'warning'];
default:
return ['veryWeak', 'danger'];
}
}
}

View File

@@ -97,14 +97,14 @@ export class AddEditComponent extends BaseAddEditComponent {
return confirmed;
}
async premiumRequired() {
premiumRequired() {
if (!this.canAccessPremium) {
this.messagingService.send('premiumRequired');
return;
}
}
async upgradeOrganization() {
upgradeOrganization() {
this.messagingService.send('upgradeOrganization', { organizationId: this.cipher.organizationId });
}

View File

@@ -20,8 +20,6 @@ import { CipherType } from 'jslib/enums/cipherType';
import { CipherView } from 'jslib/models/view/cipherView';
import { SearchCiphersPipe } from 'jslib/angular/pipes/search-ciphers.pipe';
const MaxCheckedCount = 500;
@Component({
@@ -37,13 +35,10 @@ export class CiphersComponent extends BaseCiphersComponent implements OnDestroy
cipherType = CipherType;
actionPromise: Promise<any>;
private searchPipe: SearchCiphersPipe;
constructor(searchService: SearchService, protected analytics: Angulartics2,
protected toasterService: ToasterService, protected i18nService: I18nService,
protected platformUtilsService: PlatformUtilsService, protected cipherService: CipherService) {
super(searchService);
this.searchPipe = new SearchCiphersPipe(platformUtilsService);
}
ngOnDestroy() {
@@ -58,14 +53,9 @@ export class CiphersComponent extends BaseCiphersComponent implements OnDestroy
if (select) {
this.selectAll(false);
}
let filteredCiphers = this.ciphers;
if (select) {
filteredCiphers = this.searchPipe.transform(this.ciphers, this.searchText);
}
const selectCount = select && filteredCiphers.length > MaxCheckedCount ?
MaxCheckedCount : filteredCiphers.length;
const selectCount = select && this.ciphers.length > MaxCheckedCount ? MaxCheckedCount : this.ciphers.length;
for (let i = 0; i < selectCount; i++) {
this.checkCipher(filteredCiphers[i], select);
this.checkCipher(this.ciphers[i], select);
}
}

View File

@@ -1,6 +1,9 @@
<div class="card vault-filters">
<div class="card-header">
<div class="card-header d-flex">
{{'filters' | i18n}}
<a class="ml-auto" href="https://help.bitwarden.com/article/searching-vault/" target="_blank" rel="noopener" title="{{'learnMore' | i18n}}">
<i class="fa fa-question-circle-o"></i>
</a>
</div>
<div class="card-body">
<input type="search" placeholder="{{searchPlaceholder || ('searchVault' | i18n)}}" id="search" class="form-control"

View File

@@ -1,4 +1,3 @@
import { Location } from '@angular/common';
import {
ChangeDetectorRef,
Component,
@@ -77,13 +76,12 @@ export class VaultComponent implements OnInit, OnDestroy {
private modal: ModalComponent = null;
constructor(private syncService: SyncService, private route: ActivatedRoute,
private router: Router, private location: Location,
private router: Router, private changeDetectorRef: ChangeDetectorRef,
private i18nService: I18nService, private componentFactoryResolver: ComponentFactoryResolver,
private tokenService: TokenService, private cryptoService: CryptoService,
private messagingService: MessagingService, private userService: UserService,
private platformUtilsService: PlatformUtilsService, private toasterService: ToasterService,
private broadcasterService: BroadcasterService, private ngZone: NgZone,
private changeDetectorRef: ChangeDetectorRef) { }
private broadcasterService: BroadcasterService, private ngZone: NgZone) { }
async ngOnInit() {
this.showVerifyEmail = !(await this.tokenService.getEmailVerified());
@@ -480,7 +478,10 @@ export class VaultComponent implements OnInit, OnDestroy {
};
}
const url = this.router.createUrlTree(['vault'], { queryParams: queryParams }).toString();
this.location.go(url);
this.router.navigate([], {
relativeTo: this.route,
queryParams: queryParams,
replaceUrl: true,
});
}
}

View File

@@ -503,7 +503,7 @@
"message": "Ne"
},
"loginOrCreateNewAccount": {
"message": "Pro přístup do vašeho bezpečného trezoru se přihlašte nebo si vytvořte nový účet."
"message": "Pro přístup do vašeho bezpečného trezoru se přihlaste nebo si vytvořte nový účet."
},
"createAccount": {
"message": "Vytvořit účet"
@@ -848,7 +848,7 @@
"message": "Přihlaste se prosím znovu."
},
"logBackInOthersToo": {
"message": "Přihlaste se prosím znovu. Používáte-li jiné aplikace Bitwarden, přihlašte se znovu i v nich."
"message": "Přihlaste se prosím znovu. Používáte-li jiné Bitwarden aplikace, přihlaste se znovu i v nich."
},
"changeMasterPassword": {
"message": "Změnit hlavní heslo"
@@ -1284,6 +1284,135 @@
"reports": {
"message": "Hlášení"
},
"unsecuredWebsitesReport": {
"message": "Unsecured Websites Report"
},
"unsecuredWebsitesReportDesc": {
"message": "Using unsecured websites with the http:\/\/ scheme can be dangerous. If the website allows, you should always access it using the https:\/\/ scheme so that your connection is encrypted."
},
"unsecuredWebsitesFound": {
"message": "Unsecured Websites Found"
},
"unsecuredWebsitesFoundDesc": {
"message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:\/\/ if the website allows it.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noUnsecuredWebsites": {
"message": "No items in your vault have unsecured URIs."
},
"inactive2faReport": {
"message": "Inactive 2FA Report"
},
"inactive2faReportDesc": {
"message": "Two-factor authentication (2FA) is an important security setting that helps secure your accounts. If the website offers it, you should always enable two-factor authentication."
},
"inactive2faFound": {
"message": "Logins Without 2FA Found"
},
"inactive2faFoundDesc": {
"message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to twofactorauth.org). To further protect these accounts, you should enable two-factor authentication.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noInactive2fa": {
"message": "No websites were found in your vault with a missing two-factor authentication configuration."
},
"instructions": {
"message": "Instructions"
},
"exposedPasswordsReport": {
"message": "Exposed Passwords Report"
},
"exposedPasswordsReportDesc": {
"message": "Exposed passwords are passwords have been uncovered in known data breaches that were released publicly or sold on the dark web by hackers."
},
"exposedPasswordsFound": {
"message": "Exposed Passwords Found"
},
"exposedPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noExposedPasswords": {
"message": "No items in your vault have passwords that have been exposed in known data breaches."
},
"checkExposedPasswords": {
"message": "Check Exposed Passwords"
},
"exposedXTimes": {
"message": "Exposed $COUNT$ time(s)",
"placeholders": {
"count": {
"content": "$1",
"example": "52"
}
}
},
"weakPasswordsReport": {
"message": "Weak Passwords Report"
},
"weakPasswordsReportDesc": {
"message": "Weak passwords can easily be guessed by hackers and automated tools that are used to crack passwords. The Bitwarden password generator can help you create strong passwords."
},
"weakPasswordsFound": {
"message": "Weak Passwords Found"
},
"weakPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noWeakPasswords": {
"message": "No items in your vault have weak passwords."
},
"reusedPasswordsReport": {
"message": "Reused Passwords Report"
},
"reusedPasswordsReportDesc": {
"message": "If a service that you use is compromised, reusing the same password elsewhere can allow hackers to easily gain access to more of your online accounts. You should use a unique password for every account or service."
},
"reusedPasswordsFound": {
"message": "Reused Passwords Found"
},
"reusedPasswordsFoundDesc": {
"message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noReusedPasswords": {
"message": "No logins in your vault have passwords that are being reused."
},
"reusedXTimes": {
"message": "Reused $COUNT$ times",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"dataBreachReport": {
"message": "Hlášení o úniku dat"
},
@@ -1362,6 +1491,9 @@
"premiumSignUpTwoStep": {
"message": "Další možnosti dvoufázového přihlášení, jako je například YubiKey, FIDO U2F a Duo."
},
"premiumSignUpReports": {
"message": "Password hygiene, account health, and data breach reports to keep your vault safe."
},
"premiumSignUpTotp": {
"message": "Generátor TOTP ověřovacího kódu (2FA) pro přihlášení do trezoru."
},
@@ -1926,7 +2058,7 @@
"message": "Administrátor"
},
"adminDesc": {
"message": " Admins can access and manage all items, collections and users in your organization."
"message": "Administrátoři mohou prohlížet a spravovat všechny položky, sbírky a uživatele ve vaší organizaci."
},
"user": {
"message": "Uživatel"
@@ -2259,10 +2391,10 @@
"message": "Pozvánka byla přijata."
},
"inviteAcceptedDesc": {
"message": "You can access this organization once an administrator confirms your membership. We'll send you an email when that happens."
"message": "K této organizaci získáte přístup jakmile vám administrátor udělí členství. Až se tak stane, pošleme vám e-mail."
},
"inviteAcceptFailed": {
"message": "Unable to accept invitation. Ask an organization admin to send a new invitation."
"message": "Pozvánku nelze přijmout. Požádejte administrátora organizace o novou pozvánku."
},
"rememberEmail": {
"message": "Pamatovat si e-mail"
@@ -2531,21 +2663,25 @@
},
"strong": {
"message": "Silné",
"description": "ex. A strong password. Scale: Weak -> Good -> Strong"
"description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"good": {
"message": "Dobré",
"description": "ex. A good password. Scale: Weak -> Good -> Strong"
"description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weak": {
"message": "Slabé",
"description": "ex. A weak password. Scale: Weak -> Good -> Strong"
"description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"veryWeak": {
"message": "Very Weak",
"description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weakMasterPassword": {
"message": "Slabé hlavní heslo"
},
"weakMasterPasswordDesc": {
"message": "Hlavní heslo, které jste si vybrali, je slabé. Pro správnou ochranu účtu Bitwarden byste měli použít silné hlavní heslo (nebo heslovou frázi). Opravdu chcete toto heslo použít?"
"message": "Zvolené hlavní heslo je slabé. Pro správnou ochranu účtu Bitwarden byste měli použít silné hlavní heslo (nebo heslovou frázi). Opravdu chcete toto heslo použít?"
},
"rotateAccountEncKey": {
"message": "Also rotate my account's encryption key"
@@ -2580,5 +2716,9 @@
"dontAskFingerprintAgain": {
"message": "Don't ask to verify fingerprint phrase again",
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"free": {
"message": "Free",
"description": "Free, as in 'Free beer'"
}
}

View File

@@ -772,7 +772,7 @@
"message": "Advarsel"
},
"exportWarning": {
"message": "Denne eksport indeholder dine ikke-krypterede data i .csv-format. Du bør ikke gemme eller sende den over usikre kanaler (f.eks. e-mail). Slet den umiddelbart efter at du er færdig med at bruge den."
"message": "Denne eksport indeholder dine ikke-krypterede data i .csv-format. Du bør ikke gemme eller sende den over usikre kanaler (f.eks. email). Slet den umiddelbart efter at du er færdig med at bruge den."
},
"exportMasterPassword": {
"message": "Indtast din hovedadgangskode for at eksportere dine data fra boksen."
@@ -1284,6 +1284,135 @@
"reports": {
"message": "Rapporter"
},
"unsecuredWebsitesReport": {
"message": "Unsecured Websites Report"
},
"unsecuredWebsitesReportDesc": {
"message": "Using unsecured websites with the http:\/\/ scheme can be dangerous. If the website allows, you should always access it using the https:\/\/ scheme so that your connection is encrypted."
},
"unsecuredWebsitesFound": {
"message": "Unsecured Websites Found"
},
"unsecuredWebsitesFoundDesc": {
"message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:\/\/ if the website allows it.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noUnsecuredWebsites": {
"message": "No items in your vault have unsecured URIs."
},
"inactive2faReport": {
"message": "Inactive 2FA Report"
},
"inactive2faReportDesc": {
"message": "Two-factor authentication (2FA) is an important security setting that helps secure your accounts. If the website offers it, you should always enable two-factor authentication."
},
"inactive2faFound": {
"message": "Logins Without 2FA Found"
},
"inactive2faFoundDesc": {
"message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to twofactorauth.org). To further protect these accounts, you should enable two-factor authentication.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noInactive2fa": {
"message": "No websites were found in your vault with a missing two-factor authentication configuration."
},
"instructions": {
"message": "Instructions"
},
"exposedPasswordsReport": {
"message": "Exposed Passwords Report"
},
"exposedPasswordsReportDesc": {
"message": "Exposed passwords are passwords have been uncovered in known data breaches that were released publicly or sold on the dark web by hackers."
},
"exposedPasswordsFound": {
"message": "Exposed Passwords Found"
},
"exposedPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noExposedPasswords": {
"message": "No items in your vault have passwords that have been exposed in known data breaches."
},
"checkExposedPasswords": {
"message": "Check Exposed Passwords"
},
"exposedXTimes": {
"message": "Exposed $COUNT$ time(s)",
"placeholders": {
"count": {
"content": "$1",
"example": "52"
}
}
},
"weakPasswordsReport": {
"message": "Weak Passwords Report"
},
"weakPasswordsReportDesc": {
"message": "Weak passwords can easily be guessed by hackers and automated tools that are used to crack passwords. The Bitwarden password generator can help you create strong passwords."
},
"weakPasswordsFound": {
"message": "Weak Passwords Found"
},
"weakPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noWeakPasswords": {
"message": "No items in your vault have weak passwords."
},
"reusedPasswordsReport": {
"message": "Reused Passwords Report"
},
"reusedPasswordsReportDesc": {
"message": "If a service that you use is compromised, reusing the same password elsewhere can allow hackers to easily gain access to more of your online accounts. You should use a unique password for every account or service."
},
"reusedPasswordsFound": {
"message": "Reused Passwords Found"
},
"reusedPasswordsFoundDesc": {
"message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noReusedPasswords": {
"message": "No logins in your vault have passwords that are being reused."
},
"reusedXTimes": {
"message": "Reused $COUNT$ times",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"dataBreachReport": {
"message": "Datalæk rapport"
},
@@ -1362,6 +1491,9 @@
"premiumSignUpTwoStep": {
"message": "Yderligere to-trins-loginmuligheder såsom YubiKey, FIDO U2F og Duo."
},
"premiumSignUpReports": {
"message": "Password hygiene, account health, and data breach reports to keep your vault safe."
},
"premiumSignUpTotp": {
"message": "TOTP verifikationskode (2FA) generator til logins i din boks."
},
@@ -2531,15 +2663,19 @@
},
"strong": {
"message": "Stærk",
"description": "ex. A strong password. Scale: Weak -> Good -> Strong"
"description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"good": {
"message": "God",
"description": "ex. A good password. Scale: Weak -> Good -> Strong"
"description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weak": {
"message": "Svag",
"description": "ex. A weak password. Scale: Weak -> Good -> Strong"
"description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"veryWeak": {
"message": "Very Weak",
"description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weakMasterPassword": {
"message": "Svag hovedadgangskode"
@@ -2580,5 +2716,9 @@
"dontAskFingerprintAgain": {
"message": "Spørg ikke om at bekræfte fingeraftrykssætning igen",
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"free": {
"message": "Free",
"description": "Free, as in 'Free beer'"
}
}

View File

@@ -208,7 +208,7 @@
"message": "Sichtbarkeit umschalten"
},
"toggleCollapse": {
"message": "Toggle Collapse",
"message": "Sammlung ein- \/ ausklappen",
"description": "Toggling an expand\/collapse state."
},
"generatePassword": {
@@ -746,7 +746,7 @@
}
},
"shareSelectedItemsCountDesc": {
"message": "You have selected $COUNT$ item(s). $SHAREABLE_COUNT$ items are sharable, $NONSHAREABLE_COUNT$ are not.",
"message": "Sie haben $COUNT$ Einträge ausgewählt, $SHAREABLE_COUNT$ davon können geteilt werden, $NONSHAREABLE_COUNT$ nicht.",
"placeholders": {
"count": {
"content": "$1",
@@ -772,7 +772,7 @@
"message": "Warnung"
},
"exportWarning": {
"message": "Dieser Export enthält Ihre unverschlüsselten Daten im CSV-Format. Sie sollten sie nicht speichern oder über unsichere Kanäle (z. B. E-Mail) senden. Löschen Sie sie sofort nach der Verwendung."
"message": "Dieser Export enthält deine unverschlüsselten Daten im CSV-Format. Du solltest sie nicht speichern oder über unsichere Kanäle (z. B. E-Mail) senden. Lösche sie sofort nach ihrer Verwendung."
},
"exportMasterPassword": {
"message": "Geben Sie das Master-Passwort ein, um Ihre Tresordaten zu exportieren."
@@ -1284,6 +1284,135 @@
"reports": {
"message": "Berichte"
},
"unsecuredWebsitesReport": {
"message": "Unsecured Websites Report"
},
"unsecuredWebsitesReportDesc": {
"message": "Using unsecured websites with the http:\/\/ scheme can be dangerous. If the website allows, you should always access it using the https:\/\/ scheme so that your connection is encrypted."
},
"unsecuredWebsitesFound": {
"message": "Unsecured Websites Found"
},
"unsecuredWebsitesFoundDesc": {
"message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:\/\/ if the website allows it.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noUnsecuredWebsites": {
"message": "No items in your vault have unsecured URIs."
},
"inactive2faReport": {
"message": "Inactive 2FA Report"
},
"inactive2faReportDesc": {
"message": "Two-factor authentication (2FA) is an important security setting that helps secure your accounts. If the website offers it, you should always enable two-factor authentication."
},
"inactive2faFound": {
"message": "Logins Without 2FA Found"
},
"inactive2faFoundDesc": {
"message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to twofactorauth.org). To further protect these accounts, you should enable two-factor authentication.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noInactive2fa": {
"message": "No websites were found in your vault with a missing two-factor authentication configuration."
},
"instructions": {
"message": "Instructions"
},
"exposedPasswordsReport": {
"message": "Exposed Passwords Report"
},
"exposedPasswordsReportDesc": {
"message": "Exposed passwords are passwords have been uncovered in known data breaches that were released publicly or sold on the dark web by hackers."
},
"exposedPasswordsFound": {
"message": "Exposed Passwords Found"
},
"exposedPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noExposedPasswords": {
"message": "No items in your vault have passwords that have been exposed in known data breaches."
},
"checkExposedPasswords": {
"message": "Check Exposed Passwords"
},
"exposedXTimes": {
"message": "Exposed $COUNT$ time(s)",
"placeholders": {
"count": {
"content": "$1",
"example": "52"
}
}
},
"weakPasswordsReport": {
"message": "Weak Passwords Report"
},
"weakPasswordsReportDesc": {
"message": "Weak passwords can easily be guessed by hackers and automated tools that are used to crack passwords. The Bitwarden password generator can help you create strong passwords."
},
"weakPasswordsFound": {
"message": "Weak Passwords Found"
},
"weakPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noWeakPasswords": {
"message": "No items in your vault have weak passwords."
},
"reusedPasswordsReport": {
"message": "Reused Passwords Report"
},
"reusedPasswordsReportDesc": {
"message": "If a service that you use is compromised, reusing the same password elsewhere can allow hackers to easily gain access to more of your online accounts. You should use a unique password for every account or service."
},
"reusedPasswordsFound": {
"message": "Reused Passwords Found"
},
"reusedPasswordsFoundDesc": {
"message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noReusedPasswords": {
"message": "No logins in your vault have passwords that are being reused."
},
"reusedXTimes": {
"message": "Reused $COUNT$ times",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"dataBreachReport": {
"message": "Datendiebstahl-Bericht"
},
@@ -1362,6 +1491,9 @@
"premiumSignUpTwoStep": {
"message": "Zusätzliche Zwei-Faktor-Authentifizierungsmöglichkeiten wie z.B. YubiKey, FIDO U2F und Duo."
},
"premiumSignUpReports": {
"message": "Password hygiene, account health, and data breach reports to keep your vault safe."
},
"premiumSignUpTotp": {
"message": "TOTP Verifizierungscode-Generator (2FA) für Konten in Ihrem Tresor."
},
@@ -1384,10 +1516,10 @@
"message": "Erweiterungen"
},
"premiumAccess": {
"message": "Premium Access"
"message": "Zugriff für Premium"
},
"premiumAccessDesc": {
"message": "You can add premium access to all members of your organization for $PRICE$ \/$INTERVAL$.",
"message": "Sie können allen Mitgliedern Ihrer Organisation für den Preis $PRICE$ \/ $INTERVAL$ kaufen.",
"placeholders": {
"price": {
"content": "$1",
@@ -2202,7 +2334,7 @@
"message": "Bestätigen"
},
"confirmUser": {
"message": "Confirm User"
"message": "Benutzer bestätigen"
},
"hasBeenConfirmed": {
"message": "$USER$ wurde bestätigt.",
@@ -2530,55 +2662,63 @@
"message": "Wem gehört dieser Eintrag?"
},
"strong": {
"message": "Strong",
"description": "ex. A strong password. Scale: Weak -> Good -> Strong"
"message": "Stark",
"description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"good": {
"message": "Good",
"description": "ex. A good password. Scale: Weak -> Good -> Strong"
"message": "Gut",
"description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weak": {
"message": "Weak",
"description": "ex. A weak password. Scale: Weak -> Good -> Strong"
"message": "Schwach",
"description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"veryWeak": {
"message": "Very Weak",
"description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weakMasterPassword": {
"message": "Weak Master Password"
"message": "Schwaches Haupt-Passwort"
},
"weakMasterPasswordDesc": {
"message": "The master password you have chosen is weak. You should use a strong master password (or a passphrase) to properly protect your Bitwarden account. Are you sure you want to use this master password?"
"message": "Das Haupt-Passwort, das Sie gewählt haben ist schwach. Sie sollten ein starkes Haupt-Passwort auswählen, um Ihr Bitwarden-Konto richtig zu schützen. Sind Sie sicher, dass Sie dieses Haupt-Passwort verwenden sollen?"
},
"rotateAccountEncKey": {
"message": "Also rotate my account's encryption key"
"message": "Auch meinen Verschlüsselungsschlüssel aktualisieren"
},
"rotateEncKeyTitle": {
"message": "Rotate Encryption Key"
"message": "Verschlüsselungscode aktualisieren"
},
"rotateEncKeyConfirmation": {
"message": "Are you sure you want to rotate your account's encryption key?"
"message": "Sind Sie sich sicher, dass Sie ihren Schlüssel aktualisieren möchten?"
},
"attachmentsNeedFix": {
"message": "This item has old file attachments that need to be fixed."
"message": "Dieser Eintrag hat Anhänge die repariert werden müssen."
},
"attachmentFixDesc": {
"message": "This is an old file attachment the needs to be fixed. Click to learn more."
"message": "Diese Dateianlage muss aufgrund ihres Alters aktualisiert werden. Klicken Sie um mehr zu erfahren."
},
"fix": {
"message": "Fix",
"message": "Reparieren",
"description": "This is a verb. ex. 'Fix The Car'"
},
"oldAttachmentsNeedFixDesc": {
"message": "There are old file attachments in your vault that need to be fixed before you can rotate your account's encryption key."
"message": "Es gibt Dateianhänge in ihrem Tresor die repariert werden müssen, bevor du deienn Verschlüsselungsschlüssel aktualisierst."
},
"yourAccountsFingerprint": {
"message": "Your account's fingerprint phrase",
"message": "Prüfschlüssel für deinen Account",
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"fingerprintEnsureIntegrityVerify": {
"message": "To ensure the integrity of your encryption keys, please verify the user's fingerprint phrase before continuing.",
"message": "Um die Sicherheit ihres Hauptpasswortes zu gewähren, verifizieren Sie bitte den Prüfschlüssel des Benutzers.",
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"dontAskFingerprintAgain": {
"message": "Don't ask to verify fingerprint phrase again",
"message": "Nicht erneut nach dem Prüfschlüssel fragen",
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"free": {
"message": "Free",
"description": "Free, as in 'Free beer'"
}
}

View File

@@ -775,7 +775,7 @@
"message": "Warning"
},
"exportWarning": {
"message": "This export contains your unencrypted data in .csv format. You should not store or send it over unsecure channels (such as email). Delete it immediately after your are done using it."
"message": "This export contains your unencrypted data in .csv format. You should not store or send it over unsecure channels (such as email). Delete it immediately after you are done using it."
},
"exportMasterPassword": {
"message": "Enter your master password to export your vault data."
@@ -1287,6 +1287,135 @@
"reports": {
"message": "Reports"
},
"unsecuredWebsitesReport": {
"message": "Unsecured Websites Report"
},
"unsecuredWebsitesReportDesc": {
"message": "Using unsecured websites with the http:// scheme can be dangerous. If the website allows, you should always access it using the https:// scheme so that your connection is encrypted."
},
"unsecuredWebsitesFound": {
"message": "Unsecured Websites Found"
},
"unsecuredWebsitesFoundDesc": {
"message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:// if the website allows it.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noUnsecuredWebsites": {
"message": "No items in your vault have unsecured URIs."
},
"inactive2faReport": {
"message": "Inactive 2FA Report"
},
"inactive2faReportDesc": {
"message": "Two-factor authentication (2FA) is an important security setting that helps secure your accounts. If the website offers it, you should always enable two-factor authentication."
},
"inactive2faFound": {
"message": "Logins Without 2FA Found"
},
"inactive2faFoundDesc": {
"message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to twofactorauth.org). To further protect these accounts, you should enable two-factor authentication.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noInactive2fa": {
"message": "No websites were found in your vault with a missing two-factor authentication configuration."
},
"instructions": {
"message": "Instructions"
},
"exposedPasswordsReport": {
"message": "Exposed Passwords Report"
},
"exposedPasswordsReportDesc": {
"message": "Exposed passwords are passwords that have been uncovered in known data breaches that were released publicly or sold on the dark web by hackers."
},
"exposedPasswordsFound": {
"message": "Exposed Passwords Found"
},
"exposedPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noExposedPasswords": {
"message": "No items in your vault have passwords that have been exposed in known data breaches."
},
"checkExposedPasswords": {
"message": "Check Exposed Passwords"
},
"exposedXTimes": {
"message": "Exposed $COUNT$ time(s)",
"placeholders": {
"count": {
"content": "$1",
"example": "52"
}
}
},
"weakPasswordsReport": {
"message": "Weak Passwords Report"
},
"weakPasswordsReportDesc": {
"message": "Weak passwords can easily be guessed by hackers and automated tools that are used to crack passwords. The Bitwarden password generator can help you create strong passwords."
},
"weakPasswordsFound": {
"message": "Weak Passwords Found"
},
"weakPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noWeakPasswords": {
"message": "No items in your vault have weak passwords."
},
"reusedPasswordsReport": {
"message": "Reused Passwords Report"
},
"reusedPasswordsReportDesc": {
"message": "If a service that you use is compromised, reusing the same password elsewhere can allow hackers to easily gain access to more of your online accounts. You should use a unique password for every account or service."
},
"reusedPasswordsFound": {
"message": "Reused Passwords Found"
},
"reusedPasswordsFoundDesc": {
"message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noReusedPasswords": {
"message": "No logins in your vault have passwords that are being reused."
},
"reusedXTimes": {
"message": "Reused $COUNT$ times",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"dataBreachReport": {
"message": "Data Breach Report"
},
@@ -1360,11 +1489,14 @@
"message": "Upgrade your account to a premium membership and unlock some great additional features."
},
"premiumSignUpStorage": {
"message": "1 GB of encrypted file storage."
"message": "1 GB encrypted storage for file attachments."
},
"premiumSignUpTwoStep": {
"message": "Additional two-step login options such as YubiKey, FIDO U2F, and Duo."
},
"premiumSignUpReports": {
"message": "Password hygiene, account health, and data breach reports to keep your vault safe."
},
"premiumSignUpTotp": {
"message": "TOTP verification code (2FA) generator for logins in your vault."
},
@@ -2534,15 +2666,19 @@
},
"strong": {
"message": "Strong",
"description": "ex. A strong password. Scale: Weak -> Good -> Strong"
"description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"good": {
"message": "Good",
"description": "ex. A good password. Scale: Weak -> Good -> Strong"
"description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weak": {
"message": "Weak",
"description": "ex. A weak password. Scale: Weak -> Good -> Strong"
"description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"veryWeak": {
"message": "Very Weak",
"description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weakMasterPassword": {
"message": "Weak Master Password"
@@ -2583,5 +2719,9 @@
"dontAskFingerprintAgain": {
"message": "Don't ask to verify fingerprint phrase again",
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"free": {
"message": "Free",
"description": "Free, as in 'Free beer'"
}
}

View File

@@ -1284,6 +1284,135 @@
"reports": {
"message": "Informes"
},
"unsecuredWebsitesReport": {
"message": "Unsecured Websites Report"
},
"unsecuredWebsitesReportDesc": {
"message": "Using unsecured websites with the http:\/\/ scheme can be dangerous. If the website allows, you should always access it using the https:\/\/ scheme so that your connection is encrypted."
},
"unsecuredWebsitesFound": {
"message": "Unsecured Websites Found"
},
"unsecuredWebsitesFoundDesc": {
"message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:\/\/ if the website allows it.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noUnsecuredWebsites": {
"message": "No items in your vault have unsecured URIs."
},
"inactive2faReport": {
"message": "Inactive 2FA Report"
},
"inactive2faReportDesc": {
"message": "Two-factor authentication (2FA) is an important security setting that helps secure your accounts. If the website offers it, you should always enable two-factor authentication."
},
"inactive2faFound": {
"message": "Logins Without 2FA Found"
},
"inactive2faFoundDesc": {
"message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to twofactorauth.org). To further protect these accounts, you should enable two-factor authentication.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noInactive2fa": {
"message": "No websites were found in your vault with a missing two-factor authentication configuration."
},
"instructions": {
"message": "Instructions"
},
"exposedPasswordsReport": {
"message": "Exposed Passwords Report"
},
"exposedPasswordsReportDesc": {
"message": "Exposed passwords are passwords have been uncovered in known data breaches that were released publicly or sold on the dark web by hackers."
},
"exposedPasswordsFound": {
"message": "Exposed Passwords Found"
},
"exposedPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noExposedPasswords": {
"message": "No items in your vault have passwords that have been exposed in known data breaches."
},
"checkExposedPasswords": {
"message": "Check Exposed Passwords"
},
"exposedXTimes": {
"message": "Exposed $COUNT$ time(s)",
"placeholders": {
"count": {
"content": "$1",
"example": "52"
}
}
},
"weakPasswordsReport": {
"message": "Weak Passwords Report"
},
"weakPasswordsReportDesc": {
"message": "Weak passwords can easily be guessed by hackers and automated tools that are used to crack passwords. The Bitwarden password generator can help you create strong passwords."
},
"weakPasswordsFound": {
"message": "Weak Passwords Found"
},
"weakPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noWeakPasswords": {
"message": "No items in your vault have weak passwords."
},
"reusedPasswordsReport": {
"message": "Reused Passwords Report"
},
"reusedPasswordsReportDesc": {
"message": "If a service that you use is compromised, reusing the same password elsewhere can allow hackers to easily gain access to more of your online accounts. You should use a unique password for every account or service."
},
"reusedPasswordsFound": {
"message": "Reused Passwords Found"
},
"reusedPasswordsFoundDesc": {
"message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noReusedPasswords": {
"message": "No logins in your vault have passwords that are being reused."
},
"reusedXTimes": {
"message": "Reused $COUNT$ times",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"dataBreachReport": {
"message": "Informe de violación de datos"
},
@@ -1362,6 +1491,9 @@
"premiumSignUpTwoStep": {
"message": "Opciones adicionales de inicio de sesión de dos pasos como YubiKey, Fido U2F y Duo."
},
"premiumSignUpReports": {
"message": "Password hygiene, account health, and data breach reports to keep your vault safe."
},
"premiumSignUpTotp": {
"message": "Generador de código de verificación TOTP (2FA) para iniciar sesión en su bóveda."
},
@@ -2531,15 +2663,19 @@
},
"strong": {
"message": "Fuerte",
"description": "ex. A strong password. Scale: Weak -> Good -> Strong"
"description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"good": {
"message": "Bueno",
"description": "ex. A good password. Scale: Weak -> Good -> Strong"
"description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weak": {
"message": "Débil",
"description": "ex. A weak password. Scale: Weak -> Good -> Strong"
"description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"veryWeak": {
"message": "Very Weak",
"description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weakMasterPassword": {
"message": "Contraseña maestra débil"
@@ -2580,5 +2716,9 @@
"dontAskFingerprintAgain": {
"message": "No pida verificar la frase de la huella dactilar de nuevo",
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"free": {
"message": "Free",
"description": "Free, as in 'Free beer'"
}
}

View File

@@ -208,7 +208,7 @@
"message": "Näita sisu"
},
"toggleCollapse": {
"message": "Toggle Collapse",
"message": "Ava",
"description": "Toggling an expand\/collapse state."
},
"generatePassword": {
@@ -746,7 +746,7 @@
}
},
"shareSelectedItemsCountDesc": {
"message": "You have selected $COUNT$ item(s). $SHAREABLE_COUNT$ items are sharable, $NONSHAREABLE_COUNT$ are not.",
"message": "Valisid $COUNT$ üksust. $SHAREABLE_COUNT$ üksust on jagatavad, $NONSHAREABLE_COUNT$ ei ole.",
"placeholders": {
"count": {
"content": "$1",
@@ -1284,6 +1284,135 @@
"reports": {
"message": "Raportid"
},
"unsecuredWebsitesReport": {
"message": "Unsecured Websites Report"
},
"unsecuredWebsitesReportDesc": {
"message": "Using unsecured websites with the http:\/\/ scheme can be dangerous. If the website allows, you should always access it using the https:\/\/ scheme so that your connection is encrypted."
},
"unsecuredWebsitesFound": {
"message": "Unsecured Websites Found"
},
"unsecuredWebsitesFoundDesc": {
"message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:\/\/ if the website allows it.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noUnsecuredWebsites": {
"message": "No items in your vault have unsecured URIs."
},
"inactive2faReport": {
"message": "Inactive 2FA Report"
},
"inactive2faReportDesc": {
"message": "Two-factor authentication (2FA) is an important security setting that helps secure your accounts. If the website offers it, you should always enable two-factor authentication."
},
"inactive2faFound": {
"message": "Logins Without 2FA Found"
},
"inactive2faFoundDesc": {
"message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to twofactorauth.org). To further protect these accounts, you should enable two-factor authentication.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noInactive2fa": {
"message": "No websites were found in your vault with a missing two-factor authentication configuration."
},
"instructions": {
"message": "Instructions"
},
"exposedPasswordsReport": {
"message": "Exposed Passwords Report"
},
"exposedPasswordsReportDesc": {
"message": "Exposed passwords are passwords have been uncovered in known data breaches that were released publicly or sold on the dark web by hackers."
},
"exposedPasswordsFound": {
"message": "Exposed Passwords Found"
},
"exposedPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noExposedPasswords": {
"message": "No items in your vault have passwords that have been exposed in known data breaches."
},
"checkExposedPasswords": {
"message": "Check Exposed Passwords"
},
"exposedXTimes": {
"message": "Exposed $COUNT$ time(s)",
"placeholders": {
"count": {
"content": "$1",
"example": "52"
}
}
},
"weakPasswordsReport": {
"message": "Weak Passwords Report"
},
"weakPasswordsReportDesc": {
"message": "Weak passwords can easily be guessed by hackers and automated tools that are used to crack passwords. The Bitwarden password generator can help you create strong passwords."
},
"weakPasswordsFound": {
"message": "Weak Passwords Found"
},
"weakPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noWeakPasswords": {
"message": "No items in your vault have weak passwords."
},
"reusedPasswordsReport": {
"message": "Reused Passwords Report"
},
"reusedPasswordsReportDesc": {
"message": "If a service that you use is compromised, reusing the same password elsewhere can allow hackers to easily gain access to more of your online accounts. You should use a unique password for every account or service."
},
"reusedPasswordsFound": {
"message": "Reused Passwords Found"
},
"reusedPasswordsFoundDesc": {
"message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noReusedPasswords": {
"message": "No logins in your vault have passwords that are being reused."
},
"reusedXTimes": {
"message": "Reused $COUNT$ times",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"dataBreachReport": {
"message": "Andmelekke raport"
},
@@ -1362,6 +1491,9 @@
"premiumSignUpTwoStep": {
"message": "Lisavõimalused kaheastmeliseks kinnitamiseks, näiteks YubiKey, FIDO U2F ja Duo."
},
"premiumSignUpReports": {
"message": "Password hygiene, account health, and data breach reports to keep your vault safe."
},
"premiumSignUpTotp": {
"message": "TOTP kinnituskoodide (2FA) genereeria hoidlas olevatele kasutajakontodele."
},
@@ -1384,10 +1516,10 @@
"message": "Lisad"
},
"premiumAccess": {
"message": "Premium Access"
"message": "Premium ligipääs"
},
"premiumAccessDesc": {
"message": "You can add premium access to all members of your organization for $PRICE$ \/$INTERVAL$.",
"message": "Saad kõikidele organisatsiooni liikmetele anda ligipääsu preemium funktsioonidele - hinnaga $PRICE$ \/$INTERVAL$.",
"placeholders": {
"price": {
"content": "$1",
@@ -2202,7 +2334,7 @@
"message": "Kinnita"
},
"confirmUser": {
"message": "Confirm User"
"message": "Kinnita kaustaja"
},
"hasBeenConfirmed": {
"message": "Kasutaja $USER$ on kinnitatud.",
@@ -2530,55 +2662,63 @@
"message": "Kes seda üksust omab?"
},
"strong": {
"message": "Strong",
"description": "ex. A strong password. Scale: Weak -> Good -> Strong"
"message": "Tugev",
"description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"good": {
"message": "Good",
"description": "ex. A good password. Scale: Weak -> Good -> Strong"
"message": "Hea",
"description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weak": {
"message": "Weak",
"description": "ex. A weak password. Scale: Weak -> Good -> Strong"
"message": "Nõrk",
"description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"veryWeak": {
"message": "Very Weak",
"description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weakMasterPassword": {
"message": "Weak Master Password"
"message": "Nõrk ülemparool"
},
"weakMasterPasswordDesc": {
"message": "The master password you have chosen is weak. You should use a strong master password (or a passphrase) to properly protect your Bitwarden account. Are you sure you want to use this master password?"
"message": "Valitud ülemparool on nõrk. Oma Bitwardeni konto paremaks kaitsmiseks peaksid kasutama tugevat parooli. Oled kindel, et soovid seda parooli ülemparoolina kasutada?"
},
"rotateAccountEncKey": {
"message": "Also rotate my account's encryption key"
"message": "Roteeri ka minu konto krüpteerimise võtit"
},
"rotateEncKeyTitle": {
"message": "Rotate Encryption Key"
"message": "Roteeri krüpteerimise võtit"
},
"rotateEncKeyConfirmation": {
"message": "Are you sure you want to rotate your account's encryption key?"
"message": "Oled kindel, et soovid oma konto krüpteerimise võtit roteerida?"
},
"attachmentsNeedFix": {
"message": "This item has old file attachments that need to be fixed."
"message": "Sellel kirjel on vanu manuseid, mille peab parandama."
},
"attachmentFixDesc": {
"message": "This is an old file attachment the needs to be fixed. Click to learn more."
"message": "See on vana failimanus, mille peab parandama. Rohkema teabe saamiseks kliki siia."
},
"fix": {
"message": "Fix",
"message": "Paranda",
"description": "This is a verb. ex. 'Fix The Car'"
},
"oldAttachmentsNeedFixDesc": {
"message": "There are old file attachments in your vault that need to be fixed before you can rotate your account's encryption key."
"message": "Hoidlas on vanu failimanuseid, mida peab enne konto krüpteerimise võtme roteerimist parandama."
},
"yourAccountsFingerprint": {
"message": "Your account's fingerprint phrase",
"message": "Konto sõrmejälje fraas",
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"fingerprintEnsureIntegrityVerify": {
"message": "To ensure the integrity of your encryption keys, please verify the user's fingerprint phrase before continuing.",
"message": "Selleks, et sinu krüpteeringu terviklikkus säiliks, pead jätkamiseks kinnitama kasutaja sõrmejälje fraasi.",
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"dontAskFingerprintAgain": {
"message": "Don't ask to verify fingerprint phrase again",
"message": "Ära enam sõrmejälje fraasi kinnitamist küsi",
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"free": {
"message": "Free",
"description": "Free, as in 'Free beer'"
}
}

View File

@@ -1284,6 +1284,135 @@
"reports": {
"message": "Raportit"
},
"unsecuredWebsitesReport": {
"message": "Unsecured Websites Report"
},
"unsecuredWebsitesReportDesc": {
"message": "Using unsecured websites with the http:\/\/ scheme can be dangerous. If the website allows, you should always access it using the https:\/\/ scheme so that your connection is encrypted."
},
"unsecuredWebsitesFound": {
"message": "Unsecured Websites Found"
},
"unsecuredWebsitesFoundDesc": {
"message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:\/\/ if the website allows it.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noUnsecuredWebsites": {
"message": "No items in your vault have unsecured URIs."
},
"inactive2faReport": {
"message": "Inactive 2FA Report"
},
"inactive2faReportDesc": {
"message": "Two-factor authentication (2FA) is an important security setting that helps secure your accounts. If the website offers it, you should always enable two-factor authentication."
},
"inactive2faFound": {
"message": "Logins Without 2FA Found"
},
"inactive2faFoundDesc": {
"message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to twofactorauth.org). To further protect these accounts, you should enable two-factor authentication.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noInactive2fa": {
"message": "No websites were found in your vault with a missing two-factor authentication configuration."
},
"instructions": {
"message": "Instructions"
},
"exposedPasswordsReport": {
"message": "Exposed Passwords Report"
},
"exposedPasswordsReportDesc": {
"message": "Exposed passwords are passwords have been uncovered in known data breaches that were released publicly or sold on the dark web by hackers."
},
"exposedPasswordsFound": {
"message": "Exposed Passwords Found"
},
"exposedPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noExposedPasswords": {
"message": "No items in your vault have passwords that have been exposed in known data breaches."
},
"checkExposedPasswords": {
"message": "Check Exposed Passwords"
},
"exposedXTimes": {
"message": "Exposed $COUNT$ time(s)",
"placeholders": {
"count": {
"content": "$1",
"example": "52"
}
}
},
"weakPasswordsReport": {
"message": "Weak Passwords Report"
},
"weakPasswordsReportDesc": {
"message": "Weak passwords can easily be guessed by hackers and automated tools that are used to crack passwords. The Bitwarden password generator can help you create strong passwords."
},
"weakPasswordsFound": {
"message": "Weak Passwords Found"
},
"weakPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noWeakPasswords": {
"message": "No items in your vault have weak passwords."
},
"reusedPasswordsReport": {
"message": "Reused Passwords Report"
},
"reusedPasswordsReportDesc": {
"message": "If a service that you use is compromised, reusing the same password elsewhere can allow hackers to easily gain access to more of your online accounts. You should use a unique password for every account or service."
},
"reusedPasswordsFound": {
"message": "Reused Passwords Found"
},
"reusedPasswordsFoundDesc": {
"message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noReusedPasswords": {
"message": "No logins in your vault have passwords that are being reused."
},
"reusedXTimes": {
"message": "Reused $COUNT$ times",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"dataBreachReport": {
"message": "Data Breach Report"
},
@@ -1362,6 +1491,9 @@
"premiumSignUpTwoStep": {
"message": "lisävaihtoehtoja kaksivaiheiselle kirjautumiselle, kuten YubiKey, FIDO U2F ja Duo"
},
"premiumSignUpReports": {
"message": "Password hygiene, account health, and data breach reports to keep your vault safe."
},
"premiumSignUpTotp": {
"message": "TOTP-vahvistuskoodigeneraattorin (2FA) holvisi käyttäjätunnuksille"
},
@@ -2531,15 +2663,19 @@
},
"strong": {
"message": "Strong",
"description": "ex. A strong password. Scale: Weak -> Good -> Strong"
"description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"good": {
"message": "Good",
"description": "ex. A good password. Scale: Weak -> Good -> Strong"
"description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weak": {
"message": "Weak",
"description": "ex. A weak password. Scale: Weak -> Good -> Strong"
"description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"veryWeak": {
"message": "Very Weak",
"description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weakMasterPassword": {
"message": "Weak Master Password"
@@ -2580,5 +2716,9 @@
"dontAskFingerprintAgain": {
"message": "Don't ask to verify fingerprint phrase again",
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"free": {
"message": "Free",
"description": "Free, as in 'Free beer'"
}
}

View File

@@ -1284,6 +1284,135 @@
"reports": {
"message": "Rapports"
},
"unsecuredWebsitesReport": {
"message": "Unsecured Websites Report"
},
"unsecuredWebsitesReportDesc": {
"message": "Using unsecured websites with the http:\/\/ scheme can be dangerous. If the website allows, you should always access it using the https:\/\/ scheme so that your connection is encrypted."
},
"unsecuredWebsitesFound": {
"message": "Unsecured Websites Found"
},
"unsecuredWebsitesFoundDesc": {
"message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:\/\/ if the website allows it.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noUnsecuredWebsites": {
"message": "No items in your vault have unsecured URIs."
},
"inactive2faReport": {
"message": "Inactive 2FA Report"
},
"inactive2faReportDesc": {
"message": "Two-factor authentication (2FA) is an important security setting that helps secure your accounts. If the website offers it, you should always enable two-factor authentication."
},
"inactive2faFound": {
"message": "Logins Without 2FA Found"
},
"inactive2faFoundDesc": {
"message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to twofactorauth.org). To further protect these accounts, you should enable two-factor authentication.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noInactive2fa": {
"message": "No websites were found in your vault with a missing two-factor authentication configuration."
},
"instructions": {
"message": "Instructions"
},
"exposedPasswordsReport": {
"message": "Exposed Passwords Report"
},
"exposedPasswordsReportDesc": {
"message": "Exposed passwords are passwords have been uncovered in known data breaches that were released publicly or sold on the dark web by hackers."
},
"exposedPasswordsFound": {
"message": "Exposed Passwords Found"
},
"exposedPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noExposedPasswords": {
"message": "No items in your vault have passwords that have been exposed in known data breaches."
},
"checkExposedPasswords": {
"message": "Check Exposed Passwords"
},
"exposedXTimes": {
"message": "Exposed $COUNT$ time(s)",
"placeholders": {
"count": {
"content": "$1",
"example": "52"
}
}
},
"weakPasswordsReport": {
"message": "Weak Passwords Report"
},
"weakPasswordsReportDesc": {
"message": "Weak passwords can easily be guessed by hackers and automated tools that are used to crack passwords. The Bitwarden password generator can help you create strong passwords."
},
"weakPasswordsFound": {
"message": "Weak Passwords Found"
},
"weakPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noWeakPasswords": {
"message": "No items in your vault have weak passwords."
},
"reusedPasswordsReport": {
"message": "Reused Passwords Report"
},
"reusedPasswordsReportDesc": {
"message": "If a service that you use is compromised, reusing the same password elsewhere can allow hackers to easily gain access to more of your online accounts. You should use a unique password for every account or service."
},
"reusedPasswordsFound": {
"message": "Reused Passwords Found"
},
"reusedPasswordsFoundDesc": {
"message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noReusedPasswords": {
"message": "No logins in your vault have passwords that are being reused."
},
"reusedXTimes": {
"message": "Reused $COUNT$ times",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"dataBreachReport": {
"message": "Rapport sur les fuites de données"
},
@@ -1362,6 +1491,9 @@
"premiumSignUpTwoStep": {
"message": "Options d'identification à double facteurs additionnelles comme YubiKey, FIDO U2F et Duo."
},
"premiumSignUpReports": {
"message": "Password hygiene, account health, and data breach reports to keep your vault safe."
},
"premiumSignUpTotp": {
"message": "Génération d'un code de vérification TOTP (double facteurs \/ 2FA) pour les identifiants de votre coffre."
},
@@ -2531,15 +2663,19 @@
},
"strong": {
"message": "Fort",
"description": "ex. A strong password. Scale: Weak -> Good -> Strong"
"description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"good": {
"message": "Suffisant",
"description": "ex. A good password. Scale: Weak -> Good -> Strong"
"description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weak": {
"message": "Faible",
"description": "ex. A weak password. Scale: Weak -> Good -> Strong"
"description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"veryWeak": {
"message": "Very Weak",
"description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weakMasterPassword": {
"message": "Mot de passe maître faible"
@@ -2580,5 +2716,9 @@
"dontAskFingerprintAgain": {
"message": "Ne plus me demander de vérifier de phrase d'empreinte",
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"free": {
"message": "Free",
"description": "Free, as in 'Free beer'"
}
}

View File

@@ -1284,6 +1284,135 @@
"reports": {
"message": "Reports"
},
"unsecuredWebsitesReport": {
"message": "Unsecured Websites Report"
},
"unsecuredWebsitesReportDesc": {
"message": "Using unsecured websites with the http:\/\/ scheme can be dangerous. If the website allows, you should always access it using the https:\/\/ scheme so that your connection is encrypted."
},
"unsecuredWebsitesFound": {
"message": "Unsecured Websites Found"
},
"unsecuredWebsitesFoundDesc": {
"message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:\/\/ if the website allows it.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noUnsecuredWebsites": {
"message": "No items in your vault have unsecured URIs."
},
"inactive2faReport": {
"message": "Inactive 2FA Report"
},
"inactive2faReportDesc": {
"message": "Two-factor authentication (2FA) is an important security setting that helps secure your accounts. If the website offers it, you should always enable two-factor authentication."
},
"inactive2faFound": {
"message": "Logins Without 2FA Found"
},
"inactive2faFoundDesc": {
"message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to twofactorauth.org). To further protect these accounts, you should enable two-factor authentication.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noInactive2fa": {
"message": "No websites were found in your vault with a missing two-factor authentication configuration."
},
"instructions": {
"message": "Instructions"
},
"exposedPasswordsReport": {
"message": "Exposed Passwords Report"
},
"exposedPasswordsReportDesc": {
"message": "Exposed passwords are passwords have been uncovered in known data breaches that were released publicly or sold on the dark web by hackers."
},
"exposedPasswordsFound": {
"message": "Exposed Passwords Found"
},
"exposedPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noExposedPasswords": {
"message": "No items in your vault have passwords that have been exposed in known data breaches."
},
"checkExposedPasswords": {
"message": "Check Exposed Passwords"
},
"exposedXTimes": {
"message": "Exposed $COUNT$ time(s)",
"placeholders": {
"count": {
"content": "$1",
"example": "52"
}
}
},
"weakPasswordsReport": {
"message": "Weak Passwords Report"
},
"weakPasswordsReportDesc": {
"message": "Weak passwords can easily be guessed by hackers and automated tools that are used to crack passwords. The Bitwarden password generator can help you create strong passwords."
},
"weakPasswordsFound": {
"message": "Weak Passwords Found"
},
"weakPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noWeakPasswords": {
"message": "No items in your vault have weak passwords."
},
"reusedPasswordsReport": {
"message": "Reused Passwords Report"
},
"reusedPasswordsReportDesc": {
"message": "If a service that you use is compromised, reusing the same password elsewhere can allow hackers to easily gain access to more of your online accounts. You should use a unique password for every account or service."
},
"reusedPasswordsFound": {
"message": "Reused Passwords Found"
},
"reusedPasswordsFoundDesc": {
"message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noReusedPasswords": {
"message": "No logins in your vault have passwords that are being reused."
},
"reusedXTimes": {
"message": "Reused $COUNT$ times",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"dataBreachReport": {
"message": "Data Breach Report"
},
@@ -1362,6 +1491,9 @@
"premiumSignUpTwoStep": {
"message": "Additional two-step login options such as YubiKey, FIDO U2F, and Duo."
},
"premiumSignUpReports": {
"message": "Password hygiene, account health, and data breach reports to keep your vault safe."
},
"premiumSignUpTotp": {
"message": "TOTP verification code (2FA) generator for logins in your vault."
},
@@ -2531,15 +2663,19 @@
},
"strong": {
"message": "Strong",
"description": "ex. A strong password. Scale: Weak -> Good -> Strong"
"description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"good": {
"message": "Good",
"description": "ex. A good password. Scale: Weak -> Good -> Strong"
"description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weak": {
"message": "Weak",
"description": "ex. A weak password. Scale: Weak -> Good -> Strong"
"description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"veryWeak": {
"message": "Very Weak",
"description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weakMasterPassword": {
"message": "Weak Master Password"
@@ -2580,5 +2716,9 @@
"dontAskFingerprintAgain": {
"message": "Don't ask to verify fingerprint phrase again",
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"free": {
"message": "Free",
"description": "Free, as in 'Free beer'"
}
}

View File

@@ -1284,6 +1284,135 @@
"reports": {
"message": "Rapporti"
},
"unsecuredWebsitesReport": {
"message": "Unsecured Websites Report"
},
"unsecuredWebsitesReportDesc": {
"message": "Using unsecured websites with the http:\/\/ scheme can be dangerous. If the website allows, you should always access it using the https:\/\/ scheme so that your connection is encrypted."
},
"unsecuredWebsitesFound": {
"message": "Unsecured Websites Found"
},
"unsecuredWebsitesFoundDesc": {
"message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:\/\/ if the website allows it.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noUnsecuredWebsites": {
"message": "No items in your vault have unsecured URIs."
},
"inactive2faReport": {
"message": "Inactive 2FA Report"
},
"inactive2faReportDesc": {
"message": "Two-factor authentication (2FA) is an important security setting that helps secure your accounts. If the website offers it, you should always enable two-factor authentication."
},
"inactive2faFound": {
"message": "Logins Without 2FA Found"
},
"inactive2faFoundDesc": {
"message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to twofactorauth.org). To further protect these accounts, you should enable two-factor authentication.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noInactive2fa": {
"message": "No websites were found in your vault with a missing two-factor authentication configuration."
},
"instructions": {
"message": "Instructions"
},
"exposedPasswordsReport": {
"message": "Exposed Passwords Report"
},
"exposedPasswordsReportDesc": {
"message": "Exposed passwords are passwords have been uncovered in known data breaches that were released publicly or sold on the dark web by hackers."
},
"exposedPasswordsFound": {
"message": "Exposed Passwords Found"
},
"exposedPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noExposedPasswords": {
"message": "No items in your vault have passwords that have been exposed in known data breaches."
},
"checkExposedPasswords": {
"message": "Check Exposed Passwords"
},
"exposedXTimes": {
"message": "Exposed $COUNT$ time(s)",
"placeholders": {
"count": {
"content": "$1",
"example": "52"
}
}
},
"weakPasswordsReport": {
"message": "Weak Passwords Report"
},
"weakPasswordsReportDesc": {
"message": "Weak passwords can easily be guessed by hackers and automated tools that are used to crack passwords. The Bitwarden password generator can help you create strong passwords."
},
"weakPasswordsFound": {
"message": "Weak Passwords Found"
},
"weakPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noWeakPasswords": {
"message": "No items in your vault have weak passwords."
},
"reusedPasswordsReport": {
"message": "Reused Passwords Report"
},
"reusedPasswordsReportDesc": {
"message": "If a service that you use is compromised, reusing the same password elsewhere can allow hackers to easily gain access to more of your online accounts. You should use a unique password for every account or service."
},
"reusedPasswordsFound": {
"message": "Reused Passwords Found"
},
"reusedPasswordsFoundDesc": {
"message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noReusedPasswords": {
"message": "No logins in your vault have passwords that are being reused."
},
"reusedXTimes": {
"message": "Reused $COUNT$ times",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"dataBreachReport": {
"message": "Rapporto di violazione dei dati"
},
@@ -1362,6 +1491,9 @@
"premiumSignUpTwoStep": {
"message": "Opzioni di verifica in due passaggi addizionali come YubiKey, FIDO U2F, e Duo."
},
"premiumSignUpReports": {
"message": "Password hygiene, account health, and data breach reports to keep your vault safe."
},
"premiumSignUpTotp": {
"message": "Generatore di codice (2FA) di verifica di TOTP per gli account di accesso nel tuo vault."
},
@@ -2531,15 +2663,19 @@
},
"strong": {
"message": "Forte",
"description": "ex. A strong password. Scale: Weak -> Good -> Strong"
"description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"good": {
"message": "Buono",
"description": "ex. A good password. Scale: Weak -> Good -> Strong"
"description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weak": {
"message": "Debole",
"description": "ex. A weak password. Scale: Weak -> Good -> Strong"
"description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"veryWeak": {
"message": "Very Weak",
"description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weakMasterPassword": {
"message": "Password Principale Debole"
@@ -2580,5 +2716,9 @@
"dontAskFingerprintAgain": {
"message": "Non chiedere di verificare di nuovo la frase dell'impronta digitale",
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"free": {
"message": "Free",
"description": "Free, as in 'Free beer'"
}
}

View File

@@ -1284,6 +1284,135 @@
"reports": {
"message": "レポート"
},
"unsecuredWebsitesReport": {
"message": "Unsecured Websites Report"
},
"unsecuredWebsitesReportDesc": {
"message": "Using unsecured websites with the http:\/\/ scheme can be dangerous. If the website allows, you should always access it using the https:\/\/ scheme so that your connection is encrypted."
},
"unsecuredWebsitesFound": {
"message": "Unsecured Websites Found"
},
"unsecuredWebsitesFoundDesc": {
"message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:\/\/ if the website allows it.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noUnsecuredWebsites": {
"message": "No items in your vault have unsecured URIs."
},
"inactive2faReport": {
"message": "Inactive 2FA Report"
},
"inactive2faReportDesc": {
"message": "Two-factor authentication (2FA) is an important security setting that helps secure your accounts. If the website offers it, you should always enable two-factor authentication."
},
"inactive2faFound": {
"message": "Logins Without 2FA Found"
},
"inactive2faFoundDesc": {
"message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to twofactorauth.org). To further protect these accounts, you should enable two-factor authentication.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noInactive2fa": {
"message": "No websites were found in your vault with a missing two-factor authentication configuration."
},
"instructions": {
"message": "Instructions"
},
"exposedPasswordsReport": {
"message": "Exposed Passwords Report"
},
"exposedPasswordsReportDesc": {
"message": "Exposed passwords are passwords have been uncovered in known data breaches that were released publicly or sold on the dark web by hackers."
},
"exposedPasswordsFound": {
"message": "Exposed Passwords Found"
},
"exposedPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noExposedPasswords": {
"message": "No items in your vault have passwords that have been exposed in known data breaches."
},
"checkExposedPasswords": {
"message": "Check Exposed Passwords"
},
"exposedXTimes": {
"message": "Exposed $COUNT$ time(s)",
"placeholders": {
"count": {
"content": "$1",
"example": "52"
}
}
},
"weakPasswordsReport": {
"message": "Weak Passwords Report"
},
"weakPasswordsReportDesc": {
"message": "Weak passwords can easily be guessed by hackers and automated tools that are used to crack passwords. The Bitwarden password generator can help you create strong passwords."
},
"weakPasswordsFound": {
"message": "Weak Passwords Found"
},
"weakPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noWeakPasswords": {
"message": "No items in your vault have weak passwords."
},
"reusedPasswordsReport": {
"message": "Reused Passwords Report"
},
"reusedPasswordsReportDesc": {
"message": "If a service that you use is compromised, reusing the same password elsewhere can allow hackers to easily gain access to more of your online accounts. You should use a unique password for every account or service."
},
"reusedPasswordsFound": {
"message": "Reused Passwords Found"
},
"reusedPasswordsFoundDesc": {
"message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noReusedPasswords": {
"message": "No logins in your vault have passwords that are being reused."
},
"reusedXTimes": {
"message": "Reused $COUNT$ times",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"dataBreachReport": {
"message": "情報漏えい調査"
},
@@ -1362,6 +1491,9 @@
"premiumSignUpTwoStep": {
"message": "YubiKey、FIDO U2F、Duoなどの追加の2段階認証ログインオプション"
},
"premiumSignUpReports": {
"message": "Password hygiene, account health, and data breach reports to keep your vault safe."
},
"premiumSignUpTotp": {
"message": "保管庫内での2段階認証コード生成"
},
@@ -2531,15 +2663,19 @@
},
"strong": {
"message": "強力",
"description": "ex. A strong password. Scale: Weak -> Good -> Strong"
"description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"good": {
"message": "良好",
"description": "ex. A good password. Scale: Weak -> Good -> Strong"
"description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weak": {
"message": "脆弱",
"description": "ex. A weak password. Scale: Weak -> Good -> Strong"
"description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"veryWeak": {
"message": "Very Weak",
"description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weakMasterPassword": {
"message": "脆弱なマスターパスワード"
@@ -2580,5 +2716,9 @@
"dontAskFingerprintAgain": {
"message": "今後指紋認証用フレーズを確認しない",
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"free": {
"message": "Free",
"description": "Free, as in 'Free beer'"
}
}

View File

@@ -1284,6 +1284,135 @@
"reports": {
"message": "Reports"
},
"unsecuredWebsitesReport": {
"message": "Unsecured Websites Report"
},
"unsecuredWebsitesReportDesc": {
"message": "Using unsecured websites with the http:\/\/ scheme can be dangerous. If the website allows, you should always access it using the https:\/\/ scheme so that your connection is encrypted."
},
"unsecuredWebsitesFound": {
"message": "Unsecured Websites Found"
},
"unsecuredWebsitesFoundDesc": {
"message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:\/\/ if the website allows it.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noUnsecuredWebsites": {
"message": "No items in your vault have unsecured URIs."
},
"inactive2faReport": {
"message": "Inactive 2FA Report"
},
"inactive2faReportDesc": {
"message": "Two-factor authentication (2FA) is an important security setting that helps secure your accounts. If the website offers it, you should always enable two-factor authentication."
},
"inactive2faFound": {
"message": "Logins Without 2FA Found"
},
"inactive2faFoundDesc": {
"message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to twofactorauth.org). To further protect these accounts, you should enable two-factor authentication.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noInactive2fa": {
"message": "No websites were found in your vault with a missing two-factor authentication configuration."
},
"instructions": {
"message": "Instructions"
},
"exposedPasswordsReport": {
"message": "Exposed Passwords Report"
},
"exposedPasswordsReportDesc": {
"message": "Exposed passwords are passwords have been uncovered in known data breaches that were released publicly or sold on the dark web by hackers."
},
"exposedPasswordsFound": {
"message": "Exposed Passwords Found"
},
"exposedPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noExposedPasswords": {
"message": "No items in your vault have passwords that have been exposed in known data breaches."
},
"checkExposedPasswords": {
"message": "Check Exposed Passwords"
},
"exposedXTimes": {
"message": "Exposed $COUNT$ time(s)",
"placeholders": {
"count": {
"content": "$1",
"example": "52"
}
}
},
"weakPasswordsReport": {
"message": "Weak Passwords Report"
},
"weakPasswordsReportDesc": {
"message": "Weak passwords can easily be guessed by hackers and automated tools that are used to crack passwords. The Bitwarden password generator can help you create strong passwords."
},
"weakPasswordsFound": {
"message": "Weak Passwords Found"
},
"weakPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noWeakPasswords": {
"message": "No items in your vault have weak passwords."
},
"reusedPasswordsReport": {
"message": "Reused Passwords Report"
},
"reusedPasswordsReportDesc": {
"message": "If a service that you use is compromised, reusing the same password elsewhere can allow hackers to easily gain access to more of your online accounts. You should use a unique password for every account or service."
},
"reusedPasswordsFound": {
"message": "Reused Passwords Found"
},
"reusedPasswordsFoundDesc": {
"message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noReusedPasswords": {
"message": "No logins in your vault have passwords that are being reused."
},
"reusedXTimes": {
"message": "Reused $COUNT$ times",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"dataBreachReport": {
"message": "Data Breach Report"
},
@@ -1362,6 +1491,9 @@
"premiumSignUpTwoStep": {
"message": "YubiKey나 FIDO U2F, Duo 등의 추가적인 2단계 인증 옵션."
},
"premiumSignUpReports": {
"message": "Password hygiene, account health, and data breach reports to keep your vault safe."
},
"premiumSignUpTotp": {
"message": "보관함에 등록된 로그인 항목을 위한 TOTP 인증 코드(2FA) 생성기."
},
@@ -2531,15 +2663,19 @@
},
"strong": {
"message": "Strong",
"description": "ex. A strong password. Scale: Weak -> Good -> Strong"
"description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"good": {
"message": "Good",
"description": "ex. A good password. Scale: Weak -> Good -> Strong"
"description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weak": {
"message": "Weak",
"description": "ex. A weak password. Scale: Weak -> Good -> Strong"
"description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"veryWeak": {
"message": "Very Weak",
"description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weakMasterPassword": {
"message": "Weak Master Password"
@@ -2580,5 +2716,9 @@
"dontAskFingerprintAgain": {
"message": "Don't ask to verify fingerprint phrase again",
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"free": {
"message": "Free",
"description": "Free, as in 'Free beer'"
}
}

View File

@@ -1284,6 +1284,135 @@
"reports": {
"message": "Rapporter"
},
"unsecuredWebsitesReport": {
"message": "Unsecured Websites Report"
},
"unsecuredWebsitesReportDesc": {
"message": "Using unsecured websites with the http:\/\/ scheme can be dangerous. If the website allows, you should always access it using the https:\/\/ scheme so that your connection is encrypted."
},
"unsecuredWebsitesFound": {
"message": "Unsecured Websites Found"
},
"unsecuredWebsitesFoundDesc": {
"message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:\/\/ if the website allows it.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noUnsecuredWebsites": {
"message": "No items in your vault have unsecured URIs."
},
"inactive2faReport": {
"message": "Inactive 2FA Report"
},
"inactive2faReportDesc": {
"message": "Two-factor authentication (2FA) is an important security setting that helps secure your accounts. If the website offers it, you should always enable two-factor authentication."
},
"inactive2faFound": {
"message": "Logins Without 2FA Found"
},
"inactive2faFoundDesc": {
"message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to twofactorauth.org). To further protect these accounts, you should enable two-factor authentication.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noInactive2fa": {
"message": "No websites were found in your vault with a missing two-factor authentication configuration."
},
"instructions": {
"message": "Instructions"
},
"exposedPasswordsReport": {
"message": "Exposed Passwords Report"
},
"exposedPasswordsReportDesc": {
"message": "Exposed passwords are passwords have been uncovered in known data breaches that were released publicly or sold on the dark web by hackers."
},
"exposedPasswordsFound": {
"message": "Exposed Passwords Found"
},
"exposedPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noExposedPasswords": {
"message": "No items in your vault have passwords that have been exposed in known data breaches."
},
"checkExposedPasswords": {
"message": "Check Exposed Passwords"
},
"exposedXTimes": {
"message": "Exposed $COUNT$ time(s)",
"placeholders": {
"count": {
"content": "$1",
"example": "52"
}
}
},
"weakPasswordsReport": {
"message": "Weak Passwords Report"
},
"weakPasswordsReportDesc": {
"message": "Weak passwords can easily be guessed by hackers and automated tools that are used to crack passwords. The Bitwarden password generator can help you create strong passwords."
},
"weakPasswordsFound": {
"message": "Weak Passwords Found"
},
"weakPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noWeakPasswords": {
"message": "No items in your vault have weak passwords."
},
"reusedPasswordsReport": {
"message": "Reused Passwords Report"
},
"reusedPasswordsReportDesc": {
"message": "If a service that you use is compromised, reusing the same password elsewhere can allow hackers to easily gain access to more of your online accounts. You should use a unique password for every account or service."
},
"reusedPasswordsFound": {
"message": "Reused Passwords Found"
},
"reusedPasswordsFoundDesc": {
"message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noReusedPasswords": {
"message": "No logins in your vault have passwords that are being reused."
},
"reusedXTimes": {
"message": "Reused $COUNT$ times",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"dataBreachReport": {
"message": "Databruddrapporter"
},
@@ -1362,6 +1491,9 @@
"premiumSignUpTwoStep": {
"message": "Ytterligere 2-trinnsinnloggingsmuligheter, slik som YubiKey, FIDO U2F, og Duo."
},
"premiumSignUpReports": {
"message": "Password hygiene, account health, and data breach reports to keep your vault safe."
},
"premiumSignUpTotp": {
"message": "TOTP-verifiseringskodegenerator (2FA) for innlogginger i ditt hvelv."
},
@@ -1384,10 +1516,10 @@
"message": "Utvidelser"
},
"premiumAccess": {
"message": "Premium tilgang"
"message": "Premium-tilgang"
},
"premiumAccessDesc": {
"message": "Du kan gi premium tilgang til alle brukere i din organisasjon for $PRICE$ \/$INTERVAL$.",
"message": "Du kan gi Premium-tilgang til alle brukere i din organisasjon for $PRICE$\/$INTERVAL$.",
"placeholders": {
"price": {
"content": "$1",
@@ -2531,21 +2663,25 @@
},
"strong": {
"message": "Sterkt",
"description": "ex. A strong password. Scale: Weak -> Good -> Strong"
"description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"good": {
"message": "Bra",
"description": "ex. A good password. Scale: Weak -> Good -> Strong"
"description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weak": {
"message": "Svakt",
"description": "ex. A weak password. Scale: Weak -> Good -> Strong"
"description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"veryWeak": {
"message": "Very Weak",
"description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weakMasterPassword": {
"message": "Svakt Superpassord"
"message": "Svakt superpassord"
},
"weakMasterPasswordDesc": {
"message": "Superpassordet du har valgt er svakt. Du bør bruke et sterkt superpassord (eller en passordfrase) for å sikre Bitwarden kontoen din på en forsvarlig måte. Er du sikker på at du vil bruke dette superpassordet?"
"message": "Superpassordet du har valgt er svakt. Du bør bruke et sterkt superpassord (eller en passordfrase) for å sikre Bitwarden-kontoen din på en forsvarlig måte. Er du sikker på at du vil bruke dette superpassordet?"
},
"rotateAccountEncKey": {
"message": "Oppdater også krypteringsnøkkelen til kontoen min"
@@ -2580,5 +2716,9 @@
"dontAskFingerprintAgain": {
"message": "Ikke be om bekreftelse av fingeravtrykksfrase flere ganger",
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"free": {
"message": "Free",
"description": "Free, as in 'Free beer'"
}
}

View File

@@ -1284,6 +1284,135 @@
"reports": {
"message": "Rapportages"
},
"unsecuredWebsitesReport": {
"message": "Unsecured Websites Report"
},
"unsecuredWebsitesReportDesc": {
"message": "Using unsecured websites with the http:\/\/ scheme can be dangerous. If the website allows, you should always access it using the https:\/\/ scheme so that your connection is encrypted."
},
"unsecuredWebsitesFound": {
"message": "Unsecured Websites Found"
},
"unsecuredWebsitesFoundDesc": {
"message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:\/\/ if the website allows it.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noUnsecuredWebsites": {
"message": "No items in your vault have unsecured URIs."
},
"inactive2faReport": {
"message": "Inactive 2FA Report"
},
"inactive2faReportDesc": {
"message": "Two-factor authentication (2FA) is an important security setting that helps secure your accounts. If the website offers it, you should always enable two-factor authentication."
},
"inactive2faFound": {
"message": "Logins Without 2FA Found"
},
"inactive2faFoundDesc": {
"message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to twofactorauth.org). To further protect these accounts, you should enable two-factor authentication.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noInactive2fa": {
"message": "No websites were found in your vault with a missing two-factor authentication configuration."
},
"instructions": {
"message": "Instructions"
},
"exposedPasswordsReport": {
"message": "Exposed Passwords Report"
},
"exposedPasswordsReportDesc": {
"message": "Exposed passwords are passwords have been uncovered in known data breaches that were released publicly or sold on the dark web by hackers."
},
"exposedPasswordsFound": {
"message": "Exposed Passwords Found"
},
"exposedPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noExposedPasswords": {
"message": "No items in your vault have passwords that have been exposed in known data breaches."
},
"checkExposedPasswords": {
"message": "Check Exposed Passwords"
},
"exposedXTimes": {
"message": "Exposed $COUNT$ time(s)",
"placeholders": {
"count": {
"content": "$1",
"example": "52"
}
}
},
"weakPasswordsReport": {
"message": "Weak Passwords Report"
},
"weakPasswordsReportDesc": {
"message": "Weak passwords can easily be guessed by hackers and automated tools that are used to crack passwords. The Bitwarden password generator can help you create strong passwords."
},
"weakPasswordsFound": {
"message": "Weak Passwords Found"
},
"weakPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noWeakPasswords": {
"message": "No items in your vault have weak passwords."
},
"reusedPasswordsReport": {
"message": "Reused Passwords Report"
},
"reusedPasswordsReportDesc": {
"message": "If a service that you use is compromised, reusing the same password elsewhere can allow hackers to easily gain access to more of your online accounts. You should use a unique password for every account or service."
},
"reusedPasswordsFound": {
"message": "Reused Passwords Found"
},
"reusedPasswordsFoundDesc": {
"message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noReusedPasswords": {
"message": "No logins in your vault have passwords that are being reused."
},
"reusedXTimes": {
"message": "Reused $COUNT$ times",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"dataBreachReport": {
"message": "Datalek verslag"
},
@@ -1362,6 +1491,9 @@
"premiumSignUpTwoStep": {
"message": "Extra tweestapsaanmeldingsopties zoals YubiKey, FIDO U2F en Duo."
},
"premiumSignUpReports": {
"message": "Password hygiene, account health, and data breach reports to keep your vault safe."
},
"premiumSignUpTotp": {
"message": "TOTP-verificatiecodegenerator (tweestapsaanmelding) voor aanmeldingsgegevens in uw kluis."
},
@@ -2531,15 +2663,19 @@
},
"strong": {
"message": "Sterk",
"description": "ex. A strong password. Scale: Weak -> Good -> Strong"
"description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"good": {
"message": "Goed",
"description": "ex. A good password. Scale: Weak -> Good -> Strong"
"description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weak": {
"message": "Zwak",
"description": "ex. A weak password. Scale: Weak -> Good -> Strong"
"description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"veryWeak": {
"message": "Very Weak",
"description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weakMasterPassword": {
"message": "Zwak hoofdwachtwoord"
@@ -2580,5 +2716,9 @@
"dontAskFingerprintAgain": {
"message": "Niet meer vragen om de vingerafdrukfrase te controleren",
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"free": {
"message": "Free",
"description": "Free, as in 'Free beer'"
}
}

View File

@@ -1284,6 +1284,135 @@
"reports": {
"message": "Raporty"
},
"unsecuredWebsitesReport": {
"message": "Unsecured Websites Report"
},
"unsecuredWebsitesReportDesc": {
"message": "Using unsecured websites with the http:\/\/ scheme can be dangerous. If the website allows, you should always access it using the https:\/\/ scheme so that your connection is encrypted."
},
"unsecuredWebsitesFound": {
"message": "Unsecured Websites Found"
},
"unsecuredWebsitesFoundDesc": {
"message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:\/\/ if the website allows it.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noUnsecuredWebsites": {
"message": "No items in your vault have unsecured URIs."
},
"inactive2faReport": {
"message": "Inactive 2FA Report"
},
"inactive2faReportDesc": {
"message": "Two-factor authentication (2FA) is an important security setting that helps secure your accounts. If the website offers it, you should always enable two-factor authentication."
},
"inactive2faFound": {
"message": "Logins Without 2FA Found"
},
"inactive2faFoundDesc": {
"message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to twofactorauth.org). To further protect these accounts, you should enable two-factor authentication.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noInactive2fa": {
"message": "No websites were found in your vault with a missing two-factor authentication configuration."
},
"instructions": {
"message": "Instructions"
},
"exposedPasswordsReport": {
"message": "Exposed Passwords Report"
},
"exposedPasswordsReportDesc": {
"message": "Exposed passwords are passwords have been uncovered in known data breaches that were released publicly or sold on the dark web by hackers."
},
"exposedPasswordsFound": {
"message": "Exposed Passwords Found"
},
"exposedPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noExposedPasswords": {
"message": "No items in your vault have passwords that have been exposed in known data breaches."
},
"checkExposedPasswords": {
"message": "Check Exposed Passwords"
},
"exposedXTimes": {
"message": "Exposed $COUNT$ time(s)",
"placeholders": {
"count": {
"content": "$1",
"example": "52"
}
}
},
"weakPasswordsReport": {
"message": "Weak Passwords Report"
},
"weakPasswordsReportDesc": {
"message": "Weak passwords can easily be guessed by hackers and automated tools that are used to crack passwords. The Bitwarden password generator can help you create strong passwords."
},
"weakPasswordsFound": {
"message": "Weak Passwords Found"
},
"weakPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noWeakPasswords": {
"message": "No items in your vault have weak passwords."
},
"reusedPasswordsReport": {
"message": "Reused Passwords Report"
},
"reusedPasswordsReportDesc": {
"message": "If a service that you use is compromised, reusing the same password elsewhere can allow hackers to easily gain access to more of your online accounts. You should use a unique password for every account or service."
},
"reusedPasswordsFound": {
"message": "Reused Passwords Found"
},
"reusedPasswordsFoundDesc": {
"message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noReusedPasswords": {
"message": "No logins in your vault have passwords that are being reused."
},
"reusedXTimes": {
"message": "Reused $COUNT$ times",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"dataBreachReport": {
"message": "Raport naruszenia danych"
},
@@ -1362,6 +1491,9 @@
"premiumSignUpTwoStep": {
"message": "Dodatkowe opcje dwustopniowego logowania, takie jak YubiKey, FIDO U2F i Duo."
},
"premiumSignUpReports": {
"message": "Password hygiene, account health, and data breach reports to keep your vault safe."
},
"premiumSignUpTotp": {
"message": "Generator kodów weryfikacyjnych TOTP (2FA) dla danych logowania w Twoim sejfie."
},
@@ -2531,15 +2663,19 @@
},
"strong": {
"message": "Silne",
"description": "ex. A strong password. Scale: Weak -> Good -> Strong"
"description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"good": {
"message": "Dobre",
"description": "ex. A good password. Scale: Weak -> Good -> Strong"
"description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weak": {
"message": "Słabe",
"description": "ex. A weak password. Scale: Weak -> Good -> Strong"
"description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"veryWeak": {
"message": "Very Weak",
"description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weakMasterPassword": {
"message": "Słabe hasło główne"
@@ -2580,5 +2716,9 @@
"dontAskFingerprintAgain": {
"message": "Nie pytaj ponownie o weryfikację hasła szyfrującego",
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"free": {
"message": "Free",
"description": "Free, as in 'Free beer'"
}
}

View File

@@ -772,7 +772,7 @@
"message": "Aviso"
},
"exportWarning": {
"message": "Essa exportação contém seus dados não criptografados no formato .csv. Você não deve armazená-lo ou enviá-lo por canais inseguros (como e-mail). Exclua imediatamente após terminar de usá-lo."
"message": "Essa exportação contém seus dados não criptografados no formato .csv. Você não deve armazená-lo ou enviá-lo por canais não seguros (como e-mail). Exclua imediatamente após terminar de usá-lo."
},
"exportMasterPassword": {
"message": "Insira a sua senha mestra para exportar os dados do seu cofre."
@@ -1284,6 +1284,135 @@
"reports": {
"message": "Relatórios"
},
"unsecuredWebsitesReport": {
"message": "Unsecured Websites Report"
},
"unsecuredWebsitesReportDesc": {
"message": "Using unsecured websites with the http:\/\/ scheme can be dangerous. If the website allows, you should always access it using the https:\/\/ scheme so that your connection is encrypted."
},
"unsecuredWebsitesFound": {
"message": "Unsecured Websites Found"
},
"unsecuredWebsitesFoundDesc": {
"message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:\/\/ if the website allows it.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noUnsecuredWebsites": {
"message": "No items in your vault have unsecured URIs."
},
"inactive2faReport": {
"message": "Inactive 2FA Report"
},
"inactive2faReportDesc": {
"message": "Two-factor authentication (2FA) is an important security setting that helps secure your accounts. If the website offers it, you should always enable two-factor authentication."
},
"inactive2faFound": {
"message": "Logins Without 2FA Found"
},
"inactive2faFoundDesc": {
"message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to twofactorauth.org). To further protect these accounts, you should enable two-factor authentication.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noInactive2fa": {
"message": "No websites were found in your vault with a missing two-factor authentication configuration."
},
"instructions": {
"message": "Instructions"
},
"exposedPasswordsReport": {
"message": "Exposed Passwords Report"
},
"exposedPasswordsReportDesc": {
"message": "Exposed passwords are passwords have been uncovered in known data breaches that were released publicly or sold on the dark web by hackers."
},
"exposedPasswordsFound": {
"message": "Exposed Passwords Found"
},
"exposedPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noExposedPasswords": {
"message": "No items in your vault have passwords that have been exposed in known data breaches."
},
"checkExposedPasswords": {
"message": "Check Exposed Passwords"
},
"exposedXTimes": {
"message": "Exposed $COUNT$ time(s)",
"placeholders": {
"count": {
"content": "$1",
"example": "52"
}
}
},
"weakPasswordsReport": {
"message": "Weak Passwords Report"
},
"weakPasswordsReportDesc": {
"message": "Weak passwords can easily be guessed by hackers and automated tools that are used to crack passwords. The Bitwarden password generator can help you create strong passwords."
},
"weakPasswordsFound": {
"message": "Weak Passwords Found"
},
"weakPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noWeakPasswords": {
"message": "No items in your vault have weak passwords."
},
"reusedPasswordsReport": {
"message": "Reused Passwords Report"
},
"reusedPasswordsReportDesc": {
"message": "If a service that you use is compromised, reusing the same password elsewhere can allow hackers to easily gain access to more of your online accounts. You should use a unique password for every account or service."
},
"reusedPasswordsFound": {
"message": "Reused Passwords Found"
},
"reusedPasswordsFoundDesc": {
"message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noReusedPasswords": {
"message": "No logins in your vault have passwords that are being reused."
},
"reusedXTimes": {
"message": "Reused $COUNT$ times",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"dataBreachReport": {
"message": "Relatório de Violação de Dados"
},
@@ -1362,6 +1491,9 @@
"premiumSignUpTwoStep": {
"message": "Opções adicionais de login em duas etapas, como YubiKey, FIDO U2F e Duo."
},
"premiumSignUpReports": {
"message": "Password hygiene, account health, and data breach reports to keep your vault safe."
},
"premiumSignUpTotp": {
"message": "Gerador de código de verificação TOTP (2FA) para logins no seu cofre."
},
@@ -2531,15 +2663,19 @@
},
"strong": {
"message": "Forte",
"description": "ex. A strong password. Scale: Weak -> Good -> Strong"
"description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"good": {
"message": "Boa",
"description": "ex. A good password. Scale: Weak -> Good -> Strong"
"description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weak": {
"message": "Fraca",
"description": "ex. A weak password. Scale: Weak -> Good -> Strong"
"description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"veryWeak": {
"message": "Very Weak",
"description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weakMasterPassword": {
"message": "Senha Mestra Fraca"
@@ -2580,5 +2716,9 @@
"dontAskFingerprintAgain": {
"message": "Não peça para verificar a frase biométrica novamente",
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"free": {
"message": "Free",
"description": "Free, as in 'Free beer'"
}
}

View File

@@ -1284,6 +1284,135 @@
"reports": {
"message": "Relatórios"
},
"unsecuredWebsitesReport": {
"message": "Relatório de websites inseguros"
},
"unsecuredWebsitesReportDesc": {
"message": "Utilizar websites inseguros com o esquema http:\/\/ pode ser perigoso. Se o website permitir, deve sempre aceder-lo utilizando o esquema https:\/\/ para que a sua ligação seja encriptada."
},
"unsecuredWebsitesFound": {
"message": "Websites inseguros encontrados"
},
"unsecuredWebsitesFoundDesc": {
"message": "Encontrámos $COUNT$ itens no seu cofre com URIs inseguros. Deve alterar os seus esquemas de URI para https:\/\/ se o website permitir.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noUnsecuredWebsites": {
"message": "Nenhum item no seu cofre tem URIs inseguros."
},
"inactive2faReport": {
"message": "Relatório de 2FA inativo"
},
"inactive2faReportDesc": {
"message": "Autenticação de dois fatores (2FA) é uma definição de segurança importante que ajuda a tornar a as suas contas seguras. Se o website a oferece, deve sempre ativar a autenticação de dois fatores."
},
"inactive2faFound": {
"message": "Credenciais sem 2FA encontradas"
},
"inactive2faFoundDesc": {
"message": "Encontrámos $COUNT$ website(s) no seu cofre que podem não estar configurados com autenticação de dois fatores (de acordo com twofactorauth.org). Para melhor proteger estas contas, deve ativar a autenticação de dois fatores.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noInactive2fa": {
"message": "Nenhum website foi encontrado no seu cofre com uma configuração de autenticação de dois fatores em falta."
},
"instructions": {
"message": "Instruções"
},
"exposedPasswordsReport": {
"message": "Relatório de palavras-passe expostas"
},
"exposedPasswordsReportDesc": {
"message": "Exposed passwords are passwords have been uncovered in known data breaches that were released publicly or sold on the dark web by hackers."
},
"exposedPasswordsFound": {
"message": "Palavras-passe expostas encontradas"
},
"exposedPasswordsFoundDesc": {
"message": "Encontrámos $COUNT$ itens no seu cofre que têm palavras-passe que foram expostas em brechas de dados conhecidas. Deve alterá-las para utilizar uma nova palavra-passe.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noExposedPasswords": {
"message": "Nenhum item no seu cofre tem palavras-passe que foram expostas em brechas de dados conhecidas."
},
"checkExposedPasswords": {
"message": "Verificar palavras-passe expostas"
},
"exposedXTimes": {
"message": "Exposta $COUNT$ vez(es)",
"placeholders": {
"count": {
"content": "$1",
"example": "52"
}
}
},
"weakPasswordsReport": {
"message": "Relatório de palavras-passe fracas"
},
"weakPasswordsReportDesc": {
"message": "As palavras-passe fracas podem ser facilmente adivinhadas por hackers e ferramentas automáticas que são utilizadas para decifrar palavras-passe. O gerador de palavras-passe do Bitwarden pode ajudar-lhe a criar palavras-passe fortes."
},
"weakPasswordsFound": {
"message": "Palavras-passe fracas encontradas"
},
"weakPasswordsFoundDesc": {
"message": "Encontrámos $COUNT$ itens no seu cofre com palavras-passe que não são fortes. Deve atualizá-los para utilizar palavras-passe mais fortes.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noWeakPasswords": {
"message": "Nenhum item no seu cofre tem palavras-passe fracas."
},
"reusedPasswordsReport": {
"message": "Relatório de palavras-passe reutilizadas"
},
"reusedPasswordsReportDesc": {
"message": "Se um serviço foi comprometido, reutilizar a mesma palavras-passe noutro lugar pode permitir ao hackers ganhar acesso facilmente a mais das suas contas online. Deve utilizar uma palavra-passe única para cada conta ou serviço."
},
"reusedPasswordsFound": {
"message": "Palavras-passe reutilizadas encontradas"
},
"reusedPasswordsFoundDesc": {
"message": "Encontrámos $COUNT$ palavras-passe que estão a ser reutilizadas no seu cofre. Deve alterá-las para um valor único.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noReusedPasswords": {
"message": "Nenhuma credencial no seu cofre tem palavras-passe que estão a ser reutilizadas."
},
"reusedXTimes": {
"message": "Reutilizada $COUNT$ vezes",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"dataBreachReport": {
"message": "Relatório de brecha de dados"
},
@@ -1357,11 +1486,14 @@
"message": "Atualize a sua conta para uma adesão premium e desbloqueie funcionalidades adicionais fantásticas."
},
"premiumSignUpStorage": {
"message": "1 GB de armazenamento encriptado."
"message": "1 GB de armazenamento encriptado para anexos de ficheiros."
},
"premiumSignUpTwoStep": {
"message": "Opções adicionais de início de sessão de dois passos, como YubiKey, FIDO U2F, e Duo."
},
"premiumSignUpReports": {
"message": "Higiene de palavras-passe, saúde das contas, e relatórios de brechas de dados para manter o seu cofre seguro."
},
"premiumSignUpTotp": {
"message": "Gerador de códigos de verificação TOTP (2FA) para aceder ao seu cofre."
},
@@ -2531,15 +2663,19 @@
},
"strong": {
"message": "Forte",
"description": "ex. A strong password. Scale: Weak -> Good -> Strong"
"description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"good": {
"message": "Boa",
"description": "ex. A good password. Scale: Weak -> Good -> Strong"
"description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weak": {
"message": "Fraca",
"description": "ex. A weak password. Scale: Weak -> Good -> Strong"
"description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"veryWeak": {
"message": "Muito fraca",
"description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weakMasterPassword": {
"message": "Palavra-passe mestra fraca"
@@ -2580,5 +2716,9 @@
"dontAskFingerprintAgain": {
"message": "Não perguntar para verificar frase de impressão digital novamente",
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"free": {
"message": "Gratuito",
"description": "Free, as in 'Free beer'"
}
}

View File

@@ -839,7 +839,7 @@
}
},
"loggedOutWarning": {
"message": "В случае продолжения, ваша сессия будет завершена и вам будет предложено авторизоваться повторно. Сеансы на других устройствах могут продолжать оставаться активными в течение одного часа."
"message": "В случае продолжения, ваша сессия будет завершена и вам будет предложено авторизоваться повторно. Сессии на других устройствах могут оставаться активными в течение одного часа."
},
"emailChanged": {
"message": "Email изменен"
@@ -911,7 +911,7 @@
"message": "Беспокоитесь о том, что ваша учетная запись авторизована на другом устройстве? Чтобы деавторизовать все ранее использовавшиеся компьютеры или устройства, выполните действие ниже. Этот шаг безопасности рекомендуется, если вы ранее использовали общедоступный компьютер или случайно сохранили свой пароль на устройстве, которое вам не принадлежит. Это действие также очистит все ранее сохраненные сессии двухфакторной аутентификации."
},
"deauthorizeSessionsWarning": {
"message": "В случае продолжения, ваша сессия будет завершена и вам будет предложено авторизоваться повторно. При активированной двухфакторной аутентификации вам потребуется ввести код. Сеансы на других устройствах могут продолжать оставаться активными в течение одного часа."
"message": "В случае продолжения, ваша сессия будет завершена и вам будет предложено авторизоваться повторно. При активированной двухфакторной аутентификации вам потребуется ввести код. Сессии на других устройствах могут оставаться активными в течение одного часа."
},
"sessionsDeauthorized": {
"message": "Все сессии деавторизованы"
@@ -1284,6 +1284,135 @@
"reports": {
"message": "Отчеты"
},
"unsecuredWebsitesReport": {
"message": "Unsecured Websites Report"
},
"unsecuredWebsitesReportDesc": {
"message": "Using unsecured websites with the http:\/\/ scheme can be dangerous. If the website allows, you should always access it using the https:\/\/ scheme so that your connection is encrypted."
},
"unsecuredWebsitesFound": {
"message": "Unsecured Websites Found"
},
"unsecuredWebsitesFoundDesc": {
"message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:\/\/ if the website allows it.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noUnsecuredWebsites": {
"message": "No items in your vault have unsecured URIs."
},
"inactive2faReport": {
"message": "Inactive 2FA Report"
},
"inactive2faReportDesc": {
"message": "Two-factor authentication (2FA) is an important security setting that helps secure your accounts. If the website offers it, you should always enable two-factor authentication."
},
"inactive2faFound": {
"message": "Logins Without 2FA Found"
},
"inactive2faFoundDesc": {
"message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to twofactorauth.org). To further protect these accounts, you should enable two-factor authentication.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noInactive2fa": {
"message": "No websites were found in your vault with a missing two-factor authentication configuration."
},
"instructions": {
"message": "Instructions"
},
"exposedPasswordsReport": {
"message": "Exposed Passwords Report"
},
"exposedPasswordsReportDesc": {
"message": "Exposed passwords are passwords have been uncovered in known data breaches that were released publicly or sold on the dark web by hackers."
},
"exposedPasswordsFound": {
"message": "Exposed Passwords Found"
},
"exposedPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noExposedPasswords": {
"message": "No items in your vault have passwords that have been exposed in known data breaches."
},
"checkExposedPasswords": {
"message": "Check Exposed Passwords"
},
"exposedXTimes": {
"message": "Exposed $COUNT$ time(s)",
"placeholders": {
"count": {
"content": "$1",
"example": "52"
}
}
},
"weakPasswordsReport": {
"message": "Weak Passwords Report"
},
"weakPasswordsReportDesc": {
"message": "Weak passwords can easily be guessed by hackers and automated tools that are used to crack passwords. The Bitwarden password generator can help you create strong passwords."
},
"weakPasswordsFound": {
"message": "Weak Passwords Found"
},
"weakPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noWeakPasswords": {
"message": "No items in your vault have weak passwords."
},
"reusedPasswordsReport": {
"message": "Reused Passwords Report"
},
"reusedPasswordsReportDesc": {
"message": "If a service that you use is compromised, reusing the same password elsewhere can allow hackers to easily gain access to more of your online accounts. You should use a unique password for every account or service."
},
"reusedPasswordsFound": {
"message": "Reused Passwords Found"
},
"reusedPasswordsFoundDesc": {
"message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noReusedPasswords": {
"message": "No logins in your vault have passwords that are being reused."
},
"reusedXTimes": {
"message": "Reused $COUNT$ times",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"dataBreachReport": {
"message": "Отчет об утечке данных"
},
@@ -1362,6 +1491,9 @@
"premiumSignUpTwoStep": {
"message": "Дополнительные варианты двухфакторной аутентификации, такие как YubiKey, FIDO U2F и Duo."
},
"premiumSignUpReports": {
"message": "Password hygiene, account health, and data breach reports to keep your vault safe."
},
"premiumSignUpTotp": {
"message": "Генератор кода подтверждения TOTP для входа в ваше хранилище."
},
@@ -2531,15 +2663,19 @@
},
"strong": {
"message": "Сильный",
"description": "ex. A strong password. Scale: Weak -> Good -> Strong"
"description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"good": {
"message": "Хороший",
"description": "ex. A good password. Scale: Weak -> Good -> Strong"
"description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weak": {
"message": "Слабый",
"description": "ex. A weak password. Scale: Weak -> Good -> Strong"
"description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"veryWeak": {
"message": "Very Weak",
"description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weakMasterPassword": {
"message": "Слабый мастер-пароль"
@@ -2580,5 +2716,9 @@
"dontAskFingerprintAgain": {
"message": "Больше не запрашивать верификацию фразы отпечатка",
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"free": {
"message": "Free",
"description": "Free, as in 'Free beer'"
}
}

View File

@@ -1284,6 +1284,135 @@
"reports": {
"message": "Reporty"
},
"unsecuredWebsitesReport": {
"message": "Unsecured Websites Report"
},
"unsecuredWebsitesReportDesc": {
"message": "Using unsecured websites with the http:\/\/ scheme can be dangerous. If the website allows, you should always access it using the https:\/\/ scheme so that your connection is encrypted."
},
"unsecuredWebsitesFound": {
"message": "Unsecured Websites Found"
},
"unsecuredWebsitesFoundDesc": {
"message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:\/\/ if the website allows it.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noUnsecuredWebsites": {
"message": "No items in your vault have unsecured URIs."
},
"inactive2faReport": {
"message": "Inactive 2FA Report"
},
"inactive2faReportDesc": {
"message": "Two-factor authentication (2FA) is an important security setting that helps secure your accounts. If the website offers it, you should always enable two-factor authentication."
},
"inactive2faFound": {
"message": "Logins Without 2FA Found"
},
"inactive2faFoundDesc": {
"message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to twofactorauth.org). To further protect these accounts, you should enable two-factor authentication.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noInactive2fa": {
"message": "No websites were found in your vault with a missing two-factor authentication configuration."
},
"instructions": {
"message": "Instructions"
},
"exposedPasswordsReport": {
"message": "Exposed Passwords Report"
},
"exposedPasswordsReportDesc": {
"message": "Exposed passwords are passwords have been uncovered in known data breaches that were released publicly or sold on the dark web by hackers."
},
"exposedPasswordsFound": {
"message": "Exposed Passwords Found"
},
"exposedPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noExposedPasswords": {
"message": "No items in your vault have passwords that have been exposed in known data breaches."
},
"checkExposedPasswords": {
"message": "Check Exposed Passwords"
},
"exposedXTimes": {
"message": "Exposed $COUNT$ time(s)",
"placeholders": {
"count": {
"content": "$1",
"example": "52"
}
}
},
"weakPasswordsReport": {
"message": "Weak Passwords Report"
},
"weakPasswordsReportDesc": {
"message": "Weak passwords can easily be guessed by hackers and automated tools that are used to crack passwords. The Bitwarden password generator can help you create strong passwords."
},
"weakPasswordsFound": {
"message": "Weak Passwords Found"
},
"weakPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noWeakPasswords": {
"message": "No items in your vault have weak passwords."
},
"reusedPasswordsReport": {
"message": "Reused Passwords Report"
},
"reusedPasswordsReportDesc": {
"message": "If a service that you use is compromised, reusing the same password elsewhere can allow hackers to easily gain access to more of your online accounts. You should use a unique password for every account or service."
},
"reusedPasswordsFound": {
"message": "Reused Passwords Found"
},
"reusedPasswordsFoundDesc": {
"message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noReusedPasswords": {
"message": "No logins in your vault have passwords that are being reused."
},
"reusedXTimes": {
"message": "Reused $COUNT$ times",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"dataBreachReport": {
"message": "Report o úniku dát"
},
@@ -1362,6 +1491,9 @@
"premiumSignUpTwoStep": {
"message": "Ďalšie možnosti dvojstupňového prihlásenia ako YubiKey, FIDO U2F a Duo."
},
"premiumSignUpReports": {
"message": "Password hygiene, account health, and data breach reports to keep your vault safe."
},
"premiumSignUpTotp": {
"message": "Generátor TOTP verifikačného kódu (2FA) pre kontá vo vašom trezore."
},
@@ -2531,15 +2663,19 @@
},
"strong": {
"message": "Silné",
"description": "ex. A strong password. Scale: Weak -> Good -> Strong"
"description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"good": {
"message": "Dobré",
"description": "ex. A good password. Scale: Weak -> Good -> Strong"
"description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weak": {
"message": "Slabé",
"description": "ex. A weak password. Scale: Weak -> Good -> Strong"
"description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"veryWeak": {
"message": "Very Weak",
"description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weakMasterPassword": {
"message": "Slabé hlavné heslo"
@@ -2580,5 +2716,9 @@
"dontAskFingerprintAgain": {
"message": "Nepýtať sa znovu na overenie frázy odtlačku",
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"free": {
"message": "Free",
"description": "Free, as in 'Free beer'"
}
}

View File

@@ -1284,6 +1284,135 @@
"reports": {
"message": "Rapporter"
},
"unsecuredWebsitesReport": {
"message": "Unsecured Websites Report"
},
"unsecuredWebsitesReportDesc": {
"message": "Using unsecured websites with the http:\/\/ scheme can be dangerous. If the website allows, you should always access it using the https:\/\/ scheme so that your connection is encrypted."
},
"unsecuredWebsitesFound": {
"message": "Unsecured Websites Found"
},
"unsecuredWebsitesFoundDesc": {
"message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:\/\/ if the website allows it.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noUnsecuredWebsites": {
"message": "No items in your vault have unsecured URIs."
},
"inactive2faReport": {
"message": "Inactive 2FA Report"
},
"inactive2faReportDesc": {
"message": "Two-factor authentication (2FA) is an important security setting that helps secure your accounts. If the website offers it, you should always enable two-factor authentication."
},
"inactive2faFound": {
"message": "Logins Without 2FA Found"
},
"inactive2faFoundDesc": {
"message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to twofactorauth.org). To further protect these accounts, you should enable two-factor authentication.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noInactive2fa": {
"message": "No websites were found in your vault with a missing two-factor authentication configuration."
},
"instructions": {
"message": "Instructions"
},
"exposedPasswordsReport": {
"message": "Exposed Passwords Report"
},
"exposedPasswordsReportDesc": {
"message": "Exposed passwords are passwords have been uncovered in known data breaches that were released publicly or sold on the dark web by hackers."
},
"exposedPasswordsFound": {
"message": "Exposed Passwords Found"
},
"exposedPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noExposedPasswords": {
"message": "No items in your vault have passwords that have been exposed in known data breaches."
},
"checkExposedPasswords": {
"message": "Check Exposed Passwords"
},
"exposedXTimes": {
"message": "Exposed $COUNT$ time(s)",
"placeholders": {
"count": {
"content": "$1",
"example": "52"
}
}
},
"weakPasswordsReport": {
"message": "Weak Passwords Report"
},
"weakPasswordsReportDesc": {
"message": "Weak passwords can easily be guessed by hackers and automated tools that are used to crack passwords. The Bitwarden password generator can help you create strong passwords."
},
"weakPasswordsFound": {
"message": "Weak Passwords Found"
},
"weakPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noWeakPasswords": {
"message": "No items in your vault have weak passwords."
},
"reusedPasswordsReport": {
"message": "Reused Passwords Report"
},
"reusedPasswordsReportDesc": {
"message": "If a service that you use is compromised, reusing the same password elsewhere can allow hackers to easily gain access to more of your online accounts. You should use a unique password for every account or service."
},
"reusedPasswordsFound": {
"message": "Reused Passwords Found"
},
"reusedPasswordsFoundDesc": {
"message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noReusedPasswords": {
"message": "No logins in your vault have passwords that are being reused."
},
"reusedXTimes": {
"message": "Reused $COUNT$ times",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"dataBreachReport": {
"message": "Data Breach Report"
},
@@ -1362,6 +1491,9 @@
"premiumSignUpTwoStep": {
"message": "Ytterligare alternativ för tvåstegsverifiering såsom YubiKey, FIDO U2F och Duo."
},
"premiumSignUpReports": {
"message": "Password hygiene, account health, and data breach reports to keep your vault safe."
},
"premiumSignUpTotp": {
"message": "TOTP verifieringskod-generator (2FA) för inloggningar i ditt valv."
},
@@ -2531,15 +2663,19 @@
},
"strong": {
"message": "Strong",
"description": "ex. A strong password. Scale: Weak -> Good -> Strong"
"description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"good": {
"message": "Good",
"description": "ex. A good password. Scale: Weak -> Good -> Strong"
"description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weak": {
"message": "Weak",
"description": "ex. A weak password. Scale: Weak -> Good -> Strong"
"description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"veryWeak": {
"message": "Very Weak",
"description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weakMasterPassword": {
"message": "Weak Master Password"
@@ -2580,5 +2716,9 @@
"dontAskFingerprintAgain": {
"message": "Don't ask to verify fingerprint phrase again",
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"free": {
"message": "Free",
"description": "Free, as in 'Free beer'"
}
}

View File

@@ -1284,6 +1284,135 @@
"reports": {
"message": "Reports"
},
"unsecuredWebsitesReport": {
"message": "Unsecured Websites Report"
},
"unsecuredWebsitesReportDesc": {
"message": "Using unsecured websites with the http:\/\/ scheme can be dangerous. If the website allows, you should always access it using the https:\/\/ scheme so that your connection is encrypted."
},
"unsecuredWebsitesFound": {
"message": "Unsecured Websites Found"
},
"unsecuredWebsitesFoundDesc": {
"message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:\/\/ if the website allows it.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noUnsecuredWebsites": {
"message": "No items in your vault have unsecured URIs."
},
"inactive2faReport": {
"message": "Inactive 2FA Report"
},
"inactive2faReportDesc": {
"message": "Two-factor authentication (2FA) is an important security setting that helps secure your accounts. If the website offers it, you should always enable two-factor authentication."
},
"inactive2faFound": {
"message": "Logins Without 2FA Found"
},
"inactive2faFoundDesc": {
"message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to twofactorauth.org). To further protect these accounts, you should enable two-factor authentication.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noInactive2fa": {
"message": "No websites were found in your vault with a missing two-factor authentication configuration."
},
"instructions": {
"message": "Instructions"
},
"exposedPasswordsReport": {
"message": "Exposed Passwords Report"
},
"exposedPasswordsReportDesc": {
"message": "Exposed passwords are passwords have been uncovered in known data breaches that were released publicly or sold on the dark web by hackers."
},
"exposedPasswordsFound": {
"message": "Exposed Passwords Found"
},
"exposedPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noExposedPasswords": {
"message": "No items in your vault have passwords that have been exposed in known data breaches."
},
"checkExposedPasswords": {
"message": "Check Exposed Passwords"
},
"exposedXTimes": {
"message": "Exposed $COUNT$ time(s)",
"placeholders": {
"count": {
"content": "$1",
"example": "52"
}
}
},
"weakPasswordsReport": {
"message": "Weak Passwords Report"
},
"weakPasswordsReportDesc": {
"message": "Weak passwords can easily be guessed by hackers and automated tools that are used to crack passwords. The Bitwarden password generator can help you create strong passwords."
},
"weakPasswordsFound": {
"message": "Weak Passwords Found"
},
"weakPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noWeakPasswords": {
"message": "No items in your vault have weak passwords."
},
"reusedPasswordsReport": {
"message": "Reused Passwords Report"
},
"reusedPasswordsReportDesc": {
"message": "If a service that you use is compromised, reusing the same password elsewhere can allow hackers to easily gain access to more of your online accounts. You should use a unique password for every account or service."
},
"reusedPasswordsFound": {
"message": "Reused Passwords Found"
},
"reusedPasswordsFoundDesc": {
"message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noReusedPasswords": {
"message": "No logins in your vault have passwords that are being reused."
},
"reusedXTimes": {
"message": "Reused $COUNT$ times",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"dataBreachReport": {
"message": "Data Breach Report"
},
@@ -1362,6 +1491,9 @@
"premiumSignUpTwoStep": {
"message": "Additional two-step login options such as YubiKey, FIDO U2F, and Duo."
},
"premiumSignUpReports": {
"message": "Password hygiene, account health, and data breach reports to keep your vault safe."
},
"premiumSignUpTotp": {
"message": "TOTP verification code (2FA) generator for logins in your vault."
},
@@ -2531,15 +2663,19 @@
},
"strong": {
"message": "Strong",
"description": "ex. A strong password. Scale: Weak -> Good -> Strong"
"description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"good": {
"message": "Good",
"description": "ex. A good password. Scale: Weak -> Good -> Strong"
"description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weak": {
"message": "Weak",
"description": "ex. A weak password. Scale: Weak -> Good -> Strong"
"description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"veryWeak": {
"message": "Very Weak",
"description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weakMasterPassword": {
"message": "Weak Master Password"
@@ -2580,5 +2716,9 @@
"dontAskFingerprintAgain": {
"message": "Don't ask to verify fingerprint phrase again",
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"free": {
"message": "Free",
"description": "Free, as in 'Free beer'"
}
}

View File

@@ -208,7 +208,7 @@
"message": "Перемкнути видимість"
},
"toggleCollapse": {
"message": "Toggle Collapse",
"message": "Згорнути\/розгорнути",
"description": "Toggling an expand\/collapse state."
},
"generatePassword": {
@@ -746,7 +746,7 @@
}
},
"shareSelectedItemsCountDesc": {
"message": "You have selected $COUNT$ item(s). $SHAREABLE_COUNT$ items are sharable, $NONSHAREABLE_COUNT$ are not.",
"message": "Ви обрали $COUNT$ елементів. $SHAREABLE_COUNT$ елементів є спільними, $NONSHAREABLE_COUNT$ не є спільними.",
"placeholders": {
"count": {
"content": "$1",
@@ -1284,6 +1284,135 @@
"reports": {
"message": "Звіти"
},
"unsecuredWebsitesReport": {
"message": "Unsecured Websites Report"
},
"unsecuredWebsitesReportDesc": {
"message": "Using unsecured websites with the http:\/\/ scheme can be dangerous. If the website allows, you should always access it using the https:\/\/ scheme so that your connection is encrypted."
},
"unsecuredWebsitesFound": {
"message": "Unsecured Websites Found"
},
"unsecuredWebsitesFoundDesc": {
"message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:\/\/ if the website allows it.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noUnsecuredWebsites": {
"message": "No items in your vault have unsecured URIs."
},
"inactive2faReport": {
"message": "Inactive 2FA Report"
},
"inactive2faReportDesc": {
"message": "Two-factor authentication (2FA) is an important security setting that helps secure your accounts. If the website offers it, you should always enable two-factor authentication."
},
"inactive2faFound": {
"message": "Logins Without 2FA Found"
},
"inactive2faFoundDesc": {
"message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to twofactorauth.org). To further protect these accounts, you should enable two-factor authentication.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noInactive2fa": {
"message": "No websites were found in your vault with a missing two-factor authentication configuration."
},
"instructions": {
"message": "Instructions"
},
"exposedPasswordsReport": {
"message": "Exposed Passwords Report"
},
"exposedPasswordsReportDesc": {
"message": "Exposed passwords are passwords have been uncovered in known data breaches that were released publicly or sold on the dark web by hackers."
},
"exposedPasswordsFound": {
"message": "Exposed Passwords Found"
},
"exposedPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noExposedPasswords": {
"message": "No items in your vault have passwords that have been exposed in known data breaches."
},
"checkExposedPasswords": {
"message": "Check Exposed Passwords"
},
"exposedXTimes": {
"message": "Exposed $COUNT$ time(s)",
"placeholders": {
"count": {
"content": "$1",
"example": "52"
}
}
},
"weakPasswordsReport": {
"message": "Weak Passwords Report"
},
"weakPasswordsReportDesc": {
"message": "Weak passwords can easily be guessed by hackers and automated tools that are used to crack passwords. The Bitwarden password generator can help you create strong passwords."
},
"weakPasswordsFound": {
"message": "Weak Passwords Found"
},
"weakPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noWeakPasswords": {
"message": "No items in your vault have weak passwords."
},
"reusedPasswordsReport": {
"message": "Reused Passwords Report"
},
"reusedPasswordsReportDesc": {
"message": "If a service that you use is compromised, reusing the same password elsewhere can allow hackers to easily gain access to more of your online accounts. You should use a unique password for every account or service."
},
"reusedPasswordsFound": {
"message": "Reused Passwords Found"
},
"reusedPasswordsFoundDesc": {
"message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noReusedPasswords": {
"message": "No logins in your vault have passwords that are being reused."
},
"reusedXTimes": {
"message": "Reused $COUNT$ times",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"dataBreachReport": {
"message": "Звіт про витік даних"
},
@@ -1362,6 +1491,9 @@
"premiumSignUpTwoStep": {
"message": "Додаткові можливості двохетапної перевірки, наприклад, YubiKey, FIDO U2F та Duo."
},
"premiumSignUpReports": {
"message": "Password hygiene, account health, and data breach reports to keep your vault safe."
},
"premiumSignUpTotp": {
"message": "Генератор коду авторизації TOTP (2FA) для входу в сховище."
},
@@ -1384,10 +1516,10 @@
"message": "Додатки"
},
"premiumAccess": {
"message": "Premium Access"
"message": "Преміум-доступ"
},
"premiumAccessDesc": {
"message": "You can add premium access to all members of your organization for $PRICE$ \/$INTERVAL$.",
"message": "Ви можете додати преміум-доступ для всіх учасників вашої організації за $PRICE$ \/$INTERVAL$.",
"placeholders": {
"price": {
"content": "$1",
@@ -2202,7 +2334,7 @@
"message": "Підтвердити"
},
"confirmUser": {
"message": "Confirm User"
"message": "Підтвердити користувача"
},
"hasBeenConfirmed": {
"message": "$USER$ було підтверджено.",
@@ -2530,55 +2662,63 @@
"message": "Хто є власником цього елемента?"
},
"strong": {
"message": "Strong",
"description": "ex. A strong password. Scale: Weak -> Good -> Strong"
"message": "Надійний",
"description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"good": {
"message": "Good",
"description": "ex. A good password. Scale: Weak -> Good -> Strong"
"message": "Хороший",
"description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weak": {
"message": "Weak",
"description": "ex. A weak password. Scale: Weak -> Good -> Strong"
"message": "Слабкий",
"description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"veryWeak": {
"message": "Very Weak",
"description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weakMasterPassword": {
"message": "Weak Master Password"
"message": "Слабкий головний пароль"
},
"weakMasterPasswordDesc": {
"message": "The master password you have chosen is weak. You should use a strong master password (or a passphrase) to properly protect your Bitwarden account. Are you sure you want to use this master password?"
"message": "Обраний вами головний пароль є слабким. Для належного захисту свого облікового запису Bitwarden, вам слід використовувати надійний головний пароль (або парольну фразу). Ви впевнені, що хочете використати цей пароль?"
},
"rotateAccountEncKey": {
"message": "Also rotate my account's encryption key"
"message": "Також повернути ключ шифрування мого облікового запису"
},
"rotateEncKeyTitle": {
"message": "Rotate Encryption Key"
"message": "Повернути ключ шифрування"
},
"rotateEncKeyConfirmation": {
"message": "Are you sure you want to rotate your account's encryption key?"
"message": "Ви справді хочете повернути ключ шифрування облікового запису?"
},
"attachmentsNeedFix": {
"message": "This item has old file attachments that need to be fixed."
"message": "Цей елемент має старі вкладені файли, які необхідно виправити."
},
"attachmentFixDesc": {
"message": "This is an old file attachment the needs to be fixed. Click to learn more."
"message": "Цей старий вкладений файл необхідно виправити. Натисніть, щоб дізнатися більше."
},
"fix": {
"message": "Fix",
"message": "Виправити",
"description": "This is a verb. ex. 'Fix The Car'"
},
"oldAttachmentsNeedFixDesc": {
"message": "There are old file attachments in your vault that need to be fixed before you can rotate your account's encryption key."
"message": "У вашому сховищі є старі вкладені файли, які необхідно виправити перед тим, як повертати ключ шифрування облікового запису."
},
"yourAccountsFingerprint": {
"message": "Your account's fingerprint phrase",
"message": "Фраза відбитку пальця облікового запису",
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"fingerprintEnsureIntegrityVerify": {
"message": "To ensure the integrity of your encryption keys, please verify the user's fingerprint phrase before continuing.",
"message": "Для забезпечення цілісності ваших ключів шифрування, будь ласка, засвідчіть фразу відбитку пальця користувача.",
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"dontAskFingerprintAgain": {
"message": "Don't ask to verify fingerprint phrase again",
"message": "Не питати знову про засвідчення фрази відбитку",
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"free": {
"message": "Free",
"description": "Free, as in 'Free beer'"
}
}

View File

@@ -208,7 +208,7 @@
"message": "切换可见性"
},
"toggleCollapse": {
"message": "Toggle Collapse",
"message": "切换折叠",
"description": "Toggling an expand\/collapse state."
},
"generatePassword": {
@@ -746,7 +746,7 @@
}
},
"shareSelectedItemsCountDesc": {
"message": "You have selected $COUNT$ item(s). $SHAREABLE_COUNT$ items are sharable, $NONSHAREABLE_COUNT$ are not.",
"message": "您选择了 $COUNT$ 个项目。 $SHAREABLE_COUNT$ 个项目可共享,$NONSHAREABLE_COUNT$ 个项目不可共享。",
"placeholders": {
"count": {
"content": "$1",
@@ -1284,6 +1284,135 @@
"reports": {
"message": "报告"
},
"unsecuredWebsitesReport": {
"message": "Unsecured Websites Report"
},
"unsecuredWebsitesReportDesc": {
"message": "Using unsecured websites with the http:\/\/ scheme can be dangerous. If the website allows, you should always access it using the https:\/\/ scheme so that your connection is encrypted."
},
"unsecuredWebsitesFound": {
"message": "Unsecured Websites Found"
},
"unsecuredWebsitesFoundDesc": {
"message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:\/\/ if the website allows it.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noUnsecuredWebsites": {
"message": "No items in your vault have unsecured URIs."
},
"inactive2faReport": {
"message": "Inactive 2FA Report"
},
"inactive2faReportDesc": {
"message": "Two-factor authentication (2FA) is an important security setting that helps secure your accounts. If the website offers it, you should always enable two-factor authentication."
},
"inactive2faFound": {
"message": "Logins Without 2FA Found"
},
"inactive2faFoundDesc": {
"message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to twofactorauth.org). To further protect these accounts, you should enable two-factor authentication.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noInactive2fa": {
"message": "No websites were found in your vault with a missing two-factor authentication configuration."
},
"instructions": {
"message": "Instructions"
},
"exposedPasswordsReport": {
"message": "Exposed Passwords Report"
},
"exposedPasswordsReportDesc": {
"message": "Exposed passwords are passwords have been uncovered in known data breaches that were released publicly or sold on the dark web by hackers."
},
"exposedPasswordsFound": {
"message": "Exposed Passwords Found"
},
"exposedPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noExposedPasswords": {
"message": "No items in your vault have passwords that have been exposed in known data breaches."
},
"checkExposedPasswords": {
"message": "Check Exposed Passwords"
},
"exposedXTimes": {
"message": "Exposed $COUNT$ time(s)",
"placeholders": {
"count": {
"content": "$1",
"example": "52"
}
}
},
"weakPasswordsReport": {
"message": "Weak Passwords Report"
},
"weakPasswordsReportDesc": {
"message": "Weak passwords can easily be guessed by hackers and automated tools that are used to crack passwords. The Bitwarden password generator can help you create strong passwords."
},
"weakPasswordsFound": {
"message": "Weak Passwords Found"
},
"weakPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noWeakPasswords": {
"message": "No items in your vault have weak passwords."
},
"reusedPasswordsReport": {
"message": "Reused Passwords Report"
},
"reusedPasswordsReportDesc": {
"message": "If a service that you use is compromised, reusing the same password elsewhere can allow hackers to easily gain access to more of your online accounts. You should use a unique password for every account or service."
},
"reusedPasswordsFound": {
"message": "Reused Passwords Found"
},
"reusedPasswordsFoundDesc": {
"message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noReusedPasswords": {
"message": "No logins in your vault have passwords that are being reused."
},
"reusedXTimes": {
"message": "Reused $COUNT$ times",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"dataBreachReport": {
"message": "数据泄露报告"
},
@@ -1362,6 +1491,9 @@
"premiumSignUpTwoStep": {
"message": "其他两步登录选项,如 YubiKey、FIDO U2F 和 Duo。"
},
"premiumSignUpReports": {
"message": "Password hygiene, account health, and data breach reports to keep your vault safe."
},
"premiumSignUpTotp": {
"message": "用于登录密码库的 TOTP 验证码(两步验证)生成器。"
},
@@ -2202,7 +2334,7 @@
"message": "确认"
},
"confirmUser": {
"message": "Confirm User"
"message": "确认用户"
},
"hasBeenConfirmed": {
"message": "已确认 $USER$。",
@@ -2530,22 +2662,26 @@
"message": "谁拥有这个项目?"
},
"strong": {
"message": "Strong",
"description": "ex. A strong password. Scale: Weak -> Good -> Strong"
"message": "",
"description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"good": {
"message": "Good",
"description": "ex. A good password. Scale: Weak -> Good -> Strong"
"message": "良好",
"description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weak": {
"message": "Weak",
"description": "ex. A weak password. Scale: Weak -> Good -> Strong"
"message": "",
"description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"veryWeak": {
"message": "Very Weak",
"description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weakMasterPassword": {
"message": "Weak Master Password"
"message": "脆弱的主密码"
},
"weakMasterPasswordDesc": {
"message": "The master password you have chosen is weak. You should use a strong master password (or a passphrase) to properly protect your Bitwarden account. Are you sure you want to use this master password?"
"message": "您选择的主密码较弱。您应该使用强密码(或密码短语)来正确保护您的 Bitwarden 账户。仍要使用此主密码吗?"
},
"rotateAccountEncKey": {
"message": "Also rotate my account's encryption key"
@@ -2557,28 +2693,32 @@
"message": "Are you sure you want to rotate your account's encryption key?"
},
"attachmentsNeedFix": {
"message": "This item has old file attachments that need to be fixed."
"message": "此项目有需要修复的旧文件附件。"
},
"attachmentFixDesc": {
"message": "This is an old file attachment the needs to be fixed. Click to learn more."
"message": "这是一个需要修复的旧文件附件。点击了解更多。"
},
"fix": {
"message": "Fix",
"message": "修复",
"description": "This is a verb. ex. 'Fix The Car'"
},
"oldAttachmentsNeedFixDesc": {
"message": "There are old file attachments in your vault that need to be fixed before you can rotate your account's encryption key."
},
"yourAccountsFingerprint": {
"message": "Your account's fingerprint phrase",
"message": "您的账户的指纹短语",
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"fingerprintEnsureIntegrityVerify": {
"message": "To ensure the integrity of your encryption keys, please verify the user's fingerprint phrase before continuing.",
"message": "为确保加密密钥的完整性, 请先验证用户的指纹短语, 然后再继续。",
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"dontAskFingerprintAgain": {
"message": "Don't ask to verify fingerprint phrase again",
"message": "不要再次要求验证指纹短语",
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"free": {
"message": "Free",
"description": "Free, as in 'Free beer'"
}
}

View File

@@ -208,7 +208,7 @@
"message": "切換可見度"
},
"toggleCollapse": {
"message": "Toggle Collapse",
"message": "切換折疊",
"description": "Toggling an expand\/collapse state."
},
"generatePassword": {
@@ -728,7 +728,7 @@
"message": "編輯與此項目共享的集合。只有具有這些集合存取權限的組織使用者才能夠看到此項目。"
},
"deleteSelectedItemsDesc": {
"message": "您已經選取了 $COUNT$ 個項目要刪除。確定要刪除這些項目嗎 ?",
"message": "您已經選取了 $COUNT$ 個項目。確定要刪除這些項目嗎 ?",
"placeholders": {
"count": {
"content": "$1",
@@ -1107,16 +1107,16 @@
"message": "停用"
},
"twoStepLoginProviderEnabled": {
"message": "您的帳戶已啟用兩步驗證"
"message": "您的帳戶已啟用兩步驟登入"
},
"twoStepLoginAuthDesc": {
"message": "輸入您的主密碼以改兩步驗證設定"
"message": "輸入您的主密碼以改兩步驟登入設定"
},
"twoStepAuthenticatorDesc": {
"message": "Follow these steps to set up two-step login with an authenticator app:"
},
"twoStepAuthenticatorDownloadApp": {
"message": "下載兩步驗證APP"
"message": "下載兩步驟登入應用程式"
},
"twoStepAuthenticatorNeedApp": {
"message": "需要兩步驗證器APP下載以下應用之一"
@@ -1146,7 +1146,7 @@
"message": "In case you need to add it to another device, below is the QR code (or key) required by your authenticator app."
},
"twoStepDisableDesc": {
"message": "您確定要停用兩步驟驗證嗎?"
"message": "您確定要停用兩步驟登入嗎?"
},
"twoStepDisabled": {
"message": "Two-step login provider disabled."
@@ -1155,7 +1155,7 @@
"message": "新增 YubiKey 身分認證裝置至您的帳戶。"
},
"twoFactorYubikeyPlugIn": {
"message": "Plug the YubiKey (NEO or 4 series) into your computer's USB port."
"message": " YubiKey 插入電腦的 USB 連接埠。"
},
"twoFactorYubikeySelectKey": {
"message": "Select in the first empty YubiKey input field below."
@@ -1284,6 +1284,135 @@
"reports": {
"message": "報告"
},
"unsecuredWebsitesReport": {
"message": "Unsecured Websites Report"
},
"unsecuredWebsitesReportDesc": {
"message": "Using unsecured websites with the http:\/\/ scheme can be dangerous. If the website allows, you should always access it using the https:\/\/ scheme so that your connection is encrypted."
},
"unsecuredWebsitesFound": {
"message": "Unsecured Websites Found"
},
"unsecuredWebsitesFoundDesc": {
"message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:\/\/ if the website allows it.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noUnsecuredWebsites": {
"message": "No items in your vault have unsecured URIs."
},
"inactive2faReport": {
"message": "Inactive 2FA Report"
},
"inactive2faReportDesc": {
"message": "Two-factor authentication (2FA) is an important security setting that helps secure your accounts. If the website offers it, you should always enable two-factor authentication."
},
"inactive2faFound": {
"message": "Logins Without 2FA Found"
},
"inactive2faFoundDesc": {
"message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to twofactorauth.org). To further protect these accounts, you should enable two-factor authentication.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noInactive2fa": {
"message": "No websites were found in your vault with a missing two-factor authentication configuration."
},
"instructions": {
"message": "Instructions"
},
"exposedPasswordsReport": {
"message": "Exposed Passwords Report"
},
"exposedPasswordsReportDesc": {
"message": "Exposed passwords are passwords have been uncovered in known data breaches that were released publicly or sold on the dark web by hackers."
},
"exposedPasswordsFound": {
"message": "Exposed Passwords Found"
},
"exposedPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noExposedPasswords": {
"message": "No items in your vault have passwords that have been exposed in known data breaches."
},
"checkExposedPasswords": {
"message": "Check Exposed Passwords"
},
"exposedXTimes": {
"message": "Exposed $COUNT$ time(s)",
"placeholders": {
"count": {
"content": "$1",
"example": "52"
}
}
},
"weakPasswordsReport": {
"message": "Weak Passwords Report"
},
"weakPasswordsReportDesc": {
"message": "Weak passwords can easily be guessed by hackers and automated tools that are used to crack passwords. The Bitwarden password generator can help you create strong passwords."
},
"weakPasswordsFound": {
"message": "Weak Passwords Found"
},
"weakPasswordsFoundDesc": {
"message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noWeakPasswords": {
"message": "No items in your vault have weak passwords."
},
"reusedPasswordsReport": {
"message": "Reused Passwords Report"
},
"reusedPasswordsReportDesc": {
"message": "If a service that you use is compromised, reusing the same password elsewhere can allow hackers to easily gain access to more of your online accounts. You should use a unique password for every account or service."
},
"reusedPasswordsFound": {
"message": "Reused Passwords Found"
},
"reusedPasswordsFoundDesc": {
"message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"noReusedPasswords": {
"message": "No logins in your vault have passwords that are being reused."
},
"reusedXTimes": {
"message": "Reused $COUNT$ times",
"placeholders": {
"count": {
"content": "$1",
"example": "8"
}
}
},
"dataBreachReport": {
"message": "Data Breach Report"
},
@@ -1362,6 +1491,9 @@
"premiumSignUpTwoStep": {
"message": "YubiKeyFIDO U2F 和 Duo 等額外的兩步驟登入選項。"
},
"premiumSignUpReports": {
"message": "Password hygiene, account health, and data breach reports to keep your vault safe."
},
"premiumSignUpTotp": {
"message": "用於您的登入資料的 TOTP 驗證碼 (2FA) 產生器。"
},
@@ -1851,7 +1983,7 @@
"message": "您確定要移除該使用者?"
},
"externalId": {
"message": "External Id"
"message": "外部 ID"
},
"externalIdGroupDesc": {
"message": "The external id is used to link this group to an external system such as a user directory."
@@ -1935,7 +2067,7 @@
"message": "A regular user with access to your organization's collections."
},
"manager": {
"message": "Manager"
"message": "管理員"
},
"managerDesc": {
"message": "Managers can access and manage assigned collections in your organization."
@@ -1977,13 +2109,13 @@
"message": "已登入。"
},
"changedPassword": {
"message": "Changed account password."
"message": "已變更帳戶密碼。"
},
"enabledUpdated2fa": {
"message": "Enabled\/updated two-step login."
},
"disabled2fa": {
"message": "Disabled two-step login."
"message": "已停用兩步驟登入。"
},
"recovered2fa": {
"message": "Recovered account from two-step login."
@@ -2202,7 +2334,7 @@
"message": "確認"
},
"confirmUser": {
"message": "Confirm User"
"message": "確認使用者"
},
"hasBeenConfirmed": {
"message": "$USER$ has been confirmed.",
@@ -2331,7 +2463,7 @@
"message": "發票"
},
"verifyBankAccount": {
"message": "Verify Bank Account"
"message": "驗證銀行帳戶"
},
"verifyBankAccountDesc": {
"message": "We have made two micro-deposits to your bank account (it may take 1-2 business days to show up). Enter these amounts to verify the bank account."
@@ -2349,7 +2481,7 @@
"message": "銀行帳戶"
},
"amountX": {
"message": "Amount $COUNT$",
"message": "金額 $COUNT$",
"description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50",
"placeholders": {
"count": {
@@ -2359,23 +2491,23 @@
}
},
"routingNumber": {
"message": "Routing Number",
"message": "匯款路線號碼",
"description": "Bank account routing number"
},
"accountNumber": {
"message": "Account Number"
"message": "帳戶"
},
"accountHolderName": {
"message": "Account Holder Name"
"message": "帳戶持有人姓名"
},
"bankAccountType": {
"message": "帳戶類型"
},
"bankAccountTypeCompany": {
"message": "Company (Business)"
"message": "公司"
},
"bankAccountTypeIndividual": {
"message": "Individual (Personal)"
"message": "個人"
},
"enterInstallationId": {
"message": "Enter your installation id"
@@ -2530,22 +2662,26 @@
"message": "誰擁有這個項目?"
},
"strong": {
"message": "Strong",
"description": "ex. A strong password. Scale: Weak -> Good -> Strong"
"message": "高強度",
"description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"good": {
"message": "Good",
"description": "ex. A good password. Scale: Weak -> Good -> Strong"
"message": "不錯",
"description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weak": {
"message": "Weak",
"description": "ex. A weak password. Scale: Weak -> Good -> Strong"
"message": "脆弱",
"description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"veryWeak": {
"message": "Very Weak",
"description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weakMasterPassword": {
"message": "Weak Master Password"
"message": "脆弱的主密碼"
},
"weakMasterPasswordDesc": {
"message": "The master password you have chosen is weak. You should use a strong master password (or a passphrase) to properly protect your Bitwarden account. Are you sure you want to use this master password?"
"message": "您設定的主密碼很脆弱。您應該使用高強度的密碼 (複雜密碼) 來正確保護您的 bitwarden 帳戶。仍要使用此密碼嗎?"
},
"rotateAccountEncKey": {
"message": "Also rotate my account's encryption key"
@@ -2563,7 +2699,7 @@
"message": "This is an old file attachment the needs to be fixed. Click to learn more."
},
"fix": {
"message": "Fix",
"message": "修正",
"description": "This is a verb. ex. 'Fix The Car'"
},
"oldAttachmentsNeedFixDesc": {
@@ -2580,5 +2716,9 @@
"dontAskFingerprintAgain": {
"message": "Don't ask to verify fingerprint phrase again",
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"free": {
"message": "Free",
"description": "Free, as in 'Free beer'"
}
}

View File

@@ -254,6 +254,10 @@ label:not(.form-check-label):not(.btn), label.bold {
font-weight: 600;
}
input[type="search"]::-webkit-search-cancel-button {
-webkit-appearance: searchfield-cancel-button;
}
.btn[class*="btn-outline-"] {
&:not(:hover) {
border-color: $secondary;
@@ -369,6 +373,7 @@ label:not(.form-check-label):not(.btn), label.bold {
img {
@extend .rounded;
@extend .img-fluid;
max-height: 24px;
}
}
@@ -395,6 +400,19 @@ label:not(.form-check-label):not(.btn), label.bold {
font-weight: 600;
}
.password-wrapper {
display: flex !important;
flex-wrap: wrap;
}
.password-number {
color: #007fde;
}
.password-special {
color: #c40800;
}
app-vault-groupings, app-org-vault-groupings {
.card {
#search {
@@ -411,7 +429,7 @@ app-vault-groupings, app-org-vault-groupings {
margin-bottom: 0;
}
a {
.card-body a {
color: $body-color;
&:hover {
@@ -457,7 +475,10 @@ app-password-generator {
.card-password {
.card-body {
word-break: break-all;
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
text-align: center;
font-size: $font-size-lg;
font-family: $font-family-monospace;
@@ -470,7 +491,6 @@ app-password-generator-history {
line-height: 1;
.password {
word-break: break-all;
font-family: $font-family-monospace;
}
}