summaryrefslogtreecommitdiffhomepage
path: root/packages/web/src/i18n
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-02-09 13:26:27 -0600
committerAdam <[email protected]>2026-02-09 13:26:50 -0600
commit3dc720ff9cdd1002f737a43faaf428fb4cc18316 (patch)
tree7139fa900b3dc2bf8e5e00c179ba8e7daf568bba /packages/web/src/i18n
parent56b340b5d58d98fdebb54973ba8dfeb67ba8c51a (diff)
downloadopencode-3dc720ff9cdd1002f737a43faaf428fb4cc18316.tar.gz
opencode-3dc720ff9cdd1002f737a43faaf428fb4cc18316.zip
fix: locale routing
Diffstat (limited to 'packages/web/src/i18n')
-rw-r--r--packages/web/src/i18n/locales.ts18
1 files changed, 17 insertions, 1 deletions
diff --git a/packages/web/src/i18n/locales.ts b/packages/web/src/i18n/locales.ts
index 50cdaecb5..67e36dfe1 100644
--- a/packages/web/src/i18n/locales.ts
+++ b/packages/web/src/i18n/locales.ts
@@ -69,7 +69,7 @@ const starts = [
["en", "root"],
] as const
-export function matchLocale(input: string) {
+function parse(input: string) {
let decoded = ""
try {
decoded = decodeURIComponent(input)
@@ -79,6 +79,22 @@ export function matchLocale(input: string) {
const value = decoded.trim().toLowerCase()
if (!value) return null
+ return value
+}
+
+export function exactLocale(input: string) {
+ const value = parse(input)
+ if (!value) return null
+ if (value in localeAlias) {
+ return localeAlias[value as keyof typeof localeAlias]
+ }
+
+ return null
+}
+
+export function matchLocale(input: string) {
+ const value = parse(input)
+ if (!value) return null
if (value.startsWith("zh")) {
if (value.includes("hant") || value.includes("-tw") || value.includes("-hk") || value.includes("-mo")) {