Merge branch 'master' of https://github.com/bitwarden/desktop into feature/browser-communication

# Conflicts:
#	src/locales/en/messages.json
This commit is contained in:
Hinton 2020-11-13 15:34:57 +01:00
commit 04c8b119e3
59 changed files with 2218 additions and 284 deletions

View File

@ -2,4 +2,4 @@
$packageVersion = (Get-Content -Raw -Path $rootPath\src\package.json | ConvertFrom-Json).version;
Write-Output "Setting package version to $packageVersion";
Write-Output "::set-env name=PACKAGE_VERSION::$packageVersion";
Write-Output "PACKAGE_VERSION=$packageVersion" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append;

View File

@ -2,7 +2,7 @@
$packagePath = "$rootPath\package.json";
$buildNumber = 100 + [int]$env:GITHUB_RUN_NUMBER;
Write-Output "Setting build number to $buildNumber";
Write-Output "::set-env name=BUILD_NUMBER::$buildNumber";
Write-Output "BUILD_NUMBER=$buildNumber" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append;
$package = Get-Content -Raw -Path $packagePath | ConvertFrom-Json;
$package.build | Add-Member -MemberType NoteProperty -Name buildVersion -Value "$buildNumber";
$package | ConvertTo-Json -Depth 32 | Set-Content $packagePath;

View File

@ -36,7 +36,7 @@ jobs:
node-version: '10.x'
- name: Set Node options
run: echo "::set-env name=NODE_OPTIONS::--max_old_space_size=4096"
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
- name: Set up environment
run: |
@ -126,7 +126,8 @@ jobs:
node-version: '10.x'
- name: Set Node options
run: echo "::set-env name=NODE_OPTIONS::--max_old_space_size=4096"
run: echo "NODE_OPTIONS=--max_old_space_size=4096" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
shell: pwsh
- name: Set up environment
if: github.event_name == 'release'
@ -232,7 +233,7 @@ jobs:
node-version: '10.x'
- name: Set Node options
run: echo "::set-env name=NODE_OPTIONS::--max_old_space_size=4096"
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
- name: Print environment
run: |

View File

