Skip to content

Commit

Permalink
Vaihdettu lokalisaatio react-i18n -> next-intl
Browse files Browse the repository at this point in the history
  • Loading branch information
hajoa committed Oct 9, 2024
1 parent e089e73 commit 8290e15
Show file tree
Hide file tree
Showing 24 changed files with 285 additions and 339 deletions.
79 changes: 46 additions & 33 deletions src/clj/maksut/lokalisaatio/lokalisaatio_service.clj
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
(ns maksut.lokalisaatio.lokalisaatio-service
(:require [maksut.oph-url-properties :as url]
(:require [clojure.string :as str]
[maksut.oph-url-properties :as url]
[maksut.lokalisaatio.lokalisaatio-service-protocol :as lokalisaatio-protocol]
[clj-http.client :as http]
[maksut.config :refer [production-environment?]]))
Expand All @@ -20,82 +21,82 @@
:invoice.invalidstate.paid {:fi "Lasku on jo maksettu"
:en "The invoice has already been paid."
:sv "Fakturan har redan betalats"}
:maksu.keskeytetty {:fi "Maksu keskeytetty"
:Maksu.keskeytetty {:fi "Maksu keskeytetty"
:en "Payment has been terminated."
:sv "Betalning avbruten."}
:http.virhe {:fi "Tietojen haku epäonnistui"
:en "Information search failed."
:sv "Sökning av uppgifterna misslyckades."}
:page.title {:fi "Maksutapahtumat"
:Header.title {:fi "Maksutapahtumat"
:en "Payments"
:sv "Betalningar"}
:tutuPanel.title {:fi "Tutkinnon tunnustaminen"
:TutuPanel.title {:fi "Tutkinnon tunnustaminen"
:en "Recognition of qualifications"
:sv "Erkännande av examina"}
:maksu.käsittely {:fi "Käsittelymaksu"
:Maksu.käsittely {:fi "Käsittelymaksu"
:en "Processing fee"
:sv "Behandlingsavgift"}
:maksu.päätös {:fi "Päätösmaksu"
:Maksu.päätös {:fi "Päätösmaksu"
:en "Decision fee"
:sv "Beslutsavgift"}
:maksutPanel.maksa {:fi "Siirry maksamaan"
:MaksutPanel.maksa {:fi "Siirry maksamaan"
:en "Go to payment"
:sv "Gå till betalning"}
:maksu.tila {:fi "Tila"
:Maksu.tila {:fi "Tila"
:en "Status"
:sv "Status"}
:maksu.tila.active {:fi "Maksamatta"
:Maksu.active {:fi "Maksamatta"
:en "Unpaid"
:sv "Obetald"}
:maksu.tila.paid {:fi "Maksettu"
:Maksu.paid {:fi "Maksettu"
:en "Paid"
:sv "Betald"}
:maksu.tila.overdue {:fi "Erääntynyt"
:Maksu.overdue {:fi "Erääntynyt"
:en "Expired"
:sv "Förfallen"}
:maksu.summa {:fi "Määrä"
:Maksu.summa {:fi "Määrä"
:en "Amount"
:sv "Summa"}
:maksu.eräpäivä {:fi "Eräpäivä"
:Maksu.eräpäivä {:fi "Eräpäivä"
:en "Due date"
:sv "Förfallodagen"}
:maksu.maksupäivä {:fi "Maksupäivä"
:Maksu.maksupäivä {:fi "Maksupäivä"
:en "Payment date"
:sv "Betalningsdag"}
:tutuPanel.tila.käsittely {:fi "Hakemuksen käsittely"
:TutuPanel.käsittely {:fi "Hakemuksen käsittely"
:en "Processing of the application"
:sv "Behandling av ansökan"}
:tutuPanel.tila.päätös {:fi "Päätösmaksu"
:TutuPanel.päätös {:fi "Päätösmaksu"
:en "Decision fee"
:sv "Beslutsavgift"}
:tutuPanel.käsittelyMaksamatta1 {:fi "Hakemuksesi on tallentunut. Hakemuksesi otetaan käsittelyyn, kun olet maksanut käsittelymaksun."
:TutuPanel.käsittelyMaksamatta1 {:fi "Hakemuksesi on tallentunut. Hakemuksesi otetaan käsittelyyn, kun olet maksanut käsittelymaksun."
:en "Your application has been saved. Your application will be taken into processing when you have paid the processing fee."
:sv "Din ansökan har sparats. Din ansökan tas till behandling när du har betalat behandlingsavgiften."}
:tutuPanel.käsittelyMaksamatta2 {:fi "Jos olet täyttänyt tutkintojen tunnustamisen hakulomakkeen, sinun pitää myöhemmin maksaa erillinen päätösmaksu ennen kuin saat päätöksen. Kun olemme tehneet päätöksen hakemuksestasi, lähetämme sinulle päätösmaksun maksuohjeet sähköpostitse."
:TutuPanel.käsittelyMaksamatta2 {:fi "Jos olet täyttänyt tutkintojen tunnustamisen hakulomakkeen, sinun pitää myöhemmin maksaa erillinen päätösmaksu ennen kuin saat päätöksen. Kun olemme tehneet päätöksen hakemuksestasi, lähetämme sinulle päätösmaksun maksuohjeet sähköpostitse."
:en "If you have filled out the application for recognition of qualifications, you will later have to pay a separate decision fee before you can receive the decision. We will send you the instructions for the payment of the decision fee by email when we have made the decision on your application."
:sv "Om du har fyllt i ansökan om erkännande av examina, ska du betala en separat beslutsavgift innan du får beslutet. När vi har fattat beslut om din ansökan, skickar vi dig betalningsanvisningarna för beslutsavgiften per e-post."}
:tutuPanel.käsittelyMaksamatta3 {:fi "Jos olet täyttänyt lopullisen päätöksen hakulomakkeen, sinulta ei peritä erillistä päätösmaksua."
:TutuPanel.käsittelyMaksamatta3 {:fi "Jos olet täyttänyt lopullisen päätöksen hakulomakkeen, sinulta ei peritä erillistä päätösmaksua."
:en "If you have filled out the application for a final decision, a separate decision fee will not be charged."
:sv "Om du har fyllt i ansökan om ett slutligt beslut, tas en separat beslutsavgift inte ut."}
:tutuPanel.käsittelyMaksamatta4 {:fi "Emme palauta käsittelymaksua, vaikka peruuttaisit hakemuksesi."
:TutuPanel.käsittelyMaksamatta4 {:fi "Emme palauta käsittelymaksua, vaikka peruuttaisit hakemuksesi."
:en "We will not return the processing fee to you even if you cancel your application."
:sv "Vi returnerar inte den betalda behandlingsavgiften även om du skulle dra tillbaka din ansökan."}
:tutuPanel.käsittelyMaksettu1 {:fi "Olet maksanut käsittelymaksun. Olet saanut sähköpostiisi vahvistuksen maksusta. Olet saanut myös kuitin maksustasi erillisellä sähköpostilla. Hakemuksesi siirtyy seuraavaksi käsittelyyn."
:TutuPanel.käsittelyMaksettu1 {:fi "Olet maksanut käsittelymaksun. Olet saanut sähköpostiisi vahvistuksen maksusta. Olet saanut myös kuitin maksustasi erillisellä sähköpostilla. Hakemuksesi siirtyy seuraavaksi käsittelyyn."
:en "You have paid the processing fee. A confirmation of the transaction has been sent to your email. You have also received a receipt for your payment in a separate email. Your application will now be taken into processing."
:sv "Du har betalat behandlingsavgiften. Du har fått en bekräftelse om betalningen till din e-post. Kvittot på betalningen har du fått som ett separat epost. Din ansökan tas nu till behandling."}
:tutuPanel.käsittelyMaksettu2 {:fi "Jos olet täyttänyt tutkintojen tunnustamisen hakulomakkeen, sinun pitää myöhemmin maksaa erillinen päätösmaksu. Kun olemme tehneet päätöksen hakemuksestasi, lähetämme sinulle sähköpostitse maksuohjeet päätösmaksusta. Lähetämme päätöksen vasta, kun olet maksanut päätösmaksun."
:TutuPanel.käsittelyMaksettu2 {:fi "Jos olet täyttänyt tutkintojen tunnustamisen hakulomakkeen, sinun pitää myöhemmin maksaa erillinen päätösmaksu. Kun olemme tehneet päätöksen hakemuksestasi, lähetämme sinulle sähköpostitse maksuohjeet päätösmaksusta. Lähetämme päätöksen vasta, kun olet maksanut päätösmaksun."
:en "If you have filled out an application for recognition of qualifications, you will later have to pay a separate decision fee before you can receive the decision. We will send you the instructions for the payment of the decision fee by email when we have made the decision on your application. We will send you the decision when you have paid the decision fee."
:sv "Om du har fyllt i ansökan om erkännande av examina, ska du betala en separat beslutsavgift innan du får beslutet. När vi har fattat beslut om din ansökan, skickar vi dig betalningsanvisningarna för beslutsavgiften per e-post. Vi skickar beslutet först när du har betalat beslutsavgiften."}
:tutuPanel.käsittelyMaksettu3 {:fi "Jos olet täyttänyt lopullisen päätöksen hakulomakkeen, sinulta ei peritä erillistä päätösmaksua."
:TutuPanel.käsittelyMaksettu3 {:fi "Jos olet täyttänyt lopullisen päätöksen hakulomakkeen, sinulta ei peritä erillistä päätösmaksua."
:en "If you have filled out an application for a final decision, a separate decision fee will not be charged."
:sv "Om du har fyllt i ansökan om ett slutligt beslut, tas en separat beslutsavgift inte ut."}
:tutuPanel.päätösMaksamatta {:fi "Hakemuksesi on käsitelty ja päätös tutkintosi tunnustamisesta on nyt tehty. Siirry maksamaan päätösmaksu. Lähetämme päätöksen sinulle, kun olet maksanut päätösmaksun."
:TutuPanel.päätösMaksamatta {:fi "Hakemuksesi on käsitelty ja päätös tutkintosi tunnustamisesta on nyt tehty. Siirry maksamaan päätösmaksu. Lähetämme päätöksen sinulle, kun olet maksanut päätösmaksun."
:en "Your application has been processed and a decision on recognition of your qualification has been made. Proceed to the payment of the decision fee. We will send you the decision once you have paid the decision fee."
:sv "Din ansökan har nu behandlats och beslutet om erkännande av din examen fattats. Gå till betalning av beslutsavgiften. Vi skickar beslutet till dig när du har betalat beslutsavgiften."}
:tutuPanel.päätösMaksettu {:fi "Olet maksanut päätösmaksun. Olet saanut vahvistuksen maksun onnistumisesta sähköpostiisi. Olet saanut myös kuitin maksustasi erillisellä sähköpostilla. Lähetämme päätöksen sinulle mahdollisimman pian. Otathan huomioon, että tämä voi viedä jopa kolme työpäivää."
:TutuPanel.päätösMaksettu {:fi "Olet maksanut päätösmaksun. Olet saanut vahvistuksen maksun onnistumisesta sähköpostiisi. Olet saanut myös kuitin maksustasi erillisellä sähköpostilla. Lähetämme päätöksen sinulle mahdollisimman pian. Otathan huomioon, että tämä voi viedä jopa kolme työpäivää."
:en "You have paid the decision fee. A confirmation of the transaction has been sent to your email. You have also received a receipt for your payment in a separate email. We will send the decision to you as soon as possible. Please note that this might take up to three working days."
:sv "Du har betalat beslutsavgiften. Du har fått en bekräftelse om betalningen till din e-post. Kvittot på betalningen har du fått som ett separat epost. Vi skickar beslutet till dig så snart som möjligt. Vänligen notera att detta kan ta upp till tre arbetsdagar."}
:maksutPanel.yhteiskäytto {:fi "Jos käytät yhteiskäyttöistä tietokonetta, muista tyhjentää selaimen välimuisti ja kirjautua ulos koneelta. Voit nyt sulkea tämän ikkunan."
:MaksutPanel.yhteiskäytto {:fi "Jos käytät yhteiskäyttöistä tietokonetta, muista tyhjentää selaimen välimuisti ja kirjautua ulos koneelta. Voit nyt sulkea tämän ikkunan."
:en "If you are using a computer that is in common use, remember to empty the cache and log out from the computer. You can now close this window."
:sv "Om du använder en dator som är i gemensamt bruk, kom ihåg att tomma cacheminnen och logga ut ur datorn. Du kan nu stänga det här fönstret."}

Expand Down Expand Up @@ -137,6 +138,16 @@
; :sv "Status för avgiften är inte tillgänglig. För att reda ut situationen, kontakta Utbildningsstyrelsens enhet för erkännande av examina och språkkunskaper per e-post "}}
})

(defn parse-messages [messages]
(reduce-kv
(fn [acc ns-key val]
(let [[namespace key] (str/split (name ns-key) #"\.")
ns (keyword namespace)
k (keyword key)]
(assoc acc ns (merge (ns acc) {k val}))))
{}
messages))

(defrecord LokalisaatioService
[config]

Expand All @@ -146,12 +157,14 @@
(let [url (url/resolve-url :lokalisointi-service.get-lokalisations config lang)
response (http/get url {:as :json
:headers {"Caller-Id" "1.2.246.562.10.00000000001.maksut.backend"}})]
(reduce
#(assoc %1 (keyword (:key %2)) (:value %2))
(parse-messages
(reduce
#(assoc %1 (keyword (:key %2)) (:value %2))
{}
(:body response))))
(parse-messages
(reduce-kv
#(assoc %1 %2 (get %3 (keyword lang)))
{}
(:body response)))
(reduce-kv
#(assoc %1 %2 (get %3 (keyword lang)))
{}
dev-translations))
dev-translations)))
))
7 changes: 4 additions & 3 deletions src/clj/maksut/maksut/maksut_service.clj
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,9 @@

(defn LaskuStatus->json [lasku]
(assoc
(select-keys lasku [:order_id :reference :origin])
:status (keyword (:status lasku))))
(select-keys lasku [:reference :origin])
:order-id (:order_id lasku)
:status (keyword (:status lasku))))

;api_schemas/LaskuCreate (ei sisällä gereroituja kenttiä)
(defn json->LaskuCreate [lasku]
Expand All @@ -47,7 +48,7 @@
(time/plus (time/today) (time/days (:due-days lasku))))
:amount (.setScale (bigdec (:amount lasku)) 2 RoundingMode/HALF_UP)
:metadata (cske/transform-keys
(csk/->snake_case)
csk/->snake_case
(or (:metadata lasku) {}))))

(defn- parse-order-id [prefixes lasku]
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,28 +1,37 @@
import type { Metadata } from "next";
import './globals.css'
import '../globals.css'
import { oppijaTheme } from "@opetushallitus/oph-design-system/next/theme"
import { CssBaseline, ThemeProvider } from '@mui/material'
import { AppRouterCacheProvider} from "@mui/material-nextjs/v13-appRouter"
import { ReactNode } from "react"
import { NextIntlClientProvider } from "next-intl";
import { getMessages } from "next-intl/server";

export const metadata: Metadata = {
title: "Maksut",
description: "Hakemusmaksujen käyttöliittymä"
};

export default function RootLayout({
export default async function LocaleLayout({
children,
params: {locale}
}: Readonly<{
children: ReactNode;
params: {locale: string};
}>) {
const messages = await getMessages();
console.log(messages);

return (
<html lang="fi">
<html lang={locale}>
<body>
<AppRouterCacheProvider>
<ThemeProvider theme={oppijaTheme}>
<CssBaseline/>
{children}
</ThemeProvider>
<NextIntlClientProvider messages={messages}>
<ThemeProvider theme={oppijaTheme}>
<CssBaseline/>
{children}
</ThemeProvider>
</NextIntlClientProvider>
</AppRouterCacheProvider>
</body>
</html>
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ import MaksutPanel from "@/app/components/MaksutPanel";
import { TopBar } from "@/app/components/TopBar";
import { notFound } from "next/navigation";
import Header from "@/app/components/Header";
import LocalizationsProvider from "@/app/i18n/localizationsProvider";
import { getLocale } from "next-intl/server";

export default async function Page({ searchParams }: {searchParams: {secret?: string, locale?: Locale}}) {
const { secret, locale} = searchParams
const lang: Locale = locale ? locale : 'fi'
export default async function Page({ searchParams }: {searchParams: {secret?: string}}) {
const { secret } = searchParams
const locale = await getLocale() as Locale;

if (!secret) {
notFound()
Expand All @@ -25,11 +25,9 @@ export default async function Page({ searchParams }: {searchParams: {secret?: st

return (
<main className={styles.main}>
<TopBar lang={lang}></TopBar>
<LocalizationsProvider>
<Header lasku={firstLasku}></Header>
<MaksutPanel laskut={laskut} secret={secret} locale={lang}/>
</LocalizationsProvider>
<TopBar lang={locale}></TopBar>
<Header lasku={firstLasku}></Header>
<MaksutPanel laskut={laskut} secret={secret} locale={locale} />
</main>
);
}
11 changes: 6 additions & 5 deletions src/maksut-ui/app/components/AstuPanel.tsx
Original file line number Diff line number Diff line change
@@ -1,20 +1,21 @@
'use client'

import { Lasku } from "@/app/lib/types";
import styles from "@/app/page.module.css";
import styles from "@/app/[locale]/page.module.css";
import Maksu from "@/app/components/Maksu";
import { Box } from "@mui/material";
import { useTranslations } from "@/app/i18n/useTranslations";
import { useTranslations } from "use-intl";
import { translateLocalizedString } from "@/app/lib/utils";

const AstuPanel = ({ lasku }: {lasku: Lasku}) => {
const {t, translateEntity} = useTranslations();
const t = useTranslations('AstuPanel')

return (
<>
<h2>{translateEntity(lasku.metadata?.form_name)}</h2>
<h2>{translateLocalizedString(lasku.metadata?.form_name)}</h2>
<span>Hakemuksesi käsitelty jne. loremipsum</span>
<Box className={styles.maksut}>
<Maksu lasku={lasku} title={t('maksu.päätös')}/>
<Maksu lasku={lasku} />
</Box>
</>)
}
Expand Down
8 changes: 3 additions & 5 deletions src/maksut-ui/app/components/Header.tsx
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
'use client'

import { Box } from "@mui/material";
import { Lasku } from "@/app/lib/types";
import { useTranslations } from "@/app/i18n/useTranslations";
import { getTranslations } from "next-intl/server";

const Header = ({lasku}: {lasku: Lasku}) => {
const {t} = useTranslations();
const Header = async ({lasku}: {lasku: Lasku}) => {
const t = await getTranslations('Header');

return (
<Box style={{textAlign: 'center'}}>
Expand Down
Loading

0 comments on commit 8290e15

Please sign in to comment.