1
0
Fork 1
mirror of https://example.com synced 2024-11-22 15:56:38 +09:00

Firefish v1.0.5-dev5

This commit is contained in:
naskya 2023-08-10 04:45:41 +09:00
parent d4fb73de27
commit 23f0e8532f
Signed by: naskya
GPG key ID: 164DFF24E2D40139
38 changed files with 2925 additions and 1655 deletions

4
.config/docker_ci.env Normal file
View file

@ -0,0 +1,4 @@
# db settings
POSTGRES_PASSWORD=test
POSTGRES_USER=postgres
POSTGRES_DB=postgres

6
.gitignore vendored
View file

@ -25,6 +25,7 @@ coverage
!/.config/example.yml
!/.config/devenv.yml
!/.config/docker_example.env
!/.config/docker_ci.env
!/.config/helm_values_example.yml
!/.config/LICENSE
@ -43,14 +44,15 @@ api-docs.json
*.log
*.code-workspace
.DS_Store
files
files/
ormconfig.json
packages/backend/assets/instance.css
packages/backend/assets/sounds/None.mp3
packages/backend/assets/LICENSE
!/packages/backend/queue/processors/db
!packages/backend/src/db
!/packages/backend/src/db
!/packages/backend/src/server/api/endpoints/drive/files
packages/megalodon/lib
packages/megalodon/.idea

View file

@ -180,6 +180,7 @@ _theme:
mention: Споменаване
renote: Подсили
color: Цвят
explore: Разгледай темите
_pages:
script:
blocks:
@ -221,8 +222,8 @@ _mfm:
_messaging:
groups: Групи
apps: Приложения
introFirefish: Добре дошли! Calckey е децентрализирана социална медийна платформа с
отворен код, която е безплатна завинаги! 🚀
introFirefish: Добре дошли! Calckey е децентрализирана социална медийна платформа
с отворен код, която е безплатна завинаги! 🚀
monthAndDay: '{day}/{month}'
search: Търсене
searchPlaceholder: Търсене в Calckey
@ -419,3 +420,5 @@ _permissions:
"write:favorites": Редактирай списъка си с отметки
_visibility:
followers: Последователи
explore: Разглеждане
theme: Теми

View file

@ -1611,6 +1611,7 @@ _aboutFirefish:
per ajudar-lo a suportar els costos de funcionament.
donateHost: Fes una donació a {host}
sponsors: Patrocinadors de Calckey
misskeyContributors: Col·laboradors de Misskey
unknown: Desconegut
pageLikesCount: Nombre de pàgines amb M'agrada
youAreRunningUpToDateClient: Estás fent servir la versió del client més nova.
@ -2179,3 +2180,5 @@ deletePasskeysConfirm: Això suprimirà de manera irreversible totes les contras
inputNotMatch: L'entrada no coincideix
delete2fa: Desactivar 2FA
delete2faConfirm: Això suprimirà irreversiblement 2FA en aquest compte. Procedir?
addRe: Afegeix "re:" al començament del comentari quant responguis a un missatge amb
avís de contingut

View file

@ -97,7 +97,7 @@ enterListName: "Gib einen Namen für die Liste ein"
privacy: "Privatsphäre"
makeFollowManuallyApprove: "Folgeanfragen bedürfen der Genehmigung"
defaultNoteVisibility: "Standard-Sichtbarkeit"
follow: "Folge ich"
follow: "Folgen"
followRequest: "Follow anfragen"
followRequests: "Follow-Anfragen"
unfollow: "Nicht mehr folgen"
@ -1106,6 +1106,7 @@ _aboutFirefish:
um bei der Deckung der Betriebskosten zu helfen.
sponsors: Firefish-Sponsoren
donateHost: Spende an {host}
misskeyContributors: Misskey-Mitwirkende
_nsfw:
respect: "Mit NSFW gekennzeichnete Mediendateien verbergen"
ignore: "Mit NSFW gekennzeichnete Mediendateien nicht verbergen"
@ -2201,3 +2202,5 @@ delete2faConfirm: Passkeys werden unwiderruflich von diesem Account gelöscht. F
deletePasskeysConfirm: Alle Passkeys und Security-Keys werden unwiderruflich von diesem
Account gelöscht. Fortfahren?
inputNotMatch: Eingabe stimmt nicht überein
addRe: Ein "re:" am Anfang des Kommentars hinzufügen, um einem Beitrag mit einer Inhaltswarnung
zu antworten

View file

@ -1145,6 +1145,7 @@ detectPostLanguage: "Automatically detect the language and show a translate butt
languageForTranslation: "Language used for post translation"
addRe: "Add \"re:\" at the beginning of comment in reply to a post with a content warning"
showBigPostButton: "Show a bigger post button in the posting form"
confirm: "Confirm"
_sensitiveMediaDetection:
description: "Reduces the effort of server moderation through automatically recognizing

View file

