diff options
Diffstat (limited to 'app')
-rw-r--r-- | app/assets/images/logo.svg | 4 | ||||
-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/controllers/application_controller.rb | 4 | ||||
-rw-r--r-- | app/controllers/concerns/localized.rb | 20 | ||||
-rw-r--r-- | app/controllers/oauth/authorizations_controller.rb | 4 | ||||
-rw-r--r-- | app/controllers/oauth/authorized_applications_controller.rb | 4 | ||||
-rw-r--r-- | app/helpers/settings_helper.rb | 1 | ||||
-rw-r--r-- | app/services/follow_remote_account_service.rb | 5 |
11 files changed, 105 insertions, 16 deletions
diff --git a/app/assets/images/logo.svg b/app/assets/images/logo.svg new file mode 100644 index 000000000..5379a0240 --- /dev/null +++ b/app/assets/images/logo.svg @@ -0,0 +1,4 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="1000" height="1000" viewBox="0 0 1000 1000"> + <path d="M527.194 543.7a28.362 28.362 0 0 0-56.723 0 25.73 25.73 0 0 0 2.67 11.674 26.42 26.42 0 0 0 5.672 8.34 28.2 28.2 0 0 0 40.04 0 31.87 31.87 0 0 0 6.006-8.34 28.8 28.8 0 0 0 2.336-11.674m-48.382-113.413a28.308 28.308 0 1 0 40.04 40.027 37.2 37.2 0 0 0 4.67-5.67 28.092 28.092 0 0 0 3.67-14.343 27.29 27.29 0 0 0-8.34-20.012 28.24 28.24 0 0 0-5.006-4 26.958 26.958 0 0 0-15.015-4.336 27.31 27.31 0 0 0-20.02 8.34m20.02-101.735a28.476 28.476 0 1 0 20.02 8.34 27.31 27.31 0 0 0-20.02-8.34M231.9 573.717a28.18 28.18 0 1 0 8.342 20.012 27.308 27.308 0 0 0-8.342-20.014m-40.04-93.4a28.352 28.352 0 0 0 20.02 48.366 26.958 26.958 0 0 0 15.015-4.336 28.255 28.255 0 0 0 5.005-4 27.29 27.29 0 0 0 8.342-20.013 28.09 28.09 0 0 0-3.67-14.343 37.21 37.21 0 0 0-4.67-5.67 28.2 28.2 0 0 0-40.04 0m40.04-93.4a28.2 28.2 0 0 0-40.04 0 26.425 26.425 0 0 0-5.673 8.34 25.73 25.73 0 0 0-2.67 11.673 28.315 28.315 0 0 0 48.38 20.018 27.29 27.29 0 0 0 8.342-20.012 28.8 28.8 0 0 0-2.336-11.674 31.87 31.87 0 0 0-6.006-8.34m550.55 178.453a28.476 28.476 0 1 0 20.02 8.34 27.31 27.31 0 0 0-20.02-8.34m20.02-85.057a28.2 28.2 0 0 0-40.04 0 37.2 37.2 0 0 0-4.672 5.67 28.092 28.092 0 0 0-3.67 14.343 27.29 27.29 0 0 0 8.342 20.013 28.248 28.248 0 0 0 5.005 4 26.96 26.96 0 0 0 15.015 4.336 28.3 28.3 0 0 0 20.02-48.366m-46.046-85.057a28.8 28.8 0 0 0-2.336 11.673 28.362 28.362 0 0 0 56.723 0 25.73 25.73 0 0 0-2.668-11.674 26.427 26.427 0 0 0-5.672-8.34 28.2 28.2 0 0 0-40.04 0 31.86 31.86 0 0 0-6.007 8.343z" fill="#2b90d9"/> + <path d="M853.52 146.764Q707.04 0 499.833 0 292.96 0 146.48 146.764 0 293.2 0 500q0 207.138 146.48 353.57T499.833 1000q207.207 0 353.687-146.43T1000 500q0-206.8-146.48-353.236zM213.547 708.806h-3.337q-43.043 0-73.407-30.02-30.03-30.354-30.03-73.382V395.93v-.666q1.335-41.027 30.03-69.713 30.364-30.35 73.407-30.35t73.073 30.354q29.363 29.02 30.364 70.38V615.41q2.336 55.037 46.713 93.4zM600.6 554.7q-1 41.36-30.364 70.38-30.03 30.353-73.073 30.354t-73.407-30.354q-28.7-28.686-30.03-69.713V345.23q0-43.03 30.03-73.382 30.364-30.02 73.407-30.02h150.15q-44.378 38.36-46.713 93.4zm286.954 50.7q0 43.03-30.03 73.382-30.364 30.02-73.407 30.02h-150.15q44.378-38.36 46.713-93.4v-219.47q1-41.362 30.364-70.38 30.03-30.355 73.073-30.355t73.407 30.354q28.7 28.687 30.03 69.714V605.4z" fill="#2b90d9"/> +</svg> 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/controllers/application_controller.rb b/app/controllers/application_controller.rb index f00f9c1e3..61ca71123 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -1,14 +1,13 @@ # frozen_string_literal: true class ApplicationController < ActionController::Base - include Localized - # Prevent CSRF attacks by raising an exception. # For APIs, you may want to use :null_session instead. protect_from_forgery with: :exception force_ssl if: "Rails.env.production? && ENV['LOCAL_HTTPS'] == 'true'" + include Localized helper_method :current_account rescue_from ActionController::RoutingError, with: :not_found @@ -41,7 +40,6 @@ class ApplicationController < ActionController::Base # If the sign in is after a two week break, we need to regenerate their feed RegenerationWorker.perform_async(current_user.account_id) if current_user.last_sign_in_at < 14.days.ago - return end def check_suspension diff --git a/app/controllers/concerns/localized.rb b/app/controllers/concerns/localized.rb index b6f868090..6528ce45e 100644 --- a/app/controllers/concerns/localized.rb +++ b/app/controllers/concerns/localized.rb @@ -4,13 +4,25 @@ module Localized extend ActiveSupport::Concern included do - before_action :set_locale + around_action :set_locale end + private + def set_locale - I18n.locale = current_user.try(:locale) || default_locale - rescue I18n::InvalidLocale - I18n.locale = default_locale + locale = default_locale + + if user_signed_in? + begin + locale = current_user.try(:locale) || default_locale + rescue I18n::InvalidLocale + locale = default_locale + end + end + + I18n.with_locale(locale) do + yield + end end def default_locale diff --git a/app/controllers/oauth/authorizations_controller.rb b/app/controllers/oauth/authorizations_controller.rb index cdbfde0fb..e9cdf9fa8 100644 --- a/app/controllers/oauth/authorizations_controller.rb +++ b/app/controllers/oauth/authorizations_controller.rb @@ -1,13 +1,13 @@ # frozen_string_literal: true class Oauth::AuthorizationsController < Doorkeeper::AuthorizationsController - include Localized - skip_before_action :authenticate_resource_owner! before_action :store_current_location before_action :authenticate_resource_owner! + include Localized + private def store_current_location diff --git a/app/controllers/oauth/authorized_applications_controller.rb b/app/controllers/oauth/authorized_applications_controller.rb index 09dd5d3c4..395fbc51b 100644 --- a/app/controllers/oauth/authorized_applications_controller.rb +++ b/app/controllers/oauth/authorized_applications_controller.rb @@ -1,13 +1,13 @@ # frozen_string_literal: true class Oauth::AuthorizedApplicationsController < Doorkeeper::AuthorizedApplicationsController - include Localized - skip_before_action :authenticate_resource_owner! before_action :store_current_location before_action :authenticate_resource_owner! + include Localized + private def store_current_location 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/services/follow_remote_account_service.rb b/app/services/follow_remote_account_service.rb index 936953429..443c9c701 100644 --- a/app/services/follow_remote_account_service.rb +++ b/app/services/follow_remote_account_service.rb @@ -20,8 +20,6 @@ class FollowRemoteAccountService < BaseService Rails.logger.debug "Looking up webfinger for #{uri}" - account = Account.new(username: username, domain: domain) - data = Goldfinger.finger("acct:#{uri}") raise Goldfinger::Error, 'Missing resource links' if data.link('http://schemas.google.com/g/2010#updates-from').nil? || data.link('salmon').nil? || data.link('http://webfinger.net/rel/profile-page').nil? || data.link('magic-public-key').nil? @@ -37,6 +35,7 @@ class FollowRemoteAccountService < BaseService domain_block = DomainBlock.find_by(domain: domain) + account = Account.new(username: confirmed_username, domain: confirmed_domain) account.remote_url = data.link('http://schemas.google.com/g/2010#updates-from').href account.salmon_url = data.link('salmon').href account.url = data.link('http://webfinger.net/rel/profile-page').href @@ -51,8 +50,8 @@ class FollowRemoteAccountService < BaseService account.uri = get_account_uri(xml) account.hub_url = hubs.first.attribute('href').value - get_profile(body, account) account.save! + get_profile(body, account) account end |