国际化

作者: 易路先登 | 来源:发表于2021-09-16 14:12 被阅读0次

一、 i18n

Internationalization 首末字母与字符数。
能根据不同的语言及地区显示相应的界面。

原理:
1、语言作为静态资源单独保存:xml,json
2、每种语言对应一个文件
3、切换语言设置时,语言文件也会随之切换
工具:

  • i18next:目前最主流的框架
  • react-i18next:i18next的React框架
    官网:
    react-i18next

1、安装

npm install react-i18next i18next --save//原生支持typescript 不需要额外安装声明文件

2、使用

(1)、目录

i18n
    config.ts
    zh.json
    en.json 
//i18n/config.ts
import i18n from "i18next";
import { initReactI18next } from "react-i18next";
import translation_en from "./en.json"
import translation_zh from "./zh.json"
const resources = {
  en: {
    translation: translation_en 
  },
  zh: {
    translation: translation_zh 
  }
};
i18n
  .use(initReactI18next) // passes i18n down to react-i18next
  .init({
    resources,
    lng: "zh", // language to use, more information here: https://www.i18next.com/overview/configuration-options#languages-namespaces-resources
    // you can use the i18n.changeLanguage function to change the language manually: https://www.i18next.com/overview/api#changelanguage
    // if you're using a language detector, do not define the lng option

    interpolation: {
      escapeValue: false // react already safes from xss
    }
  });

  export default i18n;
//index.ts
import "i18n/config"//react-i18next会帮我们自动注入

(2)、使用
类组件中使用

import { withTranslation,WithTranslation } from "react-i18next"

class TestComponent extends React.Component<WithTranslation >{
      render(){
            let { t } = this.props
            return <div>{t.header.xxx}</div>
      }
}
export default withTranslation()(TestComponent )

函数组件中使用

import { useTranslation} from "react-i18next"

function TestComponent(){
  const { t } = useTranslation()
  return <div>{t.header.xxx}</div>
}

(3)、i18n的语言切换

import i18n from 'i18next'
i18n.changeLanguage('en')

相关文章

  • App语言的国际化之跟随系统语言(一)

    本将要国际化的内容是: App国际化的配置 App名称国际化 代码中字符串国际化 国际化语言的配置 在项目中打开如...

  • 【整理】前端国际化小结

    近期在做国际化的改造,做了相应的调研,简单做下项目前端国际化的小结 国际化可以分为前端国际化和后端国际化,也可以是...

  • App语言的国际化之跟随系统语言(二)

    本将要国际化的内容是: 图片国际化 storyboard/xib国际化 (一)图片的国际化 方式一: 对于同一张图...

  • iOS-应用名称和内容国际化

    iOS应用的国际化,主要分为3个部分:Info.plist 文件的国际化.xib文件的国际化.m文件的国际化 In...

  • 东方国际化的符合高科技

    东方国际化的符合高科技东方国际化的符合高科技东方国际化的符合高科技东方国际化的符合高科技东方国际化的符合高科技东方...

  • iOS工程项目国际化

    项目国际化有两种情况,分别是应用内容国际化,还有一种是StoryBoard或Xib国际化;本文国际化(英语和简体中...

  • iOS 启动图国际化

    一、使用launchImage 国际化方法 对图片进行国际化,由于Image.xcassets无法国际化图片,所以...

  • Day18 - Flutter - 国际化

    概述 国际化的认识 国际化的适配 国际化的工具 一、国际化的认识 开发一个App,如果我们的App需要面向不同的语...

  • 国际化(i18n)

    title: vue国际化date: 2016-11-17 国际化 本文介绍vue国际化的思路与实现。 vue国际...

  • iOS国际化详解

    iOS国际化详解 对于iOS国际化,一般包括: 1. 工程项目名称国际化2. 工程内控件内容国际化3. 工程内图片...

网友评论

      本文标题:国际化

      本文链接:https://www.haomeiwen.com/subject/emoqgltx.html