@ -15,7 +15,7 @@ gotIt: "Jai compris !"
cancel: "Annuler"
enterUsername: "Entrer un nom dutilisateur·rice"
renotedBy: "Boosté par {user}"
noNotes: "Aucun post"
noNotes: "Aucune publication"
noNotifications: "Aucune notification"
instance: "Serveur"
settings: "Paramètres"
@ -46,8 +46,8 @@ copyContent: "Copier le contenu"
copyLink: "Copier le lien"
delete: "Supprimer"
deleteAndEdit: "Supprimer et réécrire"
deleteAndEditConfirm: "Êtes-vous sûr·e de vouloir supprimer ce post et le reformuler
? Vous perdrez toutes les réactions, boosts et réponses liées."
deleteAndEditConfirm: "Êtes-vous sûr·e de vouloir supprimer cette publication et la
reformuler ? Vous perdrez toutes les réactions, boosts et réponses liées."
addToList: "Ajouter à une liste"
sendMessage: "Envoyer un message"
copyUsername: "Copier le nom dutilisateur·rice"
@ -68,15 +68,15 @@ export: "Exporter"
files: "Fichiers"
download: "Télécharger"
driveFileDeleteConfirm: "Êtes-vous sûr·e de vouloir supprimer le fichier \"{name}\"\
\ ? Il sera retiré de tous ses posts liées."
\ ? Il sera retiré de toutes les publications qui le contiennent comme pièce-jointe."
unfollowConfirm: "Désirez-vous vous désabonner de {name} ?"
exportRequested: "Vous avez demandé une exportation. Lopération pourrait prendre
un peu de temps. Une terminée, le fichier résultant sera ajouté au Drive."
importRequested: "Vous avez initié un import. Cela pourrait prendre un peu de temps."
lists: "Listes"
noLists: "Vous navez aucune liste"
note: "Post"
notes: "Posts"
note: "Publier"
notes: "Publications"
following: "Abonnements"
followers: "Abonné·e·s"
followsYou: "Vous suit"
@ -95,7 +95,7 @@ youShouldUpgradeClient: "Si la page ne s'affiche pas correctement, rechargez-la
enterListName: "Nom de la liste"
privacy: "Confidentialité"
makeFollowManuallyApprove: "Accepter manuellement les demandes dabonnement"
defaultNoteVisibility: "Visibilité des posts par défaut"
defaultNoteVisibility: "Visibilité des publications par défaut"
follow: "Sabonner"
followRequest: "Demande dabonnement"
followRequests: "Demandes dabonnement"
@ -105,10 +105,10 @@ enterEmoji: "Insérer un émoji"
renote: "Booster"
unrenote: "Annuler le boost"
renoted: "Boosté."
cantRenote: "Ce message ne peut pas être boosté."
cantRenote: "Cette publication ne peut pas être boosté."
cantReRenote: "Impossible de partager ce boost."
quote: "Citer"
pinnedNote: "Note épinglée"
pinnedNote: "Publication épinglée"
pinned: "Épingler sur le profil"
you: "Vous"
clickToShow: "Cliquer pour afficher"
@ -118,9 +118,7 @@ reaction: "Réactions"
reactionSetting: "Réactions à afficher dans le sélecteur de réactions"
reactionSettingDescription2: "Déplacer pour réorganiser, cliquer pour effacer, utiliser
« + » pour ajouter."
rememberNoteVisibility: "Activer l'option \" se souvenir de la visibilité des posts
\" vous permet de réutiliser automatiquement la visibilité utilisée lors de la publication
de votre post précédent."
rememberNoteVisibility: "Se souvenir des paramètres de visibilité des publications"
attachCancel: "Supprimer le fichier attaché"
markAsSensitive: "Marquer comme sensible"
unmarkAsSensitive: "Supprimer le marquage comme sensible"
@ -176,9 +174,9 @@ proxyAccount: "Compte proxy"
proxyAccountDescription: "Un compte proxy se comporte, dans certaines conditions,
comme un·e abonné·e distant·e pour les utilisateur·rice·s d'autres serveurs. Par
exemple, quand un·e utilisateur·rice local ajoute un·e utilisateur·rice distant·e
à une liste, ses posts ne seront pas visibles sur le serveur si personne ne suit
cet·te utilisateur·rice. Le compte proxy va donc suivre cet·te utilisateur·rice
pour que ses posts soient acheminées."
à une liste, ses publications ne seront pas visibles sur le serveur si personne
ne suit cet·te utilisateur·rice. Le compte proxy va donc suivre cet·te utilisateur·rice
pour que ses publications soient acheminées."
host: "Serveur distant"
selectUser: "Sélectionner un·e utilisateur·rice"
recipient: "Destinataire"
@ -208,8 +206,8 @@ instanceInfo: "Informations du serveur"
statistics: "Statistiques"
clearQueue: "Vider la file dattente"
clearQueueConfirmTitle: "Êtes-vous sûr·e de vouloir vider la file dattente ?"
clearQueueConfirmText: "Les posts non distribués ne seront pas délivrés. Normalement,
vous n'avez pas besoin d'effectuer cette opération."
clearQueueConfirmText: "Les publications non distribuées ne seront pas délivrées.
Normalement, vous n'avez pas besoin d'effectuer cette opération."
clearCachedFiles: "Vider le cache"
clearCachedFilesConfirm: "Êtes-vous sûr·e de vouloir vider tout le cache de fichiers
distants ?"
@ -221,8 +219,8 @@ mutedUsers: "Utilisateur·rice·s en sourdine"
blockedUsers: "Utilisateur·rice·s bloqué·e·s"
noUsers: "Il ny a pas dutilisateur·rice·s"
editProfile: "Modifier votre profil"
noteDeleteConfirm: "Êtes-vous sûr·e de vouloir supprimer ce post ?"
pinLimitExceeded: "Vous ne pouvez pas épingler plus de posts"
noteDeleteConfirm: "Êtes-vous sûr·e de vouloir supprimer cette publication ?"
pinLimitExceeded: "Vous ne pouvez pas épingler plus de publications"
intro: "Linstallation de Firefish est terminée ! Veuillez créer un compte administrateur."
done: "Terminé"
processing: "Traitement en cours"
@ -247,7 +245,7 @@ currentPassword: "Mot de passe actuel"
newPassword: "Nouveau mot de passe"
newPasswordRetype: "Répéter le nouveau mot de passe"
attachFile: "Joindre un fichier"
more: "Plus !"
more: "Plus"
featured: "Tendances"
usernameOrUserId: "Nom dutilisateur·rice ou ID utilisateur"
noSuchUser: "Utilisateur·rice non trouvé·e"
@ -256,8 +254,8 @@ announcements: "Annonces"
imageUrl: "URL de limage"
remove: "Supprimer"
removed: "Supprimé"
removeAreYouSure: "Êtes-vous sûr·e de vouloir supprimer「{x}」?"
deleteAreYouSure: "Êtes-vous sûr·e de vouloir supprimer「{x}」?"
removeAreYouSure: "Êtes-vous sûr·e de vouloir supprimer \"{x}\"?"
deleteAreYouSure: "Êtes-vous sûr·e de vouloir supprimer \"{x}\" ?"
resetAreYouSure: "Voulez-vous réinitialiser ?"
saved: "Enregistré"
messaging: "Discuter"
@ -367,7 +365,7 @@ pinnedPages: "Pages épinglées"
pinnedPagesDescription: "Inscrivez le chemin des Pages que vous souhaitez épingler
en haut de la page du serveur. Séparez les d'un retour à la ligne."
pinnedClipId: "Identifiant du clip épinglé"
pinnedNotes: "Posts épinglée"
pinnedNotes: "Publications épinglées"
hcaptcha: "hCaptcha"
enableHcaptcha: "Activer hCaptcha"
hcaptchaSiteKey: "Clé du site"
@ -387,14 +385,14 @@ antennaKeywords: "Mots clés à recevoir"
antennaExcludeKeywords: "Mots clés à exclure"
antennaKeywordsDescription: "Séparer avec des espaces pour la condition AND. Séparer
avec un saut de ligne pour une condition OR."
notifyAntenna: "Je souhaite recevoir les notifications des nouveaux posts"
withFileAntenna: "Posts ayant des attachements uniquement"
notifyAntenna: "Je souhaite recevoir les notifications des nouvelles publications"
withFileAntenna: "Publications ayant des pièces-jointes uniquement"
enableServiceworker: "Activer ServiceWorker"
antennaUsersDescription: "Saisissez un seul nom dutilisateur·rice par ligne"
caseSensitive: "Sensible à la casse"
withReplies: "Inclure les réponses"
connectedTo: "Vous êtes connectés aux services suivants"
notesAndReplies: "Posts et Réponses"
notesAndReplies: "Publications et Réponses"
withFiles: "Avec fichiers joints"
silence: "Mettre en sourdine"
silenceConfirm: "Êtes-vous sûr·e de vouloir mettre lutilisateur·rice en sourdine
@ -432,7 +430,7 @@ notFoundDescription: "Aucune page ne correspond à lURL spécifiée."
uploadFolder: "Emplacement de téléversement par défaut"
cacheClear: "Vider le cache"
markAsReadAllNotifications: "Marquer toutes les notifications comme lues"
markAsReadAllUnreadNotes: "Marquer tous les posts comme lus"
markAsReadAllUnreadNotes: "Marquer toutes les publications comme lues"
markAsReadAllTalkMessages: "Marquer toutes les discussions comme lues"
help: "Aide"
inputMessageHere: "Écrivez votre message ici"
@ -453,7 +451,7 @@ text: "Texte"
enable: "Activer"
next: "Suivant"
retype: "Confirmation"
noteOf: "Posts de {user}"
noteOf: "Publications de {user}"
inviteToGroup: "Inviter dans un groupe"
quoteAttached: "Avec citation"
quoteQuestion: "Souhaitez-vous ajouter une citation ?"
@ -467,7 +465,7 @@ checking: "Vérification en cours..."
available: "Disponible"
unavailable: "Non disponible"
usernameInvalidFormat: "Le nom d'utilisateur peut contenir uniquement des lettres
(minuscules et/ou majuscules), des chiffres et des _"
(minuscules et/ou majuscules), des chiffres et des tirets du bas."
tooShort: "Trop court"
tooLong: "Trop long"
weakPassword: "Mot de passe faible"
@ -513,15 +511,16 @@ accountSettings: "Paramètres du compte"
promotion: "Promu"
promote: "Promouvoir"
numberOfDays: "Nombre de jours"
hideThisNote: "Masquer ce post"
showFeaturedNotesInTimeline: "Afficher les posts des Tendances dans le fil d'actualité"
hideThisNote: "Masquer cette publication"
showFeaturedNotesInTimeline: "Afficher les publications des Tendances dans le fil
d'actualité"
objectStorage: "Stockage d'objets"
useObjectStorage: "Utiliser le stockage d'objets"
objectStorageBaseUrl: "Base URL"
objectStorageBaseUrlDesc: "Préfixe dURL utilisé pour construire lURL vers le référencement
dobjet (média). Spécifiez son URL si vous utilisez un CDN ou un proxy, sinon spécifiez
ladresse accessible au public selon le guide de service que vous allez utiliser.
P.ex. 'https://<bucket>.s3.amazonaws.com' pour AWS S3 et 'https://storage.googleapis.com/<bucket>'
ladresse accessible au public selon le guide de service que vous allez utiliser.\n
Ex: 'https://<bucket>.s3.amazonaws.com' pour AWS S3 et 'https://storage.googleapis.com/<bucket>'
pour GCS."
objectStorageBucket: "Bucket"
objectStorageBucketDesc: "Veuillez spécifier le nom du compartiment utilisé sur le
@ -545,7 +544,7 @@ objectStorageSetPublicRead: "Régler sur « public » lors de l'envoi"
serverLogs: "Journal du serveur"
deleteAll: "Supprimer tout"
showFixedPostForm: "Afficher le formulaire de publication en haut du fil d'actualité"
newNoteRecived: "Voir les nouveaux posts"
newNoteRecived: "Voir les nouvelles publications"
sounds: "Sons"
listen: "Écouter"
none: "Rien"
@ -555,7 +554,7 @@ volume: "Volume"
masterVolume: "Volume principal"
details: "Détails"
chooseEmoji: "Choisissez un émoji"
unableToProcess: "Lopération na pas pu être complétée."
unableToProcess: "Lopération na pas pu être complétée"
recentUsed: "Utilisé récemment"
install: "Installation"
uninstall: "Désinstaller"
@ -595,8 +594,8 @@ addRelay: "Ajouter un relais"
inboxUrl: "Inbox URL"
addedRelays: "Relais ajoutés"
serviceworkerInfo: "Devrait être activé pour les notifications push."
deletedNote: "Post supprimé"
invisibleNote: "Post invisible"
deletedNote: "Publication supprimée"
invisibleNote: "Publication invisible"
enableInfiniteScroll: "Activer le défilement infini"
visibility: "Visibilité"
poll: "Sondage"
@ -634,7 +633,7 @@ edit: "Editer"
emailServer: "Serveur mail"
enableEmail: "Activer la distribution de courriel"
emailConfigInfo: "Utilisé pour confirmer votre adresse de courriel et la réinitialisation
de votre mot de passe en cas doubli."
de votre mot de passe en cas doubli"
email: "E-mail"
emailAddress: "Adresses e-mail"
smtpConfig: "Paramètres du serveur SMTP"
@ -659,10 +658,10 @@ overview: "Aperçu"
logs: "Journaux"
delayed: "en retard"
database: "Base de données"
channel: "Canaux"
channel: "Chaînes"
create: "Créer"
notificationSetting: "Paramètres des notifications"
notificationSettingDesc: "Sélectionnez le type de notification à afficher"
notificationSettingDesc: "Sélectionnez le type de notification à afficher."
useGlobalSetting: "Utiliser paramètre général"
useGlobalSettingDesc: "S'il est activé, les paramètres de notification de votre compte
seront utilisés. S'il est désactivé, des configurations individuelles peuvent être
@ -681,11 +680,11 @@ abuseReports: "Signalements"
reportAbuse: "Signaler"
reportAbuseOf: "Signaler {name}"
fillAbuseReportDescription: "Veuillez expliquer les raisons du signalement. S'il s'agit
d'un post particulier, veuillez inclure le lien."
d'une publication en particulier, veuillez inclure le lien."
abuseReported: "Le rapport est envoyé. Merci."
reporter: "Signalé par"
reporteeOrigin: "Origine du signalement"
reporterOrigin: "Signalé par"
reporterOrigin: "Origine du signalement"
forwardReport: "Transférer le signalement à linstance distante"
send: "Envoyer"
abuseMarkAsResolved: "Marquer le signalement comme résolu"
@ -694,7 +693,7 @@ openInSideView: "Ouvrir en vue latérale"
defaultNavigationBehaviour: "Navigation par défaut"
editTheseSettingsMayBreakAccount: "La modification de ces paramètres peut endommager
votre compte."
instanceTicker: "Nom du serveur d'origine des posts"
instanceTicker: "Nom du serveur d'origine des publications"
waitingFor: "En attente de {x}"
random: "Aléatoire"
system: "Système"
@ -709,11 +708,11 @@ i18nInfo: "Firefish est traduit dans différentes langues par des bénévoles. V
contribuer à {link}."
manageAccessTokens: "Gérer les jetons d'accès"
accountInfo: "Informations du compte"
notesCount: "Nombre de posts"
notesCount: "Nombre de publications"
repliesCount: "Nombre de réponses envoyées"
renotesCount: "Nombre de boosts que vous avez envoyé"
repliedCount: "Nombre de réponses reçues"
renotedCount: "Nombre de vos posts boostés"
renotedCount: "Nombre de vos publications boostées"
followingCount: "Nombre de comptes suivis"
followersCount: "Nombre d'abonnés"
sentReactionsCount: "Nombre de réactions envoyées"
@ -726,18 +725,18 @@ driveFilesCount: "Nombre de fichiers dans le Drive"
driveUsage: "Utilisation du Drive"
noCrawle: "Refuser l'indexation par les robots"
noCrawleDescription: "Demandez aux moteurs de recherche de ne pas indexer votre page
de profil, vos posts, vos pages, etc."
lockedAccountInfo: "À moins que vous ne définissiez la visibilité de votre post sur
\"Abonné-e-s\", vos posts sont visibles par tous, même si vous exigez que les demandes
d'abonnement soient approuvées manuellement."
de profil, vos publications, vos pages, etc."
lockedAccountInfo: "À moins que vous ne définissiez la visibilité de votre publication
sur \"Abonné-e-s\", vos publications sont visibles par tous, même si vous exigez
que les demandes d'abonnement soient approuvées manuellement."
alwaysMarkSensitive: "Marquer les médias comme contenu sensible par défaut"
loadRawImages: "Affichage complet des images jointes au lieu des vignettes"
disableShowingAnimatedImages: "Désactiver l'animation des images"
verificationEmailSent: "Un e-mail de vérification a été envoyé. Veuillez accéder au
lien pour compléter la vérification."
notSet: "Non défini"
emailVerified: "Votre adresse e-mail a été vérifiée."
noteFavoritesCount: "Nombre de posts dans les favoris"
emailVerified: "Votre adresse e-mail a été vérifiée"
noteFavoritesCount: "Nombre de publications dans les favoris"
pageLikesCount: "Nombre de pages aimées"
pageLikedCount: "Nombre de vos pages aimées"
contact: "Contact"
@ -745,10 +744,10 @@ useSystemFont: "Utiliser la police par défaut du système"
clips: "Clips"
experimentalFeatures: "Fonctionnalités expérimentales"
developer: "Développeur"
makeExplorable: "Rendre le compte visible sur la page \"Découvrir\"."
makeExplorable: "Rendre le compte visible sur la page \"Découvrir\""
makeExplorableDescription: "Si vous désactivez cette option, votre compte n'apparaîtra
pas sur la page \"Découvrir\"."
showGapBetweenNotesInTimeline: "Afficher un écart entre les posts du fil dactualité"
showGapBetweenNotesInTimeline: "Afficher un écart entre les publications du fil dactualité"
duplicate: "Duliquer"
left: "Gauche"
center: "Centrer"
@ -761,7 +760,7 @@ showTitlebar: "Afficher la barre de titre"
clearCache: "Vider le cache"
onlineUsersCount: "{n} utilisateur(s) en ligne"
nUsers: "{n} utilisateur·rice·s"
nNotes: "{n} Posts"
nNotes: "{n} Publications"
sendErrorReports: "Envoyer les rapports derreur"
sendErrorReportsDescription: "Si vous activez l'envoi des rapports d'erreur, vous
contribuerez à améliorer la qualité de Firefish grâce au partage d'informations
@ -806,8 +805,8 @@ unlikeConfirm: "Êtes-vous sûr·e de ne plus vouloir aimer cette publication ?"
fullView: "Plein écran"
quitFullView: "Quitter le plein écran"
addDescription: "Ajouter une description"
userPagePinTip: "Vous pouvez afficher des posts ici en sélectionnant l'option « Épingler
au profil » dans le menu de chaque post."
userPagePinTip: "Vous pouvez afficher des publications ici en sélectionnant l'option
« Épingler au profil » dans le menu de chaque publication."
notSpecifiedMentionWarning: "Vous avez mentionné des utilisateur·rice·s qui ne font
pas partie de la liste des destinataires"
info: "Informations"
@ -837,9 +836,9 @@ noBotProtectionWarning: "La protection contre les bots n'est pas configurée."
configure: "Configurer"
postToGallery: "Publier dans la galerie"
gallery: "Galerie"
recentPosts: "Les plus récentes"
popularPosts: "Les plus consultées"
shareWithNote: "Partager dans un post"
recentPosts: "Publications récentes"
popularPosts: "Publications populaires"
shareWithNote: "Partager dans une publication"
ads: "Bannière communautaire"
expiration: "Échéance"
memo: "Pense-bête"
@ -927,7 +926,7 @@ oneWeek: "1 semaine"
rateLimitExceeded: "Limite de taux dépassée"
cropImage: "Recadrer l'image"
cropImageAsk: "Voulez-vous recadrer cette image ?"
file: "Fichiers"
file: "Fichier"
reverse: "Inverser"
colored: "Coloré"
label: "Étiquette"
@ -973,7 +972,7 @@ _forgotPassword:
mot de passe."
_gallery:
my: "Mes publications"
liked: " Publications que j'ai aimées"
liked: "Publications que j'ai aimé"
like: "J'aime"
unlike: "Je naime pas"
_email:
@ -1010,6 +1009,7 @@ _aboutFirefish:
donateHost: Faire un don à {host}
patronsList: Listé chronologiquement, pas par taille de donation. Faite un don avec
le lien ci-dessus pour avoir votre nom affiché ici !
misskeyContributors: Contributeurs Misskey
_nsfw:
respect: "Cacher les médias marqués comme contenu sensible"
ignore: "Afficher les médias sensibles"
@ -1119,10 +1119,10 @@ _channel:
setBanner: "Sélectionner la bannière"
removeBanner: "Supprimer la bannière"
featured: "Tendances"
owned: "Mes canaux"
owned: "Mes chaînes"
following: "Abonné·e"
usersCount: "{n} Participant·e·s"
notesCount: "{n} Posts"
notesCount: "{n} publications"
nameAndDescription: Nom et description
nameOnly: Nom uniquement
_menuDisplay:
@ -1136,20 +1136,21 @@ _wordMute:
un saut de ligne pour une condition OR."
muteWordsDescription2: "Pour utiliser des expressions régulières (regex), mettez
les mots-clés entre barres obliques."
softDescription: "Masquez de votre fil dactualité les posts qui répondent aux conditions
définies."
hardDescription: "Empêche les posts qui remplissent les conditions définies d'être
ajoutées au fil d'actualité. Cette action est irréversible : si vous modifiez
ces conditions plus tard, les posts précédemment filtrées ne seront pas récupérées."
softDescription: "Masquez de votre fil dactualité les publications qui répondent
aux conditions définies."
hardDescription: "Empêche les publications, qui remplissent les conditions définies,
d'être ajoutées au fil d'actualité. Cette action est irréversible : si vous modifiez
ces conditions plus tard, les publications précédemment filtrées ne seront pas
récupérées."
soft: "Doux"
hard: "Strict"
mutedNotes: "Posts filtrés"
mutedNotes: "Publications masquées"
_instanceMute:
instanceMuteDescription2: "Séparer avec des sauts de lignes"
title: "Masque les posts provenant des serveurs listés."
title: "Masque les publications provenant des serveurs listés."
heading: "Serveurs à mettre en sourdine/masquer"
instanceMuteDescription: Ceci va masquer toute posts ou boosts de serveurs listés,
incluant celles des personnes répondant à des personnes des serveurs masqués.
instanceMuteDescription: Ceci va masquer toute publication ou boost de serveurs
listés, incluant celles des personnes répondant à des personnes des serveurs masqués.
_theme:
explore: "Explorer les thèmes"
install: "Installer un thème"
@ -1227,8 +1228,8 @@ _theme:
accentLighten: "Plus clair"
fgHighlighted: "Texte mis en évidence"
_sfx:
note: "Nouveau post"
noteMy: "Mon post"
note: "Nouvelle publication"
noteMy: "Ma publication"
notification: "Notifications"
chat: "Discuter"
chatBg: "Discussion (arrière-plan)"
@ -1255,25 +1256,25 @@ _tutorial:
step1_2: "On va vous installer. Vous serez opérationnel en un rien de temps"
step2_1: "Tout d'abord, remplissez votre profil"
step2_2: "En fournissant quelques informations sur qui vous êtes, il sera plus facile
pour les autres de savoir s'ils veulent voir vos posts ou vous suivre."
pour les autres de savoir s'ils veulent voir vos publcations ou vous suivre."
step3_1: "Maintenant il est temps de suivre des gens !"
step3_2: "Vos fil dactualité Principal et Social sont basés sur les personnes que
vous suivez, alors essayez de suivre quelques comptes pour commencer.\nCliquez
sur le cercle plus en haut à droite d'un profil pour le suivre."
step4_1: "On y va."
step4_2: "Pour votre premier post, certaines personnes aiment faire un post {introduction}
ou un simple 'Bonjours tout le monde !'"
step4_2: "Pour votre première publication, certaines personnes aiment faire une
{introduction} ou un simple 'Bonjour tout le monde !'"
step5_1: "Des fils, des fils dactualité partout !"
step5_2: "Votre serveur a {timelines} fils différents disponibles !"
step5_3: "Le fil {icon} Principal est l'endroit où vous pouvez voir les publications
de vos abonnements."
step5_4: "La fil {icon} Local est l'endroit où vous pouvez voir les messages de
tout le monde sur ce serveur."
step5_4: "La fil {icon} Local est l'endroit où vous pouvez voir les publications
de tout le monde sur ce serveur."
step5_5: "Le fil {icon} Social est une combinaison des fils Principal et Local."
step5_6: "Le fil {icon} Recommandé est l'endroit où vous pouvez voir les publications
des serveurs recommandés par vos administrateurs."
step5_7: "Le fil {icon} Global est l'endroit où vous pouvez voir les messages de
tout les autres serveurs connectés."
step5_7: "Le fil {icon} Global est l'endroit où vous pouvez voir les publications
de tout les autres serveurs connectés."
step6_1: "Alors quel est cet endroit ?"
step6_2: "Eh bien, vous ne venez pas de rejoindre Firefish. Vous avez rejoint un
portail vers le Fediverse, un réseau interconnecté de milliers de serveurs, appelés
@ -1335,7 +1336,7 @@ _permissions:
"write:messaging": "Gérer les discussions"
"read:mutes": "Voir les comptes masqués"
"write:mutes": "Gérer les comptes masqués"
"write:notes": "Créer / supprimer des posts"
"write:notes": "Créer / supprimer des publications"
"read:notifications": "Afficher les notifications"
"write:notifications": "Gérer vos notifications"
"read:reactions": "Lire les réactions"
@ -1347,12 +1348,12 @@ _permissions:
"write:page-likes": "Gérer les mentions « J'aime » sur les pages"
"read:user-groups": "Voir les groupes d'utilisateur·rice·s"
"write:user-groups": "Éditer les groupes des utilisateur·rice·s"
"read:channels": "Lire les canaux"
"write:channels": "Gérer les canaux"
"read:channels": "Lire vos chaînes"
"write:channels": "Gérer vos chaînes"
"read:gallery": "Voir la galerie"
"write:gallery": "Éditer la galerie"
"read:gallery-likes": "Voir les mentions « J'aime » dans la galerie"
"write:gallery-likes": "Gérer les mentions « J'aime » dans la galerie"
"read:gallery-likes": "Voir vos favoris de la galerie"
"write:gallery-likes": "Gérer vos favoris de la galerie"
_auth:
shareAccess: "Autoriser \"{name}\" à accéder à votre compte ?"
shareAccessAsk: "Voulez-vous vraiment autoriser cette application à accéder à votre
@ -1364,12 +1365,13 @@ _auth:
copyAsk: "Veuillez coller le code dautorisation suivant dans l'application :"
allPermissions: Accès complet au compte
_antennaSources:
all: "Tous les posts"
homeTimeline: "Posts provenant des utilisateur·rice·s auxquel·les je suis abonné"
users: "Posts venant de la part dutilisateur·rice·s précis"
userList: "Posts venant dune liste spécifique"
userGroup: "Posts venant dutilisateur·rice·s du groupe spécifié"
instances: Posts de tous les utilisateurs d'un serveur
all: "Toutes les publications"
homeTimeline: "Publications provenant des utilisateur·rice·s auxquel·les je suis
abonné"
users: "Publications venant de la part dutilisateur·rice·s précis"
userList: "Publications venant dune liste spécifique"
userGroup: "Publications venant dutilisateur·rice·s du groupe spécifié"
instances: Publications de tous les utilisateurs d'un serveur
_weekday:
sunday: "Dimanche"
monday: "Lundi"
@ -1402,7 +1404,7 @@ _widgets:
_userList:
chooseList: Sélectionner une liste
unixClock: Horloge UNIX
meiliIndexCount: Posts indexés
meiliIndexCount: Publications indexées
serverInfo: Info serveur
meiliStatus: État du serveur
meiliSize: Taille de lindex
@ -1438,7 +1440,7 @@ _poll:
_visibility:
public: "Public"
publicDescription: "Publier sur tous les fils publics"
home: "Non-listés"
home: "Non-listé"
homeDescription: "Publier sur le fil principal uniquement"
followers: "Abonné·e·s"
followersDescription: "Publier à vos abonné·e·s et mentions uniquement"
@ -1447,16 +1449,16 @@ _visibility:
localOnly: "Local seulement"
localOnlyDescription: "Caché pour les utilisateur·rice·s distant"
_postForm:
replyPlaceholder: "Répondre à ce post ..."
quotePlaceholder: "Citez ce post ..."
replyPlaceholder: "Répondre à cette publication…"
quotePlaceholder: "Citez cette publication…"
channelPlaceholder: "Publier sur une chaîne…"
_placeholders:
a: "Quoi de neuf ?"
b: "Il s'est passé quelque chose ?"
c: "Quavez-vous en tête ?"
d: "Désirez-vous publier quelques mots ?"
e: "Écrivez ici"
f: "En attente de vos écrits ..."
e: "Commencez à écrire…"
f: "En attente de vos écrits"
_profile:
name: "Nom"
username: "Nom dutilisateur·rice"
@ -1474,7 +1476,7 @@ _profile:
locationDescription: Si vous entrez votre ville en premier, votre heure locale sera
affichée aux autres utilisateur·rice·s.
_exportOrImport:
allNotes: "Tous les posts"
allNotes: "Toutes les publications"
followingList: "Abonnements"
muteList: "Comptes masqués"
blockingList: "Comptes bloqués"
@ -1562,11 +1564,11 @@ _pages:
button: "Bouton"
if: "Si"
_if:
variable: "Variables"
post: "Formulaire de publication"
variable: "Variable"
post: "Champ de publication"
_post:
text: "Contenu"
attachCanvasImage: "Publier avec Toile comme image"
attachCanvasImage: "Publier une image sur la Toile"
canvasId: "Toile ID"
textInput: "Entrée textuelle"
_textInput:
@ -1588,10 +1590,10 @@ _pages:
id: "Toile ID"
width: "Largeur"
height: "Hauteur"
note: "Post intégré"
note: "Publication intégrée"
_note:
id: "Identifiant du post"
idDescription: "Vous pouvez aussi coller l'URL du post ici."
id: "Identifiant de la publication"
idDescription: "Vous pouvez aussi coller l'URL de la publication ici."
detailed: "Afficher les détails"
switch: "Interrupteur"
_switch:
@ -1629,7 +1631,7 @@ _pages:
default: "Valeur par défaut"
script:
categories:
flow: "Contrôle"
flow: "Contrôle de flux"
logical: "Opération logique"
operation: "Calculer"
comparison: "Comparer"
@ -1782,7 +1784,7 @@ _pages:
splitStrByLine: "Séparer le texte par des sauts de lignes"
_splitStrByLine:
arg1: "Texte"
ref: "Variables"
ref: "Variable"
aiScriptVar: "Variable d'AiScript"
fn: "Fonction"
_fn:
@ -1842,8 +1844,8 @@ _notification:
followBack: "Suivre"
reply: "Répondre"
renote: "Boosts"
reacted: a réagit à votre Note
renoted: a boosté votre post
reacted: a réagit à votre publication
renoted: a boosté votre publication
voted: a voté pour votre sondage
_deck:
alwaysShowMainColumn: "Toujours afficher la colonne principale"
@ -1883,8 +1885,8 @@ manageGroups: Gérer les groupes
moderation: Modération
disableDrawer: Ne pas utiliser de menus déroulants
preferencesBackups: Sauvegarde des préférences
confirmToUnclipAlreadyClippedNote: Ce message fait déjà partie du clip "{name}". Voudriez-vous
plutôt le supprimer du clip ?
confirmToUnclipAlreadyClippedNote: Cette publication fait déjà partie du clip "{name}".
Voudriez-vous plutôt le supprimer du clip ?
instanceSecurity: Sécurité du serveur
recommended: Recommandé
recentNDays: Les derniers {n} jours
@ -2005,7 +2007,7 @@ noThankYou: Non merci
addInstance: Ajouter un serveur
renoteMute: Masquer les boosts
flagSpeakAsCat: Parler comme un chat
flagSpeakAsCatDescription: Vos messages seront nyanifiés en mode chat
flagSpeakAsCatDescription: Vos messages seront "nyanifiés" en mode chat
hiddenTags: Hashtags cachés
hiddenTagsDescription: "Lister les hashtags (sans le #) que vous souhaitez cacher
de Tendances et Découvrir. Les hashtags cachés sont toujours découvrables par d'autres
@ -2060,14 +2062,14 @@ pushNotificationAlreadySubscribed: Notifications push déjà activées
logoImageUrl: URL de l'image du logo
moveToLabel: 'Compte vers lequel vous migrez:'
moveFrom: Migrer vers ce compte depuis un ancien compte
defaultReaction: Émoji de réaction par défaut pour les posts entrants et sortants
defaultReaction: Émoji de réaction par défaut pour les publications entrantes et sortantes
license: Licence
indexPosts: Indexer les Posts
indexPosts: Indexer les publications
indexNotice: Indexation en cours. Cela prendra certainement du temps, veuillez ne
pas redémarrer votre serveur pour au moins une heure.
customKaTeXMacro: Macros KaTeX personnalisées
enableCustomKaTeXMacro: Activer les macros KaTeX personnalisées
noteId: ID des Posts
noteId: ID des publications
customKaTeXMacroDescription: "Définissez des macros pour écrire des expressions mathématiques
simplement ! La notation se conforme aux définitions de commandes LaTeX et s'écrit
\\newcommand{\\·name}{content} ou \\newcommand{\\name}[number of arguments]{content}.
@ -2081,37 +2083,37 @@ customKaTeXMacroDescription: "Définissez des macros pour écrire des expression
enableRecommendedTimeline: Activer le fil recommandé
silenceThisInstance: Masquer ce serveur
silencedInstances: Serveurs masqués
silenced: Silencieux
silenced: Masqué
deleted: Effacé
editNote: Modifier note
editNote: Modifier publication
edited: 'Modifié à {date} {time}'
flagShowTimelineRepliesDescription: Si activé, affiche dans le fil les réponses des
utilisatieur·rice·s aux posts des autres.
utilisatieur·rice·s aux publications des autres.
_experiments:
alpha: Alpha
beta: Beta
enablePostImports: Autoriser l'importation de messages
enablePostImports: Autoriser l'importation de publications
title: Expérimentations
postImportsCaption: Permet aux utilisateurs d'importer leurs publications à partir
de leurs anciens comptes Firefish, Misskey, Mastodon, Akkoma et Pleroma. Cela
peut entraîner des ralentissements lors du chargement si votre file d'attente
est congestionnée.
findOtherInstance: Trouver un autre serveur
userSaysSomethingReasonQuote: '{name} a cité un post contenant {reason}'
userSaysSomethingReasonQuote: '{name} a cité une publication contenant {reason}'
signupsDisabled: Les inscriptions sur ce serveur sont actuellement désactivés, mais
vous pouvez toujours vous inscrire sur un autre serveur ! Si vous avez un code d'invitation
pour ce serveur, entrez-le ci-dessous s'il vous plait.
apps: Applications
userSaysSomethingReasonReply: '{noms} a répondu à un post contenant {raison}'
userSaysSomethingReasonReply: '{noms} a répondu à une publication contenant {raison}'
defaultValueIs: 'défaut: {valeur}'
searchPlaceholder: Recherchez sur Firefish
removeReaction: Retirer votre réaction
selectChannel: Sélectionner une chaîne
expandOnNoteClick: Ouvrir le post en cliquant
expandOnNoteClick: Ouvrir la publications en cliquant
preventAiLearning: Empêcher le récupération de données par des IA
listsDesc: Les listes vous laissent créer des fils personnalisés avec des utilisateur·rice·s
spécifié·e·s. Elles sont accessibles depuis la page des fils.
indexFromDescription: Laisser vide pour indexer toutes les Posts
indexFromDescription: Laisser vide pour indexer toutes les publications
_feeds:
jsonFeed: flux JSON
atom: Atom
@ -2119,18 +2121,18 @@ _feeds:
rss: RSS
alt: ALT
swipeOnMobile: Permettre le balayage entre les pages
expandOnNoteClickDesc: Si désactivé, vous pourrez toujours ouvrir les posts dans le
menu du clic droit et en cliquant sur lhorodatage.
indexFrom: Indexer à partir de lID des Posts
older: plus ancien
newer: plus récent
expandOnNoteClickDesc: Si désactivé, vous pourrez toujours ouvrir les publications
dans le menu du clic droit et en cliquant sur lhorodatage.
indexFrom: Indexer à partir de lID des publications
older: ancien
newer: récent
accessibility: Accessibilité
silencedInstancesDescription: Listez les noms de domaine de serveurs que vous voulez
masquer. Les comptes des serveurs listés seront traités comme "Masqués", ne pourront
faire que des demandes dabonnement, et ne pourront pas mentionner les comptes locaux
si non-suivis. Cela naffectera en rien les serveurs bloqués.
antennasDesc: "Les Antennes affichent de nouveaux posts selon les critères que vous
indiqués.\nElles peuvent être consultées depuis la page des fils."
antennasDesc: "Les Antennes affichent de nouvelles publications selon les critères
que vous indiqués.\nElles peuvent être consultées depuis la page des fils."
image: Image
video: Vidéo
audio: Audio
@ -2139,10 +2141,10 @@ cw: Avertissement de contenu
xl: XL
reflectMayTakeTime: Il pourra sécouler un certain temps avant que les changements
ne soient reflétés.
userSaysSomethingReasonRenote: '{name} a boosté un post contenant {reason}'
userSaysSomethingReasonRenote: '{name} a boosté une publication contenant {reason}'
sendModMail: Envoyer un avis à la modération
clipsDesc: Les clips sont comme des favoris catégorisés pouvant être partagés. Vous
pouvez créer des clips à partir du menu de chaque post.
pouvez créer des clips à partir du menu de chaque publication.
unclip: Dé-clipper
secureMode: Mode sécurisé (Authorized Fetch)
secureModeInfo: Quand sollicité depuis d'autres serveurs, ne pas répondre sans preuve.
@ -2175,8 +2177,8 @@ isPatron: Mécène Firefish
_filters:
fromUser: De lutilisateur
withFile: Avec fichier
notesBefore: Posts avant
notesAfter: Posts après
notesBefore: Publications précédentes
notesAfter: Publications suivantes
followersOnly: Abonnés uniquement
followingOnly: Abonnements uniquement
fromDomain: Du domaine
@ -2202,3 +2204,5 @@ delete2faConfirm: Cela supprimera de manière irréversible la double authentifi
inputNotMatch: L'entrée ne correspond pas
deletePasskeysConfirm: Cela supprimera de manière irréversible toutes les clés d'accès
et les clés de sécurité sur ce compte. Souhaitez-vous continuer ?
addRe: Ajouter "re:" au début dun avertissement de contenu (CW) en réponse à une
publication avec un avertissement de contenu

