mirror of
https://github.com/discourse/discourse.git
synced 2025-06-23 00:21:36 +08:00
DEV: Improve localizability for a few labels (#26178)
Using separate prefix + date elements makes it harder to translate in some languages. This moves a few dates inside i18n strings.
This commit is contained in:
@ -3,6 +3,7 @@ import { fn } from "@ember/helper";
|
|||||||
import { action } from "@ember/object";
|
import { action } from "@ember/object";
|
||||||
import { schedule } from "@ember/runloop";
|
import { schedule } from "@ember/runloop";
|
||||||
import { service } from "@ember/service";
|
import { service } from "@ember/service";
|
||||||
|
import { htmlSafe } from "@ember/template";
|
||||||
import DButton from "discourse/components/d-button";
|
import DButton from "discourse/components/d-button";
|
||||||
import ConfirmSession from "discourse/components/dialog-messages/confirm-session";
|
import ConfirmSession from "discourse/components/dialog-messages/confirm-session";
|
||||||
import PasskeyOptionsDropdown from "discourse/components/user-preferences/passkey-options-dropdown";
|
import PasskeyOptionsDropdown from "discourse/components/user-preferences/passkey-options-dropdown";
|
||||||
@ -14,6 +15,7 @@ import {
|
|||||||
stringToBuffer,
|
stringToBuffer,
|
||||||
WebauthnAbortHandler,
|
WebauthnAbortHandler,
|
||||||
} from "discourse/lib/webauthn";
|
} from "discourse/lib/webauthn";
|
||||||
|
import i18n from "discourse-common/helpers/i18n";
|
||||||
import I18n from "discourse-i18n";
|
import I18n from "discourse-i18n";
|
||||||
|
|
||||||
export default class UserPasskeys extends Component {
|
export default class UserPasskeys extends Component {
|
||||||
@ -22,12 +24,6 @@ export default class UserPasskeys extends Component {
|
|||||||
@service capabilities;
|
@service capabilities;
|
||||||
@service router;
|
@service router;
|
||||||
|
|
||||||
instructions = I18n.t("user.passkeys.short_description");
|
|
||||||
title = I18n.t("user.passkeys.title");
|
|
||||||
addedPrefix = I18n.t("user.passkeys.added_prefix");
|
|
||||||
lastUsedPrefix = I18n.t("user.passkeys.last_used_prefix");
|
|
||||||
neverUsed = I18n.t("user.passkeys.never_used");
|
|
||||||
|
|
||||||
get showActions() {
|
get showActions() {
|
||||||
return (
|
return (
|
||||||
this.currentUser.id === this.args.model.id &&
|
this.currentUser.id === this.args.model.id &&
|
||||||
@ -182,10 +178,10 @@ export default class UserPasskeys extends Component {
|
|||||||
<template>
|
<template>
|
||||||
<div class="control-group pref-passkeys">
|
<div class="control-group pref-passkeys">
|
||||||
<label class="control-label">
|
<label class="control-label">
|
||||||
{{this.title}}
|
{{i18n "user.passkeys.title"}}
|
||||||
</label>
|
</label>
|
||||||
<div class="instructions">
|
<div class="instructions">
|
||||||
{{this.instructions}}
|
{{i18n "user.passkeys.short_description"}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="pref-passkeys__rows">
|
<div class="pref-passkeys__rows">
|
||||||
@ -194,27 +190,27 @@ export default class UserPasskeys extends Component {
|
|||||||
<div class="passkey-left">
|
<div class="passkey-left">
|
||||||
<div class="row-passkey__name">{{passkey.name}}</div>
|
<div class="row-passkey__name">{{passkey.name}}</div>
|
||||||
<div class="row-passkey__created-date">
|
<div class="row-passkey__created-date">
|
||||||
<span class="prefix">
|
{{htmlSafe
|
||||||
{{this.addedPrefix}}
|
(i18n
|
||||||
</span>
|
"user.passkeys.added_date"
|
||||||
{{formatDate
|
date=(formatDate
|
||||||
passkey.created_at
|
passkey.created_at format="medium" leaveAgo="true"
|
||||||
format="medium"
|
)
|
||||||
leaveAgo="true"
|
)
|
||||||
}}
|
}}
|
||||||
</div>
|
</div>
|
||||||
<div class="row-passkey__used-date">
|
<div class="row-passkey__used-date">
|
||||||
{{#if passkey.last_used}}
|
{{#if passkey.last_used}}
|
||||||
<span class="prefix">
|
{{htmlSafe
|
||||||
{{this.lastUsedPrefix}}
|
(i18n
|
||||||
</span>
|
"user.passkeys.last_used_date"
|
||||||
{{formatDate
|
date=(formatDate
|
||||||
passkey.last_used
|
passkey.last_used format="medium" leaveAgo="true"
|
||||||
format="medium"
|
)
|
||||||
leaveAgo="true"
|
)
|
||||||
}}
|
}}
|
||||||
{{else}}
|
{{else}}
|
||||||
{{this.neverUsed}}
|
{{i18n "user.passkeys.never_used"}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1537,8 +1537,8 @@ en:
|
|||||||
save: "Save"
|
save: "Save"
|
||||||
title: "Passkeys"
|
title: "Passkeys"
|
||||||
short_description: "Passkeys are password replacements that validate your identity biometrically (e.g. touch, faceID) or via a device PIN/password."
|
short_description: "Passkeys are password replacements that validate your identity biometrically (e.g. touch, faceID) or via a device PIN/password."
|
||||||
added_prefix: "Added"
|
added_date: "Added %{date}"
|
||||||
last_used_prefix: "Last Used"
|
last_used_date: "Last Used %{date}"
|
||||||
never_used: "Never Used"
|
never_used: "Never Used"
|
||||||
not_allowed_error: "The passkey registration process either timed out, was cancelled or is not allowed."
|
not_allowed_error: "The passkey registration process either timed out, was cancelled or is not allowed."
|
||||||
already_added_error: "You have already registered this passkey. You don’t have to register it again."
|
already_added_error: "You have already registered this passkey. You don’t have to register it again."
|
||||||
|
Reference in New Issue
Block a user