refactor(i18n): handle locale better with returning path (#662)

This commit is contained in:
Shintaro Jokagi 2025-06-06 01:33:06 +12:00 committed by GitHub
parent 3cdf4384ab
commit 26eb37a879
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -16,9 +16,21 @@ export type Locale = (typeof locales)[number]
export const getPath = export const getPath =
(locale?: Locale): ((arg0: string) => string) => (locale?: Locale): ((arg0: string) => string) =>
(path: string) => { (path: string) => {
if (locale && locale !== CONSTANT.I18N.DEFAULT_LOCALE && !path.startsWith(`/${locale}`)) { // Check if path already contains any locale prefix
const existingLocale = locales.find(l => path.startsWith(`/${l}/`))
if (locale && locale !== CONSTANT.I18N.DEFAULT_LOCALE) {
if (existingLocale) {
// Replace existing locale with new locale
return path.replace(`/${existingLocale}/`, `/${locale}/`)
}
// Add new locale prefix
return `/${locale}${path.startsWith('/') ? '' : '/'}${path}` return `/${locale}${path.startsWith('/') ? '' : '/'}${path}`
} }
// Remove locale prefix if switching to default locale
if (existingLocale && locale === CONSTANT.I18N.DEFAULT_LOCALE) {
return path.replace(`/${existingLocale}/`, '/')
}
return path return path
} }