View file

@ -1002,6 +1002,7 @@ _aboutFirefish:
pleaseDonateToHost: Silakan pertimbangkan juga berdonasi ke server rumah kamu, {host},
untuk membantu dengan biaya operasi.
donateHost: Berdonasi ke {host}
misskeyContributors: Kontributor Misskey
_nsfw:
respect: "Sembunyikan media NSFW"
ignore: "Jangan sembunyikan media NSFW"
@ -2163,3 +2164,4 @@ delete2fa: Nonaktifkan 2FA
delete2faConfirm: Ini akan menghapus 2FA secara permanen pada akun ini. Lanjutkan?
deletePasskeysConfirm: Ini akan menghapus semua passkeys dan kunci keamanan pada akun
ini secara permanen. Lanjutkan?
addRe: Tambahkan "re:" pada awal komentar balasan postingan dengan peringatan konten

View file

@ -796,7 +796,7 @@ gallery: "ギャラリー"
recentPosts: "最近の投稿"
popularPosts: "人気の投稿"
shareWithNote: "投稿で共有"
ads: "広告"
ads: "コミュニティバナー"
expiration: "期限"
memo: "メモ"
priority: "優先度"
@ -928,7 +928,7 @@ beta: "ベータ"
enableAutoSensitive: "自動NSFW判定"
enableAutoSensitiveDescription: "利用可能な場合は、機械学習を利用して自動でメディアにNSFWフラグを設定します。この機能をオフにしても、サーバーによっては自動で設定されることがあります。"
activeEmailValidationDescription: "ユーザーのメールアドレスのバリデーションを、捨てアドかどうかや実際に通信可能かどうかなどを判定しより積極的に行います。オフにすると単に文字列として正しいかどうかのみチェックされます。"
showAds: "広告を表示する"
showAds: "コミュニティバナーを表示する"
navbar: "ナビゲーションバー"
shuffle: "シャッフル"
account: "アカウント"
@ -1981,4 +1981,10 @@ _feeds:
rss: RSS
jsonFeed: JSONフィード
copyFeed: フィードのURLをコピー
origin: オリジン
origin: オリジナル
delete2fa: 2要素認証を無効化
deletePasskeys: パスキーを削除
delete2faConfirm: これで、このアカウントの2要素認証は完全に削除されます。続行しますか?
inputNotMatch: 入力が一致しません
deletePasskeysConfirm: これで、このアカウントのパスキーは完全に削除されます。続行しますか?
confirm: "確認"

View file

