如何使用多语言/多个index.html文件正确设置React Router?

2024-04-20

我正在构建一个 Web 应用程序,使用最新的 React 和 React Router 版本,就我而言,我的应用程序支持多种语言,并且由于索引,我们为每种语言都有单独的条目 html 文件。因此,对于像 myapp.com 这样的 url,我们会

myapp.com/en/- 英语

myapp.com/de/- 对于德语等...

在服务器端,每一个/en/文件夹当然会有自己的索引.html文件与meta, title以及用给定语言编写的其他元数据,它们都可以访问我们的 React 应用程序(捆绑包.js)

我之前已经使用路由器哈希历史构建了类似的东西,所以我的应用程序看起来像 myapp.com/en/#/home,我的主要路线在路线.js当然看起来像这样

<Route path="/" component={MainComponent}

现在我想使用 BrowserRouter,我希望我的路线看起来像这样 如果网址是myapp.com/en/链接将是:

<Link to="/home" />

一旦点击它就会带你去myapp.com/en/home它会正确渲染路由中链接到它的组件

 <Route path="/home" exact component={HomeContainer} />

基本上目前只有当我做了这样的事情时这才有效

<Link to=`/${getCurrentLanguage()}/home` /

路线是这样的

<Route path=`/${getCurrentLanguage()}/home` exact component={HomeContainer} />

这当然是疯狂的,

我怎样才能实现预期的行为,或者您有什么不同的想法吗?谢谢

edit我不是在问任何有关 React 翻译的问题,我将使用 i18next 来翻译 React 端,我问的是使用不同的 index.html 文件进行路由的问题


有两种方法可以解决这个问题

  1. 将 BrowserRouter 基本名称属性设置为给定语言
<BrowserRouter basename=`/${getLanguage()}`>
    <Switch>
        <Route path="/" exact component={Home} />
    </Switch>
< /BrowserRouter>

这样您就可以自由导航<Link to="/about" />

  1. 或在任何其他路线之前使用 /:lng
<Switch>
    <Route path="/:lng/" exact component={Home} />
</Switch>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用多语言/多个index.html文件正确设置React Router? 的相关文章

