language switch implementation. Needs more testing

This commit is contained in:
Intnick 2017-05-28 16:09:56 +02:00
parent 469e769e01
commit 13989632a7
8 changed files with 48 additions and 8 deletions

View file

@ -305,5 +305,6 @@
"Your transaction was successfully placed in the queue.": "Your transaction was successfully placed in the queue.", "Your transaction was successfully placed in the queue.": "Your transaction was successfully placed in the queue.",
"Transaction failed": "Transaction failed", "Transaction failed": "Transaction failed",
"Something went wrong": "Something went wrong", "Something went wrong": "Something went wrong",
"Find movies, music, games, and more": "Find movies, music, games, and more" "Find movies, music, games, and more": "Find movies, music, games, and more",
"Wallet": "Wallet"
} }

View file

@ -20,7 +20,7 @@ class App extends React.Component {
lbry.balanceSubscribe((balance) => { lbry.balanceSubscribe((balance) => {
this.props.updateBalance(balance) this.props.updateBalance(balance)
}) })
} }y
render() { render() {
const { const {

View file

@ -13,7 +13,8 @@ import {
import Header from './view' import Header from './view'
const select = (state) => ({ const select = (state) => ({
balance: lbry.formatCredits(selectBalance(state), 1) balance: lbry.formatCredits(selectBalance(state), 1),
publish: __("Publish"),
}) })
const perform = (dispatch) => ({ const perform = (dispatch) => ({

View file

@ -6,7 +6,8 @@ export const Header = (props) => {
const { const {
balance, balance,
back, back,
navigate navigate,
publish,
} = props } = props
return <header id="header"> return <header id="header">
@ -23,7 +24,7 @@ export const Header = (props) => {
<Link onClick={() => navigate('/wallet')} button="text" icon="icon-bank" label={balance} ></Link> <Link onClick={() => navigate('/wallet')} button="text" icon="icon-bank" label={balance} ></Link>
</div> </div>
<div className="header__item"> <div className="header__item">
<Link onClick={() => navigate('/publish')} button="primary button--flat" icon="icon-upload" label={__("Publish")} /> <Link onClick={() => navigate('/publish')} button="primary button--flat" icon="icon-upload" label={publish} />
</div> </div>
<div className="header__item"> <div className="header__item">
<Link onClick={() => navigate('/downloaded')} button="alt button--flat" icon="icon-folder" /> <Link onClick={() => navigate('/downloaded')} button="alt button--flat" icon="icon-folder" />

View file

@ -18,6 +18,7 @@ let lbry = {
useCustomLighthouseServers: false, useCustomLighthouseServers: false,
customLighthouseServers: [], customLighthouseServers: [],
showDeveloperMenu: false, showDeveloperMenu: false,
language: 'en',
} }
}; };

View file

@ -3,9 +3,10 @@ import ReactDOM from 'react-dom';
import lbry from './lbry.js'; import lbry from './lbry.js';
import lbryio from './lbryio.js'; import lbryio from './lbryio.js';
const i18n = require('y18n')({directory: 'app/locales'}); const i18n = require('y18n')({directory: 'app/locales'/*, locale: lbry.getClientSetting('language')*/});
window.__ = i18n.__; window.__ = i18n.__;
window.__n = i18n.__n; window.__n = i18n.__n;
window.i18n = i18n;
import lighthouse from './lighthouse.js'; import lighthouse from './lighthouse.js';
import App from 'component/app/index.js'; import App from 'component/app/index.js';

View file

@ -3,6 +3,7 @@ import {FormField, FormRow} from 'component/form.js';
import SubHeader from 'component/subHeader' import SubHeader from 'component/subHeader'
import lbry from 'lbry.js'; import lbry from 'lbry.js';
class SettingsPage extends React.Component { class SettingsPage extends React.Component {
constructor(props) { constructor(props) {
super(props); super(props);
@ -14,6 +15,7 @@ class SettingsPage extends React.Component {
isMaxDownload: daemonSettings && daemonSettings.max_download != 0, isMaxDownload: daemonSettings && daemonSettings.max_download != 0,
showNsfw: lbry.getClientSetting('showNsfw'), showNsfw: lbry.getClientSetting('showNsfw'),
showUnavailable: lbry.getClientSetting('showUnavailable'), showUnavailable: lbry.getClientSetting('showUnavailable'),
language: lbry.getClientSetting('language'),
} }
} }
@ -68,6 +70,12 @@ class SettingsPage extends React.Component {
lbry.setClientSetting('showNsfw', event.target.checked); lbry.setClientSetting('showNsfw', event.target.checked);
} }
onLanguageChange(language) {
lbry.setClientSetting('language', language);
i18n.setLocale(language);
this.setState({language: language})
}
onShowUnavailableChange(event) { onShowUnavailableChange(event) {
} }
@ -185,6 +193,30 @@ class SettingsPage extends React.Component {
helper={__("NSFW content may include nudity, intense sexuality, profanity, or other adult content. By displaying NSFW content, you are affirming you are of legal age to view mature content in your country or jurisdiction. ")} /> helper={__("NSFW content may include nudity, intense sexuality, profanity, or other adult content. By displaying NSFW content, you are affirming you are of legal age to view mature content in your country or jurisdiction. ")} />
</div> </div>
</section> </section>
<section className="card">
<div className="card__content">
<h3>{__("Language")}</h3>
</div>
<div className="card__content">
<div className="form-row">
<FormField type="radio"
name="language"
label={__("English")}
onChange={() => { this.onLanguageChange('en') }}
defaultChecked={this.state.language=='en'} />
</div>
<div className="form-row">
<FormField type="radio"
name="language"
label="Serbian"
onChange={() => { this.onLanguageChange('rs') }}
defaultChecked={this.state.language=='rs'} />
</div>
</div>
</section>
<section className="card"> <section className="card">
<div className="card__content"> <div className="card__content">
<h3>{__("Share Diagnostic Data")}</h3> <h3>{__("Share Diagnostic Data")}</h3>

View file

@ -47,10 +47,13 @@ export const selectPageTitle = createSelector(
case 'report': case 'report':
return __('Report') return __('Report')
case 'wallet': case 'wallet':
return __("Wallet")
case 'send': case 'send':
return __("Send")
case 'receive': case 'receive':
return __("Receive")
case 'rewards': case 'rewards':
return page.charAt(0).toUpperCase() + page.slice(1) return __("Rewards")
case 'show': case 'show':
return lbryuri.normalize(params.uri) return lbryuri.normalize(params.uri)
case 'downloaded': case 'downloaded':