aboutsummaryrefslogtreecommitdiffstats
path: root/dist/utils.js
diff options
context:
space:
mode:
Diffstat (limited to 'dist/utils.js')
-rw-r--r--dist/utils.js30
1 files changed, 30 insertions, 0 deletions
diff --git a/dist/utils.js b/dist/utils.js
new file mode 100644
index 0000000..d89663e
--- /dev/null
+++ b/dist/utils.js
@@ -0,0 +1,30 @@
+// 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, locale, full = false) => {
+ 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, locale) {
+ 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"];
+}