@ -1,4 +1,32 @@
Code contributions are welcome! Please commit any pull requests against the `master` branch.
# How to Contribute
Contributions of all kinds are welcome!
Please visit our [Community Forums](https://community.bitwarden.com/) for general community discussion and the development roadmap.
Here is how you can get involved:
* **Request a new feature:** Go to the [Feature Requests category](https://community.bitwarden.com/c/feature-requests/) of the Community Forums. Please search existing feature requests before making a new one
* **Write code for a new feature:** Make a new post in the [Github Contributions category](https://community.bitwarden.com/c/github-contributions/) of the Community Forums. Include a description of your proposed contribution, screeshots, and links to any relevant feature requests. This helps get feedback from the community and Bitwarden team members before you start writing code
* **Report a bug or submit a bugfix:** Use Github issues and pull requests
* **Write documentation:** Submit a pull request to the [Bitwarden help repository](https://github.com/bitwarden/help)
* **Help other users:** Go to the [User-to-User Support category](https://community.bitwarden.com/c/support/) on the Community Forums
* **Translate:** See the localization (l10n) section below
## Contributor Agreement
Please sign the [Contributor Agreement](https://cla-assistant.io/bitwarden/desktop) if you intend on contributing to any Github repository. Pull requests cannot be accepted and merged unless the author has signed the Contributor Agreement.
## Pull Request Guidelines
* use `npm run lint` and fix any linting suggestions before submitting a pull request
* commit any pull requests against the `master` branch
* include a link to your Community Forums post
# Localization (l10n)

2
jslib

@ -1 +1 @@
Subproject commit f30d6f8027055507abfdefd1eeb5d9aab25cc601
Subproject commit 9aa3cbf73d9df9a2641654270911359593bcb5c5

View File

@ -1,4 +1,8 @@
import { Component } from '@angular/core';
import {
Component,
OnDestroy,
NgZone,
} from '@angular/core';
import {
ActivatedRoute,
Router,
@ -15,19 +19,24 @@ import { StorageService } from 'jslib/abstractions/storage.service';
import { UserService } from 'jslib/abstractions/user.service';
import { VaultTimeoutService } from 'jslib/abstractions/vaultTimeout.service';
import { BroadcasterService } from 'jslib/angular/services/broadcaster.service';
import { LockComponent as BaseLockComponent } from 'jslib/angular/components/lock.component';
const BroadcasterSubscriptionId = 'LockComponent';
@Component({
selector: 'app-lock',
templateUrl: 'lock.component.html',
})
export class LockComponent extends BaseLockComponent {
export class LockComponent extends BaseLockComponent implements OnDestroy {
constructor(router: Router, i18nService: I18nService,
platformUtilsService: PlatformUtilsService, messagingService: MessagingService,
userService: UserService, cryptoService: CryptoService,
storageService: StorageService, vaultTimeoutService: VaultTimeoutService,
environmentService: EnvironmentService, stateService: StateService,
apiService: ApiService, private route: ActivatedRoute) {
apiService: ApiService, private route: ActivatedRoute,
private broadcasterService: BroadcasterService, private ngZone: NgZone) {
super(router, i18nService, platformUtilsService, messagingService, userService, cryptoService,
storageService, vaultTimeoutService, environmentService, stateService, apiService);
}
@ -39,5 +48,23 @@ export class LockComponent extends BaseLockComponent {
setTimeout(() => this.unlockBiometric(), 1000);
}
});
this.broadcasterService.subscribe(BroadcasterSubscriptionId, async (message: any) => {
this.ngZone.run(() => {
switch (message.command) {
case 'windowHidden':
this.onWindowHidden();
break;
default:
}
});
});
}
ngOnDestroy() {
this.broadcasterService.unsubscribe(BroadcasterSubscriptionId);
}
onWindowHidden() {
this.showPassword = false;
}
}

View File

@ -1,6 +1,8 @@
import {
Component,
ComponentFactoryResolver,
OnDestroy,
NgZone,
ViewChild,
ViewContainerRef,
} from '@angular/core';
@ -19,14 +21,18 @@ import { StateService } from 'jslib/abstractions/state.service';
import { StorageService } from 'jslib/abstractions/storage.service';
import { SyncService } from 'jslib/abstractions/sync.service';
import { BroadcasterService } from 'jslib/angular/services/broadcaster.service';
import { LoginComponent as BaseLoginComponent } from 'jslib/angular/components/login.component';
import { ModalComponent } from 'jslib/angular/components/modal.component';
const BroadcasterSubscriptionId = 'LoginComponent';
@Component({
selector: 'app-login',
templateUrl: 'login.component.html',
})
export class LoginComponent extends BaseLoginComponent {
export class LoginComponent extends BaseLoginComponent implements OnDestroy {
@ViewChild('environment', { read: ViewContainerRef, static: true }) environmentModal: ViewContainerRef;
showingModal = false;
@ -35,7 +41,8 @@ export class LoginComponent extends BaseLoginComponent {
syncService: SyncService, private componentFactoryResolver: ComponentFactoryResolver,
platformUtilsService: PlatformUtilsService, stateService: StateService,
environmentService: EnvironmentService, passwordGenerationService: PasswordGenerationService,
cryptoFunctionService: CryptoFunctionService, storageService: StorageService) {
cryptoFunctionService: CryptoFunctionService, storageService: StorageService,
private broadcasterService: BroadcasterService, private ngZone: NgZone) {
super(authService, router, platformUtilsService, i18nService, stateService, environmentService,
passwordGenerationService, cryptoFunctionService, storageService);
super.onSuccessfulLogin = () => {
@ -43,6 +50,24 @@ export class LoginComponent extends BaseLoginComponent {
};
}
async ngOnInit() {
await super.ngOnInit();
this.broadcasterService.subscribe(BroadcasterSubscriptionId, async (message: any) => {
this.ngZone.run(() => {
switch (message.command) {
case 'windowHidden':
this.onWindowHidden();
break;
default:
}
});
});
}
ngOnDestroy() {
this.broadcasterService.unsubscribe(BroadcasterSubscriptionId);
}
settings() {
const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);
const modal = this.environmentModal.createComponent(factory).instance;
@ -61,4 +86,8 @@ export class LoginComponent extends BaseLoginComponent {
modal.close();
});
}
onWindowHidden() {
this.showPassword = false;
}
}

View File

@ -41,7 +41,7 @@
{{'masterPassDesc' | i18n}}
</div>
</div>
<div class="box last">
<div class="box">
<div class="box-content">
<div class="box-content-row box-content-row-flex" appBoxRow>
<div class="row-main">
@ -66,6 +66,18 @@
{{'masterPassHintDesc' | i18n}}
</div>
</div>
<div class="box last" *ngIf="showTerms">
<div class="box-footer checkbox">
<input type="checkbox" id="acceptPolicies" [(ngModel)]="acceptPolicies" name="AcceptPolicies">
<label for="acceptPolicies">
{{'acceptPolicies' | i18n}}<br>
<a href="https://bitwarden.com/terms/" target="_blank"
rel="noopener">{{'termsOfService' | i18n}}</a>,
<a href="https://bitwarden.com/privacy/" target="_blank"
rel="noopener">{{'privacyPolicy' | i18n}}</a>
</label>
</div>
</div>
<div class="buttons">
<button type="submit" class="btn primary block" [disabled]="form.loading" appBlurClick>
<b [hidden]="form.loading">{{'submit' | i18n}}</b>

View File

@ -1,4 +1,9 @@
import { Component } from '@angular/core';
import {
Component,
OnDestroy,
OnInit,
NgZone,
} from '@angular/core';
import { Router } from '@angular/router';
import { ApiService } from 'jslib/abstractions/api.service';
@ -9,18 +14,44 @@ import { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration
import { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';
import { StateService } from 'jslib/abstractions/state.service';
import { BroadcasterService } from 'jslib/angular/services/broadcaster.service';
import { RegisterComponent as BaseRegisterComponent } from 'jslib/angular/components/register.component';
const BroadcasterSubscriptionId = 'RegisterComponent';
@Component({
selector: 'app-register',
templateUrl: 'register.component.html',
})
export class RegisterComponent extends BaseRegisterComponent {
export class RegisterComponent extends BaseRegisterComponent implements OnInit, OnDestroy {
constructor(authService: AuthService, router: Router,
i18nService: I18nService, cryptoService: CryptoService,
apiService: ApiService, stateService: StateService,
platformUtilsService: PlatformUtilsService, passwordGenerationService: PasswordGenerationService) {
platformUtilsService: PlatformUtilsService, passwordGenerationService: PasswordGenerationService,
private broadcasterService: BroadcasterService, private ngZone: NgZone) {
super(authService, router, i18nService, cryptoService, apiService, stateService, platformUtilsService,
passwordGenerationService);
}
async ngOnInit() {
this.broadcasterService.subscribe(BroadcasterSubscriptionId, async (message: any) => {
this.ngZone.run(() => {
switch (message.command) {
case 'windowHidden':
this.onWindowHidden();
break;
default:
}
});
});
}
ngOnDestroy() {
this.broadcasterService.unsubscribe(BroadcasterSubscriptionId);
}
onWindowHidden() {
this.showPassword = false;
}
}

View File

@ -1,6 +1,13 @@
import { Component } from '@angular/core';
import {
Component,
OnDestroy,
NgZone,
} from '@angular/core';
import { Router } from '@angular/router';
import {
ActivatedRoute,
Router,
} from '@angular/router';
import { ApiService } from 'jslib/abstractions/api.service';
import { CryptoService } from 'jslib/abstractions/crypto.service';
@ -12,6 +19,10 @@ import { PolicyService } from 'jslib/abstractions/policy.service';
import { SyncService } from 'jslib/abstractions/sync.service';
import { UserService } from 'jslib/abstractions/user.service';
import { BroadcasterService } from 'jslib/angular/services/broadcaster.service';
const BroadcasterSubscriptionId = 'SetPasswordComponent';
import {
SetPasswordComponent as BaseSetPasswordComponent,
} from 'jslib/angular/components/set-password.component';
@ -20,14 +31,15 @@ import {
selector: 'app-set-password',
templateUrl: 'set-password.component.html',
})
export class SetPasswordComponent extends BaseSetPasswordComponent {
export class SetPasswordComponent extends BaseSetPasswordComponent implements OnDestroy {
constructor(apiService: ApiService, i18nService: I18nService,
cryptoService: CryptoService, messagingService: MessagingService,
userService: UserService, passwordGenerationService: PasswordGenerationService,
platformUtilsService: PlatformUtilsService, policyService: PolicyService, router: Router,
syncService: SyncService) {
syncService: SyncService, route: ActivatedRoute,
private broadcasterService: BroadcasterService, private ngZone: NgZone) {
super(i18nService, cryptoService, messagingService, userService, passwordGenerationService,
platformUtilsService, policyService, router, apiService, syncService);
platformUtilsService, policyService, router, apiService, syncService, route);
}
get masterPasswordScoreWidth() {
@ -59,4 +71,26 @@ export class SetPasswordComponent extends BaseSetPasswordComponent {
return this.masterPasswordScore != null ? this.i18nService.t('weak') : null;
}
}
async ngOnInit() {
await super.ngOnInit();
this.broadcasterService.subscribe(BroadcasterSubscriptionId, async (message: any) => {
this.ngZone.run(() => {
switch (message.command) {
case 'windowHidden':
this.onWindowHidden();
break;
default:
}
});
});
}
ngOnDestroy() {
this.broadcasterService.unsubscribe(BroadcasterSubscriptionId);
}
onWindowHidden() {
this.showPassword = false;
}
}

View File

@ -5,7 +5,10 @@ import {
ViewContainerRef,
} from '@angular/core';
import { Router } from '@angular/router';
import {
ActivatedRoute,
Router,
} from '@angular/router';
import { TwoFactorOptionsComponent } from './two-factor-options.component';
@ -36,9 +39,9 @@ export class TwoFactorComponent extends BaseTwoFactorComponent {
i18nService: I18nService, apiService: ApiService,
platformUtilsService: PlatformUtilsService, syncService: SyncService,
environmentService: EnvironmentService, private componentFactoryResolver: ComponentFactoryResolver,
stateService: StateService, storageService: StorageService) {
stateService: StateService, storageService: StorageService, route: ActivatedRoute) {
super(authService, router, i18nService, apiService, platformUtilsService, window, environmentService,
stateService, storageService);
stateService, storageService, route);
super.onSuccessfulLogin = () => {
return syncService.fullSync(true);
};

View File

@ -1,6 +1,8 @@
import {
Component,
OnChanges,
OnDestroy,
NgZone,
} from '@angular/core';
import { AuditService } from 'jslib/abstractions/audit.service';
@ -14,24 +16,39 @@ import { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';
import { StateService } from 'jslib/abstractions/state.service';
import { UserService } from 'jslib/abstractions/user.service';
import { BroadcasterService } from 'jslib/angular/services/broadcaster.service';
import { AddEditComponent as BaseAddEditComponent } from 'jslib/angular/components/add-edit.component';
const BroadcasterSubscriptionId = 'AddEditComponent';
@Component({
selector: 'app-vault-add-edit',
templateUrl: 'add-edit.component.html',
})
export class AddEditComponent extends BaseAddEditComponent implements OnChanges {
export class AddEditComponent extends BaseAddEditComponent implements OnChanges, OnDestroy {
constructor(cipherService: CipherService, folderService: FolderService,
i18nService: I18nService, platformUtilsService: PlatformUtilsService,
auditService: AuditService, stateService: StateService,
userService: UserService, collectionService: CollectionService,
messagingService: MessagingService, eventService: EventService) {
messagingService: MessagingService, eventService: EventService,
private broadcasterService: BroadcasterService, private ngZone: NgZone) {
super(cipherService, folderService, i18nService, platformUtilsService, auditService, stateService,
userService, collectionService, messagingService, eventService);
}
async ngOnInit() {
// We use ngOnChanges instead.
this.broadcasterService.subscribe(BroadcasterSubscriptionId, async (message: any) => {
this.ngZone.run(() => {
switch (message.command) {
case 'windowHidden':
this.onWindowHidden();
break;
default:
}
});
});
// We use ngOnChanges for everything else instead.
}
async ngOnChanges() {
@ -39,6 +56,10 @@ export class AddEditComponent extends BaseAddEditComponent implements OnChanges
await this.load();
}
ngOnDestroy() {
this.broadcasterService.unsubscribe(BroadcasterSubscriptionId);
}
async load() {
if (document.querySelectorAll('app-vault-add-edit .ng-dirty').length === 0 ||
(this.cipher != null && this.cipherId !== this.cipher.id)) {
@ -46,4 +67,14 @@ export class AddEditComponent extends BaseAddEditComponent implements OnChanges
}
super.load();
}
onWindowHidden() {
this.showPassword = false;
this.showCardCode = false;
if (this.cipher !== null && this.cipher.hasFields) {
this.cipher.fields.forEach(field => {
field.showValue = false;
});
}
}
}

View File

@ -1,4 +1,9 @@
import { Component } from '@angular/core';
import {
Component,
OnDestroy,
OnInit,
NgZone,
} from '@angular/core';
import { CryptoService } from 'jslib/abstractions/crypto.service';
import { EventService } from 'jslib/abstractions/event.service';
@ -6,16 +11,42 @@ import { ExportService } from 'jslib/abstractions/export.service';
import { I18nService } from 'jslib/abstractions/i18n.service';
import { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';
import { BroadcasterService } from 'jslib/angular/services/broadcaster.service';
import { ExportComponent as BaseExportComponent } from 'jslib/angular/components/export.component';
const BroadcasterSubscriptionId = 'ExportComponent';
@Component({
selector: 'app-export',
templateUrl: 'export.component.html',
})
export class ExportComponent extends BaseExportComponent {
export class ExportComponent extends BaseExportComponent implements OnInit {
constructor(cryptoService: CryptoService, i18nService: I18nService,
platformUtilsService: PlatformUtilsService, exportService: ExportService,
eventService: EventService) {
eventService: EventService, private broadcasterService: BroadcasterService,
private ngZone: NgZone) {
super(cryptoService, i18nService, platformUtilsService, exportService, eventService, window);
}
async ngOnInit() {
this.broadcasterService.subscribe(BroadcasterSubscriptionId, async (message: any) => {
this.ngZone.run(() => {
switch (message.command) {
case 'windowHidden':
this.onWindowHidden();
break;
default:
}
});
});
}
ngOnDestroy() {
this.broadcasterService.unsubscribe(BroadcasterSubscriptionId);
}
onWindowHidden() {
this.showPassword = false;
}
}

View File

@ -25,6 +25,8 @@ import { ViewComponent as BaseViewComponent } from 'jslib/angular/components/vie
import { CipherView } from 'jslib/models/view/cipherView';
const BroadcasterSubscriptionId = 'ViewComponent';
@Component({
selector: 'app-vault-view',
templateUrl: 'view.component.html',
@ -42,6 +44,24 @@ export class ViewComponent extends BaseViewComponent implements OnChanges {
super(cipherService, totpService, tokenService, i18nService, cryptoService, platformUtilsService,
auditService, window, broadcasterService, ngZone, changeDetectorRef, userService, eventService);
}
ngOnInit() {
super.ngOnInit();
this.broadcasterService.subscribe(BroadcasterSubscriptionId, (message: any) => {
this.ngZone.run(() => {
switch (message.command) {
case 'windowHidden':
this.onWindowHidden();
break;
default:
}
});
});
}
ngOnDestroy() {
super.ngOnDestroy();
this.broadcasterService.unsubscribe(BroadcasterSubscriptionId);
}
async ngOnChanges() {
await super.load();
@ -56,4 +76,14 @@ export class ViewComponent extends BaseViewComponent implements OnChanges {
super.copy(value, typeI18nKey, aType);
this.messagingService.send('minimizeOnCopy');
}
onWindowHidden() {
this.showPassword = false;
this.showCardCode = false;
if (this.cipher !== null && this.cipher.hasFields) {
this.cipher.fields.forEach(field => {
field.showValue = false;
});
}
}
}

View File

@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "Your new master password does not meet the policy requirements."
},
"acceptPolicies": {
"message": "By checking this box you agree to the following:"
},
"acceptPoliciesError": {
"message": "Terms of Service and Privacy Policy have not been acknowledged."
}
}

View File

@ -461,19 +461,19 @@
"message": "Адправіць"
},
"masterPass": {
"message": "Майстар-пароль"
"message": "Асноўны пароль"
},
"masterPassDesc": {
"message": "Майстар-пароль — ключ да вашага бяспечнага сховішча. Ён вельмі важны, таму не забывайце яго. Аднавіць майстар-пароль немагчыма."
"message": "Асноўны пароль — ключ да вашага бяспечнага сховішча. Ён вельмі важны, таму не забывайце яго. Аднавіць асноўны пароль немагчыма."
},
"masterPassHintDesc": {
"message": "Падказка да майстра-пароля можа дапамагчы вам яго ўспомніць."
"message": "Падказка да асноўнага пароля можа дапамагчы вам яго ўспомніць."
},
"reTypeMasterPass": {
"message": "Увядзіце майстар-пароль паўторна"
"message": "Увядзіце асноўны пароль паўторна"
},
"masterPassHint": {
"message": "Падказка да майстра-пароля (неабавязкова)"
"message": "Падказка да асноўнага пароля (неабавязкова)"
},
"settings": {
"message": "Налады"
@ -482,10 +482,10 @@
"message": "Падказка да пароля"
},
"enterEmailToGetHint": {
"message": "Увядзіце адрас электроннай пошты ўліковага запісу для атрымання падказкі для пароля."
"message": "Увядзіце адрас электроннай пошты ўліковага запісу для атрымання падказкі для асноўнага пароля."
},
"getMasterPasswordHint": {
"message": "Атрымаць падказку для майстра-пароля"
"message": "Атрымаць падказку для асноўнага пароля"
},
"emailRequired": {
"message": "Патрабуецца адрас электроннай пошты."
@ -494,19 +494,19 @@
"message": "Памылковы адрас электроннай пошты."
},
"masterPassRequired": {
"message": "Патрабуецца майстар-пароль."
"message": "Патрабуецца асноўны пароль."
},
"masterPassLength": {
"message": "Майстар-пароль павінен быць даўжынёй не менш за 8 сімвалаў."
"message": "Асноўны пароль павінен быць даўжынёй не менш за 8 сімвалаў."
},
"masterPassDoesntMatch": {
"message": "Майстры-паролі не супадаюць."
"message": "Асноўныя паролі не супадаюць."
},
"newAccountCreated": {
"message": "Ваш уліковы запіс створаны! Вы можаце ўвайсці."
},
"masterPassSent": {
"message": "Мы адправілі вам на электронную пошту падказку для майстра-пароля."
"message": "Мы адправілі вам на электронную пошту падказку для асноўнага пароля."
},
"unexpectedError": {
"message": "Адбылася нечаканая памылка."
@ -719,10 +719,10 @@
"message": "Сінхранізаваць сховішча"
},
"changeMasterPass": {
"message": "Змяніць майстар-пароль"
"message": "Змяніць асноўны пароль"
},
"changeMasterPasswordConfirmation": {
"message": "Вы можаце змяніць свой майстар-пароль на bitwarden.com. Перайсці на сайт зараз?"
"message": "Вы можаце змяніць свой асноўны пароль на bitwarden.com. Перайсці на сайт зараз?"
},
"fingerprintPhrase": {
"message": "Фраза адбітка пальца",
@ -748,7 +748,7 @@
"message": "Памылка сінхранізацыі"
},
"yourVaultIsLocked": {
"message": "Ваша сховішча заблакіравана. Каб працягнуць, увядзіце майстар-пароль."
"message": "Ваша сховішча заблакіравана. Каб працягнуць, увядзіце асноўны пароль."
},
"unlock": {
"message": "Разблакіраваць"
@ -767,7 +767,7 @@
}
},
"invalidMasterPassword": {
"message": "Памылковы майстар-пароль"
"message": "Памылковы асноўны пароль"
},
"twoStepLoginConfirmation": {
"message": "Двухэтапны ўваход робіць ваш уліковы запіс больш бяспечным, патрабуючы пацвярджэння ўваходу на іншай прыладзе, напрыклад, ключом бяспекі, праграмай для праверкі бяспекі, SMS, тэлефонным выклікам або электроннай поштай. Двухэтапны ўваход уключаецца на bitwarden.com. Перайсці на сайт зараз?"
@ -1186,7 +1186,7 @@
"message": "Экспартуемы файл утрымлівае даныя вашага сховішча ў незашыфраваным фармаце. Яго не варта захоўваць ці адпраўляць па небяспечным каналам (напрыклад, па электроннай пошце). Выдаліце яго адразу пасля выкарыстання."
},
"exportMasterPassword": {
"message": "Увядзіце ваш майстар-пароль для экспарту даных са сховішча."
"message": "Увядзіце ваш асноўны пароль для экспарту даных са сховішча."
},
"noOrganizationsList": {
"message": "Вы не з'яўляецеся членам якой-небудзь арганізацыі. Арганізацыі дазваляюць бяспечна абменьвацца элементамі з іншымі карыстальнікамі."
@ -1213,10 +1213,10 @@
"description": "ex. A weak password. Scale: Weak -> Good -> Strong"
},
"weakMasterPassword": {
"message": "Слабы майстар-пароль"
"message": "Слабы асноўны пароль"
},
"weakMasterPasswordDesc": {
"message": "Майстар-пароль, выбраны вамі, з'яўляецца слабым. Для належнай абароны ўліковага запісу Bitwarden, вам належыць выкарыстоўваць моцны майстар-пароль (або парольную фразу). Вы ўпэўнены, што хочаце выкарыстоўваць гэты майстар-пароль?"
"message": "Асноўны пароль, выбраны вамі, з'яўляецца слабым. Для належнай абароны ўліковага запісу Bitwarden, вы павінны выкарыстоўваць моцны асноўны пароль (або парольную фразу). Вы ўпэўнены, што хочаце выкарыстоўваць гэты асноўны пароль?"
},
"pin": {
"message": "PIN-код",
@ -1250,7 +1250,7 @@
"message": "Verify for Bitwarden."
},
"lockWithMasterPassOnRestart": {
"message": "Блакіраваць майстрам-паролем пры перазапуску"
"message": "Блакіраваць асноўным паролем пры перазапуску"
},
"preferences": {
"message": "Налады"
@ -1349,19 +1349,19 @@
"message": "Enterprise Single Sign-On"
},
"setMasterPassword": {
"message": "Set Master Password"
"message": "Задаць асноўны пароль"
},
"ssoCompleteRegistration": {
"message": "In order to complete logging in with SSO, please set a master password to access and protect your vault."
},
"newMasterPass": {
"message": "New Master Password"
"message": "Новы асноўны пароль"
},
"confirmNewMasterPass": {
"message": "Confirm New Master Password"
"message": "Пацвердзіць новы асноўны пароль"
},
"masterPasswordPolicyInEffect": {
"message": "One or more organization policies require your master password to meet the following requirements:"
"message": "Згодна з адной або некалькімі палітыкамі арганізацыі неабходна, каб ваш асноўны пароль адказваў наступным патрабаванням:"
},
"policyInEffectMinComplexity": {
"message": "Minimum complexity score of $SCORE$",
@ -1400,6 +1400,12 @@
}
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "Your new master password does not meet the policy requirements."
"message": "Ваш новы асноўны пароль не адпавядае патрабаванням палітыкі арганізацыі."
},
"acceptPolicies": {
"message": "By checking this box you agree to the following:"
},
"acceptPoliciesError": {
"message": "Terms of Service and Privacy Policy have not been acknowledged."
}
}

View File

@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "Паролата ви не отговаря на политиките."
},
"acceptPolicies": {
"message": "By checking this box you agree to the following:"
},
"acceptPoliciesError": {
"message": "Terms of Service and Privacy Policy have not been acknowledged."
}
}

View File

@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "La nova contrasenya principal no compleix els requisits de la política."
},
"acceptPolicies": {
"message": "Si activeu aquesta casella, indiqueu que esteu dacord amb el següent:"
},
"acceptPoliciesError": {
"message": "No shan reconegut les condicions del servei i la declaració de privadesa."
}
}

View File

@ -1346,25 +1346,25 @@
"message": "Potvrzení akce při vypršení časového limitu"
},
"enterpriseSingleSignOn": {
"message": "Enterprise Single Sign-On"
"message": "Jednotné podnikové přihlášení"
},
"setMasterPassword": {
"message": "Set Master Password"
"message": "Nastavení hlavního hesla"
},
"ssoCompleteRegistration": {
"message": "In order to complete logging in with SSO, please set a master password to access and protect your vault."
"message": "Chcete-li dokončit přihlášení pomocí SSO, nastavte prosím hlavní heslo pro přístup a ochranu vašeho trezoru."
},
"newMasterPass": {
"message": "New Master Password"
"message": "Nové hlavní heslo"
},
"confirmNewMasterPass": {
"message": "Confirm New Master Password"
"message": "Potvrďte nové heslo"
},
"masterPasswordPolicyInEffect": {
"message": "One or more organization policies require your master password to meet the following requirements:"
"message": "Jedna nebo více zásad organizace vyžaduje, aby hlavní heslo splňovalo následující požadavky:"
},
"policyInEffectMinComplexity": {
"message": "Minimum complexity score of $SCORE$",
"message": "Minimální skóre složitosti $SCORE$",
"placeholders": {
"score": {
"content": "$1",
@ -1373,7 +1373,7 @@
}
},
"policyInEffectMinLength": {
"message": "Minimum length of $LENGTH$",
"message": "Minimální délka $LENGTH$",
"placeholders": {
"length": {
"content": "$1",
@ -1382,16 +1382,16 @@
}
},
"policyInEffectUppercase": {
"message": "Contain one or more uppercase characters"
"message": "Obsahuje jedno nebo více velkých písmen"
},
"policyInEffectLowercase": {
"message": "Contain one or more lowercase characters"
"message": "Obsahuje jedno nebo více malých písmen"
},
"policyInEffectNumbers": {
"message": "Contain one or more numbers"
"message": "Obsahuje jednu nebo více číslic"
},
"policyInEffectSpecial": {
"message": "Contain one or more of the following special characters $CHARS$",
"message": "Obsahuje jeden nebo více následujících speciálních znaků: $CHARS$",
"placeholders": {
"chars": {
"content": "$1",
@ -1400,6 +1400,12 @@
}
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "Your new master password does not meet the policy requirements."
"message": "Vaše nové hlavní heslo nesplňuje požadavky zásad."
},
"acceptPolicies": {
"message": "Zaškrtnutím tohoto políčka souhlasím s následujícím:"
},
"acceptPoliciesError": {
"message": "Terms of Service and Privacy Policy have not been acknowledged."
}
}

View File

@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "Din nye hovedadgangskode opfylder ikke politikkravene."
},
"acceptPolicies": {
"message": "Ved at markere dette felt accepterer du følgende:"
},
"acceptPoliciesError": {
"message": "Servicevilkår og fortrolighedspolitik er ikke blevet bekræftet."
}
}

View File

@ -343,7 +343,7 @@
"message": "Soll dieser Eintrag wirklich gelöscht werden?"
},
"deletedItem": {
"message": "Eintrag gelöscht"
"message": "Eintrag in Papierkorb verschoben"
},
"overwritePasswordConfirmation": {
"message": "Bist du sicher, dass du das Passwort überschreiben möchtest?"
@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "Ihr neues Masterpasswort entspricht nicht den Anforderungen der Richtlinie."
},
"acceptPolicies": {
"message": "Durch Anwählen dieses Kästchens erklären Sie sich mit folgendem einverstanden:"
},
"acceptPoliciesError": {
"message": "Die Nutzungsbedingungen und Datenschutzerklärung wurden nicht akzeptiert."
}
}

