blob: 4ec8b01cdd2e9ed18c2fc4889793cc4eae2c823f (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
// Replaces the locale slug in a URL.
//
// If the `full` argument is set to `true`, the full URL is returned as a string.
// e.g. https://mywebsite.com/en/blog/article-1 => https://mywebsite.com/de/blog/article-1
//
// Otherwise (default) the URL relative to the base is returned.
// e.g. https://mywebsite.com/en/blog/article-1 => /de/blog/article-1
export const replaceLocaleInUrl = (url: URL, locale: string, full = false): string => {
const [, , ...rest] = url.pathname.split('/')
const new_pathname = `/${[locale, ...rest].join('/')}`
if (!full) {
return `${new_pathname}${url.search}`
}
const newUrl = new URL(url.toString())
newUrl.pathname = new_pathname
return newUrl.toString()
}
export function fromLocalizedString(localizedString: string | object, locale: Locales) {
if (typeof localizedString === "string") return localizedString;
// @ts-ignore
if (localizedString[locale]) return localizedString[locale];
// @ts-ignore
if (localizedString["nb"]) return localizedString["nb"];
// @ts-ignore
if (localizedString["en"]) return localizedString["en"];
}
|