Merge pull request #1908 from vector-im/t3chguy/localazy/2

Switch from Weblate to Localazy
This commit is contained in:
Robin
2023-11-20 16:55:58 -05:00
committed by GitHub
68 changed files with 2680 additions and 2162 deletions

View File

@@ -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>
);

View File

@@ -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>
)}

View File

@@ -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

View File

@@ -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>
);

View File

@@ -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>
);

View File

@@ -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>
);
}

View File

@@ -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>
</>
);

View File

@@ -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>

View File

@@ -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}

View File

@@ -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 && (

View File

@@ -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"