diff options
author | Shel R <Yiskah.Raphen@gmail.com> | 2017-04-07 23:05:08 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-07 23:05:08 -0400 |
commit | 63686fd36f9dead2bc0d4b3cb53d841a9b320da2 (patch) | |
tree | cf24925ee083396659048373096e8907de458341 /app | |
parent | 4c751d25e5f0a2a211115b069651f0747c162d7a (diff) | |
parent | a25a384af3d08a05bc0907261f76410da36cbb10 (diff) |
Merge branch 'master' into patch-2
Diffstat (limited to 'app')
-rw-r--r-- | app/assets/javascripts/components/containers/mastodon.jsx | 3 | ||||
-rw-r--r-- | app/assets/javascripts/components/locales/eo.jsx | 68 | ||||
-rw-r--r-- | app/assets/javascripts/components/locales/index.jsx | 4 | ||||
-rw-r--r-- | app/assets/stylesheets/components.scss | 4 | ||||
-rw-r--r-- | app/helpers/settings_helper.rb | 1 | ||||
-rw-r--r-- | app/helpers/stream_entries_helper.rb | 4 | ||||
-rw-r--r-- | app/lib/atom_serializer.rb | 2 | ||||
-rw-r--r-- | app/models/account.rb | 4 | ||||
-rw-r--r-- | app/models/status.rb | 6 | ||||
-rw-r--r-- | app/services/post_status_service.rb | 4 | ||||
-rw-r--r-- | app/views/stream_entries/_status.html.haml | 2 |
11 files changed, 89 insertions, 13 deletions
diff --git a/app/assets/javascripts/components/containers/mastodon.jsx b/app/assets/javascripts/components/containers/mastodon.jsx index cbb7b85bc..00f20074d 100644 --- a/app/assets/javascripts/components/containers/mastodon.jsx +++ b/app/assets/javascripts/components/containers/mastodon.jsx @@ -47,6 +47,7 @@ import pt from 'react-intl/locale-data/pt'; import hu from 'react-intl/locale-data/hu'; import uk from 'react-intl/locale-data/uk'; import fi from 'react-intl/locale-data/fi'; +import eo from 'react-intl/locale-data/eo'; import getMessagesForLocale from '../locales'; import { hydrateStore } from '../actions/store'; import createStream from '../stream'; @@ -59,7 +60,7 @@ const browserHistory = useRouterHistory(createBrowserHistory)({ basename: '/web' }); -addLocaleData([...en, ...de, ...es, ...fr, ...pt, ...hu, ...uk, ...fi]); +addLocaleData([...en, ...de, ...es, ...fr, ...pt, ...hu, ...uk, ...fi, ...eo]); const Mastodon = React.createClass({ diff --git a/app/assets/javascripts/components/locales/eo.jsx b/app/assets/javascripts/components/locales/eo.jsx new file mode 100644 index 000000000..8c118b31f --- /dev/null +++ b/app/assets/javascripts/components/locales/eo.jsx @@ -0,0 +1,68 @@ +const eo = { + "column_back_button.label": "Reveni", + "lightbox.close": "Fermi", + "loading_indicator.label": "Ŝarĝanta...", + "status.mention": "Mencii @{name}", + "status.delete": "Forigi", + "status.reply": "Respondi", + "status.reblog": "Diskonigi", + "status.favourite": "Favori", + "status.reblogged_by": "{name} diskonigita", + "status.sensitive_warning": "Tikla enhavo", + "status.sensitive_toggle": "Alklaki por vidi", + "video_player.toggle_sound": "Aktivigi sonojn", + "account.mention": "Mencii @{name}", + "account.edit_profile": "Redakti la profilon", + "account.unblock": "Malbloki @{name}", + "account.unfollow": "Malsekvi", + "account.block": "Bloki @{name}", + "account.follow": "Sekvi", + "account.posts": "Mesaĝoj", + "account.follows": "Sekvatoj", + "account.followers": "Sekvantoj", + "account.follows_you": "Sekvas vin", + "account.requested": "Atendas aprobon", + "getting_started.heading": "Por komenci", + "getting_started.about_addressing": "Vi povas sekvi homojn se vi konas la uzantnomon kaj domajnon tajpinte retpoŝtecan adreson en la serĉilon.", + "getting_started.about_shortcuts": "Se la celita uzanto troviĝas en la sama domajno de vi, uzi nur la uzantnomon sufiĉos. La sama regulo validas por mencii aliajn uzantojn en mesaĝo.", + "getting_started.open_source_notice": "Mastodon estas malfermitkoda programo. Vi povas kontribui aŭ raporti problemojn en github je {github}. {apps}.", + "column.home": "Hejmo", + "column.community": "Loka tempolinio", + "column.public": "Fratara tempolinio", + "column.notifications": "Sciigoj", + "tabs_bar.compose": "Ekskribi", + "tabs_bar.home": "Hejmo", + "tabs_bar.mentions": "Sciigoj", + "tabs_bar.public": "Fratara tempolinio", + "tabs_bar.notifications": "Sciigoj", + "compose_form.placeholder": "Pri kio vi pensas?", + "compose_form.publish": "Hup", + "compose_form.sensitive": "Marki ke la enhavo estas tikla", + "compose_form.spoiler": "Kaŝi la tekston malantaŭ averto", + "compose_form.private": "Marki ke la enhavo estas privata", + "compose_form.privacy_disclaimer": "Via privata mesaĝo estos sendita nur al menciitaj uzantoj en {domains}. Ĉu vi fidas {domainsCount, plural, one {tiun servilon} other {tiujn servilojn}}? Mesaĝa privateco funkcias nur en aperaĵoj de Mastodon. Se {domains} {domainsCount, plural, one {ne estas aperaĵo de Mastodon} other {ne estas aperaĵoj de Mastodon}}, estos neniu indiko ke via mesaĝo estas privata, kaj ĝi povus esti diskonigita aŭ videbligita al necelitaj ricevantoj.", + "compose_form.unlisted": "Ne afiŝi en publikaj tempolinioj", + "navigation_bar.edit_profile": "Redakti la profilon", + "navigation_bar.preferences": "Preferoj", + "navigation_bar.community_timeline": "Loka tempolinio", + "navigation_bar.public_timeline": "Fratara tempolinio", + "navigation_bar.logout": "Elsaluti", + "reply_indicator.cancel": "Rezigni", + "search.placeholder": "Serĉi", + "search.account": "Konto", + "search.hashtag": "Kradvorto", + "upload_button.label": "Aldoni enhavaĵon", + "upload_form.undo": "Malfari", + "notification.follow": "{name} sekvis vin", + "notification.favourite": "{name} favoris vian mesaĝon", + "notification.reblog": "{name} diskonigis vian mesaĝon", + "notification.mention": "{name} menciis vin", + "notifications.column_settings.alert": "Retumilaj atentigoj", + "notifications.column_settings.show": "Montri en kolono", + "notifications.column_settings.follow": "Novaj sekvantoj:", + "notifications.column_settings.favourite": "Favoroj:", + "notifications.column_settings.mention": "Mencioj:", + "notifications.column_settings.reblog": "Diskonigoj:", +}; + +export default eo; diff --git a/app/assets/javascripts/components/locales/index.jsx b/app/assets/javascripts/components/locales/index.jsx index 72b8a5df5..1e7b8b548 100644 --- a/app/assets/javascripts/components/locales/index.jsx +++ b/app/assets/javascripts/components/locales/index.jsx @@ -6,6 +6,7 @@ import fr from './fr'; import pt from './pt'; import uk from './uk'; import fi from './fi'; +import eo from './eo'; const locales = { en, @@ -15,7 +16,8 @@ const locales = { fr, pt, uk, - fi + fi, + eo }; export default function getMessagesForLocale (locale) { diff --git a/app/assets/stylesheets/components.scss b/app/assets/stylesheets/components.scss index d233b3471..696e89418 100644 --- a/app/assets/stylesheets/components.scss +++ b/app/assets/stylesheets/components.scss @@ -1,5 +1,9 @@ @import 'variables'; +.app-body{ + -ms-overflow-style: -ms-autohiding-scrollbar; +} + .button { background-color: darken($color4, 3%); font-family: inherit; diff --git a/app/helpers/settings_helper.rb b/app/helpers/settings_helper.rb index e01f7d0cc..74dc0e11d 100644 --- a/app/helpers/settings_helper.rb +++ b/app/helpers/settings_helper.rb @@ -11,6 +11,7 @@ module SettingsHelper uk: 'Українська', 'zh-CN': '简体中文', fi: 'Suomi', + eo: 'Esperanto', }.freeze def human_locale(locale) diff --git a/app/helpers/stream_entries_helper.rb b/app/helpers/stream_entries_helper.rb index a26e912a3..38e63ed8d 100644 --- a/app/helpers/stream_entries_helper.rb +++ b/app/helpers/stream_entries_helper.rb @@ -34,10 +34,6 @@ module StreamEntriesHelper user_signed_in? && @favourited.key?(status.id) ? 'favourited' : '' end - def proper_status(status) - status.reblog? ? status.reblog : status - end - def rtl?(text) return false if text.empty? diff --git a/app/lib/atom_serializer.rb b/app/lib/atom_serializer.rb index be1cced8b..b9dcee6b3 100644 --- a/app/lib/atom_serializer.rb +++ b/app/lib/atom_serializer.rb @@ -328,7 +328,7 @@ class AtomSerializer def serialize_status_attributes(entry, status) append_element(entry, 'summary', status.spoiler_text) unless status.spoiler_text.blank? - append_element(entry, 'content', Formatter.instance.format(status.reblog? ? status.reblog : status).to_str, type: 'html') + append_element(entry, 'content', Formatter.instance.format(status.proper).to_str, type: 'html') status.mentions.each do |mentioned| append_element(entry, 'link', nil, rel: :mentioned, 'ostatus:object-type': TagManager::TYPES[:person], href: TagManager.instance.uri_for(mentioned.account)) diff --git a/app/models/account.rb b/app/models/account.rb index 6968607a2..cbba8b5b6 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -125,11 +125,11 @@ class Account < ApplicationRecord end def favourited?(status) - (status.reblog? ? status.reblog : status).favourites.where(account: self).count.positive? + status.proper.favourites.where(account: self).count.positive? end def reblogged?(status) - (status.reblog? ? status.reblog : status).reblogs.where(account: self).count.positive? + status.proper.reblogs.where(account: self).count.positive? end def keypair diff --git a/app/models/status.rb b/app/models/status.rb index 6948ad77c..7e3dd3e28 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -62,8 +62,12 @@ class Status < ApplicationRecord reply? ? :comment : :note end + def proper + reblog? ? reblog : self + end + def content - reblog? ? reblog.text : text + proper.text end def target diff --git a/app/services/post_status_service.rb b/app/services/post_status_service.rb index b8179f7dc..221aa42a3 100644 --- a/app/services/post_status_service.rb +++ b/app/services/post_status_service.rb @@ -37,11 +37,11 @@ class PostStatusService < BaseService def validate_media!(media_ids) return if media_ids.nil? || !media_ids.is_a?(Enumerable) - raise Mastodon::ValidationError, 'Cannot attach more than 4 files' if media_ids.size > 4 + raise Mastodon::ValidationError, I18n.t('media_attachments.validations.too_many') if media_ids.size > 4 media = MediaAttachment.where(status_id: nil).where(id: media_ids.take(4).map(&:to_i)) - raise Mastodon::ValidationError, 'Cannot attach a video to a toot that already contains images' if media.size > 1 && media.find(&:video?) + raise Mastodon::ValidationError, I18n.t('media_attachments.validations.images_and_video') if media.size > 1 && media.find(&:video?) media end diff --git a/app/views/stream_entries/_status.html.haml b/app/views/stream_entries/_status.html.haml index cdd0dde3b..434c5c8da 100644 --- a/app/views/stream_entries/_status.html.haml +++ b/app/views/stream_entries/_status.html.haml @@ -16,7 +16,7 @@ %strong= display_name(status.account) = t('stream_entries.reblogged') - = render partial: centered ? 'stream_entries/detailed_status' : 'stream_entries/simple_status', locals: { status: proper_status(status) } + = render partial: centered ? 'stream_entries/detailed_status' : 'stream_entries/simple_status', locals: { status: status.proper } - if include_threads = render partial: 'stream_entries/status', collection: @descendants, as: :status, locals: { is_successor: true } |