mirror of
https://github.com/ascribe/onion.git
synced 2024-12-23 01:39:36 +01:00
[WIP] adding localisation support for French
This commit is contained in:
parent
ce5b9231af
commit
3eedda7724
@ -54,7 +54,7 @@ let AccordionListItem = React.createClass({
|
|||||||
<div>
|
<div>
|
||||||
<span>{this.props.content.date_created.split('-')[0]}</span>
|
<span>{this.props.content.date_created.split('-')[0]}</span>
|
||||||
<a href={this.props.content.license_type.url} target="_blank" className="pull-right">
|
<a href={this.props.content.license_type.url} target="_blank" className="pull-right">
|
||||||
{this.props.content.license_type.code} license
|
{getLangText('%s license', this.props.content.license_type.code)}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -6,8 +6,10 @@ import ReactAddons from 'react/addons';
|
|||||||
import Button from 'react-bootstrap/lib/Button';
|
import Button from 'react-bootstrap/lib/Button';
|
||||||
|
|
||||||
import requests from '../../utils/requests';
|
import requests from '../../utils/requests';
|
||||||
|
import { getLangText } from '../../utils/lang_utils';
|
||||||
import AlertDismissable from './alert';
|
import AlertDismissable from './alert';
|
||||||
|
|
||||||
|
|
||||||
let Form = React.createClass({
|
let Form = React.createClass({
|
||||||
propTypes: {
|
propTypes: {
|
||||||
url: React.PropTypes.string,
|
url: React.PropTypes.string,
|
||||||
@ -85,7 +87,7 @@ let Form = React.createClass({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
this.setState({errors: ['Something went wrong, please try again later']});
|
this.setState({errors: [getLangText('Something went wrong, please try again later')]});
|
||||||
}
|
}
|
||||||
this.setState({submitted: false});
|
this.setState({submitted: false});
|
||||||
},
|
},
|
||||||
|
@ -11,6 +11,7 @@ import Property from './ascribe_forms/property';
|
|||||||
import InputTextAreaToggable from './ascribe_forms/input_textarea_toggable';
|
import InputTextAreaToggable from './ascribe_forms/input_textarea_toggable';
|
||||||
|
|
||||||
import apiUrls from '../constants/api_urls';
|
import apiUrls from '../constants/api_urls';
|
||||||
|
import { getLangText } from '../utils/lang_utils';
|
||||||
|
|
||||||
|
|
||||||
let CoaVerifyContainer = React.createClass({
|
let CoaVerifyContainer = React.createClass({
|
||||||
|
@ -95,8 +95,8 @@ let Header = React.createClass({
|
|||||||
collection = <NavItemLink to="pieces">COLLECTION</NavItemLink>;
|
collection = <NavItemLink to="pieces">COLLECTION</NavItemLink>;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
account = <NavItemLink to="login">LOGIN</NavItemLink>;
|
account = <NavItemLink to="login">{getLangText('LOGIN')}</NavItemLink>;
|
||||||
signup = <NavItemLink to="signup">SIGNUP</NavItemLink>;
|
signup = <NavItemLink to="signup">{getLangText('SIGNUP')}</NavItemLink>;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -15,6 +15,8 @@ import Property from './ascribe_forms/property';
|
|||||||
import apiUrls from '../constants/api_urls';
|
import apiUrls from '../constants/api_urls';
|
||||||
import AppConstants from '../constants/application_constants';
|
import AppConstants from '../constants/application_constants';
|
||||||
|
|
||||||
|
import { getLangText } from '../utils/lang_utils';
|
||||||
|
|
||||||
let Link = Router.Link;
|
let Link = Router.Link;
|
||||||
|
|
||||||
let LoginContainer = React.createClass({
|
let LoginContainer = React.createClass({
|
||||||
@ -28,7 +30,7 @@ let LoginContainer = React.createClass({
|
|||||||
|
|
||||||
getDefaultProps() {
|
getDefaultProps() {
|
||||||
return {
|
return {
|
||||||
message: 'Log in to ascribe...',
|
message: getLangText('Log in to') + ' ascribe ...'
|
||||||
redirectOnLoggedIn: true,
|
redirectOnLoggedIn: true,
|
||||||
redirectOnLoginSuccess: true
|
redirectOnLoginSuccess: true
|
||||||
};
|
};
|
||||||
@ -107,7 +109,7 @@ let LoginForm = React.createClass({
|
|||||||
<button
|
<button
|
||||||
type="submit"
|
type="submit"
|
||||||
className="btn ascribe-btn ascribe-btn-login">
|
className="btn ascribe-btn ascribe-btn-login">
|
||||||
Log in to ascribe
|
{getLangText('Log in to')} ascribe
|
||||||
</button>}
|
</button>}
|
||||||
spinner={
|
spinner={
|
||||||
<button className="btn ascribe-btn ascribe-btn-login ascribe-btn-login-spinner">
|
<button className="btn ascribe-btn ascribe-btn-login ascribe-btn-login-spinner">
|
||||||
@ -116,28 +118,28 @@ let LoginForm = React.createClass({
|
|||||||
}>
|
}>
|
||||||
<Property
|
<Property
|
||||||
name='email'
|
name='email'
|
||||||
label="Email">
|
label={getLangText('Email')}>
|
||||||
<input
|
<input
|
||||||
type="email"
|
type="email"
|
||||||
placeholder="Enter your email"
|
placeholder={getLangText('Enter your email')}
|
||||||
autoComplete="on"
|
autoComplete="on"
|
||||||
name="username"
|
name="username"
|
||||||
required/>
|
required/>
|
||||||
</Property>
|
</Property>
|
||||||
<Property
|
<Property
|
||||||
name='password'
|
name='password'
|
||||||
label="Password">
|
label={getLangText('Password')}>
|
||||||
<input
|
<input
|
||||||
type="password"
|
type="password"
|
||||||
placeholder="Enter your password"
|
placeholder={getLangText('Enter your password')}
|
||||||
autoComplete="on"
|
autoComplete="on"
|
||||||
name="password"
|
name="password"
|
||||||
required/>
|
required/>
|
||||||
</Property>
|
</Property>
|
||||||
<hr />
|
<hr />
|
||||||
<div className="ascribe-login-text">
|
<div className="ascribe-login-text">
|
||||||
Not an ascribe user? <Link to="signup">Sign up...</Link><br/>
|
{getLangText('Not an ascribe user')}? <Link to="signup">{getLangText('Sign up')}...</Link><br/>
|
||||||
Forgot my password? <Link to="password_reset">Rescue me...</Link>
|
{getLangText('Forgot my password')}? <Link to="password_reset">{getLangText('Rescue me')}...</Link>
|
||||||
</div>
|
</div>
|
||||||
</Form>
|
</Form>
|
||||||
);
|
);
|
||||||
@ -145,4 +147,4 @@ let LoginForm = React.createClass({
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
export default LoginContainer;
|
export default LoginContainer;
|
||||||
|
@ -10,6 +10,8 @@ import apiUrls from '../constants/api_urls';
|
|||||||
|
|
||||||
import GlobalNotificationModel from '../models/global_notification_model';
|
import GlobalNotificationModel from '../models/global_notification_model';
|
||||||
import GlobalNotificationActions from '../actions/global_notification_actions';
|
import GlobalNotificationActions from '../actions/global_notification_actions';
|
||||||
|
import { getLangText } from '../utils/lang_utils';
|
||||||
|
|
||||||
|
|
||||||
let PasswordResetContainer = React.createClass({
|
let PasswordResetContainer = React.createClass({
|
||||||
mixins: [Router.Navigation],
|
mixins: [Router.Navigation],
|
||||||
@ -24,7 +26,7 @@ let PasswordResetContainer = React.createClass({
|
|||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<div className="ascribe-login-text ascribe-login-header">
|
<div className="ascribe-login-text ascribe-login-header">
|
||||||
Reset the password for {this.props.query.email}
|
{getLangText('Reset the password for')} {this.props.query.email}
|
||||||
</div>
|
</div>
|
||||||
<PasswordResetForm
|
<PasswordResetForm
|
||||||
email={this.props.query.email}
|
email={this.props.query.email}
|
||||||
@ -37,7 +39,7 @@ let PasswordResetContainer = React.createClass({
|
|||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<div className="ascribe-login-text ascribe-login-header">
|
<div className="ascribe-login-text ascribe-login-header">
|
||||||
Reset your ascribe password
|
{getLangText('Reset your ascribe password')}
|
||||||
</div>
|
</div>
|
||||||
<PasswordRequestResetForm
|
<PasswordRequestResetForm
|
||||||
handleRequestSuccess={this.handleRequestSuccess}/>
|
handleRequestSuccess={this.handleRequestSuccess}/>
|
||||||
@ -48,7 +50,7 @@ let PasswordResetContainer = React.createClass({
|
|||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<div className="ascribe-login-text ascribe-login-header">
|
<div className="ascribe-login-text ascribe-login-header">
|
||||||
An email has been sent to "{this.state.isRequested}"
|
{getLangText('An email has been sent to')} "{this.state.isRequested}"
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
@ -62,7 +64,7 @@ let PasswordResetContainer = React.createClass({
|
|||||||
|
|
||||||
let PasswordRequestResetForm = React.createClass({
|
let PasswordRequestResetForm = React.createClass({
|
||||||
handleSuccess() {
|
handleSuccess() {
|
||||||
let notificationText = 'Request succesfully sent, check your email';
|
let notificationText = getLangText('Request successfully sent, check your email');
|
||||||
let notification = new GlobalNotificationModel(notificationText, 'success', 50000);
|
let notification = new GlobalNotificationModel(notificationText, 'success', 50000);
|
||||||
GlobalNotificationActions.appendGlobalNotification(notification);
|
GlobalNotificationActions.appendGlobalNotification(notification);
|
||||||
this.props.handleRequestSuccess(this.refs.form.refs.email.state.value);
|
this.props.handleRequestSuccess(this.refs.form.refs.email.state.value);
|
||||||
@ -77,7 +79,7 @@ let PasswordRequestResetForm = React.createClass({
|
|||||||
<button
|
<button
|
||||||
type="submit"
|
type="submit"
|
||||||
className="btn ascribe-btn ascribe-btn-login">
|
className="btn ascribe-btn ascribe-btn-login">
|
||||||
Reset your password
|
{getLangText('Reset your password')}
|
||||||
</button>}
|
</button>}
|
||||||
spinner={
|
spinner={
|
||||||
<button className="btn ascribe-btn ascribe-btn-login ascribe-btn-login-spinner">
|
<button className="btn ascribe-btn ascribe-btn-login ascribe-btn-login-spinner">
|
||||||
@ -86,10 +88,10 @@ let PasswordRequestResetForm = React.createClass({
|
|||||||
}>
|
}>
|
||||||
<Property
|
<Property
|
||||||
name='email'
|
name='email'
|
||||||
label="Email">
|
label={getLangText('Email')}>
|
||||||
<input
|
<input
|
||||||
type="email"
|
type="email"
|
||||||
placeholder="Enter your email and we'll send a link"
|
placeholder={getLangText("Enter your email and we'll send a link")}
|
||||||
name="email"
|
name="email"
|
||||||
required/>
|
required/>
|
||||||
</Property>
|
</Property>
|
||||||
@ -113,7 +115,7 @@ let PasswordResetForm = React.createClass({
|
|||||||
},
|
},
|
||||||
handleSuccess() {
|
handleSuccess() {
|
||||||
this.transitionTo('pieces');
|
this.transitionTo('pieces');
|
||||||
let notification = new GlobalNotificationModel('password succesfully updated', 'success', 10000);
|
let notification = new GlobalNotificationModel(getLangText('password successfully updated'), 'success', 10000);
|
||||||
GlobalNotificationActions.appendGlobalNotification(notification);
|
GlobalNotificationActions.appendGlobalNotification(notification);
|
||||||
},
|
},
|
||||||
render() {
|
render() {
|
||||||
@ -127,7 +129,7 @@ let PasswordResetForm = React.createClass({
|
|||||||
<button
|
<button
|
||||||
type="submit"
|
type="submit"
|
||||||
className="btn ascribe-btn ascribe-btn-login">
|
className="btn ascribe-btn ascribe-btn-login">
|
||||||
Reset your password
|
{getLangText('Reset your password')}
|
||||||
</button>}
|
</button>}
|
||||||
spinner={
|
spinner={
|
||||||
<button className="btn ascribe-btn ascribe-btn-login ascribe-btn-login-spinner">
|
<button className="btn ascribe-btn ascribe-btn-login ascribe-btn-login-spinner">
|
||||||
@ -136,19 +138,19 @@ let PasswordResetForm = React.createClass({
|
|||||||
}>
|
}>
|
||||||
<Property
|
<Property
|
||||||
name='password'
|
name='password'
|
||||||
label="Password">
|
label={getLangText('Password')}>
|
||||||
<input
|
<input
|
||||||
type="password"
|
type="password"
|
||||||
placeholder="Enter a new password"
|
placeholder={getLangText('Enter a new password')}
|
||||||
name="password"
|
name="password"
|
||||||
required/>
|
required/>
|
||||||
</Property>
|
</Property>
|
||||||
<Property
|
<Property
|
||||||
name='password_confirm'
|
name='password_confirm'
|
||||||
label="Confirm password">
|
label={getLangText('Confirm password')}>
|
||||||
<input
|
<input
|
||||||
type="password"
|
type="password"
|
||||||
placeholder="Enter your password once again"
|
placeholder={getLangText('Enter your password once again')}
|
||||||
name="password"
|
name="password"
|
||||||
required/>
|
required/>
|
||||||
</Property>
|
</Property>
|
||||||
|
@ -23,6 +23,7 @@ import Property from './ascribe_forms/property';
|
|||||||
|
|
||||||
import apiUrls from '../constants/api_urls';
|
import apiUrls from '../constants/api_urls';
|
||||||
import AppConstants from '../constants/application_constants';
|
import AppConstants from '../constants/application_constants';
|
||||||
|
import { getLangText } from '../utils/lang_utils';
|
||||||
|
|
||||||
import { getCookie } from '../utils/fetch_api_utils';
|
import { getCookie } from '../utils/fetch_api_utils';
|
||||||
|
|
||||||
@ -64,7 +65,7 @@ let AccountSettings = React.createClass({
|
|||||||
|
|
||||||
handleSuccess(){
|
handleSuccess(){
|
||||||
UserActions.fetchCurrentUser();
|
UserActions.fetchCurrentUser();
|
||||||
let notification = new GlobalNotificationModel('username succesfully updated', 'success', 5000);
|
let notification = new GlobalNotificationModel(getLangText('username succesfully updated'), 'success', 5000);
|
||||||
GlobalNotificationActions.appendGlobalNotification(notification);
|
GlobalNotificationActions.appendGlobalNotification(notification);
|
||||||
},
|
},
|
||||||
render() {
|
render() {
|
||||||
@ -76,21 +77,21 @@ let AccountSettings = React.createClass({
|
|||||||
handleSuccess={this.handleSuccess}>
|
handleSuccess={this.handleSuccess}>
|
||||||
<Property
|
<Property
|
||||||
name='username'
|
name='username'
|
||||||
label="Username">
|
label={getLangText('Username')}>
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
defaultValue={this.state.currentUser.username}
|
defaultValue={this.state.currentUser.username}
|
||||||
placeholder="Enter your username"
|
placeholder={getLangText('Enter your username')}
|
||||||
required/>
|
required/>
|
||||||
</Property>
|
</Property>
|
||||||
<Property
|
<Property
|
||||||
name='email'
|
name='email'
|
||||||
label="Email"
|
label={getLangText('Email')}
|
||||||
editable={false}>
|
editable={false}>
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
defaultValue={this.state.currentUser.email}
|
defaultValue={this.state.currentUser.email}
|
||||||
placeholder="Enter your username"
|
placeholder={getLangText('Enter your username')}
|
||||||
required/>
|
required/>
|
||||||
</Property>
|
</Property>
|
||||||
<hr />
|
<hr />
|
||||||
@ -99,7 +100,7 @@ let AccountSettings = React.createClass({
|
|||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
<CollapsibleParagraph
|
<CollapsibleParagraph
|
||||||
title="Account"
|
title={getLangText('Account')}
|
||||||
show={true}
|
show={true}
|
||||||
defaultExpanded={true}>
|
defaultExpanded={true}>
|
||||||
{content}
|
{content}
|
||||||
@ -107,7 +108,7 @@ let AccountSettings = React.createClass({
|
|||||||
url={AppConstants.serverUrl + 'api/users/set_language/'}>
|
url={AppConstants.serverUrl + 'api/users/set_language/'}>
|
||||||
<Property
|
<Property
|
||||||
name='language'
|
name='language'
|
||||||
label="Choose your Language"
|
label={getLangText('Choose your Language')}
|
||||||
editable={true}>
|
editable={true}>
|
||||||
<select id="select-lang" name="language">
|
<select id="select-lang" name="language">
|
||||||
<option value="fr">
|
<option value="fr">
|
||||||
@ -154,13 +155,13 @@ let BitcoinWalletSettings = React.createClass({
|
|||||||
<Form >
|
<Form >
|
||||||
<Property
|
<Property
|
||||||
name='btc_public_key'
|
name='btc_public_key'
|
||||||
label="Bitcoin public key"
|
label={getLangText('Bitcoin public key')}
|
||||||
editable={false}>
|
editable={false}>
|
||||||
<pre className="ascribe-pre">{this.state.walletSettings.btc_public_key}</pre>
|
<pre className="ascribe-pre">{this.state.walletSettings.btc_public_key}</pre>
|
||||||
</Property>
|
</Property>
|
||||||
<Property
|
<Property
|
||||||
name='btc_root_address'
|
name='btc_root_address'
|
||||||
label="Root Address"
|
label={getLangText('Root Address')}
|
||||||
editable={false}>
|
editable={false}>
|
||||||
<pre className="ascribe-pre">{this.state.walletSettings.btc_root_address}</pre>
|
<pre className="ascribe-pre">{this.state.walletSettings.btc_root_address}</pre>
|
||||||
</Property>
|
</Property>
|
||||||
@ -169,7 +170,7 @@ let BitcoinWalletSettings = React.createClass({
|
|||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
<CollapsibleParagraph
|
<CollapsibleParagraph
|
||||||
title="Crypto Wallet"
|
title={getLangText('Crypto Wallet')}
|
||||||
show={true}
|
show={true}
|
||||||
defaultExpanded={true}>
|
defaultExpanded={true}>
|
||||||
{content}
|
{content}
|
||||||
@ -266,14 +267,14 @@ let APISettings = React.createClass({
|
|||||||
},
|
},
|
||||||
handleCreateSuccess: function(){
|
handleCreateSuccess: function(){
|
||||||
ApplicationActions.fetchApplication();
|
ApplicationActions.fetchApplication();
|
||||||
let notification = new GlobalNotificationModel('Application successfully created', 'success', 5000);
|
let notification = new GlobalNotificationModel(getLangText('Application successfully created'), 'success', 5000);
|
||||||
GlobalNotificationActions.appendGlobalNotification(notification);
|
GlobalNotificationActions.appendGlobalNotification(notification);
|
||||||
},
|
},
|
||||||
|
|
||||||
handleTokenRefresh: function(event){
|
handleTokenRefresh: function(event){
|
||||||
let applicationName = event.target.getAttribute('data-id');
|
let applicationName = event.target.getAttribute('data-id');
|
||||||
ApplicationActions.refreshApplicationToken(applicationName);
|
ApplicationActions.refreshApplicationToken(applicationName);
|
||||||
let notification = new GlobalNotificationModel('Token refreshed', 'success', 2000);
|
let notification = new GlobalNotificationModel(getLangText('Token refreshed'), 'success', 2000);
|
||||||
GlobalNotificationActions.appendGlobalNotification(notification);
|
GlobalNotificationActions.appendGlobalNotification(notification);
|
||||||
},
|
},
|
||||||
render() {
|
render() {
|
||||||
@ -293,7 +294,7 @@ let APISettings = React.createClass({
|
|||||||
className="pull-right btn btn-default btn-sm"
|
className="pull-right btn btn-default btn-sm"
|
||||||
onClick={this.handleTokenRefresh}
|
onClick={this.handleTokenRefresh}
|
||||||
data-id={app.name}>
|
data-id={app.name}>
|
||||||
REFRESH
|
{getLangText('REFRESH')}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -309,7 +310,7 @@ let APISettings = React.createClass({
|
|||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
<CollapsibleParagraph
|
<CollapsibleParagraph
|
||||||
title="API Integration"
|
title={getLangText('API Integration')}
|
||||||
show={true}
|
show={true}
|
||||||
defaultExpanded={true}>
|
defaultExpanded={true}>
|
||||||
<Form
|
<Form
|
||||||
@ -317,10 +318,10 @@ let APISettings = React.createClass({
|
|||||||
handleSuccess={this.handleCreateSuccess}>
|
handleSuccess={this.handleCreateSuccess}>
|
||||||
<Property
|
<Property
|
||||||
name='name'
|
name='name'
|
||||||
label='Application Name'>
|
label={getLangText('Application Name')}>
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
placeholder="Enter the name of your app"
|
placeholder={getLangText('Enter the name of your app')}
|
||||||
required/>
|
required/>
|
||||||
</Property>
|
</Property>
|
||||||
<hr />
|
<hr />
|
||||||
|
@ -4,6 +4,7 @@ import React from 'react';
|
|||||||
import Router from 'react-router';
|
import Router from 'react-router';
|
||||||
|
|
||||||
import { mergeOptions } from '../utils/general_utils';
|
import { mergeOptions } from '../utils/general_utils';
|
||||||
|
import { getLangText } from '../utils/lang_utils';
|
||||||
|
|
||||||
import UserStore from '../stores/user_store';
|
import UserStore from '../stores/user_store';
|
||||||
|
|
||||||
@ -66,7 +67,7 @@ let SignupContainer = React.createClass({
|
|||||||
<div className="ascribe-login-wrapper">
|
<div className="ascribe-login-wrapper">
|
||||||
<br/>
|
<br/>
|
||||||
<div className="ascribe-login-text ascribe-login-header">
|
<div className="ascribe-login-text ascribe-login-header">
|
||||||
Welcome to ascribe...
|
{getLangText('Welcome to')} ascribe...
|
||||||
</div>
|
</div>
|
||||||
<SignupForm handleSuccess={this.handleSuccess}/>
|
<SignupForm handleSuccess={this.handleSuccess}/>
|
||||||
</div>
|
</div>
|
||||||
@ -80,16 +81,17 @@ let SignupForm = React.createClass({
|
|||||||
|
|
||||||
handleSuccess(response){
|
handleSuccess(response){
|
||||||
|
|
||||||
let notificationText = 'Sign up successful';
|
let notificationText = getLangText('Sign up successful');
|
||||||
let notification = new GlobalNotificationModel(notificationText, 'success', 50000);
|
let notification = new GlobalNotificationModel(notificationText, 'success', 50000);
|
||||||
GlobalNotificationActions.appendGlobalNotification(notification);
|
GlobalNotificationActions.appendGlobalNotification(notification);
|
||||||
this.props.handleSuccess('We sent an email to your address ' + response.user.email + ', please confirm.');
|
this.props.handleSuccess(getLangText('We sent an email to your address') + ' ' + response.user.email +
|
||||||
|
', ' + getLangText('please confirm') + '.');
|
||||||
|
|
||||||
},
|
},
|
||||||
render() {
|
render() {
|
||||||
let tooltipPassword = 'Your password must be at least 10 characters.\n ' +
|
let tooltipPassword = getLangText('Your password must be at least 10 characters') + '.\n ' +
|
||||||
'This password is securing your digital property like a bank account.\n ' +
|
getLangText('This password is securing your digital property like a bank account') + '.\n ' +
|
||||||
'Store it in a safe place!';
|
getLangText('Store it in a safe place') + '!';
|
||||||
return (
|
return (
|
||||||
<Form
|
<Form
|
||||||
ref='form'
|
ref='form'
|
||||||
@ -97,7 +99,7 @@ let SignupForm = React.createClass({
|
|||||||
handleSuccess={this.handleSuccess}
|
handleSuccess={this.handleSuccess}
|
||||||
buttons={
|
buttons={
|
||||||
<button type="submit" className="btn ascribe-btn ascribe-btn-login">
|
<button type="submit" className="btn ascribe-btn ascribe-btn-login">
|
||||||
Sign up to ascribe
|
{getLangText('Sign up to ascribe')}
|
||||||
</button>}
|
</button>}
|
||||||
spinner={
|
spinner={
|
||||||
<button className="btn ascribe-btn ascribe-btn-login ascribe-btn-login-spinner">
|
<button className="btn ascribe-btn ascribe-btn-login ascribe-btn-login-spinner">
|
||||||
@ -106,39 +108,39 @@ let SignupForm = React.createClass({
|
|||||||
}>
|
}>
|
||||||
<Property
|
<Property
|
||||||
name='email'
|
name='email'
|
||||||
label="Email">
|
label={getLangText('Email')}>
|
||||||
<input
|
<input
|
||||||
type="email"
|
type="email"
|
||||||
placeholder="Enter your email"
|
placeholder={getLangText('Enter your email')}
|
||||||
autoComplete="on"
|
autoComplete="on"
|
||||||
required/>
|
required/>
|
||||||
</Property>
|
</Property>
|
||||||
<Property
|
<Property
|
||||||
name='password'
|
name='password'
|
||||||
label="Password"
|
label={getLangText('Password')}
|
||||||
tooltip={tooltipPassword}>
|
tooltip={tooltipPassword}>
|
||||||
<input
|
<input
|
||||||
type="password"
|
type="password"
|
||||||
placeholder="Enter your password"
|
placeholder={getLangText('Enter your password')}
|
||||||
autoComplete="on"
|
autoComplete="on"
|
||||||
required/>
|
required/>
|
||||||
</Property>
|
</Property>
|
||||||
<Property
|
<Property
|
||||||
name='password_confirm'
|
name='password_confirm'
|
||||||
label="Confirm Password"
|
label={getLangText('Confirm Password')}
|
||||||
tooltip={tooltipPassword}>
|
tooltip={tooltipPassword}>
|
||||||
<input
|
<input
|
||||||
type="password"
|
type="password"
|
||||||
placeholder="Enter your password once again"
|
placeholder={getLangText('Enter your password once again')}
|
||||||
autoComplete="on"
|
autoComplete="on"
|
||||||
required/>
|
required/>
|
||||||
</Property>
|
</Property>
|
||||||
<Property
|
<Property
|
||||||
name='promo_code'
|
name='promo_code'
|
||||||
label="Promocode">
|
label={getLangText('Promocode')}>
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
placeholder="Enter a promocode here (Optional)"/>
|
placeholder={getLangText('Enter a promocode here (Optional)')}/>
|
||||||
</Property>
|
</Property>
|
||||||
<hr />
|
<hr />
|
||||||
<InputCheckbox
|
<InputCheckbox
|
||||||
@ -146,8 +148,8 @@ let SignupForm = React.createClass({
|
|||||||
required="required"
|
required="required"
|
||||||
label={
|
label={
|
||||||
<div>
|
<div>
|
||||||
I agree to the
|
{getLangText('I agree to the')}
|
||||||
<a href="/terms" target="_blank"> Terms of Service</a>
|
<a href="/terms" target="_blank"> {getLangText('Terms of Service')}</a>
|
||||||
</div>}/>
|
</div>}/>
|
||||||
</Form>
|
</Form>
|
||||||
);
|
);
|
||||||
|
@ -13,7 +13,55 @@ const languages = {
|
|||||||
'Terms of Service': 'Terms of Service',
|
'Terms of Service': 'Terms of Service',
|
||||||
'Log out': 'Log out',
|
'Log out': 'Log out',
|
||||||
'Previous': 'Previous',
|
'Previous': 'Previous',
|
||||||
'Next': 'Next'
|
'Next': 'Next',
|
||||||
|
'%s license': '%s license',
|
||||||
|
'Log in to': 'Log in to',
|
||||||
|
'Email': 'Email',
|
||||||
|
'Enter your email': 'Enter your email',
|
||||||
|
'Password': 'Password',
|
||||||
|
'Enter your password': 'Enter your password',
|
||||||
|
'Not an ascribe user': 'Not an ascribe user',
|
||||||
|
'Sign up': 'Sign up',
|
||||||
|
'Forgot my password': 'Forgot my password',
|
||||||
|
'Rescue me': 'Rescue me',
|
||||||
|
'LOGIN': 'LOGIN',
|
||||||
|
'SIGNUP': 'SIGNUP',
|
||||||
|
'Welcome to': 'Welcome to',
|
||||||
|
'Sign up to ascribe': 'Sign up to ascribe',
|
||||||
|
'Enter your password once again': 'Enter your password once again',
|
||||||
|
'Enter a promocode here (Optional)': 'Enter a promocode here (Optional)',
|
||||||
|
'I agree to the': 'I agree to the',
|
||||||
|
'Confirm Password': 'Confirm Password',
|
||||||
|
'Promocode': 'Promocode',
|
||||||
|
'Sign up successful': 'Sign up successful',
|
||||||
|
'We sent an email to your address': 'We sent an email to your address',
|
||||||
|
'please confirm': 'please confirm',
|
||||||
|
'Your password must be at least 10 characters': 'Your password must be at least 10 characters',
|
||||||
|
'This password is securing your digital property like a bank account': 'This password is securing your digital property like a bank account',
|
||||||
|
'Store it in a safe place': 'Store it in a safe place',
|
||||||
|
'Reset the password for': 'Reset the password for',
|
||||||
|
'Reset your ascribe password': 'Reset your ascribe password',
|
||||||
|
'An email has been sent to': 'An email has been sent to',
|
||||||
|
'Request successfully sent, check your email': 'Request successfully sent, check your email',
|
||||||
|
'Reset your password': 'Reset your password',
|
||||||
|
'Enter your email and we\'ll send a link': 'Enter your email and we\'ll send a link',
|
||||||
|
'password successfully updated': 'password successfully updated',
|
||||||
|
'Enter a new password': 'Enter a new password',
|
||||||
|
'Something went wrong, please try again later': 'Something went wrong, please try again later',
|
||||||
|
'username succesfully updated': 'username succesfully updated',
|
||||||
|
'Username': 'Username',
|
||||||
|
'Enter your username': 'Enter your username',
|
||||||
|
'Choose your Language': 'Choose your Language',
|
||||||
|
'Bitcoin public key': 'Bitcoin public key',
|
||||||
|
'Root Address': 'Root Address',
|
||||||
|
'Crypto Wallet': 'Crypto Wallet',
|
||||||
|
'Application successfully created': 'Application successfully created',
|
||||||
|
'Token refreshed': 'Token refreshed',
|
||||||
|
'REFRESH': 'REFRESH',
|
||||||
|
'API Integration': 'API Integration',
|
||||||
|
'Application Name': 'Application Name',
|
||||||
|
'Enter the name of your app': 'Enter the name of your app',
|
||||||
|
'Account': 'Account'
|
||||||
},
|
},
|
||||||
'de': {
|
'de': {
|
||||||
'ID': 'ID',
|
'ID': 'ID',
|
||||||
@ -27,7 +75,117 @@ const languages = {
|
|||||||
'Terms of Service': 'AGB',
|
'Terms of Service': 'AGB',
|
||||||
'Log out': 'Log out',
|
'Log out': 'Log out',
|
||||||
'Previous': 'Zurück',
|
'Previous': 'Zurück',
|
||||||
'Next': 'Weiter'
|
'Next': 'Weiter',
|
||||||
|
'%s license': '%s license',
|
||||||
|
'Log in to': 'Log in to',
|
||||||
|
'Email': 'Email',
|
||||||
|
'Enter your email': 'Enter your email',
|
||||||
|
'Password': 'Password',
|
||||||
|
'Enter your password': 'Enter your password',
|
||||||
|
'Not an ascribe user': 'Not an ascribe user',
|
||||||
|
'Sign up': 'Sign up',
|
||||||
|
'Forgot my password': 'Forgot my password',
|
||||||
|
'Rescue me': 'Rescue me',
|
||||||
|
'LOGIN': 'LOGIN',
|
||||||
|
'SIGNUP': 'SIGNUP',
|
||||||
|
'Welcome to': 'Welcome to',
|
||||||
|
'Sign up to ascribe': 'Sign up to ascribe',
|
||||||
|
'Enter your password once again': 'Enter your password once again',
|
||||||
|
'Enter a promocode here (Optional)': 'Enter a promocode here (Optional)',
|
||||||
|
'I agree to the': 'I agree to the',
|
||||||
|
'Confirm Password': 'Confirm Password',
|
||||||
|
'Promocode': 'Promocode',
|
||||||
|
'Sign up successful': 'Sign up successful',
|
||||||
|
'We sent an email to your address': 'We sent an email to your address',
|
||||||
|
'please confirm': 'please confirm',
|
||||||
|
'Your password must be at least 10 characters': 'Your password must be at least 10 characters',
|
||||||
|
'This password is securing your digital property like a bank account': 'This password is securing your digital property like a bank account',
|
||||||
|
'Store it in a safe place': 'Store it in a safe place',
|
||||||
|
'Reset the password for': 'Reset the password for',
|
||||||
|
'Reset your ascribe password': 'Reset your ascribe password',
|
||||||
|
'An email has been sent to': 'An email has been sent to',
|
||||||
|
'Request successfully sent, check your email': 'Request successfully sent, check your email',
|
||||||
|
'Reset your password': 'Reset your password',
|
||||||
|
'Enter your email and we\'ll send a link': 'Enter your email and we\'ll send a link',
|
||||||
|
'password successfully updated': 'password successfully updated',
|
||||||
|
'Enter a new password': 'Enter a new password',
|
||||||
|
'Something went wrong, please try again later': 'Something went wrong, please try again later',
|
||||||
|
'username succesfully updated': 'username succesfully updated',
|
||||||
|
'Username': 'Username',
|
||||||
|
'Enter your username': 'Enter your username',
|
||||||
|
'Choose your Language': 'Choose your Language',
|
||||||
|
'Bitcoin public key': 'Bitcoin public key',
|
||||||
|
'Root Address': 'Root Address',
|
||||||
|
'Crypto Wallet': 'Crypto Wallet',
|
||||||
|
'Application successfully created': 'Application successfully created',
|
||||||
|
'Token refreshed': 'Token refreshed',
|
||||||
|
'REFRESH': 'REFRESH',
|
||||||
|
'API Integration': 'API Integration',
|
||||||
|
'Application Name': 'Application Name',
|
||||||
|
'Enter the name of your app': 'Enter the name of your app',
|
||||||
|
'Account': 'Account'
|
||||||
|
},
|
||||||
|
'fr': {
|
||||||
|
'ID': 'ID',
|
||||||
|
'Actions': 'Actions',
|
||||||
|
'Hide': 'Cacher',
|
||||||
|
'Show the edition': 'Montrer l\'Édition',
|
||||||
|
'Show all %d Editions': 'Montrer toutes les Éditions',
|
||||||
|
'by %s': 'by %s',
|
||||||
|
'Account Settings': 'Paramètres du compte',
|
||||||
|
'FAQ': 'FAQ',
|
||||||
|
'Terms of Service': 'Conditions d\'Utilisations',
|
||||||
|
'Log out': 'Quitter',
|
||||||
|
'Previous': 'Précédent',
|
||||||
|
'Next': 'Suivant',
|
||||||
|
'%s license': '%s license',
|
||||||
|
'Log in to': 'Se connecter à',
|
||||||
|
'Email': 'E-mail',
|
||||||
|
'Enter your email': 'Entrez votre e-mail',
|
||||||
|
'Password': 'Mot de passe',
|
||||||
|
'Enter your password': 'Entrez votre mot de passe',
|
||||||
|
'Not an ascribe user': 'Pas un utilisateur d\'ascribe',
|
||||||
|
'Sign up': 'Créer un compte',
|
||||||
|
'Forgot my password': 'J\'ai oublié mon mot de passe',
|
||||||
|
'Rescue me': 'Sauve-moi',
|
||||||
|
'LOGIN': 'SE CONNECTER',
|
||||||
|
'SIGNUP': 'CRÉER UN COMPTE',
|
||||||
|
'Welcome to': 'Bienvenue chez',
|
||||||
|
'Sign up to ascribe': 'S\'inscrire à ascribe',
|
||||||
|
'Enter your password once again': 'Entrez votre mot de passe une fois de plus',
|
||||||
|
'Enter a promocode here (Optional)': 'Entrez un code promotionnel ici (Facultatif)',
|
||||||
|
'I agree to the': 'Je suis d\'accrod avec les',
|
||||||
|
'Confirm Password': 'Confirmez le mot de passe',
|
||||||
|
'Promocode': 'Code promotionnel',
|
||||||
|
'Sign up successful': 'Inscription réussie',
|
||||||
|
'We sent an email to your address': 'Nous avons envoyé un e-mail à votre adresse',
|
||||||
|
'please confirm': 'veuillez confirmer',
|
||||||
|
'Your password must be at least 10 characters': 'Votre mot de passe doit être composé d\'au moins 10 caractères',
|
||||||
|
'This password is securing your digital property like a bank account': 'Ce mot de passe sécurise votre propriété numérique tel un compte bancaire',
|
||||||
|
'Store it in a safe place': 'Conservez-le dans un endroit sécuritaire',
|
||||||
|
'Reset the password for': 'Réinitialiser le mot de passe pour',
|
||||||
|
'Reset your ascribe password': 'Réinitialiser votre mot de passe ascribe',
|
||||||
|
'An email has been sent to': 'Un e-mail a été envoyé à',
|
||||||
|
'Request successfully sent, check your email': 'Requête envoyée avec succès, veuillez consultez votre courrier électronique',
|
||||||
|
'Reset your password': 'Réinitialiser votre mot de passe',
|
||||||
|
'Enter your email and we\'ll send a link': 'Entrez votre e-mail et nous vous enverrons un lien',
|
||||||
|
'password successfully updated': 'mise à jour du mot de passe réussie',
|
||||||
|
'Enter a new password': 'Entrez un nouveau mot de passe',
|
||||||
|
'Something went wrong, please try again later': 'Quelque chose ne fonctionne pas, veuillez réessayer plus tard',
|
||||||
|
'username succesfully updated': 'nom d\'utilisateur mis à jour avec succès',
|
||||||
|
'Username': 'Nom d\'utilisateur',
|
||||||
|
'Enter your username': 'Entrez votre nom d\'utilisateur',
|
||||||
|
'Choose your Language': 'Choisissez votre langue',
|
||||||
|
'Bitcoin public key': 'Clé publique Bitcoin',
|
||||||
|
'Root Address': 'Adresse Racine',
|
||||||
|
'Crypto Wallet': 'Porte-monnaie Crypto',
|
||||||
|
'Application successfully created': 'Application créée avec succès',
|
||||||
|
'Token refreshed': 'Jeton rafraîchi',
|
||||||
|
'REFRESH': 'RAFRAÎCHIR',
|
||||||
|
'API Integration': 'Intégration de l\'API',
|
||||||
|
'Application Name': 'Nom de l\'Application',
|
||||||
|
'Enter the name of your app': 'Entrez le nom de votre application',
|
||||||
|
'Account': 'Compte'
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user