diff --git a/ansible/VERSION b/ansible/VERSION index 63f2359f6..2c0a9c7b7 100644 --- a/ansible/VERSION +++ b/ansible/VERSION @@ -1 +1 @@ -v0.7.1 +v0.7.2 diff --git a/docker/prod/docker-compose.yml b/docker/prod/docker-compose.yml index c3ae85545..ef3d69752 100644 --- a/docker/prod/docker-compose.yml +++ b/docker/prod/docker-compose.yml @@ -12,7 +12,7 @@ services: restart: always lemmy: - image: dessalines/lemmy:v0.7.1 + image: dessalines/lemmy:v0.7.2 ports: - "127.0.0.1:8536:8536" restart: always diff --git a/docs/src/SUMMARY.md b/docs/src/SUMMARY.md index bff5cbf64..a2bf58569 100644 --- a/docs/src/SUMMARY.md +++ b/docs/src/SUMMARY.md @@ -14,6 +14,7 @@ - [Contributing](contributing.md) - [Docker Development](contributing_docker_development.md) - [Local Development](contributing_local_development.md) + - [Tests](contributing_tests.md) - [Federation Development](contributing_federation_development.md) - [Websocket/HTTP API](contributing_websocket_http_api.md) - [ActivityPub API Outline](contributing_apub_api_outline.md) diff --git a/docs/src/contributing.md b/docs/src/contributing.md index 69d2f42ea..fdfaa2b84 100644 --- a/docs/src/contributing.md +++ b/docs/src/contributing.md @@ -4,9 +4,9 @@ Information about contributing to Lemmy, whether it is translating, testing, des ## Issue tracking / Repositories -- [GitHub (for issues)](https://github.com/LemmyNet/lemmy) -- [Gitea](https://yerbamate.dev/LemmyNet/lemmy) -- [GitLab](https://gitlab.com/dessalines/lemmy) +- [GitHub (for issues and pull requests)](https://github.com/LemmyNet/lemmy) +- [Gitea (only for pull requests)](https://yerbamate.dev/LemmyNet/lemmy) +- [GitLab (only code-mirror)](https://gitlab.com/dessalines/lemmy) ## Translating diff --git a/docs/src/contributing_tests.md b/docs/src/contributing_tests.md new file mode 100644 index 000000000..13e5d1222 --- /dev/null +++ b/docs/src/contributing_tests.md @@ -0,0 +1,18 @@ +### Tests + +#### Rust + +After installing [local development dependencies](contributing_local_development.md), run the +following commands in the `server` subfolder: + +```bash +psql -U lemmy -c "DROP SCHEMA public CASCADE; CREATE SCHEMA public;" +export DATABASE_URL=postgres://lemmy:password@localhost:5432/lemmy +diesel migration run +RUST_TEST_THREADS=1 cargo test +``` + +### Federation + +Install the [Docker development dependencies](contributing_docker_development.md), and execute +`docker/federation-test/run-tests.sh` diff --git a/docs/src/lemmy_council.md b/docs/src/lemmy_council.md index 96234ff93..08c25fb83 100644 --- a/docs/src/lemmy_council.md +++ b/docs/src/lemmy_council.md @@ -49,5 +49,7 @@ ## Member List / Contact Info General Contact [@LemmyDev Mastodon](https://mastodon.social/@LemmyDev) -- Dessalines [Matrix](https://matrix.to/#/@happydooby:matrix.org) -- Nutomic [Matrix](https://matrix.to/#/@nutomic:matrix.org), [Mastodon](https://radical.town/@felix) +- [Dessalines](https://dev.lemmy.ml/u/dessalines) +- [Nutomic](https://dev.lemmy.ml/u/nutomic) +- [AgreeableLandscape](https://dev.lemmy.ml/u/AgreeableLandscape) +- [fruechtchen](https://dev.lemmy.ml/u/fruechtchen) \ No newline at end of file diff --git a/server/src/version.rs b/server/src/version.rs index bee0dcb2a..b49db8033 100644 --- a/server/src/version.rs +++ b/server/src/version.rs @@ -1 +1 @@ -pub const VERSION: &str = "v0.7.1"; +pub const VERSION: &str = "v0.7.2"; diff --git a/ui/src/components/comment-form.tsx b/ui/src/components/comment-form.tsx index 0fb7824ec..45974cc07 100644 --- a/ui/src/components/comment-form.tsx +++ b/ui/src/components/comment-form.tsx @@ -245,7 +245,7 @@ export class CommentForm extends Component { }); } - handleFinished(data: CommentResponse) { + handleFinished(op: UserOperation, data: CommentResponse) { let isReply = this.props.node !== undefined && data.comment.parent_id !== null; let xor = @@ -253,11 +253,16 @@ export class CommentForm extends Component { if ( (data.comment.creator_id == UserService.Instance.user.id && - // If its a reply, make sure parent child match - isReply && - data.comment.parent_id == this.props.node.comment.id) || - // Otherwise, check the XOR of the two - (!isReply && xor) + ((op == UserOperation.CreateComment && + // If its a reply, make sure parent child match + isReply && + data.comment.parent_id == this.props.node.comment.id) || + // Otherwise, check the XOR of the two + (!isReply && xor))) || + // If its a comment edit, only check that its from your user, and that its a + // text edit only + + (op == UserOperation.EditComment && data.comment.content) ) { this.state.previewMode = false; this.state.loading = false; @@ -373,10 +378,10 @@ export class CommentForm extends Component { if (UserService.Instance.user) { if (res.op == UserOperation.CreateComment) { let data = res.data as CommentResponse; - this.handleFinished(data); + this.handleFinished(res.op, data); } else if (res.op == UserOperation.EditComment) { let data = res.data as CommentResponse; - this.handleFinished(data); + this.handleFinished(res.op, data); } } } diff --git a/ui/src/version.ts b/ui/src/version.ts index 9bad06edb..92d18546c 100644 --- a/ui/src/version.ts +++ b/ui/src/version.ts @@ -1 +1 @@ -export const version: string = 'v0.7.1'; +export const version: string = 'v0.7.2'; diff --git a/ui/translations/eo.json b/ui/translations/eo.json index 518e2eb49..5bde84f46 100644 --- a/ui/translations/eo.json +++ b/ui/translations/eo.json @@ -10,7 +10,8 @@ "cross_posts": "Tiuj ligilo ankaŭ estas poŝtinta al:", "cross_post": "laŭapoŝto", "comments": "Komentoj", - "number_of_comments": "{{count}} Komentoj", + "number_of_comments": "{{count}} Komento", + "number_of_comments_plural": "{{count}} Komentoj", "remove_comment": "Fortiri Komentojn", "communities": "Komunumoj", "users": "Uzantoj", @@ -94,8 +95,7 @@ "login_sign_up": "Ensaluti / Registriĝi", "login": "Ensaluti", "sign_up": "Registriĝi", - "notifications_error": - "Labortablaj avizoj estas nehavebla en via retumilo. Provu Firefox-on aŭ Chrome-on.", + "notifications_error": "Labortablaj avizoj estas nehavebla en via retumilo. Provu Firefox-on aŭ Chrome-on.", "unread_messages": "Nelegitaj Mesaĝoj", "password": "Pasvorto", "verify_password": "Konfirmu Vian Pasvorton", @@ -120,11 +120,9 @@ "show_nsfw": "Vidigi NSFW-an enhavon", "sponsors": "Subtenantoj", "sponsors_of_lemmy": "Subtenantoj de Lemmy", - "sponsor_message": - "Lemmy estas senpaga, <1>liberkoda programaro. Tio signifas ne reklami, pagigi, aŭ riska kapitalo, ĉiam. Viaj donacoj rekte subtenas plentempan evoluon de la projekto. Dankon al tiuj homoj:", + "sponsor_message": "Lemmy estas senpaga, <1>liberkoda programaro. Tio signifas ne reklami, pagigi, aŭ riska kapitalo, ĉiam. Viaj donacoj rekte subtenas plentempan evoluon de la projekto. Dankon al tiuj homoj:", "support_on_patreon": "Subteni per Patreon", - "general_sponsors": - "Ĝeneralaj Subtenantoj estas tiuj ke donacis inter $10 kaj $39 al Lemmy.", + "general_sponsors": "Ĝeneralaj Subtenantoj estas tiuj ke donacis inter $10 kaj $39 al Lemmy.", "crypto": "Crypto", "bitcoin": "Bitcoin", "ethereum": "Ethereum", @@ -136,8 +134,7 @@ "transfer_community": "transdoni la komunumon", "transfer_site": "transdoni la retejon", "powered_by": "Konstruis per", - "landing_0": - "Lemmy estas <1>ligila agregatilo / Reddit anstataŭo ke intenciĝas funkci en la <2>federacio-universo.<3>ĝi estas mem-gastigebla, havas nuna-ĝisdatigajn komentarojn, kaj estas malgrandega (<4>~80kB). Federacio en la ActivityPub-an reton estas planizita. <5>Estas <6>fruega beta versio, kaj multaj trajtoj estas nune difektaj aŭ mankaj. <7>Sugestias novajn trajtojn aŭ raportas cimojn <8>ĉi tie.<9>Faris per <10>Rust, <11>Actix, <12>Inferno, <13>Typescript.", + "landing_0": "Lemmy estas <1>ligila agregatilo / Reddit anstataŭo ke intenciĝas funkci en la <2>federacio-universo.<3>ĝi estas mem-gastigebla, havas nuna-ĝisdatigajn komentarojn, kaj estas malgrandega (<4>~80kB). Federacio en la ActivityPub-an reton estas planizita. <5>Estas <6>fruega beta versio, kaj multaj trajtoj estas nune difektaj aŭ mankaj. <7>Sugestias novajn trajtojn aŭ raportas cimojn <8>ĉi tie.<9>Faris per <10>Rust, <11>Actix, <12>Inferno, <13>Typescript.", "not_logged_in": "Ne estas ensalutinta.", "community_ban": "Vi estas forbarita de la komunumo.", "site_ban": "Vi estas forbarita de la retejo", @@ -164,12 +161,17 @@ "not_an_admin": "Ne estas administranto.", "site_already_exists": "Retejo jam ekzistas.", "couldnt_update_site": "Ne povis ĝisdatigi la retejon.", - "couldnt_find_that_username_or_email": - "Ne povis trovi tiun uzantnomon aŭ retadreson.", + "couldnt_find_that_username_or_email": "Ne povis trovi tiun uzantnomon aŭ retadreson.", "password_incorrect": "Pasvorto malĝustas.", "passwords_dont_match": "Pasvortoj ne samas.", "admin_already_created": "Pardonu, jam estas administranto.", "user_already_exists": "Uzanto jam ekzistas.", "couldnt_update_user": "Ne povis ĝisdatigi la uzanton.", - "system_err_login": "Sistema eraro. Provu elsaluti kaj ensaluti." + "system_err_login": "Sistema eraro. Provu elsaluti kaj ensaluti.", + "send_message": "Sendi mesaĝon", + "message": "Mesaĝo", + "number_of_communities": "{{count}} Komunumo", + "number_of_communities_plural": "{{count}} Komunumoj", + "more": "pli", + "select_a_community": "Elekti komunumon" } diff --git a/ui/translations/es.json b/ui/translations/es.json index 0b25e08c0..55b585caf 100644 --- a/ui/translations/es.json +++ b/ui/translations/es.json @@ -253,5 +253,8 @@ "emoji_picker": "Lista de emojis", "admin_settings": "Panel de Administración", "select_a_community": "Selecciona una comunidad", - "invalid_username": "Nombre de usuario inválido." + "invalid_username": "Nombre de usuario inválido.", + "invalid_community_name": "Nombre inválido.", + "click_to_delete_picture": "Haz click para eliminar la imagen.", + "picture_deleted": "Imagen borrada." } diff --git a/ui/translations/fr.json b/ui/translations/fr.json index cdb8adbfe..579def520 100644 --- a/ui/translations/fr.json +++ b/ui/translations/fr.json @@ -203,10 +203,10 @@ "couldnt_save_comment": "Impossible de sauvegarder le commentaire.", "couldnt_get_comments": "Impossible d'obtenir les commentaires.", "no_comment_edit_allowed": "Vous n’êtes pas autorisé à éditer ce commentaire.", - "no_post_edit_allowed": "Vous n’êtes pas autorisé à éditer la publication.", + "no_post_edit_allowed": "Vous n’êtes pas autorisé à éditer cette publication.", "no_community_edit_allowed": "Vous n’êtes pas autorisé à éditer cette communauté.", "couldnt_find_community": "Impossible de trouver cette communauté.", - "couldnt_update_community": "Impossible d’éditer cette communauté.", + "couldnt_update_community": "Impossible de mettre à jour cette communauté.", "community_already_exists": "Cette communauté existe déjà.", "community_moderator_already_exists": "Ce membre est déjà modérateur.", "community_follower_already_exists": "Ce membre est déjà abonné.", @@ -224,15 +224,15 @@ "couldnt_update_site": "Impossible de mettre à jour le site.", "couldnt_find_that_username_or_email": "Impossible de trouver cet·te utilisateur·rice ou cet email.", "password_incorrect": "Mot de passe incorrect.", - "passwords_dont_match": "Les mots de passes ne correspondent pas..", + "passwords_dont_match": "Les mots de passes ne correspondent pas.", "admin_already_created": "Désolé, il y a déjà un admin.", "user_already_exists": "L’utilisateur·rice existe déjà.", "email_already_exists": "L’email existe déjà.", "couldnt_update_user": "Impossible de mettre à jour l’utilisateur·rice.", - "system_err_login": "Erreur système. Essayez de vous déconneter puis de vous reconnecter.", + "system_err_login": "Erreur système. Essayez de vous déconnecter puis de vous reconnecter.", "couldnt_create_private_message": "Impossible de créer un message privé.", "no_private_message_edit_allowed": "Pas autorisé à modifier un message privé.", - "couldnt_update_private_message": "Impossible de modifier un message privé.", + "couldnt_update_private_message": "Impossible de modifier le message privé.", "time": "Temps", "action": "Action", "more": "plus", @@ -244,13 +244,13 @@ "sorting_help": "aide au tri", "upvote": "Voter pour", "show_context": "Afficher le contexte", - "block_leaving": "Vous êtes sûr de vouloir partir ?", + "block_leaving": "Etes-vous sûr de vouloir partir ?", "number_of_upvotes": "{{count}} Votes pour", "number_of_upvotes_plural": "{{count}} Votes contre", "number_of_downvotes": "{{count}} Vote contre", "number_of_downvotes_plural": "{{count}} Votes contre", "downvote": "Voter contre", - "emoji_picker": "Sélecteur d’émojis", + "emoji_picker": "Sélecteur d’Émojis", "silver_sponsors": "Les Sponsors Argent sont celles et ceux qui ont fait une donation de 40$ à Lemmy.", "select_a_community": "Sélectionner une communauté", "invalid_username": "Nom d'utilisateur invalide.", diff --git a/ui/translations/hu.json b/ui/translations/hu.json index fc4498662..eb4aa995c 100644 --- a/ui/translations/hu.json +++ b/ui/translations/hu.json @@ -150,5 +150,111 @@ "password_change": "Jelszó megváltoztatása", "new_password": "Új jelszó", "email": "Email", - "matrix_user_id": "Matrix felhasználó" + "matrix_user_id": "Matrix felhasználó", + "upvote": "Pozitív szavazat", + "private_message_disclaimer": "Figyelmeztetés: A privát üzenetek a Lemmyben nem biztonságosak. Kérlek, hozz létre egy fiókot a <1>Riot.im-en a biztonságos üzenetváltásért!", + "send_notifications_to_email": "Értesítések küldése emailen keresztül", + "optional": "Opcionális", + "expires": "Lejár", + "language": "Nyelv", + "browser_default": "Böngészőben alapértelmezett", + "downvotes_disabled": "Negatív szavazatok letiltva", + "enable_downvotes": "Negatív szavazatok engedélyezése", + "number_of_upvotes": "{{count}} pozitív szavazat", + "number_of_upvotes_plural": "{{count}} pozitív szavazat", + "downvote": "Negatív szavazat", + "number_of_downvotes": "{{count}} negatív szavazat", + "number_of_downvotes_plural": "{{count}} negatív szavazat", + "sponsor_message": "A Lemmy egy ingyenes, <1>nyílt forrású szoftver, amely sohasem fog tartalmazni hirdetéseket, monetizálást vagy kockázati tőkét. Az adományaiddal közvetlenül támogatod a projekt teljes munkaidős feljesztését. Köszönet az alábbi személyeknek:", + "general_sponsors": "Általános támogatók, akik 10-39 dollárral járultak hozzá a Lemmyhez.", + "open_registration": "Nyílt regisztráció", + "registration_closed": "Regisztráció lezárva", + "enable_nsfw": "Korhatáros tartalom engedélyezése", + "url": "URL", + "body": "Törzs", + "copy_suggested_title": "javasolt cím másolása: {{title}}", + "community": "Közösség", + "expand_here": "Szétnyitás itt", + "subscribe_to_communities": "Feliratkozás valamennyi <1>közösségre.", + "chat": "Csevegés", + "recent_comments": "Friss hozzászólások", + "no_results": "Nincs találat.", + "setup": "Beállítás", + "lemmy_instance_setup": "Lemmy instancia beállítása", + "setup_admin": "Oldaladminisztrátor beállítása", + "your_site": "az oldalad", + "modified": "módosítva", + "nsfw": "Korhatáros tartalom", + "show_nsfw": "Korhatáros tartalom megjelenítése", + "theme": "Téma", + "sponsors": "Támogatók", + "sponsors_of_lemmy": "A Lemmy támogatói", + "support_on_patreon": "Támogatás a Patreonon", + "support_on_liberapay": "Támogatás a Patreonon", + "support_on_open_collective": "Támogatás az OpenCollective-en", + "donate_to_lemmy": "Adomány a Lemmynek", + "donate": "Adomány", + "silver_sponsors": "Az ezüst támogatók azok, akik 40 dollárral járultak hozzá a Lemmyhez.", + "code": "Kód", + "crypto": "Kripto", + "bitcoin": "Bitcoin", + "ethereum": "Ethereum", + "monero": "Monero", + "joined": "Csatlakozott", + "transfer_community": "közösség átvitele", + "no": "nem", + "community_ban": "Ki lettél tiltva ebből a közösségből.", + "transfer_site": "oldal átvitele", + "are_you_sure": "Biztos vagy benne?", + "yes": "igen", + "powered_by": "A motorháztető alatt", + "not_logged_in": "Nem vagy bejelentkezve.", + "logged_in": "Bejelentkeztél.", + "site_saved": "Oldal mentve.", + "site_ban": "Ki lettél tiltva az oldalról", + "couldnt_update_user": "Nem lehetett frissíteni a felhasználót.", + "couldnt_create_private_message": "Nem lehetett létrehozni a privát üzenetet.", + "no_private_message_edit_allowed": "A privát üzenet szerkesztése nem engedélyezett.", + "couldnt_update_private_message": "Nem lehetett frissíteni a privát üzenetet.", + "time": "Idő", + "action": "Művelet", + "emoji_picker": "Emojiválasztó", + "admin_already_created": "Elnézést, már létezik egy admin.", + "email_already_exists": "Az email már létezik.", + "system_err_login": "Rendszerhiba. Próbálj meg ki- és bejelentkezni!", + "block_leaving": "Biztos vagy abban, hogy távozni akarsz?", + "landing": "A Lemmy egy <1>linkaggregátor / reddit alternatíva, melynek célja együttműködni a <2>fediverzummal.<3>Bárki működtetheti saját szerverként, támogatja a valós időben frissülő hozzászólási szálakat, és pici (<4>~80kB). Az ActivityPub hálózattal történő föderáció tervben van. <5>Ez egy <6>nagyon korai béta verzió sok funkció jelenleg nem működik vagy hiányzik. <7>Javasolj új funkciókat vagy jelents hibákat <8>itt!<9><10>Rust, <11>Actix, <12>Inferno és <13>Typescript felhasználásával készült.", + "couldnt_create_comment": "Nem lehetett létrehozni a hozzászólást.", + "couldnt_like_comment": "Nem lehetett kedvelni a hozzászólást.", + "couldnt_update_comment": "Nem lehetett frissíteni a hozzászólást.", + "couldnt_save_comment": "Nem lehetett menteni a hozzászólást.", + "couldnt_get_comments": "Nem lehetett lekérdezni a hozzászólást.", + "no_comment_edit_allowed": "A hozzászólás szerkesztése nem engedélyezett.", + "no_post_edit_allowed": "A bejegyzés szerkesztése nem engedélyezett.", + "no_community_edit_allowed": "A közösség szerkesztése nem engedélyezett.", + "couldnt_find_community": "A közösség nem található.", + "couldnt_update_community": "Nem lehetett frissíteni a közösséget.", + "community_already_exists": "A közösség már létezik.", + "community_moderator_already_exists": "Már létezik a közösségi moderátor.", + "community_follower_already_exists": "Már létezik a közösségi követő.", + "community_user_already_banned": "A közösségi felhasználó már ki lett tiltva.", + "couldnt_create_post": "Nem lehetett létrehozni a bejegyzést.", + "post_title_too_long": "A bejegyzés címe túl hosszú.", + "by": "szerző", + "to": "címzett", + "from": "küldő", + "couldnt_like_post": "Nem lehetett kedvelni a bejegyzést.", + "couldnt_find_post": "A bejegyzés nem található.", + "couldnt_get_posts": "Nem lehetett lekérdezni a bejegyzéseket", + "couldnt_update_post": "Nem lehetett frissíteni a bejegyzést", + "couldnt_save_post": "Nem lehetett menteni a bejegyzést.", + "no_slurs": "A sértegetés nem megengedett.", + "not_an_admin": "Nem egy admin.", + "site_already_exists": "Az oldal már létezik.", + "couldnt_update_site": "Nem lehetett frissíteni az oldalt.", + "couldnt_find_that_username_or_email": "Az a felhasználónév vagy email nem található.", + "password_incorrect": "Rossz jelszó.", + "passwords_dont_match": "A jelszavak nem egyeznek.", + "invalid_username": "Érvénytelen felhasználónév.", + "user_already_exists": "A felhasználó már létezik." } diff --git a/ui/translations/it.json b/ui/translations/it.json index fe65d40bb..2e9a48d8f 100644 --- a/ui/translations/it.json +++ b/ui/translations/it.json @@ -56,7 +56,7 @@ "mark_as_read": "segna come letto", "mark_as_unread": "segna come non letto", "delete": "cancella", - "deleted": "eliminato dal creatore", + "deleted": "eliminato dall'autore del commento", "delete_account": "Cancella Account", "delete_account_confirm": "Attenzione: stai per cancellare permanentemente tutti i tuoi dati. Inserisci la tua password per confermare questa azione.", "restore": "ripristina", @@ -142,7 +142,7 @@ "theme": "Tema", "sponsors": "Sponsor", "sponsors_of_lemmy": "Sponsor di Lemmy", - "sponsor_message": "Lemmy è software libero e <1>open-source, senza nessuna pubblicità, monetizzazione o investitori esterni, per sempre. Le tue donazioni sostengono direttamente lo sviluppo full-time del progetto. Si ringraziano le seguenti persone:", + "sponsor_message": "Lemmy è software libero e <1>open-source, senza nessuna pubblicità, monetizzazione o investitori esterni, per sempre. Le tue donazioni sostengono direttamente lo sviluppo a tempo pieno del progetto. Si ringraziano le seguenti persone:", "support_on_patreon": "Sostieni su Patreon", "support_on_liberapay": "Sostieni su Liberapay", "general_sponsors": "Gli sponsor generali sono quelli che hanno investito dai 10$ ai 39$ su Lemmy.", @@ -256,5 +256,5 @@ "click_to_delete_picture": "Clicca per eliminare la foto.", "picture_deleted": "Foto eliminata.", "select_a_community": "Seleziona una comunità", - "invalid_username": "Username non valido." + "invalid_username": "Nome utente non valido." } diff --git a/ui/translations/ru.json b/ui/translations/ru.json index 8935763f5..d6a7fee28 100644 --- a/ui/translations/ru.json +++ b/ui/translations/ru.json @@ -41,13 +41,13 @@ "remove_as_admin": "снять из администраторов", "appoint_as_admin": "назначить администратором", "remove": "убрать", - "removed": "убрано", + "removed": "убрано модератором", "locked": "заблокировано", "reason": "Причина", "mark_as_read": "пометить как прочитанное", "mark_as_unread": "пометить как непрочитанное", "delete": "удалить", - "deleted": "удалено", + "deleted": "удалено автором", "restore": "восстановить", "ban": "заблокировать", "ban_from_site": "заблокировать на сайте", @@ -126,7 +126,7 @@ "show_nsfw": "Показывать NSFW-контент", "sponsors": "Спонсоры", "sponsors_of_lemmy": "Спонсоры Lemmy", - "sponsor_message": "Lemmy это бесплатное, <1>открытое программное обеспечение, что означает отсутствие рекламы, монетизации или венчурного капитала, никогда. Ваши пожертвования напрямую поддерживают развитие проекта. Спасибо нижеуказанным людям:", + "sponsor_message": "Lemmy это бесплатное, <1>открытое программное обеспечение, без рекламы, монетизации или венчурного капитала, никогда. Ваши пожертвования напрямую поддерживают развитие проекта. Спасибо нижеуказанным людям:", "support_on_patreon": "Поддержать на Patreon", "general_sponsors": "Генеральные спонсоры - это те, кто пообещал Lemmy от $10 до $39.", "crypto": "Крипто", @@ -247,5 +247,23 @@ "block_leaving": "Вы уверены, что хотите покинуть?", "number_online_0": "{{count}} Пользователь онлайн", "number_online_1": "{{count}} Пользователя онлайн", - "number_online_2": "{{count}} Пользователей онлайн" + "number_online_2": "{{count}} Пользователей онлайн", + "invalid_community_name": "Неверное имя пользователя.", + "picture_deleted": "Картинка удалена.", + "click_to_delete_picture": "Нажмите, чтобы удалить изображение.", + "downvotes_disabled": "Отрицательное голосование отключено", + "upvote": "Голосовать за", + "enable_downvotes": "Включить отрицательное голосование", + "downvote": "Голосовать против", + "number_of_upvotes_0": "{{count}} голос за", + "number_of_upvotes_1": "{{count}} голоса за", + "number_of_upvotes_2": "{{count}} голосов за", + "number_of_downvotes_0": "{{count}} голос против", + "number_of_downvotes_1": "{{count}} голоса против", + "number_of_downvotes_2": "{{count}} голосов против", + "silver_sponsors": "Серебряные спонсоры - это те, кто пожертвовал $40 для Lemmy.", + "monero": "Monero", + "emoji_picker": "Сборщик эмодзи", + "select_a_community": "Выбрать сообщество", + "invalid_username": "Неверное имя пользователя." }