mirror of
https://github.com/strapi/strapi.git
synced 2025-09-26 00:39:49 +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 { Link } from 'react-router-dom';
|
||||
|
||||
import en from 'translations/en.json';
|
||||
|
||||
import styles from './styles.scss';
|
||||
|
||||
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>
|
||||
</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 (
|
||||
<li className={styles.item}>
|
||||
<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>
|
||||
<FormattedMessage
|
||||
id={this.props.label}
|
||||
defaultMessage='{label}'
|
||||
values={{
|
||||
label: `${this.props.label}`,
|
||||
}}
|
||||
className={styles.linkLabel}
|
||||
/>
|
||||
{content}
|
||||
</Link>
|
||||
{plugin}
|
||||
</li>
|
||||
|
@ -11,12 +11,15 @@ import PropTypes from 'prop-types';
|
||||
import { connect } from 'react-redux';
|
||||
import { createSelector } from 'reselect';
|
||||
import { IntlProvider } from 'react-intl';
|
||||
import { defaultsDeep } from 'lodash';
|
||||
import { selectLocale } from './selectors';
|
||||
|
||||
export class LanguageProvider extends React.Component { // eslint-disable-line react/prefer-stateless-function
|
||||
render() {
|
||||
const messages = defaultsDeep(this.props.messages[this.props.locale], this.props.messages.en);
|
||||
|
||||
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)}
|
||||
</IntlProvider>
|
||||
);
|
||||
|
@ -103,7 +103,7 @@
|
||||
|
||||
"notification.error": "An error occurred",
|
||||
|
||||
"Auth & Permissions": "Auth & Permissions",
|
||||
"Users & Permissions": "Users & Permissions",
|
||||
"Content Manager": "Content Manager",
|
||||
"Content Type Builder": "Content Type Builder",
|
||||
"Settings Manager": "Settings Manager",
|
||||
@ -114,5 +114,7 @@
|
||||
"ResetPasswordToken": "Reset Password Token",
|
||||
"Role": "Role",
|
||||
"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