));
@@ -30,4 +33,4 @@ const UploadForm = React.createClass({
});
-export default UploadForm;
+export default injectIntl(UploadForm);
diff --git a/app/assets/javascripts/components/features/favourites/index.jsx b/app/assets/javascripts/components/features/favourites/index.jsx
index 8f15bcad9c..5c9ea498b8 100644
--- a/app/assets/javascripts/components/features/favourites/index.jsx
+++ b/app/assets/javascripts/components/features/favourites/index.jsx
@@ -1,12 +1,12 @@
-import { connect } from 'react-redux';
-import PureRenderMixin from 'react-addons-pure-render-mixin';
-import ImmutablePropTypes from 'react-immutable-proptypes';
-import LoadingIndicator from '../../components/loading_indicator';
-import { fetchFavourites } from '../../actions/interactions';
-import { ScrollContainer } from 'react-router-scroll';
-import AccountContainer from '../followers/containers/account_container';
-import Column from '../ui/components/column';
-import ColumnBackButton from '../../components/column_back_button';
+import { connect } from 'react-redux';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import LoadingIndicator from '../../components/loading_indicator';
+import { fetchFavourites } from '../../actions/interactions';
+import { ScrollContainer } from 'react-router-scroll';
+import AccountContainer from '../followers/containers/account_container';
+import Column from '../ui/components/column';
+import ColumnBackButton from '../../components/column_back_button';
const mapStateToProps = (state, props) => ({
accountIds: state.getIn(['user_lists', 'favourited_by', Number(props.params.statusId)])
diff --git a/app/assets/javascripts/components/features/followers/components/account.jsx b/app/assets/javascripts/components/features/followers/components/account.jsx
index adcd903600..123a40cab4 100644
--- a/app/assets/javascripts/components/features/followers/components/account.jsx
+++ b/app/assets/javascripts/components/features/followers/components/account.jsx
@@ -1,9 +1,10 @@
-import PureRenderMixin from 'react-addons-pure-render-mixin';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import Avatar from '../../../components/avatar';
-import DisplayName from '../../../components/display_name';
-import { Link } from 'react-router';
-import IconButton from '../../../components/icon_button';
+import Avatar from '../../../components/avatar';
+import DisplayName from '../../../components/display_name';
+import { Link } from 'react-router';
+import IconButton from '../../../components/icon_button';
+import { injectIntl } from 'react-intl';
const outerStyle = {
padding: '10px',
@@ -51,7 +52,7 @@ const Account = React.createClass({
},
render () {
- const { account, me, withNote } = this.props;
+ const { account, me, withNote, intl } = this.props;
if (!account) {
return ;
@@ -68,7 +69,7 @@ const Account = React.createClass({
buttons = (
-
+
);
}
@@ -91,4 +92,4 @@ const Account = React.createClass({
});
-export default Account;
+export default injectIntl(Account);
diff --git a/app/assets/javascripts/components/features/getting_started/index.jsx b/app/assets/javascripts/components/features/getting_started/index.jsx
index d5792dd9e6..5a9c4db89e 100644
--- a/app/assets/javascripts/components/features/getting_started/index.jsx
+++ b/app/assets/javascripts/components/features/getting_started/index.jsx
@@ -1,15 +1,15 @@
-import Column from '../ui/components/column';
+import Column from '../ui/components/column';
import { Link } from 'react-router';
+import { FormattedMessage } from 'react-intl';
const GettingStarted = () => {
return (
-
Getting started
-
You can follow people if you know their username and the domain they are on by entering an e-mail-esque address into the form in the bottom of the sidebar.
-
If the target user is on the same domain as you, just the username will work. The same rule applies to mentioning people in statuses.
-
The developer of this project can be followed as Gargron@mastodon.social
-
Also check out the public timeline for a start!
+
+
+
+
);
diff --git a/app/assets/javascripts/components/features/home_timeline/index.jsx b/app/assets/javascripts/components/features/home_timeline/index.jsx
index e4cd8bdca9..117a4a72df 100644
--- a/app/assets/javascripts/components/features/home_timeline/index.jsx
+++ b/app/assets/javascripts/components/features/home_timeline/index.jsx
@@ -1,8 +1,9 @@
-import { connect } from 'react-redux';
-import PureRenderMixin from 'react-addons-pure-render-mixin';
+import { connect } from 'react-redux';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
import StatusListContainer from '../ui/containers/status_list_container';
-import Column from '../ui/components/column';
+import Column from '../ui/components/column';
import { refreshTimeline } from '../../actions/timelines';
+import { injectIntl } from 'react-intl';
const HomeTimeline = React.createClass({
@@ -17,8 +18,10 @@ const HomeTimeline = React.createClass({
},
render () {
+ const { intl } = this.props;
+
return (
-
+
);
@@ -26,4 +29,4 @@ const HomeTimeline = React.createClass({
});
-export default connect()(HomeTimeline);
+export default connect()(injectIntl(HomeTimeline));
diff --git a/app/assets/javascripts/components/features/mentions_timeline/index.jsx b/app/assets/javascripts/components/features/mentions_timeline/index.jsx
index 919a75d189..9f1caa2350 100644
--- a/app/assets/javascripts/components/features/mentions_timeline/index.jsx
+++ b/app/assets/javascripts/components/features/mentions_timeline/index.jsx
@@ -1,8 +1,9 @@
import { connect } from 'react-redux';
-import PureRenderMixin from 'react-addons-pure-render-mixin';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
import StatusListContainer from '../ui/containers/status_list_container';
-import Column from '../ui/components/column';
+import Column from '../ui/components/column';
import { refreshTimeline } from '../../actions/timelines';
+import { injectIntl } from 'react-intl';
const MentionsTimeline = React.createClass({
@@ -17,8 +18,10 @@ const MentionsTimeline = React.createClass({
},
render () {
+ const { intl } = this.props;
+
return (
-
+
);
@@ -26,4 +29,4 @@ const MentionsTimeline = React.createClass({
});
-export default connect()(MentionsTimeline);
+export default connect()(injectIntl(MentionsTimeline));
diff --git a/app/assets/javascripts/components/features/public_timeline/index.jsx b/app/assets/javascripts/components/features/public_timeline/index.jsx
index 12f73ba9bf..445a4fc633 100644
--- a/app/assets/javascripts/components/features/public_timeline/index.jsx
+++ b/app/assets/javascripts/components/features/public_timeline/index.jsx
@@ -7,6 +7,7 @@ import {
updateTimeline,
deleteFromTimelines
} from '../../actions/timelines';
+import { injectIntl } from 'react-intl';
const PublicTimeline = React.createClass({
@@ -44,8 +45,10 @@ const PublicTimeline = React.createClass({
},
render () {
+ const { intl } = this.props;
+
return (
-
+
);
@@ -53,4 +56,4 @@ const PublicTimeline = React.createClass({
});
-export default connect()(PublicTimeline);
+export default connect()(injectIntl(PublicTimeline));
diff --git a/app/assets/javascripts/components/features/reblogs/index.jsx b/app/assets/javascripts/components/features/reblogs/index.jsx
index 2b62d3a270..5f22065f62 100644
--- a/app/assets/javascripts/components/features/reblogs/index.jsx
+++ b/app/assets/javascripts/components/features/reblogs/index.jsx
@@ -1,12 +1,12 @@
-import { connect } from 'react-redux';
-import PureRenderMixin from 'react-addons-pure-render-mixin';
-import ImmutablePropTypes from 'react-immutable-proptypes';
-import LoadingIndicator from '../../components/loading_indicator';
-import { fetchReblogs } from '../../actions/interactions';
-import { ScrollContainer } from 'react-router-scroll';
-import AccountContainer from '../followers/containers/account_container';
-import Column from '../ui/components/column';
-import ColumnBackButton from '../../components/column_back_button';
+import { connect } from 'react-redux';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import LoadingIndicator from '../../components/loading_indicator';
+import { fetchReblogs } from '../../actions/interactions';
+import { ScrollContainer } from 'react-router-scroll';
+import AccountContainer from '../followers/containers/account_container';
+import Column from '../ui/components/column';
+import ColumnBackButton from '../../components/column_back_button';
const mapStateToProps = (state, props) => ({
accountIds: state.getIn(['user_lists', 'reblogged_by', Number(props.params.statusId)])
diff --git a/app/assets/javascripts/components/features/status/components/action_bar.jsx b/app/assets/javascripts/components/features/status/components/action_bar.jsx
index b1202ad8e1..d855176f22 100644
--- a/app/assets/javascripts/components/features/status/components/action_bar.jsx
+++ b/app/assets/javascripts/components/features/status/components/action_bar.jsx
@@ -1,7 +1,8 @@
-import PureRenderMixin from 'react-addons-pure-render-mixin';
-import IconButton from '../../../components/icon_button';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import IconButton from '../../../components/icon_button';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import DropdownMenu from '../../../components/dropdown_menu';
+import DropdownMenu from '../../../components/dropdown_menu';
+import { injectIntl } from 'react-intl';
const ActionBar = React.createClass({
@@ -38,21 +39,21 @@ const ActionBar = React.createClass({
},
render () {
- const { status, me } = this.props;
+ const { status, me, intl } = this.props;
let menu = [];
if (me === status.getIn(['account', 'id'])) {
- menu.push({ text: 'Delete', action: this.handleDeleteClick });
+ menu.push({ text: intl.formatMessage({ id: 'status.delete', defaultMessage: 'Delete' }), action: this.handleDeleteClick });
} else {
- menu.push({ text: 'Mention', action: this.handleMentionClick });
+ menu.push({ text: intl.formatMessage({ id: 'status.mention', defaultMessage: 'Mention' }), action: this.handleMentionClick });
}
return (
-
-
-
+
+
+
);
@@ -60,4 +61,4 @@ const ActionBar = React.createClass({
});
-export default ActionBar;
+export default injectIntl(ActionBar);
diff --git a/app/assets/javascripts/components/features/status/components/detailed_status.jsx b/app/assets/javascripts/components/features/status/components/detailed_status.jsx
index 71335970f1..8efdf195f8 100644
--- a/app/assets/javascripts/components/features/status/components/detailed_status.jsx
+++ b/app/assets/javascripts/components/features/status/components/detailed_status.jsx
@@ -1,12 +1,12 @@
-import PureRenderMixin from 'react-addons-pure-render-mixin';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import Avatar from '../../../components/avatar';
-import DisplayName from '../../../components/display_name';
-import StatusContent from '../../../components/status_content';
-import MediaGallery from '../../../components/media_gallery';
-import VideoPlayer from '../../../components/video_player';
-import moment from 'moment';
-import { Link } from 'react-router';
+import Avatar from '../../../components/avatar';
+import DisplayName from '../../../components/display_name';
+import StatusContent from '../../../components/status_content';
+import MediaGallery from '../../../components/media_gallery';
+import VideoPlayer from '../../../components/video_player';
+import { Link } from 'react-router';
+import { FormattedDate, FormattedNumber } from 'react-intl';
const DetailedStatus = React.createClass({
@@ -54,7 +54,7 @@ const DetailedStatus = React.createClass({
{media}