diff --git a/client/coral-admin/src/components/ActionButton.js b/client/coral-admin/src/components/ActionButton.js index ca2c15799..4eda2973e 100644 --- a/client/coral-admin/src/components/ActionButton.js +++ b/client/coral-admin/src/components/ActionButton.js @@ -3,14 +3,16 @@ import styles from './ModerationList.css'; import {Button} from 'coral-ui'; import {menuActionsMap} from '../routes/Moderation/helpers/moderationQueueActionsMap'; +import t from 'coral-framework/services/i18n'; + const ActionButton = ({type = '', active, ...props}) => { const typeName = type.toLowerCase(); let text = menuActionsMap[type].text; - if (text === 'Approve' && active) { - text = 'Approved'; - } else if (text === 'Reject' && active) { - text = 'Rejected'; + if (text === 'approve' && active) { + text = 'approved'; + } else if (text === 'reject' && active) { + text = 'rejected'; } return ( @@ -19,7 +21,7 @@ const ActionButton = ({type = '', active, ...props}) => { cStyle={typeName} icon={menuActionsMap[type].icon} onClick={type === 'APPROVE' ? props.acceptComment : props.rejectComment} - >{text} + >{t(`modqueue.${text}`)} ); }; diff --git a/client/coral-admin/src/components/ActionsMenu.js b/client/coral-admin/src/components/ActionsMenu.js index eb173eb81..ff4a9c5b3 100644 --- a/client/coral-admin/src/components/ActionsMenu.js +++ b/client/coral-admin/src/components/ActionsMenu.js @@ -5,9 +5,7 @@ import cn from 'classnames'; import {findDOMNode} from 'react-dom'; import styles from './ActionsMenu.css'; -import I18n from 'coral-framework/modules/i18n/i18n'; -import translations from 'coral-admin/src/translations.json'; -const lang = new I18n(translations); +import t from 'coral-framework/services/i18n'; let count = 0; @@ -43,7 +41,7 @@ class ActionsMenu extends React.Component { onClick={this.syncOpenState} icon={this.props.icon} raised> - {lang.t('modqueue.actions')} + {t('modqueue.actions')} - {errorMessage && {lang.t(`errors.${errorMessage}`)}} + {errorMessage && {t(`error.${errorMessage}`)}}
×
-

{lang.t('modqueue.mod-faster')}

-

{lang.t('modqueue.try-these')}:

+

{t('modqueue.mod_faster')}

+

{t('modqueue.try_these')}:

    -
  • {lang.t('modqueue.approve')} t
  • -
  • {lang.t('modqueue.reject')} r
  • +
  • {t('modqueue.approve')} t
  • +
  • {t('modqueue.reject')} r
-

{lang.t('modqueue.view-more-shortcuts')} {lang.t('modqueue.shift-key')} + /

+

{t('modqueue.view_more_shortcuts')} {t('modqueue.shift_key')} + /

-

{lang.t('modqueue.shortcuts')}

+

{t('modqueue.shortcuts')}

{shortcuts.map((shortcut, i) => ( - + {Object.keys(shortcut.shortcuts).map((key) => ( - + ))} diff --git a/client/coral-admin/src/components/ui/Drawer.js b/client/coral-admin/src/components/ui/Drawer.js index 2fcb5aafe..b49caf30a 100644 --- a/client/coral-admin/src/components/ui/Drawer.js +++ b/client/coral-admin/src/components/ui/Drawer.js @@ -2,8 +2,7 @@ import React, {PropTypes} from 'react'; import {Navigation, Drawer} from 'react-mdl'; import {IndexLink, Link} from 'react-router'; import styles from './Drawer.css'; -import I18n from 'coral-framework/modules/i18n/i18n'; -import translations from '../../translations.json'; +import t from 'coral-framework/services/i18n'; import {can} from 'coral-framework/services/perms'; const CoralDrawer = ({handleLogout, auth}) => ( @@ -15,7 +14,7 @@ const CoralDrawer = ({handleLogout, auth}) => ( className={styles.navLink} to="/admin/dashboard" activeClassName={styles.active}> - {lang.t('configure.dashboard')} + {t('configure.dashboard')} { can(auth.user, 'MODERATE_COMMENTS') && ( @@ -23,19 +22,19 @@ const CoralDrawer = ({handleLogout, auth}) => ( className={styles.navLink} to="/admin/moderate" activeClassName={styles.active}> - {lang.t('configure.moderate')} + {t('configure.moderate')} ) } - {lang.t('configure.stories')} + {t('configure.stories')} - {lang.t('configure.community')} + {t('configure.community')} { can(auth.user, 'UPDATE_CONFIG') && @@ -44,7 +43,7 @@ const CoralDrawer = ({handleLogout, auth}) => ( className={styles.navLink} to="/admin/configure" activeClassName={styles.active}> - {lang.t('configure.configure')} + {t('configure.configure')} ) } @@ -60,6 +59,4 @@ CoralDrawer.propTypes = { restricted: PropTypes.bool // hide app elements from a logged out user }; -const lang = new I18n(translations); - export default CoralDrawer; diff --git a/client/coral-admin/src/components/ui/Header.js b/client/coral-admin/src/components/ui/Header.js index f7ba83491..bbc78a321 100644 --- a/client/coral-admin/src/components/ui/Header.js +++ b/client/coral-admin/src/components/ui/Header.js @@ -2,8 +2,7 @@ import React, {PropTypes} from 'react'; import {Navigation, Header, IconButton, MenuItem, Menu} from 'react-mdl'; import {Link, IndexLink} from 'react-router'; import styles from './Header.css'; -import I18n from 'coral-framework/modules/i18n/i18n'; -import translations from '../../translations.json'; +import t from 'coral-framework/services/i18n'; import {Logo} from './Logo'; import {can} from 'coral-framework/services/perms'; @@ -23,7 +22,7 @@ const CoralHeader = ({ className={styles.navLink} to="/admin/dashboard" activeClassName={styles.active}> - {lang.t('configure.dashboard')} + {t('configure.dashboard')} { can(auth.user, 'MODERATE_COMMENTS') && ( @@ -32,7 +31,7 @@ const CoralHeader = ({ className={styles.navLink} to="/admin/moderate" activeClassName={styles.active}> - {lang.t('configure.moderate')} + {t('configure.moderate')} ) } @@ -41,14 +40,14 @@ const CoralHeader = ({ className={styles.navLink} to="/admin/stories" activeClassName={styles.active}> - {lang.t('configure.stories')} + {t('configure.stories')} - {lang.t('configure.community')} + {t('configure.community')} { can(auth.user, 'UPDATE_CONFIG') && ( @@ -57,7 +56,7 @@ const CoralHeader = ({ className={styles.navLink} to="/admin/configure" activeClassName={styles.active}> - {lang.t('configure.configure')} + {t('configure.configure')} ) } @@ -71,8 +70,8 @@ const CoralHeader = ({
- showShortcuts(true)}>{lang.t('configure.shortcuts')} - {lang.t('configure.sign-out')} + showShortcuts(true)}>{t('configure.shortcuts')} + {t('configure.sign_out')}
@@ -91,6 +90,4 @@ CoralHeader.propTypes = { handleLogout: PropTypes.func.isRequired }; -const lang = new I18n(translations); - export default CoralHeader; diff --git a/client/coral-admin/src/index.js b/client/coral-admin/src/index.js index f54208518..d0dfc5f9a 100644 --- a/client/coral-admin/src/index.js +++ b/client/coral-admin/src/index.js @@ -9,6 +9,9 @@ import App from './components/App'; import 'react-mdl/extra/material.js'; import './graphql'; +import {loadPluginsTranslations} from 'coral-framework/helpers/plugins'; + +loadPluginsTranslations(); render( diff --git a/client/coral-admin/src/routes/Community/components/ActionButton.js b/client/coral-admin/src/routes/Community/components/ActionButton.js index 767c9fbd1..67f16acad 100644 --- a/client/coral-admin/src/routes/Community/components/ActionButton.js +++ b/client/coral-admin/src/routes/Community/components/ActionButton.js @@ -4,6 +4,8 @@ import BanUserButton from './BanUserButton'; import {Button} from 'coral-ui'; import {menuActionsMap} from '../../Moderation/helpers/moderationQueueActionsMap'; +import t from 'coral-framework/services/i18n'; + const ActionButton = ({type = '', user, ...props}) => { if (type === 'BAN') { return props.showBanUserDialog(user)} />; @@ -17,7 +19,7 @@ const ActionButton = ({type = '', user, ...props}) => { onClick={() => { type === 'APPROVE' ? props.approveUser({userId: user.id}) : props.showSuspendUserDialog({user: user}); }} - >{menuActionsMap[type].text} + >{t(`modqueue.${menuActionsMap[type].text}`)} ); }; diff --git a/client/coral-admin/src/routes/Community/components/BanUserButton.js b/client/coral-admin/src/routes/Community/components/BanUserButton.js index a54cdd322..cc4935204 100644 --- a/client/coral-admin/src/routes/Community/components/BanUserButton.js +++ b/client/coral-admin/src/routes/Community/components/BanUserButton.js @@ -2,9 +2,7 @@ import React, {PropTypes} from 'react'; import {Button, Icon} from 'coral-ui'; import styles from './BanUserButton.css'; -import I18n from 'coral-framework/modules/i18n/i18n'; -import translations from 'coral-admin/src/translations.json'; -const lang = new I18n(translations); +import t from 'coral-framework/services/i18n'; const BanUserButton = ({user, ...props}) => (
@@ -14,7 +12,7 @@ const BanUserButton = ({user, ...props}) => ( onClick={props.onClick} raised> - {lang.t('comment.ban_user')} + {t('comment.ban_user')}
); diff --git a/client/coral-admin/src/routes/Community/components/BanUserDialog.js b/client/coral-admin/src/routes/Community/components/BanUserDialog.js index affffcd54..26a885e8b 100644 --- a/client/coral-admin/src/routes/Community/components/BanUserDialog.js +++ b/client/coral-admin/src/routes/Community/components/BanUserDialog.js @@ -4,10 +4,7 @@ import styles from './BanUserDialog.css'; import Button from 'coral-ui/components/Button'; -import I18n from 'coral-framework/modules/i18n/i18n'; -import translations from 'coral-admin/src/translations.json'; - -const lang = new I18n(translations); +import t from 'coral-framework/services/i18n'; const BanUserDialog = ({open, handleClose, handleBanUser, user}) => ( ( open={open} onClose={handleClose} onCancel={handleClose} - title={lang.t('community.ban_user')}> + title={t('community.ban_user')}> ×
-

{lang.t('community.ban_user')}

+

{t('community.ban_user')}

-

{lang.t('community.are_you_sure', user.username)}

- {lang.t('community.note')} +

{t('community.are_you_sure', user.username)}

+ {t('community.note')}
diff --git a/client/coral-admin/src/routes/Community/components/CommunityMenu.js b/client/coral-admin/src/routes/Community/components/CommunityMenu.js index 9a51798ec..b89e9350a 100644 --- a/client/coral-admin/src/routes/Community/components/CommunityMenu.js +++ b/client/coral-admin/src/routes/Community/components/CommunityMenu.js @@ -1,14 +1,9 @@ import React from 'react'; import styles from './styles.css'; - -import I18n from 'coral-framework/modules/i18n/i18n'; -import translations from 'coral-admin/src/translations.json'; - +import t from 'coral-framework/services/i18n'; import {Link} from 'react-router'; -const lang = new I18n(translations); - const CommunityMenu = () => { const flaggedPath = '/admin/community/flagged'; const peoplePath = '/admin/community/people'; @@ -17,10 +12,10 @@ const CommunityMenu = () => {
- {lang.t('community.flaggedaccounts')} + {t('community.flaggedaccounts')} - {lang.t('community.people')} + {t('community.people')}
diff --git a/client/coral-admin/src/routes/Community/components/FlaggedAccounts.js b/client/coral-admin/src/routes/Community/components/FlaggedAccounts.js index a6e26a0c9..df6368844 100644 --- a/client/coral-admin/src/routes/Community/components/FlaggedAccounts.js +++ b/client/coral-admin/src/routes/Community/components/FlaggedAccounts.js @@ -1,11 +1,7 @@ import React from 'react'; -import I18n from 'coral-framework/modules/i18n/i18n'; -import translations from 'coral-admin/src/translations.json'; -const lang = new I18n(translations); - +import t from 'coral-framework/services/i18n'; import styles from './Community.css'; - import EmptyCard from 'coral-admin/src/components/EmptyCard'; import User from './User'; @@ -32,7 +28,7 @@ const FlaggedAccounts = ({...props}) => { suspendUser={props.suspendUser} />; }) - : {lang.t('community.no-flagged-accounts')} + : {t('community.no_flagged_accounts')} } diff --git a/client/coral-admin/src/routes/Community/components/People.js b/client/coral-admin/src/routes/Community/components/People.js index 0e0c2b5c4..464f3bc5b 100644 --- a/client/coral-admin/src/routes/Community/components/People.js +++ b/client/coral-admin/src/routes/Community/components/People.js @@ -1,29 +1,26 @@ import React from 'react'; -import I18n from 'coral-framework/modules/i18n/i18n'; -import translations from 'coral-admin/src/translations.json'; import styles from './Community.css'; import Table from '../containers/Table'; import {Pager, Icon} from 'coral-ui'; import EmptyCard from '../../../components/EmptyCard'; - -const lang = new I18n(translations); +import t from 'coral-framework/services/i18n'; const tableHeaders = [ { - title: lang.t('community.username_and_email'), + title: t('community.username_and_email'), field: 'username' }, { - title: lang.t('community.account_creation_date'), + title: t('community.account_creation_date'), field: 'created_at' }, { - title: lang.t('community.status'), + title: t('community.status'), field: 'status' }, { - title: lang.t('community.newsroom_role'), + title: t('community.newsroom_role'), field: 'role' } ]; @@ -41,7 +38,7 @@ const People = ({commenters, searchValue, onSearchChange, ...props}) => { className={styles.searchBoxInput} value={searchValue} onChange={onSearchChange} - placeholder={lang.t('streams.search')} + placeholder={t('streams.search')} /> @@ -53,7 +50,7 @@ const People = ({commenters, searchValue, onSearchChange, ...props}) => { commenters={commenters} onHeaderClickHandler={props.onHeaderClickHandler} /> - : {lang.t('community.no-results')} + : {t('community.no_results')} } + title={t('suspenduser.suspend_user')}>
- {lang.t(stages[stage].title, lang.t('suspenduser.username'))} + {t(stages[stage].title, t('suspenduser.username'))}
- {lang.t(stages[stage].description, lang.t('suspenduser.username'))} + {t(stages[stage].description, t('suspenduser.username'))}
{ stage === 1 &&
-
{lang.t('suspenduser.write_message')}
+
{t('suspenduser.write_message')}
{lang.t(shortcut.title)}{t(shortcut.title)}
{key}{lang.t(shortcut.shortcuts[key])}{t(shortcut.shortcuts[key])}