Merge commit 'facb552c9cdbe8a2ebff0b94ebf2c9e9ec385347' into glitch-soc/merge-upstream

This commit is contained in:
Claire 2026-06-01 18:00:03 +02:00
commit 3cf0fb7ba0
76 changed files with 847 additions and 1149 deletions

View File

@ -45,7 +45,8 @@ jobs:
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
# Transform multi-line variable into comma-separated variable
image_names=${PUSH_TO_IMAGES//$'\n'/,}
echo "IMAGE_NAMES=${image_names%,}" >> $GITHUB_ENV
image_names_split=${image_names%,}
echo "IMAGE_NAMES=${image_names_split,,}" >> $GITHUB_ENV
- uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3
id: buildx
@ -160,11 +161,11 @@ jobs:
- name: Create manifest list and push
working-directory: ${{ runner.temp }}/digests
run: |
echo "$PUSH_TO_IMAGES" | xargs -I{} \
echo "${PUSH_TO_IMAGES,,}" | xargs -I{} \
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
$(printf '{}@sha256:%s ' *)
- name: Inspect image
run: |
echo "$PUSH_TO_IMAGES" | xargs -i{} \
echo "${PUSH_TO_IMAGES,,}" | xargs -i{} \
docker buildx imagetools inspect {}:${{ steps.meta.outputs.version }}

View File

@ -1,6 +1,6 @@
# frozen_string_literal: true
SimpleCov.start 'rails' do
SimpleCov.configure do
# During parallel runs, ensure unique names for post-run merge
command_name "job-#{ENV['TEST_ENV_NUMBER']}" if ENV['TEST_ENV_NUMBER']

View File

@ -45,7 +45,7 @@ gem 'omniauth-saml', '~> 2.0'
gem 'color_diff', '~> 0.1'
gem 'csv', '~> 3.2'
gem 'discard', '~> 1.2'
gem 'discard', '~> 2.0'
gem 'doorkeeper', '~> 5.6'
gem 'faraday-httpclient'
gem 'fast_blank', '~> 1.0'
@ -230,4 +230,4 @@ gem 'hcaptcha', '~> 7.1'
gem 'mail', '~> 2.8'
gem 'vite_rails', '~> 3.0.19'
gem 'vite_rails'

View File

@ -99,7 +99,7 @@ GEM
ast (2.4.3)
attr_required (1.0.2)
aws-eventstream (1.4.0)
aws-partitions (1.1254.0)
aws-partitions (1.1255.0)
aws-sdk-core (3.250.0)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.992.0)
@ -108,11 +108,11 @@ GEM
bigdecimal
jmespath (~> 1, >= 1.6.1)
logger
aws-sdk-kms (1.125.0)
aws-sdk-core (~> 3, >= 3.247.0)
aws-sdk-kms (1.128.0)
aws-sdk-core (~> 3, >= 3.248.0)
aws-sigv4 (~> 1.5)
aws-sdk-s3 (1.222.0)
aws-sdk-core (~> 3, >= 3.247.0)
aws-sdk-s3 (1.224.0)
aws-sdk-core (~> 3, >= 3.248.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.5)
aws-sigv4 (1.12.1)
@ -205,8 +205,8 @@ GEM
devise (>= 4.0.0)
rpam2 (~> 4.0)
diff-lcs (1.6.2)
discard (1.4.0)
activerecord (>= 4.2, < 9.0)
discard (2.0.0)
activerecord (>= 7.0, < 9.0)
docile (1.4.1)
domain_name (0.6.20240107)
doorkeeper (5.9.0)
@ -354,7 +354,7 @@ GEM
azure-blob (~> 0.5.2)
hashie (~> 5.0)
jmespath (1.6.2)
json (2.19.5)
json (2.19.7)
json-canonicalization (1.0.0)
json-jwt (1.17.0)
activesupport (>= 4.2)
@ -647,7 +647,7 @@ GEM
base64 (>= 0.1.0)
logger (>= 1.6.0)
rack (>= 3.0.0, < 4)
rack-proxy (0.7.7)
rack-proxy (0.8.2)
rack
rack-session (2.1.2)
base64 (>= 0.1.0)
@ -755,7 +755,7 @@ GEM
rspec-mocks (~> 3.0)
sidekiq (>= 5, < 9)
rspec-support (3.13.7)
rubocop (1.86.2)
rubocop (1.87.0)
json (~> 2.3)
language_server-protocol (~> 3.17.0.2)
lint_roller (~> 1.1.0)
@ -779,7 +779,7 @@ GEM
lint_roller (~> 1.1)
rubocop (>= 1.75.0, < 2.0)
rubocop-ast (>= 1.47.1, < 2.0)
rubocop-rails (2.35.2)
rubocop-rails (2.35.3)
activesupport (>= 4.2.0)
lint_roller (~> 1.1)
rack (>= 1.1)
@ -802,7 +802,7 @@ GEM
ruby-vips (2.3.0)
ffi (~> 1.12)
logger
rubyzip (3.3.0)
rubyzip (3.3.1)
rufus-scheduler (3.9.2)
fugit (~> 1.1, >= 1.11.1)
safety_net_attestation (0.5.0)
@ -901,7 +901,7 @@ GEM
validate_url (1.0.15)
activemodel (>= 3.0.0)
public_suffix
vite_rails (3.0.20)
vite_rails (3.11.0)
railties (>= 5.1, < 9)
vite_ruby (~> 3.0, >= 3.2.2)
vite_ruby (3.10.2)
@ -937,7 +937,7 @@ GEM
xorcist (1.1.3)
xpath (3.2.0)
nokogiri (~> 1.8)
zeitwerk (2.7.5)
zeitwerk (2.8.2)
PLATFORMS
ruby
@ -970,7 +970,7 @@ DEPENDENCIES
devise
devise-two-factor
devise_pam_authenticatable2 (~> 9.2)
discard (~> 1.2)
discard (~> 2.0)
doorkeeper (~> 5.6)
dotenv
fabrication
@ -1089,7 +1089,7 @@ DEPENDENCIES
tty-prompt (~> 0.23)
twitter-text (~> 3.1.0)
tzinfo-data (~> 1.2023)
vite_rails (~> 3.0.19)
vite_rails
webauthn (~> 3.0)
webmock (~> 3.18)
webpush!

View File

@ -5,9 +5,6 @@ module Admin
def index
authorize :custom_emoji, :index?
# If filtering by local emojis, remove by_domain filter.
params.delete(:by_domain) if params[:local].present?
# If filtering by domain, ensure remote filter is set.
if params[:by_domain].present?
params.delete(:local)

View File

@ -19,15 +19,12 @@ module Settings::ExportControllerConcern
def send_export_file
respond_to do |format|
format.csv { send_data export_data, filename: export_filename }
format.csv { send_data export_data, filename: "#{controller_name}.csv" }
format.json { send_data export_data, filename: "#{controller_name}.json" }
end
end
def export_data
raise 'Override in controller'
end
def export_filename
"#{controller_name}.csv"
end
end

View File

@ -157,7 +157,7 @@ module SignatureVerification
end
def check_keypair_validity!(keypair)
raise Mastodon::SignatureVerification, "Key #{signature_key_id} is revoked" if keypair.revoked?
raise Mastodon::SignatureVerification, "Key #{signature_key_id} has expired" if keypair.expired?
raise Mastodon::SignatureVerificationError, "Key #{signature_key_id} is revoked" if keypair.revoked?
raise Mastodon::SignatureVerificationError, "Key #{signature_key_id} has expired" if keypair.expired?
end
end

View File

@ -0,0 +1,19 @@
# frozen_string_literal: true
module Settings
module Exports
class CustomFiltersController < BaseController
include Settings::ExportControllerConcern
def index
send_export_file
end
private
def export_data
@export.to_custom_filters_json
end
end
end
end

View File