@ -114,3 +114,607 @@ mention: Omtale
mentions: Omtaler
edited: Redigert {date} {time}
cw: Innholdsadvarsel
suspendConfirm: Er du sikker på at du vil suspendere denne kontoen?
recipient: Mottaker(e)
annotation: Kommentarer
registeredAt: Registrert
federation: Føderering
blockThisInstance: Blokker denne tjeneren
cpuAndMemory: CPU og minne
silencedInstances: Stumme tjenere
network: Nettverk
disk: Lagring
instanceInfo: Tjenerinformasjon
blockedInstancesDescription: Liste over maskinnavn på tjenere du vil blokkere. Blokkerte
tjenere vi ikke lenger kunne kommunisere med denne tjeneren.
blockedUsers: Blokkerte brukere
mutedUsers: Stumme brukere
editProfile: Rediger profil
done: Ferdig
exploreUsersCount: Det er {count} brukere
moderation: Moderering
securityKey: Sikkerhetsnøkkel
registerSecurityKey: Registerer en sikkerhetsnøkkel
recentlyDiscoveredUsers: Nylig oppdagede brukere
nUsersMentioned: Nevnt av {n} brukere
cacheClear: Slett mellomlager
unblock: Avblokker
suspend: Suspender
instanceFollowing: Følger på tjener
instanceFollowers: Følgere fra tjener
imageUrl: Bilde-URL
remove: Slett
keepOriginalUploading: Behold opprinnelig bilde
images: Bilder
birthday: Fødselsdag
yearsOld: '{age} år gammel'
renameFolder: Gi katalogen nytt navn
remoteUserCaution: Informasjon fra eksterne brukere kan være ufullstendig.
activity: Aktivitet
drive: Disk
renameFile: Omdøp fil
folderName: Katalognavn
createFolder: Opprett katalog
inputNewDescription: Oppgi ny bildetekst
inputNewFolderName: Oppgi nytt katalognavn
copyUrl: Kopier URL
hcaptchaSiteKey: hCaptcha-nøkkel for nettstedet
hcaptchaSecretKey: Hemmelig hCaptcha-nøkkel
recaptchaSiteKey: Nettstednøkkel til reCAPTCHA
recaptchaSecretKey: Hemmelig nøkkel til reCAPTCHA
unsilenceConfirm: Er du sikker på at du vil omgjøre stummingen av denne brukeren?
popularUsers: Populære brukere
moderator: Moderator
groupName: Gruppenavn
transfer: Overfør
preferencesBackups: Foretrukne sikkerhetskopier
edit: Rediger
emailServer: Eposttjener
testEmail: Test epost-utsending
notificationSettingDesc: Velg typen av varlinger som skal vises.
useGlobalSetting: Bruk globale innstillinger
useGlobalSettingDesc: Hvis dette er slått på vil varslingsinnstillingene til kontoen
bli brukt. Om den er slått av kan du bruke individuell konfigurasjon.
attachCancel: Slett vedegg
markAsSensitive: Merk som sensitivt innhold
renoteMute: Stum fremhevinger
renoteUnmute: Vis boosts fra bruker
addEmoji: Legg til
settingGuide: Foreslåtte innstillinger
cacheRemoteFilesDescription: Når denne innstillingen er avslått vil eksterne filer
lastes direkte fra andre tjerene. Å slå dette av vil føre til mindre bruk av lagringsplass,
men vil øke nettverkstrafikken fordi miniatyrbilder ikke vil bli generert.
unsuspend: Fjern suspendering
selectInstance: Velg en tjener
flagShowTimelineReplies: Vis svar i tidslinje
latestRequestSentAt: Siste forespørsel sendt
latestRequestReceivedAt: Siste forespørsel mottatt
latestStatus: Siste status
storageUsage: Lagringsplass brukt
charts: Grafer
perHour: Per time
perDay: Per dag
stopActivityDelivery: Stopp sending av aktiviteter
jobQueue: Jobbkø
clearQueue: Tøm kø
muteAndBlock: Stumming og blokkering
noInstances: Ingen tjenere
noteDeleteConfirm: Er du sikker på at du vil slette denne posten?
pinLimitExceeded: Du kan ikke feste flere poster
subscribing: Abonnerer
publishing: Publisering
usernameOrUserId: Brukernavn eller brukeridentifikator
removed: Slettet
removeAreYouSure: Er du sikker på at du ønsker å slette "{x}"?
deleteAreYouSure: Er du sikker på at du vil slette "{x}"?
resetAreYouSure: Sikker på at du ønsker å nullstille?
messaging: Chat
uploadFromUrlMayTakeTime: Det kan ta litt tid før opplastingen er ferdig.
manageGroups: Administrer grupper
tos: Vilkår for bruk
registeredDate: Ble med
location: Lokasjon
darkThemes: Mørke tema
whenServerDisconnected: Ved bortfall av nettverksforbindelse mot tjeneren
unwatch: Slutt å følge med på
accept: Godkjenn
reject: Avslå
normal: Normal
instanceName: Tjenernavn
instanceDescription: Tjenerbeskrivelse
maintainerName: Administrator
maintainerEmail: Administrator-epost
monthX: '{month}'
connectService: Koble til
disconnectService: Koble fra
enableLocalTimeline: Aktiver lokal tidslinje
enableRegistration: Tillat registrering av nye brukere
invite: Inviter
driveCapacityPerLocalAccount: Lagring pr lokale bruker
driveCapacityPerRemoteAccount: Lagring pr eksterne bruker
inMb: I megabyte
iconUrl: Ikon-URL
pinnedUsers: Festede brukere
pinnedPagesDescription: Legg inn stien (en per linje) til sidene du ønsker å vise
på topp for denne tjeneren.
antennaKeywords: Nøkkelord å lytte etter
antennaKeywordsDescription: Skill ordene med mellomrom for logisk "OG" og med linjeskift
for logisk "ELLER".
withReplies: Ta med svar
connectedTo: Følgende konto(er) er sammenkoblet
withFiles: Inkluder filer
lastUsed: Sist brukt
unregister: Avregistrer
passwordLessLogin: Passordløs innlogging
share: Del
markAsReadAllNotifications: Marker alle varsler som lest
markAsReadAllTalkMessages: Marker alle meldinger som lest
inputMessageHere: Skriv melding her
close: Lukk
groups: Grupper
quoteAttached: Siter
noMessagesYet: Ingen meldinger ennå
newMessageExists: Det er nye meldinger
invitations: Invitasjoner
usernameInvalidFormat: Du kan bruke store og små bokstaver, tall og understrek.
weakPassword: Svakt passord
normalPassword: Normalt passord
doing: Prosesserer...
category: Kategori
tags: Nøkkelord
docSource: Kilden til dette dokumentet
createAccount: Opprett konto
existingAccount: Eksisterende konto
regenerate: Regenerer
fontSize: Skriftstørrelse
objectStorageRegionDesc: Spesifiser en region som f.eks. 'xx-east-1'. Hvis tjenesten
ikke skiller mellom regioner kan du la feltet stå blankt eller skrive 'us-east-1'.
yourAccountSuspendedTitle: Denne kontoen er suspendert
themeEditor: Tema-editor
emptyToDisableSmtpAuth: La brukernavn og passord stå tomme for å ikke autentisere
mot SMTP-tjeneren
pinnedNote: Festet post
cacheRemoteFiles: Mellomlagre eksterne filer
setWallpaper: Set bakgrunn
noSuchUser: Finner ikke brukeren
lookup: Slå opp
saved: Lagret
enableGlobalTimeline: Aktiver global tidslinje
enableRecommendedTimeline: Aktiver foreslått tidslinje
pinnedClipId: Festede bokmerker
recaptcha: reCAPTCHA
notesAndReplies: Poster og svar
recentlyUpdatedUsers: Nylig aktive brukere
menu: Meny
silenceThisInstance: Stum denne tjeneren
pageLoadErrorDescription: Vanligvis skyldes dette nettverksfeil eller mellomlagring
i nettleseren. Prøv å tømme mellomlageret og prøv på nytt.
you: Du
showEmojisInReactionNotifications: Vis emojier i reaksjonsvarsler
rememberNoteVisibility: Husk synlighetsinnstillinger for poster
reactionSettingDescription2: Trekk for å flytte, klikk for å slette, trykk "+" for
å legge til.
reactionSetting: Reaksjoner som skal vises i reaksjonsvelgeren
blockConfirm: Er du sikker på at du vil blokkere denne kontoen?
unblockConfirm: Er du sikker på at du vil avblokkere denne kontoen?
flagAsBot: Merk denne kontoen som en bot
flagAsCat: Er du en katt? 😺
editWidgetsExit: Ferdig
editWidgets: Rediger skjermelementer
emoji: Emoji
emojis: Emoji
customEmojis: Egen emoji
autoAcceptFollowed: Automatisk tillat følgerforespørsler fra kontoer du følger
clearCachedFilesConfirm: Er du sikker på at du vil slette alle mellomlagrede eksterne
filer?
hiddenTagsDescription: 'List nøkkelordene (uten #) du ønsker å skjule fra trending
og utforsking. Utover dette kan nøkkelord som er skjulte fortsatt brukes.'
silenced: Stummet
blocked: Blokkert
processing: Prosesserer
preview: Forhåndsvisning
noCustomEmojis: Ingen emoji
noJobs: Ingen jobber
federating: Føderering
notResponding: Ingen svar
changePassword: Endre passord
retypedNotMatch: Innholdet i feltene stemmer ikke overens.
newPassword: Nytt passord
attachFile: Legg ved filer
announcements: Annonseringer
themeForDarkMode: Tema i mørk modus
light: Lyst
dark: Mørkt
syncDeviceDarkMode: Samkjør mørk modus med maskininnstillingene
deleteFolder: Slett katalogen
addFile: Legg til fil
tosUrl: URL til vilkår for tjenesten
circularReferenceFolder: Målkatalogen ligger under katalogen du prøver å flytte.
rename: Gi nytt navn
avatar: Brukerbilde
disablingTimelinesInfo: Administratorer og moderatorer vil alltid ha tilgang til alle
tidslinjer, selv om de ikke er aktiverte.
registration: Registrer
messagingWithGroup: Gruppechat
title: Tittel
text: Tekst
tooShort: For kort
tooLong: For langt
joinOrCreateGroup: Bli invitert inn til en gruppe eller lag dine egne.
tapSecurityKey: Trykk på sikkerhetsnøkkelen
or: Eller
language: Språk
uiLanguage: Språk for brukergrensesnitt
groupInvited: Du har blitt invitert til en gruppe
disableDrawer: Ikke bruk skuffe-menyer
expandOnNoteClick: Åpne post ved klikk
expandOnNoteClickDesc: Om du deaktiverer kan du fortsatt åpne poster fra objektmenyen
eller ved å klikke på tidsstempelet.
userSuspended: Denne brukeren er suspendert.
userSilenced: Denne brukeren er stummet.
channelFederationWarn: Kanaler blir ennå ikke federert til andre tjenere
enableInfiniteScroll: Last mer automatisk
visibility: Synlighet
regexpError: Feil i regulært uttrykk
instanceMute: Tjener-stumming
create: Opprett
messageRead: Les
noMoreHistory: Det er ikke mer historikk
emptyFolder: Katalogen er tom
thisYear: År
basicInfo: Basisinformasjon
help: Hjelp
members: Medlemmer
smtpPort: Port
error: Feil
somethingHappened: Noe gikk galt
retry: Prøv på nytt
manageLists: Administrer lister
loginFailed: Innlogging feilet
general: Generell
accountMoved: 'Brukeren har flyttet til en ny konto:'
wallpaper: Bakgrunn
addAccount: Legg til konto
showOnRemote: Vis opprinnelig side
host: Tjener
selectUser: Velg en bruker
operations: Operasjoner
software: Programvare
version: Versjon
metadata: Metadata
blockedInstances: Blokkerte tjenere
hiddenTags: Skjulte nøkkelord
suspended: Suspendert
instanceUsers: Brukere på denne tjeneren
security: Sikkerhet
currentPassword: Nåværende passord
more: Mer!
upload: Last opp
explore: Utforsk
themeForLightMode: Tema i lys modus
lightThemes: Lyse tema
fileName: Filnavn
selectFile: Velg en fil
selectFiles: Velg filer
selectFolder: Velg en katalog
selectFolders: Velg kataloger
exploreFediverse: Utforsk konføderasjonen
userList: Lister
about: Om
objectStorage: Objektlagring
useObjectStorage: Bruk objektlagring
objectStorageBaseUrl: Base-URL
installedApps: Autoriserte applikasjoner
nothing: Ikke noe å se her
deleteAllFilesConfirm: Er du sikker på at du vil slette alle filer?
updateRemoteUser: Oppdater informasjon om ekstern bruker
deleteAllFiles: Slett alle filer
enterFileDescription: Legg til bildetekst
leaveConfirm: Det er ulagrede endringer. Vil du forkaste dem?
enableAll: Slå på alle
generateAccessToken: Generer adgangstegn
disableAll: Slå av alle
permission: Tilganger
userSaysSomethingReason: '{name} skrev {reason}'
selectChannel: Velg en kanal
flagAsCatDescription: Du vil få katteører og snakke som en katt!
flagSpeakAsCat: Snakk som en katt
flagSpeakAsCatDescription: Postene dine vil bli nyanifiserte når du er i kattemodus
removeWallpaper: Fjern bakgrunn
flagShowTimelineRepliesDescription: Vis svar fra brukere på andre brukeres poster
i tidslinjen når aktivert.
proxyAccountDescription: 'En stedfortreder-konto er en konto som i noen situasjoner
oppfører seg som en ekstern følger for en bruker. For eksempel: når en ekstern bruker
blir lagt i en liste vil den eksterne brukeren ikke uten videre sendt til tjeneren
dersom ingen lokale brukere følger den eksterne brukeren. Da vil stedfortrederen
følge brukeren i stedet.'
instances: Tjenere
clearQueueConfirmTitle: Er du sikker på at du vil tømme køen?
clearQueueConfirmText: Alle usendte meldinger i køen vil ikke bli sendt til andre
tjenere. Vanligvis er denne operasjonen unødvendig.
clearCachedFiles: Tøm mellomlager
silencedInstancesDescription: Liste over tjenere du vil stumme. Kontoer på stumme
tjenere vil bare kunne lage følgerforespørsler, og kan ikke referere til lokale
kontoer med mindre de følges. Dette vil ikke påvirke de blokkerte tjenerne.
noUsers: Ingen brukere
uploadFromUrl: Last opp fra bildelenke
uploadFromUrlRequested: Opplasting forespurt
start: Start
disconnectedFromServer: Forbindelsen til tjeneren er brutt
reload: Last om
doNothing: Ignorer
theme: Tema
reloadConfirm: Vil du oppdatere tidslinjen?
watch: Følg med på
thisMonth: Måned
today: I dag
dayX: '{day}'
integration: Integrasjoner
yearX: '{year}'
pages: Sider
enableRecaptcha: Slå på reCAPTCHA
antennasDesc: "Antenner fanger opp nye poster etter et sett kriterier du setter opp!\n
Du kommer til dem fra tidslinje-siden."
manageAntennas: Administrer antenner
enableServiceworker: Slå på varsling for nettleseren
pinnedNotes: Festede poster
antennaUsersDescription: List opp ett brukernavn per linje
antennaInstancesDescription: List opp en tjener per linje
caseSensitive: Skill mellom små og store bokstaver
silence: Stillhet
silenceConfirm: Er du sikker på at du vil stumme denne brukeren?
unsilence: Avslutt stumming
recentlyRegisteredUsers: Nye brukere
token: Adgangstegn
popularTags: Populære nøkkelord
administrator: Administrator
twoStepAuthentication: Tofaktor-autentisering
securityKeyName: Nøkkelnavn
reduceUiAnimation: Demp animasjoner i brukergrensesnittet
notFound: Ikke funnet
uploadFolder: Standardkatalog for opplastinger
createGroup: Opprett gruppe
notFoundDescription: Fant ingen sider som samsvarer med enne URL-en.
ownedGroups: Grupper du eier
joinedGroups: Grupper du er med i
invites: Invitasjoner
messagingWithUser: Privat chat
enable: Slå på
quoteQuestion: Sett inn som sitat?
onlyOneFileCanBeAttached: Du kan bare legge ved én fil til en melding
signinRequired: Registrer eller logg inn før du fortsetter
invitationCode: Invitasjonskode
checking: Sjekker...
available: Tilgjengelig
unavailable: Ikke tilgjengelig
passwordMatched: Likt
passwordNotMatched: Stemmer ikke
signinWith: Logg inn med {x}
signinFailed: Klarer ikke å logge inn. Brukernavn eller passord er feil.
objectStorageBaseUrlDesc: "URL-en som brukes som referanse. Oppgi URL-en til leveringsnettverket
(CDN) eller proxy om du bruker en av dem.\nFor S3 kan du bruke 'https://<bucket>.s3.amazonaws.com'
og for GCS og tilsvarende tjenester 'https://storage.googleapis.com/<bucket>'."
objectStorageEndpoint: Endepunkt
objectStorageRegion: Region
installedDate: Autorisert
lastUsedDate: Sist brukt
state: Tilstand
sort: Sortering
yourAccountSuspendedDescription: Denne kontoen er suspendert fordi den har brutt tjenerens
retningslinjer eller lignende. Kontakt administratoren hvis du trenger en mer detaljert
grunn. Ikke opprett en ny konto.
useCw: Skjul innhold
enablePlayer: Åpne videospiller
disablePlayer: Lukk videospiller
describeFile: Legg til tekst
author: Forfatter
useFullReactionPicker: Bruk reaksjonsvelger i full størrelse
width: Bredde
regexpErrorDescription: 'En feil oppsto under det regulære uttrykket på linje {line}
av stumming av {tab}:'
userSaysSomethingReasonRenote: '{name} fremhevet en post som inneholdt {reason}'
userSaysSomethingReasonQuote: '{name} siterte en post som inneholdt {reason}'
userSaysSomething: '{name} sa noe'
metrics: Metrikker
overview: Oversikt
logs: Logger
delayed: Forsinket
channel: Kanaler
flagAsBotDescription: Slå på denne innstillingen dersom kontoen styres av et program.
Dette er et flagg til andre utviklere for å hindre uendelige kjeder der roboter
responderer på hverandres meldinger og lar den interne håndteringen av kontoen i
Firefish være tilpasset bot-brukere.
aboutFirefish: Om Firefish
youShouldUpgradeClient: Last siden på nytt for å oppdatere klienten.
serverIsDead: Tjeneren svarer ikke. Prøv på nytt om en stund.
sensitive: Sensitivt innhold
unmarkAsSensitive: Fjern merking som sensitivt innhold
enterFileName: Skriv inn filnavn
mute: Stum
unmute: Fjern stumming
block: Blokker
unsuspendConfirm: Er du sikker på at du vil fjerne suspensjonen av denne kontoen?
selectList: Velg en liste
selectAntenna: Velg en antenne
selectWidget: Velg et skjermelement
emojiName: Emoji-navn
emojiUrl: Emoji-URL
searchWith: 'Søk etter: {q}'
intro: Installasjonen av Firefish er fullført! Lag en admin-bruker.
youHaveNoLists: Du har ingen lister
followConfirm: Er du sikker på at du vil følge {name}?
proxyAccount: Stedfortreder-konto
statistics: Statistikk
default: Standard
defaultValueIs: 'Standard: {value}'
newPasswordRetype: Gjenta nytt passord
fromDrive: Fra disk
fromUrl: Fra URL
nUsersRead: lest av {n}
uploadFromUrlDescription: URL til filen du vil laste opp
agreeTo: Jeg samtykker til {0}
home: Hjem
emptyDrive: Disken din er tom
unableToDelete: Klarte ikke å slette
inputNewFileName: Oppgi nytt filnavn
hasChildFilesOrFolders: Katalogen er ikke tom og kan derfor ikke slettes.
avoidMultiCaptchaConfirm: Å bruke flere Captcha-systemer kan forårsake uønskede krysseffekter
mellom dem. Ønsker å du slå av det andre aktive CAPTCHA-systemet? Om du ønsker å
ha begge på, trykk "Avbryt".
name: Navn
antennas: Antenner
antennaSource: Antennekilde
notifyAntenna: Varsle om nye poster
antennaExcludeKeywords: Nøkkelord som skal ekskluderes
retype: Skriv inn igjen
inviteToGroup: Inviter til gruppe
next: Neste
useOsNativeEmojis: Bruk operativsystemets emojier
youHaveNoGroups: Du har ingen grupper
noHistory: Ingen historikk er tilgjengelig
aboutX: Om {x}
signinHistory: Innloggings-historikk
strongPassword: Sterkt passord
noFollowRequests: Du har ingen utestående følgeforespørsler
openImageInNewTab: Åpne bilder i ny fane
dashboard: Dashbord
local: Lokal
objectStoragePrefix: Prefiks
objectStoragePrefixDesc: Filer vil bli lagret under kataloger med dette prefikset.
objectStorageEndpointDesc: La dette stå tomt om du bruker AWS S3, ellers kan du spesifisere
endepunktet som '<tjener>' eller '<tjener>:<port>', avhengig av hvilken tjeneste
du bruker.
objectStorageUseSSL: Bruk TLS
objectStorageUseSSLDesc: Skru dette av dersom du ikke vil bruke HTTPS for API-forbindelser.
uninstall: Avinstaller
ascendingOrder: Økende
descendingOrder: Synkende
removeAllFollowing: Avfølg alle brukere
deletedNote: Slettet post
height: Høyde
enableEmail: Slå på epost-utsendelse
smtpPass: Passord
smtpSecureInfo: Slå av dette om du bruker STARTTLS
database: Database
display: Vis
notificationSetting: Varslingsinnstillinger
other: Annet
removeAllFollowingDescription: Dette vil avfølge alle kontoer på tjeneren {host}.
Kjør denne for eksempel om tjeneren ikke lenger finnes.
inboxUrl: Innboks-URL
description: Beskrivelse
smtpUser: Brukernavn
smtpSecure: Bruk implisitt SSL/TLS for SMTP-forbindelser
userSaysSomethingReasonReply: '{name} svarte på en post som inneholdt {reason}'
makeActive: Aktiver
copy: Kopier
regenerateLoginToken: Lag innloggingstegn på nytt
pinnedUsersDescription: Liste av brukere (en per linje) som skal festes øverst under
"Utforsk".
resetPassword: Tilbakestill passord
newPasswordIs: Nytt passord er "{password}"
all: Alle
keepOriginalUploadingDescription: Lagrer det opprinnelige opplastedet bildet slik
det var originalt. Hvis du slår det av vil en versjon for visning på nett bli generert
ved opplasting.
startMessaging: Start en ny chat
group: Gruppe
renote: Fremhev
banner: Topp-bilde
nsfw: Sensitivt innhold
bannerUrl: URL til fane-bilde
backgroundImageUrl: URL til bakgrunnsbilde
pinnedPages: Festede sider
hcaptcha: hCaptcha
enableHcaptcha: Slå på hCaptcha
invisibleNote: Usynlig post
withFileAntenna: Bare poster med filer
markAsReadAllUnreadNotes: Marker alle poster som lest
noteOf: Post av {user}
xl: Ekstra stor
large: Stor
medium: Medium
small: Liten
tokenRequested: Gi tilgang til konto
pluginTokenRequestedDescription: Dette programtillegget vil kunne bruke tillatelsene
som settes her.
emailConfigInfo: Brukt for å bekrefte epost-adresser ved opprettelse av kontoer og
dersom du glemmer passordet
email: Epost
emailAddress: Epostadresse
smtpConfig: Konfigurasjon av SMTP-tjener
smtpHost: Tjener
showInPage: Vis på side
volume: Volum
fileIdOrUrl: Fil-id eller URL
reporter: Rapportert av
yes: Ja
loadRawImages: Last originale bilder i stedet for å vise miniatyrbilder
fillAbuseReportDescription: Fyll inn detaljer om innrapporteringen. Hvis det handler
om en bestemt post, inkluder URL til den.
openInSideView: Åpne i sidefelt
pollVotesCount: Antall stemmer sendt
lockedAccountInfo: Med mindre du setter synlighet til "Bare følgere" vil postene dine
være synlige for alle, selv om du krever at følgere må godtas manuelt.
disableShowingAnimatedImages: Ikke spill animerte bilder
pageLikesCount: Antall likte Sider
pageLikedCount: Antall mottatte likes på Sider
contact: Kontakt
useSystemFont: Bruk standard skriftsnitt fra systemet
unableToProcess: Operasjonen kunne ikke fullføres
send: Send
clientSettings: Klientinnstillinger
accountSettings: Kontoinnstillinger
promotion: Promotert
deleteAll: Slett alle
showFixedPostForm: Vis post-feltet på toppen av tidslinjen
sounds: Lyder
details: Detaljer
openInNewTab: Åpne i ny fane
followersCount: Antall følgere
sentReactionsCount: Antall sendte reaksjoner
appearance: Utseende
hideThisNote: Skjul denne posten
popout: Pop ut
recentUsed: Nylig brukt
install: Installer
weekOverWeekChanges: Endringer til forrige uke
dayOverDayChanges: Endringer til i går
listen: Lytt
system: System
none: Ingen
chooseEmoji: Velg en emoji
setMultipleBySeparatingWithSpace: Separer ulike innslag med mellomrom.
reportAbuse: Rapport
reportAbuseOf: Rapport {name}
abuseReported: Rapporten er sendt. Takk.
random: Tilfeldig
repliesCount: Antall svar sendt
repliedCount: Antall mottatte svar
followingCount: Antall fulgte kontoer
notSet: Ikke sendt
i18nInfo: 'Firefish blir oversatt til ulike språk av frivillige. Du kan hjelpe her:
{link}.'
accessibility: Tilgjengelighet
promote: Promoter
numberOfDays: Antall dager
serverLogs: Tjenerlogger
objectStorageSetPublicRead: Sett til "offentlig lesing" ved opplasting
behavior: Oppførsel
abuseReports: Rapporter
defaultNavigationBehaviour: Standard navigeringsoppførsel
abuseMarkAsResolved: Marker rapporten som løst
emailVerified: Epost er verifisert
noteFavoritesCount: Antall bokmerkede poster
editTheseSettingsMayBreakAccount: Endringer i disse innstillingene kan ødelegge kontoen
din.
instanceTicker: Tjenerinformasjon for poster
waitingFor: Venter på {x}
notesCount: Antall poster
receivedReactionsCount: Antall mottatte reaksjoner
pollVotedCount: Antall mottatte stemmer
no: Nei
alwaysMarkSensitive: Merk som "Sensitivt innhold" som standard
verificationEmailSent: En verifiserings-epost er sendt. Følg lenken i eposten for
å fullføre verifiseringen.
newNoteRecived: Det er nye poster

View file

