我相信我已经在互联网上搜索了所有的部分来寻找答案和修复,但没有一个似乎有效。
问题:
构建生产构建之后,在浏览器控制台(使用chrome)中会显示以下错误:Fetch API不能加载文件:///documents/streaming_site/build/static/locales/en/translation.json。对于CORS请求,URL方案必须是“HTTP”或“HTTPS”。
import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';
import Backend from 'i18next-http-backend';
import LanguageDetector from 'i18next-browser-languagedetector';
import XHR from 'i18next-xhr-backend';
// don't want to use this?
// have a look at the Quick start guide
// for passing in lng and translations on init
const Languages = ['en', 'fr'];
i18n
.use(XHR)
// load translation using http -> see /public/locales (i.e. https://github.com/i18next/react-i18next/tree/master/example/react/public/locales)
// learn more: https://github.com/i18next/i18next-http-backend
.use(Backend)
// detect user language
// learn more: https://github.com/i18next/i18next-browser-languageDetector
.use(LanguageDetector)
// pass the i18n instance to react-i18next.
.use(initReactI18next)
// init i18next
// for all options read: https://www.i18next.com/overview/configuration-options
.init({
lng : 'en',
react: {
useSuspense: false,
wait: true
},
fallbackLng: 'en',
debug: false,
whitelist: Languages,
interpolation: {
escapeValue: false, // not needed for react as it escapes by default
},
nsSeperator : false,
keySeperator : false,
backend:{
loadPath: () => {
var cors = require('cors');
var app = cors();
// check the domain
const host = window.location.host;
return (host === 'index.html#' ? '':'') + '/static/locales/{{lng}}/{{ns}}.json';
},
}
});
export default i18n;
i18next.init({// <-- This was added
interpolation: {escapeValue: false},
});
i18next.init().then(() => // <-- This was added
ReactDOM.render(
<React.StrictMode>
<Suspense fallback={<div>Loading...</div>}>// <-- This was added
<I18nextProvider i18n={i18next}>// <-- This was added
<App />
</I18nextProvider>
</Suspense>
</React.StrictMode>,
document.getElementById('root')
)
);
这使我相信,如果没有承载en和fr的translation.json
文件的后端服务器,就不可能在本地访问它们。
我的问题是:在构建生产构建后,是否可以在本地运行i18n翻译,而不需要服务器来托管json文件?如果是,我将如何进行?
对于参考资料,我已经从这个网站上尝试了一些修复方法,例如:
当我尝试-->res.header('access-control-allog-origin',“*”);
时,我已经接近了,尽管这是以引起一些安全问题为代价的,我不希望出现这种情况。虽然如果这是一个潜在的修复,我愿意尝试它。
所以在这里我没有主意...:/
看起来i18next服务有一些错误配置。
首先,i18next-http-backend
&i18next-xhr-backend
正在解决相同的问题,获取json文件。
删除第二个(i18next-xhr-backend
),因为它不推荐使用i18next-http-backend
。
import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';
import Backend from 'i18next-http-backend';
import LanguageDetector from 'i18next-browser-languagedetector';
// don't want to use this?
// have a look at the Quick start guide
// for passing in lng and translations on init
const Languages = ['en', 'fr'];
i18n
.use(Backend)
// detect user language
// learn more: https://github.com/i18next/i18next-browser-languageDetector
.use(LanguageDetector)
// pass the i18n instance to react-i18next.
.use(initReactI18next)
// init i18next
// for all options read: https://www.i18next.com/overview/configuration-options
.init({
lng: 'en',
react: {
useSuspense: false,
wait: true,
},
fallbackLng: 'en',
debug: false,
whitelist: Languages,
interpolation: {
escapeValue: false, // not needed for react as it escapes by default
},
nsSeperator: false,
keySeperator: false,
backend: {
loadPath: '/locales/{{lng}}/{{ns}}.json',
},
});
export default i18n;
我正在运行一个React-Native应用程序,但当我试图在android目录下gradlew installDebug时,我得到了一个构建失败。以下是我使用时得到的信息: 这是该项目的回购是从我试图设置应用程序到我的genymotion模拟器,但构建从未完成。 我已经运行了react-native start命令,并设置了与couchbase lite服务器的同步。不确定这是否是相关信息。我对本
问题内容: 最近,我按照这篇文章的建议删除了项目中的所有scriptlet 。但是现在,如果我尝试更改其中一个视图,则会收到deferredExpression错误。为了摆脱错误,我只需要终止,然后重新启动项目即可。 这里发生了什么?eclipse是否无法即时编译jstl?有什么我可以更改的,所以我不必每次进行更改都重新部署吗? 堆栈跟踪 问题答案: java.lang.NoSuchFieldEr
我有两个文本文件:PatientForms。txt和主代码列表。txt。 每个文件的每一行都包含一个JSON字符串。例如,我使用以下方法读入文件的内容并将其存储在SortedMap中。 这是我的服务代码。java代码: 以下是我读取文件并将其放置在地图中的方法: 所以,问题是这在IntelliJ中没有错误,但是当我从我的jar文件中运行它时,我得到了一个错误。当我运行程序时,IDE输出的字符串显示
我运行以下命令(它是一个lib项目,但我也在常规项目中得到它):
我试图使用带有外来字符的JSON发出POST请求,例如在其上带有“~”的西班牙语n,但我不断收到此请求和响应错误: 我已经可以使用普通ASCII字符成功发出POST请求,但现在我支持外语,我需要将外文字符转换为UTF-8(或正确的编码最终是什么),除非有更好的方法做到这一点。 这是我的代码: 当我放置断点并在提交之前查看se时,字符看起来是正确的。 更新:代码更新为上面几行的答案,并带有标识它的注