当前位置: 首页 > wzjs >正文

东莞公司网站做优化1688官网入口

东莞公司网站做优化,1688官网入口,深圳做企业网站多少钱,怎么做足球网站声明:此篇文章使用的版本是 "react-intl": "^3.12.0"。 因为react-intl3.xx版本相较于react-intl2.xx版本差别较大,有些API是break change, 所以这篇文章的实现方式,不适用于react-intl2.xx版本。 一: 安装react-intl np…

声明:此篇文章使用的版本是 "react-intl": "^3.12.0"。

因为react-intl@3.xx版本相较于react-intl@2.xx版本差别较大,有些API是break change, 所以这篇文章的实现方式,不适用于react-intl@2.xx版本。

一: 安装react-intl
npm install --save react-intl
二: 配置typescript对react-intl的支持

react-intl is written in TypeScript, thus having 1st-class TS support.
In order to use react-intl in TypeScript, make sure your compilerOptions's lib config include ["esnext.intl", "es2017.intl", "es2018.intl"].

//tsconfig.json
{"compilerOptions": {"outDir": "./dis/","sourceMap": true,"noImplicitAny": true,"module": "commonjs","target": "es6","jsx": "react","experimentalDecorators": true,"lib": ["esnext.intl", "es2017.intl", "es2018.intl", "dom","es6","dom.iterable","scripthost"]}
}

这里可以看到,我们不仅在"lib"这一项添加了文档上说的"esnext.intl", "es2017.intl", "es2018.intl"这三个,还添加了"dom","es6","dom.iterable","scripthost"。原因是这样的:
如果我们在compilerOptions里面没有特别指明lib这项的时候,TS的lib默认包含的是:
► For --target ES5: "dom","es5","scripthost"
► For --target ES6: "dom","es6","dom.iterable","scripthost"
所以,我们要把原本默认的其他库,也加入到lib这个配置项里面去。如果不加的话,就会报错,比如我之前就得到一个错误:


因为缺少默认的库所得到的TS错误

但是,当我们像上面的代码那样,把那几个默认的库加入lib,这个错就会得到解决。

三: 写代码

1: 创建index.tsx

//src/index.tsx
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import App from './components/app/App';ReactDOM.render(<App />,document.getElementById("root")
);

index.tsx和我们没有使用i18n的项目没有差别。

2: 在App.tsx文件里面,把App包裹在IntlProvider里面

//src/components/app/App
import * as React from 'react';
import {IntlProvider} from "react-intl";const App = () => {const locale = 'en';let messages = {en: {greeting: 'Hello',},zh: {greeting: "你好"}};return (<><IntlProvider locale={locale} key={locale} messages={messages[locale]}><div>hello</div></IntlProvider></>)
};export default App;

现在我们的页面上有一行文字"hello",我们先放在这里,暂时还没有做国际化。我们引入了IntlProvider,把App的内容都包含在里面,且对其进行"locale","key"和"messages"三项属性的配置。

3:文字的国际化 -> FormattedMessage

import * as React from 'react';
import {IntlProvider, FormattedMessage} from "react-intl";const App = () => {const locale = 'en';let messages = {en: {greeting: 'Hello',},zh: {greeting: "你好"}};return (<><IntlProvider locale={locale} key={locale} messages={messages[locale]}><div><FormattedMessage id="greeting"/></div></IntlProvider></>);};export default App;

把之前写死的"hello"去掉,替换成<FormattedMessage id="greeting"/>, 这里的id的值就是我们定义在messages里面文案对应的key.

因为我们的代码里暂时写死的
const locale = 'en';所以页面上会看到'hello', 如果改成
const locale = 'zh';就会看到‘你好’。
当然这里可以重构的东西很多,我们后面再做,先暂时这样。

4:日期(data)的格式化
React intl 提供三个格式化日期的组件:

<FormattedDate>
<FormattedTime>
<FormattedRelativeTime>

5:时间的国际化
6:货币的国际化
7:复数的国际化

四:polyfill for old browser support
五: mobile support
最后编辑于:2025-02-24 21:40:05


喜欢的朋友记得点赞、收藏、关注哦!!!

http://www.dtcms.com/wzjs/150758.html

相关文章:

  • 省厅网站建设招标搜索引擎营销优化策略有哪些
  • 河南网站建设服务公司福州百度推广开户
  • 泉州网站建设开发可以建网站的网络公司有哪些
  • 图标的网站免费的网站域名查询app
  • 韶关市住房和城乡建设管理局网站友情链接英文翻译
  • 服务器公司网站中国今天最新军事新闻
  • 广州响应式网站建设永久免费用的在线客服系统
  • 三亚做网站公司今日桂林头条新闻
  • html是前端还是后端杭州最好的seo公司
  • 昆明网站建设制作百度广告费用
  • 网站seo策略百度广告推广怎么收费
  • 贝壳找房网站做销售seo优化技术
  • 企业网站如何做seo单词优化和整站优化
  • 西宁网站制作公司排名百度域名查询官网
  • 登录全球最大的域名注册商网站深圳seo优化推广
  • wordpress主题管理插件短视频seo排名加盟
  • 做电影网站为什么要数据库双滦区seo整站排名
  • asp.net做的网站seo关键词优化系统
  • 合肥做网站的网络公司手机端搜索引擎排名
  • 向谷歌提交网站成人电脑培训班附近有吗
  • 平台客服怎么联系seo优化网络公司排名
  • 用css做网站的好处成人再就业培训班
  • 企业展厅图文设计汕头seo排名公司
  • 美食网站开发意义成人电脑培训班附近有吗
  • 做蔬菜批发的网站整合营销案例
  • 攻击自己做的网站最新网站发布
  • 如果熊掌号做的不好会不会影响网站企业网站管理系统怎么操作
  • 小网站建设公司排名seo流量排行榜神器
  • 汕头网站建设运营团队成都高端网站建设哪家好
  • 网站佣金怎么做凭证谷歌推广方案