Merge pull request #1908 from vector-im/t3chguy/localazy/2
Switch from Weblate to Localazy
This commit is contained in:
@@ -76,15 +76,19 @@ export const AppSelectionModal: FC<Props> = ({ roomId }) => {
|
||||
}, [roomId, roomSharedKey]);
|
||||
|
||||
return (
|
||||
<Modal className={styles.modal} title={t("Select app")} open={open}>
|
||||
<Modal
|
||||
className={styles.modal}
|
||||
title={t("app_selection_modal.title")}
|
||||
open={open}
|
||||
>
|
||||
<Text size="md" weight="semibold">
|
||||
{t("Ready to join?")}
|
||||
{t("app_selection_modal.text")}
|
||||
</Text>
|
||||
<Button kind="secondary" onClick={onBrowserClick}>
|
||||
{t("Continue in browser")}
|
||||
{t("app_selection_modal.continue_in_browser")}
|
||||
</Button>
|
||||
<Button as="a" href={appUrl} Icon={PopOutIcon}>
|
||||
{t("Open in the app")}
|
||||
{t("app_selection_modal.open_in_app")}
|
||||
</Button>
|
||||
</Modal>
|
||||
);
|
||||
|
||||
@@ -88,7 +88,7 @@ export const CallEndedView: FC<Props> = ({
|
||||
|
||||
const createAccountDialog = isPasswordlessUser && (
|
||||
<div className={styles.callEndedContent}>
|
||||
<Trans>
|
||||
<Trans i18nKey="call_ended_view.create_account_prompt">
|
||||
<p>Why not finish by setting up a password to keep your account?</p>
|
||||
<p>
|
||||
You'll be able to keep your name and set an avatar for use on future
|
||||
@@ -101,14 +101,14 @@ export const CallEndedView: FC<Props> = ({
|
||||
variant="default"
|
||||
to="/register"
|
||||
>
|
||||
{t("Create account")}
|
||||
{t("call_ended_view.create_account_button")}
|
||||
</LinkButton>
|
||||
</div>
|
||||
);
|
||||
|
||||
const qualitySurveyDialog = (
|
||||
<div className={styles.callEndedContent}>
|
||||
<Trans>
|
||||
<Trans i18nKey="call_ended_view.feedback_prompt">
|
||||
<p>
|
||||
We'd love to hear your feedback so we can improve your experience.
|
||||
</p>
|
||||
@@ -122,14 +122,14 @@ export const CallEndedView: FC<Props> = ({
|
||||
className={feedbackStyle.feedback}
|
||||
id="feedbackText"
|
||||
name="feedbackText"
|
||||
label={t("Your feedback")}
|
||||
placeholder={t("Your feedback")}
|
||||
label={t("settings.feedback_tab_description_label")}
|
||||
placeholder={t("settings.feedback_tab_description_label")}
|
||||
type="textarea"
|
||||
/>
|
||||
</FieldRow>{" "}
|
||||
<FieldRow>
|
||||
{submitDone ? (
|
||||
<Trans>
|
||||
<Trans i18nKey="call_ended_view.feedback_done">
|
||||
<p>Thanks for your feedback!</p>
|
||||
</Trans>
|
||||
) : (
|
||||
@@ -140,7 +140,7 @@ export const CallEndedView: FC<Props> = ({
|
||||
variant="default"
|
||||
data-testid="home_go"
|
||||
>
|
||||
{submitting ? t("Submitting…") : t("Submit")}
|
||||
{submitting ? t("submitting") : t("action.submit")}
|
||||
</Button>
|
||||
)}
|
||||
</FieldRow>
|
||||
@@ -154,11 +154,13 @@ export const CallEndedView: FC<Props> = ({
|
||||
<>
|
||||
<main className={styles.main}>
|
||||
<Headline className={styles.headline}>
|
||||
<Trans>You were disconnected from the call</Trans>
|
||||
<Trans i18nKey="call_ended_view.body">
|
||||
You were disconnected from the call
|
||||
</Trans>
|
||||
</Headline>
|
||||
<div className={styles.disconnectedButtons}>
|
||||
<Button size="lg" variant="default" onClick={reconnect}>
|
||||
{t("Reconnect")}
|
||||
{t("call_ended_view.reconnect_button")}
|
||||
</Button>
|
||||
<div className={styles.rageshakeButton}>
|
||||
<RageshakeButton description="***Call disconnected***" />
|
||||
@@ -168,7 +170,7 @@ export const CallEndedView: FC<Props> = ({
|
||||
{!confineToRoom && (
|
||||
<Body className={styles.footer}>
|
||||
<Link color="primary" to="/">
|
||||
{t("Return to home screen")}
|
||||
{t("return_home_button")}
|
||||
</Link>
|
||||
</Body>
|
||||
)}
|
||||
@@ -180,14 +182,14 @@ export const CallEndedView: FC<Props> = ({
|
||||
<main className={styles.main}>
|
||||
<Headline className={styles.headline}>
|
||||
{surveySubmitted
|
||||
? t("{{displayName}}, your call has ended.", {
|
||||
? t("call_ended_view.headline", {
|
||||
displayName,
|
||||
})
|
||||
: t("{{displayName}}, your call has ended.", {
|
||||
: t("call_ended_view.headline", {
|
||||
displayName,
|
||||
}) +
|
||||
"\n" +
|
||||
t("How did it go?")}
|
||||
t("call_ended_view.survey_prompt")}
|
||||
</Headline>
|
||||
{(!surveySubmitted || confineToRoom) &&
|
||||
PosthogAnalytics.instance.isEnabled()
|
||||
@@ -197,7 +199,7 @@ export const CallEndedView: FC<Props> = ({
|
||||
{!confineToRoom && (
|
||||
<Body className={styles.footer}>
|
||||
<Link color="primary" to="/">
|
||||
{t("Not now, return to home screen")}
|
||||
{t("call_ended_view.not_now_button")}
|
||||
</Link>
|
||||
</Body>
|
||||
)}
|
||||
|
||||
@@ -32,7 +32,7 @@ export const EncryptionLock: FC<Props> = ({ encrypted }) => {
|
||||
|
||||
return (
|
||||
<Tooltip
|
||||
label={encrypted ? t("Encrypted") : t("Not encrypted")}
|
||||
label={encrypted ? t("common.encrypted") : t("common.unencrypted")}
|
||||
side="right"
|
||||
>
|
||||
<Icon
|
||||
|
||||
@@ -54,7 +54,7 @@ export function GroupCallLoader({
|
||||
case "loading":
|
||||
return (
|
||||
<FullScreenView>
|
||||
<h1>{t("Loading…")}</h1>
|
||||
<h1>{t("common.loading")}</h1>
|
||||
</FullScreenView>
|
||||
);
|
||||
case "loaded":
|
||||
@@ -63,16 +63,12 @@ export function GroupCallLoader({
|
||||
if ((groupCallState.error as MatrixError).errcode === "M_NOT_FOUND") {
|
||||
return (
|
||||
<FullScreenView>
|
||||
<Heading>{t("Call not found")}</Heading>
|
||||
<Text>
|
||||
{t(
|
||||
"Calls are now end-to-end encrypted and need to be created from the home page. This helps make sure everyone's using the same encryption key.",
|
||||
)}
|
||||
</Text>
|
||||
<Heading>{t("group_call_loader_failed_heading")}</Heading>
|
||||
<Text>{t("group_call_loader_failed_text")}</Text>
|
||||
{/* XXX: A 'create it for me' button would be the obvious UX here. Two screens already have
|
||||
dupes of this flow, let's make a common component and put it here. */}
|
||||
<Link href="/" onClick={onHomeClick}>
|
||||
{t("Home")}
|
||||
{t("common.home")}
|
||||
</Link>
|
||||
</FullScreenView>
|
||||
);
|
||||
|
||||
@@ -303,13 +303,9 @@ export const GroupCallView: FC<Props> = ({
|
||||
return (
|
||||
<FullScreenView>
|
||||
<Heading>Incompatible Browser</Heading>
|
||||
<Text>
|
||||
{t(
|
||||
"Your web browser does not support media end-to-end encryption. Supported Browsers are Chrome, Safari, Firefox >=117",
|
||||
)}
|
||||
</Text>
|
||||
<Text>{t("browser_media_e2ee_unsupported")}</Text>
|
||||
<Link href="/" onClick={onHomeClick}>
|
||||
{t("Home")}
|
||||
{t("common.home")}
|
||||
</Link>
|
||||
</FullScreenView>
|
||||
);
|
||||
|
||||
@@ -276,7 +276,7 @@ export const InCallView: FC<InCallViewProps> = ({
|
||||
if (items.length === 0) {
|
||||
return (
|
||||
<div className={styles.centerMessage}>
|
||||
<p>{t("Waiting for other participants…")}</p>
|
||||
<p>{t("waiting_for_participants")}</p>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ export const InviteModal: FC<Props> = ({ room, open, onDismiss }) => {
|
||||
|
||||
return (
|
||||
<>
|
||||
<Modal title={t("Invite to this call")} open={open} onDismiss={onDismiss}>
|
||||
<Modal title={t("invite_modal.title")} open={open} onDismiss={onDismiss}>
|
||||
<Text className={styles.url} size="sm" weight="semibold">
|
||||
{url}
|
||||
</Text>
|
||||
@@ -68,7 +68,7 @@ export const InviteModal: FC<Props> = ({ room, open, onDismiss }) => {
|
||||
onClick={onButtonClick}
|
||||
data-testid="modal_inviteLink"
|
||||
>
|
||||
{t("Copy link")}
|
||||
{t("action.copy_link")}
|
||||
</Button>
|
||||
</Modal>
|
||||
<Toast
|
||||
@@ -77,7 +77,7 @@ export const InviteModal: FC<Props> = ({ room, open, onDismiss }) => {
|
||||
autoDismiss={2000}
|
||||
Icon={CheckIcon}
|
||||
>
|
||||
{t("Link copied to clipboard")}
|
||||
{t("invite_modal.link_copied_toast")}
|
||||
</Toast>
|
||||
</>
|
||||
);
|
||||
|
||||
@@ -52,9 +52,9 @@ export const LayoutToggle: FC<Props> = ({ layout, setLayout, className }) => {
|
||||
checked={layout === "spotlight"}
|
||||
onChange={onChange}
|
||||
/>
|
||||
<Tooltip label={t("Spotlight")}>
|
||||
<Tooltip label={t("layout_spotlight_label")}>
|
||||
<label htmlFor={spotlightId}>
|
||||
<SpotlightIcon aria-label={t("Spotlight")} />
|
||||
<SpotlightIcon aria-label={t("layout_spotlight_label")} />
|
||||
</label>
|
||||
</Tooltip>
|
||||
<input
|
||||
@@ -65,9 +65,9 @@ export const LayoutToggle: FC<Props> = ({ layout, setLayout, className }) => {
|
||||
checked={layout === "grid"}
|
||||
onChange={onChange}
|
||||
/>
|
||||
<Tooltip label={t("Grid")}>
|
||||
<Tooltip label={t("layout_grid_label")}>
|
||||
<label htmlFor={gridId}>
|
||||
<GridIcon aria-label={t("Grid")} />
|
||||
<GridIcon aria-label={t("layout_grid_label")} />
|
||||
</label>
|
||||
</Tooltip>
|
||||
</div>
|
||||
|
||||
@@ -87,7 +87,7 @@ export const LobbyView: FC<Props> = ({
|
||||
const recentsButtonInFooter = useMediaQuery("(max-height: 500px)");
|
||||
const recentsButton = !confineToRoom && (
|
||||
<Link className={styles.recents} href="#" onClick={onLeaveClick}>
|
||||
{t("Back to recents")}
|
||||
{t("lobby.leave_button")}
|
||||
</Link>
|
||||
);
|
||||
|
||||
@@ -120,7 +120,7 @@ export const LobbyView: FC<Props> = ({
|
||||
onClick={onEnter}
|
||||
data-testid="lobby_joinCall"
|
||||
>
|
||||
{t("Join call")}
|
||||
{t("lobby.join_button")}
|
||||
</Button>
|
||||
</VideoPreview>
|
||||
{!recentsButtonInFooter && recentsButton}
|
||||
|
||||
@@ -44,12 +44,12 @@ export const RageshakeRequestModal: FC<Props> = ({
|
||||
}, [sent, onDismiss]);
|
||||
|
||||
return (
|
||||
<Modal title={t("Debug log request")} open={open} onDismiss={onDismiss}>
|
||||
<Body>
|
||||
{t(
|
||||
"Another user on this call is having an issue. In order to better diagnose these issues we'd like to collect a debug log.",
|
||||
)}
|
||||
</Body>
|
||||
<Modal
|
||||
title={t("rageshake_request_modal.title")}
|
||||
open={open}
|
||||
onDismiss={onDismiss}
|
||||
>
|
||||
<Body>{t("rageshake_request_modal.body")}</Body>
|
||||
<FieldRow>
|
||||
<Button
|
||||
onPress={(): void =>
|
||||
@@ -61,7 +61,7 @@ export const RageshakeRequestModal: FC<Props> = ({
|
||||
}
|
||||
disabled={sending}
|
||||
>
|
||||
{sending ? t("Sending debug logs…") : t("Send debug logs")}
|
||||
{sending ? t("rageshake_sending_logs") : t("rageshake_send_logs")}
|
||||
</Button>
|
||||
</FieldRow>
|
||||
{error && (
|
||||
|
||||
@@ -70,14 +70,16 @@ export const RoomAuthView: FC = () => {
|
||||
</Header>
|
||||
<div className={styles.container}>
|
||||
<main className={styles.main}>
|
||||
<Headline className={styles.headline}>{t("Join call")}</Headline>
|
||||
<Headline className={styles.headline}>
|
||||
{t("lobby.join_button")}
|
||||
</Headline>
|
||||
<Form className={styles.form} onSubmit={onSubmit}>
|
||||
<FieldRow>
|
||||
<InputField
|
||||
id="displayName"
|
||||
name="displayName"
|
||||
label={t("Display name")}
|
||||
placeholder={t("Display name")}
|
||||
label={t("common.display_name")}
|
||||
placeholder={t("common.display_name")}
|
||||
data-testid="joincall_displayName"
|
||||
type="text"
|
||||
required
|
||||
@@ -85,7 +87,7 @@ export const RoomAuthView: FC = () => {
|
||||
/>
|
||||
</FieldRow>
|
||||
<Caption>
|
||||
<Trans>
|
||||
<Trans i18nKey="room_auth_view_eula_caption">
|
||||
By clicking "Join call now", you agree to our{" "}
|
||||
<Link href={Config.get().eula}>
|
||||
End User Licensing Agreement (EULA)
|
||||
@@ -103,13 +105,13 @@ export const RoomAuthView: FC = () => {
|
||||
disabled={loading}
|
||||
data-testid="joincall_joincall"
|
||||
>
|
||||
{loading ? t("Loading…") : t("Join call now")}
|
||||
{loading ? t("common.loading") : t("room_auth_view_join_button")}
|
||||
</Button>
|
||||
<div id={recaptchaId} />
|
||||
</Form>
|
||||
</main>
|
||||
<Body className={styles.footer}>
|
||||
<Trans>
|
||||
<Trans i18nKey="unauthenticated_view_body">
|
||||
Not registered yet?{" "}
|
||||
<Link
|
||||
color="primary"
|
||||
|
||||
Reference in New Issue
Block a user