文字列値を定義するには、reactjsにローカリゼーションを実装する必要があります。どうすれば実装できますか?
1つのリンクがあります https://www.npmjs.com/package/react-localization ですが、それを追加するための正しい手順を取得できません。
私は次の手順で試しました:
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"
}
});
今、あなたが上記を見るならば:-{strings.how}ローカリゼーションで定義されているので、文字列値を取得できるはずですが、私はできませんそれを行うには。
Yahooは、ローカリゼーションを実装するためのパッケージをReactで探しています: https://github.com/yahoo/react-intl に作成しました。 「複数形化と翻訳の処理を含む日付、数字、文字列」を処理します。
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});
として初期化できます