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: