Merge pull request #226 from krawieck/lemmy-0.11.0

This commit is contained in:
Filip Krawczyk 2021-04-29 11:43:46 +02:00 committed by GitHub
commit 7e1cc387dd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
44 changed files with 1210 additions and 496 deletions

View File

@ -2,18 +2,19 @@
### Added
- Editing posts
- Editing comments
- Show avatars setting toggle
- Show scores setting toggle
- Default sort type setting
- Default listing type for the home tab setting
- Default listing type setting
- Import Lemmy settings: long press an account in account settings then choose the import option
- Editing posts
- Editing comments
- Support lemmy v0.11.0
### Fixed
- Fixed bug where creating post would crash after uploading a picture
- Added deduplication in infinite scrolls
- Fixed bug where creating post would crash after uploading a picture
## v0.4.2 - 2021-04-12

133
lib/l10n/intl_bg.arb Normal file
View File

@ -0,0 +1,133 @@
{
"@@locale": "bg",
"settings": "Настройки",
"password": "Парола",
"email_or_username": "Имейл или Потребителско име",
"posts": "Постове",
"comments": "Коментари",
"modlog": "Мод-журнал",
"community": "Общност",
"url": "URL",
"title": "Заглавие",
"body": "Съдържание",
"nsfw": "NSFW",
"post": "пост",
"save": "запази",
"subscribed": "Абониран",
"local": "Местни",
"all": "Всички",
"replies": "Отговори",
"mentions": "Споменавания",
"from": "от",
"to": "към",
"deleted_by_creator": "изтрито от създателя",
"more": "още",
"mark_as_read": "маркирай прочетено",
"mark_as_unread": "маркирай непрочетено",
"reply": "отговори",
"edit": "редактирай",
"delete": "изтрий",
"restore": "възстанови",
"yes": "да",
"no": "не",
"avatar": "Профилна Снимка",
"banner": "Тапет",
"display_name": "Заглавие",
"bio": "Био",
"email": "Имейл",
"matrix_user": "Matrix Потребител",
"sort_type": "Тип сортиране",
"type": "Тип",
"show_nsfw": "Покажи NSFW съдържание",
"send_notifications_to_email": "Нотификации чрез Имейл",
"delete_account": "Изтрий Профила",
"saved": "Запазено",
"communities": "Общности",
"users": "Потребители",
"theme": "Тема",
"language": "Език",
"hot": "Популярни",
"new_": "Нови",
"old": "Стари",
"top": "Топ",
"chat": "Чат",
"admin": "администратор",
"by": "от",
"not_a_mod_or_admin": "Не сте модератор или администратор.",
"not_an_admin": "Не сте администратор.",
"couldnt_find_post": "Постът не беше намерен.",
"not_logged_in": "Не сте влезли.",
"site_ban": "Блокирани сте от този сайт",
"community_ban": "Блокирани сте от тази общност.",
"downvotes_disabled": "Изключване на негативните гласове",
"invalid_url": "Навалиден URL.",
"locked": "заключено",
"couldnt_create_comment": "Коментарът не може да бъде създаден.",
"couldnt_like_comment": "Неуспешно одобрение на коментара.",
"couldnt_update_comment": "Неуспешна актуализация на коментара.",
"no_comment_edit_allowed": "Нямате право да редактирате този коментар.",
"couldnt_save_comment": "Неуспешно запазване на коментар.",
"couldnt_get_comments": "Неуспешна доставка на коментарите.",
"report_reason_required": "Причина за оплакването е задължителна.",
"report_too_long": "Оплакването е твърде дълго.",
"couldnt_create_report": "Оплакването не можа да бъде създадено.",
"couldnt_resolve_report": "Оплакването не можа да бъде уредено.",
"invalid_post_title": "Невалидно заглавие на пост",
"couldnt_create_post": "Постът не можа да бъде създаден.",
"couldnt_like_post": "Постът не можа да бъде харесан.",
"couldnt_find_community": "Не можахме да намерим тази общност.",
"couldnt_get_posts": "Неуспешна доставка на постовете",
"no_post_edit_allowed": "Нямате право да редактирате този пост.",
"couldnt_save_post": "Постът не можа да бъде запазен.",
"site_already_exists": "Сайтът вече съществува.",
"couldnt_update_site": "Сайтът не можа да бъде обновен.",
"invalid_community_name": "Невалидно име.",
"community_already_exists": "Общността вече съществува.",
"community_moderator_already_exists": "Модератор на общността вече съществува.",
"community_follower_already_exists": "Абонат на общността вече съществува.",
"not_a_moderator": "Не сте модератор.",
"couldnt_update_community": "Не можахме да обновим тази общност.",
"no_community_edit_allowed": "Нямате право да редактирате тази общност.",
"system_err_login": "Системна грешка. Опитайте се да се отпишете и впишете наново.",
"community_user_already_banned": "Потребителят вече е баннат.",
"couldnt_find_that_username_or_email": "Потребителското име или имейла не съществуват.",
"password_incorrect": "Грешна парола.",
"registration_closed": "Регистрация затворена",
"invalid_password": "Невалидна парола. Паролата не може да е по-дълга от 60 символа.",
"passwords_dont_match": "Паролите не съвпадат.",
"captcha_incorrect": "Грешна Captcha.",
"invalid_username": "Грешно потребителско име.",
"bio_length_overflow": "Потребителската Биография не може да надхвърля 300 символа.",
"couldnt_update_user": "Неуспешен ъпдейт на потребителя.",
"couldnt_update_private_message": "Неуспешен ъпдейт на лично съобщение.",
"couldnt_update_post": "Неуспешен ъпдейт на поста",
"couldnt_create_private_message": "Личното съобщение не можа да бъде създадено.",
"no_private_message_edit_allowed": "Нямате право да редактирате лично съобщение.",
"post_title_too_long": "Заглавието на поста е твърде дълго.",
"email_already_exists": "Имейлът вече съществува.",
"user_already_exists": "Потребителят вече съществува.",
"number_of_users_online": "{count,plural, =1{{count} потребител онлайн} other{{count} потребители онлайн}}",
"number_of_comments": "{count,plural, =1{{count} Коментар} other{{count} Коментари}}",
"number_of_posts": "{count,plural, =1{{count} Пост} other{{count} Постове}}",
"number_of_subscribers": "{count,plural, =1{{count} абонат} other{{count} абонати}}",
"number_of_users": "{count,plural, =1{{count} потребител} other{{count} потребители}}",
"unsubscribe": "Премахни абонамент",
"subscribe": "Абонирай",
"messages": "Съобщения",
"banned_users": "Блокирани Потребители",
"delete_account_confirm": "Внимание: това трайно ще изтрие всичките Ви данни. Въведете своята парола за потвърждение.",
"new_password": "Нова Парола",
"verify_password": "Потвърди парола",
"old_password": "Стара парола",
"show_avatars": "Покажи Профилни Снимки",
"search": "Търсене",
"send_message": "Изпрати Съобщение",
"top_day": "Топ Ден",
"top_week": "Топ Седмица",
"top_month": "Топ Месец",
"top_year": "Топ Година",
"top_all": "Топ на Всички Времена",
"most_comments": "Най-много Коментари",
"new_comments": "Нови Коментари",
"active": "Активни"
}

View File

@ -128,5 +128,6 @@
"top_all": "El millor de tots els temps",
"most_comments": "Més comentaris",
"new_comments": "Comentaris nous",
"active": "Actiu"
"active": "Actiu",
"not_a_mod_or_admin": "No ets un moderador ni un administrador."
}

View File

@ -128,5 +128,6 @@
"top_all": "Κορυφαία από πάντα",
"most_comments": "Περισσότερα σχόλια",
"new_comments": "Νέα σχόλια",
"active": "Δραστηριότητα"
"active": "Δραστηριότητα",
"not_a_mod_or_admin": "Δεν είστε συντονιστής ή διαχειριστής."
}

View File

@ -285,5 +285,11 @@
"new_comments": "New Comments",
"@new_comments": {},
"active": "Active",
"@active": {}
"@active": {},
"bot_account": "Bot Account",
"@bot_account": {},
"show_bot_accounts": "Show Bot Accounts",
"@show_bot_accounts": {},
"show_read_posts": "Show Read Posts",
"@show_read_posts": {}
}

View File

@ -128,5 +128,6 @@
"top_all": "Supraj ĉiamaj",
"most_comments": "Plej komentitaj",
"new_comments": "Nove komentitaj",
"active": "Aktiva"
"active": "Aktiva",
"not_a_mod_or_admin": "Nek reguligisto nek administranto."
}

View File

@ -2,7 +2,7 @@
"@@locale": "es",
"settings": "Configuración",
"password": "Contraseña",
"email_or_username": "Correo o usuario",
"email_or_username": "Correo o nombre de usuario",
"posts": "Publicaciones",
"comments": "Comentarios",
"modlog": "Historial de moderación",
@ -126,7 +126,7 @@
"top_month": "Lo mejor del mes",
"top_year": "Lo mejor del año",
"top_all": "Lo mejor de todos los tiempos",
"most_comments": "La mayoría de los comentarios",
"most_comments": "Más comentados",
"new_comments": "Nuevos Comentarios",
"active": "Activo",
"not_a_mod_or_admin": "No eres un moderador ni un administrador."

View File

@ -128,5 +128,6 @@
"top_all": "Onena",
"most_comments": "Iruzkin gehienak",
"new_comments": "Iruzkin berriak",
"active": "Aktibo"
"active": "Aktibo",
"not_a_mod_or_admin": "Ez zara moderatzaile bat, ezta administratzaile bat ere."
}

View File

@ -106,5 +106,28 @@
"show_avatars": "Näytä avatarit",
"search": "Etsi",
"send_message": "Lähetä viesti",
"top_day": "Päivän parhaimmat"
"top_day": "Päivän parhaimmat",
"local": "Paikallinen",
"banner": "Banneri",
"display_name": "Näyttönimi",
"bio": "Kuvaus",
"not_a_mod_or_admin": "Et ole moderaattori tai ylläpitäjä.",
"invalid_url": "Viallinen URL.",
"report_reason_required": "Ilmiannolle tarvitaan selitys.",
"report_too_long": "Ilmianto on turhan pitkä.",
"couldnt_create_report": "Ilmiantoa ei pystytty luomaan.",
"couldnt_resolve_report": "Ilmiantoa ei pystytty selvittämään.",
"invalid_community_name": "Viallinen yhteisön nimi.",
"not_a_moderator": "Ei moderaattori.",
"invalid_password": "Virheellinen salasana. Salasanan on oltava <= 60 merkkiä.",
"captcha_incorrect": "Captcha on väärin.",
"invalid_username": "Viallinen käyttäjänimi.",
"bio_length_overflow": "Käyttäjän kuvaus ei voi olla pidempi kuin 300 merkkiä.",
"top_week": "Viikon parhaimmat",
"top_month": "Kuukauden parhaimmat",
"top_year": "Vuoden parhaimmat",
"top_all": "Kaikkien aikojen parhaimmat",
"most_comments": "Eniten kommentteja",
"new_comments": "Uudet kommentit",
"active": "Aktiivinen"
}

View File

@ -128,5 +128,6 @@
"most_comments": "Plus commentés",
"new_comments": "Nouveaux commentaires",
"active": "Actif",
"report_too_long": "Rapport trop long."
"report_too_long": "Rapport trop long.",
"not_a_mod_or_admin": "Pas un modérateur ou un administrateur."
}

View File

@ -1,3 +1,136 @@
{
"@@locale": "gl"
"@@locale": "gl",
"settings": "Axustes",
"password": "Contrasinal",
"email_or_username": "Email ou Nome de usuaria",
"posts": "Publicacións",
"comments": "Comentarios",
"modlog": "Rexistro da moderación",
"community": "Comunidade",
"url": "URL",
"title": "Título",
"body": "Body",
"nsfw": "NSFW",
"post": "publicar",
"save": "gardar",
"subscribed": "Subscrita",
"local": "Local",
"all": "Todo",
"replies": "Respostas",
"mentions": "Mencións",
"from": "desde",
"to": "a",
"deleted_by_creator": "eliminado pola creadora",
"more": "máis",
"mark_as_read": "marcar como lido",
"mark_as_unread": "marcar como non lido",
"reply": "reponder",
"edit": "editar",
"delete": "eliminar",
"restore": "restablecer",
"yes": "si",
"no": "non",
"avatar": "Avatar",
"banner": "Cabeceira",
"display_name": "Nome público",
"bio": "Bio",
"email": "Email",
"matrix_user": "Usuaria Matrix",
"sort_type": "Tipo de orde",
"type": "Tipo",
"show_nsfw": "Mostrar contido NSFW",
"send_notifications_to_email": "Enviar notificacións ao email",
"delete_account": "Eliminar Conta",
"saved": "Gardado",
"communities": "Comunidades",
"users": "Usuarias",
"theme": "Decorado",
"language": "Idioma",
"hot": "En voga",
"new_": "Novo",
"old": "Antigo",
"top": "Top",
"chat": "Chat",
"admin": "admin",
"by": "por",
"not_a_mod_or_admin": "Non é moderadora ou admin.",
"not_an_admin": "Non é admin.",
"couldnt_find_post": "Non se atopou a publicación.",
"not_logged_in": "Non conectada.",
"site_ban": "Retirouseche o veto nesta comunidade",
"community_ban": "Foches vetada nesta comunidade.",
"downvotes_disabled": "Votos negativos desactivados",
"invalid_url": "URL non válido.",
"locked": "bloqueado",
"couldnt_create_comment": "Non se creou o comentario.",
"couldnt_like_comment": "Non se puido gustar o comentario.",
"couldnt_update_comment": "Non se actualizou o comentario.",
"no_comment_edit_allowed": "Non está permitido editar o comentario.",
"couldnt_save_comment": "Non se gardou o comentario.",
"couldnt_get_comments": "Non se obtiveron comentarios.",
"report_reason_required": "Requírese unha razón para a denuncia.",
"report_too_long": "Denuncia demasiado longa.",
"couldnt_create_report": "Non se puido crear a denuncia.",
"couldnt_resolve_report": "Non se puido resolver a denuncia.",
"invalid_post_title": "Título da publicación non válido",
"couldnt_create_post": "Non se puido crear a publicación.",
"couldnt_like_post": "Non se puido gustar da publicación.",
"couldnt_find_community": "Non se atopou a comunidade.",
"couldnt_get_posts": "Non se obtiveron publicacións",
"no_post_edit_allowed": "Non está permitido editar a publicación.",
"couldnt_save_post": "Non se gardou a publicación.",
"site_already_exists": "Xa existe o sitio.",
"couldnt_update_site": "Non se actualizou o sitio.",
"invalid_community_name": "Nome non válido.",
"community_already_exists": "A comunidade xa existe.",
"community_moderator_already_exists": "Xa hai moderadora para a Comunidade.",
"community_follower_already_exists": "Xa existe a seguidora da comunidade.",
"not_a_moderator": "Non é moderadora.",
"couldnt_update_community": "Non se actualizou a Comunidade.",
"no_community_edit_allowed": "Non está permitido editar a comunidade.",
"system_err_login": "Erro no sistema. Intenta desconectar e conectar de volta.",
"community_user_already_banned": "A usuaria da comunidade xa foi vetada.",
"couldnt_find_that_username_or_email": "Non se atopa ese nome de usuaria ou email.",
"password_incorrect": "Contrasinal incorrecto.",
"registration_closed": "Rexistro pechado",
"invalid_password": "Contrasinal non válido. O contrasinal ten que ser inferior a 60 caracteres.",
"passwords_dont_match": "Os contrasinais non coinciden.",
"captcha_incorrect": "Captcha incorrecto.",
"invalid_username": "Nome de usuaria non válido.",
"bio_length_overflow": "A bio da usuaria non pode superar os 300 caracteres.",
"couldnt_update_user": "Non se actualizou a usuaria.",
"couldnt_update_private_message": "Non se actualizou a mensaxe privada.",
"couldnt_update_post": "Non se actualizou a publicación",
"couldnt_create_private_message": "Non se creou a mensaxe privada.",
"no_private_message_edit_allowed": "Non está permitido editar a mensaxe privada.",
"post_title_too_long": "O título é demasiado longo.",
"email_already_exists": "Xa existe o email.",
"user_already_exists": "Xa existe a usuaria.",
"number_of_users_online": "{count,plural, =1{{count} usuaria conectada} other{{count} usuarias conectadas}}",
"number_of_comments": "{count,plural, =1{{count} Comentario} other{{count} Comentarios}}",
"number_of_posts": "{count,plural, =1{{count} Publicación} other{{count} Publicacións}}",
"number_of_subscribers": "{count,plural, =1{{count} subscritora} other{{count} subscritoras}}",
"number_of_users": "{count,plural, =1{{count} usuaria} other{{count} usuarias}}",
"unsubscribe": "Dar de baixa",
"subscribe": "Subscribir",
"messages": "Mensaxes",
"banned_users": "Usuarias vetadas",
"delete_account_confirm": "Aviso: isto eliminará permanentemente tódolos teus datos. Escribe o contrasinal para confirmar.",
"new_password": "Novo contrasinal",
"verify_password": "Verifica o contrasinal",
"old_password": "Contrasinal anterior",
"show_avatars": "Mostrar avatares",
"search": "Buscar",
"send_message": "Enviar mensaxe",
"top_day": "Top hoxe",
"top_week": "Top semanal",
"top_month": "Top mensual",
"top_year": "Top anual",
"top_all": "Top de sempre",
"most_comments": "Máis comentado",
"new_comments": "Novos comentarios",
"active": "Activo",
"bot_account": "Conta Bot",
"show_bot_accounts": "Mostrar contas tipo bot",
"show_read_posts": "Mostrar publicacións lidas"
}

