Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Support symbols in localized pathnames that require URL encoding #959

Merged
merged 5 commits into from
Apr 3, 2024

Conversation

amannn
Copy link
Owner

@amannn amannn commented Mar 25, 2024

Fixes #607

Prerelease:

Example:

export const pathnames = {
  '/': '/',
  '/test': {
    en: '/test',
    ja: '/テスト'
  }
} satisfies Pathnames<typeof locales>

Previously, a request to /ja/テスト would be a 404 since the pathname wasn't matched correctly. Now, the internal /test route is properly used for rendering.

If you've previously used a workaround to encode pathnames, please remove it when upgrading to the latest version of next-intl.

Copy link

vercel bot commented Mar 25, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
next-intl-docs ✅ Ready (Inspect) Visit Preview 💬 Add feedback Mar 25, 2024 8:26pm
next-intl-example-app-router ✅ Ready (Inspect) Visit Preview 💬 Add feedback Mar 25, 2024 8:26pm

@amannn amannn changed the title fix: Handle foreign symbols in localized pathnames correctly feat: Support foreign symbols in localized pathnames Mar 25, 2024
@@ -44,11 +44,14 @@ export default function createMiddleware<Locales extends AllLocales>(
const configWithDefaults = receiveConfig(config);

return function middleware(request: NextRequest) {
// Resolve potential foreign symbols (e.g. /ja/%E7%B4%84 → /ja/約))
const nextPathname = decodeURI(request.nextUrl.pathname);
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Decoding an incoming request seems easier than encoding every segment of specified pathnames, where we have symbols like [] that should not be encoded.

@amannn amannn marked this pull request as ready for review March 25, 2024 17:39
@amannn amannn changed the title feat: Support foreign symbols in localized pathnames feat: Support symbols in localized pathnames that require URL encoding Mar 25, 2024
@amannn amannn merged commit b6e66f4 into main Apr 3, 2024
7 checks passed
@amannn amannn deleted the fix/607-handle-foreign-symbols branch April 3, 2024 18:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Symbols/foreign letters not working with localized pathnames
1 participant