【问题标题】:I18n for multiple language in any hybrid app任何混合应用程序中的多语言 I18n
【发布时间】:2019-08-12 00:46:44
【问题描述】:

我是 React Native 开发人员的新手。支持英语、中文等多国语言,你有什么建议?

【问题讨论】:

    标签: react-native i18next


    【解决方案1】:

    项目 react-native-i18n 现已弃用。阅读这篇 React Native 中的国际化文章,除了这个小配置,不需要任何链接或任何配置。

    import i18n from 'i18n-js';
    
    import en from './locales/en.json';
    import de from './locales/de.json';
    
    i18n.defaultLocale = 'en';
    i18n.locale = 'en';
    i18n.fallbacks = true;
    i18n.translations = { en, de };
    
    export default i18n;

    要在页面上显示国际化信息,我们可以使用 i18n.t() 函数,将翻译键作为参数传递。例如i18n.t("home.welcome")

    【讨论】:

      【解决方案2】:

      使您的应用程序多语言化的最佳方法是使用 I18n 包。我在多个项目中使用过这个包。

      上手非常容易。

      首先安装包:

      npm i react-native-i18n --save
      

      在您的项目中创建一个“翻译”文件夹。

      为您想要的语言制作一个 .json 文件,如下所示(我将此文件命名为 per.json):

      {
        "discountCode":"کد تخفیف",
        "validUntil":"معتبر تا",
        "days":"روز",
        "copy":"کپی"
      }
      

      在翻译文件夹中创建一个 i18n.js 文件并编写您的配置文件。我的是:

      import I18n from 'react-native-i18n';
      import Persian from './per.json'
      
      I18n.locale="per"
      
      I18n.translations={
         'per': Persian
      }
      
      export default I18n;
      

      然后在您的项目中,您应该使用如下翻译:

      import I18n from './translation/i18n'
      
      <Text style={styles.myTextStyle}>{I18n.t("discountCode")}</Text>
      

      希望这个简单的指南可以帮助您构建多语言应用程序。

      如果您有任何问题,请随时提出。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-11-09
        • 2011-11-26
        • 1970-01-01
        • 2015-07-21
        • 2014-02-12
        • 1970-01-01
        • 2021-02-19
        相关资源
        最近更新 更多