View File

@ -128,5 +128,6 @@
"top_all": "Migliori di sempre",
"most_comments": "Più commenti",
"new_comments": "Nuovi Commenti",
"active": "Attivi"
"active": "Attivi",
"not_a_mod_or_admin": "Non moderatore o amministratore."
}

View File

@ -109,5 +109,6 @@
"search": "検索",
"send_message": "メッセージを送信",
"top_day": "日間トップ",
"active": "活発さ"
"active": "活発さ",
"invalid_community_name": "無効な名前です。"
}

View File

@ -10,7 +10,7 @@
"url": "URL",
"title": "제목",
"body": "내용",
"nsfw": "민감한 콘텐츠(후방주의, 성인)",
"nsfw": "18+ 콘텐츠",
"post": "등록",
"save": "저장",
"subscribed": "구독",
@ -28,7 +28,7 @@
"edit": "수정",
"delete": "삭제",
"restore": "복원",
"yes": "",
"yes": "",
"no": "아니오",
"avatar": "아바타",
"banner": "배너",
@ -38,7 +38,7 @@
"matrix_user": "메트릭스 사용자",
"sort_type": "정렬",
"type": "유형",
"show_nsfw": "민감한 콘텐츠 보기",
"show_nsfw": "18+ 콘텐츠 보기",
"send_notifications_to_email": "이메일로 알림 보내기",
"delete_account": "계정 삭제",
"saved": "저장한글",
@ -107,14 +107,14 @@
"user_already_exists": "사용자가 이미 존재합니다.",
"number_of_users_online": "{count,plural, other{접속자수 {count}}}",
"number_of_comments": "{count,plural, other{덧글수 {count}}}",
"number_of_posts": "{count,plural, other{게시물 수 {count}}}",
"number_of_subscribers": "{count,plural, other{구독자수{count}}}",
"number_of_posts": "{count,plural, other{게시물수 {count}}}",
"number_of_subscribers": "{count,plural, other{구독자수 {count}}}",
"number_of_users": "{count,plural, other{가입자수 {count}}}",
"unsubscribe": "구독취소",
"subscribe": "구독",
"messages": "메세지",
"banned_users": "금지 된 사용자",
"delete_account_confirm": "경고 : 모든 데이터가 영구적으로 삭제됩니다. 확인을 위해 비밀번호를 입력하십시오.",
"delete_account_confirm": "경고: 모든 데이터가 영구적으로 삭제됩니다. 확인을 위해 비밀번호를 입력하십시오.",
"new_password": "새 비밀번호",
"verify_password": "비밀번호 재입력",
"old_password": "기존 비밀번호",
@ -126,7 +126,7 @@
"top_month": "월별",
"top_year": "년간",
"top_all": "전체",
"most_comments": "최근 글",
"most_comments": "최근 글",
"new_comments": "새 덧글",
"active": "활발한",
"not_a_mod_or_admin": "중재자 또는 관리자가 아닙니다."

1
lib/l10n/intl_nb.arb Normal file
View File

@ -0,0 +1 @@
{}

16
lib/l10n/intl_nb_NO.arb Normal file
View File

@ -0,0 +1,16 @@
{
"@@locale": "nb_NO",
"comments": "Kommentarer",
"more": "mer",
"reply": "svare",
"edit": "Redigere",
"avatar": "Profilbilde",
"banner": "Banner",
"communities": "Nettsamfunn",
"users": "Brukere",
"number_of_comments": "{count,plural, =1{{count} Kommentar} other{{count} Kommentarer}}",
"show_avatars": "Vis profilbilder",
"send_message": "Sende melding",
"bot_account": "Bot Konto",
"show_bot_accounts": "Vis Bot Kontoer"
}

View File

