diff options
author | Effy Elden <github@effy.is> | 2017-04-17 01:41:33 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-17 01:41:33 +1000 |
commit | acd33101c50ba0cf09c1c41616f919d37760f3f7 (patch) | |
tree | 43564c181a7f58ce7471026bd0daa099344330e8 /app/assets/javascripts | |
parent | fd81916e8625e5de39855522300eaeffd85ee13d (diff) | |
parent | 99226aba9391535a20d3cc6dba0f45e5792c73d4 (diff) |
Merge branch 'master' into fix/cache_blocking
Diffstat (limited to 'app/assets/javascripts')
4 files changed, 107 insertions, 97 deletions
diff --git a/app/assets/javascripts/components/features/ui/containers/status_list_container.jsx b/app/assets/javascripts/components/features/ui/containers/status_list_container.jsx index f249240d8..4c33f2b61 100644 --- a/app/assets/javascripts/components/features/ui/containers/status_list_container.jsx +++ b/app/assets/javascripts/components/features/ui/containers/status_list_container.jsx @@ -24,8 +24,10 @@ const makeGetStatusIds = () => createSelector([ if (columnSettings.getIn(['regex', 'body'], '').trim().length > 0) { try { - const regex = new RegExp(columnSettings.getIn(['regex', 'body']).trim(), 'i'); - showStatus = showStatus && !regex.test(statusForId.get('reblog') ? statuses.getIn([statusForId.get('reblog'), 'content']) : statusForId.get('content')); + if (showStatus) { + const regex = new RegExp(columnSettings.getIn(['regex', 'body']).trim(), 'i'); + showStatus = !regex.test(statusForId.get('reblog') ? statuses.getIn([statusForId.get('reblog'), 'unescaped_content']) : statusForId.get('unescaped_content')); + } } catch(e) { // Bad regex, don't affect filters } diff --git a/app/assets/javascripts/components/locales/fr.jsx b/app/assets/javascripts/components/locales/fr.jsx index 8838c264f..0a1dd38ae 100644 --- a/app/assets/javascripts/components/locales/fr.jsx +++ b/app/assets/javascripts/components/locales/fr.jsx @@ -75,6 +75,7 @@ const fr = { "navigation_bar.favourites": "Favoris", "navigation_bar.info": "Plus d'informations", "navigation_bar.logout": "Déconnexion", + "navigation_bar.mutes": "Utilisateurs muets", "navigation_bar.follow_requests": "Demandes de suivi", "reply_indicator.cancel": "Annuler", "search.placeholder": "Rechercher", diff --git a/app/assets/javascripts/components/locales/ja.jsx b/app/assets/javascripts/components/locales/ja.jsx index c64d7ecc6..79defd325 100644 --- a/app/assets/javascripts/components/locales/ja.jsx +++ b/app/assets/javascripts/components/locales/ja.jsx @@ -1,121 +1,125 @@ const ja = { - "column_back_button.label": "戻る", - "lightbox.close": "閉じる", - "loading_indicator.label": "読み込み中...", - "status.mention": "@{name} さんへの返信", - "status.delete": "削除", - "status.reply": "返信", - "status.reblog": "ブースト", - "status.favourite": "お気に入り", - "status.reblogged_by": "{name} さんにブーストされました", - "status.sensitive_warning": "不適切なコンテンツ", - "status.sensitive_toggle": "クリックして表示", - "status.show_more": "もっと見る", - "status.load_more": "もっと見る", - "status.show_less": "隠す", - "status.open": "Expand this status", - "status.report": "@{name} さんを通報", - "status.media_hidden": "非表示のメデイア", - "video_player.toggle_sound": "音の切り替え", - "account.mention": "@{name} さんに返信", - "account.edit_profile": "プロフィールを編集", - "account.unblock": "@{name} さんのブロックを解除", - "account.unfollow": "フォロー解除", "account.block": "@{name} さんをブロック", - "account.mute": "ミュート", - "account.unmute": "ミュート解除", + "account.disclaimer": "このユーザーは他のインスタンスに所属しているため、数字が正確で無い場合があります。", + "account.edit_profile": "プロフィールを編集", "account.follow": "フォロー", - "account.report": "@{name}を通報する", - "account.posts": "投稿", - "account.follows": "フォロー", "account.followers": "フォロワー", + "account.follows": "フォロー", "account.follows_you": "フォローされています", + "account.mention": "@{name} さんに返信", + "account.mute": "ミュート", + "account.posts": "投稿", + "account.report": "@{name}を通報する", "account.requested": "承認待ち", - "follow_request.authorize": "許可", - "follow_request.reject": "拒否", - "getting_started.heading": "スタート", - "getting_started.about_addressing": "ドメインとユーザー名を知っているなら検索フォームに入力すればフォローできます。", - "getting_started.about_shortcuts": "対象のアカウントがあなたと同じドメインのユーザーならばユーザー名のみで検索できます。これは返信のときも一緒です。", - "getting_started.open_source_notice": "Mastodon はオープンソースソフトウェアです。誰でも GitHub({github})から開発に参加したり、問題を報告したりできます。 {apps}", - "getting_started.apps": "さまざまなアプリで利用できます。", - "column.home": "ホーム", + "account.unblock": "@{name} さんのブロックを解除", + "account.unfollow": "フォロー解除", + "account.unmute": "ミュート解除", + "boost_modal.combo": "次からは{combo}を押せば、これをスキップできます。", + "column.blocks": "ブロックしたユーザー", "column.community": "ローカルタイムライン", - "column.public": "連合タイムライン", - "column.notifications": "通知", "column.favourites": "お気に入り", - "tabs_bar.compose": "投稿", - "tabs_bar.home": "ホーム", - "tabs_bar.mentions": "返信", - "tabs_bar.local_timeline": "ローカル", - "tabs_bar.federated_timeline": "連合", - "tabs_bar.notifications": "通知", + "column.follow_requests": "フォローリクエスト", + "column.home": "ホーム", + "column.mutes": "ミュートしたユーザー", + "column.notifications": "通知", + "column.public": "連合タイムライン", + "column_back_button.label": "戻る", "compose_form.placeholder": "今なにしてる?", + "compose_form.privacy_disclaimer": "あなたの非公開トゥートは返信先のユーザー(at {domains})に公開されます。{domainsCount, plural, one {that server} other {those servers}}を信頼しますか?投稿のプライバシー保護はMastodonサーバー内でのみ有効です。 もし{domains} {domainsCount, plural, one {is not a Mastodon instance} other {are not Mastodon instances}}ならばあなたの投稿のプライバシーは保護されず、ブーストされたり予期しないユーザーに見られる可能性があります。", "compose_form.publish": "トゥート", "compose_form.sensitive": "メディアを不適切なコンテンツとしてマークする", "compose_form.spoiler": "テキストを隠す", - "compose_form.spoiler_placeholder": "内容注意メッセージ", - "compose_form.private": "非公開にする", - "compose_form.privacy_disclaimer": "あなたの非公開トゥートは返信先のユーザー(at {domains})に公開されます。{domainsCount, plural, one {that server} other {those servers}}を信頼しますか?投稿のプライバシー保護はMastodonサーバー内でのみ有効です。 もし{domains} {domainsCount, plural, one {is not a Mastodon instance} other {are not Mastodon instances}}ならばあなたの投稿のプライバシーは保護されず、ブーストされたり予期しないユーザーに見られる可能性があります。", - "compose_form.unlisted": "公開タイムラインに表示しない", - "privacy.public.short": "公開", - "privacy.public.long": "公開TLに投稿する", - "privacy.unlisted.short": "未収載", - "privacy.unlisted.long": "公開TLで表示しない", - "privacy.private.short": "非公開", - "privacy.private.long": "フォロワーだけに公開", - "privacy.direct.short": "ダイレクト", - "privacy.direct.long": "含んだユーザーだけに公開", - "privacy.change": "投稿のプライバシーを変更", - "report.heading": "新規通報", - "report.placeholder": "コメント", - "report.target": "問題のユーザー", - "report.submit": "通報する", - "navigation_bar.edit_profile": "プロフィールを編集", - "navigation_bar.preferences": "ユーザー設定", + "compose_form.spoiler_placeholder": "閲覧注意", + "emoji_button.label": "絵文字を追加", + "empty_column.community": "ローカルタイムラインはまだ使われていません。何か書いてみましょう!", + "empty_column.hashtag": "このハッシュタグはまだ使われていません。", + "empty_column.home": "まだ誰もフォローしていません。{public}を見に行くか、検索を使って他のユーザーを見つけましょう。", + "empty_column.home.public_timeline": "連合タイムライン", + "empty_column.notifications": "まだ通知がありません。他の人とふれ合って会話を始めましょう。", + "empty_column.public": "ここにはまだ何もありません!公開で何かを投稿したり、他のインスタンスのユーザーをフォローしたりしていっぱいにしましょう!", + "follow_request.authorize": "許可", + "follow_request.reject": "拒否", + "getting_started.apps": "さまざまなアプリで利用できます。", + "getting_started.heading": "スタート", + "getting_started.open_source_notice": "Mastodon はオープンソースソフトウェアです。誰でも GitHub({github})から開発に参加したり、問題を報告したりできます。 {apps}", + "home.column_settings.advanced": "上級者向け", + "home.column_settings.basic": "シンプル", + "home.column_settings.filter_regex": "正規表現でフィルター", + "home.column_settings.show_reblogs": "ブースト表示", + "home.column_settings.show_replies": "返信表示", + "home.settings": "カラム設定", + "lightbox.close": "閉じる", + "loading_indicator.label": "読み込み中...", + "media_gallery.toggle_visible": "表示切り替え", + "missing_indicator.label": "見つかりません", + "navigation_bar.blocks": "ブロックしたユーザー", "navigation_bar.community_timeline": "ローカルタイムライン", - "navigation_bar.public_timeline": "連合タイムライン", - "navigation_bar.logout": "ログアウト", + "navigation_bar.edit_profile": "プロフィールを編集", "navigation_bar.favourites": "お気に入り", - "navigation_bar.blocks": "ブロックしたユーザー", + "navigation_bar.follow_requests": "フォローリクエスト", "navigation_bar.info": "サーバー情報", - "reply_indicator.cancel": "キャンセル", - "search.placeholder": "検索", - "search.account": "アカウント", - "search.hashtag": "ハッシュタグ", - "search.status_by": "{uuuname}からの投稿", - "search_results.total": "{count} 件", - "upload_area.title": "ファイルをこちらにドラッグしてください", - "upload_button.label": "メディアを追加", - "upload_form.undo": "やり直す", - "notification.follow": "{name} さんにフォローされました", + "navigation_bar.logout": "ログアウト", + "navigation_bar.mutes": "ミュートしたユーザー", + "navigation_bar.preferences": "ユーザー設定", + "navigation_bar.public_timeline": "連合タイムライン", "notification.favourite": "{name} さんがあなたのトゥートをお気に入りに登録しました", - "notification.reblog": "{name} さんがあなたのトゥートをブーストしました", + "notification.follow": "{name} さんにフォローされました", "notification.mention": "{name} さんがあなたに返信しました", - "notifications.clear": "通知を片付ける", - "notifications.clear_confirmation": "通知を全部片付けます。大丈夫ですか?", + "notification.reblog": "{name} さんがあなたのトゥートをブーストしました", + "notifications.clear": "通知を消去", + "notifications.clear_confirmation": "本当に通知を消去しますか?", "notifications.column_settings.alert": "デスクトップ通知", - "notifications.column_settings.show": "カラムに表示", - "notifications.column_settings.follow": "新しいフォロワー", "notifications.column_settings.favourite": "お気に入り", + "notifications.column_settings.follow": "新しいフォロワー", "notifications.column_settings.mention": "返信", "notifications.column_settings.reblog": "ブースト", + "notifications.column_settings.show": "カラムに表示", "notifications.column_settings.sound": "通知音を再生", - "empty_column.home": "まだ誰もフォローしていません。{public}を見に行くか、検索を使って他のユーザーを見つけましょう。", - "empty_column.home.public_timeline": "連合タイムライン", - "empty_column.notifications": "まだ通知がありません。他の人とふれ合って会話を始めましょう。", - "empty_column.public": "ここにはまだ何もありません!公開で何かを投稿したり、他のインスタンスのユーザーをフォローしたりしていっぱいにしましょう!", - "empty_column.hashtag": "このハッシュタグはまだ使っていません。", - "upload_progress.label": "アップロード中…", - "emoji_button.label": "絵文字を追加", - "home.column_settings.basic": "シンプル", - "home.column_settings.advanced": "エキスパート", - "home.column_settings.show_reblogs": "ブースト表示", - "home.column_settings.show_replies": "返信表示", - "home.column_settings.filter_regex": "正規表現でフィルター", - "home.settings": "カラム設定", "notifications.settings": "カラム設定", - "missing_indicator.label": "見つかりません", - "boost_modal.combo": "次は{combo}を押せば、これをスキップできます。" + "privacy.change": "投稿のプライバシーを変更", + "privacy.direct.long": "メンションしたユーザーだけに公開", + "privacy.direct.short": "ダイレクト", + "privacy.private.long": "フォロワーだけに公開", + "privacy.private.short": "非公開", + "privacy.public.long": "公開TLに投稿する", + "privacy.public.short": "公開", + "privacy.unlisted.long": "公開TLで表示しない", + "privacy.unlisted.short": "未収載", + "reply_indicator.cancel": "キャンセル", + "report.heading": "新規通報", + "report.placeholder": "コメント", + "report.submit": "通報する", + "report.target": "問題のユーザー", + "search.placeholder": "検索", + "search.status_by": "{name}からの投稿", + "search_results.total": "{count} {count, plural, one {result} other {results}} 件", + "status.delete": "削除", + "status.favourite": "お気に入り", + "status.load_more": "もっと見る", + "status.media_hidden": "非表示のメデイア", + "status.mention": "@{name} さんへの返信", + "status.open": "詳細を表示", + "status.reblog": "ブースト", + "status.reblogged_by": "{name} さんにブーストされました", + "status.reply": "返信", + "status.report": "@{name} さんを通報", + "status.sensitive_toggle": "クリックして表示", + "status.sensitive_warning": "不適切なコンテンツ", + "status.show_less": "隠す", + "status.show_more": "もっと見る", + "tabs_bar.compose": "投稿", + "tabs_bar.federated_timeline": "連合", + "tabs_bar.home": "ホーム", + "tabs_bar.local_timeline": "ローカル", + "tabs_bar.notifications": "通知", + "upload_area.title": "ドラッグ&ドロップでアップロード", + "upload_button.label": "メディアを追加", + "upload_form.undo": "やり直す", + "upload_progress.label": "アップロード中…", + "video_player.expand": "動画の詳細", + "video_player.toggle_sound": "音の切り替え", + "video_player.toggle_visible": "表示切り替え", + "video_player.video_error": "動画の再生に失敗しました", }; export default ja; diff --git a/app/assets/javascripts/components/reducers/statuses.jsx b/app/assets/javascripts/components/reducers/statuses.jsx index ca8fa7a01..2002d2223 100644 --- a/app/assets/javascripts/components/reducers/statuses.jsx +++ b/app/assets/javascripts/components/reducers/statuses.jsx @@ -48,6 +48,9 @@ const normalizeStatus = (state, status) => { normalStatus.reblog = status.reblog.id; } + const linebreakComplemented = status.content.replace(/<br \/>/g, '\n').replace(/<\/p><p>/g, '\n\n'); + normalStatus.unescaped_content = new DOMParser().parseFromString(linebreakComplemented, 'text/html').documentElement.textContent; + return state.update(status.id, Immutable.Map(), map => map.mergeDeep(Immutable.fromJS(normalStatus))); }; |