reactjs - 如何在reactjs中实现本地化?

标签 reactjs localization localizable.strings react-localization

We need to implement the localization in reactjs to define the string value(s). How can I implement that?

有一个链接https://www.npmjs.com/package/react-localization ,但我没有得到添加该内容的正确步骤。

我已尝试通过以下步骤:

  1. 我正在 ES6 中添加我的组件:
    class Home extends React.Component
    {
        constructor(props) {
            super(props);
        }
        render() {
            return (
              <Text>{strings.how}</Text>
             );
        }
    }

  • 我已将本地化代码添加为:-
  •     import LocalizedStrings from 'react-localization';
        let strings = new LocalizedStrings({
            en:{
                how:"How do you want your egg today?",
                boiledEgg:"Boiled egg",
                softBoiledEgg:"Soft-boiled egg",
                choice:"How to choose the egg"
            },
            it: {
                how:"Come vuoi il tuo uovo oggi?",
                boiledEgg:"Uovo sodo",
                softBoiledEgg:"Uovo alla coque",
                choice:"Come scegliere l'uovo"
            }
        });
    

    Now if you will see above :- {strings.how} I should able to get the strings value as it is defined in localization but I am not able to do it.

    最佳答案

    npm install react-localization

    import ReactDOM from 'react-dom';
    import React, { Component } from 'react';
    import LocalizedStrings from 'react-localization';
    
    let strings = new LocalizedStrings({
      en:{
        how:"How do you want your egg today?",
        boiledEgg:"Boiled egg",
        softBoiledEgg:"Soft-boiled egg",
        choice:"How to choose the egg"
      },
      it: {
        how:"Come vuoi il tuo uovo oggi?",
        boiledEgg:"Uovo sodo",
        softBoiledEgg:"Uovo alla coque",
        choice:"Come scegliere l'uovo"
      }
     });
    
    class App extends Component {
      constructor(props) {
        super(props);
        this.state = {
          language: 'en'
        }
        
        this.handleLanguageChange = this.handleLanguageChange.bind(this);
      }
    
      handleLanguageChange(e) {
        e.preventDefault();
        let lang = e.target.value;
        this.setState(prevState => ({
          language: lang
        }))
      }
    
      render() {
        strings.setLanguage(this.state.language);
        return (
          <div>
            Change Language: <select onChange={this.handleLanguageChange}>
              <option value="en">En- English</option>
              <option value="it">It- Italian</option>
            </select>
            <br /><br />
            {strings.how}
          </div>
        )
      }
    }
    
    ReactDOM.render(<App />, document.getElementById('root'));
    

    您可以将特定于语言的数据放入 JSON 文件或 .js 文件中。在当前文件中调用该文件并将该对象传递给 new LocalizedStrings()

    示例: data.js

    const data = {
      en:{
        how:"How do you want your egg today?",
        boiledEgg:"Boiled egg",
        softBoiledEgg:"Soft-boiled egg",
        choice:"How to choose the egg"
      },
      it: {
        how:"Come vuoi il tuo uovo oggi?",
        boiledEgg:"Uovo sodo",
        softBoiledEgg:"Uovo alla coque",
        choice:"Come scegliere l'uovo"
      }
    }
    export {data};
    

    在当前文件中将其导入为 import { data } from './data.js'; 然后你可以初始化为 let strings = new LocalizedStrings({data});

    您可以在这里阅读详细文章 - react-localization with hooks

    查看工作演示 Here

    关于reactjs - 如何在reactjs中实现本地化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40741743/

    相关文章:

    javascript - react 警告消除警告: Each child in a list should have a unique "key" prop

    node.js - Gmail 式的收藏夹/星级功能的大致架构是怎样的?

    ios - Swift 本地化 : Genstrings

    python - 影响编码、解码和打印的 python 设置列表是什么?

    ios - 一口气完成 iPhone 本地化

    iOS10 : German Localization not working

    string - 快速将字符串拆分为多行

    javascript - react 中的 map 不返回多个元素?

    javascript - React/Redux 服务器端渲染中的警告 : Did not expect server HTML to contain a <li> in <ul>.

    c# - vsto 加载项中的本地化