首页 > 解决方案 > 离线使用 i18next 进行本机反应

问题描述

我们正在构建一个 React Native 应用程序,我们的客户希望我将其翻译成其他语言。

我们的计划是使用 i18next 无论如何我们都必须保持离线... 我可以离线使用 i18next 来进行原生反应吗?

谢谢,维涅什

标签: react-nativelocalizationtranslatei18nextreact-i18next

解决方案


是的,您可以,实际上您可以将所有翻译文件与代码“捆绑”在一起。这样,您将不会有任何 http 请求。

import i18next from 'i18next';
import enTranslations from '../path/to/locales/en/translations.json';
import deTranslations from '../path/to/locales/de/translations.json';

i18next.init({
  lng: 'en',
  debug: true,
  resources: {
    en: {
      translation: enTranslations  // <---- your english translations
    },
    de: {
      translation: deTranslations
    }
  }
}, function(err, t) {
  // initialized and ready to go!
  document.getElementById('output').innerHTML = i18next.t('key');
});

对于更高级的解决方案,您可以围绕react-native-fs编写一个 i18next 后端,它应该类似于i18next-fs-backend。(我自己没有尝试过这个选项)


推荐阅读