@ -5,7 +5,7 @@ headlineFirefish: Uma plataforma de mídia social descentralizada e de código a
que é gratuita para sempre! 🚀
search: Pesquisar
gotIt: Entendi!
introFirefish: Bem vinde! Firefish é uma plataforma de mídia social descentralizada
introFirefish: Bem vindo! Firefish é uma plataforma de mídia social descentralizada
e de código aberto que é gratuita para sempre! 🚀
searchPlaceholder: Pesquise no Firefish
notifications: Notificações
@ -110,3 +110,137 @@ followRequests: Pedidos de seguimento
unfollow: Parar de seguir
followRequestPending: Pedido de seguimento pendente
enterEmoji: Insira um emoji
itsOff: Desativado
itsOn: Ativado
removeReaction: Retirar sua reação
reactionSettingDescription2: Arraste para reordenar, clique para deletar, pressione
“+” para adicionar.
rememberNoteVisibility: Lembrar configurações de visibilidade de postagem
enterFileName: Preencha o nome do arquivo
block: Bloquear
unblock: Desbloquear
suspend: Suspender
blockConfirm: Você tem certeza de que quer bloquear esta conta?
unblockConfirm: Você tem certeza de que quer desbloquear esta conta?
suspendConfirm: Você tem certeza de que quer suspender esta conta?
selectList: Selecione uma lista
selectChannel: Selecione um canal
addEmoji: Adicionar Emoji
settingGuide: Configurações recomendadas
cacheRemoteFilesDescription: Quando esta configuração está desativada, arquivos remotos
serão carregados diretamente do servidor remoto. Desativar isso irá diminuir o uso
de armazenamento, mas aumentar o tráfego, já que as thumbnails não serão geradas.
flagAsBot: Marcar esta conta como robô
flagAsCat: Você é um gato? 😺
flagAsCatDescription: Você receberá orelhas de gato e falará como um!
flagSpeakAsCat: Falar como um gato
dashboard: Painel
showFeaturedNotesInTimeline: Mostrar postagens em destaque nas linhas do tempo
objectStorage: Armazenamento de objetos
useObjectStorage: Utilizar armazenamento de objetos
objectStorageBaseUrl: URL base
objectStorageBucket: Balde
objectStorageBucketDesc: Por favor, especifique o nome do balde usado no seu provedor.
objectStorageRegion: Região
objectStorageRegionDesc: Especifique uma região como "xx-east-1". Se o seu serviço
não distingue entre as regiões, deixe esta em branco ou insira 'us-east-1'.
objectStorageUseSSL: Utilizar SSL
objectStorageUseSSLDesc: Desligue isso se você não utilizará HTTPS para conexões de
API
objectStorageUseProxy: Conecte-se por Proxy
lastUsedDate: Última utilização em
state: Estado
objectStorageUseProxyDesc: Desligue isso se você não utilizará um Proxy para conexões
com API
serverLogs: Logs de Servidor
details: Detalhes
nothing: Não há nada para ver aqui
installedDate: Autorizado em
sort: Ordenar
ascendingOrder: Ascendente
descendingOrder: Descendente
output: Saída
expandOnNoteClick: Abrir postagem ao clicar
updateRemoteUser: Atualizar informações do usuário remoto
deleteAllFiles: Excluir todos os arquivos
deleteAllFilesConfirm: Você tem certeza de que deseja excluir todos os arquivos?
yourAccountSuspendedTitle: Esta conta está suspensa
yourAccountSuspendedDescription: Esta conta foi suspensa por quebrar os termos de
serviço do servidor ou similares. Entre em contato com o administrador se você quiser
saber um motivo mais detalhado. Por favor, não crie uma nova conta.
menu: Menu
divider: Divisor
addItem: Adicionar Item
inboxUrl: URL da caixa de entrada
left: Esquerda
center: Centro
wide: Largo
narrow: Estreito
isModerator: Moderador
monthAndDay: '{day}/{month}'
pinned: Fixar ao perfil
pinnedNote: Postagem fixada
you: Você
clickToShow: Clique para exibir
showEmojisInReactionNotifications: Mostrar emojis nas notificações de reação
reactionSetting: Reações a exibir no seletor de reações
customEmojis: Emojis personalizados
emojis: Emojis
emojiName: Nome do Emoji
emoji: Emoji
emojiUrl: URL do Emoji
editWidgetsExit: Pronto
userSilenced: Este usuário está sendo silenciado.
objectStoragePrefix: Prefixo
volume: Volume
objectStorageS3ForcePathStyle: Use URLs de endpoint baseadas em caminho
none: Nenhum
masterVolume: Volume mestre
showInPage: Mostrar na página
expandOnNoteClickDesc: Se desativado, você ainda pode abrir postagens no menu do botão
direito do mouse ou clicando no timestamp.
disablePagesScript: Desativar o AiScript nas Páginas
isPatron: Patrono do Firefish
invite: Convite
inMb: Em megabytes
iconUrl: URL do Ícone
basicInfo: Informações básicas
pinnedUsers: Usuários fixados
fontSize: Tamanho da fonte
noFollowRequests: Você não tem nenhuma solicitação de seguimento pendente
openImageInNewTab: Abrir imagens em nova guia
local: Local
remote: Remoto
total: Total
appearance: Aparência
accessibility: Acessibilidade
accountSettings: Configurações de Conta
numberOfDays: Número de dias
hideThisNote: Esconder esta postagem
objectStoragePrefixDesc: Os arquivos serão armazenados em diretórios com este prefixo.
objectStorageEndpointDesc: Deixe isso vazio se você estiver usando AWS S3, de outra
forma especifique o endpoint como '<host>' ou '<host>:<port>', dependendo do serviço
que você está usando.
deleteAll: Excluir tudo
showFixedPostForm: Exibir o formulário de postagem no topo da linha do tempo
newNoteRecived: Há novas postagens
sounds: Sons
chooseEmoji: Selecione um emoji
unableToProcess: A operação não pôde ser concluída
recentUsed: Recentemente usado
install: Instalar
uninstall: Desinstalar
installedApps: Aplicações Autorizadas
removeAllFollowing: Parar de seguir todos os usuários seguidos
removeAllFollowingDescription: Executar isso faz parar de seguir todas as contas de
{host}. Por favor, execute isso se o servidor, por exemplo, não existir mais.
userSuspended: Este usuário foi suspenso.
isAdmin: Administrador
receiveFollowRequest: Solicitação de seguir recebida
followRequestAccepted: Solicitação de seguir aceita
add: Adicionar
reaction: Reações
enableEmojiReactions: Ativar reações com emoji
attachCancel: Remover anexo
flagShowTimelineReplies: Mostrar respostas na linha do tempo
addAccount: Adicionar conta

View file

@ -1,12 +1,12 @@
_lang_: "Türkçe"
introFirefish: "Hoş geldin! Firefish, sonsuza kadar ücretsiz olan, açık kaynaklı,
merkezi olmayan bir sosyal medya platformudur! 🚀"
monthAndDay: "{month}Ay {day}Gün"
search: "Arama"
monthAndDay: "{month}/{day}"
search: "Ara"
notifications: "Bildirimler"
username: "Kullanıcı Adı"
password: "Şifre"
forgotPassword: "şifremi unuttum"
forgotPassword: "Şifremi unuttum"
ok: "TAMAM"
gotIt: "Anladım!"
cancel: "İptal"
@ -19,14 +19,14 @@ otherSettings: "Diğer Ayarlar"
openInWindow: "Bir pencere ile aç"
profile: "Profil"
timeline: "Zaman çizelgesi"
noAccountDescription: "Bu kullanıcı henüz hakkındasını yazmadı."
noAccountDescription: "Bu kullanıcı henüz kendi hakkında kısmını yazmadı."
login: "Giriş Yap"
logout: ıkış Yap"
signup: "Kayıt Ol"
uploading: "Yükleniyor..."
users: "Kullanıcı"
users: "Kullanıcılar"
addUser: "Kullanıcı Ekle"
favorite: "Favoriler"
favorite: "Favorilere ekle"
favorites: "Favoriler"
unfavorite: "Favorilerden Kaldır"
favorited: "Favorilerime eklendi."
@ -142,7 +142,7 @@ _sfx:
notification: "Bildirim"
noteMy: Kendi Gönderim
note: Yeni gönderi
antenna: Anten
antenna: Antenler
chat: Sohbet
channel: Kanal bildirimleri
chatBg: Sohbet (Arkaplan)
@ -252,17 +252,17 @@ cacheRemoteFilesDescription: Bu ayar devre dışı bırakıldığında, uzak dos
ancak küçük resimler oluşturulmayacağından trafiği artıracaktır.
flagAsCatDescription: Kedi kulaklarına sahip olacak ve bir kedi gibi konuşacaksın!
flagSpeakAsCat: Kedi gibi konuş
setWallpaper: Arkaplan ayarla
setWallpaper: Arkaplanı ayarla
removeWallpaper: Arkaplanı sil
operations: Operasyonlar
clearCachedFiles: Ön belleği temizle
clearCachedFilesConfirm: Önbelleğe alınan tüm uzak dosyaları silmek istediğinizden
emin misiniz?
blockedInstancesDescription: Engellemek istediğiniz sunucuların ana bilgisayar adlarını
listeleyin. Listelenen sunucular artık bu sunucularla iletişim kuramayacak.
blockedInstancesDescription: Engellemek istediğiniz sunucuların domain adlarını listeleyin.
Listelenen sunucular artık bu sunucularla iletişim kuramayacak.
blockedUsers: Engellenmiş kullanıcılar
editProfile: Profilini düzenle
intro: Firefish'in indirilmesi tamamlandı! Lütfen yönetici hesap oluşturun.
intro: Firefish'in kururlumj tamamlandı! Lütfen yönetici hesap oluşturun.
instanceUsers: Sunucunun kullanıcıları
changePassword: Şifreyi değiştir
security: Güvenlik
@ -273,16 +273,16 @@ renameFolder: Bu klasörü yeniden adlandır
emptyFolder: Bu klasör boş
unableToDelete: Silinemiyor
inputNewDescription: Yeni başlık gir
hasChildFilesOrFolders: Bu klasör boş olduğundan silinemez.
hasChildFilesOrFolders: Bu klasör boş olmadığından dolayı silinemez.
disconnectedFromServer: Sunucuyla bağlantı kesildi
reload: Yenile
disablingTimelinesInfo: Yöneticiler ve Moderatörler, etkinleştirilmemiş olsalar bile
tüm zaman çizelgelerine her zaman erişebilir.
tüm zaman çizelgelerine her zaman erişebilirler.
pinnedUsersDescription: '"Keşfet" sekmesinde sabitlenecek kullanıcı adlarını satır
sonlarıyla ayırarak listeleyin.'
pinnedPages: Sabitlenmiş Sayfalar
pinnedPagesDescription: Bu sunucunun üst sayfasına sabitlemek istediğiniz Sayfaların
yollarını satır sonları ile ayırarak girin.
pinnedPagesDescription: Bu sunucunun üst kısmına sabitlemek istediğiniz Sayfaların
yollarını satır sonundan ayırarak girin.
enableHcaptcha: hCaptcha'yı Aktif Et
notifyAntenna: Yeni gönderileri bildir
recentlyUpdatedUsers: En son aktif kullanıcılar
@ -361,7 +361,7 @@ unfollowConfirm: "{name}'i takibi bırakmak istediğinizden emin misiniz?"
importRequested: Bir içe aktarma isteğinde bulundunuz. Bu biraz zaman alabilir.
somethingHappened: Bir hata ile karşılaşıldı
retry: Tekrar Dene
youShouldUpgradeClient: Bu sayfayı görüntülemek için, lütfen istemcinizi güncelleyin.
youShouldUpgradeClient: Bu sayfayı görüntülemek için, lütfen istemcinizi yenileyin.
reactionSetting: Tepki seçicide gösterilecek tepkiler
unmarkAsSensitive: NSFW işaretini kaldır
enterFileName: Dosya adı gir
@ -382,16 +382,16 @@ light: Aydınlık
dark: Karanlık
lightThemes: Aydınlık temalar
selectFiles: Dosyalar seç
selectFolders: Klasörler seç
selectFolders: Klasörleri seç
renameFile: Dosyayı yeniden adlandır
folderName: Klasör adı
createFolder: Klasör oluştur
copyUrl: URL'yi Kopyala
maintainerName: Sahip
maintainerEmail: Sahibin e-postası
maintainerName: Sahibi
maintainerEmail: Sahibinin e-postası
tosUrl: Kullanım Koşulları URL'si
monthX: '{month}'
basicInfo: Basit bilgi
basicInfo: Kısa bilgi
pinnedUsers: Sabitlenmiş kullanıcılar
manageAntennas: Antenleri Düzenle
name: İsim
@ -482,7 +482,7 @@ download: İndir
lists: Listeler
noLists: Hiç listen yok
cantRenote: Bu gönderi yükseltilemez.
cantReRenote: Yükseltme yükseltilemez.
cantReRenote: Bir yükseltme tekrar yükseltilemez.
mute: Sustur
block: Engelle
editWidgetsExit: Tamamlandı
@ -490,10 +490,10 @@ customEmojis: Özel Tepki
cpuAndMemory: İşlemci ve Bellek
selectInstance: Sunucu seç
instances: Sunucular
silencedInstancesDescription: Susturmak istediğiniz sunucuların ana bilgisayar adlarını
listeleyin. Listelenen sunuculardaki hesaplar "Sessiz" olarak değerlendirilir, yalnızca
takip istekleri yapabilir ve takip edilmediği takdirde yerel hesaplardan bahsedemez.
Bu, engellenen sunucuları etkilemeyecektir.
silencedInstancesDescription: Susturmak istediğiniz sunucuların domainlerini listeleyin.
Listelenen sunuculardaki hesaplar "Sessiz" olarak değerlendirilir, yalnızca takip
istekleri yapabilir ve takip edilmediği takdirde yerel hesaplardan bahsedemez. Bu,
engellenen sunucuları etkilemeyecektir.
muteAndBlock: Susturmalar ve Engeller
noteDeleteConfirm: Bu gönderiyi silmek istediğine emin misin?
resetAreYouSure: Gerçekten sıfırla?
@ -507,9 +507,9 @@ normal: Normal
thisMonth: Ay
enableRecaptcha: reCAPTCHA'yı Aktif Et
antennas: Antenler
recaptchaSiteKey: İnternet sitesi anahtarı
recaptchaSiteKey: Site anahtarı
withFileAntenna: Sadece dosyalı gönderiler
antennaInstancesDescription: Sunucu başı bir satır kullanın
antennaInstancesDescription: Satır başına bir sunucu listeleyin
moderator: Moderatör
moderation: Moderasyon
lastUsed: En son kullanılan
@ -658,11 +658,11 @@ reloadConfirm: Zaman çizelgesini yenilemek ister misiniz?
instanceName: Sunucu adı
circularReferenceFolder: Hedef klasör, taşımak istediğiniz klasörün bir alt klasörüdür.
instanceDescription: Sunucu açıklaması
driveCapacityPerLocalAccount: Kullanıcı başı Driver kapasitesi
driveCapacityPerRemoteAccount: Uzak kullanıcı başı Driver kapasitesi
driveCapacityPerLocalAccount: Kullanıcı başı Drive kapasitesi
driveCapacityPerRemoteAccount: Uzak kullanıcı başı Drive kapasitesi
inMb: Megabayt cinsinden
pinnedClipId: Sabitlenecek atacın ID'si
withFiles: Dosya içeren
pinnedClipId: Sabitlenecek klibin ID'si
withFiles: Dosya içerenler
recentlyRegisteredUsers: Yeni katılmış kullanıcılar
recentlyDiscoveredUsers: Yeni keşfedilmiş kullanıcılar
nUsersMentioned: '{n} kullanıcı tarafından bahsedildi'
@ -726,7 +726,7 @@ flagAsCat: Kedi misin? 😺
selectChannel: Kanal seç
emojiName: Emoji adı
showOnRemote: Orijinal sayfayı
flagSpeakAsCatDescription: Gönderileriniz kedi modundayken nyanifiye edilecek
flagSpeakAsCatDescription: Gönderileriniz kedi modundayken miyavdirilecektir
flagShowTimelineReplies: Yanıtları zaman çizelgesinde göster
silenceThisInstance: Bu sunucuyu sustur
proxyAccountDescription: Vekil hesabı, belirli koşullar altında kullanıcılar için
@ -739,25 +739,25 @@ software: Yazılım
version: Sürüm
federating: Federasyon
preview: Ön izleme
retypedNotMatch: Girişler uyuşmuyor.
retypedNotMatch: Girdiler uyuşmuyor.
attachFile: Dosya ekle
noSuchUser: Kullanıcı bulunamadı
removeAreYouSure: '"{x}" kaldırmak istediğinize emin misiniz?'
removeAreYouSure: '"{x}"i kaldırmak istediğinize emin misiniz?'
keepOriginalUploading: Orjinal resmi sakla
messageRead: Oku
deleteAreYouSure: '"{x}" silmek istediğinize emin misiniz?'
deleteAreYouSure: '"{x}"i silmek istediğinize emin misiniz?'
messaging: Sohbet
upload: Yükle
fromUrl: URL'den
agreeTo: '{0} kabul ediyorum'
tos: Kullanım Koşulları
drive: Bulut Depolama
drive: Drive
selectFolder: Klasör seç
inputNewFileName: Yeni dosya ismi gir
whenServerDisconnected: Sunucuyla bağlantı kesildiğinde
avatar: Avatar
rename: Yeniden Adlandır
banner: Afiş
banner: Banner
nsfw: NSFW
doNothing: Görmezden Gel
watch: İzle
@ -773,11 +773,11 @@ antennaExcludeKeywords: Hariç tutulacak anahtar kelimeler
antennaKeywordsDescription: AND koşulu için boşluklarla veya OR koşulu için satır
sonlarıyla ayırın.
caseSensitive: Büyük harf duyarlı
enableServiceworker: Tarayıcınız için Push-Bildirimleri Etkinleştirin
enableServiceworker: Tarayıcınız için Anlık Bildirimleri etkinleştirin
unsilenceConfirm: Bu kullanıcının susturma işlemini geri almak istediğinizden emin
misiniz?
userList: Listeler
antennaUsersDescription: Kullanıcı başı bir satır kullanın
antennaUsersDescription: Satır başına bir kullanıcı listeleyin
administrator: Yönetici
token: Token
cacheClear: Önbelleği temizle
@ -826,7 +826,7 @@ switch: Değiştir
popularPosts: Popüler sayfalar
inChannelSearch: Kanalda ara
administration: Yönetim
ads: Reklamlar
ads: Topluluk bannerları
low: Düşük
seperateRenoteQuote: Ayrı destek ve fiyat teklifi düğmeleri
sent: Gönderildi
@ -839,31 +839,31 @@ older: daha eski
exportRequested: Bir dışarı aktarma talebinde bulundunuz. Bu biraz zaman alabilir.
Tamamlandığında Drive'ınıza eklenecektir.
notes: Gönderiler
following: Takip Ediyor
following: Takip Edilenler
followers: Takipçiler
followsYou: Seni takip ediyor
pageLoadErrorDescription: Buna normalde ağ hataları veya tarayıcının önbelleği neden
olur. Önbelleği temizlemeyi deneyin ve biraz bekledikten sonra tekrar deneyin.
pageLoadErrorDescription: Bu problem genelde ağ hataları veya tarayıcının önbelleğinden
kaynaklanır. Önbelleği temizlemeyi deneyin ve biraz bekledikten sonra tekrar deneyin.
quote: Alıntıla
pinnedNote: Sabitlenmiş gönderi
renote: Yükselt
unrenote: Yükseltmeyi geri al
emojiUrl: Emoji URL
emojiUrl: Emoji URL'si
suspendConfirm: Bu hesabı askıya almak istediğinize emin misiniz?
addEmoji: Ekle
autoAcceptFollowed: Takip ettiğiniz kullanıcıların takip isteklerini otomatik olarak
onaylayın
general: Genel
accountMoved: 'Bu kullanıcı yeni bir hesapa taşındı:'
accountMoved: 'Bu kullanıcı yeni bir hesaba taşındı:'
wallpaper: Arkaplan
searchWith: 'Arat: {q}'
youHaveNoLists: Hiçbir listen yok
followConfirm: '{name} kullanıcısını takip etmek istediğine emin misin?'
metadata: Metadata
monitor: İzlengeç
monitor: Monitör
jobQueue: İş Sırası
noUsers: Kullanıcı bulunamadı
noInstances: Sunucu bulunamadı
noUsers: Kullanıcılar bulunamadı
noInstances: Sunucular bulunamadı
pinLimitExceeded: Daha fazla gönderi sabitleyemezsin
defaultValueIs: 'Varsayılan: {value}'
noCustomEmojis: Emoji yok
@ -871,7 +871,7 @@ blocked: Engellenmiş
default: Varsayılan
all: Tümü
subscribing: Abone Olunuyor
publishing: Yayınlanmak
publishing: Yayınlanıyor
notResponding: Cevap vermiyor
more: Daha fazla!
featured: Önerilen
@ -890,12 +890,12 @@ disconnectService: Bağlantıyı kes
enableGlobalTimeline: Global zaman çizgisini aktif et
enableRegistration: Yeni kullanıcı kaydını aktif et
invite: Davet et
bannerUrl: Afiş resmi URL
bannerUrl: Banner resmi URL'si
backgroundImageUrl: Arkaplan URL'si
recaptcha: reCAPTCHA
iconUrl: Ikon URL
iconUrl: İkon URL'si
recaptchaSecretKey: Gizli anahtar
avoidMultiCaptchaConfirm: Birden fazla Captcha sistemi kullanmak aralarında etkileşime
avoidMultiCaptchaConfirm: Birden fazla Captcha sistemi kullanmak aralarında çakışmaya
neden olabilir. Şu anda etkin olan diğer Captcha sistemlerini devre dışı bırakmak
ister misiniz? Etkin kalmalarını istiyorsanız, iptal düğmesine basın.
aboutFirefish: Firefish Hakkında
@ -1003,7 +1003,8 @@ recommended: Önerilen
received: Alındı
classic: Ortalanmış
muteThread: Konuyu sessize al
deleteAccountConfirm: Bu, hesabınızı geri alınamaz bir şekilde silecektir. İlerle?
deleteAccountConfirm: Bu hesap geri alınamaz bir şekilde silinecektir. İlerlemek istiyor
musunuz?
hide: Gizle
pubSub: Pub/Sub Hesapları
filter: Filtre
@ -1035,10 +1036,10 @@ video: Video
showMore: Daha Fazla
showLess: Kapat
selectAntenna: Anten seç
selectWidget: Araç seç
selectWidget: Bir widget seç
unsuspendConfirm: Bu hesabın askıya almasını kaldırmak istediğinize emin misiniz?
selectList: Liste seç
editWidgets: Araçları düzenle
editWidgets: Widget'ları düzenle
showEmojisInReactionNotifications: Tepki bildirimlerinde emojileri göster
renoteMute: Yükseltmeleri sustur
renoteUnmute: Yükseltmeleri susturmayı kaldır
@ -1061,14 +1062,14 @@ blockThisInstance: Bu sunucuyu engelle
themeForDarkMode: Karanlık modda kullanmak için temalar
fileName: Dosya adı
selectFile: Dosya seç
emptyDrive: Drive'n boş
emptyDrive: Drive'ın boş
promote: Terfi
numberOfDays: Gün sayısı
hideThisNote: Bu gönderiyi gizle
file: Dosya
enableEmojiReactions: Emoji tepkilerini aç
cw: İçerik uyarısı
makeFollowManuallyApprove: Takip istekleri onay gerektirir
makeFollowManuallyApprove: Onay gerektiren takip istekleri
today: Bugün
enableRecommendedTimeline: Tavsiye edilen zaman çizgisini aktive et
state: Durum
@ -1170,8 +1171,8 @@ import: İçeri Aktar
export: Dışarı Aktar
mentions: Bahsetmeler
files: Dosyalar
driveFileDeleteConfirm: '"{name}" dosyasını silmek istediğinizden emin misiniz? Ek
olarak içeren tüm gönderilerden kaldırılacaktır.'
driveFileDeleteConfirm: '"{name}" dosyasını silmek istediğinizden emin misiniz? Dosyayı
"Ek" olarak içeren tüm gönderilerden kaldırılacaktır.'
createList: Liste oluştur
listsDesc: Listeler, belirtilen kullanıcılarla zaman çizelgesi oluşturmanıza olanak
tanır. Zaman Çizelgesi sayfasından erişilebilirler.
@ -1185,11 +1186,11 @@ followRequest: Takip İsteği
followRequests: Takip istekleri
renoted: Yükseldi.
emoji: Emoji
cacheRemoteFiles: Uzak dosyaları önbellekle
cacheRemoteFiles: Uzak dosyaları önbelleğe al
flagAsBot: Bu hesabı robot olarak işaretle
flagAsBotDescription: Bu hesap bir program tarafından kontrol ediliyorsa bu seçeneği
etkinleştirin. Etkinleştirilirse, diğer geliştiricilerin diğer botlarla sonsuz etkileşim
zincirlerini önlemesi ve Firefish'nin dahili sistemlerini bu hesabı bir bot olarak
etkinleştirin. Etkinleştirilirse, diğer geliştiricilerin botlarıyla sonsuz etkileşim
zincirlerinin önlemesi ve Firefish'in dahili sistemlerinin bu hesabı bir bot olarak
ele alacak şekilde ayarlaması için bir bayrak görevi görür.
clearQueue: Sırayı Temizle
hiddenTags: Gizlenmiş Etiketler
@ -1208,9 +1209,9 @@ yearX: '{year}'
pages: Sayfalar
integration: Entegrasyonlar
antennasDesc: "Antenler, belirlediğiniz kriterlere uyan yeni gönderiler görüntüler!\n
Zaman çizelgeleri sayfasından erişilebilirler."
 Zaman çizelgeleri sayfasından erişilebilirler."
