new string added to i18n

This commit is contained in:
Sebastian 2022-12-09 11:03:30 -03:00
parent 1665cf4f72
commit 7d07f752eb
No known key found for this signature in database
GPG Key ID: BE4FF68352439FC1
7 changed files with 183 additions and 74 deletions

View File

@ -14,36 +14,30 @@
GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
/**
*
* @author Sebastian Javier Marchano (sebasjm)
*/
import { i18n, setupI18n } from "@gnu-taler/taler-util";
import { ComponentChildren, createContext, h, VNode } from "preact";
import { useContext, useEffect } from "preact/hooks";
import { hooks } from "@gnu-taler/web-util/lib/index.browser";
import { strings } from "../i18n/strings.js";
export type InternationalizationAPI = typeof i18n
interface Type {
lang: string;
supportedLang: { [id in keyof typeof supportedLang]: string };
changeLanguage: (l: string) => void;
i18n: typeof i18n;
i18n: InternationalizationAPI;
isSaved: boolean;
}
const supportedLang = {
es: "Español [es]",
ja: "日本語 [ja]",
es: "Espanol [es]",
en: "English [en]",
fr: "Français [fr]",
fr: "Francais [fr]",
de: "Deutsch [de]",
sv: "Svenska [sv]",
it: "Italiano [it]",
// ko: "한국어 [ko]",
// ru: "Ру́сский язы́к [ru]",
tr: "Türk [tr]",
it: "Italiane [it]",
navigator: "Defined by navigator",
};

View File

