astro-atmosphere-comments 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/settings.ts CHANGED
@@ -13,6 +13,8 @@ export type AtmosphereSettings = {
13
13
  policyUri?: string;
14
14
  tosUri?: string;
15
15
  hidden?: string[];
16
+ locale?: string;
17
+ messages?: Record<string, string>;
16
18
  };
17
19
 
18
20
  export default settings as AtmosphereSettings;
@@ -0,0 +1,36 @@
1
+ // Filling in the component's wording: placeholders and plural forms. Kept
2
+ // apart from lib/i18n.ts so the browser script can use it without bundling
3
+ // every language.
4
+
5
+ export type Messages = Record<string, string>;
6
+
7
+ /**
8
+ * One piece of wording: `vars` fill its {{placeholders}}, and a `count`
9
+ * picks the plural form the language needs. Placeholders not given are
10
+ * left as they are (the component fills some with links).
11
+ */
12
+ export function translate(messages: Messages, locale: string, key: string, vars: Record<string, string | number> = {}): string {
13
+ let text = messages[key];
14
+ if (typeof vars.count === "number") {
15
+ const form = new Intl.PluralRules(locale).select(vars.count);
16
+ text = messages[`${key}_${form}`] ?? messages[`${key}_other`] ?? text;
17
+ }
18
+ text ??= key;
19
+ return text.replace(/\{\{\s*(\w+)\s*\}\}/g, (match, name: string) => (name in vars ? String(vars[name]) : match));
20
+ }
21
+
22
+ export const escapeHtml = (text: string) =>
23
+ text.replace(/[&<>"']/g, (c) => ({ "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;", "'": "&#39;" })[c]!);
24
+
25
+ /** Like translate, for markup: the wording is escaped, and `html` fills placeholders with markup (links, say). */
26
+ export function translateHtml(
27
+ messages: Messages,
28
+ locale: string,
29
+ key: string,
30
+ html: Record<string, string>,
31
+ vars: Record<string, string | number> = {},
32
+ ): string {
33
+ return escapeHtml(translate(messages, locale, key, vars)).replace(/\{\{\s*(\w+)\s*\}\}/g, (match, name: string) =>
34
+ name in html ? html[name] : match,
35
+ );
36
+ }
@@ -0,0 +1,75 @@
1
+ {
2
+ "signIn.heading": "Melde dich an, um zu kommentieren, zu liken oder zu reposten",
3
+ "signIn.anyAccount": "Jedes {{atmosphereAccount}} funktioniert, auch {{bluesky}}: ein Konto für ein ganzes Netzwerk offener Apps.",
4
+ "signIn.atmosphereAccount": "Atmosphere-Konto",
5
+ "signIn.button": "Mit Atmosphere anmelden",
6
+ "signIn.matchingAccounts": "Passende Konten",
7
+ "signIn.privacy": "Du bestätigst das auf der Seite deines eigenen Kontos (für die meisten bei Bluesky); dein Passwort wird hier nie weitergegeben. Noch kein Konto? {{createAccount}}.",
8
+ "signIn.createAccount": "Erstelle ein kostenloses Atmosphere-Konto",
9
+ "elsewhere.text": "Du möchtest dich hier lieber nicht anmelden? {{link}} Deine Antwort erscheint hier genauso, ebenso Likes und Reposts.",
10
+ "elsewhere.link": "Antworte stattdessen auf Bluesky →",
11
+ "actions.label": "Auf diesen Beitrag reagieren",
12
+ "actions.like": "Gefällt mir",
13
+ "actions.liked": "Gefällt dir",
14
+ "actions.repost": "Reposten",
15
+ "actions.reposted": "Repostet",
16
+ "actions.quote": "Zitieren",
17
+ "composer.commentAs": "{{verb}} als {{handle}}",
18
+ "composer.comment": "Kommentieren",
19
+ "composer.quote": "Zitieren",
20
+ "composer.mentions": "Konten zum Erwähnen",
21
+ "composer.previewCaption": "So sieht dein Beitrag aus",
22
+ "composer.now": "jetzt",
23
+ "composer.previewEmpty": "Dein Text erscheint hier.",
24
+ "composer.quoting": "Du zitierst diesen Beitrag mit deinem eigenen Konto",
25
+ "composer.replyingTo": "Antwort an {{name}}",
26
+ "composer.cancel": "Abbrechen",
27
+ "composer.signOut": "Abmelden",
28
+ "composer.postComment": "Kommentar posten",
29
+ "composer.postQuote": "Zitat posten",
30
+ "composer.charactersLeft_one": "Noch {{count}} Zeichen",
31
+ "composer.charactersLeft_other": "Noch {{count}} Zeichen",
32
+ "composer.posting": "Wird gepostet…",
33
+ "posted.comment": "Dein Kommentar ist gepostet.",
34
+ "posted.quote": "Dein Zitat ist auf Bluesky.",
35
+ "posted.see": "Auf Bluesky ansehen →",
36
+ "reactions.likes_one": "{{count}} Like",
37
+ "reactions.likes_other": "{{count}} Likes",
38
+ "reactions.reposts_one": "{{count}} Repost",
39
+ "reactions.reposts_other": "{{count}} Reposts",
40
+ "comment.author": "Autor",
41
+ "comment.viewOnBluesky": "auf Bluesky ansehen",
42
+ "comment.someone": "diesen Kommentar",
43
+ "comment.reply": "Antworten",
44
+ "comment.replyTo": "{{name}} antworten",
45
+ "comment.likeLabel": "Den Kommentar von {{name}} liken",
46
+ "comment.repostLabel": "Den Kommentar von {{name}} reposten",
47
+ "comment.delete": "Löschen",
48
+ "comment.deleteLabel": "Deinen Kommentar löschen",
49
+ "comment.deleteConfirm": "Diesen Kommentar von Bluesky löschen?",
50
+ "comment.deleting": "Wird gelöscht…",
51
+ "comment.deleted": "Dein Kommentar wurde gelöscht.",
52
+ "comment.deletePermission": "Um hier Kommentare zu löschen, braucht diese Seite eine weitere Erlaubnis von deinem Konto. Du kannst ihn auch in jeder Bluesky-App löschen.",
53
+ "comment.continue": "Weiter zur Bestätigung",
54
+ "comment.cancel": "Abbrechen",
55
+ "signInFirst.reply": "Melde dich an, um zu antworten.",
56
+ "signInFirst.like": "Melde dich an, um Kommentare zu liken.",
57
+ "signInFirst.repost": "Melde dich an, um Kommentare zu reposten.",
58
+ "status.liked": "Geliked.",
59
+ "status.likeRemoved": "Like entfernt.",
60
+ "status.reposted": "Repostet.",
61
+ "status.repostRemoved": "Repost entfernt.",
62
+ "status.signedOut": "Du bist abgemeldet.",
63
+ "messages.signedIn": "Du bist angemeldet. Du kannst oben kommentieren, liken oder reposten.",
64
+ "messages.signInFailed": "Die Anmeldung wurde nicht abgeschlossen. Bitte versuche es noch einmal.",
65
+ "messages.accountNotFound": "Dieses Konto wurde nicht gefunden. Prüfe den Handle und versuche es noch einmal.",
66
+ "messages.invalidHandle": "Das sieht nicht wie ein Handle aus. Meist ist es etwas wie alice.bsky.social.",
67
+ "messages.signedOut": "Du wurdest abgemeldet. Bitte melde dich erneut an.",
68
+ "messages.needsPermission": "Um hier Kommentare zu löschen, braucht diese Seite eine weitere Erlaubnis von deinem Konto.",
69
+ "messages.notAllowed": "Das ist hier nicht möglich.",
70
+ "messages.newPermissions": "Diese Seite kann jetzt auch für dich liken und reposten und braucht deshalb erneut deine Erlaubnis. Bitte melde dich erneut an.",
71
+ "messages.tooLong": "Beiträge können bis zu {{max}} Zeichen lang sein.",
72
+ "messages.tooMany": "Du bist ziemlich schnell. Bitte warte eine Minute und versuche es noch einmal.",
73
+ "messages.error": "Das hat nicht geklappt. Bitte versuche es noch einmal.",
74
+ "credit": "Bereitgestellt von {{link}}"
75
+ }
@@ -0,0 +1,75 @@
1
+ {
2
+ "signIn.heading": "Sign in to leave a comment, like or repost",
3
+ "signIn.anyAccount": "Any {{atmosphereAccount}} works, including {{bluesky}}: one account for a whole network of open apps.",
4
+ "signIn.atmosphereAccount": "Atmosphere account",
5
+ "signIn.button": "Sign in with Atmosphere",
6
+ "signIn.matchingAccounts": "Matching accounts",
7
+ "signIn.privacy": "You'll approve this on your account's own site (Bluesky's, for most people); your password is never shared here. No account yet? {{createAccount}}.",
8
+ "signIn.createAccount": "Create a free Atmosphere account",
9
+ "elsewhere.text": "Rather not sign in here? {{link}} It shows up here just the same, as do likes and reposts.",
10
+ "elsewhere.link": "Reply on Bluesky instead →",
11
+ "actions.label": "Respond to this post",
12
+ "actions.like": "Like",
13
+ "actions.liked": "Liked",
14
+ "actions.repost": "Repost",
15
+ "actions.reposted": "Reposted",
16
+ "actions.quote": "Quote",
17
+ "composer.commentAs": "{{verb}} as {{handle}}",
18
+ "composer.comment": "Comment",
19
+ "composer.quote": "Quote",
20
+ "composer.mentions": "Accounts to mention",
21
+ "composer.previewCaption": "How your post will look",
22
+ "composer.now": "now",
23
+ "composer.previewEmpty": "Your words appear here.",
24
+ "composer.quoting": "Quoting this post on your own account",
25
+ "composer.replyingTo": "Replying to {{name}}",
26
+ "composer.cancel": "Cancel",
27
+ "composer.signOut": "Sign out",
28
+ "composer.postComment": "Post comment",
29
+ "composer.postQuote": "Post quote",
30
+ "composer.charactersLeft_one": "{{count}} left",
31
+ "composer.charactersLeft_other": "{{count}} left",
32
+ "composer.posting": "Posting…",
33
+ "posted.comment": "Your comment is posted.",
34
+ "posted.quote": "Your quote post is on Bluesky.",
35
+ "posted.see": "See it on Bluesky →",
36
+ "reactions.likes_one": "{{count}} like",
37
+ "reactions.likes_other": "{{count}} likes",
38
+ "reactions.reposts_one": "{{count}} repost",
39
+ "reactions.reposts_other": "{{count}} reposts",
40
+ "comment.author": "Author",
41
+ "comment.viewOnBluesky": "view on Bluesky",
42
+ "comment.someone": "this comment",
43
+ "comment.reply": "Reply",
44
+ "comment.replyTo": "Reply to {{name}}",
45
+ "comment.likeLabel": "Like {{name}}'s comment",
46
+ "comment.repostLabel": "Repost {{name}}'s comment",
47
+ "comment.delete": "Delete",
48
+ "comment.deleteLabel": "Delete your comment",
49
+ "comment.deleteConfirm": "Delete this comment from Bluesky?",
50
+ "comment.deleting": "Deleting…",
51
+ "comment.deleted": "Your comment was deleted.",
52
+ "comment.deletePermission": "To delete comments here, this site needs one more permission from your account. You can also delete it in any Bluesky app.",
53
+ "comment.continue": "Continue to approve",
54
+ "comment.cancel": "Cancel",
55
+ "signInFirst.reply": "Sign in to reply.",
56
+ "signInFirst.like": "Sign in to like comments.",
57
+ "signInFirst.repost": "Sign in to repost comments.",
58
+ "status.liked": "Liked.",
59
+ "status.likeRemoved": "Like removed.",
60
+ "status.reposted": "Reposted.",
61
+ "status.repostRemoved": "Repost removed.",
62
+ "status.signedOut": "You're signed out.",
63
+ "messages.signedIn": "You're signed in. You can comment, like or repost above.",
64
+ "messages.signInFailed": "Signing in didn't finish. Please try again.",
65
+ "messages.accountNotFound": "We couldn't find that account. Check the handle and try again.",
66
+ "messages.invalidHandle": "That doesn't look like a handle. It's usually something like alice.bsky.social.",
67
+ "messages.signedOut": "You've been signed out. Please sign in again.",
68
+ "messages.needsPermission": "To delete comments here, this site needs one more permission from your account.",
69
+ "messages.notAllowed": "That can't be done here.",
70
+ "messages.newPermissions": "This site can now also like and repost for you, so it needs your permission again. Please sign in again.",
71
+ "messages.tooLong": "Posts can be up to {{max}} characters.",
72
+ "messages.tooMany": "You're going quickly. Please wait a minute and try again.",
73
+ "messages.error": "That didn't work. Please try again.",
74
+ "credit": "Powered by {{link}}"
75
+ }
@@ -0,0 +1,78 @@
1
+ {
2
+ "signIn.heading": "Inicia sesión para comentar, dar me gusta o compartir",
3
+ "signIn.anyAccount": "Sirve cualquier {{atmosphereAccount}}, incluida {{bluesky}}: una sola cuenta para toda una red de aplicaciones abiertas.",
4
+ "signIn.atmosphereAccount": "cuenta de Atmosphere",
5
+ "signIn.button": "Iniciar sesión con Atmosphere",
6
+ "signIn.matchingAccounts": "Cuentas que coinciden",
7
+ "signIn.privacy": "Lo aprobarás en el sitio de tu propia cuenta (el de Bluesky, para la mayoría); tu contraseña nunca se comparte aquí. ¿Aún no tienes cuenta? {{createAccount}}.",
8
+ "signIn.createAccount": "Crea una cuenta de Atmosphere gratis",
9
+ "elsewhere.text": "¿Prefieres no iniciar sesión aquí? {{link}} Tu respuesta aparece aquí igualmente, igual que los me gusta y las publicaciones compartidas.",
10
+ "elsewhere.link": "Responde en Bluesky →",
11
+ "actions.label": "Responder a esta publicación",
12
+ "actions.like": "Me gusta",
13
+ "actions.liked": "Te gusta",
14
+ "actions.repost": "Compartir",
15
+ "actions.reposted": "Compartido",
16
+ "actions.quote": "Citar",
17
+ "composer.commentAs": "{{verb}} como {{handle}}",
18
+ "composer.comment": "Comentar",
19
+ "composer.quote": "Citar",
20
+ "composer.mentions": "Cuentas para mencionar",
21
+ "composer.previewCaption": "Así se verá tu publicación",
22
+ "composer.now": "ahora",
23
+ "composer.previewEmpty": "Tu texto aparece aquí.",
24
+ "composer.quoting": "Estás citando esta publicación en tu propia cuenta",
25
+ "composer.replyingTo": "Respondiendo a {{name}}",
26
+ "composer.cancel": "Cancelar",
27
+ "composer.signOut": "Cerrar sesión",
28
+ "composer.postComment": "Publicar comentario",
29
+ "composer.postQuote": "Publicar cita",
30
+ "composer.charactersLeft_one": "Queda {{count}}",
31
+ "composer.charactersLeft_many": "Quedan {{count}}",
32
+ "composer.charactersLeft_other": "Quedan {{count}}",
33
+ "composer.posting": "Publicando…",
34
+ "posted.comment": "Tu comentario está publicado.",
35
+ "posted.quote": "Tu cita está en Bluesky.",
36
+ "posted.see": "Verla en Bluesky →",
37
+ "reactions.likes_one": "{{count}} me gusta",
38
+ "reactions.likes_many": "{{count}} me gusta",
39
+ "reactions.likes_other": "{{count}} me gusta",
40
+ "reactions.reposts_one": "{{count}} vez compartida",
41
+ "reactions.reposts_many": "{{count}} veces compartida",
42
+ "reactions.reposts_other": "{{count}} veces compartida",
43
+ "comment.author": "Autor",
44
+ "comment.viewOnBluesky": "ver en Bluesky",
45
+ "comment.someone": "este comentario",
46
+ "comment.reply": "Responder",
47
+ "comment.replyTo": "Responder a {{name}}",
48
+ "comment.likeLabel": "Dar me gusta al comentario de {{name}}",
49
+ "comment.repostLabel": "Compartir el comentario de {{name}}",
50
+ "comment.delete": "Eliminar",
51
+ "comment.deleteLabel": "Eliminar tu comentario",
52
+ "comment.deleteConfirm": "¿Eliminar este comentario de Bluesky?",
53
+ "comment.deleting": "Eliminando…",
54
+ "comment.deleted": "Tu comentario se ha eliminado.",
55
+ "comment.deletePermission": "Para eliminar comentarios aquí, este sitio necesita un permiso más de tu cuenta. También puedes eliminarlo en cualquier aplicación de Bluesky.",
56
+ "comment.continue": "Continuar para aprobar",
57
+ "comment.cancel": "Cancelar",
58
+ "signInFirst.reply": "Inicia sesión para responder.",
59
+ "signInFirst.like": "Inicia sesión para dar me gusta a los comentarios.",
60
+ "signInFirst.repost": "Inicia sesión para compartir comentarios.",
61
+ "status.liked": "Te gusta.",
62
+ "status.likeRemoved": "Me gusta quitado.",
63
+ "status.reposted": "Compartido.",
64
+ "status.repostRemoved": "Ya no lo compartes.",
65
+ "status.signedOut": "Has cerrado sesión.",
66
+ "messages.signedIn": "Has iniciado sesión. Puedes comentar, dar me gusta o compartir arriba.",
67
+ "messages.signInFailed": "El inicio de sesión no se completó. Inténtalo de nuevo.",
68
+ "messages.accountNotFound": "No encontramos esa cuenta. Revisa el identificador e inténtalo de nuevo.",
69
+ "messages.invalidHandle": "Eso no parece un identificador. Suele ser algo como alice.bsky.social.",
70
+ "messages.signedOut": "Se ha cerrado tu sesión. Vuelve a iniciar sesión.",
71
+ "messages.needsPermission": "Para eliminar comentarios aquí, este sitio necesita un permiso más de tu cuenta.",
72
+ "messages.notAllowed": "Eso no se puede hacer aquí.",
73
+ "messages.newPermissions": "Este sitio ahora también puede dar me gusta y compartir por ti, así que necesita tu permiso de nuevo. Vuelve a iniciar sesión.",
74
+ "messages.tooLong": "Las publicaciones pueden tener hasta {{max}} caracteres.",
75
+ "messages.tooMany": "Vas muy rápido. Espera un minuto e inténtalo de nuevo.",
76
+ "messages.error": "No ha funcionado. Inténtalo de nuevo.",
77
+ "credit": "Funciona con {{link}}"
78
+ }
@@ -0,0 +1,78 @@
1
+ {
2
+ "signIn.heading": "Connecte-toi pour commenter, aimer ou republier",
3
+ "signIn.anyAccount": "N'importe quel {{atmosphereAccount}} fonctionne, y compris {{bluesky}} : un seul compte pour tout un réseau d'applications ouvertes.",
4
+ "signIn.atmosphereAccount": "compte Atmosphere",
5
+ "signIn.button": "Se connecter avec Atmosphere",
6
+ "signIn.matchingAccounts": "Comptes correspondants",
7
+ "signIn.privacy": "Tu valideras sur le site de ton propre compte (celui de Bluesky, pour la plupart des gens) ; ton mot de passe n'est jamais partagé ici. Pas encore de compte ? {{createAccount}}.",
8
+ "signIn.createAccount": "Crée un compte Atmosphere gratuit",
9
+ "elsewhere.text": "Tu préfères ne pas te connecter ici ? {{link}} Ta réponse s'affiche ici de la même façon, tout comme les « J'aime » et les republications.",
10
+ "elsewhere.link": "Réponds plutôt sur Bluesky →",
11
+ "actions.label": "Réagir à cette publication",
12
+ "actions.like": "J'aime",
13
+ "actions.liked": "Aimé",
14
+ "actions.repost": "Republier",
15
+ "actions.reposted": "Republié",
16
+ "actions.quote": "Citer",
17
+ "composer.commentAs": "{{verb}} en tant que {{handle}}",
18
+ "composer.comment": "Commenter",
19
+ "composer.quote": "Citer",
20
+ "composer.mentions": "Comptes à mentionner",
21
+ "composer.previewCaption": "Aperçu de ta publication",
22
+ "composer.now": "maintenant",
23
+ "composer.previewEmpty": "Ton texte s'affiche ici.",
24
+ "composer.quoting": "Tu cites cette publication sur ton propre compte",
25
+ "composer.replyingTo": "En réponse à {{name}}",
26
+ "composer.cancel": "Annuler",
27
+ "composer.signOut": "Se déconnecter",
28
+ "composer.postComment": "Publier le commentaire",
29
+ "composer.postQuote": "Publier la citation",
30
+ "composer.charactersLeft_one": "{{count}} caractère restant",
31
+ "composer.charactersLeft_many": "{{count}} caractères restants",
32
+ "composer.charactersLeft_other": "{{count}} caractères restants",
33
+ "composer.posting": "Publication…",
34
+ "posted.comment": "Ton commentaire est publié.",
35
+ "posted.quote": "Ta citation est publiée sur Bluesky.",
36
+ "posted.see": "La voir sur Bluesky →",
37
+ "reactions.likes_one": "{{count}} J'aime",
38
+ "reactions.likes_many": "{{count}} J'aime",
39
+ "reactions.likes_other": "{{count}} J'aime",
40
+ "reactions.reposts_one": "{{count}} republication",
41
+ "reactions.reposts_many": "{{count}} republications",
42
+ "reactions.reposts_other": "{{count}} republications",
43
+ "comment.author": "Auteur",
44
+ "comment.viewOnBluesky": "voir sur Bluesky",
45
+ "comment.someone": "ce commentaire",
46
+ "comment.reply": "Répondre",
47
+ "comment.replyTo": "Répondre à {{name}}",
48
+ "comment.likeLabel": "Aimer le commentaire de {{name}}",
49
+ "comment.repostLabel": "Republier le commentaire de {{name}}",
50
+ "comment.delete": "Supprimer",
51
+ "comment.deleteLabel": "Supprimer ton commentaire",
52
+ "comment.deleteConfirm": "Supprimer ce commentaire de Bluesky ?",
53
+ "comment.deleting": "Suppression…",
54
+ "comment.deleted": "Ton commentaire a été supprimé.",
55
+ "comment.deletePermission": "Pour supprimer des commentaires ici, ce site a besoin d'une autorisation de plus de ton compte. Tu peux aussi le supprimer dans n'importe quelle application Bluesky.",
56
+ "comment.continue": "Continuer pour autoriser",
57
+ "comment.cancel": "Annuler",
58
+ "signInFirst.reply": "Connecte-toi pour répondre.",
59
+ "signInFirst.like": "Connecte-toi pour aimer des commentaires.",
60
+ "signInFirst.repost": "Connecte-toi pour republier des commentaires.",
61
+ "status.liked": "Aimé.",
62
+ "status.likeRemoved": "« J'aime » retiré.",
63
+ "status.reposted": "Republié.",
64
+ "status.repostRemoved": "Republication retirée.",
65
+ "status.signedOut": "Tu es déconnecté.",
66
+ "messages.signedIn": "Tu es connecté. Tu peux commenter, aimer ou republier ci-dessus.",
67
+ "messages.signInFailed": "La connexion n'a pas abouti. Réessaie.",
68
+ "messages.accountNotFound": "Ce compte est introuvable. Vérifie l'identifiant et réessaie.",
69
+ "messages.invalidHandle": "Ça ne ressemble pas à un identifiant. C'est généralement quelque chose comme alice.bsky.social.",
70
+ "messages.signedOut": "Tu as été déconnecté. Connecte-toi à nouveau.",
71
+ "messages.needsPermission": "Pour supprimer des commentaires ici, ce site a besoin d'une autorisation de plus de ton compte.",
72
+ "messages.notAllowed": "Ce n'est pas possible ici.",
73
+ "messages.newPermissions": "Ce site peut désormais aussi aimer et republier pour toi ; il a donc de nouveau besoin de ton autorisation. Connecte-toi à nouveau.",
74
+ "messages.tooLong": "Les publications peuvent contenir jusqu'à {{max}} caractères.",
75
+ "messages.tooMany": "Tu vas un peu vite. Attends une minute et réessaie.",
76
+ "messages.error": "Ça n'a pas marché. Réessaie.",
77
+ "credit": "Propulsé par {{link}}"
78
+ }
@@ -0,0 +1,78 @@
1
+ {
2
+ "signIn.heading": "Accedi per commentare, mettere mi piace o ripubblicare",
3
+ "signIn.anyAccount": "Va bene qualsiasi {{atmosphereAccount}}, anche quello di {{bluesky}}: un solo account per un'intera rete di app aperte.",
4
+ "signIn.atmosphereAccount": "account Atmosphere",
5
+ "signIn.button": "Accedi con Atmosphere",
6
+ "signIn.matchingAccounts": "Account corrispondenti",
7
+ "signIn.privacy": "Darai l'approvazione sul sito del tuo account (quello di Bluesky, per la maggior parte delle persone); la tua password non viene mai condivisa qui. Non hai ancora un account? {{createAccount}}.",
8
+ "signIn.createAccount": "Crea un account Atmosphere gratuito",
9
+ "elsewhere.text": "Preferisci non accedere qui? {{link}} La tua risposta compare qui allo stesso modo, così come i mi piace e le ripubblicazioni.",
10
+ "elsewhere.link": "Rispondi su Bluesky →",
11
+ "actions.label": "Rispondi a questo post",
12
+ "actions.like": "Mi piace",
13
+ "actions.liked": "Ti piace",
14
+ "actions.repost": "Ripubblica",
15
+ "actions.reposted": "Ripubblicato",
16
+ "actions.quote": "Cita",
17
+ "composer.commentAs": "{{verb}} come {{handle}}",
18
+ "composer.comment": "Commenta",
19
+ "composer.quote": "Cita",
20
+ "composer.mentions": "Account da menzionare",
21
+ "composer.previewCaption": "Ecco come apparirà il tuo post",
22
+ "composer.now": "ora",
23
+ "composer.previewEmpty": "Il tuo testo appare qui.",
24
+ "composer.quoting": "Stai citando questo post sul tuo account",
25
+ "composer.replyingTo": "In risposta a {{name}}",
26
+ "composer.cancel": "Annulla",
27
+ "composer.signOut": "Esci",
28
+ "composer.postComment": "Pubblica commento",
29
+ "composer.postQuote": "Pubblica citazione",
30
+ "composer.charactersLeft_one": "Ne resta {{count}}",
31
+ "composer.charactersLeft_many": "Ne restano {{count}}",
32
+ "composer.charactersLeft_other": "Ne restano {{count}}",
33
+ "composer.posting": "Pubblicazione…",
34
+ "posted.comment": "Il tuo commento è pubblicato.",
35
+ "posted.quote": "La tua citazione è su Bluesky.",
36
+ "posted.see": "Vedila su Bluesky →",
37
+ "reactions.likes_one": "{{count}} mi piace",
38
+ "reactions.likes_many": "{{count}} mi piace",
39
+ "reactions.likes_other": "{{count}} mi piace",
40
+ "reactions.reposts_one": "{{count}} ripubblicazione",
41
+ "reactions.reposts_many": "{{count}} ripubblicazioni",
42
+ "reactions.reposts_other": "{{count}} ripubblicazioni",
43
+ "comment.author": "Autore",
44
+ "comment.viewOnBluesky": "vedi su Bluesky",
45
+ "comment.someone": "questo commento",
46
+ "comment.reply": "Rispondi",
47
+ "comment.replyTo": "Rispondi a {{name}}",
48
+ "comment.likeLabel": "Metti mi piace al commento di {{name}}",
49
+ "comment.repostLabel": "Ripubblica il commento di {{name}}",
50
+ "comment.delete": "Elimina",
51
+ "comment.deleteLabel": "Elimina il tuo commento",
52
+ "comment.deleteConfirm": "Eliminare questo commento da Bluesky?",
53
+ "comment.deleting": "Eliminazione…",
54
+ "comment.deleted": "Il tuo commento è stato eliminato.",
55
+ "comment.deletePermission": "Per eliminare i commenti qui, questo sito ha bisogno di un'altra autorizzazione dal tuo account. Puoi anche eliminarlo in qualsiasi app di Bluesky.",
56
+ "comment.continue": "Continua per approvare",
57
+ "comment.cancel": "Annulla",
58
+ "signInFirst.reply": "Accedi per rispondere.",
59
+ "signInFirst.like": "Accedi per mettere mi piace ai commenti.",
60
+ "signInFirst.repost": "Accedi per ripubblicare i commenti.",
61
+ "status.liked": "Ti piace.",
62
+ "status.likeRemoved": "Mi piace rimosso.",
63
+ "status.reposted": "Ripubblicato.",
64
+ "status.repostRemoved": "Ripubblicazione rimossa.",
65
+ "status.signedOut": "Sei uscito.",
66
+ "messages.signedIn": "Hai effettuato l'accesso. Puoi commentare, mettere mi piace o ripubblicare qui sopra.",
67
+ "messages.signInFailed": "L'accesso non è stato completato. Riprova.",
68
+ "messages.accountNotFound": "Non abbiamo trovato quell'account. Controlla l'handle e riprova.",
69
+ "messages.invalidHandle": "Non sembra un handle. Di solito è qualcosa come alice.bsky.social.",
70
+ "messages.signedOut": "Sei stato disconnesso. Accedi di nuovo.",
71
+ "messages.needsPermission": "Per eliminare i commenti qui, questo sito ha bisogno di un'altra autorizzazione dal tuo account.",
72
+ "messages.notAllowed": "Qui non si può fare.",
73
+ "messages.newPermissions": "Ora questo sito può anche mettere mi piace e ripubblicare per te, quindi ha di nuovo bisogno della tua autorizzazione. Accedi di nuovo.",
74
+ "messages.tooLong": "I post possono avere fino a {{max}} caratteri.",
75
+ "messages.tooMany": "Stai andando un po' veloce. Aspetta un minuto e riprova.",
76
+ "messages.error": "Non ha funzionato. Riprova.",
77
+ "credit": "Realizzato con {{link}}"
78
+ }
@@ -0,0 +1,72 @@
1
+ {
2
+ "signIn.heading": "ログインしてコメント、いいね、リポストする",
3
+ "signIn.anyAccount": "{{bluesky}}を含め、どの{{atmosphereAccount}}でも使えます。ひとつのアカウントで、オープンなアプリのネットワーク全体を利用できます。",
4
+ "signIn.atmosphereAccount": "Atmosphereアカウント",
5
+ "signIn.button": "Atmosphereでログイン",
6
+ "signIn.matchingAccounts": "一致するアカウント",
7
+ "signIn.privacy": "承認はご自身のアカウントのサイト(ほとんどの方はBluesky)で行います。パスワードがこのサイトに渡ることはありません。アカウントをお持ちでない方は{{createAccount}}。",
8
+ "signIn.createAccount": "無料のAtmosphereアカウントを作成",
9
+ "elsewhere.text": "ここでログインしたくない場合は、{{link}} 返信は同じようにここに表示されます。いいねやリポストも同様です。",
10
+ "elsewhere.link": "Blueskyで返信 →",
11
+ "actions.label": "この投稿に反応する",
12
+ "actions.like": "いいね",
13
+ "actions.liked": "いいね済み",
14
+ "actions.repost": "リポスト",
15
+ "actions.reposted": "リポスト済み",
16
+ "actions.quote": "引用",
17
+ "composer.commentAs": "{{handle}}として{{verb}}",
18
+ "composer.comment": "コメント",
19
+ "composer.quote": "引用",
20
+ "composer.mentions": "メンションするアカウント",
21
+ "composer.previewCaption": "投稿の表示イメージ",
22
+ "composer.now": "たった今",
23
+ "composer.previewEmpty": "ここに文章が表示されます。",
24
+ "composer.quoting": "ご自身のアカウントでこの投稿を引用します",
25
+ "composer.replyingTo": "{{name}}への返信",
26
+ "composer.cancel": "キャンセル",
27
+ "composer.signOut": "ログアウト",
28
+ "composer.postComment": "コメントを投稿",
29
+ "composer.postQuote": "引用を投稿",
30
+ "composer.charactersLeft_other": "残り{{count}}文字",
31
+ "composer.posting": "投稿中…",
32
+ "posted.comment": "コメントを投稿しました。",
33
+ "posted.quote": "引用をBlueskyに投稿しました。",
34
+ "posted.see": "Blueskyで見る →",
35
+ "reactions.likes_other": "{{count}}件のいいね",
36
+ "reactions.reposts_other": "{{count}}件のリポスト",
37
+ "comment.author": "作成者",
38
+ "comment.viewOnBluesky": "Blueskyで見る",
39
+ "comment.someone": "このコメント",
40
+ "comment.reply": "返信",
41
+ "comment.replyTo": "{{name}}に返信",
42
+ "comment.likeLabel": "{{name}}のコメントにいいね",
43
+ "comment.repostLabel": "{{name}}のコメントをリポスト",
44
+ "comment.delete": "削除",
45
+ "comment.deleteLabel": "コメントを削除",
46
+ "comment.deleteConfirm": "このコメントをBlueskyから削除しますか?",
47
+ "comment.deleting": "削除中…",
48
+ "comment.deleted": "コメントを削除しました。",
49
+ "comment.deletePermission": "ここでコメントを削除するには、このサイトにアカウントからの許可がもうひとつ必要です。Blueskyのアプリから削除することもできます。",
50
+ "comment.continue": "許可に進む",
51
+ "comment.cancel": "キャンセル",
52
+ "signInFirst.reply": "返信するにはログインしてください。",
53
+ "signInFirst.like": "コメントにいいねするにはログインしてください。",
54
+ "signInFirst.repost": "コメントをリポストするにはログインしてください。",
55
+ "status.liked": "いいねしました。",
56
+ "status.likeRemoved": "いいねを取り消しました。",
57
+ "status.reposted": "リポストしました。",
58
+ "status.repostRemoved": "リポストを取り消しました。",
59
+ "status.signedOut": "ログアウトしました。",
60
+ "messages.signedIn": "ログインしました。上からコメント、いいね、リポストができます。",
61
+ "messages.signInFailed": "ログインが完了しませんでした。もう一度お試しください。",
62
+ "messages.accountNotFound": "そのアカウントが見つかりませんでした。ハンドルを確認して、もう一度お試しください。",
63
+ "messages.invalidHandle": "ハンドルではないようです。通常は alice.bsky.social のような形式です。",
64
+ "messages.signedOut": "ログアウトされました。もう一度ログインしてください。",
65
+ "messages.needsPermission": "ここでコメントを削除するには、このサイトにアカウントからの許可がもうひとつ必要です。",
66
+ "messages.notAllowed": "ここではその操作はできません。",
67
+ "messages.newPermissions": "このサイトはいいねとリポストもできるようになったため、改めて許可が必要です。もう一度ログインしてください。",
68
+ "messages.tooLong": "投稿は{{max}}文字までです。",
69
+ "messages.tooMany": "操作が早すぎます。1分待ってから、もう一度お試しください。",
70
+ "messages.error": "うまくいきませんでした。もう一度お試しください。",
71
+ "credit": "{{link}}で動作しています"
72
+ }
@@ -0,0 +1,75 @@
1
+ {
2
+ "signIn.heading": "Log in om te reageren, te liken of te reposten",
3
+ "signIn.anyAccount": "Elk {{atmosphereAccount}} werkt, ook {{bluesky}}: één account voor een heel netwerk van open apps.",
4
+ "signIn.atmosphereAccount": "Atmosphere-account",
5
+ "signIn.button": "Inloggen met Atmosphere",
6
+ "signIn.matchingAccounts": "Overeenkomende accounts",
7
+ "signIn.privacy": "Je keurt dit goed op de site van je eigen account (voor de meeste mensen die van Bluesky); je wachtwoord wordt hier nooit gedeeld. Nog geen account? {{createAccount}}.",
8
+ "signIn.createAccount": "Maak gratis een Atmosphere-account",
9
+ "elsewhere.text": "Liever hier niet inloggen? {{link}} Je reactie verschijnt hier net zo goed, net als likes en reposts.",
10
+ "elsewhere.link": "Reageer op Bluesky →",
11
+ "actions.label": "Reageer op dit bericht",
12
+ "actions.like": "Liken",
13
+ "actions.liked": "Geliket",
14
+ "actions.repost": "Reposten",
15
+ "actions.reposted": "Gerepost",
16
+ "actions.quote": "Citeren",
17
+ "composer.commentAs": "{{verb}} als {{handle}}",
18
+ "composer.comment": "Reageren",
19
+ "composer.quote": "Citeren",
20
+ "composer.mentions": "Accounts om te noemen",
21
+ "composer.previewCaption": "Zo ziet je bericht eruit",
22
+ "composer.now": "nu",
23
+ "composer.previewEmpty": "Je tekst verschijnt hier.",
24
+ "composer.quoting": "Je citeert dit bericht met je eigen account",
25
+ "composer.replyingTo": "Reactie op {{name}}",
26
+ "composer.cancel": "Annuleren",
27
+ "composer.signOut": "Uitloggen",
28
+ "composer.postComment": "Reactie plaatsen",
29
+ "composer.postQuote": "Citaat plaatsen",
30
+ "composer.charactersLeft_one": "Nog {{count}} teken",
31
+ "composer.charactersLeft_other": "Nog {{count}} tekens",
32
+ "composer.posting": "Plaatsen…",
33
+ "posted.comment": "Je reactie is geplaatst.",
34
+ "posted.quote": "Je citaat staat op Bluesky.",
35
+ "posted.see": "Bekijk het op Bluesky →",
36
+ "reactions.likes_one": "{{count}} like",
37
+ "reactions.likes_other": "{{count}} likes",
38
+ "reactions.reposts_one": "{{count}} repost",
39
+ "reactions.reposts_other": "{{count}} reposts",
40
+ "comment.author": "Auteur",
41
+ "comment.viewOnBluesky": "bekijk op Bluesky",
42
+ "comment.someone": "deze reactie",
43
+ "comment.reply": "Reageren",
44
+ "comment.replyTo": "Reageer op {{name}}",
45
+ "comment.likeLabel": "De reactie van {{name}} liken",
46
+ "comment.repostLabel": "De reactie van {{name}} reposten",
47
+ "comment.delete": "Verwijderen",
48
+ "comment.deleteLabel": "Je reactie verwijderen",
49
+ "comment.deleteConfirm": "Deze reactie van Bluesky verwijderen?",
50
+ "comment.deleting": "Verwijderen…",
51
+ "comment.deleted": "Je reactie is verwijderd.",
52
+ "comment.deletePermission": "Om hier reacties te verwijderen, heeft deze site nog één toestemming van je account nodig. Je kunt hem ook in elke Bluesky-app verwijderen.",
53
+ "comment.continue": "Doorgaan om toe te staan",
54
+ "comment.cancel": "Annuleren",
55
+ "signInFirst.reply": "Log in om te reageren.",
56
+ "signInFirst.like": "Log in om reacties te liken.",
57
+ "signInFirst.repost": "Log in om reacties te reposten.",
58
+ "status.liked": "Geliket.",
59
+ "status.likeRemoved": "Like verwijderd.",
60
+ "status.reposted": "Gerepost.",
61
+ "status.repostRemoved": "Repost verwijderd.",
62
+ "status.signedOut": "Je bent uitgelogd.",
63
+ "messages.signedIn": "Je bent ingelogd. Je kunt hierboven reageren, liken of reposten.",
64
+ "messages.signInFailed": "Het inloggen is niet afgerond. Probeer het opnieuw.",
65
+ "messages.accountNotFound": "We konden dat account niet vinden. Controleer de handle en probeer het opnieuw.",
66
+ "messages.invalidHandle": "Dat lijkt geen handle. Meestal is het zoiets als alice.bsky.social.",
67
+ "messages.signedOut": "Je bent uitgelogd. Log opnieuw in.",
68
+ "messages.needsPermission": "Om hier reacties te verwijderen, heeft deze site nog één toestemming van je account nodig.",
69
+ "messages.notAllowed": "Dat kan hier niet.",
70
+ "messages.newPermissions": "Deze site kan nu ook voor je liken en reposten en heeft daarom opnieuw je toestemming nodig. Log opnieuw in.",
71
+ "messages.tooLong": "Berichten mogen maximaal {{max}} tekens lang zijn.",
72
+ "messages.tooMany": "Je gaat wel snel. Wacht een minuut en probeer het opnieuw.",
73
+ "messages.error": "Dat is niet gelukt. Probeer het opnieuw.",
74
+ "credit": "Mogelijk gemaakt door {{link}}"
75
+ }