View File

@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "Your new master password does not meet the policy requirements."
},
"acceptPolicies": {
"message": "By checking this box you agree to the following:"
},
"acceptPoliciesError": {
"message": "Terms of Service and Privacy Policy have not been acknowledged."
}
}

View File

@ -1402,6 +1402,12 @@
"masterPasswordPolicyRequirementsNotMet": {
"message": "Your new master password does not meet the policy requirements."
},
"acceptPolicies": {
"message": "By checking this box you agree to the following:"
},
"acceptPoliciesError": {
"message": "Terms of Service and Privacy Policy have not been acknowledged."
},
"enableBrowserIntegration": {
"message": "Enable browser integration"
},

View File

@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "Your new master password does not meet the policy requirements."
},
"acceptPolicies": {
"message": "By checking this box you agree to the following:"
},
"acceptPoliciesError": {
"message": "Terms of service and privacy policy have not been acknowledged."
}
}

View File

@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "Your new master password does not meet the policy requirements."
},
"acceptPolicies": {
"message": "By checking this box you agree to the following:"
},
"acceptPoliciesError": {
"message": "Terms of Service and Privacy Policy have not been acknowledged."
}
}

View File

@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "Your new master password does not meet the policy requirements."
},
"acceptPolicies": {
"message": "By checking this box you agree to the following:"
},
"acceptPoliciesError": {
"message": "Terms of Service and Privacy Policy have not been acknowledged."
}
}

View File

