Merge remote-tracking branch 'upstream/master'
commit
0bf9261e65
|
@ -8,8 +8,17 @@
|
||||||
# /config/locales/*.fr.yml @żelipapą
|
# /config/locales/*.fr.yml @żelipapą
|
||||||
# /config/locales/fr.yml @żelipapą
|
# /config/locales/fr.yml @żelipapą
|
||||||
|
|
||||||
|
# Polish
|
||||||
/app/javascript/mastodon/locales/pl.json @m4sk1n
|
/app/javascript/mastodon/locales/pl.json @m4sk1n
|
||||||
/app/views/user_mailer/*.pl.html.erb @m4sk1n
|
/app/views/user_mailer/*.pl.html.erb @m4sk1n
|
||||||
/app/views/user_mailer/*.pl.text.erb @m4sk1n
|
/app/views/user_mailer/*.pl.text.erb @m4sk1n
|
||||||
/config/locales/*.pl.yml @m4sk1n
|
/config/locales/*.pl.yml @m4sk1n
|
||||||
/config/locales/pl.yml @m4sk1n
|
/config/locales/pl.yml @m4sk1n
|
||||||
|
|
||||||
|
# French
|
||||||
|
/app/javascript/mastodon/locales/fr.json @aldarone
|
||||||
|
/app/javascript/mastodon/locales/whitelist_fr.json @aldarone
|
||||||
|
/app/views/user_mailer/*.fr.html.erb @aldarone
|
||||||
|
/app/views/user_mailer/*.fr.text.erb @aldarone
|
||||||
|
/config/locales/*.fr.yml @aldarone
|
||||||
|
/config/locales/fr.yml @aldarone
|
||||||
|
|
|
@ -80,6 +80,7 @@ export default class Status extends ImmutablePureComponent {
|
||||||
|
|
||||||
componentWillReceiveProps (nextProps) {
|
componentWillReceiveProps (nextProps) {
|
||||||
if (nextProps.params.statusId !== this.props.params.statusId && nextProps.params.statusId) {
|
if (nextProps.params.statusId !== this.props.params.statusId && nextProps.params.statusId) {
|
||||||
|
this._scrolledIntoView = false;
|
||||||
this.props.dispatch(fetchStatus(nextProps.params.statusId));
|
this.props.dispatch(fetchStatus(nextProps.params.statusId));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -242,11 +243,17 @@ export default class Status extends ImmutablePureComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
componentDidUpdate () {
|
componentDidUpdate () {
|
||||||
|
if (this._scrolledIntoView) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const { status, ancestorsIds } = this.props;
|
const { status, ancestorsIds } = this.props;
|
||||||
|
|
||||||
if (status && ancestorsIds && ancestorsIds.size > 0) {
|
if (status && ancestorsIds && ancestorsIds.size > 0) {
|
||||||
const element = this.node.querySelectorAll('.focusable')[ancestorsIds.size];
|
const element = this.node.querySelectorAll('.focusable')[ancestorsIds.size - 1];
|
||||||
element.scrollIntoView();
|
|
||||||
|
element.scrollIntoView(true);
|
||||||
|
this._scrolledIntoView = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -168,8 +168,8 @@
|
||||||
"search_popout.search_format": "Recherche avancée",
|
"search_popout.search_format": "Recherche avancée",
|
||||||
"search_popout.tips.hashtag": "hashtag",
|
"search_popout.tips.hashtag": "hashtag",
|
||||||
"search_popout.tips.status": "statuts",
|
"search_popout.tips.status": "statuts",
|
||||||
"search_popout.tips.text": "Un texte simple renvoie les noms affichés, les noms d'utilisateur et les hashtags correspondants",
|
"search_popout.tips.text": "Un texte simple renvoie les noms affichés, les noms d'utilisateur⋅ice et les hashtags correspondants",
|
||||||
"search_popout.tips.user": "utilisateur",
|
"search_popout.tips.user": "utilisateur⋅ice",
|
||||||
"search_results.total": "{count, number} {count, plural, one {résultat} other {résultats}}",
|
"search_results.total": "{count, number} {count, plural, one {résultat} other {résultats}}",
|
||||||
"standalone.public_title": "Jeter un coup d’œil…",
|
"standalone.public_title": "Jeter un coup d’œil…",
|
||||||
"status.cannot_reblog": "Cette publication ne peut être boostée",
|
"status.cannot_reblog": "Cette publication ne peut être boostée",
|
||||||
|
|
|
@ -66,17 +66,17 @@
|
||||||
"embed.instructions": "Embed deze toot op jouw website, door de onderstaande code te kopiëren.",
|
"embed.instructions": "Embed deze toot op jouw website, door de onderstaande code te kopiëren.",
|
||||||
"embed.preview": "Zo komt het eruit te zien:",
|
"embed.preview": "Zo komt het eruit te zien:",
|
||||||
"emoji_button.activity": "Activiteiten",
|
"emoji_button.activity": "Activiteiten",
|
||||||
"emoji_button.custom": "Custom",
|
"emoji_button.custom": "Lokale emoji’s",
|
||||||
"emoji_button.flags": "Vlaggen",
|
"emoji_button.flags": "Vlaggen",
|
||||||
"emoji_button.food": "Eten en drinken",
|
"emoji_button.food": "Eten en drinken",
|
||||||
"emoji_button.label": "Emoji toevoegen",
|
"emoji_button.label": "Emoji toevoegen",
|
||||||
"emoji_button.nature": "Natuur",
|
"emoji_button.nature": "Natuur",
|
||||||
"emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
|
"emoji_button.not_found": "Geen emoji’s!! (╯°□°)╯︵ ┻━┻",
|
||||||
"emoji_button.objects": "Voorwerpen",
|
"emoji_button.objects": "Voorwerpen",
|
||||||
"emoji_button.people": "Mensen",
|
"emoji_button.people": "Mensen",
|
||||||
"emoji_button.recent": "Frequently used",
|
"emoji_button.recent": "Vaak gebruikt",
|
||||||
"emoji_button.search": "Zoeken...",
|
"emoji_button.search": "Zoeken...",
|
||||||
"emoji_button.search_results": "Search results",
|
"emoji_button.search_results": "Zoekresultaten",
|
||||||
"emoji_button.symbols": "Symbolen",
|
"emoji_button.symbols": "Symbolen",
|
||||||
"emoji_button.travel": "Reizen en plekken",
|
"emoji_button.travel": "Reizen en plekken",
|
||||||
"empty_column.community": "De lokale tijdlijn is nog leeg. Toot iets in het openbaar om de bal aan het rollen te krijgen!",
|
"empty_column.community": "De lokale tijdlijn is nog leeg. Toot iets in het openbaar om de bal aan het rollen te krijgen!",
|
||||||
|
@ -165,11 +165,11 @@
|
||||||
"report.submit": "Verzenden",
|
"report.submit": "Verzenden",
|
||||||
"report.target": "Rapporteren van",
|
"report.target": "Rapporteren van",
|
||||||
"search.placeholder": "Zoeken",
|
"search.placeholder": "Zoeken",
|
||||||
"search_popout.search_format": "Advanced search format",
|
"search_popout.search_format": "Geavanceerd zoeken",
|
||||||
"search_popout.tips.hashtag": "hashtag",
|
"search_popout.tips.hashtag": "hashtag",
|
||||||
"search_popout.tips.status": "status",
|
"search_popout.tips.status": "toot",
|
||||||
"search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
|
"search_popout.tips.text": "Gebruik gewone tekst om te zoeken op weergavenamen, gebruikersnamen en hashtags.",
|
||||||
"search_popout.tips.user": "user",
|
"search_popout.tips.user": "gebruiker",
|
||||||
"search_results.total": "{count, number} {count, plural, one {resultaat} other {resultaten}}",
|
"search_results.total": "{count, number} {count, plural, one {resultaat} other {resultaten}}",
|
||||||
"standalone.public_title": "Een kijkje binnenin...",
|
"standalone.public_title": "Een kijkje binnenin...",
|
||||||
"status.cannot_reblog": "Deze toot kan niet geboost worden",
|
"status.cannot_reblog": "Deze toot kan niet geboost worden",
|
||||||
|
@ -201,11 +201,11 @@
|
||||||
"tabs_bar.notifications": "Meldingen",
|
"tabs_bar.notifications": "Meldingen",
|
||||||
"upload_area.title": "Hierin slepen om te uploaden",
|
"upload_area.title": "Hierin slepen om te uploaden",
|
||||||
"upload_button.label": "Media toevoegen",
|
"upload_button.label": "Media toevoegen",
|
||||||
"upload_form.description": "Describe for the visually impaired",
|
"upload_form.description": "Omschrijf dit voor mensen met een visuele beperking",
|
||||||
"upload_form.undo": "Ongedaan maken",
|
"upload_form.undo": "Ongedaan maken",
|
||||||
"upload_progress.label": "Uploaden...",
|
"upload_progress.label": "Uploaden...",
|
||||||
"video.close": "Close video",
|
"video.close": "Video sluiten",
|
||||||
"video.exit_fullscreen": "Exit full screen",
|
"video.exit_fullscreen": "Volledig scherm sluiten",
|
||||||
"video.expand": "Video groter maken",
|
"video.expand": "Video groter maken",
|
||||||
"video.fullscreen": "Volledig scherm",
|
"video.fullscreen": "Volledig scherm",
|
||||||
"video.hide": "Video verbergen",
|
"video.hide": "Video verbergen",
|
||||||
|
|
|
@ -29,8 +29,7 @@ body {
|
||||||
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", mastodon-font-sans-serif, sans-serif;
|
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", mastodon-font-sans-serif, sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.app-body,
|
&.app-body {
|
||||||
&.error {
|
|
||||||
position: fixed;
|
position: fixed;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
@ -70,25 +69,34 @@ body {
|
||||||
}
|
}
|
||||||
|
|
||||||
&.error {
|
&.error {
|
||||||
|
position: absolute;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
color: $ui-primary-color;
|
color: $ui-primary-color;
|
||||||
padding: 20px;
|
background: $ui-base-color;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
padding: 0;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
.dialog img {
|
.dialog {
|
||||||
display: block;
|
vertical-align: middle;
|
||||||
max-width: 470px;
|
margin: 20px;
|
||||||
width: 100%;
|
|
||||||
height: auto;
|
|
||||||
margin-top: -120px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dialog h1 {
|
img {
|
||||||
font-size: 20px;
|
display: block;
|
||||||
line-height: 28px;
|
max-width: 470px;
|
||||||
font-weight: 400;
|
width: 100%;
|
||||||
|
height: auto;
|
||||||
|
margin-top: -120px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 20px;
|
||||||
|
line-height: 28px;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,10 @@
|
||||||
- content_for :header_tags do
|
- content_for :header_tags do
|
||||||
|
%link{ href: asset_pack_path('features/getting_started.js'), crossorigin: 'anonymous', rel: 'preload', as: 'script' }/
|
||||||
|
%link{ href: asset_pack_path('features/compose.js'), crossorigin: 'anonymous', rel: 'preload', as: 'script' }/
|
||||||
|
%link{ href: asset_pack_path('features/home_timeline.js'), crossorigin: 'anonymous', rel: 'preload', as: 'script' }/
|
||||||
|
%link{ href: asset_pack_path('features/notifications.js'), crossorigin: 'anonymous', rel: 'preload', as: 'script' }/
|
||||||
|
%link{ href: asset_pack_path('features/community_timeline.js'), crossorigin: 'anonymous', rel: 'preload', as: 'script' }/
|
||||||
|
%link{ href: asset_pack_path('features/public_timeline.js'), crossorigin: 'anonymous', rel: 'preload', as: 'script' }/
|
||||||
%meta{name: 'applicationServerKey', content: Rails.configuration.x.vapid_public_key}
|
%meta{name: 'applicationServerKey', content: Rails.configuration.x.vapid_public_key}
|
||||||
%script#initial-state{ type: 'application/json' }!= json_escape(@initial_state_json)
|
%script#initial-state{ type: 'application/json' }!= json_escape(@initial_state_json)
|
||||||
|
|
||||||
|
|
|
@ -20,14 +20,6 @@
|
||||||
|
|
||||||
= stylesheet_pack_tag 'common', media: 'all'
|
= stylesheet_pack_tag 'common', media: 'all'
|
||||||
= javascript_pack_tag 'common', integrity: true, crossorigin: 'anonymous'
|
= javascript_pack_tag 'common', integrity: true, crossorigin: 'anonymous'
|
||||||
|
|
||||||
%link{ href: asset_pack_path('features/getting_started.js'), crossorigin: 'anonymous', rel: 'preload', as: 'script' }/
|
|
||||||
%link{ href: asset_pack_path('features/compose.js'), crossorigin: 'anonymous', rel: 'preload', as: 'script' }/
|
|
||||||
%link{ href: asset_pack_path('features/home_timeline.js'), crossorigin: 'anonymous', rel: 'preload', as: 'script' }/
|
|
||||||
%link{ href: asset_pack_path('features/notifications.js'), crossorigin: 'anonymous', rel: 'preload', as: 'script' }/
|
|
||||||
%link{ href: asset_pack_path('features/community_timeline.js'), crossorigin: 'anonymous', rel: 'preload', as: 'script' }/
|
|
||||||
%link{ href: asset_pack_path('features/public_timeline.js'), crossorigin: 'anonymous', rel: 'preload', as: 'script' }/
|
|
||||||
|
|
||||||
= javascript_pack_tag "locale_#{I18n.locale}", integrity: true, crossorigin: 'anonymous'
|
= javascript_pack_tag "locale_#{I18n.locale}", integrity: true, crossorigin: 'anonymous'
|
||||||
= csrf_meta_tags
|
= csrf_meta_tags
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
- thumbnail = @instance_presenter.thumbnail
|
- thumbnail = @instance_presenter.thumbnail
|
||||||
= opengraph 'og:site_name', t('about.hosted_on', domain: site_hostname)
|
= opengraph 'og:site_name', t('about.hosted_on', domain: site_hostname)
|
||||||
= opengraph 'og:url', about_url
|
= opengraph 'og:url', url_for(only_path: false)
|
||||||
= opengraph 'og:type', 'website'
|
= opengraph 'og:type', 'website'
|
||||||
= opengraph 'og:title', @instance_presenter.site_title
|
= opengraph 'og:title', @instance_presenter.site_title
|
||||||
= opengraph 'og:description', strip_tags(@instance_presenter.site_description.presence || t('about.about_mastodon_html'))
|
= opengraph 'og:description', strip_tags(@instance_presenter.site_description.presence || t('about.about_mastodon_html'))
|
||||||
|
|
|
@ -335,7 +335,10 @@ module Mastodon
|
||||||
|
|
||||||
start_arel = table.project(table[:id]).order(table[:id].asc).take(1)
|
start_arel = table.project(table[:id]).order(table[:id].asc).take(1)
|
||||||
start_arel = yield table, start_arel if block_given?
|
start_arel = yield table, start_arel if block_given?
|
||||||
start_id = exec_query(start_arel.to_sql).to_hash.first['id'].to_i
|
first_row = exec_query(start_arel.to_sql).to_hash.first
|
||||||
|
# In case there are no rows but we didn't catch it in the estimated size:
|
||||||
|
return unless first_row
|
||||||
|
start_id = first_row['id'].to_i
|
||||||
|
|
||||||
say "Migrating #{table_name}.#{column} (~#{total.to_i} rows)"
|
say "Migrating #{table_name}.#{column} (~#{total.to_i} rows)"
|
||||||
|
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 9.9 KiB After Width: | Height: | Size: 10 KiB |
Binary file not shown.
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 6.0 KiB |
Binary file not shown.
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 5.5 KiB |
Loading…
Reference in New Issue