notesAndReplies: Gönderiler ve yanıtlar
withReplies: Yanıtları da içer
withReplies: Yanıtları da içerir
connectedTo: Aşağıdaki hesap(lar) bağlı
silenceConfirm: Bu kullanıcıyı susturmak istediğinize emin misiniz?
messagingWithUser: Özel sohbet
@ -1259,7 +1260,7 @@ squareAvatars: Kare avatarları göster
unread: Okunmaı
instanceDefaultDarkTheme: Sunucu genelinde varsayılan karanlık tema
oneDay: Bir gün
showAds: Reklamları göster
showAds: Topluluk bannerlarını göster
adminCustomCssWarn: Bu ayar yalnızca ne işe yaradığını biliyorsanız kullanılmalıdır.
Yanlış değerler girilmesi, HERKESİN istemcilerinin normal şekilde çalışmamasına
neden olabilir. Lütfen CSS'nizi kullanıcı ayarlarınızda test ederek düzgün çalıştığından
@ -2132,3 +2133,14 @@ _feeds:
rss: RSS
atom: Atom
jsonFeed: JSON akışı
origin: Kaynak
objectStorageS3ForcePathStyle: Path temelli bir endpoint URL'leri kullan
objectStorageS3ForcePathStyleDesc: Bunu açarak 's3.amazonaws.com/<bucket>/' over '<bucket>.s3.amazonaws.com'
formatında URL'lerle endpointleri kurabilirsin.
delete2fa: 2FA'yı devre dışı bırak
deletePasskeys: Passkey'leri sil
inputNotMatch: Girdi eşleşmiyor
deletePasskeysConfirm: Bu işlem geri alınamaz bir şekilde bu hesapta ki tüm passkey'leri
ve güvenlik anahtarlarını silecektir. İşleme devam ediyor musunuz?
delete2faConfirm: Bu işlem geri alınamaz bir şekilde 2FA'yı bu hesaptan silecektir.
İşleme devam ediyor musunuz?

View file

@ -1,9 +1,7 @@
_lang_: "Українська"
headlineFirefish: "Мережа об'єднана записами"
introFirefish: "Ласкаво просимо! Firefish - децентралізована служба мікроблогів з
відкритим кодом.\nСтворюйте \"нотатки\", щоб поділитися тим, що відбувається, і
розповісти всім про себе 📡\nЗа допомогою \"реакцій\" ви також можете швидко висловити
свої почуття щодо нотаток інших 👍\nДосліджуймо новий світ! 🚀"
назавжди відкритим кодом! 🚀"
monthAndDay: "{month}/{day}"
search: "Пошук"
notifications: "Сповіщення"
@ -27,7 +25,7 @@ profile: "Профіль"
timeline: "Стрічка"
noAccountDescription: "Цей користувач ще нічого не написав про себе."
login: "Увійти"
loggingIn: "Здійснюємо вхід..."
loggingIn: "Здійснюємо вхід"
logout: "Вийти"
signup: "Реєстрація"
uploading: "Завантаження..."
@ -363,7 +361,7 @@ pinnedPagesDescription: "Введіть шляхи сторінок, які ви
сторінці цього сервера, розділені новими рядками."
pinnedClipId: "Ідентифікатор закріпленої замітки"
pinnedNotes: "Закріплений запис"
hcaptcha: "hCaptcha"
hcaptcha: "Перевірка з використанням hCaptcha"
enableHcaptcha: "Увімкнути hCaptcha"
hcaptchaSiteKey: "Ключ сайту"
hcaptchaSecretKey: "Секретний ключ"
@ -782,7 +780,7 @@ emailNotification: "Сповіщення електронною поштою"
publish: "Опублікувати"
inChannelSearch: "Пошук за каналом"
useReactionPickerForContextMenu: "Відкривати палітру реакцій правою кнопкою"
typingUsers: "Стук клавіш. Це {users}…"
typingUsers: "{users} пише"
goBack: "Назад"
info: "Інформація"
user: "Користувач"
@ -842,6 +840,7 @@ _aboutFirefish:
допомогти з його операційними витратами.
donateHost: Зробити внесок на рахунок {host}
sponsors: Спонсори Firefish
misskeyContributors: Контрибутори Misskey
_nsfw:
respect: "Приховувати NSFW медіа"
ignore: "Не приховувати NSFW медіа"
@ -1354,10 +1353,10 @@ _pages:
alignCenter: "Рівняти елементи по центру"
hideTitleWhenPinned: "Приховати заголовок сторінки при закріпленні в профілі"
font: "Шрифт"
fontSerif: "Serif"
fontSansSerif: "Sans serif"
eyeCatchingImageSet: "Встановити привабливе зображення"
eyeCatchingImageRemove: "Видалити привабливе зображення"
fontSerif: "Шрифт Serif"
fontSansSerif: "Шрифт Sans serif"
eyeCatchingImageSet: "Встановити мініатюру"
eyeCatchingImageRemove: "Видалити мініатюру"
chooseBlock: "Додати блок"
selectType: "Виберіть тип"
enterVariableName: "Введіть назву для змінної"
@ -1763,7 +1762,7 @@ allowedInstances: Сервери у білому списку
previewNoteText: Показати прев'ю
antennaInstancesDescription: Введіть по одному хосту сервера на рядок
breakFollowConfirm: Ви дійсно бажаєте видалити підписника?
ads: Реклама
ads: Рекламні оголошення
cw: Попередження про вміст
hiddenTags: Приховані хештеги
noInstances: Немає серверів
@ -1819,7 +1818,7 @@ unsubscribePushNotification: Вимкнути push-сповіщення
pushNotificationAlreadySubscribed: Push-сповіщення вже увімкнено
enterSendsMessage: Натисніть Enter у повідомленнях, щоб надіслати повідомлення (якщо
вимкнено, то Ctrl + Enter)
showAds: Показувати рекламу
showAds: Показувати рекламні оголошення
customMOTD: Користувацькі MOTD (повідомлення на заставці)
customSplashIcons: Користувацькі іконки заставки (URL)
splash: Заставка
@ -2139,3 +2138,16 @@ _feeds:
jsonFeed: JSON-стрічка
atom: Atom
origin: Походження
objectStorageS3ForcePathStyle: Використовувати URL-адреси кінцевої точки на основі
шляху
objectStorageS3ForcePathStyleDesc: Увімкніть цей параметр, щоб вибудувати URL-адреси
кінцевих точок у форматі 's3.amazonaws.com/<bucket>/' поверх '<bucket>.s3.amazonaws.com'.
deletePasskeys: Видалити ключ-пароль
delete2faConfirm: Це видалить двофакторну авторизацію на цьому обліковому записі без
можливості відмінити цю дію. Продовжити?
delete2fa: Вимкнути двофакторну авторизацію
inputNotMatch: Введене не співпадає
deletePasskeysConfirm: Це видалить усі ключ-паролі і ключі безпеки на цьому обліковому
записі без можливости відмінити цю дію. Продовжити?
addRe: Додати "re:" на початку коментаря у відповідь на запис із попередженням про
вміст

View file

