Merge commit '598ae4f2da86029b1c3c3e35e64b89873037b598' into glitch-soc/merge-upstream

Conflicts:
- `config/routes/api.rb`:
  Upstream added an endpoint, textually close to a glitch-soc-only endpoint.
  Ported upstream changes.
This commit is contained in:
Claire 2024-07-30 20:47:34 +02:00
commit 1f796d129d
99 changed files with 539 additions and 103 deletions

View File

@ -19,6 +19,7 @@ on:
jobs:
upload-translations:
runs-on: ubuntu-latest
if: github.repository == 'mastodon/mastodon'
steps:
- name: Checkout

View File

@ -357,13 +357,14 @@ GEM
aes_key_wrap
bindata
httpclient
json-ld (3.3.1)
json-ld (3.3.2)
htmlentities (~> 4.3)
json-canonicalization (~> 1.0)
link_header (~> 0.0, >= 0.0.8)
multi_json (~> 1.15)
rack (>= 2.2, < 4)
rdf (~> 3.3)
rexml (~> 3.2)
json-ld-preloaded (3.3.0)
json-ld (~> 3.3)
rdf (~> 3.3)
@ -675,8 +676,9 @@ GEM
zeitwerk (~> 2.6)
rainbow (3.1.1)
rake (13.2.1)
rdf (3.3.1)
rdf (3.3.2)
bcp47_spec (~> 0.2)
bigdecimal (~> 3.1, >= 3.1.5)
link_header (~> 0.0, >= 0.0.8)
rdf-normalize (0.7.0)
rdf (~> 3.3)

View File

@ -30,10 +30,10 @@ class Api::BaseController < ApplicationController
protected
def limit_param(default_limit)
def limit_param(default_limit, max_limit = nil)
return default_limit unless params[:limit]
[params[:limit].to_i.abs, default_limit * 2].min
[params[:limit].to_i.abs, max_limit || (default_limit * 2)].min
end
def params_slice(*keys)

View File

@ -7,6 +7,8 @@ class Api::V1::NotificationsController < Api::BaseController
after_action :insert_pagination_headers, only: :index
DEFAULT_NOTIFICATIONS_LIMIT = 40
DEFAULT_NOTIFICATIONS_COUNT_LIMIT = 100
MAX_NOTIFICATIONS_COUNT_LIMIT = 1_000
def index
with_read_replica do
@ -17,6 +19,14 @@ class Api::V1::NotificationsController < Api::BaseController
render json: @notifications, each_serializer: REST::NotificationSerializer, relationships: @relationships
end
def unread_count
limit = limit_param(DEFAULT_NOTIFICATIONS_COUNT_LIMIT, MAX_NOTIFICATIONS_COUNT_LIMIT)
with_read_replica do
render json: { count: browserable_account_notifications.paginate_by_min_id(limit, notification_marker&.last_read_id).count }
end
end
def show
@notification = current_account.notifications.without_suspended.find(params[:id])
render json: @notification, serializer: REST::NotificationSerializer
@ -63,6 +73,10 @@ class Api::V1::NotificationsController < Api::BaseController
)
end
def notification_marker
current_user.markers.find_by(timeline: 'notifications')
end
def target_statuses_from_notifications
@notifications.reject { |notification| notification.target_status.nil? }.map(&:target_status)
end

View File

@ -7,6 +7,8 @@ class Api::V2Alpha::NotificationsController < Api::BaseController
after_action :insert_pagination_headers, only: :index
DEFAULT_NOTIFICATIONS_LIMIT = 40
DEFAULT_NOTIFICATIONS_COUNT_LIMIT = 100
MAX_NOTIFICATIONS_COUNT_LIMIT = 1_000
def index
with_read_replica do
@ -35,6 +37,14 @@ class Api::V2Alpha::NotificationsController < Api::BaseController
end
end
def unread_count
limit = limit_param(DEFAULT_NOTIFICATIONS_COUNT_LIMIT, MAX_NOTIFICATIONS_COUNT_LIMIT)
with_read_replica do
render json: { count: browserable_account_notifications.paginate_groups_by_min_id(limit, min_id: notification_marker&.last_read_id).count }
end
end
def show
@notification = current_account.notifications.without_suspended.find_by!(group_key: params[:id])
render json: NotificationGroup.from_notification(@notification), serializer: REST::NotificationGroupSerializer
@ -92,6 +102,10 @@ class Api::V2Alpha::NotificationsController < Api::BaseController
)
end
def notification_marker
current_user.markers.find_by(timeline: 'notifications')
end
def target_statuses_from_notifications
@notifications.filter_map(&:target_status)
end

View File

@ -223,14 +223,14 @@
"domain_pill.activitypub_lets_connect": "Sen avulla voit muodostaa yhteyden ja olla vuorovaikutuksessa ihmisten kanssa, ei vain Mastodonissa vaan myös muissa sosiaalisissa sovelluksissa.",
"domain_pill.activitypub_like_language": "ActivityPub on kuin kieli, jota Mastodon puhuu muiden sosiaalisten verkostojen kanssa.",
"domain_pill.server": "Palvelin",
"domain_pill.their_handle": "Hänen käyttäjänimensä:",
"domain_pill.their_handle": "Hänen käyttäjätunnuksensa:",
"domain_pill.their_server": "Hänen digitaalinen kotinsa, jossa kaikki hänen julkaisunsa sijaitsevat.",
"domain_pill.their_username": "Hänen yksilöllinen tunnisteensa omalla palvelimellaan. Eri palvelimilta on mahdollista löytää käyttäjiä, joilla on sama käyttäjänimi.",
"domain_pill.username": "Käyttäjänimi",
"domain_pill.whats_in_a_handle": "Mitä käyttäjänimessä on?",
"domain_pill.whats_in_a_handle": "Mitä käyttäjätunnuksessa on?",
"domain_pill.who_they_are": "Koska käyttäjätunnukset kertovat, kuka ja missä joku on, voit olla vuorovaikutuksessa ihmisten kanssa läpi sosiaalisen verkon, joka koostuu <button>ActivityPub-pohjaisista alustoista</button>.",
"domain_pill.who_you_are": "Koska käyttäjätunnuksesi kertoo, kuka ja missä olet, ihmiset voivat olla vaikutuksessa kanssasi läpi sosiaalisen verkon, joka koostuu <button>ActivityPub-pohjaisista alustoista</button>.",
"domain_pill.your_handle": "Käyttäjänimesi:",
"domain_pill.your_handle": "Käyttäjätunnuksesi:",
"domain_pill.your_server": "Digitaalinen kotisi, jossa kaikki julkaisusi sijaitsevat. Etkö pidä tästä? Siirry palvelimelta toiselle milloin tahansa ja tuo myös seuraajasi mukanasi.",
"domain_pill.your_username": "Yksilöllinen tunnisteesi tällä palvelimella. Eri palvelimilta on mahdollista löytää käyttäjiä, joilla on sama käyttäjänimi.",
"embed.instructions": "Upota julkaisu verkkosivullesi kopioimalla alla oleva koodi.",
@ -357,7 +357,7 @@
"home.pending_critical_update.link": "Tutustu päivityssisältöihin",
"home.pending_critical_update.title": "Kriittinen tietoturvapäivitys saatavilla!",
"home.show_announcements": "Näytä tiedotteet",
"interaction_modal.description.favourite": "Mastodon-tilillä voit lisätä tämän julkaisun suosikkeihisi osoittaaksesi kirjoittajalle arvostavasi sitä ja tallentaaksesi sen tulevaa käyttöä varten.",
"interaction_modal.description.favourite": "Mastodon-tilillä voit lisätä tämän julkaisun suosikkeihisi osoittaaksesi tekijälle arvostavasi sitä ja tallentaaksesi sen tulevaa käyttöä varten.",
"interaction_modal.description.follow": "Mastodon-tilillä voit seurata käyttäjää {name} saadaksesi hänen julkaisunsa kotisyötteeseesi.",
"interaction_modal.description.reblog": "Mastodon-tilillä voit tehostaa tätä julkaisua jakaaksesi sen seuraajiesi kanssa.",
"interaction_modal.description.reply": "Mastodon-tilillä voit vastata tähän julkaisuun.",
@ -367,7 +367,7 @@
"interaction_modal.on_another_server": "Toisella palvelimella",
"interaction_modal.on_this_server": "Tällä palvelimella",
"interaction_modal.sign_in": "Et ole kirjautunut tälle palvelimelle. Millä palvelimella tilisi sijaitsee?",
"interaction_modal.sign_in_hint": "Vihje: Se on sama verkkosivusto, jolle rekisteröidyit. Jos et muista, etsi tervetulosähköposti saapuneista viesteistäsi. Voit myös syöttää koko käyttäjätunnuksesi! (Esimerkki: @Mastodon@Mastodon.social)",
"interaction_modal.sign_in_hint": "Vihje: Se on sama verkkosivusto, jolle rekisteröidyit. Jos et muista palvelintasi, etsi tervetulosähköposti saapuneista viesteistäsi. Voit myös syöttää koko käyttäjätunnuksesi! (Esimerkki: @Mastodon@Mastodon.social)",
"interaction_modal.title.favourite": "Lisää käyttäjän {name} julkaisu suosikkeihin",
"interaction_modal.title.follow": "Seuraa käyttäjää {name}",
"interaction_modal.title.reblog": "Tehosta käyttäjän {name} julkaisua",
@ -392,13 +392,13 @@
"keyboard_shortcuts.hotkey": "Pikanäppäin",
"keyboard_shortcuts.legend": "Näytä tämä ohje",
"keyboard_shortcuts.local": "Avaa paikallinen aikajana",
"keyboard_shortcuts.mention": "Mainitse julkaisija",
"keyboard_shortcuts.mention": "Mainitse tekijä",
"keyboard_shortcuts.muted": "Avaa mykistettyjen käyttäjien luettelo",
"keyboard_shortcuts.my_profile": "Avaa profiilisi",
"keyboard_shortcuts.notifications": "Avaa ilmoitussarake",
"keyboard_shortcuts.open_media": "Avaa media",
"keyboard_shortcuts.pinned": "Avaa kiinnitettyjen julkaisujen luettelo",
"keyboard_shortcuts.profile": "Avaa kirjoittajan profiili",
"keyboard_shortcuts.profile": "Avaa tekijän profiili",
"keyboard_shortcuts.reply": "Vastaa julkaisuun",
"keyboard_shortcuts.requests": "Avaa seurantapyyntöjen luettelo",
"keyboard_shortcuts.search": "Kohdista hakukenttään",
@ -591,7 +591,7 @@
"onboarding.steps.share_profile.body": "Kerro kavereillesi, kuinka sinut löytää Mastodonista",
"onboarding.steps.share_profile.title": "Jaa Mastodon-profiilisi",
"onboarding.tips.2fa": "<strong>Tiesitkö?</strong> Voit suojata tilisi ottamalla kaksivaiheisen todennuksen käyttöön tilisi asetuksista. Se toimii millä tahansa TOTP-sovelluksella, eikä sen käyttö edellytä puhelinnumeron luovuttamista!",
"onboarding.tips.accounts_from_other_servers": "<strong>Tiesitkö?</strong> Koska Mastodon on hajautettu, osa kohtaamistasi profiileista sijaitsee muilla kuin sinun palvelimellasi. Voit silti viestiä saumattomasti heidän kanssaan! Heidän palvelimensa mainitaan käyttäjänimen jälkiosassa!",
"onboarding.tips.accounts_from_other_servers": "<strong>Tiesitkö?</strong> Koska Mastodon on hajautettu, osa kohtaamistasi profiileista sijaitsee muilla kuin sinun palvelimellasi. Voit silti viestiä saumattomasti heidän kanssaan! Heidän palvelimensa mainitaan käyttäjätunnuksen jälkiosassa!",
"onboarding.tips.migration": "<strong>Tiesitkö?</strong> Jos koet, ettei {domain} ole jatkossa itsellesi hyvä palvelinvalinta, voit siirtyä toiselle Mastodon-palvelimelle menettämättä seuraajiasi. Voit jopa isännöidä omaa palvelintasi!",
"onboarding.tips.verification": "<strong>Tiesitkö?</strong> Voit vahvistaa tilisi lisäämällä omalle verkkosivustollesi linkin Mastodon-profiiliisi ja lisäämällä sitten verkkosivustosi osoitteen Mastodon-profiilisi lisäkenttään. Tämä ei maksa mitään, eikä sinun tarvitse lähetellä asiakirjoja!",
"password_confirmation.exceeds_maxlength": "Salasanan vahvistus ylittää salasanan enimmäispituuden",
@ -727,7 +727,7 @@
"status.bookmark": "Lisää kirjanmerkki",
"status.cancel_reblog_private": "Peru tehostus",
"status.cannot_reblog": "Tätä julkaisua ei voi tehostaa",
"status.copy": "Kopioi julkaisun linkki",
"status.copy": "Kopioi linkki julkaisuun",
"status.delete": "Poista",
"status.detailed_status": "Yksityiskohtainen keskustelunäkymä",
"status.direct": "Mainitse @{name} yksityisesti",
@ -821,7 +821,7 @@
"upload_modal.preview_label": "Esikatselu ({ratio})",
"upload_progress.label": "Tallennetaan...",
"upload_progress.processing": "Käsitellään…",
"username.taken": "Käyttäjänimi on jo varattu. Kokeile toista",
"username.taken": "Tämä käyttäjänimi on jo käytössä. Kokeile toista",
"video.close": "Sulje video",
"video.download": "Lataa tiedosto",
"video.exit_fullscreen": "Poistu koko näytön tilasta",

