diff options
| author | Adam <[email protected]> | 2026-02-09 13:26:27 -0600 |
|---|---|---|
| committer | Adam <[email protected]> | 2026-02-09 13:26:50 -0600 |
| commit | 3dc720ff9cdd1002f737a43faaf428fb4cc18316 (patch) | |
| tree | 7139fa900b3dc2bf8e5e00c179ba8e7daf568bba /packages/web/src/i18n | |
| parent | 56b340b5d58d98fdebb54973ba8dfeb67ba8c51a (diff) | |
| download | opencode-3dc720ff9cdd1002f737a43faaf428fb4cc18316.tar.gz opencode-3dc720ff9cdd1002f737a43faaf428fb4cc18316.zip | |
fix: locale routing
Diffstat (limited to 'packages/web/src/i18n')
| -rw-r--r-- | packages/web/src/i18n/locales.ts | 18 |
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")) { |