@ -265,7 +265,7 @@ uploadFromUrl: "Tải lên bằng một URL"
uploadFromUrlDescription: "URL của tập tin bạn muốn tải lên"
uploadFromUrlRequested: "Đã yêu cầu tải lên"
uploadFromUrlMayTakeTime: "Sẽ mất một khoảng thời gian để tải lên xong."
explore: "Khám phó"
explore: "Khám phá"
messageRead: "Đã đọc"
noMoreHistory: "Không còn gì để đọc"
startMessaging: "Bắt đầu trò chuyện"
@ -1062,6 +1062,8 @@ _aboutFirefish:
pleaseDonateToFirefish: Hãy cân nhắc ủng hộ Firefish phát triển.
donateHost: Ủng hộ {host}
pleaseDonateToHost: Cũng như ủng hộ chi phí vận hành máy chủ {host} của bạn.
sponsors: Nhà tài trợ Firefish
misskeyContributors: Người đóng góp Misskey
_nsfw:
respect: "Ẩn nội dung NSFW"
ignore: "Hiện nội dung NSFW"
@ -1138,6 +1140,22 @@ _mfm:
stop: Dừng CĐN
play: Phát CĐN
warn: CĐN có thể gây đau mắt hoặc chóng mặt
alwaysPlay: Luôn tự phát các chuyển động nhanh
position: Vị trí
scaleDescription: Tỉ lệ nội dung theo số cụ thể.
advanced: Nâng cao MFM
positionDescription: Di chuyển nội dung theo một số cụ thể.
foregroundDescription: Đổi màu xung quanh văn bản.
background: Màu nền
advancedDescription: Nếu tắt, chỉ cho phép đánh dấu cơ bản trừ khi đang phát MFM
động
fade: Làm mờ
scale: Tỉ lệ
crop: Cắt
foreground: Màu nền xung quanh
fadeDescription: Làm mờ content vào và ra.
cropDescription: Cắt nội dung.
backgroundDescription: Đổi màu nền của văn bản.
_instanceTicker:
none: "Không hiển thị"
remote: "Hiện cho người dùng từ máy chủ khác"
@ -1146,6 +1164,7 @@ _serverDisconnectedBehavior:
reload: "Tự động tải lại"
dialog: "Hiện hộp thoại cảnh báo"
quiet: "Hiển thị cảnh báo không phô trương"
nothing: không làm gì
_channel:
create: "Tạo kênh"
edit: "Chỉnh sửa kênh"
@ -1156,6 +1175,8 @@ _channel:
following: "Đang theo dõi"
usersCount: "{n} Thành viên"
notesCount: "{n} Tút"
nameOnly: Chỉ tên
nameAndDescription: Tên và mô tả
_menuDisplay:
sideFull: "Thanh bên"
sideIcon: "Thanh bên (Biểu tượng)"
@ -1324,6 +1345,25 @@ _2fa:
securityKeyInfo: "Bên cạnh xác minh bằng vân tay hoặc mã PIN, bạn cũng có thể thiết
lập xác minh thông qua khóa bảo mật phần cứng hỗ trợ FIDO2 để bảo mật hơn nữa
cho tài khoản của mình."
registerTOTPBeforeKey: Vui lòng thiết lập một ứng dụng xác thực để đăng ký khóa
bảo mật hoặc mật khẩu.
tapSecurityKey: Vui lòng theo dõi trình duyệt của bạn để đăng ký mã bảo mật hoặc
mã khóa
renewTOTPConfirm: Điều này sẽ khiến mã xác minh từ ứng dụng trước của bạn ngừng
hoạt động
securityKeyName: Nhập tên mã khóa
step3Title: Nhập mã xác thực
chromePasskeyNotSupported: Mật khẩu Chrome hiện không được hỗ trợ.
removeKeyConfirm: Thực sự xóa khóa {name}?
whyTOTPOnlyRenew: Không thể xóa ứng dụng xác thực miễn là đã đăng ký khóa bảo mật.
renewTOTPOk: Cấu hình lại
renewTOTPCancel: Hủy bỏ
removeKey: Xóa khóa bảo mật
step2Click: Nhấn vào mã QR này sẽ cho phép bạn đăng ký 2FA cho khóa bảo mật hoặc
ứng dụng xác thực điện thoại của bạn.
securityKeyNotSupported: Trình duyệt của bạn không hỗ trợ khóa bảo mật.
renewTOTP: Định cấu hình lại ứng dụng xác thực
token: 2FA Token
_permissions:
"read:account": "Xem thông tin tài khoản của bạn"
"write:account": "Sửa thông tin tài khoản của bạn"
@ -1365,12 +1405,15 @@ _auth:
pleaseGoBack: "Vui lòng quay lại ứng dụng"
callback: "Quay lại ứng dụng"
denied: "Truy cập bị từ chối"
allPermissions: Truy cập đầy đủ vào tài khoản
copyAsk: 'Vui lòng dán mã ủy quyền sau vào ứng dụng:'
_antennaSources:
all: "Toàn bộ tút"
homeTimeline: "Tút từ những người đã theo dõi"
users: "Tút từ những người cụ thể"
userList: "Tút từ danh sách người dùng cụ thể"
userGroup: "Tút từ người dùng trong một nhóm cụ thể"
instances: Tút từ mọi người trên máy chủ
_weekday:
sunday: "Chủ Nhật"
monday: "Thứ Hai"
@ -1402,6 +1445,13 @@ _widgets:
serverMetric: "Thống kê máy chủ"
aiscript: "AiScript console"
aichan: "Ai"
userList: Danh sách người dùng
_userList:
chooseList: Chọn một danh sách
meiliSize: Kích cỡ chỉ mục
meiliIndexCount: Tút đã lập chỉ mục
meiliStatus: Trạng thái máy chủ
serverInfo: Thông tin máy chủ
_cw:
hide: "Ẩn"
show: "Tải thêm"
@ -1465,6 +1515,8 @@ _profile:
metadataContent: "Nội dung"
changeAvatar: "Đổi ảnh đại diện"
changeBanner: "Đổi ảnh bìa"
locationDescription: Nếu bạn nhập thành phố của mình trước, nó sẽ hiển thị giờ địa
phương của bạn cho những người dùng khác.
_exportOrImport:
allNotes: "Toàn bộ tút"
followingList: "Đang theo dõi"
@ -1504,6 +1556,7 @@ _timelines:
local: "Máy chủ này"
social: "Xã hội"
global: "Liên hợp"
recommended: Đề xuất
_pages:
newPage: "Tạo Trang mới"
editPage: "Sửa Trang này"
@ -1832,6 +1885,9 @@ _notification:
followBack: "đã theo dõi lại bạn"
reply: "Trả lời"
renote: "Đăng lại"
voted: đã bình chọn tút của bạn
reacted: đã biểu cảm tút của bạn
renoted: đã đăng lại tút của bạn
_deck:
alwaysShowMainColumn: "Luôn hiện cột chính"
columnAlign: "Căn cột"
@ -1859,6 +1915,9 @@ _deck:
list: "Danh sách"
mentions: "Lượt nhắc"
direct: "Nhắn riêng"
channel: Kênh
renameProfile: Đổi tên workspace
nameAlreadyExists: Tên workspace này đã tồn tại.
renoteMute: Ẩn lượt chia sẻ
renoteUnmute: Bỏ ẩn lượt chia sẻ
searchPlaceholder: Lướt Firefish
@ -1867,3 +1926,210 @@ findOtherInstance: Tìm máy chủ khác
noThankYou: Từ chối
_filters:
withFile: Có file
notesAfter: Đăng sau
followersOnly: Chỉ người theo dõi
fromUser: Từ người dùng
notesBefore: Đăng trước
followingOnly: Đang theo dõi
fromDomain: Từ máy chủ
flagSpeakAsCatDescription: Tút của bạn sẽ biến hóa ngộ nghĩnh khi bật chế độ tôi là
mèo
secureModeInfo: Khi truy vấn từ máy chủ khác, không nhận nếu không có bằng chứng.
pushNotificationNotSupported: Trình duyệt hoặc máy chủ không hỗ trợ thông báo đẩy
sendPushNotificationReadMessage: Xóa thông báo đẩy sau khi thông báo hoặc tin nhắn
liên quan đã được đọc
adminCustomCssWarn: Cài đặt này chỉ nên được sử dụng nếu bạn biết rõ cách thức hoạt
động của nó. Việc nhập các giá trị không phù hợp có thể khiến app của MỌI NGƯỜI
ngừng hoạt động. Vui lòng đảm bảo rằng CSS của bạn hoạt động bình thường bằng cách
kiểm tra nó trong cài đặt người dùng của bạn.
enableCustomKaTeXMacro: Bật tùy chỉnh macro KaTeX
noGraze: Vui lòng tắt tiện ích mở rộng trình duyệt "Graze for Mastodon" vì tiện ích
này can thiệp vào Firefish.
addRe: Thêm "re:" vào đầu bình luận để trả lời tút có cảnh báo nội dung
_experiments:
postImportsCaption: Cho phép người dùng nhập các bài đăng của họ từ các tài khoản
Firefish, Misskey, Mastodon, Akkoma và Pleroma trước đây. Nó có thể gây chậm trong
quá trình tải nếu hàng đợi của bạn bị tắc nghẽn.
title: Thử nghiệm
enablePostImports: Bật nhập tút
_skinTones:
medium: Vừa
light: Sáng
dark: Đen
yellow: Vàng
mediumLight: Sáng Vừa
mediumDark: Đen Vừa
removeReaction: Xóa biểu cảm
enableRecommendedTimeline: Bật bảng tin đề xuất
antennasDesc: "Ăng-ten hiển thị tút mới phù hợp với tiêu chí bạn đặt!\n Chúng có thể
được truy cập từ trang bảng tin."
userSaysSomethingReasonQuote: '{name} trích dẫn một tút chứa {reason}'
allowedInstancesDescription: Host của máy chủ được đưa vào danh sách trắng để liên
hợp, mỗi máy chủ được phân tách bằng cách xuống dòng (chỉ áp dụng ở chế độ riêng
tư).
sendPushNotificationReadMessageCaption: Sẽ hiện thông báo "{emptyPushNotificationMessage}"
trong một khoảng thời gian ngắn. Điều này có thể gây tốn pin của thiết bị.
enterSendsMessage: Nhấn Trở lại trong Tin nhắn để gửi tin nhắn (tắt là Ctlr + Return)
showAdminUpdates: Thông báo có phiên bản Firefish mới (chỉ dành cho quản trị viên)
replayTutorial: Phát lại hướng dẫn
moveFrom: Chuyển từ tài khoản cũ sang
moveFromDescription: Thao tác này sẽ đặt bí danh cho tài khoản cũ của bạn để bạn có
thể chuyển từ tài khoản đó sang tài khoản hiện tại. Làm điều này TRƯỚC KHI di chuyển
từ tài khoản cũ của bạn. Vui lòng nhập định dạng @person@server.com
signupsDisabled: Máy chủ này hiện đang bị tắt đăng ký, nhưng bạn luôn có thể đăng
ký tại một máy chủ khác! Nếu bạn có mã mời cho máy chủ này, vui lòng nhập mã đó
vào bên dưới.
silencedWarning: Trang này đang hiển thị vì những người dùng này đến từ các máy chủ
mà quản trị viên của bạn đã ẩn, vì vậy họ có thể là spam.
_dialog:
charactersExceeded: 'Vượt quá giới hạn ký tự! Hiện tại: {current}/Tối đa: {max}'
charactersBelow: 'Không đủ ký tự tối thiểu! Hiện tại: {current}/Tối thiểu: {min}'
enableIdenticonGeneration: Bật tạo identicon
enableServerMachineStats: Bật thống kê phần cứng máy chủ
secureMode: Chế độ an toàn (Phê duyệt nạp)
_messaging:
dms: Riêng tư
groups: Nhóm
moveToLabel: 'Tài khoản bạn chuyển tới:'
reactionPickerSkinTone: Chọn màu da emoji
jumpToPrevious: Về trước
listsDesc: Danh sách cho phép bạn tạo các bảng tin với những người dùng chọn trước.
Xem danh sách ở trang bảng tin.
enableEmojiReactions: Bật biểu cảm bằng emoji
showEmojisInReactionNotifications: Hiện emoji trong thông báo biểu cảm
silencedInstancesDescription: Liệt kê địa chủ của các máy chủ mà bạn muốn ẩn. Tài
khoản trong các máy chủ được liệt kê được coi là "Ẩn", chỉ có thể thực hiện các
yêu cầu theo dõi và không thể nhắn riêng đến tài khoản máy chủ nếu không được theo
dõi. Điều này sẽ không ảnh hưởng đến các máy chủ bị chặn.
silenced: Đã ẩn
expandOnNoteClick: Mở tút khi nhấn vào
expandOnNoteClickDesc: Nếu tắt, bạn vẫn có thể chọn mở tút trong menu chuột phải hoặc
nhấn vào thời gian đăng.
userSaysSomethingReasonReply: '{name} trả lời một tút chứa {reason}'
userSaysSomethingReasonRenote: '{name} đăng lại một tút chứa {reason}'
channelFederationWarn: Kênh chưa thể liên hợp với máy chủ khác
clipsDesc: Ghim là những tút bạn muốn luôn hiển thị đầu tiên. Bạn có thể tạo ghim
từ menu của mỗi tút.
seperateRenoteQuote: Phân chia nút đăng lại và trích dẫn
subscribePushNotification: Bật thông báo đẩy
noteId: ID tút
moveAccount: Đã chuyển tài khoản!
sendModMail: Gửi lưu ý kiểm duyệt
verifiedLink: Liên kết xác minh
_feeds:
copyFeed: Sao chép feed
rss: RSS
atom: Atom
jsonFeed: JSON
hiddenTags: Những hashtag đã ẩn
cannotUploadBecauseExceedsFileSizeLimit: Không thể tải lên vì vượt quá dung lượng
cho phép.
pushNotificationAlreadySubscribed: Đã bật thông báo đẩy
splash: Splash Screen
alt: ALT
showAds: Hiện banner cộng đồng
migration: Chuyển máy chủ
swipeOnMobile: Cho phép vuốt giữa các trang
logoImageUrl: Đường dẫn hình ảnh logo
moveTo: Chuyển đến tài khoản mới
moveAccountDescription: Quá trình này là không thể đảo ngược. Đảm bảo rằng bạn đã
thiết lập bí danh cho tài khoản này trên tài khoản mới của mình trước khi di chuyển.
Vui lòng nhập định dạng @person@server.com
antennaInstancesDescription: Liệt kê mỗi máy chủ một dòng
privateModeInfo: Khi bật, chỉ các máy chủ trong danh sách trắng mới có thể liên hợp
với máy chủ của bạn. Tất cả tút sẽ được ẩn khỏi công khai.
unsubscribePushNotification: Tắt thông báo đẩy
customMOTD: Tùy chỉnh MOTD (tin nhắn lướt qua trên màn hình)
deleted: Đã xóa
editNote: Sửa tút
flagSpeakAsCat: Tôi là mèo
silenceThisInstance: Ẩn máy chủ này
silencedInstances: Những máy chủ đã ẩn
instanceSecurity: An toàn máy chủ
showUpdates: Hiện popup khi Firefish có cập nhật
selectChannel: Chọn kênh
isBot: Đây là tài khoản bot
isLocked: Tài khoản này duyệt theo dõi thủ công
origin: Gốc
newer: mới hơn
older: cũ hơn
accountMoved: 'Người này đã chuyển sang:'
hiddenTagsDescription: 'Liệt kê các hashtag (không có #) mà bạn muốn ẩn khỏi xu hướng
và khám phá. Các thẻ bắt đầu bằng # đã ẩn vẫn có thể được thấy ở các nơi khác.'
noInstances: Không có máy chủ nào
manageGroups: Quản lý nhóm
accessibility: Khả năng tiếp cận
indexNotice: Đang lập chỉ mục. Quá trình này có thể mất một lúc, vui lòng không khởi
động lại máy chủ của bạn sau ít nhất một giờ.
breakFollowConfirm: Bạn có chắc muốn xóa người theo dõi?
caption: Caption tự động
objectStorageS3ForcePathStyle: Sử dụng URL điểm cuối dựa trên đường dẫn
objectStorageS3ForcePathStyleDesc: Bật tính năng này để tạo URL điểm cuối ở định dạng
's3.amazonaws.com/<bucket>/' thay vì '<bucket>.s3.amazonaws.com'.
privateMode: Chế độ riêng tư
allowedInstances: Danh sách trắng
customMOTDDescription: Tùy chỉnh tin nhắn MOTD (splash screen) được phân tách bằng
dấu ngắt dòng để được hiển thị ngẫu nhiên mỗi khi người dùng tải/tải lại trang.
customSplashIcons: Tùy chỉnh biểu tượng splash screen (urls)
customSplashIconsDescription: URL cho các biểu tượng splash screen tùy chỉnh được
phân tách bằng dấu ngắt dòng sẽ được hiển thị ngẫu nhiên mỗi khi người dùng tải/tải
lại trang. Vui lòng đảm bảo rằng các hình ảnh nằm trên một URL tĩnh, tốt nhất là
tất cả đã được thay đổi kích thước thành 192x192.
recommendedInstances: Máy chủ đề xuất
updateAvailable: Có bản cập nhật mới!
swipeOnDesktop: Cho phép vuốt kiểu điện thoại trên máy tính
moveFromLabel: 'Tài khoản cũ của bạn:'
defaultReaction: Biểu cảm mặc định cho những tút đã đăng và sắp đăng
indexFromDescription: Để trống để lập chỉ mục toàn bộ
donationLink: Liên kết tới trang tài trợ
deletePasskeys: Xóa passkey
delete2faConfirm: Thao tác này sẽ xóa 2FA trên tài khoản này một cách không thể phục
hồi. Tiếp tục?
deletePasskeysConfirm: Thao tác này sẽ xóa hoàn toàn tất cả mật khẩu và khóa bảo mật
trên tài khoản này. Tiếp tục?
inputNotMatch: Không trùng khớp
addInstance: Thêm một máy chủ
delete2fa: Tắt 2FA
apps: App
image: Hình ảnh
video: Video
audio: Âm thanh
selectInstance: Chọn máy chủ
userSaysSomethingReason: '{name} cho biết {reason}'
pushNotification: Thông báo đẩy
indexPosts: Chỉ mục tút
indexFrom: Chỉ mục từ Post ID
customKaTeXMacro: Tùy chỉnh macro KaTeX
license: Giấy phép
cw: Nội dung ẩn
showPopup: Thông báo người dùng bằng popup
showWithSparkles: Hiện kèm hiệu ứng lấp lánh
youHaveUnreadAnnouncements: Bạn có thông báo chưa đọc
migrationConfirm: "Bạn có hoàn toàn chắc chắn muốn di chuyển tài khoản của mình sang
{account} không? Sau khi thực hiện việc này, bạn sẽ không thể đảo ngược nó và sẽ
không thể sử dụng lại tài khoản của mình một cách bình thường.\nNgoài ra, vui lòng
đảm bảo rằng bạn đã đặt tài khoản hiện tại này làm tài khoản mà bạn đang chuyển
từ đó."
xl: XL
neverShow: Không hiện lại nữa
remindMeLater: Để sau
removeQuote: Xóa trích dẫn
removeRecipient: Xóa người nhận
removeMember: Xóa thành viên
customKaTeXMacroDescription: 'Thiết lập macro để viết các biểu thức toán học một cách
dễ dàng! Ký hiệu tuân theo định nghĩa lệnh của LaTeX và được viết là \newcommand{\
name}{content} hoặc \newcommand{\name}[số lượng đối số]{content}. Ví dụ: \newcommand{\add}[2]{#1
+ #2} sẽ mở rộng \add{3}{foo} thành 3 + foo. Dấu ngoặc nhọn bao quanh tên macro
có thể được thay đổi thành dấu ngoặc tròn hoặc vuông. Điều này ảnh hưởng đến các
dấu ngoặc được sử dụng cho các đối số. Một (và chỉ một) macro có thể được xác định
trên mỗi dòng và bạn không thể ngắt dòng ở giữa định nghĩa. Các dòng không hợp lệ
chỉ đơn giản là bị bỏ qua. Chỉ hỗ trợ các hàm thay thế chuỗi đơn giản; cú pháp nâng
cao, chẳng hạn như phân nhánh có điều kiện, không thể được sử dụng ở đây.'
preventAiLearning: Chặn AI bot càn quét
preventAiLearningDescription: Yêu cầu các mô hình ngôn ngữ AI của bên thứ ba không
nghiên cứu nội dung bạn tải lên, chẳng hạn như tút và hình ảnh.
isModerator: Kiểm duyệt viên
isAdmin: Quản trị viên
isPatron: Người bảo trợ Firefish
recommendedInstancesDescription: Các máy chủ được đề xuất được phân tách bằng dấu
ngắt dòng để xuất hiện trong bảng tin đề xuất.

View file

@ -1,12 +1,12 @@
{
"name": "firefish",
"version": "1.0.4-beta",
"version": "1.0.5-dev5",
"codename": "aqua",
"repository": {
"type": "git",
"url": "https://git.joinfirefish.org/firefish/firefish.git"
},
"packageManager": "pnpm@8.6.9",
"packageManager": "pnpm@8.6.11",
"private": true,
"scripts": {
"rebuild": "pnpm run clean && pnpm node ./scripts/build-greet.js && pnpm -r --parallel run build && pnpm run gulp",
@ -38,9 +38,9 @@
"chokidar": "^3.3.1"
},
"dependencies": {
"@bull-board/api": "5.6.0",
"@bull-board/ui": "5.6.0",
"@napi-rs/cli": "^2.16.1",
"@bull-board/api": "5.7.2",
"@bull-board/ui": "5.7.2",
"@napi-rs/cli": "^2.16.2",
"@tensorflow/tfjs": "^3.21.0",
"js-yaml": "4.1.0",
"seedrandom": "^3.0.5"
@ -48,7 +48,7 @@
"devDependencies": {
"@types/gulp": "4.0.13",
"@types/gulp-rename": "2.0.2",
"@types/node": "20.4.1",
"@types/node": "20.4.9",
"chalk": "4.1.2",
"cross-env": "7.0.3",
"cypress": "10.11.0",
@ -59,7 +59,7 @@
"gulp-replace": "1.1.4",
"gulp-terser": "2.1.0",
"install-peers": "^1.0.4",
"rome": "^v12.1.3-nightly.f65b0d9",
"rome": "^12.1.3",
"start-server-and-test": "1.15.2",
"typescript": "5.1.6"
}

View file

@ -196,6 +196,12 @@ version = "0.21.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d"
[[package]]
name = "basen"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1dbe4bb73fd931c4d1aaf53b35d1286c8a948ad00ec92c8e3c856f15fd027f43"
[[package]]
name = "bigdecimal"
version = "0.3.1"
@ -1399,6 +1405,7 @@ name = "native-utils"
version = "0.0.0"
dependencies = [
"async-trait",
"basen",
"cfg-if",
"chrono",
"cuid2",
@ -1410,7 +1417,6 @@ dependencies = [
"once_cell",
"parse-display",
"pretty_assertions",
"radix_fmt",
"rand",
"schemars",
"sea-orm",
@ -1831,12 +1837,6 @@ version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
[[package]]
name = "radix_fmt"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ce082a9940a7ace2ad4a8b7d0b1eac6aa378895f18be598230c5f2284ac05426"
[[package]]
name = "rand"
version = "0.8.5"

View file

@ -31,11 +31,11 @@ serde_json = "1.0.96"
thiserror = "1.0.40"
tokio = { version = "1.28.1", features = ["full"] }
utoipa = "3.3.0"
radix_fmt = "1.0.0"
# Default enable napi4 feature, see https://nodejs.org/api/n-api.html#node-api-version-matrix
napi = { version = "2.13.1", default-features = false, features = ["napi6", "tokio_rt"], optional = true }
napi-derive = { version = "2.12.0", optional = true }
basen = "0.1.0"
[dev-dependencies]
pretty_assertions = "1.3.0"

View file

@ -10,11 +10,11 @@ path = "src/lib.rs"
[features]
default = []
convert = ["dep:native-utils", "dep:indicatif", "dep:futures"]
convert = ["dep:indicatif", "dep:futures"]
[dependencies]
serde_json = "1.0.96"
native-utils = { path = "../", optional = true }
native-utils = { path = "../" }
indicatif = { version = "0.17.4", features = ["tokio"], optional = true }
tokio = { version = "1.28.2", features = ["full"] }
futures = { version = "0.3.28", optional = true }

View file

@ -3,6 +3,7 @@ pub use sea_orm_migration::prelude::*;
mod m20230531_180824_drop_reversi;
mod m20230627_185451_index_note_url;
mod m20230709_000510_move_antenna_to_cache;
mod m20230806_170616_fix_antenna_stream_ids;
pub struct Migrator;
@ -13,6 +14,7 @@ impl MigratorTrait for Migrator {
Box::new(m20230531_180824_drop_reversi::Migration),
Box::new(m20230627_185451_index_note_url::Migration),
Box::new(m20230709_000510_move_antenna_to_cache::Migration),
Box::new(m20230806_170616_fix_antenna_stream_ids::Migration),
]
}
}

View file

@ -85,7 +85,7 @@ impl MigrationTrait for Migration {
)
.ignore();
}
pipe.query::<()>(&mut redis_conn).unwrap();
pipe.query::<()>(&mut redis_conn).unwrap_or(());
}
let copied = total_num - remaining;

View file

@ -0,0 +1,59 @@
use std::env;
use native_utils::util::id;
use redis::Commands;
use sea_orm_migration::prelude::*;
#[derive(DeriveMigrationName)]
pub struct Migration;
#[async_trait::async_trait]
impl MigrationTrait for Migration {
async fn up(&self, _manager: &SchemaManager) -> Result<(), DbErr> {
// Replace the sample below with your own migration scripts
let cache_url = env::var("CACHE_URL").unwrap();
let prefix = env::var("CACHE_PREFIX").unwrap();
let client = redis::Client::open(cache_url).unwrap();
let mut redis_conn = client.get_connection().unwrap();
let keys: Vec<String> = redis_conn
.keys(format!("{}:antennaTimeline:*", prefix))
.unwrap();
let key_len = keys.len();
println!(
"Fixing corrupted stream IDs: {} timelines to be fixed",
key_len
);
for (i, key) in keys.iter().enumerate() {
let all_elems: Vec<Vec<Vec<String>>> = redis_conn.xrange_all(key).unwrap(); // Get all post IDs in stream
let stream_ids = all_elems
.iter()
.map(|v| format!("{}-*", id::get_timestamp(&v[1][1]))); // Get correct stream id with timestamp
redis_conn.del::<_, ()>(key).unwrap();
for (j, v) in stream_ids.enumerate() {
redis_conn
.xadd(key, v, &[("note", &all_elems[j][1][1])])
.unwrap_or(());
}
if i % 10 == 0 {
println!(
"Fixing streams [{:.2}%]",
(i as f64 / key_len as f64) * 100_f64
);
}
}
println!("Fixing streams [100.00%]");
Ok(())
}
async fn down(&self, _manager: &SchemaManager) -> Result<(), DbErr> {
// Replace the sample below with your own migration scripts
Ok(())
}
}

View file

@ -1,9 +1,9 @@
//! ID generation utility based on [cuid2]
use basen::BASE36;
use cfg_if::cfg_if;
use chrono::Utc;
use once_cell::sync::OnceCell;
use radix_fmt::radix_36;
use std::cmp;
use crate::impl_into_napi_error;
@ -46,13 +46,21 @@ pub fn create_id(date_num: i64) -> Result<String, ErrorUninitialized> {
let time = cmp::max(date_num - TIME_2000, 0);
Ok(format!(
"{:0>8}{}",
radix_36(time).to_string(),
BASE36.encode_var_len(&(time as u64)),
gen.create_id()
))
}
}
}
pub fn get_timestamp(id: &str) -> i64 {
let n: Option<u64> = BASE36.decode_var_len(&id[0..8]);
match n {
None => -1,
Some(n) => n as i64 + TIME_2000,
}
}
cfg_if! {
if #[cfg(feature = "napi")] {
use napi_derive::napi;
@ -68,17 +76,23 @@ cfg_if! {
pub fn native_create_id(date_num: i64) -> String {
create_id(date_num).unwrap()
}
#[napi]
pub fn native_get_timestamp(id: String) -> i64 {
get_timestamp(&id)
}
}
}
#[cfg(test)]
mod unit_test {
use crate::util::id;
use chrono::Utc;
use pretty_assertions::{assert_eq, assert_ne};
use std::thread;
#[test]
fn can_generate_unique_ids() {
fn can_create_and_decode() {
assert_eq!(id::create_id(0), Err(id::ErrorUninitialized));
id::init_id(16, "");
assert_eq!(id::create_id(0).unwrap().len(), 16);
@ -86,5 +100,10 @@ mod unit_test {
let id1 = thread::spawn(|| id::create_id(0).unwrap());
let id2 = thread::spawn(|| id::create_id(0).unwrap());
assert_ne!(id1.join().unwrap(), id2.join().unwrap());
let now = Utc::now().timestamp_millis();
let test_id = id::create_id(now).unwrap();
let timestamp = id::get_timestamp(&test_id);
assert_eq!(now, timestamp);
}
}

View file

@ -26,16 +26,16 @@
"@tensorflow/tfjs-node": "3.21.1"
},
"dependencies": {
"@bull-board/api": "5.6.0",
"@bull-board/koa": "5.6.0",
"@bull-board/ui": "5.6.0",
"@bull-board/api": "5.7.2",
"@bull-board/koa": "5.7.2",
"@bull-board/ui": "5.7.2",
"@discordapp/twemoji": "14.1.2",
"@elastic/elasticsearch": "7.17.0",
"@koa/cors": "3.4.3",
"@koa/multer": "3.0.2",
"@koa/router": "9.0.1",
"@peertube/http-signature": "1.7.0",
"@redocly/openapi-core": "1.0.0-beta.131",
"@redocly/openapi-core": "1.0.2",
"@sinonjs/fake-timers": "9.1.2",
"@syuilo/aiscript": "0.11.1",
"@tensorflow/tfjs": "^4.2.0",
@ -49,9 +49,8 @@
"axios": "^1.4.0",
"bcryptjs": "2.4.3",
"blurhash": "2.0.5",
"bull": "4.10.4",
"bull": "4.11.2",
"cacheable-lookup": "7.0.0",
"firefish-js": "workspace:*",
"cbor": "8.1.0",
"chalk": "5.3.0",
"chalk-template": "0.4.0",
@ -65,6 +64,7 @@
"escape-regexp": "0.0.1",
"feed": "4.2.2",
"file-type": "17.1.6",
"firefish-js": "workspace:*",
"fluent-ffmpeg": "2.1.2",
"got": "12.5.3",
"gunzip-maybe": "^1.4.2",
@ -92,18 +92,18 @@
"meilisearch": "0.33.0",
"mfm-js": "0.23.3",
"mime-types": "2.1.35",
"msgpackr": "1.9.5",
"msgpackr": "1.9.6",
"multer": "1.4.4-lts.1",
"native-utils": "link:native-utils",
"nested-property": "4.0.0",
"node-fetch": "3.3.1",
"nodemailer": "6.9.3",
"node-fetch": "3.3.2",
"nodemailer": "6.9.4",
"nsfwjs": "2.4.2",
"oauth": "^0.10.0",
"os-utils": "0.0.14",
"otpauth": "^9.1.3",
"otpauth": "^9.1.4",
"parse5": "7.1.2",
"pg": "8.11.1",
"pg": "8.11.2",
"private-ip": "2.3.4",
"probe-image-size": "7.2.3",
"promise-limit": "2.7.0",
@ -113,37 +113,37 @@
"qs": "6.11.2",
"random-seed": "0.3.0",
"ratelimiter": "3.4.1",
"re2": "1.19.1",
"re2": "1.20.1",
"redis-lock": "0.1.4",
"redis-semaphore": "5.3.1",
"redis-semaphore": "5.4.0",
"reflect-metadata": "0.1.13",
"rename": "1.0.4",
"rndstr": "1.0.0",
"rss-parser": "3.13.0",
"sanitize-html": "2.10.0",
"sanitize-html": "2.11.0",
"seedrandom": "^3.0.5",
"semver": "7.5.4",
"sharp": "0.32.1",
"sharp": "0.32.4",
"sonic-channel": "^1.3.1",
"stringz": "2.1.0",
"summaly": "2.7.0",
"syslog-pro": "1.0.0",
"systeminformation": "5.17.17",
"systeminformation": "5.18.13",
"tar-stream": "^3.1.6",
"tesseract.js": "^3.0.3",
"tinycolor2": "1.5.2",
"tesseract.js": "^4.1.1",
"tinycolor2": "1.6.0",
"tmp": "0.2.1",
"twemoji-parser": "14.0.0",
"typeorm": "0.3.17",
"ulid": "2.3.0",
"uuid": "9.0.0",
"web-push": "3.6.3",
"web-push": "3.6.4",
"websocket": "1.0.34",
"xev": "3.0.2"
},
"devDependencies": {
"@swc/cli": "^0.1.62",
"@swc/core": "^1.3.68",
"@swc/core": "^1.3.75",
"@types/adm-zip": "^0.5.0",
"@types/bcryptjs": "2.4.2",
"@types/cbor": "6.0.0",
@ -153,7 +153,7 @@
"@types/jsdom": "21.1.1",
"@types/jsonld": "1.5.9",
"@types/jsrsasign": "10.5.8",
"@types/koa": "2.13.6",
"@types/koa": "2.13.8",
"@types/koa-bodyparser": "4.3.10",
"@types/koa-cors": "0.0.2",
"@types/koa-favicon": "2.0.21",
@ -167,7 +167,7 @@
"@types/mocha": "9.1.1",
"@types/node": "18.11.18",
"@types/node-fetch": "3.0.3",
"@types/nodemailer": "6.4.8",
"@types/nodemailer": "6.4.9",
"@types/oauth": "0.9.1",
"@types/probe-image-size": "^7.2.0",
"@types/pug": "2.0.6",
@ -188,7 +188,7 @@
"@types/websocket": "1.0.5",
"@types/ws": "8.5.5",
"cross-env": "7.0.3",
"eslint": "^8.44.0",
"eslint": "^8.46.0",
"execa": "6.1.0",
"json5-loader": "4.0.1",
"mocha": "10.2.0",
@ -199,7 +199,7 @@
"ts-node": "10.9.1",
"tsconfig-paths": "4.2.0",
"typescript": "5.1.6",
"webpack": "^5.88.1",
"webpack": "^5.88.2",
"ws": "8.13.0"
}
}

