feat(SW-706): use Lokalise

This commit is contained in:
Michael Zetterberg
2025-04-09 13:16:45 +02:00
parent 440e1f92df
commit 65932ddfd3
10 changed files with 35595 additions and 6268 deletions

View File

@@ -4,6 +4,8 @@ import { IntlProvider } from "react-intl"
import type { ClientIntlProviderProps } from "@/types/i18n"
const logged: Record<string, boolean> = {}
export default function ClientIntlProvider({
children,
locale,
@@ -15,6 +17,21 @@ export default function ClientIntlProvider({
locale={locale}
defaultLocale={defaultLocale}
messages={messages}
onError={(err) => {
let msg = err.message
if (err.code === "MISSING_TRANSLATION") {
const id = err.descriptor?.id
if (id) {
msg = id
}
}
if (!logged[msg]) {
logged[msg] = true
console.warn(err)
}
}}
>
{children}
</IntlProvider>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,20 @@
{
"WcBpRV": [
{
"type": 1,
"value": "roomSizeMin"
},
{
"type": 0,
"value": "-"
},
{
"type": 1,
"value": "roomSizeMax"
},
{
"type": 0,
"value": " m²"
}
]
}

File diff suppressed because it is too large Load Diff

View File

@@ -158,7 +158,7 @@ export async function download(extractPath: string) {
icu_numeric: true,
bundle_structure: "%LANG_ISO%.%FORMAT%",
directory_prefix: "",
filter_data: ["last_reviewed_only"],
filter_data: ["translated", "nonhidden"],
export_empty_as: "skip",
})
performance.mark("lokaliseDownloadInitEnd")

View File

@@ -22,8 +22,10 @@
"i18n:extract": "formatjs extract \"{actions,app,components,constants,hooks,i18n,lib,middlewares,server,stores,utils}/**/*.{ts,tsx}\" --format i18n/tooling/formatter.mjs --out-file i18n/tooling/extracted.json",
"i18n:upload": "jiti i18n/tooling/upload.ts",
"i18n:download": "jiti i18n/tooling/download.ts",
"i18n:compile": "formatjs compile-folder --ast --format i18n/tooling/formatter.mjs i18n/tooling/translations i18n/dictionaries2",
"i18n:sync": "yarn i18n:extract && yarn i18n:upload && yarn i18n:download && yarn i18n:compile"
"i18n:compile": "formatjs compile-folder --ast --format i18n/tooling/formatter.mjs i18n/tooling/translations i18n/dictionaries",
"i18n:push": "yarn i18n:extract && yarn i18n:upload",
"i18n:pull": "yarn i18n:download && yarn i18n:compile",
"i18n:sync": "yarn i18n:push && yarn i18n:pull"
},
"dependencies": {
"@azure/monitor-opentelemetry-exporter": "^1.0.0-beta.27",