@ -776,10 +776,10 @@
"message": "Autenticación en dos pasos"
},
"vaultTimeout": {
"message": "Tiempo de espera de la bóveda"
"message": "Tiempo de espera de la caja fuerte"
},
"vaultTimeoutDesc": {
"message": "Elija cuando se agotará el tiempo de espera de su bóveda y se ejecutará la acción seleccionada."
"message": "Elije cuando se agotará el tiempo de espera de tu caja fuerte y se ejecutará la acción seleccionada."
},
"immediately": {
"message": "Inmediatamente"
@ -975,7 +975,7 @@
"message": "Métodos de autenticación en dos pasos adicionales como YubiKey, FIDO U2F y Duo."
},
"premiumSignUpReports": {
"message": "Higiene de contraseña, salud de la cuenta e informes de violaciones de datos para mantener su caja fuerte segura."
"message": "Higiene de contraseña, salud de la cuenta e informes de violaciones de datos para mantener tu caja fuerte segura."
},
"premiumSignUpTotp": {
"message": "Generación de códigos TOTP (2FA) para registros de tu caja fuerte."
@ -1302,10 +1302,10 @@
"message": "Tiempo de espera de la caja fuerte"
},
"vaultTimeoutActionLockDesc": {
"message": "Una bóveda bloqueada requiere que introduzcas de nuevo tu contraseña maestra para acceder nuevamente."
"message": "Una caja fuerte bloqueada requiere que introduzcas de nuevo tu contraseña maestra para acceder nuevamente."
},
"vaultTimeoutActionLogOutDesc": {
"message": "Cerrar sesión en la bóveda requiere que vuelvas a autenticarte para acceder nuevamente a ella."
"message": "Cerrar sesión en la caja fuerte requiere que vuelvas a autenticarte para acceder nuevamente a ella."
},
"lock": {
"message": "Bloquear",
@ -1340,7 +1340,7 @@
"message": "Eliminar de forma permanente"
},
"vaultTimeoutLogOutConfirmation": {
"message": "Cerrar sesión eliminará todo el acceso a su bóveda y requiere autenticación en línea después del período de espera. ¿Estás seguro de que quieres usar esta configuración?"
"message": "Si cierras sesión, tu caja fuerte se bloqueará después del tiempo de espera seleccionado hasta que vuelvas a autenticarte. Utiliza esta opción sólo si este es el efecto deseado."
},
"vaultTimeoutLogOutConfirmationTitle": {
"message": "Confirmación de acción del tiempo de espera de la caja fuerte"
@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "Su nueva contraseña maestra no cumple con los requisitos de la política."
},
"acceptPolicies": {
"message": "Al seleccionar esta casilla, acepto lo siguiente:"
},
"acceptPoliciesError": {
"message": "Todavía no has aceptado los términos del servicio y la política de privacidad."
}
}

View File

@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "Uus ülemparool ei vasta eeskirjades väljatoodud tingimustele."
},
"acceptPolicies": {
"message": "By checking this box you agree to the following:"
},
"acceptPoliciesError": {
"message": "Terms of Service and Privacy Policy have not been acknowledged."
}
}

View File

@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "کلمه عبور اصلی جدید شما از شرایط سیاست پپیروی نمی کند."
},
"acceptPolicies": {
"message": "By checking this box you agree to the following:"
},
"acceptPoliciesError": {
"message": "Terms of Service and Privacy Policy have not been acknowledged."
}
}

View File

@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "Uusi pääsalasanasi ei täytä käytäntövaatimuksia."
},
"acceptPolicies": {
"message": "Valitsemalla tämän ruudun hyväksyt seuraavat:"
},
"acceptPoliciesError": {
"message": "Palvelu- ja tietosuojakäytäntöä ei ole vahvistettu."
}
}

View File

@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "Votre nouveau mot de passe maître ne répond pas aux exigences de la politique."
},
"acceptPolicies": {
"message": "En cochant cette case, vous acceptez les éléments suivants :"
},
"acceptPoliciesError": {
"message": "Les conditions d'utilisation et la politique de confidentialité n'ont pas été acceptées."
}
}

View File

@ -1238,7 +1238,7 @@
"message": "הכספת שלך נעולה. הזן את קוד הPIN שלך כדי להמשיך."
},
"unlockWithWindowsHello": {
"message": "שחרור הנעילה עם Windows Hello"
"message": "שחרור נעילה עם Windows Hello"
},
"windowsHelloConsentMessage": {
"message": "אימות עבור Bitwarden."
@ -1364,7 +1364,7 @@
"message": "אחד או יותר מאילוצי המדיניות של הארגון דורשים שהסיסמה הראשית שלך תעמוד בדרישות הבאות:"
},
"policyInEffectMinComplexity": {
"message": "ניקוד מורכבות מזערי של $SCORE$",
"message": "ניקוד מורכבות הסיסמה צריך להיות לפחות {0}",
"placeholders": {
"score": {
"content": "$1",
@ -1373,7 +1373,7 @@
}
},
"policyInEffectMinLength": {
"message": "אורך מזערי של $LENGTH$",
"message": "אורך מינימלי של $LENGTH$",
"placeholders": {
"length": {
"content": "$1",
@ -1382,16 +1382,16 @@
}
},
"policyInEffectUppercase": {
"message": "תכיל אות גדולה אחת או יותר"
"message": "מכילה אות גדולה אחת או יותר"
},
"policyInEffectLowercase": {
"message": "תכיל אות קטנה אחת או יותר"
"message": "מכילה אות קטנה אחת או יותר"
},
"policyInEffectNumbers": {
"message": "תכיל ספרה אחת או יותר"
"message": "מכילה ספרה אחת או יותר"
},
"policyInEffectSpecial": {
"message": "תכיל תו מיוחד אחד או יותר מבין התווים האלו $CHARS$",
"message": "מכילה תו אחד או יותר מהתווים הבאים: {0}",
"placeholders": {
"chars": {
"content": "$1",
@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "הסיסמה הראשית החדשה השלך לא עומדת בדרישות המדיניות."
},
"acceptPolicies": {
"message": "סימון התיבה הזאת מהווה את הסכמתך לתנאים הבאים:"
},
"acceptPoliciesError": {
"message": "לא הסכמת לתנאי השירות ומדיניות הפרטיות."
}
}

View File

@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "Your new master password does not meet the policy requirements."
},
"acceptPolicies": {
"message": "By checking this box you agree to the following:"
},
"acceptPoliciesError": {
"message": "Terms of Service and Privacy Policy have not been acknowledged."
}
}

View File

@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "Az új mesterjelszó nem felel meg a szabály követelményeknek."
},
"acceptPolicies": {
"message": "A kapcsoló bekapcsolásával egyetértünk a következőkkel:"
},
"acceptPoliciesError": {
"message": "A szolgáltatási feltételeket és az adatvédelmi irányelveket nem vették figyelembe."
}
}

View File

@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "Kata sandi utama Anda yang baru tidak memenuhi persyaratan kebijakan."
},
"acceptPolicies": {
"message": "Dengan mencentang kotak ini, anda menyetujui yang berikut:"
},
"acceptPoliciesError": {
"message": "Persyaratan Layanan dan Kebijakan Privasi belum diakui."
}
}

View File

@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "La tua nuova password principale non soddisfa i requisiti di sicurezza."
},
"acceptPolicies": {
"message": "By checking this box you agree to the following:"
},
"acceptPoliciesError": {
"message": "Terms of Service and Privacy Policy have not been acknowledged."
}
}

View File

@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "新しいマスターパスワードは最低要件を満たしていません。"
},
"acceptPolicies": {
"message": "以下に同意しチェックします:"
},
"acceptPoliciesError": {
"message": "利用規約とプライバシーポリシーを確認してください。"
}
}

View File

@ -1241,13 +1241,13 @@
"message": "Windows Hello를 사용하여 잠금 해제"
},
"windowsHelloConsentMessage": {
"message": "Verify for Bitwarden."
"message": "Bitwarden에서 인증을 요청합니다."
},
"unlockWithTouchId": {
"message": "Touch ID를 사용하여 잠금 해제"
},
"touchIdConsentMessage": {
"message": "Verify for Bitwarden."
"message": "Bitwarden에서 인증을 요청합니다."
},
"lockWithMasterPassOnRestart": {
"message": "다시 시작 시 마스터 비밀번호로 잠금"
@ -1346,13 +1346,13 @@
"message": "시간 제한 초과시 동작 확인"
},
"enterpriseSingleSignOn": {
"message": "Enterprise Single Sign-On"
"message": "엔터프라이즈 통합 인증 (SSO)"
},
"setMasterPassword": {
"message": "마스터 비밀번호 설정"
},
"ssoCompleteRegistration": {
"message": "In order to complete logging in with SSO, please set a master password to access and protect your vault."
"message": "SSO 로그인을 하기 위해서 보관함에 접근하고 보호할 수 있도록 마스터 비밀번호를 설정해주세요."
},
"newMasterPass": {
"message": "새 마스터 비밀번호"
@ -1373,7 +1373,7 @@
}
},
"policyInEffectMinLength": {
"message": "Minimum length of $LENGTH$",
"message": "최소 길이 $LENGTH$",
"placeholders": {
"length": {
"content": "$1",
@ -1391,7 +1391,7 @@
"message": "하나 이상의 숫자 포함"
},
"policyInEffectSpecial": {
"message": "Contain one or more of the following special characters $CHARS$",
"message": "하나 이상의 다음 특수문자 포함 $CHARS$",
"placeholders": {
"chars": {
"content": "$1",
@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "새 마스터 비밀번호가 정책 요구 사항을 따르지 않습니다."
},
"acceptPolicies": {
"message": "By checking this box you agree to the following:"
},
"acceptPoliciesError": {
"message": "Terms of Service and Privacy Policy have not been acknowledged."
}
}

View File

@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "Your new master password does not meet the policy requirements."
},
"acceptPolicies": {
"message": "By checking this box you agree to the following:"
},
"acceptPoliciesError": {
"message": "Terms of Service and Privacy Policy have not been acknowledged."
}
}

View File

@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "Your new master password does not meet the policy requirements."
},
"acceptPolicies": {
"message": "Označavanjem ovog polja pristajete na sledeće:"
},
"acceptPoliciesError": {
"message": "Uslovi usluge i Politika privatnosti nisu prihvaćeni."
}
}

View File

@ -328,7 +328,7 @@
"message": "ചേർക്കപ്പെട്ട ഇനം"
},
"editedItem": {
"message": "തിരുത്തപ്പെട്ട ഇനം"
"message": "ഇനം തിരുത്തി"
},
"deleteItem": {
"message": "ഇനം ഇല്ലാതാക്കുക"
@ -437,7 +437,7 @@
"message": "ഓപ്ഷനുകൾ"
},
"editedFolder": {
"message": "തിരുത്തിയ ഫോൾഡറുകൾ"
"message": "ഫോൾഡർ തിരുത്തി"
},
"addedFolder": {
"message": "ചേർക്കപ്പെട്ട ഫോൾഡർ"
@ -586,7 +586,7 @@
"description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated."
},
"duoOrganizationDesc": {
"message": "Duo Mobile, എസ്എംഎസ്, ഫോൺ കോൾ അല്ലെങ്കിൽ യു 2 എഫ് സുരക്ഷാ കീ ഉപയോഗിച്ച് നിങ്ങളുടെ ഓർഗനൈസേഷനെ ഡ്യുവോ സെക്യൂരിറ്റി ഉപയോഗിച്ച് പരിശോധിക്കുക.",
"message": "Duo Mobile, SMS, ഫോൺ കോൾ അല്ലെങ്കിൽ U2F സുരക്ഷാ കീ ഉപയോഗിച്ച് നിങ്ങളുടെ ഓർഗനൈസേഷനെ Duo Security ഉപയോഗിച്ച് പരിശോധിക്കുക.",
"description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated."
},
"u2fDesc": {
@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "നിങ്ങളുടെ പുതിയ മാസ്റ്റർ പാസ്‌വേഡ് നയ ആവശ്യകതകൾ നിറവേറ്റുന്നില്ല."
},
"acceptPolicies": {
"message": "ഈ ബോക്സ് ചെക്കുചെയ്യുന്നതിലൂടെ നിങ്ങൾ ഇനിപ്പറയുന്നവ അംഗീകരിക്കുന്നു:"
},
"acceptPoliciesError": {
"message": "സേവന നിബന്ധനകളും സ്വകാര്യതാ നയവും അംഗീകരിച്ചിട്ടില്ല."
}
}

