Fix 'Failed check: Ellipsis' on Weblate (#10144)
* Fix 'Failed check: Ellipsis' on Weblate Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com> * Fix tests Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com> * Remove white space characters before the horizontal ellipsis from RoomPreviewBar Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com> * yarn run i18n Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com> * Additional change Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com> --------- Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
This commit is contained in:
parent
aded28ed25
commit
ea4000cf1e
48 changed files with 117 additions and 120 deletions
|
@ -654,7 +654,7 @@ const ManageButtons: React.FC<IManageButtonsProps> = ({ hierarchy, selected, set
|
|||
};
|
||||
}
|
||||
|
||||
let buttonText = _t("Saving...");
|
||||
let buttonText = _t("Saving…");
|
||||
if (!saving) {
|
||||
buttonText = selectionAllSuggested ? _t("Mark as not suggested") : _t("Mark as suggested");
|
||||
}
|
||||
|
@ -694,7 +694,7 @@ const ManageButtons: React.FC<IManageButtonsProps> = ({ hierarchy, selected, set
|
|||
kind="danger_outline"
|
||||
disabled={disabled}
|
||||
>
|
||||
{removing ? _t("Removing...") : _t("Remove")}
|
||||
{removing ? _t("Removing…") : _t("Remove")}
|
||||
</Button>
|
||||
<Button
|
||||
{...props}
|
||||
|
|
|
@ -366,7 +366,7 @@ const SpaceSetupFirstRooms: React.FC<{
|
|||
let buttonLabel = _t("Skip for now");
|
||||
if (roomNames.some((name) => name.trim())) {
|
||||
onClick = onNextClick;
|
||||
buttonLabel = busy ? _t("Creating rooms...") : _t("Continue");
|
||||
buttonLabel = busy ? _t("Creating rooms…") : _t("Continue");
|
||||
}
|
||||
|
||||
return (
|
||||
|
@ -575,7 +575,7 @@ const SpaceSetupPrivateInvite: React.FC<{
|
|||
let buttonLabel = _t("Skip for now");
|
||||
if (emailAddresses.some((name) => name.trim())) {
|
||||
onClick = onNextClick;
|
||||
buttonLabel = busy ? _t("Inviting...") : _t("Continue");
|
||||
buttonLabel = busy ? _t("Inviting…") : _t("Continue");
|
||||
}
|
||||
|
||||
return (
|
||||
|
|
|
@ -594,7 +594,7 @@ export default class LoginComponent extends React.PureComponent<IProps, IState>
|
|||
<div className="mx_AuthBody_paddedFooter">
|
||||
<div className="mx_AuthBody_paddedFooter_title">
|
||||
<InlineSpinner w={20} h={20} />
|
||||
{this.props.isSyncing ? _t("Syncing...") : _t("Signing In...")}
|
||||
{this.props.isSyncing ? _t("Syncing…") : _t("Signing In…")}
|
||||
</div>
|
||||
{this.props.isSyncing && (
|
||||
<div className="mx_AuthBody_paddedFooter_subtitle">
|
||||
|
|
|
@ -203,7 +203,7 @@ export default class LoginWithQRFlow extends React.Component<IProps> {
|
|||
main = this.simpleSpinner();
|
||||
break;
|
||||
case Phase.Connecting:
|
||||
main = this.simpleSpinner(_t("Connecting..."));
|
||||
main = this.simpleSpinner(_t("Connecting…"));
|
||||
buttons = this.cancelButton();
|
||||
break;
|
||||
case Phase.WaitingForDevice:
|
||||
|
|
|
@ -88,7 +88,7 @@ class PassphraseField extends PureComponent<IProps> {
|
|||
return null;
|
||||
}
|
||||
const { feedback } = complexity;
|
||||
return feedback.warning || feedback.suggestions[0] || _t("Keep going...");
|
||||
return feedback.warning || feedback.suggestions[0] || _t("Keep going…");
|
||||
},
|
||||
},
|
||||
],
|
||||
|
|
|
@ -61,7 +61,7 @@ const BeaconStatus: React.FC<Props & HTMLProps<HTMLDivElement>> = ({
|
|||
)}
|
||||
<div className="mx_BeaconStatus_description">
|
||||
{displayStatus === BeaconDisplayStatus.Loading && (
|
||||
<span className="mx_BeaconStatus_description_status">{_t("Loading live location...")}</span>
|
||||
<span className="mx_BeaconStatus_description_status">{_t("Loading live location…")}</span>
|
||||
)}
|
||||
{displayStatus === BeaconDisplayStatus.Stopped && (
|
||||
<span className="mx_BeaconStatus_description_status">{_t("Live location ended")}</span>
|
||||
|
|
|
@ -179,7 +179,7 @@ const CreateSubspaceDialog: React.FC<IProps> = ({ space, onAddExistingSpaceClick
|
|||
{_t("Cancel")}
|
||||
</AccessibleButton>
|
||||
<AccessibleButton kind="primary" disabled={busy} onClick={onCreateSubspaceClick}>
|
||||
{busy ? _t("Adding...") : _t("Add")}
|
||||
{busy ? _t("Adding…") : _t("Add")}
|
||||
</AccessibleButton>
|
||||
</div>
|
||||
</MatrixClientContext.Provider>
|
||||
|
|
|
@ -188,7 +188,7 @@ export default class DeactivateAccountDialog extends React.Component<IProps, ISt
|
|||
error = <div className="error">{this.state.errStr}</div>;
|
||||
}
|
||||
|
||||
let auth = <div>{_t("Loading...")}</div>;
|
||||
let auth = <div>{_t("Loading…")}</div>;
|
||||
if (this.state.authData && this.state.authEnabled) {
|
||||
auth = (
|
||||
<div>
|
||||
|
|
|
@ -106,7 +106,7 @@ const ExportDialog: React.FC<IProps> = ({ room, onFinished }) => {
|
|||
const [isExporting, setExporting] = useState(false);
|
||||
const sizeLimitRef = useRef<Field>();
|
||||
const messageCountRef = useRef<Field>();
|
||||
const [exportProgressText, setExportProgressText] = useState(_t("Processing..."));
|
||||
const [exportProgressText, setExportProgressText] = useState(_t("Processing…"));
|
||||
const [displayCancel, setCancelWarning] = useState(false);
|
||||
const [exportCancelled, setExportCancelled] = useState(false);
|
||||
const [exportSuccessful, setExportSuccessful] = useState(false);
|
||||
|
|
|
@ -243,7 +243,7 @@ export default class IncomingSasDialog extends React.Component<IProps, IState> {
|
|||
return (
|
||||
<div>
|
||||
<Spinner />
|
||||
<p>{_t("Waiting for partner to confirm...")}</p>
|
||||
<p>{_t("Waiting for partner to confirm…")}</p>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
|
|
@ -78,7 +78,7 @@ export const SlidingSyncOptionsDialog: React.FC<IDialogProps> = ({ onFinished })
|
|||
|
||||
let nativeSupport: string;
|
||||
if (hasNativeSupport === null) {
|
||||
nativeSupport = _t("Checking...");
|
||||
nativeSupport = _t("Checking…");
|
||||
} else {
|
||||
nativeSupport = hasNativeSupport
|
||||
? _t("Your server has native support")
|
||||
|
|
|
@ -49,7 +49,7 @@ export default class TextInputDialog extends React.Component<IProps, IState> {
|
|||
title: "",
|
||||
value: "",
|
||||
description: "",
|
||||
busyMessage: _td("Loading..."),
|
||||
busyMessage: _td("Loading…"),
|
||||
focus: true,
|
||||
hasCancel: true,
|
||||
};
|
||||
|
|
|
@ -321,12 +321,12 @@ export default class RestoreKeyBackupDialog extends React.PureComponent<IProps,
|
|||
title = _t("Restoring keys from backup");
|
||||
let details;
|
||||
if (this.state.progress.stage === ProgressState.Fetch) {
|
||||
details = _t("Fetching keys from server...");
|
||||
details = _t("Fetching keys from server…");
|
||||
} else if (this.state.progress.stage === ProgressState.LoadKeys) {
|
||||
const { total, successes, failures } = this.state.progress;
|
||||
details = _t("%(completed)s of %(total)s keys restored", { total, completed: successes + failures });
|
||||
} else if (this.state.progress.stage === ProgressState.PreFetch) {
|
||||
details = _t("Fetching keys from server...");
|
||||
details = _t("Fetching keys from server…");
|
||||
}
|
||||
content = (
|
||||
<div>
|
||||
|
|
|
@ -569,7 +569,7 @@ export default class AppTile extends React.Component<IProps, IState> {
|
|||
|
||||
const loadingElement = (
|
||||
<div className="mx_AppLoading_spinner_fadeIn">
|
||||
<Spinner message={_t("Loading...")} />
|
||||
<Spinner message={_t("Loading…")} />
|
||||
</div>
|
||||
);
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ export default class InlineSpinner extends React.PureComponent<IProps> {
|
|||
<div
|
||||
className="mx_InlineSpinner_icon mx_Spinner_icon"
|
||||
style={{ width: this.props.w, height: this.props.h }}
|
||||
aria-label={_t("Loading...")}
|
||||
aria-label={_t("Loading…")}
|
||||
>
|
||||
{this.props.children}
|
||||
</div>
|
||||
|
|
|
@ -208,7 +208,7 @@ export default class PollCreateDialog extends ScrollableBaseModal<IProps, IState
|
|||
value={this.state.question}
|
||||
maxLength={MAX_QUESTION_LENGTH}
|
||||
label={_t("Question or topic")}
|
||||
placeholder={_t("Write something...")}
|
||||
placeholder={_t("Write something…")}
|
||||
onChange={this.onQuestionChange}
|
||||
usePlaceholderAsHint={true}
|
||||
disabled={this.state.busy}
|
||||
|
|
|
@ -42,7 +42,7 @@ export default class Spinner extends React.PureComponent<IProps> {
|
|||
<div
|
||||
className="mx_Spinner_icon"
|
||||
style={{ width: w, height: h }}
|
||||
aria-label={_t("Loading...")}
|
||||
aria-label={_t("Loading…")}
|
||||
role="progressbar"
|
||||
data-testid="spinner"
|
||||
/>
|
||||
|
|
|
@ -151,7 +151,7 @@ export const DecryptionFailureBar: React.FC<IProps> = ({ failures }) => {
|
|||
let body: JSX.Element;
|
||||
let button = <React.Fragment />;
|
||||
if (waiting) {
|
||||
headline = <React.Fragment>{_t("Decrypting messages...")}</React.Fragment>;
|
||||
headline = <React.Fragment>{_t("Decrypting messages…")}</React.Fragment>;
|
||||
body = (
|
||||
<React.Fragment>
|
||||
{_t("Please wait as we try to decrypt your messages. This may take a few moments.")}
|
||||
|
|
|
@ -1520,9 +1520,9 @@ function SentReceipt({ messageState }: ISentReceiptProps): JSX.Element {
|
|||
nonCssBadge = <NotificationBadge notification={StaticNotificationState.RED_EXCLAMATION} />;
|
||||
}
|
||||
|
||||
let label = _t("Sending your message...");
|
||||
let label = _t("Sending your message…");
|
||||
if (messageState === "encrypting") {
|
||||
label = _t("Encrypting your message...");
|
||||
label = _t("Encrypting your message…");
|
||||
} else if (isSent) {
|
||||
label = _t("Your message was sent");
|
||||
} else if (isFailed) {
|
||||
|
|
|
@ -290,21 +290,21 @@ export default class RoomPreviewBar extends React.Component<IProps, IState> {
|
|||
switch (messageCase) {
|
||||
case MessageCase.Joining: {
|
||||
if (this.props.oobData?.roomType || isSpace) {
|
||||
title = isSpace ? _t("Joining space …") : _t("Joining room …");
|
||||
title = isSpace ? _t("Joining space…") : _t("Joining room…");
|
||||
} else {
|
||||
title = _t("Joining …");
|
||||
title = _t("Joining…");
|
||||
}
|
||||
|
||||
showSpinner = true;
|
||||
break;
|
||||
}
|
||||
case MessageCase.Loading: {
|
||||
title = _t("Loading …");
|
||||
title = _t("Loading…");
|
||||
showSpinner = true;
|
||||
break;
|
||||
}
|
||||
case MessageCase.Rejecting: {
|
||||
title = _t("Rejecting invite …");
|
||||
title = _t("Rejecting invite…");
|
||||
showSpinner = true;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -89,7 +89,7 @@ export default class IntegrationManager extends React.Component<IProps, IState>
|
|||
if (this.props.loading) {
|
||||
return (
|
||||
<div className="mx_IntegrationManager_loading">
|
||||
<Heading size="h3">{_t("Connecting to integration manager...")}</Heading>
|
||||
<Heading size="h3">{_t("Connecting to integration manager…")}</Heading>
|
||||
<Spinner />
|
||||
</div>
|
||||
);
|
||||
|
|
|
@ -273,7 +273,7 @@ export default class SecureBackupPanel extends React.PureComponent<{}, IState> {
|
|||
} else if (sessionsRemaining > 0) {
|
||||
uploadStatus = (
|
||||
<div>
|
||||
{_t("Backing up %(sessionsRemaining)s keys...", { sessionsRemaining })} <br />
|
||||
{_t("Backing up %(sessionsRemaining)s keys…", { sessionsRemaining })} <br />
|
||||
</div>
|
||||
);
|
||||
} else {
|
||||
|
|
|
@ -35,11 +35,11 @@ function getStatusText(status: UpdateCheckStatus, errorDetail?: string): ReactNo
|
|||
case UpdateCheckStatus.Error:
|
||||
return _t("Error encountered (%(errorDetail)s).", { errorDetail });
|
||||
case UpdateCheckStatus.Checking:
|
||||
return _t("Checking for an update...");
|
||||
return _t("Checking for an update…");
|
||||
case UpdateCheckStatus.NotAvailable:
|
||||
return _t("No update available.");
|
||||
case UpdateCheckStatus.Downloading:
|
||||
return _t("Downloading update...");
|
||||
return _t("Downloading update…");
|
||||
case UpdateCheckStatus.Ready:
|
||||
return _t(
|
||||
"New version available. <a>Update now.</a>",
|
||||
|
|
|
@ -345,7 +345,7 @@ export default class GeneralUserSettingsTab extends React.Component<IProps, ISta
|
|||
threepidSection = <Spinner />;
|
||||
}
|
||||
|
||||
let passwordChangeText = _t("Set a new account password...");
|
||||
let passwordChangeText = _t("Set a new account password…");
|
||||
if (!this.state.canChangePassword) {
|
||||
// Just don't show anything if you can't do anything.
|
||||
passwordChangeText = null;
|
||||
|
|
|
@ -344,7 +344,7 @@ const SpaceCreateMenu: React.FC<{
|
|||
/>
|
||||
|
||||
<AccessibleButton kind="primary" onClick={onSpaceCreateClick} disabled={busy}>
|
||||
{busy ? _t("Creating...") : _t("Create")}
|
||||
{busy ? _t("Creating…") : _t("Create")}
|
||||
</AccessibleButton>
|
||||
</React.Fragment>
|
||||
);
|
||||
|
|
|
@ -123,7 +123,7 @@ const SpaceSettingsGeneralTab: React.FC<IProps> = ({ matrixClient: cli, space, o
|
|||
{_t("Cancel")}
|
||||
</AccessibleButton>
|
||||
<AccessibleButton onClick={onSave} disabled={busy} kind="primary">
|
||||
{busy ? _t("Saving...") : _t("Save Changes")}
|
||||
{busy ? _t("Saving…") : _t("Save Changes")}
|
||||
</AccessibleButton>
|
||||
</div>
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue