diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml
index a5ce6a5d56..fb2bd3ccce 100644
--- a/.github/workflows/docker.yml
+++ b/.github/workflows/docker.yml
@@ -96,7 +96,7 @@ jobs:
echo "IMAGE=ghcr.io/${GITHUB_REPOSITORY@L}" >> $GITHUB_ENV
echo "CURRENT_DATE_NST=$(date +'%Y%m%d-%H%M%S' -d '-3 hours -30 minutes')" >> $GITHUB_ENV
- name: Download digests
- uses: actions/download-artifact@v4
+ uses: actions/download-artifact@v5
with:
path: ${{ runner.temp }}/digests
pattern: digests-*
diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml
index fe9710ac5a..a94157f446 100644
--- a/.github/workflows/test.yaml
+++ b/.github/workflows/test.yaml
@@ -86,7 +86,7 @@ jobs:
- run: cp install/package.json package.json
- name: Install Node
- uses: actions/setup-node@v4
+ uses: actions/setup-node@v5
with:
node-version: ${{ matrix.node }}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index beaab4c40c..c35feb4d24 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,75 @@
+#### v4.5.2 (2025-09-29)
+
+##### Chores
+
+* remove obsolete deprecation (52fec493)
+* up persona (405d2172)
+* incrementing version number - v4.5.1 (69f4b61f)
+* update changelog for v4.5.1 (a9fffd7c)
+* incrementing version number - v4.5.0 (f05c5d06)
+* incrementing version number - v4.4.6 (074043ad)
+* incrementing version number - v4.4.5 (6f106923)
+* incrementing version number - v4.4.4 (d323af44)
+* incrementing version number - v4.4.3 (d354c2eb)
+* incrementing version number - v4.4.2 (55c510ae)
+* incrementing version number - v4.4.1 (5ae79b4e)
+* incrementing version number - v4.4.0 (0a75eee3)
+* incrementing version number - v4.3.2 (b92b5d80)
+* incrementing version number - v4.3.1 (308e6b9f)
+* incrementing version number - v4.3.0 (bff291db)
+* incrementing version number - v4.2.2 (17fecc24)
+* incrementing version number - v4.2.1 (852a270c)
+* incrementing version number - v4.2.0 (87581958)
+* incrementing version number - v4.1.1 (b2afbb16)
+* incrementing version number - v4.1.0 (36c80850)
+* incrementing version number - v4.0.6 (4a52fb2e)
+* incrementing version number - v4.0.5 (1792a62b)
+* incrementing version number - v4.0.4 (b1125cce)
+* incrementing version number - v4.0.3 (2b65c735)
+* incrementing version number - v4.0.2 (73fe5fcf)
+* incrementing version number - v4.0.1 (a461b758)
+* incrementing version number - v4.0.0 (c1eaee45)
+
+##### New Features
+
+* add a term param to recent controller so it can be controller without req.query.term (9c18c6fe)
+* add a new hook to override generateUrl in navigator.js (68a8db85)
+* add topic templates per category, closes #13649 (0311b98e)
+
+##### Bug Fixes
+
+* skip header checking during note assertion if test runner is active (7abdfd86)
+* update note assertion topic members check to simpler posts.exists check (d0c05826)
+* re-jig handling of ap tag values so that only hashtags are considered (not Piefed community tags, etc.) (4d68e3fe)
+* missing actor assertion on 1b12 announced upboat (f9edb13f)
+* use parameterized query for key lookup (6cca55e3)
+* add pre-processing step to title generation logic so sbd doesn't fall over so badly (f7c47429)
+* switch to action (f7bbec7c)
+* handle cases where incoming ap object tag can be a non-array (b66c30a2)
+* local pids not always converted to absolute URLs on topic actor controller (f67942ca)
+* #13657, fix remote category data inconsistency in `sendNotificationToPostOwner` (225bf85e)
+* don't show votes on unread if rep system disabled (dfe19a98)
+* if reputation is disabled hide votes on /recent (8a786c71)
+* favicon path (e2dc592c)
+* check brand:touchIcon for correct path (56fad0be)
+* remove .auth call (f9ddbeba)
+* port the try/catch for notes.assert from develop (f9688b36)
+* perform Link header check on note assertion only when skipChecks is falsy (953c051c)
+* make auto-categorization logic case-insensitive (527f27af)
+* closes #13641, log test email sending errors server side (b3ffa007)
+* pass object to.auth (290a9395)
+* **deps:** bump 2factor to 7.6.0 (d1f5060f)
+
+##### Other Changes
+
+* remove unused (a6674f67)
+* fix (a37521b0)
+
+##### Performance Improvements
+
+* update upgrade script to use bulk methods (0a2fa45d)
+* update old upgrade scripts to use bulkSet/Add (32d0ee48)
+
#### v4.5.1 (2025-09-04)
##### Chores
diff --git a/install/data/defaults.json b/install/data/defaults.json
index b6ae97a3c7..574a8bfe01 100644
--- a/install/data/defaults.json
+++ b/install/data/defaults.json
@@ -36,7 +36,7 @@
"maximumTagsPerTopic": 5,
"minimumTagLength": 3,
"maximumTagLength": 15,
- "undoTimeout": 10000,
+ "undoTimeout": 0,
"allowTopicsThumbnail": 1,
"registrationType": "normal",
"registrationApprovalType": "normal",
diff --git a/install/package.json b/install/package.json
index ea5908ca1d..e57a59d011 100644
--- a/install/package.json
+++ b/install/package.json
@@ -29,9 +29,9 @@
},
"dependencies": {
"@adactive/bootstrap-tagsinput": "0.8.2",
- "@fontsource-utils/scss": "0.2.1",
- "@fontsource/inter": "5.2.6",
- "@fontsource/poppins": "5.2.6",
+ "@fontsource-utils/scss": "0.2.2",
+ "@fontsource/inter": "5.2.8",
+ "@fontsource/poppins": "5.2.7",
"@fortawesome/fontawesome-free": "6.7.2",
"@isaacs/ttlcache": "1.4.1",
"@nodebb/spider-detector": "2.0.3",
@@ -48,12 +48,12 @@
"body-parser": "2.2.0",
"bootbox": "6.0.4",
"bootstrap": "5.3.8",
- "bootswatch": "5.3.7",
+ "bootswatch": "5.3.8",
"chalk": "4.1.2",
"chart.js": "4.5.0",
"cli-graph": "3.2.2",
"clipboard": "2.0.11",
- "commander": "14.0.0",
+ "commander": "14.0.1",
"compare-versions": "6.1.1",
"compression": "1.8.1",
"connect-flash": "0.1.1",
@@ -66,13 +66,13 @@
"csrf-sync": "4.2.1",
"daemon": "1.1.0",
"diff": "8.0.2",
- "esbuild": "0.25.9",
+ "esbuild": "0.25.10",
"express": "4.21.2",
"express-session": "1.18.2",
"express-useragent": "1.0.15",
"fetch-cookie": "3.1.0",
"file-loader": "6.2.0",
- "fs-extra": "11.3.1",
+ "fs-extra": "11.3.2",
"graceful-fs": "4.2.11",
"helmet": "7.2.0",
"html-to-text": "9.0.5",
@@ -88,10 +88,10 @@
"jsonwebtoken": "9.0.2",
"lodash": "4.17.21",
"logrotate-stream": "0.2.9",
- "lru-cache": "11.1.0",
+ "lru-cache": "11.2.2",
"mime": "3.0.0",
"mkdirp": "3.0.1",
- "mongodb": "6.19.0",
+ "mongodb": "6.20.0",
"morgan": "1.10.1",
"mousetrap": "1.6.5",
"multer": "2.0.2",
@@ -106,7 +106,7 @@
"nodebb-plugin-spam-be-gone": "2.3.2",
"nodebb-plugin-web-push": "0.7.5",
"nodebb-rewards-essentials": "1.0.2",
- "nodebb-theme-harmony": "2.1.19",
+ "nodebb-theme-harmony": "2.1.20",
"nodebb-theme-lavender": "7.1.19",
"nodebb-theme-peace": "2.2.48",
"nodebb-theme-persona": "14.1.14",
@@ -120,6 +120,7 @@
"pg-cursor": "2.15.3",
"postcss": "8.5.6",
"postcss-clean": "1.2.0",
+ "pretty": "^2.0.0",
"progress-webpack-plugin": "1.0.16",
"prompt": "1.3.0",
"redis": "5.8.2",
@@ -127,12 +128,12 @@
"rss": "1.2.2",
"rtlcss": "4.3.0",
"sanitize-html": "2.17.0",
- "sass": "1.91.0",
- "satori": "0.18.2",
+ "sass": "1.93.2",
+ "satori": "0.18.3",
"sbd": "^1.0.19",
"semver": "7.7.2",
"serve-favicon": "2.5.1",
- "sharp": "0.34.3",
+ "sharp": "0.34.4",
"sitemap": "8.0.0",
"socket.io": "4.8.1",
"socket.io-client": "4.8.1",
@@ -148,10 +149,10 @@
"tough-cookie": "6.0.0",
"undici": "^7.10.0",
"validator": "13.15.15",
- "webpack": "5.101.3",
+ "webpack": "5.102.0",
"webpack-merge": "6.0.1",
"winston": "3.17.0",
- "workerpool": "9.3.3",
+ "workerpool": "9.3.4",
"xml": "1.0.1",
"xregexp": "5.1.2",
"yargs": "17.7.2",
@@ -159,26 +160,26 @@
},
"devDependencies": {
"@apidevtools/swagger-parser": "10.1.0",
- "@commitlint/cli": "19.8.1",
- "@commitlint/config-angular": "19.8.1",
+ "@commitlint/cli": "20.0.0",
+ "@commitlint/config-angular": "20.0.0",
"coveralls": "3.1.1",
- "@eslint/js": "9.34.0",
- "@stylistic/eslint-plugin": "5.3.1",
+ "@eslint/js": "9.36.0",
+ "@stylistic/eslint-plugin": "5.4.0",
"eslint-config-nodebb": "1.1.11",
"eslint-plugin-import": "2.32.0",
"grunt": "1.6.1",
"grunt-contrib-watch": "1.1.0",
"husky": "8.0.3",
- "jsdom": "26.1.0",
- "lint-staged": "16.1.5",
- "mocha": "11.7.1",
+ "jsdom": "27.0.0",
+ "lint-staged": "16.2.3",
+ "mocha": "11.7.2",
"mocha-lcov-reporter": "1.3.0",
"mockdate": "3.0.5",
"nyc": "17.1.0",
"smtp-server": "3.14.0"
},
"optionalDependencies": {
- "sass-embedded": "1.91.0"
+ "sass-embedded": "1.93.2"
},
"resolutions": {
"*/jquery": "3.7.1"
diff --git a/public/language/ar/admin/manage/categories.json b/public/language/ar/admin/manage/categories.json
index f2469f7414..42282e425d 100644
--- a/public/language/ar/admin/manage/categories.json
+++ b/public/language/ar/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Jump to...",
"settings": "اعدادات القسم",
"edit-category": "Edit Category",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -109,6 +112,9 @@
"alert.create": "Create a Category",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.
Note — The remote category may not reflect all topics published unless at least one local user tracks/watches it.",
+ "alert.rename": "Rename a Remote Category",
+ "alert.rename-help": "Please enter a new name for this category. Leave blank to restore original name.",
+ "alert.confirm-remove": "Do you really want to remove this category? You can add it back at any time.",
"alert.confirm-purge": "
Do you really want to purge this category \"%1\"?
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
", "alert.purge-success": "Category purged!", "alert.copy-success": "Settings Copied!", diff --git a/public/language/ar/admin/settings/activitypub.json b/public/language/ar/admin/settings/activitypub.json index 1b00672e0f..5ab4fa43e8 100644 --- a/public/language/ar/admin/settings/activitypub.json +++ b/public/language/ar/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/az/admin/manage/categories.json b/public/language/az/admin/manage/categories.json
index 6540f6c4e9..1fc1544231 100644
--- a/public/language/az/admin/manage/categories.json
+++ b/public/language/az/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Keç...",
"settings": "Kateqoriya parametrləri",
"edit-category": "Kateqoriyanı redaktə et",
@@ -17,6 +18,8 @@
"federatedDescription": "Federasiya təsviri",
"federatedDescription.help": "Bu mətn digər vebsaytlar/tətbiqlər tərəfindən sorğulandıqda kateqoriya təsvirinə əlavə olunacaq.",
"federatedDescription.default": "Bu, aktual müzakirələrdən ibarət forum kateqoriyasıdır. Bu kateqoriyanı qeyd etməklə yeni müzakirələrə başlaya bilərsiniz.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Arxa fon rəngi",
"text-color": "Mətnin rəngi",
"bg-image-size": "Fon şəklinin ölçüsü",
@@ -109,6 +112,9 @@
"alert.create": "Kateqoriya yarat",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.Bu \"%1\" kateqoriyasını həqiqətən təmizləmək istəyirsiniz?
Kateqoriyanın təmizlənməsi bütün mövzuları və yazıları siləcək və kateqoriyanı verilənlər bazasından siləcək. Kateqoriyanı müvəqqəti olaraq silmək istəyirsinizsə, bunun əvəzinə kateqoriyanı \"deaktiv etmək\" istəyəcəksiniz.
", "alert.purge-success": "Kateqoriya təmizləndi!", "alert.copy-success": "Parametrlər kopyalandı!", diff --git a/public/language/az/admin/settings/activitypub.json b/public/language/az/admin/settings/activitypub.json index db67fe8e2b..2399a20908 100644 --- a/public/language/az/admin/settings/activitypub.json +++ b/public/language/az/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/bg/admin/manage/categories.json b/public/language/bg/admin/manage/categories.json
index 51a23cb96b..ee60e90e0c 100644
--- a/public/language/bg/admin/manage/categories.json
+++ b/public/language/bg/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Добавяне на локална категория",
"add-remote-category": "Добавяне на отдалечена категория",
"remove": "Премахване",
+ "rename": "Преименуване",
"jump-to": "Прехвърляне към…",
"settings": "Настройки на категорията",
"edit-category": "Редактиране на категорията",
@@ -17,6 +18,8 @@
"federatedDescription": "Федерирано описание",
"federatedDescription.help": "Този текст ще бъде добавен към описанието на категорията, когато други уеб сайтове и приложения изискват информация за нея.",
"federatedDescription.default": "Това е категория във форума, съдържаща тематични дискусии. Може да започнете нова дискусия, като споменете този форум.",
+ "topic-template": "Шаблон за темите",
+ "topic-template.help": "Създайте шаблон за новите теми в тази категория.",
"bg-color": "Цвят на фона",
"text-color": "Цвят на текста",
"bg-image-size": "Размер на фоновото изображение",
@@ -109,6 +112,9 @@
"alert.create": "Създаване на категория",
"alert.add": "Добавяне на категория",
"alert.add-help": "Отдалечена категория може да бъде добавена в списъка с категории, като посочите нейния идентификатор.Наистина ли искате да изтриете категорията „%1“?
Изтриването на категорията ще премахне всички теми и публикации, и ще изтрие категорията от базата данни. Ако искате да премахнете категорията временно, можете просто да я „изключите“.
", "alert.purge-success": "Категорията е изтрита!", "alert.copy-success": "Настройките са копирани!", diff --git a/public/language/bg/admin/settings/activitypub.json b/public/language/bg/admin/settings/activitypub.json index 83b33df719..dea26e2dfa 100644 --- a/public/language/bg/admin/settings/activitypub.json +++ b/public/language/bg/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Съдържанието открито чрез ActivityPub може да бъде категоризирано автоматично следвайки определени правила (например дума отбелязана с диез)", "rules.modal.title": "Как работи това", "rules.modal.instructions": "Цялото входящо съдържание се проверява спрямо правилата и ако има съвпадения – те се преместват в избраната категория.едно,две,три)",
"rules.add": "Добавяне на ново правило",
+ "rules.help-hashtag": "Ще се търсят съвпадения с теми съдържащи тази дума с диез (не се прави разлика между главни и малки букви). Не въвеждайте знака #",
+ "rules.help-user": "Ще се търсят теми създадени от този потребител. Въведете псевдоним или пълен идентификатор (например bob@example.org или https://example.org/users/bob.",
"rules.type": "Тип",
"rules.value": "Стойност",
"rules.cid": "Категория",
diff --git a/public/language/bn/admin/manage/categories.json b/public/language/bn/admin/manage/categories.json
index d66dd814a1..38037f7206 100644
--- a/public/language/bn/admin/manage/categories.json
+++ b/public/language/bn/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Jump to...",
"settings": "Category Settings",
"edit-category": "Edit Category",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -109,6 +112,9 @@
"alert.create": "Create a Category",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.Do you really want to purge this category \"%1\"?
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
", "alert.purge-success": "Category purged!", "alert.copy-success": "Settings Copied!", diff --git a/public/language/bn/admin/settings/activitypub.json b/public/language/bn/admin/settings/activitypub.json index 1b00672e0f..5ab4fa43e8 100644 --- a/public/language/bn/admin/settings/activitypub.json +++ b/public/language/bn/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/cs/admin/manage/categories.json b/public/language/cs/admin/manage/categories.json
index 8a8942a9f1..1623ea6e66 100644
--- a/public/language/cs/admin/manage/categories.json
+++ b/public/language/cs/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Jump to...",
"settings": "Nastavení kategorie",
"edit-category": "Edit Category",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Barva pozadí",
"text-color": "Barva textu",
"bg-image-size": "Velikost obrázku pozadí",
@@ -109,6 +112,9 @@
"alert.create": "Vytvořit kategorii",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.Opravdu chcete vyčistit tuto kategorii \"%1\"?
Smazání kategorie vyjme všechny témata a příspěvky a odstraní kategorii z databáze. Pokud chcete vyjmout kategorii dočasně, raději místo toho kategorii „zakažte”.
", "alert.purge-success": "Kategorie byla vyčištěna.", "alert.copy-success": "Nastavení bylo zkopírováno.", diff --git a/public/language/cs/admin/settings/activitypub.json b/public/language/cs/admin/settings/activitypub.json index 1b00672e0f..5ab4fa43e8 100644 --- a/public/language/cs/admin/settings/activitypub.json +++ b/public/language/cs/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/da/admin/manage/categories.json b/public/language/da/admin/manage/categories.json
index 54ce8cd595..8985fc7d64 100644
--- a/public/language/da/admin/manage/categories.json
+++ b/public/language/da/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Jump to...",
"settings": "Category Settings",
"edit-category": "Edit Category",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -109,6 +112,9 @@
"alert.create": "Create a Category",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.Do you really want to purge this category \"%1\"?
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
", "alert.purge-success": "Category purged!", "alert.copy-success": "Settings Copied!", diff --git a/public/language/da/admin/settings/activitypub.json b/public/language/da/admin/settings/activitypub.json index c868684859..b70d230cf5 100644 --- a/public/language/da/admin/settings/activitypub.json +++ b/public/language/da/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/de/admin/manage/categories.json b/public/language/de/admin/manage/categories.json
index 327f17ae07..968badebce 100644
--- a/public/language/de/admin/manage/categories.json
+++ b/public/language/de/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Springen zu...",
"settings": "Kategorieeinstellungen",
"edit-category": "Kategorie bearbeiten",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Hintergrundfarbe",
"text-color": "Textfarbe",
"bg-image-size": "Hintergrundbildgröße",
@@ -109,6 +112,9 @@
"alert.create": "Erstelle eine Kategorie",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.Möchtest du die Kategorie \"%1\" wirklich löschen?
Löschen einer Kategorie wird alle Themen und Beiträge zu entfernen, und die Kategorie aus der Datenbank löschen. Falls du eine Kategorie temporär entfernen möchstest, dann kannst du sie stattdessen \"deaktivieren\".",
"alert.purge-success": "Kategorie gelöscht!",
"alert.copy-success": "Einstellungen kopiert!",
diff --git a/public/language/de/admin/settings/activitypub.json b/public/language/de/admin/settings/activitypub.json
index f08220e9df..34f2635f78 100644
--- a/public/language/de/admin/settings/activitypub.json
+++ b/public/language/de/admin/settings/activitypub.json
@@ -22,8 +22,9 @@
"rules-intro": "Über ActivityPub entdeckte Inhalte können automatisch anhand bestimmter Regeln (z. B. Hashtags) kategorisiert werden.",
"rules.modal.title": "Wie es funktioniert",
"rules.modal.instructions": "Eingehende Inhalte werden mit diesen Kategorisierungsregeln abgeglichen, und passende Inhalte werden automatisch in die gewünschte Kategorie verschoben. Hinweis: Inhalte, die bereits kategorisiert sind (z. B. in einer externen Kategorie), durchlaufen diese Regeln nicht.",
- "rules.modal.values-multiple": "Um mehrere Werte abzugleichen, Einträge mit einem Komma trennen (z. B. eins,zwei,drei).",
"rules.add": "Neue Regel hinzufügen",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Typ",
"rules.value": "Wert",
"rules.cid": "Kategorie",
diff --git a/public/language/el/admin/manage/categories.json b/public/language/el/admin/manage/categories.json
index d66dd814a1..38037f7206 100644
--- a/public/language/el/admin/manage/categories.json
+++ b/public/language/el/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Jump to...",
"settings": "Category Settings",
"edit-category": "Edit Category",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -109,6 +112,9 @@
"alert.create": "Create a Category",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.
Note — The remote category may not reflect all topics published unless at least one local user tracks/watches it.",
+ "alert.rename": "Rename a Remote Category",
+ "alert.rename-help": "Please enter a new name for this category. Leave blank to restore original name.",
+ "alert.confirm-remove": "Do you really want to remove this category? You can add it back at any time.",
"alert.confirm-purge": "
Do you really want to purge this category \"%1\"?
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
", "alert.purge-success": "Category purged!", "alert.copy-success": "Settings Copied!", diff --git a/public/language/el/admin/settings/activitypub.json b/public/language/el/admin/settings/activitypub.json index 1b00672e0f..5ab4fa43e8 100644 --- a/public/language/el/admin/settings/activitypub.json +++ b/public/language/el/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/en-GB/admin/manage/categories.json b/public/language/en-GB/admin/manage/categories.json
index 7532cd9cd1..38037f7206 100644
--- a/public/language/en-GB/admin/manage/categories.json
+++ b/public/language/en-GB/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Jump to...",
"settings": "Category Settings",
"edit-category": "Edit Category",
@@ -111,6 +112,9 @@
"alert.create": "Create a Category",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.Do you really want to purge this category \"%1\"?
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
", "alert.purge-success": "Category purged!", "alert.copy-success": "Settings Copied!", diff --git a/public/language/en-GB/admin/settings/activitypub.json b/public/language/en-GB/admin/settings/activitypub.json index 1b00672e0f..5ab4fa43e8 100644 --- a/public/language/en-GB/admin/settings/activitypub.json +++ b/public/language/en-GB/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/en-US/admin/manage/categories.json b/public/language/en-US/admin/manage/categories.json
index d66dd814a1..38037f7206 100644
--- a/public/language/en-US/admin/manage/categories.json
+++ b/public/language/en-US/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Jump to...",
"settings": "Category Settings",
"edit-category": "Edit Category",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -109,6 +112,9 @@
"alert.create": "Create a Category",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.Do you really want to purge this category \"%1\"?
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
", "alert.purge-success": "Category purged!", "alert.copy-success": "Settings Copied!", diff --git a/public/language/en-US/admin/settings/activitypub.json b/public/language/en-US/admin/settings/activitypub.json index 1b00672e0f..5ab4fa43e8 100644 --- a/public/language/en-US/admin/settings/activitypub.json +++ b/public/language/en-US/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/en-x-pirate/admin/manage/categories.json b/public/language/en-x-pirate/admin/manage/categories.json
index d66dd814a1..38037f7206 100644
--- a/public/language/en-x-pirate/admin/manage/categories.json
+++ b/public/language/en-x-pirate/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Jump to...",
"settings": "Category Settings",
"edit-category": "Edit Category",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -109,6 +112,9 @@
"alert.create": "Create a Category",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.Do you really want to purge this category \"%1\"?
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
", "alert.purge-success": "Category purged!", "alert.copy-success": "Settings Copied!", diff --git a/public/language/en-x-pirate/admin/settings/activitypub.json b/public/language/en-x-pirate/admin/settings/activitypub.json index 1b00672e0f..5ab4fa43e8 100644 --- a/public/language/en-x-pirate/admin/settings/activitypub.json +++ b/public/language/en-x-pirate/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/es/admin/manage/categories.json b/public/language/es/admin/manage/categories.json
index 74e14ce149..5cd865c742 100644
--- a/public/language/es/admin/manage/categories.json
+++ b/public/language/es/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Jump to...",
"settings": "Configuración de Categoría",
"edit-category": "Edit Category",
@@ -17,6 +18,8 @@
"federatedDescription": "Descripción federada",
"federatedDescription.help": "Este texto será agregado a la descripción de la categoría cuando sea buscado por otros sitios y aplicaciones.",
"federatedDescription.default": "Esta es una categoría de foro que contiene discusiones pasadas. Puedes iniciar nuevas discusiones mencionando esta categoría.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Color de Fondo",
"text-color": "Color del Texto",
"bg-image-size": "Tamaño de la Imagen de Fondo",
@@ -109,6 +112,9 @@
"alert.create": "Crear una Categoría",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.¿Realmente quieres purgar esta categoría\"%1\"?
Purgar una categoría eliminará todos los temas y respuestas, y borrará la categoría de la base de datos. Si quieres eliminar una categoría temporalmente, deberías \"desactivar\" esa categoría en su lugar.
", "alert.purge-success": "¡Categoría purgada!", "alert.copy-success": "¡Configuración Copiada!", diff --git a/public/language/es/admin/settings/activitypub.json b/public/language/es/admin/settings/activitypub.json index da972be67d..5bc9a80078 100644 --- a/public/language/es/admin/settings/activitypub.json +++ b/public/language/es/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/et/admin/manage/categories.json b/public/language/et/admin/manage/categories.json
index d66dd814a1..38037f7206 100644
--- a/public/language/et/admin/manage/categories.json
+++ b/public/language/et/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Jump to...",
"settings": "Category Settings",
"edit-category": "Edit Category",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -109,6 +112,9 @@
"alert.create": "Create a Category",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.Do you really want to purge this category \"%1\"?
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
", "alert.purge-success": "Category purged!", "alert.copy-success": "Settings Copied!", diff --git a/public/language/et/admin/settings/activitypub.json b/public/language/et/admin/settings/activitypub.json index 1b00672e0f..5ab4fa43e8 100644 --- a/public/language/et/admin/settings/activitypub.json +++ b/public/language/et/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/fa-IR/admin/manage/categories.json b/public/language/fa-IR/admin/manage/categories.json
index f80ae0e28e..2f2a16a5ec 100644
--- a/public/language/fa-IR/admin/manage/categories.json
+++ b/public/language/fa-IR/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Jump to...",
"settings": "تنظیمات دستهبندی",
"edit-category": "Edit Category",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -109,6 +112,9 @@
"alert.create": "Create a Category",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.Do you really want to purge this category \"%1\"?
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
", "alert.purge-success": "Category purged!", "alert.copy-success": "Settings Copied!", diff --git a/public/language/fa-IR/admin/settings/activitypub.json b/public/language/fa-IR/admin/settings/activitypub.json index 1b00672e0f..5ab4fa43e8 100644 --- a/public/language/fa-IR/admin/settings/activitypub.json +++ b/public/language/fa-IR/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/fi/admin/manage/categories.json b/public/language/fi/admin/manage/categories.json
index 0b50fb20ad..42aea3b6bb 100644
--- a/public/language/fi/admin/manage/categories.json
+++ b/public/language/fi/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Siirry...",
"settings": "Kategoria-asetukset",
"edit-category": "Muokkaa kategoriaa",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Taustaväri",
"text-color": "Tekstin väri",
"bg-image-size": "Taustakuvan koko",
@@ -109,6 +112,9 @@
"alert.create": "Luo kategoria.",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.Do you really want to purge this category \"%1\"?
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
", "alert.purge-success": "Kategoria poistettiin!", "alert.copy-success": "Asetukset kopioitiin!", diff --git a/public/language/fi/admin/settings/activitypub.json b/public/language/fi/admin/settings/activitypub.json index 8fc3168448..a916af734e 100644 --- a/public/language/fi/admin/settings/activitypub.json +++ b/public/language/fi/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/fr/admin/manage/categories.json b/public/language/fr/admin/manage/categories.json
index 35b588d572..fc33293483 100644
--- a/public/language/fr/admin/manage/categories.json
+++ b/public/language/fr/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Aller à...",
"settings": "Paramètres de la catégorie",
"edit-category": "Modifier les catégories",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Couleur d'arrière plan",
"text-color": "Couleur du texte",
"bg-image-size": "Taille de l'image d'arrière plan",
@@ -109,6 +112,9 @@
"alert.create": "Créer une catégorie",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.Voulez-vous vraiment purger cette catégorie \"%1\" ?
Purger une catégorie va enlever tous les sujets et messages en supprimant la catégorie de la base de données. Si vous voulez seulement enlevez une catégorietemporairement, il faut plutôt \"désactiver\" la catégorie.",
"alert.purge-success": "Catégorie purgée !",
"alert.copy-success": "Paramètres copiés !",
diff --git a/public/language/fr/admin/settings/activitypub.json b/public/language/fr/admin/settings/activitypub.json
index 1b00672e0f..5ab4fa43e8 100644
--- a/public/language/fr/admin/settings/activitypub.json
+++ b/public/language/fr/admin/settings/activitypub.json
@@ -22,8 +22,9 @@
"rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)",
"rules.modal.title": "How it works",
"rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.
N.B. Content that is already categorized (i.e. in a remote category) will not pass through these rules.",
- "rules.modal.values-multiple": "To match multiple values, separate entries with a comma (e.g. one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/gl/admin/manage/categories.json b/public/language/gl/admin/manage/categories.json
index d66dd814a1..38037f7206 100644
--- a/public/language/gl/admin/manage/categories.json
+++ b/public/language/gl/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Jump to...",
"settings": "Category Settings",
"edit-category": "Edit Category",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -109,6 +112,9 @@
"alert.create": "Create a Category",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.
Note — The remote category may not reflect all topics published unless at least one local user tracks/watches it.",
+ "alert.rename": "Rename a Remote Category",
+ "alert.rename-help": "Please enter a new name for this category. Leave blank to restore original name.",
+ "alert.confirm-remove": "Do you really want to remove this category? You can add it back at any time.",
"alert.confirm-purge": "
Do you really want to purge this category \"%1\"?
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
", "alert.purge-success": "Category purged!", "alert.copy-success": "Settings Copied!", diff --git a/public/language/gl/admin/settings/activitypub.json b/public/language/gl/admin/settings/activitypub.json index 1b00672e0f..5ab4fa43e8 100644 --- a/public/language/gl/admin/settings/activitypub.json +++ b/public/language/gl/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/he/admin/manage/categories.json b/public/language/he/admin/manage/categories.json
index e250ec3867..f52d852820 100644
--- a/public/language/he/admin/manage/categories.json
+++ b/public/language/he/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "קפיצה אל...",
"settings": "הגדרות קטגוריות",
"edit-category": "עריכת קטגוריה",
@@ -17,6 +18,8 @@
"federatedDescription": "תיאור פדרציה",
"federatedDescription.help": "טקסט זה יצורף לתיאור הקטגוריה כאשר הוא יתבקש על ידי אתרים או אפליקציות אחרות.",
"federatedDescription.default": "זוהי קטגוריית פורום המכילה דיון אקטואלי. תוכלו להתחיל דיונים חדשים על ידי אזכור קטגוריה זו.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "צבע רקע",
"text-color": "צבע טקסט",
"bg-image-size": "גודל תמונת רקע",
@@ -109,6 +112,9 @@
"alert.create": "יצירת קטגוריה",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.האם אתם בטוחים שאתם רוצים למחוק את קטגוריית \"%1\"?
מחיקת קטגוריה תסיר את כל הנושאים והפוסטים ותמחק את הקטגוריה ממסד הנתונים. אם ברצונכם להסיר את הקטגוריה באופן זמני, בחרו ב\"השבתת\" הקטגוריה.
", "alert.purge-success": "הקטגוריה נמחקה!", "alert.copy-success": "ההגדרות הועתקו!", diff --git a/public/language/he/admin/settings/activitypub.json b/public/language/he/admin/settings/activitypub.json index 7d7f2360cf..784350dfff 100644 --- a/public/language/he/admin/settings/activitypub.json +++ b/public/language/he/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/hr/admin/manage/categories.json b/public/language/hr/admin/manage/categories.json
index f7169fb5d7..e35b386134 100644
--- a/public/language/hr/admin/manage/categories.json
+++ b/public/language/hr/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Jump to...",
"settings": "Postavke kategorije",
"edit-category": "Edit Category",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Pozadniska boja",
"text-color": "Boja teksta",
"bg-image-size": "Veličina pozadinske slike",
@@ -109,6 +112,9 @@
"alert.create": "Napravi kategoriju",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.Do you really want to purge this category \"%1\"?
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
", "alert.purge-success": "Kategorija odbačena!", "alert.copy-success": "Postavke kopirane!", diff --git a/public/language/hr/admin/settings/activitypub.json b/public/language/hr/admin/settings/activitypub.json index 1b00672e0f..5ab4fa43e8 100644 --- a/public/language/hr/admin/settings/activitypub.json +++ b/public/language/hr/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/hr/register.json b/public/language/hr/register.json
index 4d52f4ea15..ca8637095b 100644
--- a/public/language/hr/register.json
+++ b/public/language/hr/register.json
@@ -22,7 +22,7 @@
"registration-queue-average-time": "Our average time for approving memberships is %1 hours %2 minutes.",
"registration-queue-auto-approve-time": "Your membership to this forum will be fully activated in up to %1 hours.",
"interstitial.intro": "We'd like some additional information in order to update your account…",
- "interstitial.intro-new": "We'd like some additional information before we can create your account…",
+ "interstitial.intro-new": "Željeli bismo neke dodatne informacije prije nego što možemo kreirati vaš račun…",
"interstitial.errors-found": "Please review the entered information:",
"gdpr-agree-data": "I consent to the collection and processing of my personal information on this website.",
"gdpr-agree-email": "I consent to receive digest and notification emails from this website.",
diff --git a/public/language/hr/user.json b/public/language/hr/user.json
index e5d7875220..f6d5802e04 100644
--- a/public/language/hr/user.json
+++ b/public/language/hr/user.json
@@ -225,10 +225,10 @@
"consent.export-uploads-success": "Exporting uploads, you will get a notification when it is complete.",
"consent.export-posts": "Export Posts (.csv)",
"consent.export-posts-success": "Exporting posts, you will get a notification when it is complete.",
- "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.",
- "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.",
- "emailUpdate.required": "This field is required.",
- "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.",
- "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership.",
- "emailUpdate.pending": "Your email address has not yet been confirmed, but an email has been sent out requesting confirmation. If you wish to invalidate that request and send a new confirmation request, please fill in the form below."
+ "emailUpdate.intro": "Molimo unesite svoju e-adresu u nastavku. Ovaj forum koristi vašu e-adresu za planirane sažetke i obavijesti, kao i za oporavak računa u slučaju izgubljene lozinke.",
+ "emailUpdate.optional": "Ovo polje je opcionalno.. Niste obavezni dati svoju e-adresu, ali bez potvrđene e-pošte nećete moći oporaviti svoj račun niti se prijaviti koristeći e-poštu.",
+ "emailUpdate.required": "Ovo polje je obavezno.",
+ "emailUpdate.change-instructions": "Na unesenu e-adresu biće poslana e-poruka za potvrdu s jedinstvenim linkom. Pristupom tom linku potvrđuje se vaše vlasništvo nad adresom e-pošte i ona će postati aktivna na vašem računu. U bilo kojem trenutku možete ažurirati e-adresu u svojoj evidenciji putem stranice svog računa.",
+ "emailUpdate.password-challenge": "Molimo unesite svoju lozinku kako biste potvrdili vlasništvo nad računom.",
+ "emailUpdate.pending": "Vaša e-adresa još nije potvrđena, ali je poslana e-poruka za potvrdu. Ako želite poništiti taj zahtjev i poslati novi zahtjev za potvrdu, molimo popunite obrazac u nastavku."
}
\ No newline at end of file
diff --git a/public/language/hu/admin/manage/categories.json b/public/language/hu/admin/manage/categories.json
index 865c015202..92b0b26507 100644
--- a/public/language/hu/admin/manage/categories.json
+++ b/public/language/hu/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Jump to...",
"settings": "Kategória beállítások",
"edit-category": "Edit Category",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Háttérszín",
"text-color": "Szövegszín",
"bg-image-size": "Háttérkép mérete",
@@ -109,6 +112,9 @@
"alert.create": "Kategória létrehozása",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.Biztosan szeretnéd teljesen törölni ezt a kategóriát \"%1\"?
Egy kategória teljes törlése eltávolítja a témaköröket és hozzászólásokat, valamint törli a kategóriát az adatbázisból. Amennyiben szeretnél egy kategóriát ideiglenesen törölni, használd a kategória \"kikapcsolása\" funkciót.
", "alert.purge-success": "Kategória törölve!", "alert.copy-success": "Beállítások másolva!", diff --git a/public/language/hu/admin/settings/activitypub.json b/public/language/hu/admin/settings/activitypub.json index 1b00672e0f..5ab4fa43e8 100644 --- a/public/language/hu/admin/settings/activitypub.json +++ b/public/language/hu/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/hy/admin/manage/categories.json b/public/language/hy/admin/manage/categories.json
index 16ea33717d..8a69bcad22 100644
--- a/public/language/hy/admin/manage/categories.json
+++ b/public/language/hy/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Անցնել դեպի․․․",
"settings": "Կատեգորիայի կարգավորումներ",
"edit-category": "Խմբագրել Կատեգորիան",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Ֆոնի գույնը",
"text-color": "Տեքստի գույն ",
"bg-image-size": "Ֆոնային նկարի չափը",
@@ -109,6 +112,9 @@
"alert.create": "Ստեղծել կատեգորիա",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/id/admin/manage/categories.json b/public/language/id/admin/manage/categories.json
index d66dd814a1..38037f7206 100644
--- a/public/language/id/admin/manage/categories.json
+++ b/public/language/id/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Jump to...",
"settings": "Category Settings",
"edit-category": "Edit Category",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -109,6 +112,9 @@
"alert.create": "Create a Category",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.Do you really want to purge this category \"%1\"?
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
", "alert.purge-success": "Category purged!", "alert.copy-success": "Settings Copied!", diff --git a/public/language/id/admin/settings/activitypub.json b/public/language/id/admin/settings/activitypub.json index 1b00672e0f..5ab4fa43e8 100644 --- a/public/language/id/admin/settings/activitypub.json +++ b/public/language/id/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/it/admin/manage/categories.json b/public/language/it/admin/manage/categories.json
index b9ad1c8be3..d88533b81a 100644
--- a/public/language/it/admin/manage/categories.json
+++ b/public/language/it/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Aggiungi categoria locale",
"add-remote-category": "Aggiungi categoria remota",
"remove": "Rimuovi",
+ "rename": "Rinomina",
"jump-to": "Vai a...",
"settings": "Impostazioni Categoria",
"edit-category": "Modifica categoria",
@@ -17,6 +18,8 @@
"federatedDescription": "Descrizione federazione",
"federatedDescription.help": "Questo testo sarà aggiunto alla descrizione della categoria quando interrogato da altri siti web/app.",
"federatedDescription.default": "Questa è una categoria del forum che contiene discussioni di attualità. Puoi iniziare nuove discussioni menzionando questa categoria.",
+ "topic-template": "Modello discussione",
+ "topic-template.help": "Definisci un modello per le nuove discussioni create in questa categoria.",
"bg-color": "Colore sfondo",
"text-color": "Colore testo",
"bg-image-size": "Dimensione dell'immagine di sfondo",
@@ -109,6 +112,9 @@
"alert.create": "Crea una Categoria",
"alert.add": "Aggiungi una categoria",
"alert.add-help": "Le categorie remote possono essere aggiunte all'elenco delle categorie specificando il loro identificatore.Vuoi davvero eliminare definitivamente questa categoria \"%1\"?
Eliminare definitivamente una categoria rimuoverà tutte le discussioni e i post ed eliminerà la categoria dal database. Se vuoi rimuovere una categoria temporaneamente, puoi invece \"disabilitare\" la categoria.",
"alert.purge-success": "Categoria eliminata definitivamente!",
"alert.copy-success": "Impostazioni copiate!",
diff --git a/public/language/it/admin/manage/users.json b/public/language/it/admin/manage/users.json
index 689d129570..9f6a986e84 100644
--- a/public/language/it/admin/manage/users.json
+++ b/public/language/it/admin/manage/users.json
@@ -59,7 +59,7 @@
"users.no-email": "(nessuna email)",
"users.validated": "Convalidato",
"users.not-validated": "Non convalidato",
- "users.validation-pending": "In attesa di convalida",
+ "users.validation-pending": "Validazione in sospeso",
"users.validation-expired": "Convalida scaduta",
"users.ip": "IP",
"users.postcount": "numero di post",
diff --git a/public/language/it/admin/settings/activitypub.json b/public/language/it/admin/settings/activitypub.json
index ed794f82b7..faaf555e92 100644
--- a/public/language/it/admin/settings/activitypub.json
+++ b/public/language/it/admin/settings/activitypub.json
@@ -22,22 +22,23 @@
"rules-intro": "I contenuti scoperti tramite ActivityPub possono essere categorizzati automaticamente in base a determinate regole (ad es. hashtag)",
"rules.modal.title": "Come funziona",
"rules.modal.instructions": "Tutti i contenuti in arrivo sono controllati in base a queste regole di categorizzazione e i contenuti corrispondenti sono automaticamente spostati nella categoria scelta.
N.B. Contenuti già categorizzati (ad es. in una categoria remota) non passerà attraverso queste regole.",
- "rules.modal.values-multiple": "Per abbinare più valori, separa le voci con una virgola (es. uno,due,tre)",
"rules.add": "Aggiungi nuova regola",
+ "rules.help-hashtag": "Le discussioni contenenti questo hashtag senza distinzione tra maiuscole e minuscole corrisponderanno. Non inserire il simbolo #",
+ "rules.help-user": "Le discussioni create dall'utente inserito corrisponderanno. Inserisci un nome utente o un ID completo (ad es. bob@example.org or https://example.org/users/bob.",
"rules.type": "Tipo",
"rules.value": "Valore",
"rules.cid": "Categoria",
- "relays": "Relays",
- "relays.intro": "A relay improves discovery of content to and from your NodeBB. Subscribing to a relay means content received by the relay is forwarded here, and content posted here is syndicated outward by the relay.",
- "relays.warning": "Note: Relays can send larges amounts of traffic in, and may increase storage and processing costs.",
- "relays.litepub": "NodeBB follows the LitePub-style relay standard. The URL you enter here should end with /actor.",
- "relays.add": "Add New Relay",
- "relays.relay": "Relay",
- "relays.state": "State",
- "relays.state-0": "Pending",
- "relays.state-1": "Receiving only",
- "relays.state-2": "Active",
+ "relays": "Relè",
+ "relays.intro": "Un relè migliora la scoperta dei contenuti da e verso il tuo NodeBB. Iscriversi a un relè significa che i contenuti ricevuti dal relè vengono inoltrati qui, e i contenuti pubblicati qui vengono distribuiti all'esterno dal relè.",
+ "relays.warning": "Nota: I relè possono inviare grandi quantità di traffico e potrebbero far aumentare i costi di archiviazione ed elaborazione.",
+ "relays.litepub": "NodeBB segue lo standard del relè in stile LitePub. L'URL inserito deve terminare con /actor.",
+ "relays.add": "Aggiungi nuovo relè",
+ "relays.relay": "Relè",
+ "relays.state": "Stato",
+ "relays.state-0": "In sospeso",
+ "relays.state-1": "Solo ricezione",
+ "relays.state-2": "Attivo",
"server-filtering": "Filtraggio",
"count": "Questo NodeBB è attualmente a conoscenza di %1 server",
diff --git a/public/language/it/error.json b/public/language/it/error.json
index 0fb310b196..1c4a16adf9 100644
--- a/public/language/it/error.json
+++ b/public/language/it/error.json
@@ -9,7 +9,7 @@
"search-requires-login": "La ricerca richiede un account! Si prega di effettuare l'accesso o registrarsi!",
"goback": "Premi indietro per tornare alla pagina precedente",
"invalid-cid": "ID Categoria non valido",
- "invalid-tid": "ID Topic non valido",
+ "invalid-tid": "ID discussione non valido",
"invalid-pid": "ID Post non valido",
"invalid-uid": "ID Utente non valido",
"invalid-mid": "ID messaggio chat non valido",
@@ -145,8 +145,8 @@
"gorup-user-not-invited": "L'utente non è stato invitato a far parte di questo gruppo.",
"post-already-deleted": "Questo post è già stato eliminato",
"post-already-restored": "Questo post è già stato ripristinato",
- "topic-already-deleted": "Questo topic è già stato eliminato",
- "topic-already-restored": "Questo Topic è già stato ripristinato",
+ "topic-already-deleted": "Questa discussione è già stata eliminata",
+ "topic-already-restored": "Questa discussione è già stata ripristinata",
"cant-purge-main-post": "Non puoi eliminare definitivamente il post principale, per favore elimina invece la discussione",
"topic-thumbnails-are-disabled": "Le miniature della Discussione sono disabilitate.",
"invalid-file": "File non valido",
diff --git a/public/language/it/topic.json b/public/language/it/topic.json
index bf3382d63a..35a3644c44 100644
--- a/public/language/it/topic.json
+++ b/public/language/it/topic.json
@@ -16,7 +16,7 @@
"one-reply-to-this-post": "1 Risposta",
"last-reply-time": "Ultima Risposta",
"reply-options": "Opzioni di risposta",
- "reply-as-topic": "Topic risposta",
+ "reply-as-topic": "Risposta alla discussione",
"guest-login-reply": "Effettua l'accesso per rispondere",
"login-to-view": "Accedi per visualizzare",
"edit": "Modifica",
@@ -151,7 +151,7 @@
"x-posts-selected": "%1 post selezionato(i)",
"x-posts-will-be-moved-to-y": "%1 post sarà(anno) spostato(i) in \"%2\"",
"fork-pid-count": "%1 post selezionati",
- "fork-success": "Topic Diviso con successo ! Clicca qui per andare al Topic Diviso.",
+ "fork-success": "Discussione divisa con successo ! Clicca qui per andare alla discussione divisa.",
"delete-posts-instruction": "Clicca sui post che vuoi eliminare/eliminare definitivamente",
"merge-topics-instruction": "Clicca sulle discussioni che vuoi unire o cercare",
"merge-topic-list-title": "Elenco delle discussioni da unire",
@@ -194,7 +194,7 @@
"most-posts": "Più Post",
"most-views": "Più visualizzazioni",
"stale.title": "Preferisci creare una nuova discussione?",
- "stale.warning": "Il topic al quale stai rispondendo è abbastanza vecchio. Vorresti piuttosto creare un nuovo topic in riferimento a questo nella tua risposta?",
+ "stale.warning": "La discussione alla quale stai rispondendo è piuttosto vecchia. Vorresti invece creare una nuova discussione e fare riferimento a questa nella tua risposta?",
"stale.create": "Crea una nuova discussione",
"stale.reply-anyway": "Rispondi comunque a questa discussione",
"link-back": "Re: [%1](%2)",
diff --git a/public/language/ja/admin/manage/categories.json b/public/language/ja/admin/manage/categories.json
index 44252e8c1a..9e2b43ca2a 100644
--- a/public/language/ja/admin/manage/categories.json
+++ b/public/language/ja/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Jump to...",
"settings": "カテゴリ設定",
"edit-category": "Edit Category",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "背景色",
"text-color": "テキストカラー",
"bg-image-size": "背景画像サイズ",
@@ -109,6 +112,9 @@
"alert.create": "カテゴリを作成",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.
Note — The remote category may not reflect all topics published unless at least one local user tracks/watches it.",
+ "alert.rename": "Rename a Remote Category",
+ "alert.rename-help": "Please enter a new name for this category. Leave blank to restore original name.",
+ "alert.confirm-remove": "Do you really want to remove this category? You can add it back at any time.",
"alert.confirm-purge": "
本当にこのカテゴリ \"%1\"を切り離しますか?
カテゴリをパージすると、すべてのスレッドと投稿が削除され、データベースからカテゴリが削除されます。一時的に em>カテゴリを削除する場合は、代わりにカテゴリを無効にすることをおすすめします。
", "alert.purge-success": "カテゴリが切り離されました!", "alert.copy-success": "設定をコピーしました。", diff --git a/public/language/ja/admin/settings/activitypub.json b/public/language/ja/admin/settings/activitypub.json index 1b00672e0f..5ab4fa43e8 100644 --- a/public/language/ja/admin/settings/activitypub.json +++ b/public/language/ja/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/ko/admin/manage/categories.json b/public/language/ko/admin/manage/categories.json
index 2625775110..5d15d42604 100644
--- a/public/language/ko/admin/manage/categories.json
+++ b/public/language/ko/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "이동...",
"settings": "카테고리 설정",
"edit-category": "카테고리 수정",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "배경 색상",
"text-color": "텍스트 색상",
"bg-image-size": "배경 이미지 크기",
@@ -109,6 +112,9 @@
"alert.create": "카테고리 만들기",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.정말로 이 카테고리 \"%1\"를 정리하시겠습니까?
카테고리를 정리하면 모든 토픽과 게시물이 제거되며 데이터베이스에서 카테고리가 삭제됩니다. 카테고리를 일시적으로 제거하려면 카테고리를 대신 \"비활성화\"해야 합니다.
", "alert.purge-success": "카테고리를 정리했습니다!", "alert.copy-success": "설정을 복사했습니다!", diff --git a/public/language/ko/admin/settings/activitypub.json b/public/language/ko/admin/settings/activitypub.json index 1b00672e0f..5ab4fa43e8 100644 --- a/public/language/ko/admin/settings/activitypub.json +++ b/public/language/ko/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/lt/admin/manage/categories.json b/public/language/lt/admin/manage/categories.json
index d66dd814a1..38037f7206 100644
--- a/public/language/lt/admin/manage/categories.json
+++ b/public/language/lt/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Jump to...",
"settings": "Category Settings",
"edit-category": "Edit Category",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -109,6 +112,9 @@
"alert.create": "Create a Category",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.Do you really want to purge this category \"%1\"?
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
", "alert.purge-success": "Category purged!", "alert.copy-success": "Settings Copied!", diff --git a/public/language/lt/admin/settings/activitypub.json b/public/language/lt/admin/settings/activitypub.json index 1b00672e0f..5ab4fa43e8 100644 --- a/public/language/lt/admin/settings/activitypub.json +++ b/public/language/lt/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/lv/admin/manage/categories.json b/public/language/lv/admin/manage/categories.json
index fba8b697ad..5bd9db9d4f 100644
--- a/public/language/lv/admin/manage/categories.json
+++ b/public/language/lv/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Jump to...",
"settings": "Kategorijas iestatījumi",
"edit-category": "Edit Category",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Fona krāsa",
"text-color": "Teksta krāsa",
"bg-image-size": "Fona bildes lielums",
@@ -109,6 +112,9 @@
"alert.create": "Izveidot kategoriju",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.Vai tiešām vēlies iztīrīt šo kategoriju \"%1\"?
Iztukšojot kategoriju, tiks noņemti visi temati un raksti un kategorija tiks izdzēsta no datu bāzes. Ja vēlies īslaicīgi noņemt kategoriju, \"atspējo\" to.
", "alert.purge-success": "Kategorija iztīrīta!", "alert.copy-success": "Iestatījumi kopēti!", diff --git a/public/language/lv/admin/settings/activitypub.json b/public/language/lv/admin/settings/activitypub.json index 1b00672e0f..5ab4fa43e8 100644 --- a/public/language/lv/admin/settings/activitypub.json +++ b/public/language/lv/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/ms/admin/manage/categories.json b/public/language/ms/admin/manage/categories.json
index d66dd814a1..38037f7206 100644
--- a/public/language/ms/admin/manage/categories.json
+++ b/public/language/ms/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Jump to...",
"settings": "Category Settings",
"edit-category": "Edit Category",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -109,6 +112,9 @@
"alert.create": "Create a Category",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.Do you really want to purge this category \"%1\"?
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
", "alert.purge-success": "Category purged!", "alert.copy-success": "Settings Copied!", diff --git a/public/language/ms/admin/settings/activitypub.json b/public/language/ms/admin/settings/activitypub.json index 1b00672e0f..5ab4fa43e8 100644 --- a/public/language/ms/admin/settings/activitypub.json +++ b/public/language/ms/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/nb/admin/manage/categories.json b/public/language/nb/admin/manage/categories.json
index 0cf4511dd6..fb07c084b9 100644
--- a/public/language/nb/admin/manage/categories.json
+++ b/public/language/nb/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Hopp til...",
"settings": "Kategoriinnstillinger",
"edit-category": "Rediger kategori",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Bakgrunnsfarge",
"text-color": "Tekstfarge",
"bg-image-size": "Størrelse på bakgrunnsbilde",
@@ -109,6 +112,9 @@
"alert.create": "Opprett en kategori",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.Vil du virkelig renske kategorien \"%1\"?
Rensking av en kategori vil fjerne alle tråder og innlegg, og slette kategorien fra databasen. Hvis du vil fjerne en kategori midlertidig, vil du \"deaktivere\" kategorien i stedet.
", "alert.purge-success": "Kategori renset!", "alert.copy-success": "Innstillinger kopiert!", diff --git a/public/language/nb/admin/settings/activitypub.json b/public/language/nb/admin/settings/activitypub.json index 2d280b94e5..bab848c368 100644 --- a/public/language/nb/admin/settings/activitypub.json +++ b/public/language/nb/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/nl/admin/manage/categories.json b/public/language/nl/admin/manage/categories.json
index 31db61a5dd..96f61da1a3 100644
--- a/public/language/nl/admin/manage/categories.json
+++ b/public/language/nl/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Jump to...",
"settings": "Category Settings",
"edit-category": "Edit Category",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -109,6 +112,9 @@
"alert.create": "Create a Category",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.Do you really want to purge this category \"%1\"?
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
", "alert.purge-success": "Category purged!", "alert.copy-success": "Settings Copied!", diff --git a/public/language/nl/admin/settings/activitypub.json b/public/language/nl/admin/settings/activitypub.json index 1b00672e0f..5ab4fa43e8 100644 --- a/public/language/nl/admin/settings/activitypub.json +++ b/public/language/nl/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/nn-NO/admin/manage/categories.json b/public/language/nn-NO/admin/manage/categories.json
index 900971a999..7d175abcf3 100644
--- a/public/language/nn-NO/admin/manage/categories.json
+++ b/public/language/nn-NO/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Hopp til",
"settings": "Innstillingar",
"edit-category": "Rediger kategori",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Bakgrunnsfarge",
"text-color": "Tekstfarge",
"bg-image-size": "Storleik på bakgrunnsbilete",
@@ -109,6 +112,9 @@
"alert.create": "Opprett kategori",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/pl/admin/manage/categories.json b/public/language/pl/admin/manage/categories.json
index 80835e8152..ba3cc5a058 100644
--- a/public/language/pl/admin/manage/categories.json
+++ b/public/language/pl/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Dodaj lokalną kategorię",
"add-remote-category": "Dodaj zdalną kategorię",
"remove": "Usuń",
+ "rename": "Przemianuj",
"jump-to": "Skocz do...",
"settings": "Ustawienia kategorii",
"edit-category": "Edytuj kategorię",
@@ -17,6 +18,8 @@
"federatedDescription": "Opis federacji",
"federatedDescription.help": "Ten tekst zostanie użyty dla opisu sekcji widocznej z poziomu innych stron/aplikacji.",
"federatedDescription.default": "Ta sekcja forum zawiera dyskusje tematyczne. Możesz rozpocząć nową dyskusję wzmiankując tę kategorię.",
+ "topic-template": "Szablon wątku",
+ "topic-template.help": "Stwórz szablon dla nowych wątków dodawanych w tej kategorii.",
"bg-color": "Kolor tła",
"text-color": "Kolor tekstu",
"bg-image-size": "Wielkość obrazka tła",
@@ -109,6 +112,9 @@
"alert.create": "Utwórz kategorię",
"alert.add": "Dodaj do kategorii",
"alert.add-help": "Zdalne kategorie mogą zostać przypisane do kategorii po ich wskazaniu.Czy na pewno chcesz wymazać tą kategorię \"%1\"?
Wymazanie kategorii skasuje wszystkie tematy, posty oraz skasuję kategorię z bazy danych. Jeśli chcesz tymczasowousunąć kategorię, będziesz musiał \"wyłączyć\" kategorię.
", "alert.purge-success": "Kategoria wymazana!", "alert.copy-success": "Ustawienie skopiowane!", diff --git a/public/language/pl/admin/settings/activitypub.json b/public/language/pl/admin/settings/activitypub.json index 5ea1cccc2b..3d6712f199 100644 --- a/public/language/pl/admin/settings/activitypub.json +++ b/public/language/pl/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Zawartość odkrywana via ActivePub może być automatycznie przyszeregowana w oparciu m.in o hashtag", "rules.modal.title": "Jak to działa", "rules.modal.instructions": "Wszelka zawartość z zewnątrz jest sprawdzana pod kątem zasad przyszeregowania a zatem z automatu umieszczana we własciwych kategoriach.jeden,dwa,trzy)",
"rules.add": "Dodaj nową regułę",
+ "rules.help-hashtag": "Wątki zawierające hashtag gdzie wielkość liter nie ma znaczenia będą dopasowane. Pomiń symbol # przy wprowadzaniu",
+ "rules.help-user": "Wątki utworzone przez wybranego użytkownika będą dopasowane. Wprowadź zawołanie lub pełne ID (np. bob@example.org lub https://example.org/users/bob.",
"rules.type": "Typ",
"rules.value": "Wartość",
"rules.cid": "Kategoria",
diff --git a/public/language/pt-BR/admin/manage/categories.json b/public/language/pt-BR/admin/manage/categories.json
index c07d5537a5..8f8d3bc66e 100644
--- a/public/language/pt-BR/admin/manage/categories.json
+++ b/public/language/pt-BR/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Jump to...",
"settings": "Configurações de Categorias",
"edit-category": "Edit Category",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Cor de Fundo",
"text-color": "Cor do Texto",
"bg-image-size": "Tamanho da Imagem de Fundo",
@@ -109,6 +112,9 @@
"alert.create": "Criar uma Categoria",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.Você realmente quer purgar esta categoria \"%1\"?
Purgar uma categoria removerá todos os tópicos e posts, e deletará a categoria do banco de dados. Se você quiser remover uma categoria temporariamente, ao invés de fazer isso nós recomendados que você \"desabilite\" a categoria.
", "alert.purge-success": "Categoria purgada!", "alert.copy-success": "Configurações Copiadas!", diff --git a/public/language/pt-BR/admin/settings/activitypub.json b/public/language/pt-BR/admin/settings/activitypub.json index 1b00672e0f..5ab4fa43e8 100644 --- a/public/language/pt-BR/admin/settings/activitypub.json +++ b/public/language/pt-BR/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/pt-PT/admin/manage/categories.json b/public/language/pt-PT/admin/manage/categories.json
index 75d054e475..7ec4c606d0 100644
--- a/public/language/pt-PT/admin/manage/categories.json
+++ b/public/language/pt-PT/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Jump to...",
"settings": "Definições da Categoria",
"edit-category": "Edit Category",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Cor de Fundo",
"text-color": "Cor do Texto",
"bg-image-size": "Tamanho da Imagem de Fundo",
@@ -109,6 +112,9 @@
"alert.create": "Criar uma Categoria",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.Tens a certeza que pretendes eliminar definitivamente esta categoria \"%1\"?
\nEliminar uma categoria irá remover todos os tópicos e publicações e eliminar a categoria da base de dados. Se pretendes remover temporariamente uma categoria, em vez disso podes apenas \"desativar\" essa categoria.
", "alert.purge-success": "Categoria eliminada!", "alert.copy-success": "Definições Copiadas!", diff --git a/public/language/pt-PT/admin/settings/activitypub.json b/public/language/pt-PT/admin/settings/activitypub.json index 1b00672e0f..5ab4fa43e8 100644 --- a/public/language/pt-PT/admin/settings/activitypub.json +++ b/public/language/pt-PT/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/ro/admin/manage/categories.json b/public/language/ro/admin/manage/categories.json
index d66dd814a1..38037f7206 100644
--- a/public/language/ro/admin/manage/categories.json
+++ b/public/language/ro/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Jump to...",
"settings": "Category Settings",
"edit-category": "Edit Category",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -109,6 +112,9 @@
"alert.create": "Create a Category",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.Do you really want to purge this category \"%1\"?
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
", "alert.purge-success": "Category purged!", "alert.copy-success": "Settings Copied!", diff --git a/public/language/ro/admin/settings/activitypub.json b/public/language/ro/admin/settings/activitypub.json index 1b00672e0f..5ab4fa43e8 100644 --- a/public/language/ro/admin/settings/activitypub.json +++ b/public/language/ro/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/ru/admin/manage/categories.json b/public/language/ru/admin/manage/categories.json
index 36843c00a8..145aaebd0d 100644
--- a/public/language/ru/admin/manage/categories.json
+++ b/public/language/ru/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Jump to...",
"settings": "Настройки категории",
"edit-category": "Edit Category",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Цвет фона",
"text-color": "Цвет текста",
"bg-image-size": "Размер фонового изображения",
@@ -109,6 +112,9 @@
"alert.create": "Создать категорию",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.Вы точно хотите очистить категорию «%1»?
Очистка категории удаляет все темы и сообщения, а также саму категорию из базы данных. Если вы хотите удалить категорию временно, вместо очистки вам нужно выбрать \"отключить\" .
", "alert.purge-success": "Категория очищена!", "alert.copy-success": "Настройки скопированы!", diff --git a/public/language/ru/admin/settings/activitypub.json b/public/language/ru/admin/settings/activitypub.json index 55eb27a108..201d4d7a65 100644 --- a/public/language/ru/admin/settings/activitypub.json +++ b/public/language/ru/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/rw/admin/manage/categories.json b/public/language/rw/admin/manage/categories.json
index d66dd814a1..38037f7206 100644
--- a/public/language/rw/admin/manage/categories.json
+++ b/public/language/rw/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Jump to...",
"settings": "Category Settings",
"edit-category": "Edit Category",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -109,6 +112,9 @@
"alert.create": "Create a Category",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.Do you really want to purge this category \"%1\"?
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
", "alert.purge-success": "Category purged!", "alert.copy-success": "Settings Copied!", diff --git a/public/language/rw/admin/settings/activitypub.json b/public/language/rw/admin/settings/activitypub.json index 1b00672e0f..5ab4fa43e8 100644 --- a/public/language/rw/admin/settings/activitypub.json +++ b/public/language/rw/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/sc/admin/manage/categories.json b/public/language/sc/admin/manage/categories.json
index d66dd814a1..38037f7206 100644
--- a/public/language/sc/admin/manage/categories.json
+++ b/public/language/sc/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Jump to...",
"settings": "Category Settings",
"edit-category": "Edit Category",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -109,6 +112,9 @@
"alert.create": "Create a Category",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.Do you really want to purge this category \"%1\"?
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
", "alert.purge-success": "Category purged!", "alert.copy-success": "Settings Copied!", diff --git a/public/language/sc/admin/settings/activitypub.json b/public/language/sc/admin/settings/activitypub.json index 1b00672e0f..5ab4fa43e8 100644 --- a/public/language/sc/admin/settings/activitypub.json +++ b/public/language/sc/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/sk/admin/manage/categories.json b/public/language/sk/admin/manage/categories.json
index 5cd7b32ebe..ead53a4cce 100644
--- a/public/language/sk/admin/manage/categories.json
+++ b/public/language/sk/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Jump to...",
"settings": "Nastavenia kategórie",
"edit-category": "Edit Category",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Farba pozadia",
"text-color": "Farba textu",
"bg-image-size": "Veľkosť obrázku na pozadí",
@@ -109,6 +112,9 @@
"alert.create": "Vytvoriť kategóriu",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.Naozaj chcete vyčistiť túto kategóriu „%1“?
Vyčistenie kategórií odstráni všetky témy a príspevky a odstráni kategórie z databázy. Pokiaľ chcete vyčistiť kategórie dočasne. radšej namiesto toho kategóriu „zakážte“.
", "alert.purge-success": "Kategória bola vyčistená!", "alert.copy-success": "Nastavenia boli skopírované!", diff --git a/public/language/sk/admin/settings/activitypub.json b/public/language/sk/admin/settings/activitypub.json index 1b00672e0f..5ab4fa43e8 100644 --- a/public/language/sk/admin/settings/activitypub.json +++ b/public/language/sk/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/sl/admin/manage/categories.json b/public/language/sl/admin/manage/categories.json
index 129cce0663..d32877156b 100644
--- a/public/language/sl/admin/manage/categories.json
+++ b/public/language/sl/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Jump to...",
"settings": "Nastavitve kategorije",
"edit-category": "Edit Category",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Barva ozadja",
"text-color": "Barva besedila",
"bg-image-size": "Velikost slike ozadja",
@@ -109,6 +112,9 @@
"alert.create": "Ustvari kategorijo",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.Do you really want to purge this category \"%1\"?
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
", "alert.purge-success": "Kategorija je počiščena!", "alert.copy-success": "Nastavitve so kopirane!", diff --git a/public/language/sl/admin/settings/activitypub.json b/public/language/sl/admin/settings/activitypub.json index 1b00672e0f..5ab4fa43e8 100644 --- a/public/language/sl/admin/settings/activitypub.json +++ b/public/language/sl/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/sq-AL/admin/manage/categories.json b/public/language/sq-AL/admin/manage/categories.json
index d66dd814a1..38037f7206 100644
--- a/public/language/sq-AL/admin/manage/categories.json
+++ b/public/language/sq-AL/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Jump to...",
"settings": "Category Settings",
"edit-category": "Edit Category",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -109,6 +112,9 @@
"alert.create": "Create a Category",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.Do you really want to purge this category \"%1\"?
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
", "alert.purge-success": "Category purged!", "alert.copy-success": "Settings Copied!", diff --git a/public/language/sq-AL/admin/settings/activitypub.json b/public/language/sq-AL/admin/settings/activitypub.json index 1b00672e0f..5ab4fa43e8 100644 --- a/public/language/sq-AL/admin/settings/activitypub.json +++ b/public/language/sq-AL/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/sr/admin/manage/categories.json b/public/language/sr/admin/manage/categories.json
index d66dd814a1..38037f7206 100644
--- a/public/language/sr/admin/manage/categories.json
+++ b/public/language/sr/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Jump to...",
"settings": "Category Settings",
"edit-category": "Edit Category",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -109,6 +112,9 @@
"alert.create": "Create a Category",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.Do you really want to purge this category \"%1\"?
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
", "alert.purge-success": "Category purged!", "alert.copy-success": "Settings Copied!", diff --git a/public/language/sr/admin/settings/activitypub.json b/public/language/sr/admin/settings/activitypub.json index 1b00672e0f..5ab4fa43e8 100644 --- a/public/language/sr/admin/settings/activitypub.json +++ b/public/language/sr/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/sv/admin/manage/categories.json b/public/language/sv/admin/manage/categories.json
index e43fb441af..0064d996e3 100644
--- a/public/language/sv/admin/manage/categories.json
+++ b/public/language/sv/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Jump to...",
"settings": "Category Settings",
"edit-category": "Edit Category",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -109,6 +112,9 @@
"alert.create": "Create a Category",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.Do you really want to purge this category \"%1\"?
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
", "alert.purge-success": "Category purged!", "alert.copy-success": "Settings Copied!", diff --git a/public/language/sv/admin/settings/activitypub.json b/public/language/sv/admin/settings/activitypub.json index 1b00672e0f..5ab4fa43e8 100644 --- a/public/language/sv/admin/settings/activitypub.json +++ b/public/language/sv/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/th/admin/manage/categories.json b/public/language/th/admin/manage/categories.json
index fd61be437c..81e8ac0f4a 100644
--- a/public/language/th/admin/manage/categories.json
+++ b/public/language/th/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "ไปที่...",
"settings": "การตั้งค่าหมวดหมู่",
"edit-category": "แก้ไขหมวดหมู่",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "สีพื้น",
"text-color": "สีข้อความ",
"bg-image-size": "ขนาดภาพพื้นหลัง",
@@ -109,6 +112,9 @@
"alert.create": "Create a Category",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.Do you really want to purge this category \"%1\"?
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
", "alert.purge-success": "Category purged!", "alert.copy-success": "Settings Copied!", diff --git a/public/language/th/admin/settings/activitypub.json b/public/language/th/admin/settings/activitypub.json index 1b00672e0f..5ab4fa43e8 100644 --- a/public/language/th/admin/settings/activitypub.json +++ b/public/language/th/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/tr/admin/manage/categories.json b/public/language/tr/admin/manage/categories.json
index af50cc0700..cc0566b075 100644
--- a/public/language/tr/admin/manage/categories.json
+++ b/public/language/tr/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Jump to...",
"settings": "Kategori Ayarları",
"edit-category": "Edit Category",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Arkaplan Rengi",
"text-color": "Yazı Rengi",
"bg-image-size": "Arkaplan Görseli Boyutu",
@@ -109,6 +112,9 @@
"alert.create": "Bir Kategori Yarat",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.\"% 1\" kategorisini gerçekten temizlemek istiyor musunuz?
Bir kategoriyi temizlemek, tüm başlıkları ve iletileri kaldıracak ve kategoriyi veritabanından silecektir. Bir kategoriyi geçici olarak kaldırmak isterseniz, kategoriyi \"devre dışı\" bırakmanız yeterlidir.
", "alert.purge-success": "Kategori temizlendi!", "alert.copy-success": "Ayarlar Kopyalandı!", diff --git a/public/language/tr/admin/settings/activitypub.json b/public/language/tr/admin/settings/activitypub.json index 1b00672e0f..5ab4fa43e8 100644 --- a/public/language/tr/admin/settings/activitypub.json +++ b/public/language/tr/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/uk/admin/manage/categories.json b/public/language/uk/admin/manage/categories.json
index 0d2dc60d0a..2903206195 100644
--- a/public/language/uk/admin/manage/categories.json
+++ b/public/language/uk/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Jump to...",
"settings": "Налаштування категорій",
"edit-category": "Edit Category",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Колір фону",
"text-color": "Колір тексту",
"bg-image-size": "Розмір фонового зображення",
@@ -109,6 +112,9 @@
"alert.create": "Створити категорію",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.Ви впевнені, що бажаєте стерти категорію \"%1\"?
Стирання категорії видалить всі теми та пости і видалить категорію з бази данних. Якщо ви хотіли тимчасово видалити категорію, вам, натомість, варто її просто \"вимкнути\".
", "alert.purge-success": "Категорію стерто!", "alert.copy-success": "Налаштування скопійовано!", diff --git a/public/language/uk/admin/settings/activitypub.json b/public/language/uk/admin/settings/activitypub.json index 1b00672e0f..5ab4fa43e8 100644 --- a/public/language/uk/admin/settings/activitypub.json +++ b/public/language/uk/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/ur/admin/manage/categories.json b/public/language/ur/admin/manage/categories.json
index d050877aa2..e183820111 100644
--- a/public/language/ur/admin/manage/categories.json
+++ b/public/language/ur/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "پر جائیں…",
"settings": "زمرہ کی ترتیبات",
"edit-category": "زمرہ ترمیم کریں",
@@ -17,6 +18,8 @@
"federatedDescription": "فیڈریٹڈ تفصیل",
"federatedDescription.help": "یہ متن زمرہ کی تفصیل میں شامل کیا جائے گا جب دیگر ویب سائٹس اور ایپلی کیشنز اس کے بارے میں معلومات طلب کریں گی۔",
"federatedDescription.default": "یہ فورم میں ایک زمرہ ہے جس میں موضوعاتی بحثیں شامل ہیں۔ آپ اس فورم کا ذکر کرکے ایک نئی بحث شروع کر سکتے ہیں۔",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "پس منظر کا رنگ",
"text-color": "متن کا رنگ",
"bg-image-size": "پس منظر تصویر کا سائز",
@@ -109,6 +112,9 @@
"alert.create": "زمرہ بنائیں",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.کیا آپ واقعی زمرہ '%1' کو حذف کرنا چاہتے ہیں؟
زمرہ حذف کرنے سے تمام موضوعات اور پوسٹس ہٹ جائیں گی، اور زمرہ ڈیٹا بیس سے حذف ہو جائے گا۔ اگر آپ زمرہ کو عارضی طور پر ہٹانا چاہتے ہیں، تو آپ اسے صرف 'غیر فعال' کر سکتے ہیں۔
", "alert.purge-success": "زمرہ حذف ہو گیا!", "alert.copy-success": "ترتیبات نقل ہو گئیں!", diff --git a/public/language/ur/admin/settings/activitypub.json b/public/language/ur/admin/settings/activitypub.json index 537f7354eb..9f2b98f72a 100644 --- a/public/language/ur/admin/settings/activitypub.json +++ b/public/language/ur/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/language/vi/admin/manage/categories.json b/public/language/vi/admin/manage/categories.json
index 45f3d12d89..d5775e1fe0 100644
--- a/public/language/vi/admin/manage/categories.json
+++ b/public/language/vi/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Thêm danh mục Cục Bộ",
"add-remote-category": "Thêm danh mục Từ Xa",
"remove": "Xóa",
+ "rename": "Đổi tên",
"jump-to": "Chuyển tới...",
"settings": "Cài Đặt Chuyên Mục",
"edit-category": "Sửa Danh Mục",
@@ -17,6 +18,8 @@
"federatedDescription": "Mô Tả Liên Kết",
"federatedDescription.help": "Văn bản này sẽ được thêm vào mô tả danh mục khi được truy vấn bởi các trang web/ứng dụng khác.",
"federatedDescription.default": "Đây là một danh mục diễn đàn có chứa thảo luận tại chỗ. Bạn có thể bắt đầu các cuộc thảo luận mới bằng cách đề cập đến thể loại này.",
+ "topic-template": "Mẫu Chủ Đề",
+ "topic-template.help": "Xác định mẫu cho các chủ đề mới được tạo trong danh mục này.",
"bg-color": "Màu Nền",
"text-color": "Màu Chữ",
"bg-image-size": "Kích Thước Hình Nền",
@@ -109,6 +112,9 @@
"alert.create": "Tạo Chuyên Mục",
"alert.add": "Thêm Danh Mục",
"alert.add-help": "Các danh mục từ xa có thể được thêm vào danh sách danh sách bằng cách chỉ định cách xử lý của chúng.Bạn có chắc muốn loại bỏ danh mục \"%1\" này không?
Xóa danh mục sẽ xóa tất cả các chủ đề và bài đăng, đồng thời xóa danh mục khỏi cơ sở dữ liệu. Nếu bạn muốn xóa một danh mụctạm thời, thay vào đó bạn sẽ muốn \"vô hiệu hóa\" danh mục.
", "alert.purge-success": "Đã loại bỏ chuyên mục!", "alert.copy-success": "Đã Sao Chép Cài Đặt!", diff --git a/public/language/vi/admin/settings/activitypub.json b/public/language/vi/admin/settings/activitypub.json index c9e7308bb1..c1a9a54a7e 100644 --- a/public/language/vi/admin/settings/activitypub.json +++ b/public/language/vi/admin/settings/activitypub.json @@ -22,22 +22,23 @@ "rules-intro": "Nội dung được phát hiện thông qua ActivityPub có thể được tự động phân loại dựa trên các quy tắc nhất định (ví dụ: hashtag)", "rules.modal.title": "Cách nó hoạt động", "rules.modal.instructions": "Bất kỳ nội dung đến nào cũng được kiểm tra theo các quy tắc phân loại này và nội dung phù hợp được tự động chuyển sang danh mục lựa chọn.một,hai,ba)",
"rules.add": "Thêm Quy Tắc Mới",
+ "rules.help-hashtag": "Các chủ đề có chứa hashtag không phân biệt chữ hoa chữ thường này sẽ khớp. Không nhập ký tự #",
+ "rules.help-user": "Các chủ đề do người dùng đã nhập đã tạo sẽ khớp. Nhập tên người dùng hoặc ID đầy đủ (vd: bob@example.org hoặc https://example.org/users/bob.",
"rules.type": "Loại",
"rules.value": "Giá trị",
"rules.cid": "Danh mục",
- "relays": "Relays",
- "relays.intro": "A relay improves discovery of content to and from your NodeBB. Subscribing to a relay means content received by the relay is forwarded here, and content posted here is syndicated outward by the relay.",
- "relays.warning": "Note: Relays can send larges amounts of traffic in, and may increase storage and processing costs.",
- "relays.litepub": "NodeBB follows the LitePub-style relay standard. The URL you enter here should end with /actor.",
- "relays.add": "Add New Relay",
- "relays.relay": "Relay",
- "relays.state": "State",
- "relays.state-0": "Pending",
- "relays.state-1": "Receiving only",
- "relays.state-2": "Active",
+ "relays": "Chuyển tiếp",
+ "relays.intro": "Một chuyển tiếp cải thiện khám phá nội dung đến và từ nodeBB của bạn. Đăng ký một chuyển tiếp có nghĩa là nội dung nhận được bởi chuyển tiếp được chuyển tiếp ở đây và nội dung được đăng ở đây được cung cấp bên ngoài bởi chuyển tiếp.",
+ "relays.warning": "Lưu ý: Chuyển tiếp có thể gửi lượng lưu lượng truy cập lớn và có thể tăng gánh nặng lưu trữ và xử lý.",
+ "relays.litepub": "NodeBB tuân theo tiêu chuẩn chuyển tiếp kiểu LitePub. URL bạn nhập ở đây sẽ kết thúc với /actor.",
+ "relays.add": "Thêm Chuyển Tiếp Mới",
+ "relays.relay": "Chuyển tiếp",
+ "relays.state": "Trạng thái",
+ "relays.state-0": "Đang đợi",
+ "relays.state-1": "Chỉ nhận",
+ "relays.state-2": "Kích hoạt",
"server-filtering": "Lọc",
"count": "NodeBB này hiện đã biết về %1 máy chủ",
diff --git a/public/language/zh-CN/admin/manage/categories.json b/public/language/zh-CN/admin/manage/categories.json
index 52302c243e..07c53a18aa 100644
--- a/public/language/zh-CN/admin/manage/categories.json
+++ b/public/language/zh-CN/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "添加本地版块",
"add-remote-category": "添加远程版块",
"remove": "移除",
+ "rename": "Rename",
"jump-to": "跳转…",
"settings": "版块设置",
"edit-category": "编辑版块",
@@ -17,6 +18,8 @@
"federatedDescription": "“联邦化”说明",
"federatedDescription.help": "当其他网站/应用程序查询时,该文本将附加到版块描述中。",
"federatedDescription.default": "这是一个包含专题讨论的论坛版块。您可以通过提及该版块开始新的讨论。",
+ "topic-template": "主题模板",
+ "topic-template.help": "为本版块下新建的主题定义模板。",
"bg-color": "背景颜色",
"text-color": "图标颜色",
"bg-image-size": "背景图片大小",
@@ -109,6 +112,9 @@
"alert.create": "创建一个版块",
"alert.add": "添加一个版块",
"alert.add-help": "可以通过指定其句柄将远程版块添加到版块列表中。您确定要清除此版块“%1”吗?
清除版块将删除所有主题和帖子,并从数据库中删除版块。 如果您想暂时移除版块,请使用停用版块。
", "alert.purge-success": "版块已删除!", "alert.copy-success": "设置已复制!", diff --git a/public/language/zh-CN/admin/settings/activitypub.json b/public/language/zh-CN/admin/settings/activitypub.json index 39de463e70..5a0ef40eca 100644 --- a/public/language/zh-CN/admin/settings/activitypub.json +++ b/public/language/zh-CN/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "通过 ActivityPub 发现的内容可根据特定规则(如标签)进行自动分类。", "rules.modal.title": "它的工作原理", "rules.modal.instructions": "所有传入的内容都会根据这些分类规则进行检查,符合规则的内容会自动移动到指定的版块目录中。一,二,三)",
"rules.add": "添加规则",
+ "rules.help-hashtag": "包含此不区分大小写的标签的主题将匹配。请勿输入 # 符号。",
+ "rules.help-user": "由输入用户创建的主题将匹配。请输入用户名或完整ID(例如:bob@example.org 或 https://example.org/users/bob.",
"rules.type": "类型",
"rules.value": "值",
"rules.cid": "版块",
diff --git a/public/language/zh-TW/admin/manage/categories.json b/public/language/zh-TW/admin/manage/categories.json
index 4da07dc01c..844fc6153a 100644
--- a/public/language/zh-TW/admin/manage/categories.json
+++ b/public/language/zh-TW/admin/manage/categories.json
@@ -4,6 +4,7 @@
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
+ "rename": "Rename",
"jump-to": "Jump to...",
"settings": "版面設定",
"edit-category": "Edit Category",
@@ -17,6 +18,8 @@
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "背景顏色",
"text-color": "圖示顏色",
"bg-image-size": "背景圖片大小",
@@ -109,6 +112,9 @@
"alert.create": "建立一個版面",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.您確定要清除 “%1” 版面嗎?
清除版塊將刪除所有主題和帖子,並從數據庫中刪除版塊。 如果您想暫時移除版塊,請使用停用版塊。
", "alert.purge-success": "版面已刪除!", "alert.copy-success": "設定已複製!", diff --git a/public/language/zh-TW/admin/settings/activitypub.json b/public/language/zh-TW/admin/settings/activitypub.json index 6fdf6c0602..dd07276f94 100644 --- a/public/language/zh-TW/admin/settings/activitypub.json +++ b/public/language/zh-TW/admin/settings/activitypub.json @@ -22,8 +22,9 @@ "rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)", "rules.modal.title": "How it works", "rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.one,two,three)",
"rules.add": "Add New Rule",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
diff --git a/public/openapi/read/admin/manage/categories.yaml b/public/openapi/read/admin/manage/categories.yaml
index bbf8efb8fe..c4c48b7a06 100644
--- a/public/openapi/read/admin/manage/categories.yaml
+++ b/public/openapi/read/admin/manage/categories.yaml
@@ -25,8 +25,14 @@ get:
description: A category identifier
name:
type: string
+ nickname:
+ type: string
+ description: A custom name given to a remote category for de-duplication purposes (not available to local categories.)
description:
type: string
+ descriptionParsed:
+ type: string
+ description: A variable-length description of the category (usually displayed underneath the category name). Unlike `description`, this value here will have been run through any parsers installed on the forum (e.g. Markdown)
disabled:
type: number
icon:
diff --git a/public/openapi/read/ap.yaml b/public/openapi/read/ap.yaml
index 0704cc6dab..89bee103c5 100644
--- a/public/openapi/read/ap.yaml
+++ b/public/openapi/read/ap.yaml
@@ -14,8 +14,8 @@ get:
name: resource
schema:
type: string
- description: A URL to query for potential ActivityPub resource
- example: 'https://example.org/ap'
+ description: A URL-encoded address to query for potential ActivityPub resource
+ example: 'https://try.nodebb.org/uid/1'
responses:
"200":
description: Sent if the `/api` prefix is used. The `X-Redirect` header is sent with the redirection target.
@@ -24,7 +24,7 @@ get:
schema:
type: string
"307":
- description: Redirect the user to the local representation or original URL.
+ description: Redirect the user to the local representation or /outgoing interstitial page for original URL.
headers:
Location:
schema:
diff --git a/public/src/admin/manage/categories.js b/public/src/admin/manage/categories.js
index c50edfc3df..5478beab39 100644
--- a/public/src/admin/manage/categories.js
+++ b/public/src/admin/manage/categories.js
@@ -81,7 +81,21 @@ define('admin/manage/categories', [
});
});
- $('.categories').on('click', 'a[data-action="remove"]', Categories.removeCategory);
+ $('.categories').on('click', 'a[data-action]', function () {
+ const action = this.getAttribute('data-action');
+
+ switch (action) {
+ case 'remove': {
+ Categories.remove.call(this);
+ break;
+ }
+
+ case 'rename': {
+ Categories.rename.call(this);
+ break;
+ }
+ }
+ });
$('#toggle-collapse-all').on('click', function () {
const $this = $(this);
@@ -181,9 +195,24 @@ define('admin/manage/categories', [
});
};
- Categories.removeCategory = function () {
- const cid = this.getAttribute('data-cid');
- api.del(`/api/admin/manage/categories/${encodeURIComponent(cid)}`).then(ajaxify.refresh);
+ Categories.remove = function () {
+ bootbox.confirm('[[admin/manage/categories:alert.confirm-remove]]', (ok) => {
+ if (ok) {
+ const cid = this.getAttribute('data-cid');
+ api.del(`/api/admin/manage/categories/${encodeURIComponent(cid)}`).then(ajaxify.refresh);
+ }
+ });
+ };
+
+ Categories.rename = function () {
+ bootbox.prompt({
+ title: '[[admin/manage/categories:alert.rename]]',
+ message: '[[admin/manage/categories:alert.rename-help]]
', + callback: (name) => { + const cid = this.getAttribute('data-cid'); + api.post(`/api/admin/manage/categories/${encodeURIComponent(cid)}/name`, { name }).then(ajaxify.refresh); + }, + }); }; Categories.create = function (payload) { diff --git a/public/src/admin/settings/activitypub.js b/public/src/admin/settings/activitypub.js index 8c79d95b4b..0da00293de 100644 --- a/public/src/admin/settings/activitypub.js +++ b/public/src/admin/settings/activitypub.js @@ -6,7 +6,8 @@ define('admin/settings/activitypub', [ 'categorySelector', 'api', 'alerts', -], function (Benchpress, bootbox, categorySelector, api, alerts) { + 'translator', +], function (Benchpress, bootbox, categorySelector, api, alerts, translator) { const Module = {}; Module.init = function () { @@ -95,6 +96,21 @@ define('admin/settings/activitypub', [ modal.find('input').focus(); }); + + // help text + const updateHelp = async (key, el) => { + const text = await translator.translate(`[[admin/settings/activitypub:rules.help-${key}]]`); + el.innerHTML = text; + }; + const helpTextEl = modal.get(0).querySelector('#help-text'); + const typeEl = modal.get(0).querySelector('#type'); + updateHelp(modal.get(0).querySelector('#type option').value, helpTextEl); + if (typeEl && helpTextEl) { + typeEl.addEventListener('change', function () { + updateHelp(this.value, helpTextEl); + }); + } + // category switcher categorySelector.init(modal.find('[component="category-selector"]'), { onSelect: function (selectedCategory) { diff --git a/public/src/client/topic/move.js b/public/src/client/topic/move.js index ba4f055e68..df23091357 100644 --- a/public/src/client/topic/move.js +++ b/public/src/client/topic/move.js @@ -2,8 +2,8 @@ define('forum/topic/move', [ - 'categorySelector', 'alerts', 'hooks', -], function (categorySelector, alerts, hooks) { + 'categorySelector', 'alerts', 'hooks', 'api', +], function (categorySelector, alerts, hooks, api) { const Move = {}; let modal; let selectedCategory; @@ -88,15 +88,26 @@ define('forum/topic/move', [ function moveTopics(data) { hooks.fire('action:topic.move', data); - socket.emit(!data.tids ? 'topics.moveAll' : 'topics.move', data, function (err) { - if (err) { - return alerts.error(err); - } + if (data.tids) { + data.tids.forEach((tid) => { + api.put(`/topics/${tid}/move`, { cid: data.cid }).then(() => { + if (typeof data.onComplete === 'function') { + data.onComplete(); + } + }).catch(alerts.error); + }); + } else { + socket.emit('topics.moveAll', data, function (err) { + if (err) { + return alerts.error(err); + } + + if (typeof data.onComplete === 'function') { + data.onComplete(); + } + }); + } - if (typeof data.onComplete === 'function') { - data.onComplete(); - } - }); } function closeMoveModal() { diff --git a/src/activitypub/inbox.js b/src/activitypub/inbox.js index ea5b032a1a..9b5f85db69 100644 --- a/src/activitypub/inbox.js +++ b/src/activitypub/inbox.js @@ -32,11 +32,15 @@ function reject(type, object, target, senderType = 'uid', id = 0) { }).catch(err => winston.error(err.stack)); } +function publiclyAddressed(recipients) { + return activitypub._constants.acceptablePublicAddresses.some(address => recipients.includes(address)); +} + inbox.create = async (req) => { const { object, actor } = req.body; // Alternative logic for non-public objects - const isPublic = [...(object.to || []), ...(object.cc || [])].includes(activitypub._constants.publicAddress); + const isPublic = publiclyAddressed([...(object.to || []), ...(object.cc || [])]); if (!isPublic) { return await activitypub.notes.assertPrivate(object); } @@ -76,7 +80,7 @@ inbox.add = async (req) => { inbox.update = async (req) => { const { actor, object } = req.body; - const isPublic = [...(object.to || []), ...(object.cc || [])].includes(activitypub._constants.publicAddress); + const isPublic = publiclyAddressed([...(object.to || []), ...(object.cc || [])]); // Origin checking const actorHostname = new URL(actor).hostname; diff --git a/src/activitypub/index.js b/src/activitypub/index.js index 11f16322e2..5971c69326 100644 --- a/src/activitypub/index.js +++ b/src/activitypub/index.js @@ -38,6 +38,7 @@ const ActivityPub = module.exports; ActivityPub._constants = Object.freeze({ uid: -2, publicAddress: 'https://www.w3.org/ns/activitystreams#Public', + acceptablePublicAddresses: ['https://www.w3.org/ns/activitystreams#Public', 'as:Public', 'Public'], acceptableTypes: [ 'application/activity+json', 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"', @@ -151,7 +152,23 @@ ActivityPub.resolveInboxes = async (ids) => { batch: 500, }); - return Array.from(inboxes); + let inboxArr = Array.from(inboxes); + + // Filter out blocked instances + const blocked = []; + inboxArr = inboxArr.filter((inbox) => { + const { hostname } = new URL(inbox); + const allowed = ActivityPub.instances.isAllowed(hostname); + if (!allowed) { + blocked.push(inbox); + } + return allowed; + }); + if (blocked.length) { + ActivityPub.helpers.log(`[activitypub/resolveInboxes] Not delivering to blocked instances: ${blocked.join(', ')}`); + } + + return inboxArr; }; ActivityPub.getPublicKey = async (type, id) => { @@ -304,6 +321,15 @@ ActivityPub.get = async (type, id, uri, options) => { throw new Error('[[error:activitypub.not-enabled]]'); } + const { hostname } = new URL(uri); + const allowed = ActivityPub.instances.isAllowed(hostname); + if (!allowed) { + ActivityPub.helpers.log(`[activitypub/get] Not retrieving ${uri}, domain is blocked.`); + const e = new Error(`[[error:activitypub.get-failed]]`); + e.code = `ap_get_domain_blocked`; + throw e; + } + options = { cache: true, ...options, @@ -496,7 +522,7 @@ ActivityPub.record = async ({ id, type, actor }) => { await Promise.all([ db.sortedSetAdd(`activities:datetime`, now, id), - db.sortedSetAdd('domains:lastSeen', now, hostname), + ActivityPub.instances.log(hostname), analytics.increment(['activities', `activities:byType:${type}`, `activities:byHost:${hostname}`]), ]); }; @@ -565,42 +591,58 @@ ActivityPub.buildRecipients = async function (object, { pid, uid, cid }) { ActivityPub.checkHeader = async (url, timeout) => { timeout = timeout || meta.config.activitypubProbeTimeout || 2000; - const { response } = await request.head(url, { - timeout, - }); - const { headers } = response; - if (headers && headers.link) { - // Multiple link headers could be combined - const links = headers.link.split(','); - let apLink = false; - links.forEach((link) => { - let parts = link.split(';'); - const url = parts.shift().match(/<(.+)>/)[1]; - if (!url || apLink) { - return; - } - - parts = parts - .map(p => p.trim()) - .reduce((memo, cur) => { - cur = cur.split('='); - if (cur.length < 2) { - cur.push(''); - } - memo[cur[0]] = cur[1].slice(1, -1); - return memo; - }, {}); - - if (parts.rel === 'alternate' && parts.type === 'application/activity+json') { - apLink = url; - } + try { + const { hostname } = new URL(url); + const { response } = await request.head(url, { + timeout, }); + const { headers } = response; - return apLink; + // headers.link = + if (headers && headers.link) { + // Multiple link headers could be combined + const links = headers.link.split(','); + let apLink = false; + + links.forEach((link) => { + let parts = link.split(';'); + const url = parts.shift().match(/<(.+)>/)[1]; + if (!url || apLink) { + return; + } + + parts = parts + .map(p => p.trim()) + .reduce((memo, cur) => { + cur = cur.split('='); + if (cur.length < 2) { + cur.push(''); + } + memo[cur[0]] = cur[1].slice(1, -1); + return memo; + }, {}); + + if (parts.rel === 'alternate' && parts.type === 'application/activity+json') { + apLink = url; + } + }); + + if (apLink) { + const { hostname: compare } = new URL(apLink); + if (hostname !== compare) { + apLink = false; + } + } + + return apLink; + } + + return false; + } catch (e) { + ActivityPub.helpers.log(`[activitypub/checkHeader] Failed on ${url}: ${e.message}`); + return false; } - - return false; }; ActivityPub.probe = async ({ uid, url }) => { diff --git a/src/activitypub/instances.js b/src/activitypub/instances.js index 16765ea553..64502c0998 100644 --- a/src/activitypub/instances.js +++ b/src/activitypub/instances.js @@ -11,7 +11,7 @@ Instances.log = async (domain) => { Instances.getCount = async () => db.sortedSetCard('instances:lastSeen'); -Instances.isAllowed = async (domain) => { +Instances.isAllowed = (domain) => { let { activitypubFilter: type, activitypubFilterList: list } = meta.config; list = new Set(String(list).split('\n')); // eslint-disable-next-line no-bitwise diff --git a/src/activitypub/mocks.js b/src/activitypub/mocks.js index b3c641e0c3..a88fed09dc 100644 --- a/src/activitypub/mocks.js +++ b/src/activitypub/mocks.js @@ -33,6 +33,7 @@ const sanitizeConfig = { allowedTags: sanitize.defaults.allowedTags.concat(['img', 'picture', 'source']), allowedClasses: { '*': [], + 'p': ['quote-inline'], }, allowedAttributes: { a: ['href', 'rel'], @@ -603,7 +604,6 @@ Mocks.notes.public = async (post) => { let inReplyTo = null; let tag = null; let followersUrl; - const isMainPost = post.pid === post.topic.mainPid; let name = null; ({ titleRaw: name } = await topics.getTopicFields(post.tid, ['title'])); @@ -716,7 +716,9 @@ Mocks.notes.public = async (post) => { }); // Special handling for main posts (as:Article w/ as:Note preview) - const noteAttachment = isMainPost ? [...attachment] : null; + const plaintext = posts.sanitizePlaintext(content); + const isArticle = post.pid === post.topic.mainPid && plaintext.length > 500; + const noteAttachment = isArticle ? [...attachment] : null; const [uploads, thumbs] = await Promise.all([ posts.uploads.listWithSizes(post.pid), topics.getTopicField(post.tid, 'thumbs'), @@ -748,7 +750,7 @@ Mocks.notes.public = async (post) => { attachment = normalizeAttachment(attachment); let preview; let summary = null; - if (isMainPost) { + if (isArticle) { preview = { type: 'Note', attributedTo: `${nconf.get('url')}/uid/${post.user.uid}`, @@ -757,17 +759,25 @@ Mocks.notes.public = async (post) => { attachment: normalizeAttachment(noteAttachment), }; - const sentences = tokenizer.sentences(post.content, { sanitize: true }); + const sentences = tokenizer.sentences(post.content, { newline_boundaries: true }); // Append sentences to summary until it contains just under 500 characters of content const limit = 500; + let remaining = limit; summary = sentences.reduce((memo, sentence) => { - const remaining = limit - memo.length; - if (sentence.length < remaining) { + const clean = sanitize(sentence, { + allowedTags: [], + allowedAttributes: {}, + }); + remaining = remaining - clean.length; + if (remaining > 0) { memo += ` ${sentence}`; } return memo; }, ''); + + // Final sanitization to clean up tags + summary = posts.sanitize(summary); } let context = await posts.getPostField(post.pid, 'context'); @@ -790,7 +800,7 @@ Mocks.notes.public = async (post) => { let object = { '@context': 'https://www.w3.org/ns/activitystreams', id, - type: isMainPost ? 'Article' : 'Note', + type: isArticle ? 'Article' : 'Note', to: Array.from(to), cc: Array.from(cc), inReplyTo, diff --git a/src/activitypub/notes.js b/src/activitypub/notes.js index b85d686f1e..c7e7b332c3 100644 --- a/src/activitypub/notes.js +++ b/src/activitypub/notes.js @@ -3,6 +3,7 @@ const winston = require('winston'); const nconf = require('nconf'); const tokenizer = require('sbd'); +const pretty = require('pretty'); const db = require('../database'); const batch = require('../batch'); @@ -19,15 +20,6 @@ const utils = require('../utils'); const activitypub = module.parent.exports; const Notes = module.exports; -async function lock(value) { - const count = await db.incrObjectField('locks', value); - return count <= 1; -} - -async function unlock(value) { - await db.deleteObjectField('locks', value); -} - Notes._normalizeTags = async (tag, cid) => { const systemTags = (meta.config.systemTags || '').split(','); const maxTags = await categories.getCategoryField(cid, 'maxTags'); @@ -64,7 +56,9 @@ Notes.assert = async (uid, input, options = { skipChecks: false }) => { } let id = !activitypub.helpers.isUri(input) ? input.id : input; - const lockStatus = await lock(id); + + let lockStatus = await db.incrObjectField('locks', id); + lockStatus = lockStatus <= 1; if (!lockStatus) { // unable to achieve lock, stop processing. winston.warn(`[activitypub/notes.assert] Unable to acquire lock, skipping processing of ${id}`); return null; @@ -78,7 +72,6 @@ Notes.assert = async (uid, input, options = { skipChecks: false }) => { let chain; let context = await activitypub.contexts.get(uid, id); if (context.tid) { - await unlock(id); const { tid } = context; return { tid, count: 0 }; } else if (context.context) { @@ -99,7 +92,6 @@ Notes.assert = async (uid, input, options = { skipChecks: false }) => { // Can't resolve — give up. if (!chain.length) { - await unlock(id); return null; } @@ -121,7 +113,6 @@ Notes.assert = async (uid, input, options = { skipChecks: false }) => { if (tid && exists.every(Boolean)) { // All cached, return early. activitypub.helpers.log('[notes/assert] No new notes to process.'); - await unlock(id); return { tid, count: 0 }; } @@ -165,7 +156,11 @@ Notes.assert = async (uid, input, options = { skipChecks: false }) => { // mainPid ok to leave as-is if (!title) { - const sentences = tokenizer.sentences(content || sourceContent, { sanitize: true }); + let prettified = pretty(content || sourceContent); + + // Remove any lines that contain quote-post fallbacks + prettified = prettified.split('\n').filter(line => !line.startsWith('{ activitypub.helpers.log(`[activitypub/notes.assert] Not asserting ${id} as it has no relation to existing tracked content.`); } - await unlock(id); return null; } @@ -235,7 +229,6 @@ Notes.assert = async (uid, input, options = { skipChecks: false }) => { unprocessed.shift(); } catch (e) { activitypub.helpers.log(`[activitypub/notes.assert] Could not post topic (${mainPost.pid}): ${e.message}`); - await unlock(id); return null; } @@ -271,16 +264,14 @@ Notes.assert = async (uid, input, options = { skipChecks: false }) => { } } - await Promise.all([ - Notes.syncUserInboxes(tid, uid), - unlock(id), - ]); - + await Notes.syncUserInboxes(tid, uid); return { tid, count }; } catch (e) { - winston.warn(`[activitypub/notes.assert] Could not assert ${id} (${e.message}), releasing lock.`); - await unlock(id); + winston.warn(`[activitypub/notes.assert] Could not assert ${id} (${e.message}).`); return null; + } finally { + winston.verbose(`[activitypub/notes.assert] Releasing lock (${id})`); + await db.deleteObjectField('locks', id); } }; @@ -430,6 +421,13 @@ async function assignCategory(post) { } break; } + + case 'user': { + if (post.uid === value) { + activitypub.helpers.log(`[activitypub] - Rule match: user ${value}; cid: ${target}`); + return target; + } + } } } diff --git a/src/activitypub/rules.js b/src/activitypub/rules.js index 3a9a560552..9b3a002aab 100644 --- a/src/activitypub/rules.js +++ b/src/activitypub/rules.js @@ -3,6 +3,8 @@ const db = require('../database'); const utils = require('../utils'); +const activitypub = require('.'); + const Rules = module.exports; Rules.list = async () => { @@ -19,6 +21,15 @@ Rules.list = async () => { Rules.add = async (type, value, cid) => { const uuid = utils.generateUUID(); + // normalize user rule values into a uid + if (type === 'user' && value.indexOf('@') !== -1) { + const response = await activitypub.actors.assert(value); + if (!response) { + throw new Error('[[error:no-user]]'); + } + value = await db.getObjectField('handle:uid', String(value).toLowerCase()); + } + await Promise.all([ db.setObject(`rid:${uuid}`, { type, value, cid }), db.sortedSetAdd('categorization:rid', Date.now(), uuid), diff --git a/src/categories/data.js b/src/categories/data.js index 97c7e3a0c0..dc4467ffa3 100644 --- a/src/categories/data.js +++ b/src/categories/data.js @@ -117,7 +117,7 @@ function modifyCategory(category, fields) { db.parseIntFields(category, intFields, fields); - const escapeFields = ['name', 'description', 'federatedDescription', 'color', 'bgColor', 'backgroundImage', 'imageClass', 'class', 'link']; + const escapeFields = ['name', 'nickname', 'description', 'federatedDescription', 'color', 'bgColor', 'backgroundImage', 'imageClass', 'class', 'link']; escapeFields.forEach((field) => { if (category.hasOwnProperty(field)) { category[field] = validator.escape(String(category[field] || '')); @@ -139,4 +139,8 @@ function modifyCategory(category, fields) { if (category.description) { category.descriptionParsed = category.descriptionParsed || category.description; } + + if (category.nickname) { + category.name = category.nickname; + } } diff --git a/src/controllers/activitypub/index.js b/src/controllers/activitypub/index.js index 121c8536aa..c64ef9ef57 100644 --- a/src/controllers/activitypub/index.js +++ b/src/controllers/activitypub/index.js @@ -48,6 +48,11 @@ Controller.fetch = async (req, res, next) => { } } + // Force outgoing links page on direct access + if (!res.locals.isAPI) { + url = new URL(`outgoing?url=${encodeURIComponent(url.href)}`, nconf.get('url')); + } + helpers.redirect(res, url.href, false); } catch (e) { if (!url || !url.href) { diff --git a/src/controllers/admin/categories.js b/src/controllers/admin/categories.js index e6bb7aaa41..5e503b1964 100644 --- a/src/controllers/admin/categories.js +++ b/src/controllers/admin/categories.js @@ -65,9 +65,9 @@ categoriesController.getAll = async function (req, res) { } const fields = [ - 'cid', 'name', 'icon', 'parentCid', 'disabled', 'link', + 'cid', 'name', 'nickname', 'icon', 'parentCid', 'disabled', 'link', 'order', 'color', 'bgColor', 'backgroundImage', 'imageClass', - 'subCategoriesPerPage', 'description', + 'subCategoriesPerPage', 'description', 'descriptionParsed', ]; let categoriesData = await categories.getCategoriesFields(cids, fields); ({ categories: categoriesData } = await plugins.hooks.fire('filter:admin.categories.get', { categories: categoriesData, fields: fields })); @@ -213,12 +213,25 @@ categoriesController.addRemote = async function (req, res) { res.sendStatus(200); }; +categoriesController.renameRemote = async (req, res) => { + if (utils.isNumber(req.params.cid)) { + return helpers.formatApiResponse(400, res); + } + + const { name } = req.body; + await categories.setCategoryField(req.params.cid, 'nickname', name); + + res.sendStatus(200); +}; + categoriesController.removeRemote = async function (req, res) { if (utils.isNumber(req.params.cid)) { return helpers.formatApiResponse(400, res); } - await db.sortedSetRemove('cid:0:children', req.params.cid); - cache.del('cid:0:children'); + const parentCid = await categories.getCategoryField(req.params.cid, 'parentCid'); + await db.sortedSetRemove(`cid:${parentCid || 0}:children`, req.params.cid); + cache.del(`cid:${parentCid || 0}:children`); + res.sendStatus(200); }; diff --git a/src/controllers/authentication.js b/src/controllers/authentication.js index fef6f088b6..581f7d931c 100644 --- a/src/controllers/authentication.js +++ b/src/controllers/authentication.js @@ -262,6 +262,8 @@ authenticationController.login = async (req, res, next) => { const username = await user.getUsernameByEmail(req.body.username); if (username !== '[[global:guest]]') { req.body.username = username; + } else { + return errorHandler(req, res, '[[error:invalid-email]]', 400); } } if (isEmailLogin || isUsernameLogin) { @@ -420,6 +422,10 @@ authenticationController.localLogin = async function (req, username, password, n } const userslug = slugify(username); + if (!utils.isUserNameValid(username) || !userslug) { + return next(new Error('[[error:invalid-username]]')); + } + const uid = await user.getUidByUserslug(userslug); try { const [userData, isAdminOrGlobalMod, canLoginIfBanned] = await Promise.all([ diff --git a/src/controllers/helpers.js b/src/controllers/helpers.js index e11692867e..a6ade8c73b 100644 --- a/src/controllers/helpers.js +++ b/src/controllers/helpers.js @@ -448,10 +448,6 @@ helpers.getHomePageRoutes = async function (uid) { }; helpers.formatApiResponse = async (statusCode, res, payload) => { - if (!res.hasOwnProperty('req')) { - console.log('formatApiResponse', statusCode, payload); - } - if (res.req.method === 'HEAD') { return res.sendStatus(statusCode); } diff --git a/src/controllers/topics.js b/src/controllers/topics.js index ae68290729..4cacc31cd9 100644 --- a/src/controllers/topics.js +++ b/src/controllers/topics.js @@ -26,7 +26,7 @@ topicsController.get = async function getTopic(req, res, next) { const tid = req.params.topic_id; if ( (req.params.post_index && !utils.isNumber(req.params.post_index) && req.params.post_index !== 'unread') || - (!utils.isNumber(tid) && !validator.isUUID(tid)) + (!utils.isNumber(tid) && !validator.isUUID(String(tid))) ) { return next(); } diff --git a/src/middleware/activitypub.js b/src/middleware/activitypub.js index 4504f83d44..730b4e78af 100644 --- a/src/middleware/activitypub.js +++ b/src/middleware/activitypub.js @@ -93,12 +93,12 @@ middleware.assertPayload = helpers.try(async function (req, res, next) { // Domain check const { hostname } = new URL(actor); - const allowed = await activitypub.instances.isAllowed(hostname); + const allowed = activitypub.instances.isAllowed(hostname); if (!allowed) { activitypub.helpers.log(`[middleware/activitypub] Blocked incoming activity from ${hostname}.`); return res.sendStatus(403); } - await db.sortedSetAdd('instances:lastSeen', Date.now(), hostname); + activitypub.instances.log(hostname); // Origin checking if (typeof object !== 'string' && object.hasOwnProperty('id')) { diff --git a/src/routes/admin.js b/src/routes/admin.js index 967746b304..5421b4d0ef 100644 --- a/src/routes/admin.js +++ b/src/routes/admin.js @@ -82,6 +82,7 @@ function apiRoutes(router, name, middleware, controllers) { router.get(`/api/${name}/analytics`, middleware.ensureLoggedIn, helpers.tryRoute(controllers.admin.dashboard.getAnalytics)); router.get(`/api/${name}/advanced/cache/dump`, middleware.ensureLoggedIn, helpers.tryRoute(controllers.admin.cache.dump)); router.post(`/api/${name}/manage/categories`, middleware.ensureLoggedIn, helpers.tryRoute(controllers.admin.categories.addRemote)); + router.post(`/api/${name}/manage/categories/:cid/name`, middleware.ensureLoggedIn, helpers.tryRoute(controllers.admin.categories.renameRemote)); router.delete(`/api/${name}/manage/categories/:cid`, middleware.ensureLoggedIn, helpers.tryRoute(controllers.admin.categories.removeRemote)); const multer = require('multer'); diff --git a/src/socket.io/topics/move.js b/src/socket.io/topics/move.js index edda6b2c77..a3fd3a8076 100644 --- a/src/socket.io/topics/move.js +++ b/src/socket.io/topics/move.js @@ -11,7 +11,7 @@ const sockets = require('..'); module.exports = function (SocketTopics) { SocketTopics.move = async function (socket, data) { - sockets.warnDeprecated(socket, 'GET /api/v3/topics/:tid/move'); + sockets.warnDeprecated(socket, 'PUT /api/v3/topics/:tid/move'); if (!data || !Array.isArray(data.tids) || !data.cid) { throw new Error('[[error:invalid-data]]'); diff --git a/src/topics/create.js b/src/topics/create.js index 2f41c822b1..8f347c736a 100644 --- a/src/topics/create.js +++ b/src/topics/create.js @@ -89,11 +89,12 @@ module.exports = function (Topics) { Topics.post = async function (data) { data = await plugins.hooks.fire('filter:topic.post', data); const { uid } = data; + const remoteUid = activitypub.helpers.isUri(uid); const [categoryExists, canCreate, canTag, isAdmin] = await Promise.all([ parseInt(data.cid, 10) > 0 ? categories.exists(data.cid) : true, - privileges.categories.can('topics:create', data.cid, uid), - privileges.categories.can('topics:tag', data.cid, uid), + privileges.categories.can('topics:create', data.cid, remoteUid ? -2 : uid), + privileges.categories.can('topics:tag', data.cid, remoteUid ? -2 : uid), privileges.users.isAdministrator(uid), ]); diff --git a/src/views/admin/partials/activitypub/rules.tpl b/src/views/admin/partials/activitypub/rules.tpl index e321a86744..33273942b5 100644 --- a/src/views/admin/partials/activitypub/rules.tpl +++ b/src/views/admin/partials/activitypub/rules.tpl @@ -8,13 +8,14 @@
[[admin/settings/activitypub:rules.modal.values-multiple]]
+