Merged in feat/LOY-156-localize-user-languages (pull request #1452)
feat(LOY-156): Improve language handling and localization in profile page * feat(LOY-156): Improve language handling and localization in profile page * refactor(LOY-156): Improve language display using Intl.DisplayNames * feat(LOY-156): Enhance country display with localized country names * refactor(LOY-156): Move countries data to a dedicated constants file & more type safe country mapping * feat(LOY-156): Update isValidLang to use languageSchema + German translation for membership terms and conditions * chore(LOY-156): language handling in profile component Approved-by: Christian Andolf
This commit is contained in:
@@ -2,20 +2,20 @@ import { z } from "zod"
|
||||
|
||||
import { Lang } from "@/constants/languages"
|
||||
|
||||
export function findLang(pathname: string) {
|
||||
const langFromPath = Object.values(Lang).find(
|
||||
(l) => pathname.startsWith(`/${l}/`) || pathname === `/${l}`
|
||||
)
|
||||
|
||||
const parsedLang = languageSchema.safeParse(langFromPath)
|
||||
if (!parsedLang.success) {
|
||||
return undefined
|
||||
}
|
||||
|
||||
return parsedLang.data
|
||||
}
|
||||
|
||||
export const languageSchema = z.preprocess(
|
||||
(arg) => (typeof arg === "string" ? arg.toLowerCase() : arg),
|
||||
z.nativeEnum(Lang)
|
||||
)
|
||||
|
||||
export function isValidLang(lang?: string): lang is Lang {
|
||||
const result = languageSchema.safeParse(lang)
|
||||
return result.success
|
||||
}
|
||||
|
||||
export function findLang(pathname: string): Lang | undefined {
|
||||
const langFromPath = Object.values(Lang).find(
|
||||
(l) => pathname.startsWith(`/${l}/`) || pathname === `/${l}`
|
||||
)
|
||||
|
||||
return isValidLang(langFromPath) ? langFromPath : undefined
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user