diff --git a/app/soapbox/features/auth_login/components/login_form.js b/app/soapbox/features/auth_login/components/login_form.js index 3758bb36d..1b669063b 100644 --- a/app/soapbox/features/auth_login/components/login_form.js +++ b/app/soapbox/features/auth_login/components/login_form.js @@ -1,11 +1,18 @@ import React from 'react'; import { connect } from 'react-redux'; +import { injectIntl, FormattedMessage, defineMessages } from 'react-intl'; import { Link } from 'react-router-dom'; import ImmutablePureComponent from 'react-immutable-pure-component'; import { logIn } from 'soapbox/actions/auth'; import { fetchMe } from 'soapbox/actions/me'; +const messages = defineMessages({ + username: { id: 'login.fields.username_placeholder', defaultMessage: 'Username' }, + password: { id: 'login.fields.password_placeholder', defaultMessage: 'Password' }, +}); + export default @connect() +@injectIntl class LoginForm extends ImmutablePureComponent { state = { @@ -31,23 +38,29 @@ class LoginForm extends ImmutablePureComponent { } render() { + const { intl } = this.props; + return (
); diff --git a/app/soapbox/features/landing_page/components/registration_form.js b/app/soapbox/features/landing_page/components/registration_form.js index 2fc0c8a53..c145ca9a8 100644 --- a/app/soapbox/features/landing_page/components/registration_form.js +++ b/app/soapbox/features/landing_page/components/registration_form.js @@ -1,7 +1,9 @@ import React from 'react'; import ImmutablePureComponent from 'react-immutable-pure-component'; +import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; import { connect } from 'react-redux'; +import { injectIntl, FormattedMessage, defineMessages } from 'react-intl'; import { Link } from 'react-router-dom'; import { SimpleForm, @@ -13,16 +15,30 @@ import { register } from 'soapbox/actions/auth'; import CaptchaField from 'soapbox/features/auth_login/components/captcha'; import { Map as ImmutableMap } from 'immutable'; import { v4 as uuidv4 } from 'uuid'; +import { getSettings } from 'soapbox/actions/settings'; + +const messages = defineMessages({ + username: { id: 'registration.fields.username_placeholder', defaultMessage: 'Username' }, + email: { id: 'registration.fields.email_placeholder', defaultMessage: 'E-Mail address' }, + password: { id: 'registration.fields.password_placeholder', defaultMessage: 'Password' }, + confirm: { id: 'registration.fields.confirm_placeholder', defaultMessage: 'Password (again)' }, + agreement: { id: 'registration.agreement', defaultMessage: 'I agree to the {tos}.' }, + tos: { id: 'registration.tos', defaultMessage: 'Terms of Service' }, +}); const mapStateToProps = (state, props) => ({ instance: state.get('instance'), + locale: getSettings(state).get('locale'), }); export default @connect(mapStateToProps) +@injectIntl class RegistrationForm extends ImmutablePureComponent { static propTypes = { instance: ImmutablePropTypes.map, + locale: PropTypes.string, + intl: PropTypes.func.isRequired, } state = { @@ -45,8 +61,9 @@ class RegistrationForm extends ImmutablePureComponent { } onSubmit = e => { + const params = this.state.params.set('locale', this.props.locale); this.setState({ submissionLoading: true }); - this.props.dispatch(register(this.state.params.toJS())).catch(error => { + this.props.dispatch(register(params.toJS())).catch(error => { this.setState({ submissionLoading: false }); this.refreshCaptcha(); }); @@ -69,24 +86,30 @@ class RegistrationForm extends ImmutablePureComponent { } render() { - const { instance } = this.props; + const { instance, intl } = this.props; const isLoading = this.state.captchaLoading || this.state.submissionLoading; return (