View File

@ -171,21 +171,28 @@
"confirmations.block.confirm": "ปิดกั้น",
"confirmations.delete.confirm": "ลบ",
"confirmations.delete.message": "คุณแน่ใจหรือไม่ว่าต้องการลบโพสต์นี้?",
"confirmations.delete.title": "ลบโพสต์?",
"confirmations.delete_list.confirm": "ลบ",
"confirmations.delete_list.message": "คุณแน่ใจหรือไม่ว่าต้องการลบรายการนี้อย่างถาวร?",
"confirmations.delete_list.title": "ลบรายการ?",
"confirmations.discard_edit_media.confirm": "ละทิ้ง",
"confirmations.discard_edit_media.message": "คุณมีการเปลี่ยนแปลงคำอธิบายหรือตัวอย่างสื่อที่ยังไม่ได้บันทึก ละทิ้งการเปลี่ยนแปลงเหล่านั้นต่อไป?",
"confirmations.edit.confirm": "แก้ไข",
"confirmations.edit.message": "การแก้ไขในตอนนี้จะเขียนทับข้อความที่คุณกำลังเขียนในปัจจุบัน คุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อ?",
"confirmations.edit.title": "เขียนทับโพสต์?",
"confirmations.logout.confirm": "ออกจากระบบ",
"confirmations.logout.message": "คุณแน่ใจหรือไม่ว่าต้องการออกจากระบบ?",
"confirmations.logout.title": "ออกจากระบบ?",
"confirmations.mute.confirm": "ซ่อน",
"confirmations.redraft.confirm": "ลบแล้วร่างใหม่",
"confirmations.redraft.message": "คุณแน่ใจหรือไม่ว่าต้องการลบโพสต์นี้แล้วร่างโพสต์ใหม่? รายการโปรดและการดันจะสูญหาย และการตอบกลับโพสต์ดั้งเดิมจะไม่มีความเกี่ยวพัน",
"confirmations.redraft.title": "ลบแล้วร่างโพสต์ใหม่?",
"confirmations.reply.confirm": "ตอบกลับ",
"confirmations.reply.message": "การตอบกลับในตอนนี้จะเขียนทับข้อความที่คุณกำลังเขียนในปัจจุบัน คุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อ?",
"confirmations.reply.title": "เขียนทับโพสต์?",
"confirmations.unfollow.confirm": "เลิกติดตาม",
"confirmations.unfollow.message": "คุณแน่ใจหรือไม่ว่าต้องการเลิกติดตาม {name}?",
"confirmations.unfollow.title": "เลิกติดตามผู้ใช้?",
"conversation.delete": "ลบการสนทนา",
"conversation.mark_as_read": "ทำเครื่องหมายว่าอ่านแล้ว",
"conversation.open": "ดูการสนทนา",
@ -503,6 +510,7 @@
"notification_requests.title": "การแจ้งเตือนที่กรองอยู่",
"notifications.clear": "ล้างการแจ้งเตือน",
"notifications.clear_confirmation": "คุณแน่ใจหรือไม่ว่าต้องการล้างการแจ้งเตือนทั้งหมดของคุณอย่างถาวร?",
"notifications.clear_title": "ล้างการแจ้งเตือน?",
"notifications.column_settings.admin.report": "รายงานใหม่:",
"notifications.column_settings.admin.sign_up": "การลงทะเบียนใหม่:",
"notifications.column_settings.alert": "การแจ้งเตือนบนเดสก์ท็อป",

View File

@ -885,7 +885,23 @@ bg:
action: Щракнете тук за повече информация
message_html: "<strong>Вашето съхранение на предмети е погрешно конфигурирано. Поверителността на потребителите ви е изложена на риск.</strong>"
tags:
moderation:
not_trendable: Не изгряващо
not_usable: Не употребимо
pending_review: Чака се преглед
review_requested: Иска се преглед
reviewed: Прегледано
title: Състояние
trendable: Изгряващо
unreviewed: Непрегледано
usable: Употребимо
name: Име
newest: Най-нови
oldest: Най-стари
reset: Нулиране
review: Преглед на състояние
search: Търсене
title: Хаштагове
updated_msg: Успешно осъвременени настройки на хаштага
title: Администрация
trends:

View File

@ -884,7 +884,23 @@ da:
action: Tjek her for flere oplysninger
message_html: "<strong>Objektlageret er fejlopsat. Brugernes fortrolighed er i fare.</strong>"
tags:
moderation:
not_trendable: Ikke trendegnet
not_usable: Ikke brugbar
pending_review: Afventer revision
review_requested: Revision anmodet
reviewed: Revideret
title: Status
trendable: Trendegnet
unreviewed: Urevideret
usable: Brugbar
name: Navn
newest: Seneste
oldest: Ældste
reset: Nulstil
review: Revisionsstatus
search: Søg
title: Hashtags
updated_msg: Hashtag-indstillinger opdateret
title: Administration
trends:

View File

