我有一个项目,我使用了包
next-intl
,我想更改文件夹结构,类似于下面的示例:
为了访问 localhost:3000/[business_slug]/[locale]/... 而不是 localhost:3000/[locale]/[business_slug]。这可以吗?在这里你可以找到我正在使用的中间件:
import createMiddleware from "next-intl/middleware";
import { locales, defaultLocale } from "./configs/next-intl";
export default createMiddleware({
locales,
defaultLocale,
});
export const config = {
matcher: ["/((?!api|_next|_vercel|.*\\..*).*)"],
};
所以根据你的评论:
每个企业都可以配置他们使用的语言数量, 包括他们选择的默认语言
您有 2 个问题。
翻译。对于翻译,我建议将您的网址保留在开头,例如 /[locale]/business。并实现翻译 next-intl 文档。
业务逻辑。当用户选择默认语言以及当用户配置语言数量时,您需要将其保存在数据库中。最好在字符串和字符串[]中。
在语言选择器中,您需要显示每个用户可以看到多少种语言的选项。要么通过在语言选择器中获取数据,要么通过更好的方式在中间件中获取一次并将其添加到 Zustand 状态,并在语言选择器中使用状态值。
未来的功能问题:如果每个企业都希望更新和更改他们的翻译以满足他们的需求。或者企业希望添加自己的语言供私人使用。此选项不起作用,您需要找到更动态的解决方案。