diff options
author | Dessalines <tyhou13@gmx.com> | 2020-07-03 21:51:42 -0400 |
---|---|---|
committer | Dessalines <tyhou13@gmx.com> | 2020-07-03 21:51:42 -0400 |
commit | b1b755713ef791f777fb138ff9c9392e17c3529a (patch) | |
tree | 6606127efdf08fa12d7bc22d589a0119e03c6464 /ui | |
parent | 4822a53f063586dc7226011e6342b42961d42b3b (diff) | |
parent | aab68f0bafacb88f6c542a98d2a0f3cdb0de20b3 (diff) |
Merge branch 'master' into arrudaricardo-issue-#814
Diffstat (limited to 'ui')
-rw-r--r-- | ui/src/api_tests/api.spec.ts | 18 | ||||
-rw-r--r-- | ui/src/components/comment-form.tsx | 4 | ||||
-rw-r--r-- | ui/src/components/login.tsx | 49 | ||||
-rw-r--r-- | ui/src/components/sponsors.tsx | 16 | ||||
-rw-r--r-- | ui/src/i18next.ts | 2 | ||||
-rw-r--r-- | ui/src/utils.ts | 4 | ||||
-rw-r--r-- | ui/src/version.ts | 2 | ||||
-rw-r--r-- | ui/translations/de.json | 13 | ||||
-rw-r--r-- | ui/translations/el.json | 10 | ||||
-rw-r--r-- | ui/translations/en.json | 3 | ||||
-rw-r--r-- | ui/translations/eo.json | 239 | ||||
-rw-r--r-- | ui/translations/it.json | 6 | ||||
-rw-r--r-- | ui/translations/sq.json | 108 |
13 files changed, 365 insertions, 109 deletions
diff --git a/ui/src/api_tests/api.spec.ts b/ui/src/api_tests/api.spec.ts index 7337201c..41710e11 100644 --- a/ui/src/api_tests/api.spec.ts +++ b/ui/src/api_tests/api.spec.ts @@ -124,10 +124,10 @@ describe('main', () => { }); describe('follow_accept', () => { - test('/u/lemmy_alpha follows and accepts lemmy_beta/c/main', async () => { - // Make sure lemmy_beta/c/main is cached on lemmy_alpha + test('/u/lemmy_alpha follows and accepts lemmy-beta/c/main', async () => { + // Make sure lemmy-beta/c/main is cached on lemmy_alpha // Use short-hand search url - let searchUrl = `${lemmyAlphaApiUrl}/search?q=!main@lemmy_beta:8550&type_=All&sort=TopAll`; + let searchUrl = `${lemmyAlphaApiUrl}/search?q=!main@lemmy-beta:8550&type_=All&sort=TopAll`; let searchResponse: SearchResponse = await fetch(searchUrl, { method: 'GET', @@ -215,7 +215,7 @@ describe('main', () => { // Also make G follow B // Use short-hand search url - let searchUrlG = `${lemmyGammaApiUrl}/search?q=!main@lemmy_beta:8550&type_=All&sort=TopAll`; + let searchUrlG = `${lemmyGammaApiUrl}/search?q=!main@lemmy-beta:8550&type_=All&sort=TopAll`; let searchResponseG: SearchResponse = await fetch(searchUrlG, { method: 'GET', @@ -449,7 +449,7 @@ describe('main', () => { // Lemmy alpha responds to their own comment, but mentions lemmy beta. // Make sure lemmy beta gets that in their inbox. - let mentionContent = 'A test mention of @lemmy_beta@lemmy_beta:8550'; + let mentionContent = 'A test mention of @lemmy_beta@lemmy-beta:8550'; let mentionCommentForm: CommentForm = { content: mentionContent, post_id: 2, @@ -550,7 +550,7 @@ describe('main', () => { expect(createCommunityRes.community.name).toBe(communityName); // Cache it on lemmy_alpha - let searchUrl = `${lemmyAlphaApiUrl}/search?q=http://lemmy_beta:8550/c/${communityName}&type_=All&sort=TopAll`; + let searchUrl = `${lemmyAlphaApiUrl}/search?q=http://lemmy-beta:8550/c/${communityName}&type_=All&sort=TopAll`; let searchResponse: SearchResponse = await fetch(searchUrl, { method: 'GET', }).then(d => d.json()); @@ -826,7 +826,7 @@ describe('main', () => { expect(createCommunityRes.community.name).toBe(communityName); // Cache it on lemmy_alpha - let searchUrl = `${lemmyAlphaApiUrl}/search?q=http://lemmy_beta:8550/c/${communityName}&type_=All&sort=TopAll`; + let searchUrl = `${lemmyAlphaApiUrl}/search?q=http://lemmy-beta:8550/c/${communityName}&type_=All&sort=TopAll`; let searchResponse: SearchResponse = await fetch(searchUrl, { method: 'GET', }).then(d => d.json()); @@ -1278,7 +1278,7 @@ describe('main', () => { // Create a test comment on Gamma, make sure it gets announced to alpha let commentContent = - 'A jest test federated comment announce, lets mention @lemmy_beta@lemmy_beta:8550'; + 'A jest test federated comment announce, lets mention @lemmy_beta@lemmy-beta:8550'; let commentForm: CommentForm = { content: commentContent, @@ -1417,7 +1417,7 @@ describe('main', () => { expect(createChildCommentRes.comment.content).toBe(childCommentContent); // Follow again, for other tests - let searchUrl = `${lemmyAlphaApiUrl}/search?q=!main@lemmy_beta:8550&type_=All&sort=TopAll`; + let searchUrl = `${lemmyAlphaApiUrl}/search?q=!main@lemmy-beta:8550&type_=All&sort=TopAll`; let searchResponse: SearchResponse = await fetch(searchUrl, { method: 'GET', diff --git a/ui/src/components/comment-form.tsx b/ui/src/components/comment-form.tsx index 72a604b9..61ee3d77 100644 --- a/ui/src/components/comment-form.tsx +++ b/ui/src/components/comment-form.tsx @@ -263,7 +263,9 @@ export class CommentForm extends Component<CommentFormProps, CommentFormState> { // 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) + (data.comment.creator_id == UserService.Instance.user.id && + op == UserOperation.EditComment && + data.comment.content) ) { this.state.previewMode = false; this.state.loading = false; diff --git a/ui/src/components/login.tsx b/ui/src/components/login.tsx index ce04d0d4..97899345 100644 --- a/ui/src/components/login.tsx +++ b/ui/src/components/login.tsx @@ -20,6 +20,11 @@ interface State { loginLoading: boolean; registerLoading: boolean; enable_nsfw: boolean; + mathQuestion: { + a: number; + b: number; + answer: number; + }; } export class Login extends Component<any, State> { @@ -40,6 +45,11 @@ export class Login extends Component<any, State> { loginLoading: false, registerLoading: false, enable_nsfw: undefined, + mathQuestion: { + a: Math.floor(Math.random() * 10) + 1, + b: Math.floor(Math.random() * 10) + 1, + answer: undefined, + }, }; constructor(props: any, context: any) { @@ -215,6 +225,23 @@ export class Login extends Component<any, State> { /> </div> </div> + <div class="form-group row"> + <label class="col-sm-10 col-form-label" htmlFor="register-math"> + {i18n.t('what_is')}{' '} + {`${this.state.mathQuestion.a} + ${this.state.mathQuestion.b}?`} + </label> + + <div class="col-sm-2"> + <input + type="number" + id="register-math" + class="form-control" + value={this.state.mathQuestion.answer} + onInput={linkEvent(this, this.handleMathAnswerChange)} + required + /> + </div> + </div> {this.state.enable_nsfw && ( <div class="form-group row"> <div class="col-sm-10"> @@ -235,7 +262,11 @@ export class Login extends Component<any, State> { )} <div class="form-group row"> <div class="col-sm-10"> - <button type="submit" class="btn btn-secondary"> + <button + type="submit" + class="btn btn-secondary" + disabled={this.mathCheck} + > {this.state.registerLoading ? ( <svg class="icon icon-spinner spin"> <use xlinkHref="#icon-spinner"></use> @@ -272,7 +303,9 @@ export class Login extends Component<any, State> { i.state.registerLoading = true; i.setState(i.state); - WebSocketService.Instance.register(i.state.registerForm); + if (!i.mathCheck) { + WebSocketService.Instance.register(i.state.registerForm); + } } handleRegisterUsernameChange(i: Login, event: any) { @@ -303,6 +336,11 @@ export class Login extends Component<any, State> { i.setState(i.state); } + handleMathAnswerChange(i: Login, event: any) { + i.state.mathQuestion.answer = event.target.value; + i.setState(i.state); + } + handlePasswordReset(i: Login) { event.preventDefault(); let resetForm: PasswordResetForm = { @@ -311,6 +349,13 @@ export class Login extends Component<any, State> { WebSocketService.Instance.passwordReset(resetForm); } + get mathCheck(): boolean { + return ( + this.state.mathQuestion.answer != + this.state.mathQuestion.a + this.state.mathQuestion.b + ); + } + parseMessage(msg: WebSocketJsonResponse) { let res = wsJsonToRes(msg); if (msg.error) { diff --git a/ui/src/components/sponsors.tsx b/ui/src/components/sponsors.tsx index 06e13524..31a4ee5e 100644 --- a/ui/src/components/sponsors.tsx +++ b/ui/src/components/sponsors.tsx @@ -6,10 +6,12 @@ import { repoUrl } from '../utils'; interface SilverUser { name: string; - link: string; + link?: string; } let general = [ + 'dude in phx', + 'twilight loki', 'Andrew Plaza', 'Jonathan Cremin', 'Arthur Nieuwland', @@ -19,7 +21,7 @@ let general = [ 'Andre Vallestero', 'NotTooHighToHack', ]; -let highlighted = ['Oskenso Kashi', 'Alex Benishek']; +let highlighted = ['DiscountFuneral', 'Oskenso Kashi', 'Alex Benishek']; let silver: Array<SilverUser> = [ { name: 'Redjoker', @@ -89,9 +91,13 @@ export class Sponsors extends Component<any, any> { {silver.map(s => ( <div class="card col-12 col-md-2"> <div> - <a href={s.link} target="_blank" rel="noopener"> - 💎 {s.name} - </a> + {s.link ? ( + <a href={s.link} target="_blank" rel="noopener"> + 💎 {s.name} + </a> + ) : ( + <div>💎 {s.name}</div> + )} </div> </div> ))} diff --git a/ui/src/i18next.ts b/ui/src/i18next.ts index 5fa8f4e8..7a341cea 100644 --- a/ui/src/i18next.ts +++ b/ui/src/i18next.ts @@ -24,6 +24,7 @@ import { gl } from './translations/gl'; import { tr } from './translations/tr'; import { hu } from './translations/hu'; import { uk } from './translations/uk'; +import { sq } from './translations/sq'; // https://github.com/nimbusec-oss/inferno-i18next/blob/master/tests/T.test.js#L66 const resources = { @@ -51,6 +52,7 @@ const resources = { tr, hu, uk, + sq, }; function format(value: any, format: any, lng: any): any { diff --git a/ui/src/utils.ts b/ui/src/utils.ts index 7bf6fdd1..48d2095d 100644 --- a/ui/src/utils.ts +++ b/ui/src/utils.ts @@ -21,6 +21,7 @@ import 'moment/locale/gl'; import 'moment/locale/tr'; import 'moment/locale/hu'; import 'moment/locale/uk'; +import 'moment/locale/sq'; import { UserOperation, @@ -83,6 +84,7 @@ export const languages = [ { code: 'fi', name: 'Suomi' }, { code: 'fr', name: 'Français' }, { code: 'sv', name: 'Svenska' }, + { code: 'sq', name: 'Shqip' }, { code: 'tr', name: 'Türkçe' }, { code: 'uk', name: 'українська мова' }, { code: 'ru', name: 'Русский' }, @@ -414,6 +416,8 @@ export function getMomentLanguage(): string { lang = 'hu'; } else if (lang.startsWith('uk')) { lang = 'uk'; + } else if (lang.startsWith('sq')) { + lang = 'sq'; } else { lang = 'en'; } diff --git a/ui/src/version.ts b/ui/src/version.ts index 01d3be81..709137ef 100644 --- a/ui/src/version.ts +++ b/ui/src/version.ts @@ -1 +1 @@ -export const version: string = 'v0.7.5'; +export const version: string = 'v0.7.8'; diff --git a/ui/translations/de.json b/ui/translations/de.json index ef42d418..3199bc7a 100644 --- a/ui/translations/de.json +++ b/ui/translations/de.json @@ -50,14 +50,14 @@ "remove_as_admin": "Als Administrator entfernen", "appoint_as_admin": "Zum Administrator ernennen", "remove": "entfernen", - "removed": "entfernt", + "removed": "entfernt durch die Moderation", "locked": "gesperrt", "stickied": "angeheftet", "reason": "Grund", "mark_as_read": "als gelesen markieren", "mark_as_unread": "als ungelesen markieren", "delete": "löschen", - "deleted": "gelöscht", + "deleted": "vom Ersteller gelöscht", "delete_account": "Konto löschen", "delete_account_confirm": "Achtung: Dadurch werden alle Ihre Daten dauerhaft gelöscht. Geben Sie zur Bestätigung Ihr Passwort ein.", "restore": "wiederherstellen", @@ -150,7 +150,7 @@ "theme": "Aussehen", "sponsors": "Sponsoren", "sponsors_of_lemmy": "Sponsoren von Lemmy", - "sponsor_message": "Lemmy ist freie <1>Open-Source</1> Software, also ohne Werbung, Monetarisierung oder Venturekapital, Punkt. Deine Spenden gehen direkt an die Vollzeit Entwicklung des Projekts. Vielen Dank an die folgenden Personen:", + "sponsor_message": "Lemmy ist freie <1>Open-Source</1> Software, ohne Werbung, Monetarisierung oder Venturekapital, Punkt. Deine Spenden gehen direkt an die Vollzeit Entwicklung des Projekts. Vielen Dank an die folgenden Personen:", "support_on_patreon": "Auf Patreon unterstützen", "support_on_liberapay": "Auf Liberapay unterstützen", "general_sponsors": "Allgemeine Sponsoren sind die, die zwischen $10 und $39 zu Lemmy beitragen.", @@ -251,5 +251,10 @@ "number_of_upvotes": "{{count}} Stimme", "number_of_upvotes_plural": "{{count}} Stimmen", "number_of_downvotes": "{{count}} Gegenstimme", - "number_of_downvotes_plural": "{{count}} Gegenstimmen" + "number_of_downvotes_plural": "{{count}} Gegenstimmen", + "invalid_community_name": "Ungültiger Name.", + "click_to_delete_picture": "Klicke, um das Bild zu löschen.", + "picture_deleted": "Bild gelöscht.", + "select_a_community": "Wähle eine Community aus", + "invalid_username": "Ungültiger Benutzername." } diff --git a/ui/translations/el.json b/ui/translations/el.json index 7d7d1497..4dab7c88 100644 --- a/ui/translations/el.json +++ b/ui/translations/el.json @@ -102,7 +102,7 @@ "category": "Κατηγορία", "subscribers": "Εγγεγραμμένοι", "both": "Και οι δύο", - "saved": "Αποθηκεύτηκε", + "saved": "Αποθηκευμένα", "prev": "Προηγούμενο", "next": "Επόμενο", "sidebar": "Πλευρικό μενού", @@ -116,7 +116,7 @@ "mark_all_as_read": "επισήμανση όλων ως διαβασμένα", "type": "Είδος", "unread": "Μη διαβασμένα", - "url": "Ενιαίος Εντοπιστής Πόρων (URL)", + "url": "URL", "subscribed": "Εγγεγραμμένος", "week": "Εβδομάδα", "month": "Μήνας", @@ -151,8 +151,8 @@ "reset_password_mail_sent": "Μόλις στάλθηκε ένα μήνυμα ηλεκτρονικού ταχυδρομείου για την επαναφορά του κωδικού σας.", "password_change": "Αλλαγή κωδικού", "new_password": "Νέος κωδικός", - "no_email_setup": "Αυτός ο διακομιστής δεν έχει εγκαταστήσει σωστά το ηλεκτρονικό ταχυδρομείο.", - "email": "Ηλεκτρονικό ταχυδρομείο", + "no_email_setup": "Αυτός ο διακομιστής δεν έχει εγκαταστήσει σωστά το email.", + "email": "Email", "matrix_user_id": "Χρήστης Matrix", "private_message_disclaimer": "Προσοχή: τα προσωπικά μηνύματα στο Lemmy δεν είναι ασφαλή. Παρακαλούμε δημιουργήστε έναν λογαριασμό στο <1>Riot.im</1> για ασφαλή επικοινωνία.", "send_notifications_to_email": "Αποστολή ειδοποιήσεων στη διεύθυνση ηλεκτρονικού ταχυδρομείου", @@ -200,7 +200,7 @@ "monero": "Monero", "code": "Κώδικας", "by": "από", - "to": "μέχρι", + "to": "προς", "from": "από", "transfer_community": "μεταφορά κοινότητας", "transfer_site": "μεταφορά ιστότοπου", diff --git a/ui/translations/en.json b/ui/translations/en.json index 6d2d1c5d..62b11ce4 100644 --- a/ui/translations/en.json +++ b/ui/translations/en.json @@ -264,5 +264,6 @@ "time": "Time", "action": "Action", "emoji_picker": "Emoji Picker", - "block_leaving": "Are you sure you want to leave?" + "block_leaving": "Are you sure you want to leave?", + "what_is": "What is" } diff --git a/ui/translations/eo.json b/ui/translations/eo.json index 5bde84f4..78821bf0 100644 --- a/ui/translations/eo.json +++ b/ui/translations/eo.json @@ -1,33 +1,34 @@ { - "post": "Poŝti", - "remove_post": "Fortiri Poŝton", - "no_posts": "Ne Poŝtoj.", - "create_a_post": "Verki Poŝton", - "create_post": "Verki Poŝton", - "number_of_posts": "{{count}} Poŝtoj", - "posts": "Poŝtoj", - "related_posts": "Tiuj poŝtoj eble rilatas", - "cross_posts": "Tiuj ligilo ankaŭ estas poŝtinta al:", - "cross_post": "laŭapoŝto", + "post": "Afiŝi", + "remove_post": "Forigi afiŝon", + "no_posts": "Neniuj afiŝoj.", + "create_a_post": "Verki afiŝon", + "create_post": "Verki afiŝon", + "number_of_posts": "{{count}} afiŝo", + "number_of_posts_plural": "{{count}} afiŝoj", + "posts": "Afiŝoj", + "related_posts": "Ĉi tiuj afiŝoj eble rilatas", + "cross_posts": "Tiu ligilo ankaŭ estas afiŝita al:", + "cross_post": "transafiŝo", "comments": "Komentoj", - "number_of_comments": "{{count}} Komento", - "number_of_comments_plural": "{{count}} Komentoj", - "remove_comment": "Fortiri Komentojn", + "number_of_comments": "{{count}} komento", + "number_of_comments_plural": "{{count}} komentoj", + "remove_comment": "Forigi komenton", "communities": "Komunumoj", "users": "Uzantoj", "create_a_community": "Krei komunumon", - "create_community": "Krei Komunumon", - "remove_community": "Forigi Komunumon", - "subscribed_to_communities": "Abonita al <1>komunumoj</1>", - "trending_communities": "Furora <1>komunumoj</1>", + "create_community": "Krei komunumon", + "remove_community": "Forigi komunumon", + "subscribed_to_communities": "Abonanta <1>komunumojn</1>", + "trending_communities": "Furoraj <1>komunumoj</1>", "list_of_communities": "Listo de komunumoj", - "community_reqs": "minusklaj leteroj, substrekoj, kaj ne spacetoj.", + "community_reqs": "minusklaj literoj, substrekoj, kaj neniuj spacetoj.", "edit": "redakti", - "reply": "repliki", - "cancel": "nuligi", + "reply": "respondi", + "cancel": "Nuligi", "unlock": "malŝlosi", "lock": "ŝlosi", - "link": "ligi", + "link": "ligilo", "mod": "moderanto", "mods": "moderantoj", "moderates": "Moderigas", @@ -37,17 +38,17 @@ "modlog": "Moderlogo", "admin": "administranto", "admins": "administrantoj", - "remove_as_admin": "forigi per administranto", - "appoint_as_admin": "nomumi per administranto", - "remove": "fortiri", + "remove_as_admin": "forigi kiel administranto", + "appoint_as_admin": "nomumi administranto", + "remove": "forigi", "removed": "fortirita", "locked": "ŝlosita", "reason": "Kialo", - "mark_as_read": "marki kiel legita", - "mark_as_unread": "marki kiel nelegita", + "mark_as_read": "marki legita", + "mark_as_unread": "marki nelegita", "delete": "forigi", - "deleted": "forigita", - "restore": "restaŭri", + "deleted": "forigita de la kreinto", + "restore": "revenigi", "ban": "forbari", "ban_from_site": "forbari de retejo", "unban": "malforbari", @@ -55,11 +56,14 @@ "save": "konservi", "unsave": "malkonservi", "create": "krei", - "username": "Uzantnomo", - "email_or_username": "Retadreso aŭ Uzantnomo", - "number_of_users": "{{count}} Uzantoj", - "number_of_subscribers": "{{count}} Abonantoj", - "number_of_points": "{{count}} Voĉdonoj", + "username": "Uzantonomo", + "email_or_username": "Retpoŝtadreso aŭ uzantonomo", + "number_of_users": "{{count}} uzanto", + "number_of_users_plural": "{{count}} uzantoj", + "number_of_subscribers": "{{count}} abonanto", + "number_of_subscribers_plural": "{{count}} abonantoj", + "number_of_points": "{{count}} voĉdono", + "number_of_points_plural": "{{count}} voĉdonoj", "name": "Nomo", "title": "Titolo", "category": "Kategorio", @@ -69,10 +73,10 @@ "unsubscribe": "Malaboni", "subscribe": "Aboni", "subscribed": "Abonita", - "prev": "Antaŭe", - "next": "Poste", - "sidebar": "Flankstango", - "sort_type": "Klasi per kia", + "prev": "Malpluen", + "next": "Pluen", + "sidebar": "Flankobreto", + "sort_type": "Ordigilo", "hot": "Varmaj", "new": "Novaj", "top_day": "Supraj tagaj", @@ -84,46 +88,46 @@ "api": "API", "inbox": "Ricevujo", "inbox_for": "Ricevujo de <1>{{user}}</1>", - "mark_all_as_read": "marki ĉiujn kiel legitaj", + "mark_all_as_read": "marki ĉiujn legitaj", "type": "Tipo", "unread": "Nelegitaj", - "reply_sent": "Repliko sendis", + "reply_sent": "Respondo sendiĝis", "search": "Serĉi", "overview": "Resumo", "view": "Rigardi", - "logout": "Elsaluti", - "login_sign_up": "Ensaluti / Registriĝi", - "login": "Ensaluti", + "logout": "Adiaŭi", + "login_sign_up": "Saluti / Registriĝi", + "login": "Saluti", "sign_up": "Registriĝi", - "notifications_error": "Labortablaj avizoj estas nehavebla en via retumilo. Provu Firefox-on aŭ Chrome-on.", - "unread_messages": "Nelegitaj Mesaĝoj", + "notifications_error": "Labortablaj avizoj estas nehaveblaj en via foliumilo. Provu foliumilojn Firefox aŭ Chrome.", + "unread_messages": "Nelegitaj mesaĝoj", "password": "Pasvorto", - "verify_password": "Konfirmu Vian Pasvorton", - "email": "Retadreso", - "optional": "Fakultativa", + "verify_password": "Konfirmu vian pasvorton", + "email": "Retpoŝtadreso", + "optional": "Malnepra", "expires": "Finiĝos", "url": "URL", "body": "Ĉefparto", - "copy_suggested_title": "kopii la sugestiitan titolon: {{title}}", + "copy_suggested_title": "kopii la proponitan titolon: {{title}}", "community": "Komunumo", - "expand_here": "Ekspansii ĉi tie", + "expand_here": "Etendi ĉi tie", "subscribe_to_communities": "Aboni al iuj <1>komunumoj</1>.", "chat": "Babilo", - "recent_comments": "Freŝaj Komentoj", - "no_results": "Ne rezultoj.", + "recent_comments": "Freŝaj komentoj", + "no_results": "Neniuj rezultoj.", "setup": "Agordi", - "lemmy_instance_setup": "Agordi Instancon de Lemmy", - "setup_admin": "Agordi Retejan Administranton", + "lemmy_instance_setup": "Agordi nodon de Lemmy", + "setup_admin": "Agordi administranton de retejo", "your_site": "via retejo", "modified": "modifita", - "nsfw": "NSFW", - "show_nsfw": "Vidigi NSFW-an enhavon", + "nsfw": "Konsterna", + "show_nsfw": "Montri konsternan 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, sen reklamoj, pagigado, aŭ riska kapitalo, ĉiam ajn. Viaj donacoj rekte subtenas plentempan evoluigadon 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.", - "crypto": "Crypto", + "general_sponsors": "Ĝeneralaj subtenantoj estas tiuj, kiuj donacis inter $10 kaj $39 al Lemmy.", + "crypto": "Ĉifroteĥnikaro", "bitcoin": "Bitcoin", "ethereum": "Ethereum", "monero": "Monero", @@ -133,45 +137,124 @@ "to": "al", "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>.", - "not_logged_in": "Ne estas ensalutinta.", + "powered_by": "Konstruita per", + "landing": "Lemmy estas <1>amasigilo de ligiloj</1> / alternativo de Reddit, intencita funkcii en la <2>federuniverso</2>.<3></3>ĝi estas mem-gastigebla, havas tuj-ĝisdatigojn de komentaroj, kaj estas malgrandega (<4>~80kB</4>). Federado en la reto de ActivityPub estas planita. <5></5>Ĉi tio estas <6>tre frua beta-versio</6>, kaj multaj funkcioj estas nune difektaj aŭ mankaj. <7></7>Proponu novajn funkciojn aŭ raportu erarojn <8>ĉi tie.</8><9></9>Konstruita per <10>Rust</10>, <11>Actix</11>, <12>Inferno</12>, <13>Typescript</13>.", + "not_logged_in": "Nesalutinta.", "community_ban": "Vi estas forbarita de la komunumo.", "site_ban": "Vi estas forbarita de la retejo", "couldnt_create_comment": "Ne povis krei la komenton.", "couldnt_like_comment": "Ne povis ŝati la komenton.", - "couldnt_update_comment": "Ne povis ĝisdatigi komenton.", - "couldnt_save_comment": "Ne povis konservi komenton.", + "couldnt_update_comment": "Ne povis ĝisdatigi la komenton.", + "couldnt_save_comment": "Ne povis konservi la komenton.", "no_comment_edit_allowed": "Ne rajtas redakti la komenton.", - "no_post_edit_allowed": "Ne rajtas redakti la poŝton.", + "no_post_edit_allowed": "Ne rajtas redakti la afiŝon.", "no_community_edit_allowed": "Ne rajtas redakti la komunumon.", "couldnt_find_community": "Ne povis trovi la komunumon.", "couldnt_update_community": "Ne povis ĝisdatigi la komunumon.", "community_already_exists": "Komunumo jam ekzistas.", "community_moderator_already_exists": "Komunuma moderanto jam ekzistas.", - "community_follower_already_exists": "Komunuma sekvanto.", - "community_user_already_banned": "Komunuma uzanto jam estas forbarita.", - "couldnt_create_post": "Ne povis krei la poŝton.", - "couldnt_like_post": "Ne povis ŝati la poŝton.", - "couldnt_find_post": "Ne povis trovi la poŝton.", - "couldnt_get_posts": "Ne povis irpreni poŝtojn", - "couldnt_update_post": "Ne povis ĝisdatigi la poŝton", - "couldnt_save_post": "Ne povis konservi la poŝton.", - "no_slurs": "Ne bigotaj vortoj.", + "community_follower_already_exists": "Abonanto de komunumo jam ekzistas.", + "community_user_already_banned": "Uzanto de komunumo jam estas forbarita.", + "couldnt_create_post": "Ne povis krei la afiŝon.", + "couldnt_like_post": "Ne povis ŝati la afiŝon.", + "couldnt_find_post": "Ne povis trovi la afiŝon.", + "couldnt_get_posts": "Ne povis akiri afiŝojn", + "couldnt_update_post": "Ne povis ĝisdatigi la afiŝon", + "couldnt_save_post": "Ne povis konservi la afiŝon.", + "no_slurs": "Neniuj fivortoj.", "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 uzantonomon aŭ retpoŝtadreson.", "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 adiaŭi kaj resaluti.", "send_message": "Sendi mesaĝon", "message": "Mesaĝo", - "number_of_communities": "{{count}} Komunumo", - "number_of_communities_plural": "{{count}} Komunumoj", + "number_of_communities": "{{count}} komunumo", + "number_of_communities_plural": "{{count}} komunumoj", "more": "pli", - "select_a_community": "Elekti komunumon" + "select_a_community": "Elekti komunumon", + "click_to_delete_picture": "Klaku por forigi bildon.", + "cross_posted_to": "transafiŝita al: ", + "invalid_community_name": "Nevalida nomo.", + "picture_deleted": "Bildo foriĝis.", + "create_private_message": "Krei privatan mesaĝon", + "send_secure_message": "Sendi sekuran mesaĝon", + "avatar": "Profilbildo", + "show_avatars": "Montri profilbildojn", + "formatting_help": "helpo pri formatado", + "sorting_help": "helpo pri ordigado", + "sticky": "pingli", + "unsticky": "malpingli", + "stickied": "pinglita", + "delete_account": "Forigi konton", + "delete_account_confirm": "Averto: ĉi tio por ĉiam forigos ĉiujn viajn datumojn. Enigu pasvorton por konfirmi.", + "preview": "Antaŭrigardo", + "upload_image": "alŝuti bildon", + "upload_avatar": "Alŝuti profilbildon", + "banned": "forbarita", + "creator": "kreinto", + "number_online": "{{count}} uzanto enreta", + "number_online_plural": "{{count}} uzantoj enretaj", + "old": "Malnovaj", + "docs": "Dokumentaĵo", + "view_source": "montri fonton", + "show_context": "Montri kuntekston", + "admin_settings": "Agordoj de agministranto", + "site_config": "Agordaro de retejo", + "banned_users": "Forbaritaj uzantoj", + "donate": "Donaci", + "archive_link": "arĥiva ligilo", + "replies": "Respondoj", + "mentions": "Mencioj", + "message_sent": "Mesaĝo sendiĝis", + "post_title_too_long": "Titolo de afiŝo estas tro longa.", + "messages": "Mesaĝoj", + "old_password": "Malnova pasvorto", + "forgot_password": "forgesita pasvorto", + "reset_password_mail_sent": "Retletero sendiĝis por restarigi vian pasvorton.", + "password_change": "Ŝanĝo de pasvorto", + "new_password": "Nova pasvorto", + "no_email_setup": "Ĉi tiu servilo ne agordis ĝuste retpoŝton.", + "matrix_user_id": "Uzanto de Matrix", + "private_message_disclaimer": "Averto: Privataj mesaĝoj en Lemmy ne estas sekuraj. Bonvolu krei konton je <1>Riot.im</1> por sekura mesaĝado.", + "send_notifications_to_email": "Sendi sciigojn al retpoŝtadreso", + "language": "Lingvo", + "browser_default": "Laŭ foliumilo", + "downvotes_disabled": "Kontraŭvoĉoj malŝaltiĝis", + "enable_downvotes": "Ŝalti kontraŭvoĉojn", + "open_registration": "Ebligi registradon", + "registration_closed": "Registrado malebliĝis", + "enable_nsfw": "Ŝalti konsternajn", + "support_on_open_collective": "Subteni per OpenCollective", + "theme": "Haŭto", + "support_on_liberapay": "Subteni per Liberapay", + "donate_to_lemmy": "Donaci al Lemmy", + "silver_sponsors": "Arĝentaj subtenantoj estas tiuj, kiuj donacis $40 al Lemmy.", + "are_you_sure": "ĉu vi certas?", + "yes": "jes", + "no": "ne", + "logged_in": "Salutinta.", + "site_saved": "Retejo konserviĝis.", + "couldnt_get_comments": "Ne povis akiri la komentojn.", + "email_already_exists": "Retpoŝtadreso jam ekzistas.", + "couldnt_create_private_message": "Ne povis krei privatan mesaĝon.", + "no_private_message_edit_allowed": "Ne rajtas redakti la privatan mesaĝon.", + "couldnt_update_private_message": "Ne povis ĝisdatigi la privatan mesaĝon.", + "time": "Tempo", + "action": "Ago", + "emoji_picker": "Elektilo de bildsignoj", + "block_leaving": "Ĉu vi certe volas foriri?", + "from": "de", + "invalid_username": "Nevalida uzantonomo.", + "upvote": "Porvoĉi", + "number_of_upvotes": "{{count}} porvoĉo", + "number_of_upvotes_plural": "{{count}} porvoĉoj", + "downvote": "Kontraŭvoĉi", + "number_of_downvotes": "{{count}} kontraŭvoĉo", + "number_of_downvotes_plural": "{{count}} kontraŭvoĉoj" } diff --git a/ui/translations/it.json b/ui/translations/it.json index 2e9a48d8..cf8c0ea6 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 dall'autore del commento", + "deleted": "eliminato dal creatore", "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", @@ -151,7 +151,7 @@ "ethereum": "Ethereum", "monero": "Monero", "code": "Codice", - "joined": "Iscritto da", + "joined": "Iscritto", "by": "di", "to": "su", "transfer_community": "trasferisci comunità", @@ -175,7 +175,7 @@ "couldnt_update_community": "Impossibile aggiornare la comunità.", "community_already_exists": "La comunità esiste già.", "community_moderator_already_exists": "Questo utente è già moderatore della comunità.", - "community_follower_already_exists": "Questo utente è già moderatore della comunità.", + "community_follower_already_exists": "Questo utente è già membro della comunità.", "community_user_already_banned": "L'utente della comunità è già stato espulso.", "couldnt_create_post": "Impossibile creare la pubblicazione.", "couldnt_like_post": "Impossibile apprezzare la pubblicazione.", diff --git a/ui/translations/sq.json b/ui/translations/sq.json new file mode 100644 index 00000000..0526fa26 --- /dev/null +++ b/ui/translations/sq.json @@ -0,0 +1,108 @@ +{ + "remove_post": "Hiqe Postimin", + "no_posts": "Nuk ka Postime.", + "create_a_post": "Krijo një postim", + "create_post": "Krijo Postimin", + "posts": "Postime", + "related_posts": "Këto postime mund të jenë të lidhura", + "cross_posts": "Ky link është postuar edhe te:", + "cross_post": "shumë-postim", + "cross_posted_to": "shumë-postuar në: ", + "comments": "Komentet", + "remove_comment": "Fshije Komentin", + "communities": "Komunitetet", + "users": "Përdoruesit", + "create_a_community": "Krijo një komunitet", + "select_a_community": "Përzgjedh një komunitet", + "create_community": "Krijo komunitetin", + "remove_community": "Fshije Komunitetin", + "subscribed_to_communities": "I abonuar në", + "trending_communities": "Trendi", + "list_of_communities": "Lista e komuniteteve", + "community_reqs": "gërma të vogla, nënvizim, dhe pa hapësira.", + "invalid_community_name": "Emër invalid.", + "create_private_message": "Krijo Mesazh Privat", + "send_secure_message": "Dërgo Mesazh të Sigurtë", + "send_message": "Dërgo Mesazh", + "message": "Mesazh", + "edit": "redakto", + "reply": "përgjigju", + "mor |