@ -151,7 +151,7 @@ de:
subscribe: Abonnieren
suspend: Sperren
suspended: Gesperrt
suspension_irreversible: Die Daten dieses Kontos wurden unwiderruflich gelöscht. Du kannst das Konto entsperren, um es wieder nutzbar zu machen, aber es wird keine Daten wiederherstellen, die es davor hatte.
suspension_irreversible: Die Daten dieses Kontos wurden unwiderruflich gelöscht. Du kannst das Konto entsperren, um es wieder zu verwenden, aber es wird keine Daten wiederherstellen, die es davor hatte.
suspension_reversible_hint_html: Das Konto wurde gesperrt und die Daten werden am %{date} vollständig gelöscht. Bis dahin kann das Konto ohne irgendwelche negativen Auswirkungen wiederhergestellt werden. Wenn du alle Daten des Kontos sofort entfernen möchtest, kannst du das nachfolgend tun.
title: Konten
unblock_email: E-Mail-Adresse entsperren
@ -885,7 +885,23 @@ de:
action: Für weitere Informationen hier klicken
message_html: "<strong>Die Konfiguration deines Objektspeichers ist fehlerhaft. Die Privatsphäre deiner Benutzer*innen ist gefährdet.</strong>"
tags:
moderation:
not_trendable: Nicht trendfähig
not_usable: Nicht verwendbar
pending_review: Überprüfung ausstehend
review_requested: Überprüfung angefordert
reviewed: Überprüft
title: Status
trendable: Trendfähig
unreviewed: Ungeprüft
usable: Verwendbar
name: Name
newest: Neueste
oldest: Älteste
reset: Zurücksetzen
review: Prüfstatus
search: Suchen
title: Hashtags
updated_msg: Hashtag-Einstellungen erfolgreich aktualisiert
title: Administration
trends:
@ -1455,7 +1471,7 @@ de:
backreference_required: Das neue Konto muss zuerst auf das alte Konto verweisen
before: 'Bevor du fortfährst, lies bitte diese Hinweise sorgfältig durch:'
cooldown: Nach dem Umzug wird es eine Weile dauern, bis du erneut umziehen darfst
disabled_account: Dein altes Konto ist nur noch eingeschränkt nutzbar. Du kannst jedoch deine Daten exportieren und das Konto wieder reaktivieren.
disabled_account: Dein altes Konto ist nur noch eingeschränkt verwendbar. Du kannst jedoch deine Daten exportieren und das Konto wieder reaktivieren.
followers: Alle Follower werden vom alten zum neuen Konto übertragen
only_redirect_html: Alternativ kannst du auch <a href="%{path}">nur eine Weiterleitung zu deinem neuen Konto</a> einrichten, ohne die Follower zu übertragen.
other_data: Keine anderen Daten werden automatisch zum neuen Konto übertragen

View File

@ -83,7 +83,7 @@ nl:
access_denied: De resource-eigenaar of autorisatie-server weigerde het verzoek.
credential_flow_not_configured: De wachtwoordgegevens-flow van de resource-eigenaar is mislukt omdat Doorkeeper.configure.resource_owner_from_credentials niet is ingesteld.
invalid_client: Clientverificatie is mislukt door een onbekende client, ontbrekende client-authenticatie of een niet ondersteunde authenticatie-methode.
invalid_code_challenge_method: De code-uitdagingsmethode moet S256 zijn, eenvoudig wordt niet ondersteund.
invalid_code_challenge_method: De code challenge method moet S256 zijn, plain wordt niet ondersteund.
invalid_grant: De verstrekte autorisatie is ongeldig, verlopen, ingetrokken, komt niet overeen met de redirect-URI die is opgegeven of werd uitgegeven aan een andere client.
invalid_redirect_uri: De opgegeven redirect-URI is ongeldig.
invalid_request:

View File

@ -83,6 +83,7 @@ th:
access_denied: เจ้าของทรัพยากรหรือเซิร์ฟเวอร์การอนุญาตปฏิเสธคำขอ
credential_flow_not_configured: โฟลว์ข้อมูลประจำตัวรหัสผ่านเจ้าของทรัพยากรล้มเหลวเนื่องจากไม่ได้กำหนดค่า Doorkeeper.configure.resource_owner_from_credentials
invalid_client: การรับรองความถูกต้องไคลเอ็นต์ล้มเหลวเนื่องจากไคลเอ็นต์ที่ไม่รู้จัก ไม่ได้รวมการรับรองความถูกต้องไคลเอ็นต์ หรือวิธีการรับรองความถูกต้องที่ไม่รองรับ
invalid_code_challenge_method: วิธีการทดสอบรหัสต้องเป็น S256 ไม่รองรับแบบธรรมดา
invalid_grant: การให้การรับรองความถูกต้องที่ให้มาไม่ถูกต้อง หมดอายุแล้ว เพิกถอนแล้ว ไม่ตรงกับ URI การเปลี่ยนเส้นทางที่ใช้ในคำขอการรับรองความถูกต้อง หรือออกให้ไคลเอ็นต์อื่น
invalid_redirect_uri: URI การเปลี่ยนเส้นทางที่รวมอยู่ไม่ถูกต้อง
invalid_request:

View File

@ -463,13 +463,13 @@ fi:
title: Tuo verkkotunnusten estoja
no_file: Yhtäkään tiedostoa ei ole valittu
follow_recommendations:
description_html: "<strong>Seuraamissuositukset auttavat uusia käyttäjiä löytämään nopeasti kiinnostavaa sisältöä</strong>. Kun käyttäjä ei ole ollut tarpeeksi vuorovaikutuksessa muiden kanssa, jotta hänelle olisi muodostunut henkilökohtaisia seuraamissuosituksia, suositellaan niiden sijaan näitä tilejä. Ne lasketaan päivittäin uudelleen yhdistelmästä tilejä, jotka ovat viime aikoina olleet aktiivisimmin sitoutuneita ja joilla on suurimmat paikalliset seuraajamäärät tietyllä kielellä."
description_html: "<strong>Seurantasuositukset auttavat uusia käyttäjiä löytämään nopeasti kiinnostavaa sisältöä</strong>. Kun käyttäjä ei ole ollut tarpeeksi vuorovaikutuksessa muiden kanssa, jotta hänelle olisi muodostunut henkilökohtaisia seuraamissuosituksia, suositellaan niiden sijaan näitä tilejä. Ne lasketaan päivittäin uudelleen yhdistelmästä tilejä, jotka ovat viime aikoina olleet aktiivisimmin sitoutuneita ja joilla on suurimmat paikalliset seuraajamäärät tietyllä kielellä."
language: Kielelle
status: Tila
suppress: Hylkää seuraamissuositus
suppress: Hylkää seurantasuositus
suppressed: Hylätty
title: Seuraamissuositukset
unsuppress: Palauta seuraamissuositus
title: Seurantasuositukset
unsuppress: Palauta seurantasuositus
instances:
audit_log:
title: Viimeaikaiset tarkastuslokit
@ -765,7 +765,7 @@ fi:
desc_html: Vaikuttaa kaikkiin käyttäjiin, jotka eivät ole muuttaneet tätä asetusta itse
title: Jätä käyttäjät oletusarvoisesti hakukoneindeksoinnin ulkopuolelle
discovery:
follow_recommendations: Seuraamissuositukset
follow_recommendations: Seurantasuositukset
preamble: Mielenkiintoisen sisällön esille tuominen auttaa saamaan uusia käyttäjiä, jotka eivät ehkä tunne ketään Mastodonista. Määrittele, kuinka erilaiset löytämisominaisuudet toimivat palvelimellasi.
profile_directory: Profiilihakemisto
public_timelines: Julkiset aikajanat
@ -885,7 +885,23 @@ fi:
action: Katso täältä lisätietoja
message_html: "<strong>Objektivarastosi on määritetty virheellisesti, ja käyttäjiesi yksityisyys on vaarassa.</strong>"
tags:
moderation:
not_trendable: Ei trendattava
not_usable: Ei käytettävissä
pending_review: Odottaa tarkastusta
review_requested: Tarkastus pyydetty
reviewed: Tarkastettu
title: Tila
trendable: Trendattava
unreviewed: Tarkastamaton
usable: Käytettävissä
name: Nimi
newest: Uusin
oldest: Vanhin
reset: Tyhjennä
review: Tarkista tila
search: Hae
title: Aihetunnisteet
updated_msg: Aihetunnisteiden asetusten päivitys onnistui
title: Ylläpito
trends:
@ -918,7 +934,7 @@ fi:
statuses:
allow: Salli julkaisu
allow_account: Salli tekijä
description_html: Nämä ovat julkaisuja, joita palvelimesi tietää jaettavan ja lisättävän suosikkeihin paljon tällä hetkellä. Listaus voi auttaa uusia ja palaavia käyttäjiäsi löytämään lisää seurattavia. Julkaisut eivät näy julkisesti ennen kuin hyväksyt niiden julkaisijan ja julkaisija sallii tilinsä ehdottamisen. Voit myös sallia tai hylätä yksittäisiä julkaisuja.
description_html: Nämä ovat julkaisuja, joita palvelimesi tietää jaettavan ja lisättävän suosikkeihin paljon tällä hetkellä. Listaus voi auttaa uusia ja palaavia käyttäjiäsi löytämään lisää seurattavia. Julkaisut eivät näy julkisesti ennen kuin hyväksyt niiden tekijän ja tekijä sallii tilinsä ehdottamisen. Voit myös sallia tai hylätä yksittäisiä julkaisuja.
disallow: Kiellä julkaisu
disallow_account: Estä tekijä
no_status_selected: Suosittuja julkaisuja ei muutettu, koska yhtään ei ollut valittuna
@ -1227,7 +1243,7 @@ fi:
noscript_html: Käyttääksesi Mastodonin verkkosovellusta, ota JavaScript käyttöön. Vaihtoehtoisesti voit kokeilla käyttämällesi alustalle kehitettyjä Mastodonin <a href="%{apps_path}">natiivisovelluksia</a>.
existing_username_validator:
not_found: paikallista käyttäjää ei löydy kyseisellä käyttäjänimellä
not_found_multiple: "%{usernames} ei löytynyt"
not_found_multiple: käyttäjänimiä %{usernames} ei löytynyt
exports:
archive_takeout:
date: Päiväys
@ -1265,7 +1281,7 @@ fi:
deprecated_api_multiple_keywords: Näitä parametreja ei voi muuttaa tästä sovelluksesta, koska ne koskevat useampaa kuin yhtä suodattimen avainsanaa. Käytä uudempaa sovellusta tai selainkäyttöliittymää.
invalid_context: Ei sisältöä tai se on virheellinen
index:
contexts: Suodattaa kontektissa %{contexts}
contexts: Suodattaa kontekstissa %{contexts}
delete: Poista
empty: Sinulla ei ole suodattimia.
expires_in: Vanhenee %{distance}
@ -1551,7 +1567,7 @@ fi:
privacy: Yksityisyys
privacy_hint_html: Määritä, kuinka paljon muita avustavia tietoja haluat paljastaa. Käyttäjät löytävät kiinnostavia profiileja ja hienoja sovelluksia, kun he selaavat toisten seuraamia käyttäjiä ja kun he näkevät, millä sovelluksilla nämä julkaisevat. Saatat kuitenkin haluta piilottaa nämä tiedot.
reach: Tavoittavuus
reach_hint_html: Määritä, haluatko tulla uusien käyttäjien löytämäksi ja seuraamaksi. Haluatko julkaisujesi näkyvän Selaa-sivulla? Haluatko muiden käyttäjien näkevän sinut seuraamissuosituksissaan? Haluatko hyväksyä kaikki uudet seuraajat automaattisesti vai päättää jokaisesta erikseen?
reach_hint_html: Määritä, haluatko tulla uusien käyttäjien löytämäksi ja seuraamaksi. Haluatko julkaisujesi näkyvän Selaa-sivulla? Haluatko muiden käyttäjien näkevän sinut seurantasuosituksissaan? Haluatko hyväksyä kaikki uudet seuraajat automaattisesti vai päättää jokaisesta erikseen?
search: Haku
search_hint_html: Määritä, kuinka haluat tulla löydetyksi. Haluatko, että ihmiset löytävät sinut julkisten julkaisujesi perusteella? Haluatko, että ihmiset Mastodonin ulkopuolella löytävät profiilisi tehdessään hakuja verkossa? Otathan huomioon, ettei julkisten tietojen täyttä kaikista hakukoneista poisjäämistä voi taata.
title: Yksityisyys ja tavoittavuus