@ -2,24 +2,24 @@
"@@locale": "nl",
"settings": "Instellingen",
"password": "Wachtwoord",
"email_or_username": "E-mail of gebruikersnaam",
"posts": "Posts",
"email_or_username": "E-mailadres of gebruikersnaam",
"posts": "Berichten",
"comments": "Reacties",
"modlog": "Moderatorlog",
"community": "Community",
"url": "url",
"modlog": "Moderatorlogboek",
"community": "Gemeenschap",
"url": "URL",
"title": "Titel",
"body": "Tekst",
"nsfw": "NSFW",
"post": "post",
"body": "Hoofdtekst",
"nsfw": "18+",
"post": "bericht",
"save": "opslaan",
"subscribed": "Geabonneerd",
"all": "Alle",
"replies": "Reacties",
"mentions": "vermeldingen",
"replies": "Antwoorden",
"mentions": "Vermeldingen",
"from": "van",
"to": "aan",
"deleted_by_creator": "verwijderd door maker",
"deleted_by_creator": "verwijderd door de maker",
"more": "meer",
"mark_as_read": "markeer als gelezen",
"mark_as_unread": "markeer als ongelezen",
@ -31,12 +31,12 @@
"no": "nee",
"avatar": "Avatar",
"email": "E-mail",
"matrix_user": "Matrix gebruikers-id",
"matrix_user": "Matrix-gebruiker",
"sort_type": "Sorteertype",
"type": "Type",
"show_nsfw": "Laat NSFW-inhoud zien",
"send_notifications_to_email": "Stuur meldingen naar je email",
"delete_account": "Verwijder account",
"show_nsfw": "18+inhoud vertonen",
"send_notifications_to_email": "Stuur meldingen naar uw e-mailadres",
"delete_account": "Account verwijderen",
"saved": "Opgeslagen",
"communities": "Gemeenschappen",
"users": "Gebruikers",
@ -46,66 +46,88 @@
"new_": "Nieuw",
"old": "Oud",
"top": "Top",
"chat": "Praat",
"chat": "Babbel",
"admin": "beheerder",
"by": "door",
"not_an_admin": "Niet een beheerder.",
"couldnt_find_post": "Kon post niet vinden.",
"not_logged_in": "Niet ingelogd.",
"site_ban": "Je bent verbannen van deze site",
"community_ban": "Je bent verbannen uit deze community.",
"downvotes_disabled": "Downvotes geblokkeerd",
"locked": "gesloten",
"couldnt_create_comment": "Kon reactie niet maken.",
"couldnt_like_comment": "Kon reactie niet leuk vinden.",
"couldnt_update_comment": "Kon reactie niet bijwerken.",
"no_comment_edit_allowed": "Niet toegestaan om reactie te bewerken.",
"couldnt_save_comment": "Kon reactie niet opslaan.",
"couldnt_get_comments": "Kon reacties niet ophalen.",
"couldnt_create_post": "Kon post niet maken.",
"couldnt_like_post": "Kon post niet leuk vinden.",
"couldnt_find_community": "Kon community niet vinden.",
"couldnt_get_posts": "Kon posts niet ophalen",
"no_post_edit_allowed": "Niet toegestaan om posts te bewerken.",
"couldnt_save_post": "Kon post niet opslaan.",
"site_already_exists": "Site bestaat al.",
"couldnt_update_site": "Kon site niet bijwerken.",
"couldnt_find_post": "Het bericht kon niet gevonden worden.",
"not_logged_in": "Niet aangemeld.",
"site_ban": "U werd verbannen van deze site",
"community_ban": "U werd verbannen uit deze gemeenschap.",
"downvotes_disabled": "Neerstemmen uitgeschakeld",
"locked": "vergrendeld",
"couldnt_create_comment": "Reactie kon niet aangemaakt worden.",
"couldnt_like_comment": "Reactie kon niet leuk gevonden worden.",
"couldnt_update_comment": "Reactie kon niet bijgewerkt worden.",
"no_comment_edit_allowed": "Reactie bewerken is niet toegestaan.",
"couldnt_save_comment": "Reactie kon niet opgeslagen worden.",
"couldnt_get_comments": "Reacties konden niet opgehaald worden.",
"couldnt_create_post": "Bericht kon niet aangemaakt worden.",
"couldnt_like_post": "Het bericht kon niet leuk gevonden worden.",
"couldnt_find_community": "De gemeenschap kon niet teruggevonden worden.",
"couldnt_get_posts": "De berichten konden niet opgehaald worden",
"no_post_edit_allowed": "Bericht bewerken is niet toegestaan.",
"couldnt_save_post": "De berichten konden niet opgeslagen worden.",
"site_already_exists": "Site bestaat reeds.",
"couldnt_update_site": "De site kon niet bijgewerkt worden.",
"invalid_community_name": "Ongeldige naam.",
"community_already_exists": "Community bestaat al.",
"community_moderator_already_exists": "Community-moderator bestaat al.",
"community_follower_already_exists": "Community-volger bestaat al.",
"couldnt_update_community": "Kon community niet bijwerken.",
"no_community_edit_allowed": "Niet toegestaan om community te bewerken.",
"system_err_login": "Systeemfout. Probeer uit te loggen en weer in te loggen.",
"community_user_already_banned": "Community-gebruiker reeds verbannen.",
"couldnt_find_that_username_or_email": "Kon gebruikersnaam of e-mailadres niet vinden.",
"community_already_exists": "Deze gemeenschap bestaat reeds.",
"community_moderator_already_exists": "Deze gemeenschaps-moderator bestaat reeds.",
"community_follower_already_exists": "Deze gemeenschapsvolger bestaat reeds.",
"couldnt_update_community": "De gemeenschap kon niet bijgewerkt worden.",
"no_community_edit_allowed": "Gemeenschap bewerken is niet toegestaan.",
"system_err_login": "Systeemfout. Probeer af te melden en vervolgens weer aan te melden.",
"community_user_already_banned": "Deze gemeenschapsgebruiker werd reeds verbannen.",
"couldnt_find_that_username_or_email": "De gebruikersnaam of het e-mailadres kon niet gevonden worden.",
"password_incorrect": "Wachtwoord incorrect.",
"registration_closed": "Registratie gesloten",
"passwords_dont_match": "Wachtwoorden zijn niet gelijk.",
"passwords_dont_match": "Wachtwoorden komen niet overeen.",
"invalid_username": "Ongeldige gebruikersnaam.",
"couldnt_update_user": "Kon gebruiker niet bijwerken.",
"couldnt_update_private_message": "Kan beveiligd bericht niet bijwerken.",
"couldnt_update_post": "Kon post niet bijwerken",
"couldnt_create_private_message": "Kan beveiligd bericht niet maken.",
"no_private_message_edit_allowed": "Niet toegestaan om privé berichten te wijzigen.",
"post_title_too_long": "Posttitel te lang.",
"email_already_exists": "Email bestaat al.",
"user_already_exists": "Gebruiker bestaat al.",
"couldnt_update_user": "De gebruiker kon niet bijgewerkt worden.",
"couldnt_update_private_message": "Het privé-bericht kon niet bijgewerkt worden.",
"couldnt_update_post": "De berichten konden niet bijgewerkt worden",
"couldnt_create_private_message": "Het privébericht kon niet aangemaakt worden.",
"no_private_message_edit_allowed": "Het is niet toegestaan om privé-berichten te wijzigen.",
"post_title_too_long": "De berichttitel is te lang.",
"email_already_exists": "E-mailadres bestaat reeds.",
"user_already_exists": "Gebruiker bestaat reeds.",
"number_of_users_online": "{count,plural, =1{{count} gebruiker online} other{{count} gebruikers online}}",
"number_of_comments": "{count,plural, =1{{count} reactie} other{{count} reacties}}",
"number_of_posts": "{count,plural, =1{{count} post} other{{count} posts}}",
"number_of_posts": "{count,plural, =1{{count} bericht} other{{count} berichten}}",
"number_of_subscribers": "{count,plural, =1{{count} abonnee} other{{count} abonnees}}",
"number_of_users": "{count,plural, =1{{count} gebruiker} other{{count} gebruikers}}",
"unsubscribe": "Afmelden",
"subscribe": "Abonneren",
"messages": "Berichten",
"messages": "Boodschappen",
"banned_users": "Verbannen gebruikers",
"delete_account_confirm": "Waarschuwing: dit zal al uw data voorgoed verwijderen, vul uw wachtwoord in om te bevestigen.",
"delete_account_confirm": "Waarschuwing: dit zal al uw data voorgoed verwijderen. Vul uw wachtwoord in om te bevestigen.",
"new_password": "Nieuw wachtwoord",
"verify_password": "Herhaal wachtwoord",
"verify_password": "Bevestig wachtwoord",
"old_password": "Oud wachtwoord",
"show_avatars": "Toon avatars",
"search": "Zoek",
"send_message": "Verstuur bericht",
"top_day": "Dagelijkse top"
"show_avatars": "Avatars tonen",
"search": "Zoeken",
"send_message": "Boodschap versturen",
"top_day": "Dagelijks hoogtepunt",
"local": "Lokaal",
"banner": "Banier",
"display_name": "Weergavenaam",
"bio": "Biografie",
"not_a_mod_or_admin": "Niet een moderator of beheerder.",
"invalid_url": "Ongeldige URL.",
"report_reason_required": "Een rapporteringsmotivering is vereist.",
"report_too_long": "Het rapport is te lang.",
"couldnt_create_report": "Het rapport kon niet aangemaakt worden.",
"couldnt_resolve_report": "Het rapport kon niet opgelost worden.",
"invalid_post_title": "Ongeldige berichttitel",
"not_a_moderator": "Niet een moderator.",
"invalid_password": "Ongeldig wachtwoord. Het wachtwoord moet kleiner dan of gelijk aan 60 tekens zijn.",
"captcha_incorrect": "Incorrecte Captcha.",
"bio_length_overflow": "De gebruikersbiografie mag niet 300 tekens overschrijden.",
"top_week": "Wekelijks hoogtepunt",
"top_month": "Maandelijks hoogtepunt",
"top_year": "Jaarlijks hoogtepunt",
"top_all": "Hoogtepunt aller tijden",
"most_comments": "Meeste reacties",
"new_comments": "Nieuwe reacties",
"active": "Actief"
}