@ -82,106 +82,141 @@ msgstr ""
msgid "Register"
msgstr ""
#: src/pages/home/PaytoWireTransferForm.tsx:57
#: src/pages/home/PaytoWireTransferForm.tsx:60
#, c-format
msgid "Missing IBAN"
msgstr ""
#: src/pages/home/PaytoWireTransferForm.tsx:59
#: src/pages/home/PaytoWireTransferForm.tsx:62
#, c-format
msgid "IBAN should have just uppercased letters and numbers"
msgstr ""
#: src/pages/home/PaytoWireTransferForm.tsx:61
#: src/pages/home/PaytoWireTransferForm.tsx:64
#, c-format
msgid "Missing subject"
msgstr ""
#: src/pages/home/PaytoWireTransferForm.tsx:63
#: src/pages/home/PaytoWireTransferForm.tsx:66
#, c-format
msgid "Missing amount"
msgstr ""
#: src/pages/home/PaytoWireTransferForm.tsx:65
#: src/pages/home/PaytoWireTransferForm.tsx:68
#, c-format
msgid "Amount is not valid"
msgstr ""
#: src/pages/home/PaytoWireTransferForm.tsx:67
#: src/pages/home/PaytoWireTransferForm.tsx:70
#, c-format
msgid "Should be greater than 0"
msgstr ""
#: src/pages/home/PaytoWireTransferForm.tsx:76
#: src/pages/home/PaytoWireTransferForm.tsx:79
#, c-format
msgid "Receiver IBAN:"
msgstr ""
#: src/pages/home/PaytoWireTransferForm.tsx:99
#: src/pages/home/PaytoWireTransferForm.tsx:102
#, c-format
msgid "Transfer subject:"
msgstr ""
#: src/pages/home/PaytoWireTransferForm.tsx:120
#: src/pages/home/PaytoWireTransferForm.tsx:123
#, c-format
msgid "Amount:"
msgstr ""
#: src/pages/home/PaytoWireTransferForm.tsx:174
#: src/pages/home/PaytoWireTransferForm.tsx:177
#, c-format
msgid "Field(s) missing."
msgstr ""
#: src/pages/home/PaytoWireTransferForm.tsx:223
#: src/pages/home/PaytoWireTransferForm.tsx:227
#, c-format
msgid "Want to try the raw payto://-format?"
msgstr ""
#: src/pages/home/PaytoWireTransferForm.tsx:231
#: src/pages/home/PaytoWireTransferForm.tsx:235
#, c-format
msgid "Missing payto address"
msgstr ""
#: src/pages/home/PaytoWireTransferForm.tsx:233
#: src/pages/home/PaytoWireTransferForm.tsx:237
#, c-format
msgid "Payto does not follow the pattern"
msgstr ""
#: src/pages/home/PaytoWireTransferForm.tsx:239
#: src/pages/home/PaytoWireTransferForm.tsx:243
#, c-format
msgid "Transfer money to account identified by payto:// URI:"
msgstr ""
#: src/pages/home/PaytoWireTransferForm.tsx:242
#: src/pages/home/PaytoWireTransferForm.tsx:246
#, c-format
msgid "payto URI:"
msgstr ""
#: src/pages/home/PaytoWireTransferForm.tsx:251
#: src/pages/home/PaytoWireTransferForm.tsx:255
#, c-format
msgid "payto address"
msgstr ""
#: src/pages/home/PaytoWireTransferForm.tsx:275
#: src/pages/home/PaytoWireTransferForm.tsx:279
#, c-format
msgid "Send"
msgstr ""
#: src/pages/home/PaytoWireTransferForm.tsx:309
#: src/pages/home/PaytoWireTransferForm.tsx:314
#, c-format
msgid "Use wire-transfer form?"
msgstr ""
#: src/pages/home/WalletWithdrawForm.tsx:47
#: src/pages/home/PaytoWireTransferForm.tsx:373
#, c-format
msgid "No credentials found."
msgstr ""
#: src/pages/home/PaytoWireTransferForm.tsx:397
#, c-format
msgid "Could not create the wire transfer"
msgstr ""
#: src/pages/home/PaytoWireTransferForm.tsx:414
#, c-format
msgid "Transfer creation gave response error"
msgstr ""
#: src/pages/home/PaytoWireTransferForm.tsx:426
#, c-format
msgid "Wire transfer created!"
msgstr ""
#: src/pages/home/WalletWithdrawForm.tsx:50
#, c-format
msgid "Amount to withdraw:"
msgstr ""
#: src/pages/home/WalletWithdrawForm.tsx:81
#: src/pages/home/WalletWithdrawForm.tsx:84
#, c-format
msgid "Withdraw"
msgstr ""
#: src/pages/home/WalletWithdrawForm.tsx:128
#, c-format
msgid "No credentials given."
msgstr ""
#: src/pages/home/WalletWithdrawForm.tsx:155
#, c-format
msgid "Could not create withdrawal operation"
msgstr ""
#: src/pages/home/WalletWithdrawForm.tsx:171
#, c-format
msgid "Withdrawal creation gave response error"
msgstr ""
#: src/pages/home/PaymentOptions.tsx:44
#, c-format
msgid "Obtain digital cash"
@ -222,48 +257,88 @@ msgstr ""
msgid "Use this QR code to withdraw to your mobile wallet:"
msgstr ""
#: src/pages/home/QrCodeSection.tsx:48
#: src/pages/home/QrCodeSection.tsx:47
#, c-format
msgid "this link"
msgid "Click %1$s to open your Taler wallet!"
msgstr ""
#: src/pages/home/WithdrawalConfirmationQuestion.tsx:44
#: src/pages/home/WithdrawalConfirmationQuestion.tsx:47
#, c-format
msgid "Confirm Withdrawal"
msgstr ""
#: src/pages/home/WithdrawalConfirmationQuestion.tsx:49
#: src/pages/home/WithdrawalConfirmationQuestion.tsx:52
#, c-format
msgid "Authorize withdrawal by solving challenge"
msgstr ""
#: src/pages/home/WithdrawalConfirmationQuestion.tsx:52
#: src/pages/home/WithdrawalConfirmationQuestion.tsx:55
#, c-format
msgid "What is"
msgstr ""
#: src/pages/home/WithdrawalConfirmationQuestion.tsx:90
#: src/pages/home/WithdrawalConfirmationQuestion.tsx:94
#, c-format
msgid "Answer is wrong."
msgstr ""
#: src/pages/home/WithdrawalConfirmationQuestion.tsx:95
#: src/pages/home/WithdrawalConfirmationQuestion.tsx:99
#, c-format
msgid "Confirm"
msgstr ""
#: src/pages/home/WithdrawalConfirmationQuestion.tsx:108
#: src/pages/home/WithdrawalConfirmationQuestion.tsx:113
#, c-format
msgid "Cancel"
msgstr ""
#: src/pages/home/WithdrawalConfirmationQuestion.tsx:115
#: src/pages/home/WithdrawalConfirmationQuestion.tsx:120
#, c-format
msgid ""
"A this point, a %1$s bank would ask for an additional authentication proof "
"(PIN/TAN, one time password, ..), instead of a simple calculation."
msgstr ""
#: src/pages/home/WithdrawalConfirmationQuestion.tsx:155
#, c-format
msgid "\\"No credentials found."
msgstr ""
#: src/pages/home/WithdrawalConfirmationQuestion.tsx:166
#, c-format
msgid "No withdrawal ID found."
msgstr ""
#: src/pages/home/WithdrawalConfirmationQuestion.tsx:201
#, c-format
msgid "Could not confirm the withdrawal"
msgstr ""
#: src/pages/home/WithdrawalConfirmationQuestion.tsx:219
#, c-format
msgid "Withdrawal confirmation gave response error"
msgstr ""
#: src/pages/home/WithdrawalConfirmationQuestion.tsx:231
#, c-format
msgid "Withdrawal confirmed!"
msgstr ""
#: src/pages/home/WithdrawalConfirmationQuestion.tsx:294
#, c-format
msgid "Could not abort the withdrawal."
msgstr ""
#: src/pages/home/WithdrawalConfirmationQuestion.tsx:311
#, c-format
msgid "Withdrawal abortion failed."
msgstr ""
#: src/pages/home/WithdrawalConfirmationQuestion.tsx:324
#, c-format
msgid "Withdrawal aborted!"
msgstr ""
#: src/pages/home/WithdrawalQRCode.tsx:54
#, c-format
msgid "Abort"
@ -339,31 +414,46 @@ msgstr ""
msgid "History of public accounts"
msgstr ""
#: src/pages/home/RegistrationPage.tsx:36
#: src/pages/home/RegistrationPage.tsx:39
#, c-format
msgid "Currently, the bank is not accepting new registrations!"
msgstr ""
#: src/pages/home/RegistrationPage.tsx:65
#: src/pages/home/RegistrationPage.tsx:68
#, c-format
msgid "Use only letter and numbers starting with a lower case letter"
msgstr ""
#: src/pages/home/RegistrationPage.tsx:75
#: src/pages/home/RegistrationPage.tsx:78
#, c-format
msgid "Password don't match"
msgstr ""
#: src/pages/home/RegistrationPage.tsx:86
#: src/pages/home/RegistrationPage.tsx:89
#, c-format
msgid "Please register!"
msgstr ""
#: src/pages/home/RegistrationPage.tsx:123
#: src/pages/home/RegistrationPage.tsx:126
#, c-format
msgid "Repeat Password:"
msgstr ""
#: src/pages/home/RegistrationPage.tsx:226
#, c-format
msgid "Registration failed, please report"
msgstr ""
#: src/pages/home/RegistrationPage.tsx:239
#, c-format
msgid "That username is already taken"
msgstr ""
#: src/pages/home/RegistrationPage.tsx:248
#, c-format
msgid "New registration gave response error"
msgstr ""
#: src/components/menu/SideBar.tsx:53
#, c-format
msgid "Bank menu"