View File

@ -885,7 +885,23 @@ fo:
action: Kekka her fyri at fáa fleiri upplýsingar
message_html: "<strong>Objekt-goymslan hjá tær er skeivt uppsett. Privatlívið hjá brúkarunum hjá tær er í vanda.</strong>"
tags:
moderation:
not_trendable: Ikki rákbært
not_usable: Kann ikki brúkast
pending_review: Viðgerð í gongd
review_requested: Viðgerð umbiðin
reviewed: Viðgjørt
title: Støða
trendable: Rákbært
unreviewed: Ikki viðgjørt
usable: Ónýtiligt
name: Navn
newest: Nýggjasta/u
oldest: Elsta/u
reset: Endurstilla
review: Eftirkanna støðu
search: Leita
title: Frámerki
updated_msg: Frámerkjastillingar dagførdar
title: Umsiting
trends:

View File

@ -885,7 +885,23 @@ gl:
action: Mira aquí para máis información
message_html: "<strong>A almacenaxe de obxectos está mal configurada. A privacidade das usuarias está en risco.</strong>"
tags:
moderation:
not_trendable: Non permitir en voga
not_usable: Non utilizable
pending_review: Pendente de revisión
review_requested: Revisión solicitada
reviewed: Revisada
title: Estado
trendable: Permitir en voga
unreviewed: Sen revisar
usable: Utilizable
name: Nome
newest: Máis recente
oldest: Máis antiga
reset: Restabelecer
review: Estado de revisión
search: Buscar
title: Cancelos
updated_msg: Actualizaronse os axustes dos cancelos
title: Administración
trends:

View File

@ -885,7 +885,23 @@ hu:
action: Itt találsz több információt
message_html: "<strong>Az objektumtárolód félre van konfigurálva. Kockázat merül fel a felhasználóid adatainak biztonságával kapcsolatban.</strong>"
tags:
moderation:
not_trendable: Nem lehet felkapott
not_usable: Nem használható
pending_review: Ellenőrzésre vár
review_requested: Ellenőrzés kérve
reviewed: Ellenőrizve
title: Állapot
trendable: Lehet felkapott
unreviewed: Nem ellenőrzött
usable: Használható
name: Név
newest: Legújabb
oldest: Legrégebbi
reset: Visszaállítás
review: Engedélyezés állapota
search: Keresés
title: Hashtagek
updated_msg: A hashtag beállításokat sikeresen frissítettük
title: Karbantartás
trends:

View File

@ -882,7 +882,10 @@ ia:
action: Consulta hic pro plus information
message_html: "<strong>Tu immagazinage de objectos es mal configurate. Le confidentialitate de tu usatores es in risco.</strong>"
tags:
name: Nomine
review: Revide le stato
search: Cercar
title: Hashtags
updated_msg: Parametros de hashtag actualisate con successo
title: Administration
trends:

View File

@ -887,7 +887,23 @@ is:
action: Skoðaðu hér til að fá frekari upplýsingar
message_html: "<strong>Gagnageymslan þín er ekki rétt stillt. Friðhelgi notendanna þinna gæti verið í hættu.</strong>"
tags:
moderation:
not_trendable: Getur ekki orðið vinsælt
not_usable: Ekki nothæft
pending_review: Bíður eftir yfirferð
review_requested: Beðið um yfirferð
reviewed: Yfirfarið
title: Staða
trendable: Getur orðið vinsælt
unreviewed: Óyfirfarið
usable: Nothæft
name: Nafn
newest: Nýjast
oldest: Elsta
reset: Endurstilla
review: Yfirfara stöðufærslu
search: Leita
title: Myllumerki
updated_msg: Það tókst að uppfæra stillingar myllumerkja
title: Stjórnendur
trends:

View File

@ -611,6 +611,23 @@ lt:
message_html: Tavo Elasticsearch klasteris turi tik vieną mazgą, <code>ES_PRESET</code> turėtų būti nustatyta į <code>single_node_cluster</code>.
elasticsearch_running_check:
message_html: Nepavyko prijungti prie Elasticsearch. Patikrink, ar ji veikia, arba išjunk viso teksto paiešką.
tags:
moderation:
not_trendable: Netendencinga
not_usable: Nenaudojama
pending_review: Laukiama peržiūros
review_requested: Paprašyta peržiūros
reviewed: Peržiūrėta
title: Statusas
trendable: Tendencinga
unreviewed: Neperžiūrėta
usable: Naudojama
name: Pavadinimas
newest: Naujausias
oldest: Seniausias
reset: Atkurti
search: Paieška
title: Saitažodžiai
title: Administracija
trends:
allow: Leisti

View File

@ -885,7 +885,23 @@ nl:
action: Klik hier voor meer informatie
message_html: "<strong>Jouw objectopslag is verkeerd geconfigureerd. De privacy van je gebruikers is in gevaar.</strong>"
tags:
moderation:
not_trendable: Niet trendbaar
not_usable: Niet bruikbaar
pending_review: In afwachting van beoordeling
review_requested: Beoordeling aangevraagd
reviewed: Beoordeeld
title: Status
trendable: Trendbaar
unreviewed: Onbeoordeeld
usable: Bruikbaar
name: Naam
newest: Nieuwste
oldest: Oudste
reset: Opnieuw
review: Status beoordelen
search: Zoeken
title: Hashtags
updated_msg: Instellingen hashtag succesvol bijgewerkt
title: Beheer
trends:

View File

@ -913,7 +913,23 @@ pl:
action: Kliknij tutaj, aby dowiedzieć się więcej
message_html: "<strong>Pamięć obiektu jest nieprawidłowa. Prywatność twoich użytkowników jest zagrożona.</strong>"
tags:
moderation:
not_trendable: Nie mogą trendować
not_usable: Nieużywalne
pending_review: Oczekuje na przejrzenie
review_requested: Prośba o przejrzenie
reviewed: Przejrzane
title: Status
trendable: Mogą trendować
unreviewed: Nieprzejrzane
usable: Używalne
name: Nazwa
newest: Najnowsze
oldest: Najstarsze
reset: Resetuj
review: Stan przeglądu
search: Szukaj
title: Hashtagi
updated_msg: Pomyślnie uaktualniono ustawienia hashtagów
title: Administracja
trends:

View File

@ -271,7 +271,6 @@ an:
listable: Permitir que esta etiqueta amaneixca en as busquedas y en o directorio d'o perfil
name: Etiqueta
trendable: Permitir que esta etiqueta amaneixca baixo tendencias
usable: Permitir a las publicacions usar esta etiqueta
user:
role: Rol
user_role:

View File

@ -311,7 +311,6 @@ ar:
listable: اسمح لهذا الوسم بالظهور في البحث وفي دليل الصفحات التعريفية
name: الوسم
trendable: السماح لهذه الكلمة المفتاحية بالظهور تحت المتداوَلة
usable: اسمح للمنشورات استخدام هذا الوسم
user:
role: الدور
time_zone: النطاق الزمني

View File

@ -180,7 +180,6 @@ ast:
listable: Permitir qu'esta etiqueta apaeza nes busques y nes suxerencies
name: Etiqueta
trendable: Permitir qu'esta etiqueta apaeza nes tendencies
usable: Permitir que los artículos usen esta etiqueta
user:
role: Rol
time_zone: Fusu horariu

View File

@ -311,7 +311,6 @@ be:
listable: Дазволіць паказ хэштэгу ў пошуку і ў каталозе профіляў
name: Хэштэг
trendable: Дазволіць паказ гэтага хэштэга ў трэндах
usable: Дазволіць выкарыстанне хэштэгу ў допісах
user:
role: Роля
time_zone: Часавы пояс

View File

@ -314,7 +314,7 @@ bg:
listable: Позволяване на хаштага да се появява при търсене и предложения
name: Хаштаг
trendable: Показване на хаштага да се появява под нашумели
usable: Позволяване на публикациите да употребяват този хаштаг
usable: Позволяване на публикациите да употребяват този хаштаг локално
user:
role: Роля
time_zone: Часова зона

View File

@ -72,7 +72,6 @@ br:
tag:
name: Hashtag
trendable: Aotren an hashtag-mañ da zont war wel dindan tuadurioù
usable: Aotren an embannadurioù da implijout an hashtag-mañ
user:
role: Roll
time_zone: Gwerzhid eur

View File

@ -314,7 +314,6 @@ ca:
listable: Permet que aquesta etiqueta aparegui en les cerques i en el directori de perfils
name: Etiqueta
trendable: Permet que aquesta etiqueta aparegui en les tendències
usable: Permet als tuts emprar aquesta etiqueta
user:
role: Rol
time_zone: Zona horària

View File

@ -182,7 +182,6 @@ ckb:
listable: ڕیگەبدە ئەم هاشتاگە لە پێرستی هەڵبژاردەی بەکارهێنەران و پەڕەی گەڕان نیشان بدرێت
name: هەشتاگ
trendable: ڕێگەبدە ئەم هەشتاگە لە نووسراوەی بەرچاوکراو نیسان بدرێت
usable: ڕێگەبدە بە توتەکان بۆ بەکارهێنانی ئەم هەشتاگە
'no': نە
recommended: پێشنیارکراوە
required:

View File

@ -186,7 +186,6 @@ co:
listable: Auturizà stu hashtag à esse vistu nant'à l'annuariu di i prufili
name: Hashtag
trendable: Auturizà stu hashtag à esse vistu in e tendenze
usable: Auturizà i statuti à utilizà stu hashtag
'no':
recommended: Ricumandati
required:

View File

@ -311,7 +311,6 @@ cs:
listable: Povolit zobrazení tohoto hashtagu ve vyhledávání a návrzích
name: Hashtag
trendable: Povolit zobrazení tohoto hashtagu mezi populárními
usable: Povolit používat tento hashtag v příspěvcích
user:
role: Role
time_zone: Časové pásmo

View File

@ -314,7 +314,6 @@ cy:
listable: Caniatáu i'r hashnod hwn ymddangos mewn chwiliadau ac awgrymiadau
name: Hashnod
trendable: Caniatáu i'r hashnod hwn ymddangos o dan bynciau llosg
usable: Caniatáu i bostiadau ddefnyddio'r hashnod hwn
user:
role: Rôl
time_zone: Cylchfa amser

View File

@ -314,7 +314,7 @@ da:
listable: Tillad visning af dette hashtag i søgninger og forslag
name: Hashtag
trendable: Tillad visning af dette hashtag under trends
usable: Tillad indlæg at benytte dette hashtag
usable: Tillad indlæg at benytte dette hashtag lokalt
user:
role: Rolle
time_zone: Tidszone

View File

@ -314,7 +314,7 @@ de:
listable: Erlaube, dass dieser Hashtag in Suchen und Empfehlungen erscheint
name: Hashtag
trendable: Erlaube, dass dieser Hashtag in den Trends erscheint
usable: Erlaube, dass dieser Hashtag in Beiträgen erscheint
usable: Beiträge dürfen diesen Hashtag lokal verwenden
user:
role: Rolle
time_zone: Zeitzone

View File

@ -276,7 +276,6 @@ el:
listable: Εμφάνιση αυτής της ετικέτας στο δημόσιο κατάλογο
name: Ετικέτα
trendable: Εμφάνιση της ετικέτας στις τάσεις
usable: Χρήση της ετικέτας σε τουτ
user:
role: Ρόλος
user_role:

View File

@ -314,7 +314,6 @@ en-GB:
listable: Allow this hashtag to appear in searches and suggestions
name: Hashtag
trendable: Allow this hashtag to appear under trends
usable: Allow posts to use this hashtag
user:
role: Role
time_zone: Time Zone

View File

@ -303,7 +303,6 @@ eo:
listable: Permesi ĉi tiun kradvorton aperi en serĉoj kaj sugestoj
name: Kradvorto
trendable: Permesi al ĉi tiu kradvorto aperi en furoraĵoj
usable: Permesi mesaĝojn uzi ĉi tiun kradvorton
user:
role: Rolo
time_zone: Horzono

View File

@ -314,7 +314,6 @@ es-AR:
listable: Permitir que esta etiqueta aparezca en las búsquedas y en las sugerencias
name: Etiqueta
trendable: Permitir que esta etiqueta aparezca bajo tendencias
usable: Permitir a los mensajes usar esta etiqueta
user:
role: Rol
time_zone: Zona horaria

View File

@ -314,7 +314,6 @@ es-MX:
listable: Permitir que esta etiqueta aparezca en las búsquedas y en el directorio del perfil
name: Etiqueta
trendable: Permitir que esta etiqueta aparezca bajo tendencias
usable: Permitir a los toots usar esta etiqueta
user:
role: Rol
time_zone: Zona horaria

View File

@ -314,7 +314,6 @@ es:
listable: Permitir que esta etiqueta aparezca en las búsquedas y en el directorio del perfil
name: Etiqueta
trendable: Permitir que esta etiqueta aparezca bajo tendencias
usable: Permitir a las publicaciones usar esta etiqueta
user:
role: Rol
time_zone: Zona horaria

View File

@ -311,7 +311,6 @@ et:
listable: Luba sellel sildil ilmuda profiilide kataloogis
name: Silt
trendable: Luba sellel sildil trendida
usable: Luba postitustel seda silti kasutada
user:
role: Roll
time_zone: Ajavöönd

View File

@ -311,7 +311,6 @@ eu:
listable: Baimendu traola hau bilaketetan agertzea eta profilen direktorioan
name: Traola
trendable: Baimendu traola hau joeretan agertzea
usable: Baimendu tootek traola hau erabiltzea
user:
role: Rola
time_zone: Ordu zona

View File

@ -286,7 +286,6 @@ fa:
listable: اجازه به این برچسب برای ظاهر شدن در جست‌وجوها و پیشنهادها
name: برچسب
trendable: بگذارید که این برچسب در موضوعات پرطرفدار دیده شود
usable: بگذارید که این برچسب در فرسته‌ها به کار بروند
user:
role: نقش
time_zone: منطقهٔ زمانی

View File

@ -73,13 +73,13 @@ fi:
filters:
action: Valitse, mikä toiminto suoritetaan, kun julkaisu vastaa suodatinta
actions:
hide: Piilota suodatettu sisältö kokonaan ja käyttäydy ikään kuin sitä ei olisi olemassa
hide: Piilota suodatettu sisältö kokonaan, ikään kuin sitä ei olisi olemassa
warn: Piilota suodatettu sisältö varoituksen taakse, jossa mainitaan suodattimen nimi
form_admin_settings:
activity_api_enabled: Paikallisesti julkaistujen julkaisujen, aktiivisten käyttäjien ja rekisteröitymisten viikoittainen määrä
app_icon: WEBP, PNG, GIF tai JPG. Korvaa oletusarvoisen mobiililaitteiden sovelluskuvakkeen omalla kuvakkeella.
backups_retention_period: Käyttäjillä on mahdollisuus arkistoida julkaisujaan myöhemmin ladattaviksi. Kun kentän arvo on positiivinen, nämä arkistot poistuvat automaattisesti, kun määritetty määrä päiviä on kulunut.
bootstrap_timeline_accounts: Nämä tilit kiinnitetään uusien käyttäjien seuraamissuositusten alkuun.
bootstrap_timeline_accounts: Nämä tilit kiinnitetään uusien käyttäjien seurantasuositusten alkuun.
closed_registrations_message: Näkyy, kun rekisteröityminen on suljettu
content_cache_retention_period: Kaikki muiden palvelinten julkaisut (mukaan lukien tehostukset ja vastaukset) poistuvat, kun määritetty määrä päiviä on kulunut, lukuun ottamatta paikallisen käyttäjän vuorovaikutusta näiden julkaisujen kanssa. Tämä sisältää julkaisut, jotka paikallinen käyttäjä on merkinnyt kirjanmerkiksi tai suosikiksi. Myös yksityismaininnat eri palvelinten käyttäjien välillä menetetään, eikä niitä voi palauttaa. Tämä asetus on tarkoitettu käytettäväksi erityistapauksissa ja rikkoo monia käyttäjien odotuksia, kun sitä sovelletaan yleiskäyttöön.
custom_css: Voit käyttää mukautettuja tyylejä Mastodonin selainversiossa.
@ -151,9 +151,9 @@ fi:
show_collections: Näytä seuratut ja seuraajat profiilissa
unlocked: Hyväksy uudet seuraajat automaattisesti
account_alias:
acct: Vanhan tilin käyttäjänimi
acct: Vanhan tilin käyttäjätunnus
account_migration:
acct: Uuden tilin käyttäjänimi
acct: Uuden tilin käyttäjätunnus
account_warning_preset:
text: Esimääritetty teksti
title: Nimi
@ -314,7 +314,7 @@ fi:
listable: Salli tämän aihetunnisteen näkyä hauissa ja ehdotuksissa
name: Aihetunniste
trendable: Salli tämän aihetunnisteen näkyä trendeissä
usable: Salli julkaisujen käyttää tätä aihetunnistetta
usable: Salli julkaisujen käyttää tätä aihetunnistetta paikallisesti
user:
role: Rooli
time_zone: Aikavyöhyke

View File

@ -314,7 +314,7 @@ fo:
listable: Loyva hesum tvíkrossið, at verða vístur í leitingum og uppskotum
name: Tvíkrossur
trendable: Loyv hesum frámerki at síggjast undir rákum
usable: Loyva uppsløgum at brúka hendan tvíkross
usable: Loyv postum at brúka hetta frámerki lokalt
user:
role: Leiklutur
time_zone: Tíðarsona

View File

@ -305,7 +305,6 @@ fr-CA:
listable: Autoriser ce hashtag à apparaître dans les recherches et dans lannuaire des profils
name: Mot-clic
trendable: Autoriser ce hashtag à apparaitre dans les tendances
usable: Autoriser les messages à utiliser ce hashtag
user:
role: Rôle
time_zone: Fuseau horaire

View File

@ -305,7 +305,6 @@ fr:
listable: Autoriser ce hashtag à apparaître dans les recherches et dans lannuaire des profils
name: Hashtag
trendable: Autoriser ce hashtag à apparaitre dans les tendances
usable: Autoriser les messages à utiliser ce hashtag
user:
role: Rôle
time_zone: Fuseau horaire

View File

@ -314,7 +314,6 @@ fy:
listable: Tastean dat dizze hashtag yn sykopdrachten en oanrekommandaasjes te sjen is
name: Hashtag
trendable: Goedkarre dat dizze hashtag ûnder trends te sjen is
usable: Tastean dat dizze hashtag yn berjochten brûkt wurde mei
user:
role: Rol
time_zone: Tiidsône

View File

@ -314,7 +314,6 @@ ga:
listable: Lig don hashchlib seo a bheith le feiceáil i gcuardach agus i moltaí
name: Haischlib
trendable: Lig don haischlib seo a bheith le feiceáil faoi threochtaí
usable: Lig do phostálacha an hashchlib seo a úsáid
user:
role: Ról
time_zone: Crios ama

View File

@ -305,7 +305,6 @@ gd:
listable: Faodaidh an taga hais seo nochdadh ann an toraidhean luirg s am measg nam molaidhean
name: Taga hais
trendable: Faodaidh an taga hais seo nochdadh am measg nan treandaichean
usable: Faodaidh postaichean an taga hais seo a chleachdadh
user:
role: Dreuchd
time_zone: Roinn-tìde

View File

@ -314,7 +314,7 @@ gl:
listable: Permitir que este cancelo apareza en buscas e no directorio de perfil
name: Cancelo
trendable: Permitir que este cancelo apareza en tendencias
usable: Permitir que as publicacións utilicen este cancelo
usable: Permitir que as publicacións usen este cancelo localmente
user:
role: Rol
time_zone: Fuso horario

View File

@ -314,7 +314,6 @@ he:
listable: הרשה/י לתגית זו להופיע בחיפושים והצעות
name: תגית
trendable: הרשה/י לתגית זו להופיע תחת נושאים חמים
usable: הרשה/י להודעות להכיל תגית זו
user:
role: תפקיד
time_zone: אזור זמן

View File

@ -314,7 +314,7 @@ hu:
listable: A hashtag megjelenhet a profiladatbázisban
name: Hashtag
trendable: A hashtag megjelenhet a felkapottak között
usable: Bejegyzések használhatják ezt a hashtaget
usable: A helyi bejegyzések használhatják ezt a hashtaget
user:
role: Szerep
time_zone: Időzóna

View File

@ -187,7 +187,6 @@ hy:
listable: Թոյլատրել, որ այս պիտակը յայտնուի որոնումների եւ հաշուի մատեանում
name: Պիտակ
trendable: Թոյլատրել, որ այս պիտակը յայտնուի թրենդներում
usable: Թոյլատրել գրառումներին օգտագործել այս պիտակը
'no': Ոչ
recommended: Խորհուրդ է տրվում
required:

View File

@ -313,7 +313,6 @@ ia:
listable: Permitter a iste hashtag apparer in le recercas e suggestiones
name: Hashtag
trendable: Permitter a iste hashtag de sub tendentias
usable: Permitter al messages usar iste hashtag
user:
role: Rolo
time_zone: Fuso horari

View File

@ -268,7 +268,6 @@ id:
listable: Izinkan tagar ini muncul di penelusuran dan di direktori profil
name: Tagar
trendable: Izinkan tagar ini muncul di bawah tren
usable: Izinkan toot memakai tagar ini
user:
role: Peran
user_role:

View File

@ -311,7 +311,6 @@ ie:
listable: Permisser que ti hashtag apari in serchas e suggestiones
name: Hashtag
trendable: Permisse que ti-ci hashtag apari sub tendenties
usable: Permisser que postas usa ti hashtag
user:
role: Rol
time_zone: Zone temporal

View File

@ -300,7 +300,6 @@ io:
listable: Permisez ca hashtago aparar en trovaji e sugestaji
name: Hashtago
trendable: Permisez ca hashtago aparar che tendenci
usable: Permisez posti uzar ca hashtago
user:
role: Rolo
time_zone: Klokozono

View File

@ -314,7 +314,7 @@ is:
listable: Leyfa þessu myllumerki að birtast í leitum og í persónusniðamöppunni
name: Myllumerki
trendable: Leyfa þessu myllumerki að birtast undir vinsælu efni
usable: Leyfa færslum að nota þetta myllumerki
usable: Leyfa færslum að nota þetta myllumerki staðvært
user:
role: Hlutverk
time_zone: Tímabelti

View File

@ -314,7 +314,6 @@ it:
listable: Permetti a questo hashtag di apparire nella directory dei profili
name: Hashtag
trendable: Permetti a questo hashtag di apparire nelle tendenze
usable: Permetti ai post di usare questo hashtag
user:
role: Ruolo
time_zone: Fuso orario

View File

@ -314,7 +314,6 @@ ja:
listable: 検索とディレクトリへの使用を許可する
name: ハッシュタグ
trendable: トレンドへの表示を許可する
usable: 投稿への使用を許可する
user:
role: ロール
time_zone: タイムゾーン

View File

@ -86,7 +86,6 @@ kk:
listable: Бұл хештегті барлық жерде көрсетуге рұқсат бер
name: Хэштег
trendable: Хештегті трендтерде көрсетуге рұқсат бер
usable: Бұл хештегті қолдануға рұқсат бер
'no': Жоқ
recommended: Рекоменделген
required:

View File

@ -314,7 +314,6 @@ ko:
listable: 이 해시태그가 검색과 추천에 보여지도록 허용
name: 해시태그
trendable: 이 해시태그가 유행에 나타날 수 있도록 허용
usable: 이 해시태그를 게시물에 사용 가능하도록 허용
user:
role: 역할
time_zone: 시간대

View File

@ -267,7 +267,6 @@ ku:
listable: Bihêle ku ev hashtag werê xuyakirin di lêgerîn û pêşniyaran de
name: Hashtag
trendable: Bihêle ku ev hashtag werê xuyakirin di bin rojevê de
usable: Bihêle ku şandî ev hashtag bi kar bînin
user:
role: Rol
user_role:

View File

@ -306,7 +306,6 @@ lad:
listable: Permite ke esta etiketa apareska en bushkedas i sujestyones
name: Etiketa
trendable: Permite ke esta etiketa apareska en trendes
usable: Permite ke publikasyones uzen esta etiketa
user:
role: Rolo
time_zone: Zona de tiempo

View File

@ -208,7 +208,7 @@ lt:
listable: Leisti šį saitažodį rodyti paieškose ir pasiūlymuose
name: Saitažodis
trendable: Leisti šį saitažodį rodyti pagal trendus
usable: Leisti įrašams naudoti šį saitažodį
usable: Leisti įrašams naudoti šį saitažodį vietoje
user:
role: Vaidmuo
time_zone: Laiko juosta

View File

@ -309,7 +309,6 @@ lv:
listable: Atļaut šim tēmturim parādīties meklējumos un ieteikumos
name: Tēmturis
trendable: Atļaut šim tēmturim parādīties zem tendencēm
usable: Atļaut lietot ziņās šo tēmturi
user:
role: Loma
time_zone: Laika josla

View File