View File

@ -10,10 +10,10 @@
"url": "URL",
"title": "Tytuł",
"body": "Treść",
"nsfw": "NSFW",
"nsfw": "NSFW (18+)",
"post": "post",
"save": "zapisz",
"subscribed": "Zasubskrybowane",
"subscribed": "Subskrybowane",
"local": "Lokalne",
"all": "Wszystko",
"replies": "Odpowiedzi",
@ -38,12 +38,12 @@
"matrix_user": "Login na Matrixie",
"sort_type": "Sortuj typ",
"type": "Rodzaj",
"show_nsfw": "Pokaż treści NSFW (+18)",
"show_nsfw": "Pokaż treści NSFW (18+)",
"send_notifications_to_email": "Wysyłaj powiadomienia na Email",
"delete_account": "Usuń Konto",
"saved": "Zapisane",
"communities": "Społeczności",
"users": "osoby zalogowane",
"users": "Osoby zalogowane",
"theme": "Motyw",
"language": "Język",
"hot": "Popularne",
@ -51,7 +51,7 @@
"old": "Stare",
"top": "Najpopularniejsze",
"chat": "Dyskusja",
"admin": "administrator",
"admin": "admin",
"by": "przez",
"not_an_admin": "Nie jest administratorem.",
"couldnt_find_post": "Nie udało się znaleźć posta.",
@ -70,7 +70,7 @@
"report_reason_required": "Wymagane jest uzasadnienie zgłoszenia.",
"report_too_long": "Zgłoszenie jest zbyt długie.",
"couldnt_create_report": "Nie udało się stworzyć zgłoszenia.",
"couldnt_resolve_report": "Nie udało się rozwiazać zgłoszenia.",
"couldnt_resolve_report": "Nie udało się rozwiązać zgłoszenia.",
"invalid_post_title": "Nieprawidłowy tytuł posta",
"couldnt_create_post": "Nie udało się stworzyć posta.",
"couldnt_like_post": "Nie udało się polubić posta.",

View File

@ -80,7 +80,7 @@
"community_already_exists": "Esta comunidade já existe.",
"community_moderator_already_exists": "Este moderador da comunidade já existe.",
"community_follower_already_exists": "Este seguidor da comunidade já existe.",
"not_a_moderator": "Não é da moderação.",
"not_a_moderator": "Não é um(a) moderador(a).",
"couldnt_update_community": "Não foi possível atualizar a comunidade.",
"no_community_edit_allowed": "Sem permissão para editar comunidade.",
"system_err_login": "Erro no sistema. Tente sair e autenticar-se outra vez.",
@ -117,6 +117,12 @@
"show_avatars": "Mostrar Avatares",
"search": "Busca",
"send_message": "Enviar mensagem",
"top_day": "Top do dia",
"active": "Ativo"
"top_day": "Melhor do dia",
"active": "Ativo",
"not_a_mod_or_admin": "Não é moderador ou administrador.",
"top_week": "Melhor da semana",
"top_month": "Melhor do mês",
"top_year": "Melhor do ano",
"most_comments": "Mais comentados",
"new_comments": "Novos comentários"
}

View File

