如何使用多语言/多个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? 的相关文章

  • 禁用 jquery-chosen 下拉菜单

    我有一个正在使用的选择 div选择jquery插件 http harvesthq github io chosen 设计样式并添加功能 最值得注意的是搜索 div 看起来像这样
  • 如何创建要添加到 JavaScript 对象变量的动态键 [重复]

    这个问题在这里已经有答案了 我正在尝试类似的事情 但这个例子不起作用 jsObj for var i 1 i lt 10 i jsObj key i example 1 我该怎么做才能制作这样的动态密钥 方括号 jsObj key i ex
  • 服务器重新启动时显示等待页面

    我有一个服务器并为其创建一个 Web 界面 如果用户按下页面上的重新启动按钮 则用户将被重定向到reboot php他应该看到一个旋转 gif 直到服务器再次可访问并且服务器通过 shell 执行重新启动 如果服务器可以访问 那么我需要重定
  • 使用字符串函数查找周期字符串

    我正在寻找一种方法来检查字符串是否是周期性的或不使用 JavaScript 要匹配的示例字符串可以是11223331122333 然而 10101不应该匹配 来自 python 我使用了 RegEx 1 但速度相当慢 有没有任何字符串方法可
  • Flot 中轴的逗号分隔数字

    有没有办法让 Flot 使轴编号以逗号分隔 例如 用 1 000 000 代替 1000000 您可以通过使用轴的tickFormatter 属性来做到这一点 xaxis tickFormatter function val axis in
  • Leaflet.js setMaxBounds 忽略南界

    Using 传单 js http leafletjs com reference html对于开源地图项目 但我需要设置用户无法超越的特定界限 地图对象的 maxBounds 属性在北 东 西方向上按预期工作 但它让我永远向南滚动 在小提琴
  • 如果在 React JS 中选中复选框,如何隐藏或显示 div

    我如何在React JS中根据复选框状态 选中 未选中 显示 隐藏div 我对React很陌生 我知道如何在jquery中执行此操作 但在React上是另一种方法 提前致谢 EDITED 如果选中或未选中该复选框 则想要显示 隐藏带有 cl
  • 尝试在 Windows 上执行 package.json 中的脚本会引发 JScript 错误

    所以我正在尝试构建 javascriptair site 在 的里面package json有一个 npm 脚本指向 javascript 命令 package scripts 找到该存储库https github com kentcdod
  • jQuery:在方法上取消绑定 jQuery 2.0

    在 jQuery 1 9 中live 已被弃用 因此新方法变为 document on mouseover blahblahfunc 我无法解除 blahblahfunc 的绑定 通过 unbind mouseover mouseout c
  • 为什么WAV格式在不同的浏览器中没有相同的mimetype?

    文件输入在 Chrome 或 Firefox 中为同一文件提供不同的 Mimetype 我有一个我想上传的 wav 文件 chrome 说是audio wav和火狐检测audio x wav 我知道这两个 mimetype 非常相似 x 代
  • RxJS 将三元组中的属性组合到表中

    我有一项服务生成类似于三元组的对象 它们将采用以下格式 country attribute value Example country usa attribute population value 100 country mexico at
  • 在 JavaScript 中给变量字符串加上引号

    我有一个 JavaScript 变量 var text http example com 文本可以是多个链接 如何在变量字符串周围放置 例如 我希望字符串看起来像这样 http example com var text http examp
  • Angular 8 - 删除 ng-component 标签 - 表行模板

    我有一个灵活的表格组件 有两种模式 普通表 有效 自定义行模板 这不是因为角度添加
  • HTML5:从存储的二进制字符串播放视频

    我正在尝试使用 FileReader readAsBinaryString Blob File 将视频文件的内容作为二进制字符串读取 如示例中所示http www html5rocks com en tutorials file dndfi
  • 带条件的 Array.join()

    我该如何使用Array join 有条件的函数 例如 var name aa bb var s name join 输出是 aa bb 我想添加一个条件 仅显示不为空的单词 aa bb 您可以使用Array filter https dev
  • 删除鼠标悬停时的 Vue 自定义过滤器

    我想使用 VueJS 2 删除鼠标悬停时的截断过滤器 这是模板中的过滤器 div class eng word english truncate div 这是过滤器本身 filters truncate function value let
  • 尝试利用?

    我看到我的 nopCommerce 网站记录了以下搜索 ADw script AD4 alert 202 ADw script AD4 我有点好奇他们想要完成什么 我搜索了一下 似乎是ADw script AD4 以 UTF7 编码为
  • 监听鼠标事件……除了 div 的溢出:滚动滚动条?

    关于如何监听 mousedown 的任何建议 document exceptdiv 的溢出 滚动滚动条 我不确定滚动条是什么元素is为了参考它 您可以使用以下命令自行检查目标 document on mousedown function e
  • 如何解析使用YUI数据源返回的NULL值

    我正在使用 YUI 数据表和数据源来渲染我的项目之一中的数据 返回的数据恰好为NULL YUI数据源无法解析它 下面是数据源和数据表的声明代码 为了便于阅读 我将每个声明分开 列说明声明 var columnDescription key
  • 反应本机中的“未知命名模块”错误

    我正在使用 React Native 创建一个应用程序 但某些导入会引发标题中的错误 Unknown named module 两个包都会发生这种情况 react native material design and react nativ

随机推荐

  • 当 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