@ -7,7 +7,7 @@ import { fetchServer } from 'mastodon/actions/server';
import { domain } from 'mastodon/initial_state';
const mapStateToProps = state => ({
message: state.getIn(['server', 'server', 'registrations', 'message']),
message: state.getIn(['server', 'server', 'item', 'registrations', 'message']),
});
class ClosedRegistrationsModal extends ImmutablePureComponent {

View File

@ -28,14 +28,14 @@ const messages = defineMessages({
});
const mapStateToProps = state => ({
rules: state.getIn(['server', 'server', 'rules'], ImmutableList()),
rules: state.getIn(['server', 'server', 'item', 'rules'], []),
});
class Category extends PureComponent {
static propTypes = {
onNextStep: PropTypes.func.isRequired,
rules: ImmutablePropTypes.list,
rules: PropTypes.arrayOf(PropTypes.object),
category: PropTypes.string,
onChangeCategory: PropTypes.func.isRequired,
startedFrom: PropTypes.oneOf(['status', 'account']),
@ -69,7 +69,7 @@ class Category extends PureComponent {
render () {
const { category, startedFrom, rules, intl } = this.props;
const options = rules.size > 0 ? [
const options = rules.length > 0 ? [
'dislike',
'spam',
'legal',

View File

@ -11,7 +11,7 @@ import { Button } from 'mastodon/components/button';
import Option from './components/option';
const mapStateToProps = state => ({
rules: state.getIn(['server', 'server', 'rules']),
rules: state.getIn(['server', 'server', 'item', 'rules']),
locale: state.getIn(['meta', 'locale']),
});
@ -19,7 +19,7 @@ class Rules extends PureComponent {
static propTypes = {
onNextStep: PropTypes.func.isRequired,
rules: ImmutablePropTypes.list,
rules: PropTypes.arrayOf(PropTypes.object),
locale: PropTypes.string,
selectedRuleIds: ImmutablePropTypes.set.isRequired,
onToggle: PropTypes.func.isRequired,
@ -46,12 +46,12 @@ class Rules extends PureComponent {
<div>
{rules.map(item => (
<Option
key={item.get('id')}
key={item.id}
name='rule_ids'
value={item.get('id')}
checked={selectedRuleIds.includes(item.get('id'))}
value={item.id}
checked={selectedRuleIds.includes(item.id)}
onToggle={this.handleRulesToggle}
label={item.getIn(['translations', locale, 'text']) || item.getIn(['translations', locale.split('-')[0], 'text']) || item.get('text')}
label={item.translations?.[locale]?.text || item.translations?.[locale.split('-')[0]]?.text || item.text}
multiple
/>
))}

View File

@ -126,12 +126,14 @@
"account.unmute": "@{name} səssizləşdirmədən çıxart",
"account.unmute_notifications_short": "Bildirişlərin səsini aç",
"account.unmute_short": "Səssizləşdirmədən çıxart",
"account_edit.advanced_settings.title": "Qabaqcıl ayarlar",
"account_edit.field_delete_modal.title": "Özəl xananı sil?",
"account_edit.field_edit_modal.add_title": "Özəl xana əlavə et",
"account_edit.field_edit_modal.discard_confirm": "İmtina",
"account_edit.field_edit_modal.discard_message": "Saxlanılmamış dəyişiklikləriniz var. Onları silmək istədiyinizə əminsiniz?",
"account_edit.field_edit_modal.edit_title": "Özəl xanaya düzəliş",
"account_edit.field_edit_modal.length_warning": "Tövsiyə edilən xarakter limiti aşıldı. Mobil istifadəçilər xananızın tamamını görməyə bilər.",
"account_edit.profile_tab.title": "Profil nümayişi ayarları",
"admin.dashboard.daily_retention": "Qeydiyyatdan sonrakı günə görə istifadəçi qalma dərəcəsi",
"admin.dashboard.monthly_retention": "Qeydiyyatdan sonrakı aya görə istifadəçi qalma dərəcəsi",
"admin.dashboard.retention.average": "Orta",
@ -161,7 +163,7 @@
"annual_report.summary.percentile.we_wont_tell_bernie": "Bunu Berniyə deməyəcəyik.",
"attachments_list.unprocessed": "(emal edilməyib)",
"audio.hide": "Audionu gizlət",
"block_modal.remote_users_caveat": "{domain} serverindən qərarınıza hörmət etməsini xahiş edəcəyik. Ancaq, bəzi serverlər əngəlləmələri fərqli şəkildə idarə edə bilər deyə, qərarınıza uymağına zəmanət verilmir. Hər kəsə açıq göndərişlər, hələ də sistemə giriş etməmiş istifadəçilərə görünə bilər.",
"block_modal.remote_users_caveat": "{domain} serverindən qərarınıza hörmət etməsini xahiş edəcəyik. Ancaq, bəzi serverlər əngəlləmələri fərqli şəkildə idarə edə bilər deyə, qərarınıza riayət etməyə zəmanət verilmir. Hər kəsə açıq göndərişlər, hələ də sistemə giriş etməmiş istifadəçilərə görünə bilər.",
"block_modal.show_less": "Daha az göstər",
"block_modal.show_more": "Daha çox göstər",
"block_modal.they_will_know": "O sənin onu blokladığını görə biləcək.",
@ -260,6 +262,7 @@
"confirmations.follow_to_list.confirm": "İzlə və siyahıya əlavə et",
"confirmations.follow_to_list.message": "{name} istifadəçisini siyahıya əlavə etmək üçün onu izləməlisiniz.",
"confirmations.follow_to_list.title": "İstifadəçini izlə?",
"confirmations.hide_featured_tab.intro": "Bunu istənilən vaxt <i>Profilə düzəliş > Profil vərəqi ayarları</i> bölməsində dəyişdirə bilərsiniz.",
"confirmations.logout.confirm": ıxış et",
"confirmations.logout.message": ıxmaq istədiyinizə əminsiniz?",
"confirmations.logout.title": ıxış edilsin?",
@ -935,6 +938,7 @@
"video.volume_down": "Həcmi azalt",
"video.volume_up": "Həcmi artır",
"visibility_modal.button_title": "Görünməni ayarla",
"visibility_modal.direct_quote_warning.text": "Hazırkı ayarları saxlasanız, gömülü sitat bir keçidə çevrilir.",
"visibility_modal.header": "Görünmə və qarşılıqlı əlaqə",
"visibility_modal.helper.unlisted_quoting": "İnsanlar sizdən sitat gətirdiyi zaman, onların göndərişləri də trend zaman xəttindən gizlədiləcək.",
"visibility_modal.quote_followers": "Yalnız izləyicilər",

View File

@ -637,8 +637,6 @@
"empty_column.account_featured.other": "{acct} пакуль нічога не адабраў(-ла) для паказу.",
"empty_column.account_featured_self.no_collections_button": "Стварыць калекцыю",
"empty_column.account_featured_self.no_collections_hide_tab": "Або схаваць гэтую ўкладку",
"empty_column.account_featured_self.pre_collections": "Рыхтуйцеся да Калекцый",
"empty_column.account_featured_self.pre_collections_desc": "Калекцыі (новая функцыя Mastodon 4.6) дазволяць Вам ствараць свае ўласныя спісы ўліковых запісаў, каб раіць іх іншым.",
"empty_column.account_featured_self.showcase_accounts": "Паказаць Вашыя ўлюбёныя ўліковыя запісы",
"empty_column.account_featured_self.showcase_accounts_desc": "Калекцыі — спісы адабраных уліковых запісаў, якія дапамагаюць іншым знаходзіць нешта новае ў федэральным сусвеце.",
"empty_column.account_featured_unknown.other": "Гэты ўліковы запіс пакуль нічога не адабраў для паказу.",

View File

@ -627,8 +627,6 @@
"empty_column.account_featured.other": "Nid yw {acct} wedi cynnwys unrhyw beth eto.",
"empty_column.account_featured_self.no_collections_button": "Creu casgliad",
"empty_column.account_featured_self.no_collections_hide_tab": "Cuddio'r tab hwn yn lle hynny",
"empty_column.account_featured_self.pre_collections": "Cadwch lygad allan am Gasgliadau",
"empty_column.account_featured_self.pre_collections_desc": "Mae Casgliadau (sy'n dod yn Mastodon 4.6) yn caniatáu ichi greu eich rhestrau cyfrifon wedi'u curadu eich hun i'w hargymell i eraill.",
"empty_column.account_featured_self.showcase_accounts": "Dangoswch eich hoff gyfrifon",
"empty_column.account_featured_self.showcase_accounts_desc": "Rhestrau wedi'u curadu o gyfrifon yw Casgliadau i helpu eraill i ddarganfod mwy o'r Fediverse.",
"empty_column.account_featured_unknown.other": "Dyw'r cyfrif hwn ddim wedi cynnwys unrhyw beth eto.",

View File

@ -637,8 +637,6 @@
"empty_column.account_featured.other": "{acct} har ikke fremhævet noget endnu.",
"empty_column.account_featured_self.no_collections_button": "Opret en samling",
"empty_column.account_featured_self.no_collections_hide_tab": "Skjul denne fane i stedet",
"empty_column.account_featured_self.pre_collections": "Hold udkig efter Samlinger",
"empty_column.account_featured_self.pre_collections_desc": "Med samlinger (kommer i Mastodon 4.6) kan du oprette dine egne kuraterede lister over konti, som du kan anbefale til andre.",
"empty_column.account_featured_self.showcase_accounts": "Vis dine favoritkonti",
"empty_column.account_featured_self.showcase_accounts_desc": "Samlinger er kuraterede lister over konti, der skal hjælpe andre med at opdage mere af Fediverset.",
"empty_column.account_featured_unknown.other": "Denne konto har ikke fremhævet noget endnu.",

View File

@ -637,8 +637,6 @@
"empty_column.account_featured.other": "{acct} hat noch nichts vorgestellt.",
"empty_column.account_featured_self.no_collections_button": "Sammlung erstellen",
"empty_column.account_featured_self.no_collections_hide_tab": "Diesen Tab ausblenden",
"empty_column.account_featured_self.pre_collections": "Sammlungen sind bald verfügbar",
"empty_column.account_featured_self.pre_collections_desc": "Mit Sammlungen (ab Mastodon v4.6) kannst du eigene Listen kuratieren, um auf empfehlenswerte Profile hinzuweisen.",
"empty_column.account_featured_self.showcase_accounts": "Präsentiere deine liebsten Konten",
"empty_column.account_featured_self.showcase_accounts_desc": "Sammlungen sind kuratierte Listen, die anderen helfen, mehr Konten im Fediverse zu entdecken.",
"empty_column.account_featured_unknown.other": "Dieser Account hat noch nichts vorgestellt.",

View File

@ -637,8 +637,6 @@
"empty_column.account_featured.other": "Ο/Η {acct} δεν έχει αναδείξει τίποτα ακόμη.",
"empty_column.account_featured_self.no_collections_button": "Δημιουργήστε μια συλλογή",
"empty_column.account_featured_self.no_collections_hide_tab": "Απόκρυψη αυτής της καρτέλας αντ' αυτού",
"empty_column.account_featured_self.pre_collections": "Μείνετε συντονισμένοι για τις Συλλογές",
"empty_column.account_featured_self.pre_collections_desc": "Οι Συλλογές (που έρχονται στο Mastodon 4.6) επιτρέπουν να δημιουργήσετε τις δικές σας επιμελημένες λίστες λογαριασμών για να συστήσετε σε άλλους.",
"empty_column.account_featured_self.showcase_accounts": "Παρουσιάστε τους αγαπημένους σας λογαριασμούς",
"empty_column.account_featured_self.showcase_accounts_desc": "Οι συλλογές είναι επιμελημένες λίστες λογαριασμών για να βοηθήσουν άλλους να ανακαλύψουν περισσότερα από το Fediverse.",
"empty_column.account_featured_unknown.other": "Αυτός ο λογαριασμός δεν έχει αναδείξει τίποτα ακόμη.",

View File

@ -621,8 +621,6 @@
"empty_column.account_featured.other": "{acct} has not featured anything yet.",
"empty_column.account_featured_self.no_collections_button": "Create a collection",
"empty_column.account_featured_self.no_collections_hide_tab": "Hide this tab instead",
"empty_column.account_featured_self.pre_collections": "Stay tuned for Collections",
"empty_column.account_featured_self.pre_collections_desc": "Collections (coming in Mastodon 4.6) allow you to create your own curated lists of accounts to recommend to others.",
"empty_column.account_featured_self.showcase_accounts": "Showcase your favourite accounts",
"empty_column.account_featured_self.showcase_accounts_desc": "Collections are curated lists of accounts to help others discover more of the Fediverse.",
"empty_column.account_featured_unknown.other": "This account hasnt featured anything yet.",

View File

@ -637,8 +637,6 @@
"empty_column.account_featured.other": "{acct} todavía no destacó nada.",
"empty_column.account_featured_self.no_collections_button": "Crear colección",
"empty_column.account_featured_self.no_collections_hide_tab": "En su lugar, ocultar esta pestaña",
"empty_column.account_featured_self.pre_collections": "Mantenete pendiente de las colecciones",
"empty_column.account_featured_self.pre_collections_desc": "Las colecciones (que vendrán en Mastodon 4.6) te permiten crear tus propias listas de cuentas seleccionadas para recomendar a otras personas.",
"empty_column.account_featured_self.showcase_accounts": "Mostrá tus cuentas favoritas",
"empty_column.account_featured_self.showcase_accounts_desc": "Las colecciones son listas de cuentas seleccionadas para ayudar a otras personas a descubrir más del Fediverso.",
"empty_column.account_featured_unknown.other": "Esta cuenta todavía no destacó nada.",

View File

@ -637,8 +637,6 @@
"empty_column.account_featured.other": "{acct} no ha destacado nada todavía.",
"empty_column.account_featured_self.no_collections_button": "Crear una colección",
"empty_column.account_featured_self.no_collections_hide_tab": "Ocultar esta pestaña",
"empty_column.account_featured_self.pre_collections": "No te pierdas las colecciones",
"empty_column.account_featured_self.pre_collections_desc": "Las colecciones (que llegarán en Mastodon 4.6) te permiten crear tus propias listas de cuentas seleccionadas para recomendarlas a otras personas.",
"empty_column.account_featured_self.showcase_accounts": "Destaca tus cuentas favoritas",
"empty_column.account_featured_self.showcase_accounts_desc": "Las colecciones son listas de cuentas seleccionadas que ayudan a otros a descubrir más del Fediverso.",
"empty_column.account_featured_unknown.other": "Esta cuenta no ha destacado nada todavía.",
@ -1000,6 +998,7 @@
"notifications.column_settings.admin.report": "Nuevas denuncias:",
"notifications.column_settings.admin.sign_up": "Registros nuevos:",
"notifications.column_settings.alert": "Notificaciones de escritorio",
"notifications.column_settings.collections": "Colecciones:",
"notifications.column_settings.favourite": "Favoritos:",
"notifications.column_settings.filter_bar.advanced": "Mostrar todas las categorías",
"notifications.column_settings.filter_bar.category": "Barra de filtrado rápido",
@ -1019,6 +1018,7 @@
"notifications.column_settings.update": "Ediciones:",
"notifications.filter.all": "Todos",
"notifications.filter.boosts": "Impulsos",
"notifications.filter.collections": "Colecciones",
"notifications.filter.favourites": "Favoritos",
"notifications.filter.follows": "Seguidores",
"notifications.filter.mentions": "Menciones",

View File

@ -637,8 +637,6 @@
"empty_column.account_featured.other": "{acct} aún no ha destacado nada.",
"empty_column.account_featured_self.no_collections_button": "Crear una colección",
"empty_column.account_featured_self.no_collections_hide_tab": "Ocultar esta pestaña",
"empty_column.account_featured_self.pre_collections": "No te pierdas las Colecciones",
"empty_column.account_featured_self.pre_collections_desc": "Las colecciones (disponibles a partir de Mastodon 4.6) te permiten crear tus propias listas de cuentas seleccionadas para recomendarlas a otros.",
"empty_column.account_featured_self.showcase_accounts": "Muestra tus cuentas favoritas",
"empty_column.account_featured_self.showcase_accounts_desc": "Las colecciones son listas de cuentas seleccionadas para ayudar a otros a descubrir más del Fediverso.",
"empty_column.account_featured_unknown.other": "Esta cuenta no ha destacado nada todavía.",

View File

@ -373,8 +373,8 @@
"collections.accounts.empty_description": "Lisa kuni {count} kasutajakontot",
"collections.accounts.empty_editor_title": "Selles kogumikus pole veel kedagi",
"collections.accounts.empty_title": "See kogumik on tühi",
"collections.add_to_collection": "Lisa „{name}“ kogumikku",
"collections.block_collection_owner": "Konto blokeerimine",
"collections.add_to_collection": "Lisa „{name}“ kogumikesse",
"collections.block_collection_owner": "Blokeeri kasutajakonto",
"collections.by_account": "{account_handle} poolt",
"collections.collection_description": "Kirjeldus",
"collections.collection_language": "Keel",
@ -389,19 +389,19 @@
"collections.create.accounts_title": "Kes saavad olema selles kogumikus?",
"collections.create.basic_details_title": "Põhiandmed",
"collections.create.steps": "Samm {step}/{total}",
"collections.create_collection": "Loo kogumik",
"collections.create_collection": "Koosta kogumik",
"collections.delete_collection": "Kustuta kogumik",
"collections.description_length_hint": "Kuni 100 tähemärki",
"collections.detail.author_added_you_on_date": "{author} lisas sind ajal {date}",
"collections.detail.author_added_you_on_date": "{author} lisas sind {date}",
"collections.detail.loading": "Kogumiku laadimine…",
"collections.detail.revoke_inclusion": "Eemalda mind",
"collections.detail.sensitive_content": "Tundlik sisu",
"collections.detail.sensitive_content": "Delikaatne sisu",
"collections.detail.sensitive_note": "Kirjeldus ja kontod ei pruugi kõigi vaatajate jaoks sobivad olla.",
"collections.detail.share": "Jaga seda kogumikku",
"collections.detail.you_are_in_this_collection": "Sa oled selles kogumikus esile tõstetud",
"collections.edit_details": "Muuda üksikasju",
"collections.error_loading_collections": "Nende kogumike laadimisel juhtus viga.",
"collections.hidden_accounts_description": "Oled blokeerinud või vaigistanud {count, plural, one {selle kasutaja} other {need kasutajad}}",
"collections.hidden_accounts_description": "Oled blokeerinud või summutanud {count, plural, one {selle kasutaja} other {need kasutajad}}",
"collections.hidden_accounts_link": "{count, plural, one {# peidetud konto} other {# peidetud kontot}}",
"collections.hints.accounts_counter": "{count}/{max} kontot",
"collections.last_updated_at": "Viimati uuendatud: {date}",
@ -637,8 +637,6 @@
"empty_column.account_featured.other": "{acct} pole veel midagi esile tõstnud.",
"empty_column.account_featured_self.no_collections_button": "Loo kogumik",
"empty_column.account_featured_self.no_collections_hide_tab": "Selle asemel peida see vahekaart",
"empty_column.account_featured_self.pre_collections": "Jälgi kogumikke",
"empty_column.account_featured_self.pre_collections_desc": "Kogumikud (lisanduvad Mastodon V4.6) võimaldavad sul luua enda koostatud kontode nimekirju, mida teistele soovitada.",
"empty_column.account_featured_self.showcase_accounts": "Näita oma lemmikkontosid",
"empty_column.account_featured_self.showcase_accounts_desc": "Kogumikud on hoolikalt koostatud kontode nimekirjad, mis aitavad teistel Fediverse'i paremini avastada.",
"empty_column.account_featured_unknown.other": "See konto pole veel midagi esile tõstnud.",
@ -1000,6 +998,7 @@
"notifications.column_settings.admin.report": "Uued teavitused:",
"notifications.column_settings.admin.sign_up": "Uued kasutajad:",
"notifications.column_settings.alert": "Teavitused töölaual",
"notifications.column_settings.collections": "Kogumikud:",
"notifications.column_settings.favourite": "Lemmikud:",
"notifications.column_settings.filter_bar.advanced": "Näita kõiki kategooriaid",
"notifications.column_settings.filter_bar.category": "Kiirfiltri riba",
@ -1019,6 +1018,7 @@
"notifications.column_settings.update": "Muudatused:",
"notifications.filter.all": "Kõik",
"notifications.filter.boosts": "Jagamised",
"notifications.filter.collections": "Kogumikud",
"notifications.filter.favourites": "Lemmikud",
"notifications.filter.follows": "Jälgib",
"notifications.filter.mentions": "Mainimised",

View File

@ -621,8 +621,6 @@
"empty_column.account_featured.other": "{acct} هنوز چیزی را معرّفی نکرده.",
"empty_column.account_featured_self.no_collections_button": "ایجاد مجموعه",
"empty_column.account_featured_self.no_collections_hide_tab": "نهفتن این زبانه",
"empty_column.account_featured_self.pre_collections": "منتظر مجموعه‌ها باشید",
"empty_column.account_featured_self.pre_collections_desc": "مجموعه‌ها (از ماستودون ۴٫۶) می‌گذارند سیاهه‌های خودتان از حساب‌ها را برای پیشنهاد به دیگران بسازید.",
"empty_column.account_featured_self.showcase_accounts": "نمایشکاه حساب‌های محبوبتان",
"empty_column.account_featured_self.showcase_accounts_desc": "مجموعه‌ها سیاهه‌هایی از حساب‌ها برای کمک به دیگران در کشف بهتر وب اجتماعیند.",
"empty_column.account_featured_unknown.other": "این حساب هنوز چیزی را معرّفی نکرده.",

View File

@ -637,8 +637,6 @@
"empty_column.account_featured.other": "{acct} ei esittele vielä mitään.",
"empty_column.account_featured_self.no_collections_button": "Luo kokoelma",
"empty_column.account_featured_self.no_collections_hide_tab": "Piilota tämä välilehti sen sijaan",
"empty_column.account_featured_self.pre_collections": "Ole valmiina kokoelmiin",
"empty_column.account_featured_self.pre_collections_desc": "Kokoelmien (tulossa Mastodon 4.6:ssa) avulla voit luoda valikoidun listan muille suosittelemistasi tileistä.",
"empty_column.account_featured_self.showcase_accounts": "Esittele suosikkitilejäsi",
"empty_column.account_featured_self.showcase_accounts_desc": "Kokoelmat ovat valikoituja listoja tileistä, jotka auttavat muita löytämään enemmän fediversumissa.",
"empty_column.account_featured_unknown.other": "Tämä tili ei esittele vielä mitään.",
@ -999,6 +997,7 @@
"notifications.column_settings.admin.report": "Uudet raportit:",
"notifications.column_settings.admin.sign_up": "Uudet rekisteröitymiset:",
"notifications.column_settings.alert": "Työpöytäilmoitukset",
"notifications.column_settings.collections": "Kokoelmat:",
"notifications.column_settings.favourite": "Suosikit:",
"notifications.column_settings.filter_bar.advanced": "Näytä kaikki luokat",
"notifications.column_settings.filter_bar.category": "Pikasuodatuspalkki",
@ -1018,6 +1017,7 @@
"notifications.column_settings.update": "Muokkaukset:",
"notifications.filter.all": "Kaikki",
"notifications.filter.boosts": "Tehostukset",
"notifications.filter.collections": "Kokoelmat",
"notifications.filter.favourites": "Suosikit",
"notifications.filter.follows": "Seuraamiset",
"notifications.filter.mentions": "Maininnat",

View File

@ -637,8 +637,6 @@
"empty_column.account_featured.other": "{acct} n'a pas encore mis de contenu en avant.",
"empty_column.account_featured_self.no_collections_button": "Créer une collection",
"empty_column.account_featured_self.no_collections_hide_tab": "Cacher cet onglet",
"empty_column.account_featured_self.pre_collections": "Restez connecté pour les collections",
"empty_column.account_featured_self.pre_collections_desc": "Les collections (à venir dans Mastodon 4.6) permettent d'organiser vos propres listes de comptes à recommander aux autres.",
"empty_column.account_featured_self.showcase_accounts": "Présentez vos comptes préférés",
"empty_column.account_featured_self.showcase_accounts_desc": "Les collections sont des listes de comptes sélectionnés pour aider les autres à découvrir le Fédivers.",
"empty_column.account_featured_unknown.other": "Ce compte n'a mis aucun contenu en avant pour l'instant.",
@ -1000,6 +998,7 @@
"notifications.column_settings.admin.report": "Nouveaux signalements:",
"notifications.column_settings.admin.sign_up": "Nouvelles inscriptions:",
"notifications.column_settings.alert": "Notifications navigateur",
"notifications.column_settings.collections": "Collections :",
"notifications.column_settings.favourite": "Favoris:",
"notifications.column_settings.filter_bar.advanced": "Afficher toutes les catégories",
"notifications.column_settings.filter_bar.category": "Barre de filtre rapide",
@ -1019,6 +1018,7 @@
"notifications.column_settings.update": "Modifications:",
"notifications.filter.all": "Toutes",
"notifications.filter.boosts": "Boosts",
"notifications.filter.collections": "Collections",
"notifications.filter.favourites": "Favoris",
"notifications.filter.follows": "Abonnements",
"notifications.filter.mentions": "Mentions",

View File

@ -637,8 +637,6 @@
"empty_column.account_featured.other": "{acct} n'a pas encore mis de contenu en avant.",
"empty_column.account_featured_self.no_collections_button": "Créer une collection",
"empty_column.account_featured_self.no_collections_hide_tab": "Cacher cet onglet",
"empty_column.account_featured_self.pre_collections": "Restez connecté pour les collections",
"empty_column.account_featured_self.pre_collections_desc": "Les collections (à venir dans Mastodon 4.6) permettent d'organiser vos propres listes de comptes à recommander aux autres.",
"empty_column.account_featured_self.showcase_accounts": "Présentez vos comptes préférés",
"empty_column.account_featured_self.showcase_accounts_desc": "Les collections sont des listes de comptes sélectionnés pour aider les autres à découvrir le Fédivers.",
"empty_column.account_featured_unknown.other": "Ce compte n'a mis aucun contenu en avant pour l'instant.",
@ -1000,6 +998,7 @@
"notifications.column_settings.admin.report": "Nouveaux signalements :",
"notifications.column_settings.admin.sign_up": "Nouvelles inscriptions :",
"notifications.column_settings.alert": "Notifications du navigateur",
"notifications.column_settings.collections": "Collections :",
"notifications.column_settings.favourite": "Favoris :",
"notifications.column_settings.filter_bar.advanced": "Afficher toutes les catégories",
"notifications.column_settings.filter_bar.category": "Barre de filtre rapide",
@ -1019,6 +1018,7 @@
"notifications.column_settings.update": "Modifications :",
"notifications.filter.all": "Tout",
"notifications.filter.boosts": "Partages",
"notifications.filter.collections": "Collections",
"notifications.filter.favourites": "Favoris",
"notifications.filter.follows": "Abonnés",
"notifications.filter.mentions": "Mentions",

View File

@ -637,8 +637,6 @@
"empty_column.account_featured.other": "Níl aon rud le feiceáil ag {acct} go fóill.",
"empty_column.account_featured_self.no_collections_button": "Cruthaigh bailiúchán",
"empty_column.account_featured_self.no_collections_hide_tab": "Folaigh an cluaisín seo ina ionad",
"empty_column.account_featured_self.pre_collections": "Fan tiúnta le haghaidh bailiúcháin",
"empty_column.account_featured_self.pre_collections_desc": "Le bailiúcháin (atá ag teacht i Mastodon 4.6) is féidir leat do liostaí cuntas féin a chruthú le moladh do dhaoine eile.",
"empty_column.account_featured_self.showcase_accounts": "Taispeáin do chuntais is fearr leat",
"empty_column.account_featured_self.showcase_accounts_desc": "Is liostaí coimeádta cuntas iad bailiúcháin chun cabhrú le daoine eile níos mó den Fediverse a fháil amach.",
"empty_column.account_featured_unknown.other": "Níl aon rud le feiceáil ar an gcuntas seo go fóill.",
@ -1000,6 +998,7 @@
"notifications.column_settings.admin.report": "Tuairiscí nua:",
"notifications.column_settings.admin.sign_up": "Clárúcháin nua:",
"notifications.column_settings.alert": "Fógraí deisce",
"notifications.column_settings.collections": "Bailiúcháin:",
"notifications.column_settings.favourite": "Ceanáin:",
"notifications.column_settings.filter_bar.advanced": "Taispeáin gach catagóir",
"notifications.column_settings.filter_bar.category": "Barra scagairí tapa",
@ -1019,6 +1018,7 @@
"notifications.column_settings.update": "Eagair:",
"notifications.filter.all": "Uile",
"notifications.filter.boosts": "Treisithe",
"notifications.filter.collections": "Bailiúcháin",
"notifications.filter.favourites": "Ceanáin",
"notifications.filter.follows": "Ag leanúint",
"notifications.filter.mentions": "Tráchtanna",

View File

@ -613,8 +613,6 @@
"empty_column.account_featured.other": "Chan eil {acct} a brosnachadh dad fhathast.",
"empty_column.account_featured_self.no_collections_button": "Cruthaich cruinneachadh",
"empty_column.account_featured_self.no_collections_hide_tab": "Falaich an taba seo na àite",
"empty_column.account_featured_self.pre_collections": "Cùm sùil a-mach air cruinneachaidhean",
"empty_column.account_featured_self.pre_collections_desc": "Le cruinneachaidhean (ri thiginn le Mastodon 4.6), s urrainn dhut liostaichean de chunntasan a thasgadh gus am moladh do chàch.",
"empty_column.account_featured_self.showcase_accounts": "Brosnaich na cunntasan as fheàrr leat",
"empty_column.account_featured_self.showcase_accounts_desc": "S e liostaichean curadaichte de chunntasan a tha sna cruinneachaidhean a chuidicheas càch ach an lorg iad barrachd air a cho-shaoghal.",
"empty_column.account_featured_unknown.other": "Chan eil an cunntas seo a brosnachadh dad fhathast.",

View File

@ -637,8 +637,6 @@
"empty_column.account_featured.other": "{acct} aínda non destacou nada.",
"empty_column.account_featured_self.no_collections_button": "Crea unha colección",
"empty_column.account_featured_self.no_collections_hide_tab": "Ocultar esta pestana entonces",
"empty_column.account_featured_self.pre_collections": "Van chegar as Coleccións",
"empty_column.account_featured_self.pre_collections_desc": "Coas Coleccións (a partir de Mastodon 4.6) podes crear as túas listas persoais de contas para recomendar a outras persoas.",
"empty_column.account_featured_self.showcase_accounts": "Salienta as túas contas favoritas",
"empty_column.account_featured_self.showcase_accounts_desc": "As coleccións son listas de contas para que outras persoas as coñezan e desfruten aquí no Fediverso.",
"empty_column.account_featured_unknown.other": "Esta conta aínda non destacou nada.",

View File

@ -637,8 +637,6 @@
"empty_column.account_featured.other": "{acct} עוד לא קידם תכנים.",
"empty_column.account_featured_self.no_collections_button": "יצירת אוסף",
"empty_column.account_featured_self.no_collections_hide_tab": "הסתרת הכרטיסיה במקום הצגתה ריקה",
"empty_column.account_featured_self.pre_collections": "אוספים בקרוב על מסך זה",
"empty_column.account_featured_self.pre_collections_desc": "אוספים (מגיע במסטודון גרסא 4.6) יאפשרו לך לאצור רשימות חשבונות להמלצה לאחרים.",
"empty_column.account_featured_self.showcase_accounts": "הצגת החשבונות החביבים עליך",
"empty_column.account_featured_self.showcase_accounts_desc": "אוספים הם רשימות חשבונות שאתם אוצרים כדי לעזור לאחרים לגלות עוד תכנים בפדיוורס.",
"empty_column.account_featured_unknown.other": "חשבון זה עוד לא קידם תכנים.",
@ -1000,6 +998,7 @@
"notifications.column_settings.admin.report": "דו\"חות חדשים",
"notifications.column_settings.admin.sign_up": "הרשמות חדשות:",
"notifications.column_settings.alert": "התראות לשולחן העבודה",
"notifications.column_settings.collections": "אוספים:",
"notifications.column_settings.favourite": "חיבובים:",
"notifications.column_settings.filter_bar.advanced": "להציג את כל הקטגוריות",
"notifications.column_settings.filter_bar.category": "שורת סינון מהיר",
@ -1019,6 +1018,7 @@
"notifications.column_settings.update": "שינויים:",
"notifications.filter.all": "הכל",
"notifications.filter.boosts": "הדהודים",
"notifications.filter.collections": "אוספים",
"notifications.filter.favourites": "חיבובים",
"notifications.filter.follows": "נעקבים",
"notifications.filter.mentions": "אזכורים",

View File

@ -14,7 +14,7 @@
"about.powered_by": "Decentralizált közösségi média a {mastodon} segítségével",
"about.rules": "Kiszolgáló szabályai",
"account.account_note_header": "Személyes megjegyzés",
"account.activity": "Tevékenység",
"account.activity": "Idővonal",
"account.add_note": "Személyes megjegyzés hozzáadása",
"account.add_or_remove_from_list": "Hozzáadás vagy eltávolítás a listákról",
"account.badges.admin": "Adminisztrátor",
@ -70,11 +70,11 @@
"account.hide_reblogs": "@{name} megtolásainak elrejtése",
"account.in_memoriam": "Emlékünkben.",
"account.join_modal.day": "Nap",
"account.join_modal.me": "Ekkor csatlakoztál ide: {server}",
"account.join_modal.me_anniversary": "Boldog Födinapot! Ekkor csatlakoztál ide: {server}",
"account.join_modal.me_today": "Ez az első napod itt: {server}!",
"account.join_modal.other": "{name} ekkor csatlakozott ide: {server}",
"account.join_modal.other_today": "Ez {name} első napja itt: {server}!",
"account.join_modal.me": "Ekkor csatlakoztál a {server} kiszolgálóra:",
"account.join_modal.me_anniversary": "Boldog Födinapot! Ekkor csatlakoztál a {server} kiszolgálóra:",
"account.join_modal.me_today": "Ez az első napod a {server} kiszolgálón!",
"account.join_modal.other": "{name} ekkor csatlakozott a {server} kiszolgálóra:",
"account.join_modal.other_today": "Ez {name} első napja a {server} kiszolgálón!",
"account.join_modal.share.celebrate": "Ünnepi bejegyzés megosztása",
"account.join_modal.share.intro": "Bemutatkozó bejegyzés megosztása",
"account.join_modal.share.welcome": "Üdvözlő bejegyzés megosztása",
@ -112,12 +112,12 @@
"account.muted": "Némítva",
"account.mutual": "Követitek egymást",
"account.name.copy": "Fióknév másolása",
"account.name.help.domain": "A(z) {domain} a kiszolgáló, amely a felhasználó profilját és bejegyzéseit szolgálja ki.",
"account.name.help.domain_self": "A(z) {domain} a kiszolgáló, amely a profilodat és bejegyzéseidet szolgálja ki.",
"account.name.help.footer": "Ahogy bárkinek küldhetsz e-mailt, annak is, aki más e-mail-szolgáltatót használ, úgy kapcsolatba léphetsz a más Mastodon-kiszolgálókon lévő emberekkel, és bárki mással, aki más Födiverzum-alkalmazást használ.",
"account.name.help.domain": "A(z) {domain} a kiszolgáló, amely a felhasználó profilját és bejegyzéseit szolgáltatja.",
"account.name.help.domain_self": "A(z) {domain} a kiszolgáló, amely a profilodat és bejegyzéseidet szolgáltatja.",
"account.name.help.footer": "Ahogy küldhetsz e-mailt annak is, aki más e-mail-szolgáltatót használ, úgy kapcsolatba léphetsz a más Mastodon-kiszolgálókon lévő emberekkel és bárki mással, aki más Födiverzum-alkalmazást használ.",
"account.name.help.header": "A fióknév olyan, mint egy e-mail-cím",
"account.name.help.username": "Ez a fiók felhasználóneve a kiszolgálóján: {username}. Lehet, hogy másnak egy másik kiszolgálón ugyanez a felhasználóneve.",
"account.name.help.username_self": "Ez a felhasználóneved ezen a kiszolgálón: {username}. Lehet, hogy másnak egy másik kiszolgálón ugyanez a felhasználóneve.",
"account.name.help.username": "{username} a fiók felhasználóneve a kiszolgálóján. Lehet, hogy másnak egy másik kiszolgálón ugyanez a felhasználóneve.",
"account.name.help.username_self": "{username} a felhasználóneved ezen a kiszolgálón. Lehet, hogy másnak egy másik kiszolgálón ugyanez a felhasználóneve.",
"account.name_info": "Mit jelent ez?",
"account.no_bio": "Leírás nincs megadva.",
"account.node_modal.callout": "A személyes megjegyzéseket csak te látod.",
@ -148,7 +148,7 @@
"account.unmute": "@{name} némításának feloldása",
"account.unmute_notifications_short": "Értesítések némításának feloldása",
"account.unmute_short": "Némitás feloldása",
"account_edit.advanced_settings.bot_hint": "Jelzés másoknak, hogy ez a fiók automatikus műveleteket végez és valószínűleg nem figyeljük",
"account_edit.advanced_settings.bot_hint": "Jelzés másoknak, hogy ez a fiók automatikus műveleteket végez és lehetséges, hogy nem kerül ellenőrzésre",
"account_edit.advanced_settings.bot_label": "Automatizált fiók",
"account_edit.advanced_settings.title": "Speciális beállítások",
"account_edit.bio.add_label": "Bemutatkozás hozzáadása",
@ -161,7 +161,7 @@
"account_edit.column_title": "Profil szerkesztése",
"account_edit.custom_fields.add_label": "Mező hozzáadása",
"account_edit.custom_fields.edit_label": "Mező szerkesztése",
"account_edit.custom_fields.placeholder": "Add meg a névmásaidat, külső hivatkozásaidat vagy bármi mást, amelyet megosztanál.",
"account_edit.custom_fields.placeholder": "Add meg a névmásaidat, külső hivatkozásaidat vagy bármi mást, amit megosztanál.",
"account_edit.custom_fields.reorder_button": "Mezők átrendezése",
"account_edit.custom_fields.tip_content": "Könnyedén nagyobb hitelességet adhatsz a Mastodon-fiókodnak a saját weboldalaidra mutató hivatkozások megerősítésével.",
"account_edit.custom_fields.tip_title": "Tipp: Ellenőrzött hivatkozások hozzáadása",
@ -637,8 +637,6 @@
"empty_column.account_featured.other": "{acct} még nem emelt ki semmit.",
"empty_column.account_featured_self.no_collections_button": "Gyűjtemény létrehozása",
"empty_column.account_featured_self.no_collections_hide_tab": "Inkább a lap elrejtése",
"empty_column.account_featured_self.pre_collections": "Készülj fel a gyűjteményekre",
"empty_column.account_featured_self.pre_collections_desc": "A gyűjtemények (a Mastodon 4.6-ban érkezik) lehetővé teszik, hogy létrehozd a saját válogatott fióklistáidat, és ajánld másoknak.",
"empty_column.account_featured_self.showcase_accounts": "Emeld ki a kedvenc fiókjaidat",
"empty_column.account_featured_self.showcase_accounts_desc": "A gyűjtemények fiókok válogatott listái, melyek segítenek másoknak a Födiverzum még nagyobb részének felfedezésében.",
"empty_column.account_featured_unknown.other": "Ez a fiók még nem emelt ki semmit.",
@ -914,6 +912,7 @@
"navigation_bar.live_feed_local": "Élő hírfolyam (helyi)",
"navigation_bar.live_feed_public": "Élő hírfolyam (nyilvános)",
"navigation_bar.logout": "Kijelentkezés",
"navigation_bar.main": "Elsődleges",
"navigation_bar.moderation": "Moderáció",
"navigation_bar.more": "Továbbiak",
"navigation_bar.mutes": "Némított felhasználók",
@ -999,6 +998,7 @@
"notifications.column_settings.admin.report": "Új jelentések:",
"notifications.column_settings.admin.sign_up": "Új regisztrálók:",
"notifications.column_settings.alert": "Asztali értesítések",
"notifications.column_settings.collections": "Gyûjtemények:",
"notifications.column_settings.favourite": "Kedvencek:",
"notifications.column_settings.filter_bar.advanced": "Minden kategória megjelenítése",
"notifications.column_settings.filter_bar.category": "Gyorsszűrő sáv",
@ -1018,6 +1018,7 @@
"notifications.column_settings.update": "Szerkesztések:",
"notifications.filter.all": "Összes",
"notifications.filter.boosts": "Megtolások",
"notifications.filter.collections": "Gyűjtemények",
"notifications.filter.favourites": "Kedvencek",
"notifications.filter.follows": "Követések",
"notifications.filter.mentions": "Megemlítések",

View File

@ -637,8 +637,6 @@
"empty_column.account_featured.other": "{acct} hefur enn ekki gefið neinu aukið vægi.",
"empty_column.account_featured_self.no_collections_button": "Búa til safn",
"empty_column.account_featured_self.no_collections_hide_tab": "Fela frekar þennan flipa",
"empty_column.account_featured_self.pre_collections": "Kynntu þér hvað séu söfn",
"empty_column.account_featured_self.pre_collections_desc": "Söfn (sem koma fram í Mastodon 4.6) gera þér kleift að búa til þina eigin ritstýrðu lista yfir þá aðganga sem þú vilt mæla með við aðra.",
"empty_column.account_featured_self.showcase_accounts": "Kynntu eftirlætisaðgangana þína",
"empty_column.account_featured_self.showcase_accounts_desc": "Söfn eru ritstýrðir listar yfir aðganga til að hjálpa öðrum að uppgötva fleira á samfélagsnetinu.",
"empty_column.account_featured_unknown.other": "Þessi notandi hefur enn ekki sett neitt með meira vægi.",
@ -1000,6 +998,7 @@
"notifications.column_settings.admin.report": "Nýjar kærur:",
"notifications.column_settings.admin.sign_up": "Nýjar skráningar:",
"notifications.column_settings.alert": "Tilkynningar á skjáborði",
"notifications.column_settings.collections": "Söfn:",
"notifications.column_settings.favourite": "Eftirlæti:",
"notifications.column_settings.filter_bar.advanced": "Birta alla flokka",
"notifications.column_settings.filter_bar.category": "Skyndisíustika",
@ -1019,6 +1018,7 @@
"notifications.column_settings.update": "Breytingar:",
"notifications.filter.all": "Allt",
"notifications.filter.boosts": "Endurbirtingar",
"notifications.filter.collections": "Söfn",
"notifications.filter.favourites": "Eftirlæti",
"notifications.filter.follows": "Fylgist með",
"notifications.filter.mentions": "Tilvísanir",

View File

@ -637,8 +637,6 @@
"empty_column.account_featured.other": "{acct} non ha ancora messo nulla in evidenza.",
"empty_column.account_featured_self.no_collections_button": "Crea una collezione",
"empty_column.account_featured_self.no_collections_hide_tab": "Nascondi questa scheda invece",
"empty_column.account_featured_self.pre_collections": "Resta sintonizzato/a per le collezioni",
"empty_column.account_featured_self.pre_collections_desc": "Le collezioni (in arrivo su Mastodon 4.6) ti permettono di creare i tuoi elenchi curati di account da consigliare ad altri.",
"empty_column.account_featured_self.showcase_accounts": "Mostra i tuoi account preferiti",
"empty_column.account_featured_self.showcase_accounts_desc": "Le collezioni sono elenchi curati di account che aiutano gli altri utenti a scoprire di più sul fediverso.",
"empty_column.account_featured_unknown.other": "Questo account non ha ancora presentato nulla.",

View File

@ -584,6 +584,12 @@
"copy_icon_button.copy_this_text": "Khóo-pih連結kàu tsián貼pang",
"copypaste.copied": "有khóo-pih",
"copypaste.copy_to_clipboard": "Khóo-pih kàu tsián貼pang",
"custom_homepage.about": "關係本站",
"custom_homepage.about_this_server": "關係tsit ê服侍器",
"custom_homepage.administered_by": "管理員是",
"custom_homepage.contact": "聯絡方法:",
"custom_homepage.latest_activity": "上尾ê活動",
"custom_homepage.these_are_the_latest_posts": "Tsiah ê是tsit臺服侍器ê口座所貼ê上新ê 40篇PO文。",
"directory.federated": "Uì知影ê Fediverse",
"directory.local": "Kan-ta uì {domain}",
"directory.new_arrivals": "新來ê",
@ -631,8 +637,6 @@
"empty_column.account_featured.other": "{acct} iáu無收藏半ê。",
"empty_column.account_featured_self.no_collections_button": "建立收藏",
"empty_column.account_featured_self.no_collections_hide_tab": "改做隱藏tsit ê分頁",
"empty_column.account_featured_self.pre_collections": "請期待收藏",
"empty_column.account_featured_self.pre_collections_desc": "收藏佇Mastodon 4.6推出予lí建立家己ê精選口座列單來推薦予別lâng。",
"empty_column.account_featured_self.showcase_accounts": "展示lí上kah意ê口座",
"empty_column.account_featured_self.showcase_accounts_desc": "收藏是精選ê口座列單幫tsān別lâng探索聯邦宇宙ê其他內容。",
"empty_column.account_featured_unknown.other": "Tsit ê口座iáu無收藏siánn物。",
@ -908,6 +912,7 @@
"navigation_bar.live_feed_local": "即時ê內容(本地)",
"navigation_bar.live_feed_public": "即時ê內容(公開)",
"navigation_bar.logout": "登出",
"navigation_bar.main": "主要",
"navigation_bar.moderation": "管理",
"navigation_bar.more": "其他",
"navigation_bar.mutes": "消音ê用者",
@ -993,6 +998,7 @@
"notifications.column_settings.admin.report": "新ê檢舉:",
"notifications.column_settings.admin.sign_up": "新註冊ê口座:",
"notifications.column_settings.alert": "桌面ê通知",
"notifications.column_settings.collections": "收藏:",
"notifications.column_settings.favourite": "收藏:",
"notifications.column_settings.filter_bar.advanced": "顯示逐ê類別",
"notifications.column_settings.filter_bar.category": "快速ê過濾器",
@ -1012,6 +1018,7 @@
"notifications.column_settings.update": "編輯:",
"notifications.filter.all": "Kui ê",
"notifications.filter.boosts": "轉送",
"notifications.filter.collections": "收藏",
"notifications.filter.favourites": "收藏",
"notifications.filter.follows": "跟tuè",
"notifications.filter.mentions": "提起",
@ -1303,6 +1310,7 @@
"tabs_bar.menu": "目錄",
"tabs_bar.notifications": "通知",
"tabs_bar.publish": "新ê PO文",
"tabs_bar.quick_links": "快速連結",
"tabs_bar.search": "Tshiau-tshuē",
"tag.remove": "Suá掉",
"terms_of_service.effective_as_of": "{date} 起實施",

View File

@ -637,8 +637,6 @@
"empty_column.account_featured.other": "{acct} heeft nog niks uitgelicht.",
"empty_column.account_featured_self.no_collections_button": "Een verzameling aanmaken",
"empty_column.account_featured_self.no_collections_hide_tab": "In plaats daarvan dit tabblad verbergen",
"empty_column.account_featured_self.pre_collections": "Binnenkort: Verzamelingen",
"empty_column.account_featured_self.pre_collections_desc": "Met Verzamelingen (vanaf Mastodon 4.6) kun je jouw eigen gecureerde lijsten met accounts samenstellen om aan anderen aan te bevelen.",
"empty_column.account_featured_self.showcase_accounts": "Jouw favoriete accounts aanbevelen",
"empty_column.account_featured_self.showcase_accounts_desc": "Verzamelingen zijn gecureerde lijsten met accounts, om anderen te helpen meer van de Fediverse te ontdekken.",
"empty_column.account_featured_unknown.other": "Dit account heeft nog niks uitgelicht.",

View File

@ -582,7 +582,6 @@
"emoji_button.symbols": "Symbol",
"emoji_button.travel": "Reise & stader",
"empty_column.account_featured_self.no_collections_button": "Lag ei samling",
"empty_column.account_featured_self.pre_collections": "Fylg med for å sjå samlingar",
"empty_column.account_featured_unknown.other": "Denne kontoen har ikkje valt ut noko enno.",
"empty_column.account_hides_collections": "Denne brukaren har valt å ikkje gjere denne informasjonen tilgjengeleg",
"empty_column.account_suspended": "Kontoen er utestengd",

View File

@ -92,7 +92,7 @@
"account.menu.block_domain": "Bloquear {domain}",
"account.menu.copied": "Link da conta copiado para área de transferência",
"account.menu.copy": "Copiar link",
"account.menu.direct": "Mencionar privadamente",
"account.menu.direct": "Mencionar em privado",
"account.menu.hide_reblogs": "Ocultar impulsos na timeline",
"account.menu.mention": "Mencionar",
"account.menu.mute": "Silenciar conta",
@ -111,9 +111,9 @@
"account.mute_short": "Silenciar",
"account.muted": "Silenciado",
"account.mutual": "Vocês se seguem",
"account.name.copy": "Copiar usuário",
"account.name.help.domain": "{domain} é o servidor que hospeda este perfil e suas publicações.",
"account.name.help.domain_self": "{domain} é o servidor que hospeda seu perfil e suas publicações.",
"account.name.copy": "Copiar nome de usuário",
"account.name.help.domain": "{domain} é o servidor que hospeda o perfil e publicações do usuário.",
"account.name.help.domain_self": "{domain} é o seu servidor, que hospeda seu perfil e publicações.",
"account.name.help.footer": "Assim como pode enviar e-mails para pessoas usando diferentes provedores de e-mail, você pode interagir com pessoas em outros servidor do Mastodon, e com qualquer um em outros apps da Fediverse.",
"account.name.help.header": "Um nome de usuário é como um endereço de email",
"account.name.help.username": "{username} é o nome de usuário desta conta no servidor dela. Alguém em outro servidor pode ter o mesmo nome de usuário.",
@ -178,16 +178,16 @@
"account_edit.field_actions.edit": "Editar campo",
"account_edit.field_delete_modal.confirm": "Tem certeza que deseja excluir este campo personalizado? Esta ação não pode ser desfeita.",
"account_edit.field_delete_modal.delete_button": "Excluir",
"account_edit.field_delete_modal.title": "Remover campo?",
"account_edit.field_edit_modal.add_title": "Adicionar campo",
"account_edit.field_delete_modal.title": "Excluir campo personalizado?",
"account_edit.field_edit_modal.add_title": "Adicionar campo personalizado",
"account_edit.field_edit_modal.discard_confirm": "Descartar",
"account_edit.field_edit_modal.discard_message": "Você possui alterações não salvas. Deseja mesmo descartá-las?",
"account_edit.field_edit_modal.edit_title": "Editar campo",
"account_edit.field_edit_modal.length_warning": "Limite de caracteres excedido. Usuários móveis talvez não consigam ver seus campos por inteiro.",
"account_edit.field_edit_modal.link_emoji_warning": "Recomendamos não usar emojis personalizados com URLs. Campos contendo ambos serão exibidos apenas como um texto invés de um link para evitar confusão.",
"account_edit.field_edit_modal.name_hint": "p. e.x.: “Site pessoal”",
"account_edit.field_edit_modal.name_label": "Rótulo",
"account_edit.field_edit_modal.url_warning": "Para adicionar links, inclua {protocol} no início.",
"account_edit.field_edit_modal.discard_message": "Você possui alterações não salvas. Tem certeza de que deseja descartá-las?",
"account_edit.field_edit_modal.edit_title": "Editar campo personalizado",
"account_edit.field_edit_modal.length_warning": "Limite recomendado de caracteres excedido. Usuários em telefones podem não conseguir ver o campo completo.",
"account_edit.field_edit_modal.link_emoji_warning": "Recomendamos não utilizar emojis personalizados combinados com URLs. Campos personalizados contendo ambos serão exibidos apenas como texto em vez de link, para evitar confusão dos usuários.",
"account_edit.field_edit_modal.name_hint": "Ex. \"Site pessoal\"",
"account_edit.field_edit_modal.name_label": "Descrição",
"account_edit.field_edit_modal.url_warning": "Para adicionar um link, inclua {protocol} no início.",
"account_edit.field_edit_modal.value_hint": "Ex.: \"https://example.me\"",
"account_edit.field_edit_modal.value_label": "Valor",
"account_edit.field_reorder_modal.drag_cancel": "Arraste cancelado. O campo \"{item}\" foi solto.",
@ -637,8 +637,6 @@
"empty_column.account_featured.other": "{acct} não destacou nada ainda.",
"empty_column.account_featured_self.no_collections_button": "Criar uma coleção",
"empty_column.account_featured_self.no_collections_hide_tab": "Ao invés, ocultar esta aba",
"empty_column.account_featured_self.pre_collections": "Fique ligado às Coleções",
"empty_column.account_featured_self.pre_collections_desc": "Coleções (em breve no Mastodon 4.6) permite que você crie listas curadas de contas de recomendação para os outros.",
"empty_column.account_featured_self.showcase_accounts": "Exibir contas favoritas",
"empty_column.account_featured_self.showcase_accounts_desc": "Coleções são listas curadas de contas para ajudar todos a descobrir mais do Fediverso.",
"empty_column.account_featured_unknown.other": "Esta conta não destacou nada ainda.",

View File

@ -590,8 +590,6 @@
"empty_column.account_featured.other": "{acct} ainda não destacou nada.",
"empty_column.account_featured_self.no_collections_button": "Criar uma coleção",
"empty_column.account_featured_self.no_collections_hide_tab": "Ao invés disso, ocultar este separador",
"empty_column.account_featured_self.pre_collections": "Fique atento às Coleções",
"empty_column.account_featured_self.pre_collections_desc": "As coleções (disponíveis na versão 4.6 do Mastodon) permitem-lhe criar as suas próprias listas curadas de contas para recomendar a outras pessoas.",
"empty_column.account_featured_self.showcase_accounts": "Destaque as suas contas favoritas",
"empty_column.account_featured_self.showcase_accounts_desc": "As coleções são listas curadas de contas destinadas a ajudar outras pessoas a descobrir mais do Fediverso.",
"empty_column.account_featured_unknown.other": "Esta conta ainda não destacou nada.",

View File

@ -567,8 +567,6 @@
"emoji_button.travel": "Путешествия и места",
"empty_column.account_featured.other": "{acct} ещё ничего не рекомендовал(а) в своём профиле.",
"empty_column.account_featured_self.no_collections_button": "Создать коллекцию",
"empty_column.account_featured_self.pre_collections": "Будьте в курсе коллекций",
"empty_column.account_featured_self.pre_collections_desc": "Коллекции (входящие в Mastodon 4.6) позволяют создавать собственные курируемые списки учетных записей, чтобы рекомендовать другим пользователям.",
"empty_column.account_featured_unknown.other": "Этот пользователь ещё ничего не рекомендовал в своём профиле.",
"empty_column.account_hides_collections": "Пользователь предпочёл не раскрывать эту информацию",
"empty_column.account_suspended": "Учётная запись заблокирована",

View File

@ -632,8 +632,6 @@
"empty_column.account_featured.other": "{acct} ska ende ndonjë gjë të zgjedhur.",
"empty_column.account_featured_self.no_collections_button": "Krijoni një koleksion",
"empty_column.account_featured_self.no_collections_hide_tab": "Fshihe këtë skedë, më mirë",
"empty_column.account_featured_self.pre_collections": "Ndiqeni për Koleksione",
"empty_column.account_featured_self.pre_collections_desc": "Koleksionet (që vijnë me Mastodon 4.6) ju lejojnë të krijoni lista tuajat llogarish për tua rekomanduar të tjerëve.",
"empty_column.account_featured_self.showcase_accounts": "Shpalosni llogaritë tuaja të parapëlqyera",
"empty_column.account_featured_self.showcase_accounts_desc": "Koleksionet janë lista llogarish për të ndihmuar të tjerët të zbulojnë më tepër gjëra në Fedivers.",
"empty_column.account_featured_unknown.other": "Kjo llogari ska zgjedhur gjë ende.",
@ -995,6 +993,7 @@
"notifications.column_settings.admin.report": "Raportime të reja:",
"notifications.column_settings.admin.sign_up": "Regjistrime të reja:",
"notifications.column_settings.alert": "Njoftime desktopi",
"notifications.column_settings.collections": "Koleksione:",
"notifications.column_settings.favourite": "Të parapëlqyer:",
"notifications.column_settings.filter_bar.advanced": "Shfaq krejt kategoritë",
"notifications.column_settings.filter_bar.category": "Shtyllë filtrimesh të shpejta",
@ -1014,6 +1013,7 @@
"notifications.column_settings.update": "Përpunime:",
"notifications.filter.all": "Krejt",
"notifications.filter.boosts": "Përforcime",
"notifications.filter.collections": "Koleksione",
"notifications.filter.favourites": "Të parapëlqyer",
"notifications.filter.follows": "Ndjekje",
"notifications.filter.mentions": "Përmendje",

View File

@ -584,6 +584,12 @@
"copy_icon_button.copy_this_text": "Kopiera länken till urklipp",
"copypaste.copied": "Kopierad",
"copypaste.copy_to_clipboard": "Kopiera till urklipp",
"custom_homepage.about": "Om",
"custom_homepage.about_this_server": "Om denna server",
"custom_homepage.administered_by": "Administrerad av",
"custom_homepage.contact": "Kontakt:",
"custom_homepage.latest_activity": "Senaste aktivitet",
"custom_homepage.these_are_the_latest_posts": "Detta är de senaste 40 inläggen från konton på denna server.",
"directory.federated": "Från känt fediversum",
"directory.local": "Endast från {domain}",
"directory.new_arrivals": "Nyanlända",
@ -631,8 +637,6 @@
"empty_column.account_featured.other": "{acct} har inte visat något ännu.",
"empty_column.account_featured_self.no_collections_button": "Skapa en samling",
"empty_column.account_featured_self.no_collections_hide_tab": "Dölj denna flik istället",
"empty_column.account_featured_self.pre_collections": "Håll ögonen öppna för samlingar",
"empty_column.account_featured_self.pre_collections_desc": "Samlingar (kommer i Mastodon 4.6) låter dig skapa en egen anpassad lista med konton för att rekommendera till andra.",
"empty_column.account_featured_self.showcase_accounts": "Visa dina favoritkonton",
"empty_column.account_featured_self.showcase_accounts_desc": "Samlingarna är anpassade listor över konton för att hjälpa andra att upptäcka mer av Fediverse:t.",
"empty_column.account_featured_unknown.other": "Detta konto har inte presenterat något ännu.",
@ -908,6 +912,7 @@
"navigation_bar.live_feed_local": "Direkt flöde (lokalt)",
"navigation_bar.live_feed_public": "Direkt flöde (publikt)",
"navigation_bar.logout": "Logga ut",
"navigation_bar.main": "Allmänt",
"navigation_bar.moderation": "Moderering",
"navigation_bar.more": "Fler",
"navigation_bar.mutes": "Tystade användare",
@ -993,6 +998,7 @@
"notifications.column_settings.admin.report": "Nya rapporter:",
"notifications.column_settings.admin.sign_up": "Nya registreringar:",
"notifications.column_settings.alert": "Skrivbordsaviseringar",
"notifications.column_settings.collections": "Samlingar:",
"notifications.column_settings.favourite": "Favoriter:",
"notifications.column_settings.filter_bar.advanced": "Visa alla kategorier",
"notifications.column_settings.filter_bar.category": "Snabbfilter",
@ -1012,6 +1018,7 @@
"notifications.column_settings.update": "Redigeringar:",
"notifications.filter.all": "Alla",
"notifications.filter.boosts": "Boostar",
"notifications.filter.collections": "Samlingar",
"notifications.filter.favourites": "Favoriter",
"notifications.filter.follows": "Följer",
"notifications.filter.mentions": "Omnämningar",

View File

@ -637,8 +637,6 @@
"empty_column.account_featured.other": "{acct} henüz hiçbir şeyi öne çıkarmadı.",
"empty_column.account_featured_self.no_collections_button": "Bir koleksiyon oluştur",
"empty_column.account_featured_self.no_collections_hide_tab": "Onun yerine bu sekmeyi gizle",
"empty_column.account_featured_self.pre_collections": "Koleksiyonlar için beklemede kalın",
"empty_column.account_featured_self.pre_collections_desc": "“Koleksiyonlar” (Mastodon 4.6 sürümünde kullanıma sunulacak) özelliği başkalarına önermek üzere kendi seçtiğiniz hesap listelerini oluşturmanıza olanak tanır.",
"empty_column.account_featured_self.showcase_accounts": "Sevdiğiniz hesapları öne çıkarın",
"empty_column.account_featured_self.showcase_accounts_desc": "Koleksiyonlar başkalarının Fediverse'i daha iyi keşfetmesine yardımcı olmak amacıyla derlenmiş hesap listeleridir.",
"empty_column.account_featured_unknown.other": "Bu hesap henüz hiçbir şeyi öne çıkarmadı.",
@ -1000,6 +998,7 @@
"notifications.column_settings.admin.report": "Yeni bildirimler:",
"notifications.column_settings.admin.sign_up": "Yeni kayıtlar:",
"notifications.column_settings.alert": "Masaüstü bildirimleri",
"notifications.column_settings.collections": "Koleksiyonlar:",
"notifications.column_settings.favourite": "Favorilerin:",
"notifications.column_settings.filter_bar.advanced": "Tüm kategorileri görüntüle",
"notifications.column_settings.filter_bar.category": "Hızlı filtre çubuğu",
@ -1019,6 +1018,7 @@
"notifications.column_settings.update": "Düzenlemeler:",
"notifications.filter.all": "Tümü",
"notifications.filter.boosts": "Yeniden paylaşımlar",
"notifications.filter.collections": "Koleksiyonlar",
"notifications.filter.favourites": "Favorilerin",
"notifications.filter.follows": "Takip edilenler",
"notifications.filter.mentions": "Bahsetmeler",

View File

@ -637,8 +637,6 @@
"empty_column.account_featured.other": "{acct} chưa nêu bật gì.",
"empty_column.account_featured_self.no_collections_button": "Tạo một gói khởi đầu",
"empty_column.account_featured_self.no_collections_hide_tab": "Ẩn tab này",
"empty_column.account_featured_self.pre_collections": "Hãy đón chờ Gói khởi đầu",
"empty_column.account_featured_self.pre_collections_desc": "Gói khởi đầu (sẽ có trong Mastodon 4.6) cho phép bạn tạo danh sách các tài khoản được tuyển chọn để giới thiệu cho người khác.",
"empty_column.account_featured_self.showcase_accounts": "Hiện những tài khoản yêu thích của bạn",
"empty_column.account_featured_self.showcase_accounts_desc": "Gói khởi đầu là những danh sách chứa những tài khoản tuyển chọn để giúp khám phá mọi người trên Fediverse.",
"empty_column.account_featured_unknown.other": "Tài khoản này chưa nêu bật gì.",

View File

@ -637,8 +637,6 @@
"empty_column.account_featured.other": "{acct} 尚未设置任何精选。",
"empty_column.account_featured_self.no_collections_button": "创建收藏列表",
"empty_column.account_featured_self.no_collections_hide_tab": "改为隐藏此选项卡",
"empty_column.account_featured_self.pre_collections": "敬请期待收藏列表",
"empty_column.account_featured_self.pre_collections_desc": "收藏列表(将于 Mastodon 4.6 版本上线)允许你创建自己的精选账号列表,方便你将这些账号推荐给其他人。",
"empty_column.account_featured_self.showcase_accounts": "展示你最喜欢的账号",
"empty_column.account_featured_self.showcase_accounts_desc": "收藏列表包含一些作者精选的账号,可以帮助他人探索更多联邦宇宙的内容。",
"empty_column.account_featured_unknown.other": "此账号尚未设置任何精选。",

View File

@ -637,8 +637,6 @@
"empty_column.account_featured.other": "{acct} 尚未有任何精選內容。",
"empty_column.account_featured_self.no_collections_button": "建立收藏名單",
"empty_column.account_featured_self.no_collections_hide_tab": "改為隱藏此分頁",
"empty_column.account_featured_self.pre_collections": "敬請期待收藏名單",
"empty_column.account_featured_self.pre_collections_desc": "收藏名單功能(將於 Mastodon 4.6 上線)允許您建立自己的精選帳號名單並推薦予其他人。",
"empty_column.account_featured_self.showcase_accounts": "展示您最喜歡的帳號",
"empty_column.account_featured_self.showcase_accounts_desc": "收藏名單為幫助其他人探索 Fediverse 之精選帳號名單。",
"empty_column.account_featured_unknown.other": "此帳號尚未有任何精選內容。",

View File

@ -28,11 +28,11 @@ class LinkDetailsExtractor
end
def headline
json['headline']
text_or_language_tagged_string(json['headline'])
end
def description
json['description']
text_or_language_tagged_string(json['description'])
end
def language
@ -96,6 +96,10 @@ class LinkDetailsExtractor
arr.is_a?(Array) ? arr.flatten.find { |item| item.is_a?(Hash) } : arr
end
def text_or_language_tagged_string(obj)
obj.is_a?(Hash) && obj['@value'] && obj['@language'] ? obj['@value'] : obj
end
def root_array(root)
root.is_a?(Array) ? root : [root]
end

View File

@ -63,15 +63,7 @@
#
class Account < ApplicationRecord
self.ignored_columns += %w(
devices_url
hub_url
remote_url
salmon_url
secret
subscription_expires_at
trust_level
)
self.ignored_columns += %w(devices_url)
BACKGROUND_REFRESH_INTERVAL = 1.week.freeze
REFRESH_DEADLINE = 6.hours

View File

@ -16,7 +16,6 @@
class AccountStat < ApplicationRecord
self.locking_column = nil
self.ignored_columns += %w(lock_version)
belongs_to :account, inverse_of: :account_stat

View File

@ -17,10 +17,6 @@
#
class Admin::ActionLog < ApplicationRecord
self.ignored_columns += %w(
recorded_changes
)
belongs_to :account
belongs_to :target, polymorphic: true, optional: true

View File

@ -19,7 +19,7 @@ class CustomEmojiFilter
def results
scope = CustomEmoji.alphabetic
params.each do |key, value|
relevant_params.each do |key, value|
next if IGNORED_PARAMS.include?(key.to_s)
scope.merge!(scope_for(key, value)) if value.present?
@ -30,6 +30,12 @@ class CustomEmojiFilter
private
def relevant_params
params.tap do |args|
args.delete(:by_domain) if args[:local].present?
end
end
def scope_for(key, value)
case key.to_s
when 'local'

View File

@ -13,11 +13,6 @@
#
class EmailDomainBlock < ApplicationRecord
self.ignored_columns += %w(
ips
last_refresh_at
)
include DomainNormalizable
include Paginable

View File

@ -55,6 +55,23 @@ class Export
end
end
def to_custom_filters_json
data_collection = { custom_filters: [] }
account.custom_filters.includes(:keywords, :statuses).order(:phrase).each do |filter|
keywords_attributes = filter.keywords.map { |k| { keyword: k.keyword, whole_word: k.whole_word } }
data_collection[:custom_filters] << {
title: filter.title,
expire_at: filter.expires_at,
context: filter.context,
action: filter.action,
keywords_attributes: keywords_attributes,
statuses: filter.statuses.map { |s| ActivityPub::TagManager.instance.uri_for(s.status) },
}
end
JSON.generate(data_collection)
end
private
def to_csv(accounts)

View File

@ -22,8 +22,6 @@
#
class Report < ApplicationRecord
self.ignored_columns += %w(action_taken)
include Paginable
include RateLimitable

View File

@ -22,10 +22,6 @@
class StatusEdit < ApplicationRecord
include RateLimitable
self.ignored_columns += %w(
media_attachments_changed
)
class PreservedMediaAttachment < ActiveModelSerializers::Model
attributes :media_attachment, :description

View File

@ -44,15 +44,10 @@
class User < ApplicationRecord
self.ignored_columns += %w(
admin
current_sign_in_ip
encrypted_otp_secret
encrypted_otp_secret_iv
encrypted_otp_secret_salt
filtered_languages
last_sign_in_ip
moderator
remember_created_at
remember_token
skip_sign_in_token
)

View File

@ -6,6 +6,7 @@ class ExportSummary
delegate(
:blocking,
:bookmarks,
:custom_filters,
:domain_blocks,
:owned_lists,
:media_attachments,
@ -27,6 +28,10 @@ class ExportSummary
counts[:bookmarks].value
end
def total_custom_filters
counts[:custom_filters].value
end
def total_domain_blocks
counts[:domain_blocks].value
end
@ -61,6 +66,7 @@ class ExportSummary
{
blocks: account_blocking.async_count,
bookmarks: account_bookmarks.async_count,
custom_filters: account_custom_filters.async_count,
domain_blocks: account_domain_blocks.async_count,
owned_lists: account_owned_lists.async_count,
muting: account_muting.async_count,

View File

@ -7,4 +7,4 @@
<%= quote_wrap(@account.user&.invite_request&.text) %>
<% end %>
<%= raw t('application_mailer.view')%> <%= admin_accounts_url(status: 'pending') %>
<%= raw t('application_mailer.view')%> <%= admin_account_url(@account.id) %>

View File

@ -40,6 +40,10 @@
%th= t('exports.bookmarks')
%td= number_with_delimiter @export_summary.total_bookmarks
%td= table_link_to 'download', t('exports.csv'), settings_exports_bookmarks_path(format: :csv)
%tr
%th= t('exports.custom_filters')
%td= number_with_delimiter @export_summary.total_custom_filters
%td= table_link_to 'download', t('exports.json'), settings_exports_custom_filters_path(format: :json)
%hr.spacer/

View File

@ -48,15 +48,25 @@ az:
export: Xaricə köçür
domain_blocks:
export: Xaricə köçür
email_subscriptions:
compliance_settings:
title: Riayətlilik ayarları
danger_zone:
erase_all_data:
action: Veriləri sil
title: Bütün veriləri sil
purged_msg: Bütün e-poçt abunəlik veriləri silinir.
export_domain_blocks:
import:
title: Əngəllənən domenləri daxilə köçür
new:
title: Əngəllənən domenləri daxilə köçür
instances:
confirm_purge: Bu domendən veriləri həmişəlik silmək istədiyinizə əminsiniz?
dashboard:
instance_followers_measure: oradakı izləyicilərimiz
instance_follows_measure: buradakı izləyiciləri
destroyed_msg: "%{domain} domenindən verilər artıq silinmək üçün növbədədir."
moderation:
title: Moderasiya
moderation_notes:
@ -119,6 +129,7 @@ az:
next_steps: Moderasiya qərarını geri almaq üçün etirazı təsdiqləyə, ya da etirazı yox saya bilərsiniz.
subject: "%{username}, %{instance} üzərindəki bir moderasiya qərarına etiraz edir"
appearance:
advanced_settings: Qabaqcıl ayarlar
animations_and_accessibility: Animasiyalar və erişiləbilənlik
discovery: Kəşf et
localization:

View File

@ -746,7 +746,7 @@ en:
action_log: Audit log
action_taken_by: Action taken by
actions:
delete_description_html: The reported posts will be deleted and a strike will be recorded to help you escalate on future infractions by the same account.
delete_description_html: The reported posts and/or collections will be deleted and a strike will be recorded to help you escalate on future infractions by the same account.
mark_as_sensitive_description_html: The media in the reported posts will be marked as sensitive and a strike will be recorded to help you escalate on future infractions by the same account.
other_description_html: See more options for controlling the account's behaviour and customize communication to the reported account.
resolve_description_html: No action will be taken against the reported account, no strike recorded, and the report will be closed.
@ -773,7 +773,7 @@ en:
confirm: Confirm
confirm_action: Confirm moderation action against @%{acct}
created_at: Reported
delete_and_resolve: Delete posts
delete_and_resolve: Delete content
forwarded: Forwarded
forwarded_replies_explanation: This report is from a remote user and about remote content. It has been forwarded to you because the reported content is in reply to one of your users.
forwarded_to: Forwarded to %{domain}
@ -1569,7 +1569,9 @@ en:
blocks: You block
bookmarks: Bookmarks
csv: CSV
custom_filters: Filters
domain_blocks: Domain blocks
json: JSON
lists: Lists
mutes: You mute
storage: Media storage

View File

@ -959,6 +959,8 @@ hu:
hints:
about_html: Egy oldal a leírással, névjegyinformációkkal, szabályokkal és a kiszolgálóval kapcsolatos egyéb információkkal.
local_feed_html: Élő hírfolyam a kiszolgálón lévő felhasználók legfrissebb bejegyzéseivel.
overview_html: Egy oldal, amely a kiszolgáló leírása mellett a felhasználók legfrissebb, ezen a kiszolgálón közzétett bejegyzései is megjelennek.
trends_html: Egy oldal, amely a kiszolgálón épp népszerű tartalmakat mutatja be.
values:
about: Névjegy oldal
local_feed: Helyi élő hírfolyam

View File

@ -528,6 +528,30 @@ nan-TW:
index:
disabled:
cannot_be_enabled: Lí ê技術提供者iáu buē替lí ê服侍器啟用tsit ê功能。
description: Tsit ê功能允准特定口座加widget kàu in ê個人檔案予無Mastodon口座ê訪客通用電子phue收著in ê PO文。
get_started: 開始用
lead: 允准訪客用電子phue接受tsit臺服侍器ê專用口座ê PO文。
title: 電子報
purged_msg: 逐ê訂電子報ê資料當leh hú掉。
roles:
accounts: 口座
edit_role: 編輯角色
empty:
hint: 無半位有權用tsit ê功能。
no_roles_added: Iáu buē加角色
lead: 有下kha ê角色ê口座ē當佇in ê個人資料內底啟用tsit ê功能。
manage_roles: 管理角色
role_name: 角色ê名
title: 角色
setups:
show:
enable_feature: 啟用功能
important_information: 重大資訊
list:
1_permission_explanation: 佇啟用tsit ê功能ê時有指定權限ê口座通佇伊ê個人資料加電子phue收集表。
2_feature_explanation: 訪客佇口座ê個人資料頁註冊koh確認beh訂了後佇chit ê口座貼新ê公開PO文ê時陣in ē開始收著電子phue ê更新。
3_privacy_policy_warning: 服侍器ê管理員ē通接近使用收著ê通辨別ê個人資料電子phue地址。因此tsit臺服侍器ê隱私權政策kap服務規定佇用tsit ê功能進前,愛更新。
4_cost_warning: 照服侍器設定ê方式送電子phue可能ē加費用。請佇啟用進前kap lí ê服務提供者討論因為tsit ê功能可能ē予lí ê服侍器送ê電子phue數量增長siunn大。
export_domain_allows:
new:
title: 輸入允准ê域名
@ -827,6 +851,7 @@ nan-TW:
manage_custom_emojis: 管理自訂ê Emoji
manage_custom_emojis_description: 允准用者管理佇tsit ê服侍器ê自訂Emoji
manage_email_subscriptions: 管理訂電子phue
manage_email_subscriptions_description: 允准有tsit ê權限ê用者啟用in口座ê電子報功能
manage_federation: 管理聯邦
manage_federation_description: 允准用者封鎖á是允准kap其他域名相連mā控制寄送ê能力
manage_invites: 管理邀請

View File

@ -19,7 +19,7 @@ ru:
many: подписок
one: подписка
other: подписок
instance_actor_flash: Эта учетная запись - виртуальный пользователь, используемый для представления самого сервера, а не отдельного пользователя. Она используется для организационных целей и не может быть заморожена.
instance_actor_flash: Эта учётная запись — виртуальный актор. Она представляет сам сервер, а не какого-либо пользователя на нём. Эту учётную запись не следует блокировать, так как она используется для федерации.
last_active: последняя активность
link_verified_on: Владение этой ссылкой было проверено %{date}
nothing_here: Здесь ничего нет!
@ -87,8 +87,8 @@ ru:
followers: Подписчики
follows: Подписки
header: Обложка профиля
inbox_url: URL входящих
invite_request_text: Причины для присоединения
inbox_url: Inbox URL
invite_request_text: Текст заявки на регистрацию
invited_by: Приглашение выдал(а)
ip: IP-адрес
joined: Дата регистрации
@ -129,8 +129,8 @@ ru:
protocol: Протокол
public: Профиль
push_subscription_expires: Подписка PuSH истекает
redownload: Обновить аватар
redownloaded_msg: Профиль %{username} успешно обновлен из оригинала
redownload: Синхронизировать профиль
redownloaded_msg: Профиль %{username} синхронизирован с оригиналом
reject: Отклонить
rejected_msg: Заявка на регистрацию %{username} отклонена
remote_suspension_irreversible: Данные этого аккаунта были необратимо удалены.
@ -140,7 +140,7 @@ ru:
removed_avatar_msg: Фото профиля %{username} удалено
removed_header_msg: Обложка профиля %{username} удалена
resend_confirmation:
already_confirmed: Этот пользователь уже подтвержден
already_confirmed: Этот пользователь уже подтверждён
send: Повторно отправить ссылку подтверждения
success: Ссылка для подтверждения успешно отправлена!
reset: Сбросить
@ -156,10 +156,10 @@ ru:
password_and_2fa: Пароль и 2FA
sensitive: Скрыть медиа
sensitized: отмечено как деликатный контент
shared_inbox_url: URL общих входящих
shared_inbox_url: Shared inbox URL
show:
created_reports: Жалобы, отправленные с этой учётной записи
targeted_reports: Жалобы на эту учётную запись
created_reports: Жалоб на других пользователей
targeted_reports: Жалоб от других пользователей
silence: Ограничить
silenced: Ограничена
statuses: Посты
@ -167,12 +167,12 @@ ru:
subscribe: Подписаться
suspend: Заблокировать
suspended: Заблокирована
suspension_irreversible: Данные этой учётной записи были необратимо удалены. Вы можете разблокировать учетную запись, чтобы сделать её доступной, но это не восстановит ранее имевшиеся в ней данные.
suspension_reversible_hint_html: Учётная запись была заблокирована, и данные будут полностью удалены %{date}. До этого момента её можно восстановить без каких-либо неприятных последствий. Если вы хотите немедленно удалить все данные учётной записи, вы можете сделать это ниже.
suspension_irreversible: Данные этой учётной записи были необратимо удалены. Вы можете разблокировать учетную запись, чтобы сделать её доступной, но утраченные данные не будут восстановлены.
suspension_reversible_hint_html: Учётная запись была заблокирована, и данные будут полностью удалены %{date}. До этого момента её можно восстановить без каких-либо неприятных последствий. Если вы хотите немедленно удалить все данные учётной записи, вы можете сделать это, нажав кнопку ниже.
title: Учётные записи
unblock_email: Разблокировать e-mail адрес
unblocked_email_msg: E-mail адрес %{username} разблокирован
unconfirmed_email: Неподтверждённый e-mail
unconfirmed_email: Неподтверждённый адрес электронной почты
undo_sensitized: Не скрывать медиа
undo_silenced: Не ограничивать
undo_suspension: Разблокировать
@ -186,66 +186,66 @@ ru:
whitelisted: В белом списке
action_logs:
action_types:
approve_appeal: Удовлетворение апелляции
approve_user: Одобрение регистрации
assigned_to_self_report: Присвоение жалоб
change_email_user: Смена адреса эл. почты пользователя
change_role_user: Изменение роли пользователя
confirm_user: Подтверждение пользователя
create_account_warning: Вынесение предупреждения
create_announcement: Создание объявления
create_canonical_email_block: Добавление блокировки по адресу эл. почты
approve_appeal: Удовлетворение апелляций
approve_user: Одобрение регистраций
assigned_to_self_report: Назначение на жалобы
change_email_user: Смена адреса эл. почты пользователей
change_role_user: Изменение роли пользователей
confirm_user: Подтверждение пользователей
create_account_warning: Вынесение предупреждений
create_announcement: Создание объявлений
create_canonical_email_block: Добавление блокировок по адресу эл. почты
create_custom_emoji: Добавление эмодзи
create_domain_allow: Разрешение доменов
create_domain_block: Блокировка доменов
create_email_domain_block: Добавление блокировки по домену эл. почты
create_domain_allow: Внесение доменов в белый список
create_domain_block: Внесение доменов в чёрный список
create_email_domain_block: Добавление блокировок по домену эл. почты
create_ip_block: Создание правил для IP-адресов
create_relay: Создание ретранслятора
create_unavailable_domain: Добавление домена в список недоступных
create_user_role: Создание роли
create_username_block: Создать правило имени пользователя
create_relay: Добавление ретрансляторов
create_unavailable_domain: Приостановка доставки на сервер
create_user_role: Создание ролей
create_username_block: Создание правил для имени пользователя
demote_user: Разжалование пользователей
destroy_announcement: Удаление объявления
destroy_canonical_email_block: Удаление блокировки по адресу эл. почты
destroy_announcement: Удаление объявлений
destroy_canonical_email_block: Удаление блокировок по адресу эл. почты
destroy_custom_emoji: Удаление эмодзи
destroy_domain_allow: Отзыв разрешений для доменов
destroy_domain_block: Разблокировка доменов
destroy_email_domain_block: Удаление блокировки по домену эл. почты
destroy_instance: Очистить домен
destroy_domain_allow: Исключение доменов из белого списка
destroy_domain_block: Исключение доменов из чёрного списка
destroy_email_domain_block: Удаление блокировок по домену эл. почты
destroy_instance: Удаление данных сервера
destroy_ip_block: Удаление правил для IP-адресов
destroy_relay: Удаление ретранслятора
destroy_relay: Удаление ретрансляторов
destroy_status: Удаление постов
destroy_unavailable_domain: Исключение доменов из списка недоступных
destroy_unavailable_domain: Возобновление доставки на сервер
destroy_user_role: Удаление ролей
destroy_username_block: Удалить правило имени пользователя
destroy_username_block: Удаления правил для имени пользователя
disable_2fa_user: Отключение 2FA
disable_custom_emoji: Отключение эмодзи
disable_relay: Отключение ретранслятора
disable_relay: Отключение ретрансляторов
disable_sign_in_token_auth_user: Отключение аутентификации с помощью одноразового пароля по эл. почте
disable_user: Заморозка пользователей
disable_user: Отключение учётных записей пользователей
enable_custom_emoji: Включение эмодзи
enable_relay: Включение ретранслятора
enable_relay: Включение ретрансляторов
enable_sign_in_token_auth_user: Включение аутентификации с помощью одноразового пароля по эл. почте
enable_user: Разморозка пользователей
memorialize_account: Присвоение пользователям статуса «мемориала»
enable_user: Включение учётных записей пользователей
memorialize_account: Превращение учётных записей в мемориальные
promote_user: Повышение пользователей
publish_terms_of_service: Публикация пользовательского соглашения
reject_appeal: Отклонение обжалований
publish_terms_of_service: Публикация пользовательских соглашений
reject_appeal: Отклонение апелляций
reject_user: Отклонение регистраций
remove_avatar_user: Удаление аватаров
reopen_report: Возобновление жалоб
remove_avatar_user: Удаление фото профиля
reopen_report: Отметка жалоб нерешёнными
resend_user: Повторная отправка писем с подтверждением
reset_password_user: Сброс пароля пользователей
resolve_report: Отметка жалоб «решёнными»
reset_password_user: Сброс паролей пользователей
resolve_report: Отметка жалоб решёнными
sensitive_account: Присвоение пользователям отметки «деликатного содержания»
silence_account: Скрытие пользователей
silence_account: Ограничение учётных записей пользователей
suspend_account: Блокировка пользователей
unassigned_report: Снятие жалоб
unassigned_report: Отмена назначений на жалобы
unblock_email_account: Разблокировка e-mail адресов
unsensitive_account: Снятие с пользователей отметки «деликатного содержания»
unsilence_account: Отмена скрытия пользователей
unsilence_account: Отмена ограничения учётных записей пользователей
unsuspend_account: Разблокировка пользователей
update_announcement: Обновление объявлений
update_announcement: Редактирование объявлений
update_custom_emoji: Обновление эмодзи
update_domain_block: Изменение блокировки домена
update_ip_block: Обновление правил для IP-адресов
@ -256,65 +256,65 @@ ru:
actions:
approve_appeal_html: "%{name} удовлетворил(а) апелляцию %{target}"
approve_user_html: "%{name} одобрил(а) заявку на регистрацию %{target}"
assigned_to_self_report_html: "%{name} назначил(а) себя для решения жалобы %{target}"
assigned_to_self_report_html: "%{name} назначил(а) себя на жалобу %{target}"
change_email_user_html: "%{name} cменил(а) e-mail адрес пользователя %{target}"
change_role_user_html: "%{name} изменил(а) роль %{target}"
confirm_user_html: "%{name} подтвердил(а) e-mail адрес пользователя %{target}"
confirm_user_html: "%{name} подтвердил(а) адрес электронной почты пользователя %{target}"
create_account_warning_html: "%{name} выдал(а) предупреждение %{target}"
create_announcement_html: "%{name} создал(а) новое объявление %{target}"
create_canonical_email_block_html: "%{name} заблокировал(а) e-mail с хешем %{target}"
create_canonical_email_block_html: "%{name} заблокировал(а) адрес электронной почты с хешем %{target}"
create_custom_emoji_html: "%{name} загрузил(а) новый эмодзи %{target}"
create_domain_allow_html: "%{name} разрешил(а) федерацию с доменом %{target}"
create_domain_block_html: "%{name} заблокировал(а) домен %{target}"
create_email_domain_block_html: "%{name} заблокировал(а) e-mail домен %{target}"
create_email_domain_block_html: "%{name} заблокировал(а) домен электронной почты %{target}"
create_ip_block_html: "%{name} создал(а) правило для IP %{target}"
create_relay_html: "%{name} создал(а) ретранслятор %{target}"
create_unavailable_domain_html: "%{name} приостановил доставку на узел %{target}"
create_relay_html: "%{name} добавил(а) ретранслятор %{target}"
create_unavailable_domain_html: "%{name} приостановил(а) доставку на сервер %{target}"
create_user_role_html: "%{name} создал(а) роль %{target}"
create_username_block_html: "%{name} создал(а) правило для имён пользователей, содержащих %{target}"
demote_user_html: "%{name} разжаловал(а) пользователя %{target}"
destroy_announcement_html: "%{name} удалил(а) объявление %{target}"
destroy_canonical_email_block_html: "%{name} снял(а) блокировку e-mail с хэшем %{target}"
destroy_canonical_email_block_html: "%{name} разблокировал(а) адрес электронной почты с хешем %{target}"
destroy_collection_html: "%{name} удалил(а) подборку пользователя %{target}"
destroy_custom_emoji_html: "%{name} удалил(а) эмодзи %{target}"
destroy_domain_allow_html: "%{name} запретил(а) федерацию с доменом %{target}"
destroy_domain_block_html: "%{name} снял(а) блокировку с домена %{target}"
destroy_email_domain_block_html: "%{name} снял(а) блокировку с e-mail домена %{target}"
destroy_instance_html: "%{name} очистил(а) данные для домена %{target}"
destroy_domain_block_html: "%{name} разблокировал(а) домен %{target}"
destroy_email_domain_block_html: "%{name} разблокировал(а) домен электронной почты %{target}"
destroy_instance_html: "%{name} удалил(а) данные сервера %{target}"
destroy_ip_block_html: "%{name} удалил(а) правило для IP %{target}"
destroy_relay_html: "%{name} удалил(а) ретранслятор %{target}"
destroy_status_html: "%{name} удалил(а) пост пользователя %{target}"
destroy_unavailable_domain_html: "%{name} возобновил доставку на узел %{target}"
destroy_unavailable_domain_html: "%{name} возобновил(а) доставку на сервер %{target}"
destroy_user_role_html: "%{name} удалил(а) роль %{target}"
destroy_username_block_html: "%{name} удалил(а) правило для имён пользователей, содержащих %{target}"
disable_2fa_user_html: "%{name} отключил(а) требование двухэтапной авторизации для пользователя %{target}"
disable_2fa_user_html: "%{name} отключил(а) требование второго фактора аутентификации для пользователя %{target}"
disable_custom_emoji_html: "%{name} отключил(а) эмодзи %{target}"
disable_relay_html: "%{name} отключил(а) ретранслятор %{target}"
disable_sign_in_token_auth_user_html: "%{name} отключил(а) аутентификацию с помощью одноразового пароля по эл. почте для %{target}"
disable_user_html: "%{name} заморозил(а) пользователя %{target}"
disable_sign_in_token_auth_user_html: "%{name} отключил(а) аутентификацию с помощью одноразового пароля по электронной почте для %{target}"
disable_user_html: "%{name} отключил(а) учётную запись пользователя %{target}"
enable_custom_emoji_html: "%{name} включил(а) эмодзи %{target}"
enable_relay_html: "%{name} включил(а) ретранслятор %{target}"
enable_sign_in_token_auth_user_html: "%{name} включил(а) аутентификацию с помощью одноразового пароля по эл. почте для %{target}"
enable_user_html: "%{name} разморозил(а) пользователя %{target}"
memorialize_account_html: "%{name} перевел(а) учётную запись пользователя %{target} в статус памятника"
enable_sign_in_token_auth_user_html: "%{name} включил(а) аутентификацию с помощью одноразового пароля по электронной почте для %{target}"
enable_user_html: "%{name} включил(а) учётную запись пользователя %{target}"
memorialize_account_html: "%{name} превратил(а) учётную запись пользователя %{target} в мемориальную"
promote_user_html: "%{name} повысил(а) пользователя %{target}"
publish_terms_of_service_html: "%{name} опубликовал(а) обновление пользовательского соглашения"
reject_appeal_html: "%{name} отклонил(а) обжалование действий модерации от %{target}"
reject_user_html: "%{name} отклонил(а) регистрацию %{target}"
remove_avatar_user_html: "%{name} убрал(а) аватарку пользователя %{target}"
reopen_report_html: "%{name} повторно открыл(а) жалобу %{target}"
reject_appeal_html: "%{name} отклонил(а) апелляцию %{target}"
reject_user_html: "%{name} отклонил(а) заявку на регистрацию %{target}"
remove_avatar_user_html: "%{name} удалил(а) фото профиля %{target}"
reopen_report_html: "%{name} отметил(а) жалобу %{target} как нерешённую"
resend_user_html: "%{name} повторно отправил(а) письмо с подтверждением для %{target}"
reset_password_user_html: "%{name} сбросил(а) пароль пользователя %{target}"
resolve_report_html: "%{name} решил(а) жалобу %{target}"
resolve_report_html: "%{name} отметил(а) жалобу %{target} как решённую"
sensitive_account_html: "%{name} установил(а) отметку файлов %{target} как «деликатного характера»"
silence_account_html: "%{name} наложил(а) ограничения на видимость постов пользователя %{target}"
silence_account_html: "%{name} ограничил(а) учётную запись %{target}"
suspend_account_html: "%{name} заблокировал(а) учётную запись %{target}"
unassigned_report_html: "%{name} снял(а) назначение жалобы %{target}"
unassigned_report_html: "%{name} отменил(а) назначение на жалобу %{target}"
unblock_email_account_html: "%{name} разблокировал(а) e-mail адрес %{target}"
unsensitive_account_html: "%{name} снял(а) отметку файлов %{target} как «деликатного характера»"
unsilence_account_html: "%{name} снял(а) ограничения видимости постов пользователя %{target}"
unsuspend_account_html: "%{name} снял(а) блокировку с пользователя %{target}"
update_announcement_html: "%{name} обновил(а) объявление %{target}"
unsilence_account_html: "%{name} отменил(а) ограничение учётной записи %{target}"
unsuspend_account_html: "%{name} разблокировал(а) учётную запись %{target}"
update_announcement_html: "%{name} отредактировал(а) объявление %{target}"
update_custom_emoji_html: "%{name} обновил(а) эмодзи %{target}"
update_domain_block_html: "%{name} обновил(а) блокировку домена для %{target}"
update_ip_block_html: "%{name} изменил(а) правило для IP %{target}"

View File

@ -349,7 +349,7 @@ ru:
indexable: Разрешить индексацию моего профиля поисковыми системами
show_application: Показывать название приложения, в котором вы создали пост
tag:
listable: Разрешить показ хэштега в поиске или в каталоге профилей
listable: Разрешить показывать этот хештег в поиске и рекомендациях
name: Хэштег
trendable: Разрешить показ хэштега в трендах
usable: Позволить этот хэштег в локальных сообщениях

View File

@ -955,6 +955,17 @@ sv:
authenticated: Endast autentiserade användare
disabled: Kräv specifik användarroll
public: Alla
landing_page:
hints:
about_html: En sida med beskrivning, kontaktuppgifter, regler och annan information om denna server.
local_feed_html: Ett realtidsflöde med senaste inlägg av användare på den här servern.
overview_html: En sida som visar beskrivningen av din server tillsammans med de senaste lokala inläggen av användare på denna server.
trends_html: En sida med vad som är populärt på denna server just nu.
values:
about: Om sidan
local_feed: Lokalt realtidsflöde
overview: Översikt
trends: Trendande
registrations:
moderation_recommandation: Se till att du har ett tillräckligt och reaktivt modereringsteam innan du öppnar registreringar till alla!
preamble: Kontrollera vem som kan skapa ett konto på din server.

View File

@ -30,6 +30,7 @@ namespace :settings do
resources :lists, only: :index
resources :domain_blocks, only: :index, controller: :blocked_domains
resources :bookmarks, only: :index
resources :custom_filters, only: :index, constraints: { format: :json }, controller: :custom_filters
end
resources :two_factor_authentication_methods, only: [:index] do

View File

@ -75,7 +75,7 @@ module ViteRails::TagHelpers::IntegrityExtension
asset_type: :javascript,
skip_preload_tags: false,
skip_style_tags: false,
crossorigin: 'anonymous',
crossorigin: '',
media: 'screen',
**options)
entries = vite_manifest.resolve_entries_with_integrity(*names, type: asset_type)

View File

@ -161,7 +161,7 @@
"@types/redux-immutable": "^4.0.3",
"@types/requestidlecallback": "^0.3.5",
"@vitest/browser": "^4.1.0",
"@vitest/browser-playwright": "^4.1.0",
"@vitest/browser-playwright": "^4.1.7",
"@vitest/coverage-v8": "^4.1.0",
"@vitest/ui": "^4.1.0",
"chromatic": "^17.0.0",
@ -169,7 +169,7 @@
"eslint-import-resolver-typescript": "^4.2.5",
"eslint-plugin-formatjs": "^6.0.0",
"eslint-plugin-import": "~2.32.0",
"eslint-plugin-jsdoc": "^62.0.0",
"eslint-plugin-jsdoc": "^63.0.0",
"eslint-plugin-jsx-a11y": "~6.10.2",
"eslint-plugin-promise": "~7.2.1",
"eslint-plugin-react": "^7.37.4",
@ -190,7 +190,7 @@
"typescript": "~6.0.0",
"typescript-eslint": "^8.55.0",
"typescript-plugin-css-modules": "^5.2.0",
"vitest": "^4.1.0"
"vitest": "^4.1.7"
},
"resolutions": {
"@types/react": "^18.2.7",

View File

@ -15,10 +15,13 @@ RSpec.describe Settings::ExportControllerConcern do
end
end
def sign_in_user
sign_in Fabricate(:user)
end
describe 'GET #index' do
it 'returns a csv of the exported data when signed in' do
user = Fabricate(:user)
sign_in user
sign_in_user
get :index, format: :csv
expect(response).to have_http_status(200)
@ -33,4 +36,26 @@ RSpec.describe Settings::ExportControllerConcern do
expect(response).to have_http_status(401)
end
end
context 'when with json format' do
it 'returns a json of the exported data when signed in' do
sign_in_user
get :index, format: :json
expect(response).to have_http_status(200)
expect(response.media_type).to eq 'application/json'
expect(response)
.to have_attachment('anonymous.json')
expect(response.body).to be_present
end
end
context 'when without format' do
it 'does not send exported data' do
sign_in_user
get :index
expect(response).to have_http_status(406)
end
end
end

View File

@ -287,6 +287,41 @@ RSpec.describe LinkDetailsExtractor do
expect(subject.provider_name).to eq 'Pet News'
end
end
context 'with headline and description as language tagged strings' do
let(:ld_json) do
{
'@context' => 'https://schema.org',
'@type' => 'NewsArticle',
'headline' => {
'@value' => 'Title in English',
'@language' => 'en',
},
'description' => {
'@value' => 'Text in English.',
'@language' => 'en',
},
}.to_json
end
let(:html) { <<~HTML }
<!doctype html>
<html>
<body>
<script type="application/ld+json">
#{ld_json}
</script>
</body>
</html>
HTML
it 'gives correct title' do
expect(subject.title).to eq 'Title in English'
end
it 'gives correct description' do
expect(subject.description).to eq 'Text in English.'
end
end
end
context 'when Open Graph protocol data is present' do

View File

@ -12,9 +12,9 @@ RSpec.describe CustomEmojiFilter do
context 'when params have values' do
context 'when local' do
let(:params) { { local: true } }
let(:params) { { local: true, by_domain: 'a' } }
it 'returns ActiveRecord::Relation' do
it 'ignores domain and returns ActiveRecord::Relation' do
expect(subject).to be_a(ActiveRecord::Relation)
expect(subject).to contain_exactly(custom_emoji_domain_nil)
end

View File

@ -52,6 +52,14 @@ RSpec.describe ExportSummary do
end
end
describe '#total_custom_filters' do
before { Fabricate.times(2, :custom_filter, account: account) }
it 'returns the total number of lists' do
expect(subject.total_custom_filters).to eq(2)
end
end
describe '#total_followers' do
before { target_accounts.each { |target_account| target_account.follow!(account) } }

View File

@ -2,8 +2,6 @@
ENV['RAILS_ENV'] ||= 'test'
require 'simplecov' if ENV.fetch('COVERAGE', false)
# This needs to be defined before Rails is initialized
STREAMING_PORT = ENV.fetch('TEST_STREAMING_PORT', '4020')
STREAMING_HOST = ENV.fetch('TEST_STREAMING_HOST', 'localhost')

View File

@ -0,0 +1,62 @@
# frozen_string_literal: true
require 'rails_helper'
RSpec.describe 'Settings / Exports / CustomFilters' do
describe 'GET /settings/exports/custom_filters' do
context 'with a signed in user who has custom_filters' do
let(:user) { Fabricate(:user) }
let(:filter) { Fabricate(:custom_filter, account: user.account, phrase: 'foo') }
let(:other_filter) { Fabricate(:custom_filter, account: user.account, phrase: 'bar') }
let!(:keyword) { Fabricate(:custom_filter_keyword, custom_filter: filter) }
let!(:filter_keyword) { Fabricate(:custom_filter_keyword, keyword: 'something', custom_filter: filter, whole_word: false) }
let!(:other_keyword) { Fabricate(:custom_filter_keyword, custom_filter: other_filter) }
let!(:other_filter_keyword) { Fabricate(:custom_filter_keyword, keyword: 'something', custom_filter: other_filter, whole_word: false) }
let!(:status_filter) { Fabricate(:custom_filter_status, custom_filter: filter) }
let(:expected_response_body) do
{ 'custom_filters' => [
{
'title' => other_filter.phrase,
'expire_at' => nil,
'context' => other_filter.context,
'action' => other_filter.action,
'keywords_attributes' => [{
'keyword' => other_keyword.keyword,
'whole_word' => other_keyword.whole_word,
}, {
'keyword' => other_filter_keyword.keyword,
'whole_word' => other_filter_keyword.whole_word,
}],
'statuses' => [],
},
{
'title' => filter.phrase,
'expire_at' => nil,
'context' => filter.context,
'action' => filter.action,
'keywords_attributes' => [{
'keyword' => keyword.keyword,
'whole_word' => keyword.whole_word,
}, {
'keyword' => filter_keyword.keyword,
'whole_word' => filter_keyword.whole_word,
}],
'statuses' => [ActivityPub::TagManager.instance.uri_for(status_filter.status)],
},
] }
end
before do
sign_in user
end
it 'returns a JSON with the custom filters' do
get '/settings/exports/custom_filters.json'
expect(response).to have_http_status(200)
expect(response.content_type).to eq('application/json')
expect(response.parsed_body).to eq(expected_response_body)
end
end
end
end

View File

@ -1,5 +1,10 @@
# frozen_string_literal: true
if ENV.fetch('COVERAGE', false)
require 'simplecov'
SimpleCov.start 'rails'
end
RSpec.configure do |config|
config.example_status_persistence_file_path = 'tmp/rspec/examples.txt'
config.expect_with :rspec do |expectations|

1276
yarn.lock

File diff suppressed because it is too large Load Diff