@ -2,20 +2,20 @@
"@@locale": "ru",
"settings": "Настройки",
"password": "Пароль",
"email_or_username": "Электронная почта или имя пользователя",
"posts": "Записи",
"email_or_username": "Электронная почта или Имя пользователя",
"posts": "Посты",
"comments": "Комментарии",
"modlog": "Модлог",
"modlog": "Модерация",
"community": "Сообщество",
"url": "URL",
"title": "Название",
"body": "Тело",
"nsfw": "NSFW",
"post": "запись",
"post": "запостить",
"save": "сохранить",
"subscribed": "Подписаны",
"local": "Местное",
"all": "Всё",
"local": "Локальные",
"all": "Все",
"replies": "Ответы",
"mentions": "Упоминания",
"from": "от",
@ -33,93 +33,96 @@
"avatar": "Аватар",
"banner": "Баннер",
"display_name": "Отображаемое имя",
"bio": "Описание пользователя",
"email": "Электронная почта",
"matrix_user": "Адрес в Matrix",
"bio": "БИО",
"email": "Эл. почта",
"matrix_user": "Пользователь Matrix",
"sort_type": "Тип сортировки",
"type": "Тип",
"show_nsfw": "Показывать NSFW-контент",
"send_notifications_to_email": "Посылать уведомления на e-mail адрес",
"delete_account": "Удалить аккаунт",
"show_nsfw": "Показывать NSFW контент",
"send_notifications_to_email": "Посылать уведомления на Эл. почту",
"delete_account": "Удалить Аккаунт",
"saved": "Сохранено",
"communities": "Сообщества",
"users": "Пользователи",
"theme": "Визуальная тема",
"theme": "Тема",
"language": "Язык",
"hot": "Популярно",
"new_": "Новое",
"old": "Старое",
"top": "Лучшее",
"hot": "Популярные",
"new_": "Новые",
"old": "Старые",
"top": "Лучшие",
"chat": "Чат",
"admin": "администратор",
"by": "от",
"not_an_admin": "Не администратор.",
"couldnt_find_post": "Не получилось найти запись.",
"couldnt_find_post": "Не удалось найти пост.",
"not_logged_in": "Не авторизованы.",
"site_ban": "Вы были заблокированы на данном сайте",
"community_ban": "Вы были заблокированы в данном сообществе.",
"downvotes_disabled": "Отрицательное голосование отключено",
"downvotes_disabled": "Голосование не понравилось отключено",
"invalid_url": "Недопустимый URL.",
"locked": "заблокировано",
"couldnt_create_comment": "Не получилось создать комментарий.",
"couldnt_like_comment": "Не получилось лайкнуть комментарий.",
"couldnt_update_comment": "Не получилось обновить комментарий.",
"no_comment_edit_allowed": "Невозможно отредактировать комментарий.",
"couldnt_save_comment": "Не получилось сохранить комментарий.",
"couldnt_create_comment": "Не удалось создать комментарий.",
"couldnt_like_comment": "Не удалось лайкнуть комментарий.",
"couldnt_update_comment": "Не удалось обновить комментарий.",
"no_comment_edit_allowed": "Комментарий редактировать запрещено.",
"couldnt_save_comment": "Не удалось сохранить комментарий.",
"couldnt_get_comments": "Не удалось получить комментарии.",
"report_reason_required": "Укажите причину жалобы.",
"report_too_long": "Жалоба слишком длинная.",
"couldnt_create_report": "Невозможно создать жалобу.",
"couldnt_resolve_report": "Невозможно разрешить жалобу.",
"invalid_post_title": "Недопустимый заголовок записи",
"couldnt_create_post": "Не получилось создать запись.",
"couldnt_like_post": "Не получилось лайкнуть запись.",
"couldnt_find_community": "Не получилось найти сообщество.",
"couldnt_get_posts": "Не получилось найти записи",
"no_post_edit_allowed": "Невозможно отредактировать запись.",
"couldnt_save_post": "Не получилось сохранить запись.",
"couldnt_create_post": "Не удалось создать пост.",
"couldnt_like_post": "Не удалось лайкнуть пост.",
"couldnt_find_community": "Сообщество не найдено.",
"couldnt_get_posts": "Не удалось найти посты",
"no_post_edit_allowed": "Запрещено комментировать пост.",
"couldnt_save_post": "Не удалось сохранить пост.",
"site_already_exists": "Сайт уже существует.",
"couldnt_update_site": "Не получилось обновить сайт.",
"invalid_community_name": "Неверное имя пользователя.",
"couldnt_update_site": "Не удалось обновить сайт.",
"invalid_community_name": "Неверное имя.",
"community_already_exists": "Сообщество уже существует.",
"community_moderator_already_exists": "Модератор сообщества уже существует.",
"community_follower_already_exists": "Подписчик сообщества уже существует.",
"not_a_moderator": "Не модератор.",
"couldnt_update_community": "Не получилось обновить сообщество.",
"no_community_edit_allowed": "Невозможно отредактировать сообщество.",
"couldnt_update_community": "Не удалось обновить Сообщество.",
"no_community_edit_allowed": "Редактирование сообщества запрещено.",
"system_err_login": "Системная ошибка. Попробуйте выйти из системы и вернуться обратно.",
"community_user_already_banned": "Пользователь сообщества уже заблокирован.",
"couldnt_find_that_username_or_email": "Не получилось найти данное имя пользователя или электронную почту.",
"community_user_already_banned": "Пользователь сообщества уже забанен.",
"couldnt_find_that_username_or_email": "Указанные имя пользователя или электронную почту найти не удалось.",
"password_incorrect": "Неверный пароль.",
"registration_closed": "Регистрация закрыта",
"invalid_password": "Некорректный пароль. Пароль должен быть не длиннее 60 символов.",
"invalid_password": "Неверный пароль. Пароль должен быть не длиннее 60 символов.",
"passwords_dont_match": "Пароли не совпадают.",
"captcha_incorrect": "Некорректная капча.",
"invalid_username": "Неверное имя пользователя.",
"bio_length_overflow": "Описание пользователя не может быть длиннее 300 символов.",
"couldnt_update_user": "Не получилось обновить пользователя.",
"bio_length_overflow": "БИО пользователя не может быть длиннее 300 символов.",
"couldnt_update_user": "Не удалось обновить пользователя.",
"couldnt_update_private_message": "Не удалось обновить личное сообщение.",
"couldnt_update_post": "Не получилось обновить запись",
"couldnt_update_post": "Не удалось обновить посты",
"couldnt_create_private_message": "Не удалось создать личное сообщение.",
"no_private_message_edit_allowed": "Не разрешается редактировать личное сообщение.",
"post_title_too_long": "Длина названия записи превышает допустимый лимит.",
"email_already_exists": "E-mail уже существует.",
"no_private_message_edit_allowed": "Не разрешено редактировать личное сообщение.",
"post_title_too_long": "Название поста слишком длинное.",
"email_already_exists": "Эл. почта уже существует.",
"user_already_exists": "Пользователь уже существует.",
"unsubscribe": "Отписаться",
"subscribe": "Подписаться",
"messages": "Сообщения",
"banned_users": "Забаненные пользователи",
"banned_users": "Забаненные Пользователи",
"delete_account_confirm": "Предупреждение: это действие полностью уничтожит все данные вашего аккаунта. Введите свой пароль для подтверждения.",
"new_password": "Новый пароль",
"verify_password": "Повторите пароль",
"old_password": "Действующий пароль",
"show_avatars": "Показывать аватары",
"new_password": "Новый Пароль",
"verify_password": "Подтвердите Пароль",
"old_password": "Старый Пароль",
"show_avatars": "Показывать Аватары",
"search": "Поиск",
"send_message": "Послать сообщение",
"top_day": "Лучшее за день",
"top_week": "Лучшее за неделю",
"top_month": "Лучшее за месяц",
"top_year": "Лучшее за год",
"top_all": "Лучшее за все время",
"active": "Активное"
"send_message": "Послать Сообщение",
"top_day": "Лучшие за День",
"top_week": "Лучшие за Неделю",
"top_month": "Лучшие за Месяц",
"top_year": "Лучшие за Год",
"top_all": "Лучшие за Всё Время",
"active": "Активные",
"not_a_mod_or_admin": "Не модератор и не админинстратор.",
"most_comments": "Наиболее Комментируемые",
"new_comments": "Новые Комментарии"
}

View File

@ -127,5 +127,7 @@
"top_year": "Årstoppen",
"top_all": "Totaltoppen",
"most_comments": "Flest kommentarer",
"active": "Aktivt"
"active": "Aktivt",
"not_a_mod_or_admin": "Inte en moderator eller administratör.",
"new_comments": "Nya kommentarer"
}

View File

@ -1,3 +1,52 @@
{
"@@locale": "th"
"@@locale": "th",
"settings": "การตั้งค่า",
"password": "รหัสผ่าน",
"email_or_username": "อีเมลหรือชื่อผู้ใช้",
"posts": "โพสต์",
"comments": "ความคิดเห็น",
"post": "โพสต์",
"save": "บันทึก",
"all": "ทั้งหมด",
"replies": "การตอบกลับ",
"mentions": "การกล่าวถึง",
"from": "จาก",
"to": "ไปยัง",
"more": "เพิ่มเติม",
"mark_as_read": "ทำเครื่องหมายว่าอ่านแล้ว",
"mark_as_unread": "ทำเครื่องหมายว่ายังไม่อ่าน",
"reply": "ตอบกลับ",
"edit": "แก้ไข",
"delete": "ลบ",
"yes": "ใช่",
"no": "ไม่",
"avatar": "รูปประจำตัว",
"email": "อีเมล",
"delete_account": "ลบบัญชี",
"saved": "บันทึกแล้ว",
"communities": "ชุมชน",
"users": "ผู้ใช้งาน",
"language": "ภาษา",
"new_": "ใหม่",
"old": "เก่า",
"chat": "แชท",
"by": "โดย",
"not_logged_in": "ไม่ได้เข้าสู่ระบบ",
"couldnt_save_post": "ไม่สามารถบันทึกโพสต์ได้",
"invalid_community_name": "ชื่อไม่ถูกต้อง",
"password_incorrect": "รหัสผ่านไม่ถูกต้อง",
"registration_closed": "การลงทะเบียนปิดอยู่",
"passwords_dont_match": "รหัสผ่านไม่ตรงกัน",
"email_already_exists": "อีเมลถูกใช้งานแล้ว",
"number_of_comments": "{count,plural, other{{count} ความคิดเห็น}}",
"number_of_posts": "{count,plural, other{{count} โพสต์}}",
"number_of_users": "{count,plural, other{ผู้ใช้ {count} คน}}",
"unsubscribe": "เลิกติดตาม",
"subscribe": "ติดตาม",
"messages": "ข้อความ",
"new_password": "รหัสผ่านใหม่",
"verify_password": "ยืนยันรหัสผ่าน",
"old_password": "รหัสผ่านเก่า",
"search": "ค้นหา",
"send_message": "ส่งข้อความ"
}

20
lib/l10n/intl_zh_Hant.arb Normal file
View File

@ -0,0 +1,20 @@
{
"@@locale": "zh_Hant",
"posts": "貼文",
"comments": "評論",
"post": "回文",
"more": "更多",
"reply": "回覆",
"edit": "編輯",
"avatar": "虛擬化身",
"banner": "橫幅",
"communities": "社群",
"users": "使用者",
"invalid_community_name": "無效的名稱。",
"number_of_comments": "{count,plural, other{{count} 則評論}}",
"number_of_posts": "{count,plural, other{{count} 個貼文}}",
"show_avatars": "顯示頭像",
"send_message": "發送私人訊息",
"bot_account": "機器人帳號",
"show_bot_accounts": "顯示機器人帳號"
}

