|
|
@@ -4,6 +4,34 @@ import { FileRoutes } from "@solidjs/start/router"
|
|
|
import { Suspense } from "solid-js"
|
|
|
import "./app.css"
|
|
|
|
|
|
+const localePrefixes = new Set([
|
|
|
+ "ar",
|
|
|
+ "br",
|
|
|
+ "da",
|
|
|
+ "de",
|
|
|
+ "es",
|
|
|
+ "fr",
|
|
|
+ "it",
|
|
|
+ "ja",
|
|
|
+ "ko",
|
|
|
+ "no",
|
|
|
+ "pl",
|
|
|
+ "ru",
|
|
|
+ "th",
|
|
|
+ "tr",
|
|
|
+ "uk",
|
|
|
+ "zh",
|
|
|
+ "zht",
|
|
|
+])
|
|
|
+
|
|
|
+function stripLocaleDataPrefix(pathname: string) {
|
|
|
+ const value = pathname.startsWith("/") ? pathname : `/${pathname}`
|
|
|
+ const segments = value.split("/")
|
|
|
+ if (segments[2] !== "data") return value
|
|
|
+ if (!localePrefixes.has(segments[1] ?? "")) return value
|
|
|
+ return value.slice((segments[1]?.length ?? 0) + 1) || "/"
|
|
|
+}
|
|
|
+
|
|
|
function AppMeta() {
|
|
|
return (
|
|
|
<>
|
|
|
@@ -21,6 +49,7 @@ export default function App() {
|
|
|
<Router
|
|
|
base={import.meta.env.BASE_URL.replace(/\/$/, "")}
|
|
|
explicitLinks={true}
|
|
|
+ transformUrl={stripLocaleDataPrefix}
|
|
|
root={(props) => (
|
|
|
<MetaProvider>
|
|
|
<AppMeta />
|