我在反應應用程式中有以下翻譯代碼。
import i18n from "i18next";
import { initReactI18next } from "react-i18next";
import HttpApi from "i18next-http-backend";
i18n
.use(initReactI18next)
.use(HttpApi)
.init({
lng: "en",
fallbackLng: "en",
keySeparator: false,
interpolation: {
escapeValue: false,
/**
* Add interpolation format method to customize the formatting
*/
format: (value, format, lng) => {
if (format === "uppercase") {
return value.toUpperCase();
}
return value;
}
},
backend: {
loadPath: "/locales/{{ns}}/{{lng}}.json"
}
});
在這里,在上面的代碼資料被保存在靜態file
的locale
檔案夾中。我需要backend API
從檔案中讀取資料。我的意思是在下面的代碼而不是 loadPath 我需要呼叫 API。有可能react
嗎?
backend:{
loadPath: "/locales/{{ns}}/{{lng}}.json"
}
uj5u.com熱心網友回復:
下面的代碼對我有用。
import i18n from "i18next";
import LanguageDetector from "i18next-browser-languagedetector";
import backend from 'i18next-http-backend';
import api from "../api";
alert(navigator.language);
var lang=navigator.language;
if(lang==='en-US')
lang='en';
let loadResources= api.getTranslations(lang);
const backendOptions = {
loadPath: 'http://localhost:8080/country/' lang,
request: (options, url, payload, callback) => {
try {
loadResources.then((result) => {
callback(null, {
data: result,
status: 200,
});
});
} catch (e) {
console.error(e);
callback(null, {
status: 500,
});
}
},
};
i18n
.use(LanguageDetector)
.use(backend)
.init({
backend: backendOptions,
fallbackLng: "fr",
debug: false,
load:"languageOnly",
ns: ["translations"],
defaultNS: "translations",
keySeparator: false,
interpolation: {
escapeValue: false,
formatSeparator: ","
},
react: {
wait: true
}
});
i18n.changeLanguage(navigator.language);
export default i18n;
uj5u.com熱心網友回復:
這個答案可能會有所幫助:
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/420488.html
標籤:
上一篇:tkinter的entryget函式的一個實體不起作用,而周圍的其他實體則起作用
下一篇:返回列表