View file

@ -226,6 +226,14 @@ export default hasConfig
return null;
} else if (term.startsWith("domain:")) {
const domain = term.slice(7);
if (
domain.length === 0 ||
domain === "local" ||
domain === config.hostname
) {
constructedFilters.push("userHost NOT EXISTS");
return null;
}
constructedFilters.push(`userHost = ${domain}`);
return null;
} else if (term.startsWith("after:")) {

View file

@ -2,6 +2,7 @@ import config from "@/config/index.js";
import {
nativeCreateId,
nativeInitIdGenerator,
nativeGetTimestamp,
} from "native-utils/built/index.js";
const length = Math.min(Math.max(config.cuid?.length ?? 16, 16), 24);
@ -19,3 +20,7 @@ nativeInitIdGenerator(length, fingerprint);
export function genId(date?: Date): string {
return nativeCreateId((date ?? new Date()).getTime());
}
export function getTimestamp(id: string): number {
return nativeGetTimestamp(id);
}

View file

@ -29,7 +29,7 @@ export async function deleteAccount(
userId: user.id,
...(cursor ? { id: MoreThan(cursor) } : {}),
},
take: 100,
take: 10,
order: {
id: 1,
},

View file

@ -2,7 +2,7 @@ import define from "../../define.js";
import readNote from "@/services/note/read.js";
import { Antennas, Notes } from "@/models/index.js";
import { redisClient } from "@/db/redis.js";
import { genId } from "@/misc/gen-id.js";
import { genId, getTimestamp } from "@/misc/gen-id.js";
import { makePaginationQuery } from "../../common/make-pagination-query.js";
import { generateVisibilityQuery } from "../../common/generate-visibility-query.js";
import { generateMutedUserQuery } from "../../common/generate-muted-user-query.js";
@ -61,10 +61,22 @@ export default define(meta, paramDef, async (ps, user) => {
}
const limit = ps.limit + (ps.untilId ? 1 : 0) + (ps.sinceId ? 1 : 0); // untilIdに指定したものも含まれるため+1
let end = "+";
if (ps.untilDate) {
end = ps.untilDate.toString();
} else if (ps.untilId) {
end = getTimestamp(ps.untilId).toString();
}
let start = "-";
if (ps.sinceDate) {
start = ps.sinceDate.toString();
} else if (ps.sinceId) {
start = getTimestamp(ps.sinceId).toString();
}
const noteIdsRes = await redisClient.xrevrange(
`antennaTimeline:${antenna.id}`,
ps.untilDate ?? "+",
ps.sinceDate ?? "-",
end,
start,
"COUNT",
limit,
);

View file

@ -26,16 +26,15 @@ export const paramDef = {
} as const;
export default define(meta, paramDef, async (ps) => {
const worker = createWorker({
logger: (m) => console.log(m),
});
const worker = await createWorker();
await worker.load();
await worker.loadLanguage("eng");
await worker.initialize("eng");
const {
data: { text },
} = await worker.recognize(ps.url);
} = await worker.recognize(ps.url, {
rotateAuto: true,
});
await worker.terminate();
return text;

View file

@ -14,13 +14,15 @@ import { serverLogger } from "../index.js";
import { isMimeImage } from "@/misc/is-mime-image.js";
export async function proxyMedia(ctx: Koa.Context) {
const url = "url" in ctx.query ? ctx.query.url : `https://${ctx.params.url}`;
let url = "url" in ctx.query ? ctx.query.url : `https://${ctx.params.url}`;
if (typeof url !== "string") {
ctx.status = 400;
return;
}
url = url.replace("//", "/");
const { hostname } = new URL(url);
let resolvedIps;
try {

View file

@ -147,7 +147,7 @@
<span class="button-label-big">Refresh</span>
</button>
<p class="dont-worry">Don't worry, it's (probably) not your fault.</p>
<p>Please make sure your browser is up-to-date and any AdBlockers are off.</p>
<p>Please make sure your browser is up-to-date and any AdBlockers are off (given they can sometimes errouniously interfere with loading assets).</p>
<p>If the problem persists after refreshing, please contact your instance's administrator.<br>You may also try the following options:</p>
<a href="/flush">
<button class="button-small">

View file

@ -1,6 +1,6 @@
import type { Antenna } from "@/models/entities/antenna.js";
import type { Note } from "@/models/entities/note.js";
import { genId } from "@/misc/gen-id.js";
import { getTimestamp } from "@/misc/gen-id.js";
import { redisClient } from "@/db/redis.js";
import { publishAntennaStream } from "@/services/stream.js";
import type { User } from "@/models/entities/user.js";
@ -15,7 +15,7 @@ export async function addNoteToAntenna(
"MAXLEN",
"~",
"200",
"*",
`${getTimestamp(note.id)}-*`,
"note",
note.id,
);

View file

@ -36,13 +36,13 @@
"blurhash": "2.0.5",
"broadcast-channel": "5.1.0",
"browser-image-resizer": "github:misskey-dev/browser-image-resizer",
"chart.js": "4.3.2",
"chart.js": "4.3.3",
"chartjs-adapter-date-fns": "3.0.0",
"chartjs-chart-matrix": "^2.0.1",
"chartjs-plugin-gradient": "0.6.1",
"chartjs-plugin-zoom": "2.0.1",
"city-timezones": "^1.2.1",
"compare-versions": "6.0.0",
"compare-versions": "6.1.0",
"cropperjs": "2.0.0-beta.2",
"cross-env": "7.0.3",
"cypress": "10.11.0",
@ -65,20 +65,20 @@
"mfm-js": "0.23.3",
"paralint": "^1.2.1",
"photoswipe": "5.3.8",
"prettier": "3.0.0",
"prettier": "3.0.1",
"prettier-plugin-vue": "1.1.6",
"prismjs": "1.29.0",
"punycode": "2.3.0",
"querystring": "0.2.1",
"rndstr": "1.0.0",
"rollup": "3.27.0",
"rollup": "3.27.2",
"s-age": "1.1.2",
"sass": "1.64.1",
"sass": "1.64.2",
"seedrandom": "3.0.5",
"start-server-and-test": "1.15.2",
"strict-event-emitter-types": "2.0.0",
"stringz": "2.1.0",
"swiper": "10.0.4",
"swiper": "10.1.0",
"syuilo-password-strength": "0.0.1",
"textarea-caret": "3.1.0",
"three": "0.146.0",
@ -92,10 +92,10 @@
"unicode-emoji-json": "^0.4.0",
"uuid": "9.0.0",
"vanilla-tilt": "1.8.0",
"vite": "4.4.7",
"vite": "4.4.9",
"vite-plugin-compression": "^0.5.1",
"vue": "3.3.4",
"vue-draggable-plus": "^0.2.2",
"vue-draggable-plus": "^0.2.4",
"vue-isyourpasswordsafe": "^2.0.0",
"vue-plyr": "^7.0.0",
"vue-prism-editor": "2.0.0-alpha.2"

View file

@ -47,7 +47,7 @@ const commonNames = new Map<string, string>([
["bookwyrm", "BookWyrm"],
["bridgy-fed", "Bridgy Fed"],
["foundkey", "FoundKey"],
["gnusocial", "GNU Social"],
["gnusocial", "GNU social"],
["gotosocial", "GoToSocial"],
["microblogpub", "microblog.pub"],
["nextcloud social", "Nextcloud Social"],

View file

@ -106,7 +106,8 @@
:text="'@namekuji@firefish.social (Backend)'"
/></FormLink>
<FormLink to="/@dev@post.naskya.net"
><Mfm :text="'@dev@post.naskya.net (Fullstack)'"
><Mfm
:text="'@dev@post.naskya.net (Fullstack)'"
/></FormLink>
<FormLink to="/@panos@firefish.social"
><Mfm

View file

@ -24,6 +24,7 @@
<MkTime :time="announcement.createdAt" />
</div>
</div>
<hr class="_seperator" />
<div class="_content">
<Mfm :text="announcement.text" />
<img
@ -87,7 +88,13 @@ definePageMetadata({
padding: 14px 32px !important;
}
> ._seperator {
margin: 1rem;
}
> ._content {
padding: 2rem;
> img {
display: block;
max-height: 300px;

View file

@ -207,7 +207,7 @@ export function getUserMenu(user, router: Router = mainRouter) {
async function getConfirmed(text: string): Promise<boolean> {
const confirm = await os.confirm({
type: "warning",
title: "confirm",
title: i18n.ts.confirm,
text,
});

View file

@ -28,7 +28,7 @@ globalThis.addEventListener("activate", (ev) => {
});
function offlineContentHTML(): string {
return `<!doctype html>Offline. Service Worker @${_VERSION_} <button onclick="location.reload()">reload</button>`;
return `<!DOCTYPE html><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Offline</title><style>*{font-family:BIZ UDGothic,Roboto,HelveticaNeue,Arial,sans-serif}body,html{background-color:#191724;color:#e0def4;justify-content:center;margin:auto;padding:10px;text-align:center}button{border-radius:999px;padding:0 12px 0 12px;border:none;cursor:pointer;margin-bottom:12px}.button-big{background:linear-gradient(90deg,#c4a7e7,#ebbcba);line-height:50px}.button-big:hover{background:#31748f}.button-label-big{color:#191724;font-weight:700;font-size:20px;padding:12px}.button-label-small{color:#9ccfd8;font-size:16px;padding:12px}p{font-size:16px}#msg,.dont-worry{font-size:18px}.icon-warning{color:#f6c177;height:4rem;padding-top:2rem}h1{font-size:32px}code{font-family:Fira,FiraCode,monospace}@media screen and (max-width:500px){details{width:50%}}</style><body><svg class=icon-warning class="icon icon-tabler icon-tabler-alert-triangle"fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2 viewBox="0 0 24 24"xmlns=http://www.w3.org/2000/svg><path d="M0 0h24v24H0z"fill=none stroke=none></path><path d="M12 9v2m0 4v.01"></path><path d="M5 19h14a2 2 0 0 0 1.84 -2.75l-7.1 -12.25a2 2 0 0 0 -3.5 0l-7.1 12.25a2 2 0 0 0 1.75 2.75"></path></svg><h1>Looks like you're offline!</h1><button class=button-big onclick=location.reload(!0)><span class=button-label-big>Refresh</span></button><p class=dont-worry>Looks like Firefish couldn't connect to the server, probably because your device is offline.<p>The installed Service Worker is version <code>${_VERSION_}</code>`;
}
globalThis.addEventListener("fetch", (ev) => {

File diff suppressed because it is too large Load diff