View File

@ -20,7 +20,10 @@ import { h, VNode } from "preact";
import { StateUpdater, useEffect, useRef, useState } from "preact/hooks";
import { useBackendContext } from "../../context/backend.js";
import { PageStateType, usePageContext } from "../../context/pageState.js";
import { useTranslationContext } from "../../context/translation.js";
import {
InternationalizationAPI,
useTranslationContext,
} from "../../context/translation.js";
import { BackendState } from "../../hooks/backend.js";
import { prepareHeaders, undefinedIfEmpty } from "../../utils.js";
import { ShowInputErrorLabel } from "./ShowInputErrorLabel.js";
@ -192,6 +195,7 @@ export function PaytoWireTransferForm({
iban: undefined,
subject: undefined,
})),
i18n,
);
}}
/>
@ -291,6 +295,7 @@ export function PaytoWireTransferForm({
backend.state,
pageStateSetter,
() => rawPaytoInputSetter(undefined),
i18n,
);
}}
/>
@ -357,6 +362,7 @@ async function createTransactionCall(
* a stateful management of the input data yet.
*/
cleanUpForm: () => void,
i18n: InternationalizationAPI,
): Promise<void> {
if (backendState.status === "loggedOut") {
logger.error("No credentials found.");
@ -364,7 +370,7 @@ async function createTransactionCall(
...prevState,
error: {
title: "No credentials found.",
title: i18n.str`No credentials found.`,
},
}));
return;
@ -388,7 +394,7 @@ async function createTransactionCall(
...prevState,
error: {
title: `Could not create the wire transfer`,
title: i18n.str`Could not create the wire transfer`,
description: (error as any).error.description,
debug: JSON.stringify(error),
},
@ -405,7 +411,7 @@ async function createTransactionCall(
...prevState,
error: {
title: `Transfer creation gave response error`,
title: i18n.str`Transfer creation gave response error`,
description: response.error.description,
debug: JSON.stringify(response),
},
@ -417,7 +423,7 @@ async function createTransactionCall(
pageStateSetter((prevState) => ({
...prevState,
info: "Wire transfer created!",
info: i18n.str`Wire transfer created!`,
}));
// Only at this point the input data can

View File

@ -44,9 +44,11 @@ export function QrCodeSection({
<p>{i18n.str`Use this QR code to withdraw to your mobile wallet:`}</p>
{QR({ text: talerWithdrawUri })}
<p>
<i18n.Translate>
Click{" "}
<a id="linkqr" href={talerWithdrawUri}>{i18n.str`this link`}</a> to
open your Taler wallet!
<a id="linkqr" href={talerWithdrawUri}>{i18n.str`this link`}</a>{" "}
to open your Taler wallet!
</i18n.Translate>
</p>
<br />
{abortButton}

View File

@ -19,7 +19,10 @@ import { route } from "preact-router";
import { StateUpdater, useState } from "preact/hooks";
import { useBackendContext } from "../../context/backend.js";
import { PageStateType, usePageContext } from "../../context/pageState.js";
import { useTranslationContext } from "../../context/translation.js";
import {
InternationalizationAPI,
useTranslationContext,
} from "../../context/translation.js";
import { BackendStateHandler } from "../../hooks/backend.js";
import { bankUiSettings } from "../../settings.js";
import { getBankBackendBaseUrl, undefinedIfEmpty } from "../../utils.js";
@ -148,6 +151,7 @@ function RegistrationForm(): VNode {
{ username, password },
backend, // will store BE URL, if OK.
pageStateSetter,
i18n,
);
setUsername(undefined);
@ -193,6 +197,7 @@ async function registrationCall(
*/
backend: BackendStateHandler,
pageStateSetter: StateUpdater<PageStateType>,
i18n: InternationalizationAPI,
): Promise<void> {
const url = getBankBackendBaseUrl();
@ -218,7 +223,7 @@ async function registrationCall(
...prevState,
error: {
title: `Registration failed, please report`,
title: i18n.str`Registration failed, please report`,
debug: JSON.stringify(error),
},
}));
@ -231,7 +236,7 @@ async function registrationCall(
...prevState,
error: {
title: `That username is already taken`,
title: i18n.str`That username is already taken`,
debug: JSON.stringify(response),
},
}));
@ -240,7 +245,7 @@ async function registrationCall(
...prevState,
error: {
title: `New registration gave response error`,
title: i18n.str`New registration gave response error`,
debug: JSON.stringify(response),
},
}));