View File

@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "Your new master password does not meet the policy requirements."
},
"acceptPolicies": {
"message": "By checking this box you agree to the following:"
},
"acceptPoliciesError": {
"message": "Terms of Service and Privacy Policy have not been acknowledged."
}
}

View File

@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "Je nieuwe hoofdwachtwoord voldoet niet aan de beleidseisen."
},
"acceptPolicies": {
"message": "Door dit vakje aan te vinken, ga je akkoord met het volgende:"
},
"acceptPoliciesError": {
"message": "Algemene voorwaarden en privacybeleid zijn nog niet erkend."
}
}

View File

@ -629,7 +629,7 @@
"message": "Adres URL serwera"
},
"apiUrl": {
"message": "Adres URL serwera API"
"message": "Adres URL serwera interfejsu API"
},
"webVaultUrl": {
"message": "Adres URL serwera sejfu internetowego"
@ -1346,7 +1346,7 @@
"message": "Potwierdź sposób blokowania sejfu"
},
"enterpriseSingleSignOn": {
"message": "Logowanie jednokrotne przedsiębiorstwa"
"message": "Logowanie jednokrotne"
},
"setMasterPassword": {
"message": "Ustaw hasło główne"
@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "Nowe hasło główne nie spełnia wymaganych zasad."
},
"acceptPolicies": {
"message": "Zaznaczając tę opcję, akceptujesz:"
},
"acceptPoliciesError": {
"message": "Nie zaakceptowałeś regulaminu i polityki prywatności."
}
}

View File

@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "A sua nova senha mestra não cumpre aos requisitos da política."
},
"acceptPolicies": {
"message": "Ao marcar esta caixa, você concorda com o seguinte:"
},
"acceptPoliciesError": {
"message": "Os Termos de Serviço e a Política de Privacidade não foram reconhecidos."
}
}

View File

@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "A sua nova palavra-passe mestra não cumpre os requisitos da política."
},
"acceptPolicies": {
"message": "Ao marcar esta caixa concorda com o seguinte:"
},
"acceptPoliciesError": {
"message": "Terms of Service and Privacy Policy have not been acknowledged."
}
}

View File

