Merge commit 'a7264a2b42631bd876d114b96f689492e2908a8d' into glitch-soc/merge-upstream
Conflicts: - `app/views/layouts/application.html.haml`: Conflict because of glitch-soc's different theming system. Ported upstream's change.
This commit is contained in:
commit
8089fa6935
|
@ -47,4 +47,4 @@ jobs:
|
||||||
|
|
||||||
- name: Run brakeman
|
- name: Run brakeman
|
||||||
if: always() # Run both checks, even if the first failed
|
if: always() # Run both checks, even if the first failed
|
||||||
run: bundle exec brakeman
|
run: bin/brakeman
|
||||||
|
|
|
@ -17,7 +17,7 @@ jobs:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Check for merge conflicts
|
- name: Check for merge conflicts
|
||||||
uses: eps1lon/actions-label-merge-conflict@releases/2.x
|
uses: eps1lon/actions-label-merge-conflict@v3
|
||||||
with:
|
with:
|
||||||
dirtyLabel: 'rebase needed :construction:'
|
dirtyLabel: 'rebase needed :construction:'
|
||||||
repoToken: '${{ secrets.GITHUB_TOKEN }}'
|
repoToken: '${{ secrets.GITHUB_TOKEN }}'
|
||||||
|
|
81
Dockerfile
81
Dockerfile
|
@ -48,8 +48,6 @@ ENV \
|
||||||
# Apply Mastodon version information
|
# Apply Mastodon version information
|
||||||
MASTODON_VERSION_PRERELEASE="${MASTODON_VERSION_PRERELEASE}" \
|
MASTODON_VERSION_PRERELEASE="${MASTODON_VERSION_PRERELEASE}" \
|
||||||
MASTODON_VERSION_METADATA="${MASTODON_VERSION_METADATA}" \
|
MASTODON_VERSION_METADATA="${MASTODON_VERSION_METADATA}" \
|
||||||
# Enable libvips
|
|
||||||
MASTODON_USE_LIBVIPS=true \
|
|
||||||
# Apply Mastodon static files and YJIT options
|
# Apply Mastodon static files and YJIT options
|
||||||
RAILS_SERVE_STATIC_FILES=${RAILS_SERVE_STATIC_FILES} \
|
RAILS_SERVE_STATIC_FILES=${RAILS_SERVE_STATIC_FILES} \
|
||||||
RUBY_YJIT_ENABLE=${RUBY_YJIT_ENABLE} \
|
RUBY_YJIT_ENABLE=${RUBY_YJIT_ENABLE} \
|
||||||
|
@ -67,7 +65,9 @@ ENV \
|
||||||
DEBIAN_FRONTEND="noninteractive" \
|
DEBIAN_FRONTEND="noninteractive" \
|
||||||
PATH="${PATH}:/opt/ruby/bin:/opt/mastodon/bin" \
|
PATH="${PATH}:/opt/ruby/bin:/opt/mastodon/bin" \
|
||||||
# Optimize jemalloc 5.x performance
|
# Optimize jemalloc 5.x performance
|
||||||
MALLOC_CONF="narenas:2,background_thread:true,thp:never,dirty_decay_ms:1000,muzzy_decay_ms:0"
|
MALLOC_CONF="narenas:2,background_thread:true,thp:never,dirty_decay_ms:1000,muzzy_decay_ms:0" \
|
||||||
|
# Enable libvips, should not be changed
|
||||||
|
MASTODON_USE_LIBVIPS=true
|
||||||
|
|
||||||
# Set default shell used for running commands
|
# Set default shell used for running commands
|
||||||
SHELL ["/bin/bash", "-o", "pipefail", "-o", "errexit", "-c"]
|
SHELL ["/bin/bash", "-o", "pipefail", "-o", "errexit", "-c"]
|
||||||
|
@ -104,7 +104,6 @@ RUN \
|
||||||
curl \
|
curl \
|
||||||
ffmpeg \
|
ffmpeg \
|
||||||
file \
|
file \
|
||||||
libvips42 \
|
|
||||||
libjemalloc2 \
|
libjemalloc2 \
|
||||||
patchelf \
|
patchelf \
|
||||||
procps \
|
procps \
|
||||||
|
@ -138,18 +137,31 @@ RUN \
|
||||||
--mount=type=cache,id=apt-lib-${TARGETPLATFORM},target=/var/lib/apt,sharing=locked \
|
--mount=type=cache,id=apt-lib-${TARGETPLATFORM},target=/var/lib/apt,sharing=locked \
|
||||||
# Install build tools and bundler dependencies from APT
|
# Install build tools and bundler dependencies from APT
|
||||||
apt-get install -y --no-install-recommends \
|
apt-get install -y --no-install-recommends \
|
||||||
g++ \
|
build-essential \
|
||||||
gcc \
|
|
||||||
git \
|
git \
|
||||||
libgdbm-dev \
|
libgdbm-dev \
|
||||||
|
libglib2.0-dev \
|
||||||
libgmp-dev \
|
libgmp-dev \
|
||||||
libicu-dev \
|
libicu-dev \
|
||||||
libidn-dev \
|
libidn-dev \
|
||||||
libpq-dev \
|
libpq-dev \
|
||||||
libssl-dev \
|
libssl-dev \
|
||||||
make \
|
meson \
|
||||||
|
pkg-config \
|
||||||
shared-mime-info \
|
shared-mime-info \
|
||||||
zlib1g-dev \
|
# libvips components
|
||||||
|
libcgif-dev \
|
||||||
|
libexif-dev \
|
||||||
|
libexpat1-dev \
|
||||||
|
libgirepository1.0-dev \
|
||||||
|
libheif-dev \
|
||||||
|
libimagequant-dev \
|
||||||
|
libjpeg62-turbo-dev \
|
||||||
|
liblcms2-dev \
|
||||||
|
liborc-dev \
|
||||||
|
libspng-dev \
|
||||||
|
libtiff-dev \
|
||||||
|
libwebp-dev \
|
||||||
;
|
;
|
||||||
|
|
||||||
RUN \
|
RUN \
|
||||||
|
@ -158,6 +170,26 @@ RUN \
|
||||||
corepack enable; \
|
corepack enable; \
|
||||||
corepack prepare --activate;
|
corepack prepare --activate;
|
||||||
|
|
||||||
|
# Create temporary libvips specific build layer from build layer
|
||||||
|
FROM build as libvips
|
||||||
|
|
||||||
|
# libvips version to compile, change with [--build-arg VIPS_VERSION="8.15.2"]
|
||||||
|
# renovate: datasource=github-releases depName=libvips packageName=libvips/libvips
|
||||||
|
ARG VIPS_VERSION=8.15.2
|
||||||
|
# libvips download URL, change with [--build-arg VIPS_URL="https://github.com/libvips/libvips/releases/download"]
|
||||||
|
ARG VIPS_URL=https://github.com/libvips/libvips/releases/download
|
||||||
|
|
||||||
|
WORKDIR /usr/local/libvips/src
|
||||||
|
|
||||||
|
RUN \
|
||||||
|
curl -sSL -o vips-${VIPS_VERSION}.tar.xz ${VIPS_URL}/v${VIPS_VERSION}/vips-${VIPS_VERSION}.tar.xz; \
|
||||||
|
tar xf vips-${VIPS_VERSION}.tar.xz; \
|
||||||
|
cd vips-${VIPS_VERSION}; \
|
||||||
|
meson setup build --prefix /usr/local/libvips --libdir=lib -Ddeprecated=false -Dintrospection=disabled -Dmodules=disabled -Dexamples=false; \
|
||||||
|
cd build; \
|
||||||
|
ninja; \
|
||||||
|
ninja install;
|
||||||
|
|
||||||
# Create temporary bundler specific build layer from build layer
|
# Create temporary bundler specific build layer from build layer
|
||||||
FROM build as bundler
|
FROM build as bundler
|
||||||
|
|
||||||
|
@ -207,10 +239,14 @@ COPY . /opt/mastodon/
|
||||||
COPY --from=yarn /opt/mastodon /opt/mastodon/
|
COPY --from=yarn /opt/mastodon /opt/mastodon/
|
||||||
COPY --from=bundler /opt/mastodon /opt/mastodon/
|
COPY --from=bundler /opt/mastodon /opt/mastodon/
|
||||||
COPY --from=bundler /usr/local/bundle/ /usr/local/bundle/
|
COPY --from=bundler /usr/local/bundle/ /usr/local/bundle/
|
||||||
|
# Copy libvips components to layer for precompiler
|
||||||
|
COPY --from=libvips /usr/local/libvips/bin /usr/local/bin
|
||||||
|
COPY --from=libvips /usr/local/libvips/lib /usr/local/lib
|
||||||
|
|
||||||
ARG TARGETPLATFORM
|
ARG TARGETPLATFORM
|
||||||
|
|
||||||
RUN \
|
RUN \
|
||||||
|
ldconfig; \
|
||||||
# Use Ruby on Rails to create Mastodon assets
|
# Use Ruby on Rails to create Mastodon assets
|
||||||
SECRET_KEY_BASE_DUMMY=1 \
|
SECRET_KEY_BASE_DUMMY=1 \
|
||||||
bundle exec rails assets:precompile; \
|
bundle exec rails assets:precompile; \
|
||||||
|
@ -232,12 +268,27 @@ RUN \
|
||||||
--mount=type=cache,id=yarn-cache-${TARGETPLATFORM},target=/usr/local/share/.cache/yarn,sharing=locked \
|
--mount=type=cache,id=yarn-cache-${TARGETPLATFORM},target=/usr/local/share/.cache/yarn,sharing=locked \
|
||||||
# Apt update install non-dev versions of necessary components
|
# Apt update install non-dev versions of necessary components
|
||||||
apt-get install -y --no-install-recommends \
|
apt-get install -y --no-install-recommends \
|
||||||
libssl3 \
|
libexpat1 \
|
||||||
libpq5 \
|
libglib2.0-0 \
|
||||||
libicu72 \
|
libicu72 \
|
||||||
libidn12 \
|
libidn12 \
|
||||||
|
libpq5 \
|
||||||
libreadline8 \
|
libreadline8 \
|
||||||
|
libssl3 \
|
||||||
libyaml-0-2 \
|
libyaml-0-2 \
|
||||||
|
# libvips components
|
||||||
|
libcgif0 \
|
||||||
|
libexif12 \
|
||||||
|
libheif1 \
|
||||||
|
libimagequant0 \
|
||||||
|
libjpeg62-turbo \
|
||||||
|
liblcms2-2 \
|
||||||
|
liborc-0.4-0 \
|
||||||
|
libspng0 \
|
||||||
|
libtiff6 \
|
||||||
|
libwebp7 \
|
||||||
|
libwebpdemux2 \
|
||||||
|
libwebpmux3 \
|
||||||
;
|
;
|
||||||
|
|
||||||
# Copy Mastodon sources into final layer
|
# Copy Mastodon sources into final layer
|
||||||
|
@ -248,9 +299,17 @@ COPY --from=precompiler /opt/mastodon/public/packs /opt/mastodon/public/packs
|
||||||
COPY --from=precompiler /opt/mastodon/public/assets /opt/mastodon/public/assets
|
COPY --from=precompiler /opt/mastodon/public/assets /opt/mastodon/public/assets
|
||||||
# Copy bundler components to layer
|
# Copy bundler components to layer
|
||||||
COPY --from=bundler /usr/local/bundle/ /usr/local/bundle/
|
COPY --from=bundler /usr/local/bundle/ /usr/local/bundle/
|
||||||
|
# Copy libvips components to layer
|
||||||
|
COPY --from=libvips /usr/local/libvips/bin /usr/local/bin
|
||||||
|
COPY --from=libvips /usr/local/libvips/lib /usr/local/lib
|
||||||
|
|
||||||
RUN \
|
RUN \
|
||||||
# Precompile bootsnap code for faster Rails startup
|
ldconfig; \
|
||||||
|
# Smoketest media processors
|
||||||
|
vips -v;
|
||||||
|
|
||||||
|
RUN \
|
||||||
|
# Precompile bootsnap code for faster Rails startup
|
||||||
bundle exec bootsnap precompile --gemfile app/ lib/;
|
bundle exec bootsnap precompile --gemfile app/ lib/;
|
||||||
|
|
||||||
RUN \
|
RUN \
|
||||||
|
|
|
@ -109,7 +109,7 @@ GEM
|
||||||
aws-sdk-kms (1.83.0)
|
aws-sdk-kms (1.83.0)
|
||||||
aws-sdk-core (~> 3, >= 3.197.0)
|
aws-sdk-core (~> 3, >= 3.197.0)
|
||||||
aws-sigv4 (~> 1.1)
|
aws-sigv4 (~> 1.1)
|
||||||
aws-sdk-s3 (1.152.2)
|
aws-sdk-s3 (1.152.3)
|
||||||
aws-sdk-core (~> 3, >= 3.197.0)
|
aws-sdk-core (~> 3, >= 3.197.0)
|
||||||
aws-sdk-kms (~> 1)
|
aws-sdk-kms (~> 1)
|
||||||
aws-sigv4 (~> 1.8)
|
aws-sigv4 (~> 1.8)
|
||||||
|
@ -445,7 +445,7 @@ GEM
|
||||||
net-smtp (0.5.0)
|
net-smtp (0.5.0)
|
||||||
net-protocol
|
net-protocol
|
||||||
nio4r (2.7.3)
|
nio4r (2.7.3)
|
||||||
nokogiri (1.16.5)
|
nokogiri (1.16.6)
|
||||||
mini_portile2 (~> 2.8.2)
|
mini_portile2 (~> 2.8.2)
|
||||||
racc (~> 1.4)
|
racc (~> 1.4)
|
||||||
nsa (0.3.0)
|
nsa (0.3.0)
|
||||||
|
|
|
@ -15,15 +15,15 @@ module Admin::ActionLogsHelper
|
||||||
link_to log.human_identifier, admin_roles_path(log.target_id)
|
link_to log.human_identifier, admin_roles_path(log.target_id)
|
||||||
when 'Report'
|
when 'Report'
|
||||||
link_to "##{log.human_identifier.presence || log.target_id}", admin_report_path(log.target_id)
|
link_to "##{log.human_identifier.presence || log.target_id}", admin_report_path(log.target_id)
|
||||||
when 'DomainBlock', 'DomainAllow', 'EmailDomainBlock', 'UnavailableDomain'
|
when 'Instance', 'DomainBlock', 'DomainAllow', 'UnavailableDomain'
|
||||||
link_to log.human_identifier, "https://#{log.human_identifier.presence}"
|
log.human_identifier.present? ? link_to(log.human_identifier, admin_instance_path(log.human_identifier)) : I18n.t('admin.action_logs.unavailable_instance')
|
||||||
when 'Status'
|
when 'Status'
|
||||||
link_to log.human_identifier, log.permalink
|
link_to log.human_identifier, log.permalink
|
||||||
when 'AccountWarning'
|
when 'AccountWarning'
|
||||||
link_to log.human_identifier, disputes_strike_path(log.target_id)
|
link_to log.human_identifier, disputes_strike_path(log.target_id)
|
||||||
when 'Announcement'
|
when 'Announcement'
|
||||||
link_to truncate(log.human_identifier), edit_admin_announcement_path(log.target_id)
|
link_to truncate(log.human_identifier), edit_admin_announcement_path(log.target_id)
|
||||||
when 'IpBlock', 'Instance', 'CustomEmoji'
|
when 'IpBlock', 'EmailDomainBlock', 'CustomEmoji'
|
||||||
log.human_identifier
|
log.human_identifier
|
||||||
when 'CanonicalEmailBlock'
|
when 'CanonicalEmailBlock'
|
||||||
content_tag(:samp, (log.human_identifier.presence || '')[0...7], title: log.human_identifier)
|
content_tag(:samp, (log.human_identifier.presence || '')[0...7], title: log.human_identifier)
|
||||||
|
|
|
@ -110,18 +110,6 @@ class LanguageDropdownMenu extends PureComponent {
|
||||||
}).map(result => result.obj);
|
}).map(result => result.obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
frequentlyUsed () {
|
|
||||||
const { languages, value } = this.props;
|
|
||||||
const current = languages.find(lang => lang[0] === value);
|
|
||||||
const results = [];
|
|
||||||
|
|
||||||
if (current) {
|
|
||||||
results.push(current);
|
|
||||||
}
|
|
||||||
|
|
||||||
return results;
|
|
||||||
}
|
|
||||||
|
|
||||||
handleClick = e => {
|
handleClick = e => {
|
||||||
const value = e.currentTarget.getAttribute('data-index');
|
const value = e.currentTarget.getAttribute('data-index');
|
||||||
|
|
||||||
|
|
|
@ -415,6 +415,7 @@
|
||||||
"limited_account_hint.title": "Aquest perfil l'han amagat els moderadors de {domain}.",
|
"limited_account_hint.title": "Aquest perfil l'han amagat els moderadors de {domain}.",
|
||||||
"link_preview.author": "Per {name}",
|
"link_preview.author": "Per {name}",
|
||||||
"link_preview.more_from_author": "Més de {name}",
|
"link_preview.more_from_author": "Més de {name}",
|
||||||
|
"link_preview.shares": "{count, plural, one {{counter} publicació} other {{counter} publicacions}}",
|
||||||
"lists.account.add": "Afegeix a la llista",
|
"lists.account.add": "Afegeix a la llista",
|
||||||
"lists.account.remove": "Elimina de la llista",
|
"lists.account.remove": "Elimina de la llista",
|
||||||
"lists.delete": "Elimina la llista",
|
"lists.delete": "Elimina la llista",
|
||||||
|
|
|
@ -415,6 +415,7 @@
|
||||||
"limited_account_hint.title": "Denne profil er blevet skjult af {domain}-moderatorerne.",
|
"limited_account_hint.title": "Denne profil er blevet skjult af {domain}-moderatorerne.",
|
||||||
"link_preview.author": "Af {name}",
|
"link_preview.author": "Af {name}",
|
||||||
"link_preview.more_from_author": "Mere fra {name}",
|
"link_preview.more_from_author": "Mere fra {name}",
|
||||||
|
"link_preview.shares": "{count, plural, one {{counter} indlæg} other {{counter} indlæg}}",
|
||||||
"lists.account.add": "Føj til liste",
|
"lists.account.add": "Føj til liste",
|
||||||
"lists.account.remove": "Fjern fra liste",
|
"lists.account.remove": "Fjern fra liste",
|
||||||
"lists.delete": "Slet liste",
|
"lists.delete": "Slet liste",
|
||||||
|
|
|
@ -415,6 +415,7 @@
|
||||||
"limited_account_hint.title": "Dieses Profil wurde von den Moderator*innen von {domain} ausgeblendet.",
|
"limited_account_hint.title": "Dieses Profil wurde von den Moderator*innen von {domain} ausgeblendet.",
|
||||||
"link_preview.author": "Von {name}",
|
"link_preview.author": "Von {name}",
|
||||||
"link_preview.more_from_author": "Mehr von {name}",
|
"link_preview.more_from_author": "Mehr von {name}",
|
||||||
|
"link_preview.shares": "{count, plural, one {{counter} Beitrag} other {{counter} Beiträge}}",
|
||||||
"lists.account.add": "Zur Liste hinzufügen",
|
"lists.account.add": "Zur Liste hinzufügen",
|
||||||
"lists.account.remove": "Von der Liste entfernen",
|
"lists.account.remove": "Von der Liste entfernen",
|
||||||
"lists.delete": "Liste löschen",
|
"lists.delete": "Liste löschen",
|
||||||
|
|
|
@ -415,6 +415,7 @@
|
||||||
"limited_account_hint.title": "Este perfil fue ocultado por los moderadores de {domain}.",
|
"limited_account_hint.title": "Este perfil fue ocultado por los moderadores de {domain}.",
|
||||||
"link_preview.author": "Por {name}",
|
"link_preview.author": "Por {name}",
|
||||||
"link_preview.more_from_author": "Más de {name}",
|
"link_preview.more_from_author": "Más de {name}",
|
||||||
|
"link_preview.shares": "{count, plural, one {{counter} mensaje} other {{counter} mensajes}}",
|
||||||
"lists.account.add": "Agregar a lista",
|
"lists.account.add": "Agregar a lista",
|
||||||
"lists.account.remove": "Quitar de lista",
|
"lists.account.remove": "Quitar de lista",
|
||||||
"lists.delete": "Eliminar lista",
|
"lists.delete": "Eliminar lista",
|
||||||
|
|
|
@ -415,6 +415,7 @@
|
||||||
"limited_account_hint.title": "Este perfil ha sido ocultado por los moderadores de {domain}.",
|
"limited_account_hint.title": "Este perfil ha sido ocultado por los moderadores de {domain}.",
|
||||||
"link_preview.author": "Por {name}",
|
"link_preview.author": "Por {name}",
|
||||||
"link_preview.more_from_author": "Más de {name}",
|
"link_preview.more_from_author": "Más de {name}",
|
||||||
|
"link_preview.shares": "{count, plural, one {{counter} publicación} other {{counter} publicaciones}}",
|
||||||
"lists.account.add": "Añadir a lista",
|
"lists.account.add": "Añadir a lista",
|
||||||
"lists.account.remove": "Quitar de lista",
|
"lists.account.remove": "Quitar de lista",
|
||||||
"lists.delete": "Borrar lista",
|
"lists.delete": "Borrar lista",
|
||||||
|
|
|
@ -415,6 +415,7 @@
|
||||||
"limited_account_hint.title": "Este perfil ha sido ocultado por los moderadores de {domain}.",
|
"limited_account_hint.title": "Este perfil ha sido ocultado por los moderadores de {domain}.",
|
||||||
"link_preview.author": "Por {name}",
|
"link_preview.author": "Por {name}",
|
||||||
"link_preview.more_from_author": "Más de {name}",
|
"link_preview.more_from_author": "Más de {name}",
|
||||||
|
"link_preview.shares": "{count, plural, one {{counter} publicación} other {{counter} publicaciones}}",
|
||||||
"lists.account.add": "Añadir a lista",
|
"lists.account.add": "Añadir a lista",
|
||||||
"lists.account.remove": "Quitar de lista",
|
"lists.account.remove": "Quitar de lista",
|
||||||
"lists.delete": "Borrar lista",
|
"lists.delete": "Borrar lista",
|
||||||
|
|
|
@ -415,6 +415,7 @@
|
||||||
"limited_account_hint.title": "Palvelimen {domain} valvojat ovat piilottaneet tämän käyttäjätilin.",
|
"limited_account_hint.title": "Palvelimen {domain} valvojat ovat piilottaneet tämän käyttäjätilin.",
|
||||||
"link_preview.author": "Julkaissut {name}",
|
"link_preview.author": "Julkaissut {name}",
|
||||||
"link_preview.more_from_author": "Lisää käyttäjältä {name}",
|
"link_preview.more_from_author": "Lisää käyttäjältä {name}",
|
||||||
|
"link_preview.shares": "{count, plural, one {{counter} julkaisu} other {{counter} julkaisua}}",
|
||||||
"lists.account.add": "Lisää listalle",
|
"lists.account.add": "Lisää listalle",
|
||||||
"lists.account.remove": "Poista listalta",
|
"lists.account.remove": "Poista listalta",
|
||||||
"lists.delete": "Poista lista",
|
"lists.delete": "Poista lista",
|
||||||
|
|
|
@ -415,6 +415,7 @@
|
||||||
"limited_account_hint.title": "Hesin vangin er fjaldur av kjakleiðarunum á {domain}.",
|
"limited_account_hint.title": "Hesin vangin er fjaldur av kjakleiðarunum á {domain}.",
|
||||||
"link_preview.author": "Av {name}",
|
"link_preview.author": "Av {name}",
|
||||||
"link_preview.more_from_author": "Meira frá {name}",
|
"link_preview.more_from_author": "Meira frá {name}",
|
||||||
|
"link_preview.shares": "{count, plural, one {{counter} postur} other {{counter} postar}}",
|
||||||
"lists.account.add": "Legg afturat lista",
|
"lists.account.add": "Legg afturat lista",
|
||||||
"lists.account.remove": "Tak av lista",
|
"lists.account.remove": "Tak av lista",
|
||||||
"lists.delete": "Strika lista",
|
"lists.delete": "Strika lista",
|
||||||
|
|
|
@ -415,6 +415,7 @@
|
||||||
"limited_account_hint.title": "Este perfil foi agochado pola moderación de {domain}.",
|
"limited_account_hint.title": "Este perfil foi agochado pola moderación de {domain}.",
|
||||||
"link_preview.author": "Por {name}",
|
"link_preview.author": "Por {name}",
|
||||||
"link_preview.more_from_author": "Máis de {name}",
|
"link_preview.more_from_author": "Máis de {name}",
|
||||||
|
"link_preview.shares": "{count, plural, one {{counter} publicación} other {{counter} publicacións}}",
|
||||||
"lists.account.add": "Engadir á listaxe",
|
"lists.account.add": "Engadir á listaxe",
|
||||||
"lists.account.remove": "Eliminar da listaxe",
|
"lists.account.remove": "Eliminar da listaxe",
|
||||||
"lists.delete": "Eliminar listaxe",
|
"lists.delete": "Eliminar listaxe",
|
||||||
|
|
|
@ -415,6 +415,7 @@
|
||||||
"limited_account_hint.title": "Þetta notandasnið hefur verið falið af umsjónarmönnum {domain}.",
|
"limited_account_hint.title": "Þetta notandasnið hefur verið falið af umsjónarmönnum {domain}.",
|
||||||
"link_preview.author": "Eftir {name}",
|
"link_preview.author": "Eftir {name}",
|
||||||
"link_preview.more_from_author": "Meira frá {name}",
|
"link_preview.more_from_author": "Meira frá {name}",
|
||||||
|
"link_preview.shares": "{count, plural, one {{counter} færsla} other {{counter} færslur}}",
|
||||||
"lists.account.add": "Bæta á lista",
|
"lists.account.add": "Bæta á lista",
|
||||||
"lists.account.remove": "Fjarlægja af lista",
|
"lists.account.remove": "Fjarlægja af lista",
|
||||||
"lists.delete": "Eyða lista",
|
"lists.delete": "Eyða lista",
|
||||||
|
|
|
@ -415,6 +415,7 @@
|
||||||
"limited_account_hint.title": "Questo profilo è stato nascosto dai moderatori di {domain}.",
|
"limited_account_hint.title": "Questo profilo è stato nascosto dai moderatori di {domain}.",
|
||||||
"link_preview.author": "Di {name}",
|
"link_preview.author": "Di {name}",
|
||||||
"link_preview.more_from_author": "Altro da {name}",
|
"link_preview.more_from_author": "Altro da {name}",
|
||||||
|
"link_preview.shares": "{count, plural,one {{counter} post}other {{counter} post}}",
|
||||||
"lists.account.add": "Aggiungi all'elenco",
|
"lists.account.add": "Aggiungi all'elenco",
|
||||||
"lists.account.remove": "Rimuovi dall'elenco",
|
"lists.account.remove": "Rimuovi dall'elenco",
|
||||||
"lists.delete": "Elimina elenco",
|
"lists.delete": "Elimina elenco",
|
||||||
|
|
|
@ -415,6 +415,7 @@
|
||||||
"limited_account_hint.title": "Dit profiel is door de moderatoren van {domain} verborgen.",
|
"limited_account_hint.title": "Dit profiel is door de moderatoren van {domain} verborgen.",
|
||||||
"link_preview.author": "Door {name}",
|
"link_preview.author": "Door {name}",
|
||||||
"link_preview.more_from_author": "Meer van {name}",
|
"link_preview.more_from_author": "Meer van {name}",
|
||||||
|
"link_preview.shares": "{count, plural, one {{counter} bericht} other {{counter} berichten}}",
|
||||||
"lists.account.add": "Aan lijst toevoegen",
|
"lists.account.add": "Aan lijst toevoegen",
|
||||||
"lists.account.remove": "Uit lijst verwijderen",
|
"lists.account.remove": "Uit lijst verwijderen",
|
||||||
"lists.delete": "Lijst verwijderen",
|
"lists.delete": "Lijst verwijderen",
|
||||||
|
|
|
@ -414,6 +414,8 @@
|
||||||
"limited_account_hint.action": "Vis profilen likevel",
|
"limited_account_hint.action": "Vis profilen likevel",
|
||||||
"limited_account_hint.title": "Denne profilen er skjult av moderatorane på {domain}.",
|
"limited_account_hint.title": "Denne profilen er skjult av moderatorane på {domain}.",
|
||||||
"link_preview.author": "Av {name}",
|
"link_preview.author": "Av {name}",
|
||||||
|
"link_preview.more_from_author": "Meir frå {name}",
|
||||||
|
"link_preview.shares": "{count, plural,one {{counter} innlegg} other {{counter} innlegg}}",
|
||||||
"lists.account.add": "Legg til i liste",
|
"lists.account.add": "Legg til i liste",
|
||||||
"lists.account.remove": "Fjern frå liste",
|
"lists.account.remove": "Fjern frå liste",
|
||||||
"lists.delete": "Slett liste",
|
"lists.delete": "Slett liste",
|
||||||
|
|
|
@ -415,6 +415,7 @@
|
||||||
"limited_account_hint.title": "Ten profil został ukryty przez moderatorów {domain}.",
|
"limited_account_hint.title": "Ten profil został ukryty przez moderatorów {domain}.",
|
||||||
"link_preview.author": "{name}",
|
"link_preview.author": "{name}",
|
||||||
"link_preview.more_from_author": "Więcej od {name}",
|
"link_preview.more_from_author": "Więcej od {name}",
|
||||||
|
"link_preview.shares": "{count, plural, one {{counter} wpis} few {{counter} wpisy} many {{counter} wpisów} other {{counter} wpisów}}",
|
||||||
"lists.account.add": "Dodaj do listy",
|
"lists.account.add": "Dodaj do listy",
|
||||||
"lists.account.remove": "Usunąć z listy",
|
"lists.account.remove": "Usunąć z listy",
|
||||||
"lists.delete": "Usuń listę",
|
"lists.delete": "Usuń listę",
|
||||||
|
|
|
@ -415,6 +415,7 @@
|
||||||
"limited_account_hint.title": "Este perfil foi ocultado pelos moderadores de {domain}.",
|
"limited_account_hint.title": "Este perfil foi ocultado pelos moderadores de {domain}.",
|
||||||
"link_preview.author": "Por {name}",
|
"link_preview.author": "Por {name}",
|
||||||
"link_preview.more_from_author": "Mais de {name}",
|
"link_preview.more_from_author": "Mais de {name}",
|
||||||
|
"link_preview.shares": "{count, plural, one {{counter} publicação} other {{counter} publicações}}",
|
||||||
"lists.account.add": "Adicionar à lista",
|
"lists.account.add": "Adicionar à lista",
|
||||||
"lists.account.remove": "Remover da lista",
|
"lists.account.remove": "Remover da lista",
|
||||||
"lists.delete": "Eliminar lista",
|
"lists.delete": "Eliminar lista",
|
||||||
|
|
|
@ -415,6 +415,7 @@
|
||||||
"limited_account_hint.title": "Profil so moderatorji strežnika {domain} skrili.",
|
"limited_account_hint.title": "Profil so moderatorji strežnika {domain} skrili.",
|
||||||
"link_preview.author": "Avtor_ica {name}",
|
"link_preview.author": "Avtor_ica {name}",
|
||||||
"link_preview.more_from_author": "Več od {name}",
|
"link_preview.more_from_author": "Več od {name}",
|
||||||
|
"link_preview.shares": "{count, plural, one {{counter} objava} two {{counter} objavi} few {{counter} objave} other {{counter} objav}}",
|
||||||
"lists.account.add": "Dodaj na seznam",
|
"lists.account.add": "Dodaj na seznam",
|
||||||
"lists.account.remove": "Odstrani s seznama",
|
"lists.account.remove": "Odstrani s seznama",
|
||||||
"lists.delete": "Izbriši seznam",
|
"lists.delete": "Izbriši seznam",
|
||||||
|
|
|
@ -415,6 +415,7 @@
|
||||||
"limited_account_hint.title": "Denna profil har dolts av {domain}s moderatorer.",
|
"limited_account_hint.title": "Denna profil har dolts av {domain}s moderatorer.",
|
||||||
"link_preview.author": "Av {name}",
|
"link_preview.author": "Av {name}",
|
||||||
"link_preview.more_from_author": "Mer från {name}",
|
"link_preview.more_from_author": "Mer från {name}",
|
||||||
|
"link_preview.shares": "{count, plural, one {{counter} inlägg} other {{counter} inlägg}}",
|
||||||
"lists.account.add": "Lägg till i lista",
|
"lists.account.add": "Lägg till i lista",
|
||||||
"lists.account.remove": "Ta bort från lista",
|
"lists.account.remove": "Ta bort från lista",
|
||||||
"lists.delete": "Radera lista",
|
"lists.delete": "Radera lista",
|
||||||
|
|
|
@ -415,6 +415,7 @@
|
||||||
"limited_account_hint.title": "此账号资料已被 {domain} 管理员隐藏。",
|
"limited_account_hint.title": "此账号资料已被 {domain} 管理员隐藏。",
|
||||||
"link_preview.author": "由 {name}",
|
"link_preview.author": "由 {name}",
|
||||||
"link_preview.more_from_author": "查看 {name} 的更多内容",
|
"link_preview.more_from_author": "查看 {name} 的更多内容",
|
||||||
|
"link_preview.shares": "{count, plural, other {{counter} 条嘟文}}",
|
||||||
"lists.account.add": "添加到列表",
|
"lists.account.add": "添加到列表",
|
||||||
"lists.account.remove": "从列表中移除",
|
"lists.account.remove": "从列表中移除",
|
||||||
"lists.delete": "删除列表",
|
"lists.delete": "删除列表",
|
||||||
|
|
|
@ -415,6 +415,7 @@
|
||||||
"limited_account_hint.title": "此個人檔案已被 {domain} 的管理員隱藏。",
|
"limited_account_hint.title": "此個人檔案已被 {domain} 的管理員隱藏。",
|
||||||
"link_preview.author": "來自 {name}",
|
"link_preview.author": "來自 {name}",
|
||||||
"link_preview.more_from_author": "來自 {name} 之更多內容",
|
"link_preview.more_from_author": "來自 {name} 之更多內容",
|
||||||
|
"link_preview.shares": "{count, plural, other {{count} 則嘟文}}",
|
||||||
"lists.account.add": "新增至列表",
|
"lists.account.add": "新增至列表",
|
||||||
"lists.account.remove": "自列表中移除",
|
"lists.account.remove": "自列表中移除",
|
||||||
"lists.delete": "刪除列表",
|
"lists.delete": "刪除列表",
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
= theme_style_tags current_theme
|
= theme_style_tags current_theme
|
||||||
|
|
||||||
-# Needed for the wicg-inert polyfill. It needs to be on it's own <style> tag, with this `id`
|
-# Needed for the wicg-inert polyfill. It needs to be on it's own <style> tag, with this `id`
|
||||||
= flavoured_stylesheet_pack_tag 'inert', media: 'all', id: 'inert-style'
|
= flavoured_stylesheet_pack_tag 'inert', media: 'all', crossorigin: 'anonymous', id: 'inert-style'
|
||||||
|
|
||||||
= javascript_pack_tag 'common', crossorigin: 'anonymous'
|
= javascript_pack_tag 'common', crossorigin: 'anonymous'
|
||||||
= preload_locale_pack
|
= preload_locale_pack
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
#!/usr/bin/env ruby
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
#
|
||||||
|
# This file was generated by Bundler.
|
||||||
|
#
|
||||||
|
# The application 'brakeman' is installed as part of a gem, and
|
||||||
|
# this file is here to facilitate running it.
|
||||||
|
#
|
||||||
|
|
||||||
|
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
|
||||||
|
|
||||||
|
bundle_binstub = File.expand_path("bundle", __dir__)
|
||||||
|
|
||||||
|
if File.file?(bundle_binstub)
|
||||||
|
if File.read(bundle_binstub, 300).include?("This file was generated by Bundler")
|
||||||
|
load(bundle_binstub)
|
||||||
|
else
|
||||||
|
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
||||||
|
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
require "rubygems"
|
||||||
|
require "bundler/setup"
|
||||||
|
|
||||||
|
load Gem.bin_path("brakeman", "brakeman")
|
|
@ -135,6 +135,7 @@ fr-CA:
|
||||||
media: Fichiers médias
|
media: Fichiers médias
|
||||||
mutes: Masqués
|
mutes: Masqués
|
||||||
notifications: Notifications
|
notifications: Notifications
|
||||||
|
profile: Votre profil Mastodon
|
||||||
push: Notifications push
|
push: Notifications push
|
||||||
reports: Signalements
|
reports: Signalements
|
||||||
search: Recherche
|
search: Recherche
|
||||||
|
@ -165,6 +166,7 @@ fr-CA:
|
||||||
admin:write:reports: effectuer des actions de modération sur les signalements
|
admin:write:reports: effectuer des actions de modération sur les signalements
|
||||||
crypto: utiliser le chiffrement de bout-en-bout
|
crypto: utiliser le chiffrement de bout-en-bout
|
||||||
follow: modifier les relations du compte
|
follow: modifier les relations du compte
|
||||||
|
profile: lire uniquement les informations de votre compte
|
||||||
push: recevoir vos notifications poussées
|
push: recevoir vos notifications poussées
|
||||||
read: lire toutes les données de votre compte
|
read: lire toutes les données de votre compte
|
||||||
read:accounts: voir les informations des comptes
|
read:accounts: voir les informations des comptes
|
||||||
|
|
|
@ -135,6 +135,7 @@ fr:
|
||||||
media: Fichiers médias
|
media: Fichiers médias
|
||||||
mutes: Masqués
|
mutes: Masqués
|
||||||
notifications: Notifications
|
notifications: Notifications
|
||||||
|
profile: Votre profil Mastodon
|
||||||
push: Notifications push
|
push: Notifications push
|
||||||
reports: Signalements
|
reports: Signalements
|
||||||
search: Recherche
|
search: Recherche
|
||||||
|
@ -165,6 +166,7 @@ fr:
|
||||||
admin:write:reports: effectuer des actions de modération sur les signalements
|
admin:write:reports: effectuer des actions de modération sur les signalements
|
||||||
crypto: utiliser le chiffrement de bout-en-bout
|
crypto: utiliser le chiffrement de bout-en-bout
|
||||||
follow: modifier les relations du compte
|
follow: modifier les relations du compte
|
||||||
|
profile: lire uniquement les informations de votre compte
|
||||||
push: recevoir vos notifications poussées
|
push: recevoir vos notifications poussées
|
||||||
read: lire toutes les données de votre compte
|
read: lire toutes les données de votre compte
|
||||||
read:accounts: voir les informations des comptes
|
read:accounts: voir les informations des comptes
|
||||||
|
|
|
@ -135,6 +135,7 @@ nn:
|
||||||
media: Mediavedlegg
|
media: Mediavedlegg
|
||||||
mutes: Dempingar
|
mutes: Dempingar
|
||||||
notifications: Varsel
|
notifications: Varsel
|
||||||
|
profile: Mastodon-profilen din
|
||||||
push: Pushvarsel
|
push: Pushvarsel
|
||||||
reports: Rapportar
|
reports: Rapportar
|
||||||
search: Søk
|
search: Søk
|
||||||
|
@ -165,6 +166,7 @@ nn:
|
||||||
admin:write:reports: utføre moderatorhandlingar på rapportar
|
admin:write:reports: utføre moderatorhandlingar på rapportar
|
||||||
crypto: bruk ende-til-ende-kryptering
|
crypto: bruk ende-til-ende-kryptering
|
||||||
follow: fylg, blokkér, avblokkér, avfylg brukarar
|
follow: fylg, blokkér, avblokkér, avfylg brukarar
|
||||||
|
profile: les berre den grunnlejggande informasjonen til brukarkontoen din
|
||||||
push: motta pushvarsla dine
|
push: motta pushvarsla dine
|
||||||
read: lese alle dine kontodata
|
read: lese alle dine kontodata
|
||||||
read:accounts: sjå informasjon om kontoar
|
read:accounts: sjå informasjon om kontoar
|
||||||
|
|
|
@ -293,6 +293,7 @@ en:
|
||||||
filter_by_action: Filter by action
|
filter_by_action: Filter by action
|
||||||
filter_by_user: Filter by user
|
filter_by_user: Filter by user
|
||||||
title: Audit log
|
title: Audit log
|
||||||
|
unavailable_instance: "(domain name unavailable)"
|
||||||
announcements:
|
announcements:
|
||||||
destroyed_msg: Announcement successfully deleted!
|
destroyed_msg: Announcement successfully deleted!
|
||||||
edit:
|
edit:
|
||||||
|
|
Loading…
Reference in New Issue