问题标签 [i18next-http-backend]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 使用 i18next-http-backend 延迟加载翻译时页面闪烁
我不确定这是否真的是插件和我的配置的问题,或者它是否只是标准行为。
我正在使用 react-i18next 和 i18next-http-backend 从公共文件夹加载翻译文件。延迟加载是一个不错的奖励,但我实际上使用的是后端插件,因为文件是在外部管理的(由非程序员),我无法预先知道哪些文件存在。我不是在服务器端工作,所以我不能直接从文件系统中读取。
问题:我有一个可折叠部分,其内容仅在展开部分时呈现。当该内容需要以前未加载的翻译文件时,文件的获取似乎会触发页面重新加载:它会闪烁并向上滚动。
由于获取文件,页面闪烁对我来说似乎很奇怪。我想 i18next 正在更新,因为它正在加载一个新的命名空间并导致闪烁。那有意义吗?如果是这样,有没有办法告诉 http-backend 所有的命名空间(即 /public/locales 中的所有文件名),仍然保持延迟加载?我的配置中是否缺少某些内容?
这是我的配置:
谢谢你的帮助!
fallback - 如何使用 i18next-chained-backend 插件来丢失关键级别的回退?
如果在我使用 HTTPBackend 加载路径作为密钥传递的远程 URL 中没有找到翻译,则默认情况下 Reacti18next 似乎回退到翻译密钥,例如 // 尚未为bill_type_blank定义翻译i18next.t(' bill_type_blank ') // Returns ' bill_type_blank ' 如果在 Remote LoadPath 上找不到键的翻译,我更愿意从语言环境路径“locales/{{lng}}/translation.json”获取相同的键。我已经在使用 ChainedBackend 进行网络回退我想要相同的密钥回退,如何使用 i18next 库实现类似的功能?
node.js - i18next-http-backend 缓存请求选项
default
除了库的缓存选项之外,还有其他选项i18next-http-backend
吗?
我们需要将我们的设置为
reactjs - React i18next 从前端(例如 localhost:3000)和后端(例如 localhost:5000)加载翻译文件
我正在制作一个从后端获取数据并显示在浏览器中的反应应用程序。为了更改静态名称的语言(如页眉、页脚),如果我在公共文件夹中设置 locales 文件夹,并为所需的语言代码创建所有 json 文件,则会更改。
现在,我也想从后端加载翻译文件,因为从后端获取的数据总是随机的,后端会发送相应的翻译文件。
我对如何实现这一目标感到非常困惑。
我经历了很多 stackoverflow 解决方案,建议使用自定义后端插件。但是,我很困惑如何创建自定义后端插件。
这是我的 i18next.js 配置的代码部分:
从上面的代码中,我只能加载前端的翻译文件。如果我将“后端”行更改为:
它将从 localhost:5000 的后端服务器加载翻译文件。但是,位于公共文件夹中的翻译文件现在未加载。
谁能帮忙举个例子,如何加载两个路径,以便前端和后端的翻译文件都能正常工作。
i18next - 如何配置 i18n.config.js 以便 `preact build --prerenderUrls ./prerender-urls.js` 成功?
我有一个前端项目设置preact-cli
,它利用i18next
-backend http
。此配置是为了便于从 CDN 按需提供翻译服务,该应用程序将在生产环境中运行。到目前为止,我可以通过以下方式使其工作:
npx preact build --no-prerender
随后部署到AWS Cloudfront
现在我想静态prerender
一些主要的路线,但很遗憾,一个幼稚的:preact build --prerenderUrls ./prerender-urls.js
行不通。这样做的原因是,一旦要执行这些路由的步骤,它就会在没有运行 http 服务器的情况下prerender
尝试利用。i18next-http-backend
在这一点上,preact build
继续挂起(好像我在做一个preact build --analyze
)。
因此,对于该步骤,我需要i18next-fs-backend
改用。遗憾的是,虽然这适用于在 CI/CD 服务器上为这些prerendered
路由捆绑翻译,但它不适用于需要通过http-backend
.
对于这个问题,我只看到两种类型的解决方案:
- 分两步进行构建。首先 with
--no-prerender
ani18n.config.js
利用.http-backend
然后--prerender
with ani18n.config.js
利用fs-backend
. 这里的问题是两个构建之间的哈希值不同,所以我不能简单地用另一个构建复制预渲染的路由。 - 在构建期间设置一个可以提供这些翻译的 http 服务器。这本身是可能的,但这是一个相当脆弱的解决方法。
有一个链式后端的概念,i18next
它允许我定义一个回退,但在浏览器的上下文中,i18next-fs-backend
作为主要来源有什么意义?
在这个阶段对我有很大帮助的是,如果有人能指出
- 要么我没有考虑第三种可行的选择
- 要么我误解了一些做链式后端的方式
- 要么确认我是正确的,要么可以提出一个强有力的案例,
preact-cli
需要允许我们分两部分进行构建。
angular - 后端翻译在 SSR Spartacus 中不起作用
我已经按照本指南实施了翻译的延迟加载。如果我运行应用程序 SSR 模式,即使我将超时时间增加到 1 分钟以上,它总是会退回到 CSR 中。如果我删除后端配置并恢复静态文件,SSR 工作正常。
Spartacus 的 4.1 和 4.2 版本都会出现此问题。
后端翻译和 SSR 是否存在一些已知问题?它可能与 i18next 库有关吗?
我已经检查过了:https ://github.com/SAP/spartacus/issues/6030和https://github.com/SAP/spartacus/issues/6307 它们似乎都是固定的。
问候菲利波
node.js - 使用 i18next 库的多语言问题
我在实施多语言方面面临问题。我们正在使用 i18next 库(NPM 模块)。
要求是我们在后端和前端都有翻译文件,所以我们将在后端有一些翻译,在前端有每种语言的后备翻译文件。
谁能帮我这个?
i18next - React i18Next -> 如何使用 saveMissing 功能忽略命名空间
如何使用 saveMissing(或 updateMissing)参数将 i18Next 配置为 true 并忽略特定命名空间(我不希望更新命名空间 'foo')?
react-native - i18next 和 locize - 未在 18next.init() 上下载翻译 -> 网络请求失败(反应原生)
使用 Locize 后端初始化 i18next 时,在 android 设备上存在问题,其中 Locize 后端插件i18next::backendConnector: loading namespace translation for language en failed [TypeError: Network request failed]
在加载时返回,但在 IOS 设备上正确加载翻译。
这是我用来在应用加载时初始化翻译的代码:
包.json