@ -3,7 +3,7 @@
"message": "Bitwarden"
},
"filters": {
"message": "Filters"
"message": "Filtre"
},
"allItems": {
"message": "Toate elementele"
@ -15,7 +15,7 @@
"message": "Tipuri"
},
"typeLogin": {
"message": "Autentificare"
"message": "Conectare"
},
"typeCard": {
"message": "Card"
@ -33,7 +33,7 @@
"message": "Colecții"
},
"searchVault": {
"message": "Căutaţi în seif"
"message": "Căutați în seif"
},
"addItem": {
"message": "Adăugare articol"
@ -45,22 +45,22 @@
"message": "Distribuie"
},
"shareItem": {
"message": "Share Item"
"message": "Partajați articolul"
},
"sharedItem": {
"message": "Shared Item"
"message": "Articol partajat"
},
"shareDesc": {
"message": "Choose an organization that you wish to share this item with. Sharing transfers ownership of the item to the organization. You will no longer be the direct owner of this item once it has been shared."
"message": "Alegeți o organizație cu care doriți să partajați acest element. Partajarea transferă proprietatea asupra articolului către organizație. Nu veți mai fi proprietarul direct al acestui articol după ce a fost distribuit."
},
"attachments": {
"message": "Atașamente"
},
"viewItem": {
"message": "Vizualizare articol"
"message": "Vedeți articolul"
},
"name": {
"message": "Denumire"
"message": "Nume"
},
"uri": {
"message": "URI"
@ -85,7 +85,7 @@
"message": "Parolă"
},
"passphrase": {
"message": "Passphrase"
"message": "Frază de acces"
},
"editItem": {
"message": "Editare articol"
@ -113,16 +113,16 @@
"description": "Copy value to clipboard"
},
"minimizeOnCopyToClipboard": {
"message": "Minimize when copying to clipboard"
"message": "Minimizați când copiați în clipboard"
},
"minimizeOnCopyToClipboardDesc": {
"message": "Minimize when copying an item's data to the clipboard."
"message": "Minimizați când copiați datele unui articol în clipboard."
},
"toggleVisibility": {
"message": "Comutare vizibilitate"
},
"toggleCollapse": {
"message": "Toggle Collapse",
"message": "Comută pe afișare articole",
"description": "Toggling an expand/collapse state."
},
"cardholderName": {
@ -141,7 +141,7 @@
"message": "Cod de securitate"
},
"identityName": {
"message": "identityName"
"message": "Numele Identității"
},
"company": {
"message": "Companie"
@ -150,10 +150,10 @@
"message": "Număr de securitate socială"
},
"passportNumber": {
"message": "Număr pașaport"
"message": "Număr de pașaport"
},
"licenseNumber": {
"message": "Număr licență"
"message": "Numărul licenței"
},
"email": {
"message": "E-mail"
@ -286,7 +286,7 @@
"message": "Anulare"
},
"delete": {
"message": "Ştergeţi"
"message": "Ștergeți"
},
"favorite": {
"message": "Favorit"
@ -307,7 +307,7 @@
"message": "Valoare"
},
"dragToSort": {
"message": "Drag to sort"
"message": "Trageți pentru sortare"
},
"cfTypeText": {
"message": "Text"
@ -331,19 +331,19 @@
"message": "Articol editat"
},
"deleteItem": {
"message": "Ștergere articol"
"message": "Șterge articolul"
},
"deleteFolder": {
"message": "Ștergere dosar"
"message": "Șterge dosarul"
},
"deleteAttachment": {
"message": "Ştergere ataşament"
"message": "Șterge atașamentul"
},
"deleteItemConfirmation": {
"message": "Sigur ștergeți acest articol?"
},
"deletedItem": {
"message": "Articol șters"
"message": "Articol trimis în trash"
},
"overwritePasswordConfirmation": {
"message": "Sunteţi sigur că doriţi să suprascrieţi parola curentă?"
@ -371,17 +371,17 @@
"message": "Lungime"
},
"numWords": {
"message": "Number of Words"
"message": "Număr de cuvinte"
},
"wordSeparator": {
"message": "Word Separator"
"message": "Separator de cuvinte"
},
"capitalize": {
"message": "Capitalize",
"message": "Majuscule inițiale",
"description": "Make the first letter of a work uppercase."
},
"includeNumber": {
"message": "Include Number"
"message": "Include cifre"
},
"close": {
"message": "Închidere"
@ -390,45 +390,45 @@
"message": "Număr minim de caractere"
},
"minSpecial": {
"message": "Număr minim de caractere speciale",
"message": "Minimum de caractere speciale",
"description": "Minimum Special Characters"
},
"ambiguous": {
"message": "Evitați caracterele ambigue"
},
"searchCollection": {
"message": "Căutare colecție"
"message": "Caută în colecție"
},
"searchFolder": {
"message": "Căutare dosar"
"message": "Caută în Dosar"
},
"searchFavorites": {
"message": "Caută în Favorite"
},
"searchType": {
"message": "Tipul de căutare",
"message": "Caută în Tipuri",
"description": "Search item type"
},
"newAttachment": {
"message": "Adăugaţi un nou ataşament"
"message": "Adăugați un nou atașament"
},
"deletedAttachment": {
"message": "Ataşament şters"
"message": "Atașament șters"
},
"deleteAttachmentConfirmation": {
"message": "Sunteţi sigur că doriţi să ştergeţi acest atașament?"
"message": "Sunteți sigur că doriți să ștergeți acest atașament?"
},
"attachmentSaved": {
"message": "Ataşamentul a fost salvat."
"message": "Atașamentul a fost salvat."
},
"file": {
"message": "Fişier"
"message": "Fișier"
},
"selectFile": {
"message": "Selectați un fișier."
},
"maxFileSize": {
"message": "Mărimea maximă a fişierului este de 100 MB."
"message": "Mărimea maximă a fișierului este de 100 MB."
},
"updateKey": {
"message": "Veți putea utiliza această caracteristică după ce veți actualiza cheia de criptare."
@ -446,19 +446,19 @@
"message": "Sunteți sigur că vreți să ștergeți dosarul?"
},
"deletedFolder": {
"message": "Dosar şters"
"message": "Dosar șters"
},
"loginOrCreateNewAccount": {
"message": "Autentificați-vă sau creați un cont nou pentru a vă accesa seiful dvs. securizat."
"message": "Conectați-vă sau creați un cont nou pentru a vă accesa seiful securizat."
},
"createAccount": {
"message": "Creare cont"
},
"logIn": {
"message": "Autentificare"
"message": "Conectare"
},
"submit": {
"message": "Trimitere"
"message": "Trimite"
},
"masterPass": {
"message": "Parola principală"
@ -491,19 +491,19 @@
"message": "Adresa de e-mail este necesară."
},
"invalidEmail": {
"message": "Adresa de email greșită."
"message": "Adresa de e-mail greșită."
},
"masterPassRequired": {
"message": "Este necesară parola principală."
},
"masterPassLength": {
"message": "Parola principală trebuie să fie de cel puțin 8 caractere."
"message": "Parola principală trebuie să aibă cel puțin 8 caractere."
},
"masterPassDoesntMatch": {
"message": "Confirmarea parolei principale nu se potrivește."
},
"newAccountCreated": {
"message": "Contul a fost creat! Acum vă puteţi autentifica."
"message": "Contul a fost creat! Acum vă puteți autentifica."
},
"masterPassSent": {
"message": "V-am trimis un e-mail cu indiciul parolei principale."
@ -527,10 +527,10 @@
"message": "Continuare"
},
"enterVerificationCodeApp": {
"message": "Introduceţi codul de verificare din 6 cifre din aplicaţia de autentificare."
"message": "Introduceți codul de verificare din 6 cifre din aplicația de autentificare."
},
"enterVerificationCodeEmail": {
"message": "Introduceţi codul de verificare din 6 cifre, care a fost trimis prin e-mail la $EMAIL$.",
"message": "Introduceți codul de verificare din 6 cifre, care a fost trimis prin e-mail la $EMAIL$.",
"placeholders": {
"email": {
"content": "$1",
@ -551,7 +551,7 @@
"message": "Memorizare"
},
"sendVerificationCodeEmailAgain": {
"message": "Trimitere e-mail cu codul de verificare din nou"
"message": "Trimiteți din nou un e-mail cu codul de verificare"
},
"useAnotherTwoStepMethod": {
"message": "Utilizaţi o altă metodă de autentificare în două etape"
@ -563,34 +563,34 @@
"message": "Introduceți cheia de securitate în portul USB al computerului. Dacă are un buton, atingeți-l."
},
"recoveryCodeDesc": {
"message": "Ai pierdut accesul la toți furnizorii de autentificare în doi paşi? Utilizați codul de recuperare pentru a dezactiva toți furnizorii de autentificare în doi paşi din contul dvs."
"message": "Ați pierdut accesul la toți furnizorii 2FA-autentificare în doi pași? Utilizați codul de recuperare pentru a dezactiva toți furnizorii 2FA din contul dvs."
},
"recoveryCodeTitle": {
"message": "Cod de recuperare"
},
"authenticatorAppTitle": {
"message": "Aplicaţie de autentificare"
"message": "Aplicație de autentificare"
},
"authenticatorAppDesc": {
"message": "Utilizaţi o aplicaţie de autentificare (cum ar fi Authy sau Google Authenticator) pentru a genera codurile de verificare bazate de timp.",
"message": "Utilizați o aplicație de autentificare (cum ar fi Authy sau Google Authenticator) pentru a genera codurile de verificare bazate de timp.",
"description": "'Authy' and 'Google Authenticator' are product names and should not be translated."
},
"yubiKeyTitle": {
"message": "Cheie de securitate YubiKey OTP"
},
"yubiKeyDesc": {
"message": "Utilizați un YubiKey pentru a accesa contul dvs. Funcționează cu dispozitivele YubiKey 4, 4 Nano, 4C și NEO."
"message": "Utilizați un YubiKey pentru a vă accesa contul. Merge cu dispozitivele YubiKey 4, 4 Nano, 4C și NEO."
},
"duoDesc": {
"message": "Verificați cu Duo Security utilizând aplicația Duo Mobile, SMS, apel sau cheia de securitate U2F.",
"description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated."
},
"duoOrganizationDesc": {
"message": "Verificați cu Duo Security pentru organizaţia dvs. utilizând aplicația Duo Mobile, SMS, apel telefonic sau cheia de securitate U2F.",
"message": "Verificați cu Duo Security pentru organizația dvs. utilizând aplicația Duo Mobile, SMS, apel telefonic sau cheia de securitate U2F.",
"description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated."
},
"u2fDesc": {
"message": "Utilizați orice cheie de securitate activată FIDO U2F pentru a accesa contul dvs."
"message": "Utilizați orice cheie de securitate activată FIDO U2F pentru a accesa contul."
},
"u2fTitle": {
"message": "Cheie de securitate FIDO U2F"
@ -599,7 +599,7 @@
"message": "E-mail"
},
"emailDesc": {
"message": "Codurile de verificare vor fi trimise prin e-mail."
"message": "Veți primi prin e-mail codurile de verificare."
},
"loginUnavailable": {
"message": "Login indisponibil"
@ -611,13 +611,13 @@
"message": "Adăugați furnizori suplimentari care sunt mai bine susținuți pe toate dispozitivele (cum ar fi o aplicație de autentificare)."
},
"twoStepOptions": {
"message": "Opţiuni autentificare în două etape"
"message": "Opțiuni autentificare în două etape"
},
"selfHostedEnvironment": {
"message": "Mediu de găzduire personal"
},
"selfHostedEnvironmentFooter": {
"message": "Specificați URL-ul implementări locale, personale a bitwarden."
"message": "Specificați URL-ul de bază al instalării Bitwarden găzduită local."
},
"customEnvironment": {
"message": "Mediu personalizat"
@ -632,19 +632,19 @@
"message": "URL server API"
},
"webVaultUrl": {
"message": "URL seif web"
"message": "URL server seif Web"
},
"identityUrl": {
"message": "URL server de identificare"
},
"notificationsUrl": {
"message": "Notifications Server URL"
"message": "URL-ul serverului de notificări"
},
"iconsUrl": {
"message": "URL server de pictograme"
"message": "URL server de iconuri"
},
"environmentSaved": {
"message": "URL-urile mediului bitwarden au fost salvate."
"message": "URL-urile mediului Bitwarden au fost salvate."
},
"ok": {
"message": "Ok"
@ -677,7 +677,7 @@
"message": "Deconectare"
},
"addNewLogin": {
"message": "Adăugare autentificare nouă"
"message": "Adăugare conectare nouă"
},
"addNewItem": {
"message": "Adăugare element nou"
@ -686,7 +686,7 @@
"message": "Adăugare dosar nou"
},
"view": {
"message": "Vizualizare"
"message": "Afișare"
},
"account": {
"message": "Cont"
@ -701,7 +701,7 @@
"message": "Generator de parole"
},
"emailUs": {
"message": "Trimiteți-ne un e-mail"
"message": "Contactează-ne"
},
"visitOurWebsite": {
"message": "Vizitați-ne site-ul web"
@ -716,30 +716,30 @@
"message": "Urmăriți-ne"
},
"syncVault": {
"message": "Sincronizaţi seiful"
"message": "Sincronizați seiful"
},
"changeMasterPass": {
"message": "Schimbare parolă principală"
},
"changeMasterPasswordConfirmation": {
"message": "Puteţi modifica parola principală pe site-ul web bitwarden.com. Doriţi să vizitaţi site-ul acum?"
"message": "Puteți schimba parola principală pe seiful web bitwarden.com. Doriți să vizitați site-ul acum?"
},
"fingerprintPhrase": {
"message": "Fingerprint Phrase",
"message": "Frază amprentă",
"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."
},
"yourAccountsFingerprint": {
"message": "Your account's fingerprint phrase",
"message": "Fraza amprentă a contului dvs.",
"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."
},
"goToWebVault": {
"message": "Accesaţi seiful web"
"message": "Accesați seiful web"
},
"getMobileApp": {
"message": "Obțineți aplicația pentru mobil"
"message": "Obțineți app pentru mobil"
},
"getBrowserExtension": {
"message": "Obţineţi extensie pentru browser"
"message": "Obțineți extensie pentru browser"
},
"syncingComplete": {
"message": "Sincronizare completă"
@ -748,13 +748,13 @@
"message": "Sincronizare eșuată"
},
"yourVaultIsLocked": {
"message": "Seiful dvs. este blocat. Verificaţi parola principală pentru a continua."
"message": "Seiful dvs. este blocat. Verificați parola principală pentru a continua."
},
"unlock": {
"message": "Deblocare"
},
"loggedInAsOn": {
"message": "Logged in as $EMAIL$ on $HOSTNAME$.",
"message": "Autentificat ca $EMAIL$ în $HOSTNAME$.",
"placeholders": {
"email": {
"content": "$1",
@ -776,10 +776,10 @@
"message": "Autentificare în două etape"
},
"vaultTimeout": {
"message": "Vault Timeout"
"message": "Expirarea seifului"
},
"vaultTimeoutDesc": {
"message": "Choose when your vault will timeout and perform the selected action."
"message": "Alegeți când seiful dvs. va expira și va efectua acțiunea selectată."
},
"immediately": {
"message": "Imediat"
@ -818,10 +818,10 @@
"message": "Când sistemul este inactiv"
},
"onSleep": {
"message": "În repaus"
"message": "Când sistemul este în veghe"
},
"onLocked": {
"message": "La blocarea sistemului"
"message": "Când sistemul este blocat"
},
"onRestart": {
"message": "La repornire"
@ -833,48 +833,48 @@
"message": "Securitate"
},
"clearClipboard": {
"message": "Goliţi Clipboardul",
"message": "Goliți clipboard-ul",
"description": "Clipboard is the operating system thing where you copy/paste data to on your device."
},
"clearClipboardDesc": {
"message": "Şterge automat valorile copiate din clipboard.",
"message": "Șterge automat valorile copiate din clipboard.",
"description": "Clipboard is the operating system thing where you copy/paste data to on your device."
},
"disableFavicon": {
"message": "Dezactivare pictograme"
"message": "Dezactivați iconuri de site-uri"
},
"disableFaviconDesc": {
"message": "Pictogramele oferă o imagine recognoscibilă alături de fiecare element de conectare din seiful dvs."
"message": "Iconurile site-urilor oferă o imagine identificabilă lângă fiecare element de conectare din seiful dvs."
},
"enableMinToTray": {
"message": "Minimizare în zona de notificare"
},
"enableMinToTrayDesc": {
"message": "La minimizarea ferestrei se afișează în schimb o pictogramă în zona de notificare."
"message": "La minimizarea ferestrei se afișează în schimb un icon în zona de notificare."
},
"enableCloseToTray": {
"message": "Close to Tray Icon"
"message": "Închide în zona de notificare"
},
"enableCloseToTrayDesc": {
"message": "La minimizarea ferestrei se afișează în schimb o pictogramă în zona de notificare."
"message": "La minimizarea ferestrei afișați în schimb un icon în zona de notificare."
},
"enableTray": {
"message": "Activare pictogramă în zona de notificare"
"message": "Activare icon în zona de notificare"
},
"enableTrayDesc": {
"message": "Afișează mereu o pictogramă în zona de notificare."
},
"startToTray": {
"message": "Start To Tray Icon"
"message": "Pornește în bara de notificări"
},
"startToTrayDesc": {
"message": "When the application is first started, only show an icon in the system tray."
"message": "Când aplicația este pornită pentru prima dată, afișați un icon în bara de notificări."
},
"language": {
"message": "Limbă"
},
"languageDesc": {
"message": "Schimbă limba utilizată de aplicație. Este necesare restartarea."
"message": "Schimbă limba utilizată de aplicație. Este necesară repornirea."
},
"theme": {
"message": "Temă"
@ -895,7 +895,7 @@
"description": "Copy to clipboard"
},
"checkForUpdates": {
"message": "Verificaţi pentru actualizări"
"message": "Verificați pentru actualizări"
},
"version": {
"message": "Versiune $VERSION_NUM$",
@ -910,7 +910,7 @@
"message": "Reporniți pentru actualizare"
},
"restartToUpdateDesc": {
"message": "Versiunea $VERSION_NUM$ este gata pentru instare. Trebuie să reporniţi Bitwarden pentru a finaliza instalarea. Doriţi să reporniţi şi să actualizaţi acum?",
"message": "Versiunea $VERSION_NUM$ este gata pentru instalare. Trebuie să reporniți Bitwarden pentru a finaliza instalarea. Doriți să reporniți și să actualizați acum?",
"placeholders": {
"version_num": {
"content": "$1",
@ -922,7 +922,7 @@
"message": "Actualizare disponibilă"
},
"updateAvailableDesc": {
"message": "O actualizare a fost găsită. Doriţi s-o descărcaţi acum?"
"message": "O actualizare a fost găsită. Doriți să o descărcați acum?"
},
"restart": {
"message": "Repornire"
@ -931,7 +931,7 @@
"message": "Mai târziu"
},
"noUpdatesAvailable": {
"message": "Nu sunt disponibile actualizări în prezent. Utilizaţi cea mai recentă versiune."
"message": "În prezent nu sunt disponibile actualizări. Folosiți cea mai recentă versiune."
},
"updateError": {
"message": "Eroare la actualizare"
@ -957,25 +957,25 @@
"message": "Administrare abonament"
},
"premiumManageAlert": {
"message": "Puteţi gestiona apartenenţa pe site-ul web bitwarden.com. Doriţi să vizitaţi site-ul acum?"
"message": "Vă puteți gestiona apartenența pe seiful web la bitwarden.com. Doriți să vizitați site-ul acum?"
},
"premiumRefresh": {
"message": "Reîmprospătare apartenență"
},
"premiumNotCurrentMember": {
"message": "Nu sunteţi în prezent un membru premium."
"message": "Nu sunteți în prezent un membru premium."
},
"premiumSignUpAndGet": {
"message": "Înscrieţi-vă pentru un abonament premium şi obţineţi:"
"message": "Înscrieţi-vă pentru un abonament premium și obțineți:"
},
"premiumSignUpStorage": {
"message": "1 GB pentru stocarea fişierelor criptate."
"message": "1 GB pentru stocarea fișierelor criptate."
},
"premiumSignUpTwoStep": {
"message": "Opțiuni adiţionale de conectare în doi pași, cum ar fi YubiKey, FIDO U2F şi Duo."
"message": "Opțiuni adiționale de conectare în doi pași, cum ar fi YubiKey, FIDO U2F și Duo."
},
"premiumSignUpReports": {
"message": "Password hygiene, account health, and data breach reports to keep your vault safe."
"message": "Igiena parolelor, starea contului și rapoarte de scurgere de date pentru a vă menține siguranța seifului."
},
"premiumSignUpTotp": {
"message": "Generatorul codului de verificare TOTP (2FA) pentru autentificările din seif."
@ -987,16 +987,16 @@
"message": "Toate caracteristicile premium viitoare. Mai multe în curând!"
},
"premiumPurchase": {
"message": "Procuraţi un abonament premium"
"message": "Cumpărați un abonament Premium"
},
"premiumPurchaseAlert": {
"message": "Puteţi procura un abonament premium pe site-ul web bitwarden.com. Doriţi să vizitaţi site-ul acum?"
"message": "Vă puteți procura un abonament premium pe site-ul bitwarden.com. Doriți să vizitați site-ul acum?"
},
"premiumCurrentMember": {
"message": "Sunteţi un membru premium!"
"message": "Sunteți un membru premium!"
},
"premiumCurrentMemberThanks": {
"message": "Vă mulţumim pentru susţinerea bitwarden."
"message": "Vă mulțumim pentru susținerea Bitwarden."
},
"premiumPrice": {
"message": "Totul pentru doar $PRICE$ /an!",
@ -1014,11 +1014,11 @@
"message": "Istoric parole"
},
"clear": {
"message": "Ştergere",
"message": "Ștergere",
"description": "To clear something out. example: To clear browser history."
},
"noPasswordsInList": {
"message": "Nu sunt parole în listă."
"message": "Nu aveți nicio parolă în listă."
},
"undo": {
"message": "Anulare"
@ -1027,21 +1027,21 @@
"message": "Refacere"
},
"cut": {
"message": "Decupare",
"message": "Taie",
"description": "Cut to clipboard"
},
"paste": {
"message": "Lipire",
"message": "Lipește",
"description": "Paste from clipboard"
},
"selectAll": {
"message": "Selecare totală"
"message": "Selectați tot"
},
"zoomIn": {
"message": "Mărire"
},
"zoomOut": {
"message": "Micşorare"
"message": "Micșorare"
},
"resetZoom": {
"message": "Resetare Zoom"
@ -1063,7 +1063,7 @@
"message": "Zoom"
},
"bringAllToFront": {
"message": "Aducere tot în faţă",
"message": "Aducere tot în față",
"description": "Bring all windows to front (foreground)"
},
"aboutBitwarden": {
@ -1079,7 +1079,7 @@
"message": "Ascunde celelalte"
},
"showAll": {
"message": "Afişare tot"
"message": "Afișare tot"
},
"quitBitwarden": {
"message": "Închidere Bitwarden"
@ -1154,18 +1154,18 @@
"message": "Ieșire"
},
"showHide": {
"message": "Afișare/Ascundere",
"message": "Afișare / Ascundere",
"description": "Text for a button that toggles the visibility of the window. Shows the window when it is hidden or hides the window if it is currently open."
},
"hideToTray": {
"message": "Ascundere în zona de notificare"
},
"alwaysOnTop": {
"message": "Always on Top",
"message": "Mereu Deasupra",
"description": "Application window should always stay on top of other windows"
},
"dateUpdated": {
"message": "Updated",
"message": "Actualizat",
"description": "ex. Date this item was updated"
},
"datePasswordUpdated": {
@ -1179,136 +1179,136 @@
"message": "File Format"
},
"warning": {
"message": "WARNING",
"message": "AVERTISMENT",
"description": "WARNING (should stay in capitalized letters if the language permits)"
},
"exportWarningDesc": {
"message": "This export contains your vault data in an unencrypted format. You should not store or send the exported file 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."
"message": "Introduceți parola principală pentru a exporta datele din seif."
},
"noOrganizationsList": {
"message": "You do not belong to any organizations. Organizations allow you to securely share items with other users."
},
"noCollectionsInList": {
"message": "There are no collections to list."
"message": "Nu există colecții în listă."
},
"ownership": {
"message": "Ownership"
"message": "Proprietar"
},
"whoOwnsThisItem": {
"message": "Who owns this item?"
"message": "Cine deține acest articol?"
},
"strong": {
"message": "Strong",
"message": "Puternic",
"description": "ex. A strong password. Scale: Weak -> Good -> Strong"
},
"good": {
"message": "Good",
"message": "Bun",
"description": "ex. A good password. Scale: Weak -> Good -> Strong"
},
"weak": {
"message": "Weak",
"message": "Slab",
"description": "ex. A weak password. Scale: Weak -> Good -> Strong"
},
"weakMasterPassword": {
"message": "Weak Master Password"
},
"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": "Parola principală aleasă este slabă. Ar trebui folosită o parolă principală (sau o frază de access) puternică pentru a vă proteja corect contul Bitwarden. Sunteți sigur că doriți să folosiți această parola principală?"
},
"pin": {
"message": "PIN",
"description": "PIN code. Ex. The short code (often numeric) that you use to unlock a device."
},
"unlockWithPin": {
"message": "Unlock with PIN"
"message": "Deblocați cu codul PIN"
},
"setYourPinCode": {
"message": "Set your PIN code for unlocking Bitwarden. Your PIN settings will be reset if you ever fully log out of the application."
"message": "Setați codul PIN de deblocare Bitwarden. Setările codului PIN vor fi resetate dacă vă deconectați vreodată din aplicație."
},
"pinRequired": {
"message": "PIN code is required."
"message": "Codul PIN este necesar."
},
"invalidPin": {
"message": "Invalid PIN code."
"message": "Cod PIN invalid."
},
"yourVaultIsLockedPinCode": {
"message": "Your vault is locked. Verify your PIN code to continue."
"message": "Seiful dvs. este blocat. Verificați codul PIN pentru a continua."
},
"unlockWithWindowsHello": {
"message": "Unlock with Windows Hello"
"message": "Deblocare cu Windows Hello"
},
"windowsHelloConsentMessage": {
"message": "Verify for Bitwarden."
"message": "Verificați pentru Bitwarden."
},
"unlockWithTouchId": {
"message": "Unlock with Touch ID"
"message": "Deblocare cu Touch ID"
},
"touchIdConsentMessage": {
"message": "Verify for Bitwarden."
"message": "Verificați pentru Bitwarden."
},
"lockWithMasterPassOnRestart": {
"message": "Lock with master password on restart"
"message": "Blocați cu parola principală la repornire"
},
"preferences": {
"message": "Preferences"
"message": "Preferințe"
},
"enableMenuBar": {
"message": "Enable Menu Bar Icon"
"message": "Icon în Bara de Activități"
},
"enableMenuBarDesc": {
"message": "Always show an icon in the menu bar."
"message": "Arată mereu un icon în Bara de Activități."
},
"hideToMenuBar": {
"message": "Hide to Menu Bar"
"message": "Ascunde în Bara de Activități"
},
"selectOneCollection": {
"message": "You must select at least one collection."
"message": "Trebuie să selectați cel puțin o colecție."
},
"premiumUpdated": {
"message": "You've upgraded to premium."
"message": "Ați actualizat la Premium."
},
"restore": {
"message": "Restore"
"message": "Restaurați"
},
"premiumManageAlertAppStore": {
"message": "You can manage your subscription from the App Store. Do you want to visit the App Store now?"
"message": "Vă puteți gestiona abonamentul din App Store. Doriți să vizitați App Store acum?"
},
"legal": {
"message": "Legal",
"description": "Noun. As in 'legal documents', like our terms of service and privacy policy."
},
"termsOfService": {
"message": "Terms of Service"
"message": "Termenii Serviciului"
},
"privacyPolicy": {
"message": "Privacy Policy"
"message": "Politica Intimității"
},
"unsavedChangesConfirmation": {
"message": "Are you sure you want to leave? If you leave now then your current information will not be saved."
"message": "Sunteți sigur că vreți să plecați? Dacă plecați acum, informațiile dvs. curente nu vor fi salvate."
},
"unsavedChangesTitle": {
"message": "Unsaved Changes"
"message": "Modificări nesalvate"
},
"clone": {
"message": "Clone"
"message": "Clonare"
},
"passwordGeneratorPolicyInEffect": {
"message": "One or more organization policies are affecting your generator settings."
"message": "Una sau mai multe politici organizaționale vă afectează setările generatorului."
},
"vaultTimeoutAction": {
"message": "Vault Timeout Action"
"message": "Acțiune la expirarea seifului"
},
"vaultTimeoutActionLockDesc": {
"message": "A locked vault requires that you re-enter your master password to access it again."
"message": "Un seif blocat necesită reintroducerea parolei principale pentru a-l accesa din nou."
},
"vaultTimeoutActionLogOutDesc": {
"message": "A logged out vault requires that you re-authenticate to access it again."
"message": "Un seif deconectat necesită reintroducerea parolei principale pentru a-l accesa din nou."
},
"lock": {
"message": "Lock",
"message": "Blocare",
"description": "Verb form: to make secure or inaccesible by"
},
"trash": {
@ -1316,55 +1316,55 @@
"description": "Noun: a special folder to hold deleted items"
},
"searchTrash": {
"message": "Search trash"
"message": "Căutați în trash"
},
"permanentlyDeleteItem": {
"message": "Permanently Delete Item"
"message": "Șterge permanent elementul"
},
"permanentlyDeleteItemConfirmation": {
"message": "Are you sure you want to permanently delete this item?"
"message": "Sigur doriți să ștergeți permanent acest articol?"
},
"permanentlyDeletedItem": {
"message": "Permanently Deleted item"
"message": "Articol șters permanent"
},
"restoreItem": {
"message": "Restore Item"
"message": "Restabiliți articolul"
},
"restoreItemConfirmation": {
"message": "Are you sure you want to restore this item?"
"message": "Sigur doriți să restaurați acest articol?"
},
"restoredItem": {
"message": "Restored Item"
"message": "Articol restaurat"
},
"permanentlyDelete": {
"message": "Permanently Delete"
"message": "Ștergeți permanent"
},
"vaultTimeoutLogOutConfirmation": {
"message": "Logging out will remove all access to your vault and requires online authentication after the timeout period. Are you sure you want to use this setting?"
"message": "Deconectarea va elimina accesul la seiful dvs. și necesită autentificare online după perioada de expirare. Sunteți sigur că doriți să utilizați această setare?"
},
"vaultTimeoutLogOutConfirmationTitle": {
"message": "Timeout Action Confirmation"
"message": "Confirmare acțiune la expirare"
},
"enterpriseSingleSignOn": {
"message": "Enterprise Single Sign-On"
"message": "Identificare unică antrepriză (SSO)"
},
"setMasterPassword": {
"message": "Set Master Password"
"message": "Setați parola principală"
},
"ssoCompleteRegistration": {
"message": "In order to complete logging in with SSO, please set a master password to access and protect your vault."
"message": "Pentru a finaliza conectarea cu SSO, vă rugăm să setați o parolă principală pentru a accesa și a vă proteja seiful."
},
"newMasterPass": {
"message": "New Master Password"
"message": "Noua parolă principală"
},
"confirmNewMasterPass": {
"message": "Confirm New Master Password"
"message": "Confirmați noua parolă principală"
},
"masterPasswordPolicyInEffect": {
"message": "One or more organization policies require your master password to meet the following requirements:"
"message": "Una sau mai multe politici ale organizației necesită ca parola principală să îndeplinească următoarele cerințe:"
},
"policyInEffectMinComplexity": {
"message": "Minimum complexity score of $SCORE$",
"message": "Scor minim de complexitate de $SCORE$",
"placeholders": {
"score": {
"content": "$1",
@ -1373,7 +1373,7 @@
}
},
"policyInEffectMinLength": {
"message": "Minimum length of $LENGTH$",
"message": "Lungime minimă de $LENGTH$",
"placeholders": {
"length": {
"content": "$1",
@ -1382,16 +1382,16 @@
}
},
"policyInEffectUppercase": {
"message": "Contain one or more uppercase characters"
"message": "Conține unul sau mai multe caractere majuscule"
},
"policyInEffectLowercase": {
"message": "Contain one or more lowercase characters"
"message": "Conține unul sau mai multe caractere minuscule"
},
"policyInEffectNumbers": {
"message": "Contain one or more numbers"
"message": "Conține unul sau mai multe numere"
},
"policyInEffectSpecial": {
"message": "Contain one or more of the following special characters $CHARS$",
"message": "Conține unul sau mai multe din următoarele caractere: $CHARS$",
"placeholders": {
"chars": {
"content": "$1",
@ -1400,6 +1400,12 @@
}
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "Your new master password does not meet the policy requirements."
"message": "Noua dvs. parolă principală nu îndeplinește cerințele politicii."
},
"acceptPolicies": {
"message": "Bifând această casetă sunteți de acord cu următoarele:"
},
"acceptPoliciesError": {
"message": "Termenii Serviciului și Politica Intimității nu au fost recunoscute."
}
}

View File

@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "Ваш новый мастер-пароль не соответствует требованиям политики."
},
"acceptPolicies": {
"message": "Устанавливая этот флажок, вы соглашаетесь со следующим:"
},
"acceptPoliciesError": {
"message": "Условия предоставления услуг и Политика конфиденциальности не были подтверждены."
}
}

View File

@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "Your new master password does not meet the policy requirements."
},
"acceptPolicies": {
"message": "By checking this box you agree to the following:"
},
"acceptPoliciesError": {
"message": "Terms of Service and Privacy Policy have not been acknowledged."
}
}

View File

@ -51,7 +51,7 @@
"message": "Položka zdieľaná"
},
"shareDesc": {
"message": "Vyberte organizáciu, s ktorou chcete zdieľať túto položku. Zdieľanie presunie vlastníctvo položky na organizáciu. Po zdieľaní už nebudete priamy vlastník položky."
"message": "Vyberte organizáciu, s ktorou chcete zdieľať túto položku. Zdieľanie presunie vlastníctvo položky na organizáciu. Po zdieľaní už nebudete priamym vlastníkom danej položky."
},
"attachments": {
"message": "Prílohy"
@ -109,7 +109,7 @@
"message": "Spustiť"
},
"copyValue": {
"message": "Kopírovať hodnotu",
"message": "Skopírovať hodnotu",
"description": "Copy value to clipboard"
},
"minimizeOnCopyToClipboard": {
@ -135,7 +135,7 @@
"message": "Značka"
},
"expiration": {
"message": "Expirácia"
"message": "Exspirácia"
},
"securityCode": {
"message": "Bezpečnostný kód"
@ -232,10 +232,10 @@
"message": "Dr."
},
"expirationMonth": {
"message": "Mesiac expirácie"
"message": "Mesiac exspirácie"
},
"expirationYear": {
"message": "Rok expirácie"
"message": "Rok exspirácie"
},
"select": {
"message": "Vybrať"
@ -377,7 +377,7 @@
"message": "Oddeľovač slov"
},
"capitalize": {
"message": "Prvé písmeno veľkým",
"message": "Veľké prvé písmená slov",
"description": "Make the first letter of a work uppercase."
},
"includeNumber": {
@ -387,10 +387,10 @@
"message": "Zavrieť"
},
"minNumbers": {
"message": "Minimum číslic"
"message": "Minimálny počet číslic"
},
"minSpecial": {
"message": "Minimum špec. znakov",
"message": "Minimum špeciálnych",
"description": "Minimum Special Characters"
},
"ambiguous": {
@ -431,7 +431,7 @@
"message": "Maximálna veľkosť súboru je 100 MB."
},
"updateKey": {
"message": "Túto funkciu nemožno použiť, kým neaktualizujete svoj šifrovací kľúč."
"message": "Túto funkciu je možné použiť, až keď si aktualizujete svoj šifrovací kľúč."
},
"options": {
"message": "Možnosti"
@ -449,7 +449,7 @@
"message": "Priečinok odstránený"
},
"loginOrCreateNewAccount": {
"message": "Prihláste sa, alebo vytvorte nový účet pre prístup k vášmu bezpečnému trezoru."
"message": "Prihláste sa alebo si vytvorte nový účet, aby ste mohli pristupovať k vášmu bezpečnému trezoru."
},
"createAccount": {
"message": "Vytvoriť účet"
@ -464,7 +464,7 @@
"message": "Hlavné heslo"
},
"masterPassDesc": {
"message": "Hlavné heslo je heslo, ktoré použijete na prístup k svojmu trezoru. Je veľmi dôležité, aby ste svoje hlavné heslo nezabudli. Neexistuje možnosť, ako heslo obnoviť v prípade, že ho zabudnete."
"message": "Hlavné heslo je heslo, ktoré používate na prístup k svojmu trezoru. Je veľmi dôležité, aby ste svoje hlavné heslo nezabudli. Neexistuje možnosť ako heslo obnoviť v prípade, že ho zabudnete."
},
"masterPassHintDesc": {
"message": "Nápoveď k hlavnému heslu vám môže pomôcť spomenúť si na heslo, ak ho zabudnete."
@ -566,7 +566,7 @@
"message": "Stratili ste prístup ku všetkým vašim dvojstupňovým poskytovateľom? Použite váš záchranný kód pre vypnutie všetkých poskytovateľov vo vašom účte."
},
"recoveryCodeTitle": {
"message": "Záchranný kód"
"message": "Kód na obnovenie"
},
"authenticatorAppTitle": {
"message": "Overovacia aplikácia"
@ -582,7 +582,7 @@
"message": "Použiť YubiKey pre prístup k vášmu účtu. Pracuje s YubiKey 4, 4 Nano, 4C a s NEO zariadeniami."
},
"duoDesc": {
"message": "Overiť s Duo Security použitím Duo Mobile aplikácie, SMS, telefonátu alebo U2F bezpečnostným kľúčom.",
"message": "Overiť sa prostredníctvom Duo Security použitím Duo Mobile aplikácie, SMS, telefonátu alebo U2F bezpečnostným kľúčom.",
"description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated."
},
"duoOrganizationDesc": {
@ -677,7 +677,7 @@
"message": "Odhlásiť sa"
},
"addNewLogin": {
"message": "Pridať prihlasovacie údaje"
"message": "Pridať nové prihlasovacie údaje"
},
"addNewItem": {
"message": "Pridať novú položku"
@ -779,7 +779,7 @@
"message": "Časový limit pre trezor"
},
"vaultTimeoutDesc": {
"message": "Vyberte kedy vyprší časový limit trezora a vykoná sa zvolená akcia."
"message": "Vyberte, kedy vyprší časový limit trezora a vykoná sa zvolená akcia."
},
"immediately": {
"message": "Okamžite"
@ -880,7 +880,7 @@
"message": "Motív"
},
"themeDesc": {
"message": "Zmeniť motív aplikácie."
"message": "Zmeniť farebný motív aplikácie."
},
"dark": {
"message": "Tmavý",
@ -1035,7 +1035,7 @@
"description": "Paste from clipboard"
},
"selectAll": {
"message": "Vybrať Všetko"
"message": "Označiť všetko"
},
"zoomIn": {
"message": "Priblížiť"
@ -1095,7 +1095,7 @@
}
},
"help": {
"message": "Pomoc"
"message": "Nápoveď"
},
"window": {
"message": "Okno"
@ -1104,7 +1104,7 @@
"message": "Overiť či došlo k úniku hesla."
},
"passwordExposed": {
"message": "Toto heslo uniklo $VALUE$ krát v dátových únikoch. Mali by ste ho zmeniť.",
"message": "Toto heslo uniklo $VALUE$-krát v dátových únikoch. Mali by ste ho zmeniť.",
"placeholders": {
"value": {
"content": "$1",
@ -1241,13 +1241,13 @@
"message": "Odomknúť pomocou Windows Hello"
},
"windowsHelloConsentMessage": {
"message": "Verify for Bitwarden."
"message": "Overiť pre Bitwarden."
},
"unlockWithTouchId": {
"message": "Odomknúť s Touch ID"
},
"touchIdConsentMessage": {
"message": "Verify for Bitwarden."
"message": "Overiť pre Bitwarden."
},
"lockWithMasterPassOnRestart": {
"message": "Pri reštarte zamknúť s hlavným heslom"
@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "Vaše nové hlavné heslo nespĺňa pravidlá."
},
"acceptPolicies": {
"message": "Označením tohto políčka súhlasíte s nasledovným:"
},
"acceptPoliciesError": {
"message": "Neboli akceptované Podmienky používania a zásady Ochrany osobných údajov."
}
}

1411
src/locales/sr/messages.json Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "Ditt nya huvudlösenord uppfyller inte kraven i policyn."
},
"acceptPolicies": {
"message": "By checking this box you agree to the following:"
},
"acceptPoliciesError": {
"message": "Terms of Service and Privacy Policy have not been acknowledged."
}
}