随机推荐

  • 当 defer func 评估其参数时

    我正在学习 defer 在 golang 中的行为方式 并想用它来处理函数返回时的错误 代码如下 package main import fmt import errors func main a func a var err error
  • Core Plot 1.0如何实现reloadData方法?

    我昨天问了这个问题 并得到了 Eric Skroch 的大力帮助 然而 在查看了 Core Plot 网站上的所有文档以及一些示例后 我仍然有点困惑 因此 我将发布迄今为止的代码 看看是否有人可以帮助我更多 也许埃里克也能更容易提供帮助 我
  • 如果缺少列值,则替换为 pandas 数据框中的增量值

    输入数据框 max value 16 x max max value data s id G1 G2 G3 G3 G4 df2 pd DataFrame from dict data df2 Out 365 s id 0 G1 1 2 3
  • 流行图片,例如 Google 图片

    有没有任何 jQuery 插件或 CSS 技术可以实现像谷歌图像那样的流行效果 Thanks images padding 30px images img position relative float left height 100px
  • Redux 不就是美化了全局状态吗?

    所以我一周前开始学习 React 我不可避免地遇到了状态问题以及组件应该如何与应用程序的其余部分进行通信 我四处搜寻了一下 Redux 似乎是这个月的热门 我通读了所有文档 我认为这实际上是一个相当革命性的想法 以下是我的想法 人们普遍认为
  • 在 C# webBrowser 控件中调用 Javascript 函数

    我正在使用网页浏览器C 中的控件加载网页 需要调用返回字符串值的 JavaScript 函数 我有一个解决方案可以使用调用脚本方法 我也尝试了很多 但都失败了 你能具体说明什么失败了吗 我的下面的示例由一个带有 Web 浏览器和按钮的表单组
  • 为什么 `List` 有 `forEach` 却没有 `map` 默认方法?

    我研究过在 Java 8 中编写基于流的代码 并注意到一种模式 即我经常有一个列表 但需要通过对每个元素应用简单的映射来将其转换为另一个列表 写完后 stream map collect Collections toList 还有一次我记得
  • 如何使用 FakeItEasy 伪造一个动作<>

    我正在使用 FakeItEasy 库为我的单元测试创 建假货 我有一个ClassUnderTest我想测试该方法MethodToTest Data dataObject 这个方法正在调用我想伪造的接口的方法 public interface
  • css设置speak:none现在相当于aria-hidden =“true”吗?

    我只是想知道我是否应该期望 2015 年 1 月左右的浏览器和辅助技术以相当于设置 aria hidden true 的方式使用spoke none 我想指出一些半不透明的文本应该被忽略 并且想知道我是否可以在一次操作中完成它 只需添加一个
  • WinRT StorageFile DisplayName 奇怪的行为

    在 Windows 8 1 上的 Windows 8 应用程序中 我使用 StorageFile 的 DisplayName 属性来获取 友好 文件名 在大多数情况下 结果是文件的名称without扩展名 但有时结果是文件名with扩展名
  • GAE Golang Gorilla mux - 404 页面未找到

    我在 GAE 中使用 gorilla mux 时遇到一些问题 当我尝试时 我发现 404 页面未找到 未调用 rootHandler 函数 未生成任何痕迹 以下是我的代码的一部分 有什么想法吗 提前考虑 func init r mux Ne
  • 动态改变背景LinearLayout

    如何动态改变LinearLayout的背景 您是否尝试过其中之一 yourLayout setBackgroundColor int color yourLayout setBackgroundDrawable Drawable d you
  • 如何使用 Python 访问 Outlook 收件箱中的子文件夹

    我在 Outlook 中创建了一条规则 将来自特定发件人的所有传入邮件移至收件箱中的子文件夹 Like Inbox Subfolder 我写了一段代码 import win32com client outlook win32com clie
  • git - 有日志提交但缺少 .sln 文件,因此无法打开项目 - 如何恢复

    有什么方法可以使用 git 恢复我的项目文件吗 这是场景 我在一个分支机构工作了几天 该分支从未被推送到远程仓库 所以它完全是本地的 我最终丢失了 sln 解决方案文件 因此我无法再打开该项目 但在项目目录中我仍然有 git 目录 如果我发
  • ARView 黑屏

    我正在尝试以编程方式实例化 ARView 这是我的视图控制器代码 import Foundation import UIKit import RealityKit class ARViewController UIViewControlle
  • XPath 轴是否尊重 Xslt 排序?

    如果我像这样调用 xslt 模板
  • 如何在 Windows 上更改 npm 的缓存路径(或完全禁用缓存)?

    我已经在我的 Windows 7 x64 开发机器上安装了 Node js 手动方式 mkdir C Devel nodejs cd C Devel nodejs set NODE PATH CD setx M PATH PATH NODE
  • 用泛型 T 扩展类

    在 TypeScript 中 有没有办法用泛型类型扩展类 请参阅我的 假设场景 示例 其中我希望我的类具有名为 品种 或其他 的属性 interface dog breed string export class animal
  • 当我在 NetLogo 中取消世界环绕时,为什么会出现错误?

    我下载了一个工作模型 并正在对其进行调整以适应我的标准 我想禁用世界环绕 以便海龟在移动到初始屏幕时受到限制 但是当我这样做时 我收到一条错误消息 告诉我 OF预期输入是海龟代理集或补丁代理集或海龟或补丁 但没有得到任何人 欢迎来到 Sta
  • 如何使用多语言/多个index.html文件正确设置React Router?

    我正在构建一个 Web 应用程序 使用最新的 React 和 React Router 版本 就我而言 我的应用程序支持多种语言 并且由于索引 我们为每种语言都有单独的条目 html 文件 因此 对于像 myapp com 这样的 url