diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 7eceaf142..e4ec9e3c2 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -52,9 +52,7 @@ Bug reports and feature suggestions can be submitted to [GitHub Issues](https://
## Translations
-You can submit translations via [Weblate](https://weblate.joinmastodon.org/). They are periodically merged into the codebase.
-
-[![Mastodon translation statistics by language](https://weblate.joinmastodon.org/widgets/mastodon/-/multi-auto.svg)](https://weblate.joinmastodon.org/)
+You can submit translations via pull request.
## Pull requests
diff --git a/app/javascript/mastodon/components/poll.js b/app/javascript/mastodon/components/poll.js
index 690f9ae5a..acab107a1 100644
--- a/app/javascript/mastodon/components/poll.js
+++ b/app/javascript/mastodon/components/poll.js
@@ -28,6 +28,7 @@ class Poll extends ImmutablePureComponent {
intl: PropTypes.object.isRequired,
dispatch: PropTypes.func,
disabled: PropTypes.bool,
+ visible: PropTypes.bool,
};
state = {
@@ -69,13 +70,14 @@ class Poll extends ImmutablePureComponent {
};
renderOption (option, optionIndex) {
- const { poll, disabled } = this.props;
- const percent = poll.get('votes_count') === 0 ? 0 : (option.get('votes_count') / poll.get('votes_count')) * 100;
- const leading = poll.get('options').filterNot(other => other.get('title') === option.get('title')).every(other => option.get('votes_count') > other.get('votes_count'));
- const active = !!this.state.selected[`${optionIndex}`];
- const showResults = poll.get('voted') || poll.get('expired');
+ const { poll, disabled, visible } = this.props;
+ const percent = poll.get('votes_count') === 0 ? 0 : (option.get('votes_count') / poll.get('votes_count')) * 100;
+ const leading = poll.get('options').filterNot(other => other.get('title') === option.get('title')).every(other => option.get('votes_count') > other.get('votes_count'));
+ const active = !!this.state.selected[`${optionIndex}`];
+ const showResults = poll.get('voted') || poll.get('expired');
let titleEmojified = option.get('title_emojified');
+
if (!titleEmojified) {
const emojiMap = makeEmojiMap(poll);
titleEmojified = emojify(escapeTextContentForBrowser(option.get('title')), emojiMap);
@@ -104,7 +106,7 @@ class Poll extends ImmutablePureComponent {
{!showResults && }
{showResults && {Math.round(percent)}%}
-
+ {visible ? : {String.fromCharCode(64 + optionIndex + 1)}}
);
diff --git a/app/javascript/mastodon/components/status.js b/app/javascript/mastodon/components/status.js
index 42535ea68..6f66a4260 100644
--- a/app/javascript/mastodon/components/status.js
+++ b/app/javascript/mastodon/components/status.js
@@ -272,7 +272,7 @@ class Status extends ImmutablePureComponent {
}
if (status.get('poll')) {
- media = ;
+ media = ;
} else if (status.get('media_attachments').size > 0) {
if (this.props.muted) {
media = (
diff --git a/app/javascript/mastodon/features/status/components/detailed_status.js b/app/javascript/mastodon/features/status/components/detailed_status.js
index 84471f9a3..059ecd979 100644
--- a/app/javascript/mastodon/features/status/components/detailed_status.js
+++ b/app/javascript/mastodon/features/status/components/detailed_status.js
@@ -106,7 +106,7 @@ export default class DetailedStatus extends ImmutablePureComponent {
}
if (status.get('poll')) {
- media = ;
+ media = ;
} else if (status.get('media_attachments').size > 0) {
if (status.getIn(['media_attachments', 0, 'type']) === 'video') {
const video = status.getIn(['media_attachments', 0]);
diff --git a/app/views/stream_entries/_og_image.html.haml b/app/views/stream_entries/_og_image.html.haml
index e1b977da3..67f9274b6 100644
--- a/app/views/stream_entries/_og_image.html.haml
+++ b/app/views/stream_entries/_og_image.html.haml
@@ -7,6 +7,8 @@
- unless media.file.meta.nil?
= opengraph 'og:image:width', media.file.meta.dig('original', 'width')
= opengraph 'og:image:height', media.file.meta.dig('original', 'height')
+ - if media.description.present?
+ = opengraph 'og:image:alt', media.description
- elsif media.video? || media.gifv?
- player_card = true
= opengraph 'og:image', full_asset_url(media.file.url(:small))
diff --git a/config/locales/cs.yml b/config/locales/cs.yml
index 5d05a13d6..9b73e3b1d 100644
--- a/config/locales/cs.yml
+++ b/config/locales/cs.yml
@@ -298,8 +298,8 @@ cs:
one: Jeden účet v databázi byl ovlivněn
other: "%{count} účtů v databázi bylo ovlivněno"
retroactive:
- silence: Odtišit všechny existující účty z této domény
- suspend: Zrušit pozastavení všech existujících účtů z této domény
+ silence: Odtišit existující ovlivněné účty z této domény
+ suspend: Zrušit pozastavení existujících ovlivněných účtů z této domény
title: Zrušit blokaci domény %{domain}
undo: Odvolat
undo: Odvolat blokaci domény
diff --git a/config/locales/sk.yml b/config/locales/sk.yml
index 51795849c..5870a710a 100644
--- a/config/locales/sk.yml
+++ b/config/locales/sk.yml
@@ -163,7 +163,7 @@ sk:
resubscribe: Znovu odoberaj
role: Oprávnenia
roles:
- admin: Administrátor
+ admin: Správca
moderator: Moderátor
staff: Člen
user: Užívateľ
@@ -174,7 +174,7 @@ sk:
created_reports: Vytvorené hlásenia
targeted_reports: Nahlásenia od ostatných
silence: Stíš
- silenced: Utíšený/é
+ silenced: Stíšený/é
statuses: Príspevky
subscribe: Odoberaj
suspended: Zablokovaní
@@ -298,8 +298,8 @@ sk:
one: Jeden účet v databáze bol ovplyvnený
other: "%{count} účtov v databáze bolo ovplyvnených"
retroactive:
- silence: Zruš stíšenie všetkých existujúcich účtov z tejto domény
- suspend: Zruš suspendáciu všetkých existujúcich účtov z tejto domény
+ silence: Zruš stíšenie všetkých momentálne utíšených účtov z tejto domény
+ suspend: Zruš suspendáciu všetkých momentálne odročených účtov z tejto domény
title: Zruš blokovanie domény %{domain}
undo: Vráť späť
undo: Odvolaj blokovanie domény
@@ -396,7 +396,7 @@ sk:
desc_html: Sčítanie miestne uverejnených príspevkov, aktívnych užívateľov, a nových registrácii, v týždenných intervaloch
title: Vydať hromadné štatistiky o užívateľskej aktivite
bootstrap_timeline_accounts:
- desc_html: Ak je prezývok viacero, každú oddeľte čiarkou. Možno zadať iba miestne, odomknuté účty. Pokiaľ necháte prázdne, je to pre všetkých miestnych administrátorov.
+ desc_html: Ak je prezývok viacero, každú oddeľ čiarkou. Je možné zadať iba miestne, odomknuté účty. Pokiaľ necháš prázdne, je to pre všetkých miestnych správcov.
title: Štandardní následovníci nových užívateľov
contact_information:
email: Pracovný email
@@ -405,30 +405,30 @@ sk:
desc_html: Uprav vzhľad pomocou CSS, ktoré je načítané na každej stránke
title: Vlastné CSS
hero:
- desc_html: Zobrazuje sa na hlavnej stránke. Doporučuje sa rozlišenie aspoň 600x100px Pokiaľ nič nieje dodané, bude nastavený základný orázok serveru
+ desc_html: Zobrazuje sa na hlavnej stránke. Doporučené je rozlišenie aspoň 600x100px. Pokiaľ nič nieje dodané, bude nastavený základný orázok serveru.
title: Obrázok hrdinu
mascot:
- desc_html: Zobrazované na viacerých stránkach. Odporúčaná veľkosť aspoň 293×205px. Pokiaľ nieje nahraté, bude zobrazený základný maskot
+ desc_html: Zobrazované na viacerých stránkach. Odporúčaná veľkosť aspoň 293×205px. Pokiaľ nieje nahraté, bude zobrazený základný maskot.
title: Obrázok maskota
peers_api_enabled:
- desc_html: Domény, na ktoré tento server už v rámci fediverse natrafil
+ desc_html: Domény, na ktoré tento server už v rámci fediversa natrafil
title: Zverejni zoznam objavených serverov
preview_sensitive_media:
- desc_html: Náhľad odkazov z iných serverov, bude zobrazený aj vtedy, keď sú médiá označené ako senzitívne
+ desc_html: Náhľad odkazov z iných serverov, bude zobrazený aj vtedy, keď sú médiá označené ako citlivé
title: Ukazuj aj chúlostivé médiá v náhľadoch OpenGraph
profile_directory:
desc_html: Povoľ užívateľom, aby mohli byť nájdení
title: Zapni profilový katalóg
registrations:
closed_message:
- desc_html: Toto sa zobrazí na hlavnej stránke v prípade že sú registrácie uzavreté. Možno tu použiť aj HTML kód
+ desc_html: Toto sa zobrazí na hlavnej stránke v prípade, že sú registrácie uzavreté. Možno tu použiť aj HTML kód
title: Správa o uzavretých registráciách
deletion:
- desc_html: Dovoľiť každému aby si mohli zmazať svok účet
- title: Sprístupniť možnosť vymazať si účet
+ desc_html: Dovoľ každému aby si mohli zmazať svok účet
+ title: Sprístupni možnosť vymazať si účet
min_invite_role:
disabled: Nikto
- title: Povoliť pozvánky od
+ title: Povoľ pozvánky od
registrations_mode:
modes:
approved: Pre registráciu je nutné povolenie
@@ -436,11 +436,11 @@ sk:
open: Ktokoľvek sa môže zaregistrovať
title: Režím registrácií
show_known_fediverse_at_about_page:
- desc_html: Pokiaľ je zapnuté, bude v ukážke osi možné nahliadnúť príspevky z celého známeho fediversa. Inak budú ukázané iba príspevky z miestnej osi.
+ desc_html: Ak je zapnuté, bude v ukážke osi možné nahliadnúť príspevky z celého známeho fediversa. Inak budú ukázané iba príspevky z miestnej osi.
title: Ukáž celé známe fediverse na náhľade osi
show_staff_badge:
- desc_html: Zobraz moderátorsky odznak na užívateľovom profile
- title: Zobraz značku moderátora
+ desc_html: Ukáž moderátorsky odznak na užívateľovom profile
+ title: Ukáž značku moderátora
site_description:
desc_html: Oboznamujúci paragraf na hlavnej stránke a pri meta tagoch. Opíš, čo robí tento Mastodon server špecifickým, a ďalej hocičo iné, čo považuješ za dôležité. Môžeš použiť HTML kód, hlavne <a>
a <em>
.
title: Popis servera
diff --git a/db/post_migrate/20190519130537_remove_boosts_widening_audience.rb b/db/post_migrate/20190519130537_remove_boosts_widening_audience.rb
new file mode 100644
index 000000000..d2d924239
--- /dev/null
+++ b/db/post_migrate/20190519130537_remove_boosts_widening_audience.rb
@@ -0,0 +1,23 @@
+class RemoveBoostsWideningAudience < ActiveRecord::Migration[5.2]
+ disable_ddl_transaction!
+
+ def up
+ public_boosts = Status.find_by_sql(<<-SQL)
+ SELECT boost.id
+ FROM statuses AS boost
+ LEFT JOIN statuses AS boosted ON boost.reblog_of_id = boosted.id
+ WHERE
+ boost.id > 101746055577600000
+ AND (boost.local = TRUE OR boost.uri IS NULL)
+ AND boost.visibility IN (0, 1)
+ AND boost.reblog_of_id IS NOT NULL
+ AND boosted.visibility = 2
+ SQL
+
+ RemovalWorker.push_bulk(public_boosts.pluck(:id))
+ end
+
+ def down
+ raise ActiveRecord::IrreversibleMigration
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 8584d8864..96961c812 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema.define(version: 2019_05_12_200918) do
+ActiveRecord::Schema.define(version: 2019_05_19_130537) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
diff --git a/docker-compose.yml b/docker-compose.yml
index 47662d470..93d47f1a0 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -13,7 +13,7 @@ services:
redis:
restart: always
- image: redis:4.0-alpine
+ image: redis:5.0-alpine
networks:
- internal_network
healthcheck: