mirror of
https://github.com/glitch-soc/mastodon.git
synced 2026-03-29 03:00:33 +02:00
Merge pull request #3447 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes up to c37bc5a8a9
This commit is contained in:
@@ -190,7 +190,7 @@ GEM
|
|||||||
irb (~> 1.10)
|
irb (~> 1.10)
|
||||||
reline (>= 0.3.8)
|
reline (>= 0.3.8)
|
||||||
debug_inspector (1.2.0)
|
debug_inspector (1.2.0)
|
||||||
devise (5.0.2)
|
devise (5.0.3)
|
||||||
bcrypt (~> 3.0)
|
bcrypt (~> 3.0)
|
||||||
orm_adapter (~> 0.1)
|
orm_adapter (~> 0.1)
|
||||||
railties (>= 7.0)
|
railties (>= 7.0)
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ class Api::V1::DonationCampaignsController < Api::BaseController
|
|||||||
return JSON.parse(res.body_with_limit) if res.code == 200
|
return JSON.parse(res.body_with_limit) if res.code == 200
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
rescue *Mastodon::HTTP_CONNECTION_ERRORS, Oj::ParseError
|
rescue *Mastodon::HTTP_CONNECTION_ERRORS, JSON::ParserError
|
||||||
nil
|
nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -314,7 +314,7 @@ module JsonLdHelper
|
|||||||
return if compare_id.present? && json['id'] != compare_id
|
return if compare_id.present? && json['id'] != compare_id
|
||||||
|
|
||||||
json
|
json
|
||||||
rescue Oj::ParseError
|
rescue JSON::ParserError
|
||||||
nil
|
nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -184,6 +184,15 @@
|
|||||||
"account_edit.field_reorder_modal.drag_start": "Samlede feltet \"{item}\" op.",
|
"account_edit.field_reorder_modal.drag_start": "Samlede feltet \"{item}\" op.",
|
||||||
"account_edit.field_reorder_modal.handle_label": "Træk feltet \"{item}\"",
|
"account_edit.field_reorder_modal.handle_label": "Træk feltet \"{item}\"",
|
||||||
"account_edit.field_reorder_modal.title": "Omarrangér felter",
|
"account_edit.field_reorder_modal.title": "Omarrangér felter",
|
||||||
|
"account_edit.image_alt_modal.add_title": "Tilføj alt-tekst",
|
||||||
|
"account_edit.image_alt_modal.details_content": "GØR GERNE: <ul> <li>Beskriv dig selv som vist på billedet</li> <li>Brug tredje person (f.eks. “Alex“ i stedet for “mig“)</li> <li>Vær kortfattet – et par ord er ofte nok</li> </ul> GØR IKKE: <ul> <li>Start ikke med “Foto af“ – det er overflødigt for skærmlæsere</li> </ul> EKSEMPEL: <ul> <li>“Alex iført en grøn skjorte og briller”</li> </ul>",
|
||||||
|
"account_edit.image_alt_modal.details_title": "Tips: Alt-tekst til profilfotos",
|
||||||
|
"account_edit.image_alt_modal.edit_title": "Rediger alt-tekst",
|
||||||
|
"account_edit.image_alt_modal.text_hint": "Alt-tekst hjælper brugere af skærmlæsere med at forstå dit indhold.",
|
||||||
|
"account_edit.image_alt_modal.text_label": "Alt-tekst",
|
||||||
|
"account_edit.image_delete_modal.confirm": "Er du sikker på, at du vil slette dette billede? Denne handling kan ikke fortrydes.",
|
||||||
|
"account_edit.image_delete_modal.delete_button": "Slet",
|
||||||
|
"account_edit.image_delete_modal.title": "Slet billede?",
|
||||||
"account_edit.image_edit.add_button": "Tilføj billede",
|
"account_edit.image_edit.add_button": "Tilføj billede",
|
||||||
"account_edit.image_edit.alt_add_button": "Tilføj alt-tekst",
|
"account_edit.image_edit.alt_add_button": "Tilføj alt-tekst",
|
||||||
"account_edit.image_edit.alt_edit_button": "Rediger alt-tekst",
|
"account_edit.image_edit.alt_edit_button": "Rediger alt-tekst",
|
||||||
@@ -203,6 +212,16 @@
|
|||||||
"account_edit.profile_tab.subtitle": "Tilpas fanerne på din profil og det, de viser.",
|
"account_edit.profile_tab.subtitle": "Tilpas fanerne på din profil og det, de viser.",
|
||||||
"account_edit.profile_tab.title": "Indstillinger for profil-fane",
|
"account_edit.profile_tab.title": "Indstillinger for profil-fane",
|
||||||
"account_edit.save": "Gem",
|
"account_edit.save": "Gem",
|
||||||
|
"account_edit.upload_modal.back": "Tilbage",
|
||||||
|
"account_edit.upload_modal.done": "Færdig",
|
||||||
|
"account_edit.upload_modal.next": "Næste",
|
||||||
|
"account_edit.upload_modal.step_crop.zoom": "Zoom",
|
||||||
|
"account_edit.upload_modal.step_upload.button": "Gennemse filer",
|
||||||
|
"account_edit.upload_modal.step_upload.dragging": "Slip for at uploade",
|
||||||
|
"account_edit.upload_modal.step_upload.header": "Vælg et billede",
|
||||||
|
"account_edit.upload_modal.step_upload.hint": "WEBP, PNG, GIF eller JPG-format, op til {limit} MB.{br}Billede vil blive skaleret til {width}x{height} px.",
|
||||||
|
"account_edit.upload_modal.title_add": "Tilføj profilfoto",
|
||||||
|
"account_edit.upload_modal.title_replace": "Erstat profilfoto",
|
||||||
"account_edit.verified_modal.details": "Øg troværdigheden af din Mastodon-profil ved at verificere links til personlige websteder. Sådan fungerer det:",
|
"account_edit.verified_modal.details": "Øg troværdigheden af din Mastodon-profil ved at verificere links til personlige websteder. Sådan fungerer det:",
|
||||||
"account_edit.verified_modal.invisible_link.details": "Føj linket til din header. Det vigtige er rel=\"me\", som forhindrer imitatorer på websteder med brugergenereret indhold. Du kan endda bruge et link-tag i sidens header i stedet for {tag}, men HTML-koden skal være tilgængelig uden at afvikle JavaScript.",
|
"account_edit.verified_modal.invisible_link.details": "Føj linket til din header. Det vigtige er rel=\"me\", som forhindrer imitatorer på websteder med brugergenereret indhold. Du kan endda bruge et link-tag i sidens header i stedet for {tag}, men HTML-koden skal være tilgængelig uden at afvikle JavaScript.",
|
||||||
"account_edit.verified_modal.invisible_link.summary": "Hvordan gør jeg linket usynligt?",
|
"account_edit.verified_modal.invisible_link.summary": "Hvordan gør jeg linket usynligt?",
|
||||||
|
|||||||
@@ -184,6 +184,15 @@
|
|||||||
"account_edit.field_reorder_modal.drag_start": "Das Feld „{item}“ wurde ausgewählt.",
|
"account_edit.field_reorder_modal.drag_start": "Das Feld „{item}“ wurde ausgewählt.",
|
||||||
"account_edit.field_reorder_modal.handle_label": "Das Feld „{item}“ verschieben",
|
"account_edit.field_reorder_modal.handle_label": "Das Feld „{item}“ verschieben",
|
||||||
"account_edit.field_reorder_modal.title": "Felder neu anordnen",
|
"account_edit.field_reorder_modal.title": "Felder neu anordnen",
|
||||||
|
"account_edit.image_alt_modal.add_title": "Bildbeschreibung hinzufügen",
|
||||||
|
"account_edit.image_alt_modal.details_content": "Richtig: <ul> <li>Beschreibe dich selbst wie abgebildet</li> <li>Verwende beim Beschreiben die 3. Person (z. B. „Axel“ anstatt „ich“)</li> <li>Formuliere kurz und knackig – ein paar Wörter sind ausreichend</li> </ul> Falsch: <ul> <li>Mit „Bild von“ beginnen – bei Screenreadern überflüssig</li> </ul> Korrektes Beispiel: <ul> <li>„Axel trägt ein grünes T-Shirt und eine Brille.“</li> </ul>",
|
||||||
|
"account_edit.image_alt_modal.details_title": "Hinweis: Bildbeschreibung für Profilbilder",
|
||||||
|
"account_edit.image_alt_modal.edit_title": "Bildbeschreibung bearbeiten",
|
||||||
|
"account_edit.image_alt_modal.text_hint": "Bildbeschreibungen können von Screenreadern erfasst werden. Dadurch können Menschen, die darauf angewiesen sind, deine Medieninhalte besser wahrnehmen.",
|
||||||
|
"account_edit.image_alt_modal.text_label": "Bildbeschreibung",
|
||||||
|
"account_edit.image_delete_modal.confirm": "Möchtest du dieses Bild wirklich löschen? Diese Aktion kann nicht rückgängig gemacht werden.",
|
||||||
|
"account_edit.image_delete_modal.delete_button": "Löschen",
|
||||||
|
"account_edit.image_delete_modal.title": "Bild löschen?",
|
||||||
"account_edit.image_edit.add_button": "Bild hinzufügen",
|
"account_edit.image_edit.add_button": "Bild hinzufügen",
|
||||||
"account_edit.image_edit.alt_add_button": "Bildbeschreibung hinzufügen",
|
"account_edit.image_edit.alt_add_button": "Bildbeschreibung hinzufügen",
|
||||||
"account_edit.image_edit.alt_edit_button": "Bildbeschreibung bearbeiten",
|
"account_edit.image_edit.alt_edit_button": "Bildbeschreibung bearbeiten",
|
||||||
@@ -203,6 +212,16 @@
|
|||||||
"account_edit.profile_tab.subtitle": "Passe die Tabs deines Profils und deren Inhalte an.",
|
"account_edit.profile_tab.subtitle": "Passe die Tabs deines Profils und deren Inhalte an.",
|
||||||
"account_edit.profile_tab.title": "Profil-Tab-Einstellungen",
|
"account_edit.profile_tab.title": "Profil-Tab-Einstellungen",
|
||||||
"account_edit.save": "Speichern",
|
"account_edit.save": "Speichern",
|
||||||
|
"account_edit.upload_modal.back": "Zurück",
|
||||||
|
"account_edit.upload_modal.done": "Fertig",
|
||||||
|
"account_edit.upload_modal.next": "Weiter",
|
||||||
|
"account_edit.upload_modal.step_crop.zoom": "Vergrößern",
|
||||||
|
"account_edit.upload_modal.step_upload.button": "Datei hochladen",
|
||||||
|
"account_edit.upload_modal.step_upload.dragging": "Zum Hochladen hier ablegen",
|
||||||
|
"account_edit.upload_modal.step_upload.header": "Wähle ein Bild",
|
||||||
|
"account_edit.upload_modal.step_upload.hint": "WebP, PNG, GIF oder JPG. Höchstens {limit} MB groß.{br}Das Bild wird auf {width}x{height} px skaliert.",
|
||||||
|
"account_edit.upload_modal.title_add": "Profilbild hinzufügen",
|
||||||
|
"account_edit.upload_modal.title_replace": "Profilbild ändern",
|
||||||
"account_edit.verified_modal.details": "Beweise die Echtheit deines Mastodon-Profils, indem du verifizierte Links zu deinen persönlichen Websites ergänzt. So funktioniert’s:",
|
"account_edit.verified_modal.details": "Beweise die Echtheit deines Mastodon-Profils, indem du verifizierte Links zu deinen persönlichen Websites ergänzt. So funktioniert’s:",
|
||||||
"account_edit.verified_modal.invisible_link.details": "Füge den Link in den Header ein. Der wichtige Teil ist rel=\"me\". Du kannst auch den Tag link im Header (statt {tag}) verwenden, jedoch muss die Internetseite ohne JavaScript abrufbar sein.",
|
"account_edit.verified_modal.invisible_link.details": "Füge den Link in den Header ein. Der wichtige Teil ist rel=\"me\". Du kannst auch den Tag link im Header (statt {tag}) verwenden, jedoch muss die Internetseite ohne JavaScript abrufbar sein.",
|
||||||
"account_edit.verified_modal.invisible_link.summary": "Wie blende ich den Link aus?",
|
"account_edit.verified_modal.invisible_link.summary": "Wie blende ich den Link aus?",
|
||||||
|
|||||||
@@ -184,6 +184,15 @@
|
|||||||
"account_edit.field_reorder_modal.drag_start": "Το πεδίο \"{item}\" σηκώθηκε.",
|
"account_edit.field_reorder_modal.drag_start": "Το πεδίο \"{item}\" σηκώθηκε.",
|
||||||
"account_edit.field_reorder_modal.handle_label": "Μετακίνηση πεδίου \"{item}\"",
|
"account_edit.field_reorder_modal.handle_label": "Μετακίνηση πεδίου \"{item}\"",
|
||||||
"account_edit.field_reorder_modal.title": "Αναδιάταξη πεδίων",
|
"account_edit.field_reorder_modal.title": "Αναδιάταξη πεδίων",
|
||||||
|
"account_edit.image_alt_modal.add_title": "Προσθήκη εναλλακτικού κειμένου",
|
||||||
|
"account_edit.image_alt_modal.details_content": "ΚΑΝΕΤΕ: <ul> <li>Να περιγράφετε τον εαυτό σας όπως απεικονίζεται</li> <li>Να χρησιμοποιείτε τρίτο πρόσωπο (Π.χ. “Άλεξ” αντί για “εγώ”)</li> <li>Να είστε σύντομοι και περιεκτικοί – οι λίγες λέξεις μερικές φορές αρκούν</li> </ul> ΜΗΝ ΚΑΝΕΤΕ: <ul> <li>Να ξεκινάτε με “Φωτογραφία του” – είναι περιττό για τους αναγνώστες οθόνης</li> </ul> ΠΑΡΑΔΕΙΓΜΑ: <ul> <li>“Ο Άλεξ με μια πράσινη μπλούζα και γυαλιά”</li> </ul>",
|
||||||
|
"account_edit.image_alt_modal.details_title": "Συμβουλές: Εναλλακτικό κείμενο για εικόνες προφίλ",
|
||||||
|
"account_edit.image_alt_modal.edit_title": "Επεξεργασία εναλλακτικού κειμένου",
|
||||||
|
"account_edit.image_alt_modal.text_hint": "Το εναλλακτικό κείμενο βοηθά τους χρήστες με αναγνώστη οθόνης να κατανοήσουν το περιεχόμενό σας.",
|
||||||
|
"account_edit.image_alt_modal.text_label": "Εναλλακτικό κείμενο",
|
||||||
|
"account_edit.image_delete_modal.confirm": "Σίγουρα θέλετε να διαγράψετε αυτήν την εικόνα; Αυτή η ενέργεια δεν μπορεί να αναιρεθεί.",
|
||||||
|
"account_edit.image_delete_modal.delete_button": "Διαγραφή",
|
||||||
|
"account_edit.image_delete_modal.title": "Διαγραφή εικόνας;",
|
||||||
"account_edit.image_edit.add_button": "Προσθήκη εικόνας",
|
"account_edit.image_edit.add_button": "Προσθήκη εικόνας",
|
||||||
"account_edit.image_edit.alt_add_button": "Προσθήκη εναλλακτικού κειμένου",
|
"account_edit.image_edit.alt_add_button": "Προσθήκη εναλλακτικού κειμένου",
|
||||||
"account_edit.image_edit.alt_edit_button": "Επεξεργασία εναλλακτικού κειμένου",
|
"account_edit.image_edit.alt_edit_button": "Επεξεργασία εναλλακτικού κειμένου",
|
||||||
@@ -203,6 +212,15 @@
|
|||||||
"account_edit.profile_tab.subtitle": "Προσαρμόστε τις καρτέλες στο προφίλ σας και τι εμφανίζουν.",
|
"account_edit.profile_tab.subtitle": "Προσαρμόστε τις καρτέλες στο προφίλ σας και τι εμφανίζουν.",
|
||||||
"account_edit.profile_tab.title": "Ρυθμίσεις καρτέλας προφίλ",
|
"account_edit.profile_tab.title": "Ρυθμίσεις καρτέλας προφίλ",
|
||||||
"account_edit.save": "Αποθήκευση",
|
"account_edit.save": "Αποθήκευση",
|
||||||
|
"account_edit.upload_modal.back": "Πίσω",
|
||||||
|
"account_edit.upload_modal.done": "Έγινε",
|
||||||
|
"account_edit.upload_modal.step_crop.zoom": "Μεγέθυνση",
|
||||||
|
"account_edit.upload_modal.step_upload.button": "Περιήγηση αρχείων",
|
||||||
|
"account_edit.upload_modal.step_upload.dragging": "Αποθέστε εδώ για ανέβασμα",
|
||||||
|
"account_edit.upload_modal.step_upload.header": "Επιλέξτε μια εικόνα",
|
||||||
|
"account_edit.upload_modal.step_upload.hint": "WEBP, PNG, GIF ή JPG μορφή, μέχρι {limit}MB.{br}Η ανάλυση της εικόνας θα προσαρμοστεί στα {width}x{height}px.",
|
||||||
|
"account_edit.upload_modal.title_add": "Προσθήκη εικόνας προφίλ",
|
||||||
|
"account_edit.upload_modal.title_replace": "Αντικατάσταση εικόνας προφίλ",
|
||||||
"account_edit.verified_modal.details": "Πρόσθεσε αξιοπιστία στο Mastodon προφίλ σας επαληθεύοντας συνδέσμους σε προσωπικές ιστοσελίδες. Ορίστε πως δουλεύει:",
|
"account_edit.verified_modal.details": "Πρόσθεσε αξιοπιστία στο Mastodon προφίλ σας επαληθεύοντας συνδέσμους σε προσωπικές ιστοσελίδες. Ορίστε πως δουλεύει:",
|
||||||
"account_edit.verified_modal.invisible_link.details": "Πρόσθεσε τον σύνδεσμο στην κεφαλίδα σου. Το σημαντικό μέρος είναι το rel=\"me\" που αποτρέπει την μίμηση σε ιστοσελίδες με περιεχόμενο παραγόμενο από χρήστες. Μπορείς ακόμα να χρησιμοποιήσεις μια ετικέτα link στην κεφαλίδα της σελίδας αντί για {tag}, αλλά η HTML πρέπει να είναι προσβάσιμη χωρίς την εκτέλεση JavaScript.",
|
"account_edit.verified_modal.invisible_link.details": "Πρόσθεσε τον σύνδεσμο στην κεφαλίδα σου. Το σημαντικό μέρος είναι το rel=\"me\" που αποτρέπει την μίμηση σε ιστοσελίδες με περιεχόμενο παραγόμενο από χρήστες. Μπορείς ακόμα να χρησιμοποιήσεις μια ετικέτα link στην κεφαλίδα της σελίδας αντί για {tag}, αλλά η HTML πρέπει να είναι προσβάσιμη χωρίς την εκτέλεση JavaScript.",
|
||||||
"account_edit.verified_modal.invisible_link.summary": "Πώς κάνω αυτόν τον σύνδεσμο αόρατο;",
|
"account_edit.verified_modal.invisible_link.summary": "Πώς κάνω αυτόν τον σύνδεσμο αόρατο;",
|
||||||
|
|||||||
@@ -163,7 +163,7 @@
|
|||||||
"account_edit.featured_hashtags.item": "etiquetas",
|
"account_edit.featured_hashtags.item": "etiquetas",
|
||||||
"account_edit.featured_hashtags.placeholder": "Ayudá a otras personas a identificarte y a tener un rápido acceso a tus temas favoritos.",
|
"account_edit.featured_hashtags.placeholder": "Ayudá a otras personas a identificarte y a tener un rápido acceso a tus temas favoritos.",
|
||||||
"account_edit.featured_hashtags.title": "Etiquetas destacadas",
|
"account_edit.featured_hashtags.title": "Etiquetas destacadas",
|
||||||
"account_edit.field_delete_modal.confirm": "¿Estás seguro de que querés eliminar este campo personalizado? Esta acción no se puede deshacer.",
|
"account_edit.field_delete_modal.confirm": "¿De verdad querés eliminar este campo personalizado? Esta acción no se puede deshacer.",
|
||||||
"account_edit.field_delete_modal.delete_button": "Eliminar",
|
"account_edit.field_delete_modal.delete_button": "Eliminar",
|
||||||
"account_edit.field_delete_modal.title": "¿Eliminar campo personalizado?",
|
"account_edit.field_delete_modal.title": "¿Eliminar campo personalizado?",
|
||||||
"account_edit.field_edit_modal.add_title": "Agregar campo personalizado",
|
"account_edit.field_edit_modal.add_title": "Agregar campo personalizado",
|
||||||
@@ -184,6 +184,15 @@
|
|||||||
"account_edit.field_reorder_modal.drag_start": "Campo elegido «{item}».",
|
"account_edit.field_reorder_modal.drag_start": "Campo elegido «{item}».",
|
||||||
"account_edit.field_reorder_modal.handle_label": "Arrastrá el campo «{item}»",
|
"account_edit.field_reorder_modal.handle_label": "Arrastrá el campo «{item}»",
|
||||||
"account_edit.field_reorder_modal.title": "Reordená los campos",
|
"account_edit.field_reorder_modal.title": "Reordená los campos",
|
||||||
|
"account_edit.image_alt_modal.add_title": "Agregar texto alternativo",
|
||||||
|
"account_edit.image_alt_modal.details_content": "LO QUE VA: <ul> <li>Describite como se te ve en la imagen</li> <li>Usá un idioma en tercera persona (por ejemplo: decí «Oliver», en lugar de, simplemente, «yo»)</li> <li>Sé breve: unas pocas palabras son suficientes</li> </ul> EVITÁ: <ul> <li>Comenzar con «Foto de…»: es redundante para lectores de pantalla</li> </ul> EJEMPLO DE UNA BUENA DESCRIPCIÓN: <ul> <li>«Oliver abrazando a su gato Dulce»</li> </ul>",
|
||||||
|
"account_edit.image_alt_modal.details_title": "Consejos: Texto alternativo para imágenes de perfil",
|
||||||
|
"account_edit.image_alt_modal.edit_title": "Editar texto alternativo",
|
||||||
|
"account_edit.image_alt_modal.text_hint": "El texto alternativo ayuda a los usuarios de lectores de pantalla a entender tu contenido.",
|
||||||
|
"account_edit.image_alt_modal.text_label": "Texto alternativo",
|
||||||
|
"account_edit.image_delete_modal.confirm": "¿De verdad querés eliminar esta imagen? Esta acción no se puede deshacer.",
|
||||||
|
"account_edit.image_delete_modal.delete_button": "Eliminar",
|
||||||
|
"account_edit.image_delete_modal.title": "¿Eliminar imagen?",
|
||||||
"account_edit.image_edit.add_button": "Agregar imagen",
|
"account_edit.image_edit.add_button": "Agregar imagen",
|
||||||
"account_edit.image_edit.alt_add_button": "Agregar texto alternativo",
|
"account_edit.image_edit.alt_add_button": "Agregar texto alternativo",
|
||||||
"account_edit.image_edit.alt_edit_button": "Editar texto alternativo",
|
"account_edit.image_edit.alt_edit_button": "Editar texto alternativo",
|
||||||
@@ -203,6 +212,16 @@
|
|||||||
"account_edit.profile_tab.subtitle": "Personalizá las pestañas en tu perfil y qué van a mostrar.",
|
"account_edit.profile_tab.subtitle": "Personalizá las pestañas en tu perfil y qué van a mostrar.",
|
||||||
"account_edit.profile_tab.title": "Configuración de pestaña de perfil",
|
"account_edit.profile_tab.title": "Configuración de pestaña de perfil",
|
||||||
"account_edit.save": "Guardar",
|
"account_edit.save": "Guardar",
|
||||||
|
"account_edit.upload_modal.back": "Volver",
|
||||||
|
"account_edit.upload_modal.done": "Listo",
|
||||||
|
"account_edit.upload_modal.next": "Siguiente",
|
||||||
|
"account_edit.upload_modal.step_crop.zoom": "Zoom",
|
||||||
|
"account_edit.upload_modal.step_upload.button": "Explorar archivos",
|
||||||
|
"account_edit.upload_modal.step_upload.dragging": "Arrastrá para subir",
|
||||||
|
"account_edit.upload_modal.step_upload.header": "Elegí una imagen",
|
||||||
|
"account_edit.upload_modal.step_upload.hint": "Formato WEBP, PNG, GIF o JPG, hasta {limit} MB.{br}La imagen será escalada a {width}x{height} píxeles.",
|
||||||
|
"account_edit.upload_modal.title_add": "Agregar imagen de perfil",
|
||||||
|
"account_edit.upload_modal.title_replace": "Reemplazar imagen de perfil",
|
||||||
"account_edit.verified_modal.details": "Agregá credibilidad a tu perfil de Mastodon verificando enlaces a sitios web personales. Así es cómo funciona:",
|
"account_edit.verified_modal.details": "Agregá credibilidad a tu perfil de Mastodon verificando enlaces a sitios web personales. Así es cómo funciona:",
|
||||||
"account_edit.verified_modal.invisible_link.details": "Agregá el enlace a tu encabezado. La parte importante es rel=\"yo\" que evita la suplantación en sitios web con contenido generado por el usuario. Incluso podés usar una etiqueta de enlace en el encabezado de la página en lugar de {tag}, pero el código HTML debe ser accesible sin ejecutar JavaScript.",
|
"account_edit.verified_modal.invisible_link.details": "Agregá el enlace a tu encabezado. La parte importante es rel=\"yo\" que evita la suplantación en sitios web con contenido generado por el usuario. Incluso podés usar una etiqueta de enlace en el encabezado de la página en lugar de {tag}, pero el código HTML debe ser accesible sin ejecutar JavaScript.",
|
||||||
"account_edit.verified_modal.invisible_link.summary": "¿Cómo hago el enlace invisible?",
|
"account_edit.verified_modal.invisible_link.summary": "¿Cómo hago el enlace invisible?",
|
||||||
@@ -305,7 +324,7 @@
|
|||||||
"bundle_column_error.network.title": "Error de red",
|
"bundle_column_error.network.title": "Error de red",
|
||||||
"bundle_column_error.retry": "Intentá de nuevo",
|
"bundle_column_error.retry": "Intentá de nuevo",
|
||||||
"bundle_column_error.return": "Volver al inicio",
|
"bundle_column_error.return": "Volver al inicio",
|
||||||
"bundle_column_error.routing.body": "No se pudo encontrar la página solicitada. ¿Estás seguro que la dirección web es correcta?",
|
"bundle_column_error.routing.body": "No se pudo encontrar la página solicitada. ¿La dirección web es correcta?",
|
||||||
"bundle_column_error.routing.title": "404",
|
"bundle_column_error.routing.title": "404",
|
||||||
"bundle_modal_error.close": "Cerrar",
|
"bundle_modal_error.close": "Cerrar",
|
||||||
"bundle_modal_error.message": "Algo salió mal al cargar esta pantalla.",
|
"bundle_modal_error.message": "Algo salió mal al cargar esta pantalla.",
|
||||||
@@ -333,7 +352,7 @@
|
|||||||
"collections.collection_description": "Descripción",
|
"collections.collection_description": "Descripción",
|
||||||
"collections.collection_name": "Nombre",
|
"collections.collection_name": "Nombre",
|
||||||
"collections.collection_topic": "Tema",
|
"collections.collection_topic": "Tema",
|
||||||
"collections.confirm_account_removal": "¿Estás seguro de que querés eliminar esta cuenta de esta colección?",
|
"collections.confirm_account_removal": "¿De verdad querés eliminar esta cuenta de esta colección?",
|
||||||
"collections.content_warning": "Advertencia de contenido",
|
"collections.content_warning": "Advertencia de contenido",
|
||||||
"collections.continue": "Continuar",
|
"collections.continue": "Continuar",
|
||||||
"collections.create.accounts_subtitle": "Solo las cuentas que seguís —las cuales optaron por ser descubiertas— pueden ser agregadas.",
|
"collections.create.accounts_subtitle": "Solo las cuentas que seguís —las cuales optaron por ser descubiertas— pueden ser agregadas.",
|
||||||
@@ -417,9 +436,9 @@
|
|||||||
"combobox.no_results_found": "No hay resultados para esta búsqueda",
|
"combobox.no_results_found": "No hay resultados para esta búsqueda",
|
||||||
"combobox.open_results": "Abrir resultados",
|
"combobox.open_results": "Abrir resultados",
|
||||||
"combobox.results_available": "{count, plural, one {# sugerencia} other {# sugerencias}} disponible. Usá las teclas de flecha arriba y flecha abajo para navegar. Toca la tecla «Intro ⏎» para seleccionar.",
|
"combobox.results_available": "{count, plural, one {# sugerencia} other {# sugerencias}} disponible. Usá las teclas de flecha arriba y flecha abajo para navegar. Toca la tecla «Intro ⏎» para seleccionar.",
|
||||||
"community.column_settings.local_only": "Sólo local",
|
"community.column_settings.local_only": "Solo local",
|
||||||
"community.column_settings.media_only": "Sólo medios",
|
"community.column_settings.media_only": "Solo medios",
|
||||||
"community.column_settings.remote_only": "Sólo remoto",
|
"community.column_settings.remote_only": "Solo remoto",
|
||||||
"compose.error.blank_post": "El mensaje no puede estar en blanco.",
|
"compose.error.blank_post": "El mensaje no puede estar en blanco.",
|
||||||
"compose.language.change": "Cambiar idioma",
|
"compose.language.change": "Cambiar idioma",
|
||||||
"compose.language.search": "Buscar idiomas…",
|
"compose.language.search": "Buscar idiomas…",
|
||||||
@@ -428,7 +447,7 @@
|
|||||||
"compose.saved.body": "Mensaje guardado.",
|
"compose.saved.body": "Mensaje guardado.",
|
||||||
"compose_form.direct_message_warning_learn_more": "Aprendé más",
|
"compose_form.direct_message_warning_learn_more": "Aprendé más",
|
||||||
"compose_form.encryption_warning": "Los mensajes en Mastodon no están cifrados de extremo a extremo. No compartas ninguna información sensible al usar Mastodon.",
|
"compose_form.encryption_warning": "Los mensajes en Mastodon no están cifrados de extremo a extremo. No compartas ninguna información sensible al usar Mastodon.",
|
||||||
"compose_form.hashtag_warning": "Este mensaje no se mostrará bajo ninguna etiqueta porque no es público. Sólo los mensajes públicos se pueden buscar por etiquetas.",
|
"compose_form.hashtag_warning": "Este mensaje no se mostrará bajo ninguna etiqueta porque no es público. Solo los mensajes públicos se pueden buscar por etiquetas.",
|
||||||
"compose_form.lock_disclaimer": "Tu cuenta no es {locked}. Todos pueden seguirte para ver tus mensajes marcados como \"Sólo para seguidores\".",
|
"compose_form.lock_disclaimer": "Tu cuenta no es {locked}. Todos pueden seguirte para ver tus mensajes marcados como \"Sólo para seguidores\".",
|
||||||
"compose_form.lock_disclaimer.lock": "privada",
|
"compose_form.lock_disclaimer.lock": "privada",
|
||||||
"compose_form.placeholder": "¿Qué onda?",
|
"compose_form.placeholder": "¿Qué onda?",
|
||||||
@@ -448,13 +467,13 @@
|
|||||||
"confirmation_modal.cancel": "Cancelar",
|
"confirmation_modal.cancel": "Cancelar",
|
||||||
"confirmations.block.confirm": "Bloquear",
|
"confirmations.block.confirm": "Bloquear",
|
||||||
"confirmations.delete.confirm": "Eliminar",
|
"confirmations.delete.confirm": "Eliminar",
|
||||||
"confirmations.delete.message": "¿Estás seguro que querés eliminar este mensaje?",
|
"confirmations.delete.message": "¿De verdad querés eliminar este mensaje?",
|
||||||
"confirmations.delete.title": "¿Eliminar mensaje?",
|
"confirmations.delete.title": "¿Eliminar mensaje?",
|
||||||
"confirmations.delete_collection.confirm": "Eliminar",
|
"confirmations.delete_collection.confirm": "Eliminar",
|
||||||
"confirmations.delete_collection.message": "Esta acción no se puede deshacer.",
|
"confirmations.delete_collection.message": "Esta acción no se puede deshacer.",
|
||||||
"confirmations.delete_collection.title": "¿Eliminar «{name}»?",
|
"confirmations.delete_collection.title": "¿Eliminar «{name}»?",
|
||||||
"confirmations.delete_list.confirm": "Eliminar",
|
"confirmations.delete_list.confirm": "Eliminar",
|
||||||
"confirmations.delete_list.message": "¿Estás seguro que querés eliminar permanentemente esta lista?",
|
"confirmations.delete_list.message": "¿De verdad querés eliminar permanentemente esta lista?",
|
||||||
"confirmations.delete_list.title": "¿Eliminar lista?",
|
"confirmations.delete_list.title": "¿Eliminar lista?",
|
||||||
"confirmations.discard_draft.confirm": "Descartar y continuar",
|
"confirmations.discard_draft.confirm": "Descartar y continuar",
|
||||||
"confirmations.discard_draft.edit.cancel": "Reanudar edición",
|
"confirmations.discard_draft.edit.cancel": "Reanudar edición",
|
||||||
@@ -472,7 +491,7 @@
|
|||||||
"confirmations.follow_to_list.message": "Necesitás seguir a {name} para agregarle a una lista.",
|
"confirmations.follow_to_list.message": "Necesitás seguir a {name} para agregarle a una lista.",
|
||||||
"confirmations.follow_to_list.title": "¿Querés seguirle?",
|
"confirmations.follow_to_list.title": "¿Querés seguirle?",
|
||||||
"confirmations.logout.confirm": "Cerrar sesión",
|
"confirmations.logout.confirm": "Cerrar sesión",
|
||||||
"confirmations.logout.message": "¿Estás seguro que querés cerrar la sesión?",
|
"confirmations.logout.message": "¿De verdad querés cerrar la sesión?",
|
||||||
"confirmations.logout.title": "¿Cerrar sesión?",
|
"confirmations.logout.title": "¿Cerrar sesión?",
|
||||||
"confirmations.missing_alt_text.confirm": "Agregar texto alternativo",
|
"confirmations.missing_alt_text.confirm": "Agregar texto alternativo",
|
||||||
"confirmations.missing_alt_text.message": "Tu mensaje contiene medios sin texto alternativo. Agregar descripciones ayuda a que tu contenido sea accesible para más personas.",
|
"confirmations.missing_alt_text.message": "Tu mensaje contiene medios sin texto alternativo. Agregar descripciones ayuda a que tu contenido sea accesible para más personas.",
|
||||||
@@ -489,10 +508,10 @@
|
|||||||
"confirmations.quiet_post_quote_info.message": "Al citar un mensaje público pero silencioso, tu mensaje se ocultará de las líneas temporales de tendencias.",
|
"confirmations.quiet_post_quote_info.message": "Al citar un mensaje público pero silencioso, tu mensaje se ocultará de las líneas temporales de tendencias.",
|
||||||
"confirmations.quiet_post_quote_info.title": "Citado de mensajes públicos pero silenciosos",
|
"confirmations.quiet_post_quote_info.title": "Citado de mensajes públicos pero silenciosos",
|
||||||
"confirmations.redraft.confirm": "Eliminar mensaje original y editarlo",
|
"confirmations.redraft.confirm": "Eliminar mensaje original y editarlo",
|
||||||
"confirmations.redraft.message": "¿Estás seguro que querés eliminar este mensaje y volver a editarlo? Se perderán las veces marcadas como favorito y sus adhesiones, y las respuestas al mensaje original quedarán huérfanas.",
|
"confirmations.redraft.message": "¿De verdad querés eliminar este mensaje y volver a editarlo? Se perderán las veces marcadas como favorito y sus adhesiones, y las respuestas al mensaje original quedarán huérfanas.",
|
||||||
"confirmations.redraft.title": "¿Eliminar y volver a redactar mensaje?",
|
"confirmations.redraft.title": "¿Eliminar y volver a redactar mensaje?",
|
||||||
"confirmations.remove_from_followers.confirm": "Quitar seguidor",
|
"confirmations.remove_from_followers.confirm": "Quitar seguidor",
|
||||||
"confirmations.remove_from_followers.message": "{name} dejará de seguirte. ¿Estás seguro de que querés continuar?",
|
"confirmations.remove_from_followers.message": "{name} dejará de seguirte. ¿De verdad querés continuar?",
|
||||||
"confirmations.remove_from_followers.title": "¿Quitar seguidor?",
|
"confirmations.remove_from_followers.title": "¿Quitar seguidor?",
|
||||||
"confirmations.revoke_collection_inclusion.confirm": "Quitarme",
|
"confirmations.revoke_collection_inclusion.confirm": "Quitarme",
|
||||||
"confirmations.revoke_collection_inclusion.message": "Esta acción es permanente, y el autor no podrá volver a agregarte a la colección más adelante.",
|
"confirmations.revoke_collection_inclusion.message": "Esta acción es permanente, y el autor no podrá volver a agregarte a la colección más adelante.",
|
||||||
@@ -518,7 +537,7 @@
|
|||||||
"copypaste.copied": "Copiado",
|
"copypaste.copied": "Copiado",
|
||||||
"copypaste.copy_to_clipboard": "Copiar al portapapeles",
|
"copypaste.copy_to_clipboard": "Copiar al portapapeles",
|
||||||
"directory.federated": "Desde fediverso conocido",
|
"directory.federated": "Desde fediverso conocido",
|
||||||
"directory.local": "Sólo de {domain}",
|
"directory.local": "Solo de {domain}",
|
||||||
"directory.new_arrivals": "Recién llegados",
|
"directory.new_arrivals": "Recién llegados",
|
||||||
"directory.recently_active": "Recientemente activos",
|
"directory.recently_active": "Recientemente activos",
|
||||||
"disabled_account_banner.account_settings": "Config. de la cuenta",
|
"disabled_account_banner.account_settings": "Config. de la cuenta",
|
||||||
@@ -893,10 +912,10 @@
|
|||||||
"notification_requests.accept": "Aceptar",
|
"notification_requests.accept": "Aceptar",
|
||||||
"notification_requests.accept_multiple": "{count, plural, one {Aceptar # solicitud…} other {Aceptar # solicitudes…}}",
|
"notification_requests.accept_multiple": "{count, plural, one {Aceptar # solicitud…} other {Aceptar # solicitudes…}}",
|
||||||
"notification_requests.confirm_accept_multiple.button": "{count, plural, one {Aceptar solicitud} other {Aceptar solicitudes}}",
|
"notification_requests.confirm_accept_multiple.button": "{count, plural, one {Aceptar solicitud} other {Aceptar solicitudes}}",
|
||||||
"notification_requests.confirm_accept_multiple.message": "Estás a punto de aceptar {count, plural, one {una solicitud} other {# solicitudes}}. ¿Estás seguro de que querés continuar?",
|
"notification_requests.confirm_accept_multiple.message": "Estás a punto de aceptar {count, plural, one {una solicitud} other {# solicitudes}}. ¿De verdad querés continuar?",
|
||||||
"notification_requests.confirm_accept_multiple.title": "¿Aceptar solicitudes de notificación?",
|
"notification_requests.confirm_accept_multiple.title": "¿Aceptar solicitudes de notificación?",
|
||||||
"notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Descartar solicitud} other {Descartar solicitudes}}",
|
"notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Descartar solicitud} other {Descartar solicitudes}}",
|
||||||
"notification_requests.confirm_dismiss_multiple.message": "Estás a punto de descartar {count, plural, one {una solicitud} other {# solicitudes}}. No vas a poder acceder fácilmente a {count, plural, one {ella} other {ellas}} de nuevo. ¿Estás seguro de que querés continuar?",
|
"notification_requests.confirm_dismiss_multiple.message": "Estás a punto de descartar {count, plural, one {una solicitud} other {# solicitudes}}. No vas a poder acceder fácilmente a {count, plural, one {ella} other {ellas}} de nuevo. ¿De verdad querés continuar?",
|
||||||
"notification_requests.confirm_dismiss_multiple.title": "¿Descartar solicitudes de notificación?",
|
"notification_requests.confirm_dismiss_multiple.title": "¿Descartar solicitudes de notificación?",
|
||||||
"notification_requests.dismiss": "Descartar",
|
"notification_requests.dismiss": "Descartar",
|
||||||
"notification_requests.dismiss_multiple": "{count, plural, one {Descartar # solicitud…} other {Descartar # solicitudes…}}",
|
"notification_requests.dismiss_multiple": "{count, plural, one {Descartar # solicitud…} other {Descartar # solicitudes…}}",
|
||||||
@@ -910,7 +929,7 @@
|
|||||||
"notification_requests.title": "Notificaciones filtradas",
|
"notification_requests.title": "Notificaciones filtradas",
|
||||||
"notification_requests.view": "Ver notificaciones",
|
"notification_requests.view": "Ver notificaciones",
|
||||||
"notifications.clear": "Limpiar notificaciones",
|
"notifications.clear": "Limpiar notificaciones",
|
||||||
"notifications.clear_confirmation": "¿Estás seguro que querés limpiar todas tus notificaciones permanentemente?",
|
"notifications.clear_confirmation": "¿De verdad querés limpiar todas tus notificaciones permanentemente?",
|
||||||
"notifications.clear_title": "¿Limpiar notificaciones?",
|
"notifications.clear_title": "¿Limpiar notificaciones?",
|
||||||
"notifications.column_settings.admin.report": "Nuevas denuncias:",
|
"notifications.column_settings.admin.report": "Nuevas denuncias:",
|
||||||
"notifications.column_settings.admin.sign_up": "Nuevos registros:",
|
"notifications.column_settings.admin.sign_up": "Nuevos registros:",
|
||||||
@@ -1219,7 +1238,7 @@
|
|||||||
"status.uncached_media_warning": "Previsualización no disponible",
|
"status.uncached_media_warning": "Previsualización no disponible",
|
||||||
"status.unmute_conversation": "Dejar de silenciar conversación",
|
"status.unmute_conversation": "Dejar de silenciar conversación",
|
||||||
"status.unpin": "Dejar de fijar",
|
"status.unpin": "Dejar de fijar",
|
||||||
"subscribed_languages.lead": "Después del cambio, sólo los mensajes en los idiomas seleccionados aparecerán en tu línea temporal Principal y en las líneas de tiempo de lista. No seleccionés ningún idioma para poder recibir mensajes en todos los idiomas.",
|
"subscribed_languages.lead": "Después del cambio, solo los mensajes en los idiomas seleccionados aparecerán en tu línea temporal Principal y en las líneas de tiempo de lista. No seleccionés ningún idioma para poder recibir mensajes en todos los idiomas.",
|
||||||
"subscribed_languages.save": "Guardar cambios",
|
"subscribed_languages.save": "Guardar cambios",
|
||||||
"subscribed_languages.target": "Cambiar idiomas suscritos para {target}",
|
"subscribed_languages.target": "Cambiar idiomas suscritos para {target}",
|
||||||
"tabs_bar.home": "Principal",
|
"tabs_bar.home": "Principal",
|
||||||
|
|||||||
@@ -184,6 +184,15 @@
|
|||||||
"account_edit.field_reorder_modal.drag_start": "Recogido el campo «{item}».",
|
"account_edit.field_reorder_modal.drag_start": "Recogido el campo «{item}».",
|
||||||
"account_edit.field_reorder_modal.handle_label": "Arrastra el campo «{item}»",
|
"account_edit.field_reorder_modal.handle_label": "Arrastra el campo «{item}»",
|
||||||
"account_edit.field_reorder_modal.title": "Reorganizar campos",
|
"account_edit.field_reorder_modal.title": "Reorganizar campos",
|
||||||
|
"account_edit.image_alt_modal.add_title": "Añadir texto alternativo",
|
||||||
|
"account_edit.image_alt_modal.details_content": "QUÉ HACER: <ul><li>Descríbete tal y como apareces en la imagen</li><li>Utiliza la tercera persona (p. ej., «Alex» en lugar de «yo»)</li><li>Sé conciso: unas pocas palabras suelen bastar</li></ul>QUÉ NO HACER: <ul><li>Empezar con «Foto de»: es redundante para los lectores de pantalla</li></ul> EJEMPLO: <ul><li>«Alex usando una camiseta verde y anteojos»</li></ul>",
|
||||||
|
"account_edit.image_alt_modal.details_title": "Consejo: Texto alternativo para las fotos de perfil",
|
||||||
|
"account_edit.image_alt_modal.edit_title": "Editar texto alternativo",
|
||||||
|
"account_edit.image_alt_modal.text_hint": "El texto alternativo ayuda a los usuarios de lectores de pantalla a entender tu contenido.",
|
||||||
|
"account_edit.image_alt_modal.text_label": "Texto alternativo",
|
||||||
|
"account_edit.image_delete_modal.confirm": "¿Estás seguro de que quieres eliminar esta imagen? Esta acción no se puede deshacer.",
|
||||||
|
"account_edit.image_delete_modal.delete_button": "Eliminar",
|
||||||
|
"account_edit.image_delete_modal.title": "¿Eliminar imagen?",
|
||||||
"account_edit.image_edit.add_button": "Añadir imagen",
|
"account_edit.image_edit.add_button": "Añadir imagen",
|
||||||
"account_edit.image_edit.alt_add_button": "Añadir texto alternativo",
|
"account_edit.image_edit.alt_add_button": "Añadir texto alternativo",
|
||||||
"account_edit.image_edit.alt_edit_button": "Editar texto alternativo",
|
"account_edit.image_edit.alt_edit_button": "Editar texto alternativo",
|
||||||
@@ -203,6 +212,16 @@
|
|||||||
"account_edit.profile_tab.subtitle": "Personaliza las pestañas de tu perfil y lo que muestran.",
|
"account_edit.profile_tab.subtitle": "Personaliza las pestañas de tu perfil y lo que muestran.",
|
||||||
"account_edit.profile_tab.title": "Configuración de la pestaña de perfil",
|
"account_edit.profile_tab.title": "Configuración de la pestaña de perfil",
|
||||||
"account_edit.save": "Guardar",
|
"account_edit.save": "Guardar",
|
||||||
|
"account_edit.upload_modal.back": "Volver",
|
||||||
|
"account_edit.upload_modal.done": "Hecho",
|
||||||
|
"account_edit.upload_modal.next": "Siguiente",
|
||||||
|
"account_edit.upload_modal.step_crop.zoom": "Acercar",
|
||||||
|
"account_edit.upload_modal.step_upload.button": "Explorar archivos",
|
||||||
|
"account_edit.upload_modal.step_upload.dragging": "Arrastrar para subir",
|
||||||
|
"account_edit.upload_modal.step_upload.header": "Elegir una imagen",
|
||||||
|
"account_edit.upload_modal.step_upload.hint": "Formato WEBP, PNG, GIF o JPG, con un tamaño máximo de {limit} MB.{br}La imagen se redimensionará a {width} x {height} píxeles.",
|
||||||
|
"account_edit.upload_modal.title_add": "Agregar foto de perfil",
|
||||||
|
"account_edit.upload_modal.title_replace": "Reemplazar foto de perfil",
|
||||||
"account_edit.verified_modal.details": "Agrega credibilidad a tu perfil de Mastodon verificando los enlaces a sitios web personales. Así es como funciona:",
|
"account_edit.verified_modal.details": "Agrega credibilidad a tu perfil de Mastodon verificando los enlaces a sitios web personales. Así es como funciona:",
|
||||||
"account_edit.verified_modal.invisible_link.details": "Agrega el enlace a tu encabezado. La parte importante es rel=\"me\", que evita la suplantación de identidad en sitios web con contenido generado por los usuarios. Incluso puedes usar una etiqueta de enlace en el encabezado de la página en lugar de {tag}, pero el HTML debe ser accesible sin ejecutar JavaScript.",
|
"account_edit.verified_modal.invisible_link.details": "Agrega el enlace a tu encabezado. La parte importante es rel=\"me\", que evita la suplantación de identidad en sitios web con contenido generado por los usuarios. Incluso puedes usar una etiqueta de enlace en el encabezado de la página en lugar de {tag}, pero el HTML debe ser accesible sin ejecutar JavaScript.",
|
||||||
"account_edit.verified_modal.invisible_link.summary": "¿Cómo hago para que el enlace sea invisible?",
|
"account_edit.verified_modal.invisible_link.summary": "¿Cómo hago para que el enlace sea invisible?",
|
||||||
|
|||||||
@@ -184,6 +184,13 @@
|
|||||||
"account_edit.field_reorder_modal.drag_start": "Valittu kenttä ”{item}”.",
|
"account_edit.field_reorder_modal.drag_start": "Valittu kenttä ”{item}”.",
|
||||||
"account_edit.field_reorder_modal.handle_label": "Siirrä kenttää ”{item}”",
|
"account_edit.field_reorder_modal.handle_label": "Siirrä kenttää ”{item}”",
|
||||||
"account_edit.field_reorder_modal.title": "Järjestele kenttiä",
|
"account_edit.field_reorder_modal.title": "Järjestele kenttiä",
|
||||||
|
"account_edit.image_alt_modal.add_title": "Lisää tekstivastine",
|
||||||
|
"account_edit.image_alt_modal.details_title": "Vinkkejä: profiilikuvien tekstivastineet",
|
||||||
|
"account_edit.image_alt_modal.edit_title": "Muokkaa tekstivastinetta",
|
||||||
|
"account_edit.image_alt_modal.text_label": "Tekstivastine",
|
||||||
|
"account_edit.image_delete_modal.confirm": "Haluatko varmasti poistaa tämän kuvan? Tätä toimea ei voi kumota.",
|
||||||
|
"account_edit.image_delete_modal.delete_button": "Poista",
|
||||||
|
"account_edit.image_delete_modal.title": "Poistetaanko kuva?",
|
||||||
"account_edit.image_edit.add_button": "Lisää kuva",
|
"account_edit.image_edit.add_button": "Lisää kuva",
|
||||||
"account_edit.image_edit.alt_add_button": "Lisää tekstivastine",
|
"account_edit.image_edit.alt_add_button": "Lisää tekstivastine",
|
||||||
"account_edit.image_edit.alt_edit_button": "Muokkaa tekstivastinetta",
|
"account_edit.image_edit.alt_edit_button": "Muokkaa tekstivastinetta",
|
||||||
@@ -203,6 +210,16 @@
|
|||||||
"account_edit.profile_tab.subtitle": "Mukauta profiilisi välilehtiä ja sitä, mitä niissä näkyy.",
|
"account_edit.profile_tab.subtitle": "Mukauta profiilisi välilehtiä ja sitä, mitä niissä näkyy.",
|
||||||
"account_edit.profile_tab.title": "Profiilin välilehtien asetukset",
|
"account_edit.profile_tab.title": "Profiilin välilehtien asetukset",
|
||||||
"account_edit.save": "Tallenna",
|
"account_edit.save": "Tallenna",
|
||||||
|
"account_edit.upload_modal.back": "Takaisin",
|
||||||
|
"account_edit.upload_modal.done": "Valmis",
|
||||||
|
"account_edit.upload_modal.next": "Seuraava",
|
||||||
|
"account_edit.upload_modal.step_crop.zoom": "Lähennä/loitonna",
|
||||||
|
"account_edit.upload_modal.step_upload.button": "Selaa tiedostoja",
|
||||||
|
"account_edit.upload_modal.step_upload.dragging": "Lähetä pudottamalla",
|
||||||
|
"account_edit.upload_modal.step_upload.header": "Valitse kuva",
|
||||||
|
"account_edit.upload_modal.step_upload.hint": "WEBP-, PNG-, GIF- tai JPG-muotoinen, enintään {limit} Mt.{br}Kuva skaalautuu kokoon {width}×{height} px.",
|
||||||
|
"account_edit.upload_modal.title_add": "Lisää profiilikuva",
|
||||||
|
"account_edit.upload_modal.title_replace": "Korvaa profiilikuva",
|
||||||
"account_edit.verified_modal.details": "Lisää Mastodon-profiiliisi uskottavuutta vahvistamalla linkit henkilökohtaisiin verkkosivustoihin. Näin se toimii:",
|
"account_edit.verified_modal.details": "Lisää Mastodon-profiiliisi uskottavuutta vahvistamalla linkit henkilökohtaisiin verkkosivustoihin. Näin se toimii:",
|
||||||
"account_edit.verified_modal.invisible_link.details": "Lisää linkki HTML:n head-osaan. Tärkeä kohta on rel=\"me\", joka estää toiseksi tekeytymisen sivustoilla, joilla on käyttäjien luomaa sisältöä. Voit jopa käyttää link-tunnistetta sivun head-osassa {tag}-tunnisteen sijaan, mutta HTML:n tulee olla saatavilla suorittamatta JavaScriptia.",
|
"account_edit.verified_modal.invisible_link.details": "Lisää linkki HTML:n head-osaan. Tärkeä kohta on rel=\"me\", joka estää toiseksi tekeytymisen sivustoilla, joilla on käyttäjien luomaa sisältöä. Voit jopa käyttää link-tunnistetta sivun head-osassa {tag}-tunnisteen sijaan, mutta HTML:n tulee olla saatavilla suorittamatta JavaScriptia.",
|
||||||
"account_edit.verified_modal.invisible_link.summary": "Miten teen linkistä näkymättömän?",
|
"account_edit.verified_modal.invisible_link.summary": "Miten teen linkistä näkymättömän?",
|
||||||
|
|||||||
@@ -203,6 +203,8 @@
|
|||||||
"account_edit.profile_tab.subtitle": "Personnaliser les onglets de votre profil et leur contenu.",
|
"account_edit.profile_tab.subtitle": "Personnaliser les onglets de votre profil et leur contenu.",
|
||||||
"account_edit.profile_tab.title": "Paramètres de l'onglet du profil",
|
"account_edit.profile_tab.title": "Paramètres de l'onglet du profil",
|
||||||
"account_edit.save": "Enregistrer",
|
"account_edit.save": "Enregistrer",
|
||||||
|
"account_edit.upload_modal.back": "Retour",
|
||||||
|
"account_edit.upload_modal.done": "Terminé",
|
||||||
"account_edit.verified_modal.details": "Ajouter de la crédibilité à votre profil Mastodon en vérifiant les liens vers vos sites Web personnels. Voici comment cela fonctionne :",
|
"account_edit.verified_modal.details": "Ajouter de la crédibilité à votre profil Mastodon en vérifiant les liens vers vos sites Web personnels. Voici comment cela fonctionne :",
|
||||||
"account_edit.verified_modal.invisible_link.details": "Ajouter le lien dans votre en-tête. La partie importante est « rel=\"me\" » qui empêche l'usurpation d'identité sur des sites Web ayant du contenu généré par d'autres utilisateur·rice·s. Vous pouvez aussi utiliser une balise link dans l'en-tête de la page au lieu de {tag}, mais le code HTML doit être accessible sans avoir besoin d'exécuter du JavaScript.",
|
"account_edit.verified_modal.invisible_link.details": "Ajouter le lien dans votre en-tête. La partie importante est « rel=\"me\" » qui empêche l'usurpation d'identité sur des sites Web ayant du contenu généré par d'autres utilisateur·rice·s. Vous pouvez aussi utiliser une balise link dans l'en-tête de la page au lieu de {tag}, mais le code HTML doit être accessible sans avoir besoin d'exécuter du JavaScript.",
|
||||||
"account_edit.verified_modal.invisible_link.summary": "Comment rendre le lien invisible ?",
|
"account_edit.verified_modal.invisible_link.summary": "Comment rendre le lien invisible ?",
|
||||||
|
|||||||
@@ -203,6 +203,8 @@
|
|||||||
"account_edit.profile_tab.subtitle": "Personnaliser les onglets de votre profil et leur contenu.",
|
"account_edit.profile_tab.subtitle": "Personnaliser les onglets de votre profil et leur contenu.",
|
||||||
"account_edit.profile_tab.title": "Paramètres de l'onglet du profil",
|
"account_edit.profile_tab.title": "Paramètres de l'onglet du profil",
|
||||||
"account_edit.save": "Enregistrer",
|
"account_edit.save": "Enregistrer",
|
||||||
|
"account_edit.upload_modal.back": "Retour",
|
||||||
|
"account_edit.upload_modal.done": "Terminé",
|
||||||
"account_edit.verified_modal.details": "Ajouter de la crédibilité à votre profil Mastodon en vérifiant les liens vers vos sites Web personnels. Voici comment cela fonctionne :",
|
"account_edit.verified_modal.details": "Ajouter de la crédibilité à votre profil Mastodon en vérifiant les liens vers vos sites Web personnels. Voici comment cela fonctionne :",
|
||||||
"account_edit.verified_modal.invisible_link.details": "Ajouter le lien dans votre en-tête. La partie importante est « rel=\"me\" » qui empêche l'usurpation d'identité sur des sites Web ayant du contenu généré par d'autres utilisateur·rice·s. Vous pouvez aussi utiliser une balise link dans l'en-tête de la page au lieu de {tag}, mais le code HTML doit être accessible sans avoir besoin d'exécuter du JavaScript.",
|
"account_edit.verified_modal.invisible_link.details": "Ajouter le lien dans votre en-tête. La partie importante est « rel=\"me\" » qui empêche l'usurpation d'identité sur des sites Web ayant du contenu généré par d'autres utilisateur·rice·s. Vous pouvez aussi utiliser une balise link dans l'en-tête de la page au lieu de {tag}, mais le code HTML doit être accessible sans avoir besoin d'exécuter du JavaScript.",
|
||||||
"account_edit.verified_modal.invisible_link.summary": "Comment rendre le lien invisible ?",
|
"account_edit.verified_modal.invisible_link.summary": "Comment rendre le lien invisible ?",
|
||||||
|
|||||||
@@ -184,6 +184,15 @@
|
|||||||
"account_edit.field_reorder_modal.drag_start": "Seleccionado o campo \"{item}\".",
|
"account_edit.field_reorder_modal.drag_start": "Seleccionado o campo \"{item}\".",
|
||||||
"account_edit.field_reorder_modal.handle_label": "Arrastra o campo \"{item}\"",
|
"account_edit.field_reorder_modal.handle_label": "Arrastra o campo \"{item}\"",
|
||||||
"account_edit.field_reorder_modal.title": "Ordear campos",
|
"account_edit.field_reorder_modal.title": "Ordear campos",
|
||||||
|
"account_edit.image_alt_modal.add_title": "Engadir texto descritivo",
|
||||||
|
"account_edit.image_alt_modal.details_content": "COMO: <ul> <li>Descríbete como apareces na imaxe</li> <li>Usa a terceira persoa (ex. “Alex”, e non “eu”)</li> <li>Sé breve – abondan poucas palabras</li> </ul> NON fagas: <ul> <li>Comezar con “Foto de” – é redundante nos lectores de pantalla</li> </ul> EXEMPLO: <ul> <li>“Alex vestindo camisa verde e cos lentes postos”</li> </ul>",
|
||||||
|
"account_edit.image_alt_modal.details_title": "Consellos: Texto descritivo para fotos de perfil",
|
||||||
|
"account_edit.image_alt_modal.edit_title": "Editar descrición",
|
||||||
|
"account_edit.image_alt_modal.text_hint": "A descrición axuda ás persoas que usan lectores de pantalla a comprender o que publicas.",
|
||||||
|
"account_edit.image_alt_modal.text_label": "Texto descritivo",
|
||||||
|
"account_edit.image_delete_modal.confirm": "Tes certeza de querer eliminar esta imaxe? Non se poderá desfacer a acción.",
|
||||||
|
"account_edit.image_delete_modal.delete_button": "Eliminar",
|
||||||
|
"account_edit.image_delete_modal.title": "Eliminar imaxe?",
|
||||||
"account_edit.image_edit.add_button": "Engadir imaxe",
|
"account_edit.image_edit.add_button": "Engadir imaxe",
|
||||||
"account_edit.image_edit.alt_add_button": "Engadir descrición",
|
"account_edit.image_edit.alt_add_button": "Engadir descrición",
|
||||||
"account_edit.image_edit.alt_edit_button": "Editar descrición",
|
"account_edit.image_edit.alt_edit_button": "Editar descrición",
|
||||||
@@ -203,6 +212,16 @@
|
|||||||
"account_edit.profile_tab.subtitle": "Personaliza as pestanas e o seu contido no teu perfil.",
|
"account_edit.profile_tab.subtitle": "Personaliza as pestanas e o seu contido no teu perfil.",
|
||||||
"account_edit.profile_tab.title": "Perfil e axustes das pestanas",
|
"account_edit.profile_tab.title": "Perfil e axustes das pestanas",
|
||||||
"account_edit.save": "Gardar",
|
"account_edit.save": "Gardar",
|
||||||
|
"account_edit.upload_modal.back": "Volver",
|
||||||
|
"account_edit.upload_modal.done": "Feito",
|
||||||
|
"account_edit.upload_modal.next": "Seguinte",
|
||||||
|
"account_edit.upload_modal.step_crop.zoom": "Achegamento",
|
||||||
|
"account_edit.upload_modal.step_upload.button": "Explorar ficheiros",
|
||||||
|
"account_edit.upload_modal.step_upload.dragging": "Solta aquí para subir",
|
||||||
|
"account_edit.upload_modal.step_upload.header": "Escoller unha imaxe",
|
||||||
|
"account_edit.upload_modal.step_upload.hint": "Formato WEBP, PNG, GIF ou JPG, ata {limit}MB.{br}A imaxe será comprimida a {width}x{height}px.",
|
||||||
|
"account_edit.upload_modal.title_add": "Engadir foto do perfil",
|
||||||
|
"account_edit.upload_modal.title_replace": "Substituír foto do perfil",
|
||||||
"account_edit.verified_modal.details": "Engade maior credibilidade ao teu perfil Mastodon verificando as ligazóns ás túas páxinas web persoais. Funciona así:",
|
"account_edit.verified_modal.details": "Engade maior credibilidade ao teu perfil Mastodon verificando as ligazóns ás túas páxinas web persoais. Funciona así:",
|
||||||
"account_edit.verified_modal.invisible_link.details": "Engade a ligazón ao «header» da páxina web. A parte importante é rel=\"me\", que evita a suplantación en sitios web con contido creado polas usuarias. Tamén podes usar a etiqueta «link» na cabeceira da páxina no lugar de {tag}, pero o HTML ten que ser accesible sen usar JavaScript.",
|
"account_edit.verified_modal.invisible_link.details": "Engade a ligazón ao «header» da páxina web. A parte importante é rel=\"me\", que evita a suplantación en sitios web con contido creado polas usuarias. Tamén podes usar a etiqueta «link» na cabeceira da páxina no lugar de {tag}, pero o HTML ten que ser accesible sen usar JavaScript.",
|
||||||
"account_edit.verified_modal.invisible_link.summary": "Como fago visible a ligazón?",
|
"account_edit.verified_modal.invisible_link.summary": "Como fago visible a ligazón?",
|
||||||
|
|||||||
@@ -184,6 +184,15 @@
|
|||||||
"account_edit.field_reorder_modal.drag_start": "Náði reitnum \"{item}\".",
|
"account_edit.field_reorder_modal.drag_start": "Náði reitnum \"{item}\".",
|
||||||
"account_edit.field_reorder_modal.handle_label": "Dragðu reitinn \"{item}\"",
|
"account_edit.field_reorder_modal.handle_label": "Dragðu reitinn \"{item}\"",
|
||||||
"account_edit.field_reorder_modal.title": "Endurraða gagnasviðum",
|
"account_edit.field_reorder_modal.title": "Endurraða gagnasviðum",
|
||||||
|
"account_edit.image_alt_modal.add_title": "Bæta við hjálpartexta",
|
||||||
|
"account_edit.image_alt_modal.details_content": "GERÐU ÞETTA: <ul> <li>Lýstu þér eins og þú ert á myndinni</li> <li>Notaðu þriðjupersónu (t.d. “Nonni” í staðinn fyrir “ég”)</li> <li>Vertu stuttorð/ur – fá orð eru oft nóg</li> </ul> EKKI GERA ÞETTA: <ul> <li>Byrja á “Mynd af” – það er óþarft fyrir skjálesara</li> </ul> DÆMI: <ul> <li>“Nonni í grænni skyrtu og með gleraugu”</li> </ul>",
|
||||||
|
"account_edit.image_alt_modal.details_title": "Ábending: hjálpartexti fyrir auðkennismyndir",
|
||||||
|
"account_edit.image_alt_modal.edit_title": "Breyta hjálpartexta",
|
||||||
|
"account_edit.image_alt_modal.text_hint": "Hjálpartexti hjálpar fólki sem notar skjálesara að skilja efnið frá þér.",
|
||||||
|
"account_edit.image_alt_modal.text_label": "Hjálpartexti mynda",
|
||||||
|
"account_edit.image_delete_modal.confirm": "Ertu viss um að þú viljir eyða þessari mynd? Þessa aðgerð er ekki hægt að afturkalla.",
|
||||||
|
"account_edit.image_delete_modal.delete_button": "Eyða",
|
||||||
|
"account_edit.image_delete_modal.title": "Eyða mynd?",
|
||||||
"account_edit.image_edit.add_button": "Bæta við mynd",
|
"account_edit.image_edit.add_button": "Bæta við mynd",
|
||||||
"account_edit.image_edit.alt_add_button": "Bæta við hjálpartexta",
|
"account_edit.image_edit.alt_add_button": "Bæta við hjálpartexta",
|
||||||
"account_edit.image_edit.alt_edit_button": "Breyta hjálpartexta",
|
"account_edit.image_edit.alt_edit_button": "Breyta hjálpartexta",
|
||||||
@@ -203,6 +212,16 @@
|
|||||||
"account_edit.profile_tab.subtitle": "Sérsníddu flipana á notandasniðinu þínu og hvað þeir birta.",
|
"account_edit.profile_tab.subtitle": "Sérsníddu flipana á notandasniðinu þínu og hvað þeir birta.",
|
||||||
"account_edit.profile_tab.title": "Stillingar notandasniðsflipa",
|
"account_edit.profile_tab.title": "Stillingar notandasniðsflipa",
|
||||||
"account_edit.save": "Vista",
|
"account_edit.save": "Vista",
|
||||||
|
"account_edit.upload_modal.back": "Til baka",
|
||||||
|
"account_edit.upload_modal.done": "Lokið",
|
||||||
|
"account_edit.upload_modal.next": "Næsta",
|
||||||
|
"account_edit.upload_modal.step_crop.zoom": "Aðdráttur",
|
||||||
|
"account_edit.upload_modal.step_upload.button": "Skoða skrár",
|
||||||
|
"account_edit.upload_modal.step_upload.dragging": "Slepptu til að senda inn",
|
||||||
|
"account_edit.upload_modal.step_upload.header": "Veldu mynd",
|
||||||
|
"account_edit.upload_modal.step_upload.hint": "WEBP, PNG, GIF eða JPG-snið, allt að {limit}MB.{br}Mynd verður kvörðuð í {width}x{height}px.",
|
||||||
|
"account_edit.upload_modal.title_add": "Bæta við auðkennismynd",
|
||||||
|
"account_edit.upload_modal.title_replace": "Skipta um auðkennismynd",
|
||||||
"account_edit.verified_modal.details": "Auktu trúverðugleika Mastodon-aðgangsins þíns með því að bæta við staðfestingartenglum sem vísa á vefsvæðin þín. Hérna sérðu hvernig það virkar:",
|
"account_edit.verified_modal.details": "Auktu trúverðugleika Mastodon-aðgangsins þíns með því að bæta við staðfestingartenglum sem vísa á vefsvæðin þín. Hérna sérðu hvernig það virkar:",
|
||||||
"account_edit.verified_modal.invisible_link.details": "Bættu tenglinum í hausinn hjá þér. Mikilvægi hlutinn er rel=\"me\" sem kemur í veg fyrir blekkingu verðandi persónuauðkenni á vefsvæðum með notandaframleiddu efni. Þú getur jafnvel notað tengimerkið í haus síðunnar í staðinn fyrir {tag}, en HTML-kóðinn verður samt að vera aðgengilegur án þess að keyra þurfi JavaScript.",
|
"account_edit.verified_modal.invisible_link.details": "Bættu tenglinum í hausinn hjá þér. Mikilvægi hlutinn er rel=\"me\" sem kemur í veg fyrir blekkingu verðandi persónuauðkenni á vefsvæðum með notandaframleiddu efni. Þú getur jafnvel notað tengimerkið í haus síðunnar í staðinn fyrir {tag}, en HTML-kóðinn verður samt að vera aðgengilegur án þess að keyra þurfi JavaScript.",
|
||||||
"account_edit.verified_modal.invisible_link.summary": "Hvernig geri ég tengilinn ósýnilegan?",
|
"account_edit.verified_modal.invisible_link.summary": "Hvernig geri ég tengilinn ósýnilegan?",
|
||||||
|
|||||||
@@ -184,6 +184,15 @@
|
|||||||
"account_edit.field_reorder_modal.drag_start": "Campo \"{item}\" selezionato.",
|
"account_edit.field_reorder_modal.drag_start": "Campo \"{item}\" selezionato.",
|
||||||
"account_edit.field_reorder_modal.handle_label": "Trascina il campo \"{item}\"",
|
"account_edit.field_reorder_modal.handle_label": "Trascina il campo \"{item}\"",
|
||||||
"account_edit.field_reorder_modal.title": "Riorganizza i campi",
|
"account_edit.field_reorder_modal.title": "Riorganizza i campi",
|
||||||
|
"account_edit.image_alt_modal.add_title": "Aggiungi il testo alternativo",
|
||||||
|
"account_edit.image_alt_modal.details_content": "COSA FARE: <ul> <li>Descriviti come nella foto</li> <li>Usa la terza persona (es. “Alex” invece di “io”)</li> <li>Sii conciso/a – poche parole spesso bastano</li> </ul> COSA NON FARE: <ul> <li>Iniziare con “Foto di” – è ridondante per i lettori di schermo</li> </ul> ESEMPIO: <ul> <li>“Alex sta indossando una camicia verde e gli occhiali”</li> </ul>",
|
||||||
|
"account_edit.image_alt_modal.details_title": "Suggerimenti: testo alternativo per le foto del profilo",
|
||||||
|
"account_edit.image_alt_modal.edit_title": "Modifica il testo alternativo",
|
||||||
|
"account_edit.image_alt_modal.text_hint": "Il testo alternativo aiuta gli utenti che utilizzano i lettori di schermo a comprendere i tuoi contenuti.",
|
||||||
|
"account_edit.image_alt_modal.text_label": "Testo alternativo",
|
||||||
|
"account_edit.image_delete_modal.confirm": "Si è sicuri di voler eliminare questa immagine? Questa azione non può essere annullata.",
|
||||||
|
"account_edit.image_delete_modal.delete_button": "Elimina",
|
||||||
|
"account_edit.image_delete_modal.title": "Eliminare l'immagine?",
|
||||||
"account_edit.image_edit.add_button": "Aggiungi un'immagine",
|
"account_edit.image_edit.add_button": "Aggiungi un'immagine",
|
||||||
"account_edit.image_edit.alt_add_button": "Aggiungi il testo alternativo",
|
"account_edit.image_edit.alt_add_button": "Aggiungi il testo alternativo",
|
||||||
"account_edit.image_edit.alt_edit_button": "Modifica il testo alternativo",
|
"account_edit.image_edit.alt_edit_button": "Modifica il testo alternativo",
|
||||||
@@ -203,6 +212,16 @@
|
|||||||
"account_edit.profile_tab.subtitle": "Personalizza le schede del tuo profilo e ciò che mostrano.",
|
"account_edit.profile_tab.subtitle": "Personalizza le schede del tuo profilo e ciò che mostrano.",
|
||||||
"account_edit.profile_tab.title": "Impostazioni della scheda del profilo",
|
"account_edit.profile_tab.title": "Impostazioni della scheda del profilo",
|
||||||
"account_edit.save": "Salva",
|
"account_edit.save": "Salva",
|
||||||
|
"account_edit.upload_modal.back": "Indietro",
|
||||||
|
"account_edit.upload_modal.done": "Fatto",
|
||||||
|
"account_edit.upload_modal.next": "Avanti",
|
||||||
|
"account_edit.upload_modal.step_crop.zoom": "Ingrandimento",
|
||||||
|
"account_edit.upload_modal.step_upload.button": "Sfoglia i file",
|
||||||
|
"account_edit.upload_modal.step_upload.dragging": "Trascina per caricare",
|
||||||
|
"account_edit.upload_modal.step_upload.header": "Scegli un'immagine",
|
||||||
|
"account_edit.upload_modal.step_upload.hint": "Formato WEBP, PNG, GIF o JPG, fino a {limit}MB.{br}L'immagine verrà ridimensionata a {width}x{height}px.",
|
||||||
|
"account_edit.upload_modal.title_add": "Aggiungi la foto del profilo",
|
||||||
|
"account_edit.upload_modal.title_replace": "Sostituisci la foto del profilo",
|
||||||
"account_edit.verified_modal.details": "Aggiungi credibilità al tuo profilo Mastodon verificando i collegamenti ai siti web personali. Ecco come funziona:",
|
"account_edit.verified_modal.details": "Aggiungi credibilità al tuo profilo Mastodon verificando i collegamenti ai siti web personali. Ecco come funziona:",
|
||||||
"account_edit.verified_modal.invisible_link.details": "Aggiungi il collegamento alla tua intestazione. La parte importante è rel=\"me\" che impedisce l'impersonificazione sui siti web con contenuti generati dagli utenti. Puoi anche utilizzare un link tag nell'intestazione della pagina al posto di {tag}, ma il codice HTML deve essere accessibile senza eseguire JavaScript.",
|
"account_edit.verified_modal.invisible_link.details": "Aggiungi il collegamento alla tua intestazione. La parte importante è rel=\"me\" che impedisce l'impersonificazione sui siti web con contenuti generati dagli utenti. Puoi anche utilizzare un link tag nell'intestazione della pagina al posto di {tag}, ma il codice HTML deve essere accessibile senza eseguire JavaScript.",
|
||||||
"account_edit.verified_modal.invisible_link.summary": "Come faccio a rendere il collegamento invisibile?",
|
"account_edit.verified_modal.invisible_link.summary": "Come faccio a rendere il collegamento invisibile?",
|
||||||
|
|||||||
@@ -170,15 +170,15 @@
|
|||||||
"account_edit.field_edit_modal.edit_title": "Aangepast veld bewerken",
|
"account_edit.field_edit_modal.edit_title": "Aangepast veld bewerken",
|
||||||
"account_edit.field_edit_modal.limit_header": "Aanbevolen tekenlimiet overschreden",
|
"account_edit.field_edit_modal.limit_header": "Aanbevolen tekenlimiet overschreden",
|
||||||
"account_edit.field_edit_modal.limit_message": "Mobiele gebruikers zien mogelijk het veld niet volledig.",
|
"account_edit.field_edit_modal.limit_message": "Mobiele gebruikers zien mogelijk het veld niet volledig.",
|
||||||
"account_edit.field_edit_modal.link_emoji_warning": "We raden aan om aangepaste emoji in combinatie met urls te gebruiken. Aangepaste velden die beide bevatten worden alleen als tekst weergegeven in plaats van als een link, om verwarring van de gebruiker te voorkomen.",
|
"account_edit.field_edit_modal.link_emoji_warning": "We raden aan om geen lokale emoji in combinatie met URL's te gebruiken. Aangepaste velden die beide bevatten worden alleen als tekst weergegeven, in plaats van als een link. Dit om verwarring voor de gebruiker te voorkomen.",
|
||||||
"account_edit.field_edit_modal.name_hint": "Bijv. \"Persoonlijke website\"",
|
"account_edit.field_edit_modal.name_hint": "Bijv. \"Persoonlijke website\"",
|
||||||
"account_edit.field_edit_modal.name_label": "Label",
|
"account_edit.field_edit_modal.name_label": "Label",
|
||||||
"account_edit.field_edit_modal.url_warning": "Voeg {protocol} toe aan het begin om een link toe te voegen.",
|
"account_edit.field_edit_modal.url_warning": "Voeg {protocol} aan het begin toe om een link toe te voegen.",
|
||||||
"account_edit.field_edit_modal.value_hint": "Bijv. \"https://example.me\"",
|
"account_edit.field_edit_modal.value_hint": "Bijv. \"https://example.me\"",
|
||||||
"account_edit.field_edit_modal.value_label": "Waarde",
|
"account_edit.field_edit_modal.value_label": "Waarde",
|
||||||
"account_edit.field_reorder_modal.drag_cancel": "Slepen is geannuleerd. Veld \"{item}\" is weggevallen.",
|
"account_edit.field_reorder_modal.drag_cancel": "Slepen is geannuleerd. Veld \"{item}\" werd geschrapt.",
|
||||||
"account_edit.field_reorder_modal.drag_end": "Veld \"{item}\" was weggevallen.",
|
"account_edit.field_reorder_modal.drag_end": "Veld \"{item}\" werd geschrapt.",
|
||||||
"account_edit.field_reorder_modal.drag_instructions": "Druk op spatie of enter om aangepaste velden te herschikken. Gebruik de pijltjestoetsen om het veld omhoog of omlaag te verplaatsen. Druk opnieuw op spatie of enter om het veld in zijn nieuwe positie te laten vallen, of druk op escape om te annuleren.",
|
"account_edit.field_reorder_modal.drag_instructions": "Druk op spatie of enter om de aangepaste velden te herschikken. Gebruik de pijltjestoetsen om het veld omhoog of omlaag te verplaatsen. Druk opnieuw op spatie of enter om het veld op diens nieuwe positie te laten vallen, of druk op escape om te annuleren.",
|
||||||
"account_edit.field_reorder_modal.drag_move": "Veld \"{item}\" is verplaatst.",
|
"account_edit.field_reorder_modal.drag_move": "Veld \"{item}\" is verplaatst.",
|
||||||
"account_edit.field_reorder_modal.drag_over": "Veld \"{item}\" is over \"{over} \" verplaatst.",
|
"account_edit.field_reorder_modal.drag_over": "Veld \"{item}\" is over \"{over} \" verplaatst.",
|
||||||
"account_edit.field_reorder_modal.drag_start": "Opgepakt veld \"{item}\".",
|
"account_edit.field_reorder_modal.drag_start": "Opgepakt veld \"{item}\".",
|
||||||
@@ -367,8 +367,8 @@
|
|||||||
"collections.old_last_post_note": "Meer dan een week geleden voor het laatst een bericht geplaatst",
|
"collections.old_last_post_note": "Meer dan een week geleden voor het laatst een bericht geplaatst",
|
||||||
"collections.remove_account": "Dit account verwijderen",
|
"collections.remove_account": "Dit account verwijderen",
|
||||||
"collections.report_collection": "Deze verzameling rapporteren",
|
"collections.report_collection": "Deze verzameling rapporteren",
|
||||||
"collections.revoke_collection_inclusion": "Verwijder mezelf uit deze collectie",
|
"collections.revoke_collection_inclusion": "Mezelf uit deze verzameling verwijderen",
|
||||||
"collections.revoke_inclusion.confirmation": "Je bent verwijderd uit \"{collection}\"",
|
"collections.revoke_inclusion.confirmation": "Je bent uit \"{collection}\" verwijderd",
|
||||||
"collections.revoke_inclusion.error": "Er is een fout opgetreden. Probeer het later opnieuw.",
|
"collections.revoke_inclusion.error": "Er is een fout opgetreden. Probeer het later opnieuw.",
|
||||||
"collections.search_accounts_label": "Naar accounts zoeken om toe te voegen…",
|
"collections.search_accounts_label": "Naar accounts zoeken om toe te voegen…",
|
||||||
"collections.search_accounts_max_reached": "Je hebt het maximum aantal accounts toegevoegd",
|
"collections.search_accounts_max_reached": "Je hebt het maximum aantal accounts toegevoegd",
|
||||||
@@ -496,7 +496,7 @@
|
|||||||
"confirmations.remove_from_followers.title": "Volger verwijderen?",
|
"confirmations.remove_from_followers.title": "Volger verwijderen?",
|
||||||
"confirmations.revoke_collection_inclusion.confirm": "Verwijder mij",
|
"confirmations.revoke_collection_inclusion.confirm": "Verwijder mij",
|
||||||
"confirmations.revoke_collection_inclusion.message": "Deze actie is definitief en de curator kan je later niet opnieuw aan de verzameling toevoegen.",
|
"confirmations.revoke_collection_inclusion.message": "Deze actie is definitief en de curator kan je later niet opnieuw aan de verzameling toevoegen.",
|
||||||
"confirmations.revoke_collection_inclusion.title": "Verwijder jezelf van deze collectie?",
|
"confirmations.revoke_collection_inclusion.title": "Jezelf uit deze collectie verwijderen?",
|
||||||
"confirmations.revoke_quote.confirm": "Bericht verwijderen",
|
"confirmations.revoke_quote.confirm": "Bericht verwijderen",
|
||||||
"confirmations.revoke_quote.message": "Deze actie kan niet ongedaan worden gemaakt.",
|
"confirmations.revoke_quote.message": "Deze actie kan niet ongedaan worden gemaakt.",
|
||||||
"confirmations.revoke_quote.title": "Bericht verwijderen?",
|
"confirmations.revoke_quote.title": "Bericht verwijderen?",
|
||||||
@@ -967,7 +967,7 @@
|
|||||||
"notifications_permission_banner.title": "Mis nooit meer iets",
|
"notifications_permission_banner.title": "Mis nooit meer iets",
|
||||||
"onboarding.follows.back": "Terug",
|
"onboarding.follows.back": "Terug",
|
||||||
"onboarding.follows.empty": "Helaas kunnen op dit moment geen resultaten worden getoond. Je kunt proberen te zoeken of op de verkenningspagina te bladeren om mensen te vinden die je kunt volgen, of probeer het later opnieuw.",
|
"onboarding.follows.empty": "Helaas kunnen op dit moment geen resultaten worden getoond. Je kunt proberen te zoeken of op de verkenningspagina te bladeren om mensen te vinden die je kunt volgen, of probeer het later opnieuw.",
|
||||||
"onboarding.follows.next": "Volgende: stel je profiel in",
|
"onboarding.follows.next": "Volgende: je profiel instellen",
|
||||||
"onboarding.follows.search": "Zoeken",
|
"onboarding.follows.search": "Zoeken",
|
||||||
"onboarding.follows.title": "Volg mensen om te beginnen",
|
"onboarding.follows.title": "Volg mensen om te beginnen",
|
||||||
"onboarding.profile.discoverable": "Maak mijn profiel vindbaar",
|
"onboarding.profile.discoverable": "Maak mijn profiel vindbaar",
|
||||||
|
|||||||
@@ -183,6 +183,15 @@
|
|||||||
"account_edit.field_reorder_modal.drag_start": "U mor fusha “{item}”.",
|
"account_edit.field_reorder_modal.drag_start": "U mor fusha “{item}”.",
|
||||||
"account_edit.field_reorder_modal.handle_label": "Tërhiqni fushën “{item}”",
|
"account_edit.field_reorder_modal.handle_label": "Tërhiqni fushën “{item}”",
|
||||||
"account_edit.field_reorder_modal.title": "Risistemoni fusha",
|
"account_edit.field_reorder_modal.title": "Risistemoni fusha",
|
||||||
|
"account_edit.image_alt_modal.add_title": "Shtoni tekst alternativ",
|
||||||
|
"account_edit.image_alt_modal.details_content": "MIRË: <ul> <li>Përshkruani veten si në figurë</li> <li>Përdorni gjuhë në vetën e tretë (p.sh., “Gimi”, në vend se “unë”)</li> <li>Jini konciz – pak fjalë shpesh mjaftojnë</li> </ul> KEQ: <ul> <li>T’ia filloni me “Foto e ” – është përsëritje për lexues ekrani</li> </ul> SHEMBULL: <ul> <li>“Gimi me një këmishë të gjelbër dhe syze”</li> </ul>",
|
||||||
|
"account_edit.image_alt_modal.details_title": "Ndihmëza: Teskt alternativ për figura profilesh",
|
||||||
|
"account_edit.image_alt_modal.edit_title": "Përpunoni tekst alternativ",
|
||||||
|
"account_edit.image_alt_modal.text_hint": "Teskti alternativ ndihmon përdorue lexuesish ekrani të kuptojnë lëndën tuaj.",
|
||||||
|
"account_edit.image_alt_modal.text_label": "Tekst alternativ",
|
||||||
|
"account_edit.image_delete_modal.confirm": "Jeni i sigurt se doni të fshihet kjo figurë? Ky veprim s’mund të zhbëhet.",
|
||||||
|
"account_edit.image_delete_modal.delete_button": "Fshije",
|
||||||
|
"account_edit.image_delete_modal.title": "Të fshihet figura?",
|
||||||
"account_edit.image_edit.add_button": "Shtoni figurë",
|
"account_edit.image_edit.add_button": "Shtoni figurë",
|
||||||
"account_edit.image_edit.alt_add_button": "Shtoni tekst alternativ",
|
"account_edit.image_edit.alt_add_button": "Shtoni tekst alternativ",
|
||||||
"account_edit.image_edit.alt_edit_button": "Përpunoni tekst alternativ",
|
"account_edit.image_edit.alt_edit_button": "Përpunoni tekst alternativ",
|
||||||
@@ -202,6 +211,16 @@
|
|||||||
"account_edit.profile_tab.subtitle": "Përshtatni skedat në profilin tuaj dhe ato çka shfaqet në to.",
|
"account_edit.profile_tab.subtitle": "Përshtatni skedat në profilin tuaj dhe ato çka shfaqet në to.",
|
||||||
"account_edit.profile_tab.title": "Rregullime skede profili",
|
"account_edit.profile_tab.title": "Rregullime skede profili",
|
||||||
"account_edit.save": "Ruaje",
|
"account_edit.save": "Ruaje",
|
||||||
|
"account_edit.upload_modal.back": "Mbrapsht",
|
||||||
|
"account_edit.upload_modal.done": "U bë",
|
||||||
|
"account_edit.upload_modal.next": "Pasuesja",
|
||||||
|
"account_edit.upload_modal.step_crop.zoom": "Zoom",
|
||||||
|
"account_edit.upload_modal.step_upload.button": "Shfletoni kartela",
|
||||||
|
"account_edit.upload_modal.step_upload.dragging": "Lëreni, që të ngarkohet",
|
||||||
|
"account_edit.upload_modal.step_upload.header": "Zgjidhni një figurë",
|
||||||
|
"account_edit.upload_modal.step_upload.hint": "Format WEBP, PNG, GIF ose JPG, deri në {limit}MB.{br}Figura do të ripërmasohet në {width}x{height}px.",
|
||||||
|
"account_edit.upload_modal.title_add": "Shtoni figurë profili",
|
||||||
|
"account_edit.upload_modal.title_replace": "Zëvendësoni figurë profili",
|
||||||
"account_edit.verified_modal.details": "Shtoni besueshmëri te profili juaj Mastodon duke verifikuar lidhje për te sajte personalë. Ja se si funksionon:",
|
"account_edit.verified_modal.details": "Shtoni besueshmëri te profili juaj Mastodon duke verifikuar lidhje për te sajte personalë. Ja se si funksionon:",
|
||||||
"account_edit.verified_modal.invisible_link.details": "Shtojeni lidhjen te kryet tuaja. Pjesa e rëndësishme është rel=\"me\", e cila pengon imitime në sajte me lëndë të prodhuar nga përdoruesit. Mundeni madje të përdorni një etiketë lidhjeje te kryet e faqes në vend të {tag}, por HTML-ja duhet të jetë e përdorshme pa ekzekutim të JavaScript-it.",
|
"account_edit.verified_modal.invisible_link.details": "Shtojeni lidhjen te kryet tuaja. Pjesa e rëndësishme është rel=\"me\", e cila pengon imitime në sajte me lëndë të prodhuar nga përdoruesit. Mundeni madje të përdorni një etiketë lidhjeje te kryet e faqes në vend të {tag}, por HTML-ja duhet të jetë e përdorshme pa ekzekutim të JavaScript-it.",
|
||||||
"account_edit.verified_modal.invisible_link.summary": "Si ta bëj lidhjen të padukshme?",
|
"account_edit.verified_modal.invisible_link.summary": "Si ta bëj lidhjen të padukshme?",
|
||||||
|
|||||||
@@ -203,6 +203,16 @@
|
|||||||
"account_edit.profile_tab.subtitle": "Profilinizdeki sekmeleri ve bunların görüntülediği bilgileri özelleştirin.",
|
"account_edit.profile_tab.subtitle": "Profilinizdeki sekmeleri ve bunların görüntülediği bilgileri özelleştirin.",
|
||||||
"account_edit.profile_tab.title": "Profil sekme ayarları",
|
"account_edit.profile_tab.title": "Profil sekme ayarları",
|
||||||
"account_edit.save": "Kaydet",
|
"account_edit.save": "Kaydet",
|
||||||
|
"account_edit.upload_modal.back": "Geri",
|
||||||
|
"account_edit.upload_modal.done": "Tamamlandı",
|
||||||
|
"account_edit.upload_modal.next": "İleri",
|
||||||
|
"account_edit.upload_modal.step_crop.zoom": "Yakınlaştır",
|
||||||
|
"account_edit.upload_modal.step_upload.button": "Dosyalara göz at",
|
||||||
|
"account_edit.upload_modal.step_upload.dragging": "Yüklemek için bırakın",
|
||||||
|
"account_edit.upload_modal.step_upload.header": "Bir resim seç",
|
||||||
|
"account_edit.upload_modal.step_upload.hint": "WEBP, PNG, GIF veya JPG formatında, en fazla {limit} MB.{br}Görsel {width}x{height} piksel boyutuna getirilir.",
|
||||||
|
"account_edit.upload_modal.title_add": "Profil fotoğrafı ekle",
|
||||||
|
"account_edit.upload_modal.title_replace": "Profil fotoğrafını değiştir",
|
||||||
"account_edit.verified_modal.details": "Kişisel web sitelerine bağlantıları doğrulayarak Mastodon profilinize güvenilirlik katın. İşte böyle çalışıyor:",
|
"account_edit.verified_modal.details": "Kişisel web sitelerine bağlantıları doğrulayarak Mastodon profilinize güvenilirlik katın. İşte böyle çalışıyor:",
|
||||||
"account_edit.verified_modal.invisible_link.details": "Bağlantıyı başlığınıza ekleyin. Önemli olan kısım, kullanıcı tarafından oluşturulan içeriğe sahip web sitelerinde kimlik sahtekarlığını önleyen rel=\"me\" özniteliğidir. {tag} yerine sayfanın başlığında bir bağlantı etiketi bile kullanabilirsiniz, ancak HTML, JavaScript çalıştırılmadan erişilebilir olmalıdır.",
|
"account_edit.verified_modal.invisible_link.details": "Bağlantıyı başlığınıza ekleyin. Önemli olan kısım, kullanıcı tarafından oluşturulan içeriğe sahip web sitelerinde kimlik sahtekarlığını önleyen rel=\"me\" özniteliğidir. {tag} yerine sayfanın başlığında bir bağlantı etiketi bile kullanabilirsiniz, ancak HTML, JavaScript çalıştırılmadan erişilebilir olmalıdır.",
|
||||||
"account_edit.verified_modal.invisible_link.summary": "Bağlantıyı nasıl görünmez hale getirebilirim?",
|
"account_edit.verified_modal.invisible_link.summary": "Bağlantıyı nasıl görünmez hale getirebilirim?",
|
||||||
@@ -374,6 +384,7 @@
|
|||||||
"collections.search_accounts_max_reached": "Maksimum hesabı eklediniz",
|
"collections.search_accounts_max_reached": "Maksimum hesabı eklediniz",
|
||||||
"collections.sensitive": "Hassas",
|
"collections.sensitive": "Hassas",
|
||||||
"collections.topic_hint": "Bu koleksiyonun ana konusunu başkalarının anlamasına yardımcı olacak bir etiket ekleyin.",
|
"collections.topic_hint": "Bu koleksiyonun ana konusunu başkalarının anlamasına yardımcı olacak bir etiket ekleyin.",
|
||||||
|
"collections.topic_special_chars_hint": "Kaydederken özel karakterler silinecektir",
|
||||||
"collections.view_collection": "Koleksiyonu görüntüle",
|
"collections.view_collection": "Koleksiyonu görüntüle",
|
||||||
"collections.view_other_collections_by_user": "Bu kullanıcının diğer koleksiyonlarını görüntüle",
|
"collections.view_other_collections_by_user": "Bu kullanıcının diğer koleksiyonlarını görüntüle",
|
||||||
"collections.visibility_public": "Herkese açık",
|
"collections.visibility_public": "Herkese açık",
|
||||||
|
|||||||
@@ -203,6 +203,16 @@
|
|||||||
"account_edit.profile_tab.subtitle": "Tùy chỉnh tab trên hồ sơ của bạn và những gì chúng hiển thị.",
|
"account_edit.profile_tab.subtitle": "Tùy chỉnh tab trên hồ sơ của bạn và những gì chúng hiển thị.",
|
||||||
"account_edit.profile_tab.title": "Thiết lập tab hồ sơ",
|
"account_edit.profile_tab.title": "Thiết lập tab hồ sơ",
|
||||||
"account_edit.save": "Lưu",
|
"account_edit.save": "Lưu",
|
||||||
|
"account_edit.upload_modal.back": "Quay lại",
|
||||||
|
"account_edit.upload_modal.done": "Xong",
|
||||||
|
"account_edit.upload_modal.next": "Kế tiếp",
|
||||||
|
"account_edit.upload_modal.step_crop.zoom": "Phóng to",
|
||||||
|
"account_edit.upload_modal.step_upload.button": "Duyệt tệp",
|
||||||
|
"account_edit.upload_modal.step_upload.dragging": "Thả để tải lên",
|
||||||
|
"account_edit.upload_modal.step_upload.header": "Chọn ảnh",
|
||||||
|
"account_edit.upload_modal.step_upload.hint": "WEBP, PNG, GIF hoặc JPG, tối đa {limit}MB.{br}Sẽ bị thu xuống {width}x{height}px.",
|
||||||
|
"account_edit.upload_modal.title_add": "Thêm ảnh đại diện",
|
||||||
|
"account_edit.upload_modal.title_replace": "Thay thế ảnh đại diện",
|
||||||
"account_edit.verified_modal.details": "Tăng độ tin cậy cho hồ sơ Mastodon của bạn bằng cách xác minh liên kết đến trang web cá nhân. Cách thức thực hiện như sau:",
|
"account_edit.verified_modal.details": "Tăng độ tin cậy cho hồ sơ Mastodon của bạn bằng cách xác minh liên kết đến trang web cá nhân. Cách thức thực hiện như sau:",
|
||||||
"account_edit.verified_modal.invisible_link.details": "Thêm liên kết trên header của trang. Quan trọng là rel=\"me\" giúp ngăn chặn việc mạo danh trên các trang web có nội dung do người dùng tạo. Bạn cũng có thể sử dụng một thẻ link thay vì {tag}, nhưng HTML phải có thể truy cập được mà không cần thực thi JavaScript.",
|
"account_edit.verified_modal.invisible_link.details": "Thêm liên kết trên header của trang. Quan trọng là rel=\"me\" giúp ngăn chặn việc mạo danh trên các trang web có nội dung do người dùng tạo. Bạn cũng có thể sử dụng một thẻ link thay vì {tag}, nhưng HTML phải có thể truy cập được mà không cần thực thi JavaScript.",
|
||||||
"account_edit.verified_modal.invisible_link.summary": "Làm thế nào để ẩn liên kết?",
|
"account_edit.verified_modal.invisible_link.summary": "Làm thế nào để ẩn liên kết?",
|
||||||
|
|||||||
@@ -184,6 +184,15 @@
|
|||||||
"account_edit.field_reorder_modal.drag_start": "已选中字段“{item}”。",
|
"account_edit.field_reorder_modal.drag_start": "已选中字段“{item}”。",
|
||||||
"account_edit.field_reorder_modal.handle_label": "拖拽字段“{item}”",
|
"account_edit.field_reorder_modal.handle_label": "拖拽字段“{item}”",
|
||||||
"account_edit.field_reorder_modal.title": "重新排列字段",
|
"account_edit.field_reorder_modal.title": "重新排列字段",
|
||||||
|
"account_edit.image_alt_modal.add_title": "添加替代文本",
|
||||||
|
"account_edit.image_alt_modal.details_content": "建议这么做:<ul> <li>根据图片内容描述你自己的样子</li> <li>文本使用第三人称(例如称呼自己为“Alex”而不是“我”)</li> <li>保持简洁:通常只需要简单描述一下</li> </ul> 不建议这么做:<ul> <li>以“……的图片”开头或结尾:屏幕阅读器自己会说这是图片</li> </ul> 示例:<ul> <li>“穿绿色衬衫戴着眼镜的Alex”</li> </ul>",
|
||||||
|
"account_edit.image_alt_modal.details_title": "小贴士:为头像添加替代文本",
|
||||||
|
"account_edit.image_alt_modal.edit_title": "编辑替代文本",
|
||||||
|
"account_edit.image_alt_modal.text_hint": "替代文本可以帮助使用屏幕阅读器的用户理解你的内容。",
|
||||||
|
"account_edit.image_alt_modal.text_label": "替代文本",
|
||||||
|
"account_edit.image_delete_modal.confirm": "确定要删除此图片吗?此操作无法撤销。",
|
||||||
|
"account_edit.image_delete_modal.delete_button": "删除",
|
||||||
|
"account_edit.image_delete_modal.title": "删除图片吗?",
|
||||||
"account_edit.image_edit.add_button": "添加图片",
|
"account_edit.image_edit.add_button": "添加图片",
|
||||||
"account_edit.image_edit.alt_add_button": "添加替代文本",
|
"account_edit.image_edit.alt_add_button": "添加替代文本",
|
||||||
"account_edit.image_edit.alt_edit_button": "编辑替代文本",
|
"account_edit.image_edit.alt_edit_button": "编辑替代文本",
|
||||||
@@ -203,6 +212,16 @@
|
|||||||
"account_edit.profile_tab.subtitle": "自定义你个人资料的标签页及其显示的内容。",
|
"account_edit.profile_tab.subtitle": "自定义你个人资料的标签页及其显示的内容。",
|
||||||
"account_edit.profile_tab.title": "个人资料标签页设置",
|
"account_edit.profile_tab.title": "个人资料标签页设置",
|
||||||
"account_edit.save": "保存",
|
"account_edit.save": "保存",
|
||||||
|
"account_edit.upload_modal.back": "返回",
|
||||||
|
"account_edit.upload_modal.done": "完成",
|
||||||
|
"account_edit.upload_modal.next": "下一步",
|
||||||
|
"account_edit.upload_modal.step_crop.zoom": "缩放",
|
||||||
|
"account_edit.upload_modal.step_upload.button": "浏览文件",
|
||||||
|
"account_edit.upload_modal.step_upload.dragging": "将文件拖放到此处开始上传",
|
||||||
|
"account_edit.upload_modal.step_upload.header": "选择图片",
|
||||||
|
"account_edit.upload_modal.step_upload.hint": "支持 WEBP、PNG、GIF 或 JPG 格式,最大 {limit} MB。{br}图片将被缩放至 {width}×{height}px。",
|
||||||
|
"account_edit.upload_modal.title_add": "添加头像",
|
||||||
|
"account_edit.upload_modal.title_replace": "替换头像",
|
||||||
"account_edit.verified_modal.details": "要增加 Mastodon 个人资料的可信度,可以验证指向个人网站的链接。运作方式如下:",
|
"account_edit.verified_modal.details": "要增加 Mastodon 个人资料的可信度,可以验证指向个人网站的链接。运作方式如下:",
|
||||||
"account_edit.verified_modal.invisible_link.details": "将链接添加到标头(header)中。其中很重要的部分是 rel=\"me\",可以防止他人通过用户生成内容模仿。你甚至可以在页面标头中使用 link 标签而不是 {tag},但包含该部分的 HTML 必须在没有 JavaScript 执行环境下访问时依然存在。",
|
"account_edit.verified_modal.invisible_link.details": "将链接添加到标头(header)中。其中很重要的部分是 rel=\"me\",可以防止他人通过用户生成内容模仿。你甚至可以在页面标头中使用 link 标签而不是 {tag},但包含该部分的 HTML 必须在没有 JavaScript 执行环境下访问时依然存在。",
|
||||||
"account_edit.verified_modal.invisible_link.summary": "如何隐藏此链接?",
|
"account_edit.verified_modal.invisible_link.summary": "如何隐藏此链接?",
|
||||||
|
|||||||
@@ -184,6 +184,15 @@
|
|||||||
"account_edit.field_reorder_modal.drag_start": "已選取欄位「{item}」。",
|
"account_edit.field_reorder_modal.drag_start": "已選取欄位「{item}」。",
|
||||||
"account_edit.field_reorder_modal.handle_label": "拖放欄位「{item}」",
|
"account_edit.field_reorder_modal.handle_label": "拖放欄位「{item}」",
|
||||||
"account_edit.field_reorder_modal.title": "重新整理欄位",
|
"account_edit.field_reorder_modal.title": "重新整理欄位",
|
||||||
|
"account_edit.image_alt_modal.add_title": "新增 ALT 說明文字",
|
||||||
|
"account_edit.image_alt_modal.details_content": "要:<ul> <li>根據圖片描述自己</li> <li>使用第三人稱(例如用「小明」代替「我」)</li> <li>言簡意賅,寥寥數語足矣</li> </ul> 不要:<ul> <li>從「照片」開頭,這對螢幕閱讀程式來說是多餘的</li> </ul> 範例:<ul> <li>「小明穿著綠色襯衫,戴著眼鏡」</li> </ul>",
|
||||||
|
"account_edit.image_alt_modal.details_title": "小撇步:個人檔案照片的 ALT 說明文字",
|
||||||
|
"account_edit.image_alt_modal.edit_title": "編輯 ALT 說明文字",
|
||||||
|
"account_edit.image_alt_modal.text_hint": "ALT 說明文字可協助螢幕閱讀程式使用者理解您的內容。",
|
||||||
|
"account_edit.image_alt_modal.text_label": "ALT 說明文字",
|
||||||
|
"account_edit.image_delete_modal.confirm": "您確定要刪除此圖片嗎?此動作無法復原。",
|
||||||
|
"account_edit.image_delete_modal.delete_button": "刪除",
|
||||||
|
"account_edit.image_delete_modal.title": "是否刪除圖片?",
|
||||||
"account_edit.image_edit.add_button": "新增圖片",
|
"account_edit.image_edit.add_button": "新增圖片",
|
||||||
"account_edit.image_edit.alt_add_button": "新增 ALT 說明文字",
|
"account_edit.image_edit.alt_add_button": "新增 ALT 說明文字",
|
||||||
"account_edit.image_edit.alt_edit_button": "編輯 ALT 說明文字",
|
"account_edit.image_edit.alt_edit_button": "編輯 ALT 說明文字",
|
||||||
@@ -203,6 +212,16 @@
|
|||||||
"account_edit.profile_tab.subtitle": "自訂您個人檔案之分頁與內容。",
|
"account_edit.profile_tab.subtitle": "自訂您個人檔案之分頁與內容。",
|
||||||
"account_edit.profile_tab.title": "個人檔案分頁設定",
|
"account_edit.profile_tab.title": "個人檔案分頁設定",
|
||||||
"account_edit.save": "儲存",
|
"account_edit.save": "儲存",
|
||||||
|
"account_edit.upload_modal.back": "上一步",
|
||||||
|
"account_edit.upload_modal.done": "完成",
|
||||||
|
"account_edit.upload_modal.next": "下一步",
|
||||||
|
"account_edit.upload_modal.step_crop.zoom": "縮放",
|
||||||
|
"account_edit.upload_modal.step_upload.button": "瀏覽檔案",
|
||||||
|
"account_edit.upload_modal.step_upload.dragging": "拖曳以上傳",
|
||||||
|
"account_edit.upload_modal.step_upload.header": "選擇圖片",
|
||||||
|
"account_edit.upload_modal.step_upload.hint": "WEBP、PNG、GIF 或 JPG 格式,最大 {limit}MB。{br}圖片將會縮放至 {width}x{height} 像素。",
|
||||||
|
"account_edit.upload_modal.title_add": "新增個人檔案照片",
|
||||||
|
"account_edit.upload_modal.title_replace": "更換個人檔案照片",
|
||||||
"account_edit.verified_modal.details": "藉由驗證連結至個人網站增加您 Mastodon 個人檔案之可信度。運作方式如下:",
|
"account_edit.verified_modal.details": "藉由驗證連結至個人網站增加您 Mastodon 個人檔案之可信度。運作方式如下:",
|
||||||
"account_edit.verified_modal.invisible_link.details": "新增連結至您的標頭 (header)。其重要的部分是 rel=\"me\" ,防止透過使用者產生內容模擬。您甚至能使用頁面標頭之 link 標籤取代頁面中的 {tag},但 HTML 必須能於不執行 JavaScript 情況下所存取。",
|
"account_edit.verified_modal.invisible_link.details": "新增連結至您的標頭 (header)。其重要的部分是 rel=\"me\" ,防止透過使用者產生內容模擬。您甚至能使用頁面標頭之 link 標籤取代頁面中的 {tag},但 HTML 必須能於不執行 JavaScript 情況下所存取。",
|
||||||
"account_edit.verified_modal.invisible_link.summary": "如何隱藏此連結?",
|
"account_edit.verified_modal.invisible_link.summary": "如何隱藏此連結?",
|
||||||
|
|||||||
@@ -440,7 +440,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
|
|||||||
def forward_for_reply
|
def forward_for_reply
|
||||||
return unless @status.distributable? && @json['signature'].present? && reply_to_local?
|
return unless @status.distributable? && @json['signature'].present? && reply_to_local?
|
||||||
|
|
||||||
ActivityPub::RawDistributionWorker.perform_async(Oj.dump(@json), replied_to_status.account_id, [@account.preferred_inbox_url])
|
ActivityPub::RawDistributionWorker.perform_async(JSON.generate(@json), replied_to_status.account_id, [@account.preferred_inbox_url])
|
||||||
end
|
end
|
||||||
|
|
||||||
def increment_voters_count!
|
def increment_voters_count!
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ class ActivityPub::Activity::FeatureRequest < ActivityPub::Activity
|
|||||||
end
|
end
|
||||||
|
|
||||||
def queue_delivery!(collection_item, serializer)
|
def queue_delivery!(collection_item, serializer)
|
||||||
json = Oj.dump(serialize_payload(collection_item, serializer))
|
json = JSON.generate(serialize_payload(collection_item, serializer))
|
||||||
ActivityPub::DeliveryWorker.perform_async(json, @featured_account.id, @account.inbox_url)
|
ActivityPub::DeliveryWorker.perform_async(json, @featured_account.id, @account.inbox_url)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ class ActivityPub::Forwarder
|
|||||||
private
|
private
|
||||||
|
|
||||||
def payload
|
def payload
|
||||||
@payload ||= Oj.dump(@json)
|
@payload ||= JSON.generate(@json)
|
||||||
end
|
end
|
||||||
|
|
||||||
def reblogged_by_account_ids
|
def reblogged_by_account_ids
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ class Admin::Metrics::Dimension::SoftwareVersionsDimension < Admin::Metrics::Dim
|
|||||||
value: version,
|
value: version,
|
||||||
human_value: version,
|
human_value: version,
|
||||||
}
|
}
|
||||||
rescue Terrapin::CommandNotFoundError, Terrapin::ExitStatusError, Oj::ParseError
|
rescue Terrapin::CommandNotFoundError, Terrapin::ExitStatusError, JSON::ParserError
|
||||||
nil
|
nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ class TranslationService::DeepL < TranslationService
|
|||||||
provider: 'DeepL.com'
|
provider: 'DeepL.com'
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
rescue Oj::ParseError
|
rescue JSON::ParserError
|
||||||
raise UnexpectedResponseError
|
raise UnexpectedResponseError
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ class TranslationService::LibreTranslate < TranslationService
|
|||||||
provider: 'LibreTranslate'
|
provider: 'LibreTranslate'
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
rescue Oj::ParseError
|
rescue JSON::ParserError
|
||||||
raise UnexpectedResponseError
|
raise UnexpectedResponseError
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ class VideoMetadataExtractor
|
|||||||
@metadata = JSON.parse(ffmpeg_command_output, symbolize_names: true)
|
@metadata = JSON.parse(ffmpeg_command_output, symbolize_names: true)
|
||||||
|
|
||||||
parse_metadata
|
parse_metadata
|
||||||
rescue Terrapin::ExitStatusError, Oj::ParseError
|
rescue Terrapin::ExitStatusError, JSON::ParserError
|
||||||
@invalid = true
|
@invalid = true
|
||||||
rescue Terrapin::CommandNotFoundError
|
rescue Terrapin::CommandNotFoundError
|
||||||
raise Paperclip::Errors::CommandNotFoundError, 'Could not run the `ffprobe` command. Please install ffmpeg.' # rubocop:disable I18n/RailsI18n/DecorateString -- This error is not user-facing
|
raise Paperclip::Errors::CommandNotFoundError, 'Could not run the `ffprobe` command. Please install ffmpeg.' # rubocop:disable I18n/RailsI18n/DecorateString -- This error is not user-facing
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ class Webfinger
|
|||||||
|
|
||||||
def perform
|
def perform
|
||||||
Response.new(@uri, body_from_webfinger)
|
Response.new(@uri, body_from_webfinger)
|
||||||
rescue Oj::ParseError
|
rescue JSON::ParserError
|
||||||
raise Webfinger::Error, "Invalid JSON in response for #{@uri}"
|
raise Webfinger::Error, "Invalid JSON in response for #{@uri}"
|
||||||
rescue Addressable::URI::InvalidURIError
|
rescue Addressable::URI::InvalidURIError
|
||||||
raise Webfinger::Error, "Invalid URI for #{@uri}"
|
raise Webfinger::Error, "Invalid URI for #{@uri}"
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ class Webhooks::PayloadRenderer
|
|||||||
|
|
||||||
def get(path)
|
def get(path)
|
||||||
value = @document.dig(*parse_path(path))
|
value = @document.dig(*parse_path(path))
|
||||||
string = Oj.dump(value)
|
string = JSON.generate(value)
|
||||||
|
|
||||||
# We want to make sure people can use the variable inside
|
# We want to make sure people can use the variable inside
|
||||||
# other strings, so it can't be wrapped in quotes.
|
# other strings, so it can't be wrapped in quotes.
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ class ActivityPub::FetchRemoteActorService < BaseService
|
|||||||
else
|
else
|
||||||
body_to_json(prefetched_body, compare_id: uri)
|
body_to_json(prefetched_body, compare_id: uri)
|
||||||
end
|
end
|
||||||
rescue Oj::ParseError
|
rescue JSON::ParserError
|
||||||
raise Error, "Error parsing JSON-LD document #{uri}"
|
raise Error, "Error parsing JSON-LD document #{uri}"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ class ActivityPub::ProcessAccountService < BaseService
|
|||||||
end
|
end
|
||||||
|
|
||||||
@account
|
@account
|
||||||
rescue Oj::ParseError
|
rescue JSON::ParserError
|
||||||
nil
|
nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ class ActivityPub::ProcessCollectionService < BaseService
|
|||||||
else
|
else
|
||||||
process_items [@json]
|
process_items [@json]
|
||||||
end
|
end
|
||||||
rescue Oj::ParseError
|
rescue JSON::ParserError
|
||||||
nil
|
nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ class SoftwareUpdateCheckService < BaseService
|
|||||||
Request.new(:get, "#{api_url}?version=#{version}").add_headers('Accept' => 'application/json', 'User-Agent' => 'Mastodon update checker').perform do |res|
|
Request.new(:get, "#{api_url}?version=#{version}").add_headers('Accept' => 'application/json', 'User-Agent' => 'Mastodon update checker').perform do |res|
|
||||||
return JSON.parse(res.body_with_limit) if res.code == 200
|
return JSON.parse(res.body_with_limit) if res.code == 200
|
||||||
end
|
end
|
||||||
rescue *Mastodon::HTTP_CONNECTION_ERRORS, Oj::ParseError
|
rescue *Mastodon::HTTP_CONNECTION_ERRORS, JSON::ParserError
|
||||||
nil
|
nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ class Scheduler::SelfDestructScheduler
|
|||||||
adapter: ActivityPub::Adapter
|
adapter: ActivityPub::Adapter
|
||||||
).as_json
|
).as_json
|
||||||
|
|
||||||
json = Oj.dump(ActivityPub::LinkedDataSignature.new(payload).sign!(account))
|
json = JSON.generate(ActivityPub::LinkedDataSignature.new(payload).sign!(account))
|
||||||
|
|
||||||
ActivityPub::DeliveryWorker.push_bulk(inboxes, limit: 1_000) do |inbox_url|
|
ActivityPub::DeliveryWorker.push_bulk(inboxes, limit: 1_000) do |inbox_url|
|
||||||
[json, account.id, inbox_url]
|
[json, account.id, inbox_url]
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ es-AR:
|
|||||||
fields:
|
fields:
|
||||||
fields_with_values_missing_labels: contiene valores con etiquetas faltantes
|
fields_with_values_missing_labels: contiene valores con etiquetas faltantes
|
||||||
username:
|
username:
|
||||||
invalid: sólo letras, números y subguiones ("_")
|
invalid: solo letras, números y subguiones ("_")
|
||||||
reserved: está reservado
|
reserved: está reservado
|
||||||
admin/webhook:
|
admin/webhook:
|
||||||
attributes:
|
attributes:
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ es-AR:
|
|||||||
subject: 'Mastodon: instrucciones para cambiar la contraseña'
|
subject: 'Mastodon: instrucciones para cambiar la contraseña'
|
||||||
title: Cambiar contraseña
|
title: Cambiar contraseña
|
||||||
two_factor_disabled:
|
two_factor_disabled:
|
||||||
explanation: Ahora es posible iniciar sesión utilizando sólo la dirección de correo electrónico y la contraseña.
|
explanation: Ahora es posible iniciar sesión utilizando solo la dirección de correo electrónico y la contraseña.
|
||||||
subject: 'Mastodon: autenticación de dos factores, deshabilitada'
|
subject: 'Mastodon: autenticación de dos factores, deshabilitada'
|
||||||
subtitle: Se deshabilitó la autenticación de dos factores para tu cuenta.
|
subtitle: Se deshabilitó la autenticación de dos factores para tu cuenta.
|
||||||
title: 2FA deshabilitada
|
title: 2FA deshabilitada
|
||||||
@@ -76,7 +76,7 @@ es-AR:
|
|||||||
title: Se eliminó una de tus llaves de seguridad
|
title: Se eliminó una de tus llaves de seguridad
|
||||||
webauthn_disabled:
|
webauthn_disabled:
|
||||||
explanation: Se deshabilitó la autenticación con claves de seguridad para tu cuenta.
|
explanation: Se deshabilitó la autenticación con claves de seguridad para tu cuenta.
|
||||||
extra: Ahora es posible iniciar sesión utilizando sólo la clave numérica ("token") generada por la aplicación TOTP emparejada.
|
extra: Ahora es posible iniciar sesión utilizando solo la clave numérica ("token") generada por la aplicación TOTP emparejada.
|
||||||
subject: 'Mastodon: autenticación con llaves de seguridad, deshabilitada'
|
subject: 'Mastodon: autenticación con llaves de seguridad, deshabilitada'
|
||||||
title: Llaves de seguridad deshabilitadas
|
title: Llaves de seguridad deshabilitadas
|
||||||
webauthn_enabled:
|
webauthn_enabled:
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ es-AR:
|
|||||||
edit: Editar
|
edit: Editar
|
||||||
submit: Enviar
|
submit: Enviar
|
||||||
confirmations:
|
confirmations:
|
||||||
destroy: "¿Estás seguro?"
|
destroy: "¿Continuar?"
|
||||||
edit:
|
edit:
|
||||||
title: Editar aplicación
|
title: Editar aplicación
|
||||||
form:
|
form:
|
||||||
@@ -69,7 +69,7 @@ es-AR:
|
|||||||
buttons:
|
buttons:
|
||||||
revoke: Revocar
|
revoke: Revocar
|
||||||
confirmations:
|
confirmations:
|
||||||
revoke: "¿Estás seguro?"
|
revoke: "¿Continuar?"
|
||||||
index:
|
index:
|
||||||
authorized_at: Autorizado el %{date}
|
authorized_at: Autorizado el %{date}
|
||||||
description_html: Estas son aplicaciones que pueden acceder a tu cuenta usando la API. Si hay aplicaciones que no reconocés acá, o que funcionan de forma sospechosa, podés revocar su acceso.
|
description_html: Estas son aplicaciones que pueden acceder a tu cuenta usando la API. Si hay aplicaciones que no reconocés acá, o que funcionan de forma sospechosa, podés revocar su acceso.
|
||||||
@@ -118,9 +118,9 @@ es-AR:
|
|||||||
notice: Aplicación revocada.
|
notice: Aplicación revocada.
|
||||||
grouped_scopes:
|
grouped_scopes:
|
||||||
access:
|
access:
|
||||||
read: Acceso de sólo lectura
|
read: Acceso de solo lectura
|
||||||
read/write: Acceso de lectura y escritura
|
read/write: Acceso de lectura y escritura
|
||||||
write: Acceso de sólo escritura
|
write: Acceso de solo escritura
|
||||||
title:
|
title:
|
||||||
accounts: Cuentas
|
accounts: Cuentas
|
||||||
admin/accounts: Administración de cuentas
|
admin/accounts: Administración de cuentas
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ es-AR:
|
|||||||
add_email_domain_block: Bloquear el dominio del correo electrónico
|
add_email_domain_block: Bloquear el dominio del correo electrónico
|
||||||
approve: Aprobar
|
approve: Aprobar
|
||||||
approved_msg: Se aprobó exitosamente la solicitud de registro de %{username}
|
approved_msg: Se aprobó exitosamente la solicitud de registro de %{username}
|
||||||
are_you_sure: "¿Estás seguro?"
|
are_you_sure: "¿Continuar?"
|
||||||
avatar: Avatar
|
avatar: Avatar
|
||||||
by_domain: Dominio
|
by_domain: Dominio
|
||||||
change_email:
|
change_email:
|
||||||
@@ -144,7 +144,7 @@ es-AR:
|
|||||||
search_same_ip: Otros usuarios con la misma dirección IP
|
search_same_ip: Otros usuarios con la misma dirección IP
|
||||||
security: Seguridad
|
security: Seguridad
|
||||||
security_measures:
|
security_measures:
|
||||||
only_password: Sólo contraseña
|
only_password: Solo contraseña
|
||||||
password_and_2fa: Contraseña y 2FA
|
password_and_2fa: Contraseña y 2FA
|
||||||
sensitive: Forzar como sensible
|
sensitive: Forzar como sensible
|
||||||
sensitized: Marcado como sensible
|
sensitized: Marcado como sensible
|
||||||
@@ -379,7 +379,7 @@ es-AR:
|
|||||||
not_permitted: No tenés permiso para realizar esta acción
|
not_permitted: No tenés permiso para realizar esta acción
|
||||||
overwrite: Sobreescribir
|
overwrite: Sobreescribir
|
||||||
shortcode: Código corto
|
shortcode: Código corto
|
||||||
shortcode_hint: Al menos 2 caracteres, sólo caracteres alfanuméricos y subguiones ("_")
|
shortcode_hint: Al menos 2 caracteres, solo caracteres alfanuméricos y subguiones ("_")
|
||||||
title: Emojis personalizados
|
title: Emojis personalizados
|
||||||
uncategorized: Sin categoría
|
uncategorized: Sin categoría
|
||||||
unlist: No listar
|
unlist: No listar
|
||||||
@@ -559,7 +559,7 @@ es-AR:
|
|||||||
back_to_limited: Limitados
|
back_to_limited: Limitados
|
||||||
back_to_warning: Advertencia
|
back_to_warning: Advertencia
|
||||||
by_domain: Dominio
|
by_domain: Dominio
|
||||||
confirm_purge: "¿Estás seguro que querés eliminar permanentemente los datos de este dominio?"
|
confirm_purge: "¿De verdad querés eliminar permanentemente los datos de este dominio?"
|
||||||
content_policies:
|
content_policies:
|
||||||
comment: Nota interna
|
comment: Nota interna
|
||||||
description_html: Podés definir políticas de contenido que se aplicarán a todas las cuentas de este dominio y a cualquiera de sus subdominios.
|
description_html: Podés definir políticas de contenido que se aplicarán a todas las cuentas de este dominio y a cualquiera de sus subdominios.
|
||||||
@@ -675,16 +675,16 @@ es-AR:
|
|||||||
mark_as_sensitive_description_html: Los archivos de medios en los mensajes denunciados se marcarán como sensibles y se registrará un incumplimiento para ayudarte a escalar las futuras infracciones de la misma cuenta.
|
mark_as_sensitive_description_html: Los archivos de medios en los mensajes denunciados se marcarán como sensibles y se registrará un incumplimiento para ayudarte a escalar las futuras infracciones de la misma cuenta.
|
||||||
other_description_html: Ver más opciones para controlar el comportamiento de la cuenta y personalizar la comunicación de la cuenta denunciada.
|
other_description_html: Ver más opciones para controlar el comportamiento de la cuenta y personalizar la comunicación de la cuenta denunciada.
|
||||||
resolve_description_html: No se tomarán medidas contra la cuenta denunciada, no se registrará el incumplimiento, y se cerrará la denuncia.
|
resolve_description_html: No se tomarán medidas contra la cuenta denunciada, no se registrará el incumplimiento, y se cerrará la denuncia.
|
||||||
silence_description_html: La cuenta será visible sólo para quienes ya la siguen o la busquen manualmente, limitando severamente su alcance. Siempre puede ser revertido. Esto cierra todas las denuncias contra esta cuenta.
|
silence_description_html: La cuenta será visible solo para quienes ya la siguen o la busquen manualmente, limitando severamente su alcance. Siempre puede ser revertido. Esto cierra todas las denuncias contra esta cuenta.
|
||||||
suspend_description_html: La cuenta y todos sus contenidos serán inaccesibles y finalmente eliminados, e interactuar con ella será imposible. Revertible en 30 días. Esto cierra todas las denuncias contra esta cuenta.
|
suspend_description_html: La cuenta y todos sus contenidos serán inaccesibles y finalmente eliminados, e interactuar con ella será imposible. Revertible en 30 días. Esto cierra todas las denuncias contra esta cuenta.
|
||||||
actions_description_html: Decidí qué medidas tomar para resolver esta denuncia. Si tomás una acción punitiva contra la cuenta denunciada, se le enviará a dicha cuenta una notificación por correo electrónico, excepto cuando se seleccione la categoría <strong>Spam</strong>.
|
actions_description_html: Decidí qué medidas tomar para resolver esta denuncia. Si tomás una acción punitiva contra la cuenta denunciada, se le enviará a dicha cuenta una notificación por correo electrónico, excepto cuando se seleccione la categoría <strong>Spam</strong>.
|
||||||
actions_description_remote_html: Decidí qué medidas tomar para resolver esta denuncia. Esto sólo afectará la forma en que <strong>tu servidor</strong> se comunica con esta cuenta remota y maneja su contenido.
|
actions_description_remote_html: Decidí qué medidas tomar para resolver esta denuncia. Esto solo afectará la forma en que <strong>tu servidor</strong> se comunica con esta cuenta remota y maneja su contenido.
|
||||||
actions_no_posts: Esta denuncia no tiene ningún mensaje asociado para eliminar
|
actions_no_posts: Esta denuncia no tiene ningún mensaje asociado para eliminar
|
||||||
add_to_report: Agregar más a la denuncia
|
add_to_report: Agregar más a la denuncia
|
||||||
already_suspended_badges:
|
already_suspended_badges:
|
||||||
local: Ya suspendido en este servidor
|
local: Ya suspendido en este servidor
|
||||||
remote: Ya suspendido en su servidor
|
remote: Ya suspendido en su servidor
|
||||||
are_you_sure: "¿Estás seguro?"
|
are_you_sure: "¿Continuar?"
|
||||||
assign_to_self: Asignármela a mí
|
assign_to_self: Asignármela a mí
|
||||||
assigned: Moderador asignado
|
assigned: Moderador asignado
|
||||||
by_target_domain: Dominio de la cuenta denunciada
|
by_target_domain: Dominio de la cuenta denunciada
|
||||||
@@ -738,7 +738,7 @@ es-AR:
|
|||||||
actions:
|
actions:
|
||||||
delete_html: Eliminar los mensajes ofensivos
|
delete_html: Eliminar los mensajes ofensivos
|
||||||
mark_as_sensitive_html: Marcar los mensajes ofensivos como sensibles
|
mark_as_sensitive_html: Marcar los mensajes ofensivos como sensibles
|
||||||
silence_html: Limitar severamente el alcance de <strong>@%{acct}</strong> haciendo que su perfil y contenido sólo sean visibles para las personas que ya lo siguen o que busquen manualmente su perfil
|
silence_html: Limitar severamente el alcance de <strong>@%{acct}</strong> haciendo que su perfil y contenido solo sean visibles para las personas que ya lo siguen o que busquen manualmente su perfil
|
||||||
suspend_html: Suspender <strong>@%{acct}</strong>, haciendo su perfil y contenido inaccesibles, e imposibilitando la interacción con la cuenta
|
suspend_html: Suspender <strong>@%{acct}</strong>, haciendo su perfil y contenido inaccesibles, e imposibilitando la interacción con la cuenta
|
||||||
close_report: 'Marcar denuncia #%{id} como resuelta'
|
close_report: 'Marcar denuncia #%{id} como resuelta'
|
||||||
close_reports_html: Marcar <strong>todas</strong> las denuncias contra <strong>@%{acct}</strong> como resueltas
|
close_reports_html: Marcar <strong>todas</strong> las denuncias contra <strong>@%{acct}</strong> como resueltas
|
||||||
@@ -1054,16 +1054,16 @@ es-AR:
|
|||||||
trends:
|
trends:
|
||||||
allow: Permitir
|
allow: Permitir
|
||||||
approved: Aprobadas
|
approved: Aprobadas
|
||||||
confirm_allow: "¿Estás seguro de que querés permitir las etiquetas seleccionadas?"
|
confirm_allow: "¿De verdad querés permitir las etiquetas seleccionadas?"
|
||||||
confirm_disallow: "¿Estás seguro de que no querés permitir las etiquetas seleccionadas?"
|
confirm_disallow: "¿De verdad no querés permitir las etiquetas seleccionadas?"
|
||||||
disallow: Rechazar
|
disallow: Rechazar
|
||||||
links:
|
links:
|
||||||
allow: Permitir enlace
|
allow: Permitir enlace
|
||||||
allow_provider: Permitir medio
|
allow_provider: Permitir medio
|
||||||
confirm_allow: "¿Estás seguro de que querés permitir los enlaces seleccionados?"
|
confirm_allow: "¿De verdad querés permitir los enlaces seleccionados?"
|
||||||
confirm_allow_provider: "¿Estás seguro de que querés permitir los proveedores seleccionados?"
|
confirm_allow_provider: "¿De verdad querés permitir los proveedores seleccionados?"
|
||||||
confirm_disallow: "¿Estás seguro de que no querés permitir los enlaces seleccionados?"
|
confirm_disallow: "¿De verdad no querés permitir los enlaces seleccionados?"
|
||||||
confirm_disallow_provider: "¿Estás seguro de que no querés permitir los proveedores seleccionados?"
|
confirm_disallow_provider: "¿De verdad no querés permitir los proveedores seleccionados?"
|
||||||
description_html: Estos son enlaces que actualmente están siendo muy compartidos por cuentas desde las que tu servidor ve los mensajes. Esto puede ayudar a tus usuarios a averiguar qué está pasando en el mundo. No hay enlaces que se muestren públicamente hasta que autoricés al publicador. También podés permitir o rechazar enlaces individuales.
|
description_html: Estos son enlaces que actualmente están siendo muy compartidos por cuentas desde las que tu servidor ve los mensajes. Esto puede ayudar a tus usuarios a averiguar qué está pasando en el mundo. No hay enlaces que se muestren públicamente hasta que autoricés al publicador. También podés permitir o rechazar enlaces individuales.
|
||||||
disallow: Rechazar enlace
|
disallow: Rechazar enlace
|
||||||
disallow_provider: Rechazar medio
|
disallow_provider: Rechazar medio
|
||||||
@@ -1076,7 +1076,7 @@ es-AR:
|
|||||||
title: Enlaces en tendencia
|
title: Enlaces en tendencia
|
||||||
usage_comparison: Compartido %{today} veces hoy, comparado con la/s %{yesterday} vez/veces de ayer
|
usage_comparison: Compartido %{today} veces hoy, comparado con la/s %{yesterday} vez/veces de ayer
|
||||||
not_allowed_to_trend: No se permite la tendencia
|
not_allowed_to_trend: No se permite la tendencia
|
||||||
only_allowed: Sólo permitidas
|
only_allowed: Solo permitidas
|
||||||
pending_review: Revisión pendiente
|
pending_review: Revisión pendiente
|
||||||
preview_card_providers:
|
preview_card_providers:
|
||||||
allowed: Los enlaces de este medio pueden ser tendencia
|
allowed: Los enlaces de este medio pueden ser tendencia
|
||||||
@@ -1087,10 +1087,10 @@ es-AR:
|
|||||||
statuses:
|
statuses:
|
||||||
allow: Permitir mensaje
|
allow: Permitir mensaje
|
||||||
allow_account: Permitir autor
|
allow_account: Permitir autor
|
||||||
confirm_allow: "¿Estás seguro de que querés permitir los estados seleccionados?"
|
confirm_allow: "¿De verdad querés permitir los estados seleccionados?"
|
||||||
confirm_allow_account: "¿Estás seguro de que querés permitir las cuentas seleccionadas?"
|
confirm_allow_account: "¿De verdad querés permitir las cuentas seleccionadas?"
|
||||||
confirm_disallow: "¿Estás seguro de que no querés permitir los estados seleccionados?"
|
confirm_disallow: "¿De verdad no querés permitir los estados seleccionados?"
|
||||||
confirm_disallow_account: "¿Estás seguro de que no querés permitir las cuentas seleccionadas?"
|
confirm_disallow_account: "¿De verdad no querés permitir las cuentas seleccionadas?"
|
||||||
description_html: Estos son mensajes que tu servidor detecta que están siendo compartidos y marcados como favoritos muchas veces en este momento. Esto puede ayudar a tus usuarios nuevos y retornantes a encontrar más cuentas para seguir. No hay mensajes que se muestren públicamente hasta que aprobés al autor, y el autor permita que su cuenta sea sugerida a otros. También podés permitir o rechazar mensajes individuales.
|
description_html: Estos son mensajes que tu servidor detecta que están siendo compartidos y marcados como favoritos muchas veces en este momento. Esto puede ayudar a tus usuarios nuevos y retornantes a encontrar más cuentas para seguir. No hay mensajes que se muestren públicamente hasta que aprobés al autor, y el autor permita que su cuenta sea sugerida a otros. También podés permitir o rechazar mensajes individuales.
|
||||||
disallow: Rechazar mensaje
|
disallow: Rechazar mensaje
|
||||||
disallow_account: Rechazar autor
|
disallow_account: Rechazar autor
|
||||||
@@ -1632,7 +1632,7 @@ es-AR:
|
|||||||
author_html: Por %{name}
|
author_html: Por %{name}
|
||||||
potentially_sensitive_content:
|
potentially_sensitive_content:
|
||||||
action: Clic para mostrar
|
action: Clic para mostrar
|
||||||
confirm_visit: "¿Está seguro de que querés abrir este enlace?"
|
confirm_visit: "¿De verdad querés abrir este enlace?"
|
||||||
hide_button: Ocultar
|
hide_button: Ocultar
|
||||||
label: Contenido potencialmente sensible
|
label: Contenido potencialmente sensible
|
||||||
lists:
|
lists:
|
||||||
@@ -1820,9 +1820,9 @@ es-AR:
|
|||||||
title: Estás dejando %{instance}.
|
title: Estás dejando %{instance}.
|
||||||
relationships:
|
relationships:
|
||||||
activity: Actividad de la cuenta
|
activity: Actividad de la cuenta
|
||||||
confirm_follow_selected_followers: "¿Estás seguro que querés seguir a los seguidores seleccionados?"
|
confirm_follow_selected_followers: "¿De verdad querés seguir a los seguidores seleccionados?"
|
||||||
confirm_remove_selected_followers: "¿Estás seguro que querés quitar a los seguidores seleccionados?"
|
confirm_remove_selected_followers: "¿De verdad querés quitar a los seguidores seleccionados?"
|
||||||
confirm_remove_selected_follows: "¿Estás seguro que querés quitar a las cuentas seguidas seleccionadas?"
|
confirm_remove_selected_follows: "¿De verdad querés quitar a las cuentas seguidas seleccionadas?"
|
||||||
dormant: Inactivas
|
dormant: Inactivas
|
||||||
follow_failure: No se pudieron seguir algunas de las cuentas seleccionadas.
|
follow_failure: No se pudieron seguir algunas de las cuentas seleccionadas.
|
||||||
follow_selected_followers: Seguir a los seguidores seleccionados
|
follow_selected_followers: Seguir a los seguidores seleccionados
|
||||||
@@ -1965,7 +1965,7 @@ es-AR:
|
|||||||
quoted_user_not_mentioned: No se puede citar a un usuario no mencionado en un mensaje de mención privada.
|
quoted_user_not_mentioned: No se puede citar a un usuario no mencionado en un mensaje de mención privada.
|
||||||
over_character_limit: se excedió el límite de %{max} caracteres
|
over_character_limit: se excedió el límite de %{max} caracteres
|
||||||
pin_errors:
|
pin_errors:
|
||||||
direct: Los mensajes que sólo son visibles para los usuarios mencionados no pueden ser fijados
|
direct: Los mensajes que solo son visibles para los usuarios mencionados no pueden ser fijados
|
||||||
limit: Ya fijaste el número máximo de mensajes
|
limit: Ya fijaste el número máximo de mensajes
|
||||||
ownership: No se puede fijar el mensaje de otra cuenta
|
ownership: No se puede fijar el mensaje de otra cuenta
|
||||||
reblog: No se puede fijar una adhesión
|
reblog: No se puede fijar una adhesión
|
||||||
@@ -2118,7 +2118,7 @@ es-AR:
|
|||||||
disable: Ya no podés usar tu cuenta, pero tu perfil y el resto de datos permanecen intactos. Podés solicitar una copia de seguridad de tus datos, cambiar la configuración de tu cuenta, o eliminarla.
|
disable: Ya no podés usar tu cuenta, pero tu perfil y el resto de datos permanecen intactos. Podés solicitar una copia de seguridad de tus datos, cambiar la configuración de tu cuenta, o eliminarla.
|
||||||
mark_statuses_as_sensitive: Algunos de tus mensajes fueron marcados como sensibles por los moderadores de %{instance}. Esto significa que la gente tendrá que hacer clic o darle un toque a los medios en los mensajes antes de que se muestre una vista previa. Podés marcar los medios como sensibles vos mismo cuando publiqués en el futuro.
|
mark_statuses_as_sensitive: Algunos de tus mensajes fueron marcados como sensibles por los moderadores de %{instance}. Esto significa que la gente tendrá que hacer clic o darle un toque a los medios en los mensajes antes de que se muestre una vista previa. Podés marcar los medios como sensibles vos mismo cuando publiqués en el futuro.
|
||||||
sensitive: A partir de ahora, todos tus archivos subidos serán marcados como sensibles y ocultos tras una advertencia en la que habrá que hacer clic.
|
sensitive: A partir de ahora, todos tus archivos subidos serán marcados como sensibles y ocultos tras una advertencia en la que habrá que hacer clic.
|
||||||
silence: Todavía podés usar tu cuenta, pero sólo las personas que te están siguiendo verán tus publicaciones en este servidor, y podrías ser excluido de varias funciones de descubrimiento. Sin embargo, otras cuentas podrán seguirte manualmente.
|
silence: Todavía podés usar tu cuenta, pero solo las personas que te están siguiendo verán tus publicaciones en este servidor, y podrías ser excluido de varias funciones de descubrimiento. Sin embargo, otras cuentas podrán seguirte manualmente.
|
||||||
suspend: Ya no podés usar tu cuenta, y tu perfil y el resto de datos ya no son accesibles. Todavía podés iniciar sesión para solicitar una copia de seguridad de tus datos, hasta que estos sean eliminados por completo en unos 30 días, aunque conservaremos algunos datos básicos para impedir que esquivés la suspensión.
|
suspend: Ya no podés usar tu cuenta, y tu perfil y el resto de datos ya no son accesibles. Todavía podés iniciar sesión para solicitar una copia de seguridad de tus datos, hasta que estos sean eliminados por completo en unos 30 días, aunque conservaremos algunos datos básicos para impedir que esquivés la suspensión.
|
||||||
reason: 'Motivo:'
|
reason: 'Motivo:'
|
||||||
statuses: 'Mensajes citados:'
|
statuses: 'Mensajes citados:'
|
||||||
@@ -2200,7 +2200,7 @@ es-AR:
|
|||||||
error: Hubo un problema al agregar tu llave de seguridad. Por favor, intentá de nuevo.
|
error: Hubo un problema al agregar tu llave de seguridad. Por favor, intentá de nuevo.
|
||||||
success: Se agregó exitosamente tu llave de seguridad.
|
success: Se agregó exitosamente tu llave de seguridad.
|
||||||
delete: Eliminar
|
delete: Eliminar
|
||||||
delete_confirmation: "¿Estás seguro que querés eliminar esta llave de seguridad?"
|
delete_confirmation: "¿De verdad querés eliminar esta llave de seguridad?"
|
||||||
description_html: Si habilitás la <strong>autenticación de llave de seguridad</strong>, entonces en el inicio de sesión se te pedirá que usés una de tus llaves de seguridad.
|
description_html: Si habilitás la <strong>autenticación de llave de seguridad</strong>, entonces en el inicio de sesión se te pedirá que usés una de tus llaves de seguridad.
|
||||||
destroy:
|
destroy:
|
||||||
error: Hubo un problema al eliminar tu llave de seguridad. Por favor, intentá de nuevo.
|
error: Hubo un problema al eliminar tu llave de seguridad. Por favor, intentá de nuevo.
|
||||||
|
|||||||
@@ -31,13 +31,13 @@ es-AR:
|
|||||||
suspend: Evitá cualquier interacción desde o hacia esta cuenta y eliminá su contenido. Revertible en 30 días. Esto cierra todas las denuncias contra esta cuenta.
|
suspend: Evitá cualquier interacción desde o hacia esta cuenta y eliminá su contenido. Revertible en 30 días. Esto cierra todas las denuncias contra esta cuenta.
|
||||||
warning_preset_id: Opcional. Todavía podés agregar texto personalizado al final del preajuste
|
warning_preset_id: Opcional. Todavía podés agregar texto personalizado al final del preajuste
|
||||||
announcement:
|
announcement:
|
||||||
all_day: Cuando esté seleccionado, sólo se mostrarán las fechas del rango de tiempo
|
all_day: Cuando esté seleccionado, solo se mostrarán las fechas del rango de tiempo
|
||||||
ends_at: Opcional. El anuncio desaparecerá automáticamente en este momento
|
ends_at: Opcional. El anuncio desaparecerá automáticamente en este momento
|
||||||
scheduled_at: Dejar en blanco para publicar el anuncio inmediatamente
|
scheduled_at: Dejar en blanco para publicar el anuncio inmediatamente
|
||||||
starts_at: Opcional. En caso de que tu anuncio esté vinculado a un rango de tiempo específico
|
starts_at: Opcional. En caso de que tu anuncio esté vinculado a un rango de tiempo específico
|
||||||
text: Podés usar sintaxis de mensajes. Por favor, tené en cuenta el espacio que ocupará el anuncio en la pantalla del usuario
|
text: Podés usar sintaxis de mensajes. Por favor, tené en cuenta el espacio que ocupará el anuncio en la pantalla del usuario
|
||||||
appeal:
|
appeal:
|
||||||
text: Sólo podés apelar un incumplimiento una vez
|
text: Solo podés apelar un incumplimiento una vez
|
||||||
defaults:
|
defaults:
|
||||||
autofollow: Los usuarios que se registren mediante la invitación te seguirán automáticamente
|
autofollow: Los usuarios que se registren mediante la invitación te seguirán automáticamente
|
||||||
avatar: WEBP, PNG, GIF o JPG. Máximo %{size}. Será escalado a %{dimensions}px
|
avatar: WEBP, PNG, GIF o JPG. Máximo %{size}. Será escalado a %{dimensions}px
|
||||||
@@ -45,7 +45,7 @@ es-AR:
|
|||||||
context: Uno o múltiples contextos en los que debe aplicarse el filtro
|
context: Uno o múltiples contextos en los que debe aplicarse el filtro
|
||||||
current_password: Por razones de seguridad, por favor, ingresá la contraseña de la cuenta actual
|
current_password: Por razones de seguridad, por favor, ingresá la contraseña de la cuenta actual
|
||||||
current_username: Para confirmar, por favor, ingresá el nombre de usuario de la cuenta actual
|
current_username: Para confirmar, por favor, ingresá el nombre de usuario de la cuenta actual
|
||||||
digest: Sólo enviado tras un largo periodo de inactividad, y sólo si recibiste mensajes personales en tu ausencia
|
digest: Solo enviado tras un largo periodo de inactividad, y solo si recibiste mensajes personales en tu ausencia
|
||||||
email: Se te enviará un correo electrónico de confirmación
|
email: Se te enviará un correo electrónico de confirmación
|
||||||
header: WEBP, PNG, GIF o JPG. Máximo %{size}. Será escalado a %{dimensions}px
|
header: WEBP, PNG, GIF o JPG. Máximo %{size}. Será escalado a %{dimensions}px
|
||||||
inbox_url: Copiá la dirección web desde la página principal del relé que querés usar
|
inbox_url: Copiá la dirección web desde la página principal del relé que querés usar
|
||||||
@@ -55,7 +55,7 @@ es-AR:
|
|||||||
phrase: Se aplicará sin importar las mayúsculas o las advertencias de contenido de un mensaje
|
phrase: Se aplicará sin importar las mayúsculas o las advertencias de contenido de un mensaje
|
||||||
scopes: Qué APIs de la aplicación tendrán acceso. Si seleccionás el alcance de nivel más alto, no necesitás seleccionar las individuales.
|
scopes: Qué APIs de la aplicación tendrán acceso. Si seleccionás el alcance de nivel más alto, no necesitás seleccionar las individuales.
|
||||||
setting_advanced_layout: Mostrar Mastodon como una disposición de varias columnas, permitiéndote ver la línea temporal, las notificaciones y una tercera columna de tu elección. No recomendado para pantallas pequeñas.
|
setting_advanced_layout: Mostrar Mastodon como una disposición de varias columnas, permitiéndote ver la línea temporal, las notificaciones y una tercera columna de tu elección. No recomendado para pantallas pequeñas.
|
||||||
setting_aggregate_reblogs: No mostrar nuevas adhesiones de los mensajes que fueron recientemente adheridos (sólo afecta a las adhesiones recibidas recientemente)
|
setting_aggregate_reblogs: No mostrar nuevas adhesiones de los mensajes que fueron recientemente adheridos (solo afecta a las adhesiones recibidas recientemente)
|
||||||
setting_always_send_emails: Normalmente las notificaciones por correo electrónico no se enviarán cuando estés usando Mastodon activamente
|
setting_always_send_emails: Normalmente las notificaciones por correo electrónico no se enviarán cuando estés usando Mastodon activamente
|
||||||
setting_boost_modal: Al estar activado, la adhesión abrirá primero un diálogo de confirmación en el que podés cambiar su visibilidad.
|
setting_boost_modal: Al estar activado, la adhesión abrirá primero un diálogo de confirmación en el que podés cambiar su visibilidad.
|
||||||
setting_default_quote_policy_private: Los mensajes solo para seguidores redactados en Mastodon no pueden ser citados por otras cuentas.
|
setting_default_quote_policy_private: Los mensajes solo para seguidores redactados en Mastodon no pueden ser citados por otras cuentas.
|
||||||
@@ -70,7 +70,7 @@ es-AR:
|
|||||||
setting_use_blurhash: Los gradientes se basan en los colores de las imágenes ocultas pero haciendo borrosos los detalles
|
setting_use_blurhash: Los gradientes se basan en los colores de las imágenes ocultas pero haciendo borrosos los detalles
|
||||||
setting_use_pending_items: Ocultar actualizaciones de la línea temporal detrás de un clic en lugar de desplazar automáticamente el flujo
|
setting_use_pending_items: Ocultar actualizaciones de la línea temporal detrás de un clic en lugar de desplazar automáticamente el flujo
|
||||||
username: Podés usar letras, números y subguiones ("_")
|
username: Podés usar letras, números y subguiones ("_")
|
||||||
whole_word: Cuando la palabra clave o frase es sólo alfanumérica, sólo será aplicado si coincide con toda la palabra
|
whole_word: Cuando la palabra clave o frase sea solo alfanumérica, solamente será aplicado si coincide con toda la palabra
|
||||||
domain_allow:
|
domain_allow:
|
||||||
domain: Este dominio podrá recolectar datos de este servidor, y los datos entrantes serán procesados y archivados
|
domain: Este dominio podrá recolectar datos de este servidor, y los datos entrantes serán procesados y archivados
|
||||||
email_domain_block:
|
email_domain_block:
|
||||||
@@ -97,7 +97,7 @@ es-AR:
|
|||||||
mascot: Reemplaza la ilustración en la interface web avanzada.
|
mascot: Reemplaza la ilustración en la interface web avanzada.
|
||||||
media_cache_retention_period: Los archivos de medios de mensajes publicados por usuarios remotos se almacenan en la memoria caché en tu servidor. Cuando se establece un valor positivo, los medios se eliminarán después del número especificado de días. Si los datos multimedia se solicitan después de eliminarse, se volverán a descargar, si es que el contenido fuente todavía está disponible. Debido a restricciones en la frecuencia con la que las tarjetas de previsualización de enlace consultan a sitios web de terceros, se recomienda establecer este valor a, al menos, 14 días, o las tarjetas de previsualización de enlaces no se actualizarán a pedido antes de ese momento.
|
media_cache_retention_period: Los archivos de medios de mensajes publicados por usuarios remotos se almacenan en la memoria caché en tu servidor. Cuando se establece un valor positivo, los medios se eliminarán después del número especificado de días. Si los datos multimedia se solicitan después de eliminarse, se volverán a descargar, si es que el contenido fuente todavía está disponible. Debido a restricciones en la frecuencia con la que las tarjetas de previsualización de enlace consultan a sitios web de terceros, se recomienda establecer este valor a, al menos, 14 días, o las tarjetas de previsualización de enlaces no se actualizarán a pedido antes de ese momento.
|
||||||
min_age: Se pedirá a los usuarios que confirmen su fecha de nacimiento durante el registro
|
min_age: Se pedirá a los usuarios que confirmen su fecha de nacimiento durante el registro
|
||||||
peers_api_enabled: Una lista de nombres de dominio que este servidor ha encontrado en el Fediverso. Acá no se incluye ningún dato sobre si federás con un servidor determinado, sólo que tu servidor lo conoce. Esto es usado por los servicios que recopilan estadísticas sobre la federación en un sentido general.
|
peers_api_enabled: Una lista de nombres de dominio que este servidor ha encontrado en el Fediverso. Acá no se incluye ningún dato sobre si federás con un servidor determinado, solo que tu servidor lo conoce. Esto es usado por los servicios que recopilan estadísticas sobre la federación en un sentido general.
|
||||||
profile_directory: El directorio de perfiles lista a todos los usuarios que han optado a que su cuenta pueda ser descubierta.
|
profile_directory: El directorio de perfiles lista a todos los usuarios que han optado a que su cuenta pueda ser descubierta.
|
||||||
require_invite_text: Cuando registros aprobación manual, hacé que la solicitud de invitación "¿Por qué querés unirte?" sea obligatoria, en vez de opcional
|
require_invite_text: Cuando registros aprobación manual, hacé que la solicitud de invitación "¿Por qué querés unirte?" sea obligatoria, en vez de opcional
|
||||||
site_contact_email: Cómo la gente puede estar en contacto con vos para consultas legales o de ayuda.
|
site_contact_email: Cómo la gente puede estar en contacto con vos para consultas legales o de ayuda.
|
||||||
@@ -137,7 +137,7 @@ es-AR:
|
|||||||
indexable: Tu página de perfil podría aparecer en los resultados de búsqueda en Google, Bing y otros motores de búsqueda.
|
indexable: Tu página de perfil podría aparecer en los resultados de búsqueda en Google, Bing y otros motores de búsqueda.
|
||||||
show_application: Sin embargo, siempre podrás ver desde qué aplicación se envió tu mensaje.
|
show_application: Sin embargo, siempre podrás ver desde qué aplicación se envió tu mensaje.
|
||||||
tag:
|
tag:
|
||||||
name: Sólo podés cambiar la capitalización de las letras, por ejemplo, para que sea más legible
|
name: Solo podés cambiar la capitalización de las letras, por ejemplo, para que sea más legible
|
||||||
terms_of_service:
|
terms_of_service:
|
||||||
changelog: Se puede estructurar con sintaxis Markdown.
|
changelog: Se puede estructurar con sintaxis Markdown.
|
||||||
effective_date: Un plazo razonable puede oscilar entre 10 y 30 días a partir de la fecha de notificación a tus usuarios.
|
effective_date: Un plazo razonable puede oscilar entre 10 y 30 días a partir de la fecha de notificación a tus usuarios.
|
||||||
@@ -153,7 +153,7 @@ es-AR:
|
|||||||
jurisdiction: Listá el país donde vive quien paga las facturas. Si es una empresa u otra entidad, enumerá el país donde está basada y la ciudad, región, territorio o provincia/estado, según corresponda.
|
jurisdiction: Listá el país donde vive quien paga las facturas. Si es una empresa u otra entidad, enumerá el país donde está basada y la ciudad, región, territorio o provincia/estado, según corresponda.
|
||||||
min_age: No debería estar por debajo de la edad mínima requerida por las leyes de su jurisdicción.
|
min_age: No debería estar por debajo de la edad mínima requerida por las leyes de su jurisdicción.
|
||||||
user:
|
user:
|
||||||
chosen_languages: Cuando estén marcados, sólo se mostrarán los mensajes en los idiomas seleccionados en las líneas temporales públicas
|
chosen_languages: Cuando estén marcados, solo se mostrarán los mensajes en los idiomas seleccionados en las líneas temporales públicas
|
||||||
date_of_birth:
|
date_of_birth:
|
||||||
one: Tenemos que asegurarnos de que al menos tenés %{count} años de edad para usar %{domain}. No almacenaremos esta información.
|
one: Tenemos que asegurarnos de que al menos tenés %{count} años de edad para usar %{domain}. No almacenaremos esta información.
|
||||||
other: Tenemos que asegurarnos de que al menos tenés %{count} años de edad para usar %{domain}. No almacenaremos esta información.
|
other: Tenemos que asegurarnos de que al menos tenés %{count} años de edad para usar %{domain}. No almacenaremos esta información.
|
||||||
@@ -163,7 +163,7 @@ es-AR:
|
|||||||
highlighted: Esto hace que el rol sea públicamente visible
|
highlighted: Esto hace que el rol sea públicamente visible
|
||||||
name: Nombre público del rol, si el rol se establece para que se muestre como una insignia
|
name: Nombre público del rol, si el rol se establece para que se muestre como una insignia
|
||||||
permissions_as_keys: Los usuarios con este rol tendrán acceso a…
|
permissions_as_keys: Los usuarios con este rol tendrán acceso a…
|
||||||
position: Un rol más alto decide la resolución de conflictos en ciertas situaciones. Ciertas acciones sólo pueden llevarse a cabo en roles con prioridad inferior
|
position: Un rol más alto decide la resolución de conflictos en ciertas situaciones. Ciertas acciones solo pueden llevarse a cabo en roles con prioridad inferior
|
||||||
require_2fa: Los usuarios con este rol serán requeridos para configurar la autenticación de dos factores para usar Mastodon
|
require_2fa: Los usuarios con este rol serán requeridos para configurar la autenticación de dos factores para usar Mastodon
|
||||||
username_block:
|
username_block:
|
||||||
allow_with_approval: En lugar de impedir el registro total, los registros coincidentes requerirán tu aprobación
|
allow_with_approval: En lugar de impedir el registro total, los registros coincidentes requerirán tu aprobación
|
||||||
|
|||||||
@@ -496,7 +496,7 @@ zh-CN:
|
|||||||
debug:
|
debug:
|
||||||
callbacks:
|
callbacks:
|
||||||
created_at: 创建于
|
created_at: 创建于
|
||||||
delete: 刪除
|
delete: 删除
|
||||||
ip: IP 地址
|
ip: IP 地址
|
||||||
request_body: 请求正文
|
request_body: 请求正文
|
||||||
title: 调试回调
|
title: 调试回调
|
||||||
@@ -504,7 +504,7 @@ zh-CN:
|
|||||||
active: 有效
|
active: 有效
|
||||||
base_url: 基础 URL
|
base_url: 基础 URL
|
||||||
callback: 回调
|
callback: 回调
|
||||||
delete: 刪除
|
delete: 删除
|
||||||
edit: 编辑提供商
|
edit: 编辑提供商
|
||||||
finish_registration: 完成注册
|
finish_registration: 完成注册
|
||||||
name: 名称
|
name: 名称
|
||||||
@@ -930,7 +930,7 @@ zh-CN:
|
|||||||
with_media: 含有媒体文件
|
with_media: 含有媒体文件
|
||||||
strikes:
|
strikes:
|
||||||
actions:
|
actions:
|
||||||
delete_statuses: "%{name} 刪除了 %{target} 的嘟文"
|
delete_statuses: "%{name} 删除了 %{target} 的嘟文"
|
||||||
disable: "%{name} 冻结了用户 %{target}"
|
disable: "%{name} 冻结了用户 %{target}"
|
||||||
mark_statuses_as_sensitive: "%{name} 已将 %{target} 的嘟文标记为敏感内容"
|
mark_statuses_as_sensitive: "%{name} 已将 %{target} 的嘟文标记为敏感内容"
|
||||||
none: "%{name} 向 %{target} 发送了警告"
|
none: "%{name} 向 %{target} 发送了警告"
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ class RejectFollowingBlockedUsers < ActiveRecord::Migration[5.2]
|
|||||||
|
|
||||||
next follow.destroy! if blocked_account.local?
|
next follow.destroy! if blocked_account.local?
|
||||||
|
|
||||||
reject_follow_json = Oj.dump(ActivityPub::LinkedDataSignature.new(ActiveModelSerializers::SerializableResource.new(follow, serializer: ActivityPub::RejectFollowSerializer, adapter: ActivityPub::Adapter).as_json).sign!(followed_account))
|
reject_follow_json = JSON.generate(ActivityPub::LinkedDataSignature.new(ActiveModelSerializers::SerializableResource.new(follow, serializer: ActivityPub::RejectFollowSerializer, adapter: ActivityPub::Adapter).as_json).sign!(followed_account))
|
||||||
|
|
||||||
ActivityPub::DeliveryWorker.perform_async(reject_follow_json, followed_account, blocked_account.inbox_url)
|
ActivityPub::DeliveryWorker.perform_async(reject_follow_json, followed_account, blocked_account.inbox_url)
|
||||||
|
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ class MoveUserSettings < ActiveRecord::Migration[6.1]
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
user.update_column('settings', Oj.dump(user_settings))
|
user.update_column('settings', JSON.generate(user_settings))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ class MigrateInteractionSettingsToPolicy < ActiveRecord::Migration[7.1]
|
|||||||
private
|
private
|
||||||
|
|
||||||
def policy_for_user(user)
|
def policy_for_user(user)
|
||||||
deserialized_settings = Oj.load(user.attributes_before_type_cast['settings'])
|
deserialized_settings = JSON.parse(user.attributes_before_type_cast['settings'])
|
||||||
return if deserialized_settings.nil?
|
return if deserialized_settings.nil?
|
||||||
|
|
||||||
requires_new_policy = false
|
requires_new_policy = false
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ class FillDefaultQuotePolicySetting < ActiveRecord::Migration[8.0]
|
|||||||
|
|
||||||
def up
|
def up
|
||||||
User.where.not(settings: nil).find_each do |user|
|
User.where.not(settings: nil).find_each do |user|
|
||||||
settings = Oj.load(user.attributes_before_type_cast['settings'])
|
settings = JSON.parse(user.attributes_before_type_cast['settings'])
|
||||||
next if settings.nil?
|
next if settings.nil?
|
||||||
|
|
||||||
should_update_settings = false
|
should_update_settings = false
|
||||||
@@ -26,7 +26,7 @@ class FillDefaultQuotePolicySetting < ActiveRecord::Migration[8.0]
|
|||||||
should_update_settings = true
|
should_update_settings = true
|
||||||
end
|
end
|
||||||
|
|
||||||
user.update_column('settings', Oj.dump(settings)) if should_update_settings
|
user.update_column('settings', JSON.generate(settings)) if should_update_settings
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ class MigrateUserTheme < ActiveRecord::Migration[8.0]
|
|||||||
|
|
||||||
def up
|
def up
|
||||||
User.where.not(settings: nil).find_each do |user|
|
User.where.not(settings: nil).find_each do |user|
|
||||||
settings = Oj.load(user.attributes_before_type_cast['settings'])
|
settings = JSON.parse(user.attributes_before_type_cast['settings'])
|
||||||
next if settings.nil? || settings['theme'].blank? || %w(system default mastodon-light contrast).exclude?(settings['theme'])
|
next if settings.nil? || settings['theme'].blank? || %w(system default mastodon-light contrast).exclude?(settings['theme'])
|
||||||
|
|
||||||
case settings['theme']
|
case settings['theme']
|
||||||
@@ -25,7 +25,7 @@ class MigrateUserTheme < ActiveRecord::Migration[8.0]
|
|||||||
|
|
||||||
settings['theme'] = 'default'
|
settings['theme'] = 'default'
|
||||||
|
|
||||||
user.update_column('settings', Oj.dump(settings))
|
user.update_column('settings', JSON.generate(settings))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -11,11 +11,11 @@ class FixKmrLocaleSettings < ActiveRecord::Migration[7.0]
|
|||||||
MigrationUser.reset_column_information
|
MigrationUser.reset_column_information
|
||||||
|
|
||||||
MigrationUser.where.not(settings: [nil, '{}']).find_each do |user|
|
MigrationUser.where.not(settings: [nil, '{}']).find_each do |user|
|
||||||
user_settings = Oj.load(user.settings)
|
user_settings = JSON.parse(user.settings)
|
||||||
next unless user_settings['default_language'] == 'kmr'
|
next unless user_settings['default_language'] == 'kmr'
|
||||||
|
|
||||||
user_settings['default_language'] = 'ku'
|
user_settings['default_language'] = 'ku'
|
||||||
user.update!(settings: Oj.dump(user_settings))
|
user.update!(settings: JSON.generate(user_settings))
|
||||||
end
|
end
|
||||||
|
|
||||||
MigrationUser.where.not(chosen_languages: nil).where('chosen_languages && ?', '{kmr}').find_each do |user|
|
MigrationUser.where.not(chosen_languages: nil).where('chosen_languages && ?', '{kmr}').find_each do |user|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ class MigrateInteractionSettingsToPolicyAgain < ActiveRecord::Migration[7.1]
|
|||||||
private
|
private
|
||||||
|
|
||||||
def policy_for_user(user)
|
def policy_for_user(user)
|
||||||
deserialized_settings = Oj.load(user.attributes_before_type_cast['settings'])
|
deserialized_settings = JSON.parse(user.attributes_before_type_cast['settings'])
|
||||||
return if deserialized_settings.nil?
|
return if deserialized_settings.nil?
|
||||||
return if user.notification_policy.present?
|
return if user.notification_policy.present?
|
||||||
|
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ namespace :emojis do
|
|||||||
|
|
||||||
map = map.sort { |a, b| a[0].size <=> b[0].size }.to_h
|
map = map.sort { |a, b| a[0].size <=> b[0].size }.to_h
|
||||||
|
|
||||||
File.write(dest, Oj.dump(map))
|
File.write(dest, JSON.dump(map))
|
||||||
puts "Wrote emojo to destination! (#{dest})"
|
puts "Wrote emojo to destination! (#{dest})"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -112,6 +112,11 @@ RSpec.describe JsonLdHelper do
|
|||||||
expect(fetch_resource_without_id_validation('https://host.test/')).to be_nil
|
expect(fetch_resource_without_id_validation('https://host.test/')).to be_nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'returns nil if the body is not parsable' do
|
||||||
|
stub_request(:get, 'https://host.test/').to_return(status: 200, body: 'XXX', headers: { 'Content-Type': 'application/activity+json' })
|
||||||
|
expect(fetch_resource_without_id_validation('https://host.test/')).to be_nil
|
||||||
|
end
|
||||||
|
|
||||||
it 'returns hash' do
|
it 'returns hash' do
|
||||||
stub_request(:get, 'https://host.test/').to_return(status: 200, body: '{}', headers: { 'Content-Type': 'application/activity+json' })
|
stub_request(:get, 'https://host.test/').to_return(status: 200, body: '{}', headers: { 'Content-Type': 'application/activity+json' })
|
||||||
expect(fetch_resource_without_id_validation('https://host.test/')).to eq({})
|
expect(fetch_resource_without_id_validation('https://host.test/')).to eq({})
|
||||||
|
|||||||
@@ -19,6 +19,19 @@ RSpec.describe TranslationService::DeepL do
|
|||||||
end
|
end
|
||||||
|
|
||||||
describe '#translate' do
|
describe '#translate' do
|
||||||
|
context 'with invalid body response' do
|
||||||
|
before do
|
||||||
|
stub_request(:post, 'https://api.deepl.com/v2/translate')
|
||||||
|
.with(body: 'text=Hasta+la+vista&source_lang=ES&target_lang=en&tag_handling=html')
|
||||||
|
.to_return(body: 'XXX')
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'handles error and re-raises' do
|
||||||
|
expect { service.translate(['Hasta la vista'], 'es', 'en') }
|
||||||
|
.to raise_error(TranslationService::UnexpectedResponseError)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
it 'returns translation with specified source language' do
|
it 'returns translation with specified source language' do
|
||||||
stub_request(:post, 'https://api.deepl.com/v2/translate')
|
stub_request(:post, 'https://api.deepl.com/v2/translate')
|
||||||
.with(body: 'text=Hasta+la+vista&source_lang=ES&target_lang=en&tag_handling=html')
|
.with(body: 'text=Hasta+la+vista&source_lang=ES&target_lang=en&tag_handling=html')
|
||||||
|
|||||||
@@ -29,6 +29,19 @@ RSpec.describe TranslationService::LibreTranslate do
|
|||||||
end
|
end
|
||||||
|
|
||||||
describe '#translate' do
|
describe '#translate' do
|
||||||
|
context 'with invalid body response' do
|
||||||
|
before do
|
||||||
|
stub_request(:post, 'https://libretranslate.example.com/translate')
|
||||||
|
.with(body: '{"q":["Hasta la vista"],"source":"es","target":"en","format":"html","api_key":"my-api-key"}')
|
||||||
|
.to_return(body: 'XXX')
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'handles error and re-raises' do
|
||||||
|
expect { service.translate(['Hasta la vista'], 'es', 'en') }
|
||||||
|
.to raise_error(TranslationService::UnexpectedResponseError)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
it 'returns translation with specified source language' do
|
it 'returns translation with specified source language' do
|
||||||
stub_request(:post, 'https://libretranslate.example.com/translate')
|
stub_request(:post, 'https://libretranslate.example.com/translate')
|
||||||
.with(body: '{"q":["Hasta la vista"],"source":"es","target":"en","format":"html","api_key":"my-api-key"}')
|
.with(body: '{"q":["Hasta la vista"],"source":"es","target":"en","format":"html","api_key":"my-api-key"}')
|
||||||
|
|||||||
@@ -37,6 +37,16 @@ RSpec.describe Webfinger do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'when response body is not parsable' do
|
||||||
|
it 'raises an error' do
|
||||||
|
stub_request(:get, 'https://example.com/.well-known/webfinger?resource=acct:alice@example.com')
|
||||||
|
.to_return(body: 'XXX', headers: { 'Content-Type': 'application/jrd+json' })
|
||||||
|
|
||||||
|
expect { subject }
|
||||||
|
.to raise_error(Webfinger::Error)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context 'when webfinger fails and host meta is used' do
|
context 'when webfinger fails and host meta is used' do
|
||||||
before { stub_request(:get, 'https://example.com/.well-known/webfinger?resource=acct:alice@example.com').to_return(status: 404) }
|
before { stub_request(:get, 'https://example.com/.well-known/webfinger?resource=acct:alice@example.com').to_return(status: 404) }
|
||||||
|
|
||||||
|
|||||||
@@ -1,24 +1,24 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
RSpec.shared_examples 'AccountAvatar' do |fabricator|
|
RSpec.describe Account::Avatar do
|
||||||
describe 'static avatars', :attachment_processing do
|
describe 'static avatars', :attachment_processing do
|
||||||
describe 'with a square GIF' do
|
describe 'with a square GIF' do
|
||||||
it 'creates a png static style' do
|
it 'creates a png static style' do
|
||||||
account = Fabricate(fabricator, avatar: attachment_fixture('avatar.gif'))
|
account = Fabricate(:account, avatar: attachment_fixture('avatar.gif'))
|
||||||
expect(account.avatar_static_url).to_not eq account.avatar_original_url
|
expect(account.avatar_static_url).to_not eq account.avatar_original_url
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'with a higher-than-wide GIF' do
|
describe 'with a higher-than-wide GIF' do
|
||||||
it 'creates a png static style' do
|
it 'creates a png static style' do
|
||||||
account = Fabricate(fabricator, avatar: attachment_fixture('avatar-high.gif'))
|
account = Fabricate(:account, avatar: attachment_fixture('avatar-high.gif'))
|
||||||
expect(account.avatar_static_url).to_not eq account.avatar_original_url
|
expect(account.avatar_static_url).to_not eq account.avatar_original_url
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'when non-GIF' do
|
describe 'when non-GIF' do
|
||||||
it 'does not create extra static style' do
|
it 'does not create extra static style' do
|
||||||
account = Fabricate(fabricator, avatar: attachment_fixture('attachment.jpg'))
|
account = Fabricate(:account, avatar: attachment_fixture('attachment.jpg'))
|
||||||
expect(account.avatar_static_url).to eq account.avatar_original_url
|
expect(account.avatar_static_url).to eq account.avatar_original_url
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -26,7 +26,7 @@ RSpec.shared_examples 'AccountAvatar' do |fabricator|
|
|||||||
|
|
||||||
describe 'base64-encoded files', :attachment_processing do
|
describe 'base64-encoded files', :attachment_processing do
|
||||||
let(:base64_attachment) { "data:image/jpeg;base64,#{Base64.encode64(attachment_fixture('attachment.jpg').read)}" }
|
let(:base64_attachment) { "data:image/jpeg;base64,#{Base64.encode64(attachment_fixture('attachment.jpg').read)}" }
|
||||||
let(:account) { Fabricate(fabricator, avatar: base64_attachment) }
|
let(:account) { Fabricate(:account, avatar: base64_attachment) }
|
||||||
|
|
||||||
it 'saves avatar' do
|
it 'saves avatar' do
|
||||||
expect(account.persisted?).to be true
|
expect(account.persisted?).to be true
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
RSpec.shared_examples 'AccountHeader' do |fabricator|
|
RSpec.describe Account::Header do
|
||||||
describe 'base64-encoded files', :attachment_processing do
|
describe 'base64-encoded files', :attachment_processing do
|
||||||
let(:base64_attachment) { "data:image/jpeg;base64,#{Base64.encode64(attachment_fixture('attachment.jpg').read)}" }
|
let(:base64_attachment) { "data:image/jpeg;base64,#{Base64.encode64(attachment_fixture('attachment.jpg').read)}" }
|
||||||
let(:account) { Fabricate(fabricator, header: base64_attachment) }
|
let(:account) { Fabricate(:account, header: base64_attachment) }
|
||||||
|
|
||||||
it 'saves header' do
|
it 'saves header' do
|
||||||
expect(account.persisted?).to be true
|
expect(account.persisted?).to be true
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
RSpec.shared_examples 'Account::Search' do
|
RSpec.describe Account::Search do
|
||||||
describe '.search_for' do
|
describe '.search_for' do
|
||||||
before do
|
before do
|
||||||
_missing = Fabricate(
|
_missing = Fabricate(
|
||||||
@@ -20,7 +20,7 @@ RSpec.shared_examples 'Account::Search' do
|
|||||||
suspended: true
|
suspended: true
|
||||||
)
|
)
|
||||||
|
|
||||||
results = described_class.search_for('username')
|
results = Account.search_for('username')
|
||||||
expect(results).to eq []
|
expect(results).to eq []
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -33,7 +33,7 @@ RSpec.shared_examples 'Account::Search' do
|
|||||||
|
|
||||||
match.user.update(approved: false)
|
match.user.update(approved: false)
|
||||||
|
|
||||||
results = described_class.search_for('username')
|
results = Account.search_for('username')
|
||||||
expect(results).to eq []
|
expect(results).to eq []
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -46,7 +46,7 @@ RSpec.shared_examples 'Account::Search' do
|
|||||||
|
|
||||||
match.user.update(confirmed_at: nil)
|
match.user.update(confirmed_at: nil)
|
||||||
|
|
||||||
results = described_class.search_for('username')
|
results = Account.search_for('username')
|
||||||
expect(results).to eq []
|
expect(results).to eq []
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -58,7 +58,7 @@ RSpec.shared_examples 'Account::Search' do
|
|||||||
domain: 'example.com'
|
domain: 'example.com'
|
||||||
)
|
)
|
||||||
|
|
||||||
results = described_class.search_for('A?l\i:c e')
|
results = Account.search_for('A?l\i:c e')
|
||||||
expect(results).to eq [match]
|
expect(results).to eq [match]
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -70,7 +70,7 @@ RSpec.shared_examples 'Account::Search' do
|
|||||||
domain: 'example.com'
|
domain: 'example.com'
|
||||||
)
|
)
|
||||||
|
|
||||||
results = described_class.search_for('display')
|
results = Account.search_for('display')
|
||||||
expect(results).to eq [match]
|
expect(results).to eq [match]
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -82,7 +82,7 @@ RSpec.shared_examples 'Account::Search' do
|
|||||||
domain: 'example.com'
|
domain: 'example.com'
|
||||||
)
|
)
|
||||||
|
|
||||||
results = described_class.search_for('username')
|
results = Account.search_for('username')
|
||||||
expect(results).to eq [match]
|
expect(results).to eq [match]
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -94,20 +94,20 @@ RSpec.shared_examples 'Account::Search' do
|
|||||||
domain: 'example.com'
|
domain: 'example.com'
|
||||||
)
|
)
|
||||||
|
|
||||||
results = described_class.search_for('example')
|
results = Account.search_for('example')
|
||||||
expect(results).to eq [match]
|
expect(results).to eq [match]
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'limits via constant by default' do
|
it 'limits via constant by default' do
|
||||||
stub_const('Account::Search::DEFAULT_LIMIT', 1)
|
stub_const('Account::Search::DEFAULT_LIMIT', 1)
|
||||||
2.times.each { Fabricate(:account, display_name: 'Display Name') }
|
2.times.each { Fabricate(:account, display_name: 'Display Name') }
|
||||||
results = described_class.search_for('display')
|
results = Account.search_for('display')
|
||||||
expect(results.size).to eq 1
|
expect(results.size).to eq 1
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'accepts arbitrary limits' do
|
it 'accepts arbitrary limits' do
|
||||||
2.times.each { Fabricate(:account, display_name: 'Display Name') }
|
2.times.each { Fabricate(:account, display_name: 'Display Name') }
|
||||||
results = described_class.search_for('display', limit: 1)
|
results = Account.search_for('display', limit: 1)
|
||||||
expect(results.size).to eq 1
|
expect(results.size).to eq 1
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -117,7 +117,7 @@ RSpec.shared_examples 'Account::Search' do
|
|||||||
{ display_name: 'Display Name', username: 'username', domain: 'example.com' },
|
{ display_name: 'Display Name', username: 'username', domain: 'example.com' },
|
||||||
].map(&method(:Fabricate).curry(2).call(:account))
|
].map(&method(:Fabricate).curry(2).call(:account))
|
||||||
|
|
||||||
results = described_class.search_for('username')
|
results = Account.search_for('username')
|
||||||
expect(results).to eq matches
|
expect(results).to eq matches
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -135,7 +135,7 @@ RSpec.shared_examples 'Account::Search' do
|
|||||||
)
|
)
|
||||||
account.follow!(match)
|
account.follow!(match)
|
||||||
|
|
||||||
results = described_class.advanced_search_for('A?l\i:c e', account, limit: 10, following: true)
|
results = Account.advanced_search_for('A?l\i:c e', account, limit: 10, following: true)
|
||||||
expect(results).to eq [match]
|
expect(results).to eq [match]
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -147,7 +147,7 @@ RSpec.shared_examples 'Account::Search' do
|
|||||||
domain: 'example.com'
|
domain: 'example.com'
|
||||||
)
|
)
|
||||||
|
|
||||||
results = described_class.advanced_search_for('A?l\i:c e', account, limit: 10, following: true)
|
results = Account.advanced_search_for('A?l\i:c e', account, limit: 10, following: true)
|
||||||
expect(results).to eq []
|
expect(results).to eq []
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -160,7 +160,7 @@ RSpec.shared_examples 'Account::Search' do
|
|||||||
suspended: true
|
suspended: true
|
||||||
)
|
)
|
||||||
|
|
||||||
results = described_class.advanced_search_for('username', account, limit: 10, following: true)
|
results = Account.advanced_search_for('username', account, limit: 10, following: true)
|
||||||
expect(results).to eq []
|
expect(results).to eq []
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -173,7 +173,7 @@ RSpec.shared_examples 'Account::Search' do
|
|||||||
|
|
||||||
match.user.update(approved: false)
|
match.user.update(approved: false)
|
||||||
|
|
||||||
results = described_class.advanced_search_for('username', account, limit: 10, following: true)
|
results = Account.advanced_search_for('username', account, limit: 10, following: true)
|
||||||
expect(results).to eq []
|
expect(results).to eq []
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -186,7 +186,7 @@ RSpec.shared_examples 'Account::Search' do
|
|||||||
|
|
||||||
match.user.update(confirmed_at: nil)
|
match.user.update(confirmed_at: nil)
|
||||||
|
|
||||||
results = described_class.advanced_search_for('username', account, limit: 10, following: true)
|
results = Account.advanced_search_for('username', account, limit: 10, following: true)
|
||||||
expect(results).to eq []
|
expect(results).to eq []
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -200,7 +200,7 @@ RSpec.shared_examples 'Account::Search' do
|
|||||||
suspended: true
|
suspended: true
|
||||||
)
|
)
|
||||||
|
|
||||||
results = described_class.advanced_search_for('username', account)
|
results = Account.advanced_search_for('username', account)
|
||||||
expect(results).to eq []
|
expect(results).to eq []
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -213,7 +213,7 @@ RSpec.shared_examples 'Account::Search' do
|
|||||||
|
|
||||||
match.user.update(approved: false)
|
match.user.update(approved: false)
|
||||||
|
|
||||||
results = described_class.advanced_search_for('username', account)
|
results = Account.advanced_search_for('username', account)
|
||||||
expect(results).to eq []
|
expect(results).to eq []
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -226,7 +226,7 @@ RSpec.shared_examples 'Account::Search' do
|
|||||||
|
|
||||||
match.user.update(confirmed_at: nil)
|
match.user.update(confirmed_at: nil)
|
||||||
|
|
||||||
results = described_class.advanced_search_for('username', account)
|
results = Account.advanced_search_for('username', account)
|
||||||
expect(results).to eq []
|
expect(results).to eq []
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -238,20 +238,20 @@ RSpec.shared_examples 'Account::Search' do
|
|||||||
domain: 'example.com'
|
domain: 'example.com'
|
||||||
)
|
)
|
||||||
|
|
||||||
results = described_class.advanced_search_for('A?l\i:c e', account)
|
results = Account.advanced_search_for('A?l\i:c e', account)
|
||||||
expect(results).to eq [match]
|
expect(results).to eq [match]
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'limits result count by default value' do
|
it 'limits result count by default value' do
|
||||||
stub_const('Account::Search::DEFAULT_LIMIT', 1)
|
stub_const('Account::Search::DEFAULT_LIMIT', 1)
|
||||||
2.times { Fabricate(:account, display_name: 'Display Name') }
|
2.times { Fabricate(:account, display_name: 'Display Name') }
|
||||||
results = described_class.advanced_search_for('display', account)
|
results = Account.advanced_search_for('display', account)
|
||||||
expect(results.size).to eq 1
|
expect(results.size).to eq 1
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'accepts arbitrary limits' do
|
it 'accepts arbitrary limits' do
|
||||||
2.times { Fabricate(:account, display_name: 'Display Name') }
|
2.times { Fabricate(:account, display_name: 'Display Name') }
|
||||||
results = described_class.advanced_search_for('display', account, limit: 1)
|
results = Account.advanced_search_for('display', account, limit: 1)
|
||||||
expect(results.size).to eq 1
|
expect(results.size).to eq 1
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -260,7 +260,7 @@ RSpec.shared_examples 'Account::Search' do
|
|||||||
followed_match = Fabricate(:account, username: 'Matcher')
|
followed_match = Fabricate(:account, username: 'Matcher')
|
||||||
Fabricate(:follow, account: account, target_account: followed_match)
|
Fabricate(:follow, account: account, target_account: followed_match)
|
||||||
|
|
||||||
results = described_class.advanced_search_for('match', account)
|
results = Account.advanced_search_for('match', account)
|
||||||
expect(results).to eq [followed_match, match]
|
expect(results).to eq [followed_match, match]
|
||||||
expect(results.first.rank).to be > results.last.rank
|
expect(results.first.rank).to be > results.last.rank
|
||||||
end
|
end
|
||||||
@@ -3,7 +3,6 @@
|
|||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
|
||||||
RSpec.describe Account do
|
RSpec.describe Account do
|
||||||
it_behaves_like 'Account::Search'
|
|
||||||
it_behaves_like 'Reviewable'
|
it_behaves_like 'Reviewable'
|
||||||
|
|
||||||
describe 'Associations' do
|
describe 'Associations' do
|
||||||
@@ -773,9 +772,6 @@ RSpec.describe Account do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
it_behaves_like 'AccountAvatar', :account
|
|
||||||
it_behaves_like 'AccountHeader', :account
|
|
||||||
|
|
||||||
describe '#increment_count!' do
|
describe '#increment_count!' do
|
||||||
subject { Fabricate(:account) }
|
subject { Fabricate(:account) }
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
|
||||||
RSpec.shared_examples 'Status::Visibility' do
|
RSpec.describe Status::Visibility do
|
||||||
describe 'Validations' do
|
describe 'Validations' do
|
||||||
context 'when status is a reblog' do
|
context 'when status is a reblog' do
|
||||||
subject { Fabricate.build :status, reblog: Fabricate(:status) }
|
subject { Fabricate.build :status, reblog: Fabricate(:status) }
|
||||||
@@ -9,8 +9,6 @@ RSpec.describe Status do
|
|||||||
let(:bob) { Fabricate(:account, username: 'bob') }
|
let(:bob) { Fabricate(:account, username: 'bob') }
|
||||||
let(:other) { Fabricate(:status, account: bob, text: 'Skulls for the skull god! The enemy\'s gates are sideways!') }
|
let(:other) { Fabricate(:status, account: bob, text: 'Skulls for the skull god! The enemy\'s gates are sideways!') }
|
||||||
|
|
||||||
it_behaves_like 'Status::Visibility'
|
|
||||||
|
|
||||||
describe '#local?' do
|
describe '#local?' do
|
||||||
it 'returns true when no remote URI is set' do
|
it 'returns true when no remote URI is set' do
|
||||||
expect(subject.local?).to be true
|
expect(subject.local?).to be true
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
|
||||||
RSpec.shared_examples 'User::Activity' do
|
RSpec.describe User::Activity do
|
||||||
before { stub_const 'User::ACTIVE_DURATION', 7.days }
|
before { stub_const 'User::ACTIVE_DURATION', 7.days }
|
||||||
|
|
||||||
describe 'Scopes' do
|
describe 'Scopes' do
|
||||||
@@ -11,14 +11,14 @@ RSpec.shared_examples 'User::Activity' do
|
|||||||
|
|
||||||
describe '.signed_in_recently' do
|
describe '.signed_in_recently' do
|
||||||
it 'returns users who have signed in during the recent period' do
|
it 'returns users who have signed in during the recent period' do
|
||||||
expect(described_class.signed_in_recently)
|
expect(User.signed_in_recently)
|
||||||
.to contain_exactly(recent_sign_in_user)
|
.to contain_exactly(recent_sign_in_user)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '.not_signed_in_recently' do
|
describe '.not_signed_in_recently' do
|
||||||
it 'returns users who have not signed in during the recent period' do
|
it 'returns users who have not signed in during the recent period' do
|
||||||
expect(described_class.not_signed_in_recently)
|
expect(User.not_signed_in_recently)
|
||||||
.to contain_exactly(no_recent_sign_in_user)
|
.to contain_exactly(no_recent_sign_in_user)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -2,21 +2,21 @@
|
|||||||
|
|
||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
|
||||||
RSpec.shared_examples 'User::Confirmation' do
|
RSpec.describe User::Confirmation do
|
||||||
describe 'Scopes' do
|
describe 'Scopes' do
|
||||||
let!(:unconfirmed_user) { Fabricate :user, confirmed_at: nil }
|
let!(:unconfirmed_user) { Fabricate :user, confirmed_at: nil }
|
||||||
let!(:confirmed_user) { Fabricate :user, confirmed_at: Time.now.utc }
|
let!(:confirmed_user) { Fabricate :user, confirmed_at: Time.now.utc }
|
||||||
|
|
||||||
describe '.confirmed' do
|
describe '.confirmed' do
|
||||||
it 'returns users who are confirmed' do
|
it 'returns users who are confirmed' do
|
||||||
expect(described_class.confirmed)
|
expect(User.confirmed)
|
||||||
.to contain_exactly(confirmed_user)
|
.to contain_exactly(confirmed_user)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '.unconfirmed' do
|
describe '.unconfirmed' do
|
||||||
it 'returns users who are not confirmed' do
|
it 'returns users who are not confirmed' do
|
||||||
expect(described_class.unconfirmed)
|
expect(User.unconfirmed)
|
||||||
.to contain_exactly(unconfirmed_user)
|
.to contain_exactly(unconfirmed_user)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -10,8 +10,6 @@ RSpec.describe User do
|
|||||||
let(:account) { Fabricate(:account, username: 'alice') }
|
let(:account) { Fabricate(:account, username: 'alice') }
|
||||||
|
|
||||||
it_behaves_like 'two_factor_backupable'
|
it_behaves_like 'two_factor_backupable'
|
||||||
it_behaves_like 'User::Activity'
|
|
||||||
it_behaves_like 'User::Confirmation'
|
|
||||||
|
|
||||||
describe 'otp_secret' do
|
describe 'otp_secret' do
|
||||||
it 'encrypts the saved value' do
|
it 'encrypts the saved value' do
|
||||||
|
|||||||
@@ -52,6 +52,19 @@ RSpec.describe 'Donation campaigns' do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'when the donation campaign returns bad response' do
|
||||||
|
before do
|
||||||
|
stub_request(:get, "#{api_url}?platform=web&seed=#{seed}&locale=en").to_return(body: 'Cats & Dogs', status: 200)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'handles the error and returns http empty' do
|
||||||
|
get '/api/v1/donation_campaigns', headers: headers
|
||||||
|
|
||||||
|
expect(response)
|
||||||
|
.to have_http_status(204)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context 'when the donation campaign API returns a campaign' do
|
context 'when the donation campaign API returns a campaign' do
|
||||||
let(:campaign_json) do
|
let(:campaign_json) do
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -55,6 +55,16 @@ RSpec.describe SoftwareUpdateCheckService do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'when the update server returns invalid response body' do
|
||||||
|
before do
|
||||||
|
stub_request(:get, full_update_check_url).to_return(status: 200, body: 'XXX')
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'handles the error and returns' do
|
||||||
|
expect(subject.call).to be_nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context 'when the server returns new versions' do
|
context 'when the server returns new versions' do
|
||||||
let(:server_json) do
|
let(:server_json) do
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
"dotenv": "^17.0.0",
|
"dotenv": "^17.0.0",
|
||||||
"express": "^5.1.0",
|
"express": "^5.1.0",
|
||||||
"ioredis": "^5.3.2",
|
"ioredis": "^5.3.2",
|
||||||
"jsdom": "^28.0.0",
|
"jsdom": "^29.0.0",
|
||||||
"pg": "^8.5.0",
|
"pg": "^8.5.0",
|
||||||
"pg-connection-string": "^2.6.0",
|
"pg-connection-string": "^2.6.0",
|
||||||
"pino": "^10.0.0",
|
"pino": "^10.0.0",
|
||||||
|
|||||||
172
yarn.lock
172
yarn.lock
@@ -12,13 +12,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@acemir/cssom@npm:^0.9.31":
|
|
||||||
version: 0.9.31
|
|
||||||
resolution: "@acemir/cssom@npm:0.9.31"
|
|
||||||
checksum: 10c0/cbfff98812642104ec3b37de1ad3a53f216ddc437e7b9276a23f46f2453844ea3c3f46c200bc4656a2f747fb26567560b3cc5183d549d119a758926551b5f566
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"@adobe/css-tools@npm:^4.4.0":
|
"@adobe/css-tools@npm:^4.4.0":
|
||||||
version: 4.4.3
|
version: 4.4.3
|
||||||
resolution: "@adobe/css-tools@npm:4.4.3"
|
resolution: "@adobe/css-tools@npm:4.4.3"
|
||||||
@@ -46,29 +39,29 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@asamuzakjp/css-color@npm:^4.1.2":
|
"@asamuzakjp/css-color@npm:^5.0.1":
|
||||||
version: 4.1.2
|
version: 5.0.1
|
||||||
resolution: "@asamuzakjp/css-color@npm:4.1.2"
|
resolution: "@asamuzakjp/css-color@npm:5.0.1"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@csstools/css-calc": "npm:^3.0.0"
|
"@csstools/css-calc": "npm:^3.1.1"
|
||||||
"@csstools/css-color-parser": "npm:^4.0.1"
|
"@csstools/css-color-parser": "npm:^4.0.2"
|
||||||
"@csstools/css-parser-algorithms": "npm:^4.0.0"
|
"@csstools/css-parser-algorithms": "npm:^4.0.0"
|
||||||
"@csstools/css-tokenizer": "npm:^4.0.0"
|
"@csstools/css-tokenizer": "npm:^4.0.0"
|
||||||
lru-cache: "npm:^11.2.5"
|
lru-cache: "npm:^11.2.6"
|
||||||
checksum: 10c0/e432fdef978b37654a2ca31169a149b9173e708f70c82612acb123a36dbc7dd99913c48cbf2edd6fe3652cc627d4bc94bf87571463da0b788f15b973d4ce5b0f
|
checksum: 10c0/3e8d74a3b7f3005a325cb8e7f3da1aa32aeac4cd9ce387826dc25b16eaab4dc0e4a6faded8ccc1895959141f4a4a70e8bc38723347b89667b7b224990d16683c
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@asamuzakjp/dom-selector@npm:^6.8.1":
|
"@asamuzakjp/dom-selector@npm:^7.0.2":
|
||||||
version: 6.8.1
|
version: 7.0.3
|
||||||
resolution: "@asamuzakjp/dom-selector@npm:6.8.1"
|
resolution: "@asamuzakjp/dom-selector@npm:7.0.3"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@asamuzakjp/nwsapi": "npm:^2.3.9"
|
"@asamuzakjp/nwsapi": "npm:^2.3.9"
|
||||||
bidi-js: "npm:^1.0.3"
|
bidi-js: "npm:^1.0.3"
|
||||||
css-tree: "npm:^3.1.0"
|
css-tree: "npm:^3.2.1"
|
||||||
is-potential-custom-element-name: "npm:^1.0.1"
|
is-potential-custom-element-name: "npm:^1.0.1"
|
||||||
lru-cache: "npm:^11.2.6"
|
lru-cache: "npm:^11.2.7"
|
||||||
checksum: 10c0/635de2c3b11971c07e2d491fd2833d2499bafbab05b616f5d38041031718879c404456644f60c45e9ba4ca2423e5bb48bf3c46179b0c58a0ea68eaae8c61e85f
|
checksum: 10c0/c64b06a23479970ded4f38bec34069e98f4062b4ecb798b81b1fc37b5472ec6110d5bd9d8a267bfc431503f6ee3080c2e94eb3d99e30aaa1b6d9f83fbd2744fa
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -1276,7 +1269,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@csstools/css-calc@npm:^3.0.0, @csstools/css-calc@npm:^3.1.1":
|
"@csstools/css-calc@npm:^3.1.1":
|
||||||
version: 3.1.1
|
version: 3.1.1
|
||||||
resolution: "@csstools/css-calc@npm:3.1.1"
|
resolution: "@csstools/css-calc@npm:3.1.1"
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@@ -1286,7 +1279,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@csstools/css-color-parser@npm:^4.0.1, @csstools/css-color-parser@npm:^4.0.2":
|
"@csstools/css-color-parser@npm:^4.0.2":
|
||||||
version: 4.0.2
|
version: 4.0.2
|
||||||
resolution: "@csstools/css-color-parser@npm:4.0.2"
|
resolution: "@csstools/css-color-parser@npm:4.0.2"
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -1308,10 +1301,15 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@csstools/css-syntax-patches-for-csstree@npm:^1.0.25, @csstools/css-syntax-patches-for-csstree@npm:^1.0.26":
|
"@csstools/css-syntax-patches-for-csstree@npm:^1.0.25, @csstools/css-syntax-patches-for-csstree@npm:^1.1.1":
|
||||||
version: 1.0.27
|
version: 1.1.1
|
||||||
resolution: "@csstools/css-syntax-patches-for-csstree@npm:1.0.27"
|
resolution: "@csstools/css-syntax-patches-for-csstree@npm:1.1.1"
|
||||||
checksum: 10c0/ef3f2a639109758c0f3c04520465800ca4c830174bd6f7979795083877c82ace51ab8353857b06a818cb6c0de6d4dc88f84a86fc3b021be47f11a0f1c4b74e7e
|
peerDependencies:
|
||||||
|
css-tree: ^3.2.1
|
||||||
|
peerDependenciesMeta:
|
||||||
|
css-tree:
|
||||||
|
optional: true
|
||||||
|
checksum: 10c0/947f82e9e8af0512f1d6600f68da1bbe8d15112fa73435169608a68dcf20262ae517c799202c86a6c3bc889d0e9fab724ad5661a3aa98432390f8f9765b86ddc
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -2396,15 +2394,15 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@exodus/bytes@npm:^1.11.0, @exodus/bytes@npm:^1.6.0":
|
"@exodus/bytes@npm:^1.11.0, @exodus/bytes@npm:^1.15.0, @exodus/bytes@npm:^1.6.0":
|
||||||
version: 1.11.0
|
version: 1.15.0
|
||||||
resolution: "@exodus/bytes@npm:1.11.0"
|
resolution: "@exodus/bytes@npm:1.15.0"
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
"@noble/hashes": ^1.8.0 || ^2.0.0
|
"@noble/hashes": ^1.8.0 || ^2.0.0
|
||||||
peerDependenciesMeta:
|
peerDependenciesMeta:
|
||||||
"@noble/hashes":
|
"@noble/hashes":
|
||||||
optional: true
|
optional: true
|
||||||
checksum: 10c0/85d0b296cef91ee90f89f17b3a2cd23fa33bda4ae7b96545e9b8e2e68d64c0280eb3cefb77fc3f59f82377379ee7a52a5a5b3a9f99e45fca4166e5e2fa4c0939
|
checksum: 10c0/b48aad9729653385d6ed055c28cfcf0b1b1481cf5d83f4375c12abd7988f1d20f69c80b5f95d4a1cc24d9abe32b9efc352a812d53884c26efea172aca8b6356d
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -2992,7 +2990,7 @@ __metadata:
|
|||||||
express: "npm:^5.1.0"
|
express: "npm:^5.1.0"
|
||||||
globals: "npm:^17.3.0"
|
globals: "npm:^17.3.0"
|
||||||
ioredis: "npm:^5.3.2"
|
ioredis: "npm:^5.3.2"
|
||||||
jsdom: "npm:^28.0.0"
|
jsdom: "npm:^29.0.0"
|
||||||
pg: "npm:^8.5.0"
|
pg: "npm:^8.5.0"
|
||||||
pg-connection-string: "npm:^2.6.0"
|
pg-connection-string: "npm:^2.6.0"
|
||||||
pino: "npm:^10.0.0"
|
pino: "npm:^10.0.0"
|
||||||
@@ -6439,13 +6437,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"css-tree@npm:^3.0.0, css-tree@npm:^3.0.1, css-tree@npm:^3.1.0":
|
"css-tree@npm:^3.0.0, css-tree@npm:^3.0.1, css-tree@npm:^3.1.0, css-tree@npm:^3.2.1":
|
||||||
version: 3.1.0
|
version: 3.2.1
|
||||||
resolution: "css-tree@npm:3.1.0"
|
resolution: "css-tree@npm:3.2.1"
|
||||||
dependencies:
|
dependencies:
|
||||||
mdn-data: "npm:2.12.2"
|
mdn-data: "npm:2.27.1"
|
||||||
source-map-js: "npm:^1.0.1"
|
source-map-js: "npm:^1.2.1"
|
||||||
checksum: 10c0/b5715852c2f397c715ca00d56ec53fc83ea596295ae112eb1ba6a1bda3b31086380e596b1d8c4b980fe6da09e7d0fc99c64d5bb7313030dd0fba9c1415f30979
|
checksum: 10c0/1f65e9ccaa56112a4706d6f003dd43d777f0dbcf848e66fd320f823192533581f8dd58daa906cb80622658332d50284d6be13b87a6ab4556cbbfe9ef535bbf7e
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -6472,18 +6470,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"cssstyle@npm:^6.0.1":
|
|
||||||
version: 6.0.1
|
|
||||||
resolution: "cssstyle@npm:6.0.1"
|
|
||||||
dependencies:
|
|
||||||
"@asamuzakjp/css-color": "npm:^4.1.2"
|
|
||||||
"@csstools/css-syntax-patches-for-csstree": "npm:^1.0.26"
|
|
||||||
css-tree: "npm:^3.1.0"
|
|
||||||
lru-cache: "npm:^11.2.5"
|
|
||||||
checksum: 10c0/92a8581bad4ce9f77d22761f1aabe72829f4457ac709f4fe1a5b45b431ba165368cd7f849b00454ee31cf0a4c838be583107883f14b6d546802cf3c76a88ca41
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"csstype@npm:^3.0.2, csstype@npm:^3.2.2":
|
"csstype@npm:^3.0.2, csstype@npm:^3.2.2":
|
||||||
version: 3.2.3
|
version: 3.2.3
|
||||||
resolution: "csstype@npm:3.2.3"
|
resolution: "csstype@npm:3.2.3"
|
||||||
@@ -8474,7 +8460,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"http-proxy-agent@npm:^7.0.0, http-proxy-agent@npm:^7.0.2":
|
"http-proxy-agent@npm:^7.0.0":
|
||||||
version: 7.0.2
|
version: 7.0.2
|
||||||
resolution: "http-proxy-agent@npm:7.0.2"
|
resolution: "http-proxy-agent@npm:7.0.2"
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -8484,7 +8470,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"https-proxy-agent@npm:^7.0.1, https-proxy-agent@npm:^7.0.6":
|
"https-proxy-agent@npm:^7.0.1":
|
||||||
version: 7.0.6
|
version: 7.0.6
|
||||||
resolution: "https-proxy-agent@npm:7.0.6"
|
resolution: "https-proxy-agent@npm:7.0.6"
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -9264,37 +9250,37 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"jsdom@npm:^28.0.0":
|
"jsdom@npm:^29.0.0":
|
||||||
version: 28.1.0
|
version: 29.0.0
|
||||||
resolution: "jsdom@npm:28.1.0"
|
resolution: "jsdom@npm:29.0.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@acemir/cssom": "npm:^0.9.31"
|
"@asamuzakjp/css-color": "npm:^5.0.1"
|
||||||
"@asamuzakjp/dom-selector": "npm:^6.8.1"
|
"@asamuzakjp/dom-selector": "npm:^7.0.2"
|
||||||
"@bramus/specificity": "npm:^2.4.2"
|
"@bramus/specificity": "npm:^2.4.2"
|
||||||
"@exodus/bytes": "npm:^1.11.0"
|
"@csstools/css-syntax-patches-for-csstree": "npm:^1.1.1"
|
||||||
cssstyle: "npm:^6.0.1"
|
"@exodus/bytes": "npm:^1.15.0"
|
||||||
|
css-tree: "npm:^3.2.1"
|
||||||
data-urls: "npm:^7.0.0"
|
data-urls: "npm:^7.0.0"
|
||||||
decimal.js: "npm:^10.6.0"
|
decimal.js: "npm:^10.6.0"
|
||||||
html-encoding-sniffer: "npm:^6.0.0"
|
html-encoding-sniffer: "npm:^6.0.0"
|
||||||
http-proxy-agent: "npm:^7.0.2"
|
|
||||||
https-proxy-agent: "npm:^7.0.6"
|
|
||||||
is-potential-custom-element-name: "npm:^1.0.1"
|
is-potential-custom-element-name: "npm:^1.0.1"
|
||||||
|
lru-cache: "npm:^11.2.7"
|
||||||
parse5: "npm:^8.0.0"
|
parse5: "npm:^8.0.0"
|
||||||
saxes: "npm:^6.0.0"
|
saxes: "npm:^6.0.0"
|
||||||
symbol-tree: "npm:^3.2.4"
|
symbol-tree: "npm:^3.2.4"
|
||||||
tough-cookie: "npm:^6.0.0"
|
tough-cookie: "npm:^6.0.1"
|
||||||
undici: "npm:^7.21.0"
|
undici: "npm:^7.24.3"
|
||||||
w3c-xmlserializer: "npm:^5.0.0"
|
w3c-xmlserializer: "npm:^5.0.0"
|
||||||
webidl-conversions: "npm:^8.0.1"
|
webidl-conversions: "npm:^8.0.1"
|
||||||
whatwg-mimetype: "npm:^5.0.0"
|
whatwg-mimetype: "npm:^5.0.0"
|
||||||
whatwg-url: "npm:^16.0.0"
|
whatwg-url: "npm:^16.0.1"
|
||||||
xml-name-validator: "npm:^5.0.0"
|
xml-name-validator: "npm:^5.0.0"
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
canvas: ^3.0.0
|
canvas: ^3.0.0
|
||||||
peerDependenciesMeta:
|
peerDependenciesMeta:
|
||||||
canvas:
|
canvas:
|
||||||
optional: true
|
optional: true
|
||||||
checksum: 10c0/341ecb4005be2dab3247dacc349a20285d7991b5cee3382301fcd69a4294b705b4147e7d9ae1ddfab466ba4b3aace97ded4f7b070de285262221cb2782965b25
|
checksum: 10c0/8bbb4f89bfb7013a729bf50419fa5878086b52068a5d3836b51b99be5faf7cf9f871818954d468ce1f2f1c6b86d16af6ed5167f4084f7df7de517b104b451454
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -9694,10 +9680,10 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"lru-cache@npm:^11.0.0, lru-cache@npm:^11.2.5, lru-cache@npm:^11.2.6":
|
"lru-cache@npm:^11.0.0, lru-cache@npm:^11.2.6, lru-cache@npm:^11.2.7":
|
||||||
version: 11.2.6
|
version: 11.2.7
|
||||||
resolution: "lru-cache@npm:11.2.6"
|
resolution: "lru-cache@npm:11.2.7"
|
||||||
checksum: 10c0/73bbffb298760e71b2bfe8ebc16a311c6a60ceddbba919cfedfd8635c2d125fbfb5a39b71818200e67973b11f8d59c5a9e31d6f90722e340e90393663a66e5cd
|
checksum: 10c0/549cdb59488baa617135fc12159cafb1a97f91079f35093bb3bcad72e849fc64ace636d244212c181dfdf1a99bbfa90757ff303f98561958ee4d0f885d9bd5f7
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -9807,17 +9793,10 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"mdn-data@npm:2.12.2":
|
"mdn-data@npm:2.27.1, mdn-data@npm:^2.25.0":
|
||||||
version: 2.12.2
|
version: 2.27.1
|
||||||
resolution: "mdn-data@npm:2.12.2"
|
resolution: "mdn-data@npm:2.27.1"
|
||||||
checksum: 10c0/b22443b71d70f72ccc3c6ba1608035431a8fc18c3c8fc53523f06d20e05c2ac10f9b53092759a2ca85cf02f0d37036f310b581ce03e7b99ac74d388ef8152ade
|
checksum: 10c0/eb8abf5d22e4d1e090346f5e81b67d23cef14c83940e445da5c44541ad874dc8fb9f6ca236e8258c3a489d9fb5884188a4d7d58773adb9089ac2c0b966796393
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"mdn-data@npm:^2.25.0":
|
|
||||||
version: 2.26.0
|
|
||||||
resolution: "mdn-data@npm:2.26.0"
|
|
||||||
checksum: 10c0/e5f17f4dac247f3e260c081761628d371e23659a7ff13413f83f5bd7fd0f2d8317e72277bb77f0e13115041334ff728a5363db64aabaf376c0e1b0b31016d0b8
|
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -12385,11 +12364,14 @@ __metadata:
|
|||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"rollup-plugin-gzip@npm:^4.1.1":
|
"rollup-plugin-gzip@npm:^4.1.1":
|
||||||
version: 4.1.1
|
version: 4.2.0
|
||||||
resolution: "rollup-plugin-gzip@npm:4.1.1"
|
resolution: "rollup-plugin-gzip@npm:4.2.0"
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
rollup: ">=2.0.0"
|
rollup: ">=2.0.0"
|
||||||
checksum: 10c0/0ad79a6eb84bb8d88db15a184ca661f44aa6fb3412c98d6a97f1dec365db37945a84c3a2d0bf709ae605ae305a40a0021b2e6d5494c537b029759f3695d9ac96
|
peerDependenciesMeta:
|
||||||
|
rollup:
|
||||||
|
optional: true
|
||||||
|
checksum: 10c0/05aecd5cb96f5b40ef128d87ea15d86c07e416a1fb98eb5712911254ce1a09ddf60c0128edb7fc8dc7478cbca1f94d04ab07cf4437947f5ce330ce627f80bada
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -12958,7 +12940,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.0.1, source-map-js@npm:^1.0.2, source-map-js@npm:^1.2.1":
|
"source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.0.2, source-map-js@npm:^1.2.1":
|
||||||
version: 1.2.1
|
version: 1.2.1
|
||||||
resolution: "source-map-js@npm:1.2.1"
|
resolution: "source-map-js@npm:1.2.1"
|
||||||
checksum: 10c0/7bda1fc4c197e3c6ff17de1b8b2c20e60af81b63a52cb32ec5a5d67a20a7d42651e2cb34ebe93833c5a2a084377e17455854fee3e21e7925c64a51b6a52b0faf
|
checksum: 10c0/7bda1fc4c197e3c6ff17de1b8b2c20e60af81b63a52cb32ec5a5d67a20a7d42651e2cb34ebe93833c5a2a084377e17455854fee3e21e7925c64a51b6a52b0faf
|
||||||
@@ -13824,12 +13806,12 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"tough-cookie@npm:^6.0.0":
|
"tough-cookie@npm:^6.0.0, tough-cookie@npm:^6.0.1":
|
||||||
version: 6.0.0
|
version: 6.0.1
|
||||||
resolution: "tough-cookie@npm:6.0.0"
|
resolution: "tough-cookie@npm:6.0.1"
|
||||||
dependencies:
|
dependencies:
|
||||||
tldts: "npm:^7.0.5"
|
tldts: "npm:^7.0.5"
|
||||||
checksum: 10c0/7b17a461e9c2ac0d0bea13ab57b93b4346d0b8c00db174c963af1e46e4ea8d04148d2a55f2358fc857db0c0c65208a98e319d0c60693e32e0c559a9d9cf20cb5
|
checksum: 10c0/ec70bd6b1215efe4ed31a158f0be3e4c9088fcbd8620edc23a5860d4f3d85c757b77e274baaa700f7b25e409f4181552ed189603c2b2e1a9f88104da3a61a37d
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -14135,10 +14117,10 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"undici@npm:^7.21.0":
|
"undici@npm:^7.24.3":
|
||||||
version: 7.22.0
|
version: 7.24.4
|
||||||
resolution: "undici@npm:7.22.0"
|
resolution: "undici@npm:7.24.4"
|
||||||
checksum: 10c0/09777c06f3f18f761f03e3a4c9c04fd9fcca8ad02ccea43602ee4adf73fcba082806f1afb637f6ea714ef6279c5323c25b16d435814c63db720f63bfc20d316b
|
checksum: 10c0/cb302e81fadb7f0b7946ab77595715c0961b46a025ccecae79ba599432d0bc8d1e3da4dfe7ff66bc74f115c1b8ff0f099bc4e9bf313db4562da23995872c6d17
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -14667,14 +14649,14 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"whatwg-url@npm:^16.0.0":
|
"whatwg-url@npm:^16.0.0, whatwg-url@npm:^16.0.1":
|
||||||
version: 16.0.0
|
version: 16.0.1
|
||||||
resolution: "whatwg-url@npm:16.0.0"
|
resolution: "whatwg-url@npm:16.0.1"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@exodus/bytes": "npm:^1.11.0"
|
"@exodus/bytes": "npm:^1.11.0"
|
||||||
tr46: "npm:^6.0.0"
|
tr46: "npm:^6.0.0"
|
||||||
webidl-conversions: "npm:^8.0.1"
|
webidl-conversions: "npm:^8.0.1"
|
||||||
checksum: 10c0/9b8cb392be244d0e9687ffe543f9ea63b7aa051a98547ea362a38d182d89bfbd96e13e7ed3f40df1f7566bb7c3581f6c081ddea950cf5382532716ce33000ff4
|
checksum: 10c0/e75565566abf3a2cdbd9f06c965dbcccee6ec4e9f0d3728ad5e08ceb9944279848bcaa211d35a29cb6d2df1e467dd05cfb59fbddf8a0adcd7d0bce9ffb703fd2
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user