View File

@ -19,7 +19,10 @@ import { h, VNode } from "preact";
import { StateUpdater, useEffect, useRef } from "preact/hooks";
import { useBackendContext } from "../../context/backend.js";
import { PageStateType, usePageContext } from "../../context/pageState.js";
import { useTranslationContext } from "../../context/translation.js";
import {
InternationalizationAPI,
useTranslationContext,
} from "../../context/translation.js";
import { BackendState } from "../../hooks/backend.js";
import { prepareHeaders, validateAmount } from "../../utils.js";
@ -91,6 +94,7 @@ export function WalletWithdrawForm({
`${currency}:${submitAmount}`,
backend.state,
pageStateSetter,
i18n,
);
}}
/>
@ -113,6 +117,7 @@ async function createWithdrawalCall(
amount: string,
backendState: BackendState,
pageStateSetter: StateUpdater<PageStateType>,
i18n: InternationalizationAPI,
): Promise<void> {
if (backendState?.status === "loggedOut") {
logger.error("Page has a problem: no credentials found in the state.");
@ -120,7 +125,7 @@ async function createWithdrawalCall(
...prevState,
error: {
title: "No credentials given.",
title: i18n.str`No credentials given.`,
},
}));
return;
@ -147,7 +152,7 @@ async function createWithdrawalCall(
...prevState,
error: {
title: `Could not create withdrawal operation`,
title: i18n.str`Could not create withdrawal operation`,
description: (error as any).error.description,
debug: JSON.stringify(error),
},
@ -163,7 +168,7 @@ async function createWithdrawalCall(
...prevState,
error: {
title: `Withdrawal creation gave response error`,
title: i18n.str`Withdrawal creation gave response error`,
description: response.error.description,
debug: JSON.stringify(response),
},

View File

@ -19,7 +19,10 @@ import { Fragment, h, VNode } from "preact";
import { StateUpdater } from "preact/hooks";
import { useBackendContext } from "../../context/backend.js";
import { PageStateType, usePageContext } from "../../context/pageState.js";
import { useTranslationContext } from "../../context/translation.js";
import {
InternationalizationAPI,
useTranslationContext,
} from "../../context/translation.js";
import { BackendState } from "../../hooks/backend.js";
import { prepareHeaders } from "../../utils.js";
@ -80,6 +83,7 @@ export function WithdrawalConfirmationQuestion(): VNode {
backend.state,
pageState.withdrawalId,
pageStateSetter,
i18n,
);
return;
}
@ -102,6 +106,7 @@ export function WithdrawalConfirmationQuestion(): VNode {
backend.state,
pageState.withdrawalId,
pageStateSetter,
i18n,
)
}
>
@ -139,6 +144,7 @@ async function confirmWithdrawalCall(
backendState: BackendState,
withdrawalId: string | undefined,
pageStateSetter: StateUpdater<PageStateType>,
i18n: InternationalizationAPI,
): Promise<void> {
if (backendState.status === "loggedOut") {
logger.error("No credentials found.");
@ -146,7 +152,7 @@ async function confirmWithdrawalCall(
...prevState,
error: {
title: "No credentials found.",
title: i18n.str`"No credentials found.`,
},
}));
return;
@ -157,7 +163,7 @@ async function confirmWithdrawalCall(
...prevState,
error: {
title: "No withdrawal ID found.",
title: i18n.str`No withdrawal ID found.`,
},
}));
return;
@ -192,7 +198,7 @@ async function confirmWithdrawalCall(
...prevState,
error: {
title: `Could not confirm the withdrawal`,
title: i18n.str`Could not confirm the withdrawal`,
description: (error as any).error.description,
debug: JSON.stringify(error),
},
@ -210,7 +216,7 @@ async function confirmWithdrawalCall(
...prevState,
error: {
title: `Withdrawal confirmation gave response error`,
title: i18n.str`Withdrawal confirmation gave response error`,
debug: JSON.stringify(response),
},
}));
@ -222,7 +228,7 @@ async function confirmWithdrawalCall(
return {
...rest,
info: "Withdrawal confirmed!",
info: i18n.str`Withdrawal confirmed!`,
};
});
}
@ -234,6 +240,7 @@ async function abortWithdrawalCall(
backendState: BackendState,
withdrawalId: string | undefined,
pageStateSetter: StateUpdater<PageStateType>,
i18n: InternationalizationAPI,
): Promise<void> {
if (backendState.status === "loggedOut") {
logger.error("No credentials found.");
@ -241,7 +248,7 @@ async function abortWithdrawalCall(
...prevState,
error: {
title: `No credentials found.`,
title: i18n.str`No credentials found.`,
},
}));
return;
@ -252,7 +259,7 @@ async function abortWithdrawalCall(
...prevState,
error: {
title: `No withdrawal ID found.`,
title: i18n.str`No withdrawal ID found.`,
},
}));
return;
@ -284,7 +291,7 @@ async function abortWithdrawalCall(
...prevState,
error: {
title: `Could not abort the withdrawal.`,
title: i18n.str`Could not abort the withdrawal.`,
description: (error as any).error.description,
debug: JSON.stringify(error),
},
@ -301,7 +308,7 @@ async function abortWithdrawalCall(
...prevState,
error: {
title: `Withdrawal abortion failed.`,
title: i18n.str`Withdrawal abortion failed.`,
description: response.error.description,
debug: JSON.stringify(response),
},
@ -314,7 +321,7 @@ async function abortWithdrawalCall(
return {
...rest,
info: "Withdrawal aborted!",
info: i18n.str`Withdrawal aborted!`,
};
});
}