View File

@ -53,6 +53,11 @@ const _languageNames = {
'ru': 'Русский',
'nl': 'Nederlands',
'it': 'Italiano',
'sr': 'Српски',
'zh_Hant': '繁體中文',
'nb': 'Norwegian',
'nb_NO': 'Norwegian Bokmål',
'bg': 'български',
};
extension LanguageName on Locale {

View File

@ -141,6 +141,9 @@ abstract class L10nStrings {
static const most_comments = 'most_comments';
static const new_comments = 'new_comments';
static const active = 'active';
static const bot_account = 'bot_account';
static const show_bot_accounts = 'show_bot_accounts';
static const show_read_posts = 'show_read_posts';
}
extension L10nFromString on String {
@ -396,6 +399,12 @@ extension L10nFromString on String {
return L10n.of(context)!.new_comments;
case L10nStrings.active:
return L10n.of(context)!.active;
case L10nStrings.bot_account:
return L10n.of(context)!.bot_account;
case L10nStrings.show_bot_accounts:
return L10n.of(context)!.show_bot_accounts;
case L10nStrings.show_read_posts:
return L10n.of(context)!.show_read_posts;
default:
return this;

File diff suppressed because it is too large Load Diff

View File

@ -217,7 +217,7 @@ class CommunitiesTab extends HookWidget {
alwaysShow: true,
),
const SizedBox(width: 10),
Text(comm.community.originDisplayName),
Text(comm.community.originPreferredName),
],
),
trailing: _CommunitySubscribeToggle(

View File

@ -147,7 +147,7 @@ class CommunityPage extends HookWidget {
after: community.community.icon == null ? 110 : 190,
fade: true,
child: Text(
community.community.displayName,
community.community.preferredName,
overflow: TextOverflow.fade,
softWrap: false,
),
@ -431,8 +431,7 @@ class _AboutTab extends StatelessWidget {
for (final mod in moderators!)
// TODO: add user picture, maybe make it into reusable component
ListTile(
title: Text(
mod.moderator.preferredUsername ?? '@${mod.moderator.name}'),
title: Text(mod.moderator.preferredName),
onTap: () => goToUser.fromPersonSafe(context, mod.moderator),
),
]

View File

@ -101,7 +101,7 @@ class FullPostPage extends HookWidget {
scrollController: scrollController,
after: 65,
child: Text(
post.community.originDisplayName,
post.community.originPreferredName,
overflow: TextOverflow.fade,
),
),

View File

@ -312,7 +312,7 @@ class PrivateMessageTile extends HookWidget {
),
),
Text(
otherSide.originDisplayName,
otherSide.originPreferredName,
style: TextStyle(color: theme.accentColor),
),
],

View File

@ -343,7 +343,7 @@ class _AboutTab extends HookWidget {
),
for (final u in site.admins)
ListTile(
title: Text(u.person.originDisplayName),
title: Text(u.person.originPreferredName),
subtitle: u.person.bio != null
? MarkdownText(u.person.bio!, instanceHost: instanceHost)
: null,

View File

@ -15,6 +15,7 @@ import '../util/more_icon.dart';
import '../util/pictrs.dart';
import '../widgets/bottom_modal.dart';
import '../widgets/bottom_safe.dart';
import '../widgets/editor.dart';
/// Page for managing things like username, email, avatar etc
/// This page will assume the manage account is logged in and
@ -100,7 +101,7 @@ class _ManageAccount extends HookWidget {
final deleteDelayedLoading = useDelayedLoading();
final displayNameController =
useTextEditingController(text: user.person.preferredUsername);
useTextEditingController(text: user.person.displayName);
final bioController = useTextEditingController(text: user.person.bio);
final emailController =
useTextEditingController(text: user.localUser.email);
@ -109,11 +110,15 @@ class _ManageAccount extends HookWidget {
final avatar = useRef(user.person.avatar);
final banner = useRef(user.person.banner);
final showNsfw = useState(user.localUser.showNsfw);
final botAccount = useState(user.person.botAccount);
final showBotAccounts = useState(user.localUser.showBotAccounts);
final showReadPosts = useState(user.localUser.showReadPosts);
final sendNotificationsToEmail =
useState(user.localUser.sendNotificationsToEmail);
final newPasswordController = useTextEditingController();
final newPasswordVerifyController = useTextEditingController();
final oldPasswordController = useTextEditingController();
// TODO: bring back changing password
// final newPasswordController = useTextEditingController();
// final newPasswordVerifyController = useTextEditingController();
// final oldPasswordController = useTextEditingController();
final informAcceptedAvatarRef = useRef<VoidCallback?>(null);
final informAcceptedBannerRef = useRef<VoidCallback?>(null);
@ -124,8 +129,8 @@ class _ManageAccount extends HookWidget {
final emailFocusNode = useFocusNode();
final matrixUserFocusNode = useFocusNode();
final newPasswordFocusNode = useFocusNode();
final verifyPasswordFocusNode = useFocusNode();
final oldPasswordFocusNode = useFocusNode();
// final verifyPasswordFocusNode = useFocusNode();
// final oldPasswordFocusNode = useFocusNode();
final token =
accountsStore.userDataFor(user.instanceHost, user.person.name)!.jwt;
@ -141,23 +146,17 @@ class _ManageAccount extends HookWidget {
defaultListingType: user.localUser.defaultListingType,
lang: user.localUser.lang,
showAvatars: user.localUser.showAvatars,
botAccount: botAccount.value,
showBotAccounts: showBotAccounts.value,
showReadPosts: showReadPosts.value,
sendNotificationsToEmail: sendNotificationsToEmail.value,
auth: token.raw,
avatar: avatar.current,
banner: banner.current,
newPassword: newPasswordController.text.isEmpty
? null
: newPasswordController.text,
newPasswordVerify: newPasswordVerifyController.text.isEmpty
? null
: newPasswordVerifyController.text,
oldPassword: oldPasswordController.text.isEmpty
? null
: oldPasswordController.text,
matrixUserId: matrixUserController.text.isEmpty
? null
: matrixUserController.text,
preferredUsername: displayNameController.text.isEmpty
displayName: displayNameController.text.isEmpty
? null
: displayNameController.text,
bio: bioController.text.isEmpty ? null : bioController.text,
@ -264,12 +263,11 @@ class _ManageAccount extends HookWidget {
),
const SizedBox(height: 8),
Text(L10n.of(context)!.bio, style: theme.textTheme.headline6),
TextField(
Editor(
controller: bioController,
focusNode: bioFocusNode,
textCapitalization: TextCapitalization.sentences,
onSubmitted: (_) => emailFocusNode.requestFocus(),
minLines: 4,
instanceHost: user.instanceHost,
maxLines: 10,
),
const SizedBox(height: 8),
@ -289,36 +287,36 @@ class _ManageAccount extends HookWidget {
onSubmitted: (_) => newPasswordFocusNode.requestFocus(),
),
const SizedBox(height: 8),
Text(L10n.of(context)!.new_password, style: theme.textTheme.headline6),
TextField(
focusNode: newPasswordFocusNode,
controller: newPasswordController,
autofillHints: const [AutofillHints.newPassword],
keyboardType: TextInputType.visiblePassword,
obscureText: true,
onSubmitted: (_) => verifyPasswordFocusNode.requestFocus(),
),
const SizedBox(height: 8),
Text(L10n.of(context)!.verify_password,
style: theme.textTheme.headline6),
TextField(
focusNode: verifyPasswordFocusNode,
controller: newPasswordVerifyController,
autofillHints: const [AutofillHints.newPassword],
keyboardType: TextInputType.visiblePassword,
obscureText: true,
onSubmitted: (_) => oldPasswordFocusNode.requestFocus(),
),
const SizedBox(height: 8),
Text(L10n.of(context)!.old_password, style: theme.textTheme.headline6),
TextField(
focusNode: oldPasswordFocusNode,
controller: oldPasswordController,
autofillHints: const [AutofillHints.password],
keyboardType: TextInputType.visiblePassword,
obscureText: true,
),
const SizedBox(height: 8),
// Text(L10n.of(context)!.new_password, style: theme.textTheme.headline6),
// TextField(
// focusNode: newPasswordFocusNode,
// controller: newPasswordController,
// autofillHints: const [AutofillHints.newPassword],
// keyboardType: TextInputType.visiblePassword,
// obscureText: true,
// onSubmitted: (_) => verifyPasswordFocusNode.requestFocus(),
// ),
// const SizedBox(height: 8),
// Text(L10n.of(context)!.verify_password,
// style: theme.textTheme.headline6),
// TextField(
// focusNode: verifyPasswordFocusNode,
// controller: newPasswordVerifyController,
// autofillHints: const [AutofillHints.newPassword],
// keyboardType: TextInputType.visiblePassword,
// obscureText: true,
// onSubmitted: (_) => oldPasswordFocusNode.requestFocus(),
// ),
// const SizedBox(height: 8),
// Text(L10n.of(context)!.old_password, style: theme.textTheme.headline6),
// TextField(
// focusNode: oldPasswordFocusNode,
// controller: oldPasswordController,
// autofillHints: const [AutofillHints.password],
// keyboardType: TextInputType.visiblePassword,
// obscureText: true,
// ),
// const SizedBox(height: 8),
SwitchListTile.adaptive(
value: showNsfw.value,
onChanged: (checked) {
@ -328,6 +326,33 @@ class _ManageAccount extends HookWidget {
dense: true,
),
const SizedBox(height: 8),
SwitchListTile.adaptive(
value: botAccount.value,
onChanged: (checked) {
botAccount.value = checked;
},
title: Text(L10n.of(context)!.bot_account),
dense: true,
),
const SizedBox(height: 8),
SwitchListTile.adaptive(
value: showBotAccounts.value,
onChanged: (checked) {
showBotAccounts.value = checked;
},
title: Text(L10n.of(context)!.show_bot_accounts),
dense: true,
),
const SizedBox(height: 8),
SwitchListTile.adaptive(
value: showReadPosts.value,
onChanged: (checked) {
showReadPosts.value = checked;
},
title: Text(L10n.of(context)!.show_read_posts),
dense: true,
),
const SizedBox(height: 8),
SwitchListTile.adaptive(
value: sendNotificationsToEmail.value,
onChanged: (checked) {

View File

@ -132,7 +132,7 @@ class _ModlogTable extends StatelessWidget {
),
),
TextSpan(
text: ' ${user.displayName}',
text: ' ${user.preferredName}',
style: TextStyle(color: theme.accentColor),
recognizer: TapGestureRecognizer()
..onTap = () => goToUser.byId(
@ -524,7 +524,7 @@ class _ModlogEntry {
radius: 10,
),
Text(
' ${mod.displayName}',
' ${mod.preferredName}',
style: TextStyle(color: Theme.of(context).accentColor),
),
],

View File

@ -39,7 +39,7 @@ class UsersListItem extends StatelessWidget {
@override
Widget build(BuildContext context) => ListTile(
title: Text(user.person.originDisplayName),
title: Text(user.person.originPreferredName),
subtitle: user.person.bio != null
? Opacity(
opacity: 0.5,

View File

@ -116,7 +116,7 @@ class WriteMessagePage extends HookWidget {
padding: const EdgeInsets.symmetric(horizontal: 16),
child: Column(
children: [
Text('to ${recipient.displayName}'),
Text('to ${recipient.preferredName}'),
const SizedBox(height: 16),
body,
Align(

View File

@ -107,8 +107,7 @@ class ConfigStore extends ChangeNotifier {
_locale = L10n.supportedLocales.contains(Locale(localUserSettings.lang))
? Locale(localUserSettings.lang)
: _locale;
// TODO: add when it is released
// _showScores = localUserSettings.showScores;
_showScores = localUserSettings.showScores;
_defaultSortType = localUserSettings.defaultSortType;
_defaultListingType = localUserSettings.defaultListingType;

View File

@ -26,26 +26,26 @@ extension GetOriginInstanceCommentView on Comment {
String _extract(String url) => urlHost(url);
extension CommunityDisplayNames on CommunitySafe {
String get displayName => '!$name';
String get originDisplayName =>
local ? displayName : '!$name@$originInstanceHost';
extension CommunityPreferredNames on CommunitySafe {
String get preferredName => '!$name';
String get originPreferredName =>
local ? preferredName : '!$name@$originInstanceHost';
}
extension UserDisplayNames on PersonSafe {
String get displayName {
final prefName = preferredUsername;
if (prefName != null && prefName.isNotEmpty) {
return prefName;
extension UserPreferredNames on PersonSafe {
String get preferredName {
final dispName = displayName;
if (dispName != null && dispName.isNotEmpty) {
return dispName;
}
return '@$name';
}
String get originDisplayName {
if (!local) return '$displayName@$originInstanceHost';
String get originPreferredName {
if (!local) return '$preferredName@$originInstanceHost';
return displayName;
return preferredName;
}
}

View File

@ -385,7 +385,7 @@ class CommentWidget extends HookWidget {
InkWell(
onTap: () =>
goToUser.fromPersonSafe(context, comment.creator),
child: Text(comment.creator.originDisplayName,
child: Text(comment.creator.originPreferredName,
style: TextStyle(
color: theme.accentColor,
)),

View File

@ -9,6 +9,7 @@ class Editor extends HookWidget {
final FocusNode? focusNode;
final ValueChanged<String>? onSubmitted;
final int? minLines;
final int? maxLines;
final String? labelText;
final bool autofocus;
@ -22,6 +23,7 @@ class Editor extends HookWidget {
this.focusNode,
this.onSubmitted,
this.minLines = 5,
this.maxLines,
this.labelText,
this.fancy = false,
required this.instanceHost,
@ -50,7 +52,7 @@ class Editor extends HookWidget {
keyboardType: TextInputType.multiline,
textCapitalization: TextCapitalization.sentences,
onSubmitted: onSubmitted,
maxLines: null,
maxLines: maxLines,
minLines: minLines,
decoration: InputDecoration(labelText: labelText),
);

View File

@ -227,7 +227,7 @@ class PostWidget extends HookWidget {
fontWeight: FontWeight.w300),
),
TextSpan(
text: ' ${post.creator.originDisplayName}',
text: ' ${post.creator.originPreferredName}',
style: const TextStyle(
fontWeight: FontWeight.w600),
recognizer: TapGestureRecognizer()

View File

@ -218,7 +218,7 @@ class _UserOverview extends HookWidget {
else
const SizedBox(height: 80),
Text(
userView.person.displayName,
userView.person.preferredName,
style: theme.textTheme.headline6,
),
const SizedBox(height: 4),

View File

@ -412,7 +412,7 @@ packages:
name: lemmy_api_client
url: "https://pub.dartlang.org"
source: hosted
version: "0.14.0"
version: "0.15.0"
logging:
dependency: transitive
description:

View File

@ -43,7 +43,7 @@ dependencies:
# utils
timeago: ^3.0.2
fuzzy: ^0.4.0-nullsafety.0
lemmy_api_client: ^0.14.0
lemmy_api_client: ^0.15.0
intl: ^0.17.0
matrix4_transform: ^2.0.0
json_annotation: ^4.0.1

View File

@ -174,6 +174,9 @@ const toMigrate = <_>[
_('most_comments'),
_('new_comments'),
_('active'),
_('bot_account'),
_('show_bot_accounts'),
_('show_read_posts'),
];
const repoName = 'lemmy-translations';