about summary refs log tree commit diff
path: root/app
diff options
context:
space:
mode:
authorShel R <Yiskah.Raphen@gmail.com>2017-04-07 23:05:08 -0400
committerGitHub <noreply@github.com>2017-04-07 23:05:08 -0400
commit63686fd36f9dead2bc0d4b3cb53d841a9b320da2 (patch)
treecf24925ee083396659048373096e8907de458341 /app
parent4c751d25e5f0a2a211115b069651f0747c162d7a (diff)
parenta25a384af3d08a05bc0907261f76410da36cbb10 (diff)
Merge branch 'master' into patch-2
Diffstat (limited to 'app')
-rw-r--r--app/assets/javascripts/components/containers/mastodon.jsx3
-rw-r--r--app/assets/javascripts/components/locales/eo.jsx68
-rw-r--r--app/assets/javascripts/components/locales/index.jsx4
-rw-r--r--app/assets/stylesheets/components.scss4
-rw-r--r--app/helpers/settings_helper.rb1
-rw-r--r--app/helpers/stream_entries_helper.rb4
-rw-r--r--app/lib/atom_serializer.rb2
-rw-r--r--app/models/account.rb4
-rw-r--r--app/models/status.rb6
-rw-r--r--app/services/post_status_service.rb4
-rw-r--r--app/views/stream_entries/_status.html.haml2
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 }