From 5bd9bc992b62954504326877d5730fff7effb18e Mon Sep 17 00:00:00 2001 From: gaba Date: Wed, 17 May 2017 12:53:36 -0700 Subject: [PATCH] Move i18n into a service --- .../coral-admin/src/components/AdminLogin.js | 5 +- .../src/components/BanUserButton.js | 5 +- .../src/components/BanUserDialog.js | 15 +- .../src/components/CountdownTimer.js | 5 +- .../src/components/ModerationKeysModal.js | 20 +- .../coral-admin/src/components/ui/Drawer.js | 14 +- .../coral-admin/src/components/ui/Header.js | 18 +- .../containers/Community/FlaggedAccounts.js | 7 +- .../src/containers/Community/Loading.js | 4 +- .../src/containers/Community/People.js | 16 +- .../src/containers/Community/Table.js | 15 +- .../Community/components/BanUserDialog.js | 16 +- .../Community/components/CommunityMenu.js | 10 +- .../Community/components/SuspendUserDialog.js | 15 +- .../containers/Community/components/User.js | 9 +- .../src/containers/Configure/Configure.js | 20 +- .../src/containers/Configure/Domainlist.js | 8 +- .../src/containers/Configure/EmbedLink.js | 8 +- .../Configure/ModerationSettings.js | 16 +- .../containers/Configure/StreamSettings.js | 31 +- .../src/containers/Configure/TechSettings.js | 8 +- .../src/containers/Configure/Wordlist.js | 13 +- .../containers/Dashboard/ActivityWidget.js | 10 +- .../src/containers/Dashboard/FlagWidget.js | 11 +- .../src/containers/Dashboard/LikeWidget.js | 10 +- .../Dashboard/MostLikedCommentsWidget.js | 6 +- .../components/Steps/AddOrganizationName.js | 10 +- .../components/Steps/CreateYourAccount.js | 14 +- .../Install/components/Steps/FinalStep.js | 10 +- .../Install/components/Steps/InitialStep.js | 8 +- .../components/Steps/PermittedDomainsStep.js | 10 +- .../src/containers/Install/translations.json | 58 -- .../ModerationQueue/ModerationQueue.js | 5 +- .../ModerationQueue/components/Comment.js | 13 +- .../components/CommentCount.js | 9 +- .../ModerationQueue/components/FlagBox.js | 15 +- .../components/ModerationMenu.js | 14 +- .../src/containers/Stories/Stories.js | 34 +- .../src/containers/Streams/Stories.js | 34 +- client/coral-admin/src/translations.json | 358 ---------- .../components/CloseCommentsInfo.js | 11 +- .../components/ConfigureCommentStream.js | 23 +- .../containers/ConfigureStreamContainer.js | 11 +- .../src/components/CountdownSeconds.js | 6 +- .../src/components/EditableCommentContent.js | 19 +- .../src/components/Embed.js | 8 +- .../src/components/IgnoredCommentTombstone.js | 5 +- .../src/components/LoadMore.js | 12 +- .../src/components/NewCount.js | 7 +- client/coral-embed-stream/src/index.js | 4 + client/coral-framework/actions/asset.js | 7 +- client/coral-framework/actions/auth.js | 11 +- client/coral-framework/actions/user.js | 7 +- .../components/RestrictedContent.js | 5 +- .../components/SuspendedAccount.js | 17 +- client/coral-framework/helpers/error.js | 13 +- client/coral-framework/index.js | 5 +- client/coral-framework/translations.json | 110 --- client/coral-i18n/locales/en.yml | 652 +++++++++--------- client/coral-i18n/locales/es.yml | 631 ++++++++--------- client/coral-i18n/modules/i18n/i18n.js | 90 --- client/coral-i18n/services/i18n.js | 65 ++ client/coral-plugin-best/BestButton.js | 8 +- client/coral-plugin-best/translations.json | 12 - .../CommentCount.js | 7 +- .../translations.json | 10 - client/coral-plugin-commentbox/CommentBox.js | 13 +- client/coral-plugin-commentbox/CommentForm.js | 13 +- client/coral-plugin-flags/FlagButton.js | 11 +- client/coral-plugin-flags/FlagComment.js | 39 +- client/coral-plugin-flags/translations.json | 52 -- .../coral-plugin-moderation/ModerationLink.js | 6 +- .../coral-plugin-moderation/translations.json | 8 - .../PermalinkButton.js | 5 +- .../coral-plugin-permalinks/translations.json | 12 - client/coral-plugin-pubdate/PubDate.js | 6 +- client/coral-plugin-replies/ReplyButton.js | 7 +- client/coral-plugin-replies/translations.json | 8 - .../coral-settings/components/NotLoggedIn.js | 7 +- .../containers/ProfileContainer.js | 5 +- client/coral-settings/translations.json | 22 - .../components/CreateUsernameDialog.js | 18 +- .../coral-sign-in/components/FakeComment.js | 11 +- .../coral-sign-in/components/ForgotContent.js | 14 +- .../coral-sign-in/components/SignInContent.js | 26 +- .../coral-sign-in/components/SignUpContent.js | 26 +- client/coral-sign-in/components/UserBox.js | 10 +- .../containers/ChangeUsernameContainer.js | 8 +- .../containers/SignInContainer.js | 11 +- client/coral-sign-in/translations.json | 102 --- .../client/components/LikeButton.js | 5 +- plugins/coral-plugin-like/client/index.js | 5 + .../coral-plugin-love/client/LoveButton.js | 6 +- plugins/coral-plugin-love/client/index.js | 5 + plugins/coral-plugin-love/index.js | 1 - .../client/components/RespectButton.js | 9 +- plugins/coral-plugin-respect/client/index.js | 5 + webpack.config.js | 4 +- yarn.lock | 21 +- 99 files changed, 1151 insertions(+), 2013 deletions(-) delete mode 100644 client/coral-admin/src/containers/Install/translations.json delete mode 100644 client/coral-admin/src/translations.json delete mode 100644 client/coral-framework/translations.json delete mode 100644 client/coral-i18n/modules/i18n/i18n.js create mode 100644 client/coral-i18n/services/i18n.js delete mode 100644 client/coral-plugin-best/translations.json delete mode 100644 client/coral-plugin-comment-count/translations.json delete mode 100644 client/coral-plugin-flags/translations.json delete mode 100644 client/coral-plugin-moderation/translations.json delete mode 100644 client/coral-plugin-permalinks/translations.json delete mode 100644 client/coral-plugin-replies/translations.json delete mode 100644 client/coral-settings/translations.json delete mode 100644 client/coral-sign-in/translations.json diff --git a/client/coral-admin/src/components/AdminLogin.js b/client/coral-admin/src/components/AdminLogin.js index f539a5e67..0de782fb1 100644 --- a/client/coral-admin/src/components/AdminLogin.js +++ b/client/coral-admin/src/components/AdminLogin.js @@ -2,9 +2,8 @@ import React, {PropTypes} from 'react'; import Layout from 'coral-admin/src/components/ui/Layout'; import styles from './NotFound.css'; import {Button, TextField, Alert, Success} from 'coral-ui'; -import I18n from 'coral-i18n/modules/i18n/i18n'; +import t from 'coral-i18n/services/i18n'; import Recaptcha from 'react-recaptcha'; -const lang = new I18n(); class AdminLogin extends React.Component { @@ -36,7 +35,7 @@ class AdminLogin extends React.Component { const {errorMessage, loginMaxExceeded, recaptchaPublic} = this.props; const signInForm = (
- {errorMessage && {lang.t(`errors.${errorMessage}`)}} + {errorMessage && {t(`errors.${errorMessage}`)}} (
@@ -13,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/components/BanUserDialog.js b/client/coral-admin/src/components/BanUserDialog.js index a63dc1434..1234c6d48 100644 --- a/client/coral-admin/src/components/BanUserDialog.js +++ b/client/coral-admin/src/components/BanUserDialog.js @@ -4,8 +4,7 @@ import styles from './BanUserDialog.css'; import Button from 'coral-ui/components/Button'; -import I18n from 'coral-i18n/modules/i18n/i18n'; -const lang = new I18n(); +import t from 'coral-i18n/services/i18n'; const onBanClick = (userId, commentId, commentStatus, handleBanUser, rejectComment, handleClose) => (e) => { e.preventDefault(); @@ -21,22 +20,22 @@ const BanUserDialog = ({open, handleClose, handleBanUser, rejectComment, user, c open={open} onClose={handleClose} onCancel={handleClose} - title={lang.t('bandialog.ban_user')}> + title={t('bandialog.ban_user')}> ×
-

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

+

{t('bandialog.ban_user')}

-

{lang.t('bandialog.are_you_sure', user.name)}

- {showRejectedNote && lang.t('bandialog.note')} +

{t('bandialog.are_you_sure', user.name)}

+ {showRejectedNote && t('bandialog.note')}
diff --git a/client/coral-admin/src/components/CountdownTimer.js b/client/coral-admin/src/components/CountdownTimer.js index 07195910d..970757ca2 100644 --- a/client/coral-admin/src/components/CountdownTimer.js +++ b/client/coral-admin/src/components/CountdownTimer.js @@ -1,9 +1,8 @@ import React, {PropTypes} from 'react'; -import I18n from 'coral-i18n/modules/i18n/i18n'; import styles from 'coral-admin/src/containers/Dashboard/Dashboard.css'; import {Icon} from 'coral-ui'; -const lang = new I18n(); +import t from 'coral-i18n/services/i18n'; const refreshIntervalSeconds = 60 * 5; class CountdownTimer extends React.Component { @@ -73,7 +72,7 @@ class CountdownTimer extends React.Component { className={styles.autoUpdate} onClick={this.dismissNote}> × - {lang.t('dashboard.next_update', this.formatTime())} {lang.t('dashboard.auto_update')} + {t('dashboard.next_update', this.formatTime())} {t('dashboard.auto_update')}

); } diff --git a/client/coral-admin/src/components/ModerationKeysModal.js b/client/coral-admin/src/components/ModerationKeysModal.js index 606e30ff2..c3031c8a5 100644 --- a/client/coral-admin/src/components/ModerationKeysModal.js +++ b/client/coral-admin/src/components/ModerationKeysModal.js @@ -1,9 +1,7 @@ -import I18n from 'coral-i18n/modules/i18n/i18n'; import React, {PropTypes} from 'react'; import Modal from 'components/Modal'; import styles from './ModerationKeysModal.css'; - -const lang = new I18n(); +import t from 'coral-i18n/services/i18n'; const shortcuts = [ { @@ -39,29 +37,29 @@ export default class ModerationKeysModal extends React.Component {
×
-

{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 a5889dfb3..fcdfeef25 100644 --- a/client/coral-admin/src/components/ui/Drawer.js +++ b/client/coral-admin/src/components/ui/Drawer.js @@ -2,7 +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-i18n/modules/i18n/i18n'; +import t from 'coral-i18n/services/i18n'; const CoralDrawer = ({handleLogout, restricted = false}) => ( @@ -13,29 +13,29 @@ const CoralDrawer = ({handleLogout, restricted = false}) => ( className={styles.navLink} to="/admin/dashboard" activeClassName={styles.active}> - {lang.t('configure.dashboard')} + {t('configure.dashboard')} - {lang.t('configure.moderate')} + {t('configure.moderate')} - {lang.t('configure.stories')} + {t('configure.stories')} - {lang.t('configure.community')} + {t('configure.community')} - {lang.t('configure.configure')} + {t('configure.configure')} Sign Out {`v${process.env.VERSION}`} @@ -49,6 +49,4 @@ CoralDrawer.propTypes = { restricted: PropTypes.bool // hide app elements from a logged out user }; -const lang = new I18n(); - export default CoralDrawer; diff --git a/client/coral-admin/src/components/ui/Header.js b/client/coral-admin/src/components/ui/Header.js index e001fbfa3..71cf4cba8 100644 --- a/client/coral-admin/src/components/ui/Header.js +++ b/client/coral-admin/src/components/ui/Header.js @@ -2,7 +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-i18n/modules/i18n/i18n'; +import t from 'coral-i18n/services/i18n'; import {Logo} from './Logo'; const CoralHeader = ({handleLogout, showShortcuts = () => {}, restricted = false}) => ( @@ -17,35 +17,35 @@ const CoralHeader = ({handleLogout, showShortcuts = () => {}, restricted = false className={styles.navLink} to="/admin/dashboard" activeClassName={styles.active}> - {lang.t('configure.dashboard')} + {t('configure.dashboard')} - {lang.t('configure.moderate')} + {t('configure.moderate')} - {lang.t('configure.stories')} + {t('configure.stories')} - {lang.t('configure.community')} + {t('configure.community')} - {lang.t('configure.configure')} + {t('configure.configure')}
@@ -54,8 +54,8 @@ const CoralHeader = ({handleLogout, showShortcuts = () => {}, restricted = false
- showShortcuts(true)}>{lang.t('configure.shortcuts')} - {lang.t('configure.sign_out')} + showShortcuts(true)}>{t('configure.shortcuts')} + {t('configure.sign_out')}
@@ -77,6 +77,4 @@ CoralHeader.propTypes = { restricted: PropTypes.bool // hide elemnts from a user that's logged out }; -const lang = new I18n(); - export default CoralHeader; diff --git a/client/coral-admin/src/containers/Community/FlaggedAccounts.js b/client/coral-admin/src/containers/Community/FlaggedAccounts.js index 799cd5480..0230083ca 100644 --- a/client/coral-admin/src/containers/Community/FlaggedAccounts.js +++ b/client/coral-admin/src/containers/Community/FlaggedAccounts.js @@ -1,10 +1,7 @@ import React from 'react'; -import I18n from 'coral-i18n/modules/i18n/i18n'; -const lang = new I18n(); - +import t from 'coral-i18n/services/i18n'; import styles from './Community.css'; - import Loading from './Loading'; import EmptyCard from 'coral-admin/src/components/EmptyCard'; import User from './components/User'; @@ -33,7 +30,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/containers/Community/Loading.js b/client/coral-admin/src/containers/Community/Loading.js index beda271eb..03b1de522 100644 --- a/client/coral-admin/src/containers/Community/Loading.js +++ b/client/coral-admin/src/containers/Community/Loading.js @@ -1,7 +1,9 @@ import React from 'react'; +import t from 'coral-i18n/services/i18n'; + const Loading = () => ( -

Loading results

+

{t('loading_results')}

); export default Loading; diff --git a/client/coral-admin/src/containers/Community/People.js b/client/coral-admin/src/containers/Community/People.js index 6b959b01c..fbcc098f1 100644 --- a/client/coral-admin/src/containers/Community/People.js +++ b/client/coral-admin/src/containers/Community/People.js @@ -1,28 +1,26 @@ import React from 'react'; -import I18n from 'coral-i18n/modules/i18n/i18n'; import styles from './Community.css'; import Table from './Table'; import {Pager, Icon} from 'coral-ui'; import EmptyCard from '../../components/EmptyCard'; - -const lang = new I18n(); +import t from 'coral-i18n/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' } ]; @@ -40,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')} /> @@ -52,7 +50,7 @@ const People = ({commenters, searchValue, onSearchChange, ...props}) => { commenters={commenters} onHeaderClickHandler={props.onHeaderClickHandler} /> - : {lang.t('community.no-results')} + : {t('community.no-results')} } this.onCommenterStatusChange(row.id, status)}> - - + +
diff --git a/client/coral-admin/src/containers/Community/components/BanUserDialog.js b/client/coral-admin/src/containers/Community/components/BanUserDialog.js index d4a4945ba..6dc41ee20 100644 --- a/client/coral-admin/src/containers/Community/components/BanUserDialog.js +++ b/client/coral-admin/src/containers/Community/components/BanUserDialog.js @@ -4,9 +4,7 @@ import styles from './BanUserDialog.css'; import Button from 'coral-ui/components/Button'; -import I18n from 'coral-i18n/modules/i18n/i18n'; - -const lang = new I18n(); +import t from 'coral-i18n/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/containers/Community/components/CommunityMenu.js b/client/coral-admin/src/containers/Community/components/CommunityMenu.js index fcddde806..61119a4da 100644 --- a/client/coral-admin/src/containers/Community/components/CommunityMenu.js +++ b/client/coral-admin/src/containers/Community/components/CommunityMenu.js @@ -1,13 +1,9 @@ import React from 'react'; import styles from './styles.css'; - -import I18n from 'coral-i18n/modules/i18n/i18n'; - +import t from 'coral-i18n/services/i18n'; import {Link} from 'react-router'; -const lang = new I18n(); - const CommunityMenu = () => { const flaggedPath = '/admin/community/flagged'; const peoplePath = '/admin/community/people'; @@ -16,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/containers/Community/components/SuspendUserDialog.js b/client/coral-admin/src/containers/Community/components/SuspendUserDialog.js index af610c2e2..808092a4c 100644 --- a/client/coral-admin/src/containers/Community/components/SuspendUserDialog.js +++ b/client/coral-admin/src/containers/Community/components/SuspendUserDialog.js @@ -3,8 +3,7 @@ import React, {Component, PropTypes} from 'react'; import {Dialog, Button} from 'coral-ui'; import styles from './SuspendUserDialog.css'; -import I18n from 'coral-i18n/modules/i18n/i18n'; -const lang = new I18n(); +import t from 'coral-i18n/services/i18n'; const stages = [ { @@ -36,7 +35,7 @@ class SuspendUserDialog extends Component { } componentDidMount() { - this.setState({email: lang.t('suspenduser.email'), about: lang.t('suspenduser.username')}); + this.setState({email: t('suspenduser.email'), about: t('suspenduser.username')}); } /* @@ -77,18 +76,18 @@ class SuspendUserDialog extends Component { open={open} onClose={handleClose} onCancel={handleClose} - title={lang.t('suspenduser.title')}> + title={t('suspenduser.title')}>
- {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])}
this.onRoleChange(row.id, role)}> - - + +