View File

@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "Your new master password does not meet the policy requirements."
},
"acceptPolicies": {
"message": "By checking this box you agree to the following:"
},
"acceptPoliciesError": {
"message": "Terms of Service and Privacy Policy have not been acknowledged."
}
}

View File

@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "Yeni ana parolanız ilke gereksinimlerini karşılamıyor."
},
"acceptPolicies": {
"message": "By checking this box you agree to the following:"
},
"acceptPoliciesError": {
"message": "Terms of Service and Privacy Policy have not been acknowledged."
}
}

View File

@ -1247,7 +1247,7 @@
"message": "Розблокувати з Touch ID"
},
"touchIdConsentMessage": {
"message": "розблокувати сховище"
"message": "Перевірити на Bitwarden."
},
"lockWithMasterPassOnRestart": {
"message": "Блокувати головним паролем при перезапуску"
@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "Ваш новий головний пароль не задовольняє вимоги політики."
},
"acceptPolicies": {
"message": "Позначивши цей прапорець, ви погоджуєтеся з:"
},
"acceptPoliciesError": {
"message": "Умови користування та політика приватності не погоджені."
}
}

View File

@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "Your new master password does not meet the policy requirements."
},
"acceptPolicies": {
"message": "By checking this box you agree to the following:"
},
"acceptPoliciesError": {
"message": "Terms of Service and Privacy Policy have not been acknowledged."
}
}

View File

@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "您的新主密码不符合策略要求。"
},
"acceptPolicies": {
"message": "选中此框表示您同意:"
},
"acceptPoliciesError": {
"message": "尚未同意服务条款和隐私政策。"
}
}

View File

@ -1401,5 +1401,11 @@
},
"masterPasswordPolicyRequirementsNotMet": {
"message": "Your new master password does not meet the policy requirements."
},
"acceptPolicies": {
"message": "點擊此選取框,代表您同意下列項目:"
},
"acceptPoliciesError": {
"message": "尚未接受服務條款與隱私權保護政策。"
}
}

View File

@ -157,6 +157,14 @@ export class Main {
event.preventDefault();
this.processDeepLink([url]);
});
// Handle window visibility events
this.windowMain.win.on('hide', () => {
this.messagingService.send('windowHidden');
});
this.windowMain.win.on('minimize', () => {
this.messagingService.send('windowHidden');
});
}, (e: any) => {
// tslint:disable-next-line
console.error(e);