mirror of
https://github.com/strapi/strapi.git
synced 2025-09-26 08:52:26 +00:00
Merge pull request #718 from strapi/improve-reactintl
Take en default translation message if there are not present in the c…
This commit is contained in:
commit
036c0d7584
@ -10,6 +10,8 @@ import PropTypes from 'prop-types';
|
|||||||
import { FormattedMessage } from 'react-intl';
|
import { FormattedMessage } from 'react-intl';
|
||||||
import { Link } from 'react-router-dom';
|
import { Link } from 'react-router-dom';
|
||||||
|
|
||||||
|
import en from 'translations/en.json';
|
||||||
|
|
||||||
import styles from './styles.scss';
|
import styles from './styles.scss';
|
||||||
|
|
||||||
class LeftMenuLink extends React.Component { // eslint-disable-line react/prefer-stateless-function
|
class LeftMenuLink extends React.Component { // eslint-disable-line react/prefer-stateless-function
|
||||||
@ -22,6 +24,20 @@ class LeftMenuLink extends React.Component { // eslint-disable-line react/prefer
|
|||||||
<span>{upperFirst(this.props.source.split('-').join(' '))}</span>
|
<span>{upperFirst(this.props.source.split('-').join(' '))}</span>
|
||||||
</div>) : '';
|
</div>) : '';
|
||||||
|
|
||||||
|
// Check if messageId exists in en locale to prevent warning messages
|
||||||
|
const content = en[this.props.label] ? (
|
||||||
|
<FormattedMessage
|
||||||
|
id={this.props.label}
|
||||||
|
defaultMessage='{label}'
|
||||||
|
values={{
|
||||||
|
label: `${this.props.label}`,
|
||||||
|
}}
|
||||||
|
className={styles.linkLabel}
|
||||||
|
/>
|
||||||
|
) : (
|
||||||
|
<span className={styles.linkLabel}>{this.props.label}</span>
|
||||||
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<li className={styles.item}>
|
<li className={styles.item}>
|
||||||
<Link
|
<Link
|
||||||
@ -32,14 +48,7 @@ class LeftMenuLink extends React.Component { // eslint-disable-line react/prefer
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<i className={`${styles.linkIcon} fa-${this.props.icon} fa`}></i>
|
<i className={`${styles.linkIcon} fa-${this.props.icon} fa`}></i>
|
||||||
<FormattedMessage
|
{content}
|
||||||
id={this.props.label}
|
|
||||||
defaultMessage='{label}'
|
|
||||||
values={{
|
|
||||||
label: `${this.props.label}`,
|
|
||||||
}}
|
|
||||||
className={styles.linkLabel}
|
|
||||||
/>
|
|
||||||
</Link>
|
</Link>
|
||||||
{plugin}
|
{plugin}
|
||||||
</li>
|
</li>
|
||||||
|
@ -11,12 +11,15 @@ import PropTypes from 'prop-types';
|
|||||||
import { connect } from 'react-redux';
|
import { connect } from 'react-redux';
|
||||||
import { createSelector } from 'reselect';
|
import { createSelector } from 'reselect';
|
||||||
import { IntlProvider } from 'react-intl';
|
import { IntlProvider } from 'react-intl';
|
||||||
|
import { defaultsDeep } from 'lodash';
|
||||||
import { selectLocale } from './selectors';
|
import { selectLocale } from './selectors';
|
||||||
|
|
||||||
export class LanguageProvider extends React.Component { // eslint-disable-line react/prefer-stateless-function
|
export class LanguageProvider extends React.Component { // eslint-disable-line react/prefer-stateless-function
|
||||||
render() {
|
render() {
|
||||||
|
const messages = defaultsDeep(this.props.messages[this.props.locale], this.props.messages.en);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<IntlProvider locale={this.props.locale} messages={this.props.messages[this.props.locale]}>
|
<IntlProvider locale={this.props.locale} defaultLocale="en" messages={messages}>
|
||||||
{React.Children.only(this.props.children)}
|
{React.Children.only(this.props.children)}
|
||||||
</IntlProvider>
|
</IntlProvider>
|
||||||
);
|
);
|
||||||
|
@ -103,7 +103,7 @@
|
|||||||
|
|
||||||
"notification.error": "An error occurred",
|
"notification.error": "An error occurred",
|
||||||
|
|
||||||
"Auth & Permissions": "Auth & Permissions",
|
"Users & Permissions": "Users & Permissions",
|
||||||
"Content Manager": "Content Manager",
|
"Content Manager": "Content Manager",
|
||||||
"Content Type Builder": "Content Type Builder",
|
"Content Type Builder": "Content Type Builder",
|
||||||
"Settings Manager": "Settings Manager",
|
"Settings Manager": "Settings Manager",
|
||||||
@ -114,5 +114,7 @@
|
|||||||
"ResetPasswordToken": "Reset Password Token",
|
"ResetPasswordToken": "Reset Password Token",
|
||||||
"Role": "Role",
|
"Role": "Role",
|
||||||
"New entry": "New entry",
|
"New entry": "New entry",
|
||||||
"request.error.model.unknow": "This model doesn't exist"
|
"request.error.model.unknow": "This model doesn't exist",
|
||||||
|
"Users": "Users",
|
||||||
|
"Analytics": "Analytics"
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user