require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Strict Transport Security",
"hsts.enabled": "Enabled HSTS (recommended)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/ar/admin/settings/user.json b/public/language/ar/admin/settings/user.json
index 4c6829de8f..56f835492a 100644
--- a/public/language/ar/admin/settings/user.json
+++ b/public/language/ar/admin/settings/user.json
@@ -1,7 +1,7 @@
{
"authentication": "المصادقة",
"email-confirm-interval": "لا يمكن للمستخدم إعادة إرسال رسالة تأكيد البريد الالكتروني حتى مرور",
- "email-confirm-interval2": "دقائق",
+ "email-confirm-interval2": "minutes have elapsed",
"allow-login-with": "السماح بتسجيل الدخول باستخدام",
"allow-login-with.username-email": "اسم المستخدم أو البريد الالكتروني",
"allow-login-with.username": "اسم المستخدم فقط",
diff --git a/public/language/bg/admin/settings/advanced.json b/public/language/bg/admin/settings/advanced.json
index 9ecc674fab..32caf79de0 100644
--- a/public/language/bg/admin/settings/advanced.json
+++ b/public/language/bg/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "Когато форумът е в режим на профилактика, всички заявки ще бъдат пренасочвани към статична страница за изчакване, с изключение на администраторите, които ще могат да използват уеб сайта нормално.",
"maintenance-mode.status": "Код на състоянието за режима на профилактика",
"maintenance-mode.message": "Съобщение за профилактиката",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Изберете групи, които да бъдат изключени от режима на профилактика",
"headers": "Заглавни части",
"headers.allow-from": "Задайте „ALLOW-FROM“, за да поставите NodeBB в „iFrame“",
"headers.csp-frame-ancestors": "Задайте заглавката „Content-Security-Policy frame-ancestors“ за да поставите NodeBB „iFrame“",
@@ -19,6 +20,8 @@
"headers.coep-help": "Когато е включено (по подразбиране), стойността на заглавката ще бъде require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Стриктна транспортна сигурност",
"hsts.enabled": "Включване на HSTS (препоръчително)",
"hsts.maxAge": "Максимална възраст на HSTS",
diff --git a/public/language/bg/admin/settings/user.json b/public/language/bg/admin/settings/user.json
index af5aa57464..618e3c7361 100644
--- a/public/language/bg/admin/settings/user.json
+++ b/public/language/bg/admin/settings/user.json
@@ -1,7 +1,7 @@
{
"authentication": "Удостоверяване",
"email-confirm-interval": "Потребителят не може да изпраща повторно е-писмото за потвърждение, преди да са минали",
- "email-confirm-interval2": "минути",
+ "email-confirm-interval2": "минути са изминали",
"allow-login-with": "Позволяване на вписването чрез",
"allow-login-with.username-email": "Потребителско име или е-поща",
"allow-login-with.username": "Само потребителско име",
diff --git a/public/language/bn/admin/settings/advanced.json b/public/language/bn/admin/settings/advanced.json
index e372d48d70..982eaa2f64 100644
--- a/public/language/bn/admin/settings/advanced.json
+++ b/public/language/bn/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.",
"maintenance-mode.status": "Maintenance Mode Status Code",
"maintenance-mode.message": "Maintenance Message",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "Headers",
"headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Strict Transport Security",
"hsts.enabled": "Enabled HSTS (recommended)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/cs/admin/settings/advanced.json b/public/language/cs/admin/settings/advanced.json
index 4aad647e91..bc10146c76 100644
--- a/public/language/cs/admin/settings/advanced.json
+++ b/public/language/cs/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "Je-li fórum v režimu údržby, všechny požadavky budou přesměrovány na statickou stránku. Správci jsou vyloučeni z tohoto přesměrování a budou mít normálně zobrazené stránky.",
"maintenance-mode.status": "Stavový kód režimu údržby",
"maintenance-mode.message": "Zpráva údržby",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "Hlavičky",
"headers.allow-from": "Nastavte ALLOW-FROM pro umístění NodeBB do iFrame",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Přísné zabezpečení přenosu",
"hsts.enabled": "Povolit HSTS (doporučeno)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/cs/admin/settings/user.json b/public/language/cs/admin/settings/user.json
index 6e10f3f8c4..da3647a63f 100644
--- a/public/language/cs/admin/settings/user.json
+++ b/public/language/cs/admin/settings/user.json
@@ -1,7 +1,7 @@
{
"authentication": "Ověření",
"email-confirm-interval": "Uživatel nesmí požádat o znovu zaslání potvrzujícího e-mailu do",
- "email-confirm-interval2": "minut uplynulo",
+ "email-confirm-interval2": "minutes have elapsed",
"allow-login-with": "Povolit přihlášení pomocí",
"allow-login-with.username-email": "Uživatelské jméno nebo e-mail",
"allow-login-with.username": "Pouze uživatelské jméno",
diff --git a/public/language/da/admin/settings/advanced.json b/public/language/da/admin/settings/advanced.json
index e372d48d70..982eaa2f64 100644
--- a/public/language/da/admin/settings/advanced.json
+++ b/public/language/da/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.",
"maintenance-mode.status": "Maintenance Mode Status Code",
"maintenance-mode.message": "Maintenance Message",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "Headers",
"headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Strict Transport Security",
"hsts.enabled": "Enabled HSTS (recommended)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/de/admin/advanced/cache.json b/public/language/de/admin/advanced/cache.json
index e5c0e8fdfd..7818db96ec 100644
--- a/public/language/de/admin/advanced/cache.json
+++ b/public/language/de/admin/advanced/cache.json
@@ -1,8 +1,8 @@
{
"post-cache": "Post-Cache",
- "group-cache": "Group Cache",
- "local-cache": "Local Cache",
- "object-cache": "Object Cache",
+ "group-cache": "Gruppen-Cache",
+ "local-cache": "Lokaler Cache",
+ "object-cache": "Objekt-Cache",
"percent-full": "%1% Voll",
"post-cache-size": "Post-Cache-Größe",
"items-in-cache": "Elemente im Cache"
diff --git a/public/language/de/admin/menu.json b/public/language/de/admin/menu.json
index 07a3c5937b..be0255aeeb 100644
--- a/public/language/de/admin/menu.json
+++ b/public/language/de/admin/menu.json
@@ -76,7 +76,7 @@
"logout": "Abmelden",
"view-forum": "Forum anzeigen",
- "search.placeholder": "Search settings",
+ "search.placeholder": "Nach Einstellungen suchen",
"search.no-results": "Keine Ergebnisse...",
"search.search-forum": "Suche im Forum nach ",
"search.keep-typing": "Gib mehr ein, um die Ergebnisse zu sehen...",
diff --git a/public/language/de/admin/settings/advanced.json b/public/language/de/admin/settings/advanced.json
index 0ebe167a14..1f75026bc5 100644
--- a/public/language/de/admin/settings/advanced.json
+++ b/public/language/de/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "Wenn sich das Forum im Wartungsmodus befindet, werden alle Anfragen auf eine statische Warteseite umgeleitet. Administratoren sind von dieser Umleitung ausgenommen und können normal auf die Site zugreifen.",
"maintenance-mode.status": "Statuscode für Wartungsmodus",
"maintenance-mode.message": "Wartungsnachricht",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "Headers",
"headers.allow-from": "ALLOW-FROM setzen um NodeBB in einem iFrame zu platzieren",
"headers.csp-frame-ancestors": "Content-Security-Policy frame-ancestors header setzen, um NodeBB in einem iFrame zu platzieren",
@@ -19,6 +20,8 @@
"headers.coep-help": "Wenn aktiviert (Standard), wird der Header auf require-corp gesetzt",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Strict Transport Security",
"hsts.enabled": "HSTS Aktivieren (empfohlen)",
"hsts.maxAge": "HSTS Maximales Alter",
diff --git a/public/language/de/admin/settings/email.json b/public/language/de/admin/settings/email.json
index 1444ca221c..db1e0d1de4 100644
--- a/public/language/de/admin/settings/email.json
+++ b/public/language/de/admin/settings/email.json
@@ -5,8 +5,8 @@
"from": "Name des Absenders",
"from-help": "Der Name des Absenders, welcher in der E-Mail angezeigt werden soll.",
- "confirmation-settings": "Confirmation",
- "confirmation.expiry": "Hours to keep email confirmation link valid",
+ "confirmation-settings": "Konfirmation",
+ "confirmation.expiry": "Stunden, um den E-Mail-Bestätigungslink gültig zu halten",
"smtp-transport": "SMTP Konfiguration",
"smtp-transport.enabled": "SMTP-Transport aktivieren",
diff --git a/public/language/de/admin/settings/post.json b/public/language/de/admin/settings/post.json
index 33d1885e40..74e262d7ec 100644
--- a/public/language/de/admin/settings/post.json
+++ b/public/language/de/admin/settings/post.json
@@ -51,7 +51,7 @@
"signature.disable": "Signaturen deaktivieren",
"signature.no-links": "Links in signaturen deaktivieren",
"signature.no-images": "Bilder in Signaturen deaktivieren",
- "signature.hide-duplicates": "Hide duplicate signatures in topics",
+ "signature.hide-duplicates": "Doppelte Signaturen in Themen ausblenden",
"signature.max-length": "Maximale Signaturlänge",
"composer": "Editor Einstellungen",
"composer-help": "Die folgenden Einstellungen bestimmen die funktionalität und/oder das Aussehen des Beitragseditors, der Nutzern angezeigt wird, webb sie neue Themen erstellen, oder bereits existierenden Antworten.",
diff --git a/public/language/de/admin/settings/reputation.json b/public/language/de/admin/settings/reputation.json
index d7b7585c7b..ffb9f2effc 100644
--- a/public/language/de/admin/settings/reputation.json
+++ b/public/language/de/admin/settings/reputation.json
@@ -24,8 +24,8 @@
"flags.limit-per-target-help": "Wenn ein Beitrag oder ein Benutzer mehrfach markiert wird, wird jede zusätzliche Markierung als "Nachricht" betrachtet und zur ursprünglichen Markierung hinzugezählt. Setzen Sie diese Option auf eine andere Zahl als Null, um die Anzahl der Nachricht, die ein Artikel erhalten kann, zu begrenzen.",
"flags.auto-flag-on-downvote-threshold": "Anzahl der Downvotes für Posts mit automatischer Markierung (zum Deaktivieren auf 0 setzen, Standard: 0)",
"flags.auto-resolve-on-ban": "Automatisches Beenden aller Tickets eines Benutzers, wenn dieser gesperrt wird",
- "flags.action-on-resolve": "Do the following when a flag is resolved",
- "flags.action-on-reject": "Do the following when a flag is rejected",
- "flags.action.nothing": "Do nothing",
- "flags.action.rescind": "Rescind the notification send to moderators/administrators"
+ "flags.action-on-resolve": "Führe Folgendes aus, wenn eine Flagge aufgelöst wird",
+ "flags.action-on-reject": "Gehe folgendermaßen vor, wenn eine Flagge abgelehnt wird",
+ "flags.action.nothing": "Nichts tun",
+ "flags.action.rescind": "Aufhebung der Benachrichtigung an Moderatoren/Administratoren"
}
\ No newline at end of file
diff --git a/public/language/de/admin/settings/user.json b/public/language/de/admin/settings/user.json
index e89b47c755..2af71b2cc6 100644
--- a/public/language/de/admin/settings/user.json
+++ b/public/language/de/admin/settings/user.json
@@ -1,7 +1,7 @@
{
"authentication": "Authentifizierung",
"email-confirm-interval": "Der Benutzer kann für ",
- "email-confirm-interval2": " Minuten keine Bestätigungsmail erneut senden.",
+ "email-confirm-interval2": "Minuten sind verstrichen",
"allow-login-with": "Erlaube Login mit",
"allow-login-with.username-email": "Benutzername oder E-Mail",
"allow-login-with.username": "Nur Benutzername",
diff --git a/public/language/de/error.json b/public/language/de/error.json
index 6767540d5f..bd3dd4083d 100644
--- a/public/language/de/error.json
+++ b/public/language/de/error.json
@@ -205,8 +205,8 @@
"no-connection": "Es scheint als gäbe es ein Problem mit deiner Internetverbindung",
"socket-reconnect-failed": "Der Server kann zurzeit nicht erreicht werden. Klicken Sie hier, um es erneut zu versuchen, oder versuchen Sie es später erneut",
"plugin-not-whitelisted": "Plugin kann nicht installiert werden – nur Plugins, die vom NodeBB Package Manager in die Whitelist aufgenommen wurden, können über den ACP installiert werden",
- "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.",
- "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP",
+ "plugins-set-in-configuration": "Du darfst den Status der Plugins nicht ändern, da sie zur Laufzeit definiert werden (config.json, Umgebungsvariablen oder Terminalargumente). Bitte ändere stattdessen die Konfiguration.",
+ "theme-not-set-in-configuration": "Wenn in der Konfiguration aktive Plugins definiert werden, muss bei einem Themenwechsel das neue Thema zur Liste der aktiven Plugins hinzugefügt werden, bevor es im ACP aktualisiert wird.",
"topic-event-unrecognized": "Themenereignis „%1“ nicht erkannt",
"cant-set-child-as-parent": "Untergeordnete Kategorie kann nicht als übergeordnete Kategorie festgelegt werden",
"cant-set-self-as-parent": "Die aktuelle Kategorie kann nicht als übergeordnete Kategorie festgelegt werden",
diff --git a/public/language/de/global.json b/public/language/de/global.json
index c9f894223a..fa6d78dcdf 100644
--- a/public/language/de/global.json
+++ b/public/language/de/global.json
@@ -18,7 +18,7 @@
"posting_restriction_info": "Nur registrierte Mitglieder dürfen Beiträge verfassen. Hier klicken zum Anmelden.",
"welcome_back": "Willkommen zurück",
"you_have_successfully_logged_in": "Du hast dich erfolgreich angemeldet",
- "save_changes": "Speichere Änderungen",
+ "save_changes": "Änderungen speichern",
"save": "Speichern",
"close": "Schließen",
"pagination": "Seitennummerierung",
diff --git a/public/language/de/modules.json b/public/language/de/modules.json
index b35ecf2a57..f5ba9f93d7 100644
--- a/public/language/de/modules.json
+++ b/public/language/de/modules.json
@@ -1,5 +1,5 @@
{
- "chat.chatting_with": "Chat mit",
+ "chat.chatting_with": "Chatte mit",
"chat.placeholder": "Gebe hier eine Chatnachricht ein, ziehe Bilder per Drag & Drop und drücke die Eingabetaste, um sie zu senden",
"chat.scroll-up-alert": "Diese Nachrichten sind möglicherweise veraltet, klicke hier um neuere Nachrichten anzuzeigen.",
"chat.send": "Senden",
diff --git a/public/language/de/user.json b/public/language/de/user.json
index e208e413bf..ae3f62dd99 100644
--- a/public/language/de/user.json
+++ b/public/language/de/user.json
@@ -195,5 +195,5 @@
"emailUpdate.optional": "Dieses Feld ist optional. Du bist nicht verpflichtet, deine E-Mail-Adresse anzugeben, doch ohne eine validierte E-Mail-Adresse kannst du dein Konto nicht wiederherstellen oder dich mit deiner E-Mail-Adresse anmelden.",
"emailUpdate.required": "Dieses Feld ist erforderlich.",
"emailUpdate.change-instructions": "An die eingegebene E-Mail-Adresse wird eine Bestätigungs-E-Mail mit einem eindeutigen Link gesendet. Durch den Zugriff auf diesen Link wird dein Eigentum an der E-Mail-Adresse bestätigt und diese wird in deinem Konto aktiv. Du kannst deine E-Mail-Adresse jederzeit auf deiner Kontoseite aktualisieren.",
- "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership."
+ "emailUpdate.password-challenge": "Bitte gib dein Passwort ein, um dein Konto zu verifizieren."
}
\ No newline at end of file
diff --git a/public/language/el/admin/settings/advanced.json b/public/language/el/admin/settings/advanced.json
index e372d48d70..982eaa2f64 100644
--- a/public/language/el/admin/settings/advanced.json
+++ b/public/language/el/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.",
"maintenance-mode.status": "Maintenance Mode Status Code",
"maintenance-mode.message": "Maintenance Message",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "Headers",
"headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Strict Transport Security",
"hsts.enabled": "Enabled HSTS (recommended)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/en-GB/admin/settings/advanced.json b/public/language/en-GB/admin/settings/advanced.json
index e372d48d70..982eaa2f64 100644
--- a/public/language/en-GB/admin/settings/advanced.json
+++ b/public/language/en-GB/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.",
"maintenance-mode.status": "Maintenance Mode Status Code",
"maintenance-mode.message": "Maintenance Message",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "Headers",
"headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Strict Transport Security",
"hsts.enabled": "Enabled HSTS (recommended)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/en-US/admin/settings/advanced.json b/public/language/en-US/admin/settings/advanced.json
index e372d48d70..982eaa2f64 100644
--- a/public/language/en-US/admin/settings/advanced.json
+++ b/public/language/en-US/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.",
"maintenance-mode.status": "Maintenance Mode Status Code",
"maintenance-mode.message": "Maintenance Message",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "Headers",
"headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Strict Transport Security",
"hsts.enabled": "Enabled HSTS (recommended)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/en-x-pirate/admin/settings/advanced.json b/public/language/en-x-pirate/admin/settings/advanced.json
index e372d48d70..982eaa2f64 100644
--- a/public/language/en-x-pirate/admin/settings/advanced.json
+++ b/public/language/en-x-pirate/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.",
"maintenance-mode.status": "Maintenance Mode Status Code",
"maintenance-mode.message": "Maintenance Message",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "Headers",
"headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Strict Transport Security",
"hsts.enabled": "Enabled HSTS (recommended)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/es/admin/settings/advanced.json b/public/language/es/admin/settings/advanced.json
index d79f6c9a56..4c912b4d14 100644
--- a/public/language/es/admin/settings/advanced.json
+++ b/public/language/es/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "Cuando este foro están en Modo de Mantenimiento, todas las peticiones serán redirigidas a una página estática de mantenimiento. Los administradores están exentos de esta redirección, y pueden acceder al sitio normalmente.",
"maintenance-mode.status": "Maintenance Mode Status Code",
"maintenance-mode.message": "Mensaje de Mantenimiento",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "Cabeceras",
"headers.allow-from": "Establecer ALLOW-FROM para poner NodeBB en un iFrame",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Seguridad estricta del transporte",
"hsts.enabled": "Enabled HSTS (recommended)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/es/admin/settings/user.json b/public/language/es/admin/settings/user.json
index 14c840f44c..60eebe04bf 100644
--- a/public/language/es/admin/settings/user.json
+++ b/public/language/es/admin/settings/user.json
@@ -1,7 +1,7 @@
{
"authentication": "Autenticación",
"email-confirm-interval": "El usuario no puede re-enviar una confirmación por email hasta",
- "email-confirm-interval2": "minutos han pasado",
+ "email-confirm-interval2": "minutes have elapsed",
"allow-login-with": "Permitir login con",
"allow-login-with.username-email": "Nombre de usuario o Email",
"allow-login-with.username": "Solo Nombre de Usuario",
diff --git a/public/language/et/admin/settings/advanced.json b/public/language/et/admin/settings/advanced.json
index e372d48d70..982eaa2f64 100644
--- a/public/language/et/admin/settings/advanced.json
+++ b/public/language/et/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.",
"maintenance-mode.status": "Maintenance Mode Status Code",
"maintenance-mode.message": "Maintenance Message",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "Headers",
"headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Strict Transport Security",
"hsts.enabled": "Enabled HSTS (recommended)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/fa-IR/admin/settings/advanced.json b/public/language/fa-IR/admin/settings/advanced.json
index e372d48d70..982eaa2f64 100644
--- a/public/language/fa-IR/admin/settings/advanced.json
+++ b/public/language/fa-IR/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.",
"maintenance-mode.status": "Maintenance Mode Status Code",
"maintenance-mode.message": "Maintenance Message",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "Headers",
"headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Strict Transport Security",
"hsts.enabled": "Enabled HSTS (recommended)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/fi/admin/settings/advanced.json b/public/language/fi/admin/settings/advanced.json
index e372d48d70..982eaa2f64 100644
--- a/public/language/fi/admin/settings/advanced.json
+++ b/public/language/fi/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.",
"maintenance-mode.status": "Maintenance Mode Status Code",
"maintenance-mode.message": "Maintenance Message",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "Headers",
"headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Strict Transport Security",
"hsts.enabled": "Enabled HSTS (recommended)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/fr/admin/settings/advanced.json b/public/language/fr/admin/settings/advanced.json
index a893503aa2..13058af0d3 100644
--- a/public/language/fr/admin/settings/advanced.json
+++ b/public/language/fr/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "Quand le forum est en mode maintenance, toutes les requêtes sont redirigées vers une page de garde statique. Les administrateurs sont exemptés de cette redirection et peuvent accéder normalement au site. ",
"maintenance-mode.status": "Mode maintenance",
"maintenance-mode.message": "Message de maintenance",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Sélectionner les groupes qui doivent être exemptés du mode maintenance",
"headers": "En-têtes",
"headers.allow-from": "Définissez ALLOW-FROM pour afficher NodeBB dans un iFrame",
"headers.csp-frame-ancestors": "Définir la politique de sécurité pour pouvoir intégrer des iframes",
@@ -19,6 +20,8 @@
"headers.coep-help": "Lorsqu'il est activé (par défaut), définira l'en-tête sur require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Strict Transport Security",
"hsts.enabled": "Activer HSTS (recommandé)",
"hsts.maxAge": "HSTS Age Max",
diff --git a/public/language/fr/admin/settings/email.json b/public/language/fr/admin/settings/email.json
index a741aa8dbf..42b64a4343 100644
--- a/public/language/fr/admin/settings/email.json
+++ b/public/language/fr/admin/settings/email.json
@@ -6,7 +6,7 @@
"from-help": "Le nom de l’expéditeur à afficher dans l'e-mail",
"confirmation-settings": "Confirmation",
- "confirmation.expiry": "Hours to keep email confirmation link valid",
+ "confirmation.expiry": "Heures de validité du lien de confirmation par e-mail",
"smtp-transport": "Protocole SMTP",
"smtp-transport.enabled": "Activer l'envoi via SMTP",
diff --git a/public/language/gl/admin/settings/advanced.json b/public/language/gl/admin/settings/advanced.json
index e372d48d70..982eaa2f64 100644
--- a/public/language/gl/admin/settings/advanced.json
+++ b/public/language/gl/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.",
"maintenance-mode.status": "Maintenance Mode Status Code",
"maintenance-mode.message": "Maintenance Message",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "Headers",
"headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Strict Transport Security",
"hsts.enabled": "Enabled HSTS (recommended)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/he/admin/manage/users.json b/public/language/he/admin/manage/users.json
index 6952a385e1..f84ad38851 100644
--- a/public/language/he/admin/manage/users.json
+++ b/public/language/he/admin/manage/users.json
@@ -63,7 +63,7 @@
"create.password": "סיסמה",
"create.password-confirm": "אשר סיסמה",
- "temp-ban.length": "Length",
+ "temp-ban.length": "זמן הרחקה",
"temp-ban.reason": "סיבה (אופציונאלי)",
"temp-ban.hours": "שעות",
"temp-ban.days": "ימים",
diff --git a/public/language/he/admin/settings/advanced.json b/public/language/he/admin/settings/advanced.json
index d506ad2d83..7be6b15566 100644
--- a/public/language/he/admin/settings/advanced.json
+++ b/public/language/he/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "כאשר הפורום נמצא במצב תחזוקה, כל הבקשות יופנו לדף אחזקה סטטי. מנהלים לא יגיעו להפניה זו, והם יוכלו לגשת לאתר כרגיל.",
"maintenance-mode.status": "קוד מצב תחזוקה",
"maintenance-mode.message": "הודעת תחזוקה",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "כותרות",
"headers.allow-from": "הגדר ALLOW-FROM למקם NodeBB ב- iFrame",
"headers.csp-frame-ancestors": "הגדר את מדיניות האבטחה (Content-Security-Policy) עבור ההטמעה (frame-ancestors) של NodeBB בתוך Iframe",
@@ -19,17 +20,19 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Strict Transport Security",
- "hsts.enabled": "Enabled HSTS (recommended)",
- "hsts.maxAge": "HSTS Max Age",
- "hsts.subdomains": "Include subdomains in HSTS header",
+ "hsts.enabled": "הפעל HSTS (מומלץ)",
+ "hsts.maxAge": "גיל כותרת HSTS",
+ "hsts.subdomains": "כלול תת-דומיינים בכותרת HSTS",
"hsts.preload": "Allow preloading of HSTS header",
"hsts.help": "If enabled, an HSTS header will be set for this site. You can elect to include subdomains and preloading flags in your header. If in doubt, you can leave these unchecked. More information ",
"traffic-management": "ניהול תעבורה",
- "traffic.help": "NodeBB uses a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.",
- "traffic.enable": "Enable Traffic Management",
+ "traffic.help": "NodeBB משתמש במודול שדוחה אוטומטית בקשות במצבים עם תעבורה גבוהה. אתה יכול לכוונן את ההגדרות האלה כאן, למרות שברירות המחדל הן נקודת התחלה טובה.",
+ "traffic.enable": "הפעל ניהול תעבורה",
"traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)",
- "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)",
+ "traffic.event-lag-help": "הורדת ערך זה מקטינה את זמני ההמתנה לטעינת הדפים, אך גם תציג את ההודעה \"עומס מופרז\" ליותר משתמשים. (אתחול נדרש)",
"traffic.lag-check-interval": "מרווח זמן בין בדיקות (במילישניות)",
"traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)",
@@ -38,10 +41,10 @@
"sockets.default-placeholder": "ברירת מחדל: %1",
"sockets.delay": "זמן השעייה בן נסיונות חיבור מחדש",
- "analytics.settings": "Analytics Settings",
- "analytics.max-cache": "Analytics Cache Max Value",
+ "analytics.settings": "הגדרות אנליטיקס",
+ "analytics.max-cache": "גודל מקסימלי של מטמון Analytics",
"analytics.max-cache-help": "On high-traffic installs, the cache could be exhausted continuously if there are more concurrent active users than the Max Cache value. (Restart required)",
"compression.settings": "הגדרות דחיסה",
"compression.enable": "אפשר דחיסה",
- "compression.help": "This setting enables gzip compression. For a high-traffic website in production, the best way to put compression in place is to implement it at a reverse proxy level. You can enable it here for testing purposes."
+ "compression.help": "הגדרה זו מפעילה דחיסת gzip. עבור אתר אינטרנט מרובה תנועה בייצור, הדרך הטובה ביותר להפעיל דחיסה היא ליישם אותו ברמת פרוקסי הפוך. אתה יכול להפעיל אותו כאן למטרות בדיקה."
}
\ No newline at end of file
diff --git a/public/language/he/admin/settings/post.json b/public/language/he/admin/settings/post.json
index f3f938f47e..5b39f4250c 100644
--- a/public/language/he/admin/settings/post.json
+++ b/public/language/he/admin/settings/post.json
@@ -45,13 +45,13 @@
"unread.cutoff": "ימי ניתוק שלא נקראו",
"unread.min-track-last": "פוסטים מינימליים בנושא לפני מעקב אחר קריאה אחרונה",
"recent": "הגדרות פוסטים אחרונים",
- "recent.max-topics": "מקסימום נושאים ב פוסטים אחרונים",
+ "recent.max-topics": "מקסימום נושאים בעמוד פוסטים אחרונים",
"recent.categoryFilter.disable": "הפיכת סינון נושאים ללא זמין בקטגוריות שהתעלמו מהן בדף פוסטים אחרונים",
"signature": "הגדרות חתימה",
"signature.disable": "השבת חתימות",
"signature.no-links": "השבת קישורים בחתימות",
"signature.no-images": "השבת תמונות בחתימות",
- "signature.hide-duplicates": "Hide duplicate signatures in topics",
+ "signature.hide-duplicates": "הצג חתימות פעם אחת בלבד בכל נושא",
"signature.max-length": "אורך חתימה מרבי",
"composer": "הגדרות יצירת פוסט",
"composer-help": "ההגדרות הבאות חלות על הפונקציונליות ו/או המראה של יוצר הפוסט המוצג\n\t\t\t\tלמשתמשים בעת יצירת נושאים חדשים, או מענה לנושאים קיימים.",
diff --git a/public/language/he/admin/settings/reputation.json b/public/language/he/admin/settings/reputation.json
index a583635a09..9683ce420f 100644
--- a/public/language/he/admin/settings/reputation.json
+++ b/public/language/he/admin/settings/reputation.json
@@ -24,8 +24,8 @@
"flags.limit-per-target-help": "כשפוסט או משתמש מסומן כמה פעמים, כל דיווח נוסף נחשב ל "דיווח" ונוסף לדיווח הראשון. הגדר את האופציה הזאת לכל מספר שהוא לא 0 כדי להגביל את כמות הדיווחים שפוסט או משתמש יכול לקבל.",
"flags.auto-flag-on-downvote-threshold": "מספר הצבעות למטה כדי ליצור דיווח אטומטי (הגדר ל-0 כדי להשבית; ברירת מחדל: 0)",
"flags.auto-resolve-on-ban": "פתור אוטומטי כל כרטיסי משתמש כאשר הוא מוחרם",
- "flags.action-on-resolve": "Do the following when a flag is resolved",
- "flags.action-on-reject": "Do the following when a flag is rejected",
+ "flags.action-on-resolve": "בצע את הפעולות הבאות כאשר דיווח נפתר",
+ "flags.action-on-reject": "בצע את הפעולות הבאות כאשר דיווח נדחה",
"flags.action.nothing": "Do nothing",
"flags.action.rescind": "Rescind the notification send to moderators/administrators"
}
\ No newline at end of file
diff --git a/public/language/he/admin/settings/uploads.json b/public/language/he/admin/settings/uploads.json
index e850a57c65..96d398a357 100644
--- a/public/language/he/admin/settings/uploads.json
+++ b/public/language/he/admin/settings/uploads.json
@@ -5,7 +5,7 @@
"strip-exif-data": "הפשט נתוני EXIF",
"preserve-orphaned-uploads": "שמור את הקבצים שהועלו בדיסק גם לאחר מחיקת הפוסט",
"orphanExpiryDays": "מספר ימים לשמירת קבצים יתומים",
- "orphanExpiryDays-help": "After this many days, orphaned uploads will be deleted from the file system.pdf,xls,doc). שורה ריקה פירושו שכל הקבצים פרטיים.",
"resize-image-width-threshold": "שנה גודל תמונות אם הם רחבים יותר מהרוחב המוגדר",
diff --git a/public/language/he/admin/settings/user.json b/public/language/he/admin/settings/user.json
index 6c3ce0caae..6601d20392 100644
--- a/public/language/he/admin/settings/user.json
+++ b/public/language/he/admin/settings/user.json
@@ -1,7 +1,7 @@
{
"authentication": "אימות",
"email-confirm-interval": "המשתמש לא יוכל לשלוח הודעת אישור מייל עד שיחלוף",
- "email-confirm-interval2": "דקות",
+ "email-confirm-interval2": "minutes have elapsed",
"allow-login-with": "אפשר התחברות עם",
"allow-login-with.username-email": "שם משתמש או סיסמא",
"allow-login-with.username": "שם משתמש בלבד",
@@ -29,7 +29,7 @@
"session-time-days": "ימים",
"session-time-seconds": "שניות",
"session-time-help": "ערכים אלו משמשים כדי להגדיר כמה זמן משתמשים יישארו מחוברים כאשר הם סימנו "זכור אותי" בהתחברות. שים לב שייעשה שימוש רק באחד מהערכים האלו. אם אין ערך שניות נשתמש בערך ימים. אם אין ערך ימים הערך יחזור לברירת מחדל 14 יום.",
- "online-cutoff": "דקות אחרי שהמשתמש נחשב לא פעיל",
+ "online-cutoff": "אחרי כמה דקות דקות המשתמש ייחשב ללא פעיל",
"online-cutoff-help": "אם משתמש אינו מבצע פעולות במשך זמן זה, הוא נחשב כלא פעיל ואינו מקבל עדכונים בזמן אמת.",
"registration": "רישום משתמש",
"registration-type": "סוג הרשמה",
@@ -40,8 +40,8 @@
"registration-type.invite-only": "הזמנה בלבד",
"registration-type.admin-invite-only": "הזמנת מנהל בלבד",
"registration-type.disabled": "בטל הרשמה",
- "registration-type.help": "רגיל - משתמשים יכולים להירשם על ידי שימוש בדף /register.require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Strict Transport Security",
"hsts.enabled": "Enabled HSTS (recommended)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/hr/admin/settings/user.json b/public/language/hr/admin/settings/user.json
index 43c20bfdb1..e1aa153b52 100644
--- a/public/language/hr/admin/settings/user.json
+++ b/public/language/hr/admin/settings/user.json
@@ -1,7 +1,7 @@
{
"authentication": "Autentifikacija",
"email-confirm-interval": "Korisnik ne može ponovno poslati potvrdni email do ",
- "email-confirm-interval2": "prošlo je minuta",
+ "email-confirm-interval2": "minutes have elapsed",
"allow-login-with": "Dozvoli prijavu sa",
"allow-login-with.username-email": "Korisničko ime ili Email",
"allow-login-with.username": "Korisničko ime",
diff --git a/public/language/hu/admin/settings/advanced.json b/public/language/hu/admin/settings/advanced.json
index 0ed27c3041..24a7537fe3 100644
--- a/public/language/hu/admin/settings/advanced.json
+++ b/public/language/hu/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "Amikor a fórum karbantartási módban van, minden kérés átirányításra kerül egy statikus feltartóztató oldalra. Az adminisztrátorok kivételnek számítanak ez alól, és szokásos módon hozzáférhetnek az oldalhoz.",
"maintenance-mode.status": "Karbantartási mód HTTP státuszkódja",
"maintenance-mode.message": "A karbantartás üzenete",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "Fejlécek",
"headers.allow-from": "ALLOW-FROM beállítása, hogy a NodeBB egy iFrame-be kerüljön",
"headers.csp-frame-ancestors": "Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Szigorú HTTP biztonság (HSTS)",
"hsts.enabled": "Szigorú HTTP biztonság (HSTS) bekapcsolása (ajánlott)",
"hsts.maxAge": "HSTS maximális kora",
diff --git a/public/language/hu/admin/settings/user.json b/public/language/hu/admin/settings/user.json
index 3db2f70226..f679e5b510 100644
--- a/public/language/hu/admin/settings/user.json
+++ b/public/language/hu/admin/settings/user.json
@@ -1,7 +1,7 @@
{
"authentication": "Hitelesítés",
"email-confirm-interval": "A felhasználó nem küldetheti újra az emailt ameddig nem telt el",
- "email-confirm-interval2": "perc",
+ "email-confirm-interval2": "minutes have elapsed",
"allow-login-with": "Bejelentkezés engedélyezése ezzel:",
"allow-login-with.username-email": "Felhasználónév vagy email cím",
"allow-login-with.username": "Csak felhasználónév",
diff --git a/public/language/id/admin/settings/advanced.json b/public/language/id/admin/settings/advanced.json
index e372d48d70..982eaa2f64 100644
--- a/public/language/id/admin/settings/advanced.json
+++ b/public/language/id/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.",
"maintenance-mode.status": "Maintenance Mode Status Code",
"maintenance-mode.message": "Maintenance Message",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "Headers",
"headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Strict Transport Security",
"hsts.enabled": "Enabled HSTS (recommended)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/it/admin/settings/advanced.json b/public/language/it/admin/settings/advanced.json
index 119192b6a4..23de6ede5e 100644
--- a/public/language/it/admin/settings/advanced.json
+++ b/public/language/it/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "Quando il forum è in modalità manutenzione, tutte le richieste saranno reindirizzate ad una pagina di attesa statica. Gli amministratori sono esenti da questo reindirizzamento e sono in grado di accedere al sito normalmente.",
"maintenance-mode.status": "Codice stato modalità manutenzione",
"maintenance-mode.message": "Messaggio di manutenzione",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Seleziona i gruppi che dovrebbero essere esenti dalla modalità di manutenzione",
"headers": "Intestazioni",
"headers.allow-from": "Imposta ALLOW-FROM per posizionare NodeBBB in un iFrame",
"headers.csp-frame-ancestors": "Imposta l'intestazione Content-Security-Policy frame-ancestors su Place NodeBB in un iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "Se abilitato (impostazione predefinita), imposterà l'intestazione su require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Rigorosa sicurezza trasporto",
"hsts.enabled": "Abilita HSTS (consigliato)",
"hsts.maxAge": "Età massima HSTS",
diff --git a/public/language/it/admin/settings/user.json b/public/language/it/admin/settings/user.json
index e3d5969aa6..b418763c86 100644
--- a/public/language/it/admin/settings/user.json
+++ b/public/language/it/admin/settings/user.json
@@ -1,7 +1,7 @@
{
"authentication": "Autenticazione",
"email-confirm-interval": "L'utente non può mandare una nuova email di conferma fino a",
- "email-confirm-interval2": "minuti trascorsi",
+ "email-confirm-interval2": "sono trascorsi minuti",
"allow-login-with": "Consenti l'accesso con",
"allow-login-with.username-email": "Username o Email",
"allow-login-with.username": "Solo Username",
diff --git a/public/language/ja/admin/settings/advanced.json b/public/language/ja/admin/settings/advanced.json
index a162199c96..72ad0891bf 100644
--- a/public/language/ja/admin/settings/advanced.json
+++ b/public/language/ja/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "フォーラムがメンテナンスモードの場合、すべてのリクエストは静的な一時ページにリダイレクトされます。管理者はこのリダイレクトから免除され、通常のサイトにアクセスできます。",
"maintenance-mode.status": "Maintenance Mode Status Code",
"maintenance-mode.message": "メンテナンスメッセージ",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "ヘッダー",
"headers.allow-from": "NodeBBをインラインフレーム内に配置するようALLOW-FROMを設定する",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Strict Transport Security",
"hsts.enabled": "Enabled HSTS (recommended)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/ja/admin/settings/user.json b/public/language/ja/admin/settings/user.json
index cac5496aba..dcd8a4edaf 100644
--- a/public/language/ja/admin/settings/user.json
+++ b/public/language/ja/admin/settings/user.json
@@ -1,7 +1,7 @@
{
"authentication": "認証",
"email-confirm-interval": "ユーザーが確認するまでEメールを再送信しない",
- "email-confirm-interval2": "分経過",
+ "email-confirm-interval2": "minutes have elapsed",
"allow-login-with": "ログインを許可",
"allow-login-with.username-email": "ユーザー名または電子メール",
"allow-login-with.username": "ユーザー名のみ",
diff --git a/public/language/ko/admin/settings/advanced.json b/public/language/ko/admin/settings/advanced.json
index 9a33814940..9d6966eab9 100644
--- a/public/language/ko/admin/settings/advanced.json
+++ b/public/language/ko/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "포럼이 점검 모드일 경우 모든 접속 요청은 정적 페이지로 리다이렉트됩니다. 관리자는 이 리다이렉션에 적용되지 않고 사이트에 접속하는 것이 가능합니다.",
"maintenance-mode.status": "점검 모드 상태 코드",
"maintenance-mode.message": "점검 공지",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "헤더",
"headers.allow-from": "NodeBB를 iFrame에 삽입할 수 있게 하시려면, ALLOW-FROM(NodeBB를 Embedding할 수 있는 도메인)을 설정하세요.",
"headers.csp-frame-ancestors": "NodeBB를 iFrame에 삽입하기 위한 컨텐츠 보안 정책 frame-ancestors 헤더 설정",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Strict Transport Security",
"hsts.enabled": "HSTS 활성화 (권장)",
"hsts.maxAge": "HSTS 유효 기간",
diff --git a/public/language/ko/admin/settings/user.json b/public/language/ko/admin/settings/user.json
index 01d7ea0ec3..ac9db811b2 100644
--- a/public/language/ko/admin/settings/user.json
+++ b/public/language/ko/admin/settings/user.json
@@ -1,7 +1,7 @@
{
"authentication": "인증",
"email-confirm-interval": "사용자는",
- "email-confirm-interval2": "분이 지나기 전까지 인증 메일 재요청이 불가능합니다.",
+ "email-confirm-interval2": "minutes have elapsed",
"allow-login-with": "로그인 허용 수단",
"allow-login-with.username-email": "사용자명 또는 이메일",
"allow-login-with.username": "사용자명",
diff --git a/public/language/lt/admin/settings/advanced.json b/public/language/lt/admin/settings/advanced.json
index e372d48d70..982eaa2f64 100644
--- a/public/language/lt/admin/settings/advanced.json
+++ b/public/language/lt/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.",
"maintenance-mode.status": "Maintenance Mode Status Code",
"maintenance-mode.message": "Maintenance Message",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "Headers",
"headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Strict Transport Security",
"hsts.enabled": "Enabled HSTS (recommended)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/lv/admin/settings/advanced.json b/public/language/lv/admin/settings/advanced.json
index 5358182884..1899c0dd8f 100644
--- a/public/language/lv/admin/settings/advanced.json
+++ b/public/language/lv/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "Kad forums atrodas apkopes režīmā, visa piekļuve tiks novirzīta uz statisku lapu. Uz administratoriem neattiecas šī novirzīšana un viņi var piekļūt vietnei kā parasti.",
"maintenance-mode.status": "Maintenance Mode Status Code",
"maintenance-mode.message": "Apkopes paziņojums",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "Iezīmes",
"headers.allow-from": "Iestatīt ALLOW-FROM, lai atļautu NodeBB ievietot iFrame",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "HTTP Strict Transport Security (HSTS)",
"hsts.enabled": "Iespējots HSTS (ieteicams)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/lv/admin/settings/user.json b/public/language/lv/admin/settings/user.json
index 78653597fd..9a3d3d0c7d 100644
--- a/public/language/lv/admin/settings/user.json
+++ b/public/language/lv/admin/settings/user.json
@@ -1,7 +1,7 @@
{
"authentication": "Autentifikācija",
"email-confirm-interval": "Lietotājs nevar atkārtoti nosūtīt apstiprinājuma e-pastu pirms",
- "email-confirm-interval2": "minūtes nav pagājušas",
+ "email-confirm-interval2": "minutes have elapsed",
"allow-login-with": "Ielogoties",
"allow-login-with.username-email": "Ar lietotājvārdu vai e-pasta adresi",
"allow-login-with.username": "Tikai ar lietotājvārdu",
diff --git a/public/language/ms/admin/settings/advanced.json b/public/language/ms/admin/settings/advanced.json
index e372d48d70..982eaa2f64 100644
--- a/public/language/ms/admin/settings/advanced.json
+++ b/public/language/ms/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.",
"maintenance-mode.status": "Maintenance Mode Status Code",
"maintenance-mode.message": "Maintenance Message",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "Headers",
"headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Strict Transport Security",
"hsts.enabled": "Enabled HSTS (recommended)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/nb/admin/admin.json b/public/language/nb/admin/admin.json
index 83e867a30f..65bbbc4f99 100644
--- a/public/language/nb/admin/admin.json
+++ b/public/language/nb/admin/admin.json
@@ -5,7 +5,7 @@
"acp-title": "%1 | NodeBB Admin Kontrollpanel",
"settings-header-contents": "Innhold",
"changes-saved": "Endringer lagret",
- "changes-saved-message": "Dine endringer til NodeBB-konfigurasjonen har blitt lagret.",
+ "changes-saved-message": "Dine endringer i NodeBB-konfigurasjonen har blitt lagret.",
"changes-not-saved": "Endringer ikke lagret",
"changes-not-saved-message": "NodeBB støtte på et problem ved lagring av endringer. (%1)"
}
\ No newline at end of file
diff --git a/public/language/nb/admin/manage/registration.json b/public/language/nb/admin/manage/registration.json
index f51b4d56e6..70676dfe9f 100644
--- a/public/language/nb/admin/manage/registration.json
+++ b/public/language/nb/admin/manage/registration.json
@@ -10,11 +10,11 @@
"list.email-spam": "Frequency: %1 Appears: %2",
"list.ip-spam": "Frequency: %1 Appears: %2",
- "invitations": "Invitations",
+ "invitations": "Invitasjoner",
"invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username. require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Strict Transport Security",
"hsts.enabled": "Enabled HSTS (recommended)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/nb/admin/settings/email.json b/public/language/nb/admin/settings/email.json
index 35e713adc0..f5aa006956 100644
--- a/public/language/nb/admin/settings/email.json
+++ b/public/language/nb/admin/settings/email.json
@@ -1,9 +1,9 @@
{
- "email-settings": "Email Settings",
- "address": "Email Address",
- "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.",
+ "email-settings": "E-postinnstillinger",
+ "address": "E-postadresse",
+ "address-help": "Følgende e-postadresse viser til e-postadressen som mottakeren vil se i \"Fra\" og \"Svar til\"-feltene. ",
"from": "From Name",
- "from-help": "The from name to display in the email.",
+ "from-help": "Avsendernavnet som skal vises i e-posten.",
"confirmation-settings": "Confirmation",
"confirmation.expiry": "Hours to keep email confirmation link valid",
@@ -16,37 +16,37 @@
"smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.",
"smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.",
"smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.",
- "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.",
+ "smtp-transport.auto-enable-toast": "Det ser ut som at du konfigurerer en SMTP transport. Vi skrudde på «SMTP Transport»-alternativet for deg.",
"smtp-transport.host": "SMTP Host",
"smtp-transport.port": "SMTP Port",
"smtp-transport.security": "Connection security",
"smtp-transport.security-encrypted": "Encrypted",
"smtp-transport.security-starttls": "StartTLS",
"smtp-transport.security-none": "None",
- "smtp-transport.username": "Username",
+ "smtp-transport.username": "Brukernavn",
"smtp-transport.username-help": "For the Gmail service, enter the full email address here, especially if you are using a Google Apps managed domain.",
"smtp-transport.password": "Password",
"smtp-transport.pool": "Enable pooled connections",
"smtp-transport.pool-help": "Pooling connections prevents NodeBB from creating a new connection for every email. This option only applies if SMTP Transport is enabled.",
- "template": "Edit Email Template",
- "template.select": "Select Email Template",
+ "template": "Endre e-postmal",
+ "template.select": "Velg e-postmal",
"template.revert": "Revert to Original",
- "testing": "Email Testing",
- "testing.select": "Select Email Template",
- "testing.send": "Send Test Email",
+ "testing": "E-posttesting",
+ "testing.select": "Velg e-postmal",
+ "testing.send": "Send test-e-post",
"testing.send-help": "The test email will be sent to the currently logged in user's email address.",
- "subscriptions": "Email Digests",
- "subscriptions.disable": "Disable email digests",
+ "subscriptions": "E-postsammendrag",
+ "subscriptions.disable": "Deaktiver e-postsammendrag",
"subscriptions.hour": "Digest Hour",
- "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.0 for midnatt, 17 for 17:00). Husk at denne tiden forholder seg til serverens tid, og kan avvike fra din systemklokke.1%):",
+ "unsub.failure.title": "Kan ikke avslutte abonnementet",
+ "unsub.failure.message": "Dessverre kunne vi ikke melde deg av e-postlisten, da det var et problem med lenken. Du kan imidlertid endre preferansene for e-post ved å gå tilinnstillinger.1%):",
"banned.subject": "Du har blitt utestengt fra %1",
"banned.text1": "Brukeren %1 er utestengt fra %2.",
"banned.text2": "Dette forbudet varer til %1.",
diff --git a/public/language/nb/error.json b/public/language/nb/error.json
index 450515b027..5a56fc2e75 100644
--- a/public/language/nb/error.json
+++ b/public/language/nb/error.json
@@ -35,11 +35,11 @@
"email-taken": "E-post opptatt",
"email-nochange": "E-posten som er angitt er den samme e-posten som allerede er lagret.",
"email-invited": "E-post har allerede fått invitasjon",
- "email-not-confirmed": "Posting i enkelte kategorier eller emner er aktivert når e-posten din er bekreftet. Klikk her for å sende en bekreftelses-e-post. ",
+ "email-not-confirmed": "Posting i enkelte kategorier eller emner blir aktivert når e-posten din er bekreftet. Klikk her for å sende en bekreftelses-e-post. ",
"email-not-confirmed-chat": "Du kan ikke chatte før e-posten din er bekreftet, vennligst klikk her for å bekrefte e-postadressen.",
"email-not-confirmed-email-sent": "E-posten din er ikke bekreftet ennå, sjekk innboksen din for bekreftelses-e-post. Det kan hende du ikke kan legge ut innlegg i enkelte kategorier eller chatte før e-posten din er bekreftet.",
- "no-email-to-confirm": "Kontoen din har ikke et e-postsett. En e-post er nødvendig for gjenoppretting av konto, og kan være nødvendig for chatting og innlegg i enkelte kategorier. Klikk her for å skrive inn en e-post.",
- "user-doesnt-have-email": "Brukeren «%1» har ikke angitt en e-post. ",
+ "no-email-to-confirm": "Kontoen din mangler e-postadresse. En e-postadresse er nødvendig for gjenoppretting av konto, og kan være nødvendig for chatting og innlegg i enkelte kategorier. Klikk her for å skrive inn en e-postadresse.",
+ "user-doesnt-have-email": "Brukeren «%1» har ikke lagt til e-postadresse. ",
"email-confirm-failed": "Vi kunne ikke bekrefte e-posten din, vennligst prøv igjen senere.",
"confirm-email-already-sent": "E-post for bekreftelse er allerede sendt, vennligst vent %1 minutt(er) for å sende en til.",
"sendmail-not-found": "Funksjonaliteten \"sendmail\" ble ikke funnet, vennligst sjekk at den er installert og kjørbar av brukeren som kjører NodeBB.",
@@ -53,7 +53,7 @@
"user-banned-reason": "Beklager, denne kontoen har blitt utestengt (Grunn: %1)",
"user-banned-reason-until": "Beklager, denne kontoen har blit utestengt til %1 (Grunn: %2)",
"user-too-new": "Beklager, du må vente %1 sekund(er) før du oppretter ditt første innlegg",
- "blacklisted-ip": "Beklager, din IP-adresse har blitt utestengt fra dette forumet. Hvis du føler dette er en feil, vennligst kontakt en sideadministrator.",
+ "blacklisted-ip": "Beklager, din IP-adresse har blitt utestengt fra dette forumet. Hvis du mener dette er en feil, vennligst kontakt en sideadministrator.",
"ban-expiry-missing": "Vennligst oppgi et sluttidspunkt for denne utestengingen.",
"no-category": "Kategorien eksisterer ikke",
"no-topic": "Emne eksisterer ikke",
@@ -87,7 +87,7 @@
"title-too-long": "Vennligst skriv en kortere tittel. Tittel kan ikke være lengre enn %1 tegn.",
"category-not-selected": "Kategori ikke valgt",
"too-many-posts": "Du kan bare poste en gang per %1 sekund(er) – vennligst vent før du poster igjen",
- "too-many-posts-newbie": "Som ny bruker kan du bare poste en gang per %1. sekund(er), før du har opparbeidet %2 i rykte – vennligst vent før du poster igjen",
+ "too-many-posts-newbie": "Som ny bruker kan du bare poste en gang per %1. sekund(er), før du har opparbeidet %2 i omdømme – vennligst vent før du poster igjen",
"tag-too-short": "Vennligst skriv et lengre emneord. Disse må være på minst %1 tegn",
"tag-too-long": "Vennligst skriv et kortere emneord. Disse kan ikke være lengre enn %1 tegn",
"not-enough-tags": "Ikke nok emneord. Emner må ha minst %1.",
@@ -108,9 +108,9 @@
"already-bookmarked": "Du har allerede bokmerket dette innlegget",
"already-unbookmarked": "Du har allerede fjernet bokmerket fra dette innlegget",
"cant-ban-other-admins": "Du kan ikke utestenge andre administratorer!",
- "cant-mute-other-admins": "Du kan ikke kneble andre administratorer. ",
- "user-muted-for-hours": "Du har blitt kneblet, du vil være i stand til å skrive innlegg innen %1 time(r). ",
- "user-muted-for-minutes": "Du har blitt kneblet, du vil være i stand til å skrive innlegg innen %1 minutt(er).",
+ "cant-mute-other-admins": "Du kan ikke kneble andre administratorer.",
+ "user-muted-for-hours": "Du har blitt kneblet, du vil være i stand til å skrive innlegg om %1 time(r). ",
+ "user-muted-for-minutes": "Du har blitt kneblet, du vil være i stand til å skrive innlegg om %1 minutt(er).",
"cant-make-banned-users-admin": "Du kan ikke gjøre utestengte brukere til administrator. ",
"cant-remove-last-admin": "Du er den eneste administratoren. Legg til en annen bruker som administrator før du fjerner deg selv.",
"account-deletion-disabled": "Kontosletting er deaktivert",
@@ -156,7 +156,7 @@
"chat-restored-already": "Denne meldingen har allerede blitt gjenopprettet.",
"chat-room-does-not-exist": "Dette chatterommet finnes ikke.",
"already-voting-for-this-post": "Du har allerede stemt på dette innlegget",
- "reputation-system-disabled": "Ryktesystemet er deaktivert.",
+ "reputation-system-disabled": "Omdømmesystemet er deaktivert.",
"downvoting-disabled": "Nedstemming er deaktivert",
"not-enough-reputation-to-chat": "You need %1 reputation to chat",
"not-enough-reputation-to-upvote": "Du trenger %1 omdømme for å stemme opp. ",
@@ -182,7 +182,7 @@
"parse-error": "Noe gikk feil under analysering av serversvar",
"wrong-login-type-email": "Vennligst benytt e-posten din for å logge inn",
"wrong-login-type-username": "Vennligst benytt brukernavnet ditt for å logge inn",
- "sso-registration-disabled": "Registrering har blitt deaktivert for %1 konto(er), vennligst registrer deg med en e-post adresse først",
+ "sso-registration-disabled": "Registrering har blitt deaktivert for %1 konto(er), registrer deg med en e-post adresse først",
"sso-multiple-association": "Du kan ikke knytte flere kontoer til din NodeBB konto. Vennligst koble fra din eksisterende konto og prøv igjen.",
"invite-maximum-met": "Du har invitert maks antall personer (%1 av %2).",
"no-session-found": "Ingen innlogget sesjon funnet!",
diff --git a/public/language/nb/global.json b/public/language/nb/global.json
index 9c8254dc1d..4ea9222a50 100644
--- a/public/language/nb/global.json
+++ b/public/language/nb/global.json
@@ -47,7 +47,7 @@
"alert.error": "Feil",
"alert.banned": "Utestengt",
"alert.banned.message": "Du har nettop blitt utestengt, din tilgang er nå begrenset.",
- "alert.unbanned": "Ikke utestengt",
+ "alert.unbanned": "Utestengelse opphevet",
"alert.unbanned.message": "Utestengelsen er opphevet",
"alert.unfollow": "Du følger ikke lenger %1!",
"alert.follow": "Du følger nå %1!",
@@ -66,7 +66,7 @@
"downvoted": "Nedstemte ",
"views": "Visninger",
"posters": "Innlegg ",
- "reputation": "Rykte",
+ "reputation": "Omdømme",
"lastpost": "Seneste innlegg",
"firstpost": "Første innlegg ",
"read_more": "les mer",
@@ -87,11 +87,11 @@
"recentposts": "Seneste innlegg",
"recentips": "Seneste innloggede IPer",
"moderator_tools": "Moderatorverktøy",
- "online": "Pålogget",
+ "online": "Tilkoblet",
"away": "Borte",
"dnd": "Ikke forstyrr",
"invisible": "Usynlig",
- "offline": "Avlogget",
+ "offline": "Frakoblet",
"email": "E-post",
"language": "Språk",
"guest": "Gjest",
diff --git a/public/language/nb/login.json b/public/language/nb/login.json
index 597b4ad124..fc6eb92fc8 100644
--- a/public/language/nb/login.json
+++ b/public/language/nb/login.json
@@ -4,7 +4,7 @@
"remember_me": "Husk meg?",
"forgot_password": "Glemt passord?",
"alternative_logins": "Alternativ innlogging",
- "failed_login_attempt": "Innlogging misslyktes",
+ "failed_login_attempt": "Innlogging mislyktes",
"login_successful": "Du har blitt logget inn!",
"dont_have_account": "Har du ikke en konto?",
"logged-out-due-to-inactivity": "Du har blitt logget ut av administratorsidene fordi du har vært inaktiv for lenge",
diff --git a/public/language/nb/notifications.json b/public/language/nb/notifications.json
index 8087f11a98..9ae49a8f93 100644
--- a/public/language/nb/notifications.json
+++ b/public/language/nb/notifications.json
@@ -53,8 +53,8 @@
"post-queue-notify": "Varsel mottatt for innlegg i kø:require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Strict Transport Security",
"hsts.enabled": "Enabled HSTS (recommended)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/pl/admin/settings/advanced.json b/public/language/pl/admin/settings/advanced.json
index d15d74825e..619e26b8de 100644
--- a/public/language/pl/admin/settings/advanced.json
+++ b/public/language/pl/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "Kiedy forum jest w trybie konserwacji, wszystkie żądania będą przekierowane do statycznej strony oczekiwania. Administratorzy nie są objęci tym przekierowaniem i mogą normalnie korzystać ze strony.",
"maintenance-mode.status": "Kod stanu trybu konserwacji",
"maintenance-mode.message": "Komunikat na ekranie konserwacji",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "Nagłówki",
"headers.allow-from": "Ustaw ALLOW-FROM, aby umieścić NodeBB w ramce iFrame",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Strict Transport Security",
"hsts.enabled": "Włączony HSTS (zalecane)",
"hsts.maxAge": "Maksymalny wiek HSTS",
diff --git a/public/language/pl/admin/settings/user.json b/public/language/pl/admin/settings/user.json
index e019daa806..0389a4abaa 100644
--- a/public/language/pl/admin/settings/user.json
+++ b/public/language/pl/admin/settings/user.json
@@ -1,7 +1,7 @@
{
"authentication": "Uwierzytelnianie",
"email-confirm-interval": "Użytkownik nie może ponownie wysłać e-maila z potwierdzeniem, dopóki nie minie",
- "email-confirm-interval2": "minut",
+ "email-confirm-interval2": "minutes have elapsed",
"allow-login-with": "Zezwalaj na logowanie przy użyciu",
"allow-login-with.username-email": "Nazwy użytkownika lub adresu email",
"allow-login-with.username": "Tylko nazwy użytkownika",
diff --git a/public/language/pt-BR/admin/settings/advanced.json b/public/language/pt-BR/admin/settings/advanced.json
index f9ebbe4c99..84d1f48c6f 100644
--- a/public/language/pt-BR/admin/settings/advanced.json
+++ b/public/language/pt-BR/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "Quando o fórum está em modo de manutenção, todas as solicitações serão redirecionadas para uma página estática. Administradores não sofrem este redirecionamento e podem acessar o site normalmente.",
"maintenance-mode.status": "Código de Status de Modo de Mautenção",
"maintenance-mode.message": "Mensagem de Manutenção",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "Cabeçalhos",
"headers.allow-from": "Defina ALLOW-FROM para Colocar o NodeBB em um iFrame",
"headers.csp-frame-ancestors": "Define o cabeçalho de Content-Security-Policy frame-ancestors para Colocar o NodeBB em um iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Strict Transport Security",
"hsts.enabled": "Habilitar HSTS (recomendado)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/pt-BR/admin/settings/user.json b/public/language/pt-BR/admin/settings/user.json
index a5b0a196a8..069cfb422f 100644
--- a/public/language/pt-BR/admin/settings/user.json
+++ b/public/language/pt-BR/admin/settings/user.json
@@ -1,7 +1,7 @@
{
"authentication": "Autenticação",
"email-confirm-interval": "O usuário não pode reenviar um e-mail de confirmação até",
- "email-confirm-interval2": "minutos decorridos",
+ "email-confirm-interval2": "minutes have elapsed",
"allow-login-with": "Permitir login com",
"allow-login-with.username-email": "Nome de Usuário ou E-mail",
"allow-login-with.username": "Apenas Nome de Usuário",
diff --git a/public/language/pt-PT/admin/settings/advanced.json b/public/language/pt-PT/admin/settings/advanced.json
index b31b5f7579..5b01a7fefd 100644
--- a/public/language/pt-PT/admin/settings/advanced.json
+++ b/public/language/pt-PT/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.",
"maintenance-mode.status": "Código de Estado do Modo de Manutenção",
"maintenance-mode.message": "Mensagem de Manutenção",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "Headers",
"headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Strict Transport Security",
"hsts.enabled": "Enabled HSTS (recommended)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/ro/admin/settings/advanced.json b/public/language/ro/admin/settings/advanced.json
index e372d48d70..982eaa2f64 100644
--- a/public/language/ro/admin/settings/advanced.json
+++ b/public/language/ro/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.",
"maintenance-mode.status": "Maintenance Mode Status Code",
"maintenance-mode.message": "Maintenance Message",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "Headers",
"headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Strict Transport Security",
"hsts.enabled": "Enabled HSTS (recommended)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/ru/admin/settings/advanced.json b/public/language/ru/admin/settings/advanced.json
index b778295dfa..caf3bd0ef3 100644
--- a/public/language/ru/admin/settings/advanced.json
+++ b/public/language/ru/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "Когда включен режим техобслуживания, все запросы перенаправляются на специальную страницу-заглушку. Только администраторы сохраняют обычный доступ к форуму.",
"maintenance-mode.status": "Код состояния HTTP для страницы-заглушки",
"maintenance-mode.message": "Сообщение для пользователей",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "Заголовки",
"headers.allow-from": "Опция ALLOW-FROM для использования NodeBB через iFrame",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Строгая политика безопасности транспортного уровня",
"hsts.enabled": "Включить HSTS (рекомендуется)",
"hsts.maxAge": "Срок действия заголовка HSTS",
diff --git a/public/language/ru/admin/settings/user.json b/public/language/ru/admin/settings/user.json
index 357396a153..cfd9c08a47 100644
--- a/public/language/ru/admin/settings/user.json
+++ b/public/language/ru/admin/settings/user.json
@@ -1,7 +1,7 @@
{
"authentication": "Авторизация",
"email-confirm-interval": "Пользователь не сможет снова запросить код подтверждения, пока не пройдёт",
- "email-confirm-interval2": "минут",
+ "email-confirm-interval2": "minutes have elapsed",
"allow-login-with": "Разрешить вход с помощью",
"allow-login-with.username-email": "Имени пользователя или адреса электронной почты",
"allow-login-with.username": "Только имени пользователя",
diff --git a/public/language/rw/admin/settings/advanced.json b/public/language/rw/admin/settings/advanced.json
index e372d48d70..982eaa2f64 100644
--- a/public/language/rw/admin/settings/advanced.json
+++ b/public/language/rw/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.",
"maintenance-mode.status": "Maintenance Mode Status Code",
"maintenance-mode.message": "Maintenance Message",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "Headers",
"headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Strict Transport Security",
"hsts.enabled": "Enabled HSTS (recommended)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/sc/admin/settings/advanced.json b/public/language/sc/admin/settings/advanced.json
index e372d48d70..982eaa2f64 100644
--- a/public/language/sc/admin/settings/advanced.json
+++ b/public/language/sc/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.",
"maintenance-mode.status": "Maintenance Mode Status Code",
"maintenance-mode.message": "Maintenance Message",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "Headers",
"headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Strict Transport Security",
"hsts.enabled": "Enabled HSTS (recommended)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/sk/admin/settings/advanced.json b/public/language/sk/admin/settings/advanced.json
index 10bf96a719..a464b384da 100644
--- a/public/language/sk/admin/settings/advanced.json
+++ b/public/language/sk/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "Ak je fórum v režime údržby, všetky požiadavky budú presmerované na statickú stránku. Administrátori sú vylúčení z tohto presmerovania a majú prístup na stránku normálne.",
"maintenance-mode.status": "Maintenance Mode Status Code",
"maintenance-mode.message": "Správa údržby",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "Hlavičky",
"headers.allow-from": "Nastavte ALLOW-FROM pro umístění NodeBB do iFrame",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Prísne zabezpečenie prenosu",
"hsts.enabled": "Povoliť HSTS (odporúčané)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/sk/admin/settings/user.json b/public/language/sk/admin/settings/user.json
index 0c3cddcb0a..18b8367c0b 100644
--- a/public/language/sk/admin/settings/user.json
+++ b/public/language/sk/admin/settings/user.json
@@ -1,7 +1,7 @@
{
"authentication": "Overenie",
"email-confirm-interval": "Používateľ nesmie požiadať o znovu odoslanie potvrdzujúceho e-mailu do",
- "email-confirm-interval2": "minút uplynulo",
+ "email-confirm-interval2": "minutes have elapsed",
"allow-login-with": "Povoliť prihlásenie pomocou",
"allow-login-with.username-email": "Používateľské meno alebo e-mail",
"allow-login-with.username": "Iba používateľské meno",
diff --git a/public/language/sl/admin/settings/advanced.json b/public/language/sl/admin/settings/advanced.json
index be9f3de4dd..ab1242a9b4 100644
--- a/public/language/sl/admin/settings/advanced.json
+++ b/public/language/sl/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "Ko je forum v načinu vzdrževanja, bodo vse zahteve preusmerjene na statično stran za shranjevanje. Skrbniki so izvzeti iz te preusmeritve in lahko normalno dostopajo do spletnega mesta.",
"maintenance-mode.status": "Koda stanja načina vzdrževanja",
"maintenance-mode.message": "Sporočilo o vzdrževanju",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "Glave",
"headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Strict Transport Security",
"hsts.enabled": "Omogočen HSTS (priporočeno)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/sq-AL/admin/settings/advanced.json b/public/language/sq-AL/admin/settings/advanced.json
index e372d48d70..982eaa2f64 100644
--- a/public/language/sq-AL/admin/settings/advanced.json
+++ b/public/language/sq-AL/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.",
"maintenance-mode.status": "Maintenance Mode Status Code",
"maintenance-mode.message": "Maintenance Message",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "Headers",
"headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Strict Transport Security",
"hsts.enabled": "Enabled HSTS (recommended)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/sr/admin/settings/advanced.json b/public/language/sr/admin/settings/advanced.json
index e372d48d70..982eaa2f64 100644
--- a/public/language/sr/admin/settings/advanced.json
+++ b/public/language/sr/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.",
"maintenance-mode.status": "Maintenance Mode Status Code",
"maintenance-mode.message": "Maintenance Message",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "Headers",
"headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Strict Transport Security",
"hsts.enabled": "Enabled HSTS (recommended)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/sr/admin/settings/user.json b/public/language/sr/admin/settings/user.json
index c8fc77bfd9..041e750fcc 100644
--- a/public/language/sr/admin/settings/user.json
+++ b/public/language/sr/admin/settings/user.json
@@ -1,7 +1,7 @@
{
"authentication": "Auntentifikacija",
"email-confirm-interval": "Korisnik možda neće moći da ponovo pošalje email konfirmaciju sve dok",
- "email-confirm-interval2": "minuta je prošlo",
+ "email-confirm-interval2": "minutes have elapsed",
"allow-login-with": "Dozvoli login sa",
"allow-login-with.username-email": "Korisničko ime ili Email",
"allow-login-with.username": "Samo korisničko ime",
diff --git a/public/language/sr/error.json b/public/language/sr/error.json
index 0e27c0d5c0..ad5e181e66 100644
--- a/public/language/sr/error.json
+++ b/public/language/sr/error.json
@@ -205,8 +205,8 @@
"no-connection": "Изгледа да постоји проблем са вашом интернет везом",
"socket-reconnect-failed": "Тренутно није могуће приступити серверу. Кликните овде да бисте покушали поново или покушајте поново касније",
"plugin-not-whitelisted": "Инсталација додатне компоненте &ndash није могућа; преко ACP-а могу се инсталирати само додатне компоненте које је на белој листи ставио NodeBB Package Manager",
- "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.",
- "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP",
+ "plugins-set-in-configuration": "Није вам дозвољено да мењате стање додатне компоненте онако како је дефинисано у време извршавања (config.json, променљиве окружења или аргументи терминала), уместо тога измените конфигурацију.",
+ "theme-not-set-in-configuration": "Приликом дефинисања активних додатних компоненти у конфигурацији, промена тема захтева додавање нове теме на листу активних додатних компоненти пре ажурирања у ACP",
"topic-event-unrecognized": "Догађај из теме „%1“ није препознат",
"cant-set-child-as-parent": "Није могуће поставити подређену категорију као надређену",
"cant-set-self-as-parent": "Није могуће поставити себе као надређену категорију",
diff --git a/public/language/sr/notifications.json b/public/language/sr/notifications.json
index 51f985cce3..fe330c996b 100644
--- a/public/language/sr/notifications.json
+++ b/public/language/sr/notifications.json
@@ -24,8 +24,8 @@
"upvoted_your_post_in": "%1 је гласао за вашу поруку у %2",
"upvoted_your_post_in_dual": "%1 и %2 осталих су гласали за вашу поруку у %3.",
"upvoted_your_post_in_multiple": "%1 и %2 осталих су гласали за вашу поруку у %3.",
- "moved_your_post": "%1 је померио вашу поруку у %2",
- "moved_your_topic": "%1 је померио %2",
+ "moved_your_post": "%1 је преместио вашу поруку у %2",
+ "moved_your_topic": "%1 је преместио %2",
"user_flagged_post_in": "%1 је означио заставицом поруку у %2",
"user_flagged_post_in_dual": "%1 и %2 су означили заставицом поруку у %3",
"user_flagged_post_in_multiple": "%1 и осталих %2 су означили заставицом поруку у %3",
diff --git a/public/language/sr/user.json b/public/language/sr/user.json
index b30dc871fa..6c2bca7c1f 100644
--- a/public/language/sr/user.json
+++ b/public/language/sr/user.json
@@ -195,5 +195,5 @@
"emailUpdate.optional": "Ово поље је опционо. Нисте обавезни да наведете своју адресу е-поште, али без ваљане е-поште нећете моћи да вратите свој налог или да се пријавите помоћу своје е-поште.",
"emailUpdate.required": "Ово поље је обавезно.",
"emailUpdate.change-instructions": "На унету адресу е-поште биће послата потврдна порука са јединственом везом. Приступ тој вези потврдиће ваше власништво над адресом е-поште и она ће постати активна на вашем налогу. У било ком тренутку можете да ажурирате своју е-пошту на страници налога.",
- "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership."
+ "emailUpdate.password-challenge": "Унесите лозинку да бисте потврдили власништво над налогом."
}
\ No newline at end of file
diff --git a/public/language/sv/admin/settings/advanced.json b/public/language/sv/admin/settings/advanced.json
index e372d48d70..982eaa2f64 100644
--- a/public/language/sv/admin/settings/advanced.json
+++ b/public/language/sv/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.",
"maintenance-mode.status": "Maintenance Mode Status Code",
"maintenance-mode.message": "Maintenance Message",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "Headers",
"headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Strict Transport Security",
"hsts.enabled": "Enabled HSTS (recommended)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/th/admin/settings/advanced.json b/public/language/th/admin/settings/advanced.json
index e372d48d70..982eaa2f64 100644
--- a/public/language/th/admin/settings/advanced.json
+++ b/public/language/th/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.",
"maintenance-mode.status": "Maintenance Mode Status Code",
"maintenance-mode.message": "Maintenance Message",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "Headers",
"headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Strict Transport Security",
"hsts.enabled": "Enabled HSTS (recommended)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/tr/admin/advanced/cache.json b/public/language/tr/admin/advanced/cache.json
index a3f3620c89..a22bd4e060 100644
--- a/public/language/tr/admin/advanced/cache.json
+++ b/public/language/tr/admin/advanced/cache.json
@@ -1,8 +1,8 @@
{
"post-cache": "İleti Önbelleği",
- "group-cache": "Group Cache",
- "local-cache": "Local Cache",
- "object-cache": "Object Cache",
+ "group-cache": "Grup Önbelleği",
+ "local-cache": "Yerel Önbellek",
+ "object-cache": "Öğe Önbelleği",
"percent-full": "%1% Tam",
"post-cache-size": "İleti Önbellek Boyutu",
"items-in-cache": "Önbellekteki Öğeler"
diff --git a/public/language/tr/admin/settings/advanced.json b/public/language/tr/admin/settings/advanced.json
index 91131d3bdd..84fc2f5ad5 100644
--- a/public/language/tr/admin/settings/advanced.json
+++ b/public/language/tr/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "Forum bakım modundayken, tüm istekler statik bir bekletme sayfasına yönlendirilir. Yöneticiler bu yönlendirmeden muaftır ve siteye normal olarak erişebilirler.",
"maintenance-mode.status": "Bakım Modu Durum Kodu",
"maintenance-mode.message": "Bakım Mesajı",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "Başlıklar",
"headers.allow-from": "NodeBB'yi bir iFrame'e yerleştirmek için ALLOW-FROM'u ayarla",
"headers.csp-frame-ancestors": "NodeBB'yi bir iFrame'e yerleştirmek için Content-Security-Policy frame-ancestors başlığını ayarla",
@@ -19,6 +20,8 @@
"headers.coep-help": "Etkinleştirildiğinde (varsayılan), başlığı require-corp olarak ayarlayacaktır.",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin Kaynak Politikası",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "STS",
"hsts.enabled": "HSTS'yi etkinleştir (önerilir)",
"hsts.maxAge": "HSTS Maksimum Yaş",
diff --git a/public/language/tr/admin/settings/post.json b/public/language/tr/admin/settings/post.json
index d3577d4d42..8034b6f1d6 100644
--- a/public/language/tr/admin/settings/post.json
+++ b/public/language/tr/admin/settings/post.json
@@ -51,7 +51,7 @@
"signature.disable": "İmzaları devre dışı bırak",
"signature.no-links": "İmzalarda linkleri devre dışı bırak",
"signature.no-images": "İmzalarda resimleri devre dışı bırak",
- "signature.hide-duplicates": "Hide duplicate signatures in topics",
+ "signature.hide-duplicates": "Başlıklardaki ikinci kopya imzaları gizle",
"signature.max-length": "Maksimum İmza Uzunluğu",
"composer": "Editör Ayarları",
"composer-help": "Aşağıdaki ayarlar, yeni konular oluşturduklarında veya mevcut konulara cevap verdiklerinde kullanıcıların \n\t\t\t\tyazı alanının işlevselliğini ve / veya görünümünü yönetmelerini sağlar.",
diff --git a/public/language/tr/admin/settings/reputation.json b/public/language/tr/admin/settings/reputation.json
index 797b2e2550..57d50011b6 100644
--- a/public/language/tr/admin/settings/reputation.json
+++ b/public/language/tr/admin/settings/reputation.json
@@ -24,8 +24,8 @@
"flags.limit-per-target-help": "Bir gönderi veya kullanıcı birden çok kez şikayet edildiğinde, her ek şikayet bir \"rapor\" olarak kabul edilir ve orijinal şikayete eklenir. Bir öğenin alabileceği rapor sayısını sınırlamak için bu seçeneği sıfırdan farklı bir sayıya ayarlayın.",
"flags.auto-flag-on-downvote-threshold": "Bir iletinin otomatik olarak raporlanması için alması gereken eksi oy sayısı ( Otomatik şikayet özelliğini iptal etmek için buraya 0 giriniz, varsayılan: 0)",
"flags.auto-resolve-on-ban": "Bir kullanıcı forumdan yasaklandığında otomatik olarak şikayetlerini çözülmüş say",
- "flags.action-on-resolve": "Do the following when a flag is resolved",
- "flags.action-on-reject": "Do the following when a flag is rejected",
- "flags.action.nothing": "Do nothing",
- "flags.action.rescind": "Rescind the notification send to moderators/administrators"
+ "flags.action-on-resolve": "Bir şikayet çözümlendiğinde şunu yap",
+ "flags.action-on-reject": "Bir şikayet reddedildiğinde şunu yap",
+ "flags.action.nothing": "Hiçbir şey yapma",
+ "flags.action.rescind": "Moderatör ve Adminlere gönderilen bildirimleri iptal et"
}
\ No newline at end of file
diff --git a/public/language/tr/admin/settings/user.json b/public/language/tr/admin/settings/user.json
index 9c40e644a7..4b9c6a1952 100644
--- a/public/language/tr/admin/settings/user.json
+++ b/public/language/tr/admin/settings/user.json
@@ -1,7 +1,7 @@
{
"authentication": "Kimlik Doğrulama",
"email-confirm-interval": "Kullanıcı onay e-postasını tekrar gönderemez",
- "email-confirm-interval2": "dakika geçti",
+ "email-confirm-interval2": "minutes have elapsed",
"allow-login-with": "Girişe izin ver:",
"allow-login-with.username-email": "Kullanıcı Adı veya E-posta",
"allow-login-with.username": "Sadece kullanıcı adı",
diff --git a/public/language/tr/user.json b/public/language/tr/user.json
index b687e2de43..1809554c6d 100644
--- a/public/language/tr/user.json
+++ b/public/language/tr/user.json
@@ -195,5 +195,5 @@
"emailUpdate.optional": "Bu bölüm tercihe bağlıdır. Bir e-posta adresi girmek zorunda değilsiniz, fakat onaylanmış bir e-posta adresi olmadan hesabınızı veya girişinizi e-posta adresiniz ile kurtaramazsınız. ",
"emailUpdate.required": "Bu bölüm zorunludur.",
"emailUpdate.change-instructions": "Girilen e-posta adresine kişiye özel bir bağlantı içeren bir onay e-postası gönderilecektir. Bu bağlantıya erişmek, e-posta adresinin sahibi olduğunuzu onaylayacak ve hesabınızda etkin hale gelecektir. İstediğiniz zaman, hesap sayfanızdan kayıtlı e-postanızı güncelleyebilirsiniz.",
- "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership."
+ "emailUpdate.password-challenge": "Hesabın size ait olduğunu doğrulamak için lütfen şifrenizi giriniz"
}
\ No newline at end of file
diff --git a/public/language/uk/admin/settings/advanced.json b/public/language/uk/admin/settings/advanced.json
index ecc621aadc..58e45a1bfb 100644
--- a/public/language/uk/admin/settings/advanced.json
+++ b/public/language/uk/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "Коли форум знаходиться в режимі обслуговування, всі запити перенаправляються на статичну сторінку. Адміністратори, в свою чергу, не перенаправляються і можуть відвідувати сайт у звичному режимі.",
"maintenance-mode.status": "Maintenance Mode Status Code",
"maintenance-mode.message": "Повідомлення обслуговування",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "Заголовки",
"headers.allow-from": "Задати ALLOW-FROM для розміщення NodeBB в iFrame",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Strict Transport Security",
"hsts.enabled": "Enabled HSTS (recommended)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/uk/admin/settings/user.json b/public/language/uk/admin/settings/user.json
index 29a4291d57..cb43123c90 100644
--- a/public/language/uk/admin/settings/user.json
+++ b/public/language/uk/admin/settings/user.json
@@ -1,7 +1,7 @@
{
"authentication": "Аутентифікація",
"email-confirm-interval": "Користувач не може повторно надіслати підтвердження електронної пошти поки не мине",
- "email-confirm-interval2": "хвилин",
+ "email-confirm-interval2": "minutes have elapsed",
"allow-login-with": "Дозволити вхід використовуючи",
"allow-login-with.username-email": "Ім'я користувача або електронну пошту",
"allow-login-with.username": "Тільки ім'я користувача",
diff --git a/public/language/vi/admin/settings/advanced.json b/public/language/vi/admin/settings/advanced.json
index 9a64310975..4f4b14039f 100644
--- a/public/language/vi/admin/settings/advanced.json
+++ b/public/language/vi/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "Khi diễn đàn ở chế độ bảo trì, tất cả các yêu cầu sẽ được chuyển hướng đến một trang giữ tĩnh. Quản trị viên không bị chuyển hướng này và có thể truy cập trang bình thường.",
"maintenance-mode.status": "Mã Trạng Thái Chế Độ Bảo Trì",
"maintenance-mode.message": "Thông Báo Bảo Trì",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Chọn các nhóm nên được miễn chế độ bảo trì",
"headers": "Headers",
"headers.allow-from": "Đặt ALLOW-FROM để đặt NodeBB trong iFrame",
"headers.csp-frame-ancestors": "Đặt giá trị Content-Security-Policy frame-ancestors ở phần đầu trang để Đặt NodeBB trong iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "Khi được bật (mặc định), sẽ đặt tiêu đề thành require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "Bảo Vệ Truyền Tải Nghiêm Ngặt",
"hsts.enabled": "Đã bật HSTS (đề nghị)",
"hsts.maxAge": "HSTS Tuổi Tối Đa",
diff --git a/public/language/vi/admin/settings/email.json b/public/language/vi/admin/settings/email.json
index a1854f39a0..cdd5a01772 100644
--- a/public/language/vi/admin/settings/email.json
+++ b/public/language/vi/admin/settings/email.json
@@ -5,7 +5,7 @@
"from": "Tên Người Gửi",
"from-help": "Tên người gửi hiển thị trong email.",
- "confirmation-settings": "Confirmation",
+ "confirmation-settings": "Xác nhận",
"confirmation.expiry": "Hours to keep email confirmation link valid",
"smtp-transport": "Truyền Tải SMTP",
diff --git a/public/language/vi/admin/settings/user.json b/public/language/vi/admin/settings/user.json
index 6aa242566f..0fd9f6f18e 100644
--- a/public/language/vi/admin/settings/user.json
+++ b/public/language/vi/admin/settings/user.json
@@ -1,7 +1,7 @@
{
"authentication": "Xác thực",
"email-confirm-interval": "Người dùng không thể gửi lại email xác nhận cho đến khi",
- "email-confirm-interval2": "phút đã trôi qua",
+ "email-confirm-interval2": "minutes have elapsed",
"allow-login-with": "Cho phép đăng nhập với",
"allow-login-with.username-email": "Tên Đăng Nhập hoặc Email",
"allow-login-with.username": "Chỉ Tên Đăng Nhập",
diff --git a/public/language/zh-CN/admin/menu.json b/public/language/zh-CN/admin/menu.json
index 8857255b41..2e456615c0 100644
--- a/public/language/zh-CN/admin/menu.json
+++ b/public/language/zh-CN/admin/menu.json
@@ -76,7 +76,7 @@
"logout": "登出",
"view-forum": "查看论坛",
- "search.placeholder": "Search settings",
+ "search.placeholder": "搜索设置",
"search.no-results": "没有可用结果…",
"search.search-forum": "搜索论坛为",
"search.keep-typing": "输入更多以查看结果...",
diff --git a/public/language/zh-CN/admin/settings/advanced.json b/public/language/zh-CN/admin/settings/advanced.json
index 48923a0fbe..45a12d552a 100644
--- a/public/language/zh-CN/admin/settings/advanced.json
+++ b/public/language/zh-CN/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "当论坛处在维护模式时,所有请求将被重定向到一个静态页面。管理员不受重定向限制,并可正常访问站点。",
"maintenance-mode.status": "维护模式状态码",
"maintenance-mode.message": "维护消息",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "标题",
"headers.allow-from": "设置 ALLOW-FROM 来放置 NodeBB 于 iFrame 中",
"headers.csp-frame-ancestors": "设置 Content-Security-Policy frame-ancestors 响应头来将 NodeBB 置于 iFrame 中",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "严格安全传输(HSTS)",
"hsts.enabled": "启用HSTS(推荐)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/zh-CN/admin/settings/pagination.json b/public/language/zh-CN/admin/settings/pagination.json
index 8269cbc4be..f3565fb555 100644
--- a/public/language/zh-CN/admin/settings/pagination.json
+++ b/public/language/zh-CN/admin/settings/pagination.json
@@ -1,7 +1,7 @@
{
"pagination": "分页设置",
"enable": "在主题和帖子使用分页替代无限滚动浏览。",
- "posts": "Post Pagination",
+ "posts": "帖子分页",
"topics": "话题分页",
"posts-per-page": "每页帖子数",
"max-posts-per-page": "每页最多帖子数",
diff --git a/public/language/zh-CN/admin/settings/user.json b/public/language/zh-CN/admin/settings/user.json
index 2eef5b6245..f78cc552c4 100644
--- a/public/language/zh-CN/admin/settings/user.json
+++ b/public/language/zh-CN/admin/settings/user.json
@@ -1,7 +1,7 @@
{
"authentication": "验证",
"email-confirm-interval": "用户无法重新发送电子邮箱激活直到",
- "email-confirm-interval2": "分钟已经过",
+ "email-confirm-interval2": "minutes have elapsed",
"allow-login-with": "允许使用何种登录名",
"allow-login-with.username-email": "用户名或者邮箱",
"allow-login-with.username": "仅限用户名",
diff --git a/public/language/zh-CN/global.json b/public/language/zh-CN/global.json
index f032d779d1..cd05e59b55 100644
--- a/public/language/zh-CN/global.json
+++ b/public/language/zh-CN/global.json
@@ -23,7 +23,7 @@
"close": "关闭",
"pagination": "分页",
"pagination.out_of": "%1 / %2",
- "pagination.enter_index": "Go to post index",
+ "pagination.enter_index": "跳转到帖子",
"header.admin": "管理",
"header.categories": "版块",
"header.recent": "最新",
diff --git a/public/language/zh-CN/modules.json b/public/language/zh-CN/modules.json
index d7684e6794..3dff397d9d 100644
--- a/public/language/zh-CN/modules.json
+++ b/public/language/zh-CN/modules.json
@@ -6,8 +6,8 @@
"chat.no_active": "暂无聊天",
"chat.user_typing": "%1 正在输入……",
"chat.user_has_messaged_you": "%1 向您发送了消息。",
- "chat.see_all": "All chats",
- "chat.mark_all_read": "Mark all read",
+ "chat.see_all": "全部对话",
+ "chat.mark_all_read": "标记全部已读",
"chat.no-messages": "请选择接收人,以查看聊天消息历史",
"chat.no-users-in-room": "此聊天室中没有用户",
"chat.recent-chats": "最近聊天",
diff --git a/public/language/zh-CN/notifications.json b/public/language/zh-CN/notifications.json
index ebb702d8ff..cfd4b7fd3d 100644
--- a/public/language/zh-CN/notifications.json
+++ b/public/language/zh-CN/notifications.json
@@ -1,8 +1,8 @@
{
"title": "通知",
"no_notifs": "您没有新的通知",
- "see_all": "All notifications",
- "mark_all_read": "Mark all read",
+ "see_all": "全部通知",
+ "mark_all_read": "标记全部已读",
"back_to_home": "返回 %1",
"outgoing_link": "站外链接",
"outgoing_link_message": "您正在离开 %1",
diff --git a/public/language/zh-CN/post-queue.json b/public/language/zh-CN/post-queue.json
index 61a6d2541e..bfcebbcd04 100644
--- a/public/language/zh-CN/post-queue.json
+++ b/public/language/zh-CN/post-queue.json
@@ -18,14 +18,14 @@
"remove": "移除",
"notify": "Notify",
"notify-user": "Notify User",
- "confirm-reject": "Do you want to reject this post?",
- "bulk-actions": "Bulk Actions",
+ "confirm-reject": "你想要拒绝这个帖子吗?",
+ "bulk-actions": "批量操作",
"accept-all": "全部同意",
"accept-selected": "同意选中项",
"reject-all": "全部拒绝",
- "reject-all-confirm": "Do you want to reject all posts?",
+ "reject-all-confirm": "你想要拒绝所有帖子吗?",
"reject-selected": "拒绝选中项",
- "reject-selected-confirm": "Do you want to reject %1 selected posts?",
- "bulk-accept-success": "%1 posts accepted",
- "bulk-reject-success": "%1 posts rejected"
+ "reject-selected-confirm": "您确定要拒绝%1个选择的帖子吗?",
+ "bulk-accept-success": "%1个帖子已接受",
+ "bulk-reject-success": "%1个帖子已拒绝"
}
\ No newline at end of file
diff --git a/public/language/zh-CN/register.json b/public/language/zh-CN/register.json
index 867f6adf70..e24060429c 100644
--- a/public/language/zh-CN/register.json
+++ b/public/language/zh-CN/register.json
@@ -21,7 +21,7 @@
"registration-queue-average-time": "我们通常的注册批准时间为 %1 小时 %2 分钟。",
"registration-queue-auto-approve-time": "您在此论坛的帐号将会在最迟 %1 小时后被完全激活。",
"interstitial.intro": "我们需要一些额外信息以更新您的账号。",
- "interstitial.intro-new": "We'd like some additional information before we can create your account…",
+ "interstitial.intro-new": "我们需要一些额外信息以创建您的账号。",
"interstitial.errors-found": "请检查输入的信息:",
"gdpr_agree_data": "我同意此网站对我个人信息的收集与处理。",
"gdpr_agree_email": "我同意此网站向我发送摘要和通知邮件。",
diff --git a/public/language/zh-CN/user.json b/public/language/zh-CN/user.json
index 5f94062335..904ac4a7c4 100644
--- a/public/language/zh-CN/user.json
+++ b/public/language/zh-CN/user.json
@@ -1,6 +1,6 @@
{
"banned": "已封禁",
- "muted": "Muted",
+ "muted": "禁言",
"offline": "离线",
"deleted": "已删除",
"username": "用户名",
@@ -44,8 +44,8 @@
"following": "关注",
"blocks": "屏蔽",
"block_toggle": "屏蔽该用户",
- "block_user": "封禁用户",
- "unblock_user": "解封用户",
+ "block_user": "屏蔽用户",
+ "unblock_user": "解除屏蔽用户",
"aboutme": "关于我",
"signature": "签名档",
"birthday": "生日",
@@ -108,7 +108,7 @@
"has_no_ignored_topics": "此用户尚未忽略任何主题。",
"has_no_upvoted_posts": "此用户还未顶过任何帖子。",
"has_no_downvoted_posts": "此用户还未踩过任何帖子。",
- "has_no_controversial_posts": "This user does not have any downvoted posts yet.",
+ "has_no_controversial_posts": "此用户没有任何踩过的帖子。",
"has_no_blocks": "您没有屏蔽其他用户。",
"email_hidden": "电子邮箱已隐藏",
"hidden": "隐藏",
@@ -157,9 +157,9 @@
"info.banned-permanently": "永久封禁",
"info.banned-reason-label": "原因",
"info.banned-no-reason": "没有原因",
- "info.mute-history": "Recent Mute History",
- "info.no-mute-history": "This user has never been muted",
- "info.muted-until": "Muted until %1",
+ "info.mute-history": "最近禁言历史",
+ "info.no-mute-history": "该用户从未被禁言",
+ "info.muted-until": "禁言到 %1",
"info.muted-expiry": "Expiry",
"info.muted-no-reason": "没有原因",
"info.username-history": "历史用户名",
diff --git a/public/language/zh-TW/admin/settings/advanced.json b/public/language/zh-TW/admin/settings/advanced.json
index 1ce6b993a7..454475cb71 100644
--- a/public/language/zh-TW/admin/settings/advanced.json
+++ b/public/language/zh-TW/admin/settings/advanced.json
@@ -3,6 +3,7 @@
"maintenance-mode.help": "當論壇處在維護模式時,所有請求將被重導向到一個靜態頁面。管理員不受重導向限制,並可正常訪問網站。",
"maintenance-mode.status": "維護模式狀態碼",
"maintenance-mode.message": "維護訊息",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "標題",
"headers.allow-from": "設定 ALLOW-FROM 來放置 NodeBB 於 iFrame 中",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
@@ -19,6 +20,8 @@
"headers.coep-help": "When enabled (default), will set the header to require-corp",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.",
"hsts": "嚴格安全傳輸",
"hsts.enabled": "啟用HSTS(推薦)",
"hsts.maxAge": "HSTS Max Age",
diff --git a/public/language/zh-TW/admin/settings/user.json b/public/language/zh-TW/admin/settings/user.json
index 3af23f0a2b..6848e90747 100644
--- a/public/language/zh-TW/admin/settings/user.json
+++ b/public/language/zh-TW/admin/settings/user.json
@@ -1,7 +1,7 @@
{
"authentication": "驗證",
"email-confirm-interval": "使用者無法重新發送電子信箱確認信直到",
- "email-confirm-interval2": "分鐘已經過",
+ "email-confirm-interval2": "minutes have elapsed",
"allow-login-with": "允許使用何種登入名",
"allow-login-with.username-email": "使用者名或者電子信箱",
"allow-login-with.username": "僅限使用者名",
diff --git a/public/openapi/read.yaml b/public/openapi/read.yaml
index 31b446d351..ce6c0936fe 100644
--- a/public/openapi/read.yaml
+++ b/public/openapi/read.yaml
@@ -96,6 +96,8 @@ paths:
$ref: 'read/admin/settings/user.yaml'
/api/admin/settings/post:
$ref: 'read/admin/settings/post.yaml'
+ /api/admin/settings/advanced:
+ $ref: 'read/admin/settings/advanced.yaml'
/api/admin/manage/categories:
$ref: 'read/admin/manage/categories.yaml'
"/api/admin/manage/categories/{category_id}":
diff --git a/public/openapi/read/admin/settings/advanced.yaml b/public/openapi/read/admin/settings/advanced.yaml
new file mode 100644
index 0000000000..2cebeeb7e9
--- /dev/null
+++ b/public/openapi/read/admin/settings/advanced.yaml
@@ -0,0 +1,18 @@
+get:
+ tags:
+ - admin
+ summary: Get advanced settings
+ responses:
+ "200":
+ description: ""
+ content:
+ application/json:
+ schema:
+ allOf:
+ - type: object
+ properties:
+ groupsExemptFromMaintenanceMode:
+ type: array
+ items:
+ $ref: ../../../components/schemas/GroupObject.yaml#/GroupDataObject
+ - $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
\ No newline at end of file
diff --git a/public/src/admin/manage/categories.js b/public/src/admin/manage/categories.js
index d5eb350038..d00c8f737a 100644
--- a/public/src/admin/manage/categories.js
+++ b/public/src/admin/manage/categories.js
@@ -269,7 +269,11 @@ define('admin/manage/categories', [
categories: categories,
parentCategory: parentCategory,
}, function (html) {
- container.append(html);
+ if (container.find('.category-row').length) {
+ container.find('.category-row').after(html);
+ } else {
+ container.append(html);
+ }
// Disable expand toggle
if (!categories.length) {
diff --git a/public/src/ajaxify.js b/public/src/ajaxify.js
index 1ae52a9cb1..d7fcac6eb5 100644
--- a/public/src/ajaxify.js
+++ b/public/src/ajaxify.js
@@ -44,9 +44,7 @@ ajaxify.widgets = { render: render };
quiet = true;
}
- app.leaveCurrentRoom();
-
- $(window).off('scroll');
+ ajaxify.cleanup(url, ajaxify.data.template.name);
if ($('#content').hasClass('ajaxifying') && apiXHR) {
apiXHR.abort();
@@ -456,6 +454,12 @@ ajaxify.widgets = { render: render };
});
};
+ ajaxify.cleanup = (url, tpl_url) => {
+ app.leaveCurrentRoom();
+ $(window).off('scroll');
+ hooks.fire('action:ajaxify.cleanup', { url, tpl_url });
+ };
+
require(['translator', 'benchpress'], function (translator, Benchpress) {
translator.translate('[[error:no-connection]]');
translator.translate('[[error:socket-reconnect-failed]]');
diff --git a/public/src/client/topic.js b/public/src/client/topic.js
index f9a8ca05b3..961fcd74c3 100644
--- a/public/src/client/topic.js
+++ b/public/src/client/topic.js
@@ -73,17 +73,39 @@ define('forum/topic', [
};
function handleTopicSearch() {
- if (config.topicSearchEnabled) {
- require(['mousetrap', 'search'], function (mousetrap, search) {
- mousetrap.bind(['command+f', 'ctrl+f'], function (e) {
- if (ajaxify.data.template.topic) {
+ require(['mousetrap'], (mousetrap) => {
+ if (config.topicSearchEnabled) {
+ require(['search'], function (search) {
+ mousetrap.bind(['command+f', 'ctrl+f'], function (e) {
e.preventDefault();
$('#search-fields input').val('in:topic-' + ajaxify.data.tid + ' ');
search.showAndFocusInput();
- }
+ });
+
+ hooks.onPage('action:ajaxify.cleanup', () => {
+ mousetrap.unbind(['command+f', 'ctrl+f']);
+ });
});
+ }
+
+ mousetrap.bind('j', () => {
+ const index = navigator.getIndex();
+ const count = navigator.getCount();
+ if (index === count) {
+ return;
+ }
+
+ navigator.scrollToIndex(index, true, 0);
});
- }
+
+ mousetrap.bind('k', () => {
+ const index = navigator.getIndex();
+ if (index === 1) {
+ return;
+ }
+ navigator.scrollToIndex(index - 2, true, 0);
+ });
+ });
}
Topic.toTop = function () {
diff --git a/public/src/modules/helpers.common.js b/public/src/modules/helpers.common.js
index 25907fb446..04ab16c3f8 100644
--- a/public/src/modules/helpers.common.js
+++ b/public/src/modules/helpers.common.js
@@ -181,6 +181,7 @@ module.exports = function (utils, Benchpress, relative_path) {
}
function renderTopicEvents(index, sort) {
+ console.warn('[renderTopicEvents] deprecated, use a partial at partials/topic/event.tpl');
if (sort === 'most_votes') {
return '';
}
diff --git a/public/src/modules/messages.js b/public/src/modules/messages.js
index 1f473fed6a..18120ae8a4 100644
--- a/public/src/modules/messages.js
+++ b/public/src/modules/messages.js
@@ -96,6 +96,11 @@ define('messages', ['bootbox', 'translator', 'storage', 'alerts', 'hooks'], func
params.delete('register');
}
+ if (params.has('lang') && params.get('lang') === config.defaultLang) {
+ console.info(`The "lang" parameter was passed in to set the language to "${params.get('lang')}", but that is already the forum default language.`);
+ params.delete('lang');
+ }
+
const qs = params.toString();
ajaxify.updateHistory(ajaxify.currentPage + (qs ? `?${qs}` : '') + document.location.hash, true);
}
diff --git a/public/src/modules/navigator.js b/public/src/modules/navigator.js
index 2937470707..75ac147621 100644
--- a/public/src/modules/navigator.js
+++ b/public/src/modules/navigator.js
@@ -47,7 +47,6 @@ define('navigator', ['forum/pagination', 'components', 'hooks', 'alerts'], funct
thumb = $('.scroller-thumb');
thumbText = thumb.find('.thumb-text');
-
$(window).off('scroll', navigator.delayedUpdate).on('scroll', navigator.delayedUpdate);
paginationBlockEl.find('.dropdown-menu').off('click').on('click', function (e) {
@@ -331,6 +330,8 @@ define('navigator', ['forum/pagination', 'components', 'hooks', 'alerts'], funct
return parts[1] + '/' + parts[2] + '/' + parts[3] + (index ? '/' + index : '');
}
+ navigator.getCount = () => count;
+
navigator.setCount = function (value) {
value = parseInt(value, 10);
if (value === count) {
@@ -440,6 +441,14 @@ define('navigator', ['forum/pagination', 'components', 'hooks', 'alerts'], funct
toggle(!!count);
};
+ navigator.getIndex = () => index;
+
+ navigator.setIndex = (newIndex) => {
+ index = newIndex + 1;
+ navigator.updateTextAndProgressBar();
+ setThumbToIndex(index);
+ };
+
navigator.updateTextAndProgressBar = function () {
if (!utils.isNumber(index)) {
return;
@@ -544,20 +553,22 @@ define('navigator', ['forum/pagination', 'components', 'hooks', 'alerts'], funct
navigator.scrollToPostIndex = function (postIndex, highlight, duration) {
const scrollTo = components.get('post', 'index', postIndex);
- navigator.scrollToElement(scrollTo, highlight, duration);
+ navigator.scrollToElement(scrollTo, highlight, duration, postIndex);
};
navigator.scrollToTopicIndex = function (topicIndex, highlight, duration) {
const scrollTo = $('[component="category/topic"][data-index="' + topicIndex + '"]');
- navigator.scrollToElement(scrollTo, highlight, duration);
+ navigator.scrollToElement(scrollTo, highlight, duration, topicIndex);
};
- navigator.scrollToElement = function (scrollTo, highlight, duration) {
+ navigator.scrollToElement = async (scrollTo, highlight, duration, newIndex = null) => {
if (!scrollTo.length) {
navigator.scrollActive = false;
return;
}
+ await hooks.fire('filter:navigator.scroll', { scrollTo, highlight, duration, newIndex });
+
const postHeight = scrollTo.outerHeight(true);
const navbarHeight = components.get('navbar').outerHeight(true) || 0;
const topicHeaderHeight = $('.topic-header').outerHeight(true) || 0;
@@ -573,9 +584,11 @@ define('navigator', ['forum/pagination', 'components', 'hooks', 'alerts'], funct
function animateScroll() {
function reenableScroll() {
// Re-enable onScroll behaviour
- $(window).on('scroll', navigator.delayedUpdate);
- const scrollToRect = scrollTo.get(0).getBoundingClientRect();
- navigator.update(scrollToRect.top);
+ setTimeout(() => { // fixes race condition from jQuery — onAnimateComplete called too quickly
+ $(window).on('scroll', navigator.delayedUpdate);
+
+ hooks.fire('action:navigator.scrolled', { scrollTo, highlight, duration, newIndex });
+ }, 50);
}
function onAnimateComplete() {
if (done) {
@@ -586,8 +599,13 @@ define('navigator', ['forum/pagination', 'components', 'hooks', 'alerts'], funct
navigator.scrollActive = false;
highlightPost();
- $('body').scrollTop($('body').scrollTop() - 1);
- $('html').scrollTop($('html').scrollTop() - 1);
+
+ const scrollToRect = scrollTo.get(0).getBoundingClientRect();
+ if (!newIndex) {
+ navigator.update(scrollToRect.top);
+ } else {
+ navigator.setIndex(newIndex);
+ }
}
let scrollTop = 0;
diff --git a/src/api/helpers.js b/src/api/helpers.js
index fd215aa241..24c2540ccb 100644
--- a/src/api/helpers.js
+++ b/src/api/helpers.js
@@ -13,7 +13,7 @@ const events = require('../events');
exports.setDefaultPostData = function (reqOrSocket, data) {
data.uid = reqOrSocket.uid;
data.req = exports.buildReqObject(reqOrSocket, { ...data });
- data.timestamp = parseInt(data.timestamp, 10) || Date.now();
+ data.timestamp = Date.now();
data.fromQueue = false;
};
diff --git a/src/api/topics.js b/src/api/topics.js
index 187bc064be..3cd98f0c20 100644
--- a/src/api/topics.js
+++ b/src/api/topics.js
@@ -40,13 +40,19 @@ topicsAPI.create = async function (caller, data) {
const payload = { ...data };
payload.tags = payload.tags || [];
apiHelpers.setDefaultPostData(caller, payload);
+ const isScheduling = parseInt(data.timestamp, 10) > payload.timestamp;
+ if (isScheduling) {
+ if (await privileges.categories.can('topics:schedule', data.cid, caller.uid)) {
+ payload.timestamp = parseInt(data.timestamp, 10);
+ } else {
+ throw new Error('[[error:no-privileges]]');
+ }
+ }
- // Blacklist & Post Queue
await meta.blacklist.test(caller.ip);
const shouldQueue = await posts.shouldQueue(caller.uid, payload);
if (shouldQueue) {
- const queueObj = await posts.addToQueue(payload);
- return queueObj;
+ return await posts.addToQueue(payload);
}
const result = await topics.post(payload);
@@ -66,12 +72,10 @@ topicsAPI.reply = async function (caller, data) {
const payload = { ...data };
apiHelpers.setDefaultPostData(caller, payload);
- // Blacklist & Post Queue
await meta.blacklist.test(caller.ip);
const shouldQueue = await posts.shouldQueue(caller.uid, payload);
if (shouldQueue) {
- const queueObj = await posts.addToQueue(payload);
- return queueObj;
+ return await posts.addToQueue(payload);
}
const postData = await topics.reply(payload); // postData seems to be a subset of postObj, refactor?
diff --git a/src/categories/recentreplies.js b/src/categories/recentreplies.js
index 0e5618b4fe..c7ab8e2fa7 100644
--- a/src/categories/recentreplies.js
+++ b/src/categories/recentreplies.js
@@ -1,6 +1,7 @@
'use strict';
+const winston = require('winston');
const _ = require('lodash');
const db = require('../database');
@@ -11,11 +12,14 @@ const plugins = require('../plugins');
const batch = require('../batch');
module.exports = function (Categories) {
- Categories.getRecentReplies = async function (cid, uid, count) {
- if (!parseInt(count, 10)) {
- return [];
+ Categories.getRecentReplies = async function (cid, uid, start, stop) {
+ // backwards compatibility, treat start as count
+ if (stop === undefined && start > 0) {
+ winston.warn('[Categories.getRecentReplies] 3 params deprecated please use Categories.getRecentReplies(cid, uid, start, stop)');
+ stop = start - 1;
+ start = 0;
}
- let pids = await db.getSortedSetRevRange(`cid:${cid}:pids`, 0, count - 1);
+ let pids = await db.getSortedSetRevRange(`cid:${cid}:pids`, start, stop);
pids = await privileges.posts.filter('topics:read', pids, uid);
return await posts.getPostSummaryByPids(pids, uid, { stripTags: true });
};
diff --git a/src/controllers/admin/settings.js b/src/controllers/admin/settings.js
index 719f6e206a..ca0765cc02 100644
--- a/src/controllers/admin/settings.js
+++ b/src/controllers/admin/settings.js
@@ -48,6 +48,13 @@ settingsController.post = async (req, res) => {
});
};
+settingsController.advanced = async (req, res) => {
+ const groupData = await groups.getNonPrivilegeGroups('groups:createtime', 0, -1);
+ res.render('admin/settings/advanced', {
+ groupsExemptFromMaintenanceMode: groupData,
+ });
+};
+
settingsController.languages = async function (req, res) {
const languageData = await languages.list();
languageData.forEach((language) => {
diff --git a/src/groups/update.js b/src/groups/update.js
index 24f4b53797..56b541df27 100644
--- a/src/groups/update.js
+++ b/src/groups/update.js
@@ -274,8 +274,16 @@ module.exports = function (Groups) {
async function updateConfig(oldName, newName) {
if (meta.config.groupsExemptFromPostQueue.includes(oldName)) {
- meta.config.groupsExemptFromPostQueue.splice(meta.config.groupsExemptFromPostQueue.indexOf(oldName), 1, newName);
+ meta.config.groupsExemptFromPostQueue.splice(
+ meta.config.groupsExemptFromPostQueue.indexOf(oldName), 1, newName
+ );
await meta.configs.set('groupsExemptFromPostQueue', meta.config.groupsExemptFromPostQueue);
}
+ if (meta.config.groupsExemptFromMaintenanceMode.includes(oldName)) {
+ meta.config.groupsExemptFromMaintenanceMode.splice(
+ meta.config.groupsExemptFromMaintenanceMode.indexOf(oldName), 1, newName
+ );
+ await meta.configs.set('groupsExemptFromMaintenanceMode', meta.config.groupsExemptFromMaintenanceMode);
+ }
}
};
diff --git a/src/meta/settings.js b/src/meta/settings.js
index 1207d13734..213b61be11 100644
--- a/src/meta/settings.js
+++ b/src/meta/settings.js
@@ -95,6 +95,7 @@ Settings.set = async function (hash, values, quiet) {
plugins.hooks.fire('action:settings.set', {
plugin: hash,
settings: { ...values, ...sortedListData }, // Add back sorted list data to values hash
+ quiet,
});
pubsub.publish(`action:settings.set.${hash}`, values);
diff --git a/src/middleware/headers.js b/src/middleware/headers.js
index 7f05f11928..f6aaecd3e8 100644
--- a/src/middleware/headers.js
+++ b/src/middleware/headers.js
@@ -57,6 +57,10 @@ module.exports = function (middleware) {
});
}
+ if (meta.config['permissions-policy']) {
+ headers['Permissions-Policy'] = meta.config['permissions-policy'];
+ }
+
if (meta.config['access-control-allow-credentials']) {
headers['Access-Control-Allow-Credentials'] = meta.config['access-control-allow-credentials'];
}
diff --git a/src/middleware/maintenance.js b/src/middleware/maintenance.js
index 46fb05dcae..2e56fff8b6 100644
--- a/src/middleware/maintenance.js
+++ b/src/middleware/maintenance.js
@@ -4,6 +4,7 @@ const util = require('util');
const nconf = require('nconf');
const meta = require('../meta');
const user = require('../user');
+const groups = require('../groups');
const helpers = require('./helpers');
module.exports = function (middleware) {
@@ -20,8 +21,12 @@ module.exports = function (middleware) {
return next();
}
- const isAdmin = await user.isAdministrator(req.uid);
- if (isAdmin) {
+ const [isAdmin, isMemberOfExempt] = await Promise.all([
+ user.isAdministrator(req.uid),
+ groups.isMemberOfAny(req.uid, meta.config.groupsExemptFromMaintenanceMode),
+ ]);
+
+ if (isAdmin || isMemberOfExempt) {
return next();
}
diff --git a/src/plugins/data.js b/src/plugins/data.js
index 9f95703217..ba6e319e78 100644
--- a/src/plugins/data.js
+++ b/src/plugins/data.js
@@ -106,6 +106,11 @@ Data.getStaticDirectories = async function (pluginData) {
return;
}
const dirPath = await resolveModulePath(pluginData.path, pluginData.staticDirs[route]);
+ if (!dirPath) {
+ winston.warn(`[plugins/${pluginData.id}] Invalid mapped path specified: ${
+ route} => ${pluginData.staticDirs[route]}`);
+ return;
+ }
try {
const stats = await fs.promises.stat(dirPath);
if (!stats.isDirectory()) {
diff --git a/src/posts/delete.js b/src/posts/delete.js
index 900d0c717c..fb285b5128 100644
--- a/src/posts/delete.js
+++ b/src/posts/delete.js
@@ -203,7 +203,7 @@ module.exports = function (Posts) {
await Promise.all(promises);
const parentPids = _.uniq(postsWithParents.map(p => p.toPid));
- const counts = db.sortedSetsCard(parentPids.map(pid => `pid:${pid}:replies`));
+ const counts = await db.sortedSetsCard(parentPids.map(pid => `pid:${pid}:replies`));
await db.setObjectBulk(parentPids.map((pid, index) => [`post:${pid}`, { replies: counts[index] }]));
}
diff --git a/src/routes/admin.js b/src/routes/admin.js
index 3134e8d9ae..aac0e5dfb0 100644
--- a/src/routes/admin.js
+++ b/src/routes/admin.js
@@ -34,6 +34,7 @@ module.exports = function (app, name, middleware, controllers) {
helpers.setupAdminPageRoute(app, `/${name}/settings/email`, middlewares, controllers.admin.settings.email);
helpers.setupAdminPageRoute(app, `/${name}/settings/user`, middlewares, controllers.admin.settings.user);
helpers.setupAdminPageRoute(app, `/${name}/settings/post`, middlewares, controllers.admin.settings.post);
+ helpers.setupAdminPageRoute(app, `/${name}/settings/advanced`, middlewares, controllers.admin.settings.advanced);
helpers.setupAdminPageRoute(app, `/${name}/settings/languages`, middlewares, controllers.admin.settings.languages);
helpers.setupAdminPageRoute(app, `/${name}/settings/navigation`, middlewares, controllers.admin.settings.navigation);
helpers.setupAdminPageRoute(app, `/${name}/settings/homepage`, middlewares, controllers.admin.settings.homepage);
diff --git a/src/routes/feeds.js b/src/routes/feeds.js
index c3bda30473..fbd8de7072 100644
--- a/src/routes/feeds.js
+++ b/src/routes/feeds.js
@@ -307,7 +307,11 @@ async function generateForRecentPosts(req, res, next) {
if (meta.config['feeds:disableRSS']) {
return next();
}
- const postData = await posts.getRecentPosts(req.uid, 0, 19, 'month');
+ const page = parseInt(req.query.page, 10) || 1;
+ const postsPerPage = 20;
+ const start = Math.max(0, (page - 1) * postsPerPage);
+ const stop = start + postsPerPage - 1;
+ const postData = await posts.getRecentPosts(req.uid, start, stop, 'month');
const feed = generateForPostsFeed({
title: 'Recent Posts',
description: 'A list of recent posts',
@@ -323,11 +327,14 @@ async function generateForCategoryRecentPosts(req, res) {
return controllers404.handle404(req, res);
}
const cid = req.params.category_id;
-
+ const page = parseInt(req.query.page, 10) || 1;
+ const topicsPerPage = 20;
+ const start = Math.max(0, (page - 1) * topicsPerPage);
+ const stop = start + topicsPerPage - 1;
const [userPrivileges, category, postData] = await Promise.all([
privileges.categories.get(cid, req.uid),
categories.getCategoryData(cid),
- categories.getRecentReplies(cid, req.uid || req.query.uid || 0, 20),
+ categories.getRecentReplies(cid, req.uid || req.query.uid || 0, start, stop),
]);
if (!category) {
diff --git a/src/socket.io/categories.js b/src/socket.io/categories.js
index ad72658f70..0a90698115 100644
--- a/src/socket.io/categories.js
+++ b/src/socket.io/categories.js
@@ -10,7 +10,7 @@ const SocketCategories = module.exports;
require('./categories/search')(SocketCategories);
SocketCategories.getRecentReplies = async function (socket, cid) {
- return await categories.getRecentReplies(cid, socket.uid, 4);
+ return await categories.getRecentReplies(cid, socket.uid, 0, 4);
};
SocketCategories.get = async function (socket) {
diff --git a/src/topics/index.js b/src/topics/index.js
index 94f9803f5c..b6dd08e817 100644
--- a/src/topics/index.js
+++ b/src/topics/index.js
@@ -185,6 +185,12 @@ Topics.getTopicWithPosts = async function (topicData, set, uid, start, stop, rev
topicData.thumbs = thumbs[0];
topicData.posts = posts;
topicData.events = events;
+ topicData.posts.forEach((p) => {
+ p.events = events.filter(
+ event => event.timestamp >= p.eventStart && event.timestamp < p.eventEnd
+ );
+ });
+
topicData.category = category;
topicData.tagWhitelist = tagWhitelist[0];
topicData.minTags = category.minTags;
diff --git a/src/user/posts.js b/src/user/posts.js
index 33f7464a71..9ca31cd6e7 100644
--- a/src/user/posts.js
+++ b/src/user/posts.js
@@ -18,7 +18,7 @@ module.exports = function (User) {
return;
}
const [userData, isAdminOrMod] = await Promise.all([
- User.getUserFields(uid, ['uid', 'banned', 'mutedUntil', 'joindate', 'email', 'reputation'].concat([field])),
+ User.getUserFields(uid, ['uid', 'mutedUntil', 'joindate', 'email', 'reputation'].concat([field])),
privileges.categories.isAdminOrMod(cid, uid),
]);
@@ -30,10 +30,6 @@ module.exports = function (User) {
return;
}
- if (userData.banned) {
- throw new Error('[[error:user-banned]]');
- }
-
const now = Date.now();
if (userData.mutedUntil > now) {
let muteLeft = ((userData.mutedUntil - now) / (1000 * 60));
diff --git a/src/views/admin/partials/categories/category-rows.tpl b/src/views/admin/partials/categories/category-rows.tpl
index 7df4bd7c45..7c4429766e 100644
--- a/src/views/admin/partials/categories/category-rows.tpl
+++ b/src/views/admin/partials/categories/category-rows.tpl
@@ -1,5 +1,5 @@
[[admin/settings/advanced:headers.permissions-policy-help]]
+