@ -301,7 +301,6 @@ ms:
listable: Benarkan hashtag ini muncul dalam carian dan cadangan
name: Tanda pagar
trendable: Benarkan hashtag ini muncul di bawah aliran
usable: Benarkan siaran untuk menggunakan tanda pagar ini
user:
role: Peranan
time_zone: Zon masa

View File

@ -301,7 +301,6 @@ my:
listable: ရှာဖွေမှုများနှင့် အကြံပြုချက်များတွင် ဤ hashtag ပေါ်လာစေရန် ခွင့်ပြုပါ
name: Hashtag
trendable: ခေတ်စားနေသောအကြောင်းအရာများအောက်တွင် ဤ hashtag ပေါ်လာစေရန် ခွင့်ပြုပါ
usable: ပို့စ်များကို ဤ hashtag သုံးခွင့်ပြုပါ
user:
role: အခန်းကဏ္ဍ
time_zone: အချိန်ဇုန်

View File

@ -314,7 +314,7 @@ nl:
listable: Toestaan dat deze hashtag in zoekopdrachten en aanbevelingen te zien valt
name: Hashtag
trendable: Goedkeuren dat deze hashtag onder trends te zien valt
usable: Toestaan dat deze hashtag in berichten gebruikt mag worden
usable: Berichten toestaan deze hashtag lokaal te gebruiken
user:
role: Rol
time_zone: Tijdzone

View File

@ -314,7 +314,6 @@ nn:
listable: Tillat denne emneknaggen å synast i søk og i profilmappa
name: Emneknagg
trendable: Tillat denne emneknaggen til å synast under trendar
usable: Gje tut lov til å nytta denne emneknaggen
user:
role: Rolle
time_zone: Tidssone

View File

@ -303,7 +303,6 @@
listable: Tillat denne emneknaggen å vises i søk og på profilmappen
name: Emneknagg
trendable: Tillat denne emneknaggen til å vises under trender
usable: Tillat innlegg å bruke denne emneknaggen
user:
role: Rolle
time_zone: Tidssone

View File

@ -217,7 +217,6 @@ oc:
listable: Permetre a aquesta etiqueta daparéisser a las recèrcas e a lannuari de perfils
name: Etiqueta
trendable: Permetre a aquesta etiqueta daparéisser a las tendéncias
usable: Permetre als tuts dutilizar aquesta etiqueta
user:
role: Ròtle
user_role:

View File

@ -314,7 +314,7 @@ pl:
listable: Pozwól, aby ten hashtag pojawiał się w wynikach wyszukiwania i katalogu profilów
name: Hasztag
trendable: Pozwól na wyświetlanie tego hashtagu w „Na czasie”
usable: Pozwól na umieszczanie tego hashtagu we wpisach
usable: Pozwól na umieszczanie tego hashtagu w lokalnych wpisach
user:
role: Rola
time_zone: Strefa czasowa

View File

@ -311,7 +311,6 @@ pt-BR:
listable: Permitir que esta hashtag apareça em pesquisas e sugestões
name: Hashtag
trendable: Permitir que esta hashtag fique em alta
usable: Permitir que toots usem esta hashtag
user:
role: Cargo
time_zone: Fuso horário

View File

@ -314,7 +314,6 @@ pt-PT:
listable: Permitir que esta etiqueta apareça em pesquisas e no diretório de perfis
name: Etiqueta
trendable: Permitir que esta etiqueta apareça em alta
usable: Permitir que as publicações usem esta etiqueta
user:
role: Cargo
time_zone: Fuso horário

View File

@ -177,7 +177,6 @@ ro:
tag:
listable: Permite acestui hashtag să apară în căutări și în directorul de profil
trendable: Permite acestui hashtag să apară sub tendințe
usable: Permite postărilor să folosească acest hashtag
'no': Nu
recommended: Recomandat
required:

View File

@ -301,7 +301,6 @@ ru:
listable: Разрешить показ хэштега в поиске или в каталоге профилей
name: Хэштег
trendable: Разрешить показ хэштега в трендах
usable: Разрешить использовать этот хэштег в постах
user:
role: Роль
time_zone: Часовой пояс

View File

@ -204,7 +204,6 @@ sc:
listable: Permite a custa eticheta de apàrrere in is chircas e in sa cartella de is profilos
name: Eticheta
trendable: Permite a custa eticheta de apàrrere in is tendèntzias
usable: Permite a is tuts de impreare custa eticheta
user_role:
name: Nòmine
permissions_as_keys: Permissos

View File

@ -265,7 +265,6 @@ sco:
listable: Alloo this hashtag tae appear in seirches an suggestions
name: Hashtag
trendable: Alloo this hashtag fir tae appear unner trends
usable: Alloo posts fir tae uise this hashtag
user:
role: Role
user_role:

View File

@ -207,7 +207,6 @@ si:
listable: මෙම හැෂ් ටැගය සෙවීම් සහ යෝජනා වල දිස් වීමට ඉඩ දෙන්න
name: හෑෂ් ටැගය
trendable: මෙම හැෂ් ටැගය ප්‍රවණතා යටතේ දිස් වීමට ඉඩ දෙන්න
usable: ලිපි සඳහා මෙම පූරක අනන්‍යනය භාවිතයට ඉඩදෙන්න
user:
role: භූමිකාව
time_zone: වේලා කලාපය

View File

@ -165,7 +165,6 @@ sk:
listable: Povoľ zobrazovanie tohto haštagu v návrhoch vyhľadávaní
name: Haštag
trendable: Povoľ zobrazovanie tohto haštagu medzi trendujúcimi
usable: Povoľ používanie tohto haštagu v príspevkoch
'no': Nie
recommended: Odporúčané
required:

View File

@ -314,7 +314,6 @@ sl:
listable: Dovoli, da se ta ključnik pojavi v iskanjih in predlogih
name: Ključnik
trendable: Dovoli, da se ta ključnik pojavi med trendi
usable: Dovoli, da objave uporabljajo ta ključnik
user:
role: Vloga
time_zone: Časovni pas

View File

@ -314,7 +314,6 @@ sq:
listable: Lejoje këtë hashtag të shfaqet në kërkime dhe në drejtori profilesh
name: Hashtag
trendable: Lejoje këtë hashtag të shfaqet në prirje
usable: Lejoji mesazhet të përdorin këtë hashtag
user:
role: Rol
time_zone: Zonë kohore

View File

@ -314,7 +314,6 @@ sr-Latn:
listable: Dozvoli da se ova heš oznaka pojavljuje u pretragama i predlozima
name: Heš oznaka
trendable: Dozvoli da se ova heš oznaka pojavi u okviru trendova
usable: Dozvoli objavama da koriste ovu heš oznaku
user:
role: Uloga
time_zone: Vremenska zona

View File

@ -314,7 +314,6 @@ sr:
listable: Дозволи да се ова хеш ознака појављује у претрагама и предлозима
name: Хеш ознака
trendable: Дозволи да се ова хеш ознака појави у оквиру трендова
usable: Дозволи објавама да користе ову хеш ознаку
user:
role: Улога
time_zone: Временска зона

View File

@ -314,7 +314,6 @@ sv:
listable: Tillåt denna hashtagg att visas i sökningar och förslag
name: Hashtagg
trendable: Tillåt denna hashtagg att visas under trender
usable: Tillåt inlägg att använda denna hashtagg
user:
role: Roll
time_zone: Tidszon

View File

@ -314,7 +314,6 @@ th:
listable: อนุญาตให้แฮชแท็กนี้ปรากฏในการค้นหาและข้อเสนอแนะ
name: แฮชแท็ก
trendable: อนุญาตให้แฮชแท็กนี้ปรากฏภายใต้แนวโน้ม
usable: อนุญาตให้โพสต์ใช้แฮชแท็กนี้
user:
role: บทบาท
time_zone: โซนเวลา

View File

@ -314,7 +314,6 @@ tr:
listable: Bu etiketin aramalarda ve profil dizininde görünmesine izin ver
name: Etiket
trendable: Bu etiketin gündem altında görünmesine izin ver
usable: Gönderilerin bu etiketi kullanmasına izin ver
user:
role: Rol
time_zone: Zaman dilimi

View File

@ -314,7 +314,6 @@ uk:
listable: Дозволити появу цього хештеґа у каталозі пошуку і пропозицій
name: Хештеґ
trendable: Дозволити появу цього хештеґа у списку популярних хештеґів
usable: Дозволити дописам використовувати цей хештег
user:
role: Роль
time_zone: Часовий пояс

View File

@ -314,7 +314,6 @@ vi:
listable: Cho phép xuất hiện trong tìm kiếm và đề xuất
name: Hashtag
trendable: Cho phép hashtag này lên xu hướng
usable: Cho phép dùng trong tút
user:
role: Vai trò
time_zone: Múi giờ

View File

@ -314,7 +314,6 @@ zh-CN:
listable: 允许这个话题标签在用户目录中显示
name: 话题标签
trendable: 允许在热门下显示此话题
usable: 允许嘟文使用此话题标签
user:
role: 角色
time_zone: 时区

View File

@ -309,7 +309,6 @@ zh-HK:
listable: 允許此主題標籤在搜尋及個人檔案目錄中顯示
name: 主題標籤
trendable: 允許此主題標籤在趨勢下顯示
usable: 允許文章使用此主題標籤
user:
role: 角色
time_zone: 時區

View File

