diff --git a/apps/infoalloggi/src/components/servizio/conferma.tsx b/apps/infoalloggi/src/components/servizio/conferma.tsx index 28e2012..dbc2098 100644 --- a/apps/infoalloggi/src/components/servizio/conferma.tsx +++ b/apps/infoalloggi/src/components/servizio/conferma.tsx @@ -4,15 +4,16 @@ import { LoadingPage } from "~/components/loading"; import { AllegatoIframe } from "~/components/allegato-iframe"; import { Button } from "~/components/ui/button"; import { handleDownload } from "~/hooks/filesHooks"; +import { useTranslation } from "~/providers/I18nProvider"; export const FileSection = ({ storageId }: { storageId: StorageindexId }) => { const { data: fileInfos, isLoading } = api.storage.getStorageFromId.useQuery({ storageId, }); const { mutateAsync: getToken } = api.storage.getStorageToken.useMutation(); - + const { t } = useTranslation(); if (isLoading) return ; - if (!fileInfos) return

Errore nel caricamento del documento

; + if (!fileInfos) return

{t.file_section.error}

; return ( <> { variant="link" className="underline underline-offset-1 after:content-['_↗']" > - Scarica una copia del documento + {t.file_section.download} ); diff --git a/apps/infoalloggi/src/forms/FormNewServizioAcquisto.tsx b/apps/infoalloggi/src/forms/FormNewServizioAcquisto.tsx index d7e88bc..9608c37 100644 --- a/apps/infoalloggi/src/forms/FormNewServizioAcquisto.tsx +++ b/apps/infoalloggi/src/forms/FormNewServizioAcquisto.tsx @@ -415,15 +415,34 @@ export const FormNewServizioAcquisto = ({ "budget", ]); + const texts = + locale === "it" + ? { + dettagli: "Dettagli del servizio", + dettagli_desc: "Questi dati rappresentano la tua ricerca", + personali: "Dati personali", + personali_desc: "Inserisci i tuoi dati personali", + fattura: "Vuoi che la fatturazione sia intestata alla tua azienda?", + sdi: "Codice destinatario SDI", + salva: "Salva e procedi al pagamento", + } + : { + dettagli: "Service Details", + dettagli_desc: "These data represent your search", + personali: "Personal Data", + personali_desc: "Enter your personal data", + fattura: "Do you want the invoice to be issued to your company?", + sdi: "SDI Recipient Code", + salva: "Save and proceed to payment", + }; + return (
- Dettagli del servizio - - Questi dati rappresentano la tua ricerca - + {texts.dettagli} + {texts.dettagli_desc} (
- Tipologia + + {t.preferenze.tipologia} +
@@ -790,10 +811,8 @@ export const FormNewServizioAcquisto = ({
- Dati personali - - Questi dati sono necessari per la fatturazione - + {texts.personali} + {texts.personali_desc}
@@ -963,8 +982,7 @@ export const FormNewServizioAcquisto = ({
- Vuoi che la fatturazione sia intestata alla tua - azienda? + {texts.fattura}
- Codice destinatario (SDI) + {texts.sdi}
@@ -1495,7 +1513,7 @@ export const FormNewServizioAcquisto = ({ /> )}
diff --git a/apps/infoalloggi/src/forms/FormPwSetup.tsx b/apps/infoalloggi/src/forms/FormPwSetup.tsx index fdd5721..5f44b47 100644 --- a/apps/infoalloggi/src/forms/FormPwSetup.tsx +++ b/apps/infoalloggi/src/forms/FormPwSetup.tsx @@ -88,15 +88,26 @@ export const FormPwSetup = ({ user, servizioId }: FormPwSetupProps) => { }); } + const texts = + locale === "it" + ? { + scegli_password: "Scegli la tua password", + imposta_password: "Imposta una password per accedere al tuo account.", + salva_password: "Salva la password e prosegui", + } + : { + scegli_password: "Choose your password", + imposta_password: "Set a password to access your account.", + salva_password: "Save password and proceed", + }; + return (

- Scegli la tua password + {texts.scegli_password}

-

- Imposta una password per accedere al tuo account. -

+

{texts.imposta_password}

@@ -203,7 +214,7 @@ export const FormPwSetup = ({ user, servizioId }: FormPwSetupProps) => {
) : ( - Salva la password e prosegui + {texts.salva_password} )} diff --git a/apps/infoalloggi/src/i18n/en.ts b/apps/infoalloggi/src/i18n/en.ts index 8628fe0..9b230cd 100644 --- a/apps/infoalloggi/src/i18n/en.ts +++ b/apps/infoalloggi/src/i18n/en.ts @@ -292,6 +292,7 @@ export const en: LangDict = { }, code_search_frases: ["Search by code", "Enter the code", "Type the code"], acquisto: { + pagamento: "Payment", titolo: "PURCHASE", preparazione: "PAYMENT IN PREPARATION", servizi_acquisto: "SERVICE IN PURCHASE", @@ -1294,4 +1295,36 @@ The Stable Rent service, ideal for those with demonstrable work references and f desc: "With our more than 25 years of experience in the real estate sector, we will guide you in choosing the type of lease best suited to your needs and that can guarantee you the best economic return.", }, }, + servizio: { + conferma: { + titolo: "Property Confirmation", + descrizione: + "The document below summarizes the rental conditions between you and the owner", + cta: "To confirm the property, proceed with the deposit bank transfer!", + coordinate: "Bank details:", + intestazione: "Account holder:", + iban: "IBAN:", + importo: "Amount:", + causale: "Payment reference:", + coord_footer: "Send us the bank transfer receipt once completed!", + ho_letto: "I declare that I have read and understood the document.", + accetto: "I accept the terms and conditions.", + confermo_termini: + "You confirm your acceptance of the Terms of Service and Privacy Policy of InfoAlloggi.it.", + conferma: "Confirm acknowledgment and proceed with service payment", + }, + contratto: { + titolo: "Rental Contract", + descrizione: + "You can view and download the rental contract. For any questions, contact us via chat or email.", + }, + contratto_view: { + ricevuta: "Registration receipt", + ricevuta_cta: "You can view and download the registration receipt", + }, + }, + file_section: { + error: "Error loading file", + download: "Download a copy of the document", + }, }; diff --git a/apps/infoalloggi/src/i18n/it.ts b/apps/infoalloggi/src/i18n/it.ts index a33d68b..9b1a4ef 100644 --- a/apps/infoalloggi/src/i18n/it.ts +++ b/apps/infoalloggi/src/i18n/it.ts @@ -457,6 +457,7 @@ export const it: LangDict = { in_aggiornamento: "In aggiornamento", }, acquisto: { + pagamento: "Pagamento", titolo: "ACQUISTO", preparazione: "PAGAMENTO IN PREPARAZIONE", servizi_acquisto: "SERVIZIO IN ACQUISTO", @@ -1295,4 +1296,37 @@ export const it: LangDict = { desc: "Con i nostri più di 25 anni di esperienza nel settore immobiliare, ti guideremo nella scelta della tipologia di locazione più adatta alle tue esigenze e che possa garantirti il miglior ritorno economico.", }, }, + servizio: { + conferma: { + titolo: "Conferma Immobile", + descrizione: + " Il documento sottostante riassume le condizioni della locazione tra te e il proprietario", + cta: "Per confermare l'immobile procedi al bonifico di caparra!", + coordinate: "Coordinate bancarie:", + intestazione: "Intestazione:", + iban: "IBAN:", + importo: "Importo:", + causale: "Causale:", + coord_footer: "Mandaci la contabile del bonifico una volta effettuato!", + ho_letto: "Dichiaro di aver letto e compreso il documento.", + accetto: "Accetto i termini e condizioni.", + confermo_termini: + "Confermi la tua accettazione dei Termini di servizio e della Politica sulla privacy di InfoAlloggi.it.", + conferma: "Conferma la presa visione e Procedi al saldo del servizio", + }, + contratto: { + titolo: "Contratto di locazione", + descrizione: + "Hai modo di visualizzare e scaricare il contratto di locazione. Per qualunque dubbio, contattaci via chat o email.", + }, + contratto_view: { + ricevuta: "Ricevuta di registrazione", + ricevuta_cta: + " Hai modo di visualizzare e scaricare la ricevuta. Per qualunque dubbio, contattaci via chat o email.", + }, + }, + file_section: { + error: "Errore nel caricamento del file", + download: "Scarica una copia del documento", + }, }; diff --git a/apps/infoalloggi/src/i18n/locales.ts b/apps/infoalloggi/src/i18n/locales.ts index 3d7cd11..a5ab75a 100644 --- a/apps/infoalloggi/src/i18n/locales.ts +++ b/apps/infoalloggi/src/i18n/locales.ts @@ -277,6 +277,7 @@ export type LangDict = { in_aggiornamento: string; }; acquisto: { + pagamento: string; titolo: string; preparazione: string; servizi_acquisto: string; @@ -738,6 +739,35 @@ export type LangDict = { desc: string; }; }; + servizio: { + conferma: { + titolo: string; + descrizione: string; + cta: string; + coordinate: string; + intestazione: string; + iban: string; + importo: string; + causale: string; + coord_footer: string; + ho_letto: string; + accetto: string; + confermo_termini: string; + conferma: string; + }; + contratto: { + titolo: string; + descrizione: string; + }; + contratto_view: { + ricevuta: string; + ricevuta_cta: string; + }; + }; + file_section: { + error: string; + download: string; + }; }; export type Locales = "it" | "en"; diff --git a/apps/infoalloggi/src/pages/servizio/conferma-immobile/[...slug].tsx b/apps/infoalloggi/src/pages/servizio/conferma-immobile/[...slug].tsx index 93a320d..ce06295 100644 --- a/apps/infoalloggi/src/pages/servizio/conferma-immobile/[...slug].tsx +++ b/apps/infoalloggi/src/pages/servizio/conferma-immobile/[...slug].tsx @@ -30,7 +30,7 @@ const ConfermaImmobile: NextPageWithLayout = ({ servizioId, annuncioId, }); - + const { t } = useTranslation(); if (isLoading) return ; if (!data) return ; if (!data.doc_conferma_ref) return ; @@ -38,25 +38,29 @@ const ConfermaImmobile: NextPageWithLayout = ({
-

Conferma Immobile

-

- Il documento sottostante riassume le condizioni della locazione tra - te e il proprietario -

+

{t.servizio.conferma.titolo}

+

{t.servizio.conferma.descrizione}

-

- Per confermare l'immobile procedi al bonifico di caparra! +

{t.servizio.conferma.cta}

+

{t.servizio.conferma.coordinate}

+

+ {t.servizio.conferma.intestazione}{" "} + {data.caparra_intestazione || ""} +

+

+ {t.servizio.conferma.iban} {data.caparra_iban || ""} +

+

+ {t.servizio.conferma.importo} {data.caparra_importo || ""} +

+

+ {t.servizio.conferma.causale} {data.caparra_causale || ""}

-

Coordinate bancarie:

-

Intestazione: {data.caparra_intestazione || ""}

-

IBAN: {data.caparra_iban || ""}

-

Importo: {data.caparra_importo || ""}

-

Causale: {data.caparra_causale || ""}

- Mandaci la contabile del bonifico una volta effettuato! + {t.servizio.conferma.coord_footer}

@@ -111,7 +115,7 @@ const ConfirmSection = ({ htmlFor="letto" className="text-sm leading-none font-medium peer-disabled:cursor-not-allowed peer-disabled:opacity-70" > - Dichiaro di aver letto e compreso il documento. + {t.servizio.conferma.ho_letto}
@@ -126,11 +130,10 @@ const ConfirmSection = ({ htmlFor="termini" className="text-sm leading-none font-medium peer-disabled:cursor-not-allowed peer-disabled:opacity-70" > - Accetto i termini e condizioni. + {t.servizio.conferma.accetto}

- Confermi la tua accettazione dei Termini di servizio e della - Politica sulla privacy di InfoAlloggi.it. + {t.servizio.conferma.confermo_termini}

@@ -146,11 +149,9 @@ const ConfirmSection = ({ accettato_conferma_at: new Date(), }, }); - - //TODO mandare al saldo o in qualche modo segnare il servizio come completato e da pagare }} > - Conferma la presa visione e Procedi al saldo del servizio + {t.servizio.conferma.conferma} ); diff --git a/apps/infoalloggi/src/pages/servizio/contratto-registrazione/[...slug].tsx b/apps/infoalloggi/src/pages/servizio/contratto-registrazione/[...slug].tsx index 9fa02d1..d9b6a9f 100644 --- a/apps/infoalloggi/src/pages/servizio/contratto-registrazione/[...slug].tsx +++ b/apps/infoalloggi/src/pages/servizio/contratto-registrazione/[...slug].tsx @@ -13,6 +13,7 @@ import type { ServizioServizioId } from "~/schemas/public/Servizio"; import type { AnnunciId } from "~/schemas/public/Annunci"; import { Status500 } from "~/components/status-page"; import { DocNotFoundPage } from "~/components/doc_not_found"; +import { useTranslation } from "~/providers/I18nProvider"; type ContrattoViewerProps = { servizioId: ServizioServizioId; @@ -27,7 +28,7 @@ const ContrattoViewer: NextPageWithLayout = ({ servizioId, annuncioId, }); - + const { t } = useTranslation(); if (isLoading) return ; if (!data) return ; if (!data.doc_registrazione_ref) return ; @@ -35,10 +36,11 @@ const ContrattoViewer: NextPageWithLayout = ({
-

Ricevuta di registrazione

+

+ {t.servizio.contratto_view.ricevuta} +

- Hai modo di visualizzare e scaricare la ricevuta. Per qualunque - dubbio, contattaci via chat o email. + {t.servizio.contratto_view.ricevuta_cta}

@@ -52,9 +54,9 @@ const FileSection = ({ storageId }: { storageId: StorageindexId }) => { storageId, }); const { mutateAsync: getToken } = api.storage.getStorageToken.useMutation(); - + const { t } = useTranslation(); if (isLoading) return ; - if (!fileInfos) return

Errore nel caricamento del documento

; + if (!fileInfos) return

{t.file_section.error}

; return ( <> { variant="link" className="underline underline-offset-1 after:content-['_↗']" > - Scarica una copia del documento + {t.file_section.download} ); diff --git a/apps/infoalloggi/src/pages/servizio/contratto/[...slug].tsx b/apps/infoalloggi/src/pages/servizio/contratto/[...slug].tsx index 073a738..8d1e405 100644 --- a/apps/infoalloggi/src/pages/servizio/contratto/[...slug].tsx +++ b/apps/infoalloggi/src/pages/servizio/contratto/[...slug].tsx @@ -13,6 +13,7 @@ import type { ServizioServizioId } from "~/schemas/public/Servizio"; import type { AnnunciId } from "~/schemas/public/Annunci"; import { Status500 } from "~/components/status-page"; import { DocNotFoundPage } from "~/components/doc_not_found"; +import { useTranslation } from "~/providers/I18nProvider"; type ContrattoViewerProps = { servizioId: ServizioServizioId; @@ -27,7 +28,7 @@ const ContrattoViewer: NextPageWithLayout = ({ servizioId, annuncioId, }); - + const { t } = useTranslation(); if (isLoading) return ; if (!data) return ; if (!data.doc_contratto_ref) return ; @@ -35,11 +36,8 @@ const ContrattoViewer: NextPageWithLayout = ({
-

Contratto di locazione

-

- Hai modo di visualizzare e scaricare il contratto di locazione. Per - qualunque dubbio, contattaci via chat o email. -

+

{t.servizio.contratto.titolo}

+

{t.servizio.contratto.descrizione}

@@ -52,9 +50,9 @@ const FileSection = ({ storageId }: { storageId: StorageindexId }) => { storageId, }); const { mutateAsync: getToken } = api.storage.getStorageToken.useMutation(); - + const { t } = useTranslation(); if (isLoading) return ; - if (!fileInfos) return

Errore nel caricamento del documento

; + if (!fileInfos) return

{t.file_section.error}

; return ( <> { variant="link" className="underline underline-offset-1 after:content-['_↗']" > - Scarica una copia del documento + {t.file_section.download} ); diff --git a/apps/infoalloggi/src/pages/servizio/onboard/[servizioId].tsx b/apps/infoalloggi/src/pages/servizio/onboard/[servizioId].tsx index ed898fc..bcb8e88 100644 --- a/apps/infoalloggi/src/pages/servizio/onboard/[servizioId].tsx +++ b/apps/infoalloggi/src/pages/servizio/onboard/[servizioId].tsx @@ -8,6 +8,7 @@ import { Status500 } from "~/components/status-page"; import { LoadingPage } from "~/components/loading"; import { FormNewServizioAcquisto } from "~/forms/FormNewServizioAcquisto"; import { TrpcAuthedFetchingIstance } from "~/server/utils/ssgHelper"; +import { useTranslation } from "~/providers/I18nProvider"; type OnboardServizioProps = { servizioId: ServizioServizioId; @@ -19,7 +20,7 @@ const OnboardServizio: NextPageWithLayout = ({ const { data, isLoading } = api.servizio.getAcquistoData.useQuery({ servizioId: servizioId, }); - + const { locale } = useTranslation(); if (isLoading) { return ; } @@ -29,8 +30,8 @@ const OnboardServizio: NextPageWithLayout = ({ return (
-

- Dettagli del servizio +

+ {locale === "it" ? "Dettagli del servizio" : "Service Details"}

diff --git a/apps/infoalloggi/src/pages/servizio/pagamento/[ordineId].tsx b/apps/infoalloggi/src/pages/servizio/pagamento/[ordineId].tsx index 5c7acda..a663bcd 100644 --- a/apps/infoalloggi/src/pages/servizio/pagamento/[ordineId].tsx +++ b/apps/infoalloggi/src/pages/servizio/pagamento/[ordineId].tsx @@ -10,6 +10,7 @@ import { loadStripe } from "@stripe/stripe-js"; import { AcquistoProcessing } from "~/components/acquisto_processing"; import { env } from "~/env.mjs"; import type { OrdiniOrdineId } from "~/schemas/public/Ordini"; +import { useTranslation } from "~/providers/I18nProvider"; type ServizioPurchaseProps = { ordineId: OrdiniOrdineId; @@ -21,7 +22,7 @@ const ServicePurchasePage: NextPageWithLayout = ({ const { data, isLoading } = api.servizio.getServizioPaymentData.useQuery({ ordineId, }); - + const { t } = useTranslation(); const stripePromise = loadStripe(env.NEXT_PUBLIC_STRIPE_PUBLIC_KEY); if (isLoading) { @@ -33,7 +34,9 @@ const ServicePurchasePage: NextPageWithLayout = ({ return (
-

Pagamento

+

+ {t.acquisto.pagamento} +

= ({ if (!data) { return ; } + const { locale } = useTranslation(); + const texts = + locale === "it" + ? { + hai_domande: "Hai altre domande sul servizio?", + consulta_faq: "Consulta le domande frequenti", + procedi: "Procedi", + } + : { + hai_domande: "Do you have any other questions about the service?", + consulta_faq: "Check the FAQs", + procedi: "Proceed", + }; return (
{discalimerAccepted ? ( @@ -44,11 +58,9 @@ const PreOnboardServizio: NextPageWithLayout = ({
-

- Hai altre domande sul servizio? -

+

{texts.hai_domande}

- +
@@ -67,7 +79,7 @@ const PreOnboardServizio: NextPageWithLayout = ({ }} size="xl" > - Procedi + {texts.procedi}
diff --git a/apps/infoalloggi/src/pages/servizio/riapri-conferma/[...slug].tsx b/apps/infoalloggi/src/pages/servizio/riapri-conferma/[...slug].tsx index 5f45f64..f032fd5 100644 --- a/apps/infoalloggi/src/pages/servizio/riapri-conferma/[...slug].tsx +++ b/apps/infoalloggi/src/pages/servizio/riapri-conferma/[...slug].tsx @@ -13,6 +13,7 @@ import { FileSection } from "~/components/servizio/conferma"; import { Button } from "~/components/ui/button"; import { useRouter } from "next/router"; import { ArrowLeft } from "lucide-react"; +import { useTranslation } from "~/providers/I18nProvider"; type RiapriConfermaProps = { servizioId: ServizioServizioId; @@ -28,6 +29,7 @@ const RiapriConferma: NextPageWithLayout = ({ annuncioId, }); const router = useRouter(); + const { t } = useTranslation(); if (isLoading) return ; if (!data) return ; @@ -36,34 +38,39 @@ const RiapriConferma: NextPageWithLayout = ({
-

Conferma Immobile

-

- Il documento sottostante riassume le condizioni della locazione tra - te e il proprietario -

+

{t.servizio.conferma.titolo}

+

{t.servizio.conferma.descrizione}

-

- Per confermare l'immobile procedi al bonifico di caparra! +

{t.servizio.conferma.cta}

+

{t.servizio.conferma.coordinate}

+

+ {t.servizio.conferma.intestazione}{" "} + {data.caparra_intestazione || ""} +

+

+ {t.servizio.conferma.iban} {data.caparra_iban || ""} +

+

+ {t.servizio.conferma.importo} {data.caparra_importo || ""} +

+

+ {t.servizio.conferma.causale} {data.caparra_causale || ""}

-

Coordinate bancarie:

-

Intestazione: {data.caparra_intestazione || ""}

-

IBAN: {data.caparra_iban || ""}

-

Importo: {data.caparra_importo || ""}

-

Causale: {data.caparra_causale || ""}

- Mandaci la contabile del bonifico una volta effettuato! + {t.servizio.conferma.coord_footer}

+