Šis veiksmas yra negrįžtamas, ir jūs negalėsite susigrąžinti jokių duomenų strong>
Įveskite savo vardą, kad patvirtintumėte, jog norite panaikinti šią paskyrą.",
"fullname": "Vardas ir pavardė",
"website": "Tinklalapis",
"location": "Vieta",
@@ -32,7 +32,7 @@
"edit": "Redaguoti",
"uploaded_picture": "Įkeltas paveikslėlis",
"upload_new_picture": "Įkelti naują paveikslėlį",
- "upload_new_picture_from_url": "Upload New Picture From URL",
+ "upload_new_picture_from_url": "Įkelti naują paveikslėlį iš URL",
"current_password": "Dabartinis slaptažodis",
"change_password": "Pakeisti slaptažodį",
"change_password_error": "Negalimas slaptažodis!",
@@ -50,21 +50,22 @@
"max": "maks.",
"settings": "Nustatymai",
"show_email": "Rodyti mano el. paštą viešai",
- "show_fullname": "Show My Full Name",
- "restrict_chats": "Only allow chat messages from users I follow",
+ "show_fullname": "Rodyti mano vardą ir pavardę",
+ "restrict_chats": "Gauti pokalbių žinutes tik iš tų narių, kuriuos seku",
"digest_label": "Prenumeruoti įvykių santrauką",
"digest_description": "Gauti naujienas apie naujus pranešimus ir temas į el. paštą pagal nustatytą grafiką",
"digest_off": "Išjungta",
"digest_daily": "Kas dieną",
"digest_weekly": "Kas savaitę",
"digest_monthly": "Kas mėnesį",
- "send_chat_notifications": "Send an email if a new chat message arrives and I am not online",
- "send_post_notifications": "Send an email when replies are made to topics I am subscribed to",
+ "send_chat_notifications": "Jeigu gaunama nauja pokalbių žinutė ir aš neprisijungęs, siųsti el. laišką",
+ "send_post_notifications": "Atsiųsti el. laišką kai parašomi atsakymai į mano prenumeruojamas temas",
+ "settings-require-reload": "Some setting changes require a reload. Click here to reload the page.",
"has_no_follower": "Šis vartotojas neturi jokių sekėjų :(",
"follows_no_one": "Šis vartotojas nieko neseka :(",
"has_no_posts": "Šis vartotojas dar neparašė nė vieno pranešimo.",
"has_no_topics": "Šis vartotojas dar nesukūrė nė vienos temos.",
- "has_no_watched_topics": "This user didn't watch any topics yet.",
+ "has_no_watched_topics": "Šis vartotojas dar neseka jokių temų",
"email_hidden": "El. paštas paslėptas",
"hidden": "paslėptas",
"paginate_description": "Temose ir kategorijose naudoti numeraciją puslapiams vietoje begalinės slinkties.",
@@ -75,6 +76,7 @@
"open_links_in_new_tab": "Atidaryti nuorodas naujame skirtuke?",
"enable_topic_searching": "Enable In-Topic Searching",
"topic_search_help": "If enabled, in-topic searching will override the browser's default page search behaviour and allow you to search through the entire topic, instead of what is only shown on screen.",
- "follow_topics_you_reply_to": "Follow topics that you reply to.",
- "follow_topics_you_create": "Follow topics you create."
+ "follow_topics_you_reply_to": "Sekite temas, į kurias jūs atsakėte.",
+ "follow_topics_you_create": "Sekite jūsų sukurtas temas.",
+ "grouptitle": "Select the group title you would like to display"
}
\ No newline at end of file
diff --git a/public/language/lt/users.json b/public/language/lt/users.json
index 043ca55bcc..f4f4360022 100644
--- a/public/language/lt/users.json
+++ b/public/language/lt/users.json
@@ -5,8 +5,8 @@
"search": "Ieškoti",
"enter_username": "Įrašykite vartotojo vardą paieškai",
"load_more": "Įkelti daugiau",
- "users-found-search-took": "%1 user(s) found! Search took %2 seconds.",
- "filter-by": "Filter By",
+ "users-found-search-took": "Rasta %1 vartotojas(-ai)! Paieška užtruko %2 sekundes.",
+ "filter-by": "Filtruoti pagal",
"online-only": "Online only",
- "picture-only": "Picture only"
+ "picture-only": "Tik paveikslėlis"
}
\ No newline at end of file
diff --git a/public/language/ms/error.json b/public/language/ms/error.json
index 340e4e528b..23958cf5de 100644
--- a/public/language/ms/error.json
+++ b/public/language/ms/error.json
@@ -18,7 +18,7 @@
"username-taken": "Username taken",
"email-taken": "Email taken",
"email-not-confirmed": "Your email has not been confirmed yet, please click here to confirm your email.",
- "email-not-confirmed-chat": "You are unable to chat until your email is confirmed",
+ "email-not-confirmed-chat": "You are unable to chat until your email is confirmed, please click here to confirm your email.",
"no-email-to-confirm": "This forum requires email confirmation, please click here to enter an email",
"email-confirm-failed": "We could not confirm your email, please try again later.",
"username-too-short": "Nama pengunna terlalu pendek",
diff --git a/public/language/ms/modules.json b/public/language/ms/modules.json
index dd206e5b24..9cae9f7b74 100644
--- a/public/language/ms/modules.json
+++ b/public/language/ms/modules.json
@@ -17,5 +17,6 @@
"chat.three_months": "3 Months",
"composer.user_said_in": "%1 said in %2:",
"composer.user_said": "%1 said:",
- "composer.discard": "Are you sure you wish to discard this post?"
+ "composer.discard": "Are you sure you wish to discard this post?",
+ "composer.submit_and_lock": "Submit and Lock"
}
\ No newline at end of file
diff --git a/public/language/ms/pages.json b/public/language/ms/pages.json
index dc7c0385e9..439217122f 100644
--- a/public/language/ms/pages.json
+++ b/public/language/ms/pages.json
@@ -14,6 +14,7 @@
"user.groups": "%1's Groups",
"user.favourites": "Mesej Kegemaran %1",
"user.settings": "Tetapan pengguna",
+ "user.watched": "Topics watched by %1",
"maintenance.text": "%1 is currently undergoing maintenance. Please come back another time.",
"maintenance.messageIntro": "Additionally, the administrator has left this message:"
}
\ No newline at end of file
diff --git a/public/language/ms/tags.json b/public/language/ms/tags.json
index aa9f14c70c..c416d8d4ec 100644
--- a/public/language/ms/tags.json
+++ b/public/language/ms/tags.json
@@ -1,7 +1,7 @@
{
"no_tag_topics": "There are no topics with this tag.",
"tags": "Tags",
- "enter_tags_here": "Enter tags here. %1-%2 characters. Press enter after each tag.",
+ "enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
"enter_tags_here_short": "Enter tags...",
"no_tags": "There are no tags yet."
}
\ No newline at end of file
diff --git a/public/language/ms/user.json b/public/language/ms/user.json
index 5b44dfc707..89969347e8 100644
--- a/public/language/ms/user.json
+++ b/public/language/ms/user.json
@@ -60,6 +60,7 @@
"digest_monthly": "Bulanan",
"send_chat_notifications": "Send an email if a new chat message arrives and I am not online",
"send_post_notifications": "Send an email when replies are made to topics I am subscribed to",
+ "settings-require-reload": "Some setting changes require a reload. Click here to reload the page.",
"has_no_follower": "Pengguna ini tiada pengikut :(",
"follows_no_one": "Pengguna ini tidak mengikuti sesiapa :(",
"has_no_posts": "Pengguna ini masih belum mengirim sebarang pos",
@@ -76,5 +77,6 @@
"enable_topic_searching": "Enable In-Topic Searching",
"topic_search_help": "If enabled, in-topic searching will override the browser's default page search behaviour and allow you to search through the entire topic, instead of what is only shown on screen.",
"follow_topics_you_reply_to": "Follow topics that you reply to.",
- "follow_topics_you_create": "Follow topics you create."
+ "follow_topics_you_create": "Follow topics you create.",
+ "grouptitle": "Select the group title you would like to display"
}
\ No newline at end of file
diff --git a/public/language/nb/category.json b/public/language/nb/category.json
index 75f38d0df0..f8afafe14a 100644
--- a/public/language/nb/category.json
+++ b/public/language/nb/category.json
@@ -1,6 +1,6 @@
{
"new_topic_button": "Nytt emne",
- "guest-login-post": "Log in to post",
+ "guest-login-post": "Logg inn til innlegg",
"no_topics": "Det er ingen emner i denne kategorien
Hvorfor ikke lage ett?",
"browsing": "leser",
"no_replies": "Ingen har svart",
diff --git a/public/language/nb/email.json b/public/language/nb/email.json
index 65e1accaee..37b5df85d0 100644
--- a/public/language/nb/email.json
+++ b/public/language/nb/email.json
@@ -9,9 +9,9 @@
"reset.text1": "Vi har blir bedt om å tilbakestille passordet ditt, muligens fordi du har glemt det. Hvis dette ikke stemmer kan du ignorere denne eposten.",
"reset.text2": "For å fortsette med tilbakestillingen, vennligst klikk på følgende lenke:",
"reset.cta": "Klikk her for å tilbakestille passordet ditt",
- "reset.notify.subject": "Password successfully changed",
- "reset.notify.text1": "We are notifying you that on %1, your password was changed successfully.",
- "reset.notify.text2": "If you did not authorise this, please notify an administrator immediately.",
+ "reset.notify.subject": "Passordet ble endret",
+ "reset.notify.text1": "Vi gir deg beskjed om at du endret passordet ditt den %1.",
+ "reset.notify.text2": "Hvis du ikke godkjenner dette, vennligst gi beskjed til en administrator omgående.",
"digest.notifications": "Du har uleste varsler fra %1:",
"digest.latest_topics": "Siste emner fra %1",
"digest.cta": "Klikk her for å besøke %1",
diff --git a/public/language/nb/error.json b/public/language/nb/error.json
index 2fe73f83a4..8706a9d569 100644
--- a/public/language/nb/error.json
+++ b/public/language/nb/error.json
@@ -18,9 +18,9 @@
"username-taken": "Brukernavn opptatt",
"email-taken": "E-post opptatt",
"email-not-confirmed": "E-posten din har ikke blitt bekreftet enda, vennligst klikk for å bekrefte din e-post.",
- "email-not-confirmed-chat": "Du kan ikke chatte før e-posten din har blitt bekreftet",
- "no-email-to-confirm": "This forum requires email confirmation, please click here to enter an email",
- "email-confirm-failed": "We could not confirm your email, please try again later.",
+ "email-not-confirmed-chat": "You are unable to chat until your email is confirmed, please click here to confirm your email.",
+ "no-email-to-confirm": "Dette forumet krever at e-postbekreftelse, vennligst klikk her for å skrive inn en e-post",
+ "email-confirm-failed": "Vi kunne ikke godkjenne e-posten din, vennligst prøv igjen senere.",
"username-too-short": "Brukernavnet er for kort",
"username-too-long": "Brukernavnet er for langt",
"user-banned": "Bruker utestengt",
@@ -35,7 +35,7 @@
"no-emailers-configured": "Ingen e-post-tillegg er lastet, så ingen test e-post kunne bli sendt",
"category-disabled": "Kategori deaktivert",
"topic-locked": "Emne låst",
- "post-edit-duration-expired": "You are only allowed to edit posts for %1 seconds after posting",
+ "post-edit-duration-expired": "Du har bare lov til å endre innlegg i %1 sekunder etter at det ble skrevet",
"still-uploading": "Vennligst vent til opplastingene blir fullført.",
"content-too-short": "Vennligst skriv et lengere innlegg. Innlegg må inneholde minst %1 tegn.",
"content-too-long": "Please enter a shorter post. Posts can't be longer than %1 characters.",
diff --git a/public/language/nb/groups.json b/public/language/nb/groups.json
index e837ac8961..6ff3a9b71f 100644
--- a/public/language/nb/groups.json
+++ b/public/language/nb/groups.json
@@ -4,8 +4,8 @@
"owner": "Gruppe-eier",
"new_group": "Opprett ny gruppe",
"no_groups_found": "Det er ingen grupper å se",
- "pending.accept": "Accept",
- "pending.reject": "Reject",
+ "pending.accept": "Aksepter",
+ "pending.reject": "Avslå",
"cover-instructions": "Dra og slipp et bilde, dra til posisjon, og trykk Lagre",
"cover-change": "Endre",
"cover-save": "Lagre",
@@ -15,20 +15,20 @@
"details.pending": "Ventende meldemmer",
"details.has_no_posts": "Medlemmene i denne gruppen har ikke skrevet noen innlegg.",
"details.latest_posts": "Seneste innlegg",
- "details.private": "Private",
- "details.grant": "Grant/Rescind Ownership",
- "details.kick": "Kick",
+ "details.private": "Privat",
+ "details.grant": "Gi/Opphev Eierskap",
+ "details.kick": "Kast ut",
"details.owner_options": "Gruppeadministrasjon",
- "details.group_name": "Group Name",
- "details.description": "Description",
- "details.badge_preview": "Badge Preview",
- "details.change_icon": "Change Icon",
- "details.change_colour": "Change Colour",
- "details.badge_text": "Badge Text",
- "details.userTitleEnabled": "Show Badge",
- "details.private_help": "If enabled, joining of groups requires approval from a group owner",
- "details.hidden": "Hidden",
- "details.hidden_help": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually",
+ "details.group_name": "Gruppenavn",
+ "details.description": "Beskrivelse",
+ "details.badge_preview": "Forhåndsvisning av skilt",
+ "details.change_icon": "Endre ikon",
+ "details.change_colour": "Endre farge",
+ "details.badge_text": "Skilt-tekst",
+ "details.userTitleEnabled": "Vis skilt",
+ "details.private_help": "Hvis aktivert, vil medlemskap i grupper kreve godkjennelse fra en gruppe-eier",
+ "details.hidden": "Skjult",
+ "details.hidden_help": "vis aktivert, vil denne gruppen ikke bli funnet i gruppelista, og brukere må inviteres manuellt",
"event.updated": "Gruppedetaljer har blitt oppgradert",
"event.deleted": "Gruppen \"%1\" har blitt slettet"
}
\ No newline at end of file
diff --git a/public/language/nb/login.json b/public/language/nb/login.json
index 2b51b10c6a..785a7defc4 100644
--- a/public/language/nb/login.json
+++ b/public/language/nb/login.json
@@ -1,7 +1,7 @@
{
- "username-email": "Username / Email",
- "username": "Username",
- "email": "Email",
+ "username-email": "Brukernavn / E-post",
+ "username": "Brukernavn",
+ "email": "E-post",
"remember_me": "Husk meg?",
"forgot_password": "Glemt passord?",
"alternative_logins": "Alternativ innlogging",
diff --git a/public/language/nb/modules.json b/public/language/nb/modules.json
index 83aae8d615..e5656f83d1 100644
--- a/public/language/nb/modules.json
+++ b/public/language/nb/modules.json
@@ -17,5 +17,6 @@
"chat.three_months": "3 måneder",
"composer.user_said_in": "%1 sa i %2: ",
"composer.user_said": "%1 sa: ",
- "composer.discard": "Er du sikker på at du vil forkaste dette innlegget?"
+ "composer.discard": "Er du sikker på at du vil forkaste dette innlegget?",
+ "composer.submit_and_lock": "Submit and Lock"
}
\ No newline at end of file
diff --git a/public/language/nb/pages.json b/public/language/nb/pages.json
index 1d657bd759..4f424ec5d6 100644
--- a/public/language/nb/pages.json
+++ b/public/language/nb/pages.json
@@ -14,6 +14,7 @@
"user.groups": "%1's Groups",
"user.favourites": "%1 sine favoritt-innlegg",
"user.settings": "Brukerinnstillinger",
+ "user.watched": "Topics watched by %1",
"maintenance.text": "%1 er for tiden under vedlikehold. Kom tilbake en annen gang.",
"maintenance.messageIntro": "I tillegg har administratoren skrevet denne meldingen:"
}
\ No newline at end of file
diff --git a/public/language/nb/search.json b/public/language/nb/search.json
index 74fdc462a6..2f06a88eb5 100644
--- a/public/language/nb/search.json
+++ b/public/language/nb/search.json
@@ -3,38 +3,38 @@
"no-matches": "Ingen matcher funnet",
"in": "I",
"by": "Av",
- "titles": "Titles",
- "titles-posts": "Titles and Posts",
+ "titles": "Titler",
+ "titles-posts": "Titler og innlegg",
"posted-by": "Skapt av",
- "in-categories": "In Categories",
- "search-child-categories": "Search child categories",
- "reply-count": "Reply Count",
- "at-least": "At least",
- "at-most": "At most",
- "post-time": "Post time",
- "newer-than": "Newer than",
- "older-than": "Older than",
- "any-date": "Any date",
- "yesterday": "Yesterday",
- "one-week": "One week",
- "two-weeks": "Two weeks",
- "one-month": "One month",
- "three-months": "Three months",
- "six-months": "Six months",
- "one-year": "One year",
- "sort-by": "Sort by",
- "last-reply-time": "Last reply time",
- "topic-title": "Topic title",
- "number-of-replies": "Number of replies",
- "number-of-views": "Number of views",
- "topic-start-date": "Topic start date",
- "username": "Username",
- "category": "Category",
+ "in-categories": "I kategorier",
+ "search-child-categories": "Søk underkategorier",
+ "reply-count": "Mengde svar",
+ "at-least": "Minst",
+ "at-most": "Maks",
+ "post-time": "Innlegg-tid",
+ "newer-than": "Nyere enn",
+ "older-than": "Eldre en",
+ "any-date": "Alle datoer",
+ "yesterday": "I går",
+ "one-week": "En uke",
+ "two-weeks": "To uker",
+ "one-month": "En måned ",
+ "three-months": "Tre måneder",
+ "six-months": "Seks måneder",
+ "one-year": "Ett år",
+ "sort-by": "Sorter etter",
+ "last-reply-time": "Sise svartid",
+ "topic-title": "Emne-tittel",
+ "number-of-replies": "Antall svar",
+ "number-of-views": "Antall visninger",
+ "topic-start-date": "Starttid for emne",
+ "username": "Brukernavn",
+ "category": "Kategori",
"descending": "In descending order",
"ascending": "In ascending order",
- "save-preferences": "Save preferences",
- "clear-preferences": "Clear preferences",
- "search-preferences-saved": "Search preferences saved",
- "search-preferences-cleared": "Search preferences cleared",
- "show-results-as": "Show results as"
+ "save-preferences": "Lagre innstillinger",
+ "clear-preferences": "Tøm innstillinnger",
+ "search-preferences-saved": "Søkeinnstillinger lagret",
+ "search-preferences-cleared": "Søkeinnstillinger tømt",
+ "show-results-as": "Vis resultateter som"
}
\ No newline at end of file
diff --git a/public/language/nb/tags.json b/public/language/nb/tags.json
index d38e00a025..5287b6125a 100644
--- a/public/language/nb/tags.json
+++ b/public/language/nb/tags.json
@@ -1,7 +1,7 @@
{
"no_tag_topics": "Det er ingen emnet med denne taggen.",
"tags": "Tagger",
- "enter_tags_here": "Enter tags here. %1-%2 characters. Press enter after each tag.",
+ "enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
"enter_tags_here_short": "Skriv tagger...",
"no_tags": "Det finnes ingen tagger enda."
}
\ No newline at end of file
diff --git a/public/language/nb/user.json b/public/language/nb/user.json
index f3e6523e25..c64972929d 100644
--- a/public/language/nb/user.json
+++ b/public/language/nb/user.json
@@ -60,6 +60,7 @@
"digest_monthly": "Månedlig",
"send_chat_notifications": "Send en epost hvis jeg mottar en chat-melding når jeg ikke er pålogget",
"send_post_notifications": "Send an email when replies are made to topics I am subscribed to",
+ "settings-require-reload": "Some setting changes require a reload. Click here to reload the page.",
"has_no_follower": "Denne brukeren har ingen følgere :(",
"follows_no_one": "Denne brukeren følger ingen :(",
"has_no_posts": "Denne brukeren har ikke skrevet noe enda.",
@@ -76,5 +77,6 @@
"enable_topic_searching": "Aktiver søk-i-emne",
"topic_search_help": "Hvis aktivert, vil i-emne-søk overstyre nettleseren sin standard sidesøk-oppførsel og tillate deg å søke gjennom hele emnet, i stedet for bare det som vises på skjermen.",
"follow_topics_you_reply_to": "Følg emner du svarer i.",
- "follow_topics_you_create": "Følg emner du oppretter."
+ "follow_topics_you_create": "Følg emner du oppretter.",
+ "grouptitle": "Select the group title you would like to display"
}
\ No newline at end of file
diff --git a/public/language/nl/category.json b/public/language/nl/category.json
index bee6530395..fe05622fbb 100644
--- a/public/language/nl/category.json
+++ b/public/language/nl/category.json
@@ -1,6 +1,6 @@
{
"new_topic_button": "Nieuw onderwerp",
- "guest-login-post": "Log in to post",
+ "guest-login-post": "Log in om een reactie te plaatsen",
"no_topics": "Er zijn geen onderwerpen in deze categorie.
Waarom maak je er niet een aan?",
"browsing": "verkennen",
"no_replies": "Niemand heeft gereageerd",
diff --git a/public/language/nl/email.json b/public/language/nl/email.json
index a1f26cd2ea..18d7ab4a97 100644
--- a/public/language/nl/email.json
+++ b/public/language/nl/email.json
@@ -9,9 +9,9 @@
"reset.text1": "Wij ontvingen een verzoek van u om uw wachtwoord te resetten. Als dat niet het geval is, kunt u deze mail negeren ",
"reset.text2": "Om uw wachtwoord te resetten, klik op de volgende link",
"reset.cta": "Klik hier om u wachtwoord te resetten",
- "reset.notify.subject": "Password successfully changed",
- "reset.notify.text1": "We are notifying you that on %1, your password was changed successfully.",
- "reset.notify.text2": "If you did not authorise this, please notify an administrator immediately.",
+ "reset.notify.subject": "Wachtwoord succesvol veranderd",
+ "reset.notify.text1": "Wij brengen u bij deze op de hoogte that uw wachtwoord succesvol is gewijzigd op %1.",
+ "reset.notify.text2": "Neem contact op met een administrator als u hier geen toestemming voor gegeven heeft.",
"digest.notifications": "U heeft ongelezen notificaties van %1:",
"digest.latest_topics": "De laatste onderwerpen van %1",
"digest.cta": "Klik hier om deze website te bezoeken %1 ",
@@ -20,8 +20,8 @@
"notif.chat.subject": "U heeft een chatbericht ontvangen van %1",
"notif.chat.cta": "Klik hier om het gesprek te hervatten",
"notif.chat.unsub.info": "Deze chat notificatie was verzonden naar jou vanwege je abbonement instellingen",
- "notif.post.cta": "Click here to read the full topic",
- "notif.post.unsub.info": "This post notification was sent to you due to your subscription settings.",
+ "notif.post.cta": "Klik hier om het volledige bericht te lezen",
+ "notif.post.unsub.info": "Deze bericht notificatie werd naar u verstuurd wegens uw abonnement instellingen.",
"test.text1": "Dit is een test email om te verifiëren dat de email service correct is opgezet voor jou NodeBB",
"unsub.cta": "Klik hier om u instellingen te wijzigen",
"closing": "Bedankt!"
diff --git a/public/language/nl/error.json b/public/language/nl/error.json
index de83d31255..e6be514a63 100644
--- a/public/language/nl/error.json
+++ b/public/language/nl/error.json
@@ -18,9 +18,9 @@
"username-taken": "Gebruikersnaam is al bezet",
"email-taken": "Email adres is al gebruikt",
"email-not-confirmed": "U email adres is niet bevestigd, Klik hier om uw email adres te bevestigen",
- "email-not-confirmed-chat": "You are unable to chat until your email is confirmed",
- "no-email-to-confirm": "This forum requires email confirmation, please click here to enter an email",
- "email-confirm-failed": "We could not confirm your email, please try again later.",
+ "email-not-confirmed-chat": "U kunt helaas geen gebruik maken van chats tot uw email adres bevestigd is.",
+ "no-email-to-confirm": "Dit forum vereist email bevestiging, klikt u alstublieft hier om uw email te vermelden",
+ "email-confirm-failed": "Uw email kon helaas niet bevestigd worden, probeert u het alstublieft later nog eens.",
"username-too-short": "Gebruikersnaam is te kort",
"username-too-long": "Gebruikersnaam is te lang",
"user-banned": "Gebruiker verbannen",
@@ -35,29 +35,29 @@
"no-emailers-configured": "Er zijn geen email plugins geladen, een test email kan dus niet verzonden worden",
"category-disabled": "Categorie uitgeschakeld",
"topic-locked": "Onderwerp gesloten",
- "post-edit-duration-expired": "You are only allowed to edit posts for %1 seconds after posting",
+ "post-edit-duration-expired": "Het is niet toegestaan om berichten aan te passen tot %1 seconden na het plaatsen",
"still-uploading": "Heb even geduld totdat de alle bestanden geüpload zijn",
- "content-too-short": "Maak de bericht alsjeblieft wat langer. Op z'n minst %1 karakters",
- "content-too-long": "Please enter a shorter post. Posts can't be longer than %1 characters.",
+ "content-too-short": "Maak de bericht alstublieft wat langer. Op z'n minst %1 karakters",
+ "content-too-long": "Maakt u het bericht alstublieft wat korter. Berichten mogen niet langer zijn dan %1 karakters.",
"title-too-short": "Maak de titel wat langer. Op z'n minst %1 karakters",
"title-too-long": "Maak de titel wat korter. Het kan niet langer zijn dan %1 karakters",
"too-many-posts": "Je kan eens in de %1 seconden een bericht aanmaken. Wacht alstublieft.",
"too-many-posts-newbie": "Als een nieuwe gebruiker kan je maar om de %1 seconden een bericht plaatsen vanwege je reputatie. Uw moet deze level van reputatie verdienen %2. Wacht alstublieft met het plaatsen van uw bericht.",
- "tag-too-short": "Please enter a longer tag. Tags should contain at least %1 characters",
- "tag-too-long": "Please enter a shorter tag. Tags can't be longer than %1 characters",
+ "tag-too-short": "Maakt u alstublieft de tag iets langer. Tags dienen minimaal %1 karakters te bevatten",
+ "tag-too-long": "Maakt u alstublieft de tag iets korter. Tags mogen maximaal %1 karakters bevatten",
"file-too-big": "De maximale bestandsgrootte is %1 kbs",
"cant-vote-self-post": "Je kan niet op je eigen berichten stemmen",
"already-favourited": "U heeft al dit bericht in uw favorieten staan",
"already-unfavourited": "U heeft al dit bericht uit uw favorieten gehaald",
"cant-ban-other-admins": "U kunt niet de andere admins bannen!",
- "invalid-image-type": "Invalid image type. Allowed types are: %1",
- "invalid-image-extension": "Invalid image extension",
- "invalid-file-type": "Invalid file type. Allowed types are: %1",
+ "invalid-image-type": "Dit foto bestandstype is niet toegestaan. Toegestane foto bestandstypen zijn: %1",
+ "invalid-image-extension": "Ongeldige foto bestandsextensie",
+ "invalid-file-type": "Dit bestandstype is niet toegestaan. Toegestane bestandstypen zijn: %1",
"group-name-too-short": "De groepsnaam is te kort",
"group-already-exists": "Deze groep bestaat al",
"group-name-change-not-allowed": "Het veranderen van de groepsnaam is niet toegestaan!",
- "group-already-member": "You are already part of this group",
- "group-needs-owner": "This group requires at least one owner",
+ "group-already-member": "U bent al lid van deze groep",
+ "group-needs-owner": "Deze groep vereist minimaal 1 eigenaar",
"post-already-deleted": "Dit bericht is al verwijderd",
"post-already-restored": "Dit bericht is al hersteld",
"topic-already-deleted": "Deze topic is al verwijderd",
@@ -68,14 +68,14 @@
"signature-too-long": "Sorry, maar deze handtekening kan niet groter zijn dan %1 karakters!",
"cant-chat-with-yourself": "Je kan niet met jezelf chatten!",
"chat-restricted": "Deze gebruiker heeft beperkingen gelegd op chatfunctie. Hun moeten jouw volgen voordat je met hun kan chatten",
- "too-many-messages": "You have sent too many messages, please wait awhile.",
+ "too-many-messages": "U heeft teveel berichten verstuurd in een korte tijd. Wacht u alstublieft even.",
"reputation-system-disabled": "Reputatie systeem is uitgeschakeld",
"downvoting-disabled": "Downvoten is uitgeschakeld",
"not-enough-reputation-to-downvote": "U heeft niet de benodigde reputatie om dit bericht te downvoten",
"not-enough-reputation-to-flag": "U heeft niet de benodigde reputatie om dit bericht te melden aan de admins",
"reload-failed": "NodeBB heeft een probleem geconstateerd tijdens het laden van: \"%1\".\nNodeBB blijft verder draaien. Het is wel verstandig om de actie wat u daarvoor heeft gedaan ongedaan te maken door te herladen.",
"registration-error": "Registratie fout",
- "parse-error": "Something went wrong while parsing server response",
- "wrong-login-type-email": "Please use your email to login",
- "wrong-login-type-username": "Please use your username to login"
+ "parse-error": "Er is iets fout gegaan tijdens het parsen van de server response",
+ "wrong-login-type-email": "Gebruikt u alstublieft uw email om in te loggen",
+ "wrong-login-type-username": "Gebruikt u alstublieft uw gebruikersnaam om in te loggen"
}
\ No newline at end of file
diff --git a/public/language/nl/global.json b/public/language/nl/global.json
index 84899903b0..bea96ad2b4 100644
--- a/public/language/nl/global.json
+++ b/public/language/nl/global.json
@@ -3,10 +3,10 @@
"search": "Zoeken",
"buttons.close": "Sluiten",
"403.title": "Toegang Geweigerd",
- "403.message": "You seem to have stumbled upon a page that you do not have access to.",
- "403.login": "Perhaps you should try logging in?",
+ "403.message": "Het lijkt er op dat u op een pagina bent beland waar u geen toegang tot heeft.",
+ "403.login": "Misschien moet u proberen in te loggen?",
"404.title": "Niet Gevonden",
- "404.message": "You seem to have stumbled upon a page that does not exist. Return to the home page.",
+ "404.message": "Het lijkt er op dat u op een pagina bent beland die niet bestaat. Ga terug naar de home pagina.",
"500.title": "Interne fout.",
"500.message": "Oeps! Het lijkt erop dat iets is fout gegaan!",
"register": "Registeren",
@@ -27,7 +27,7 @@
"header.tags": "Tags",
"header.popular": "Populair",
"header.users": "Gebruikers",
- "header.groups": "Groups",
+ "header.groups": "Groepen",
"header.chats": "Chats",
"header.notifications": "Notificaties",
"header.search": "Zoeken",
@@ -75,7 +75,7 @@
"updated.title": "Forum geüpdatet",
"updated.message": "Dit forum is zojuist geüpdatet naar de laatste versie. Klik hier om de pagina te verversen",
"privacy": "Privé",
- "follow": "Follow",
- "unfollow": "Unfollow",
+ "follow": "Volgen",
+ "unfollow": "Ontvolgen",
"delete_all": "Alles verwijderen"
}
\ No newline at end of file
diff --git a/public/language/nl/groups.json b/public/language/nl/groups.json
index 9fe5c00975..67f21acd2b 100644
--- a/public/language/nl/groups.json
+++ b/public/language/nl/groups.json
@@ -3,32 +3,32 @@
"view_group": "Bekijk Groep",
"owner": "Groep eigenaar",
"new_group": "Maak een nieuwe groep",
- "no_groups_found": "There are no groups to see",
- "pending.accept": "Accept",
- "pending.reject": "Reject",
- "cover-instructions": "Drag and Drop a photo, drag to position, and hit Save",
- "cover-change": "Change",
+ "no_groups_found": "Er zijn geen groepen om weer te geven",
+ "pending.accept": "Accepteer",
+ "pending.reject": "Afwijzen",
+ "cover-instructions": "Sleep een foto, positioneer en klik op Opslaan",
+ "cover-change": "Aanpassen",
"cover-save": "Opslaan",
"cover-saving": "Bezig met opslaan",
"details.title": "Groep Details",
"details.members": "Ledenlijst",
- "details.pending": "Pending Members",
+ "details.pending": "Afwachtende leden",
"details.has_no_posts": "Deze groepleden hebben nog geen berichten geplaatst",
"details.latest_posts": "Nieuwste Berichten",
- "details.private": "Private",
- "details.grant": "Grant/Rescind Ownership",
- "details.kick": "Kick",
- "details.owner_options": "Group Administration",
- "details.group_name": "Group Name",
- "details.description": "Description",
- "details.badge_preview": "Badge Preview",
- "details.change_icon": "Change Icon",
- "details.change_colour": "Change Colour",
- "details.badge_text": "Badge Text",
- "details.userTitleEnabled": "Show Badge",
- "details.private_help": "If enabled, joining of groups requires approval from a group owner",
- "details.hidden": "Hidden",
- "details.hidden_help": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually",
- "event.updated": "Group details have been updated",
- "event.deleted": "The group \"%1\" has been deleted"
+ "details.private": "Prive",
+ "details.grant": "Toekennen/Herroepen van eigenaarschap",
+ "details.kick": "Verwijder",
+ "details.owner_options": "Groeps Administratie",
+ "details.group_name": "Groepsnaam",
+ "details.description": "Beschrijving",
+ "details.badge_preview": "Badge Voorvertoning",
+ "details.change_icon": "Icoon veranderen",
+ "details.change_colour": "Kleur veranderen",
+ "details.badge_text": "Badge tekst",
+ "details.userTitleEnabled": "Badge tonen",
+ "details.private_help": "Indien geactiveerd, zal er goedkeuring moeten worden verleend door een groepseigenaar voor het toetreden van groepen",
+ "details.hidden": "Verborgen",
+ "details.hidden_help": "Indien geactiveerd zal deze groep niet getoond worden in de groepslijst en zullen gebruikers handmatig uitgenodigd moeten worden.",
+ "event.updated": "Groepsdetails zijn geupdate",
+ "event.deleted": "De groep \"%1\" is verwijderd"
}
\ No newline at end of file
diff --git a/public/language/nl/login.json b/public/language/nl/login.json
index ec75667e86..fa1c5bf8eb 100644
--- a/public/language/nl/login.json
+++ b/public/language/nl/login.json
@@ -1,6 +1,6 @@
{
- "username-email": "Username / Email",
- "username": "Username",
+ "username-email": "Gebruikersnaam / Email",
+ "username": "Gebruikersnaam",
"email": "Email",
"remember_me": "Mij Onthouden?",
"forgot_password": "Wachtwoord Vergeten?",
diff --git a/public/language/nl/modules.json b/public/language/nl/modules.json
index 18daffd434..4feffb4096 100644
--- a/public/language/nl/modules.json
+++ b/public/language/nl/modules.json
@@ -17,5 +17,6 @@
"chat.three_months": "3 Maanden",
"composer.user_said_in": "%1 zegt in %2:",
"composer.user_said": "%1 zegt:",
- "composer.discard": "Weet u het zeker dat u dit bericht niet wilt plaatsen?"
+ "composer.discard": "Weet u het zeker dat u dit bericht niet wilt plaatsen?",
+ "composer.submit_and_lock": "Plaatsen en vergrendelen"
}
\ No newline at end of file
diff --git a/public/language/nl/notifications.json b/public/language/nl/notifications.json
index f0dc76c27f..4e5a599896 100644
--- a/public/language/nl/notifications.json
+++ b/public/language/nl/notifications.json
@@ -2,7 +2,7 @@
"title": "Notificaties",
"no_notifs": "Je hebt geen nieuwe notificaties",
"see_all": "Bekijk alle Notificaties",
- "mark_all_read": "Mark all notifications read",
+ "mark_all_read": "Markeer alle meldingen als gelezen",
"back_to_home": "Terug naar %1",
"outgoing_link": "Uitgaande Link",
"outgoing_link_message": "Je verlaat nu %1",
diff --git a/public/language/nl/pages.json b/public/language/nl/pages.json
index 09cda815b9..3f6abeb9af 100644
--- a/public/language/nl/pages.json
+++ b/public/language/nl/pages.json
@@ -11,9 +11,10 @@
"user.followers": "Mensen die %1 Volgen",
"user.posts": "Berichten geplaatst door %1",
"user.topics": "Topics gecreëerd door %1",
- "user.groups": "%1's Groups",
+ "user.groups": "%1's groepen",
"user.favourites": "%1's Favoriete Berichten",
"user.settings": "Gebruikersinstellingen",
+ "user.watched": "Berichten die worden bekeken door %1",
"maintenance.text": "%1 is momenteel in onderhoud modus. Probeer later opnieuw",
"maintenance.messageIntro": "daarnaast heeft de administrator het volgende bericht achtergelaten:"
}
\ No newline at end of file
diff --git a/public/language/nl/recent.json b/public/language/nl/recent.json
index e2f3471de6..887a149da0 100644
--- a/public/language/nl/recent.json
+++ b/public/language/nl/recent.json
@@ -6,14 +6,14 @@
"year": "Jaar",
"alltime": "Intussen",
"no_recent_topics": "Er zijn geen recente reacties.",
- "no_popular_topics": "There are no popular topics.",
+ "no_popular_topics": "Er zijn geen populaire onderwerpen.",
"there-is-a-new-topic": "Er is een nieuw onderwerp",
- "there-is-a-new-topic-and-a-new-post": "There is a new topic and a new post.",
+ "there-is-a-new-topic-and-a-new-post": "Er is een nieuw onderwerp en een nieuw bericht.",
"there-is-a-new-topic-and-new-posts": "Er is een nieuwe onderwerp en %1 nieuwe berichten",
"there-are-new-topics": "Er zijn %1 nieuwe onderwerpen",
- "there-are-new-topics-and-a-new-post": "There are %1 new topics and a new post.",
- "there-are-new-topics-and-new-posts": "There are %1 new topics and %2 new posts.",
- "there-is-a-new-post": "There is a new post.",
- "there-are-new-posts": "There are %1 new posts.",
- "click-here-to-reload": "Click here to reload."
+ "there-are-new-topics-and-a-new-post": "Er zijn %1 nieuwe onderwerpen en een nieuw bericht.",
+ "there-are-new-topics-and-new-posts": "Er zijn %1 nieuwe onderwerpen en %2 nieuwe berichten.",
+ "there-is-a-new-post": "Er is een nieuw bericht.",
+ "there-are-new-posts": "Er zijn %1 nieuwe berichten.",
+ "click-here-to-reload": "Klik hier om te herladen."
}
\ No newline at end of file
diff --git a/public/language/nl/reset_password.json b/public/language/nl/reset_password.json
index 2bac7d3849..1813eab2fe 100644
--- a/public/language/nl/reset_password.json
+++ b/public/language/nl/reset_password.json
@@ -11,6 +11,6 @@
"enter_email_address": "Vul uw Email Adres in",
"password_reset_sent": "Wachtwoord Reset Verzonden",
"invalid_email": "Fout Email Adres / Email Adres bestaat niet!",
- "password_too_short": "The password entered is too short, please pick a different password.",
- "passwords_do_not_match": "The two passwords you've entered do not match."
+ "password_too_short": "Het ingegeven wachtwoord is te kort. Kiest u alstublieft een ander wachtwoord.",
+ "passwords_do_not_match": "De twee wachtwoorden die u heeft ingegeven komen niet overeen."
}
\ No newline at end of file
diff --git a/public/language/nl/search.json b/public/language/nl/search.json
index 756a0ef3a7..c104ef95d3 100644
--- a/public/language/nl/search.json
+++ b/public/language/nl/search.json
@@ -3,38 +3,38 @@
"no-matches": "Geen matches gevonden",
"in": "in",
"by": "door",
- "titles": "Titles",
- "titles-posts": "Titles and Posts",
- "posted-by": "Posted by",
- "in-categories": "In Categories",
- "search-child-categories": "Search child categories",
- "reply-count": "Reply Count",
- "at-least": "At least",
- "at-most": "At most",
- "post-time": "Post time",
- "newer-than": "Newer than",
- "older-than": "Older than",
- "any-date": "Any date",
- "yesterday": "Yesterday",
- "one-week": "One week",
- "two-weeks": "Two weeks",
- "one-month": "One month",
- "three-months": "Three months",
- "six-months": "Six months",
- "one-year": "One year",
- "sort-by": "Sort by",
- "last-reply-time": "Last reply time",
- "topic-title": "Topic title",
- "number-of-replies": "Number of replies",
- "number-of-views": "Number of views",
- "topic-start-date": "Topic start date",
- "username": "Username",
- "category": "Category",
- "descending": "In descending order",
- "ascending": "In ascending order",
- "save-preferences": "Save preferences",
- "clear-preferences": "Clear preferences",
- "search-preferences-saved": "Search preferences saved",
- "search-preferences-cleared": "Search preferences cleared",
- "show-results-as": "Show results as"
+ "titles": "Titels",
+ "titles-posts": "Titels en Berichten",
+ "posted-by": "Geplaatst door",
+ "in-categories": "In categorieën",
+ "search-child-categories": "Doorzoek sub categorieën ",
+ "reply-count": "Aantal reacties",
+ "at-least": "Minimaal",
+ "at-most": "Maximaal",
+ "post-time": "Tijd van plaatsing",
+ "newer-than": "Nieuwer dan",
+ "older-than": "Ouder dan",
+ "any-date": "Iedere datum",
+ "yesterday": "Gisteren",
+ "one-week": "Eén week",
+ "two-weeks": "Twee weken",
+ "one-month": "Eén maand",
+ "three-months": "Drie maanden",
+ "six-months": "Zes maanden",
+ "one-year": "Eén jaar",
+ "sort-by": "Gesorteerd op",
+ "last-reply-time": "Laatste keer geantwoord",
+ "topic-title": "Onderwerp",
+ "number-of-replies": "Aantal antwoorden",
+ "number-of-views": "Aantal weergaven",
+ "topic-start-date": "Onderwerp aanmaakdatum",
+ "username": "Gebruikersnaam",
+ "category": "Categorie",
+ "descending": "In aflopende volgorde",
+ "ascending": "In oplopende volgorde",
+ "save-preferences": "Bewaar voorkeuren",
+ "clear-preferences": "Voorkeuren verwijderen",
+ "search-preferences-saved": "Zoek voorkeuren opgeslagen",
+ "search-preferences-cleared": "Zoek voorkeuren verwijderd",
+ "show-results-as": "Toon resultaten als"
}
\ No newline at end of file
diff --git a/public/language/nl/tags.json b/public/language/nl/tags.json
index 85c11b0476..ec028f3248 100644
--- a/public/language/nl/tags.json
+++ b/public/language/nl/tags.json
@@ -1,7 +1,7 @@
{
"no_tag_topics": "Er zijn geen onderwerpen met deze tag",
"tags": "Tags",
- "enter_tags_here": "Enter tags here. %1-%2 characters. Press enter after each tag.",
+ "enter_tags_here": "Voegt u hier tags toe, tussen de %1 en %2 karakters per stuk.",
"enter_tags_here_short": "Voer uw tags in...",
"no_tags": "Er zijn nog geen tags te vinden"
}
\ No newline at end of file
diff --git a/public/language/nl/topic.json b/public/language/nl/topic.json
index 5f9250bea4..35679bccfd 100644
--- a/public/language/nl/topic.json
+++ b/public/language/nl/topic.json
@@ -12,7 +12,7 @@
"notify_me": "Krijg notificaties van nieuwe reacties op dit onderwerp",
"quote": "Citeren",
"reply": "Reageren",
- "guest-login-reply": "Log in to reply",
+ "guest-login-reply": "Log in om een reactie te plaatsen",
"edit": "Aanpassen",
"delete": "Verwijderen",
"purge": "weggooien",
diff --git a/public/language/nl/user.json b/public/language/nl/user.json
index 0cc9df6cbe..6726bf11ba 100644
--- a/public/language/nl/user.json
+++ b/public/language/nl/user.json
@@ -3,7 +3,7 @@
"offline": "Offline",
"username": "Gebruikersnaam",
"joindate": "Datum van registratie",
- "postcount": "Post Count",
+ "postcount": "Aantal geplaatste berichten",
"email": "Email",
"confirm_email": "Bevestig uw email adres",
"delete_account": "Account Verwijderen",
@@ -18,7 +18,7 @@
"profile_views": "Profiel weergaven",
"reputation": "Reputatie",
"favourites": "Favorieten",
- "watched": "Watched",
+ "watched": "Bekeken",
"followers": "Volgers",
"following": "Volgend",
"signature": "Handtekening",
@@ -59,12 +59,13 @@
"digest_weekly": "Weekelijks",
"digest_monthly": "Maandelijks",
"send_chat_notifications": "Verstuur mij een email als iemand een chatbericht stuurt terwijl ik niet online ben",
- "send_post_notifications": "Send an email when replies are made to topics I am subscribed to",
+ "send_post_notifications": "Stuur een email als er een reactie wordt geplaatst in een topic waarop ik geabonneerd ben",
+ "settings-require-reload": "Sommige veranderingen vereisen het om de pagina te herladen. Klik hier om te herladen.",
"has_no_follower": "Deze gebruiker heeft geen volgers :(",
"follows_no_one": "Deze gebruiker volgt niemand :(",
"has_no_posts": "Deze gebruiker heeft nog geen berichten geplaatst",
"has_no_topics": "Deze gebruiker heeft nog geen berichten geplaatst",
- "has_no_watched_topics": "This user didn't watch any topics yet.",
+ "has_no_watched_topics": "Deze gebruiker heeft nog geen berichten bekeken",
"email_hidden": "Email Verborgen",
"hidden": "verborgen",
"paginate_description": "Blader door onderwerpen en berichten in plaats van oneindig scrollen.",
@@ -76,5 +77,6 @@
"enable_topic_searching": "Zet zoeken in het onderwerp aan",
"topic_search_help": "Als het is ingeschakeld, dan zal het standaard zoeken overschrijven en zal je vanaf nu het gehele onderwerp kunnen doorzoeken ipv wat je standaard ziet.",
"follow_topics_you_reply_to": "Volg de onderwerpen waarop u gereageerd heeft.",
- "follow_topics_you_create": "Volg de onderwerpen die u gecreëerd heeft."
+ "follow_topics_you_create": "Volg de onderwerpen die u gecreëerd heeft.",
+ "grouptitle": "Selecteer de groepstitel die u wilt weergeven "
}
\ No newline at end of file
diff --git a/public/language/nl/users.json b/public/language/nl/users.json
index 315b86fe31..93e723d7b1 100644
--- a/public/language/nl/users.json
+++ b/public/language/nl/users.json
@@ -5,7 +5,7 @@
"search": "Zoeken",
"enter_username": "Vul een gebruikersnaam in om te zoeken",
"load_more": "Meer Laden",
- "users-found-search-took": "%1 user(s) found! Search took %2 seconds.",
+ "users-found-search-took": "%1 gebruiker(s) gevonden! Zoekactie duurde %2 seconden.",
"filter-by": "Filter op",
"online-only": "Online ",
"picture-only": "Alleen een afbeelding"
diff --git a/public/language/pl/error.json b/public/language/pl/error.json
index c967749eeb..e8f8f3dcdf 100644
--- a/public/language/pl/error.json
+++ b/public/language/pl/error.json
@@ -18,7 +18,7 @@
"username-taken": "Login zajęty.",
"email-taken": "E-mail zajęty.",
"email-not-confirmed": "Twój email nie został jeszcze potwierdzony. Proszę kliknąć tutaj by go potwierdzić.",
- "email-not-confirmed-chat": "Nie możesz rozmawiać do czasu, gdy twój email zostanie potwierdzony.",
+ "email-not-confirmed-chat": "You are unable to chat until your email is confirmed, please click here to confirm your email.",
"no-email-to-confirm": "To forum wymaga weryfikacji przez email. Proszę kliknąć tutaj, aby wprowadzić adres.",
"email-confirm-failed": "Nie byliśmy w stanie potwierdzić twojego email-a. Proszę spróbować później.",
"username-too-short": "Nazwa użytkownika za krótka.",
diff --git a/public/language/pl/modules.json b/public/language/pl/modules.json
index af44c3ab51..f4a7f34c86 100644
--- a/public/language/pl/modules.json
+++ b/public/language/pl/modules.json
@@ -17,5 +17,6 @@
"chat.three_months": "3 miesiące",
"composer.user_said_in": "%1 powiedział w %2:",
"composer.user_said": "%1 powiedział:",
- "composer.discard": "Na pewno chcesz porzucić ten post?"
+ "composer.discard": "Na pewno chcesz porzucić ten post?",
+ "composer.submit_and_lock": "Submit and Lock"
}
\ No newline at end of file
diff --git a/public/language/pl/pages.json b/public/language/pl/pages.json
index 7f71ba388a..91e9e5efe4 100644
--- a/public/language/pl/pages.json
+++ b/public/language/pl/pages.json
@@ -14,6 +14,7 @@
"user.groups": "Grupy %1",
"user.favourites": "Ulubione posty %1",
"user.settings": "Ustawienia użytkownika",
+ "user.watched": "Topics watched by %1",
"maintenance.text": "Obecnie trwają prace konserwacyjne nad %1. Proszę wrócić później.",
"maintenance.messageIntro": "Dodatkowo, administrator zostawił wiadomość:"
}
\ No newline at end of file
diff --git a/public/language/pl/tags.json b/public/language/pl/tags.json
index 3036b34e62..a2247f39e7 100644
--- a/public/language/pl/tags.json
+++ b/public/language/pl/tags.json
@@ -1,7 +1,7 @@
{
"no_tag_topics": "Nie ma tematów z tym tagiem",
"tags": "Tagi",
- "enter_tags_here": "Tutaj wpisz tagi. %1-%2 znaków. Naciśnij enter po każdym.",
+ "enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
"enter_tags_here_short": "Wpisz tagi...",
"no_tags": "Jeszcze nie ma tagów."
}
\ No newline at end of file
diff --git a/public/language/pl/user.json b/public/language/pl/user.json
index e28e3f637f..b0c031f94c 100644
--- a/public/language/pl/user.json
+++ b/public/language/pl/user.json
@@ -60,6 +60,7 @@
"digest_monthly": "Co miesiąc",
"send_chat_notifications": "Wyślij e-maila, jeśli dostanę nową wiadomość, a nie jestem on-line",
"send_post_notifications": "Wyślij e-maila, kiedy wątki, które subskrybuję otrzymają odpowiedź",
+ "settings-require-reload": "Some setting changes require a reload. Click here to reload the page.",
"has_no_follower": "Ten użytkownik nie ma jeszcze żadnych obserwujących",
"follows_no_one": "Użytkownik jeszcze nikogo nie obsweruje.",
"has_no_posts": "Użytkownik nie napisał jeszcze żadnych postów.",
@@ -76,5 +77,6 @@
"enable_topic_searching": "Odblokuj szukanie w wątku",
"topic_search_help": "Jeśli odblokowane, szukanie w wątku zastąpi domyślną funkcję szukania przeglądarki, pozwalając na wyszukiwanie fraz tylko w wątku, a nie na całej stronie.",
"follow_topics_you_reply_to": "Śledź tematy, w których piszesz.",
- "follow_topics_you_create": "Śledź swoje tematy."
+ "follow_topics_you_create": "Śledź swoje tematy.",
+ "grouptitle": "Select the group title you would like to display"
}
\ No newline at end of file
diff --git a/public/language/pt_BR/category.json b/public/language/pt_BR/category.json
index a781984e16..7dc608219f 100644
--- a/public/language/pt_BR/category.json
+++ b/public/language/pt_BR/category.json
@@ -1,6 +1,6 @@
{
"new_topic_button": "Novo Tópico",
- "guest-login-post": "Log in to post",
+ "guest-login-post": "Logue-se para postar",
"no_topics": "Não tem nenhum tópico nesta categoria.
Por que você não tenta postar o algum?",
"browsing": "navegando",
"no_replies": "Ninguém respondeu",
diff --git a/public/language/pt_BR/error.json b/public/language/pt_BR/error.json
index 359f3c654a..cb218a3d43 100644
--- a/public/language/pt_BR/error.json
+++ b/public/language/pt_BR/error.json
@@ -18,9 +18,9 @@
"username-taken": "Nome de usuário já existe",
"email-taken": "Email já cadastrado",
"email-not-confirmed": "O seu email ainda não foi confirmado, por favor clique aqui para confirmar seu email.",
- "email-not-confirmed-chat": "Você não pode usar o chat até que seu email seja confirmado",
- "no-email-to-confirm": "This forum requires email confirmation, please click here to enter an email",
- "email-confirm-failed": "We could not confirm your email, please try again later.",
+ "email-not-confirmed-chat": "You are unable to chat until your email is confirmed, please click here to confirm your email.",
+ "no-email-to-confirm": "Este fórum exige confirmação de email, por gentileza clique aqui para digitar um email",
+ "email-confirm-failed": "Nós não pudemos confirmar seu email, por gentileza tente novamente mais tarde.",
"username-too-short": "Nome de usuário muito curto",
"username-too-long": "Nome de usuário muito longo",
"user-banned": "Usuário banido",
@@ -35,7 +35,7 @@
"no-emailers-configured": "Nenhum plugin de email foi carregado, por isso um email de teste não pôde ser enviado",
"category-disabled": "Categoria desativada",
"topic-locked": "Tópico Trancado",
- "post-edit-duration-expired": "You are only allowed to edit posts for %1 seconds after posting",
+ "post-edit-duration-expired": "Você pode editar posts por %1 segundos após postar",
"still-uploading": "Aguarde a conclusão dos uploads.",
"content-too-short": "Por favor digite um post mais longo. Posts devem conter no mínimo %1 caracteres.",
"content-too-long": "Por favor entre com um post mais curto. Posts não podem ser maiores do que %1 caracteres.",
@@ -43,8 +43,8 @@
"title-too-long": "Por favor entre com um título mais curto; Títulos não podem ser maiores que %1 caracteres.",
"too-many-posts": "Você pode postar apenas uma vez a cada %1 segundos - por favor aguarde antes de postar novamente",
"too-many-posts-newbie": "Como novo usuário, você pode postar apenas uma vez a cada %1 segundos até que você tenha recebido reputação de %2 - por favor aguarde antes de postar novamente",
- "tag-too-short": "Please enter a longer tag. Tags should contain at least %1 characters",
- "tag-too-long": "Please enter a shorter tag. Tags can't be longer than %1 characters",
+ "tag-too-short": "Por favor digite uma tag mais longa. Tags devem conter pelo menos %1 caracteres",
+ "tag-too-long": "Por favor digite uma tag mais curta. Tags não podem ter mais do que %1 caracteres",
"file-too-big": "O tamanho máximo permitido de arquivo é %1 kbs - por favor faça upload de um arquivo menor",
"cant-vote-self-post": "Você não pode votar no seu próprio post",
"already-favourited": "Você já adicionou este post aos favoritos",
@@ -52,7 +52,7 @@
"cant-ban-other-admins": "Você não pode banir outros administradores!",
"invalid-image-type": "Tipo inválido de imagem. Os tipos permitidos são: %1",
"invalid-image-extension": "Extensão de imagem inválida",
- "invalid-file-type": "Invalid file type. Allowed types are: %1",
+ "invalid-file-type": "Tipo de arquivo inválido. Os tipos permitidos são: %1",
"group-name-too-short": "Nome do grupo é muito curto",
"group-already-exists": "O grupo já existe",
"group-name-change-not-allowed": "Sem permissão para alterar nome do grupo",
@@ -76,6 +76,6 @@
"reload-failed": "O NodeBB encontrou um problema ao recarregar: \"%1\". O NodeBB continuará a servir os assets existentes no lado do cliente, apesar de que você deve desfazer o que você fez antes de recarregar.",
"registration-error": "Erro de Cadastro",
"parse-error": "Algo deu errado ao conseguir resposta do servidor",
- "wrong-login-type-email": "Please use your email to login",
- "wrong-login-type-username": "Please use your username to login"
+ "wrong-login-type-email": "Por favor use seu email para se logar",
+ "wrong-login-type-username": "Por favor use o seu nome de usuário para se logar"
}
\ No newline at end of file
diff --git a/public/language/pt_BR/groups.json b/public/language/pt_BR/groups.json
index a9e9efa321..2246818345 100644
--- a/public/language/pt_BR/groups.json
+++ b/public/language/pt_BR/groups.json
@@ -4,8 +4,8 @@
"owner": "Dono do Grupo",
"new_group": "Criar Novo Grupo",
"no_groups_found": "Não há grupos para ver",
- "pending.accept": "Accept",
- "pending.reject": "Reject",
+ "pending.accept": "Aceitar",
+ "pending.reject": "Rejeitar",
"cover-instructions": "Arraste uma foto, arraste para a posição correta e clique em Salvar",
"cover-change": "Alterar",
"cover-save": "Salvar",
@@ -15,20 +15,20 @@
"details.pending": "Membros Pendentes",
"details.has_no_posts": "Os membros deste grupo não fizeram quaisquer posts.",
"details.latest_posts": "Últimos Posts",
- "details.private": "Private",
+ "details.private": "Particular",
"details.grant": "Conceder/Retomar a Posse",
"details.kick": "Chutar",
"details.owner_options": "Administração do Grupo",
- "details.group_name": "Group Name",
- "details.description": "Description",
- "details.badge_preview": "Badge Preview",
- "details.change_icon": "Change Icon",
- "details.change_colour": "Change Colour",
- "details.badge_text": "Badge Text",
- "details.userTitleEnabled": "Show Badge",
- "details.private_help": "If enabled, joining of groups requires approval from a group owner",
- "details.hidden": "Hidden",
- "details.hidden_help": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually",
+ "details.group_name": "Nome do Grupo",
+ "details.description": "Descrição",
+ "details.badge_preview": "Visualização do Distintivo",
+ "details.change_icon": "Mudar Ícone",
+ "details.change_colour": "Mudar Cor",
+ "details.badge_text": "Texto do Distintivo",
+ "details.userTitleEnabled": "Mostrar Distintivo",
+ "details.private_help": "Se habilitado, a entrada nos grupos requer aprovação de um dos donos do grupo",
+ "details.hidden": "Oculto",
+ "details.hidden_help": "Se habilitado, este grupo não se encontrará na listagem de grupos e os usuários terão de ser convivados manualmente",
"event.updated": "Os detalhes do grupo foram atualizados",
"event.deleted": "O grupo \"%1\" foi deletado"
}
\ No newline at end of file
diff --git a/public/language/pt_BR/login.json b/public/language/pt_BR/login.json
index 9b267d8d9c..7b8299af75 100644
--- a/public/language/pt_BR/login.json
+++ b/public/language/pt_BR/login.json
@@ -1,6 +1,6 @@
{
- "username-email": "Username / Email",
- "username": "Username",
+ "username-email": "Nome de usuário / Email",
+ "username": "Nome de usuário",
"email": "Email",
"remember_me": "Lembrar de Mim?",
"forgot_password": "Esqueceu a Senha?",
diff --git a/public/language/pt_BR/modules.json b/public/language/pt_BR/modules.json
index 78dbe3d9d8..c899137cd6 100644
--- a/public/language/pt_BR/modules.json
+++ b/public/language/pt_BR/modules.json
@@ -17,5 +17,6 @@
"chat.three_months": "3 Meses",
"composer.user_said_in": "%1 disse em %2:",
"composer.user_said": "%1 disse:",
- "composer.discard": "Tem certeza que deseja descartar essa postagem?"
+ "composer.discard": "Tem certeza que deseja descartar essa postagem?",
+ "composer.submit_and_lock": "Submit and Lock"
}
\ No newline at end of file
diff --git a/public/language/pt_BR/notifications.json b/public/language/pt_BR/notifications.json
index 72b406d47b..cb3f217b47 100644
--- a/public/language/pt_BR/notifications.json
+++ b/public/language/pt_BR/notifications.json
@@ -2,7 +2,7 @@
"title": "Notificações",
"no_notifs": "Você não tem nenhuma notificação nova",
"see_all": "Ver todas as Notificações",
- "mark_all_read": "Mark all notifications read",
+ "mark_all_read": "Marcas todas as notificações como lidas",
"back_to_home": "Voltar para %1",
"outgoing_link": "Link Externo",
"outgoing_link_message": "Você deixou de seguir %1.",
diff --git a/public/language/pt_BR/pages.json b/public/language/pt_BR/pages.json
index 415f50c0fd..edcc280f4b 100644
--- a/public/language/pt_BR/pages.json
+++ b/public/language/pt_BR/pages.json
@@ -14,6 +14,7 @@
"user.groups": "%1's Grupos",
"user.favourites": "Posts Favoritos de %1",
"user.settings": "Configurações de Usuário",
+ "user.watched": "Topics watched by %1",
"maintenance.text": "%1 está atualmente sob manutenção. Por favor retorne em outro momento.",
"maintenance.messageIntro": "Adicionalmente, o administrador deixou esta mensagem:"
}
\ No newline at end of file
diff --git a/public/language/pt_BR/recent.json b/public/language/pt_BR/recent.json
index 2af16e248a..322ab84c1f 100644
--- a/public/language/pt_BR/recent.json
+++ b/public/language/pt_BR/recent.json
@@ -6,7 +6,7 @@
"year": "Ano",
"alltime": "Todos os Tempos",
"no_recent_topics": "Não há tópicos recentes.",
- "no_popular_topics": "There are no popular topics.",
+ "no_popular_topics": "Não há tópicos populares.",
"there-is-a-new-topic": "Há um novo tópico.",
"there-is-a-new-topic-and-a-new-post": "Há um novo tópico e um novo post.",
"there-is-a-new-topic-and-new-posts": "Há um novo tópico e %1 novos posts.",
diff --git a/public/language/pt_BR/search.json b/public/language/pt_BR/search.json
index 695d7795ce..9c48e1dfc0 100644
--- a/public/language/pt_BR/search.json
+++ b/public/language/pt_BR/search.json
@@ -32,9 +32,9 @@
"category": "Categoria",
"descending": "Em ordem descendente",
"ascending": "Em ordem ascendente",
- "save-preferences": "Save preferences",
- "clear-preferences": "Clear preferences",
- "search-preferences-saved": "Search preferences saved",
- "search-preferences-cleared": "Search preferences cleared",
- "show-results-as": "Show results as"
+ "save-preferences": "Salvar preferências",
+ "clear-preferences": "Limpar preferências",
+ "search-preferences-saved": "Preferências de busca salvas",
+ "search-preferences-cleared": "Preferências de busca limpas",
+ "show-results-as": "Mostrar resultados como"
}
\ No newline at end of file
diff --git a/public/language/pt_BR/tags.json b/public/language/pt_BR/tags.json
index 267888cbfa..1150d12f7f 100644
--- a/public/language/pt_BR/tags.json
+++ b/public/language/pt_BR/tags.json
@@ -1,7 +1,7 @@
{
"no_tag_topics": "Não há tópicos com esta tag.",
"tags": "Tags",
- "enter_tags_here": "Enter tags here. %1-%2 characters. Press enter after each tag.",
+ "enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
"enter_tags_here_short": "Digite tags...",
"no_tags": "Ainda não há tags."
}
\ No newline at end of file
diff --git a/public/language/pt_BR/topic.json b/public/language/pt_BR/topic.json
index a99468a79f..2c15fac095 100644
--- a/public/language/pt_BR/topic.json
+++ b/public/language/pt_BR/topic.json
@@ -12,7 +12,7 @@
"notify_me": "Seja notificado de novas respostas nesse tópico",
"quote": "Citar",
"reply": "Responder",
- "guest-login-reply": "Log in to reply",
+ "guest-login-reply": "Logue-se para responder",
"edit": "Editar",
"delete": "Deletar",
"purge": "Expurgar",
diff --git a/public/language/pt_BR/user.json b/public/language/pt_BR/user.json
index 86412afd5c..be3033d1c3 100644
--- a/public/language/pt_BR/user.json
+++ b/public/language/pt_BR/user.json
@@ -60,6 +60,7 @@
"digest_monthly": "Mensalmente",
"send_chat_notifications": "Enviar-me um email se uma nova mensagem de chat chegar quando eu não estiver online.",
"send_post_notifications": "Enviar um email quando respostas forem dadas à tópicos que eu assino",
+ "settings-require-reload": "Some setting changes require a reload. Click here to reload the page.",
"has_no_follower": "Este usuário não possui seguidores :(",
"follows_no_one": "Este usuário não está seguindo ninguém :(",
"has_no_posts": "Este usuário não postou nada ainda.",
@@ -76,5 +77,6 @@
"enable_topic_searching": "Habilitar Pesquisa dentro de Tópico",
"topic_search_help": "Se habilitado, a pesquisa dentro de tópico irá substituir o funcionamento padrão de pesquisa de página do navegador e permitir que você pesquise pelo tópico todo, ao invés de apenas o que é mostrado na tela.",
"follow_topics_you_reply_to": "Seguir tópicos que você responde.",
- "follow_topics_you_create": "Seguir tópicos que você cria."
+ "follow_topics_you_create": "Seguir tópicos que você cria.",
+ "grouptitle": "Select the group title you would like to display"
}
\ No newline at end of file
diff --git a/public/language/ro/error.json b/public/language/ro/error.json
index 51ad7c7cbc..1c60c0cf83 100644
--- a/public/language/ro/error.json
+++ b/public/language/ro/error.json
@@ -18,7 +18,7 @@
"username-taken": "Numele de utilizator este deja folosit",
"email-taken": "Adresa de email este deja folostă",
"email-not-confirmed": "Your email has not been confirmed yet, please click here to confirm your email.",
- "email-not-confirmed-chat": "You are unable to chat until your email is confirmed",
+ "email-not-confirmed-chat": "You are unable to chat until your email is confirmed, please click here to confirm your email.",
"no-email-to-confirm": "This forum requires email confirmation, please click here to enter an email",
"email-confirm-failed": "We could not confirm your email, please try again later.",
"username-too-short": "Numele de utilizator este prea scurt",
diff --git a/public/language/ro/modules.json b/public/language/ro/modules.json
index 7c4f898389..585309d2ea 100644
--- a/public/language/ro/modules.json
+++ b/public/language/ro/modules.json
@@ -17,5 +17,6 @@
"chat.three_months": "3 Luni",
"composer.user_said_in": "%1 a spus în %2:",
"composer.user_said": "%1 a spus:",
- "composer.discard": "Ești sigur că vrei să renunți la acest mesaj?"
+ "composer.discard": "Ești sigur că vrei să renunți la acest mesaj?",
+ "composer.submit_and_lock": "Submit and Lock"
}
\ No newline at end of file
diff --git a/public/language/ro/pages.json b/public/language/ro/pages.json
index 141c5fb1df..86deca16e0 100644
--- a/public/language/ro/pages.json
+++ b/public/language/ro/pages.json
@@ -14,6 +14,7 @@
"user.groups": "%1's Groups",
"user.favourites": "Mesajele favorite ale lui %1",
"user.settings": "Setări Utilizator",
+ "user.watched": "Topics watched by %1",
"maintenance.text": "%1 este momentan în mentenanță. Întoarce-te în curând!",
"maintenance.messageIntro": "Additionally, the administrator has left this message:"
}
\ No newline at end of file
diff --git a/public/language/ro/tags.json b/public/language/ro/tags.json
index 483efa66f6..59edbb0063 100644
--- a/public/language/ro/tags.json
+++ b/public/language/ro/tags.json
@@ -1,7 +1,7 @@
{
"no_tag_topics": "Nu există nici un subiect cu acest tag.",
"tags": "Taguri",
- "enter_tags_here": "Enter tags here. %1-%2 characters. Press enter after each tag.",
+ "enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
"enter_tags_here_short": "Introdu taguri...",
"no_tags": "În acest moment nu există nici un tag."
}
\ No newline at end of file
diff --git a/public/language/ro/user.json b/public/language/ro/user.json
index 3fa30f4836..7c5abe0840 100644
--- a/public/language/ro/user.json
+++ b/public/language/ro/user.json
@@ -60,6 +60,7 @@
"digest_monthly": "Lunar",
"send_chat_notifications": "Trimite-mi un email dacă primesc un mesaj în chat si eu nu sunt online",
"send_post_notifications": "Send an email when replies are made to topics I am subscribed to",
+ "settings-require-reload": "Some setting changes require a reload. Click here to reload the page.",
"has_no_follower": "Pe acest utilizator nu îl urmărește nimeni :(",
"follows_no_one": "Acest utilizator nu urmărește pe nimeni :(",
"has_no_posts": "Acest utilizator nu a postat nici un mesaj până acuma.",
@@ -76,5 +77,6 @@
"enable_topic_searching": "Enable In-Topic Searching",
"topic_search_help": "If enabled, in-topic searching will override the browser's default page search behaviour and allow you to search through the entire topic, instead of what is only shown on screen.",
"follow_topics_you_reply_to": "Urmărește subiectele în care ai răspuns.",
- "follow_topics_you_create": "Urmărește subiectele care le creezi."
+ "follow_topics_you_create": "Urmărește subiectele care le creezi.",
+ "grouptitle": "Select the group title you would like to display"
}
\ No newline at end of file
diff --git a/public/language/ru/error.json b/public/language/ru/error.json
index bca2535d19..e4be1447a2 100644
--- a/public/language/ru/error.json
+++ b/public/language/ru/error.json
@@ -18,7 +18,7 @@
"username-taken": "Имя пользователя занято",
"email-taken": "Email занят",
"email-not-confirmed": "Ваш email не подтвержден, нажмите для подтверждения.",
- "email-not-confirmed-chat": "Вы не можете оставлять сообщения, пока Ваш email не подтверждён",
+ "email-not-confirmed-chat": "You are unable to chat until your email is confirmed, please click here to confirm your email.",
"no-email-to-confirm": "Этот форум требует подтверждения по E-mail. Нажмите здесь для ввода E-mail.",
"email-confirm-failed": "Мы не можем подтвердить Ваш E-mail, попробуйте позже.",
"username-too-short": "Слишком короткое имя пользователя",
diff --git a/public/language/ru/groups.json b/public/language/ru/groups.json
index 8ef4e59089..87d1f1c98e 100644
--- a/public/language/ru/groups.json
+++ b/public/language/ru/groups.json
@@ -21,11 +21,11 @@
"details.owner_options": "Настройки группы",
"details.group_name": "Имя группы",
"details.description": "Описание",
- "details.badge_preview": "Предпросмотр Бейджа",
+ "details.badge_preview": "Предпросмотр бейджа",
"details.change_icon": "Сменить иконку",
"details.change_colour": "Изменить цвет",
- "details.badge_text": "Текст на Бейдже",
- "details.userTitleEnabled": "Показать Бейдж",
+ "details.badge_text": "Текст на бейдже",
+ "details.userTitleEnabled": "Показать бейдж",
"details.private_help": "Если включено, вступление в группы будет подтверждаться владельцем группы",
"details.hidden": "Скрыто",
"details.hidden_help": "Если включено, группа не будет показываться в списках, а пользователи должны приглашаться вручную",
diff --git a/public/language/ru/modules.json b/public/language/ru/modules.json
index 82611f15e7..c707341577 100644
--- a/public/language/ru/modules.json
+++ b/public/language/ru/modules.json
@@ -17,5 +17,6 @@
"chat.three_months": "3 месяца",
"composer.user_said_in": "%1 сказал %2:",
"composer.user_said": "%1 сказал:",
- "composer.discard": "Вы уверены, что хотите отказаться от этого поста?"
+ "composer.discard": "Вы уверены, что хотите отказаться от этого поста?",
+ "composer.submit_and_lock": "Submit and Lock"
}
\ No newline at end of file
diff --git a/public/language/ru/pages.json b/public/language/ru/pages.json
index 9ad5cae0c2..b7b35fa25e 100644
--- a/public/language/ru/pages.json
+++ b/public/language/ru/pages.json
@@ -14,6 +14,7 @@
"user.groups": "Группы %1",
"user.favourites": "Избранные сообщения %1",
"user.settings": "Настройки",
+ "user.watched": "Topics watched by %1",
"maintenance.text": "%1 в настоящее время на обслуживании. Пожалуйста, возвращайтесь позже.",
"maintenance.messageIntro": "Администратор оставил сообщение:"
}
\ No newline at end of file
diff --git a/public/language/ru/search.json b/public/language/ru/search.json
index 8fa2f31ebd..54886ccf15 100644
--- a/public/language/ru/search.json
+++ b/public/language/ru/search.json
@@ -34,7 +34,7 @@
"ascending": "В порядке убывания",
"save-preferences": "Сохранить настройки",
"clear-preferences": "Очистить настройки",
- "search-preferences-saved": "Искать сохраненные настройки",
- "search-preferences-cleared": "Search preferences cleared",
+ "search-preferences-saved": "Настройки поиска сохранены",
+ "search-preferences-cleared": "Настройки поиска очищены",
"show-results-as": "Показать результаты как"
}
\ No newline at end of file
diff --git a/public/language/ru/tags.json b/public/language/ru/tags.json
index 8b78464be4..e923cccf2c 100644
--- a/public/language/ru/tags.json
+++ b/public/language/ru/tags.json
@@ -1,7 +1,7 @@
{
"no_tag_topics": "Нет топиков с таким тегом.",
"tags": "Теги",
- "enter_tags_here": "Укажите тэги здесь. %1-%2 символов(а). Нажимайте Enter после каждого тэга.",
+ "enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
"enter_tags_here_short": "Введите теги...",
"no_tags": "Здесь еще нет тегов."
}
\ No newline at end of file
diff --git a/public/language/ru/user.json b/public/language/ru/user.json
index 99be44abd6..12797aef20 100644
--- a/public/language/ru/user.json
+++ b/public/language/ru/user.json
@@ -60,6 +60,7 @@
"digest_monthly": "За месяц",
"send_chat_notifications": "Уведомлять на E-mail при поступлении нового сообщения чата, когда я оффлайн",
"send_post_notifications": "Отправлять email, когда отвечают в темы, на которые я подписан(а)",
+ "settings-require-reload": "Some setting changes require a reload. Click here to reload the page.",
"has_no_follower": "Этого пользователя никто не читает :(",
"follows_no_one": "Этот пользователь никого не читает :(",
"has_no_posts": "Этот пользователь еще ничего не написал.",
@@ -76,5 +77,6 @@
"enable_topic_searching": "Активировать поиск внутри тем",
"topic_search_help": "Если включено, то стандартный \"Поиск на странице\" Вашего браузера будет осуществлять поиск по всей теме вместо одной её страницы.",
"follow_topics_you_reply_to": "Следить за темами, в которых Вы отвечали.",
- "follow_topics_you_create": "Следить за темами, которые Вы создали."
+ "follow_topics_you_create": "Следить за темами, которые Вы создали.",
+ "grouptitle": "Select the group title you would like to display"
}
\ No newline at end of file
diff --git a/public/language/sc/error.json b/public/language/sc/error.json
index e0700f76c4..17465a20a3 100644
--- a/public/language/sc/error.json
+++ b/public/language/sc/error.json
@@ -18,7 +18,7 @@
"username-taken": "Username taken",
"email-taken": "Email taken",
"email-not-confirmed": "Your email has not been confirmed yet, please click here to confirm your email.",
- "email-not-confirmed-chat": "You are unable to chat until your email is confirmed",
+ "email-not-confirmed-chat": "You are unable to chat until your email is confirmed, please click here to confirm your email.",
"no-email-to-confirm": "This forum requires email confirmation, please click here to enter an email",
"email-confirm-failed": "We could not confirm your email, please try again later.",
"username-too-short": "Username too short",
diff --git a/public/language/sc/modules.json b/public/language/sc/modules.json
index f24225a4ce..c34b686af0 100644
--- a/public/language/sc/modules.json
+++ b/public/language/sc/modules.json
@@ -17,5 +17,6 @@
"chat.three_months": "3 Months",
"composer.user_said_in": "%1 said in %2:",
"composer.user_said": "%1 said:",
- "composer.discard": "Are you sure you wish to discard this post?"
+ "composer.discard": "Are you sure you wish to discard this post?",
+ "composer.submit_and_lock": "Submit and Lock"
}
\ No newline at end of file
diff --git a/public/language/sc/pages.json b/public/language/sc/pages.json
index 0f846179c3..f087a77706 100644
--- a/public/language/sc/pages.json
+++ b/public/language/sc/pages.json
@@ -14,6 +14,7 @@
"user.groups": "%1's Groups",
"user.favourites": "Arresonos Preferidos de %1",
"user.settings": "Sèberos de Impitadore",
+ "user.watched": "Topics watched by %1",
"maintenance.text": "%1 is currently undergoing maintenance. Please come back another time.",
"maintenance.messageIntro": "Additionally, the administrator has left this message:"
}
\ No newline at end of file
diff --git a/public/language/sc/tags.json b/public/language/sc/tags.json
index aa9f14c70c..c416d8d4ec 100644
--- a/public/language/sc/tags.json
+++ b/public/language/sc/tags.json
@@ -1,7 +1,7 @@
{
"no_tag_topics": "There are no topics with this tag.",
"tags": "Tags",
- "enter_tags_here": "Enter tags here. %1-%2 characters. Press enter after each tag.",
+ "enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
"enter_tags_here_short": "Enter tags...",
"no_tags": "There are no tags yet."
}
\ No newline at end of file
diff --git a/public/language/sc/user.json b/public/language/sc/user.json
index b083df5e52..01f88d738a 100644
--- a/public/language/sc/user.json
+++ b/public/language/sc/user.json
@@ -60,6 +60,7 @@
"digest_monthly": "Monthly",
"send_chat_notifications": "Send an email if a new chat message arrives and I am not online",
"send_post_notifications": "Send an email when replies are made to topics I am subscribed to",
+ "settings-require-reload": "Some setting changes require a reload. Click here to reload the page.",
"has_no_follower": "Custu impitadore non tenet perunu sighidore :(",
"follows_no_one": "Custu impitadore no est sighende nissunu :(",
"has_no_posts": "Custu impitadore no at ancora publicadu nudda.",
@@ -76,5 +77,6 @@
"enable_topic_searching": "Enable In-Topic Searching",
"topic_search_help": "If enabled, in-topic searching will override the browser's default page search behaviour and allow you to search through the entire topic, instead of what is only shown on screen.",
"follow_topics_you_reply_to": "Follow topics that you reply to.",
- "follow_topics_you_create": "Follow topics you create."
+ "follow_topics_you_create": "Follow topics you create.",
+ "grouptitle": "Select the group title you would like to display"
}
\ No newline at end of file
diff --git a/public/language/sk/error.json b/public/language/sk/error.json
index 069d7b8deb..93c15ed553 100644
--- a/public/language/sk/error.json
+++ b/public/language/sk/error.json
@@ -18,7 +18,7 @@
"username-taken": "Užívateľske meno je obsadené",
"email-taken": "Email je obsadený",
"email-not-confirmed": "Your email has not been confirmed yet, please click here to confirm your email.",
- "email-not-confirmed-chat": "You are unable to chat until your email is confirmed",
+ "email-not-confirmed-chat": "You are unable to chat until your email is confirmed, please click here to confirm your email.",
"no-email-to-confirm": "This forum requires email confirmation, please click here to enter an email",
"email-confirm-failed": "We could not confirm your email, please try again later.",
"username-too-short": "Username too short",
diff --git a/public/language/sk/modules.json b/public/language/sk/modules.json
index 335723bb7a..e8a242aba7 100644
--- a/public/language/sk/modules.json
+++ b/public/language/sk/modules.json
@@ -17,5 +17,6 @@
"chat.three_months": "3 Months",
"composer.user_said_in": "%1 said in %2:",
"composer.user_said": "%1 said:",
- "composer.discard": "Are you sure you wish to discard this post?"
+ "composer.discard": "Are you sure you wish to discard this post?",
+ "composer.submit_and_lock": "Submit and Lock"
}
\ No newline at end of file
diff --git a/public/language/sk/pages.json b/public/language/sk/pages.json
index c54ac7e71f..bbf7ebeebb 100644
--- a/public/language/sk/pages.json
+++ b/public/language/sk/pages.json
@@ -14,6 +14,7 @@
"user.groups": "%1's Groups",
"user.favourites": "%1's obľubených príspevkov",
"user.settings": "Užívatelské nadstavenie",
+ "user.watched": "Topics watched by %1",
"maintenance.text": "%1 is currently undergoing maintenance. Please come back another time.",
"maintenance.messageIntro": "Additionally, the administrator has left this message:"
}
\ No newline at end of file
diff --git a/public/language/sk/tags.json b/public/language/sk/tags.json
index aa9f14c70c..c416d8d4ec 100644
--- a/public/language/sk/tags.json
+++ b/public/language/sk/tags.json
@@ -1,7 +1,7 @@
{
"no_tag_topics": "There are no topics with this tag.",
"tags": "Tags",
- "enter_tags_here": "Enter tags here. %1-%2 characters. Press enter after each tag.",
+ "enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
"enter_tags_here_short": "Enter tags...",
"no_tags": "There are no tags yet."
}
\ No newline at end of file
diff --git a/public/language/sk/user.json b/public/language/sk/user.json
index 48aa4ec144..db1541864f 100644
--- a/public/language/sk/user.json
+++ b/public/language/sk/user.json
@@ -60,6 +60,7 @@
"digest_monthly": "Mesačne",
"send_chat_notifications": "Send an email if a new chat message arrives and I am not online",
"send_post_notifications": "Send an email when replies are made to topics I am subscribed to",
+ "settings-require-reload": "Some setting changes require a reload. Click here to reload the page.",
"has_no_follower": "Tohoto užívatela nikto nesleduje :(",
"follows_no_one": "Tento užívateľ nikoho nesleduje :(",
"has_no_posts": "Tento používateľ ešte nespravil príspevok",
@@ -76,5 +77,6 @@
"enable_topic_searching": "Enable In-Topic Searching",
"topic_search_help": "If enabled, in-topic searching will override the browser's default page search behaviour and allow you to search through the entire topic, instead of what is only shown on screen.",
"follow_topics_you_reply_to": "Follow topics that you reply to.",
- "follow_topics_you_create": "Follow topics you create."
+ "follow_topics_you_create": "Follow topics you create.",
+ "grouptitle": "Select the group title you would like to display"
}
\ No newline at end of file
diff --git a/public/language/sv/error.json b/public/language/sv/error.json
index 8f8c577d0d..99879a3388 100644
--- a/public/language/sv/error.json
+++ b/public/language/sv/error.json
@@ -18,7 +18,7 @@
"username-taken": "Användarnamn upptaget",
"email-taken": "Epostadress upptagen",
"email-not-confirmed": "Din epostadress är ännu inte bekräftad. Klicka här för att bekräfta din epostadress.",
- "email-not-confirmed-chat": "You are unable to chat until your email is confirmed",
+ "email-not-confirmed-chat": "You are unable to chat until your email is confirmed, please click here to confirm your email.",
"no-email-to-confirm": "This forum requires email confirmation, please click here to enter an email",
"email-confirm-failed": "We could not confirm your email, please try again later.",
"username-too-short": "Användarnamnet är för kort",
diff --git a/public/language/sv/modules.json b/public/language/sv/modules.json
index cb61fddae5..05d12e9247 100644
--- a/public/language/sv/modules.json
+++ b/public/language/sv/modules.json
@@ -17,5 +17,6 @@
"chat.three_months": "3 Månader",
"composer.user_said_in": "%1 sa i %2:",
"composer.user_said": "%1 sa:",
- "composer.discard": "Är du säker på att du vill förkasta det här inlägget?"
+ "composer.discard": "Är du säker på att du vill förkasta det här inlägget?",
+ "composer.submit_and_lock": "Submit and Lock"
}
\ No newline at end of file
diff --git a/public/language/sv/pages.json b/public/language/sv/pages.json
index f7a4904a84..61fb23b776 100644
--- a/public/language/sv/pages.json
+++ b/public/language/sv/pages.json
@@ -14,6 +14,7 @@
"user.groups": "%1's Groups",
"user.favourites": "%1's favorit-inlägg",
"user.settings": "Avnändarinställningar",
+ "user.watched": "Topics watched by %1",
"maintenance.text": "%1 genomgår underhåll just nu. Vänligen kom tillbaka lite senare.",
"maintenance.messageIntro": "Ytterligare så lämnade administratören detta meddelande:"
}
\ No newline at end of file
diff --git a/public/language/sv/tags.json b/public/language/sv/tags.json
index fffe39ea0a..d846962ea4 100644
--- a/public/language/sv/tags.json
+++ b/public/language/sv/tags.json
@@ -1,7 +1,7 @@
{
"no_tag_topics": "Det finns inga ämnen med detta märkord.",
"tags": "Märkord",
- "enter_tags_here": "Enter tags here. %1-%2 characters. Press enter after each tag.",
+ "enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
"enter_tags_here_short": "Ange taggar...",
"no_tags": "Det finns inga märkord ännu."
}
\ No newline at end of file
diff --git a/public/language/sv/user.json b/public/language/sv/user.json
index 6a773c45b4..14ceb0336a 100644
--- a/public/language/sv/user.json
+++ b/public/language/sv/user.json
@@ -60,6 +60,7 @@
"digest_monthly": "Månadsvis",
"send_chat_notifications": "Skicka ett epostmeddelande om nya chatt-meddelanden tas emot när jag inte är online.",
"send_post_notifications": "Send an email when replies are made to topics I am subscribed to",
+ "settings-require-reload": "Some setting changes require a reload. Click here to reload the page.",
"has_no_follower": "Denna användare har inga följare :(",
"follows_no_one": "Denna användare följer ingen :(",
"has_no_posts": "Denna användare har inte gjort några inlägg än.",
@@ -76,5 +77,6 @@
"enable_topic_searching": "Aktivera Sökning Inom Ämne",
"topic_search_help": "Om aktiverat kommer sökning inom ämne överskrida webbläsarens vanliga sid-sökfunktion och tillåta dig att söka genom hela ämnet istället för det som endast visas på skärmen.",
"follow_topics_you_reply_to": "Följ ämnen so du svarat på.",
- "follow_topics_you_create": "Följ ämnen du skapat."
+ "follow_topics_you_create": "Följ ämnen du skapat.",
+ "grouptitle": "Select the group title you would like to display"
}
\ No newline at end of file
diff --git a/public/language/th/category.json b/public/language/th/category.json
index 387458a0dd..e5d6b1e0fc 100644
--- a/public/language/th/category.json
+++ b/public/language/th/category.json
@@ -1,9 +1,9 @@
{
"new_topic_button": "กระทู้",
- "guest-login-post": "Log in to post",
+ "guest-login-post": "เข้าสู่ระบบเพื่อโพส",
"no_topics": "ยังไม่มีกระทู้ในหมวดนี้
โพสต์กระทู้แรก?",
"browsing": "เรียกดู",
"no_replies": "ยังไม่มีใครตอบ",
- "share_this_category": "Share this category",
- "ignore": "Ignore"
+ "share_this_category": "แชร์ Category นี้",
+ "ignore": "ไม่ต้องสนใจอีก"
}
\ No newline at end of file
diff --git a/public/language/th/error.json b/public/language/th/error.json
index 064bd1b530..7a46ebaa65 100644
--- a/public/language/th/error.json
+++ b/public/language/th/error.json
@@ -3,37 +3,37 @@
"not-logged-in": "คุณยังไม่ได้ลงชื่อเข้าระบบ",
"account-locked": "บัญชีของคุณถูกระงับการใช้งานชั่วคราว",
"search-requires-login": "ต้องลงทะเบียนบัญชีผู้ใช้สำหรับการค้นหา! โปรดลงชื่อเข้าระบบ หรือ ลงทะเบียน!",
- "invalid-cid": "Invalid Category ID",
- "invalid-tid": "Invalid Topic ID",
- "invalid-pid": "Invalid Post ID",
- "invalid-uid": "Invalid User ID",
- "invalid-username": "Invalid Username",
- "invalid-email": "Invalid Email",
- "invalid-title": "Invalid title!",
- "invalid-user-data": "Invalid User Data",
- "invalid-password": "Invalid Password",
- "invalid-username-or-password": "Please specify both a username and password",
- "invalid-search-term": "Invalid search term",
+ "invalid-cid": "Category ID ไม่ถูกต้อง",
+ "invalid-tid": "Topic ID ไม่ถูกต้อง",
+ "invalid-pid": "Post ID ไม่ถูกต้อง",
+ "invalid-uid": "User ID ไม่ถูกต้อง",
+ "invalid-username": "ชื่อผู้ใช้ไม่ถูกต้อง",
+ "invalid-email": "อีเมลไม่ถูกต้อง",
+ "invalid-title": "คำนำหน้าชื่อไม่ถูกต้อง",
+ "invalid-user-data": "User Data ไม่ถูกต้อง",
+ "invalid-password": "รหัสผ่านไม่ถูกต้อง",
+ "invalid-username-or-password": "กรุณาระบุชื่อผู้ใช้และรหัสผ่าน",
+ "invalid-search-term": "ข้อความค้นหาไม่ถูกต้อง",
"invalid-pagination-value": "Invalid pagination value",
"username-taken": "ชื่อผู้ใช้นี้มีการใช้แล้ว",
"email-taken": "อีเมลนี้มีการใช้แล้ว",
"email-not-confirmed": "ยังไม่มีการยืนยันอีเมลของคุณ, โปรดกดยืนยันอีเมลของคุณตรงนี้",
- "email-not-confirmed-chat": "You are unable to chat until your email is confirmed",
- "no-email-to-confirm": "This forum requires email confirmation, please click here to enter an email",
- "email-confirm-failed": "We could not confirm your email, please try again later.",
+ "email-not-confirmed-chat": "You are unable to chat until your email is confirmed, please click here to confirm your email.",
+ "no-email-to-confirm": "Forum นี้ต้องการการยืนยันอีเมล กรุณากดที่นี่เพื่อระบุอีเมล",
+ "email-confirm-failed": "เราไม่สามารถยืนยันอีเมลของคุณ ณ ขณะนี้ กรุณาลองใหม่อีกครั้งภายหลัง",
"username-too-short": "ชื่อบัญชีผู้ใช้ สั้นเกินไป",
"username-too-long": "ชื่อบัญชีผู้ใช้ ยาวเกินไป",
"user-banned": "User banned",
"user-too-new": "Sorry, you are required to wait %1 seconds before making your first post",
- "no-category": "Category does not exist",
- "no-topic": "Topic does not exist",
- "no-post": "Post does not exist",
- "no-group": "Group does not exist",
- "no-user": "User does not exist",
+ "no-category": "ยังไม่มี Category นี้",
+ "no-topic": "ยังไม่มี Topic นี้",
+ "no-post": "ยังไม่มี Post นี้",
+ "no-group": "ยังไม่มี Group นี้",
+ "no-user": "ยังไม่มีผู้ใช้งานนี้",
"no-teaser": "Teaser does not exist",
- "no-privileges": "You do not have enough privileges for this action.",
+ "no-privileges": "คุณมีสิทธิ์ไม่เพียงพอที่จะทำรายการนี้",
"no-emailers-configured": "No email plugins were loaded, so a test email could not be sent",
- "category-disabled": "Category disabled",
+ "category-disabled": "Category นี้ถูกปิดการใช้งานแล้ว",
"topic-locked": "Topic Locked",
"post-edit-duration-expired": "You are only allowed to edit posts for %1 seconds after posting",
"still-uploading": "Please wait for uploads to complete.",
diff --git a/public/language/th/global.json b/public/language/th/global.json
index af4ff3bfd0..d81b58b8eb 100644
--- a/public/language/th/global.json
+++ b/public/language/th/global.json
@@ -14,20 +14,20 @@
"please_log_in": "กรุณาเข้าสู่ระบบ",
"logout": "ออกจากระบบ",
"posting_restriction_info": "คุณต้องต้องเป็นสมาชิกเพื่อทำการโพสต์ คลิกที่นี่เพื่อเข้าสู่ระบบ",
- "welcome_back": "Welcome Back",
+ "welcome_back": "ยินดีต้อนรับ",
"you_have_successfully_logged_in": "คุณได้เข้าสู่ระบบแล้ว",
"save_changes": "บันทึกการเปลี่ยนแปลง",
"close": "ปิด",
"pagination": "ให้เลขหน้า",
- "pagination.out_of": "%1 out of %2",
+ "pagination.out_of": "%1 จาก %2",
"pagination.enter_index": "Enter index",
"header.admin": "ผู้ดูแลระบบ",
"header.recent": "ล่าสุด",
"header.unread": "ไม่ได้อ่าน",
- "header.tags": "Tags",
+ "header.tags": "Tag",
"header.popular": "ฮิต",
"header.users": "ผู้ใช้",
- "header.groups": "Groups",
+ "header.groups": "Group",
"header.chats": "สนทนา",
"header.notifications": "แจ้งเตือน",
"header.search": "ค้นหา",
diff --git a/public/language/th/groups.json b/public/language/th/groups.json
index d2314fdc29..be94efdf0b 100644
--- a/public/language/th/groups.json
+++ b/public/language/th/groups.json
@@ -1,34 +1,34 @@
{
- "groups": "Groups",
- "view_group": "View Group",
- "owner": "Group Owner",
- "new_group": "Create New Group",
- "no_groups_found": "There are no groups to see",
- "pending.accept": "Accept",
- "pending.reject": "Reject",
- "cover-instructions": "Drag and Drop a photo, drag to position, and hit Save",
- "cover-change": "Change",
- "cover-save": "Save",
- "cover-saving": "Saving",
- "details.title": "Group Details",
- "details.members": "Member List",
- "details.pending": "Pending Members",
- "details.has_no_posts": "This group's members have not made any posts.",
- "details.latest_posts": "Latest Posts",
- "details.private": "Private",
+ "groups": "Group",
+ "view_group": "ดู Group",
+ "owner": "เจ้าของ Group",
+ "new_group": "สร้าง Group ใหม่",
+ "no_groups_found": "ยังไม่มี Group",
+ "pending.accept": "ยอมรับ",
+ "pending.reject": "ไม่ยอมรับ",
+ "cover-instructions": "ลากรูปภาพไปวางยังตำแหน่งที่ต้องการแล้วกดที่ปุ่ม บันทึก",
+ "cover-change": "ปรับปรุง",
+ "cover-save": "บันทึก",
+ "cover-saving": "กำลังบันทึก",
+ "details.title": "ข้อมูล Group",
+ "details.members": "รายชื่อสมาชิก",
+ "details.pending": "สมาชิกที่กำลังรอการตอบรับ",
+ "details.has_no_posts": "Group นี้ยังไม่มีโพสจากสมาชิก",
+ "details.latest_posts": "โพสล่าสุด",
+ "details.private": "ส่วนตัว",
"details.grant": "Grant/Rescind Ownership",
- "details.kick": "Kick",
- "details.owner_options": "Group Administration",
- "details.group_name": "Group Name",
- "details.description": "Description",
+ "details.kick": "เตะออก",
+ "details.owner_options": "การจัดการ Group",
+ "details.group_name": "ชื่อ Group",
+ "details.description": "คำอธิบาย",
"details.badge_preview": "Badge Preview",
- "details.change_icon": "Change Icon",
- "details.change_colour": "Change Colour",
+ "details.change_icon": "เปลี่ยนไอคอน",
+ "details.change_colour": "เปลี่ยนสี",
"details.badge_text": "Badge Text",
- "details.userTitleEnabled": "Show Badge",
+ "details.userTitleEnabled": "แสดง Badge",
"details.private_help": "If enabled, joining of groups requires approval from a group owner",
- "details.hidden": "Hidden",
+ "details.hidden": "ซ่อน",
"details.hidden_help": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually",
- "event.updated": "Group details have been updated",
+ "event.updated": "ข้อมูล Group ได้รับการบันทึกแล้ว",
"event.deleted": "The group \"%1\" has been deleted"
}
\ No newline at end of file
diff --git a/public/language/th/login.json b/public/language/th/login.json
index f0aff3c796..5eba336a39 100644
--- a/public/language/th/login.json
+++ b/public/language/th/login.json
@@ -1,7 +1,7 @@
{
- "username-email": "Username / Email",
- "username": "Username",
- "email": "Email",
+ "username-email": "ชื่อผู้ใช้ / อีเมล",
+ "username": "ชื่อผู้ใช้",
+ "email": "อีเมล",
"remember_me": "จำไว้ในระบบ?",
"forgot_password": "ลืมรหัสผ่าน?",
"alternative_logins": "เข้าสู่ระบบโดยทางอื่น",
diff --git a/public/language/th/modules.json b/public/language/th/modules.json
index c3ea23f0e2..21cb9a564d 100644
--- a/public/language/th/modules.json
+++ b/public/language/th/modules.json
@@ -17,5 +17,6 @@
"chat.three_months": "3 Months",
"composer.user_said_in": "%1 said in %2:",
"composer.user_said": "%1 said:",
- "composer.discard": "Are you sure you wish to discard this post?"
+ "composer.discard": "Are you sure you wish to discard this post?",
+ "composer.submit_and_lock": "Submit and Lock"
}
\ No newline at end of file
diff --git a/public/language/th/pages.json b/public/language/th/pages.json
index 44f8b127e1..91fe3f989a 100644
--- a/public/language/th/pages.json
+++ b/public/language/th/pages.json
@@ -5,15 +5,16 @@
"recent": "กระทู้ล่าสุด",
"users": "ผู้ใช้ที่ลงทะเบียน",
"notifications": "แจ้งเตือน",
- "tags": "Topics tagged under \"%1\"",
+ "tags": "หัวข้อที่ถูก Tag อยู่ภายใต้ \"%1\"",
"user.edit": "แก้ไข \"%1\"",
"user.following": "ผู้ใช้ที่ %1 ติดตาม",
"user.followers": "ผู้ใช้ที่ติดตาม %1",
"user.posts": "กระทู้โดย %1",
- "user.topics": "Topics created by %1",
- "user.groups": "%1's Groups",
+ "user.topics": "หัวข้อที่ถูกสร้างโดย %1",
+ "user.groups": "กลุ่มของ %1",
"user.favourites": "กระทู้ที่ %1 ชอบ",
"user.settings": "ตั้งค่าผู้ใช้",
- "maintenance.text": "%1 is currently undergoing maintenance. Please come back another time.",
- "maintenance.messageIntro": "Additionally, the administrator has left this message:"
+ "user.watched": "Topics watched by %1",
+ "maintenance.text": "%1 กำลังอยู่ระหว่างการปิดปรับปรุงชั่วคราว กรุณาลองใหม่อีกครั้งในภายหลัง",
+ "maintenance.messageIntro": "ผู้ดูแลระบบได้ฝากข้อความต่อไปนี้เอาไว้"
}
\ No newline at end of file
diff --git a/public/language/th/reset_password.json b/public/language/th/reset_password.json
index 499f2f7136..1b66d7dd33 100644
--- a/public/language/th/reset_password.json
+++ b/public/language/th/reset_password.json
@@ -11,6 +11,6 @@
"enter_email_address": "ใส่อีเมล์",
"password_reset_sent": "รหัสรีเซ็ตถูกส่งออกไปแล้ว",
"invalid_email": "อีเมล์ไม่ถูกต้อง / อีเมล์ไม่มีอยู่!",
- "password_too_short": "The password entered is too short, please pick a different password.",
- "passwords_do_not_match": "The two passwords you've entered do not match."
+ "password_too_short": "รหัสผ่านที่คุณกำหนดยังสั้นเกินไป กรุณากำหนดรหัสผ่านของคุณใหม่",
+ "passwords_do_not_match": "รหัสผ่านทั้ง 2 ที่ใส่ไม่ตรงกัน"
}
\ No newline at end of file
diff --git a/public/language/th/tags.json b/public/language/th/tags.json
index d2d0ff6fe0..e8bf52df2e 100644
--- a/public/language/th/tags.json
+++ b/public/language/th/tags.json
@@ -1,7 +1,7 @@
{
"no_tag_topics": "ไม่มีหัวข้อสนทนาที่เกี่ยวข้องกับป้ายคำศัพท์นี้",
"tags": "ป้ายคำศัพท์",
- "enter_tags_here": "Enter tags here. %1-%2 characters. Press enter after each tag.",
+ "enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
"enter_tags_here_short": "ใส่ป้ายคำศัพท์ ...",
"no_tags": "ยังไม่มีป้ายคำศัพท์"
}
\ No newline at end of file
diff --git a/public/language/th/topic.json b/public/language/th/topic.json
index 652ebe5db5..ea6a1a8998 100644
--- a/public/language/th/topic.json
+++ b/public/language/th/topic.json
@@ -4,15 +4,15 @@
"topic_id_placeholder": "Enter topic ID",
"no_topics_found": "ไม่พบกระทู้",
"no_posts_found": "ไม่พบโพส",
- "post_is_deleted": "This post is deleted!",
+ "post_is_deleted": "ลบ Post นี้เรียบร้อยแล้ว!",
"profile": "รายละเอียด",
- "posted_by": "Posted by %1",
- "posted_by_guest": "Posted by Guest",
+ "posted_by": "โพสโดย %1",
+ "posted_by_guest": "โพสโดย Guest",
"chat": "แชท",
"notify_me": "แจ้งเตือนเมื่อการตอบใหม่ในกระทู้นี้",
"quote": "คำอ้างอิง",
"reply": "ตอบ",
- "guest-login-reply": "Log in to reply",
+ "guest-login-reply": "เข้าสู่ระบบเพื่อตอบกลับ",
"edit": "แก้ไข",
"delete": "ลบ",
"purge": "Purge",
@@ -26,31 +26,31 @@
"locked": "Locked",
"bookmark_instructions": "คลิกที่นี่เพื่อกลับคืนสู่ฐานะสุดท้าย หรือ คลิกปิดเพื่อยกเลิก",
"flag_title": "ปักธงโพสต์นี้เพื่อดำเนินการ",
- "flag_confirm": "Are you sure you want to flag this post?",
+ "flag_confirm": "มั่นใจแล้วหรือไม่ที่จะ Flag Post นี้?",
"flag_success": "This post has been flagged for moderation.",
- "deleted_message": "This topic has been deleted. Only users with topic management privileges can see it.",
+ "deleted_message": "Topic นี้ถูกลบไปแล้ว เฉพาะผู้ใช้งานที่มีสิทธิ์ในการจัดการ Topic เท่านั้นที่จะมีสิทธิ์ในการเข้าชม",
"following_topic.message": "คุณจะได้รับการแจ้งเตือนเมื่อมีคนโพสต์ในกระทู้นี้",
"not_following_topic.message": "คุณจะไม่รับการแจ้งเตือนจากกระทู้นี้",
"login_to_subscribe": "กรุณาลงทะเบียนหรือเข้าสู่ระบบเพื่อที่จะติดตามกระทู้นี้",
"markAsUnreadForAll.success": "ทำเครื่องหมายว่ายังไม่ได้อ่านทั้งหมด",
"watch": "ติดตาม",
- "unwatch": "Unwatch",
- "watch.title": "Be notified of new replies in this topic",
- "unwatch.title": "Stop watching this topic",
+ "unwatch": "ยังไม่ได้ติดตาม",
+ "watch.title": "ให้แจ้งเตือนเมื่อมีการตอบกลับ Topic นี้",
+ "unwatch.title": "ยกเลิกการติดตาม Topic นี้",
"share_this_post": "แชร์โพสต์นี้",
- "thread_tools.title": "Topic Tools",
+ "thread_tools.title": "เครื่องมือช่วยจัดการ Topic",
"thread_tools.markAsUnreadForAll": "ทำหมายว่ายังไม่ได้อ่าน",
"thread_tools.pin": "ปักหมุดกระทู้",
"thread_tools.unpin": "เลิกปักหมุดกระทู้",
"thread_tools.lock": "ล็อคกระทู้",
"thread_tools.unlock": "ปลดล็อคกระทู้",
"thread_tools.move": "ย้ายกระทู้",
- "thread_tools.move_all": "Move All",
+ "thread_tools.move_all": "ย้ายทั้งหมด",
"thread_tools.fork": "แยกกระทู้",
"thread_tools.delete": "ลบกระทู้",
- "thread_tools.delete_confirm": "Are you sure you want to delete this topic?",
+ "thread_tools.delete_confirm": "มั่นใจแล้วหรือไม่ที่จะลบ Topic นี้?",
"thread_tools.restore": "กู้กระทู้",
- "thread_tools.restore_confirm": "Are you sure you want to restore this topic?",
+ "thread_tools.restore_confirm": "มั่นใจแล้วหรือไม่ที่จะกู้คืน Topic นี้?",
"thread_tools.purge": "Purge Topic",
"thread_tools.purge_confirm": "Are you sure you want to purge this topic?",
"topic_move_success": "This topic has been successfully moved to %1",
diff --git a/public/language/th/unread.json b/public/language/th/unread.json
index 37451a65ba..2595955dc7 100644
--- a/public/language/th/unread.json
+++ b/public/language/th/unread.json
@@ -2,8 +2,8 @@
"title": "ไม่ได้อ่าน",
"no_unread_topics": "ไม่มีกระทู้ที่ยังไม่ได้อ่านเป็น",
"load_more": "โหลดเพิ่มเติม",
- "mark_as_read": "Mark as Read",
- "selected": "Selected",
- "all": "All",
- "topics_marked_as_read.success": "Topics marked as read!"
+ "mark_as_read": "ทำเครื่องหมายว่าอ่านแล้ว",
+ "selected": "เลือก",
+ "all": "ทั้งหมด",
+ "topics_marked_as_read.success": "Topic ถูกทำเครื่องหมายว่าอ่านแล้วเรียบร้อย"
}
\ No newline at end of file
diff --git a/public/language/th/user.json b/public/language/th/user.json
index aaf5a74424..5fc906103c 100644
--- a/public/language/th/user.json
+++ b/public/language/th/user.json
@@ -2,8 +2,8 @@
"banned": "เเบน",
"offline": "ออฟไลน์",
"username": "ชื่อผู้ใช้",
- "joindate": "Join Date",
- "postcount": "Post Count",
+ "joindate": "วันที่เข้าร่วม",
+ "postcount": "จำนวนโพส",
"email": "อีเมล์",
"confirm_email": "ยืนยันอีเมล",
"delete_account": "ลบบัญชี",
@@ -18,7 +18,7 @@
"profile_views": "ดูข้อมูลส่วนตัว",
"reputation": "ชื่อเสียง",
"favourites": "ชอบ",
- "watched": "Watched",
+ "watched": "ดูแล้ว",
"followers": "คนติดตาม",
"following": "ติดตาม",
"signature": "ลายเซ็น",
@@ -59,12 +59,13 @@
"digest_weekly": "รายสัปดาห์",
"digest_monthly": "รายเดือน",
"send_chat_notifications": "ส่งอีเมลเมื่อมีข้อความใหม่เข้ามาขณะที่ฉันไม่ได้ออนไลน์",
- "send_post_notifications": "Send an email when replies are made to topics I am subscribed to",
+ "send_post_notifications": "ส่งอีเมลให้ฉันเมื่อมีการตอบกลับในหัวข้อที่ฉันเคยบอกรับเป็นสมาชิกไว้",
+ "settings-require-reload": "Some setting changes require a reload. Click here to reload the page.",
"has_no_follower": "ผู้ใช้รายนี้ไม่มีใครติดตาม :(",
"follows_no_one": "ผู้ใช้รายนี้ไม่ติดตามใคร :(",
"has_no_posts": "ผู้ใช้รายนี้ไม่ได้โพสต์อะไรเลย",
"has_no_topics": "สมาชิกรายนี้ยังไม่ได้มีการโพสต์ข้อความ",
- "has_no_watched_topics": "This user didn't watch any topics yet.",
+ "has_no_watched_topics": "ผู้ใช้นี้ยังไม่เคยเข้าชมในหัวข้อใดๆ",
"email_hidden": "ซ่อนอีเมล์",
"hidden": "ซ่อน",
"paginate_description": "ให้เลขหน้ากระทู้และโพสต์แทนการใช้สกรอลล์ที่ไม่สิ้นสุด",
@@ -73,8 +74,9 @@
"notification_sounds": "เตือนด้วยเสียงเมื่อมีข้อความแจ้งเตือน",
"browsing": "เปิดดูการตั้งค่า",
"open_links_in_new_tab": "เปิดลิงค์ในแท็บใหม่",
- "enable_topic_searching": "Enable In-Topic Searching",
- "topic_search_help": "If enabled, in-topic searching will override the browser's default page search behaviour and allow you to search through the entire topic, instead of what is only shown on screen.",
+ "enable_topic_searching": "เปิดใช้การค้นหาแบบ In-Topic",
+ "topic_search_help": "เมื่อการค้นหาแบบ In-Topic ถูกเปิดใช้งาน การค้นหาแบบ In-Topic จะทำงานแทนการค้นหาในรูปแบบเดิม ซึ่งช่วยให้คุณสามารถทำการค้นหาจาก Topic ทั้งหมด เพิ่มเติมจากที่คุณกำลังเห็นอยู่บนหน้าจอ",
"follow_topics_you_reply_to": "ติดตามกระทู้ที่คุณตอบ",
- "follow_topics_you_create": "ติดตามกระทู้ที่คุณตั้ง"
+ "follow_topics_you_create": "ติดตามกระทู้ที่คุณตั้ง",
+ "grouptitle": "Select the group title you would like to display"
}
\ No newline at end of file
diff --git a/public/language/tr/error.json b/public/language/tr/error.json
index d54bbce50a..475b93ac94 100644
--- a/public/language/tr/error.json
+++ b/public/language/tr/error.json
@@ -18,7 +18,7 @@
"username-taken": "Kullanıcı İsmi Alınmış",
"email-taken": "E-posta Alınmış",
"email-not-confirmed": "E-postanız onaylanmamış, onaylamak için lütfen buraya tıklayın.",
- "email-not-confirmed-chat": "Email adresiniz doğrulanmadan sohbet edemezsiniz.",
+ "email-not-confirmed-chat": "You are unable to chat until your email is confirmed, please click here to confirm your email.",
"no-email-to-confirm": "Bu forum e-posta doğrulaması gerektirir, lütfen buraya bir e-posta adresi girin",
"email-confirm-failed": "E-posta adresinizi doğrulayamıyoruz. Lütfen daha sonra tekrar deneyin.",
"username-too-short": "Kullanıcı ismi çok kısa",
diff --git a/public/language/tr/modules.json b/public/language/tr/modules.json
index 361e6deb48..af25aa3d20 100644
--- a/public/language/tr/modules.json
+++ b/public/language/tr/modules.json
@@ -17,5 +17,6 @@
"chat.three_months": "3 Ay",
"composer.user_said_in": "%1 %2 içinde söyledi:",
"composer.user_said": "%1 söyledi:",
- "composer.discard": "Bu iletiyi iptal etmek istediğinizden eminmisiniz?"
+ "composer.discard": "Bu iletiyi iptal etmek istediğinizden eminmisiniz?",
+ "composer.submit_and_lock": "Submit and Lock"
}
\ No newline at end of file
diff --git a/public/language/tr/pages.json b/public/language/tr/pages.json
index 5171f4232f..84f3ef0148 100644
--- a/public/language/tr/pages.json
+++ b/public/language/tr/pages.json
@@ -14,6 +14,7 @@
"user.groups": "%1 Kişisine Ait Gruplar",
"user.favourites": "%1'in Favori İletileri",
"user.settings": "Kullanıcı Ayarları",
+ "user.watched": "Topics watched by %1",
"maintenance.text": "%1 şu anda bakımda. Lütfen bir süre sonra tekrar deneyin.",
"maintenance.messageIntro": "Ayrıca, yönetici şu mesaji bıraktı:"
}
\ No newline at end of file
diff --git a/public/language/tr/tags.json b/public/language/tr/tags.json
index 344a4bfff6..9f614ce38c 100644
--- a/public/language/tr/tags.json
+++ b/public/language/tr/tags.json
@@ -1,7 +1,7 @@
{
"no_tag_topics": "Bu etiketli başlık yok.",
"tags": "Etiketler",
- "enter_tags_here": "Etiketleri buraya girin. %1-%2 karakter. Her etiketten sonra enter tuşuna basın.",
+ "enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
"enter_tags_here_short": "Etiketleri gir...",
"no_tags": "Henüz etiket yok."
}
\ No newline at end of file
diff --git a/public/language/tr/user.json b/public/language/tr/user.json
index 8fa7b4c5c9..cfca7130fb 100644
--- a/public/language/tr/user.json
+++ b/public/language/tr/user.json
@@ -60,6 +60,7 @@
"digest_monthly": "Aylık",
"send_chat_notifications": "Çevrimiçi değilken gelen iletileri e-posta olarak gönder",
"send_post_notifications": "Abone olduğum konulara cevap gelince bana eposta yolla",
+ "settings-require-reload": "Some setting changes require a reload. Click here to reload the page.",
"has_no_follower": "Bu kullanıcının hiç takipçisi yok :(",
"follows_no_one": "Bu kullanıcı kimseyi takip etmiyor :(",
"has_no_posts": "Bu kullanıcı henüz birşey göndermedi.",
@@ -76,5 +77,6 @@
"enable_topic_searching": "Konu içi aramayı aktive et",
"topic_search_help": "Aktive edilirse, konu içi arama tarayıcının normal arama davranışını değiştirerek tüm konuyu aramanızı sağlar.",
"follow_topics_you_reply_to": "İleti gönderdiğim konuları takip et.",
- "follow_topics_you_create": "Kendi yarattığım konuları takip et."
+ "follow_topics_you_create": "Kendi yarattığım konuları takip et.",
+ "grouptitle": "Select the group title you would like to display"
}
\ No newline at end of file
diff --git a/public/language/vi/error.json b/public/language/vi/error.json
index 56d5a49788..5a9d22c3ee 100644
--- a/public/language/vi/error.json
+++ b/public/language/vi/error.json
@@ -18,7 +18,7 @@
"username-taken": "Tên đăng nhập đã tồn tại",
"email-taken": "Email đã được đăng kí",
"email-not-confirmed": "Email của bạn chưa được xác nhận, xin hãy nhấn vào đây để xác nhận địa chỉ này là của bạn",
- "email-not-confirmed-chat": "Bạn không thể trò chuyện cho đến khi thư điện tử của bạn được xác nhận",
+ "email-not-confirmed-chat": "You are unable to chat until your email is confirmed, please click here to confirm your email.",
"no-email-to-confirm": "This forum requires email confirmation, please click here to enter an email",
"email-confirm-failed": "We could not confirm your email, please try again later.",
"username-too-short": "Tên đăng nhập quá ngắn",
diff --git a/public/language/vi/modules.json b/public/language/vi/modules.json
index 81ca0692b5..ecf53d1f0f 100644
--- a/public/language/vi/modules.json
+++ b/public/language/vi/modules.json
@@ -17,5 +17,6 @@
"chat.three_months": "3 tháng",
"composer.user_said_in": "%1 đã nói trong %2:",
"composer.user_said": "%1 đã nói:",
- "composer.discard": "Bạn có chắc chắn hủy bỏ bài viết này?"
+ "composer.discard": "Bạn có chắc chắn hủy bỏ bài viết này?",
+ "composer.submit_and_lock": "Submit and Lock"
}
\ No newline at end of file
diff --git a/public/language/vi/pages.json b/public/language/vi/pages.json
index 153a1f31d8..717907a267 100644
--- a/public/language/vi/pages.json
+++ b/public/language/vi/pages.json
@@ -14,6 +14,7 @@
"user.groups": "%1's Groups",
"user.favourites": "Các bài gửi yêu thích của %1",
"user.settings": "Thiết lập cho người dùng",
+ "user.watched": "Topics watched by %1",
"maintenance.text": "%1 đang được bảo trì. Xin vui lòng quay lại sau.",
"maintenance.messageIntro": "Ban quản lí để lại lời nhắn sau:"
}
\ No newline at end of file
diff --git a/public/language/vi/tags.json b/public/language/vi/tags.json
index 68f5639c02..7b8931883f 100644
--- a/public/language/vi/tags.json
+++ b/public/language/vi/tags.json
@@ -1,7 +1,7 @@
{
"no_tag_topics": "Không có bài viết nào với thẻ này.",
"tags": "Thẻ",
- "enter_tags_here": "Enter tags here. %1-%2 characters. Press enter after each tag.",
+ "enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
"enter_tags_here_short": "Tên thẻ...",
"no_tags": "Chưa có thẻ nào."
}
\ No newline at end of file
diff --git a/public/language/vi/user.json b/public/language/vi/user.json
index a9ee90df9f..64fa5b6cdd 100644
--- a/public/language/vi/user.json
+++ b/public/language/vi/user.json
@@ -60,6 +60,7 @@
"digest_monthly": "Hàng tháng",
"send_chat_notifications": "Gửi một email nếu có tin nhắn chat mới đến và tôi không online",
"send_post_notifications": "Send an email when replies are made to topics I am subscribed to",
+ "settings-require-reload": "Some setting changes require a reload. Click here to reload the page.",
"has_no_follower": "Người dùng này hiện chưa có ai theo dõi :(",
"follows_no_one": "Người dùng này hiện chưa theo dõi ai :(",
"has_no_posts": "Người dùng này chưa viết bài nào",
@@ -76,5 +77,6 @@
"enable_topic_searching": "Bật In-topic Searching",
"topic_search_help": "Nếu được bật, in-topic searching sẽ thay thế tính năng tìm kiếu mặc định của trình duyệt và giúp bạn tìm trong toàn bộ nội dung bài viết, thay vì chỉ tìm trong những gì đang có trên màn hình.",
"follow_topics_you_reply_to": "Theo dõi chủ đề mà bạn trả lời",
- "follow_topics_you_create": "Theo dõi chủ đề bạn tạo"
+ "follow_topics_you_create": "Theo dõi chủ đề bạn tạo",
+ "grouptitle": "Select the group title you would like to display"
}
\ No newline at end of file
diff --git a/public/language/zh_CN/email.json b/public/language/zh_CN/email.json
index 9f0316ce3b..f25a53cd83 100644
--- a/public/language/zh_CN/email.json
+++ b/public/language/zh_CN/email.json
@@ -1,24 +1,24 @@
{
- "password-reset-requested": "密码重置申请 - %1!",
+ "password-reset-requested": "密码重置申请 - %1!",
"welcome-to": "欢迎来到 %1",
"greeting_no_name": "您好",
"greeting_with_name": "%1,您好",
- "welcome.text1": "谢谢您注册 %1 帐户!",
+ "welcome.text1": "感谢您注册 %1 帐户!",
"welcome.text2": "需要在校验您注册时填写的电子邮箱地址后,才能全面激活您的帐户。",
"welcome.cta": "点击这里确认您的电子邮箱地址",
- "reset.text1": "我们收到了重置您帐户密码的申请,可能是因为您遗忘了密码。如果不是,请忽略这封邮件。",
+ "reset.text1": "可能由于您忘记了密码,我们收到了重置您帐户密码的申请。 如果您没有提交密码重置的请求,请忽略这封邮件。",
"reset.text2": "如需继续重置密码,请点击下面的链接:",
"reset.cta": "点击这里重置您的密码",
"reset.notify.subject": "更改密码成功",
- "reset.notify.text1": "我们注意到你在 %1 上,成功修改了你的密码。",
+ "reset.notify.text1": "您在 %1 上的密码被成功修改。",
"reset.notify.text2": "如果你没有授权此操作,请立即联系管理员。",
"digest.notifications": "您有来自 %1 的未读通知:",
"digest.latest_topics": "来自 %1 的最新主题",
"digest.cta": "点击这里访问 %1",
"digest.unsub.info": "根据您的订阅设置,为您发送此摘要。",
- "digest.no_topics": "最近 %1,有一些未激活的主题",
+ "digest.no_topics": "最近 %1 没有活跃的主题",
"notif.chat.subject": "收到来自 %1 的新聊天消息",
- "notif.chat.cta": "点击这里恢复会话",
+ "notif.chat.cta": "点击这里继续会话",
"notif.chat.unsub.info": "根据您的订阅设置,为您发送此聊天提醒。",
"notif.post.cta": "点击这里阅读全主题。",
"notif.post.unsub.info": "根据您的订阅设置,为您发送此回帖提醒。",
diff --git a/public/language/zh_CN/error.json b/public/language/zh_CN/error.json
index b156a96793..0488353541 100644
--- a/public/language/zh_CN/error.json
+++ b/public/language/zh_CN/error.json
@@ -18,7 +18,7 @@
"username-taken": "用户名已被占用",
"email-taken": "电子邮箱已被占用",
"email-not-confirmed": "您的电子邮箱尚未确认,请点击这里确认您的电子邮箱。",
- "email-not-confirmed-chat": "在确认您的邮箱之前,您不能使用聊天功能",
+ "email-not-confirmed-chat": "You are unable to chat until your email is confirmed, please click here to confirm your email.",
"no-email-to-confirm": "本论坛需要电子邮箱确认,请点击这里输入一个电子邮箱地址",
"email-confirm-failed": "我们无法确认您的电子邮箱,请重试",
"username-too-short": "用户名太短",
diff --git a/public/language/zh_CN/groups.json b/public/language/zh_CN/groups.json
index 39eb395078..b7a60f7813 100644
--- a/public/language/zh_CN/groups.json
+++ b/public/language/zh_CN/groups.json
@@ -4,8 +4,8 @@
"owner": "用户组组长",
"new_group": "创建新用户组",
"no_groups_found": "还没有用户组",
- "pending.accept": "Accept",
- "pending.reject": "Reject",
+ "pending.accept": "接受",
+ "pending.reject": "拒绝",
"cover-instructions": "拖放照片,拖动位置,然后点击 保存",
"cover-change": "变更",
"cover-save": "保存",
@@ -15,20 +15,20 @@
"details.pending": "预备成员",
"details.has_no_posts": "此用户组的会员尚未发表任何帖子。",
"details.latest_posts": "最新帖子",
- "details.private": "Private",
+ "details.private": "私有",
"details.grant": "授予/取消所有权",
"details.kick": "踢",
"details.owner_options": "用户组管理",
- "details.group_name": "Group Name",
- "details.description": "Description",
- "details.badge_preview": "Badge Preview",
- "details.change_icon": "Change Icon",
- "details.change_colour": "Change Colour",
- "details.badge_text": "Badge Text",
- "details.userTitleEnabled": "Show Badge",
- "details.private_help": "If enabled, joining of groups requires approval from a group owner",
- "details.hidden": "Hidden",
- "details.hidden_help": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually",
+ "details.group_name": "用户组名",
+ "details.description": "描述",
+ "details.badge_preview": "标志预览",
+ "details.change_icon": "更改图标",
+ "details.change_colour": "更新颜色",
+ "details.badge_text": "标志文字",
+ "details.userTitleEnabled": "显示标志",
+ "details.private_help": "如果条件允许,必须得到群主批准才能加入该群。",
+ "details.hidden": "隐藏",
+ "details.hidden_help": "如果条件允许,这个群不再出现在此列表,所有用户要人工邀请加入。",
"event.updated": "用户组信息已更新",
"event.deleted": "用户组 \"%1\" 已被删除"
}
\ No newline at end of file
diff --git a/public/language/zh_CN/login.json b/public/language/zh_CN/login.json
index 3e8d54af50..9cf15f0e15 100644
--- a/public/language/zh_CN/login.json
+++ b/public/language/zh_CN/login.json
@@ -1,7 +1,7 @@
{
- "username-email": "Username / Email",
- "username": "Username",
- "email": "Email",
+ "username-email": "用户名/电子邮箱",
+ "username": "用户名",
+ "email": "邮件",
"remember_me": "记住我?",
"forgot_password": "忘记密码?",
"alternative_logins": "使用合作网站帐号登录",
diff --git a/public/language/zh_CN/modules.json b/public/language/zh_CN/modules.json
index 0049c202be..e309d83bbc 100644
--- a/public/language/zh_CN/modules.json
+++ b/public/language/zh_CN/modules.json
@@ -17,5 +17,6 @@
"chat.three_months": "3个月",
"composer.user_said_in": "%1 在 %2 中说:",
"composer.user_said": "%1 说:",
- "composer.discard": "确定想要取消此帖?"
+ "composer.discard": "确定想要取消此帖?",
+ "composer.submit_and_lock": "Submit and Lock"
}
\ No newline at end of file
diff --git a/public/language/zh_CN/notifications.json b/public/language/zh_CN/notifications.json
index f8a88ca3fe..f20ee0f1e4 100644
--- a/public/language/zh_CN/notifications.json
+++ b/public/language/zh_CN/notifications.json
@@ -2,7 +2,7 @@
"title": "通知",
"no_notifs": "您没有新的通知",
"see_all": "查看全部通知",
- "mark_all_read": "Mark all notifications read",
+ "mark_all_read": "标记全部为已读",
"back_to_home": "返回 %1",
"outgoing_link": "站外链接",
"outgoing_link_message": "您正在离开 %1。",
diff --git a/public/language/zh_CN/pages.json b/public/language/zh_CN/pages.json
index 6fde75dfe5..298f183f74 100644
--- a/public/language/zh_CN/pages.json
+++ b/public/language/zh_CN/pages.json
@@ -14,6 +14,7 @@
"user.groups": "%1 的用户组",
"user.favourites": "%1 收藏的帖子",
"user.settings": "用户设置",
+ "user.watched": "Topics watched by %1",
"maintenance.text": "%1 正在进行维护。请稍后再来。",
"maintenance.messageIntro": "此外,管理员留下的消息:"
}
\ No newline at end of file
diff --git a/public/language/zh_CN/recent.json b/public/language/zh_CN/recent.json
index c37b2c0557..1e76727b6a 100644
--- a/public/language/zh_CN/recent.json
+++ b/public/language/zh_CN/recent.json
@@ -6,14 +6,14 @@
"year": "年度热帖榜",
"alltime": "总热帖榜",
"no_recent_topics": "暂无主题。",
- "no_popular_topics": "There are no popular topics.",
- "there-is-a-new-topic": "这是个新主题。",
- "there-is-a-new-topic-and-a-new-post": "There is a new topic and a new post.",
- "there-is-a-new-topic-and-new-posts": "There is a new topic and %1 new posts.",
- "there-are-new-topics": "There are %1 new topics.",
- "there-are-new-topics-and-a-new-post": "There are %1 new topics and a new post.",
- "there-are-new-topics-and-new-posts": "There are %1 new topics and %2 new posts.",
- "there-is-a-new-post": "There is a new post.",
- "there-are-new-posts": "There are %1 new posts.",
+ "no_popular_topics": "没有热门主题",
+ "there-is-a-new-topic": "有一个新主题",
+ "there-is-a-new-topic-and-a-new-post": "有一个新主题和一个新发表",
+ "there-is-a-new-topic-and-new-posts": "有一个新主题和 %1 新发表",
+ "there-are-new-topics": "有 %1 个新主题",
+ "there-are-new-topics-and-a-new-post": "有 %1个新主题和一个新发表",
+ "there-are-new-topics-and-new-posts": "有 %1个新主题和 %2个新发表",
+ "there-is-a-new-post": "有一个新发表",
+ "there-are-new-posts": "有 %1个新发表",
"click-here-to-reload": "点击这里重新加载"
}
\ No newline at end of file
diff --git a/public/language/zh_CN/search.json b/public/language/zh_CN/search.json
index 68799a19f9..9df978a688 100644
--- a/public/language/zh_CN/search.json
+++ b/public/language/zh_CN/search.json
@@ -30,11 +30,11 @@
"topic-start-date": "主题开始日期",
"username": "用户名",
"category": "版面",
- "descending": "逆序",
+ "descending": "倒序",
"ascending": "顺序",
- "save-preferences": "Save preferences",
- "clear-preferences": "Clear preferences",
- "search-preferences-saved": "Search preferences saved",
- "search-preferences-cleared": "Search preferences cleared",
- "show-results-as": "Show results as"
+ "save-preferences": "保存设置",
+ "clear-preferences": "清除设置",
+ "search-preferences-saved": "搜索设置已保存",
+ "search-preferences-cleared": "搜索设置已清除",
+ "show-results-as": "结果显示为"
}
\ No newline at end of file
diff --git a/public/language/zh_CN/tags.json b/public/language/zh_CN/tags.json
index a50705d3d6..9802f9c79a 100644
--- a/public/language/zh_CN/tags.json
+++ b/public/language/zh_CN/tags.json
@@ -1,7 +1,7 @@
{
"no_tag_topics": "此话题还没有主题帖。",
"tags": "话题",
- "enter_tags_here": "Enter tags here. %1-%2 characters. Press enter after each tag.",
+ "enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
"enter_tags_here_short": "输入话题...",
"no_tags": "尚无话题。"
}
\ No newline at end of file
diff --git a/public/language/zh_CN/topic.json b/public/language/zh_CN/topic.json
index bd20fbdabc..9b113c0c90 100644
--- a/public/language/zh_CN/topic.json
+++ b/public/language/zh_CN/topic.json
@@ -12,7 +12,7 @@
"notify_me": "此主题有新回复时通知我",
"quote": "引用",
"reply": "回复",
- "guest-login-reply": "Log in to reply",
+ "guest-login-reply": "登录后回复",
"edit": "编辑",
"delete": "删除",
"purge": "清除",
diff --git a/public/language/zh_CN/user.json b/public/language/zh_CN/user.json
index 6c360a4d4e..6d29052981 100644
--- a/public/language/zh_CN/user.json
+++ b/public/language/zh_CN/user.json
@@ -60,6 +60,7 @@
"digest_monthly": "每月",
"send_chat_notifications": "当我不在线,并受到新的聊天消息时给我发邮件",
"send_post_notifications": "我订阅的主题有回复时发送邮件",
+ "settings-require-reload": "Some setting changes require a reload. Click here to reload the page.",
"has_no_follower": "此用户还没有粉丝 :(",
"follows_no_one": "此用户尚未关注任何人 :(",
"has_no_posts": "此用户尚未发布任何帖子。",
@@ -76,5 +77,6 @@
"enable_topic_searching": "启用主题内搜索",
"topic_search_help": "启用后,主题内搜索会替代浏览器默认的页面搜索,你可以在整个主题的全部内容进行搜索,而不是仅限于屏幕显示的内容。",
"follow_topics_you_reply_to": "关注您回复的主题。",
- "follow_topics_you_create": "关注您创建的主题。"
+ "follow_topics_you_create": "关注您创建的主题。",
+ "grouptitle": "Select the group title you would like to display"
}
\ No newline at end of file
diff --git a/public/language/zh_TW/email.json b/public/language/zh_TW/email.json
index 1062070b96..13f19de484 100644
--- a/public/language/zh_TW/email.json
+++ b/public/language/zh_TW/email.json
@@ -9,9 +9,9 @@
"reset.text1": "我們收到一個重設密碼的請求,你忘掉了密碼嗎?如果不是,請忽略這封郵件。",
"reset.text2": "要繼續重置密碼,請點擊以下鏈接:",
"reset.cta": "點擊這裡重置密碼",
- "reset.notify.subject": "Password successfully changed",
- "reset.notify.text1": "We are notifying you that on %1, your password was changed successfully.",
- "reset.notify.text2": "If you did not authorise this, please notify an administrator immediately.",
+ "reset.notify.subject": "密碼修改成功",
+ "reset.notify.text1": "提醒您密碼已於 %1 修改成功",
+ "reset.notify.text2": "如果您未允許此動作, 請即刻通知系統管理者",
"digest.notifications": "你有來自$1的未讀通知:",
"digest.latest_topics": "來自%1的最新話題",
"digest.cta": "點擊這裡訪問%1",
@@ -20,8 +20,8 @@
"notif.chat.subject": "收到來自$1的聊天消息",
"notif.chat.cta": "點擊此處繼續對話",
"notif.chat.unsub.info": "本聊天通知按您的訂閱設置發送給您。",
- "notif.post.cta": "Click here to read the full topic",
- "notif.post.unsub.info": "This post notification was sent to you due to your subscription settings.",
+ "notif.post.cta": "按此以閱讀完整標題",
+ "notif.post.unsub.info": "本發文通知按您的訂閱設置發送給您。",
"test.text1": "這是一個測試電郵,以確認您的NodeBB郵件器設置正確。",
"unsub.cta": "點擊這裡更改這些設置",
"closing": "謝謝!"
diff --git a/public/language/zh_TW/error.json b/public/language/zh_TW/error.json
index 9efb1e5ec1..3aae7dd5bc 100644
--- a/public/language/zh_TW/error.json
+++ b/public/language/zh_TW/error.json
@@ -18,7 +18,7 @@
"username-taken": "該使用者名稱已被使用",
"email-taken": "該信箱已被使用",
"email-not-confirmed": "您的電郵尚未得到確認,請點擊此處確認您的電子郵件。",
- "email-not-confirmed-chat": "You are unable to chat until your email is confirmed",
+ "email-not-confirmed-chat": "You are unable to chat until your email is confirmed, please click here to confirm your email.",
"no-email-to-confirm": "This forum requires email confirmation, please click here to enter an email",
"email-confirm-failed": "We could not confirm your email, please try again later.",
"username-too-short": "用戶名太短",
diff --git a/public/language/zh_TW/global.json b/public/language/zh_TW/global.json
index 3dc23be905..f0a81aed7a 100644
--- a/public/language/zh_TW/global.json
+++ b/public/language/zh_TW/global.json
@@ -3,10 +3,10 @@
"search": "搜索",
"buttons.close": "關閉",
"403.title": "禁止存取",
- "403.message": "You seem to have stumbled upon a page that you do not have access to.",
- "403.login": "Perhaps you should try logging in?",
+ "403.message": "你沒有該頁面的存取權限",
+ "403.login": "可能是因為你尚未登入?",
"404.title": "無法找到該頁",
- "404.message": "You seem to have stumbled upon a page that does not exist. Return to the home page.",
+ "404.message": "你所查找的頁面並不存在,返回主頁。",
"500.title": "內部錯誤",
"500.message": "不好!看來是哪裡出錯了!",
"register": "注冊",
@@ -27,7 +27,7 @@
"header.tags": "標籤",
"header.popular": "熱門",
"header.users": "用戶",
- "header.groups": "Groups",
+ "header.groups": "群組",
"header.chats": "聊天",
"header.notifications": "通知",
"header.search": "搜索",
@@ -75,7 +75,7 @@
"updated.title": "討論區更新完畢",
"updated.message": "這個討論區最近被更新至最新的版本. 按此來重整這個頁面",
"privacy": "隱私",
- "follow": "Follow",
- "unfollow": "Unfollow",
+ "follow": "追蹤",
+ "unfollow": "取消追蹤",
"delete_all": "全部刪除"
}
\ No newline at end of file
diff --git a/public/language/zh_TW/modules.json b/public/language/zh_TW/modules.json
index ff6d2488f4..3e7d758914 100644
--- a/public/language/zh_TW/modules.json
+++ b/public/language/zh_TW/modules.json
@@ -17,5 +17,6 @@
"chat.three_months": "3個月",
"composer.user_said_in": "%1在%2裡說:",
"composer.user_said": "%1說:",
- "composer.discard": "你確定要放棄這帖子嗎?"
+ "composer.discard": "你確定要放棄這帖子嗎?",
+ "composer.submit_and_lock": "Submit and Lock"
}
\ No newline at end of file
diff --git a/public/language/zh_TW/notifications.json b/public/language/zh_TW/notifications.json
index 6736c06584..660e984111 100644
--- a/public/language/zh_TW/notifications.json
+++ b/public/language/zh_TW/notifications.json
@@ -2,21 +2,21 @@
"title": "通知",
"no_notifs": "沒有新消息",
"see_all": "顯示全部",
- "mark_all_read": "Mark all notifications read",
+ "mark_all_read": "所有訊息設為已讀",
"back_to_home": "返回%1",
- "outgoing_link": "站外鏈接",
+ "outgoing_link": "站外連結",
"outgoing_link_message": "你正在離開 %1.",
"continue_to": "繼續前往 %1",
"return_to": "返回%1",
"new_notification": "新訊息通知",
"you_have_unread_notifications": "您有未讀的訊息!",
"new_message_from": "來自 %1 的新訊息",
- "upvoted_your_post_in": "%1 upvote了您在 %2的帖子。",
- "moved_your_post": "%1 移動了你的帖子。",
+ "upvoted_your_post_in": "%1 upvote了您在 %2的post。",
+ "moved_your_post": "%1 移動了你的post。",
"moved_your_topic": "%1 移動了你的主題。",
- "favourited_your_post_in": "%1 收藏了你在 %2的帖子。",
- "user_flagged_post_in": "%1 舉報了 %2裡的一個帖子。",
- "user_posted_to": "%1 has posted a reply to: %2",
+ "favourited_your_post_in": "%1 收藏了你在 %2的post。",
+ "user_flagged_post_in": "%1 舉報了 %2裡的一個post。",
+ "user_posted_to": "%1 發布一個回覆給: %2",
"user_posted_topic": "%1 發布了一個新的主題: %2",
"user_mentioned_you_in": "%1 在 %2提到你",
"user_started_following_you": "%1 開始關注你。",
diff --git a/public/language/zh_TW/pages.json b/public/language/zh_TW/pages.json
index bcb655c3e2..20af148f85 100644
--- a/public/language/zh_TW/pages.json
+++ b/public/language/zh_TW/pages.json
@@ -11,9 +11,10 @@
"user.followers": "People who Follow %1",
"user.posts": "文章由 %1 所張貼",
"user.topics": "主題由 %1 所創建",
- "user.groups": "%1's Groups",
+ "user.groups": "%1 的群組",
"user.favourites": "%1's 最喜愛的文章",
"user.settings": "使用者設定",
+ "user.watched": "Topics watched by %1",
"maintenance.text": "%1目前正在進行維修。請稍後再來。",
"maintenance.messageIntro": "此外,管理員有以下信息:"
}
\ No newline at end of file
diff --git a/public/language/zh_TW/search.json b/public/language/zh_TW/search.json
index 66fee75c1a..eef48e983e 100644
--- a/public/language/zh_TW/search.json
+++ b/public/language/zh_TW/search.json
@@ -1,40 +1,40 @@
{
- "results_matching": "有%1個跟\"%2\"匹配的結果(%3秒)",
- "no-matches": "沒有找到匹配的主題",
- "in": "In",
- "by": "By",
- "titles": "Titles",
- "titles-posts": "Titles and Posts",
+ "results_matching": "有%1個跟\"%2\"相符的結果(%3秒)",
+ "no-matches": "沒有找到相符的主題",
+ "in": "在",
+ "by": "由",
+ "titles": "標題",
+ "titles-posts": "標題與發布",
"posted-by": "Posted by",
- "in-categories": "In Categories",
- "search-child-categories": "Search child categories",
- "reply-count": "Reply Count",
- "at-least": "At least",
- "at-most": "At most",
- "post-time": "Post time",
- "newer-than": "Newer than",
- "older-than": "Older than",
- "any-date": "Any date",
- "yesterday": "Yesterday",
- "one-week": "One week",
- "two-weeks": "Two weeks",
- "one-month": "One month",
- "three-months": "Three months",
- "six-months": "Six months",
- "one-year": "One year",
- "sort-by": "Sort by",
- "last-reply-time": "Last reply time",
- "topic-title": "Topic title",
- "number-of-replies": "Number of replies",
- "number-of-views": "Number of views",
- "topic-start-date": "Topic start date",
- "username": "Username",
- "category": "Category",
- "descending": "In descending order",
- "ascending": "In ascending order",
- "save-preferences": "Save preferences",
- "clear-preferences": "Clear preferences",
- "search-preferences-saved": "Search preferences saved",
- "search-preferences-cleared": "Search preferences cleared",
- "show-results-as": "Show results as"
+ "in-categories": "在類別中",
+ "search-child-categories": "搜尋子類別",
+ "reply-count": "回覆數量",
+ "at-least": "最少",
+ "at-most": "最多",
+ "post-time": "發布時間",
+ "newer-than": "較新",
+ "older-than": "較舊",
+ "any-date": "任意日期",
+ "yesterday": "昨天",
+ "one-week": "一周",
+ "two-weeks": "兩周",
+ "one-month": "一個月",
+ "three-months": "三個月",
+ "six-months": "六個月",
+ "one-year": "一年",
+ "sort-by": "排序依據",
+ "last-reply-time": "最後回覆時間",
+ "topic-title": "主題",
+ "number-of-replies": "回覆數量",
+ "number-of-views": "閱讀數量",
+ "topic-start-date": "主題開始時間",
+ "username": "使用者名稱",
+ "category": "類別",
+ "descending": "降冪排序",
+ "ascending": "升冪排序",
+ "save-preferences": "存到我的最愛",
+ "clear-preferences": "清除我的最愛",
+ "search-preferences-saved": "搜尋我的最愛已儲存",
+ "search-preferences-cleared": "搜尋我的最愛已清除",
+ "show-results-as": "結果顯示"
}
\ No newline at end of file
diff --git a/public/language/zh_TW/tags.json b/public/language/zh_TW/tags.json
index dc5c1601ba..ce9de5c88b 100644
--- a/public/language/zh_TW/tags.json
+++ b/public/language/zh_TW/tags.json
@@ -1,7 +1,7 @@
{
"no_tag_topics": "沒有此標籤的主題。",
"tags": "標籤",
- "enter_tags_here": "Enter tags here. %1-%2 characters. Press enter after each tag.",
+ "enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
"enter_tags_here_short": "輸入標籤...",
"no_tags": "還沒有標籤呢。"
}
\ No newline at end of file
diff --git a/public/language/zh_TW/topic.json b/public/language/zh_TW/topic.json
index 41edd8828f..a65ccc6833 100644
--- a/public/language/zh_TW/topic.json
+++ b/public/language/zh_TW/topic.json
@@ -12,7 +12,7 @@
"notify_me": "該主題有新回覆時通知我",
"quote": "引用",
"reply": "回覆",
- "guest-login-reply": "Log in to reply",
+ "guest-login-reply": "登入以回覆",
"edit": "編輯",
"delete": "刪除",
"purge": "清除",
@@ -75,7 +75,7 @@
"fork_no_pids": "尚未選擇文章!",
"fork_success": "成功分叉成新的主題!點擊這裡進入新的主題。",
"composer.title_placeholder": "輸入標題...",
- "composer.handle_placeholder": "Name",
+ "composer.handle_placeholder": "名字",
"composer.discard": "放棄",
"composer.submit": "發表",
"composer.replying_to": "回覆給 %1",
@@ -95,5 +95,5 @@
"oldest_to_newest": "從舊到新",
"newest_to_oldest": "從新到舊",
"most_votes": "得票最多",
- "most_posts": "Most posts"
+ "most_posts": "最多post"
}
\ No newline at end of file
diff --git a/public/language/zh_TW/user.json b/public/language/zh_TW/user.json
index 1752a45979..008808ae6f 100644
--- a/public/language/zh_TW/user.json
+++ b/public/language/zh_TW/user.json
@@ -2,8 +2,8 @@
"banned": "封鎖",
"offline": "下線",
"username": "使用者名稱",
- "joindate": "Join Date",
- "postcount": "Post Count",
+ "joindate": "加入時間",
+ "postcount": "Post數量",
"email": "Email",
"confirm_email": "確認電郵",
"delete_account": "刪除帳戶",
@@ -60,11 +60,12 @@
"digest_monthly": "每月",
"send_chat_notifications": "如果有新的聊天消息而我不在線,發送郵件給我",
"send_post_notifications": "Send an email when replies are made to topics I am subscribed to",
+ "settings-require-reload": "Some setting changes require a reload. Click here to reload the page.",
"has_no_follower": "該用戶還沒有被任何人關注。",
"follows_no_one": "該用戶還沒有關注過任何人。",
"has_no_posts": "尚未有任何貼文.",
"has_no_topics": "這位使用者尚未發表任何主題。",
- "has_no_watched_topics": "This user didn't watch any topics yet.",
+ "has_no_watched_topics": "這位使用者尚未發表任何主題",
"email_hidden": "郵箱被隱藏",
"hidden": "隱藏",
"paginate_description": "使用分頁取代瀏覽載入文章模式.",
@@ -76,5 +77,6 @@
"enable_topic_searching": "Enable In-Topic Searching",
"topic_search_help": "If enabled, in-topic searching will override the browser's default page search behaviour and allow you to search through the entire topic, instead of what is only shown on screen.",
"follow_topics_you_reply_to": "關注您回复的主題。",
- "follow_topics_you_create": "關注您創建的主題。"
+ "follow_topics_you_create": "關注您創建的主題。",
+ "grouptitle": "Select the group title you would like to display"
}
\ No newline at end of file
diff --git a/public/less/admin/admin.less b/public/less/admin/admin.less
index 528c9f7381..6d4dce3e43 100644
--- a/public/less/admin/admin.less
+++ b/public/less/admin/admin.less
@@ -3,7 +3,6 @@
@import "./general/dashboard";
@import "./general/navigation";
-@import "./manage/categories";
@import "./manage/groups";
@import "./manage/tags";
@import "./manage/flags";
@@ -296,3 +295,48 @@
max-width: calc( ~"(100% - 200px)/4" );
}
}
+
+.category-settings-form {
+ h3 {
+ margin-top: 0;
+ .pointer;
+ }
+
+ h4 {
+ .pointer;
+ }
+}
+
+.category-preview {
+ .pointer;
+ width: 100%;
+ height: 100px;
+ text-align: center;
+ color: white;
+ margin-top: 0;
+
+ .icon {
+ width: 30px;
+ height: 30px;
+ line-height: 40px;
+ display: inline-block;
+ margin: 35px 5px 0 5px;
+ }
+}
+
+.table-reordering {
+ tr:hover {
+ cursor: move;
+ }
+}
+
+.privilege-table {
+ th {
+ font-size: 10px;
+ }
+
+ img {
+ max-width: 24px;
+ max-height: 24px;
+ }
+}
diff --git a/public/less/admin/general/dashboard.less b/public/less/admin/general/dashboard.less
index 1001893ed7..71c2298d31 100644
--- a/public/less/admin/general/dashboard.less
+++ b/public/less/admin/general/dashboard.less
@@ -38,7 +38,7 @@
li {
float: left;
- width: 48%;
+ width: 100%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
@@ -90,7 +90,7 @@
border-color: #46BFBD;
background-color: #5AD3D1;
}
- &.on-homepage {
+ &.on-categories {
border-color: #F7464A;
background-color: #FF5A5E;
}
@@ -98,10 +98,14 @@
border-color: #FDB45C;
background-color: #FFC870;
}
- &.idle {
+ &.recent {
border-color: #949FB1;
background-color: #A8B3C5;
}
+ &.tags {
+ border-color: #FDB45C;
+ background-color: #8FA633;
+ }
}
}
}
diff --git a/public/less/admin/manage/categories.less b/public/less/admin/manage/categories.less
deleted file mode 100644
index 5982a108dd..0000000000
--- a/public/less/admin/manage/categories.less
+++ /dev/null
@@ -1,133 +0,0 @@
-.categories {
- .entry-row {
- border-radius: 10px;
- cursor: move;
- list-style-type: none;
- }
-
- .fa-icons .col-md-3 {
- padding-left: 0;
- padding-right: 0;
- }
-
- .admin-categories {
- margin-top: 20px;
-
- > ul > li {
-
- label {
- font-size: 12px;
- font-weight: none;
- }
-
- form {
- .btn-group {
- display: block;
- }
- }
- h3 {
- margin-top: 0;
- }
-
- h3, h4 {
- cursor: text;
- .fa-edit {
- cursor: pointer;
- }
- }
-
- h3, h4, .toggle-settings {
- padding-left: 8px;
- }
-
- .preview-box {
- width: 100%;
- height: 100px;
- text-align: center;
- color: white;
- margin-top: 0;
-
- .icon {
- width: 30px;
- height: 30px;
- line-height: 40px;
- display: inline-block;
- margin: 35px 5px 0 5px;
- }
- }
-
- .dropdown {
- hr {
- margin: 5px auto;
- }
- }
- }
- }
-
- .permissions-modal {
- .search-results {
- padding: 0;
-
- > li {
- .zebra;
- clear: both;
- list-style-type: none;
- padding: 0.5em;
- min-height: 46px;
-
- a {
- &:before {
- font-family: "FontAwesome";
- content: "\f096";
- display: inline-block;
- min-width: 20px;
- }
-
- &.active:before {
- content: "\f046";
- }
- }
-
- img {
- width: 32px;
- margin-right: 1em;
- }
- }
- }
-
- .members {
- li {
- list-style-type: none;
- .inline-block;
- .pointer;
-
- img {
- width: 32px;
- }
-
- &.empty {
- font-size: 12px;
- cursor: auto;
- min-height: 28px;
- }
- }
- }
- }
-
- .category-list {
- padding: 0;
-
- li {
- .inline-block;
- .pointer;
- padding: 0.5em;
- margin: 0.25em;
- .border-radius(3px);
-
- &.disabled {
- -webkit-filter: grayscale(30%);
- .opacity(0.5);
- }
- }
- }
-}
\ No newline at end of file
diff --git a/public/less/generics.less b/public/less/generics.less
new file mode 100644
index 0000000000..e44d5f0d72
--- /dev/null
+++ b/public/less/generics.less
@@ -0,0 +1,16 @@
+.category-list {
+ padding: 0;
+
+ li {
+ .inline-block;
+ .pointer;
+ padding: 0.5em;
+ margin: 0.25em;
+ .border-radius(3px);
+
+ &.disabled {
+ -webkit-filter: grayscale(30%);
+ .opacity(0.5);
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/src/admin/appearance/skins.js b/public/src/admin/appearance/skins.js
index b67842b1b5..374b88a7b4 100644
--- a/public/src/admin/appearance/skins.js
+++ b/public/src/admin/appearance/skins.js
@@ -32,12 +32,9 @@ define('admin/appearance/skins', function() {
app.alert({
alert_id: 'admin:theme',
type: 'info',
- title: 'Theme Changed',
- message: 'Please restart your NodeBB to fully activate this theme',
- timeout: 5000,
- clickfn: function() {
- socket.emit('admin.restart');
- }
+ title: 'Skin Updated',
+ message: themeId + ' skin was successfully applied',
+ timeout: 5000
});
});
}
diff --git a/public/src/admin/general/dashboard.js b/public/src/admin/general/dashboard.js
index 7a2243465d..a842c0d2af 100644
--- a/public/src/admin/general/dashboard.js
+++ b/public/src/admin/general/dashboard.js
@@ -141,10 +141,8 @@ define('admin/general/dashboard', ['semver'], function(semver) {
'Connections
' +
'';
- var idle = data.socketCount - (data.users.home + data.users.topics + data.users.category);
-
updateRegisteredGraph(data.onlineRegisteredCount, data.onlineGuestCount);
- updatePresenceGraph(data.users.home, data.users.topics, data.users.category, idle);
+ updatePresenceGraph(data.users);
updateTopicsGraph(data.topics);
$('#active-users').html(html);
@@ -248,46 +246,52 @@ define('admin/general/dashboard', ['semver'], function(semver) {
});
graphs.registered = new Chart(registeredCtx).Doughnut([{
- value: 1,
- color:"#F7464A",
- highlight: "#FF5A5E",
- label: "Registered Users"
- },
- {
- value: 1,
- color: "#46BFBD",
- highlight: "#5AD3D1",
- label: "Anonymous Users"
- }], {
- responsive: true
- });
+ value: 1,
+ color:"#F7464A",
+ highlight: "#FF5A5E",
+ label: "Registered Users"
+ },
+ {
+ value: 1,
+ color: "#46BFBD",
+ highlight: "#5AD3D1",
+ label: "Anonymous Users"
+ }], {
+ responsive: true
+ });
graphs.presence = new Chart(presenceCtx).Doughnut([{
- value: 1,
- color:"#F7464A",
- highlight: "#FF5A5E",
- label: "On homepage"
- },
- {
- value: 1,
- color: "#46BFBD",
- highlight: "#5AD3D1",
- label: "Reading posts"
- },
- {
- value: 1,
- color: "#FDB45C",
- highlight: "#FFC870",
- label: "Browsing topics"
- },
- {
- value: 1,
- color: "#949FB1",
- highlight: "#A8B3C5",
- label: "Idle"
- }], {
- responsive: true
- });
+ value: 1,
+ color:"#F7464A",
+ highlight: "#FF5A5E",
+ label: "On categories list"
+ },
+ {
+ value: 1,
+ color: "#46BFBD",
+ highlight: "#5AD3D1",
+ label: "Reading posts"
+ },
+ {
+ value: 1,
+ color: "#FDB45C",
+ highlight: "#FFC870",
+ label: "Browsing topics"
+ },
+ {
+ value: 1,
+ color: "#949FB1",
+ highlight: "#A8B3C5",
+ label: "Recent/Unread"
+ },
+ {
+ value: 1,
+ color: "#8FA633",
+ highlight: "#3FA7B8",
+ label: "Tags"
+ }], {
+ responsive: true
+ });
graphs.topics = new Chart(topicsCtx).Doughnut([], {responsive: true});
topicsCanvas.onclick = function(evt){
@@ -345,11 +349,13 @@ define('admin/general/dashboard', ['semver'], function(semver) {
graphs.registered.update();
}
- function updatePresenceGraph(homepage, posts, topics, idle) {
- graphs.presence.segments[0].value = homepage;
- graphs.presence.segments[1].value = posts;
- graphs.presence.segments[2].value = topics;
- graphs.presence.segments[3].value = idle;
+ function updatePresenceGraph(users) {
+ graphs.presence.segments[0].value = users.categories;
+ graphs.presence.segments[1].value = users.topics;
+ graphs.presence.segments[2].value = users.category;
+ graphs.presence.segments[3].value = users.recent;
+ graphs.presence.segments[4].value = users.tags;
+
graphs.presence.update();
}
@@ -424,6 +430,9 @@ define('admin/general/dashboard', ['semver'], function(semver) {
function buildTopicsLegend() {
var legend = $('#topics-legend').html('');
+ segments.sort(function(a, b) {
+ return b.value - a.value;
+ });
for (var i = 0, ii = segments.length; i < ii; i++) {
var topic = segments[i],
label = topic.tid === '0' ? topic.label : ' ' + topic.label + '';
diff --git a/public/src/admin/general/navigation.js b/public/src/admin/general/navigation.js
index 9bd684ec80..c98b9fa7be 100644
--- a/public/src/admin/general/navigation.js
+++ b/public/src/admin/general/navigation.js
@@ -1,7 +1,7 @@
"use strict";
-/* global define, app, ajaxify, socket, templates, bootbox, translator */
+/* global define, app, ajaxify, socket, templates, bootbox */
-define('admin/general/navigation', function() {
+define('admin/general/navigation', ['translator'], function(translator) {
var navigation = {},
available;
diff --git a/public/src/admin/manage/categories.js b/public/src/admin/manage/categories.js
index 52d13874ab..535d902dfe 100644
--- a/public/src/admin/manage/categories.js
+++ b/public/src/admin/manage/categories.js
@@ -1,88 +1,66 @@
"use strict";
/*global define, socket, app, bootbox, templates, ajaxify, RELATIVE_PATH*/
-define('admin/manage/categories', [
- 'uploader',
- 'iconSelect',
- 'admin/modules/colorpicker'
-], function(uploader, iconSelect, colorpicker) {
+define('admin/manage/categories', function() {
var Categories = {};
Categories.init = function() {
- var modified_categories = {};
+ var bothEl = $('#active-categories, #disabled-categories');
- function modified(el) {
- var cid = $(el).parents('li').attr('data-cid');
- if(cid) {
- modified_categories[cid] = modified_categories[cid] || {};
- modified_categories[cid][$(el).attr('data-name')] = $(el).val();
+ function updateCategoryOrders(evt, ui) {
+ var categories = $(evt.target).children(),
+ modified = {},
+ cid;
+
+ for(var i=0;iWarning! All topics and posts in this category will be purged!', function(confirm) {
- if (!confirm) {
- return;
- }
- socket.emit('admin.categories.purge', cid, function(err) {
- if (err) {
- return app.alertError(err.message);
- }
- app.alertSuccess('Category purged!');
- categoryRow.remove();
- });
- });
- });
-
- $('.admin-categories').on('click', '.duplicate', function() {
- var inputs = $(this).parents('li[data-cid]').find('[data-name]'),
- data = {};
-
- inputs.each(function() {
- var name = $(this).attr('data-name');
- switch (name) {
- case 'icon':
- data[name] = $(this).attr('value');
- break;
- case 'name':
- data[name] = $(this).val() + ' (copy)';
- break;
- default:
- data[name] = $(this).val();
- }
- });
-
- saveNew(data);
- });
-
- $('.admin-categories').on('click', '.permissions', function() {
- var cid = $(this).parents('li[data-cid]').attr('data-cid');
- Categories.launchPermissionsModal(cid);
- return false;
- });
-
-
- $('.admin-categories').on('click', '.upload-button', function() {
- var inputEl = $(this),
- cid = inputEl.parents('li[data-cid]').attr('data-cid');
-
- uploader.open(RELATIVE_PATH + '/api/admin/category/uploadpicture', { cid: cid }, 0, function(imageUrlOnServer) {
- inputEl.val(imageUrlOnServer);
- var previewBox = inputEl.parents('li[data-cid]').find('.preview-box');
- previewBox.css('background', 'url(' + imageUrlOnServer + '?' + new Date().getTime() + ')')
- .css('background-size', 'cover');
- modified(inputEl[0]);
- });
- });
-
- $('.admin-categories').on('click', '.delete-image', function() {
- var parent = $(this).parents('li[data-cid]'),
- inputEl = parent.find('.upload-button'),
- preview = parent.find('.preview-box'),
- bgColor = parent.find('.category_bgColor').val();
-
- inputEl.val('');
- modified(inputEl[0]);
-
- preview.css('background', bgColor);
-
- $(this).addClass('hide').hide();
- });
-
- $('#revertChanges').on('click', function() {
- ajaxify.refresh();
- });
-
- setupEditTargets();
-
- $('button[data-action="setParent"]').on('click', function() {
- var cid = $(this).parents('[data-cid]').attr('data-cid'),
- modal = $('#setParent');
-
- modal.find('select').val($(this).attr('data-parentCid'));
- modal.attr('data-cid', cid).modal();
- });
-
- $('button[data-action="removeParent"]').on('click', function() {
- var cid = $(this).parents('[data-cid]').attr('data-cid');
- var payload= {};
- payload[cid] = {
- parentCid: 0
- };
- socket.emit('admin.categories.update', payload, function(err) {
- if (err) {
- return app.alertError(err.message);
- }
- ajaxify.go('admin/manage/categories/active');
- });
- });
-
- $('#setParent [data-cid]').on('click', function() {
- var modalEl = $('#setParent'),
- parentCid = $(this).attr('data-cid'),
- payload = {};
-
- payload[modalEl.attr('data-cid')] = {
- parentCid: parentCid
- };
-
- socket.emit('admin.categories.update', payload, function(err) {
- modalEl.one('hidden.bs.modal', function() {
- ajaxify.go('admin/manage/categories/active');
- });
- modalEl.modal('hide');
- });
- });
- });
- };
-
- Categories.launchPermissionsModal = function(cid) {
- var modal = $('#category-permissions-modal'),
- searchEl = modal.find('#permission-search'),
- resultsEl = modal.find('.search-results.users'),
- groupsResultsEl = modal.find('.search-results.groups'),
- searchDelay;
-
- // Clear the search field and results
- searchEl.val('');
- resultsEl.html('');
-
- searchEl.off().on('keyup', function() {
- var searchEl = this,
- liEl;
-
- clearTimeout(searchDelay);
-
- searchDelay = setTimeout(function() {
- socket.emit('admin.categories.search', {
- username: searchEl.value,
- cid: cid
- }, function(err, results) {
- if(err) {
- return app.alertError(err.message);
- }
-
- templates.parse('admin/partials/categories/users', {
- users: results
- }, function(html) {
- resultsEl.html(html);
- });
- });
- }, 250);
- });
-
- Categories.refreshPrivilegeList(cid);
-
- resultsEl.off().on('click', '[data-priv]', function(e) {
- var anchorEl = $(this),
- uid = anchorEl.parents('li[data-uid]').attr('data-uid'),
- privilege = anchorEl.attr('data-priv');
- e.preventDefault();
- e.stopPropagation();
-
- socket.emit('admin.categories.setPrivilege', {
- cid: cid,
- uid: uid,
- privilege: privilege,
- set: !anchorEl.hasClass('active')
- }, function(err) {
- if (err) {
- return app.alertError(err.message);
- }
- anchorEl.toggleClass('active', !anchorEl.hasClass('active'));
- Categories.refreshPrivilegeList(cid);
- });
- });
-
- modal.off().on('click', '.members li > img', function() {
- searchEl.val($(this).attr('title'));
- searchEl.keyup();
- });
-
- // User Groups and privileges
- socket.emit('admin.categories.groupsList', cid, function(err, results) {
- if(err) {
- return app.alertError(err.message);
- }
-
- templates.parse('admin/partials/categories/groups', {
- groups: results
- }, function(html) {
- groupsResultsEl.html(html);
- });
- });
-
- groupsResultsEl.off().on('click', '[data-priv]', function(e) {
- var anchorEl = $(this),
- name = anchorEl.parents('li[data-name]').attr('data-name'),
- privilege = anchorEl.attr('data-priv');
- e.preventDefault();
- e.stopPropagation();
-
- socket.emit('admin.categories.setGroupPrivilege', {
- cid: cid,
- name: name,
- privilege: privilege,
- set: !anchorEl.hasClass('active')
- }, function(err) {
- if (!err) {
- anchorEl.toggleClass('active');
- }
- });
- });
-
- modal.modal();
- };
-
- Categories.refreshPrivilegeList = function (cid) {
- var modalEl = $('#category-permissions-modal'),
- memberList = $('.members');
-
- socket.emit('admin.categories.getPrivilegeSettings', cid, function(err, privilegeList) {
- var membersLength = privilegeList.length,
- liEl, x, userObj;
-
- memberList.html('');
- if (membersLength > 0) {
- for(x = 0; x < membersLength; x++) {
- userObj = privilegeList[x];
- liEl = $('').attr('data-uid', userObj.uid).html('
');
- memberList.append(liEl);
- }
- } else {
- liEl = $('').addClass('empty').html('None.');
- memberList.append(liEl);
- }
});
};
diff --git a/public/src/admin/manage/category.js b/public/src/admin/manage/category.js
new file mode 100644
index 0000000000..c51dba4a01
--- /dev/null
+++ b/public/src/admin/manage/category.js
@@ -0,0 +1,271 @@
+"use strict";
+/*global define, app, socket, ajaxify, RELATIVE_PATH, bootbox */
+
+define('admin/manage/category', [
+ 'uploader',
+ 'iconSelect',
+ 'admin/modules/colorpicker',
+ 'autocomplete'
+], function(uploader, iconSelect, colorpicker, autocomplete) {
+ var Category = {};
+
+ Category.init = function() {
+ var modified_categories = {};
+
+ function modified(el) {
+ var cid = $(el).parents('form').attr('data-cid');
+
+ if (cid) {
+ modified_categories[cid] = modified_categories[cid] || {};
+ modified_categories[cid][$(el).attr('data-name')] = $(el).val();
+ }
+ }
+
+ function save(e) {
+ e.preventDefault();
+
+ if(Object.keys(modified_categories).length) {
+ socket.emit('admin.categories.update', modified_categories, function(err, result) {
+ if (err) {
+ return app.alertError(err.message);
+ }
+
+ if (result && result.length) {
+ app.alert({
+ title: 'Updated Categories',
+ message: 'Category IDs ' + result.join(', ') + ' was successfully updated.',
+ type: 'success',
+ timeout: 2000
+ });
+ }
+ });
+ modified_categories = {};
+ }
+ }
+
+ $('.blockclass, form.category select').each(function() {
+ var $this = $(this);
+ $this.val($this.attr('data-value'));
+ });
+
+ function enableColorPicker(idx, inputEl) {
+ var $inputEl = $(inputEl),
+ previewEl = $inputEl.parents('[data-cid]').find('.preview-box');
+
+ colorpicker.enable($inputEl, function(hsb, hex) {
+ if ($inputEl.attr('data-name') === 'bgColor') {
+ previewEl.css('background', '#' + hex);
+ } else if ($inputEl.attr('data-name') === 'color') {
+ previewEl.css('color', '#' + hex);
+ }
+
+ modified($inputEl[0]);
+ });
+ }
+
+ function setupEditTargets() {
+ $('[data-edit-target]').on('click', function() {
+ var $this = $(this),
+ target = $($this.attr('data-edit-target'));
+
+ $this.addClass('hide');
+ target.removeClass('hide').on('blur', function() {
+ $this.removeClass('hide').children('span').html(this.value);
+ $(this).addClass('hide');
+ }).val($this.children('span').html());
+
+ target.focus();
+ });
+ }
+
+ // If any inputs have changed, prepare it for saving
+ $('form.category input, form.category select').on('change', function(ev) {
+ modified(ev.target);
+ });
+
+ // Colour Picker
+ $('[data-name="bgColor"], [data-name="color"]').each(enableColorPicker);
+
+ $('.save').on('click', save);
+ $('.revert').on('click', ajaxify.refresh);
+ $('.purge').on('click', function(e) {
+ e.preventDefault();
+
+ bootbox.confirm('Do you really want to purge this category "' + $('form.category').find('input[data-name="name"]').val() + '"?
Warning! All topics and posts in this category will be purged!
', function(confirm) {
+ if (!confirm) {
+ return;
+ }
+ socket.emit('admin.categories.purge', ajaxify.variables.get('cid'), function(err) {
+ if (err) {
+ return app.alertError(err.message);
+ }
+ app.alertSuccess('Category purged!');
+ ajaxify.go('admin/manage/categories');
+ });
+ });
+ });
+
+ // Image Uploader
+ $('.upload-button').on('click', function() {
+ var inputEl = $(this),
+ cid = inputEl.attr('data-cid');
+
+ uploader.open(RELATIVE_PATH + '/api/admin/category/uploadpicture', { cid: cid }, 0, function(imageUrlOnServer) {
+ inputEl.val(imageUrlOnServer);
+ var previewBox = inputEl.parent().parent().siblings('.category-preview');
+ previewBox.css('background', 'url(' + imageUrlOnServer + '?' + new Date().getTime() + ')')
+ .css('background-size', 'cover');
+ modified(inputEl[0]);
+ });
+ });
+
+ // Image Remover
+ $('.delete-image').on('click', function(e) {
+ e.preventDefault();
+
+ var inputEl = $('.upload-button'),
+ previewBox = inputEl.parent().parent().siblings('.category-preview');
+
+ inputEl.val('');
+ previewBox.css('background-image', '');
+ modified(inputEl[0]);
+ $(this).parent().addClass('hide').hide();
+ });
+
+ // Icon selection
+ $('.category-preview').on('click', function(ev) {
+ iconSelect.init($(this).find('i'), modified);
+ });
+
+ // Parent Category Selector
+ $('button[data-action="setParent"]').on('click', Category.launchParentSelector);
+ $('button[data-action="removeParent"]').on('click', function() {
+ var payload= {};
+ payload[ajaxify.variables.get('cid')] = {
+ parentCid: 0
+ };
+
+ socket.emit('admin.categories.update', payload, function(err) {
+ if (err) {
+ return app.alertError(err.message);
+ }
+ ajaxify.refresh();
+ });
+ });
+
+ setupEditTargets();
+ Category.setupPrivilegeTable();
+ };
+
+ Category.setupPrivilegeTable = function() {
+ var searchEl = $('.privilege-search'),
+ searchObj = autocomplete.user(searchEl);
+
+ // User search + addition to table
+ searchObj.on('autocompleteselect', function(ev, ui) {
+ socket.emit('admin.categories.setPrivilege', {
+ cid: ajaxify.variables.get('cid'),
+ privilege: 'read',
+ set: true,
+ member: ui.item.user.uid
+ }, function(err) {
+ if (err) {
+ return app.alertError(err.message);
+ }
+
+ Category.refreshPrivilegeTable();
+ searchEl.val('');
+ });
+ });
+
+ // Checkbox event capture
+ $('.privilege-table-container').on('change', 'input[type="checkbox"]', function() {
+ var checkboxEl = $(this),
+ privilege = checkboxEl.parent().attr('data-privilege'),
+ state = checkboxEl.prop('checked'),
+ rowEl = checkboxEl.parents('tr'),
+ member = rowEl.attr('data-group-name') || rowEl.attr('data-uid'),
+ isPrivate = parseInt(rowEl.attr('data-private') || 0, 10),
+ isGroup = rowEl.attr('data-group-name') !== undefined;
+
+ if (member) {
+ if (isGroup && privilege === 'groups:moderate' && !isPrivate && state) {
+ bootbox.confirm('Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.', function(confirm) {
+ if (confirm) {
+ Category.setPrivilege(member, privilege, state, checkboxEl);
+ } else {
+ checkboxEl.prop('checked', checkboxEl.prop('checked') ^ 1);
+ }
+ });
+ } else {
+ Category.setPrivilege(member, privilege, state, checkboxEl);
+ }
+ } else {
+ app.alertError('[[error:invalid-data]]');
+ }
+ })
+ };
+
+ Category.refreshPrivilegeTable = function() {
+ socket.emit('admin.categories.getPrivilegeSettings', ajaxify.variables.get('cid'), function(err, privileges) {
+ if (err) {
+ return app.alertError(err.message);
+ }
+
+ templates.parse('admin/partials/categories/privileges', {
+ privileges: privileges
+ }, function(html) {
+ $('.privilege-table-container').html(html);
+ });
+ });
+ };
+
+ Category.setPrivilege = function(member, privilege, state, checkboxEl) {
+ socket.emit('admin.categories.setPrivilege', {
+ cid: ajaxify.variables.get('cid'),
+ privilege: privilege,
+ set: state,
+ member: member
+ }, function(err) {
+ if (err) {
+ return app.alertError(err.message);
+ }
+
+ checkboxEl.replaceWith('');
+ Category.refreshPrivilegeTable();
+ });
+ };
+
+ Category.launchParentSelector = function() {
+ socket.emit('categories.get', function(err, categories) {
+ templates.parse('partials/category_list', {
+ categories: categories
+ }, function(html) {
+ var modal = bootbox.dialog({
+ message: html,
+ title: 'Set Parent Category'
+ });
+
+ modal.find('li[data-cid]').on('click', function() {
+ var parentCid = $(this).attr('data-cid'),
+ payload = {};
+
+ payload[ajaxify.variables.get('cid')] = {
+ parentCid: parentCid
+ };
+
+ socket.emit('admin.categories.update', payload, function(err) {
+ if (err) {
+ return app.alertError(err.message);
+ }
+
+ modal.modal('hide');
+ ajaxify.refresh();
+ });
+ });
+ });
+ });
+ };
+
+ return Category;
+});
\ No newline at end of file
diff --git a/public/src/admin/manage/groups.js b/public/src/admin/manage/groups.js
index ed8cc59683..f604bc9387 100644
--- a/public/src/admin/manage/groups.js
+++ b/public/src/admin/manage/groups.js
@@ -1,10 +1,11 @@
"use strict";
-/*global define, templates, socket, ajaxify, app, admin, bootbox, utils, config, translator */
+/*global define, templates, socket, ajaxify, app, admin, bootbox, utils, config */
define('admin/manage/groups', [
'iconSelect',
- 'admin/modules/colorpicker'
-], function(iconSelect, colorpicker) {
+ 'admin/modules/colorpicker',
+ 'translator'
+], function(iconSelect, colorpicker, translator) {
var Groups = {};
Groups.init = function() {
diff --git a/public/src/ajaxify.js b/public/src/ajaxify.js
index 0161d8a6ae..9f06d03cb3 100644
--- a/public/src/ajaxify.js
+++ b/public/src/ajaxify.js
@@ -4,11 +4,19 @@ var ajaxify = ajaxify || {};
$(document).ready(function() {
- /*global app, templates, utils, socket, translator, config, RELATIVE_PATH*/
+ /*global app, templates, utils, socket, config, RELATIVE_PATH*/
var location = document.location || window.location,
rootUrl = location.protocol + '//' + (location.hostname || location.host) + (location.port ? ':' + location.port : ''),
- apiXHR = null;
+ apiXHR = null,
+
+ translator;
+
+ // Dumb hack to fool ajaxify into thinking translator is still a global
+ // When ajaxify is migrated to a require.js module, then this can be merged into the "define" call
+ require(['translator'], function(_translator) {
+ translator = _translator;
+ });
$(window).on('popstate', function (ev) {
ev = ev.originalEvent;
@@ -25,6 +33,8 @@ $(document).ready(function() {
ajaxify.go = function (url, callback, quiet) {
if (ajaxify.handleACPRedirect(url)) {
return true;
+ } else if (ajaxify.handleNonAPIRoutes(url)) {
+ return true;
}
app.enterRoom('');
@@ -39,8 +49,6 @@ $(document).ready(function() {
$('#footer, #content').removeClass('hide').addClass('ajaxifying');
- var startTime = (new Date()).getTime();
-
ajaxify.variables.flush();
ajaxify.loadData(url, function(err, data) {
if (err) {
@@ -49,11 +57,9 @@ $(document).ready(function() {
app.template = data.template.name;
- translator.load(config.defaultLang, data.template.name);
-
- renderTemplate(url, data.template.name, data, startTime, callback);
-
- require(['search'], function(search) {
+ require(['translator', 'search'], function(translator, search) {
+ translator.load(config.defaultLang, data.template.name);
+ renderTemplate(url, data.template.name, data, callback);
search.topicDOM.end();
});
});
@@ -64,12 +70,21 @@ $(document).ready(function() {
ajaxify.handleACPRedirect = function(url) {
// If ajaxifying into an admin route from regular site, do a cold load.
url = ajaxify.removeRelativePath(url.replace(/\/$/, ''));
- if (url.indexOf('admin') === 0 && window.location.pathname.indexOf('/admin') !== 0) {
+ if (url.indexOf('admin') === 0 && window.location.pathname.indexOf(RELATIVE_PATH + '/admin') !== 0) {
window.open(RELATIVE_PATH + '/' + url, '_blank');
return true;
}
return false;
- }
+ };
+
+ ajaxify.handleNonAPIRoutes = function(url) {
+ url = ajaxify.removeRelativePath(url.replace(/\/$/, ''));
+ if (url.indexOf('uploads') === 0) {
+ window.open(RELATIVE_PATH + '/' + url, '_blank');
+ return true;
+ }
+ return false;
+ };
ajaxify.start = function(url, quiet, search) {
url = ajaxify.removeRelativePath(url.replace(/\/$/, ''));
@@ -78,6 +93,10 @@ $(document).ready(function() {
$(window).trigger('action:ajaxify.start', {url: url});
+ if (!window.location.pathname.match(/\/(403|404)$/g)) {
+ app.previousUrl = window.location.href;
+ }
+
ajaxify.currentPage = url;
if (window.history && window.history.pushState) {
@@ -114,25 +133,22 @@ $(document).ready(function() {
}
}
- function renderTemplate(url, tpl_url, data, startTime, callback) {
- var animationDuration = parseFloat($('#content').css('transition-duration')) || 0.2;
+ function renderTemplate(url, tpl_url, data, callback) {
$(window).trigger('action:ajaxify.loadingTemplates', {});
templates.parse(tpl_url, data, function(template) {
translator.translate(template, function(translatedTemplate) {
- setTimeout(function() {
- $('#content').html(translatedTemplate);
+ $('#content').html(translatedTemplate);
- ajaxify.end(url, tpl_url);
+ ajaxify.end(url, tpl_url);
- if (typeof callback === 'function') {
- callback();
- }
+ if (typeof callback === 'function') {
+ callback();
+ }
- $('#content, #footer').removeClass('ajaxifying');
+ $('#content, #footer').removeClass('ajaxifying');
- app.refreshTitle(url);
- }, animationDuration * 1000 - ((new Date()).getTime() - startTime));
+ app.refreshTitle(url);
});
});
}
@@ -158,7 +174,11 @@ $(document).ready(function() {
return url;
};
- ajaxify.refresh = function() {
+ ajaxify.refresh = function(e) {
+ if (e && e instanceof jQuery.Event) {
+ e.preventDefault();
+ }
+
ajaxify.go(ajaxify.currentPage);
};
@@ -243,10 +263,6 @@ $(document).ready(function() {
return e.preventDefault();
}
- if (!window.location.pathname.match(/\/(403|404)$/g)) {
- app.previousUrl = window.location.href;
- }
-
if (!e.ctrlKey && !e.shiftKey && !e.metaKey && e.which === 1) {
if (this.host === '' || this.host === window.location.host) {
// Internal link
diff --git a/public/src/app.js b/public/src/app.js
index fdfe7856b3..4f2c848c0b 100644
--- a/public/src/app.js
+++ b/public/src/app.js
@@ -1,5 +1,5 @@
"use strict";
-/*global io, templates, translator, ajaxify, utils, bootbox, RELATIVE_PATH, config, Visibility*/
+/*global io, templates, ajaxify, utils, bootbox, RELATIVE_PATH, config, Visibility*/
var socket,
app = app || {};
@@ -105,8 +105,8 @@ app.cacheBuster = null;
case 'admin':
room = 'admin';
break;
- case 'home':
- room = 'home';
+ case 'categories':
+ room = 'categories';
break;
}
app.currentRoom = '';
@@ -234,7 +234,7 @@ app.cacheBuster = null;
app.processPage = function () {
highlightNavigationLink();
- $('span.timeago').timeago();
+ $('.timeago').timeago();
utils.makeNumbersHumanReadable($('.human-readable-number'));
@@ -310,18 +310,20 @@ app.cacheBuster = null;
titleObj.titles[0] = window.document.title;
}
- translator.translate(title, function(translated) {
- titleObj.titles[1] = translated;
- if (titleObj.interval) {
- clearInterval(titleObj.interval);
- }
-
- titleObj.interval = setInterval(function() {
- var title = titleObj.titles[titleObj.titles.indexOf(window.document.title) ^ 1];
- if (title) {
- window.document.title = $('').html(title).text();
+ require(['translator'], function(translator) {
+ translator.translate(title, function(translated) {
+ titleObj.titles[1] = translated;
+ if (titleObj.interval) {
+ clearInterval(titleObj.interval);
}
- }, 2000);
+
+ titleObj.interval = setInterval(function() {
+ var title = titleObj.titles[titleObj.titles.indexOf(window.document.title) ^ 1];
+ if (title) {
+ window.document.title = $('').html(title).text();
+ }
+ }, 2000);
+ });
});
} else {
if (titleObj.interval) {
@@ -458,14 +460,6 @@ app.cacheBuster = null;
});
}
- function collapseNavigationOnClick() {
- $('#nav-dropdown').off('click').on('click', '#main-nav a, #user-control-list a, #logged-out-menu li a, #logged-in-menu .visible-xs, #chat-list a', function() {
- if($('.navbar .navbar-collapse').hasClass('in')) {
- $('.navbar-header button').click();
- }
- });
- }
-
function handleStatusChange() {
$('#user-control-list .user-status').off('click').on('click', function(e) {
var status = $(this).attr('data-status');
@@ -479,19 +473,39 @@ app.cacheBuster = null;
});
}
+ function handleNewTopic() {
+ $('#content').on('click', '#new_topic', function() {
+ require(['composer'], function(composer) {
+ var cid = ajaxify.variables.get('category_id');
+ if (cid) {
+ composer.newTopic(cid);
+ } else {
+ socket.emit('categories.getCategoriesByPrivilege', 'topics:create', function(err, categories) {
+ if (err) {
+ return app.alertError(err.message);
+ }
+ if (categories.length) {
+ composer.newTopic(categories[0].cid);
+ }
+ });
+ }
+ });
+ });
+ }
+
app.load = function() {
$('document').ready(function () {
var url = ajaxify.start(window.location.pathname.slice(1), true, window.location.search);
ajaxify.end(url, app.template);
- collapseNavigationOnClick();
-
handleStatusChange();
if (config.searchEnabled) {
handleSearch();
}
+ handleNewTopic();
+
$('#logout-link').on('click', app.logout);
Visibility.change(function(e, state){
diff --git a/public/src/client/account/edit.js b/public/src/client/account/edit.js
index 86e5d1f66d..d090b0282a 100644
--- a/public/src/client/account/edit.js
+++ b/public/src/client/account/edit.js
@@ -1,8 +1,8 @@
'use strict';
-/* globals define, ajaxify, socket, app, config, utils, translator, bootbox */
+/* globals define, ajaxify, socket, app, config, utils, bootbox */
-define('forum/account/edit', ['forum/account/header', 'uploader'], function(header, uploader) {
+define('forum/account/edit', ['forum/account/header', 'uploader', 'translator'], function(header, uploader, translator) {
var AccountEdit = {},
gravatarPicture = '',
uploadedPicture = '',
diff --git a/public/src/client/account/favourites.js b/public/src/client/account/favourites.js
index 6a08a814a5..f73e1d4f20 100644
--- a/public/src/client/account/favourites.js
+++ b/public/src/client/account/favourites.js
@@ -34,7 +34,7 @@ define('forum/account/favourites', ['forum/account/header', 'forum/infinitescrol
infinitescroll.parseAndTranslate('account/favourites', 'posts', {posts: posts}, function(html) {
$('.user-favourite-posts').append(html);
html.find('img').addClass('img-responsive');
- html.find('span.timeago').timeago();
+ html.find('.timeago').timeago();
app.createUserTooltips();
utils.makeNumbersHumanReadable(html.find('.human-readable-number'));
callback();
diff --git a/public/src/client/account/posts.js b/public/src/client/account/posts.js
index 70410e0819..c4759b9016 100644
--- a/public/src/client/account/posts.js
+++ b/public/src/client/account/posts.js
@@ -35,7 +35,7 @@ define('forum/account/posts', ['forum/account/header', 'forum/infinitescroll'],
infinitescroll.parseAndTranslate('account/posts', 'posts', {posts: posts}, function(html) {
$('.user-favourite-posts').append(html);
html.find('img').addClass('img-responsive');
- html.find('span.timeago').timeago();
+ html.find('.timeago').timeago();
app.createUserTooltips();
utils.makeNumbersHumanReadable(html.find('.human-readable-number'));
callback();
diff --git a/public/src/client/account/profile.js b/public/src/client/account/profile.js
index 89a555a702..b65b998d60 100644
--- a/public/src/client/account/profile.js
+++ b/public/src/client/account/profile.js
@@ -1,8 +1,8 @@
'use strict';
-/* globals define, ajaxify, app, utils, socket, translator*/
+/* globals define, ajaxify, app, utils, socket */
-define('forum/account/profile', ['forum/account/header', 'forum/infinitescroll'], function(header, infinitescroll) {
+define('forum/account/profile', ['forum/account/header', 'forum/infinitescroll', 'translator'], function(header, infinitescroll, translator) {
var Account = {},
yourid,
theirid,
@@ -116,7 +116,7 @@ define('forum/account/profile', ['forum/account/header', 'forum/infinitescroll']
infinitescroll.parseAndTranslate('account/profile', 'posts', {posts: posts}, function(html) {
$('.user-recent-posts .loading-indicator').before(html);
- html.find('span.timeago').timeago();
+ html.find('.timeago').timeago();
callback();
});
diff --git a/public/src/client/account/topics.js b/public/src/client/account/topics.js
index c556ef2891..c6c93f4262 100644
--- a/public/src/client/account/topics.js
+++ b/public/src/client/account/topics.js
@@ -18,12 +18,12 @@ define('forum/account/topics', ['forum/account/header', 'forum/infinitescroll'],
infinitescroll.loadMore('topics.loadMoreFromSet', {
set: 'uid:' + $('.account-username-box').attr('data-uid') + ':topics',
- after: $('.user-topics').attr('data-nextstart')
+ after: $('[component="category"]').attr('data-nextstart')
}, function(data, done) {
if (data.topics && data.topics.length) {
onTopicsLoaded(data.topics, done);
- $('.user-topics').attr('data-nextstart', data.nextStart);
+ $('[component="category"]').attr('data-nextstart', data.nextStart);
} else {
done();
}
@@ -32,8 +32,8 @@ define('forum/account/topics', ['forum/account/header', 'forum/infinitescroll'],
function onTopicsLoaded(topics, callback) {
infinitescroll.parseAndTranslate('account/topics', 'topics', {topics: topics}, function(html) {
- $('#topics-container').append(html);
- html.find('span.timeago').timeago();
+ $('[component="category"]').append(html);
+ html.find('.timeago').timeago();
app.createUserTooltips();
utils.makeNumbersHumanReadable(html.find('.human-readable-number'));
$(window).trigger('action:topics.loaded');
diff --git a/public/src/client/account/watched.js b/public/src/client/account/watched.js
index 9a502b1ee8..08feb89344 100644
--- a/public/src/client/account/watched.js
+++ b/public/src/client/account/watched.js
@@ -17,11 +17,11 @@ define('forum/account/watched', ['forum/account/header', 'forum/infinitescroll']
infinitescroll.loadMore('topics.loadMoreFromSet', {
set: 'uid:' + $('.account-username-box').attr('data-uid') + ':followed_tids',
- after: $('.user-topics').attr('data-nextstart')
+ after: $('[component="category"]').attr('data-nextstart')
}, function(data, done) {
if (data.topics && data.topics.length) {
onTopicsLoaded(data.topics, done);
- $('.user-topics').attr('data-nextstart', data.nextStart);
+ $('[component="category"]').attr('data-nextstart', data.nextStart);
} else {
done();
}
@@ -30,8 +30,8 @@ define('forum/account/watched', ['forum/account/header', 'forum/infinitescroll']
function onTopicsLoaded(topics, callback) {
infinitescroll.parseAndTranslate('account/watched', 'topics', {topics: topics}, function(html) {
- $('#topics-container').append(html);
- html.find('span.timeago').timeago();
+ $('[component="category"]').append(html);
+ html.find('.timeago').timeago();
app.createUserTooltips();
utils.makeNumbersHumanReadable(html.find('.human-readable-number'));
$(window).trigger('action:topics.loaded');
diff --git a/public/src/client/categories.js b/public/src/client/categories.js
index d3cf1cae43..f3ec819130 100644
--- a/public/src/client/categories.js
+++ b/public/src/client/categories.js
@@ -1,8 +1,8 @@
'use strict';
-/* globals define, socket, app, templates, translator, ajaxify*/
+/* globals define, socket, app, templates, ajaxify*/
-define('forum/categories', function() {
+define('forum/categories', ['components', 'translator'], function(components, translator) {
var categories = {};
$(window).on('action:ajaxify.start', function(ev, data) {
@@ -29,7 +29,7 @@ define('forum/categories', function() {
};
function renderNewPost(cid, post) {
- var category = $('.category-item[data-cid="' + cid + '"]');
+ var category = components.get('category/topic', 'cid', cid);
if (!category.length) {
return;
}
@@ -67,7 +67,7 @@ define('forum/categories', function() {
translator.translate(html, function(translatedHTML) {
translatedHTML = $(translatedHTML);
translatedHTML.find('img').addClass('img-responsive');
- translatedHTML.find('span.timeago').timeago();
+ translatedHTML.find('.timeago').timeago();
callback(translatedHTML);
});
});
diff --git a/public/src/client/category.js b/public/src/client/category.js
index 3b6a0e69b9..c74141feec 100644
--- a/public/src/client/category.js
+++ b/public/src/client/category.js
@@ -1,5 +1,5 @@
"use strict";
-/* global define, config, templates, app, utils, ajaxify, socket, translator */
+/* global define, config, templates, app, utils, ajaxify, socket */
define('forum/category', [
'composer',
@@ -8,8 +8,10 @@ define('forum/category', [
'share',
'navigator',
'forum/categoryTools',
- 'sort'
-], function(composer, pagination, infinitescroll, share, navigator, categoryTools, sort) {
+ 'sort',
+ 'components',
+ 'translator'
+], function(composer, pagination, infinitescroll, share, navigator, categoryTools, sort, components, translator) {
var Category = {};
$(window).on('action:ajaxify.start', function(ev, data) {
@@ -20,12 +22,6 @@ define('forum/category', [
}
});
- $(window).on('action:composer.topics.post', function(ev, data) {
- localStorage.removeItem('category:' + data.data.cid + ':bookmark');
- localStorage.removeItem('category:' + data.data.cid + ':bookmark:clicked');
- ajaxify.go('topic/' + data.data.slug);
- });
-
function removeListeners() {
socket.removeListener('event:new_topic', Category.onNewTopic);
categoryTools.removeListeners();
@@ -38,10 +34,6 @@ define('forum/category', [
share.addShareHandlers(ajaxify.variables.get('category_name'));
- $('#new_post').on('click', function () {
- composer.newTopic(cid);
- });
-
socket.removeListener('event:new_topic', Category.onNewTopic);
socket.on('event:new_topic', Category.onNewTopic);
@@ -52,12 +44,12 @@ define('forum/category', [
enableInfiniteLoadingOrPagination();
if (!config.usePagination) {
- navigator.init('#topics-container > .category-item', ajaxify.variables.get('topic_count'), Category.toTop, Category.toBottom, Category.navigatorCallback);
+ navigator.init('[component="category/topic"]', ajaxify.variables.get('topic_count'), Category.toTop, Category.toBottom, Category.navigatorCallback);
}
- $('#topics-container').on('click', '.topic-title', function() {
+ $('[component="category"]').on('click', '[component="post/header"]', function() {
var clickedIndex = $(this).parents('[data-index]').attr('data-index');
- $('#topics-container li.category-item').each(function(index, el) {
+ $('[component="category/topic"]').each(function(index, el) {
if ($(el).offset().top - $(window).scrollTop() > 0) {
localStorage.setItem('category:' + cid + ':bookmark', $(el).attr('data-index'));
localStorage.setItem('category:' + cid + ':bookmark:clicked', clickedIndex);
@@ -95,8 +87,8 @@ define('forum/category', [
});
};
- Category.navigatorCallback = function(element, elementCount) {
- return parseInt(element.attr('data-index'), 10) + 1;
+ Category.navigatorCallback = function(topIndex, bottomIndex, elementCount) {
+ return bottomIndex;
};
$(window).on('action:popstate', function(ev, data) {
@@ -135,7 +127,7 @@ define('forum/category', [
bookmarkIndex = 0;
}
- $('#topics-container').empty();
+ $('[component="category"]').empty();
loadTopicsAfter(bookmarkIndex, function() {
Category.scrollToTopic(bookmarkIndex, clickedIndex, 0);
@@ -145,7 +137,7 @@ define('forum/category', [
});
Category.highlightTopic = function(topicIndex) {
- var highlight = $('#topics-container [data-index="' + topicIndex + '"]');
+ var highlight = components.get('category/topic', 'index', topicIndex);
if (highlight.length && !highlight.hasClass('highlight')) {
highlight.addClass('highlight');
setTimeout(function() {
@@ -163,7 +155,7 @@ define('forum/category', [
offset = 0;
}
- var scrollTo = $('#topics-container [data-index="' + bookmarkIndex + '"]');
+ var scrollTo = components.get('category/topic', 'index', bookmarkIndex);
var cid = ajaxify.variables.get('category_id');
if (scrollTo.length && cid) {
$('html, body').animate({
@@ -198,11 +190,12 @@ define('forum/category', [
}, function(html) {
translator.translate(html, function(translatedHTML) {
var topic = $(translatedHTML),
- container = $('#topics-container'),
- topics = $('#topics-container').children('.category-item'),
+ container = $('[component="category"]'),
+ topics = $('[component="category/topic"]'),
numTopics = topics.length;
- $('#topics-container, .category-sidebar').removeClass('hidden');
+ $('[component="category"]').removeClass('hidden');
+ $('.category-sidebar').removeClass('hidden');
var noTopicsWarning = $('#category-no-topics');
if (noTopicsWarning.length) {
@@ -228,7 +221,7 @@ define('forum/category', [
topic.hide().fadeIn('slow');
- topic.find('span.timeago').timeago();
+ topic.find('.timeago').timeago();
app.createUserTooltips();
updateTopicCount();
@@ -253,7 +246,7 @@ define('forum/category', [
function removeAlreadyAddedTopics(topics) {
return topics.filter(function(topic) {
- return $('#topics-container li[data-tid="' + topic.tid +'"]').length === 0;
+ return components.get('category/topic', 'tid', topic.tid).length === 0;
});
}
@@ -261,16 +254,20 @@ define('forum/category', [
before = null;
function findInsertionPoint() {
- if (!$('#topics-container .category-item[data-tid]').length) {
+ var topics = components.get('category/topic');
+
+ if (!topics.length) {
return;
}
- var last = $('#topics-container .category-item[data-tid]').last();
- var lastIndex = last.attr('data-index');
- var firstIndex = data.topics[data.topics.length - 1].index;
+
+ var last = topics.last(),
+ lastIndex = last.attr('data-index'),
+ firstIndex = data.topics[data.topics.length - 1].index;
+
if (firstIndex > lastIndex) {
after = last;
} else {
- before = $('#topics-container .category-item[data-tid]').first();
+ before = topics.first();
}
}
@@ -283,10 +280,12 @@ define('forum/category', [
templates.parse('category', 'topics', data, function(html) {
translator.translate(html, function(translatedHTML) {
- var container = $('#topics-container'),
+ var container = $('[component="category"]'),
html = $(translatedHTML);
- $('#topics-container, .category-sidebar').removeClass('hidden');
+ $('[component="category"]').removeClass('hidden');
+ $('.category-sidebar').removeClass('hidden');
+
$('#category-no-topics').remove();
if(config.usePagination) {
@@ -304,7 +303,7 @@ define('forum/category', [
if (typeof callback === 'function') {
callback();
}
- html.find('span.timeago').timeago();
+ html.find('.timeago').timeago();
app.createUserTooltips();
utils.makeNumbersHumanReadable(html.find('.human-readable-number'));
});
@@ -312,11 +311,11 @@ define('forum/category', [
};
Category.loadMoreTopics = function(direction) {
- if (!$('#topics-container').length || !$('#topics-container').children().length) {
+ if (!$('[component="category"]').length || !$('[component="category"]').children().length) {
return;
}
- infinitescroll.calculateAfter(direction, '#topics-container .category-item[data-tid]', config.topicsPerPage, false, function(after, offset, el) {
+ infinitescroll.calculateAfter(direction, components.get('category/topic'), config.topicsPerPage, false, function(after, offset, el) {
loadTopicsAfter(after, function() {
if (direction < 0 && el) {
Category.scrollToTopic(el.attr('data-index'), null, 0, offset);
@@ -326,7 +325,7 @@ define('forum/category', [
};
function loadTopicsAfter(after, callback) {
- if(!utils.isNumber(after) || (after === 0 && $('#topics-container li.category-item[data-index="0"]').length)) {
+ if(!utils.isNumber(after) || (after === 0 && components.get('category/topic', 'index', 0).length)) {
return;
}
@@ -342,7 +341,7 @@ define('forum/category', [
done();
callback();
});
- $('#topics-container').attr('data-nextstart', data.nextStart);
+ $('[component="category"]').attr('data-nextstart', data.nextStart);
} else {
done();
}
diff --git a/public/src/client/categoryTools.js b/public/src/client/categoryTools.js
index 0e9bae608b..d5e69d1312 100644
--- a/public/src/client/categoryTools.js
+++ b/public/src/client/categoryTools.js
@@ -1,10 +1,10 @@
'use strict';
-/* globals define, app, translator, socket, bootbox, ajaxify */
+/* globals define, app, socket, bootbox, ajaxify */
-define('forum/categoryTools', ['forum/topic/move', 'topicSelect'], function(move, topicSelect) {
+define('forum/categoryTools', ['forum/topic/move', 'topicSelect', 'components', 'translator'], function(move, topicSelect, components, translator) {
var CategoryTools = {};
@@ -173,26 +173,26 @@ define('forum/categoryTools', ['forum/topic/move', 'topicSelect'], function(move
}
function getTopicEl(tid) {
- return $('#topics-container li[data-tid="' + tid + '"]');
+ return components.get('category/topic', 'tid', tid);
}
function setDeleteState(data) {
var topic = getTopicEl(data.tid);
topic.toggleClass('deleted', data.isDeleted);
- topic.find('.fa-lock').toggleClass('hide', !data.isDeleted);
+ topic.find('[component="topic/locked"]').toggleClass('hide', !data.isDeleted);
}
function setPinnedState(data) {
var topic = getTopicEl(data.tid);
topic.toggleClass('pinned', data.isPinned);
- topic.find('.fa-thumb-tack').toggleClass('hide', !data.isPinned);
+ topic.find('[component="topic/pinned"]').toggleClass('hide', !data.isPinned);
ajaxify.refresh();
}
function setLockedState(data) {
var topic = getTopicEl(data.tid);
topic.toggleClass('locked', data.isLocked);
- topic.find('.fa-lock').toggleClass('hide', !data.isLocked);
+ topic.find('[component="topic/locked"]').toggleClass('hide', !data.isLocked);
}
function onTopicMoved(data) {
diff --git a/public/src/client/chats.js b/public/src/client/chats.js
index fe491b49c3..d506d81654 100644
--- a/public/src/client/chats.js
+++ b/public/src/client/chats.js
@@ -1,8 +1,8 @@
'use strict';
-/* globals define, app, ajaxify, utils, socket, templates, translator */
+/* globals define, app, ajaxify, utils, socket, templates */
-define('forum/chats', ['string', 'sounds', 'forum/infinitescroll'], function(S, sounds, infinitescroll) {
+define('forum/chats', ['string', 'sounds', 'forum/infinitescroll', 'translator'], function(S, sounds, infinitescroll, translator) {
var Chats = {
initialised: false
};
@@ -20,10 +20,8 @@ define('forum/chats', ['string', 'sounds', 'forum/infinitescroll'], function(S,
Chats.addEventListeners();
Chats.setActive();
- $(window).on('action:ajaxify.end', function() {
- Chats.resizeMainWindow();
- Chats.scrollToBottom(containerEl);
- });
+ Chats.resizeMainWindow();
+ Chats.scrollToBottom($('.expanded-chat ul'));
Chats.initialised = true;
};
@@ -124,7 +122,7 @@ define('forum/chats', ['string', 'sounds', 'forum/infinitescroll'], function(S,
function onMessagesParsed(html) {
var newMessage = $(html);
newMessage.insertBefore($('.user-typing'));
- newMessage.find('span.timeago').timeago();
+ newMessage.find('.timeago').timeago();
newMessage.find('img:not(".chat-user-image")').addClass('img-responsive');
Chats.scrollToBottom($('.expanded-chat .chat-content'));
}
diff --git a/public/src/client/footer.js b/public/src/client/footer.js
index 6462e3e39a..5e39ac142c 100644
--- a/public/src/client/footer.js
+++ b/public/src/client/footer.js
@@ -1,7 +1,7 @@
"use strict";
-/*globals define, app, translator, socket*/
+/*globals define, app, socket*/
-define('forum/footer', ['notifications', 'chat'], function(Notifications, Chat) {
+define('forum/footer', ['notifications', 'chat', 'components', 'translator'], function(Notifications, Chat, components, translator) {
Notifications.prepareDOM();
Chat.prepareDOM();
@@ -22,7 +22,7 @@ define('forum/footer', ['notifications', 'chat'], function(Notifications, Chat)
return console.warn('Error updating unread count', err);
}
- $('#chat-count')
+ components.get('chat/icon')
.toggleClass('unread-count', count > 0)
.attr('data-content', count > 20 ? '20+' : count);
}
diff --git a/public/src/client/infinitescroll.js b/public/src/client/infinitescroll.js
index ba3385d92f..7c79da1e79 100644
--- a/public/src/client/infinitescroll.js
+++ b/public/src/client/infinitescroll.js
@@ -1,8 +1,8 @@
'use strict';
-/* globals define, socket, ajaxify, translator, templates, app */
+/* globals define, socket, ajaxify, templates, app */
-define('forum/infinitescroll', function() {
+define('forum/infinitescroll', ['translator'], function(translator) {
var scroll = {};
var callback;
diff --git a/public/src/client/login.js b/public/src/client/login.js
index dc199f3d2f..3032e3b35d 100644
--- a/public/src/client/login.js
+++ b/public/src/client/login.js
@@ -1,7 +1,7 @@
"use strict";
-/* global define, app, translator, config, RELATIVE_PATH */
+/* global define, app, config, RELATIVE_PATH */
-define('forum/login', ['csrf'], function(csrf) {
+define('forum/login', ['csrf', 'translator'], function(csrf, translator) {
var Login = {};
Login.init = function() {
diff --git a/public/src/client/notifications.js b/public/src/client/notifications.js
index fb778ec18f..4e7244f83f 100644
--- a/public/src/client/notifications.js
+++ b/public/src/client/notifications.js
@@ -16,7 +16,7 @@ define('forum/notifications', function() {
});
});
- $('span.timeago').timeago();
+ $('.timeago').timeago();
$('.notifications .delete').on('click', function() {
socket.emit('notifications.markAllRead', function(err) {
diff --git a/public/src/client/recent.js b/public/src/client/recent.js
index 05e936a577..909cec052e 100644
--- a/public/src/client/recent.js
+++ b/public/src/client/recent.js
@@ -2,7 +2,7 @@
/* globals define, app, socket, utils */
-define('forum/recent', ['forum/infinitescroll', 'composer'], function(infinitescroll, composer) {
+define('forum/recent', ['forum/infinitescroll', 'composer', 'components'], function(infinitescroll, composer, components) {
var Recent = {};
var newTopicCount = 0,
@@ -23,17 +23,6 @@ define('forum/recent', ['forum/infinitescroll', 'composer'], function(infinitesc
$(this).addClass('hide');
});
- $('#new_topic').on('click', function() {
- socket.emit('categories.getCategoriesByPrivilege', 'topics:create', function(err, categories) {
- if (err) {
- return app.alertError(err.message);
- }
- if (categories.length) {
- composer.newTopic(categories[0].cid);
- }
- });
- });
-
infinitescroll.init(Recent.loadMoreTopics);
};
@@ -94,17 +83,17 @@ define('forum/recent', ['forum/infinitescroll', 'composer'], function(infinitesc
};
Recent.loadMoreTopics = function(direction) {
- if(direction < 0 || !$('#topics-container').length) {
+ if(direction < 0 || !$('[component="category"]').length) {
return;
}
infinitescroll.loadMore('topics.loadMoreFromSet', {
- after: $('#topics-container').attr('data-nextstart'),
+ after: $('[component="category"]').attr('data-nextstart'),
set: 'topics:recent'
}, function(data, done) {
if (data.topics && data.topics.length) {
Recent.onTopicsLoaded('recent', data.topics, false, done);
- $('#topics-container').attr('data-nextstart', data.nextStart);
+ $('[component="category"]').attr('data-nextstart', data.nextStart);
} else {
done();
}
@@ -114,7 +103,7 @@ define('forum/recent', ['forum/infinitescroll', 'composer'], function(infinitesc
Recent.onTopicsLoaded = function(templateName, topics, showSelect, callback) {
topics = topics.filter(function(topic) {
- return !$('#topics-container li[data-tid=' + topic.tid + ']').length;
+ return !components.get('category/topic', 'tid', topic.tid).length;
});
if (!topics.length) {
@@ -124,8 +113,8 @@ define('forum/recent', ['forum/infinitescroll', 'composer'], function(infinitesc
infinitescroll.parseAndTranslate(templateName, 'topics', {topics: topics, showSelect: showSelect}, function(html) {
$('#category-no-topics').remove();
- $('#topics-container').append(html);
- html.find('span.timeago').timeago();
+ $('[component="category"]').append(html);
+ html.find('.timeago').timeago();
app.createUserTooltips();
utils.makeNumbersHumanReadable(html.find('.human-readable-number'));
$(window).trigger('action:topics.loaded');
diff --git a/public/src/client/register.js b/public/src/client/register.js
index 636b8be306..cab41bb72f 100644
--- a/public/src/client/register.js
+++ b/public/src/client/register.js
@@ -1,9 +1,9 @@
'use strict';
-/* globals define, app, utils, socket, config, translator */
+/* globals define, app, utils, socket, config */
-define('forum/register', ['csrf'], function(csrf) {
+define('forum/register', ['csrf', 'translator'], function(csrf, translator) {
var Register = {},
validationError = false,
successIcon = '';
diff --git a/public/src/client/reset.js b/public/src/client/reset.js
index 7e272c3284..568d0739a1 100644
--- a/public/src/client/reset.js
+++ b/public/src/client/reset.js
@@ -24,6 +24,7 @@ define('forum/reset', function() {
successEl.addClass('hide').hide();
errorEl.removeClass('hide').show();
}
+ return false;
});
};
diff --git a/public/src/client/reset_code.js b/public/src/client/reset_code.js
index c0f46dc356..846feffb42 100644
--- a/public/src/client/reset_code.js
+++ b/public/src/client/reset_code.js
@@ -31,22 +31,8 @@ define('forum/reset_code', function() {
window.location.href = RELATIVE_PATH + '/login';
});
}
+ return false;
});
-
- // socket.emit('user.reset.valid', reset_code, function(err, valid) {
- // if(err) {
- // return app.alertError(err.message);
- // }
-
- // if (valid) {
- // resetEl.prop('disabled', false);
- // } else {
- // var formEl = $('#reset-form');
- // // Show error message
- // $('#error').show();
- // formEl.remove();
- // }
- // });
};
return ResetCode;
diff --git a/public/src/client/search.js b/public/src/client/search.js
index 44477cd06d..900a4d1d6d 100644
--- a/public/src/client/search.js
+++ b/public/src/client/search.js
@@ -116,19 +116,13 @@ define('forum/search', ['search', 'autocomplete'], function(searchModule, autoco
if (!searchQuery) {
return;
}
- var searchTerms = searchQuery.trim().split(' ');
- var regexes = [];
- for (var i=0; i' + regexes[i].term + '');
- }
+ var text = result.html().replace(regex, '