@ -873,7 +873,23 @@ zh-TW:
action: 檢查這裡以取得更多資訊
message_html: "<strong>您的物件資料儲存空間 (object storage) 設定錯誤。您的使用者隱私正暴露於風險之中。</strong>"
tags:
moderation:
not_trendable: 無法作為熱門趨勢
not_usable: 無法使用
pending_review: 等待審核中
review_requested: 需要審核
reviewed: 已審核
title: 狀態
trendable: 可作為熱門趨勢
unreviewed: 待審核
usable: 可以使用
name: 名稱
newest: 最新
oldest: 最舊
reset: 重設
review: 審核嘟文
search: 搜尋
title: 主題標籤
updated_msg: 成功更新主題標籤設定
title: 管理介面
trends:

View File

@ -143,7 +143,11 @@ Rails.application.routes.draw do
resource :inbox, only: [:create], module: :activitypub
get '/:encoded_at(*path)', to: redirect('/@%{path}'), constraints: { encoded_at: /%40/ }
constraints(encoded_path: /%40.*/) do
get '/:encoded_path', to: redirect { |params|
"/#{params[:encoded_path].gsub('%40', '@')}"
}
end
constraints(username: %r{[^@/.]+}) do
with_options to: 'accounts#show' do

View File

@ -169,6 +169,7 @@ namespace :api, format: false do
collection do
post :clear
delete :destroy_multiple
get :unread_count
end
member do
@ -338,6 +339,7 @@ namespace :api, format: false do
resources :notifications, only: [:index, :show] do
collection do
post :clear
get :unread_count
end
member do

View File

@ -8,6 +8,83 @@ RSpec.describe 'Notifications' do
let(:scopes) { 'read:notifications write:notifications' }
let(:headers) { { 'Authorization' => "Bearer #{token.token}" } }
describe 'GET /api/v1/notifications/unread_count', :inline_jobs do
subject do
get '/api/v1/notifications/unread_count', headers: headers, params: params
end
let(:params) { {} }
before do
first_status = PostStatusService.new.call(user.account, text: 'Test')
ReblogService.new.call(Fabricate(:account), first_status)
PostStatusService.new.call(Fabricate(:account), text: 'Hello @alice')
FavouriteService.new.call(Fabricate(:account), first_status)
FavouriteService.new.call(Fabricate(:account), first_status)
FollowService.new.call(Fabricate(:account), user.account)
end
it_behaves_like 'forbidden for wrong scope', 'write write:notifications'
context 'with no options' do
it 'returns expected notifications count' do
subject
expect(response).to have_http_status(200)
expect(body_as_json[:count]).to eq 5
end
end
context 'with a read marker' do
before do
id = user.account.notifications.browserable.order(id: :desc).offset(2).first.id
user.markers.create!(timeline: 'notifications', last_read_id: id)
end
it 'returns expected notifications count' do
subject
expect(response).to have_http_status(200)
expect(body_as_json[:count]).to eq 2
end
end
context 'with exclude_types param' do
let(:params) { { exclude_types: %w(mention) } }
it 'returns expected notifications count' do
subject
expect(response).to have_http_status(200)
expect(body_as_json[:count]).to eq 4
end
end
context 'with a user-provided limit' do
let(:params) { { limit: 2 } }
it 'returns a capped value' do
subject
expect(response).to have_http_status(200)
expect(body_as_json[:count]).to eq 2
end
end
context 'when there are more notifications than the limit' do
before do
stub_const('Api::V1::NotificationsController::DEFAULT_NOTIFICATIONS_COUNT_LIMIT', 2)
end
it 'returns a capped value' do
subject
expect(response).to have_http_status(200)
expect(body_as_json[:count]).to eq Api::V1::NotificationsController::DEFAULT_NOTIFICATIONS_COUNT_LIMIT
end
end
end
describe 'GET /api/v1/notifications', :inline_jobs do
subject do
get '/api/v1/notifications', headers: headers, params: params

View File

@ -8,6 +8,83 @@ RSpec.describe 'Notifications' do
let(:scopes) { 'read:notifications write:notifications' }
let(:headers) { { 'Authorization' => "Bearer #{token.token}" } }
describe 'GET /api/v2_alpha/notifications/unread_count', :inline_jobs do
subject do
get '/api/v2_alpha/notifications/unread_count', headers: headers, params: params
end
let(:params) { {} }
before do
first_status = PostStatusService.new.call(user.account, text: 'Test')
ReblogService.new.call(Fabricate(:account), first_status)
PostStatusService.new.call(Fabricate(:account), text: 'Hello @alice')
FavouriteService.new.call(Fabricate(:account), first_status)
FavouriteService.new.call(Fabricate(:account), first_status)
FollowService.new.call(Fabricate(:account), user.account)
end
it_behaves_like 'forbidden for wrong scope', 'write write:notifications'
context 'with no options' do
it 'returns expected notifications count' do
subject
expect(response).to have_http_status(200)
expect(body_as_json[:count]).to eq 4
end
end
context 'with a read marker' do
before do
id = user.account.notifications.browserable.order(id: :desc).offset(2).first.id
user.markers.create!(timeline: 'notifications', last_read_id: id)
end
it 'returns expected notifications count' do
subject
expect(response).to have_http_status(200)
expect(body_as_json[:count]).to eq 2
end
end
context 'with exclude_types param' do
let(:params) { { exclude_types: %w(mention) } }
it 'returns expected notifications count' do
subject
expect(response).to have_http_status(200)
expect(body_as_json[:count]).to eq 3
end
end
context 'with a user-provided limit' do
let(:params) { { limit: 2 } }
it 'returns a capped value' do
subject
expect(response).to have_http_status(200)
expect(body_as_json[:count]).to eq 2
end
end
context 'when there are more notifications than the limit' do
before do
stub_const('Api::V2Alpha::NotificationsController::DEFAULT_NOTIFICATIONS_COUNT_LIMIT', 2)
end
it 'returns a capped value' do
subject
expect(response).to have_http_status(200)
expect(body_as_json[:count]).to eq Api::V2Alpha::NotificationsController::DEFAULT_NOTIFICATIONS_COUNT_LIMIT
end
end
end
describe 'GET /api/v2_alpha/notifications', :inline_jobs do
subject do
get '/api/v2_alpha/notifications', headers: headers, params: params

View File

@ -47,6 +47,61 @@ describe 'Routes under accounts/' do
end
end
context 'with local username encoded at' do
include RSpec::Rails::RequestExampleGroup
let(:username) { 'alice' }
it 'routes /%40:username' do
get "/%40#{username}"
expect(response).to redirect_to("/@#{username}")
end
it 'routes /%40:username.json' do
get("/%40#{username}.json")
expect(response).to redirect_to("/@#{username}.json")
end
it 'routes /%40:username.rss' do
get("/%40#{username}.rss")
expect(response).to redirect_to("/@#{username}.rss")
end
it 'routes /%40:username/:id' do
get("/%40#{username}/123")
expect(response).to redirect_to("/@#{username}/123")
end
it 'routes /%40:username/:id/embed' do
get("/%40#{username}/123/embed")
expect(response).to redirect_to("/@#{username}/123/embed")
end
it 'routes /%40:username/following' do
get("/%40#{username}/following")
expect(response).to redirect_to("/@#{username}/following")
end
it 'routes /%40:username/followers' do
get("/%40#{username}/followers")
expect(response).to redirect_to("/@#{username}/followers")
end
it 'routes /%40:username/with_replies' do
get("/%40#{username}/with_replies")
expect(response).to redirect_to("/@#{username}/with_replies")
end
it 'routes /%40:username/media' do
get("/%40#{username}/media")
expect(response).to redirect_to("/@#{username}/media")
end
it 'routes /%40:username/tagged/:tag' do
get("/%40#{username}/tagged/foo")
expect(response).to redirect_to("/@#{username}/tagged/foo")
end
end
context 'with remote username' do
let(:username) { 'alice@example.com' }
@ -82,4 +137,50 @@ describe 'Routes under accounts/' do
expect(get("/@#{username}/tagged/foo")).to route_to('home#index', username_with_domain: username, any: 'tagged/foo')
end
end
context 'with remote username encoded at' do
include RSpec::Rails::RequestExampleGroup
let(:username) { 'alice%40example.com' }
let(:username_decoded) { 'alice@example.com' }
it 'routes /%40:username' do
get("/%40#{username}")
expect(response).to redirect_to("/@#{username_decoded}")
end
it 'routes /%40:username/:id' do
get("/%40#{username}/123")
expect(response).to redirect_to("/@#{username_decoded}/123")
end
it 'routes /%40:username/:id/embed' do
get("/%40#{username}/123/embed")
expect(response).to redirect_to("/@#{username_decoded}/123/embed")
end
it 'routes /%40:username/following' do
get("/%40#{username}/following")
expect(response).to redirect_to("/@#{username_decoded}/following")
end
it 'routes /%40:username/followers' do
get("/%40#{username}/followers")
expect(response).to redirect_to("/@#{username_decoded}/followers")
end
it 'routes /%40:username/with_replies' do
get("/%40#{username}/with_replies")
expect(response).to redirect_to("/@#{username_decoded}/with_replies")
end
it 'routes /%40:username/media' do
get("/%40#{username}/media")
expect(response).to redirect_to("/@#{username_decoded}/media")
end
it 'routes /%40:username/tagged/:tag' do
get("/%40#{username}/tagged/foo")
expect(response).to redirect_to("/@#{username_decoded}/tagged/foo")
end
end
end