1
0
mirror of https://github.com/bitwarden/browser synced 2026-02-18 18:33:50 +00:00

updates strings (#17422)

* updated strings
This commit is contained in:
Maximilian Power
2025-11-17 17:50:39 +01:00
committed by jaasen-livefront
parent cc30a9b912
commit 30a09ee104
8 changed files with 51 additions and 63 deletions

View File

@@ -93,8 +93,8 @@
"assignMembersTasksToMonitorProgress": {
"message": "Assign members tasks to monitor progress"
},
"onceYouReviewApps": {
"message": "Once you review applications and mark them as critical, you can assign tasks to members to resolve at-risk items and monitor progress here"
"onceYouReviewApplications": {
"message": "Once you review applications and mark them as critical, assign tasks to your members to change their passwords."
},
"sendReminders": {
"message": "Send reminders"
@@ -178,41 +178,35 @@
}
}
},
"noApplicationsInOrgTitle": {
"message": "No applications found for $ORG NAME$",
"placeholders": {
"org name": {
"content": "$1",
"example": "Company Name"
}
}
"noDataInOrgTitle": {
"message": "No data found"
},
"noApplicationsInOrgDescription": {
"message": "Import your organization's login data to start monitoring credential security risks. Once imported you get to:"
"noDataInOrgDescription": {
"message": "Import your organization's login data to get started with Access Intelligence. Once you do that, you'll be able to:"
},
"benefit1Title": {
"message": "Prioritize risks"
"feature1Title": {
"message": "Mark applications as critical"
},
"benefit1Description": {
"message": "Focus on applications that matter the most"
"feature1Description": {
"message": "This will help you remove risks to your most important applications first."
},
"benefit2Title": {
"message": "Guide remediation"
"feature2Title": {
"message": "Help members improve their security"
},
"benefit2Description": {
"message": "Assign at-risk members guided tasks to rotate at-risk credentials"
"feature2Description": {
"message": "Assign at-risk members guided security tasks to update credentials."
},
"benefit3Title": {
"feature3Title": {
"message": "Monitor progress"
},
"benefit3Description": {
"message": "Track changes over time to show security improvements"
"feature3Description": {
"message": "Track changes over time to show security improvements."
},
"noReportRunTitle": {
"message": "Run your first report to see applications"
"noReportsRunTitle": {
"message": "Generate report"
},
"noReportRunDescription": {
"message": "Generate a risk insights report to analyze your organization's applications and identify at-risk passwords that need attention. Running your first report will:"
"noReportsRunDescription": {
"message": "Youre ready to start generating reports. Once you generate, youll be able to:"
},
"noCriticalApplicationsTitle": {
"message": "You havent marked any applications as critical"
@@ -271,14 +265,14 @@
"atRiskMembers": {
"message": "At-risk members"
},
"membersWithAccessToAtRiskItemsForCriticalApps": {
"message": "Members with access to at-risk items for critical applications"
"membersWithAccessToAtRiskItemsForCriticalApplications": {
"message": "These members have access to vulnerable items for critical applications."
},
"membersWithAtRiskPasswords": {
"message": "Members with at-risk passwords"
},
"membersWillReceiveNotification": {
"message": "Members will receive a notification to resolve at-risk logins through the browser extension."
"membersWillReceiveSecurityTask": {
"message": "Members of your organization will be assigned a task to change vulnerable passwords. Theyll receive a notification within their Bitwarden browser extension."
},
"membersAtRiskCount": {
"message": "$COUNT$ members at-risk",
@@ -307,8 +301,8 @@
}
}
},
"atRiskMembersDescription": {
"message": "These members are logging into applications with weak, exposed, or reused passwords."
"atRiskMemberDescription": {
"message": "These members are logging into critical applications with weak, exposed, or reused passwords."
},
"atRiskMembersDescriptionNone": {
"message": "These are no members logging into applications with weak, exposed, or reused passwords."
@@ -391,14 +385,14 @@
"prioritizeCriticalApplications": {
"message": "Prioritize critical applications"
},
"selectCriticalApplicationsDescription": {
"message": "Select which applications are most critical to your organization, then assign security tasks to members to resolve risks."
"selectCriticalAppsDescription": {
"message": "Select which applications are most critical to your organization. Then, youll be able to assign security tasks to members to remove risks."
},
"reviewNewApplications": {
"message": "Review new applications"
},
"reviewNewApplicationsDescription": {
"message": "We've highlighted at-risk items for new applications stored in Admin console that have weak, exposed, or reused passwords."
"reviewNewAppsDescription": {
"message": "Review new applications with vulnerable items and mark those youd like to monitor closely as critical. Then, youll be able to assign security tasks to members to remove risks."
},
"clickIconToMarkAppAsCritical": {
"message": "Click the star icon to mark an app as critical"
@@ -9860,8 +9854,8 @@
"assignTasks": {
"message": "Assign tasks"
},
"assignTasksToMembers": {
"message": "Assign tasks to members for guided resolution"
"assignSecurityTasksToMembers": {
"message": "Send notifications to change passwords"
},
"assignToCollections": {
"message": "Assign to collections"

View File

@@ -12,7 +12,7 @@
</div>
<div class="tw-items-baseline tw-gap-2">
<span bitTypography="body2">{{ "onceYouReviewApps" | i18n }}</span>
<span bitTypography="body2">{{ "onceYouReviewApplications" | i18n }}</span>
</div>
}

View File

@@ -14,7 +14,7 @@
<dirt-activity-card
[title]="'atRiskMembers' | i18n"
[cardMetrics]="'membersAtRiskCount' | i18n: totalCriticalAppsAtRiskMemberCount"
[metricDescription]="'membersWithAccessToAtRiskItemsForCriticalApps' | i18n"
[metricDescription]="'membersWithAccessToAtRiskItemsForCriticalApplications' | i18n"
actionText="{{ 'viewAtRiskMembers' | i18n }}"
[showActionLink]="totalCriticalAppsAtRiskMemberCount > 0"
(actionClick)="onViewAtRiskMembers()"

View File

@@ -71,7 +71,7 @@
<!-- Description Text -->
<div bitTypography="helper" class="tw-text-muted">
{{ "membersWillReceiveNotification" | i18n }}
{{ "membersWillReceiveSecurityTask" | i18n }}
</div>
</div>
</div>

View File

@@ -5,7 +5,7 @@
? hasNoCriticalApplications()
? ("prioritizeCriticalApplications" | i18n)
: ("reviewNewApplications" | i18n)
: ("assignTasksToMembers" | i18n)
: ("assignSecurityTasksToMembers" | i18n)
}}
</span>
@@ -15,8 +15,8 @@
<p bitTypography="body1" class="tw-mb-5">
{{
hasNoCriticalApplications()
? ("selectCriticalApplicationsDescription" | i18n)
: ("reviewNewApplicationsDescription" | i18n)
? ("selectCriticalAppsDescription" | i18n)
: ("reviewNewAppsDescription" | i18n)
}}
</p>

View File

@@ -16,8 +16,8 @@
<!-- Show Empty state when there are no applications (no ciphers to make reports on) -->
<empty-state-card
[videoSrc]="emptyStateVideoSrc"
[title]="this.i18nService.t('noApplicationsInOrgTitle', organizationName)"
[description]="this.i18nService.t('noApplicationsInOrgDescription')"
[title]="this.i18nService.t('noDataInOrgTitle')"
[description]="this.i18nService.t('noDataInOrgDescription')"
[benefits]="emptyStateBenefits"
[buttonText]="this.i18nService.t('importData')"
[buttonIcon]="IMPORT_ICON"
@@ -27,8 +27,8 @@
<!-- Show empty state for no reports run -->
<empty-state-card
[videoSrc]="emptyStateVideoSrc"
[title]="this.i18nService.t('noReportRunTitle')"
[description]="this.i18nService.t('noReportRunDescription')"
[title]="this.i18nService.t('noReportsRunTitle')"
[description]="this.i18nService.t('noReportsRunDescription')"
[benefits]="emptyStateBenefits"
[buttonText]="this.i18nService.t('riskInsightsRunReport')"
[buttonIcon]=""

View File

@@ -10,7 +10,7 @@ import {
} from "@angular/core";
import { takeUntilDestroyed } from "@angular/core/rxjs-interop";
import { ActivatedRoute, Router } from "@angular/router";
import { combineLatest, EMPTY, firstValueFrom } from "rxjs";
import { EMPTY, firstValueFrom } from "rxjs";
import { distinctUntilChanged, map, tap } from "rxjs/operators";
import { JslibModule } from "@bitwarden/angular/jslib.module";
@@ -84,14 +84,11 @@ export class RiskInsightsComponent implements OnInit, OnDestroy {
dataLastUpdated: Date | null = null;
// Empty state properties
protected organizationName = "";
// Empty state computed properties
protected emptyStateBenefits: [string, string][] = [
[this.i18nService.t("benefit1Title"), this.i18nService.t("benefit1Description")],
[this.i18nService.t("benefit2Title"), this.i18nService.t("benefit2Description")],
[this.i18nService.t("benefit3Title"), this.i18nService.t("benefit3Description")],
[this.i18nService.t("feature1Title"), this.i18nService.t("feature1Description")],
[this.i18nService.t("feature2Title"), this.i18nService.t("feature2Description")],
[this.i18nService.t("feature3Title"), this.i18nService.t("feature3Description")],
];
protected emptyStateVideoSrc: string | null = "/videos/risk-insights-mark-as-critical.mp4";
@@ -140,17 +137,14 @@ export class RiskInsightsComponent implements OnInit, OnDestroy {
)
.subscribe();
// Combine report data, vault items check, organization details, and generation state
// Subscribe to report data updates
// This declarative pattern ensures proper cleanup and prevents memory leaks
combineLatest([this.dataService.enrichedReportData$, this.dataService.organizationDetails$])
this.dataService.enrichedReportData$
.pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(([report, orgDetails]) => {
.subscribe((report) => {
// Update report state
this.appsCount = report?.reportData.length ?? 0;
this.dataLastUpdated = report?.creationDate ?? null;
// Update organization name
this.organizationName = orgDetails?.organizationName ?? "";
});
// Subscribe to drawer state changes

View File

@@ -8,7 +8,7 @@
<ng-container bitDialogContent>
<span bitTypography="body1" class="tw-text-muted tw-text-sm">{{
(drawerDetails.atRiskMemberDetails?.length > 0
? "atRiskMembersDescription"
? "atRiskMemberDescription"
: "atRiskMembersDescriptionNone"
) | i18n
}}</span>