Merge branch 'master' into improve-config

This commit is contained in:
Dessalines 2020-06-27 10:09:16 -04:00
commit bd3051e058
15 changed files with 200 additions and 45 deletions

2
ansible/VERSION vendored
View file

@ -1 +1 @@
v0.7.1
v0.7.2

View file

@ -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

1
docs/src/SUMMARY.md vendored
View file

@ -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)

View file

@ -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

18
docs/src/contributing_tests.md vendored Normal file
View file

@ -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`

View file

@ -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)

View file

@ -1 +1 @@
pub const VERSION: &str = "v0.7.1";
pub const VERSION: &str = "v0.7.2";

View file

@ -245,7 +245,7 @@ export class CommentForm extends Component<CommentFormProps, CommentFormState> {
});
}
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<CommentFormProps, CommentFormState> {
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<CommentFormProps, CommentFormState> {
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);
}
}
}

2
ui/src/version.ts vendored
View file

@ -1 +1 @@
export const version: string = 'v0.7.1';
export const version: string = 'v0.7.2';

View file

@ -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</1> 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</1> 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</1> / Reddit anstataŭo ke intenciĝas funkci en la <2>federacio-universo</2>.<3></3>ĝi estas mem-gastigebla, havas nuna-ĝisdatigajn komentarojn, kaj estas malgrandega (<4>~80kB</4>). Federacio en la ActivityPub-an reton estas planizita. <5></5>Estas <6>fruega beta versio</6>, kaj multaj trajtoj estas nune difektaj aŭ mankaj. <7></7>Sugestias novajn trajtojn aŭ raportas cimojn <8>ĉi tie.</8><9></9>Faris per <10>Rust</10>, <11>Actix</11>, <12>Inferno</12>, <13>Typescript</13>.",
"landing_0": "Lemmy estas <1>ligila agregatilo</1> / Reddit anstataŭo ke intenciĝas funkci en la <2>federacio-universo</2>.<3></3>ĝi estas mem-gastigebla, havas nuna-ĝisdatigajn komentarojn, kaj estas malgrandega (<4>~80kB</4>). Federacio en la ActivityPub-an reton estas planizita. <5></5>Estas <6>fruega beta versio</6>, kaj multaj trajtoj estas nune difektaj aŭ mankaj. <7></7>Sugestias novajn trajtojn aŭ raportas cimojn <8>ĉi tie.</8><9></9>Faris per <10>Rust</10>, <11>Actix</11>, <12>Inferno</12>, <13>Typescript</13>.",
"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"
}

View file

@ -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."
}

View file

@ -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": "Lutilisateur·rice existe déjà.",
"email_already_exists": "Lemail existe déjà.",
"couldnt_update_user": "Impossible de mettre à jour lutilisateur·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.",

View file

@ -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</1>-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ú</1> 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</1>.",
"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</1> / reddit alternatíva, melynek célja együttműködni a <2>fediverzummal</2>.<3></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</4>). Az ActivityPub hálózattal történő föderáció tervben van. <5></5>Ez egy <6>nagyon korai béta verzió</6> sok funkció jelenleg nem működik vagy hiányzik. <7></7>Javasolj új funkciókat vagy jelents hibákat <8>itt!</8><9></9><10>Rust</10>, <11>Actix</11>, <12>Inferno</12> és <13>Typescript</13> 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."
}

View file

@ -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</1>, 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</1>, 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."
}

View file

@ -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>открытое</1> программное обеспечение, что означает отсутствие рекламы, монетизации или венчурного капитала, никогда. Ваши пожертвования напрямую поддерживают развитие проекта. Спасибо нижеуказанным людям:",
"sponsor_message": "Lemmy это бесплатное, <1>открытое</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": "Неверное имя пользователя."
}