i18n

i18n

1.先新增三包語言包,都是js的object型態。

en.js

export default {
  lobby: 'lobby'
}

app.js

import tw from './i18n/zh-tw.js'
import cn from './i18n/zh-cn.js'
import en from './i18n/en.js'

if (!localStorage.getItem('lang')) {
  const userLang = window.navigator.language || window.navigator.userLanguage;
  localStorage.setItem('lang', userLang)
}

class App extends PureComponent {
  constructor() {
    super();
    this.state = {
      lang: '',
      langObject: ''
    }
  }
componentWillMount() {
    this.changeLang();
  }
  changeLang(){
    let lang = localStorage.getItem('lang');
    this.setState({ lang }, () => {
      if (lang === "zh-TW") {
        this.setState({langObject: tw})
      }
      if (lang === "en") {
        this.setState({langObject: en})
      }
      if (lang === "zh-CN") {
        this.setState({langObject: cn})
      }
    });
  }

  render() {
    window.context = this;
    return (
      <Router>
        <div>
          <Route path="/lobby" component={Lobby} />
        </div>
      </Router>
    );
  }
}

lobby.js

Header.js

Last updated

Was this helpful?