diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index b751c73b3a..8a3f0df422 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -63,7 +63,7 @@ jobs: - 5432:5432 redis: - image: 'redis:7.4.1' + image: 'redis:7.4.2' # Set health checks to wait until redis has started options: >- --health-cmd "redis-cli ping" diff --git a/.tx/config b/.tx/config index 2aea054ed6..5e9e00f39e 100644 --- a/.tx/config +++ b/.tx/config @@ -1432,6 +1432,59 @@ trans.ms = public/language/ms/admin/settings/advanced.json trans.nl = public/language/nl/admin/settings/advanced.json trans.th = public/language/th/admin/settings/advanced.json +[o:nodebb:p:nodebb:r:admin-settings-activitypub] +file_filter = public/language//admin/settings/activitypub.json +source_file = public/language/en-GB/admin/settings/activitypub.json +source_lang = en_GB +type = KEYVALUEJSON +trans.ko = public/language/ko/admin/settings/activitypub.json +trans.sc = public/language/sc/admin/settings/activitypub.json +trans.ar = public/language/ar/admin/settings/activitypub.json +trans.bn = public/language/bn/admin/settings/activitypub.json +trans.el = public/language/el/admin/settings/activitypub.json +trans.fa_IR = public/language/fa-IR/admin/settings/activitypub.json +trans.fr = public/language/fr/admin/settings/activitypub.json +trans.hy = public/language/hy/admin/settings/activitypub.json +trans.bg = public/language/bg/admin/settings/activitypub.json +trans.lv = public/language/lv/admin/settings/activitypub.json +trans.pt_BR = public/language/pt-BR/admin/settings/activitypub.json +trans.en@pirate = public/language/en-x-pirate/admin/settings/activitypub.json +trans.es = public/language/es/admin/settings/activitypub.json +trans.id = public/language/id/admin/settings/activitypub.json +trans.rw = public/language/rw/admin/settings/activitypub.json +trans.sl = public/language/sl/admin/settings/activitypub.json +trans.it = public/language/it/admin/settings/activitypub.json +trans.nb = public/language/nb/admin/settings/activitypub.json +trans.nn_NO = public/language/nn-NO/admin/settings/activitypub.json +trans.pt_PT = public/language/pt-PT/admin/settings/activitypub.json +trans.sq_AL = public/language/sq-AL/admin/settings/activitypub.json +trans.sr = public/language/sr/admin/settings/activitypub.json +trans.zh_CN = public/language/zh-CN/admin/settings/activitypub.json +trans.zh_TW = public/language/zh-TW/admin/settings/activitypub.json +trans.cs = public/language/cs/admin/settings/activitypub.json +trans.en_US = public/language/en-US/admin/settings/activitypub.json +trans.hr = public/language/hr/admin/settings/activitypub.json +trans.pl = public/language/pl/admin/settings/activitypub.json +trans.ru = public/language/ru/admin/settings/activitypub.json +trans.sv = public/language/sv/admin/settings/activitypub.json +trans.vi = public/language/vi/admin/settings/activitypub.json +trans.de = public/language/de/admin/settings/activitypub.json +trans.et = public/language/et/admin/settings/activitypub.json +trans.fi = public/language/fi/admin/settings/activitypub.json +trans.ro = public/language/ro/admin/settings/activitypub.json +trans.sk = public/language/sk/admin/settings/activitypub.json +trans.uk = public/language/uk/admin/settings/activitypub.json +trans.da = public/language/da/admin/settings/activitypub.json +trans.gl = public/language/gl/admin/settings/activitypub.json +trans.he = public/language/he/admin/settings/activitypub.json +trans.hu = public/language/hu/admin/settings/activitypub.json +trans.ja = public/language/ja/admin/settings/activitypub.json +trans.tr = public/language/tr/admin/settings/activitypub.json +trans.lt = public/language/lt/admin/settings/activitypub.json +trans.ms = public/language/ms/admin/settings/activitypub.json +trans.nl = public/language/nl/admin/settings/activitypub.json +trans.th = public/language/th/admin/settings/activitypub.json + [o:nodebb:p:nodebb:r:admin-settings-api] file_filter = public/language//admin/settings/api.json source_file = public/language/en-GB/admin/settings/api.json diff --git a/docker-compose-pgsql.yml b/docker-compose-pgsql.yml index 9292763b1a..115cb94e37 100644 --- a/docker-compose-pgsql.yml +++ b/docker-compose-pgsql.yml @@ -24,7 +24,7 @@ services: - postgres-data:/var/lib/postgresql/data redis: - image: redis:7.4.1-alpine + image: redis:7.4.2-alpine restart: unless-stopped command: ['redis-server', '--appendonly', 'yes', '--loglevel', 'warning'] # command: ["redis-server", "--save", "60", "1", "--loglevel", "warning"] # uncomment if you want to use snapshotting instead of AOF diff --git a/docker-compose-redis.yml b/docker-compose-redis.yml index b0e650e709..aadc72e198 100644 --- a/docker-compose-redis.yml +++ b/docker-compose-redis.yml @@ -14,7 +14,7 @@ services: - ./install/docker/setup.json:/usr/src/app/setup.json redis: - image: redis:7.4.1-alpine + image: redis:7.4.2-alpine restart: unless-stopped command: ['redis-server', '--appendonly', 'yes', '--loglevel', 'warning'] # command: ["redis-server", "--save", "60", "1", "--loglevel", "warning"] # uncomment if you want to use snapshotting instead of AOF diff --git a/docker-compose.yml b/docker-compose.yml index 709cd69d03..13dfc20d72 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -24,7 +24,7 @@ services: - mongo-data:/data/db - ./install/docker/mongodb-user-init.js:/docker-entrypoint-initdb.d/user-init.js redis: - image: redis:7.4.1-alpine + image: redis:7.4.2-alpine restart: unless-stopped command: ['redis-server', '--appendonly', 'yes', '--loglevel', 'warning'] # command: ['redis-server', '--save', '60', '1', '--loglevel', 'warning'] # uncomment if you want to use snapshotting instead of AOF diff --git a/install/data/defaults.json b/install/data/defaults.json index 085a788ca4..a86fa023e4 100644 --- a/install/data/defaults.json +++ b/install/data/defaults.json @@ -107,11 +107,14 @@ "flags:actionOnReject": "rescind", "notificationType_upvote": "notification", "notificationType_new-topic": "notification", + "notificationType_new-topic-with-tag": "notification", + "notificationType_new-topic-in-category": "notification", "notificationType_new-reply": "notification", "notificationType_post-edit": "notification", "notificationType_follow": "notification", "notificationType_new-chat": "notification", "notificationType_new-group-chat": "notification", + "notificationType_new-public-chat": "none", "notificationType_group-invite": "notification", "notificationType_group-leave": "notification", "notificationType_group-request-membership": "notification", diff --git a/install/package.json b/install/package.json index 2aa65e0089..a172d008fa 100644 --- a/install/package.json +++ b/install/package.json @@ -29,17 +29,17 @@ }, "dependencies": { "@adactive/bootstrap-tagsinput": "0.8.2", - "@fontsource/inter": "5.1.0", - "@fontsource/poppins": "5.1.0", + "@fontsource/inter": "5.1.1", + "@fontsource/poppins": "5.1.1", "@fortawesome/fontawesome-free": "6.7.2", "@isaacs/ttlcache": "1.4.1", "@nodebb/spider-detector": "2.0.3", "@popperjs/core": "2.11.8", - "@resvg/resvg-js": "^2.6.2", + "@resvg/resvg-js": "2.6.2", "@textcomplete/contenteditable": "0.1.13", "@textcomplete/core": "0.1.13", "@textcomplete/textarea": "0.1.13", - "ace-builds": "1.37.0", + "ace-builds": "1.37.4", "archiver": "7.0.1", "async": "3.2.6", "autoprefixer": "10.4.20", @@ -63,16 +63,16 @@ "connect-pg-simple": "10.0.0", "connect-redis": "8.0.1", "cookie-parser": "1.4.7", - "cron": "3.3.1", + "cron": "3.5.0", "cropperjs": "1.6.2", "csrf-sync": "4.0.3", "daemon": "1.1.0", "diff": "7.0.0", - "esbuild": "0.24.0", + "esbuild": "0.24.2", "express": "4.21.2", "express-session": "1.18.1", "express-useragent": "1.0.15", - "fetch-cookie": "3.0.1", + "fetch-cookie": "3.1.0", "file-loader": "6.2.0", "fs-extra": "11.2.0", "graceful-fs": "4.2.11", @@ -98,7 +98,7 @@ "mousetrap": "1.6.5", "multiparty": "4.2.3", "nconf": "0.12.1", - "nodebb-plugin-2factor": "7.5.7", + "nodebb-plugin-2factor": "7.5.8", "nodebb-plugin-composer-default": "10.2.44", "nodebb-plugin-dbsearch": "6.2.5", "nodebb-plugin-emoji": "6.0.1", @@ -106,7 +106,7 @@ "nodebb-plugin-markdown": "13.0.0-pre.10", "nodebb-plugin-mentions": "4.6.10", "nodebb-plugin-spam-be-gone": "2.3.0", - "nodebb-plugin-web-push": "0.7.0", + "nodebb-plugin-web-push": "0.7.2", "nodebb-rewards-essentials": "1.0.0", "nodebb-theme-harmony": "2.0.0-pre.46", "nodebb-theme-lavender": "7.1.17", @@ -120,17 +120,17 @@ "passport-local": "1.0.0", "pg": "8.13.1", "pg-cursor": "2.12.1", - "postcss": "8.4.49", + "postcss": "8.5.1", "postcss-clean": "1.2.0", "progress-webpack-plugin": "1.0.16", "prompt": "1.3.0", - "ioredis": "5.4.1", + "ioredis": "5.4.2", "rimraf": "5.0.10", "rss": "1.2.2", "rtlcss": "4.3.0", - "sanitize-html": "2.13.1", - "sass": "1.83.0", - "satori": "^0.11.1", + "sanitize-html": "2.14.0", + "sass": "1.83.4", + "satori": "0.12.1", "semver": "7.6.3", "serve-favicon": "2.5.0", "sharp": "0.32.6", @@ -146,7 +146,7 @@ "timeago": "1.6.7", "tinycon": "0.6.8", "toobusy-js": "0.5.1", - "tough-cookie": "5.0.0", + "tough-cookie": "5.1.0", "validator": "13.12.0", "webpack": "5.97.1", "webpack-merge": "6.0.1", @@ -160,7 +160,7 @@ "devDependencies": { "@apidevtools/swagger-parser": "10.1.0", "@commitlint/cli": "19.6.1", - "@commitlint/config-angular": "19.6.0", + "@commitlint/config-angular": "19.7.0", "coveralls": "3.1.1", "eslint": "8.57.1", "eslint-config-nodebb": "0.2.1", @@ -168,8 +168,8 @@ "grunt": "1.6.1", "grunt-contrib-watch": "1.1.0", "husky": "8.0.3", - "jsdom": "25.0.1", - "lint-staged": "15.2.11", + "jsdom": "26.0.0", + "lint-staged": "15.3.0", "mocha": "11.0.1", "mocha-lcov-reporter": "1.3.0", "mockdate": "3.0.5", @@ -177,7 +177,7 @@ "smtp-server": "3.13.6" }, "optionalDependencies": { - "sass-embedded": "1.83.0" + "sass-embedded": "1.83.4" }, "resolutions": { "*/jquery": "3.7.1" diff --git a/public/language/ar/admin/manage/categories.json b/public/language/ar/admin/manage/categories.json index ae485deeaa..bf3e003018 100644 --- a/public/language/ar/admin/manage/categories.json +++ b/public/language/ar/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "الصلاحيات", "back-to-categories": "Back to categories", "name": "Category Name", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Category Description", "bg-color": "Background Colour", "text-color": "Text Colour", @@ -37,6 +39,7 @@ "disable": "Disable", "edit": "Edit", "analytics": "Analytics", + "federation": "Federation", "view-category": "View category", "set-order": "Set order", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Figure 3 – Daily topics created in this category", "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Created", "alert.create-success": "Category successfully created!", "alert.none-active": "You have no active categories.", diff --git a/public/language/ar/admin/menu.json b/public/language/ar/admin/menu.json index 845ad3fcbf..7d52bc61d1 100644 --- a/public/language/ar/admin/menu.json +++ b/public/language/ar/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "الكلمات المفتاحية", "settings/notifications": "التنبيهات", "settings/api": "API Access", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Sounds", "settings/social": "Social", "settings/cookies": "Cookies", diff --git a/public/language/ar/admin/settings/activitypub.json b/public/language/ar/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/ar/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/ar/error.json b/public/language/ar/error.json index 1f09f32778..21afc1e453 100644 --- a/public/language/ar/error.json +++ b/public/language/ar/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", "topic-event-unrecognized": "Topic event '%1' unrecognized", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Can't set child as parent category", "cant-set-self-as-parent": "Can't set self as parent category", "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body", @@ -247,5 +248,11 @@ "api.500": "An unexpected error was encountered while attempting to service your request.", "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow", "api.503": "The route you are trying to call is not currently available due to a server configuration", - "api.reauth-required": "The resource you are trying to access requires (re-)authentication." + "api.reauth-required": "The resource you are trying to access requires (re-)authentication.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/ar/flags.json b/public/language/ar/flags.json index 7c8f9a1e0d..97b0f90a47 100644 --- a/public/language/ar/flags.json +++ b/public/language/ar/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Offensive", "modal-reason-other": "Other (specify below)", "modal-reason-custom": "Reason for reporting this content...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Submit Report", "modal-submit-success": "Content has been flagged for moderation.", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 flags updated", "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." diff --git a/public/language/ar/global.json b/public/language/ar/global.json index 68bd2d9e54..da3d4006ca 100644 --- a/public/language/ar/global.json +++ b/public/language/ar/global.json @@ -50,6 +50,7 @@ "header.navigation": "الاستكشاف", "header.manage": "Manage", "header.drafts": "Drafts", + "header.world": "World", "notifications.loading": "تحميل التنبيهات", "chats.loading": "تحميل الدردشات", "drafts.loading": "Loading Drafts", @@ -110,6 +111,7 @@ "dnd": "عدم الإزعاج", "invisible": "مخفي", "offline": "غير متصل", + "remote-user": "This user is from outside of this forum", "email": "عنوان البريد الإلكتروني", "language": "اللغة", "guest": "زائر", diff --git a/public/language/ar/modules.json b/public/language/ar/modules.json index d9e5d89185..1bf14cdc27 100644 --- a/public/language/ar/modules.json +++ b/public/language/ar/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Discard all drafts", "composer.no-drafts": "You have no drafts", "composer.discard-draft-confirm": "Do you want to discard this draft?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "OK", "bootbox.cancel": "إلغاء", "bootbox.confirm": "تأكيد", diff --git a/public/language/ar/notifications.json b/public/language/ar/notifications.json index df92c2b681..f0c20e1188 100644 --- a/public/language/ar/notifications.json +++ b/public/language/ar/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "When a new post is queued", "notificationType-new-post-flag": "When a post is flagged", "notificationType-new-user-flag": "When a user is flagged", - "notificationType-new-reward": "When you earn a new reward" + "notificationType-new-reward": "When you earn a new reward", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/ar/pages.json b/public/language/ar/pages.json index 55d55d2adb..ca34748461 100644 --- a/public/language/ar/pages.json +++ b/public/language/ar/pages.json @@ -36,6 +36,7 @@ "chat": "Chatting with %1", "flags": "Flags", "flag-details": "Flag %1 Details", + "world": "World", "account/edit": "Editing \"%1\"", "account/edit/password": "Editing password of \"%1\"", "account/edit/username": "Editing username of \"%1\"", @@ -62,6 +63,7 @@ "account/blocks": "Blocked users for %1", "account/uploads": "Uploads by %1", "account/sessions": "Login Sessions", + "account/shares": "Topics shared by %1", "confirm": "تم التحقق من عنوان البريد الإلكتروني", "maintenance.text": "%1 is currently undergoing maintenance.
Please come back another time.", "maintenance.messageIntro": "بالإضافة إلى ذلك، قام مدبر النظام بترك هذه الرسالة:", diff --git a/public/language/ar/recent.json b/public/language/ar/recent.json index 08a241b128..2d25a1c5a9 100644 --- a/public/language/ar/recent.json +++ b/public/language/ar/recent.json @@ -7,5 +7,7 @@ "alltime": "دائمًا", "no-recent-topics": "لايوجد مواضيع جديدة", "no-popular-topics": "لا يوجد مواضيع شائعة", - "load-new-posts": "Load new posts" + "load-new-posts": "Load new posts", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/ar/topic.json b/public/language/ar/topic.json index f98ff77996..fffdfd022c 100644 --- a/public/language/ar/topic.json +++ b/public/language/ar/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 restored this topic on %2", "user-moved-topic-from-ago": "%1 moved this topic from %2 %3", "user-moved-topic-from-on": "%1 moved this topic from %2 on %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 queued post for approval %3", "user-queued-post-on": "%1 queued post for approval on %3", "user-referenced-topic-ago": "%1 referenced this topic %3", @@ -135,6 +137,7 @@ "bookmarks": "Bookmarks", "bookmarks.has-no-bookmarks": "You haven't bookmarked any posts yet.", "copy-permalink": "Copy Permalink", + "go-to-original": "View Original Post", "loading-more-posts": "تحميل المزيد من المشاركات", "move-topic": "نقل الموضوع", "move-topics": "نقل المواضيع", @@ -219,5 +222,7 @@ "downvote-post": "Downvote post", "post-tools": "Post tools", "unread-posts-link": "Unread posts link", - "thumb-image": "Topic thumbnail image" + "thumb-image": "Topic thumbnail image", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/ar/user.json b/public/language/ar/user.json index 00b4ab79ee..5334d4c253 100644 --- a/public/language/ar/user.json +++ b/public/language/ar/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "حالة مشاهدة اﻻقسام الافتراضية", "followers": "المتابعون", "following": "يتابع", + "shares": "Shares", "blocks": "الكتل", "blocked-users": "Blocked users", "block-toggle": "تبديل الكتلة", @@ -59,8 +60,10 @@ "chat-with": "متابعة الدردشة مع %1", "new-chat-with": "بدء دردشة جديدة مع %1", "flag-profile": "ضع علامة على الملف الشخصي", + "profile-flagged": "Already flagged", "follow": "تابع", "unfollow": "إلغاء المتابعة", + "cancel-follow": "Cancel follow request", "more": "المزيد", "profile-update-success": "تم تحديث الملف الشخصي بنجاح", "change-picture": "تغيير الصورة", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "هذا المستخدم لم يقم بالتصويت للأسفل لأي مشاركة حتى الآن.", "has-no-controversial-posts": "هذا المستخدم ﻻيمتلك تصويت للأسفل لأي مشاركة حتى الآن.", "has-no-blocks": "أنت لم تحظر اي مستخدم", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "البريد الإلكتروني مخفي", "hidden": "مخفي", "paginate-description": "عرض المواضيع والردود موزعة على صفحات عوضاً عن التمرير اللانهائي.", diff --git a/public/language/ar/world.json b/public/language/ar/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/ar/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/bg/admin/manage/categories.json b/public/language/bg/admin/manage/categories.json index 034169a831..6145188c6c 100644 --- a/public/language/bg/admin/manage/categories.json +++ b/public/language/bg/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Правомощия", "back-to-categories": "Назад към категориите", "name": "Име на категорията", + "handle": "Идентификатор на категорията", + "handle.help": "Идентификаторът на категорията се ползва за представяне на тази категория в други мрежи, подобно на потребителското име. Този идентификатор не трябва да съвпада със съществуващо потребителско име или потребителска група.", "description": "Описание на категорията", "bg-color": "Цвят на фона", "text-color": "Цвят на текста", @@ -37,6 +39,7 @@ "disable": "Изключване", "edit": "Редактиране", "analytics": "Анализи", + "federation": "Федериране", "view-category": "Преглед на категорията", "set-order": "Запазване на реда", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Фигура 3 – Брой теми в тази категория на ден", "analytics.posts-daily": "Фигура 4 – Брой публикации в тази категория на ден", + "federation.title": "Настройки за федерирането на категорията „%1“", + "federation.disabled": "Федерирането е изключено за целия уеб сайт, така че настройките за федерирането на категорията са недостъпни.", + "federation.disabled-cta": "Настройки за федерирането →", + "federation.syncing-header": "Синхронизиране", + "federation.syncing-intro": "Една категория може да следва „група от източници“ чрез протокола ActivityPub. Ако бъде получено съдържание от който и да е източник от посочените по-долу, то ще бъде автоматично добавено в тази категория.", + "federation.syncing-caveat": "Забележка: настройките за синхронизиране тук установяват еднопосочна синхронизация. NodeBB ще се опита да се абонира/следва източника, но обратното не бива да се подразбира.", + "federation.syncing-none": "Тази категория в момента не следва никого.", + "federation.syncing-add": "Синхронизиране с…", + "federation.syncing-actorUri": "Източник", + "federation.syncing-follow": "Следване", + "federation.syncing-unfollow": "Спиране на следването", + "federation.followers": "Отдалечени потребители, които следват тази категория", + "federation.followers-handle": "Идентификатор", + "federation.followers-id": "Ид.", + "federation.followers-none": "Няма последователи.", + "alert.created": "Създадена", "alert.create-success": "Категорията е създадена успешно!", "alert.none-active": "Нямате активни категории.", diff --git a/public/language/bg/admin/menu.json b/public/language/bg/admin/menu.json index 4216318024..acaedca9ce 100644 --- a/public/language/bg/admin/menu.json +++ b/public/language/bg/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Етикети", "settings/notifications": "Известия", "settings/api": "Достъп чрез ППИ", + "settings/activitypub": "Федериране (ActivityPub)", "settings/sounds": "Звуци", "settings/social": "Обществени", "settings/cookies": "Бисквитки", diff --git a/public/language/bg/admin/settings/activitypub.json b/public/language/bg/admin/settings/activitypub.json new file mode 100644 index 0000000000..59c76176bd --- /dev/null +++ b/public/language/bg/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "Какво представлява федерирането?", + "intro-body": "NodeBB може да осъществява връзка с други инсталации на NodeBB, които поддържат това. Това се постига чрез протокол наречен ActivityPub. Ако е включено, NodeBB ще може да осъществява връзка и с други приложения и уеб сайтове, които ползват ActivityPub (например Мастодон, Peertube и т.н.)", + "general": "Общи", + "pruning": "Премахване на съдържанието", + "content-pruning": "Брой дни за съхранение на отдалечено съдържание", + "content-pruning-help": "Имайте предвид, че отдалеченото съдържание, за което е имало някакви действия (отговори или положителни/отрицателни гласове) ще бъде запазено. (0 = изключено)", + "user-pruning": "Брой дни за кеширане на отдалечените потребителски акаунти", + "user-pruning-help": "Отдалечените потребителски акаунти ще бъдат премахнати, само ако не са публикували нищо. Иначе ще бъдат извличани повторно. (0 = изключено)", + "enabled": "Включване на федерирането", + "enabled-help": "Ако е включено, този NodeBB ще може да осъществява връзка с всички клиенти ползващи ActivityPub в цялата федивселена.", + "allowLoopback": "Разрешаване на обработката на локална обратна връзка", + "allowLoopback-help": "Полезно само за дебъгване. Най-добре е това да бъде изключено", + + "probe": "Отваряне в приложението", + "probe-enabled": "Дали да се опитва отваряне на нещата поддържащи ActivityPub в NodeBB", + "probe-enabled-help": "Ако е включено, NodeBB ще проверява всяка външна връзка дали поддържа ActivityPub и ако е така – ще я зарежда направо в NodeBB.", + "probe-timeout": "Време за изчакване на проверката (милисекунди)", + "probe-timeout-help": "(По подразбиране: 2000) Ако проверката не получи отговор в рамките на зададеното време, потребителят ще бъде изпратен директно на адреса на връзката. Задайте по-голямо число, ако уеб сайтовете отговарят по-бавно и искате да им дадете повече време.", + + "server-filtering": "Филтриране", + "count": "Този NodeBB в момента знае за наличието на %1 сървър(а)", + "server.filter-help": "Посочете сървърите, с които не искате Вашият NodeBB да осъществява връзка. Или можете вместо това да посочите конкретни сървъри, с които разрешавате връзката. И двете възможности са налични, но може да изберете само една от тях.", + "server.filter-help-hostname": "Въведете само имената на сървърите по-долу (например example.org), като всеки сървър трябва да е на отделен ред.", + "server.filter-allow-list": "Това да се ползва като списък с разрешените сървъри" +} \ No newline at end of file diff --git a/public/language/bg/error.json b/public/language/bg/error.json index 7fb90666d0..e2e640f541 100644 --- a/public/language/bg/error.json +++ b/public/language/bg/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "Не можете да променяте състоянието на добавката, тъй като то се определя по време на работата ѝ (чрез config.json, променливи на средата или аргументи при изпълнение). Вместо това може да промените конфигурацията.", "theme-not-set-in-configuration": "Когато определяте активните добавки в конфигурацията, промяната на темите изисква да се добави новата тема към активните добавки, преди актуализирането ѝ в ACP", "topic-event-unrecognized": "Събитието „%1“ на темата е неизвестно", + "category.handle-taken": "Идентификаторът на категорията е зает. Моля, изберете друг.", "cant-set-child-as-parent": "Дъщерна категория не може да се зададе като базова такава", "cant-set-self-as-parent": "Категорията не може да се зададе като базова категория на себе си", "api.master-token-no-uid": "Беше получен главен идентификатор без съответстващо поле `_uid` в тялото на заявката", @@ -247,5 +248,11 @@ "api.500": "При обработката на заявката Ви възникна неочаквана грешка.", "api.501": "Пътят, който се опитвате да извикате, все още не съществува. Моля, опитайте отново утре.", "api.503": "Пътят, който се опитвате да извикате, в момента не е достъпен, поради настройките на сървъра.", - "api.reauth-required": "Ресурсът, който се опитвате да достъпите, изисква (повторно) удостоверяване." + "api.reauth-required": "Ресурсът, който се опитвате да достъпите, изисква (повторно) удостоверяване.", + "activitypub.invalid-id": "Входният идентификатор не може да бъде разпознат – може да е неправилен.", + "activitypub.get-failed": "Посоченият материал не може да бъде получен.", + "activitypub.pubKey-not-found": "Публичният ключ не може да бъде разпознат, така че потвърждението на данните не може да бъде извършено.", + "activitypub.origin-mismatch": "Произходът на получения обект не съвпада с произхода на подателя", + "activitypub.actor-mismatch": "Полученото действие се изпълнява от източник, който е различен от очаквания.", + "activitypub.not-implemented": "Заявката беше отказана, тъй като тя или част от нея не се поддържа от сървъра, към който е насочена" } \ No newline at end of file diff --git a/public/language/bg/flags.json b/public/language/bg/flags.json index e643d375dc..b634c8bee2 100644 --- a/public/language/bg/flags.json +++ b/public/language/bg/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Обидно", "modal-reason-other": "Друго (опишете по-долу)", "modal-reason-custom": "Причина за докладването на това съдържание…", + "modal-notify-remote": "Препращане на този доклад към %1", "modal-submit": "Изпращане на доклада", "modal-submit-success": "Съдържанието беше докладвано на модераторите.", + "modal-confirm-rescind": "Анулиране на доклада?", + "bulk-actions": "Групови действия", "bulk-resolve": "Разрешаване на доклад(и)", + "confirm-purge": "Наистина ли искате да изтриете завинаги тези доклади?", + "purge-cancelled": "Изтриването на доклад е отменено", + "bulk-purge": "Изтриване на доклад(и)", "bulk-success": "%1 доклада са обновени", "flagged-timeago": "Докладвано ", "auto-flagged": "[Авт. докладвано] Получени %1 отрицателни гласа." diff --git a/public/language/bg/global.json b/public/language/bg/global.json index 20209c036e..784d3baaf6 100644 --- a/public/language/bg/global.json +++ b/public/language/bg/global.json @@ -50,6 +50,7 @@ "header.navigation": "Навигация", "header.manage": "Управление", "header.drafts": "Чернови", + "header.world": "Свят", "notifications.loading": "Зареждане на известията", "chats.loading": "Зареждане на разговорите", "drafts.loading": "Зареждане на черновите", @@ -110,6 +111,7 @@ "dnd": "Отпочиващ", "invisible": "Невидим", "offline": "Извън линия", + "remote-user": "Този потребител е извън този форум", "email": "Е-поща", "language": "Език", "guest": "Гост", diff --git a/public/language/bg/modules.json b/public/language/bg/modules.json index 7fc556c4d3..ba3da12344 100644 --- a/public/language/bg/modules.json +++ b/public/language/bg/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Изтриване на всички чернови", "composer.no-drafts": "Нямате никакви чернови", "composer.discard-draft-confirm": "Искате ли да изтриете тази чернова?", + "composer.remote-pid-editing": "Редактиране на отдалечена публикация", + "composer.remote-pid-content-immutable": "Съдържанието на отдалечени публикации не може да бъде редактирано. Може да промените само заглавието на темата и етикетите.", "bootbox.ok": "Добре", "bootbox.cancel": "Отказ", "bootbox.confirm": "Потвърждаване", diff --git a/public/language/bg/notifications.json b/public/language/bg/notifications.json index 0659a9e640..864165e0ed 100644 --- a/public/language/bg/notifications.json +++ b/public/language/bg/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "Когато бъде добавена нова публикация в опашката", "notificationType-new-post-flag": "Когато публикация бъде докладвана", "notificationType-new-user-flag": "Когато потребител бъде докладван", - "notificationType-new-reward": "Когато получите нова награда" + "notificationType-new-reward": "Когато получите нова награда", + "activitypub.announce": "%1 сподели Вашата публикация в %2 със своите последователи.", + "activitypub.announce-dual": "%1 и %2 споделиха Вашата публикация в %3 със своите последователи.", + "activitypub.announce-triple": "%1, %2 и %3 споделиха Вашата публикация в %4 със своите последователи.", + "activitypub.announce-multiple": "%1, %2 и %3 други споделиха Вашата публикация в %4 със своите последователи." } \ No newline at end of file diff --git a/public/language/bg/pages.json b/public/language/bg/pages.json index 0bef256aa7..152dabf639 100644 --- a/public/language/bg/pages.json +++ b/public/language/bg/pages.json @@ -36,6 +36,7 @@ "chat": "Разговаря с %1", "flags": "Доклади", "flag-details": "Подробности за доклад %1", + "world": "Свят", "account/edit": "Редактиране на „%1“", "account/edit/password": "Редактиране на паролата на „%1“", "account/edit/username": "Редактиране на потребителското име на „%1“", @@ -62,6 +63,7 @@ "account/blocks": "Блокирани потребители за %1", "account/uploads": "Качвания от %1", "account/sessions": "Сесии на вписване", + "account/shares": "Теми, споделени от %1", "confirm": "Е-пощата е потвърдена", "maintenance.text": "%1 в момента е в профилактика.
Моля, върнете се по-късно.", "maintenance.messageIntro": "В допълнение, администраторът е оставил това съобщение:", diff --git a/public/language/bg/recent.json b/public/language/bg/recent.json index 507aeb5262..bce25ad47e 100644 --- a/public/language/bg/recent.json +++ b/public/language/bg/recent.json @@ -7,5 +7,7 @@ "alltime": "Цялото време", "no-recent-topics": "Няма скорошни теми.", "no-popular-topics": "Няма популярни теми.", - "load-new-posts": "Зареждане на новите публикации" + "load-new-posts": "Зареждане на новите публикации", + "uncategorized.title": "Всички познати теми", + "uncategorized.intro": "Тази страница показва хронологичен списък от всички теми, които този форум е получил.
Гледните точки и мненията в темите по-долу не са филтрирани по никакъв начин и може да не съвпадат с гледните точки и мненията на този уеб сайт." } \ No newline at end of file diff --git a/public/language/bg/topic.json b/public/language/bg/topic.json index d9e1a9edc3..35a1958077 100644 --- a/public/language/bg/topic.json +++ b/public/language/bg/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 възстанови тази тема на %2", "user-moved-topic-from-ago": "%1 премести тази тема от %2 %3", "user-moved-topic-from-on": "%1 премести тази тема от %2 на %3", + "user-shared-topic-ago": "%1 сподели тази тема %2", + "user-shared-topic-on": "%1 сподели тази тема в %2", "user-queued-post-ago": "%1 добави тази публикация в опашката за одобрение %3", "user-queued-post-on": "%1 добави тази публикация в опашката за одобрение на %3", "user-referenced-topic-ago": "%1 направи препратка към тази тема %3", @@ -135,6 +137,7 @@ "bookmarks": "Отметки", "bookmarks.has-no-bookmarks": "Все още не сте си запазвали отметки към никакви публикации.", "copy-permalink": "Копиране на постоянна връзка", + "go-to-original": "Преглед на оригиналната публикация", "loading-more-posts": "Зареждане на още публикации", "move-topic": "Преместване на темата", "move-topics": "Преместване на темите", @@ -219,5 +222,7 @@ "downvote-post": "Отрицателно гласуване за публикацията", "post-tools": "Инструменти за публикациите", "unread-posts-link": "Връзка към непрочетените публикации", - "thumb-image": "Иконка на темата" + "thumb-image": "Иконка на темата", + "announcers": "Споделяния", + "announcers-x": "Споделяния (%1)" } \ No newline at end of file diff --git a/public/language/bg/user.json b/public/language/bg/user.json index e73d0ef67d..e0de8ed3f8 100644 --- a/public/language/bg/user.json +++ b/public/language/bg/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Състояние по подразбиране за наблюдаването на категории", "followers": "Последователи", "following": "Следва", + "shares": "Споделя", "blocks": "Блокира", "blocked-users": "Блокирани потребители", "block-toggle": "Превключване на блокирането", @@ -59,8 +60,10 @@ "chat-with": "Продължаване на разговора с %1", "new-chat-with": "Започване на нов разговор с %1", "flag-profile": "Докладване на профила", + "profile-flagged": "Вече е докладван", "follow": "Следване", "unfollow": "Спиране на следването", + "cancel-follow": "Отмяна на заявката за следване", "more": "Още", "profile-update-success": "Профилът беше обновен успешно!", "change-picture": "Промяна на снимката", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "Този потребител не е гласувал отрицателно досега.", "has-no-controversial-posts": "Този потребител няма публикации с отрицателни гласове засега.", "has-no-blocks": "Не сте блокирали никого.", + "has-no-shares": "Този потребител не е споделил нито една тема.", "email-hidden": "Е-пощата е скрита", "hidden": "скрито", "paginate-description": "Разделяне на темите и публикациите на страници, вместо да се превърта безкрайно", diff --git a/public/language/bg/world.json b/public/language/bg/world.json new file mode 100644 index 0000000000..b3e836a4d2 --- /dev/null +++ b/public/language/bg/world.json @@ -0,0 +1,18 @@ +{ + "name": "Свят", + "popular": "Популярни теми", + "recent": "Всички теми", + "help": "Помощ", + + "help.title": "Каква е тази страница?", + "help.intro": "Добре дошли в своя ъгъл от федивселената.", + "help.fediverse": "„Федивселената“ е мрежа от взаимно свързани приложения и уеб сайтове, които говорят помежду си и чиито потребители могат да се виждат. Този форум е федериран и може да взаимодейства с тази социална мрежа (т.нар. „федивселена“). Тази страница е Вашият ъгъл от федивселената. В него ще виждате само темите създадени или споделени от потребители, които Вие следвате.", + "help.build": "В началото тук може да няма много теми. Това е нормално. Ще започнете да виждате повече съдържание тук, когато започнете да следвате други потребители.", + "help.federating": "По същия начин, ако потребители извън този форум започнат да следват Вас, тогава Вашите публикации ще започнат да се появяват в техните приложения и уеб сайтове.", + "help.next-generation": "Това е новото поколение социална мрежа. Започнете да допринасяте още днес!", + + "onboard.title": "Вашият прозорец към федивселената…", + "onboard.what": "Това е Вашата персонализирана категория съставена само от съдържание извън този форум. Тук се появяват неща от хора, които следвате, както и такива споделени от тях.", + "onboard.why": "Много неща се случват извън този форум, и не всичко отговаря на Вашите интереси. Затова следването на конкретни хора е най-добрият начин да покажете, че искате да виждате повече от тях.", + "onboard.how": "Междувременно можете да използвате бутоните в горната част, за да видите до какво има достъп този форум. Така може да започнете да откривате ново съдържание!" +} \ No newline at end of file diff --git a/public/language/bn/admin/manage/categories.json b/public/language/bn/admin/manage/categories.json index 8a9ff471b0..a5c0253dae 100644 --- a/public/language/bn/admin/manage/categories.json +++ b/public/language/bn/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Privileges", "back-to-categories": "Back to categories", "name": "Category Name", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Category Description", "bg-color": "Background Colour", "text-color": "Text Colour", @@ -37,6 +39,7 @@ "disable": "Disable", "edit": "Edit", "analytics": "Analytics", + "federation": "Federation", "view-category": "View category", "set-order": "Set order", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Figure 3 – Daily topics created in this category", "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Created", "alert.create-success": "Category successfully created!", "alert.none-active": "You have no active categories.", diff --git a/public/language/bn/admin/menu.json b/public/language/bn/admin/menu.json index 6e30be22b3..913c74f475 100644 --- a/public/language/bn/admin/menu.json +++ b/public/language/bn/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Tags", "settings/notifications": "Notifications", "settings/api": "API Access", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Sounds", "settings/social": "Social", "settings/cookies": "Cookies", diff --git a/public/language/bn/admin/settings/activitypub.json b/public/language/bn/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/bn/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/bn/error.json b/public/language/bn/error.json index d6b805a378..6b88283b27 100644 --- a/public/language/bn/error.json +++ b/public/language/bn/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", "topic-event-unrecognized": "Topic event '%1' unrecognized", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Can't set child as parent category", "cant-set-self-as-parent": "Can't set self as parent category", "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body", @@ -247,5 +248,11 @@ "api.500": "An unexpected error was encountered while attempting to service your request.", "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow", "api.503": "The route you are trying to call is not currently available due to a server configuration", - "api.reauth-required": "The resource you are trying to access requires (re-)authentication." + "api.reauth-required": "The resource you are trying to access requires (re-)authentication.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/bn/flags.json b/public/language/bn/flags.json index 0a42e3877f..7985a69f33 100644 --- a/public/language/bn/flags.json +++ b/public/language/bn/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Offensive", "modal-reason-other": "Other (specify below)", "modal-reason-custom": "Reason for reporting this content...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Submit Report", "modal-submit-success": "Content has been flagged for moderation.", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 flags updated", "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." diff --git a/public/language/bn/global.json b/public/language/bn/global.json index 958a07bb1f..3b414f779c 100644 --- a/public/language/bn/global.json +++ b/public/language/bn/global.json @@ -50,6 +50,7 @@ "header.navigation": "Navigation", "header.manage": "Manage", "header.drafts": "Drafts", + "header.world": "World", "notifications.loading": "বিজ্ঞপ্তিগুলি লোড হচ্ছে", "chats.loading": "কথোপকথনগুলি লোড হচ্ছে", "drafts.loading": "Loading Drafts", @@ -110,6 +111,7 @@ "dnd": "Do not disturb", "invisible": "অদৃশ্য", "offline": "অফলাইন", + "remote-user": "This user is from outside of this forum", "email": "ইমেইল", "language": "ভাষা", "guest": "অতিথি", diff --git a/public/language/bn/modules.json b/public/language/bn/modules.json index b9a4c311c8..d010f1ad37 100644 --- a/public/language/bn/modules.json +++ b/public/language/bn/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Discard all drafts", "composer.no-drafts": "You have no drafts", "composer.discard-draft-confirm": "Do you want to discard this draft?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", "bootbox.confirm": "Confirm", diff --git a/public/language/bn/notifications.json b/public/language/bn/notifications.json index fb7ca8696c..6ee1d8b887 100644 --- a/public/language/bn/notifications.json +++ b/public/language/bn/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "When a new post is queued", "notificationType-new-post-flag": "When a post is flagged", "notificationType-new-user-flag": "When a user is flagged", - "notificationType-new-reward": "When you earn a new reward" + "notificationType-new-reward": "When you earn a new reward", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/bn/pages.json b/public/language/bn/pages.json index a3ea7467f9..0b946841df 100644 --- a/public/language/bn/pages.json +++ b/public/language/bn/pages.json @@ -36,6 +36,7 @@ "chat": "Chatting with %1", "flags": "Flags", "flag-details": "Flag %1 Details", + "world": "World", "account/edit": "Editing \"%1\"", "account/edit/password": "Editing password of \"%1\"", "account/edit/username": "Editing username of \"%1\"", @@ -62,6 +63,7 @@ "account/blocks": "Blocked users for %1", "account/uploads": "Uploads by %1", "account/sessions": "Login Sessions", + "account/shares": "Topics shared by %1", "confirm": "Email Confirmed", "maintenance.text": "%1 is currently undergoing maintenance.
Please come back another time.", "maintenance.messageIntro": "Additionally, the administrator has left this message:", diff --git a/public/language/bn/recent.json b/public/language/bn/recent.json index f70b795c7b..50e898f921 100644 --- a/public/language/bn/recent.json +++ b/public/language/bn/recent.json @@ -7,5 +7,7 @@ "alltime": "সবসময়", "no-recent-topics": "কোন সাম্প্রতিক টপিক নেই।", "no-popular-topics": "There are no popular topics.", - "load-new-posts": "Load new posts" + "load-new-posts": "Load new posts", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/bn/topic.json b/public/language/bn/topic.json index a088e4378f..6a89846c81 100644 --- a/public/language/bn/topic.json +++ b/public/language/bn/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 restored this topic on %2", "user-moved-topic-from-ago": "%1 moved this topic from %2 %3", "user-moved-topic-from-on": "%1 moved this topic from %2 on %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 queued post for approval %3", "user-queued-post-on": "%1 queued post for approval on %3", "user-referenced-topic-ago": "%1 referenced this topic %3", @@ -135,6 +137,7 @@ "bookmarks": "Bookmarks", "bookmarks.has-no-bookmarks": "You haven't bookmarked any posts yet.", "copy-permalink": "Copy Permalink", + "go-to-original": "View Original Post", "loading-more-posts": "আরো পোষ্ট লোড করা হচ্ছে", "move-topic": "টপিক সরান", "move-topics": "টপিক সমূহ সরান", @@ -219,5 +222,7 @@ "downvote-post": "Downvote post", "post-tools": "Post tools", "unread-posts-link": "Unread posts link", - "thumb-image": "Topic thumbnail image" + "thumb-image": "Topic thumbnail image", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/bn/user.json b/public/language/bn/user.json index ebc1985e3e..c622b6b8dd 100644 --- a/public/language/bn/user.json +++ b/public/language/bn/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Default category watch state", "followers": "যাদের অনুসরণ করছেন", "following": "যারা আপনাকে অনুসরণ করছে", + "shares": "Shares", "blocks": "Blocks", "blocked-users": "Blocked users", "block-toggle": "Toggle Block", @@ -59,8 +60,10 @@ "chat-with": "Continue chat with %1", "new-chat-with": "Start new chat with %1", "flag-profile": "Flag Profile", + "profile-flagged": "Already flagged", "follow": "অনুসরন করুন", "unfollow": "অনুসরন করা থেকে বিরত থাকুন", + "cancel-follow": "Cancel follow request", "more": "আরো...", "profile-update-success": "প্রোফাইল আপডেট সফল হয়েছে", "change-picture": "ছবি পরিবর্তন", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "This user hasn't downvoted any posts yet.", "has-no-controversial-posts": "This user does not have any downvoted posts yet.", "has-no-blocks": "You have blocked no users.", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "ইমেইল গোপন রাখা হয়েছে", "hidden": "গোপন করা হয়েছে", "paginate-description": "ইনফাইনাইট স্ক্রলের বদলে টপিক ও পোস্টের জন্য পেজিনেশন ব্যাবহার করা হোক", diff --git a/public/language/bn/world.json b/public/language/bn/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/bn/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/cs/admin/manage/categories.json b/public/language/cs/admin/manage/categories.json index 4fa89573c0..3934da2433 100644 --- a/public/language/cs/admin/manage/categories.json +++ b/public/language/cs/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Oprávnění", "back-to-categories": "Back to categories", "name": "Název kategorie", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Popis kategorie", "bg-color": "Barva pozadí", "text-color": "Barva textu", @@ -37,6 +39,7 @@ "disable": "Zakázat", "edit": "Upravit", "analytics": "Analytika", + "federation": "Federation", "view-category": "Zobrazit kategorii", "set-order": "Set order", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Postava 3 – vytvořených témat za den pro tuto kategorii", "analytics.posts-daily": "Postava 4 – vytvořených příspěvků za den pro tuto kategorii", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Vytvořeno", "alert.create-success": "Kategorie byla úspěšně vytvořena.", "alert.none-active": "Nemáte žádné aktivní kategorie.", diff --git a/public/language/cs/admin/menu.json b/public/language/cs/admin/menu.json index d34e12f605..a7adf69e7f 100644 --- a/public/language/cs/admin/menu.json +++ b/public/language/cs/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Značky", "settings/notifications": "Oznámení", "settings/api": "API Access", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Sounds", "settings/social": "Social", "settings/cookies": "Cookies", diff --git a/public/language/cs/admin/settings/activitypub.json b/public/language/cs/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/cs/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/cs/error.json b/public/language/cs/error.json index af1b3feee8..af1bbc15b6 100644 --- a/public/language/cs/error.json +++ b/public/language/cs/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", "topic-event-unrecognized": "Topic event '%1' unrecognized", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Can't set child as parent category", "cant-set-self-as-parent": "Can't set self as parent category", "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body", @@ -247,5 +248,11 @@ "api.500": "An unexpected error was encountered while attempting to service your request.", "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow", "api.503": "The route you are trying to call is not currently available due to a server configuration", - "api.reauth-required": "The resource you are trying to access requires (re-)authentication." + "api.reauth-required": "The resource you are trying to access requires (re-)authentication.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/cs/flags.json b/public/language/cs/flags.json index 3e65c52caf..5defdb2338 100644 --- a/public/language/cs/flags.json +++ b/public/language/cs/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Urážlivé", "modal-reason-other": "Jiné (popište níže)", "modal-reason-custom": "Důvod ohlášení tohoto obsahu…", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Předat hlášení", "modal-submit-success": "Obsah byl označen pro moderaci.", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 flags updated", "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." diff --git a/public/language/cs/global.json b/public/language/cs/global.json index 413520866f..11bef7ec67 100644 --- a/public/language/cs/global.json +++ b/public/language/cs/global.json @@ -50,6 +50,7 @@ "header.navigation": "Navigace", "header.manage": "Manage", "header.drafts": "Drafts", + "header.world": "World", "notifications.loading": "Načítání upozornění", "chats.loading": "Načítání chatů", "drafts.loading": "Loading Drafts", @@ -110,6 +111,7 @@ "dnd": "Nevyrušovat", "invisible": "Neviditelný", "offline": "Offline", + "remote-user": "This user is from outside of this forum", "email": "E-mail", "language": "Jazyk", "guest": "Host", diff --git a/public/language/cs/modules.json b/public/language/cs/modules.json index a0e8d950b0..f8d89bde37 100644 --- a/public/language/cs/modules.json +++ b/public/language/cs/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Discard all drafts", "composer.no-drafts": "You have no drafts", "composer.discard-draft-confirm": "Do you want to discard this draft?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "OK", "bootbox.cancel": "Zrušit", "bootbox.confirm": "Potvrdit", diff --git a/public/language/cs/notifications.json b/public/language/cs/notifications.json index 49c8e9c597..ed3838f865 100644 --- a/public/language/cs/notifications.json +++ b/public/language/cs/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "Bude-li přidán nový příspěvek do fronty", "notificationType-new-post-flag": "Bude-li příspěvek označen", "notificationType-new-user-flag": "Bude-li uživatel označen", - "notificationType-new-reward": "When you earn a new reward" + "notificationType-new-reward": "When you earn a new reward", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/cs/pages.json b/public/language/cs/pages.json index 4150b976b3..bcb7d69cc7 100644 --- a/public/language/cs/pages.json +++ b/public/language/cs/pages.json @@ -36,6 +36,7 @@ "chat": "Konverzace s %1", "flags": "Označení", "flag-details": "Detaily označení %1", + "world": "World", "account/edit": "Úprava \"%1\"", "account/edit/password": "Úprava hesla \"%1\"", "account/edit/username": "Úprava jména uživatele \"%1\"", @@ -62,6 +63,7 @@ "account/blocks": "Zablokovaní uživatelé z %1", "account/uploads": "Nahráno od %1", "account/sessions": "Relace s přihlášením", + "account/shares": "Topics shared by %1", "confirm": "E-mail potvrzen", "maintenance.text": "%1 is currently undergoing maintenance.
Please come back another time.", "maintenance.messageIntro": "Správce zanechal tuto zprávu:", diff --git a/public/language/cs/recent.json b/public/language/cs/recent.json index ab713d0689..4bd5eec576 100644 --- a/public/language/cs/recent.json +++ b/public/language/cs/recent.json @@ -7,5 +7,7 @@ "alltime": "Pořád", "no-recent-topics": "Nebyly nalezeny žádné nové téma.", "no-popular-topics": "Žádná oblíbená téma.", - "load-new-posts": "Load new posts" + "load-new-posts": "Load new posts", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/cs/topic.json b/public/language/cs/topic.json index 23e01916ac..fd5c6a50d5 100644 --- a/public/language/cs/topic.json +++ b/public/language/cs/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 restored this topic on %2", "user-moved-topic-from-ago": "%1 moved this topic from %2 %3", "user-moved-topic-from-on": "%1 moved this topic from %2 on %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 queued post for approval %3", "user-queued-post-on": "%1 queued post for approval on %3", "user-referenced-topic-ago": "%1 referenced this topic %3", @@ -135,6 +137,7 @@ "bookmarks": "Záložky", "bookmarks.has-no-bookmarks": "Ještě jste nezazáložkoval žádný příspěvek.", "copy-permalink": "Copy Permalink", + "go-to-original": "View Original Post", "loading-more-posts": "Načítání více příspěvků", "move-topic": "Přesunout téma", "move-topics": "Přesunout témata", @@ -219,5 +222,7 @@ "downvote-post": "Downvote post", "post-tools": "Post tools", "unread-posts-link": "Unread posts link", - "thumb-image": "Topic thumbnail image" + "thumb-image": "Topic thumbnail image", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/cs/user.json b/public/language/cs/user.json index b2f369282d..ac6c7f6b97 100644 --- a/public/language/cs/user.json +++ b/public/language/cs/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Výchozí stav sledované kategorie", "followers": "Sledují ho", "following": "Sleduje", + "shares": "Shares", "blocks": "Zablokováni", "blocked-users": "Blocked users", "block-toggle": "Přepnout zablokování", @@ -59,8 +60,10 @@ "chat-with": "Pokračovat v konverzaci s %1", "new-chat-with": "Začít novou konverzaci s %1", "flag-profile": "Označit profil", + "profile-flagged": "Already flagged", "follow": "Sledovat", "unfollow": "Nesledovat", + "cancel-follow": "Cancel follow request", "more": "Více", "profile-update-success": "Profil byl úspěšně aktualizován.", "change-picture": "Změnit obrázek", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "Tento uživatel zatím nevyjádřil nesouhlas u žádného příspěvku.", "has-no-controversial-posts": "This user does not have any downvoted posts yet.", "has-no-blocks": "Nezablokoval/a jste žádné uživatele.", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "E-mail je skryt", "hidden": "skrytý", "paginate-description": "Stránkovat témata a příspěvky místo použití nekonečného posunování", diff --git a/public/language/cs/world.json b/public/language/cs/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/cs/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/da/admin/manage/categories.json b/public/language/da/admin/manage/categories.json index 8a9ff471b0..a5c0253dae 100644 --- a/public/language/da/admin/manage/categories.json +++ b/public/language/da/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Privileges", "back-to-categories": "Back to categories", "name": "Category Name", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Category Description", "bg-color": "Background Colour", "text-color": "Text Colour", @@ -37,6 +39,7 @@ "disable": "Disable", "edit": "Edit", "analytics": "Analytics", + "federation": "Federation", "view-category": "View category", "set-order": "Set order", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Figure 3 – Daily topics created in this category", "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Created", "alert.create-success": "Category successfully created!", "alert.none-active": "You have no active categories.", diff --git a/public/language/da/admin/menu.json b/public/language/da/admin/menu.json index 6e30be22b3..913c74f475 100644 --- a/public/language/da/admin/menu.json +++ b/public/language/da/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Tags", "settings/notifications": "Notifications", "settings/api": "API Access", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Sounds", "settings/social": "Social", "settings/cookies": "Cookies", diff --git a/public/language/da/admin/settings/activitypub.json b/public/language/da/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/da/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/da/error.json b/public/language/da/error.json index 7beb2c5f1d..804a272015 100644 --- a/public/language/da/error.json +++ b/public/language/da/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", "topic-event-unrecognized": "Topic event '%1' unrecognized", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Can't set child as parent category", "cant-set-self-as-parent": "Can't set self as parent category", "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body", @@ -247,5 +248,11 @@ "api.500": "An unexpected error was encountered while attempting to service your request.", "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow", "api.503": "The route you are trying to call is not currently available due to a server configuration", - "api.reauth-required": "The resource you are trying to access requires (re-)authentication." + "api.reauth-required": "The resource you are trying to access requires (re-)authentication.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/da/flags.json b/public/language/da/flags.json index 0a42e3877f..7985a69f33 100644 --- a/public/language/da/flags.json +++ b/public/language/da/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Offensive", "modal-reason-other": "Other (specify below)", "modal-reason-custom": "Reason for reporting this content...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Submit Report", "modal-submit-success": "Content has been flagged for moderation.", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 flags updated", "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." diff --git a/public/language/da/global.json b/public/language/da/global.json index f74ed7ed3a..eb9149f90e 100644 --- a/public/language/da/global.json +++ b/public/language/da/global.json @@ -50,6 +50,7 @@ "header.navigation": "Navigation", "header.manage": "Manage", "header.drafts": "Drafts", + "header.world": "World", "notifications.loading": "Indlæser notifikationer", "chats.loading": "Indlæser chats", "drafts.loading": "Loading Drafts", @@ -110,6 +111,7 @@ "dnd": "Vil ikke forstyres", "invisible": "Usynlig", "offline": "Offline", + "remote-user": "This user is from outside of this forum", "email": "Email", "language": "Sprog", "guest": "Gæst", diff --git a/public/language/da/modules.json b/public/language/da/modules.json index 0e034f464c..96db23a714 100644 --- a/public/language/da/modules.json +++ b/public/language/da/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Discard all drafts", "composer.no-drafts": "You have no drafts", "composer.discard-draft-confirm": "Do you want to discard this draft?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "OK", "bootbox.cancel": "Annuller", "bootbox.confirm": "Bekræft", diff --git a/public/language/da/notifications.json b/public/language/da/notifications.json index 71f11432b5..ebede187ba 100644 --- a/public/language/da/notifications.json +++ b/public/language/da/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "When a new post is queued", "notificationType-new-post-flag": "When a post is flagged", "notificationType-new-user-flag": "When a user is flagged", - "notificationType-new-reward": "When you earn a new reward" + "notificationType-new-reward": "When you earn a new reward", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/da/pages.json b/public/language/da/pages.json index c44e173237..b6c2f89571 100644 --- a/public/language/da/pages.json +++ b/public/language/da/pages.json @@ -36,6 +36,7 @@ "chat": "Chatter med %1", "flags": "Flags", "flag-details": "Flag %1 Details", + "world": "World", "account/edit": "Redigere \"%1\"", "account/edit/password": "Redigerer adgangskode for \"%1\"", "account/edit/username": "Redigerer brugernavn for \"%1\"", @@ -62,6 +63,7 @@ "account/blocks": "Blocked users for %1", "account/uploads": "Uploads by %1", "account/sessions": "Login Sessions", + "account/shares": "Topics shared by %1", "confirm": "Email Bekræftet", "maintenance.text": "%1 is currently undergoing maintenance.
Please come back another time.", "maintenance.messageIntro": "Administratoren har yderligere vedlagt denne besked:", diff --git a/public/language/da/recent.json b/public/language/da/recent.json index 4df00c6473..e5f0d50e49 100644 --- a/public/language/da/recent.json +++ b/public/language/da/recent.json @@ -7,5 +7,7 @@ "alltime": "Al tid", "no-recent-topics": "Der er ingen seneste tråde", "no-popular-topics": "Der er ingen populære tråde.", - "load-new-posts": "Load new posts" + "load-new-posts": "Load new posts", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/da/topic.json b/public/language/da/topic.json index dd4b1d49b3..78966ed6b5 100644 --- a/public/language/da/topic.json +++ b/public/language/da/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 restored this topic on %2", "user-moved-topic-from-ago": "%1 moved this topic from %2 %3", "user-moved-topic-from-on": "%1 moved this topic from %2 on %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 queued post for approval %3", "user-queued-post-on": "%1 queued post for approval on %3", "user-referenced-topic-ago": "%1 referenced this topic %3", @@ -135,6 +137,7 @@ "bookmarks": "Bogmærker", "bookmarks.has-no-bookmarks": "Du har ikke bookmarked nogen indlæg.", "copy-permalink": "Copy Permalink", + "go-to-original": "View Original Post", "loading-more-posts": "Indlæser flere indlæg", "move-topic": "Flyt tråd", "move-topics": "Flyt tråde", @@ -219,5 +222,7 @@ "downvote-post": "Downvote post", "post-tools": "Post tools", "unread-posts-link": "Unread posts link", - "thumb-image": "Topic thumbnail image" + "thumb-image": "Topic thumbnail image", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/da/user.json b/public/language/da/user.json index ae6a7b7f7b..3788286140 100644 --- a/public/language/da/user.json +++ b/public/language/da/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Default category watch state", "followers": "Followers", "following": "Følger", + "shares": "Shares", "blocks": "Blocks", "blocked-users": "Blocked users", "block-toggle": "Toggle Block", @@ -59,8 +60,10 @@ "chat-with": "Fortsæt chatte med %1", "new-chat-with": "Start en ny chat med %1", "flag-profile": "Flag Profile", + "profile-flagged": "Already flagged", "follow": "Følg", "unfollow": "Følg ikke", + "cancel-follow": "Cancel follow request", "more": "Mere", "profile-update-success": "Din profil blev opdateret", "change-picture": "Skift billede", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "Denne bruger har ikke, syntes ikke godt om nogle indlæg endnu.", "has-no-controversial-posts": "This user does not have any downvoted posts yet.", "has-no-blocks": "You have blocked no users.", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "Email Skjult", "hidden": "skjult", "paginate-description": "Sideinddel emner og indlæg istedet for uendeligt rul", diff --git a/public/language/da/world.json b/public/language/da/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/da/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/de/admin/manage/categories.json b/public/language/de/admin/manage/categories.json index d914363786..9fa44ed210 100644 --- a/public/language/de/admin/manage/categories.json +++ b/public/language/de/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Berechtigungen", "back-to-categories": "Zurück zu Kategorien", "name": "Kategoriename", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Kategorie-Beschreibung", "bg-color": "Hintergrundfarbe", "text-color": "Textfarbe", @@ -37,6 +39,7 @@ "disable": "Deaktivieren", "edit": "Bearbeiten", "analytics": "Analytik", + "federation": "Federation", "view-category": "Kategorie anzeigen", "set-order": "Reihenfolge festlegen", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Diagramm 3 – Täglich erstellte Themen in dieser Kategorie", "analytics.posts-daily": "Diagramm 4 – Täglich erstellte Beiträge in dieser Kategorie", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Erstellt", "alert.create-success": "Kategorie erfolgreich erstellt!", "alert.none-active": "Du hast keine aktiven Kategorien.", diff --git a/public/language/de/admin/menu.json b/public/language/de/admin/menu.json index 73f9b303aa..778538dcff 100644 --- a/public/language/de/admin/menu.json +++ b/public/language/de/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Tags", "settings/notifications": "Benachrichtigungen", "settings/api": "API-Zugriff", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Sounds", "settings/social": "Social", "settings/cookies": "Cookies", diff --git a/public/language/de/admin/settings/activitypub.json b/public/language/de/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/de/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/de/error.json b/public/language/de/error.json index 95db8ea646..a7e005a3dd 100644 --- a/public/language/de/error.json +++ b/public/language/de/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "Du darfst den Status der Plugins nicht ändern, da sie zur Laufzeit definiert werden (config.json, Umgebungsvariablen oder Terminalargumente). Bitte ändere stattdessen die Konfiguration.", "theme-not-set-in-configuration": "Wenn in der Konfiguration aktive Plugins definiert werden, muss bei einem Themenwechsel das neue Thema zur Liste der aktiven Plugins hinzugefügt werden, bevor es im ACP aktualisiert wird.", "topic-event-unrecognized": "Themenereignis „%1“ nicht erkannt", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Untergeordnete Kategorie kann nicht als übergeordnete Kategorie festgelegt werden", "cant-set-self-as-parent": "Die aktuelle Kategorie kann nicht als übergeordnete Kategorie festgelegt werden", "api.master-token-no-uid": "Ein Master-Token wurde ohne eine entsprechende `_uid` im Anfrage-Body empfangen", @@ -247,5 +248,11 @@ "api.500": "Beim Versuch, Ihre Anfrage zu bearbeiten, ist ein unerwarteter Fehler aufgetreten.", "api.501": "Die Route, die Sie anrufen möchten, ist noch nicht implementiert. Bitte versuchen Sie es morgen erneut", "api.503": "Die Route, die Sie anrufen möchten, ist derzeit aufgrund einer Serverkonfiguration nicht verfügbar", - "api.reauth-required": "Die angeforderte Ressource erfordert eine (Re-)Authentifizierung." + "api.reauth-required": "Die angeforderte Ressource erfordert eine (Re-)Authentifizierung.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/de/flags.json b/public/language/de/flags.json index 339df24292..f158d09604 100644 --- a/public/language/de/flags.json +++ b/public/language/de/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Beleidigend", "modal-reason-other": "Anderer (unten Angegeben)", "modal-reason-custom": "Grund für die Meldung dieses Inhalts...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Meldung abschicken", "modal-submit-success": "Der Inhalt wurde gemeldet.", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Massenaktionen", "bulk-resolve": "Meldung(en) bereiningen", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 Meldungen aktualisiert", "flagged-timeago": "Flagged ", "auto-flagged": "[Automatisch gemeldet] %1 Abwertungen erhalten." diff --git a/public/language/de/global.json b/public/language/de/global.json index 6264060da9..33ebea5759 100644 --- a/public/language/de/global.json +++ b/public/language/de/global.json @@ -50,6 +50,7 @@ "header.navigation": "Navigation", "header.manage": "Verwalten", "header.drafts": "Entwürfe", + "header.world": "World", "notifications.loading": "Benachrichtigungen werden geladen", "chats.loading": "Nachrichten werden geladen", "drafts.loading": "Entwürfe werden geladen", @@ -110,6 +111,7 @@ "dnd": "Nicht stören", "invisible": "Unsichtbar", "offline": "Offline", + "remote-user": "This user is from outside of this forum", "email": "E-Mail", "language": "Sprache", "guest": "Gast", diff --git a/public/language/de/modules.json b/public/language/de/modules.json index 785a9b616e..5edc6169e8 100644 --- a/public/language/de/modules.json +++ b/public/language/de/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Alle Entwürfe verwerfen", "composer.no-drafts": "Keine Entwürfe vorhanden", "composer.discard-draft-confirm": "Möchtest Du diesen Entwurf verwerfen?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "OK", "bootbox.cancel": "Abbrechen", "bootbox.confirm": "Bestätigen", diff --git a/public/language/de/notifications.json b/public/language/de/notifications.json index 983cfc0f9d..47b5cc6e0d 100644 --- a/public/language/de/notifications.json +++ b/public/language/de/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "Wenn ein neuer Beitrag eingereiht wird", "notificationType-new-post-flag": "Wenn ein Beitrag gemeldet wird", "notificationType-new-user-flag": "Wenn ein Benutzer gemeldet wird", - "notificationType-new-reward": "Wenn du eine neue Auszeichnung erhältst" + "notificationType-new-reward": "Wenn du eine neue Auszeichnung erhältst", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/de/pages.json b/public/language/de/pages.json index 5b0b4eb818..efe3397bc5 100644 --- a/public/language/de/pages.json +++ b/public/language/de/pages.json @@ -36,6 +36,7 @@ "chat": "Chatte mit %1", "flags": "Meldungen", "flag-details": "%1 Details melden", + "world": "World", "account/edit": "Bearbeite %1", "account/edit/password": "Bearbeite Passwort von \"%1\"", "account/edit/username": "Bearbeite Benutzernamen von \"%1\"", @@ -62,6 +63,7 @@ "account/blocks": "Für %1 geblockte Benutzer", "account/uploads": "Uploads von %1", "account/sessions": "Login-Sitzungen", + "account/shares": "Topics shared by %1", "confirm": "E-Mail bestätigt", "maintenance.text": "%1 befindet sich derzeit in der Wartung.
Bitte komme später wieder.", "maintenance.messageIntro": "Zusätzlich hat der Administrator diese Nachricht hinterlassen:", diff --git a/public/language/de/recent.json b/public/language/de/recent.json index 2f7616f06f..7a88617de7 100644 --- a/public/language/de/recent.json +++ b/public/language/de/recent.json @@ -7,5 +7,7 @@ "alltime": "Gesamter Zeitraum", "no-recent-topics": "Es gibt keine aktuellen Themen.", "no-popular-topics": "Es gibt keine beliebten Themen.", - "load-new-posts": "Neue Beiträge laden" + "load-new-posts": "Neue Beiträge laden", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/de/topic.json b/public/language/de/topic.json index 7856d91de7..67a22712f3 100644 --- a/public/language/de/topic.json +++ b/public/language/de/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 stellte dieses Thema am %2 wieder her", "user-moved-topic-from-ago": "%1 verschob dieses Thema von %2 %3", "user-moved-topic-from-on": "%1 verschob dieses Thema von %2 am %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 hat Beitrag für Überprüfung markiert %3", "user-queued-post-on": "%1 hat Beitrag am %3 für Überprüfung markiert", "user-referenced-topic-ago": "%1 hat auf dieses Thema verwiesen %3", @@ -135,6 +137,7 @@ "bookmarks": "Lesezeichen", "bookmarks.has-no-bookmarks": "Du hast noch keine Beiträge mit Lesezeichen markiert.", "copy-permalink": "Permalink kopieren", + "go-to-original": "View Original Post", "loading-more-posts": "Lade mehr Beiträge", "move-topic": "Thema verschieben", "move-topics": "Themen verschieben", @@ -219,5 +222,7 @@ "downvote-post": "Downvote post", "post-tools": "Post tools", "unread-posts-link": "Unread posts link", - "thumb-image": "Topic thumbnail image" + "thumb-image": "Topic thumbnail image", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/de/user.json b/public/language/de/user.json index 644dfba434..8e10f47548 100644 --- a/public/language/de/user.json +++ b/public/language/de/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Standardmäßige Beobachtung", "followers": "Follower", "following": "Folge ich", + "shares": "Shares", "blocks": "Blockiert", "blocked-users": "Blockierte Benutzer", "block-toggle": "Ent-/Blocken", @@ -59,8 +60,10 @@ "chat-with": "Führe deinen Chat mit %1 fort", "new-chat-with": "Beginne einen neuen Chat mit %1", "flag-profile": "Profil Melden", + "profile-flagged": "Already flagged", "follow": "Folgen", "unfollow": "Nicht mehr folgen", + "cancel-follow": "Cancel follow request", "more": "Mehr", "profile-update-success": "Profil erfolgreich aktualisiert!", "change-picture": "Profilbild ändern", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "Dieser Benutzer hat bisher keine Beiträge negativ bewertet.", "has-no-controversial-posts": "Dieser Benutzer hat noch keine herabgestuften Beiträge.", "has-no-blocks": "Du hast keine Benutzer geblockt", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "E-Mail Adresse versteckt", "hidden": "versteckt", "paginate-description": "Themen und Beiträge in Seiten aufteilen, anstatt unendlich zu scrollen", diff --git a/public/language/de/world.json b/public/language/de/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/de/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/el/admin/manage/categories.json b/public/language/el/admin/manage/categories.json index 8a9ff471b0..a5c0253dae 100644 --- a/public/language/el/admin/manage/categories.json +++ b/public/language/el/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Privileges", "back-to-categories": "Back to categories", "name": "Category Name", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Category Description", "bg-color": "Background Colour", "text-color": "Text Colour", @@ -37,6 +39,7 @@ "disable": "Disable", "edit": "Edit", "analytics": "Analytics", + "federation": "Federation", "view-category": "View category", "set-order": "Set order", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Figure 3 – Daily topics created in this category", "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Created", "alert.create-success": "Category successfully created!", "alert.none-active": "You have no active categories.", diff --git a/public/language/el/admin/menu.json b/public/language/el/admin/menu.json index 6e30be22b3..913c74f475 100644 --- a/public/language/el/admin/menu.json +++ b/public/language/el/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Tags", "settings/notifications": "Notifications", "settings/api": "API Access", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Sounds", "settings/social": "Social", "settings/cookies": "Cookies", diff --git a/public/language/el/admin/settings/activitypub.json b/public/language/el/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/el/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/el/error.json b/public/language/el/error.json index a43f4ec664..e158e5dda3 100644 --- a/public/language/el/error.json +++ b/public/language/el/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", "topic-event-unrecognized": "Topic event '%1' unrecognized", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Can't set child as parent category", "cant-set-self-as-parent": "Can't set self as parent category", "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body", @@ -247,5 +248,11 @@ "api.500": "An unexpected error was encountered while attempting to service your request.", "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow", "api.503": "The route you are trying to call is not currently available due to a server configuration", - "api.reauth-required": "The resource you are trying to access requires (re-)authentication." + "api.reauth-required": "The resource you are trying to access requires (re-)authentication.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/el/flags.json b/public/language/el/flags.json index 0a42e3877f..7985a69f33 100644 --- a/public/language/el/flags.json +++ b/public/language/el/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Offensive", "modal-reason-other": "Other (specify below)", "modal-reason-custom": "Reason for reporting this content...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Submit Report", "modal-submit-success": "Content has been flagged for moderation.", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 flags updated", "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." diff --git a/public/language/el/global.json b/public/language/el/global.json index cadb4bed61..b1fe2ca73a 100644 --- a/public/language/el/global.json +++ b/public/language/el/global.json @@ -50,6 +50,7 @@ "header.navigation": "Navigation", "header.manage": "Manage", "header.drafts": "Drafts", + "header.world": "World", "notifications.loading": "Φόρτωση Ειδοποιήσεων", "chats.loading": "Φόρτωση Συνομιλιών", "drafts.loading": "Loading Drafts", @@ -110,6 +111,7 @@ "dnd": "Μην ενοχλείτε", "invisible": "Αόρατος/η", "offline": "Εκτός Σύνδεσης", + "remote-user": "This user is from outside of this forum", "email": "Email", "language": "Γλώσσα", "guest": "Επισκέπτης", diff --git a/public/language/el/modules.json b/public/language/el/modules.json index 62eeb01bc4..a1d1259471 100644 --- a/public/language/el/modules.json +++ b/public/language/el/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Discard all drafts", "composer.no-drafts": "You have no drafts", "composer.discard-draft-confirm": "Do you want to discard this draft?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", "bootbox.confirm": "Confirm", diff --git a/public/language/el/notifications.json b/public/language/el/notifications.json index 609c4830af..aa0d06ca53 100644 --- a/public/language/el/notifications.json +++ b/public/language/el/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "When a new post is queued", "notificationType-new-post-flag": "When a post is flagged", "notificationType-new-user-flag": "When a user is flagged", - "notificationType-new-reward": "When you earn a new reward" + "notificationType-new-reward": "When you earn a new reward", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/el/pages.json b/public/language/el/pages.json index 27a4e4d9f6..b86e3144b5 100644 --- a/public/language/el/pages.json +++ b/public/language/el/pages.json @@ -36,6 +36,7 @@ "chat": "Chatting with %1", "flags": "Flags", "flag-details": "Flag %1 Details", + "world": "World", "account/edit": "Editing \"%1\"", "account/edit/password": "Editing password of \"%1\"", "account/edit/username": "Editing username of \"%1\"", @@ -62,6 +63,7 @@ "account/blocks": "Blocked users for %1", "account/uploads": "Uploads by %1", "account/sessions": "Login Sessions", + "account/shares": "Topics shared by %1", "confirm": "Email Confirmed", "maintenance.text": "%1 is currently undergoing maintenance.
Please come back another time.", "maintenance.messageIntro": "Additionally, the administrator has left this message:", diff --git a/public/language/el/recent.json b/public/language/el/recent.json index 9a8e779431..a026e6aa7e 100644 --- a/public/language/el/recent.json +++ b/public/language/el/recent.json @@ -7,5 +7,7 @@ "alltime": "Όλο το Ιστορικό", "no-recent-topics": "Δεν υπάρχουν πρόσφατα θέματα.", "no-popular-topics": "Δεν υπάρχουν δημοφιλή θέματα.", - "load-new-posts": "Load new posts" + "load-new-posts": "Load new posts", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/el/topic.json b/public/language/el/topic.json index 8ee6cdfe06..d7acb0c3ae 100644 --- a/public/language/el/topic.json +++ b/public/language/el/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 restored this topic on %2", "user-moved-topic-from-ago": "%1 moved this topic from %2 %3", "user-moved-topic-from-on": "%1 moved this topic from %2 on %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 queued post for approval %3", "user-queued-post-on": "%1 queued post for approval on %3", "user-referenced-topic-ago": "%1 referenced this topic %3", @@ -135,6 +137,7 @@ "bookmarks": "Bookmarks", "bookmarks.has-no-bookmarks": "You haven't bookmarked any posts yet.", "copy-permalink": "Copy Permalink", + "go-to-original": "View Original Post", "loading-more-posts": "Φόρτωση περισσότερων δημοσιεύσεων", "move-topic": "Μετακίνηση Θέματος", "move-topics": "Μετακίνηση Θεμάτων", @@ -219,5 +222,7 @@ "downvote-post": "Downvote post", "post-tools": "Post tools", "unread-posts-link": "Unread posts link", - "thumb-image": "Topic thumbnail image" + "thumb-image": "Topic thumbnail image", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/el/user.json b/public/language/el/user.json index 99b20ee140..2c8d5f6a7b 100644 --- a/public/language/el/user.json +++ b/public/language/el/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Default category watch state", "followers": "Ακόλουθοι", "following": "Ακολουθά", + "shares": "Shares", "blocks": "Blocks", "blocked-users": "Blocked users", "block-toggle": "Toggle Block", @@ -59,8 +60,10 @@ "chat-with": "Continue chat with %1", "new-chat-with": "Start new chat with %1", "flag-profile": "Flag Profile", + "profile-flagged": "Already flagged", "follow": "Ακολούθησε", "unfollow": "Μην Ακολουθείς", + "cancel-follow": "Cancel follow request", "more": "More", "profile-update-success": "Το προφίλ ανανεώθηκε επιτυχώς!", "change-picture": "Αλλαγή Φωτογραφίας", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "This user hasn't downvoted any posts yet.", "has-no-controversial-posts": "This user does not have any downvoted posts yet.", "has-no-blocks": "You have blocked no users.", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "Κρυμμένο Emai", "hidden": "κρυμμένο", "paginate-description": "Paginate topics and posts instead of using infinite scroll", diff --git a/public/language/el/world.json b/public/language/el/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/el/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/en-US/admin/manage/categories.json b/public/language/en-US/admin/manage/categories.json index 8a9ff471b0..a5c0253dae 100644 --- a/public/language/en-US/admin/manage/categories.json +++ b/public/language/en-US/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Privileges", "back-to-categories": "Back to categories", "name": "Category Name", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Category Description", "bg-color": "Background Colour", "text-color": "Text Colour", @@ -37,6 +39,7 @@ "disable": "Disable", "edit": "Edit", "analytics": "Analytics", + "federation": "Federation", "view-category": "View category", "set-order": "Set order", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Figure 3 – Daily topics created in this category", "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Created", "alert.create-success": "Category successfully created!", "alert.none-active": "You have no active categories.", diff --git a/public/language/en-US/admin/menu.json b/public/language/en-US/admin/menu.json index 6e30be22b3..913c74f475 100644 --- a/public/language/en-US/admin/menu.json +++ b/public/language/en-US/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Tags", "settings/notifications": "Notifications", "settings/api": "API Access", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Sounds", "settings/social": "Social", "settings/cookies": "Cookies", diff --git a/public/language/en-US/admin/settings/activitypub.json b/public/language/en-US/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/en-US/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/en-US/error.json b/public/language/en-US/error.json index d203fe7cae..cf9ad6b31e 100644 --- a/public/language/en-US/error.json +++ b/public/language/en-US/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", "topic-event-unrecognized": "Topic event '%1' unrecognized", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Can't set child as parent category", "cant-set-self-as-parent": "Can't set self as parent category", "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body", @@ -247,5 +248,11 @@ "api.500": "An unexpected error was encountered while attempting to service your request.", "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow", "api.503": "The route you are trying to call is not currently available due to a server configuration", - "api.reauth-required": "The resource you are trying to access requires (re-)authentication." + "api.reauth-required": "The resource you are trying to access requires (re-)authentication.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/en-US/flags.json b/public/language/en-US/flags.json index 0a42e3877f..7985a69f33 100644 --- a/public/language/en-US/flags.json +++ b/public/language/en-US/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Offensive", "modal-reason-other": "Other (specify below)", "modal-reason-custom": "Reason for reporting this content...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Submit Report", "modal-submit-success": "Content has been flagged for moderation.", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 flags updated", "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." diff --git a/public/language/en-US/global.json b/public/language/en-US/global.json index 33ab34e59a..aa95d59bb4 100644 --- a/public/language/en-US/global.json +++ b/public/language/en-US/global.json @@ -50,6 +50,7 @@ "header.navigation": "Navigation", "header.manage": "Manage", "header.drafts": "Drafts", + "header.world": "World", "notifications.loading": "Loading Notifications", "chats.loading": "Loading Chats", "drafts.loading": "Loading Drafts", @@ -110,6 +111,7 @@ "dnd": "Do not disturb", "invisible": "Invisible", "offline": "Offline", + "remote-user": "This user is from outside of this forum", "email": "Email", "language": "Language", "guest": "Guest", diff --git a/public/language/en-US/modules.json b/public/language/en-US/modules.json index 62eeb01bc4..a1d1259471 100644 --- a/public/language/en-US/modules.json +++ b/public/language/en-US/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Discard all drafts", "composer.no-drafts": "You have no drafts", "composer.discard-draft-confirm": "Do you want to discard this draft?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", "bootbox.confirm": "Confirm", diff --git a/public/language/en-US/notifications.json b/public/language/en-US/notifications.json index 989025a566..924c0c9490 100644 --- a/public/language/en-US/notifications.json +++ b/public/language/en-US/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "When a new post is queued", "notificationType-new-post-flag": "When a post is flagged", "notificationType-new-user-flag": "When a user is flagged", - "notificationType-new-reward": "When you earn a new reward" + "notificationType-new-reward": "When you earn a new reward", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/en-US/pages.json b/public/language/en-US/pages.json index a2f6077733..2f665c4ff7 100644 --- a/public/language/en-US/pages.json +++ b/public/language/en-US/pages.json @@ -36,6 +36,7 @@ "chat": "Chatting with %1", "flags": "Flags", "flag-details": "Flag %1 Details", + "world": "World", "account/edit": "Editing \"%1\"", "account/edit/password": "Editing password of \"%1\"", "account/edit/username": "Editing username of \"%1\"", @@ -62,6 +63,7 @@ "account/blocks": "Blocked users for %1", "account/uploads": "Uploads by %1", "account/sessions": "Login Sessions", + "account/shares": "Topics shared by %1", "confirm": "Email Confirmed", "maintenance.text": "%1 is currently undergoing maintenance.
Please come back another time.", "maintenance.messageIntro": "Additionally, the administrator has left this message:", diff --git a/public/language/en-US/recent.json b/public/language/en-US/recent.json index ef49aa5562..5942cd725f 100644 --- a/public/language/en-US/recent.json +++ b/public/language/en-US/recent.json @@ -7,5 +7,7 @@ "alltime": "All Time", "no-recent-topics": "There are no recent topics.", "no-popular-topics": "There are no popular topics.", - "load-new-posts": "Load new posts" + "load-new-posts": "Load new posts", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/en-US/topic.json b/public/language/en-US/topic.json index b35ce30e69..25ff8a6dc9 100644 --- a/public/language/en-US/topic.json +++ b/public/language/en-US/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 restored this topic on %2", "user-moved-topic-from-ago": "%1 moved this topic from %2 %3", "user-moved-topic-from-on": "%1 moved this topic from %2 on %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 queued post for approval %3", "user-queued-post-on": "%1 queued post for approval on %3", "user-referenced-topic-ago": "%1 referenced this topic %3", @@ -135,6 +137,7 @@ "bookmarks": "Bookmarks", "bookmarks.has-no-bookmarks": "You haven't bookmarked any posts yet.", "copy-permalink": "Copy Permalink", + "go-to-original": "View Original Post", "loading-more-posts": "Loading More Posts", "move-topic": "Move Topic", "move-topics": "Move Topics", @@ -219,5 +222,7 @@ "downvote-post": "Downvote post", "post-tools": "Post tools", "unread-posts-link": "Unread posts link", - "thumb-image": "Topic thumbnail image" + "thumb-image": "Topic thumbnail image", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/en-US/user.json b/public/language/en-US/user.json index 78c7671b1c..9ce987ec85 100644 --- a/public/language/en-US/user.json +++ b/public/language/en-US/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Default category watch state", "followers": "Followers", "following": "Following", + "shares": "Shares", "blocks": "Blocks", "blocked-users": "Blocked users", "block-toggle": "Toggle Block", @@ -59,8 +60,10 @@ "chat-with": "Continue chat with %1", "new-chat-with": "Start new chat with %1", "flag-profile": "Flag Profile", + "profile-flagged": "Already flagged", "follow": "Follow", "unfollow": "Unfollow", + "cancel-follow": "Cancel follow request", "more": "More", "profile-update-success": "Profile has been updated successfully!", "change-picture": "Change Picture", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "This user hasn't downvoted any posts yet.", "has-no-controversial-posts": "This user does not have any downvoted posts yet.", "has-no-blocks": "You have blocked no users.", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "Email Hidden", "hidden": "hidden", "paginate-description": "Paginate topics and posts instead of using infinite scroll", diff --git a/public/language/en-US/world.json b/public/language/en-US/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/en-US/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/manage/categories.json b/public/language/en-x-pirate/admin/manage/categories.json index 8a9ff471b0..a5c0253dae 100644 --- a/public/language/en-x-pirate/admin/manage/categories.json +++ b/public/language/en-x-pirate/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Privileges", "back-to-categories": "Back to categories", "name": "Category Name", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Category Description", "bg-color": "Background Colour", "text-color": "Text Colour", @@ -37,6 +39,7 @@ "disable": "Disable", "edit": "Edit", "analytics": "Analytics", + "federation": "Federation", "view-category": "View category", "set-order": "Set order", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Figure 3 – Daily topics created in this category", "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Created", "alert.create-success": "Category successfully created!", "alert.none-active": "You have no active categories.", diff --git a/public/language/en-x-pirate/admin/menu.json b/public/language/en-x-pirate/admin/menu.json index 6e30be22b3..913c74f475 100644 --- a/public/language/en-x-pirate/admin/menu.json +++ b/public/language/en-x-pirate/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Tags", "settings/notifications": "Notifications", "settings/api": "API Access", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Sounds", "settings/social": "Social", "settings/cookies": "Cookies", diff --git a/public/language/en-x-pirate/admin/settings/activitypub.json b/public/language/en-x-pirate/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/en-x-pirate/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/error.json b/public/language/en-x-pirate/error.json index d203fe7cae..cf9ad6b31e 100644 --- a/public/language/en-x-pirate/error.json +++ b/public/language/en-x-pirate/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", "topic-event-unrecognized": "Topic event '%1' unrecognized", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Can't set child as parent category", "cant-set-self-as-parent": "Can't set self as parent category", "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body", @@ -247,5 +248,11 @@ "api.500": "An unexpected error was encountered while attempting to service your request.", "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow", "api.503": "The route you are trying to call is not currently available due to a server configuration", - "api.reauth-required": "The resource you are trying to access requires (re-)authentication." + "api.reauth-required": "The resource you are trying to access requires (re-)authentication.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/en-x-pirate/flags.json b/public/language/en-x-pirate/flags.json index 0a42e3877f..7985a69f33 100644 --- a/public/language/en-x-pirate/flags.json +++ b/public/language/en-x-pirate/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Offensive", "modal-reason-other": "Other (specify below)", "modal-reason-custom": "Reason for reporting this content...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Submit Report", "modal-submit-success": "Content has been flagged for moderation.", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 flags updated", "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." diff --git a/public/language/en-x-pirate/global.json b/public/language/en-x-pirate/global.json index e3ec8c9125..611e7a0b7d 100644 --- a/public/language/en-x-pirate/global.json +++ b/public/language/en-x-pirate/global.json @@ -50,6 +50,7 @@ "header.navigation": "Navigation", "header.manage": "Manage", "header.drafts": "Drafts", + "header.world": "World", "notifications.loading": "Fetching yer Parrot Calls", "chats.loading": "Loading Yik-Yaks", "drafts.loading": "Loading Drafts", @@ -110,6 +111,7 @@ "dnd": "Do not disturb", "invisible": "Magic usin'", "offline": "Dead", + "remote-user": "This user is from outside of this forum", "email": "Email", "language": "Language", "guest": "Guest", diff --git a/public/language/en-x-pirate/modules.json b/public/language/en-x-pirate/modules.json index 6e180967fb..c78a052be8 100644 --- a/public/language/en-x-pirate/modules.json +++ b/public/language/en-x-pirate/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Discard all drafts", "composer.no-drafts": "You have no drafts", "composer.discard-draft-confirm": "Do you want to discard this draft?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", "bootbox.confirm": "Confirm", diff --git a/public/language/en-x-pirate/notifications.json b/public/language/en-x-pirate/notifications.json index 98358f593f..ba6111dd39 100644 --- a/public/language/en-x-pirate/notifications.json +++ b/public/language/en-x-pirate/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "When a new post is queued", "notificationType-new-post-flag": "When a post is flagged", "notificationType-new-user-flag": "When a user is flagged", - "notificationType-new-reward": "When you earn a new reward" + "notificationType-new-reward": "When you earn a new reward", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/en-x-pirate/pages.json b/public/language/en-x-pirate/pages.json index a2f6077733..2f665c4ff7 100644 --- a/public/language/en-x-pirate/pages.json +++ b/public/language/en-x-pirate/pages.json @@ -36,6 +36,7 @@ "chat": "Chatting with %1", "flags": "Flags", "flag-details": "Flag %1 Details", + "world": "World", "account/edit": "Editing \"%1\"", "account/edit/password": "Editing password of \"%1\"", "account/edit/username": "Editing username of \"%1\"", @@ -62,6 +63,7 @@ "account/blocks": "Blocked users for %1", "account/uploads": "Uploads by %1", "account/sessions": "Login Sessions", + "account/shares": "Topics shared by %1", "confirm": "Email Confirmed", "maintenance.text": "%1 is currently undergoing maintenance.
Please come back another time.", "maintenance.messageIntro": "Additionally, the administrator has left this message:", diff --git a/public/language/en-x-pirate/recent.json b/public/language/en-x-pirate/recent.json index d5a45a0b82..b56a1d3c9b 100644 --- a/public/language/en-x-pirate/recent.json +++ b/public/language/en-x-pirate/recent.json @@ -7,5 +7,7 @@ "alltime": "All Time", "no-recent-topics": "There be no recent topics.", "no-popular-topics": "There are no popular topics.", - "load-new-posts": "Load new posts" + "load-new-posts": "Load new posts", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/en-x-pirate/topic.json b/public/language/en-x-pirate/topic.json index b35ce30e69..25ff8a6dc9 100644 --- a/public/language/en-x-pirate/topic.json +++ b/public/language/en-x-pirate/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 restored this topic on %2", "user-moved-topic-from-ago": "%1 moved this topic from %2 %3", "user-moved-topic-from-on": "%1 moved this topic from %2 on %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 queued post for approval %3", "user-queued-post-on": "%1 queued post for approval on %3", "user-referenced-topic-ago": "%1 referenced this topic %3", @@ -135,6 +137,7 @@ "bookmarks": "Bookmarks", "bookmarks.has-no-bookmarks": "You haven't bookmarked any posts yet.", "copy-permalink": "Copy Permalink", + "go-to-original": "View Original Post", "loading-more-posts": "Loading More Posts", "move-topic": "Move Topic", "move-topics": "Move Topics", @@ -219,5 +222,7 @@ "downvote-post": "Downvote post", "post-tools": "Post tools", "unread-posts-link": "Unread posts link", - "thumb-image": "Topic thumbnail image" + "thumb-image": "Topic thumbnail image", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/en-x-pirate/user.json b/public/language/en-x-pirate/user.json index 74a2493b81..3c2a6a2e4f 100644 --- a/public/language/en-x-pirate/user.json +++ b/public/language/en-x-pirate/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Default category watch state", "followers": "Followers", "following": "Following", + "shares": "Shares", "blocks": "Blocks", "blocked-users": "Blocked users", "block-toggle": "Toggle Block", @@ -59,8 +60,10 @@ "chat-with": "Continue chat with %1", "new-chat-with": "Start new chat with %1", "flag-profile": "Flag Profile", + "profile-flagged": "Already flagged", "follow": "Follow", "unfollow": "Unfollow", + "cancel-follow": "Cancel follow request", "more": "More", "profile-update-success": "Profile has been updated successfully!", "change-picture": "Change Picture", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "This user hasn't downvoted any posts yet.", "has-no-controversial-posts": "This user does not have any downvoted posts yet.", "has-no-blocks": "You have blocked no users.", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "Email Hidden", "hidden": "hidden", "paginate-description": "Paginate topics and posts instead of using infinite scroll", diff --git a/public/language/en-x-pirate/world.json b/public/language/en-x-pirate/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/en-x-pirate/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/es/admin/manage/categories.json b/public/language/es/admin/manage/categories.json index 4ca9a9d5d8..0c85f7f654 100644 --- a/public/language/es/admin/manage/categories.json +++ b/public/language/es/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Privilegios", "back-to-categories": "Back to categories", "name": "Nombre de Categoría", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Descripción de Categoría", "bg-color": "Color de Fondo", "text-color": "Color del Texto", @@ -37,6 +39,7 @@ "disable": "Desactivar", "edit": "Editar", "analytics": "Analítica", + "federation": "Federation", "view-category": "Ver categoría", "set-order": "Establecer orden", @@ -76,6 +79,22 @@ "analytics.topics-daily": " Figura 3 –  Temas diarios creados en esta categoría", "analytics.posts-daily": " Figura4 – Respuestas diarias en esta categoría ", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Creada", "alert.create-success": "¡Categoría creada con éxito!", "alert.none-active": "No tienes categorías activas.", diff --git a/public/language/es/admin/menu.json b/public/language/es/admin/menu.json index 597b17270d..7b7cb9a150 100644 --- a/public/language/es/admin/menu.json +++ b/public/language/es/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Etiquetas", "settings/notifications": "Notificaciones", "settings/api": "API Access", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Sounds", "settings/social": "Social", "settings/cookies": "Cookies", diff --git a/public/language/es/admin/settings/activitypub.json b/public/language/es/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/es/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/es/error.json b/public/language/es/error.json index 9a62119089..a95e781f1a 100644 --- a/public/language/es/error.json +++ b/public/language/es/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", "topic-event-unrecognized": "Topic event '%1' unrecognized", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Can't set child as parent category", "cant-set-self-as-parent": "Can't set self as parent category", "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body", @@ -247,5 +248,11 @@ "api.500": "An unexpected error was encountered while attempting to service your request.", "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow", "api.503": "The route you are trying to call is not currently available due to a server configuration", - "api.reauth-required": "The resource you are trying to access requires (re-)authentication." + "api.reauth-required": "The resource you are trying to access requires (re-)authentication.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/es/flags.json b/public/language/es/flags.json index 3e05e7dd6a..b1f09da849 100644 --- a/public/language/es/flags.json +++ b/public/language/es/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Ofensivo", "modal-reason-other": "Otro (especificar debajo)", "modal-reason-custom": "Razón para reportar este contenido...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Enviar reporte", "modal-submit-success": "El contenido se ha reportado para moderación.", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 flags updated", "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." diff --git a/public/language/es/global.json b/public/language/es/global.json index 162e385c24..397507230a 100644 --- a/public/language/es/global.json +++ b/public/language/es/global.json @@ -50,6 +50,7 @@ "header.navigation": "Navegación", "header.manage": "Manage", "header.drafts": "Drafts", + "header.world": "World", "notifications.loading": "Cargando notificaciones", "chats.loading": "Cargando chats", "drafts.loading": "Loading Drafts", @@ -110,6 +111,7 @@ "dnd": "No molestar", "invisible": "Invisible", "offline": "Desconectado", + "remote-user": "This user is from outside of this forum", "email": "Email", "language": "Idioma", "guest": "Invitado", diff --git a/public/language/es/modules.json b/public/language/es/modules.json index 5931886036..8c92e3e393 100644 --- a/public/language/es/modules.json +++ b/public/language/es/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Discard all drafts", "composer.no-drafts": "You have no drafts", "composer.discard-draft-confirm": "Do you want to discard this draft?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "OK", "bootbox.cancel": "Cancelar", "bootbox.confirm": "Confirmar", diff --git a/public/language/es/notifications.json b/public/language/es/notifications.json index f8f5da1859..e44bfa01a3 100644 --- a/public/language/es/notifications.json +++ b/public/language/es/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "Cuando un mensaje nuevo entra en la cola", "notificationType-new-post-flag": "Cuando un mensaje es denunciado", "notificationType-new-user-flag": "Cuando un usuario es denunciado", - "notificationType-new-reward": "Cuando consigues una nueva recompensa" + "notificationType-new-reward": "Cuando consigues una nueva recompensa", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/es/pages.json b/public/language/es/pages.json index 8d42c6ca04..b267a2a5d8 100644 --- a/public/language/es/pages.json +++ b/public/language/es/pages.json @@ -36,6 +36,7 @@ "chat": "Chatear con %1", "flags": "Reportes", "flag-details": "Detalle de reporte %1", + "world": "World", "account/edit": "Editar \"%1\"", "account/edit/password": "Editar contraseña de \"%1\"", "account/edit/username": "Editar nombre de usuario de \"%1\"", @@ -62,6 +63,7 @@ "account/blocks": "Usuarios bloqueados por %1", "account/uploads": "Subidas por %1", "account/sessions": "Login Sessions", + "account/shares": "Topics shared by %1", "confirm": "Correo electrónico confirmado", "maintenance.text": "%1 is currently undergoing maintenance.
Please come back another time.", "maintenance.messageIntro": "Además, la administración ha dejado este mensaje:", diff --git a/public/language/es/recent.json b/public/language/es/recent.json index 49ea275ec6..5e751791a9 100644 --- a/public/language/es/recent.json +++ b/public/language/es/recent.json @@ -7,5 +7,7 @@ "alltime": "Siempre", "no-recent-topics": "No hay publicaciones recientes.", "no-popular-topics": "No hay publicaciones populares", - "load-new-posts": "Load new posts" + "load-new-posts": "Load new posts", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/es/topic.json b/public/language/es/topic.json index 6a8186b119..0875b860f5 100644 --- a/public/language/es/topic.json +++ b/public/language/es/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 restored this topic on %2", "user-moved-topic-from-ago": "%1 moved this topic from %2 %3", "user-moved-topic-from-on": "%1 moved this topic from %2 on %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 queued post for approval %3", "user-queued-post-on": "%1 queued post for approval on %3", "user-referenced-topic-ago": "%1 referenced this topic %3", @@ -135,6 +137,7 @@ "bookmarks": "Marcadores", "bookmarks.has-no-bookmarks": "No tienes ningún marcador aun.", "copy-permalink": "Copy Permalink", + "go-to-original": "View Original Post", "loading-more-posts": "Cargando más mensajes", "move-topic": "Mover tema", "move-topics": "Mover temas", @@ -219,5 +222,7 @@ "downvote-post": "Votar negativo", "post-tools": "Herramientas de la entrada", "unread-posts-link": "Enlace a entradas sin leer", - "thumb-image": "Imagen miniatura del tema" + "thumb-image": "Imagen miniatura del tema", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/es/user.json b/public/language/es/user.json index 29f340879a..9b7b792fb4 100644 --- a/public/language/es/user.json +++ b/public/language/es/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Estado default de vista de categoría", "followers": "Seguidores", "following": "Siguiendo", + "shares": "Shares", "blocks": "Bloqueos", "blocked-users": "Blocked users", "block-toggle": "Cambiar Bloqueo", @@ -59,8 +60,10 @@ "chat-with": "Continuar chat con %1", "new-chat-with": "Empezar chat con %1", "flag-profile": "Perfil de reporte", + "profile-flagged": "Already flagged", "follow": "Seguir", "unfollow": "Dejar de seguir", + "cancel-follow": "Cancel follow request", "more": "Más", "profile-update-success": "¡El perfil ha sido actualizado correctamente!", "change-picture": "Cambiar imagen", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "Este usuario todavía no ha votado ninguna publicación negativamente.", "has-no-controversial-posts": "This user does not have any downvoted posts yet.", "has-no-blocks": "No tienes usuarios bloqueados.", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "Correo electrónico oculto", "hidden": "oculto", "paginate-description": "Paginar hilos y mensajes en lugar de usar desplazamiento infinito", diff --git a/public/language/es/world.json b/public/language/es/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/es/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/et/admin/manage/categories.json b/public/language/et/admin/manage/categories.json index 8a9ff471b0..a5c0253dae 100644 --- a/public/language/et/admin/manage/categories.json +++ b/public/language/et/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Privileges", "back-to-categories": "Back to categories", "name": "Category Name", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Category Description", "bg-color": "Background Colour", "text-color": "Text Colour", @@ -37,6 +39,7 @@ "disable": "Disable", "edit": "Edit", "analytics": "Analytics", + "federation": "Federation", "view-category": "View category", "set-order": "Set order", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Figure 3 – Daily topics created in this category", "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Created", "alert.create-success": "Category successfully created!", "alert.none-active": "You have no active categories.", diff --git a/public/language/et/admin/menu.json b/public/language/et/admin/menu.json index 6e30be22b3..913c74f475 100644 --- a/public/language/et/admin/menu.json +++ b/public/language/et/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Tags", "settings/notifications": "Notifications", "settings/api": "API Access", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Sounds", "settings/social": "Social", "settings/cookies": "Cookies", diff --git a/public/language/et/admin/settings/activitypub.json b/public/language/et/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/et/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/et/error.json b/public/language/et/error.json index 197562792f..4484e2bae7 100644 --- a/public/language/et/error.json +++ b/public/language/et/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", "topic-event-unrecognized": "Topic event '%1' unrecognized", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Can't set child as parent category", "cant-set-self-as-parent": "Can't set self as parent category", "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body", @@ -247,5 +248,11 @@ "api.500": "An unexpected error was encountered while attempting to service your request.", "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow", "api.503": "The route you are trying to call is not currently available due to a server configuration", - "api.reauth-required": "The resource you are trying to access requires (re-)authentication." + "api.reauth-required": "The resource you are trying to access requires (re-)authentication.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/et/flags.json b/public/language/et/flags.json index 0a42e3877f..7985a69f33 100644 --- a/public/language/et/flags.json +++ b/public/language/et/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Offensive", "modal-reason-other": "Other (specify below)", "modal-reason-custom": "Reason for reporting this content...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Submit Report", "modal-submit-success": "Content has been flagged for moderation.", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 flags updated", "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." diff --git a/public/language/et/global.json b/public/language/et/global.json index 6c2a7cfdde..74cbf9677a 100644 --- a/public/language/et/global.json +++ b/public/language/et/global.json @@ -50,6 +50,7 @@ "header.navigation": "Navigatsioon", "header.manage": "Manage", "header.drafts": "Drafts", + "header.world": "World", "notifications.loading": "Laen teateid", "chats.loading": "Laen vestlusi", "drafts.loading": "Loading Drafts", @@ -110,6 +111,7 @@ "dnd": "Mitte segada", "invisible": "Nähtamatu", "offline": "Väljas", + "remote-user": "This user is from outside of this forum", "email": "Emaili aadress", "language": "Keel", "guest": "Külaline", diff --git a/public/language/et/modules.json b/public/language/et/modules.json index d66b6d7bf0..1aa6c0d427 100644 --- a/public/language/et/modules.json +++ b/public/language/et/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Discard all drafts", "composer.no-drafts": "You have no drafts", "composer.discard-draft-confirm": "Do you want to discard this draft?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "Olgu", "bootbox.cancel": "Katkesta", "bootbox.confirm": "Kinnita", diff --git a/public/language/et/notifications.json b/public/language/et/notifications.json index 6717703992..f23aa29d24 100644 --- a/public/language/et/notifications.json +++ b/public/language/et/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "When a new post is queued", "notificationType-new-post-flag": "When a post is flagged", "notificationType-new-user-flag": "When a user is flagged", - "notificationType-new-reward": "When you earn a new reward" + "notificationType-new-reward": "When you earn a new reward", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/et/pages.json b/public/language/et/pages.json index 17031d98da..8ef5a9e617 100644 --- a/public/language/et/pages.json +++ b/public/language/et/pages.json @@ -36,6 +36,7 @@ "chat": "Vestlus kasutajaga %1", "flags": "Flags", "flag-details": "Flag %1 Details", + "world": "World", "account/edit": "Muudan \"%1\"", "account/edit/password": "Redigeerid \"%1\" parooli", "account/edit/username": "Redigeerid \"%1\" kasutajanime", @@ -62,6 +63,7 @@ "account/blocks": "Blocked users for %1", "account/uploads": "Uploads by %1", "account/sessions": "Login Sessions", + "account/shares": "Topics shared by %1", "confirm": "Emaili aadress kinnitatud", "maintenance.text": "%1 is currently undergoing maintenance.
Please come back another time.", "maintenance.messageIntro": "Administraator on jätnud ka omaltpoolt sõnumi:", diff --git a/public/language/et/recent.json b/public/language/et/recent.json index f4c68ffc31..bc8afa7a3c 100644 --- a/public/language/et/recent.json +++ b/public/language/et/recent.json @@ -7,5 +7,7 @@ "alltime": "Kogu aja vältel", "no-recent-topics": "Hetkel ei ole hiljutisi teemasid.", "no-popular-topics": "Ühtegi populaarset teemat ei leidu.", - "load-new-posts": "Load new posts" + "load-new-posts": "Load new posts", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/et/topic.json b/public/language/et/topic.json index 60f98235d7..a1cede1835 100644 --- a/public/language/et/topic.json +++ b/public/language/et/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 restored this topic on %2", "user-moved-topic-from-ago": "%1 moved this topic from %2 %3", "user-moved-topic-from-on": "%1 moved this topic from %2 on %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 queued post for approval %3", "user-queued-post-on": "%1 queued post for approval on %3", "user-referenced-topic-ago": "%1 referenced this topic %3", @@ -135,6 +137,7 @@ "bookmarks": "Bookmarks", "bookmarks.has-no-bookmarks": "You haven't bookmarked any posts yet.", "copy-permalink": "Copy Permalink", + "go-to-original": "View Original Post", "loading-more-posts": "Laen postitusi", "move-topic": "Liiguta teemat", "move-topics": "Liiguta teemasi", @@ -219,5 +222,7 @@ "downvote-post": "Downvote post", "post-tools": "Post tools", "unread-posts-link": "Unread posts link", - "thumb-image": "Topic thumbnail image" + "thumb-image": "Topic thumbnail image", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/et/user.json b/public/language/et/user.json index 05b9e9e231..f6dc29f135 100644 --- a/public/language/et/user.json +++ b/public/language/et/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Default category watch state", "followers": "Jälgijad", "following": "Jälgimised", + "shares": "Shares", "blocks": "Blocks", "blocked-users": "Blocked users", "block-toggle": "Toggle Block", @@ -59,8 +60,10 @@ "chat-with": "Continue chat with %1", "new-chat-with": "Start new chat with %1", "flag-profile": "Flag Profile", + "profile-flagged": "Already flagged", "follow": "Jälgi", "unfollow": "Ära jälgi enam", + "cancel-follow": "Cancel follow request", "more": "Rohkem", "profile-update-success": "Profiil edukalt uuendatud!", "change-picture": "Vaheta pilti", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "Antud kasutaja pole veel ühtegi postitust laitnud.", "has-no-controversial-posts": "This user does not have any downvoted posts yet.", "has-no-blocks": "You have blocked no users.", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "Peidetud email", "hidden": "peidetud", "paginate-description": "Nummerda leheküljed ja postitused ning ära kasuta lõputut kerimist", diff --git a/public/language/et/world.json b/public/language/et/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/et/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/manage/categories.json b/public/language/fa-IR/admin/manage/categories.json index 4f21de69fe..7918e33a84 100644 --- a/public/language/fa-IR/admin/manage/categories.json +++ b/public/language/fa-IR/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Privileges", "back-to-categories": "Back to categories", "name": "نام دسته‌بندی", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "توضیحات دسته‌بندی", "bg-color": "Background Colour", "text-color": "Text Colour", @@ -37,6 +39,7 @@ "disable": "Disable", "edit": "Edit", "analytics": "Analytics", + "federation": "Federation", "view-category": "View category", "set-order": "Set order", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Figure 3 – Daily topics created in this category", "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Created", "alert.create-success": "Category successfully created!", "alert.none-active": "You have no active categories.", diff --git a/public/language/fa-IR/admin/menu.json b/public/language/fa-IR/admin/menu.json index 722f482140..de8c334cf9 100644 --- a/public/language/fa-IR/admin/menu.json +++ b/public/language/fa-IR/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "برچسب ها", "settings/notifications": "آگاه‌سازی‌ها", "settings/api": "API Access", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Sounds", "settings/social": "Social", "settings/cookies": "کوکی ها", diff --git a/public/language/fa-IR/admin/settings/activitypub.json b/public/language/fa-IR/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/fa-IR/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/fa-IR/error.json b/public/language/fa-IR/error.json index dadabcdd5e..8d90235aa8 100644 --- a/public/language/fa-IR/error.json +++ b/public/language/fa-IR/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", "topic-event-unrecognized": "Topic event '%1' unrecognized", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Can't set child as parent category", "cant-set-self-as-parent": "Can't set self as parent category", "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body", @@ -247,5 +248,11 @@ "api.500": "An unexpected error was encountered while attempting to service your request.", "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow", "api.503": "The route you are trying to call is not currently available due to a server configuration", - "api.reauth-required": "The resource you are trying to access requires (re-)authentication." + "api.reauth-required": "The resource you are trying to access requires (re-)authentication.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/fa-IR/flags.json b/public/language/fa-IR/flags.json index 4a268bb030..3b6c77a332 100644 --- a/public/language/fa-IR/flags.json +++ b/public/language/fa-IR/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "توهین آمیز", "modal-reason-other": "دیگر (در زیر مشخص کنید)", "modal-reason-custom": "علت گزارش این محتوا...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "ارسال گزارش", "modal-submit-success": "محتوا برای بررسی گزارش شد", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "عملیات گروهی", "bulk-resolve": "Resolve Flag(s)", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 گزارش بروزرسانی شد", "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." diff --git a/public/language/fa-IR/global.json b/public/language/fa-IR/global.json index a7f7af2514..3627e7abee 100644 --- a/public/language/fa-IR/global.json +++ b/public/language/fa-IR/global.json @@ -50,6 +50,7 @@ "header.navigation": "Navigation", "header.manage": "Manage", "header.drafts": "Drafts", + "header.world": "World", "notifications.loading": "بارگذاری آگاه‌سازی‌ها", "chats.loading": "بارگذاری گفتگوها", "drafts.loading": "Loading Drafts", @@ -110,6 +111,7 @@ "dnd": "مزاحم نشوید", "invisible": "مخفی", "offline": "آفلاین", + "remote-user": "This user is from outside of this forum", "email": "ایمیل", "language": "زبان", "guest": "مهمان", diff --git a/public/language/fa-IR/modules.json b/public/language/fa-IR/modules.json index 8f1097ea51..ddd073ddbf 100644 --- a/public/language/fa-IR/modules.json +++ b/public/language/fa-IR/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "لغو همه پیش‌نویس‌ها", "composer.no-drafts": "You have no drafts", "composer.discard-draft-confirm": "Do you want to discard this draft?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "باشه", "bootbox.cancel": "انصراف", "bootbox.confirm": "تایید", diff --git a/public/language/fa-IR/notifications.json b/public/language/fa-IR/notifications.json index e8c11be9b5..d93f18d530 100644 --- a/public/language/fa-IR/notifications.json +++ b/public/language/fa-IR/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "هنگامی که پست جدیدی در صف قرار می گیرد", "notificationType-new-post-flag": "هنگامی که پستی گزارش می شود", "notificationType-new-user-flag": "هنگامی که کاربری گزارش می شود", - "notificationType-new-reward": "هنگامی که شما جایزه جدیدی کسب می کنید" + "notificationType-new-reward": "هنگامی که شما جایزه جدیدی کسب می کنید", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/fa-IR/pages.json b/public/language/fa-IR/pages.json index 6956f92dfb..7a5f459d10 100644 --- a/public/language/fa-IR/pages.json +++ b/public/language/fa-IR/pages.json @@ -36,6 +36,7 @@ "chat": "چت با %1", "flags": "گزارش ها", "flag-details": "جزئیات گزارش %1", + "world": "World", "account/edit": "ویرایش \"%1\"", "account/edit/password": "ویرایش کلمه ی عبورِ \"%1\"", "account/edit/username": "ویرایش نام کاربریِ \"%1\"", @@ -62,6 +63,7 @@ "account/blocks": "کاربران مسدود شده توسط %1", "account/uploads": "آپلود های %1", "account/sessions": "Session های ورود", + "account/shares": "Topics shared by %1", "confirm": "ایمیل تایید شد", "maintenance.text": "1% در حال حاضر تحت تعمیر و نگهداری است.
لطفاً زمان دیگری مراجعه کنید.", "maintenance.messageIntro": "علاوه بر این، مدیر این پیام را گذاشته است:", diff --git a/public/language/fa-IR/recent.json b/public/language/fa-IR/recent.json index 412d0c4ccc..3a7255b074 100644 --- a/public/language/fa-IR/recent.json +++ b/public/language/fa-IR/recent.json @@ -7,5 +7,7 @@ "alltime": "همه زمانها", "no-recent-topics": "هیچ موضوع تازه‌ای نیست.", "no-popular-topics": "هیچ موضوع پربازدیدی وجود ندارد", - "load-new-posts": "بارگذاری پست های جدید" + "load-new-posts": "بارگذاری پست های جدید", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/fa-IR/topic.json b/public/language/fa-IR/topic.json index 28ee64a32d..cb940c2db5 100644 --- a/public/language/fa-IR/topic.json +++ b/public/language/fa-IR/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 این موضوع را در %2 بازیابی کرد", "user-moved-topic-from-ago": "%1 این موضوع را از %2 جابه جا کرد %3", "user-moved-topic-from-on": "%1 این موضوع را از %2 جا‌به‌جا کرد%3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "1% صف شده پست برای تایید کردن %3", "user-queued-post-on": "%1 queued post for approval on %3", "user-referenced-topic-ago": "%1 این تاپیک را ارجاع داد %3", @@ -135,6 +137,7 @@ "bookmarks": "نشانک‌ها", "bookmarks.has-no-bookmarks": "شما هیچ پستی را نشانک نکردید", "copy-permalink": "کپی لینک ثابت", + "go-to-original": "View Original Post", "loading-more-posts": "بارگذاری پست‌های بیش‌تر", "move-topic": "جابه‌جایی موضوع", "move-topics": "انتقال موضوع", @@ -219,5 +222,7 @@ "downvote-post": "رای منفی دادن به پست", "post-tools": "ابزارهای پست", "unread-posts-link": "پست های خوانده نشده پیوند", - "thumb-image": "Topic thumbnail image" + "thumb-image": "Topic thumbnail image", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/fa-IR/user.json b/public/language/fa-IR/user.json index 0d591b247f..66fe80f019 100644 --- a/public/language/fa-IR/user.json +++ b/public/language/fa-IR/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "حالت پیشفرض مشاهده دسته بندی", "followers": "دنبال‌کننده‌ها", "following": "دنبال‌شونده‌ها", + "shares": "Shares", "blocks": "کاربران مسدود شده", "blocked-users": "کاربران مسدود شده", "block-toggle": "مسدود کردن", @@ -59,8 +60,10 @@ "chat-with": "ادامه گفتوگو با %1", "new-chat-with": "شروع گفت‏وگو‌ی جدید با %1", "flag-profile": "پرچم کردن نمایه", + "profile-flagged": "Already flagged", "follow": "دنبال کردن", "unfollow": "دنبال نکردن", + "cancel-follow": "Cancel follow request", "more": "بیشتر", "profile-update-success": "نمایه با موفقیت به روز شده است!", "change-picture": "تغییر تصویر", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "این کاربر به هیچ فرسته‌ای رای منفی نداده است.", "has-no-controversial-posts": "این کاربر هنوز هیچ فرسته‌ای با رای منفی ندارد.", "has-no-blocks": "شما هیچ کاربر مسدود شده ای ندارید.", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "نشانی رایانامه پنهان شده", "hidden": "پنهان شده", "paginate-description": "صفحه بندی و نمایش موضوع ها و پست‌ها به جای نمایش بر اساس اسکرول موس", diff --git a/public/language/fa-IR/world.json b/public/language/fa-IR/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/fa-IR/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/fi/admin/manage/categories.json b/public/language/fi/admin/manage/categories.json index 77b38e6dc7..965e94ccfc 100644 --- a/public/language/fi/admin/manage/categories.json +++ b/public/language/fi/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Privileges", "back-to-categories": "Back to categories", "name": "Category Name", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Category Description", "bg-color": "Background Colour", "text-color": "Text Colour", @@ -37,6 +39,7 @@ "disable": "Disable", "edit": "Edit", "analytics": "Analytics", + "federation": "Federation", "view-category": "View category", "set-order": "Set order", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Figure 3 – Daily topics created in this category", "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Luotu", "alert.create-success": "Kategoria luotiin!", "alert.none-active": "You have no active categories.", diff --git a/public/language/fi/admin/menu.json b/public/language/fi/admin/menu.json index 8db84818f3..d012866109 100644 --- a/public/language/fi/admin/menu.json +++ b/public/language/fi/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Tunnisteet", "settings/notifications": "Ilmoitukset", "settings/api": "API Access", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Äänet", "settings/social": "Social", "settings/cookies": "Cookies", diff --git a/public/language/fi/admin/settings/activitypub.json b/public/language/fi/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/fi/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/fi/error.json b/public/language/fi/error.json index f3a47f0d1c..3ca068c950 100644 --- a/public/language/fi/error.json +++ b/public/language/fi/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", "topic-event-unrecognized": "Topic event '%1' unrecognized", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Can't set child as parent category", "cant-set-self-as-parent": "Can't set self as parent category", "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body", @@ -247,5 +248,11 @@ "api.500": "An unexpected error was encountered while attempting to service your request.", "api.501": "Pyytämääsi polkua ei ole vielä toteutettu. Yritä huomenna uudelleen.", "api.503": "Pyytämääsi polku ei ole palvelinasetusten vuoksi tällä hetkellä käytettävissä.", - "api.reauth-required": "The resource you are trying to access requires (re-)authentication." + "api.reauth-required": "The resource you are trying to access requires (re-)authentication.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/fi/flags.json b/public/language/fi/flags.json index 2132e64f13..c002d29ef1 100644 --- a/public/language/fi/flags.json +++ b/public/language/fi/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Offensive", "modal-reason-other": "Other (specify below)", "modal-reason-custom": "Reason for reporting this content...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Submit Report", "modal-submit-success": "Content has been flagged for moderation.", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 flags updated", "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." diff --git a/public/language/fi/global.json b/public/language/fi/global.json index b2df07a990..62a53653f4 100644 --- a/public/language/fi/global.json +++ b/public/language/fi/global.json @@ -50,6 +50,7 @@ "header.navigation": "Navigation", "header.manage": "Manage", "header.drafts": "Drafts", + "header.world": "World", "notifications.loading": "Ladataan ilmoituksia", "chats.loading": "Ladataan keskusteluja", "drafts.loading": "Loading Drafts", @@ -110,6 +111,7 @@ "dnd": "Älä häiritse", "invisible": "Näkymätön", "offline": "Offline", + "remote-user": "This user is from outside of this forum", "email": "Sähköposti", "language": "Kieli", "guest": "Vieras", diff --git a/public/language/fi/modules.json b/public/language/fi/modules.json index 964a9fc744..a781777da2 100644 --- a/public/language/fi/modules.json +++ b/public/language/fi/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Discard all drafts", "composer.no-drafts": "You have no drafts", "composer.discard-draft-confirm": "Do you want to discard this draft?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", "bootbox.confirm": "Confirm", diff --git a/public/language/fi/notifications.json b/public/language/fi/notifications.json index 707aac1ae1..b3b7aea277 100644 --- a/public/language/fi/notifications.json +++ b/public/language/fi/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "Kun uusi viesti tulee jonoon", "notificationType-new-post-flag": "When a post is flagged", "notificationType-new-user-flag": "When a user is flagged", - "notificationType-new-reward": "When you earn a new reward" + "notificationType-new-reward": "When you earn a new reward", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/fi/pages.json b/public/language/fi/pages.json index bd887f3296..2411ff26c0 100644 --- a/public/language/fi/pages.json +++ b/public/language/fi/pages.json @@ -36,6 +36,7 @@ "chat": "Keskustelee %1 kanssa", "flags": "Flags", "flag-details": "Flag %1 Details", + "world": "World", "account/edit": "Muokkaa \"%1\"", "account/edit/password": "Editing password of \"%1\"", "account/edit/username": "Muokataan käyttäjätunnusta \"%1\"", @@ -62,6 +63,7 @@ "account/blocks": "Käyttäjän %1 estämät käyttäjät", "account/uploads": "Käyttäjän %1 tiedostolähetykset", "account/sessions": "Kirjautumisistunnot", + "account/shares": "Topics shared by %1", "confirm": "Sähköpostiosoite on vahvistettu", "maintenance.text": "%1 is currently undergoing maintenance.
Please come back another time.", "maintenance.messageIntro": "Lisäksi ylläpitäjä on jättänyt seuraavan viestin:", diff --git a/public/language/fi/recent.json b/public/language/fi/recent.json index 79383464c2..93fbd99645 100644 --- a/public/language/fi/recent.json +++ b/public/language/fi/recent.json @@ -7,5 +7,7 @@ "alltime": "Alusta lähtien", "no-recent-topics": "Tuoreita aiheita ei ole.", "no-popular-topics": "Ei päivityksiä suosituimmissa aiheissa", - "load-new-posts": "Load new posts" + "load-new-posts": "Load new posts", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/fi/topic.json b/public/language/fi/topic.json index 12d1f18e18..d7252367a9 100644 --- a/public/language/fi/topic.json +++ b/public/language/fi/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 restored this topic on %2", "user-moved-topic-from-ago": "%1 moved this topic from %2 %3", "user-moved-topic-from-on": "%1 moved this topic from %2 on %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 queued post for approval %3", "user-queued-post-on": "%1 queued post for approval on %3", "user-referenced-topic-ago": "%1 referenced this topic %3", @@ -135,6 +137,7 @@ "bookmarks": "Kirjanmerkit", "bookmarks.has-no-bookmarks": "Et ole vielä lisännyt kirjanmerkkeihin yhtään viestiä.", "copy-permalink": "Kopioi pysväislinkki", + "go-to-original": "View Original Post", "loading-more-posts": "Ladataan lisää viestejä", "move-topic": "Siirrä aihe", "move-topics": "Siirrä aiheet", @@ -219,5 +222,7 @@ "downvote-post": "Downvote post", "post-tools": "Post tools", "unread-posts-link": "Unread posts link", - "thumb-image": "Topic thumbnail image" + "thumb-image": "Topic thumbnail image", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/fi/user.json b/public/language/fi/user.json index 9c4dfa17ab..0512671e32 100644 --- a/public/language/fi/user.json +++ b/public/language/fi/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Kategoriaseurannan oletustaso", "followers": "Seuraajat", "following": "Seuratut", + "shares": "Shares", "blocks": "Estot", "blocked-users": "Estetyt käyttäjät", "block-toggle": "Toggle Block", @@ -59,8 +60,10 @@ "chat-with": "Jatka keskustelua %1 kanssa", "new-chat-with": "Aloita keskutelu %1 kanssa", "flag-profile": "Flag Profile", + "profile-flagged": "Already flagged", "follow": "Seuraa", "unfollow": "Älä seuraa", + "cancel-follow": "Cancel follow request", "more": "Lisää", "profile-update-success": "Profiili päivitettiin onnistuneesti!", "change-picture": "Vaihda kuva", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "This user hasn't downvoted any posts yet.", "has-no-controversial-posts": "This user does not have any downvoted posts yet.", "has-no-blocks": "Et ole estänyt käyttäjiä.", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "Sähköpostiosoite on piilotettu", "hidden": "piilotettu", "paginate-description": "Erota aiheet ja viestit sivuille päättymättömän vierityksen sijaan", diff --git a/public/language/fi/world.json b/public/language/fi/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/fi/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/fr/admin/manage/categories.json b/public/language/fr/admin/manage/categories.json index f349bdda06..ca50d0d09d 100644 --- a/public/language/fr/admin/manage/categories.json +++ b/public/language/fr/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Privilèges", "back-to-categories": "Retour aux catégories", "name": "Nom de la catégorie", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Description de la catégorie", "bg-color": "Couleur d'arrière plan", "text-color": "Couleur du texte", @@ -37,6 +39,7 @@ "disable": "Désactiver", "edit": "Éditer", "analytics": "Statistiques", + "federation": "Federation", "view-category": "Voir la catégorie", "set-order": "Définir l'ordre", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Image 3 - Sujets créés par jour dans catégorie", "analytics.posts-daily": "Image 4 - Messages par jour postés dans cette catégorie", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Créée", "alert.create-success": "Catégorie créée avec succès !", "alert.none-active": "Vous n'avez aucune catégorie active.", diff --git a/public/language/fr/admin/menu.json b/public/language/fr/admin/menu.json index a3b607115b..b8d880402a 100644 --- a/public/language/fr/admin/menu.json +++ b/public/language/fr/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Mots-clés", "settings/notifications": "Notifications", "settings/api": "Gestion API", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Sons", "settings/social": "Social", "settings/cookies": "Cookies", diff --git a/public/language/fr/admin/settings/activitypub.json b/public/language/fr/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/fr/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/fr/error.json b/public/language/fr/error.json index 6ba1652dd6..53570b9996 100644 --- a/public/language/fr/error.json +++ b/public/language/fr/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "Vous n'êtes pas autorisé à modifier l'état des plugins car ils sont définis au moment de l'exécution (config.json, variables d'environnement ou arguments de terminal), veuillez plutôt modifier la configuration.", "theme-not-set-in-configuration": "Lors de la définition des plugins actifs, le changement de thème nécessite d'ajouter le nouveau thème à la liste des plugins actifs avant de le mettre à jour dans l'ACP", "topic-event-unrecognized": "Événement du sujet '%1' non reconnu", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Cette catégorie ne peut être une catégorie principale", "cant-set-self-as-parent": "Ne peut être définie comme catégorie principale", "api.master-token-no-uid": "Un jeton principal a été reçu sans `_uid` correspondant dans le corps de la requête", @@ -247,5 +248,11 @@ "api.500": "Une erreur inattendue s'est produite lors de la tentative de traitement de votre demande.", "api.501": "L'accès n'est pas encore fonctionnel, veuillez réessayer demain", "api.503": "L'accès n'est pas disponible actuellement en raison de la configuration du serveur", - "api.reauth-required": "La ressource à laquelle vous tentez d'accéder nécessite une (ré-)authentification." + "api.reauth-required": "La ressource à laquelle vous tentez d'accéder nécessite une (ré-)authentification.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/fr/flags.json b/public/language/fr/flags.json index 1716ce7fff..30223e8eba 100644 --- a/public/language/fr/flags.json +++ b/public/language/fr/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Choquant", "modal-reason-other": "Autre (précisez ci-dessous)", "modal-reason-custom": "Motif du signalement...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Soumettre", "modal-submit-success": "Le contenu a été soumis pour examen.", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Actions en vrac", "bulk-resolve": "Signalement(s) résolu(s)", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 signalements mis à jour", "flagged-timeago": "Signalé ", "auto-flagged": "[Auto Signalement] A reçu %1 votes négatifs." diff --git a/public/language/fr/global.json b/public/language/fr/global.json index 6c52f81e4c..7b5cf21869 100644 --- a/public/language/fr/global.json +++ b/public/language/fr/global.json @@ -50,6 +50,7 @@ "header.navigation": "Navigation", "header.manage": "Gestion", "header.drafts": "Brouillons", + "header.world": "World", "notifications.loading": "Chargement des notifications", "chats.loading": "Chargement des discussions", "drafts.loading": "Chargement des brouillons", @@ -110,6 +111,7 @@ "dnd": "Occupé", "invisible": "Invisible", "offline": "Hors-ligne", + "remote-user": "This user is from outside of this forum", "email": "Email", "language": "Langue", "guest": "Invité", diff --git a/public/language/fr/modules.json b/public/language/fr/modules.json index 0a00ef0366..475fd1d297 100644 --- a/public/language/fr/modules.json +++ b/public/language/fr/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Supprimer tous les brouillons", "composer.no-drafts": "Vous n'avez pas de brouillons", "composer.discard-draft-confirm": "Voulez-vous supprimer ce brouillon ?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "OK", "bootbox.cancel": "Annuler", "bootbox.confirm": "Confirmer", diff --git a/public/language/fr/notifications.json b/public/language/fr/notifications.json index 238af0254d..00cdc357b9 100644 --- a/public/language/fr/notifications.json +++ b/public/language/fr/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "Lorsque un nouveau message est mis en file d'attente", "notificationType-new-post-flag": "Lorsque un message est marqué", "notificationType-new-user-flag": "Lorsque un utilisateur est marqué", - "notificationType-new-reward": "Lorsque vous gagnez une nouvelle récompense" + "notificationType-new-reward": "Lorsque vous gagnez une nouvelle récompense", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/fr/pages.json b/public/language/fr/pages.json index 231f7d765e..c636c03bbc 100644 --- a/public/language/fr/pages.json +++ b/public/language/fr/pages.json @@ -36,6 +36,7 @@ "chat": "Conversation avec %1", "flags": "Signalements", "flag-details": "Détails signalement %1", + "world": "World", "account/edit": "Édition de \"%1\"", "account/edit/password": "Édition du mot de passe de \"%1\"", "account/edit/username": "Édition du nom d'utilisateur de \"%1\"", @@ -62,6 +63,7 @@ "account/blocks": "Utilisateurs bloqués pour %1", "account/uploads": "Envoyé par %1", "account/sessions": "Sessions des connexions", + "account/shares": "Topics shared by %1", "confirm": "E-mail vérifié", "maintenance.text": "%1 est actuellement en cours de maintenance.
Veuillez revenir ultérieurement.", "maintenance.messageIntro": "De plus, l'administrateur a laissé ce message :", diff --git a/public/language/fr/recent.json b/public/language/fr/recent.json index 78cd114438..4f8e2a3532 100644 --- a/public/language/fr/recent.json +++ b/public/language/fr/recent.json @@ -7,5 +7,7 @@ "alltime": "Toujours", "no-recent-topics": "Il n'y a aucun sujet récent.", "no-popular-topics": "Il n'y a pas de sujet populaire.", - "load-new-posts": "Charger les nouveaux messages" + "load-new-posts": "Charger les nouveaux messages", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/fr/topic.json b/public/language/fr/topic.json index 5a6014403a..35fe9b1dc4 100644 --- a/public/language/fr/topic.json +++ b/public/language/fr/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 a restauré ce sujet sur %2", "user-moved-topic-from-ago": "%1 a déplacé ce sujet de %2 %3", "user-moved-topic-from-on": "%1 a déplacé ce sujet de %2 sur %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 message En attente pour approbation %3", "user-queued-post-on": "%1 message En attente pour approbation sur %3", "user-referenced-topic-ago": "%1 a fait référence à ce sujet %3", @@ -135,6 +137,7 @@ "bookmarks": "Marque-pages", "bookmarks.has-no-bookmarks": "Vous n'avez encore aucun marque-page.", "copy-permalink": "Copier le permalien", + "go-to-original": "View Original Post", "loading-more-posts": "Charger plus de messages", "move-topic": "Déplacer le sujet", "move-topics": "Déplacer les sujets", @@ -219,5 +222,7 @@ "downvote-post": "Vote négatif", "post-tools": "Outils pour les messages", "unread-posts-link": "Lien pour les messages non lus", - "thumb-image": "Vignette du sujet" + "thumb-image": "Vignette du sujet", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/fr/user.json b/public/language/fr/user.json index 3e2c846aeb..ae556808c5 100644 --- a/public/language/fr/user.json +++ b/public/language/fr/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Abonnement par défaut des catégories", "followers": "Abonnés", "following": "Abonnements", + "shares": "Shares", "blocks": "Bloqués", "blocked-users": "Utilisateurs bloqués", "block-toggle": "Débloquer", @@ -59,8 +60,10 @@ "chat-with": "Continuer la discussion avec %1", "new-chat-with": "Commencer une nouvelle discussion avec %1", "flag-profile": "Signaler le profil", + "profile-flagged": "Already flagged", "follow": "S'abonner", "unfollow": "Se désabonner", + "cancel-follow": "Cancel follow request", "more": "Plus", "profile-update-success": "Le profil a bien été mis à jour !", "change-picture": "Changer l'image", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "Cet utilisateur n'a pas donné d'avis négatif.", "has-no-controversial-posts": "Cet utilisateur n'a pas encore d'avis négatif.", "has-no-blocks": "Vous n'avez bloqué aucun utilisateur.", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "E-mail masqué", "hidden": "masqué", "paginate-description": "Utiliser la pagination des sujets et des messages à la place du défilement infini", diff --git a/public/language/fr/world.json b/public/language/fr/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/fr/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/gl/admin/manage/categories.json b/public/language/gl/admin/manage/categories.json index 8a9ff471b0..a5c0253dae 100644 --- a/public/language/gl/admin/manage/categories.json +++ b/public/language/gl/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Privileges", "back-to-categories": "Back to categories", "name": "Category Name", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Category Description", "bg-color": "Background Colour", "text-color": "Text Colour", @@ -37,6 +39,7 @@ "disable": "Disable", "edit": "Edit", "analytics": "Analytics", + "federation": "Federation", "view-category": "View category", "set-order": "Set order", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Figure 3 – Daily topics created in this category", "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Created", "alert.create-success": "Category successfully created!", "alert.none-active": "You have no active categories.", diff --git a/public/language/gl/admin/menu.json b/public/language/gl/admin/menu.json index 6e30be22b3..913c74f475 100644 --- a/public/language/gl/admin/menu.json +++ b/public/language/gl/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Tags", "settings/notifications": "Notifications", "settings/api": "API Access", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Sounds", "settings/social": "Social", "settings/cookies": "Cookies", diff --git a/public/language/gl/admin/settings/activitypub.json b/public/language/gl/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/gl/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/gl/error.json b/public/language/gl/error.json index 430893597d..8247cd635b 100644 --- a/public/language/gl/error.json +++ b/public/language/gl/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", "topic-event-unrecognized": "Topic event '%1' unrecognized", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Can't set child as parent category", "cant-set-self-as-parent": "Can't set self as parent category", "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body", @@ -247,5 +248,11 @@ "api.500": "An unexpected error was encountered while attempting to service your request.", "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow", "api.503": "The route you are trying to call is not currently available due to a server configuration", - "api.reauth-required": "The resource you are trying to access requires (re-)authentication." + "api.reauth-required": "The resource you are trying to access requires (re-)authentication.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/gl/flags.json b/public/language/gl/flags.json index 2dd293a0dd..11440df771 100644 --- a/public/language/gl/flags.json +++ b/public/language/gl/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Ofensivo", "modal-reason-other": "Other (specify below)", "modal-reason-custom": "Motivo para reportar este contido...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Enviar Reporte", "modal-submit-success": "Contido marcado para moderación", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 flags updated", "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." diff --git a/public/language/gl/global.json b/public/language/gl/global.json index 52c835a629..b6c164a0f9 100644 --- a/public/language/gl/global.json +++ b/public/language/gl/global.json @@ -50,6 +50,7 @@ "header.navigation": "Navegación", "header.manage": "Manage", "header.drafts": "Drafts", + "header.world": "World", "notifications.loading": "Cargando Notificacións", "chats.loading": "Cargando Charlas", "drafts.loading": "Loading Drafts", @@ -110,6 +111,7 @@ "dnd": "Non dispoñible", "invisible": "Invisible", "offline": "Desconectado", + "remote-user": "This user is from outside of this forum", "email": "Correo Electrónico", "language": "Idioma", "guest": "Invitado", diff --git a/public/language/gl/modules.json b/public/language/gl/modules.json index 9ae65b1d4f..437ec89919 100644 --- a/public/language/gl/modules.json +++ b/public/language/gl/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Discard all drafts", "composer.no-drafts": "You have no drafts", "composer.discard-draft-confirm": "Do you want to discard this draft?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "De acordo", "bootbox.cancel": "Cancelar", "bootbox.confirm": "Confirmar", diff --git a/public/language/gl/notifications.json b/public/language/gl/notifications.json index abbf8c88e7..4cafb94b12 100644 --- a/public/language/gl/notifications.json +++ b/public/language/gl/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "When a new post is queued", "notificationType-new-post-flag": "When a post is flagged", "notificationType-new-user-flag": "When a user is flagged", - "notificationType-new-reward": "When you earn a new reward" + "notificationType-new-reward": "When you earn a new reward", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/gl/pages.json b/public/language/gl/pages.json index 4b72891e94..44eb396b81 100644 --- a/public/language/gl/pages.json +++ b/public/language/gl/pages.json @@ -36,6 +36,7 @@ "chat": "Falando con %1", "flags": "Flags", "flag-details": "Flag %1 Details", + "world": "World", "account/edit": "Editando \"%1\"", "account/edit/password": "Editando contrasinal \"%1\"", "account/edit/username": "Editando nome de usuario \"%1\"", @@ -62,6 +63,7 @@ "account/blocks": "Blocked users for %1", "account/uploads": "Uploads by %1", "account/sessions": "Login Sessions", + "account/shares": "Topics shared by %1", "confirm": "Enderezo electrónico confirmado", "maintenance.text": "%1 is currently undergoing maintenance.
Please come back another time.", "maintenance.messageIntro": "A máis, o administrador deixou esta mensaxe:", diff --git a/public/language/gl/recent.json b/public/language/gl/recent.json index d85fa882f3..9f1c1e9224 100644 --- a/public/language/gl/recent.json +++ b/public/language/gl/recent.json @@ -7,5 +7,7 @@ "alltime": "Dende o principio", "no-recent-topics": "Non hai temas recentes", "no-popular-topics": "Non hai temas populares", - "load-new-posts": "Load new posts" + "load-new-posts": "Load new posts", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/gl/topic.json b/public/language/gl/topic.json index a907634a7a..1422a1cd53 100644 --- a/public/language/gl/topic.json +++ b/public/language/gl/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 restored this topic on %2", "user-moved-topic-from-ago": "%1 moved this topic from %2 %3", "user-moved-topic-from-on": "%1 moved this topic from %2 on %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 queued post for approval %3", "user-queued-post-on": "%1 queued post for approval on %3", "user-referenced-topic-ago": "%1 referenced this topic %3", @@ -135,6 +137,7 @@ "bookmarks": "Marcadores", "bookmarks.has-no-bookmarks": "Aínda non ten marcadores", "copy-permalink": "Copy Permalink", + "go-to-original": "View Original Post", "loading-more-posts": "Cargando máis publicacións", "move-topic": "Mover Tema", "move-topics": "Mover Temas", @@ -219,5 +222,7 @@ "downvote-post": "Downvote post", "post-tools": "Post tools", "unread-posts-link": "Unread posts link", - "thumb-image": "Topic thumbnail image" + "thumb-image": "Topic thumbnail image", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/gl/user.json b/public/language/gl/user.json index 28871c5ebc..9f357db66b 100644 --- a/public/language/gl/user.json +++ b/public/language/gl/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Default category watch state", "followers": "Seguidores", "following": "Seguindo", + "shares": "Shares", "blocks": "Blocks", "blocked-users": "Blocked users", "block-toggle": "Toggle Block", @@ -59,8 +60,10 @@ "chat-with": "Continuar a falar con %1", "new-chat-with": "Comezar a falar con %1", "flag-profile": "Flag Profile", + "profile-flagged": "Already flagged", "follow": "Seguir", "unfollow": "Deixar de seguir", + "cancel-follow": "Cancel follow request", "more": "máis", "profile-update-success": "O perfil foi actualizado correctamente!", "change-picture": "Cambia-la foto", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "Este usuario aínda non votou negativamente ninguna mensaxe.", "has-no-controversial-posts": "This user does not have any downvoted posts yet.", "has-no-blocks": "You have blocked no users.", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "Correo Agochado", "hidden": "Agochado", "paginate-description": "Paxinar temas e publicacións no canto de usar scroll infinito", diff --git a/public/language/gl/world.json b/public/language/gl/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/gl/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/he/admin/admin.json b/public/language/he/admin/admin.json index 7e94d2b2ba..062691e7da 100644 --- a/public/language/he/admin/admin.json +++ b/public/language/he/admin/admin.json @@ -1,18 +1,18 @@ { - "alert.confirm-rebuild-and-restart": "האם אתה בטוח שברצונך לבנות ולהפעיל מחדש את NodeBB?", - "alert.confirm-restart": "האם אתה בטוח שברצונך להפעיל מחדש את NodeBB?", + "alert.confirm-rebuild-and-restart": "האם אתם בטוחים שברצונכם לבנות ולהפעיל מחדש את NodeBB?", + "alert.confirm-restart": "האם אתם בטוחים שברצונכם להפעיל מחדש את NodeBB?", - "acp-title": "%1 | לוח בקרה למנהל פורום NodeBB", + "acp-title": "%1 | לוח בקרה למנהלי הפורום NodeBB", "settings-header-contents": "תוכן", "changes-saved": "השינויים נשמרו", - "changes-saved-message": "השינויים שלך בתצורת NodeBB נשמרו.", + "changes-saved-message": "השינויים שלכם בתצורת NodeBB נשמרו.", "changes-not-saved": "השינויים לא נשמרו", "changes-not-saved-message": "NodeBB נתקל בבעיה בשמירת השינויים שלך. (%1)", - "save-changes": "שמור שינויים", + "save-changes": "שמירת שינויים", "min": "מינימום:", "max": "מקסימום:", "view": "צפייה", "edit": "עריכה", "add": "הוספה", - "select-icon": "בחר סמל" + "select-icon": "בחירת סמל" } \ No newline at end of file diff --git a/public/language/he/admin/advanced/cache.json b/public/language/he/admin/advanced/cache.json index 5607b4ca42..c6500c1bd0 100644 --- a/public/language/he/admin/advanced/cache.json +++ b/public/language/he/admin/advanced/cache.json @@ -1,10 +1,10 @@ { "cache": "מטמון", "post-cache": "מטמון פוסטים", - "group-cache": "Group Cache", + "group-cache": "מטמון קבוצות", "local-cache": "מטמון מקומי", - "object-cache": "Object Cache", - "percent-full": "%1% Full", + "object-cache": "מטמון אובייקטים", + "percent-full": "%1% מלא", "post-cache-size": "גודל מטמון פוסטים", "items-in-cache": "פריטים במטמון" } \ No newline at end of file diff --git a/public/language/he/admin/advanced/database.json b/public/language/he/admin/advanced/database.json index c8bb1ec8e4..68c0208cb3 100644 --- a/public/language/he/admin/advanced/database.json +++ b/public/language/he/admin/advanced/database.json @@ -15,7 +15,7 @@ "mongo.storage-size": "גודל האחסון", "mongo.index-size": "גודל האינדקס", "mongo.file-size": "גודל הקובץ", - "mongo.resident-memory": "זכרון קיים", + "mongo.resident-memory": "זיכרון קיים", "mongo.virtual-memory": "זיכרון וירטואלי", "mongo.mapped-memory": "זיכרון ממופה", "mongo.bytes-in": "ביטים נכנסים", diff --git a/public/language/he/admin/development/info.json b/public/language/he/admin/development/info.json index fb2e0ccd54..d0b09aa382 100644 --- a/public/language/he/admin/development/info.json +++ b/public/language/he/admin/development/info.json @@ -1,7 +1,7 @@ { "you-are-on": "אתה נמצא ב %1:%2", "ip": "IP %1", - "nodes-responded": "%1 צמתים הגיבו בתוך %2מילי שניות!", + "nodes-responded": "%1 nodes הגיבו בתוך %2 מילי שניות!", "host": "host", "primary": "ראשי / עבודות", "pid": "pid", diff --git a/public/language/he/admin/development/logger.json b/public/language/he/admin/development/logger.json index a9b481dc70..1bdf92c432 100644 --- a/public/language/he/admin/development/logger.json +++ b/public/language/he/admin/development/logger.json @@ -1,13 +1,13 @@ { "logger": "Logger", "logger-settings": "הגדרות לוגים", - "description": "על-ידי הפיכת תיבות הסימון לזמינות, תקבל יומני רישום למסוף שלך. אם תציין נתיב, יומני הרישום יישמרו בקובץ במקום זאת. רישום HTTP שימושי לאיסוף נתונים סטטיסטיים אודות מי ומתי אנשים נכנסים לפורום שלך. בנוסף לרישום בקשות ה-HTTP, אנו יכולים גם לרשום אירועי Socket.io, אשר בשילוב עם מודד redis-cli, יכול להיות מאוד מועיל ללימוד הפנימיים של NodeBB.", - "explanation": "הפעל או ​בטל את סימון הגדרות הרישום כדי לאפשר או להשבית כניסה במהירות. אין צורך בהפעלה מחדש.", - "enable-http": "הפעל רישום HTTP", - "enable-socket": "הפעל רישום אירועים ב-socket.io", + "description": "בהפעלת תיבות הסימון, תקבלו יומני רישום-לוגים בטרמינל שלכם. אם תציינו נתיב, יומני הרישום יישמרו בקובץ בנתיב שצוין במקום זאת. רישום HTTP שימושי לאיסוף נתונים סטטיסטיים אודות מי ומתי אנשים נכנסו לפורום שלכם. בנוסף לרישום בקשות ה-HTTP, אנו יכולים גם לרשום אירועי Socket.io, אשר בשילוב עם מודד redis-cli, יכול להיות מאוד מועיל ללימוד הפנימיים של NodeBB.", + "explanation": "הפעילו או ​בטלו את סימון הגדרות הרישום כדי לאפשר או להשבית כניסה במהירות. אין צורך בהפעלה מחדש.", + "enable-http": "הפעלת רישום HTTP", + "enable-socket": "הפעלת רישום אירועים ב-socket.io", "file-path": "נתיב קובץ לוג", - "file-path-placeholder": "/path/to/log/file.log ::: השאר ריק כדי להיכנס לטרמינל שלך", + "file-path-placeholder": "/path/to/log/file.log ::: השאירו ריק כדי שהלוג ישמר בטרמינל שלך", "control-panel": "ניהול לוגים", - "update-settings": "עדכן הגדרות לוגים" + "update-settings": "עידכון הגדרות לוגים" } \ No newline at end of file diff --git a/public/language/he/admin/extend/plugins.json b/public/language/he/admin/extend/plugins.json index 07ce4ff67c..b1a3d0cb7c 100644 --- a/public/language/he/admin/extend/plugins.json +++ b/public/language/he/admin/extend/plugins.json @@ -1,16 +1,16 @@ { "plugins": "תוספים", - "trending": "פופולארי", - "installed": "הותקן", + "trending": "פופולרי", + "installed": "מותקן", "active": "פעיל", "inactive": "לא-פעיל", "out-of-date": "פג תוקף", "none-found": "לא נמצאו תוספים", "none-active": "אין תוספים פעילים", - "find-plugins": "מצא תוספים", + "find-plugins": "מציאת תוספים", "plugin-search": "חיפוש תוספים", - "plugin-search-placeholder": "חפשו תוספים...", + "plugin-search-placeholder": "חיפוש תוספים...", "submit-anonymous-usage": "שליחת נתוני שימוש אנונימיים בתוספים.", "reorder-plugins": "סידור תוספים מחדש", "order-active": "סידור תוספים פעילים", diff --git a/public/language/he/admin/manage/categories.json b/public/language/he/admin/manage/categories.json index 8018e022b1..8cc669e9d8 100644 --- a/public/language/he/admin/manage/categories.json +++ b/public/language/he/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "הרשאות", "back-to-categories": "חזרה לרשימת הקטגוריות", "name": "שם קטגוריה", + "handle": "מקשר קטגוריה", + "handle.help": "המקשר לקטגוריה שלך משמשת כייצוג של קטגוריה זו ברשתות אחרות, בדומה לשם משתמש. נקודת אחיזה בקטגוריה אינה יכולה להתאים לשם משתמש או קבוצת משתמשים קיימים.", "description": "תיאור קטגוריה", "bg-color": "צבע רקע", "text-color": "צבע טקסט", @@ -37,6 +39,7 @@ "disable": "השבתה", "edit": "עריכה", "analytics": "ניתוח", + "federation": "פדרציה", "view-category": "הצגת קטגוריה", "set-order": "קביעת סדר", @@ -76,6 +79,22 @@ "analytics.topics-daily": "תרשים 3 – נושאים יומיים שנוצרו בקטגוריה זו", "analytics.posts-daily": "תרשים 4 – פוסטים יומיים שפורסמו בקטגוריה זו", + "federation.title": "הגדרות הפדרציה עבור קטגוריה \"%1\"", + "federation.disabled": "הפדרציה מושבתת בכל האתר, כך שהגדרות הפדרציה של קטגוריות אינן זמינות כרגע.", + "federation.disabled-cta": "הגדרות הפדרציה →", + "federation.syncing-header": "סנכרון", + "federation.syncing-intro": "קטגוריה יכולה לעקוב אחר \"שחקן קבוצתי\" באמצעות פרוטוקול ActivityPub. אם יתקבל תוכן מאחד השחקנים המפורטים למטה, הוא יתווסף אוטומטית לקטגוריה זו.", + "federation.syncing-caveat": "הגדרת סנכרון N.B. כאן יוצרת סנכרון חד כיווני. NodeBB מנסה להירשם/לעקוב אחרי השחקן, אך לא ניתן להניח את ההיפך.", + "federation.syncing-none": "קטגוריה זו אינה עוקבת כעת אחר אף אחד.", + "federation.syncing-add": "סנכרן עם...", + "federation.syncing-actorUri": "שחקן", + "federation.syncing-follow": "עקוב", + "federation.syncing-unfollow": "הפסקת מעקב", + "federation.followers": "משתמשים מרחוק העוקבים אחר קטגוריה זו", + "federation.followers-handle": "קישור", + "federation.followers-id": "ID", + "federation.followers-none": "אין עוקבים.", + "alert.created": "נוצר", "alert.create-success": "קטגוריה נוצרה בהצלחה!", "alert.none-active": "אין לך קטגוריות פעילות.", diff --git a/public/language/he/admin/manage/user-custom-fields.json b/public/language/he/admin/manage/user-custom-fields.json index f759711c66..cebeee41fe 100644 --- a/public/language/he/admin/manage/user-custom-fields.json +++ b/public/language/he/admin/manage/user-custom-fields.json @@ -6,23 +6,23 @@ "type-of-input": "סוג קלט", "key": "מפתח", "name": "שם", - "icon": "Icon", + "icon": "סמליל", "type": "סוג", "min-rep": "מינימום מוניטין", "input-type-text": "קלט (טקסט)", "input-type-link": "קלט (קישור)", "input-type-number": "קלט (מספר)", - "input-type-date": "Input (Date)", + "input-type-date": "קלט (תאריך)", "input-type-select": "בחירה", - "input-type-select-multi": "Select Multiple", + "input-type-select-multi": "בחירה מרובה", "select-options": "אפשרויות", "select-options-help": "הוסיפו אפשרות אחת בכל שורה עבור אלמנט select", "minimum-reputation": "מינימום מוניטין", "minimum-reputation-help": "אם למשתמש יש פחות מערך זה, הוא לא יוכל להשתמש בשדה זה", "delete-field-confirm-x": "האם למחוק שדה מותאם אישית \"%1\"?", "custom-fields-saved": "שדות מותאמים אישית נשמרו", - "visibility": "Visibility", - "visibility-all": "Everyone can see the field", - "visibility-loggedin": "Only logged in users can see the field", - "visibility-privileged": "Only privileged users like admins & moderators can see the field" + "visibility": "נראות", + "visibility-all": "כולם יכולים לראות את השדה", + "visibility-loggedin": "רק משתמשים מחוברים יכולים לראות את השדה", + "visibility-privileged": "רק משתמשים מורשים כמו מנהלים ומנחים יכולים לראות את השדה" } \ No newline at end of file diff --git a/public/language/he/admin/menu.json b/public/language/he/admin/menu.json index af4a3d8276..b06f729f77 100644 --- a/public/language/he/admin/menu.json +++ b/public/language/he/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "תגיות", "settings/notifications": "התראות", "settings/api": "גישת API", + "settings/activitypub": "הפדרציה (ActivityPub)", "settings/sounds": "שמע", "settings/social": "חברתי", "settings/cookies": "עוגיות", diff --git a/public/language/he/admin/settings/activitypub.json b/public/language/he/admin/settings/activitypub.json new file mode 100644 index 0000000000..912aab7975 --- /dev/null +++ b/public/language/he/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "מהי הפדרציה?", + "intro-body": "NodeBB מסוגל לתקשר עם מופעי NodeBB אחרים התומכים בו. זה מושג באמצעות פרוטוקול הנקרא ActivityPub. אם זה מופעל, NodeBB יוכל גם לתקשר עם אפליקציות ואתרים אחרים המשתמשים ב-ActivityPub (למשל Mastodon, Peertube וכו')", + "general": "ראשי", + "pruning": "טיהור תוכן", + "content-pruning": "מספר ימים לשמירת תוכן מרחוק", + "content-pruning-help": "שימו לב שתוכן מרוחק שקיבל מעורבות (תשובה או הצבעה למעלה/למטה) יישמר. (0 להשבתה)", + "user-pruning": "מספר ימים לאחסון החשבונות משתמש מהמידע המרוחק", + "user-pruning-help": "חשבונות משתמשים מהמידע המרוחק ימחקו רק במידה ואין להם פוסטים. אחרת הם יאוחזרו מחדש. (0 להשבתה)", + "enabled": "הפעלת פדרציה", + "enabled-help": "אם זה מופעל, NodeBB זה יוכל גם לתקשר עם כל הלקוחות התומכים ב-Activitypub במרחב הפדראלי הרחב.", + "allowLoopback": "אפשר עיבוד loopback", + "allowLoopback-help": "שימושי למטרות ניפוי באגים בלבד. אתם כנראה תרצו להשאיר את זה מושבת.", + + "probe": "פתיחה באפליקציה", + "probe-enabled": "נסו לפתוח משאבים התומכים ב-ActivityPub ב-NodeBB", + "probe-enabled-help": "אם זה מופעל, NodeBB יבדוק כל קישור חיצוני עבור המקבילה של ActivityPub, ויטען אותו ב-NodeBB במקום זאת.", + "probe-timeout": "פסק זמן לחיפוש (מילישניות)", + "probe-timeout-help": "(ברירת מחדל: 2000) אם שאילתת החיפוש לא תקבל תגובה בתוך מסגרת הזמן שנקבעה, המשתמש יישלח ישירות לקישור. התאימו מספר זה גבוה יותר אם אתרים מגיבים באיטיות וברצונכם להקדיש זמן נוסף.", + + "server-filtering": "סינון", + "count": "NodeBB זה מודע כרגע ל-%1 שרתים", + "server.filter-help": "ציין שרתים שברצונך למנוע מהתאחדות עם ה-NodeBB שלך. לחלופין, אתה יכול לבחור באופן סלקטיבי פדרציה מאושרים עם שרתים ספציפיים, במקום זאת. שתי האפשרויות נתמכות, אם כי הן סותרות זו את זו.", + "server.filter-help-hostname": "הזן רק את שם המארח של המופע למטה (למשל.example.org), מופרדים עם מעברי שורות.", + "server.filter-allow-list": "השתמשו בזה בתור רשימת אישורים במקום זאת" +} \ No newline at end of file diff --git a/public/language/he/admin/settings/advanced.json b/public/language/he/admin/settings/advanced.json index bf7d161cbb..d29f7f3560 100644 --- a/public/language/he/admin/settings/advanced.json +++ b/public/language/he/admin/settings/advanced.json @@ -4,8 +4,8 @@ "maintenance-mode.status": "קוד מצב תחזוקה", "maintenance-mode.message": "הודעת תחזוקה", "maintenance-mode.groups-exempt-from-maintenance-mode": "בחר קבוצות שיש לפטור ממצב תחזוקה", - "headers": "כותרות", - "headers.allow-from": "הגדר ALLOW-FROM למקם NodeBB ב- iFrame", + "headers": "כותרות-Headers", + "headers.allow-from": "הגדרת ALLOW-FROM למקם NodeBB ב- iFrame", "headers.csp-frame-ancestors": "הגדר את מדיניות האבטחה (Content-Security-Policy) עבור ההטמעה (frame-ancestors) של NodeBB בתוך Iframe", "headers.csp-frame-ancestors-help": "בחר מילים שמורות כמו 'none' (ללא) 'self' (רק מהאתר שלי) או כתובת מלאה של אתר חיצוני", "headers.powered-by": "התאם אישית את הכותרת \"מופעל ע\"י\" הברירת מחדל של נודביבי", @@ -24,7 +24,7 @@ "headers.permissions-policy-help": "מאפשר להגדיר את כותרת מדיניות ההרשאות (permissions policy header), לדוגמה \"geolocation=*, camera=()\". ראה כאן למידע נוסף.", "hsts": "Strict Transport Security", "hsts.enabled": "הפעל HSTS (מומלץ)", - "hsts.maxAge": "גיל כותרת HSTS", + "hsts.maxAge": "HSTS Max Age", "hsts.subdomains": "כלול תת-דומיינים בכותרת HSTS", "hsts.preload": "אפשר טעינה מוקדמת של כותרת ה-HSTS", "hsts.help": "אם מופעל, תוגדר כותרת HSTS עבור אתר זה. אתה יכול לבחור לכלול תת-דומיינים ודגלי טעינה מראש בכותרת שלך. אם יש לך ספק, אתה יכול להשאיר את אלה ללא סימון. מידע נוסף ", @@ -45,6 +45,6 @@ "analytics.max-cache": "גודל מקסימלי של מטמון Analytics", "analytics.max-cache-help": "בהתקנות עם תעבורה גבוהה, המטמון עלול להתרוקן ברציפות אם יש יותר משתמשים פעילים במקביל מערך המטמון המקסימלי. (הפעלה מחדש נדרשת)", "compression.settings": "הגדרות דחיסה", - "compression.enable": "אפשר דחיסה", + "compression.enable": "הפעלת דחיסה", "compression.help": "הגדרה זו מפעילה דחיסת gzip. עבור אתר אינטרנט מרובה תנועה בייצור, הדרך הטובה ביותר להפעיל דחיסה היא ליישם אותו ברמת פרוקסי הפוך. אתה יכול להפעיל אותו כאן למטרות בדיקה." } \ No newline at end of file diff --git a/public/language/he/admin/settings/email.json b/public/language/he/admin/settings/email.json index 0495768930..ee480765fc 100644 --- a/public/language/he/admin/settings/email.json +++ b/public/language/he/admin/settings/email.json @@ -9,44 +9,44 @@ "confirmation.expiry": "מספר שעות לשמירה על קישור אימות הדוא\"ל בתוקף", "smtp-transport": "SMTP Transport", - "smtp-transport.enabled": "Enable SMTP Transport", - "smtp-transport-help": "You can select from a list of well-known services or enter a custom one.", - "smtp-transport.service": "Select a service", - "smtp-transport.service-custom": "Custom Service", - "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", - "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", - "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", - "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", + "smtp-transport.enabled": "הפעלת SMTP Transport", + "smtp-transport-help": "ניתן לבחור מתוך רשימה של שירותים ידועים או להזין שירות מותאם אישית.", + "smtp-transport.service": "בחירת שירות", + "smtp-transport.service-custom": "שירות מותאם אישית", + "smtp-transport.service-help": "בחרו שם שירות למעלה כדי להשתמש במידע הידוע עליו. לחלופין, בחרו "שירות מותאם אישית" והזינו את הפרטים למטה.", + "smtp-transport.gmail-warning1": "אם אתם משתמשים ב-Gmail כספק הדוא\"ל שלכם, תצטרכו ליצור \"סיסמת אפליקציה\" כדי ש-NodeBB יאמת בהצלחה. אתם יכולים ליצור אחד כזה בדף סיסמאות לאפליקציה ", + "smtp-transport.gmail-warning2": "למידע נוסף על פתרון זה, אנא עיינו במאמר זה של NodeMailer בנושא. חלופה נוספת תהיה השתמשות בתוסף אימייל צד שלישי כגון SendGrid, Mailgun וכדומה. צפו בתוספים הזמינים כאן.", + "smtp-transport.auto-enable-toast": "נראה שאתה מגדיר תחבורה SMTP. הפעלנו עבורך את אפשרות \"העברה SMTP\".", "smtp-transport.host": "SMTP Host", "smtp-transport.port": "SMTP Port", - "smtp-transport.security": "Connection security", - "smtp-transport.security-encrypted": "Encrypted", + "smtp-transport.security": "אבטחת חיבור", + "smtp-transport.security-encrypted": "מוצפן", "smtp-transport.security-starttls": "StartTLS", "smtp-transport.security-none": "ללא", "smtp-transport.username": "שם משתמש", - "smtp-transport.username-help": "For the Gmail service, enter the full email address here, especially if you are using a Google Apps managed domain.", + "smtp-transport.username-help": "עבור שירות Gmail, הזינו את כתובת הדוא\"ל המלאה כאן, במיוחד אם אתם משתמשים בדומיין מנוהל של Google Apps.", "smtp-transport.password": "סיסמה", - "smtp-transport.pool": "אפשר חיבורים מאוגדים", + "smtp-transport.pool": "הפעלת חיבורים מאוגדים", "smtp-transport.pool-help": "איחוד חיבורים מונע מ- NodeBB ליצור חיבור חדש לכל דואר אלקטרוני. אפשרות זו חלה רק אם SMTP תחבורה מופעלת.", - "template": "ערוך תבנית דוא\"ל", - "template.select": "בחר תבנית דוא\"ל", - "template.revert": "Revert to Original", - "testing": "מייל בדיקה", - "testing.select": "בחר תבנית דוא\"ל", - "testing.send": "שלח מייל בדיקה", - "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "template": "עריכת תבנית דוא\"ל", + "template.select": "בחירת תבנית דוא\"ל", + "template.revert": "החזרה למקור", + "testing": "דוא\"ל בדיקה", + "testing.select": "בחרו תבנית דוא\"ל", + "testing.send": "שלח דוא\"ל בדיקה", + "testing.send-help": "דוא\"ל הבדיקה יישלח לכתובת הדוא\"ל של המשתמש המחובר כעת.", "subscriptions": "תקצירי דואר אלקטרוני", "subscriptions.disable": "הפיכת תקצירי דואר אלקטרוני ללא זמינים", "subscriptions.hour": "שעת תקציר", - "subscriptions.hour-help": "אנא הזן מספר המייצג את השעה לשליחת תקצירי אימייל מתוזמנים (למשל 0 לחצות,17 לשעה 17:00). זכור שזו השעה בהתאם לשרת עצמו, וייתכן שלא בדיוק תואם את שעון המערכת שלך.
זמן השרת המשוער הוא:
התקציר היומי הבא מתוכנן להישלח", - "notifications.remove-images": "הסר תמונות מהודעות דוא\"ל", + "subscriptions.hour-help": "אנא הזינו מספר המייצג את השעה לשליחת תקצירי אימייל מתוזמנים (למשל 0 לחצות,17 לשעה 17:00). זכרו שזו השעה בהתאם לשרת עצמו, וייתכן שזה לא בדיוק תואם את שעון המערכת שלך.
זמן השרת המשוער הוא:
התקציר היומי הבא מתוכנן להישלח", + "notifications.remove-images": "הסרת תמונות מהודעות דוא\"ל", "require-email-address": "דרוש ממשתמשים חדשים כתובת אימייל", "require-email-address-warning": "כברירת מחדל, משתמשים יכולים לבטל את הסכמתם להזנת כתובת דוא\"ל על ידי השארת השדה ריק. הפעלת אפשרות זו פירושה שמשתמשים חדשים יצטרכו להזין ולאשר כתובת דואר אלקטרוני על מנת להמשיך ברישום ובגישה לאחר מכן לפורום. זה לא מבטיח שהמשתמש יזין כתובת אימייל אמיתית, ואפילו לא כתובת שבבעלותו.", - "send-validation-email": "Send validation emails when an email is added or changed", - "include-unverified-emails": "שלח דוא\"ל גם למשתמשים שלא אימתו את הכתובת שלהם", - "include-unverified-warning": "By default, users with emails associated with their account have already been verified, but there are situations where this is not the case (e.g. SSO logins, grandfathered users, etc). Enable this setting at your own risk – sending emails to unverified addresses may be a violation of regional anti-spam laws.", - "prompt": "בקש מהמשתמשים להגדיר/לאמת את כתובת הדוא\"ל שלהם", - "prompt-help": "הצג אזהרה למשתמשים שהדוא\"ל שלהם לא מוגדר/לא מאומת", - "sendEmailToBanned": "שלח אימיילים גם למשתמשים מורחקים" + "send-validation-email": "שליחת דוא\"ל אימות כאשר דוא\"ל מתווסף או משתנה", + "include-unverified-emails": "שליחת דוא\"ל גם למשתמשים שלא אימתו את הכתובת שלהם", + "include-unverified-warning": "כברירת מחדל, משתמשים עם דוא\"ל המשויכים לחשבון שלהם כבר אומתו, אך ישנם מצבים שבהם זה לא המקרה (למשל כניסות SSO וכו'). הפעל הגדרה זו היא על אחריותכם בלבד – שליחת אימיילים לכתובות לא מאומתות עשויה להיות הפרה של חוקי אנטי-ספאם אזוריים.", + "prompt": "בקשו מהמשתמשים להגדיר/לאמת את כתובת הדוא\"ל שלהם", + "prompt-help": "הצגת אזהרה למשתמשים שהדוא\"ל שלהם לא מוגדר/לא מאומת", + "sendEmailToBanned": "שליחת אימיילים גם למשתמשים מורחקים" } diff --git a/public/language/he/admin/settings/group.json b/public/language/he/admin/settings/group.json index 7b39b822f6..0405baaef4 100644 --- a/public/language/he/admin/settings/group.json +++ b/public/language/he/admin/settings/group.json @@ -1,9 +1,9 @@ { - "general": "כללי", + "general": "ראשי", "private-groups": "קבוצות פרטיות", "private-groups.help": "אם אפשרות זו מופעל, צירוף לקבוצות מחייב את אישור הבעלים של הקבוצה (מופעל כברירת מחדל)", "private-groups.warning": "אזהרה! אם אפשרות זו מושבתת ויש לך קבוצות פרטיות, הן יהפכו באופן אוטומטי לציבוריות.", - "allow-multiple-badges": "אפשר תגיות מרובות", + "allow-multiple-badges": "איפשור תגיות מרובות", "allow-multiple-badges-help": "ניתן להשתמש בדגל זה כדי לאפשר למשתמשים לבחור תגי קבוצה מרובים, דורש תמיכה בערכת נושא.", "max-name-length": "אורך שם קבוצה מרבי", "max-title-length": "אורך כותרת קבוצה מרבי", diff --git a/public/language/he/admin/settings/uploads.json b/public/language/he/admin/settings/uploads.json index 61403d3df5..55286bd76d 100644 --- a/public/language/he/admin/settings/uploads.json +++ b/public/language/he/admin/settings/uploads.json @@ -12,7 +12,7 @@ "resize-image-width-threshold-help": "(בפיקסלים, ברירת מחדל: 2000 פיקסלים, הגדירו 0 כדי להשבית)", "resize-image-width": "שינוי גודל תמונות לגודל המוגדר", "resize-image-width-help": "(בפיקסלים, ברירת מחדל: 760 פיקסלים, הגדירו 0 כדי להשבית)", - "resize-image-keep-original": "Keep original image after resize", + "resize-image-keep-original": "שמירת תמונה מקורית לאחר שינוי הגודל", "resize-image-quality": "באיזה איכות להשתמש כאשר משנים תמונה", "resize-image-quality-help": "השתמשו ברזולוציה נמוכה כדי להקטין את גודל התמונה הממוזערת", "max-file-size": "גודל קובץ מירבית (בKiB)", diff --git a/public/language/he/aria.json b/public/language/he/aria.json index 0c429eef3c..adc95d19d6 100644 --- a/public/language/he/aria.json +++ b/public/language/he/aria.json @@ -2,7 +2,7 @@ "post-sort-option": "אפשרות מיון פוסטים, %1", "topic-sort-option": "אפשרות מיון נושאים, %1", "user-avatar-for": "סמליל משתמש עבור %1", - "profile-page-for": "Profile page for user %1", + "profile-page-for": "דף פרופיל למשתמש %1", "user-watched-tags": "צפיית משתמש בתגיות", "delete-upload-button": "כפתור מחיקת העלאה", "group-page-link-for": "%1 קבוצת דפים מקושרים " diff --git a/public/language/he/error.json b/public/language/he/error.json index 382a01c720..382ff79a4c 100644 --- a/public/language/he/error.json +++ b/public/language/he/error.json @@ -184,11 +184,11 @@ "not-enough-reputation-custom-field": "אתה צריך %1 מוניטין עבור %2", "custom-user-field-value-too-long": "ערך שדה מותאם אישית ארוך מדי, %1", "custom-user-field-select-value-invalid": "האפשרות שנבחרה בשדה מותאם אישית אינה חוקית, %1", - "custom-user-field-invalid-text": "Custom field text is invalid, %1", + "custom-user-field-invalid-text": "טקסט שדה מותאם אישית אינו חוקי, %1", "custom-user-field-invalid-link": "קישור שדה מותאם אישית אינו חוקי, %1", "custom-user-field-invalid-number": "מספר השדה המותאם אישית אינו חוקי, %1", - "custom-user-field-invalid-date": "Custom field date is invalid, %1", - "invalid-custom-user-field": "Invalid custom user field, \"%1\" is already used by NodeBB", + "custom-user-field-invalid-date": "תאריך שדה מותאם אישית אינו חוקי, %1", + "invalid-custom-user-field": "שדה משתמש מותאם אישית לא חוקי, \"%1\" נמצא כבר בשימוש על ידי NodeBB", "post-already-flagged": "דיווחתם כבר על פוסט זה", "user-already-flagged": "דיווחתם כבר על משתמש זה", "post-flagged-too-many-times": "התקבל כבר דיווח על פוסט זה.", @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "אינך רשאי לשנות את מצב הפלאגין כפי שהם מוגדרים בזמן ריצה (config.json, משתני סביבה או ארגומנטים של מסוף), אנא שנה את התצורה במקום זאת.", "theme-not-set-in-configuration": "כאשר מגדירים תוספים פעילים בתצורה, שינוי ערכות נושא מחייב הוספת ערכת הנושא החדשה לרשימת התוספים הפעילים לפני עדכון שלו ב-ACP", "topic-event-unrecognized": "אירוע הנושא '%1' לא מזוהה", + "category.handle-taken": "קישור הקטגוריה כבר נלקחה, אנא בחרו אחרת.", "cant-set-child-as-parent": "לא ניתן להגדיר קטגוריה משנה לקטגוריית אב", "cant-set-self-as-parent": "לא ניתן להגדיר את עצמי כקטגוריית אב", "api.master-token-no-uid": "token ראשי התקבל ללא corresponding `_uid` בגוף הבקשה", @@ -247,5 +248,11 @@ "api.500": "שגיאה בלתי צפויה אירעה בעת ניסיון להגיש את בקשתכם.", "api.501": "הנתיב אליו אתם מנסים לתקשר עדיין לא מיושם, אנא נסו שוב מחר", "api.503": "הנתיב אליו אתם מנסים לתקשר אינו זמין כעת עקב תצורת שרת", - "api.reauth-required": "המשאב שאליו אתה מנסה לגשת דורש אימות (מחודש)." + "api.reauth-required": "המשאב שאליו אתה מנסה לגשת דורש אימות (מחודש).", + "activitypub.invalid-id": "לא ניתן לפתור את מזהה הקלט, ככל הנראה מכיוון שהוא פגום.", + "activitypub.get-failed": "לא ניתן לאחזר את המשאב שצוין.", + "activitypub.pubKey-not-found": "לא ניתן לפתור מפתח ציבורי, ולכן לא ניתן לבצע אימות מטען.", + "activitypub.origin-mismatch": "מקור האובייקט שהתקבל אינו תואם את מקור השולח", + "activitypub.actor-mismatch": "הפעילות המתקבלת מתבצעת על ידי שחקן שונה מהמצופה.", + "activitypub.not-implemented": "הבקשה נדחתה מכיוון שהיא או היבט שלה אינם מיושמים על ידי שרת הנמען" } \ No newline at end of file diff --git a/public/language/he/flags.json b/public/language/he/flags.json index 3699a60b26..4707d25984 100644 --- a/public/language/he/flags.json +++ b/public/language/he/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "פוגעני", "modal-reason-other": "אחר (ציינו למטה)", "modal-reason-custom": "הסיבה לדיווח על התוכן...", + "modal-notify-remote": "העברת דוח זה ל %1", "modal-submit": "שליחת דיווח", "modal-submit-success": "התוכן סומן לצרכי בקרה", + "modal-confirm-rescind": "לבטל דוח?", + "bulk-actions": "פעולות כלליות", "bulk-resolve": "השלמת דיווחים", + "confirm-purge": "האם למחוק לצמיתות את הדיווחים הללו?", + "purge-cancelled": "מחיקת הדיווח בוטל", + "bulk-purge": "מחיקת דיווחים", "bulk-success": "%1 דיווחים עודכנו", "flagged-timeago": "מדווחים ", "auto-flagged": "[דיווח אוטומטי] פוסט זה קיבל %1 הצבעות למטה." diff --git a/public/language/he/global.json b/public/language/he/global.json index a5001899b5..6aa371de1d 100644 --- a/public/language/he/global.json +++ b/public/language/he/global.json @@ -50,6 +50,7 @@ "header.navigation": "ניווט", "header.manage": "ניהול", "header.drafts": "טיוטות", + "header.world": "עולם", "notifications.loading": "טוען התראות", "chats.loading": "טוען צ'אטים", "drafts.loading": "טוען טיוטות", @@ -110,6 +111,7 @@ "dnd": "נא לא להפריע", "invisible": "מוסתר", "offline": "מנותק", + "remote-user": "משתמש זה הוא מחוץ לפורום זה", "email": "אימייל", "language": "שפה", "guest": "אורח", @@ -121,8 +123,8 @@ "updated.message": "הפורום עודכן לגרסא האחרונה. נא ללחוץ כאן לעדכון הדף.", "privacy": "פרטיות", "follow": "עקוב", - "unfollow": "הפסיקו לעקוב", - "delete-all": "מחק הכל", + "unfollow": "הפסקת מעקב", + "delete-all": "מחיקת הכל", "map": "מפה", "sessions": "סשני התחברות", "ip-address": "כתובת IP", @@ -131,7 +133,7 @@ "upload": "העלאה", "uploads": "העלאות", "allowed-file-types": "פורמטי הקבצים המורשים הם %1", - "unsaved-changes": "יש לך שינויים שלא נשמרו. האם הנך בטוח שברצונך להמשיך?", + "unsaved-changes": "יש לכם שינויים שלא נשמרו. האם הנכם בטוחים שברצונכם להמשיך?", "reconnecting-message": "החיבור ל-%1 אבד, אנא המתינו בזמן שאנו מנסים לחבר אתכם מחדש", "play": "נגן", "cookies.message": "אתר זה משתמש ב cookies על מנת לשפר את חוויות המשתמש.", diff --git a/public/language/he/modules.json b/public/language/he/modules.json index d8d69c1aac..3cd835e583 100644 --- a/public/language/he/modules.json +++ b/public/language/he/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "מחיקת כל הטיוטות", "composer.no-drafts": "אין לכם טיוטות", "composer.discard-draft-confirm": "האם למחוק טיוטה זו?", + "composer.remote-pid-editing": "עריכת פוסט מרחוק", + "composer.remote-pid-content-immutable": "לא ניתן לערוך את התוכן של פוסטים מרוחקים. עם זאת, תוכלו לשנות את כותרת הנושא והתגיות.", "bootbox.ok": "אישור", "bootbox.cancel": "ביטול", "bootbox.confirm": "אישור", diff --git a/public/language/he/notifications.json b/public/language/he/notifications.json index e9511b976a..ec304b678b 100644 --- a/public/language/he/notifications.json +++ b/public/language/he/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "כשפוסט חדש נכנס לתור", "notificationType-new-post-flag": "כשמדווחים על פוסט", "notificationType-new-user-flag": "כשמדווחים על משתמש", - "notificationType-new-reward": "כאשר אתם מרוויחים פרס חדש" + "notificationType-new-reward": "כאשר אתם מרוויחים פרס חדש", + "activitypub.announce": "%1 שיתפו את הפוסט שלך ב %2 לעוקבים שלהם.", + "activitypub.announce-dual": "%1 ו-%2 שיתף את הפוסט שלך ב %3 לעוקבים שלהם.", + "activitypub.announce-triple": "%1, %2 ו-%3 שיתפו את הפוסט שלך ב %4לעוקבים שלהם.", + "activitypub.announce-multiple": "%1, %2 ו- %3 אחרים שיתפו את הפוסט שלך ב %4 לעוקבים שלהם." } \ No newline at end of file diff --git a/public/language/he/pages.json b/public/language/he/pages.json index 851c2a8577..2d13970077 100644 --- a/public/language/he/pages.json +++ b/public/language/he/pages.json @@ -36,6 +36,7 @@ "chat": "שלחו הודעה פרטית ל%1", "flags": "דיווחים", "flag-details": "פרטי דיווח %1", + "world": "עולם", "account/edit": "עריכת \"%1\"", "account/edit/password": "עריכת סיסמה של \"%1\"", "account/edit/username": "עריכת שם משתמש של \"%1\"", @@ -62,6 +63,7 @@ "account/blocks": "המשתמשים ש-%1 חסם", "account/uploads": "העלאות של %1", "account/sessions": "סשני התחברות", + "account/shares": "נושאים משותפים על ידי %1", "confirm": "כתובת המייל אושרה", "maintenance.text": "%1 נמצא כעת בטיפול תחזוקה.
אנא חזור בפעם אחרת.", "maintenance.messageIntro": "בנוסף, המנהלים השאירו הודעה זו:", diff --git a/public/language/he/recent.json b/public/language/he/recent.json index 7c266850a2..861c641ba2 100644 --- a/public/language/he/recent.json +++ b/public/language/he/recent.json @@ -7,5 +7,7 @@ "alltime": "תמיד", "no-recent-topics": "אין נושאים חדשים.", "no-popular-topics": "אין נושאים פופולריים.", - "load-new-posts": "טעינת פוסטים חדשים" + "load-new-posts": "טעינת פוסטים חדשים", + "uncategorized.title": "כל הנושאים המוכרים", + "uncategorized.intro": "דף זה מציג רשימה כרונולוגית של כל הנושאים שהפורום הזה קיבל.
הדעות המובעות בנושאים שלהלן אינן מנוהלות ועשויות שלא לייצג את הדעות של אתר זה." } \ No newline at end of file diff --git a/public/language/he/topic.json b/public/language/he/topic.json index 7586d1666e..9e479a2da8 100644 --- a/public/language/he/topic.json +++ b/public/language/he/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 שחזר נושא זה ב %2", "user-moved-topic-from-ago": "%1 העביר נושא זה מ-%2 %3", "user-moved-topic-from-on": "%1 העביר נושא זה מ-%2 ב-%3", + "user-shared-topic-ago": "%1 שיתף את הנושא הזה %2", + "user-shared-topic-on": "%1 שיתף את הנושא הזה ב-%2", "user-queued-post-ago": "%1 עומד בתור פוסט לאישור %3", "user-queued-post-on": "%1 עומד בתור פוסט לאישור ב-%3", "user-referenced-topic-ago": "%1 התייחס לנושא זה %3", @@ -135,6 +137,7 @@ "bookmarks": "מועדפים", "bookmarks.has-no-bookmarks": "לא צירפתם פוסט למועדפים עדיין", "copy-permalink": "העתקת קישור לפוסט", + "go-to-original": "צפו בפוסט המקורי", "loading-more-posts": "טוען פוסטים נוספים", "move-topic": "העברת נושא", "move-topics": "העברת נושאים", @@ -219,5 +222,7 @@ "downvote-post": "הצבעה נגד פוסט", "post-tools": "כלי פוסט", "unread-posts-link": "קישור לפוסטים שלא נקראו", - "thumb-image": "תמונה ממוזערת של נושא" + "thumb-image": "תמונה ממוזערת של נושא", + "announcers": "שיתופים", + "announcers-x": "שיתופים (%1)" } \ No newline at end of file diff --git a/public/language/he/user.json b/public/language/he/user.json index 0a231c7aaf..c850298326 100644 --- a/public/language/he/user.json +++ b/public/language/he/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "מצב מעקב על קטגוריה בברירת מחדל", "followers": "עוקבים", "following": "עוקב אחרי", + "shares": "שיתופים", "blocks": "חסימות", "blocked-users": "משתמשים חסומים", "block-toggle": "חסימת/ביטול חסימה", @@ -59,8 +60,10 @@ "chat-with": "המשך צ'אט עם %1", "new-chat-with": "התחלת צ'אט עם %1", "flag-profile": "דיווח על משתמש", + "profile-flagged": "דווח כבר", "follow": "עקוב", "unfollow": "הפסקת מעקב", + "cancel-follow": "ביטול בקשת המעקב", "more": "עוד", "profile-update-success": "הפרופיל עודכן בהצלחה!", "change-picture": "שינוי תמונה", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "המשתמש טרם הצביע נגד פוסטים כלשהם.", "has-no-controversial-posts": "למשתמש זה אין עדיין פוסטים עם הצבעה למטה.", "has-no-blocks": "לא חסמתם אף משתמש.", + "has-no-shares": "משתמש זה לא שיתף שום נושא.", "email-hidden": "כתובת אימייל מוסתרת", "hidden": "מוסתר", "paginate-description": "הצגת נושאים ופוסטים בעמודים במקום כרשימת גלילה אין-סופית", diff --git a/public/language/he/world.json b/public/language/he/world.json new file mode 100644 index 0000000000..3c5b6c3905 --- /dev/null +++ b/public/language/he/world.json @@ -0,0 +1,18 @@ +{ + "name": "עולם", + "popular": "נושאים פופולריים", + "recent": "כל הנושאים", + "help": "עזרה", + + "help.title": "מה זה העמוד הזה?", + "help.intro": "ברוכים הבאים לפינה שלכם ב-fediverse.", + "help.fediverse": "ה-\"fediverse\" היא רשת של אפליקציות ואתרי אינטרנט מחוברים, שכולם מדברים זה עם זה ושמהמשתמשים שלהם יכולים לראות זה את זה. הפורום הזה הוא מאוחד ויכול לקיים אינטראקציה עם אותו רשת חברתית (או \"fediverse\"). הדף הזה הוא הפינה שלך ב-fediverse. זה מורכב אך ורק מנושאים שנוצרו על ידי - ושותפו ממשתמשים שאתה עוקב אחריהם.", + "help.build": "אולי אין כאן הרבה נושאים להתחיל; זה נורמלי לחלוטין. תתחילו לראות כאן יותר תוכן עם הזמן כאשר תתחילו לעקוב אחר משתמשים אחרים.", + "help.federating": "באופן דומה, אם משתמשים מחוץ לפורום זה מתחילים לעקוב אחריכם, אז הפוסטים שלכם יתחילו להופיע גם באפליקציות ובאתרים אלה.", + "help.next-generation": "זהו הדור הבא של המדיה החברתית, התחלו לתרום עוד היום!", + + "onboard.title": "החלון שלכם אל ה-fediverse...", + "onboard.what": "זוהי הקטגוריה המותאמת אישית שלכם המורכבת רק מתוכן שנמצא מחוץ לפורום זה. אם משהו מופיע בדף הזה תלוי אם אתם עוקבים אחריו, או אם הפוסט הזה שותף על ידי מישהו שאתם עוקבים אחריו.", + "onboard.why": "יש הרבה דברים שקורים מחוץ לפורום הזה, ולא כל זה רלוונטי לתחומי העניין שלכם. לכן מעקב אחר אנשים הוא הדרך הטובה ביותר לאותת שאתם רוצים לראות יותר ממישהו אחר.", + "onboard.how": "בינתיים, תוכלו ללחוץ על כפתורי הקיצור בחלק העליון כדי לראות על מה עוד הפורום הזה יודע, ולהתחיל לגלות תוכן חדש!" +} \ No newline at end of file diff --git a/public/language/hr/admin/manage/categories.json b/public/language/hr/admin/manage/categories.json index 15147d3389..1a5f1cf331 100644 --- a/public/language/hr/admin/manage/categories.json +++ b/public/language/hr/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Privilegije", "back-to-categories": "Back to categories", "name": "Ime kategorije", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Opis kategorije", "bg-color": "Pozadniska boja", "text-color": "Boja teksta", @@ -37,6 +39,7 @@ "disable": "Onemogući", "edit": "Uredi", "analytics": "Analytics", + "federation": "Federation", "view-category": "View category", "set-order": "Zadaj poredak", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Oblik 3 – Dnevne teme kreirane u ovoj kategoriji", "analytics.posts-daily": "Oblik 4 – Dnevne objave u ovoj kategoriji", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Kreirano", "alert.create-success": "Kategorija uspješno kreirana!", "alert.none-active": "Nemate aktivnih kategorija.", diff --git a/public/language/hr/admin/menu.json b/public/language/hr/admin/menu.json index bb2dd87d03..6cc6c9f8cc 100644 --- a/public/language/hr/admin/menu.json +++ b/public/language/hr/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Oznake", "settings/notifications": "Obavijesti", "settings/api": "API Access", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Sounds", "settings/social": "Social", "settings/cookies": "Kolačići", diff --git a/public/language/hr/admin/settings/activitypub.json b/public/language/hr/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/hr/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/hr/error.json b/public/language/hr/error.json index 9df5851804..98f2446343 100644 --- a/public/language/hr/error.json +++ b/public/language/hr/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", "topic-event-unrecognized": "Topic event '%1' unrecognized", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Can't set child as parent category", "cant-set-self-as-parent": "Can't set self as parent category", "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body", @@ -247,5 +248,11 @@ "api.500": "An unexpected error was encountered while attempting to service your request.", "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow", "api.503": "The route you are trying to call is not currently available due to a server configuration", - "api.reauth-required": "The resource you are trying to access requires (re-)authentication." + "api.reauth-required": "The resource you are trying to access requires (re-)authentication.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/hr/flags.json b/public/language/hr/flags.json index e9ea1ab90c..75344642bd 100644 --- a/public/language/hr/flags.json +++ b/public/language/hr/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Uvredljivo", "modal-reason-other": "Other (specify below)", "modal-reason-custom": "Razlog prijavljivanja ovog sadržaja", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Podnesi izvještaj", "modal-submit-success": "Ovaj sadržaj je označen zastavom u svrhu moderiranja,", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 flags updated", "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." diff --git a/public/language/hr/global.json b/public/language/hr/global.json index d592adfc25..a331b1e8d9 100644 --- a/public/language/hr/global.json +++ b/public/language/hr/global.json @@ -50,6 +50,7 @@ "header.navigation": "Navigacija", "header.manage": "Manage", "header.drafts": "Drafts", + "header.world": "World", "notifications.loading": "Učitavanje obavijesti", "chats.loading": "Učitavam razgovore", "drafts.loading": "Loading Drafts", @@ -110,6 +111,7 @@ "dnd": "Ne smetaj", "invisible": "Nevidljiv", "offline": "Odjavljen", + "remote-user": "This user is from outside of this forum", "email": "Email", "language": "Jezik", "guest": "Gost", diff --git a/public/language/hr/modules.json b/public/language/hr/modules.json index 2e9ffdd03a..ae32d6f0d7 100644 --- a/public/language/hr/modules.json +++ b/public/language/hr/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Discard all drafts", "composer.no-drafts": "You have no drafts", "composer.discard-draft-confirm": "Do you want to discard this draft?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "OK", "bootbox.cancel": "Odbaci", "bootbox.confirm": "Potvrdi", diff --git a/public/language/hr/notifications.json b/public/language/hr/notifications.json index fe00fee869..13fce7419a 100644 --- a/public/language/hr/notifications.json +++ b/public/language/hr/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "When a new post is queued", "notificationType-new-post-flag": "When a post is flagged", "notificationType-new-user-flag": "When a user is flagged", - "notificationType-new-reward": "When you earn a new reward" + "notificationType-new-reward": "When you earn a new reward", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/hr/pages.json b/public/language/hr/pages.json index 67d99f11ab..29c5662374 100644 --- a/public/language/hr/pages.json +++ b/public/language/hr/pages.json @@ -36,6 +36,7 @@ "chat": "Razgovor s %1", "flags": "Zastave", "flag-details": "Detalji zastave %1", + "world": "World", "account/edit": "Uređivanje \\\"%1\\\"", "account/edit/password": "Uređivanje lozinke \\\"%1\\", "account/edit/username": "Uređivanje korisnika \\\"%1\\\"", @@ -62,6 +63,7 @@ "account/blocks": "Blocked users for %1", "account/uploads": "Uploads by %1", "account/sessions": "Login Sessions", + "account/shares": "Topics shared by %1", "confirm": "Email potvrđen!", "maintenance.text": "%1 is currently undergoing maintenance.
Please come back another time.", "maintenance.messageIntro": "Poruka administratora:", diff --git a/public/language/hr/recent.json b/public/language/hr/recent.json index b643dca359..781d5201b0 100644 --- a/public/language/hr/recent.json +++ b/public/language/hr/recent.json @@ -7,5 +7,7 @@ "alltime": "Sve vrijeme", "no-recent-topics": "Nema nedavnih tema.", "no-popular-topics": "Nema popularnih tema.", - "load-new-posts": "Load new posts" + "load-new-posts": "Load new posts", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/hr/topic.json b/public/language/hr/topic.json index 2baca3175e..3b5ca2abc8 100644 --- a/public/language/hr/topic.json +++ b/public/language/hr/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 restored this topic on %2", "user-moved-topic-from-ago": "%1 moved this topic from %2 %3", "user-moved-topic-from-on": "%1 moved this topic from %2 on %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 queued post for approval %3", "user-queued-post-on": "%1 queued post for approval on %3", "user-referenced-topic-ago": "%1 referenced this topic %3", @@ -135,6 +137,7 @@ "bookmarks": "Zabilješke", "bookmarks.has-no-bookmarks": "Nemate zabiježenih objava.", "copy-permalink": "Copy Permalink", + "go-to-original": "View Original Post", "loading-more-posts": "Učitavam više objava", "move-topic": "Pomakni temu", "move-topics": "Pomakni teme", @@ -219,5 +222,7 @@ "downvote-post": "Downvote post", "post-tools": "Post tools", "unread-posts-link": "Unread posts link", - "thumb-image": "Topic thumbnail image" + "thumb-image": "Topic thumbnail image", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/hr/user.json b/public/language/hr/user.json index e38b67f032..6decfdf289 100644 --- a/public/language/hr/user.json +++ b/public/language/hr/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Default category watch state", "followers": "Pratitelji", "following": "Prati", + "shares": "Shares", "blocks": "Blocks", "blocked-users": "Blocked users", "block-toggle": "Toggle Block", @@ -59,8 +60,10 @@ "chat-with": "Nastavi razgovor sa %1!", "new-chat-with": "Pokreni novi razgovor sa %1", "flag-profile": "Označi profil", + "profile-flagged": "Already flagged", "follow": "Prati", "unfollow": "Prestani pratiti", + "cancel-follow": "Cancel follow request", "more": "Više", "profile-update-success": "Profil je uspješno promijenjen!", "change-picture": "Promjeni sliku", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "Ovaj korisnik nije glasao protiv na objavama.", "has-no-controversial-posts": "This user does not have any downvoted posts yet.", "has-no-blocks": "You have blocked no users.", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "Email sakriven", "hidden": "Sakriven", "paginate-description": "Numeriraj teme i objave umjesto scrollanja", diff --git a/public/language/hr/world.json b/public/language/hr/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/hr/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ 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 daa6007ca8..1c96d6e832 100644 --- a/public/language/hu/admin/manage/categories.json +++ b/public/language/hu/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Jogosultságok", "back-to-categories": "Back to categories", "name": "Kategória neve", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Kategória leírása", "bg-color": "Háttérszín", "text-color": "Szövegszín", @@ -37,6 +39,7 @@ "disable": "Letiltás", "edit": "Szerkesztés", "analytics": "Analitika", + "federation": "Federation", "view-category": "Kategória megtekintése", "set-order": "Sorrend beállítása", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Ábra 3 – Napi témakörök létrehozva ebben a kategóriában", "analytics.posts-daily": "Ábra 4 – Napi hozzászólások létrehozva ebben a kategóriában", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Létrehozva", "alert.create-success": "Kategória sikeresen létrehozva!", "alert.none-active": "Nincsenek aktív kategóriáid.", diff --git a/public/language/hu/admin/menu.json b/public/language/hu/admin/menu.json index 4c73bf711d..e82be04dd0 100644 --- a/public/language/hu/admin/menu.json +++ b/public/language/hu/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Címkék", "settings/notifications": "Értesítések", "settings/api": "API hozzáférés", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Hangok", "settings/social": "Közösség", "settings/cookies": "Süti", diff --git a/public/language/hu/admin/settings/activitypub.json b/public/language/hu/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/hu/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/hu/error.json b/public/language/hu/error.json index d1a23f2aba..3e58c90d29 100644 --- a/public/language/hu/error.json +++ b/public/language/hu/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", "topic-event-unrecognized": "Témakör esemény '%1' ismeretlen", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Leszármazottat nem adhatsz meg szülő kategóriaként", "cant-set-self-as-parent": "Saját magát nem adhatod meg szülő kategóriaként", "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body", @@ -247,5 +248,11 @@ "api.500": "An unexpected error was encountered while attempting to service your request.", "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow", "api.503": "The route you are trying to call is not currently available due to a server configuration", - "api.reauth-required": "The resource you are trying to access requires (re-)authentication." + "api.reauth-required": "The resource you are trying to access requires (re-)authentication.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/hu/flags.json b/public/language/hu/flags.json index 8cfcca9f6a..dfd97e7f36 100644 --- a/public/language/hu/flags.json +++ b/public/language/hu/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Támadó jellegű", "modal-reason-other": "Más (fejtsd ki lent)", "modal-reason-custom": "Tartalom jelentésének az indoka...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Jelentés beküldése", "modal-submit-success": "A tartalom meg lett jelölve egy moderátornak.", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Tömeges műveletek", "bulk-resolve": "Megoldott jelölés", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 jelölő frissítve", "flagged-timeago": "Flagged ", "auto-flagged": "[Automatikus Megjelölés] %1 negatív szavazatot kapott." diff --git a/public/language/hu/global.json b/public/language/hu/global.json index eec736ebc7..d5bb364e10 100644 --- a/public/language/hu/global.json +++ b/public/language/hu/global.json @@ -50,6 +50,7 @@ "header.navigation": "Navigáció", "header.manage": "Kezelés", "header.drafts": "Piszkozatok", + "header.world": "World", "notifications.loading": "Értesítések betöltése", "chats.loading": "Chat betöltése", "drafts.loading": "Piszkozatok betöltése", @@ -110,6 +111,7 @@ "dnd": "Ne zavarj", "invisible": "Láthatatlan", "offline": "Nem elérhető", + "remote-user": "This user is from outside of this forum", "email": "E-mail", "language": "Nyelv", "guest": "Vendég", diff --git a/public/language/hu/modules.json b/public/language/hu/modules.json index 39bc19df38..8b50449c1d 100644 --- a/public/language/hu/modules.json +++ b/public/language/hu/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Dobja el az összes piszkozatot", "composer.no-drafts": "Nincs piszkozatod", "composer.discard-draft-confirm": "Do you want to discard this draft?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "OK", "bootbox.cancel": "Mégse", "bootbox.confirm": "Megerősítés", diff --git a/public/language/hu/notifications.json b/public/language/hu/notifications.json index 6ca199782b..299dcb4e91 100644 --- a/public/language/hu/notifications.json +++ b/public/language/hu/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "Mikor egy új hozzászólás várólistára kerül", "notificationType-new-post-flag": "Mikor egy hozzászólás megjelölésre kerül", "notificationType-new-user-flag": "Mikor egy felhasználó megjelölésre kerül", - "notificationType-new-reward": "Amikor új jutalomban részesülsz" + "notificationType-new-reward": "Amikor új jutalomban részesülsz", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/hu/pages.json b/public/language/hu/pages.json index f7489e3b0a..cf997c5aeb 100644 --- a/public/language/hu/pages.json +++ b/public/language/hu/pages.json @@ -36,6 +36,7 @@ "chat": "Chatelés %1 felhasználóval", "flags": "Megjelölés", "flag-details": "%1 megjelölés részletei", + "world": "World", "account/edit": "\"%1\" szerkesztése", "account/edit/password": "\"%1\" jelszavának szerkesztése", "account/edit/username": "\"%1\" felhasználói nevének szerkesztése", @@ -62,6 +63,7 @@ "account/blocks": "Felhasználó letiltva erről: %1", "account/uploads": "%1 feltöltései", "account/sessions": "Belépési munkamenetek", + "account/shares": "Topics shared by %1", "confirm": "E-mail megerősítve", "maintenance.text": "%1 is currently undergoing maintenance.
Please come back another time.", "maintenance.messageIntro": "Ezenkívúl, az adminisztrátor ezt az üzenetet hagyta:", diff --git a/public/language/hu/recent.json b/public/language/hu/recent.json index 4e51a70dce..ff0aec4049 100644 --- a/public/language/hu/recent.json +++ b/public/language/hu/recent.json @@ -7,5 +7,7 @@ "alltime": "Bármikor", "no-recent-topics": "Nincs friss témakör.", "no-popular-topics": "Nincs népszerű témakör.", - "load-new-posts": "Új bejegyzések betöltése" + "load-new-posts": "Új bejegyzések betöltése", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/hu/topic.json b/public/language/hu/topic.json index b8f2cf8aca..9e887e5264 100644 --- a/public/language/hu/topic.json +++ b/public/language/hu/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 visszaállította ezt a témakört %2", "user-moved-topic-from-ago": "%1 áthelyezte ezt a témakört %2 %3", "user-moved-topic-from-on": "%1 áthelyezte ezt a témakört %2 %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 sorba álltak bejegyzés jóváhagyásra %3", "user-queued-post-on": "%1 sorba álltak bejegyzés jóváhagyásra %3", "user-referenced-topic-ago": "%1 hivatkozott erre a témakörre %3", @@ -135,6 +137,7 @@ "bookmarks": "Könyvjelzők", "bookmarks.has-no-bookmarks": "Még nem tettél egyetlen hozzászólást sem könyvjelzőbe.", "copy-permalink": "Állandó hivatkozás másolása", + "go-to-original": "View Original Post", "loading-more-posts": "További hozzászólások betöltése", "move-topic": "Témakör áthelyezése", "move-topics": "Témakörök áthelyezése", @@ -219,5 +222,7 @@ "downvote-post": "Bejegyzés nem kedvelése", "post-tools": "Bejegyzés eszközök", "unread-posts-link": "Olvasatlan bejegyzés link", - "thumb-image": "Téma bélyegkép" + "thumb-image": "Téma bélyegkép", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/hu/user.json b/public/language/hu/user.json index c4d7bd7ec1..73ec415af1 100644 --- a/public/language/hu/user.json +++ b/public/language/hu/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Alapértelmezett kategória megfigyelési állapot", "followers": "Követők", "following": "Követve", + "shares": "Shares", "blocks": "Blokkolások", "blocked-users": "Letiltott felhasználók", "block-toggle": "Blokkolás ki-/bekapcsolása", @@ -59,8 +60,10 @@ "chat-with": "Chat folytatása %1 felhasználóval", "new-chat-with": "Új chat indítása %1 felhasználóval", "flag-profile": "Profil megjelölése", + "profile-flagged": "Already flagged", "follow": "Követés", "unfollow": "Nincs követés", + "cancel-follow": "Cancel follow request", "more": "Több", "profile-update-success": "Profil sikeresen frissítve!", "change-picture": "Kép módosítása", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "A felhasználó még egy hozzászólást sem utált.", "has-no-controversial-posts": "Ennek a felhasználónak még nincsenek negatívan szavazott bejegyzései.", "has-no-blocks": "Nem blokkoltál egy felhasználót sem.", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "E-mail rejtett", "hidden": "rejtett", "paginate-description": "Témakörök és hosszászólasok lapozása a végtelen görgetés helyett.", diff --git a/public/language/hu/world.json b/public/language/hu/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/hu/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/hy/admin/manage/categories.json b/public/language/hy/admin/manage/categories.json index 54a3c6c4cd..ca032f6204 100644 --- a/public/language/hy/admin/manage/categories.json +++ b/public/language/hy/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Արտոնություններ", "back-to-categories": "Վերադառնալ կատեգորիաներ", "name": "Կատեգորիայի անվանումը", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Կատեգորիայի նկարագրություն", "bg-color": "Ֆոնի գույնը", "text-color": "Տեքստի գույն ", @@ -37,6 +39,7 @@ "disable": "Անջատել", "edit": "Խմբագրել ", "analytics": "Վերլուծություն", + "federation": "Federation", "view-category": "Դիտել կատեգորիա ", "set-order": "Սահմանել կարգը", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Նկար 3 & ndash; Այս կատեգորիայում ստեղծված ամենօրյա թեմաներ", "analytics.posts-daily": "Նկար 4 & ndash; Այս կատեգորիայի ամենօրյա գրառումները", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Ստեղծվել է ", "alert.create-success": "Կատեգորիան հաջողությամբ ստեղծվեց:", "alert.none-active": "Դուք չունեք ակտիվ կատեգորիաներ:", diff --git a/public/language/hy/admin/menu.json b/public/language/hy/admin/menu.json index d82b3b4f3e..7a1506da90 100644 --- a/public/language/hy/admin/menu.json +++ b/public/language/hy/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Պիտակներ", "settings/notifications": "Ծանուցումներ", "settings/api": "API մուտք", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Ձայներ", "settings/social": "Սոցիալական ", "settings/cookies": "Cookies", diff --git a/public/language/hy/admin/settings/activitypub.json b/public/language/hy/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/hy/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/hy/error.json b/public/language/hy/error.json index 9fcc84555e..10b84d7ddb 100644 --- a/public/language/hy/error.json +++ b/public/language/hy/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "Ձեզ չի թույլատրվում փոխել plugin-ի վիճակը, քանի որ դրանք սահմանված են գործարկման ժամանակ (config.json, շրջակա միջավայրի փոփոխականներ կամ տերմինալի արգումենտներ), փոխարենը փոխեք կազմաձևը:", "theme-not-set-in-configuration": "Կազմաձևում ակտիվ պլագիններ սահմանելիս, թեմաները փոխելիս անհրաժեշտ է ավելացնել նոր թեման ակտիվ հավելումների ցանկում՝ նախքան այն թարմացնելը ACP-ում:", "topic-event-unrecognized": "Թեմայի իրադարձությունը «% 1» անհայտ է", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Հնարավոր չէ երեխային որպես ծնողի/գլխավոր կատեգորիա սահմանել", "cant-set-self-as-parent": "Ինքն իրեն որպես ծնողի/գլխավոր կատեգորիա չի կարող սահմանվել", "api.master-token-no-uid": "Հիմնական նշան է ստացվել առանց համապատասխան «_uid» հարցման մարմնում", @@ -247,5 +248,11 @@ "api.500": "Ձեր հարցումը սպասարկելիս անսպասելի սխալ է տեղի ունեցել:", "api.501": "Ուղեգիծը, որով փորձում եք զանգահարել, դեռ չի իրականացվել, խնդրում ենք վաղը նորից փորձեք", "api.503": "Երթուղին, որը փորձում եք զանգահարել, ներկայումս հասանելի չէ սերվերի կազմաձևման պատճառով", - "api.reauth-required": "Ռեսուրսը, որին փորձում եք միանալ, պահանջում է (վերա) նույնականացում:" + "api.reauth-required": "Ռեսուրսը, որին փորձում եք միանալ, պահանջում է (վերա) նույնականացում:", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/hy/flags.json b/public/language/hy/flags.json index e7eaa204e1..f605c6c946 100644 --- a/public/language/hy/flags.json +++ b/public/language/hy/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Վիրավորական", "modal-reason-other": "Այլ (նշեք ստորև)", "modal-reason-custom": "Այս բովանդակության հաղորդման պատճառը...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Ներկայացնել հաշվետվություն", "modal-submit-success": "Կոնտենտը նշվել է չափավորություն համար:", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Զանգվածային գործողություններ", "bulk-resolve": "Լուծել դրոշակ(ներ)ը", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 դրոշները թարմացվել են", "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Ստացել է %1 դեմ ձայն:" diff --git a/public/language/hy/global.json b/public/language/hy/global.json index 6a97a65caf..aaf034c3ae 100644 --- a/public/language/hy/global.json +++ b/public/language/hy/global.json @@ -50,6 +50,7 @@ "header.navigation": "Նավիգացիա", "header.manage": "Կառավարել", "header.drafts": "Սևագրեր", + "header.world": "World", "notifications.loading": "Բեռնվում են ծանուցումները", "chats.loading": "Բեռնվում են նամակները", "drafts.loading": "Սևագրերը բեռնվում են", @@ -110,6 +111,7 @@ "dnd": "Չանհանգստացնել", "invisible": "Չերևացող", "offline": "Անցանց", + "remote-user": "This user is from outside of this forum", "email": "էլ. փոստ", "language": "լեզու", "guest": "Հյուր", diff --git a/public/language/hy/modules.json b/public/language/hy/modules.json index 62f73844d5..2de14aeb1e 100644 --- a/public/language/hy/modules.json +++ b/public/language/hy/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Հեռացրեք բոլոր սևագրերը", "composer.no-drafts": "Սևագրեր չունեք", "composer.discard-draft-confirm": "Ցանկանու՞մ եք չեղարկել այս սևագիրը:", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "Լավ", "bootbox.cancel": "Չեղարկել", "bootbox.confirm": "Հաստատել", diff --git a/public/language/hy/notifications.json b/public/language/hy/notifications.json index ed3f074473..862a6e3520 100644 --- a/public/language/hy/notifications.json +++ b/public/language/hy/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "Երբ նոր գրառումը հերթագրվում է", "notificationType-new-post-flag": "Երբ գրառումը դրոշակված է", "notificationType-new-user-flag": "Երբ օգտվողը դրոշակված է", - "notificationType-new-reward": "Երբ դուք ստանում եք մրցանակ." + "notificationType-new-reward": "Երբ դուք ստանում եք մրցանակ.", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/hy/pages.json b/public/language/hy/pages.json index 76df3f527d..c9ae2b1e1b 100644 --- a/public/language/hy/pages.json +++ b/public/language/hy/pages.json @@ -36,6 +36,7 @@ "chat": "Զրույց %1-ի հետ", "flags": "Դրոշներ", "flag-details": "Flag %1 Details", + "world": "World", "account/edit": "«% 1»-ի խմբագրում", "account/edit/password": "«% 1»-ի գաղտնաբառի խմբագրում", "account/edit/username": "«% 1»-ի օգտանունը խմբագրվում է", @@ -62,6 +63,7 @@ "account/blocks": "Արգելափակված օգտվողներ %1-ի համար", "account/uploads": "Վերբեռնումներ % 1-ով", "account/sessions": "Մուտք գործելու սեանս", + "account/shares": "Topics shared by %1", "confirm": "Էլ. փոստը հաստատված է", "maintenance.text": "%1 ներկայումս գտնվում է տեխնիկական սպասարկման փուլում.
Խնդրում եմ վերադարձեք մեկ այլ անգամ:", "maintenance.messageIntro": "Ի հավելումն, ադմինիստրատորը լքել է այս հաղորդագրությունը", diff --git a/public/language/hy/recent.json b/public/language/hy/recent.json index 1504baee9d..f11993068c 100644 --- a/public/language/hy/recent.json +++ b/public/language/hy/recent.json @@ -7,5 +7,7 @@ "alltime": "Ամբողջ ժամանակ", "no-recent-topics": "Վերջին թեմաներ չկան։", "no-popular-topics": "Հանրաճանաչ թեմաներ չկան։", - "load-new-posts": "Բեռնել նոր հրապարակումները" + "load-new-posts": "Բեռնել նոր հրապարակումները", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/hy/topic.json b/public/language/hy/topic.json index bc9a08a8ad..fc8d08db95 100644 --- a/public/language/hy/topic.json +++ b/public/language/hy/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 վերականգնեց այս թեման %2", "user-moved-topic-from-ago": "%1 տեղափոխես այս թեման %2 %3 - ից", "user-moved-topic-from-on": "%1 տեղափոխեց այս թեման %2 -ից %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 հերթագրված գրառում հաստատման %3", "user-queued-post-on": "%1 հերթագրված գրառում հաստատման %3", "user-referenced-topic-ago": "%1 հղել է այս թեման %3", @@ -135,6 +137,7 @@ "bookmarks": "Էջանիշեր", "bookmarks.has-no-bookmarks": "Դուք դեռ ոչ մի գրառում չեք էջանշել:", "copy-permalink": "Պատճենել մշտական հղումը", + "go-to-original": "View Original Post", "loading-more-posts": "Լրացուցիչ գրառումների բեռնում", "move-topic": "Տեղափոխել թեման", "move-topics": "Տեղափոխել թեմաները", @@ -219,5 +222,7 @@ "downvote-post": "Downvote post", "post-tools": "Post tools", "unread-posts-link": "Unread posts link", - "thumb-image": "Topic thumbnail image" + "thumb-image": "Topic thumbnail image", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/hy/user.json b/public/language/hy/user.json index ee6d3885d1..47ae219519 100644 --- a/public/language/hy/user.json +++ b/public/language/hy/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Հիմնական կատեգորիայի դիտման վիճակը", "followers": "Հետևորդներ", "following": "Հետևող", + "shares": "Shares", "blocks": "Արգելափակումներ", "blocked-users": "Արգելափակված օգտվողներ", "block-toggle": "Միացնել արգելափակումը", @@ -59,8 +60,10 @@ "chat-with": "Շարունակել զրուցել %1-ի հետ", "new-chat-with": "Սկսեք նոր զրույց %1-ով", "flag-profile": "Նշել պրոֆիլը", + "profile-flagged": "Already flagged", "follow": "հետեւել", "unfollow": "Չհետևել", + "cancel-follow": "Cancel follow request", "more": "Ավելին", "profile-update-success": "Պրոֆիլը հաջողությամբ թարմացվել է:", "change-picture": "Փոխել նկարը", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "Այս օգտատերը դեռևս ոչ մի գրառման դեմ չի քվեարկել:", "has-no-controversial-posts": "Այս օգտատերը դեռ չունի դեմ քվեարկած գրառումներ:", "has-no-blocks": "Դուք ոչ մի օգտատեր չեք արգելափակել:", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "Էլեկտրոնային փոստը թաքցված է", "hidden": "Թաքնված է", "paginate-description": "Էջադրեք թեմաներն ու գրառումները՝ անսահման ոլորման փոխարեն", diff --git a/public/language/hy/world.json b/public/language/hy/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/hy/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/id/admin/manage/categories.json b/public/language/id/admin/manage/categories.json index 8a9ff471b0..a5c0253dae 100644 --- a/public/language/id/admin/manage/categories.json +++ b/public/language/id/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Privileges", "back-to-categories": "Back to categories", "name": "Category Name", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Category Description", "bg-color": "Background Colour", "text-color": "Text Colour", @@ -37,6 +39,7 @@ "disable": "Disable", "edit": "Edit", "analytics": "Analytics", + "federation": "Federation", "view-category": "View category", "set-order": "Set order", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Figure 3 – Daily topics created in this category", "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Created", "alert.create-success": "Category successfully created!", "alert.none-active": "You have no active categories.", diff --git a/public/language/id/admin/menu.json b/public/language/id/admin/menu.json index 6e30be22b3..913c74f475 100644 --- a/public/language/id/admin/menu.json +++ b/public/language/id/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Tags", "settings/notifications": "Notifications", "settings/api": "API Access", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Sounds", "settings/social": "Social", "settings/cookies": "Cookies", diff --git a/public/language/id/admin/settings/activitypub.json b/public/language/id/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/id/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/id/error.json b/public/language/id/error.json index f251989f72..504a619cf8 100644 --- a/public/language/id/error.json +++ b/public/language/id/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", "topic-event-unrecognized": "Topic event '%1' unrecognized", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Can't set child as parent category", "cant-set-self-as-parent": "Can't set self as parent category", "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body", @@ -247,5 +248,11 @@ "api.500": "An unexpected error was encountered while attempting to service your request.", "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow", "api.503": "The route you are trying to call is not currently available due to a server configuration", - "api.reauth-required": "The resource you are trying to access requires (re-)authentication." + "api.reauth-required": "The resource you are trying to access requires (re-)authentication.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/id/flags.json b/public/language/id/flags.json index 0a42e3877f..7985a69f33 100644 --- a/public/language/id/flags.json +++ b/public/language/id/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Offensive", "modal-reason-other": "Other (specify below)", "modal-reason-custom": "Reason for reporting this content...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Submit Report", "modal-submit-success": "Content has been flagged for moderation.", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 flags updated", "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." diff --git a/public/language/id/global.json b/public/language/id/global.json index b5b3fa415f..9b45b25e3b 100644 --- a/public/language/id/global.json +++ b/public/language/id/global.json @@ -50,6 +50,7 @@ "header.navigation": "Navigasi", "header.manage": "Manage", "header.drafts": "Drafts", + "header.world": "World", "notifications.loading": "Memuat Pemberitahuan", "chats.loading": "Memuat Chat", "drafts.loading": "Loading Drafts", @@ -110,6 +111,7 @@ "dnd": "Jangan ganggu", "invisible": "Tidak Terlihat", "offline": "Offline", + "remote-user": "This user is from outside of this forum", "email": "Email", "language": "Bahasa", "guest": "Tamu", diff --git a/public/language/id/modules.json b/public/language/id/modules.json index 9222e101f9..5b15156ff3 100644 --- a/public/language/id/modules.json +++ b/public/language/id/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Discard all drafts", "composer.no-drafts": "You have no drafts", "composer.discard-draft-confirm": "Do you want to discard this draft?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", "bootbox.confirm": "Confirm", diff --git a/public/language/id/notifications.json b/public/language/id/notifications.json index 0a067492e4..3e0c611ed5 100644 --- a/public/language/id/notifications.json +++ b/public/language/id/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "When a new post is queued", "notificationType-new-post-flag": "When a post is flagged", "notificationType-new-user-flag": "When a user is flagged", - "notificationType-new-reward": "When you earn a new reward" + "notificationType-new-reward": "When you earn a new reward", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/id/pages.json b/public/language/id/pages.json index 40ecbe6bff..d9201d0dfb 100644 --- a/public/language/id/pages.json +++ b/public/language/id/pages.json @@ -36,6 +36,7 @@ "chat": "Chatting with %1", "flags": "Flags", "flag-details": "Flag %1 Details", + "world": "World", "account/edit": "Editing \"%1\"", "account/edit/password": "Editing password of \"%1\"", "account/edit/username": "Editing username of \"%1\"", @@ -62,6 +63,7 @@ "account/blocks": "Blocked users for %1", "account/uploads": "Uploads by %1", "account/sessions": "Login Sessions", + "account/shares": "Topics shared by %1", "confirm": "Email Confirmed", "maintenance.text": "%1 is currently undergoing maintenance.
Please come back another time.", "maintenance.messageIntro": "Tambahan, Administrator meninggalkan pesan ini:", diff --git a/public/language/id/recent.json b/public/language/id/recent.json index 550135fc20..ff2294bcf9 100644 --- a/public/language/id/recent.json +++ b/public/language/id/recent.json @@ -7,5 +7,7 @@ "alltime": "Sepanjang Waktu", "no-recent-topics": "Tidak ada topik terbaru.", "no-popular-topics": "There are no popular topics.", - "load-new-posts": "Load new posts" + "load-new-posts": "Load new posts", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/id/topic.json b/public/language/id/topic.json index 2e7cc8033d..7483052649 100644 --- a/public/language/id/topic.json +++ b/public/language/id/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 restored this topic on %2", "user-moved-topic-from-ago": "%1 moved this topic from %2 %3", "user-moved-topic-from-on": "%1 moved this topic from %2 on %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 queued post for approval %3", "user-queued-post-on": "%1 queued post for approval on %3", "user-referenced-topic-ago": "%1 referenced this topic %3", @@ -135,6 +137,7 @@ "bookmarks": "Bookmarks", "bookmarks.has-no-bookmarks": "You haven't bookmarked any posts yet.", "copy-permalink": "Copy Permalink", + "go-to-original": "View Original Post", "loading-more-posts": "Memuat Lebih Banyak Posting", "move-topic": "Pindahkan Topik", "move-topics": "Pindahkan Beberapa Topik", @@ -219,5 +222,7 @@ "downvote-post": "Downvote post", "post-tools": "Post tools", "unread-posts-link": "Unread posts link", - "thumb-image": "Topic thumbnail image" + "thumb-image": "Topic thumbnail image", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/id/user.json b/public/language/id/user.json index f81e5e1b09..555c6ccbc0 100644 --- a/public/language/id/user.json +++ b/public/language/id/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Default category watch state", "followers": "Pengikut", "following": "Mengikuti", + "shares": "Shares", "blocks": "Blocks", "blocked-users": "Blocked users", "block-toggle": "Toggle Block", @@ -59,8 +60,10 @@ "chat-with": "Continue chat with %1", "new-chat-with": "Start new chat with %1", "flag-profile": "Flag Profile", + "profile-flagged": "Already flagged", "follow": "Ikuti", "unfollow": "Tinggalkan", + "cancel-follow": "Cancel follow request", "more": "More", "profile-update-success": "Profil berhasil diperbarui!", "change-picture": "Ganti Gambar/Foto", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "This user hasn't downvoted any posts yet.", "has-no-controversial-posts": "This user does not have any downvoted posts yet.", "has-no-blocks": "You have blocked no users.", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "Email Disembunyikan", "hidden": "disembunyikan", "paginate-description": "Paginate topik dan post daripada menggunakan infinite scroll", diff --git a/public/language/id/world.json b/public/language/id/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/id/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/it/admin/manage/categories.json b/public/language/it/admin/manage/categories.json index a9a830ae2e..4648c19d80 100644 --- a/public/language/it/admin/manage/categories.json +++ b/public/language/it/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Privilegi", "back-to-categories": "Torna alle categorie", "name": "Nome Categoria", + "handle": "Pseudonimo categoria", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Descrizione categoria", "bg-color": "Colore sfondo", "text-color": "Colore testo", @@ -37,6 +39,7 @@ "disable": "Disabilita", "edit": "Modifica", "analytics": "Analitica", + "federation": "Federazione", "view-category": "Visualizza categoria", "set-order": "Imposta ordine", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Figura 3 – Discussioni giornaliere create in questa categoria", "analytics.posts-daily": "Figura 4dash; Post giornalieri pubblicati in questa categoria", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Creato", "alert.create-success": "Categoria creata con successo!", "alert.none-active": "Hai una categoria non attiva.", diff --git a/public/language/it/admin/menu.json b/public/language/it/admin/menu.json index 9a15c585ca..ed652154bc 100644 --- a/public/language/it/admin/menu.json +++ b/public/language/it/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Tag", "settings/notifications": "Notifiche", "settings/api": "Accesso API", + "settings/activitypub": "Federazione (ActivityPub)", "settings/sounds": "Suoni", "settings/social": "Social", "settings/cookies": "Cookies", diff --git a/public/language/it/admin/settings/activitypub.json b/public/language/it/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/it/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/it/admin/settings/user.json b/public/language/it/admin/settings/user.json index 09bb35c3fe..f226549e58 100644 --- a/public/language/it/admin/settings/user.json +++ b/public/language/it/admin/settings/user.json @@ -90,7 +90,7 @@ "restrictions.milliseconds-between-messages": "Tempo tra i messaggi di chat per i nuovi utenti (ms)", "restrictions.groups-exempt-from-new-user-restrictions": "Seleziona i gruppi che devono essere esenti dalle restrizioni dei nuovi utente", "guest-settings": "Impostazioni ospite", - "handles.enabled": "Consenti nome utente ospite", + "handles.enabled": "Consenti pseudonimo ospite", "handles.enabled-help": "Questa opzione mostra un nuovo campo che permette agli ospiti di scegliere un nome da associare ad ogni post che fanno. Se disabilitata, saranno semplicemente chiamati \"Ospite\".", "topic-views.enabled": "Consentire agli ospiti di aumentare il numero di visualizzazioni della discussione", "reply-notifications.enabled": "Consenti agli ospiti di generare notifiche di risposta" diff --git a/public/language/it/error.json b/public/language/it/error.json index 20d54cd8c4..af76318421 100644 --- a/public/language/it/error.json +++ b/public/language/it/error.json @@ -235,10 +235,11 @@ "plugins-set-in-configuration": "Non è possibile modificare lo stato dei plugin, poiché sono definiti in fase di esecuzione. (config.json, variabili ambientali o argomenti del terminale); modificare invece la configurazione.", "theme-not-set-in-configuration": "Quando si definiscono i plugin attivi nella configurazione, la modifica dei temi richiede l'aggiunta del nuovo tema all'elenco dei plugin attivi prima di aggiornarlo nell'ACP", "topic-event-unrecognized": "Evento discussione '%1' non riconosciuto", + "category.handle-taken": "Lo pseudonimo della categoria è già occupato, scegline un altro.", "cant-set-child-as-parent": "Impossibile impostare figlio come categoria padre", "cant-set-self-as-parent": "Impossibile impostare se stessi come categoria padre", "api.master-token-no-uid": "Un token master è stato ricevuto senza un corrispondente `_uid` nel corpo della richiesta", - "api.400": "C'era qualcosa di sbagliato nel payload della richiesta che hai passato.", + "api.400": "C'era qualcosa di sbagliato nel payload della richiesta che hai trasmesso.", "api.401": "Non è stata trovata una sessione di accesso valida. Per favore, accedi e riprova.", "api.403": "Non sei autorizzato a fare questa chiamata", "api.404": "Chiamata API non valida", @@ -247,5 +248,11 @@ "api.500": "È stato riscontrato un errore inaspettato durante il tentativo di soddisfare la tua richiesta.", "api.501": "Il percorso che stai cercando di chiamare non è ancora implementato, riprova domani", "api.503": "Il percorso che stai cercando di chiamare non è attualmente disponibile a causa di una configurazione del server", - "api.reauth-required": "La risorsa a cui stai cercando di accedere richiede una (ri)autenticazione." + "api.reauth-required": "La risorsa a cui stai cercando di accedere richiede una (ri)autenticazione.", + "activitypub.invalid-id": "Impossibile risolvere l'ID di input, probabilmente perché non è valido.", + "activitypub.get-failed": "Impossibile recuperare la risorsa specificata.", + "activitypub.pubKey-not-found": "Impossibile risolvere la chiave pubblica, quindi la verifica del payload non può avvenire.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/it/flags.json b/public/language/it/flags.json index 8a06c1a932..2f7a2276a7 100644 --- a/public/language/it/flags.json +++ b/public/language/it/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Offensivo", "modal-reason-other": "Altro (specifica di seguito)", "modal-reason-custom": "Motivo per cui segnali questo contenuto...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Invia segnalazione", "modal-submit-success": "Il contenuto è stato segnalato per la moderazione.", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Azioni in blocco", "bulk-resolve": "Risolvi segnalazione(i)", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 segnalazioni aggiornate", "flagged-timeago": "Segnalato ", "auto-flagged": "[Contrassegnato automaticamente] Ha ricevuto %1 voti negativi." diff --git a/public/language/it/global.json b/public/language/it/global.json index fd157ba927..eebede0702 100644 --- a/public/language/it/global.json +++ b/public/language/it/global.json @@ -50,6 +50,7 @@ "header.navigation": "Navigazione", "header.manage": "Gestisci", "header.drafts": "Bozze", + "header.world": "Mondo", "notifications.loading": "Caricamento Notifiche", "chats.loading": "Caricamento Messaggi", "drafts.loading": "Caricamento bozze", @@ -110,6 +111,7 @@ "dnd": "Non disturbare", "invisible": "Invisibile", "offline": "Non in linea", + "remote-user": "Questo utente è esterno a questo forum", "email": "Email", "language": "Lingua", "guest": "Ospite", diff --git a/public/language/it/modules.json b/public/language/it/modules.json index 4a244172ac..2646ad5d5f 100644 --- a/public/language/it/modules.json +++ b/public/language/it/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Scarta tutte le bozze", "composer.no-drafts": "Non hai bozze", "composer.discard-draft-confirm": "Vuoi scartare questa bozza?", + "composer.remote-pid-editing": "Modifica di un post remoto", + "composer.remote-pid-content-immutable": "Il contenuto dei post remoti non può essere modificato. Tuttavia, puoi modificare il titolo e i tag della discussione.", "bootbox.ok": "OK", "bootbox.cancel": "Annulla", "bootbox.confirm": "Conferma", diff --git a/public/language/it/notifications.json b/public/language/it/notifications.json index b9a35fcac8..2a1288e834 100644 --- a/public/language/it/notifications.json +++ b/public/language/it/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "Quando un nuovo post è in coda", "notificationType-new-post-flag": "Quando un post viene segnalato", "notificationType-new-user-flag": "Quando un utente viene segnalato", - "notificationType-new-reward": "Quando guadagni una nuova ricompensa" + "notificationType-new-reward": "Quando guadagni una nuova ricompensa", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/it/pages.json b/public/language/it/pages.json index 615ecef4c2..5038b2f486 100644 --- a/public/language/it/pages.json +++ b/public/language/it/pages.json @@ -36,6 +36,7 @@ "chat": "In chat con %1", "flags": "Segnalazioni", "flag-details": "Dettagli segnalazione %1", + "world": "World", "account/edit": "Modifica di \"%1\"", "account/edit/password": "Modificando la password di \"%1\"", "account/edit/username": "Modificando il nome utente di \"%1\"", @@ -62,6 +63,7 @@ "account/blocks": "Utenti bloccati per %1", "account/uploads": "Inviati da %1", "account/sessions": "Sessioni di accesso", + "account/shares": "Topics shared by %1", "confirm": "Email Confermata", "maintenance.text": "%1è attualmente in fase di manutenzione.
Per favore torna un'altra volta.", "maintenance.messageIntro": "Inoltre, l'amministratore ha lasciato questo messaggio:", diff --git a/public/language/it/recent.json b/public/language/it/recent.json index 88d7577fbb..810038d872 100644 --- a/public/language/it/recent.json +++ b/public/language/it/recent.json @@ -7,5 +7,7 @@ "alltime": "Sempre", "no-recent-topics": "Non ci sono discussioni recenti.", "no-popular-topics": "Non ci sono discussioni popolari.", - "load-new-posts": "Carica nuovi post" + "load-new-posts": "Carica nuovi post", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/it/topic.json b/public/language/it/topic.json index 132ee3363d..c6a91701b2 100644 --- a/public/language/it/topic.json +++ b/public/language/it/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 ha ripristinato questa discussione su %2", "user-moved-topic-from-ago": "%1 ha spostato questa discussione da %2 %3", "user-moved-topic-from-on": "%1 ha spostato questa discussione da %2 su %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 post in coda per l'approvazione %3", "user-queued-post-on": "%1 post in coda per l'approvazione su %3", "user-referenced-topic-ago": "%1 ha fatto riferimento a questa discussione %3", @@ -135,6 +137,7 @@ "bookmarks": "Segnalibri", "bookmarks.has-no-bookmarks": "Non hai ancora aggiunto alcun post ai segnalibri.", "copy-permalink": "Copia link permanente", + "go-to-original": "View Original Post", "loading-more-posts": "Caricamento altri post", "move-topic": "Sposta Discussione", "move-topics": "Sposta Discussioni", @@ -161,7 +164,7 @@ "change-owner-instruction": "Clicca sui post che vuoi assegnare ad un altro utente", "manage-editors-instruction": "Gestisci gli utenti che possono modificare questo post qui sotto.", "composer.title-placeholder": "Inserisci qui il titolo della discussione...", - "composer.handle-placeholder": "Inserisci qui il tuo nome/nome utente ospite", + "composer.handle-placeholder": "Inserisci qui il tuo nome/pseudonimo", "composer.hide": "Nascondi", "composer.discard": "Annulla", "composer.submit": "Invia", @@ -219,5 +222,7 @@ "downvote-post": "Vota negativamente il post", "post-tools": "Strumenti post", "unread-posts-link": "Link ai post non letti", - "thumb-image": "Immagine anteprima della discussione" + "thumb-image": "Immagine anteprima della discussione", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/it/user.json b/public/language/it/user.json index 5bdb099da0..f44e508d07 100644 --- a/public/language/it/user.json +++ b/public/language/it/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Stato di controllo della categoria predefinita", "followers": "Da chi è seguito", "following": "Chi segue", + "shares": "Shares", "blocks": "Blocchi", "blocked-users": "Utenti bloccati", "block-toggle": "Gestisci blocco", @@ -59,8 +60,10 @@ "chat-with": "Continua la chat con %1", "new-chat-with": "Inizia una nuova chat con %1", "flag-profile": "Segnala Profilo", + "profile-flagged": "Already flagged", "follow": "Segui", "unfollow": "Smetti di seguire", + "cancel-follow": "Cancel follow request", "more": "Altro", "profile-update-success": "Profilo aggiornato correttamente!", "change-picture": "Cambia Foto", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "Questo utente non ha ancora votato negativamente alcun post", "has-no-controversial-posts": "Questo utente non ha ancora nessun post votato negativamente.", "has-no-blocks": "Non hai bloccato utenti.", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "Email Nascosta", "hidden": "nascosta", "paginate-description": "Impagina discussioni e post invece di utilizzare lo scorrimento infinito", diff --git a/public/language/it/world.json b/public/language/it/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/it/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/ja/admin/manage/categories.json b/public/language/ja/admin/manage/categories.json index df4e0299d0..3fd022c945 100644 --- a/public/language/ja/admin/manage/categories.json +++ b/public/language/ja/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "特権", "back-to-categories": "Back to categories", "name": "カテゴリ名", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "カテゴリの説明", "bg-color": "背景色", "text-color": "テキストカラー", @@ -37,6 +39,7 @@ "disable": "無効", "edit": "編集", "analytics": "Analytics", + "federation": "Federation", "view-category": "View category", "set-order": "Set order", @@ -76,6 +79,22 @@ "analytics.topics-daily": "図3 –このカテゴリで作成された日別のスレッド", "analytics.posts-daily": "図4 –このカテゴリで作成された日ごとの投稿", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "作成されました", "alert.create-success": "カテゴリが正常に作成されました!", "alert.none-active": "アクティブなカテゴリがありません。", diff --git a/public/language/ja/admin/menu.json b/public/language/ja/admin/menu.json index ba2914892c..957aa4e65c 100644 --- a/public/language/ja/admin/menu.json +++ b/public/language/ja/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "タグ", "settings/notifications": "通知", "settings/api": "API Access", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Sounds", "settings/social": "Social", "settings/cookies": "クッキー", diff --git a/public/language/ja/admin/settings/activitypub.json b/public/language/ja/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/ja/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/ja/error.json b/public/language/ja/error.json index 77447bc68f..47158168ed 100644 --- a/public/language/ja/error.json +++ b/public/language/ja/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", "topic-event-unrecognized": "Topic event '%1' unrecognized", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Can't set child as parent category", "cant-set-self-as-parent": "Can't set self as parent category", "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body", @@ -247,5 +248,11 @@ "api.500": "An unexpected error was encountered while attempting to service your request.", "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow", "api.503": "The route you are trying to call is not currently available due to a server configuration", - "api.reauth-required": "The resource you are trying to access requires (re-)authentication." + "api.reauth-required": "The resource you are trying to access requires (re-)authentication.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/ja/flags.json b/public/language/ja/flags.json index f3d3297224..fa025366ae 100644 --- a/public/language/ja/flags.json +++ b/public/language/ja/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "攻撃", "modal-reason-other": "Other (specify below)", "modal-reason-custom": "このコンテンツを報告する理由...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "レポートを提出", "modal-submit-success": "コンテンツはモデレーションにフラグ付けされています。", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 flags updated", "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." diff --git a/public/language/ja/global.json b/public/language/ja/global.json index a0072360f1..d361377631 100644 --- a/public/language/ja/global.json +++ b/public/language/ja/global.json @@ -50,6 +50,7 @@ "header.navigation": "ナビゲーション", "header.manage": "Manage", "header.drafts": "Drafts", + "header.world": "World", "notifications.loading": "通知をロード中", "chats.loading": "チャットをロード中", "drafts.loading": "Loading Drafts", @@ -110,6 +111,7 @@ "dnd": "取り込み中", "invisible": "オフライン表示", "offline": "オフライン", + "remote-user": "This user is from outside of this forum", "email": "メール", "language": "言語", "guest": "ゲスト", diff --git a/public/language/ja/modules.json b/public/language/ja/modules.json index 597165666b..e177131774 100644 --- a/public/language/ja/modules.json +++ b/public/language/ja/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Discard all drafts", "composer.no-drafts": "You have no drafts", "composer.discard-draft-confirm": "Do you want to discard this draft?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "OK", "bootbox.cancel": "キャンセル", "bootbox.confirm": "確認", diff --git a/public/language/ja/notifications.json b/public/language/ja/notifications.json index 679de2e917..bc98168514 100644 --- a/public/language/ja/notifications.json +++ b/public/language/ja/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "新しい投稿がキューに入ったとき", "notificationType-new-post-flag": "投稿にフラグが立てられたとき", "notificationType-new-user-flag": "ユーザーにフラグが立てられたとき", - "notificationType-new-reward": "When you earn a new reward" + "notificationType-new-reward": "When you earn a new reward", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/ja/pages.json b/public/language/ja/pages.json index 90caf56c3b..72f1fae1a9 100644 --- a/public/language/ja/pages.json +++ b/public/language/ja/pages.json @@ -36,6 +36,7 @@ "chat": "%1とチャットします", "flags": "フラグ", "flag-details": "フラグ%1の詳細", + "world": "World", "account/edit": "編集中 \"%1\"", "account/edit/password": "\"%1\"のパスワードを編集中", "account/edit/username": "\"%1\"のユーザー名を編集中", @@ -62,6 +63,7 @@ "account/blocks": "%1のユーザーをブロックしました", "account/uploads": "Uploads by %1", "account/sessions": "Login Sessions", + "account/shares": "Topics shared by %1", "confirm": "Eメールが確認されました", "maintenance.text": "%1 is currently undergoing maintenance.
Please come back another time.", "maintenance.messageIntro": "さらに、管理者はこちらのメッセージを残しました:", diff --git a/public/language/ja/recent.json b/public/language/ja/recent.json index d548146b59..4dd49a5214 100644 --- a/public/language/ja/recent.json +++ b/public/language/ja/recent.json @@ -7,5 +7,7 @@ "alltime": "全て", "no-recent-topics": "最近のスレッドはありません。", "no-popular-topics": "人気スレッドはありません。", - "load-new-posts": "Load new posts" + "load-new-posts": "Load new posts", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/ja/topic.json b/public/language/ja/topic.json index b35483b376..b05507a7f1 100644 --- a/public/language/ja/topic.json +++ b/public/language/ja/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 restored this topic on %2", "user-moved-topic-from-ago": "%1 moved this topic from %2 %3", "user-moved-topic-from-on": "%1 moved this topic from %2 on %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 queued post for approval %3", "user-queued-post-on": "%1 queued post for approval on %3", "user-referenced-topic-ago": "%1 referenced this topic %3", @@ -135,6 +137,7 @@ "bookmarks": "ブックマーク", "bookmarks.has-no-bookmarks": "まだ投稿をブックマークしていません。", "copy-permalink": "Copy Permalink", + "go-to-original": "View Original Post", "loading-more-posts": "もっと見る", "move-topic": "スレッドを移動", "move-topics": "スレッドを移動する", @@ -219,5 +222,7 @@ "downvote-post": "Downvote post", "post-tools": "Post tools", "unread-posts-link": "Unread posts link", - "thumb-image": "Topic thumbnail image" + "thumb-image": "Topic thumbnail image", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/ja/user.json b/public/language/ja/user.json index e2cdfd65fb..b42497d30d 100644 --- a/public/language/ja/user.json +++ b/public/language/ja/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "デフォルトのカテゴリウォッチ状態", "followers": "フォロワー", "following": "フォロー中", + "shares": "Shares", "blocks": "ブロックの設定", "blocked-users": "Blocked users", "block-toggle": "ブロックを切替", @@ -59,8 +60,10 @@ "chat-with": "%1とチャットを続ける", "new-chat-with": "%1とチャットを始める", "flag-profile": "プロフィールを報告する", + "profile-flagged": "Already flagged", "follow": "フォロー", "unfollow": "フォロー解除", + "cancel-follow": "Cancel follow request", "more": "つづき", "profile-update-success": "プロフィールを更新しました!", "change-picture": "画像を変更", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "このユーザーはまだ一つも投稿に低評価を付けていません。", "has-no-controversial-posts": "This user does not have any downvoted posts yet.", "has-no-blocks": "ブロック中のユーザーはいません。", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "メールアドレスを非表示", "hidden": "非表示", "paginate-description": "無限スクロールの代わりに、投稿やスレッドをページ別で切り替える。", diff --git a/public/language/ja/world.json b/public/language/ja/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/ja/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/ko/admin/manage/categories.json b/public/language/ko/admin/manage/categories.json index 56ee6b207a..76b1dfae47 100644 --- a/public/language/ko/admin/manage/categories.json +++ b/public/language/ko/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "권한", "back-to-categories": "카테고리로 돌아가기", "name": "카테고리 이름", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "카테고리 설명", "bg-color": "배경 색상", "text-color": "텍스트 색상", @@ -37,6 +39,7 @@ "disable": "비활성화", "edit": "편집", "analytics": "분석", + "federation": "Federation", "view-category": "카테고리 보기", "set-order": "순서 설정", @@ -76,6 +79,22 @@ "analytics.topics-daily": "그래프 3 - 이 카테고리에서 생성된 일별 토픽", "analytics.posts-daily": "그래프 4 - 이 카테고리에서 작성된 일별 게시물", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "생성됨", "alert.create-success": "카테고리를 성공적으로 생성했습니다!", "alert.none-active": "활성화된 카테고리가 없습니다.", diff --git a/public/language/ko/admin/menu.json b/public/language/ko/admin/menu.json index 2f3ee9d167..dfb021ddb9 100644 --- a/public/language/ko/admin/menu.json +++ b/public/language/ko/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "태그", "settings/notifications": "알림", "settings/api": "API 액세스", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "사운드", "settings/social": "소셜", "settings/cookies": "쿠키", diff --git a/public/language/ko/admin/settings/activitypub.json b/public/language/ko/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/ko/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/ko/error.json b/public/language/ko/error.json index a8a42dc6d3..2eb1030c49 100644 --- a/public/language/ko/error.json +++ b/public/language/ko/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "실행 중에 정의된 플러그인 상태를 변경할 수 없습니다 (config.json, 환경 변수 또는 터미널 인수). 대신 구성을 수정하세요.", "theme-not-set-in-configuration": "구성에서 활성 플러그인을 정의할 때 새 테마를 추가하기 전에 ACP에서 테마를 업데이트해야 합니다", "topic-event-unrecognized": "토픽 이벤트 '%1' 인식되지 않았습니다", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "하위 카테고리를 상위 카테고리로 설정할 수 없습니다", "cant-set-self-as-parent": "자신을 상위 카테고리로 설정할 수 없습니다", "api.master-token-no-uid": "요청 본문에서 해당하는 `_uid`가없는 마스터 토큰이 수신되었습니다", @@ -247,5 +248,11 @@ "api.500": "요청을 처리하는 중 예기치 않은 오류가 발생했습니다.", "api.501": "호출하려는 경로가 현재 구현되지 않았습니다. 다음에 다시 시도하세요", "api.503": "현재 서버 구성으로 인해 호출하려는 경로를 사용할 수 없습니다", - "api.reauth-required": "액세스하려는 리소스에는 (다시)인증이 필요합니다." + "api.reauth-required": "액세스하려는 리소스에는 (다시)인증이 필요합니다.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/ko/flags.json b/public/language/ko/flags.json index 7ad1688255..374a5f0f1c 100644 --- a/public/language/ko/flags.json +++ b/public/language/ko/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "모욕적", "modal-reason-other": "기타 (아래 지정)", "modal-reason-custom": "이 콘텐츠를 신고하는 사유...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "신고 제출", "modal-submit-success": "콘텐츠가 신고되었습니다.", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "대량 작업", "bulk-resolve": "신고 해결", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1개의 신고가 업데이트되었습니다", "flagged-timeago": "Flagged ", "auto-flagged": "[자동 신고] %1개의 반대를 받았습니다." diff --git a/public/language/ko/global.json b/public/language/ko/global.json index 86adb576b7..2aebde9b11 100644 --- a/public/language/ko/global.json +++ b/public/language/ko/global.json @@ -50,6 +50,7 @@ "header.navigation": "내비게이션", "header.manage": "관리", "header.drafts": "임시 보관함", + "header.world": "World", "notifications.loading": "알림 로드 중", "chats.loading": "채팅 로드 중", "drafts.loading": "임시 보관함 로드 중", @@ -110,6 +111,7 @@ "dnd": "다른 용무 중", "invisible": "오프라인", "offline": "오프라인", + "remote-user": "This user is from outside of this forum", "email": "이메일", "language": "언어", "guest": "비회원", diff --git a/public/language/ko/modules.json b/public/language/ko/modules.json index f91693d75a..090984bfd0 100644 --- a/public/language/ko/modules.json +++ b/public/language/ko/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "모든 초안 삭제", "composer.no-drafts": "초안이 없습니다.", "composer.discard-draft-confirm": "이 초안을 삭제하시겠습니까?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "확인", "bootbox.cancel": "취소", "bootbox.confirm": "확인", diff --git a/public/language/ko/notifications.json b/public/language/ko/notifications.json index 7f099f0c79..a97f8068bd 100644 --- a/public/language/ko/notifications.json +++ b/public/language/ko/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "새 게시물이 대기열에 추가될 때", "notificationType-new-post-flag": "게시물이 신고될 때", "notificationType-new-user-flag": "사용자가 신고될 때", - "notificationType-new-reward": "새로운 리워드를 획득할 때" + "notificationType-new-reward": "새로운 리워드를 획득할 때", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/ko/pages.json b/public/language/ko/pages.json index 994dc83369..8a5964ce7d 100644 --- a/public/language/ko/pages.json +++ b/public/language/ko/pages.json @@ -36,6 +36,7 @@ "chat": "%1님과 채팅 중", "flags": "신고", "flag-details": "신고 %1 세부 정보", + "world": "World", "account/edit": "\\\"%1\\\" 편집 중", "account/edit/password": "\\\"%1\\\" 비밀번호 편집 중", "account/edit/username": "\\\"%1\\\" 사용자 이름 편집 중", @@ -62,6 +63,7 @@ "account/blocks": "%1님의 차단한 사용자", "account/uploads": "%1님의 업로드", "account/sessions": "로그인 세션", + "account/shares": "Topics shared by %1", "confirm": "이메일 확인됨", "maintenance.text": "%1 현재 유지보수 중입니다.
나중에 다시 방문해주세요.", "maintenance.messageIntro": "추가로, 관리자가 다음 메시지를 남겼습니다:", diff --git a/public/language/ko/recent.json b/public/language/ko/recent.json index f89facb3ea..aa2c168a5b 100644 --- a/public/language/ko/recent.json +++ b/public/language/ko/recent.json @@ -7,5 +7,7 @@ "alltime": "전체 기간", "no-recent-topics": "최근 토픽이 없습니다.", "no-popular-topics": "인기 있는 토픽이 없습니다.", - "load-new-posts": "새로운 게시물 불러오기" + "load-new-posts": "새로운 게시물 불러오기", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/ko/topic.json b/public/language/ko/topic.json index 7b673dc4ee..f626bea9d8 100644 --- a/public/language/ko/topic.json +++ b/public/language/ko/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%2에 %1님이 이 토픽을 복원함", "user-moved-topic-from-ago": "%3에 %1님이 %2에서 이 토픽을 이동함", "user-moved-topic-from-on": "%3에 %1님이 %2에서 이 토픽을 이동함", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%3에 %1님이 게시물을 대기함", "user-queued-post-on": "%3에 %1님이 게시물을 대기함", "user-referenced-topic-ago": "%3에 %1님이 이 토픽을 참조함", @@ -135,6 +137,7 @@ "bookmarks": "북마크", "bookmarks.has-no-bookmarks": "현재 북마크한 게시물이 없습니다.", "copy-permalink": "퍼머링크 복사", + "go-to-original": "View Original Post", "loading-more-posts": "게시물 더 불러오는 중", "move-topic": "토픽 이동", "move-topics": "토픽 이동", @@ -219,5 +222,7 @@ "downvote-post": "반대표", "post-tools": "게시물 도구", "unread-posts-link": "읽지 않은 게시물 링크", - "thumb-image": "토픽 썸네일 이미지" + "thumb-image": "토픽 썸네일 이미지", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/ko/user.json b/public/language/ko/user.json index 856b3b8ae6..10a7922330 100644 --- a/public/language/ko/user.json +++ b/public/language/ko/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "기본 카테고리 관심 상태", "followers": "팔로워", "following": "팔로잉", + "shares": "Shares", "blocks": "차단", "blocked-users": "차단한 사용자", "block-toggle": "차단 전환", @@ -59,8 +60,10 @@ "chat-with": "%1님과 채팅 계속", "new-chat-with": "%1님과 새로운 채팅 시작", "flag-profile": "프로필 신고", + "profile-flagged": "Already flagged", "follow": "팔로우", "unfollow": "팔로우 취소", + "cancel-follow": "Cancel follow request", "more": "더 보기", "profile-update-success": "프로필이 성공적으로 업데이트되었습니다!", "change-picture": "이미지 변경", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "현재 게시물에 비추천을 하지 않았습니다.", "has-no-controversial-posts": "현재 비추천을 받은 게시물이 없습니다.", "has-no-blocks": "차단한 사용자가 없습니다.", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "이메일 숨김", "hidden": "숨김", "paginate-description": "무한 스크롤 대신 토픽 및 게시물을 페이지네이션합니다", diff --git a/public/language/ko/world.json b/public/language/ko/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/ko/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/lt/admin/manage/categories.json b/public/language/lt/admin/manage/categories.json index 8a9ff471b0..a5c0253dae 100644 --- a/public/language/lt/admin/manage/categories.json +++ b/public/language/lt/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Privileges", "back-to-categories": "Back to categories", "name": "Category Name", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Category Description", "bg-color": "Background Colour", "text-color": "Text Colour", @@ -37,6 +39,7 @@ "disable": "Disable", "edit": "Edit", "analytics": "Analytics", + "federation": "Federation", "view-category": "View category", "set-order": "Set order", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Figure 3 – Daily topics created in this category", "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Created", "alert.create-success": "Category successfully created!", "alert.none-active": "You have no active categories.", diff --git a/public/language/lt/admin/menu.json b/public/language/lt/admin/menu.json index d3ae8a4504..878039915d 100644 --- a/public/language/lt/admin/menu.json +++ b/public/language/lt/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Tags", "settings/notifications": "Notifications", "settings/api": "API Access", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Sounds", "settings/social": "Social", "settings/cookies": "Cookies", diff --git a/public/language/lt/admin/settings/activitypub.json b/public/language/lt/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/lt/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/lt/error.json b/public/language/lt/error.json index 8b49f39c65..c725445c85 100644 --- a/public/language/lt/error.json +++ b/public/language/lt/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", "topic-event-unrecognized": "Topic event '%1' unrecognized", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Can't set child as parent category", "cant-set-self-as-parent": "Can't set self as parent category", "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body", @@ -247,5 +248,11 @@ "api.500": "An unexpected error was encountered while attempting to service your request.", "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow", "api.503": "The route you are trying to call is not currently available due to a server configuration", - "api.reauth-required": "The resource you are trying to access requires (re-)authentication." + "api.reauth-required": "The resource you are trying to access requires (re-)authentication.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/lt/flags.json b/public/language/lt/flags.json index af84a9ca82..ae290b5d96 100644 --- a/public/language/lt/flags.json +++ b/public/language/lt/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Offensive", "modal-reason-other": "Other (specify below)", "modal-reason-custom": "Reason for reporting this content...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Submit Report", "modal-submit-success": "Content has been flagged for moderation.", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 flags updated", "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." diff --git a/public/language/lt/global.json b/public/language/lt/global.json index ef1a89f532..8b64134197 100644 --- a/public/language/lt/global.json +++ b/public/language/lt/global.json @@ -50,6 +50,7 @@ "header.navigation": "Navigation", "header.manage": "Manage", "header.drafts": "Drafts", + "header.world": "World", "notifications.loading": "Įkeliami pranešimai", "chats.loading": "Įkeliami susirašinėjimai", "drafts.loading": "Loading Drafts", @@ -110,6 +111,7 @@ "dnd": "Do not disturb", "invisible": "Nematomas", "offline": "Atsijungęs", + "remote-user": "This user is from outside of this forum", "email": "El. paštas", "language": "Kalba", "guest": "Svečias", diff --git a/public/language/lt/modules.json b/public/language/lt/modules.json index 790766a5d3..6a1a9c3c7a 100644 --- a/public/language/lt/modules.json +++ b/public/language/lt/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Discard all drafts", "composer.no-drafts": "You have no drafts", "composer.discard-draft-confirm": "Do you want to discard this draft?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", "bootbox.confirm": "Confirm", diff --git a/public/language/lt/notifications.json b/public/language/lt/notifications.json index 47ba471ff7..5cffb2ba8b 100644 --- a/public/language/lt/notifications.json +++ b/public/language/lt/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "When a new post is queued", "notificationType-new-post-flag": "When a post is flagged", "notificationType-new-user-flag": "When a user is flagged", - "notificationType-new-reward": "When you earn a new reward" + "notificationType-new-reward": "When you earn a new reward", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/lt/pages.json b/public/language/lt/pages.json index f8f4f8969b..53efbcc4fe 100644 --- a/public/language/lt/pages.json +++ b/public/language/lt/pages.json @@ -36,6 +36,7 @@ "chat": "Susirašinėja su %1", "flags": "Vėliavos", "flag-details": "Flag %1 Details", + "world": "World", "account/edit": "Redaguoja \"%1\"", "account/edit/password": "Redaguoja \"%1\" slaptažodį", "account/edit/username": "redaguoja \"%1\" vartotojo vardą", @@ -62,6 +63,7 @@ "account/blocks": "Užblokuoti vartotojai dėl %1", "account/uploads": "%1 Įkėlimai", "account/sessions": "Login Sessions", + "account/shares": "Topics shared by %1", "confirm": "El. paštas patvirtintas", "maintenance.text": "%1 is currently undergoing maintenance.
Please come back another time.", "maintenance.messageIntro": "Be to, administratorius paliko šį pranešimą:", diff --git a/public/language/lt/recent.json b/public/language/lt/recent.json index 15e2561951..47e093660b 100644 --- a/public/language/lt/recent.json +++ b/public/language/lt/recent.json @@ -7,5 +7,7 @@ "alltime": "Per visą laiką", "no-recent-topics": "Paskutinių temų nėra", "no-popular-topics": "Populiarių temų nėra.", - "load-new-posts": "Load new posts" + "load-new-posts": "Load new posts", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/lt/topic.json b/public/language/lt/topic.json index 6abcc5040b..4146e1bce6 100644 --- a/public/language/lt/topic.json +++ b/public/language/lt/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 restored this topic on %2", "user-moved-topic-from-ago": "%1 moved this topic from %2 %3", "user-moved-topic-from-on": "%1 moved this topic from %2 on %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 queued post for approval %3", "user-queued-post-on": "%1 queued post for approval on %3", "user-referenced-topic-ago": "%1 referenced this topic %3", @@ -135,6 +137,7 @@ "bookmarks": "Bookmarks", "bookmarks.has-no-bookmarks": "You haven't bookmarked any posts yet.", "copy-permalink": "Copy Permalink", + "go-to-original": "View Original Post", "loading-more-posts": "Įkeliama daugiau įrašų", "move-topic": "Perkelti temą", "move-topics": "Perkelti temas", @@ -219,5 +222,7 @@ "downvote-post": "Downvote post", "post-tools": "Post tools", "unread-posts-link": "Unread posts link", - "thumb-image": "Topic thumbnail image" + "thumb-image": "Topic thumbnail image", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/lt/user.json b/public/language/lt/user.json index fb9f6f0b00..497aedf316 100644 --- a/public/language/lt/user.json +++ b/public/language/lt/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Default category watch state", "followers": "Sekėjai", "following": "Seka", + "shares": "Shares", "blocks": "Blocks", "blocked-users": "Blocked users", "block-toggle": "Toggle Block", @@ -59,8 +60,10 @@ "chat-with": "Tęsti pokalbį su %1", "new-chat-with": "Pradėti naują susirašinėjimą su %1", "flag-profile": "Flag Profile", + "profile-flagged": "Already flagged", "follow": "Sekti", "unfollow": "Nesekti", + "cancel-follow": "Cancel follow request", "more": "Daugiau", "profile-update-success": "Profilis sėkmingai atnaujintas!", "change-picture": "Pakeisti paveikslėlį", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "Šis narys dar neturi neigiamai įvertintų pranešimų.", "has-no-controversial-posts": "This user does not have any downvoted posts yet.", "has-no-blocks": "You have blocked no users.", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "El. paštas paslėptas", "hidden": "paslėptas", "paginate-description": "Puslapiavimas temų ir pranešimų, vietoj kad naudoti judėjimą su pelytė į viršų ir į apačia", diff --git a/public/language/lt/world.json b/public/language/lt/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/lt/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/lv/admin/manage/categories.json b/public/language/lv/admin/manage/categories.json index f9f49b5aad..9738cf88a1 100644 --- a/public/language/lv/admin/manage/categories.json +++ b/public/language/lv/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Privilēģijas", "back-to-categories": "Back to categories", "name": "Kategorijas nosaukums", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Kategorijas apraksts", "bg-color": "Fona krāsa", "text-color": "Teksta krāsa", @@ -37,6 +39,7 @@ "disable": "Atspējot", "edit": "Rediģēt", "analytics": "Analytics", + "federation": "Federation", "view-category": "View category", "set-order": "Set order", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Attēls 3 – Kategorijas jaunie temati dienā", "analytics.posts-daily": "Attēls 4 – Kategorijas publicētie raksti dienā", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Izveidotās", "alert.create-success": "Kategorija veiksmīgi izveidota", "alert.none-active": "Nav aktīvo kategoriju", diff --git a/public/language/lv/admin/menu.json b/public/language/lv/admin/menu.json index 97544abc7d..87b854d539 100644 --- a/public/language/lv/admin/menu.json +++ b/public/language/lv/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Birkas", "settings/notifications": "Paziņojumi", "settings/api": "API Access", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Sounds", "settings/social": "Social", "settings/cookies": "Sīkfaili", diff --git a/public/language/lv/admin/settings/activitypub.json b/public/language/lv/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/lv/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/lv/error.json b/public/language/lv/error.json index 11f0f1b531..eaaf8c52c0 100644 --- a/public/language/lv/error.json +++ b/public/language/lv/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", "topic-event-unrecognized": "Topic event '%1' unrecognized", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Can't set child as parent category", "cant-set-self-as-parent": "Can't set self as parent category", "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body", @@ -247,5 +248,11 @@ "api.500": "An unexpected error was encountered while attempting to service your request.", "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow", "api.503": "The route you are trying to call is not currently available due to a server configuration", - "api.reauth-required": "The resource you are trying to access requires (re-)authentication." + "api.reauth-required": "The resource you are trying to access requires (re-)authentication.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/lv/flags.json b/public/language/lv/flags.json index 471948c0a5..85e36f1ca1 100644 --- a/public/language/lv/flags.json +++ b/public/language/lv/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Aizskarošs", "modal-reason-other": "Cits (norādīt zemāk)", "modal-reason-custom": "Iemesls, kāpēc ziņots par saturu...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Iesniegt ziņojumu", "modal-submit-success": "Saturs ir atzīmēts moderēšanai.", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 flags updated", "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." diff --git a/public/language/lv/global.json b/public/language/lv/global.json index 418bfc7cde..285eaa8bb1 100644 --- a/public/language/lv/global.json +++ b/public/language/lv/global.json @@ -50,6 +50,7 @@ "header.navigation": "Navigācija", "header.manage": "Manage", "header.drafts": "Drafts", + "header.world": "World", "notifications.loading": "Ielādē paziņojumus", "chats.loading": "Ielādē sarunas", "drafts.loading": "Loading Drafts", @@ -110,6 +111,7 @@ "dnd": "Netraucējams", "invisible": "Neredzams", "offline": "Bezsaistē", + "remote-user": "This user is from outside of this forum", "email": "E-pasta adrese", "language": "Valoda", "guest": "Viesis", diff --git a/public/language/lv/modules.json b/public/language/lv/modules.json index b1c0ab27ef..0c1a36c576 100644 --- a/public/language/lv/modules.json +++ b/public/language/lv/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Discard all drafts", "composer.no-drafts": "You have no drafts", "composer.discard-draft-confirm": "Do you want to discard this draft?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "Labi", "bootbox.cancel": "Atcelt", "bootbox.confirm": "Apstiprināt", diff --git a/public/language/lv/notifications.json b/public/language/lv/notifications.json index b1c56866b7..ec6864d134 100644 --- a/public/language/lv/notifications.json +++ b/public/language/lv/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "Kad raksts tiek ievietots apstiprināšanas rindā", "notificationType-new-post-flag": "Kad raksts tiek atzīmēts", "notificationType-new-user-flag": "Kad lietotājs tiek atzīmēts", - "notificationType-new-reward": "When you earn a new reward" + "notificationType-new-reward": "When you earn a new reward", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/lv/pages.json b/public/language/lv/pages.json index b5c8896a84..dd3864cfbb 100644 --- a/public/language/lv/pages.json +++ b/public/language/lv/pages.json @@ -36,6 +36,7 @@ "chat": "Sarunājās ar %1", "flags": "Atzīmes", "flag-details": "Atzīmes %1 informācija", + "world": "World", "account/edit": "Rediģēt \"%1\"", "account/edit/password": "Rediģēt \"%1\" paroli", "account/edit/username": "Rediģēt \"%1\" lietotājvārdu", @@ -62,6 +63,7 @@ "account/blocks": "%1 bloķētie lietotāji", "account/uploads": "%1 augšupielādes", "account/sessions": "Aktīvās sesijas", + "account/shares": "Topics shared by %1", "confirm": "E-pasta adrese apstiprināta", "maintenance.text": "%1 is currently undergoing maintenance.
Please come back another time.", "maintenance.messageIntro": "Turklāt administrators ir atstājis šo paziņojumu:", diff --git a/public/language/lv/recent.json b/public/language/lv/recent.json index 1b194b6d30..a12884def2 100644 --- a/public/language/lv/recent.json +++ b/public/language/lv/recent.json @@ -7,5 +7,7 @@ "alltime": "Visu laiku", "no-recent-topics": "Nav neseno tematu.", "no-popular-topics": "Nav populāro tematu.", - "load-new-posts": "Load new posts" + "load-new-posts": "Load new posts", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/lv/topic.json b/public/language/lv/topic.json index d5c7645b62..d55b6c985c 100644 --- a/public/language/lv/topic.json +++ b/public/language/lv/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 restored this topic on %2", "user-moved-topic-from-ago": "%1 moved this topic from %2 %3", "user-moved-topic-from-on": "%1 moved this topic from %2 on %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 queued post for approval %3", "user-queued-post-on": "%1 queued post for approval on %3", "user-referenced-topic-ago": "%1 referenced this topic %3", @@ -135,6 +137,7 @@ "bookmarks": "Atzīmētie", "bookmarks.has-no-bookmarks": "Tu vēl neesi nevienu rakstu atzīmējis.", "copy-permalink": "Copy Permalink", + "go-to-original": "View Original Post", "loading-more-posts": "Ielādē vēl rakstus", "move-topic": "Pārvietot tematu", "move-topics": "Pārvietot tematus", @@ -219,5 +222,7 @@ "downvote-post": "Downvote post", "post-tools": "Post tools", "unread-posts-link": "Unread posts link", - "thumb-image": "Topic thumbnail image" + "thumb-image": "Topic thumbnail image", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/lv/user.json b/public/language/lv/user.json index 020ec319b5..271db38228 100644 --- a/public/language/lv/user.json +++ b/public/language/lv/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Default category watch state", "followers": "Man seko", "following": "Es sekoju", + "shares": "Shares", "blocks": "Bloķētie", "blocked-users": "Blocked users", "block-toggle": "Pārslēgt bloķēto", @@ -59,8 +60,10 @@ "chat-with": "Turpināt sarunu ar %1", "new-chat-with": "Sākt jaunu sarunu ar %1", "flag-profile": "Atzīmēt profilu", + "profile-flagged": "Already flagged", "follow": "Sekot", "unfollow": "Pārtraukt sekot", + "cancel-follow": "Cancel follow request", "more": "Vēl", "profile-update-success": "Profils ir veiksmīgi atjaunināts!", "change-picture": "Mainīt bildi", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "Lietotājs vēl nav balsojis \"pret\" nevienu rakstu.", "has-no-controversial-posts": "This user does not have any downvoted posts yet.", "has-no-blocks": "Tu neesi bloķējis nevienu lietotāju.", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "E-pasta adrese paslēpta", "hidden": "paslēpies", "paginate-description": "Tematus un rakstus dalīt pa vairākām lapām un nelikt visus vienā", diff --git a/public/language/lv/world.json b/public/language/lv/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/lv/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/ms/admin/manage/categories.json b/public/language/ms/admin/manage/categories.json index 8a9ff471b0..a5c0253dae 100644 --- a/public/language/ms/admin/manage/categories.json +++ b/public/language/ms/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Privileges", "back-to-categories": "Back to categories", "name": "Category Name", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Category Description", "bg-color": "Background Colour", "text-color": "Text Colour", @@ -37,6 +39,7 @@ "disable": "Disable", "edit": "Edit", "analytics": "Analytics", + "federation": "Federation", "view-category": "View category", "set-order": "Set order", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Figure 3 – Daily topics created in this category", "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Created", "alert.create-success": "Category successfully created!", "alert.none-active": "You have no active categories.", diff --git a/public/language/ms/admin/menu.json b/public/language/ms/admin/menu.json index 6e30be22b3..913c74f475 100644 --- a/public/language/ms/admin/menu.json +++ b/public/language/ms/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Tags", "settings/notifications": "Notifications", "settings/api": "API Access", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Sounds", "settings/social": "Social", "settings/cookies": "Cookies", diff --git a/public/language/ms/admin/settings/activitypub.json b/public/language/ms/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/ms/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/ms/error.json b/public/language/ms/error.json index 3f5cafd974..2de34d1efe 100644 --- a/public/language/ms/error.json +++ b/public/language/ms/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", "topic-event-unrecognized": "Topic event '%1' unrecognized", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Can't set child as parent category", "cant-set-self-as-parent": "Can't set self as parent category", "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body", @@ -247,5 +248,11 @@ "api.500": "An unexpected error was encountered while attempting to service your request.", "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow", "api.503": "The route you are trying to call is not currently available due to a server configuration", - "api.reauth-required": "The resource you are trying to access requires (re-)authentication." + "api.reauth-required": "The resource you are trying to access requires (re-)authentication.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/ms/flags.json b/public/language/ms/flags.json index 0a42e3877f..7985a69f33 100644 --- a/public/language/ms/flags.json +++ b/public/language/ms/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Offensive", "modal-reason-other": "Other (specify below)", "modal-reason-custom": "Reason for reporting this content...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Submit Report", "modal-submit-success": "Content has been flagged for moderation.", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 flags updated", "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." diff --git a/public/language/ms/global.json b/public/language/ms/global.json index 6a2d7a645a..b06133513d 100644 --- a/public/language/ms/global.json +++ b/public/language/ms/global.json @@ -50,6 +50,7 @@ "header.navigation": "Navigasi", "header.manage": "Manage", "header.drafts": "Drafts", + "header.world": "World", "notifications.loading": "Pemberitahuan sedang dimuatkan", "chats.loading": "Sembang sedang dimuatkan", "drafts.loading": "Loading Drafts", @@ -110,6 +111,7 @@ "dnd": "Jangan ganggu (dnd)", "invisible": "Halimunan", "offline": "Luar talian", + "remote-user": "This user is from outside of this forum", "email": "Emel", "language": "Bahasa", "guest": "Pelawat", diff --git a/public/language/ms/modules.json b/public/language/ms/modules.json index 9cfae84566..a2de6c8f89 100644 --- a/public/language/ms/modules.json +++ b/public/language/ms/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Discard all drafts", "composer.no-drafts": "You have no drafts", "composer.discard-draft-confirm": "Do you want to discard this draft?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "Ok", "bootbox.cancel": "Batal", "bootbox.confirm": "Pasti", diff --git a/public/language/ms/notifications.json b/public/language/ms/notifications.json index e849c3d99b..0758b4e30a 100644 --- a/public/language/ms/notifications.json +++ b/public/language/ms/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "When a new post is queued", "notificationType-new-post-flag": "When a post is flagged", "notificationType-new-user-flag": "When a user is flagged", - "notificationType-new-reward": "When you earn a new reward" + "notificationType-new-reward": "When you earn a new reward", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/ms/pages.json b/public/language/ms/pages.json index d5b52d67dd..6f9dfe8eb9 100644 --- a/public/language/ms/pages.json +++ b/public/language/ms/pages.json @@ -36,6 +36,7 @@ "chat": "Borak Dengan %1", "flags": "Flags", "flag-details": "Flag %1 Details", + "world": "World", "account/edit": "Menyunting \"%1\"", "account/edit/password": "Mengemaskini kata laluan \"%1\"", "account/edit/username": "Mengemaskini nama pengguna \"%1\"", @@ -62,6 +63,7 @@ "account/blocks": "Blocked users for %1", "account/uploads": "Uploads by %1", "account/sessions": "Login Sessions", + "account/shares": "Topics shared by %1", "confirm": "Emel Telah Disahkan", "maintenance.text": "%1 is currently undergoing maintenance.
Please come back another time.", "maintenance.messageIntro": "Tambahan, admin meninggalkan mesej ini :", diff --git a/public/language/ms/recent.json b/public/language/ms/recent.json index 163bbf8272..6087203b6a 100644 --- a/public/language/ms/recent.json +++ b/public/language/ms/recent.json @@ -7,5 +7,7 @@ "alltime": "Selamanya", "no-recent-topics": "Tiada topik terkini", "no-popular-topics": "Tiada topik popular.", - "load-new-posts": "Load new posts" + "load-new-posts": "Load new posts", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/ms/topic.json b/public/language/ms/topic.json index 6a8d5b395e..0493a3172b 100644 --- a/public/language/ms/topic.json +++ b/public/language/ms/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 restored this topic on %2", "user-moved-topic-from-ago": "%1 moved this topic from %2 %3", "user-moved-topic-from-on": "%1 moved this topic from %2 on %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 queued post for approval %3", "user-queued-post-on": "%1 queued post for approval on %3", "user-referenced-topic-ago": "%1 referenced this topic %3", @@ -135,6 +137,7 @@ "bookmarks": "Bookmarks", "bookmarks.has-no-bookmarks": "You haven't bookmarked any posts yet.", "copy-permalink": "Copy Permalink", + "go-to-original": "View Original Post", "loading-more-posts": "Memuatkan lagi kiriman", "move-topic": "Pindahkan topik", "move-topics": "Pindahkan topik-topik", @@ -219,5 +222,7 @@ "downvote-post": "Downvote post", "post-tools": "Post tools", "unread-posts-link": "Unread posts link", - "thumb-image": "Topic thumbnail image" + "thumb-image": "Topic thumbnail image", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/ms/user.json b/public/language/ms/user.json index a92cd95e45..f2e36f30f8 100644 --- a/public/language/ms/user.json +++ b/public/language/ms/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Default category watch state", "followers": "Pengikut", "following": "Mengikuti", + "shares": "Shares", "blocks": "Blocks", "blocked-users": "Blocked users", "block-toggle": "Toggle Block", @@ -59,8 +60,10 @@ "chat-with": "Continue chat with %1", "new-chat-with": "Start new chat with %1", "flag-profile": "Flag Profile", + "profile-flagged": "Already flagged", "follow": "Ikuti", "unfollow": "Henti mengikuti", + "cancel-follow": "Cancel follow request", "more": "Lagi", "profile-update-success": "Profil telah dikemaskini", "change-picture": "Tukar gambar", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "This user hasn't downvoted any posts yet.", "has-no-controversial-posts": "This user does not have any downvoted posts yet.", "has-no-blocks": "You have blocked no users.", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "Emel disembunyikan", "hidden": "disembunyikan", "paginate-description": "Gunakan muka surat untuk topik dan kiriman daripada penggunaan skroll infiniti", diff --git a/public/language/ms/world.json b/public/language/ms/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/ms/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/nb/admin/manage/categories.json b/public/language/nb/admin/manage/categories.json index 582fb23c28..17d6c8267d 100644 --- a/public/language/nb/admin/manage/categories.json +++ b/public/language/nb/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Rettigheter", "back-to-categories": "Tilbake til kategorier", "name": "Kategorinavn", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Kategoribeskrivelse", "bg-color": "Bakgrunnsfarge", "text-color": "Tekstfarge", @@ -37,6 +39,7 @@ "disable": "Deaktiver", "edit": "Rediger", "analytics": "Analyser", + "federation": "Federation", "view-category": "Vis kategori", "set-order": "Sett rekkefølge", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Figur 3 – Daglige tråder publisert i denne kategorien", "analytics.posts-daily": "Figur 4 – Daglige innlegg i denne kategorien", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Opprettet", "alert.create-success": "Kategori opprettet!", "alert.none-active": "Du har ingen aktive kategorier.", diff --git a/public/language/nb/admin/manage/privileges.json b/public/language/nb/admin/manage/privileges.json index 1b2e763424..28702994b2 100644 --- a/public/language/nb/admin/manage/privileges.json +++ b/public/language/nb/admin/manage/privileges.json @@ -17,9 +17,9 @@ "invite": "Inviter", "search-content": "Søk i innhold", "search-users": "Søk etter brukere", - "search-tags": "Søk etter stikkord", + "search-tags": "Søk etter emneord", "view-users": "Vis brukere", - "view-tags": "Vis stikkord", + "view-tags": "Vis emneord", "view-groups": "Vis grupper", "allow-local-login": "Tillat lokal innlogging", "allow-group-creation": "Tillat gruppeoppretting", @@ -30,7 +30,7 @@ "create-topics": "Opprett emner", "reply-to-topics": "Svar på emner", "schedule-topics": "Planlegg emner", - "tag-topics": "Merk emner", + "tag-topics": "Legg til emneord", "edit-posts": "Rediger innlegg", "view-edit-history": "Vis redigeringshistorikk", "delete-posts": "Slett innlegg", @@ -46,7 +46,7 @@ "admin-users": "Brukere", "admin-admins-mods": "Administratorer og moderatorer", "admin-groups": "Grupper", - "admin-tags": "Stikkord", + "admin-tags": "Emneord", "admin-settings": "Innstillinger", "alert.confirm-moderate": "Er du sikker på at du vil gi moderasjonsrettigheter til denne brukergruppen? Denne gruppen er offentlig, og alle brukere kan bli medlem når som helst.", diff --git a/public/language/nb/admin/menu.json b/public/language/nb/admin/menu.json index c93faaafb9..ebf15d0d34 100644 --- a/public/language/nb/admin/menu.json +++ b/public/language/nb/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Emneord", "settings/notifications": "Varsler", "settings/api": "API-tilgang", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Lyder", "settings/social": "Sosialt", "settings/cookies": "Informasjonskapsler", diff --git a/public/language/nb/admin/settings/activitypub.json b/public/language/nb/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/nb/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/nb/admin/settings/reputation.json b/public/language/nb/admin/settings/reputation.json index b3f8a553b8..9612efe855 100644 --- a/public/language/nb/admin/settings/reputation.json +++ b/public/language/nb/admin/settings/reputation.json @@ -12,8 +12,8 @@ "downvote-visibility-privileged": "Bare privilegerte brukere kan se nedstemmer", "thresholds": "Aktivitetsterskler", "min-rep-upvote": "Minimum omdømme for å stemme opp innlegg", - "upvotes-per-day": "Oppstemmer per dag (sett til 0 for ubegrensede oppstemmer)", - "upvotes-per-user-per-day": "Oppstemmer per bruker per dag (sett til 0 for ubegrensede oppstemmer)", + "upvotes-per-day": " Tilrådinger per dag (sett til 0 for ubegrensede tilrådinger)", + "upvotes-per-user-per-day": " Tilrådinger per bruker per dag (sett til 0 for ubegrensede tilrådinger)", "min-rep-downvote": "Minimum omdømme for å stemme ned innlegg", "downvotes-per-day": "Nedstemmer per dag (sett til 0 for ubegrensede nedstemmer)", "downvotes-per-user-per-day": "Nedstemmer per bruker per dag (sett til 0 for ubegrensede nedstemmer)", diff --git a/public/language/nb/admin/settings/tags.json b/public/language/nb/admin/settings/tags.json index 798acc7885..ef947e77ee 100644 --- a/public/language/nb/admin/settings/tags.json +++ b/public/language/nb/admin/settings/tags.json @@ -4,7 +4,7 @@ "system-tags": "Systememneord", "system-tags-help": "Bare privilegerte brukere vil kunne bruke disse emneordene.", "tags-per-topic": "Emneord per tråd", - "min-per-topic": "Minimalt antall emneord per tråd", + "min-per-topic": "Minimum antall emneord per tråd", "max-per-topic": "Maksimalt antall emneord per tråd", "min-length": "Minimum lengde på emneord", "max-length": "Maksimal lengde på emneord", diff --git a/public/language/nb/admin/settings/user.json b/public/language/nb/admin/settings/user.json index 9d30d7988a..9b73670df6 100644 --- a/public/language/nb/admin/settings/user.json +++ b/public/language/nb/admin/settings/user.json @@ -80,7 +80,7 @@ "default-notification-settings": "Standard varslingsinnstillinger", "categoryWatchState": "Overvåkingsstatus for kategorier", "categoryWatchState.tracking": "Sporer", - "categoryWatchState.notwatching": "Overvåker ikke", + "categoryWatchState.notwatching": "Følger ikke", "categoryWatchState.ignoring": "Ignorerer", "restrictions-new": "Nye brukerrestriksjoner", "restrictions.rep-threshold": "Minimum omdømmekrav", diff --git a/public/language/nb/category.json b/public/language/nb/category.json index e6674f2cad..91e5e13598 100644 --- a/public/language/nb/category.json +++ b/public/language/nb/category.json @@ -3,7 +3,7 @@ "subcategories": "Underkategorier", "new-topic-button": "Nytt emne", "guest-login-post": "Logg inn for å publisere innlegg", - "no-topics": "Det er ingen emner i denne kategorien
Hvorfor ikke opprette et?", + "no-topics": "Denne kategorien er foreløpig tom.
Har du noe å dele? Opprett et innlegg her!", "browsing": "leser", "no-replies": "Ingen har svart", "no-new-posts": "Ingen nye innlegg.", diff --git a/public/language/nb/error.json b/public/language/nb/error.json index a5c14d25ac..9892aec35f 100644 --- a/public/language/nb/error.json +++ b/public/language/nb/error.json @@ -172,7 +172,7 @@ "reputation-system-disabled": "Omdømmesystemet er deaktivert.", "downvoting-disabled": "Nedstemming er deaktivert", "not-enough-reputation-to-chat": "Du trenger %1 omdømme for å chatte", - "not-enough-reputation-to-upvote": "Du trenger %1 omdømme for å stemme opp.", + "not-enough-reputation-to-upvote": "Du trenger %1 omdømme for å tilrå.", "not-enough-reputation-to-downvote": "Du trenger %1 omdømme for å stemme ned.", "not-enough-reputation-to-post-links": "Du trenger %1 omdømme for å poste lenker", "not-enough-reputation-to-flag": "Du trenger %1 omdømme for å flagge dette innlegget.", @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "Du har ikke tillatelse til å endre plugin-status da de er definert under kjøring (config.json, miljøvariabler eller terminalargumenter)Vennligst endre konfigurasjonen i stedet.", "theme-not-set-in-configuration": "Når aktive plugins er definert i konfigurasjonen, krever endring av tema at det nye temaet legges til i listen over aktive plugins før det oppdateres i ACP.", "topic-event-unrecognized": "Trådhendelse '%1' er ukjent", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Kan ikke sette underkategori til hovedkategori", "cant-set-self-as-parent": "Kan ikke sette denne som hovedkategori", "api.master-token-no-uid": "Et master token ble mottatt uten korresponderende `_uid` i request body", @@ -247,5 +248,11 @@ "api.500": "En uventet feil oppstod mens vi prøvde å betjene forespørsel din.", "api.501": "Ruten du prøver å kalle er ikke implementert enda. Prøv igjen i morgen", "api.503": "Ruten du prøver å kalle er for øyeblikket ikke tilgjengelig grunnet innstilling på serveren", - "api.reauth-required": "Ressursen du prøver å få tilgang til krever (re-)autentisering." + "api.reauth-required": "Ressursen du prøver å få tilgang til krever (re-)autentisering.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/nb/flags.json b/public/language/nb/flags.json index 3650218b20..305a699267 100644 --- a/public/language/nb/flags.json +++ b/public/language/nb/flags.json @@ -75,7 +75,7 @@ "sort-all": "Alle flaggtyper", "sort-posts-only": "Kun innlegg", "sort-downvotes": "Flest nedstemminger", - "sort-upvotes": "Flest oppstemminger", + "sort-upvotes": "Flest tilrådinger", "sort-replies": "Flest kommentarer", "modal-title": "Rapporter innhold", @@ -84,11 +84,17 @@ "modal-reason-offensive": "Støtende", "modal-reason-other": "Annet (spesifiser nedenfor)", "modal-reason-custom": "Årsak til rapportering av dette innholdet ...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Send inn rapporten", "modal-submit-success": "Innholdet er flagget for moderering.", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Massehandlinger", "bulk-resolve": "Løs flagg(ene)", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 flagg er oppdatert", "flagged-timeago": "Flagget for %1 siden", "auto-flagged": "[Automatisk flagg] Mottok %1 nedstemminger." diff --git a/public/language/nb/global.json b/public/language/nb/global.json index 54ee53976c..1e79477472 100644 --- a/public/language/nb/global.json +++ b/public/language/nb/global.json @@ -50,6 +50,7 @@ "header.navigation": "Navigasjon", "header.manage": "Administrer", "header.drafts": "Utkast", + "header.world": "World", "notifications.loading": "Laster varsler", "chats.loading": "Laster samtaler", "drafts.loading": "Laster utkast", @@ -75,8 +76,8 @@ "votes": "Stemmer", "x-votes": "%1 stemmer", "voters": "Velgere", - "upvoters": "Oppstemmere", - "upvoted": "Oppstemt", + "upvoters": "Tilrår", + "upvoted": "Tilrådde", "downvoters": "Nedstemmere", "downvoted": "Nedstemt", "views": "Visninger", @@ -110,6 +111,7 @@ "dnd": "Ikke forstyrr", "invisible": "Usynlig", "offline": "Frakoblet", + "remote-user": "This user is from outside of this forum", "email": "E-post", "language": "Språk", "guest": "Gjest", diff --git a/public/language/nb/modules.json b/public/language/nb/modules.json index c522e0b191..e11a03e664 100644 --- a/public/language/nb/modules.json +++ b/public/language/nb/modules.json @@ -18,7 +18,7 @@ "chat.replying-to": "Svarer %1", "chat.see-all": "Alle chatter", "chat.mark-all-read": "Marker alle som lest", - "chat.no-messages": "Velg en mottaker for å vise chattehistorikk", + "chat.no-messages": "Velg en mottaker for å vise meldingshistorikk", "chat.no-users-in-room": "Ingen brukere i dette rommet", "chat.recent-chats": "Nylige chatter", "chat.contacts": "Kontakter", @@ -102,9 +102,9 @@ "composer.formatting.picture": "Bildelenke", "composer.upload-picture": "Last opp bilde", "composer.upload-file": "Last opp fil", - "composer.zen-mode": "Zen-modus", + "composer.zen-mode": "Forenklet visning", "composer.select-category": "Velg en kategori", - "composer.textarea.placeholder": "Skriv inn innhold her, dra og slipp bilder", + "composer.textarea.placeholder": "Skriv inn innhold her", "composer.post-queue-alert": "Hei 👋!
Dette forumet bruker et system for innleggskø. Siden du er en ny bruker, vil innlegget ditt være skjult til det er godkjent av vårt moderasjonsteam.", "composer.schedule-for": "Planlegg emne for", "composer.schedule-date": "Dato", @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Forkast alle utkast", "composer.no-drafts": "Du har ingen utkast", "composer.discard-draft-confirm": "Vil du forkaste dette utkastet?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "OK", "bootbox.cancel": "Avbryt", "bootbox.confirm": "Bekreft", diff --git a/public/language/nb/notifications.json b/public/language/nb/notifications.json index 215be2d3bb..115879e8ec 100644 --- a/public/language/nb/notifications.json +++ b/public/language/nb/notifications.json @@ -15,11 +15,11 @@ "tags": "Emneord", "categories": "Kategorier", "replies": "Svar", - "chat": "Samtaler", - "group-chat": "Gruppesamtaler", - "public-chat": "Offentlige samtaler", + "chat": "Chatter", + "group-chat": "Gruppechat", + "public-chat": "Offentlig chat", "follows": "Følger", - "upvote": "Oppstemmer", + "upvote": " Tilrår", "awards": "Tildelninger", "new-flags": "Nye flagg", "my-flags": "Flagg som er tildelt meg", @@ -32,10 +32,10 @@ "user-posted-in-public-room-dual": "%1 og %2 skrev i %4", "user-posted-in-public-room-triple": "%1, %2 og %3 skrev i %5", "user-posted-in-public-room-multiple": "%1, %2 og %3 andre skrev i %5", - "upvoted-your-post-in": "%1 har stemt opp innlegget ditt i %2.", - "upvoted-your-post-in-dual": "%1 og %2 har stemt opp innlegget ditt i %3.", - "upvoted-your-post-in-triple": "%1, %2 og %3 har stemt opp innlegget ditt i %4.", - "upvoted-your-post-in-multiple": "%1, %2 og %3 andre har stemt opp innlegget ditt i %4.", + "upvoted-your-post-in": "%1 har tilrådd innlegget ditt i %2.", + "upvoted-your-post-in-dual": "%1 og %2 har tilrådd innlegget ditt i %3.", + "upvoted-your-post-in-triple": "%1, %2 og %3 har tilrådd innlegget ditt i %4.", + "upvoted-your-post-in-multiple": "%1, %2 og %3 andre har tilrådd innlegget ditt i %4.", "moved-your-post": "%1 har flyttet innlegget ditt til %2.", "moved-your-topic": "%1 har flyttet %2", "user-flagged-post-in": "%1 har flagget et innlegg i %2", @@ -78,10 +78,10 @@ "email-confirm-error-message-already-validated": "Your email address was already validated.", "email-confirm-sent": "Bekreftelses-e-post sendt.", "none": "Ingen", - "notification-only": "Kun notifikasjon", + "notification-only": "Kun varsel", "email-only": "Kun e-post", - "notification-and-email": "Notifikasjon og e-post", - "notificationType-upvote": "Når noen stemmer opp innlegget ditt", + "notification-and-email": "Varsel og e-post", + "notificationType-upvote": "Når noen tilrår innlegget ditt", "notificationType-new-topic": "Når noen du følger legger ut et emne", "notificationType-new-topic-with-tag": "Når et emne publiseres med et stikkord du følger", "notificationType-new-topic-in-category": "Når et emne er lagt ut i en kategori du ser på", @@ -90,7 +90,7 @@ "notificationType-follow": "Når noen starter å følge deg", "notificationType-new-chat": "Når du mottar en melding i chat", "notificationType-new-group-chat": "Når du mottar en gruppemelding i chat", - "notificationType-new-public-chat": "Når du mottar en melding i en offentlig gruppesamtale", + "notificationType-new-public-chat": "Når du mottar en melding i en offentlig chat", "notificationType-group-invite": "Når du får tilsendt en gruppeinvitasjon", "notificationType-group-leave": "Når en bruker forlater gruppen din", "notificationType-group-request-membership": "Når noen sender en forespørsel om å bli med i en gruppe du eier", @@ -98,5 +98,9 @@ "notificationType-post-queue": "Når et nytt innlegg er satt i kø", "notificationType-new-post-flag": "Når ett nytt innlegg er flagget", "notificationType-new-user-flag": "Når en bruker er flagget", - "notificationType-new-reward": "Når du får en ny tildelning" + "notificationType-new-reward": "Når du får en ny tildelning", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/nb/pages.json b/public/language/nb/pages.json index 0b99a4d6e5..bfeaece7e9 100644 --- a/public/language/nb/pages.json +++ b/public/language/nb/pages.json @@ -36,6 +36,7 @@ "chat": "Samtale med %1", "flags": "Flagg", "flag-details": "Flagg %1 detaljer", + "world": "World", "account/edit": "Endrer \"%1\"", "account/edit/password": "Redigeringspassord for \"%1\"", "account/edit/username": "Rediger brukernavnet til \"%1\"", @@ -47,21 +48,22 @@ "account/latest-posts": "Seneste innlegg skrevet av %1", "account/topics": "Emner opprettet av %1", "account/groups": "%1 sine grupper", - "account/watched-categories": "%1 sine overvåkede kategorier", - "account/watched-tags": "%1 sine overvåkede emneord", + "account/watched-categories": "%1 sine fulgte kategorier", + "account/watched-tags": "%1 sine fulgte emneord", "account/bookmarks": "%1 sine bokmerkede innlegg", "account/settings": "Brukerinnstillinger", "account/settings-of": "Endre innstillingene til %1", "account/watched": "Innlegg overvåket av %1", "account/ignored": "Emner ignorert av %1", "account/read": "Emner lest av %1", - "account/upvoted": "Innlegg stemt opp av %1", + "account/upvoted": "Innlegg tilrådd av %1", "account/downvoted": "Innlegg nedstemt av %1", "account/best": "Beste innlegg skrevet av %1", "account/controversial": "Kontroversielle innlegg skrevet av %1", "account/blocks": "Brukere blokkert av %1", "account/uploads": "Opplastninger av %1", "account/sessions": "Påloggingsøkter", + "account/shares": "Topics shared by %1", "confirm": "E-post bekreftet", "maintenance.text": "%1 er for øyeblikket under vedlikehold.
Vennligst kom tilbake en annen gang.", "maintenance.messageIntro": "I tillegg har administratoren skrevet denne meldingen:", diff --git a/public/language/nb/recent.json b/public/language/nb/recent.json index e17bf94e4d..c3a05198b5 100644 --- a/public/language/nb/recent.json +++ b/public/language/nb/recent.json @@ -7,5 +7,7 @@ "alltime": "All tid", "no-recent-topics": "Det er ingen nye emner.", "no-popular-topics": "Det er ingen populære emner.", - "load-new-posts": "Last inn nye innlegg" + "load-new-posts": "Last inn nye innlegg", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/nb/tags.json b/public/language/nb/tags.json index 85f56e9cc8..300852b7ab 100644 --- a/public/language/nb/tags.json +++ b/public/language/nb/tags.json @@ -1,6 +1,6 @@ { "all-tags": "Alle emneord", - "no-tag-topics": "Det er ingen emner med dette emneordet.", + "no-tag-topics": "Det er ingen innleggg med dette emneordet.", "no-tags-found": "Ingen emneord funnet", "tags": "Emneord", "enter-tags-here": "Skriv inn emneord, %1 - %2 tegn.", diff --git a/public/language/nb/topic.json b/public/language/nb/topic.json index b09ebb6019..21646ac420 100644 --- a/public/language/nb/topic.json +++ b/public/language/nb/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 gjenopprettet dette menet på %2", "user-moved-topic-from-ago": "%1 flyttet dette emnet fra %2 %3", "user-moved-topic-from-on": "%1 flyttet dette emnet fra %2 på %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 i kø post til godkjenning %3", "user-queued-post-on": "%1 i køpost til godkjenning %3", "user-referenced-topic-ago": "%1 refererte dette emnet %3", @@ -107,7 +109,7 @@ "thread-tools.manage-editors": "Administrer Editor", "thread-tools.select-category": "Velg kategori", "thread-tools.fork": "Forgren tråd", - "thread-tools.tag": "Merk tråd", + "thread-tools.tag": "Legg til emneord", "thread-tools.delete": "Slett tråd", "thread-tools.delete-posts": "Slett innlegg", "thread-tools.delete-confirm": "Er du sikker på at du vil slette denne tråden?", @@ -135,6 +137,7 @@ "bookmarks": "Bokmerker", "bookmarks.has-no-bookmarks": "Du har ikke bokmerket noen innlegg ennå.", "copy-permalink": "Kopier permanent lenke", + "go-to-original": "View Original Post", "loading-more-posts": "Laster flere innlegg", "move-topic": "Flytt tråd", "move-topics": "Flytt tråder", @@ -162,7 +165,7 @@ "manage-editors-instruction": "Administrer brukere som kan redigere dette innlegget nedenfor.", "composer.title-placeholder": "Skriv din tråd-tittel her", "composer.handle-placeholder": "Skriv inn navnet ditt / signatur her", - "composer.hide": "Gjem", + "composer.hide": "Skjul", "composer.discard": "Forkast", "composer.submit": "Send", "composer.additional-options": "Ytterligere alternativer", @@ -219,5 +222,7 @@ "downvote-post": "Ikke tilrå innlegg", "post-tools": "Innleggsverktøy", "unread-posts-link": "Lenke til uleste innlegg", - "thumb-image": "Miniatyrbilde for emne" + "thumb-image": "Miniatyrbilde for emne", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/nb/user.json b/public/language/nb/user.json index 8517bb2410..da9b6365ff 100644 --- a/public/language/nb/user.json +++ b/public/language/nb/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Standard følgesstatus for kategorier", "followers": "Følgere", "following": "Følger", + "shares": "Shares", "blocks": "Blokkeringer", "blocked-users": "Blokkerte brukere", "block-toggle": "Endre blokkering", @@ -59,8 +60,10 @@ "chat-with": "Fortsett å chatte med %1", "new-chat-with": "Start ny chat med %1", "flag-profile": "Rapporter profil", + "profile-flagged": "Already flagged", "follow": "Følg", "unfollow": "Avfølg", + "cancel-follow": "Cancel follow request", "more": "Mer", "profile-update-success": "Profilen ble oppdatert!", "change-picture": "Bytt bilde", @@ -116,10 +119,11 @@ "has-no-watched-topics": "Denne brukeren har ikke fulgt noen tråder enda.", "has-no-ignored-topics": "Denne brukeren har ikke ignorert noen emner ennå", "has-no-read-topics": "Denne brukeren har ikke lest noen tråder enda.", - "has-no-upvoted-posts": "Denne brukeren har ikke stemt opp noen innlegg ennå.", + "has-no-upvoted-posts": "Denne brukeren har ikke tilrådd noen innlegg ennå.", "has-no-downvoted-posts": "Denne brukeren har ikke stemt ned noen innlegg ennå.", "has-no-controversial-posts": "Denne brukeren har ikke noen nedstemte innlegg ennå.", "has-no-blocks": "Du har ingen blokkerte brukere.", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "E-post skjult", "hidden": "skjult", "paginate-description": "Bruk sidevelger for tråder og innlegg istedet for uendelig scrolling", @@ -129,11 +133,11 @@ "topic-post-sort": "Sortering av emneinnlegg", "max-items-per-page": "Maksimum %1", "acp-language": "Administrer sidespråk", - "notifications": "Notifikasjoner", + "notifications": "Varsler", "upvote-notif-freq": "Varslingsfrekvens for opp-stemmer", - "upvote-notif-freq.all": "Alle oppstemmer", + "upvote-notif-freq.all": "Alle tilrådinger", "upvote-notif-freq.first": "Først per innlegg", - "upvote-notif-freq.everyTen": "Hver tiende oppstemning", + "upvote-notif-freq.everyTen": "Hver tiende tilråding", "upvote-notif-freq.threshold": "På 1, 5, 10, 25, 50, 100, 150, 200 ...", "upvote-notif-freq.logarithmic": "På 10, 100, 1000 ...", "upvote-notif-freq.disabled": "Noe er galt med funksjonen", @@ -211,11 +215,11 @@ "consent.right-to-data-portability": "Du har retten til dataportabilitet", "consent.right-to-data-portability-description": "Du kan be oss om maskinlesbar eksport av innsamlede data om deg og brukerkontoen din. Du kan gjøre det ved å klikke på riktig knapp nedenfor.", "consent.export-profile": "Eksporter profil (.json)", - "consent.export-profile-success": "Eksporterer profil, du vil få en notifikasjon når eksporten er fullført.", + "consent.export-profile-success": "Eksporterer profil, du vil få et varsel når eksporten er fullført.", "consent.export-uploads": "Eksporter opplastet innhold (.zip)", "consent.export-uploads-success": "Når du eksporterer opplastinger, får du et varsel når det er fullført.", "consent.export-posts": "Eksporter innlegg (.csv)", - "consent.export-posts-success": "Eksporterer innlegg, du får en notifikasjon når eksporten er fullført.", + "consent.export-posts-success": "Eksporterer innlegg, du får et varsel når eksporten er fullført.", "emailUpdate.intro": "Skriv inn e-postadressen din nedenfor. Dette forumet bruker e-postadressen din til planlagte sammendrag og varsler, og for gjenoppretting av konto ved glemt passord.", "emailUpdate.optional": "Dette feltet er valgfritt. Du er ikke forpliktet til å oppgi e-postadressen din, men uten en validert e-postadresse vil du ikke kunne gjenopprette kontoen din eller logge på med e-postadressen din.", "emailUpdate.required": "Dette feltet er obligatorisk", diff --git a/public/language/nb/world.json b/public/language/nb/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/nb/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/nl/admin/manage/categories.json b/public/language/nl/admin/manage/categories.json index 0ef47bcb70..02b97ddb87 100644 --- a/public/language/nl/admin/manage/categories.json +++ b/public/language/nl/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Privileges", "back-to-categories": "Back to categories", "name": "Category Name", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Category Description", "bg-color": "Background Colour", "text-color": "Text Colour", @@ -37,6 +39,7 @@ "disable": "Disable", "edit": "Edit", "analytics": "Analytics", + "federation": "Federation", "view-category": "View category", "set-order": "Set order", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Figure 3 – Daily topics created in this category", "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Created", "alert.create-success": "Category successfully created!", "alert.none-active": "You have no active categories.", diff --git a/public/language/nl/admin/menu.json b/public/language/nl/admin/menu.json index ce63a54b14..3d4c8ba51a 100644 --- a/public/language/nl/admin/menu.json +++ b/public/language/nl/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Tags", "settings/notifications": "Notifications", "settings/api": "API Access", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Sounds", "settings/social": "Social", "settings/cookies": "Cookies", diff --git a/public/language/nl/admin/settings/activitypub.json b/public/language/nl/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/nl/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/nl/error.json b/public/language/nl/error.json index a47ede84c4..4fe2a41ab6 100644 --- a/public/language/nl/error.json +++ b/public/language/nl/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", "topic-event-unrecognized": "Topic event '%1' unrecognized", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Can't set child as parent category", "cant-set-self-as-parent": "Can't set self as parent category", "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body", @@ -247,5 +248,11 @@ "api.500": "An unexpected error was encountered while attempting to service your request.", "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow", "api.503": "The route you are trying to call is not currently available due to a server configuration", - "api.reauth-required": "The resource you are trying to access requires (re-)authentication." + "api.reauth-required": "The resource you are trying to access requires (re-)authentication.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/nl/flags.json b/public/language/nl/flags.json index 7faecd1af0..c95c23a4c4 100644 --- a/public/language/nl/flags.json +++ b/public/language/nl/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Aanstootgevend", "modal-reason-other": "Anders (specificeer onder)", "modal-reason-custom": "Reden voor het rapporteren van deze content...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Rapport verzenden", "modal-submit-success": "Inhoud is gemarkeerd voor moderatie.", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Bulk acties", "bulk-resolve": "Los markering(en) op", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 markeringen aangepast", "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." diff --git a/public/language/nl/global.json b/public/language/nl/global.json index 6b4c511edc..ba055584b7 100644 --- a/public/language/nl/global.json +++ b/public/language/nl/global.json @@ -50,6 +50,7 @@ "header.navigation": "Navigatie", "header.manage": "Manage", "header.drafts": "Drafts", + "header.world": "World", "notifications.loading": "Notificaties laden", "chats.loading": "Chats laden", "drafts.loading": "Loading Drafts", @@ -110,6 +111,7 @@ "dnd": "Niet storen", "invisible": "Onzichtbaar", "offline": "Offline", + "remote-user": "This user is from outside of this forum", "email": "E-mail", "language": "Taal", "guest": "Gast", diff --git a/public/language/nl/modules.json b/public/language/nl/modules.json index 89f725497f..cbe6bc5603 100644 --- a/public/language/nl/modules.json +++ b/public/language/nl/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Discard all drafts", "composer.no-drafts": "You have no drafts", "composer.discard-draft-confirm": "Do you want to discard this draft?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "OK", "bootbox.cancel": "Annuleren", "bootbox.confirm": "Bevestig", diff --git a/public/language/nl/notifications.json b/public/language/nl/notifications.json index 468dd22352..63f9ed5a4e 100644 --- a/public/language/nl/notifications.json +++ b/public/language/nl/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "Als een bericht aan de wachtrij wordt toegevoegd", "notificationType-new-post-flag": "Als een bericht wordt gevlagd", "notificationType-new-user-flag": "Als een gebruiker wordt gevlagd", - "notificationType-new-reward": "When you earn a new reward" + "notificationType-new-reward": "When you earn a new reward", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/nl/pages.json b/public/language/nl/pages.json index 1d2153e538..c270f39101 100644 --- a/public/language/nl/pages.json +++ b/public/language/nl/pages.json @@ -36,6 +36,7 @@ "chat": "Chatten met %1", "flags": "Markeringen", "flag-details": "Markering %1 details", + "world": "World", "account/edit": "\"%1\" aanpassen", "account/edit/password": "Wachtwoord van \"%1\" aanpassen", "account/edit/username": "Gebruikersnaam van \"%1\" aanpassen", @@ -62,6 +63,7 @@ "account/blocks": "Gebruikers geblokkeerd door %1", "account/uploads": "Uploads door %1", "account/sessions": "Login sessies", + "account/shares": "Topics shared by %1", "confirm": "Email Bevestigd", "maintenance.text": "%1 is currently undergoing maintenance.
Please come back another time.", "maintenance.messageIntro": "Daarnaast heeft de beheerder het volgende bericht achtergelaten:", diff --git a/public/language/nl/recent.json b/public/language/nl/recent.json index 05a3a3bb4a..860c75dc13 100644 --- a/public/language/nl/recent.json +++ b/public/language/nl/recent.json @@ -7,5 +7,7 @@ "alltime": "altijd", "no-recent-topics": "Er zijn geen recente onderwerpen.", "no-popular-topics": "Er zijn geen populaire onderwerpen.", - "load-new-posts": "Load new posts" + "load-new-posts": "Load new posts", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/nl/topic.json b/public/language/nl/topic.json index fc99b83387..ff3e53c91a 100644 --- a/public/language/nl/topic.json +++ b/public/language/nl/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 restored this topic on %2", "user-moved-topic-from-ago": "%1 moved this topic from %2 %3", "user-moved-topic-from-on": "%1 moved this topic from %2 on %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 queued post for approval %3", "user-queued-post-on": "%1 queued post for approval on %3", "user-referenced-topic-ago": "%1 referenced this topic %3", @@ -135,6 +137,7 @@ "bookmarks": "Favorieten", "bookmarks.has-no-bookmarks": "Je hebt nog geen berichten aan je favorieten toegevoegd.", "copy-permalink": "Copy Permalink", + "go-to-original": "View Original Post", "loading-more-posts": "Meer berichten laden...", "move-topic": "Onderwerp verplaatsen", "move-topics": "Verplaats onderwerpen", @@ -219,5 +222,7 @@ "downvote-post": "Downvote post", "post-tools": "Post tools", "unread-posts-link": "Unread posts link", - "thumb-image": "Topic thumbnail image" + "thumb-image": "Topic thumbnail image", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/nl/user.json b/public/language/nl/user.json index 615e6f703f..bc036ea36f 100644 --- a/public/language/nl/user.json +++ b/public/language/nl/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Standaard bekeken status van categorie", "followers": "Volgers", "following": "Volgend", + "shares": "Shares", "blocks": "Blokkeringen", "blocked-users": "Blocked users", "block-toggle": "Toggle Blokkering", @@ -59,8 +60,10 @@ "chat-with": "Chat verder met %1", "new-chat-with": "Begin een chat met %1", "flag-profile": "Profiel vlaggen", + "profile-flagged": "Already flagged", "follow": "Volgen", "unfollow": "Ontvolgen", + "cancel-follow": "Cancel follow request", "more": "Meer", "profile-update-success": "Het gebruikersprofiel is met succes gewijzigd", "change-picture": "Bewerk afbeelding", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "Deze gebruiker heeft nog geen berichten omlaag gestemd.", "has-no-controversial-posts": "This user does not have any downvoted posts yet.", "has-no-blocks": "U hebt geen gebruikers geblokkeerd", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "E-mail niet beschikbaar", "hidden": "verborgen", "paginate-description": "Blader door onderwerpen en berichten in plaats van oneindig scrollen.", diff --git a/public/language/nl/world.json b/public/language/nl/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/nl/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/nn-NO/admin/manage/categories.json b/public/language/nn-NO/admin/manage/categories.json index 3e093bbf9f..93e824e599 100644 --- a/public/language/nn-NO/admin/manage/categories.json +++ b/public/language/nn-NO/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Rettar", "back-to-categories": "Tilbake til kategoriar", "name": "Namn", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Skildring", "bg-color": "Bakgrunnsfarge", "text-color": "Tekstfarge", @@ -17,7 +19,7 @@ "subcategories-per-page": "Underkategoriar per side", "is-section": "Er seksjon", "post-queue": "Innleggskø", - "tag-whitelist": "Stikkord kviteliste", + "tag-whitelist": "Kviteliste emneord", "upload-image": "Last opp bilete", "upload": "Last opp", "delete-image": "Slett bilete", @@ -37,6 +39,7 @@ "disable": "Deaktiver", "edit": "Rediger", "analytics": "Analyse", + "federation": "Federation", "view-category": "Vis kategori", "set-order": "Set rekkjefølgje", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Emne per dag", "analytics.posts-daily": "Innlegg per dag", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Oppretta", "alert.create-success": "Kategori oppretta med suksess", "alert.none-active": "Ingen aktive kategoriar", @@ -91,7 +110,7 @@ "alert.user-search": "Søk etter brukar", "alert.find-group": "Finn gruppe", "alert.group-search": "Søk etter gruppe", - "alert.not-enough-whitelisted-tags": "Ikkje nok kvitelista stikkord", + "alert.not-enough-whitelisted-tags": "Ikkje nok kvitelista emneord", "collapse-all": "Slå saman alle", "expand-all": "Utvid alle", "disable-on-create": "Deaktiver ved oppretting", diff --git a/public/language/nn-NO/admin/manage/privileges.json b/public/language/nn-NO/admin/manage/privileges.json index a90afc2315..42dd969247 100644 --- a/public/language/nn-NO/admin/manage/privileges.json +++ b/public/language/nn-NO/admin/manage/privileges.json @@ -17,9 +17,9 @@ "invite": "Inviter", "search-content": "Søk i innhald", "search-users": "Søk etter brukarar", - "search-tags": "Søk etter stikkord", + "search-tags": "Søk etter emneord", "view-users": "Vis brukarar", - "view-tags": "Vis stikkord", + "view-tags": "Vis emneord", "view-groups": "Vis grupper", "allow-local-login": "Tillat lokal innlogging", "allow-group-creation": "Tillat gruppeoppretting", @@ -30,12 +30,12 @@ "create-topics": "Opprett emne", "reply-to-topics": "Svar på emne", "schedule-topics": "Planlegg emne", - "tag-topics": "Merk emne", + "tag-topics": "Legg til emneord", "edit-posts": "Rediger innlegg", "view-edit-history": "Vis redigeringshistorikk", "delete-posts": "Slett innlegg", "view-deleted": "Vis sletta", - "upvote-posts": "Stem opp innlegg", + "upvote-posts": "Tilrå innlegg", "downvote-posts": "Stem ned innlegg", "delete-topics": "Slett emne", "purge": "Rensk", @@ -46,7 +46,7 @@ "admin-users": "Admin-brukarar", "admin-admins-mods": "Admin-administratorar/moderatorar", "admin-groups": "Admin-grupper", - "admin-tags": "Admin-stikkord", + "admin-tags": "Emneord", "admin-settings": "Admin-innstillingar", "alert.confirm-moderate": "Er du sikker på at du vil moderere?", diff --git a/public/language/nn-NO/admin/manage/tags.json b/public/language/nn-NO/admin/manage/tags.json index 01aa1fe6ac..fb95bac7e2 100644 --- a/public/language/nn-NO/admin/manage/tags.json +++ b/public/language/nn-NO/admin/manage/tags.json @@ -1,20 +1,20 @@ { - "manage-tags": "Administrer stikkord", - "none": "Ingen", + "manage-tags": "Administrer emneord", + "none": "Forumet har ingen innlegg med emneord enno.", "bg-color": "Bakgrunnsfarge", "text-color": "Tekstfarge", "description": "Skildring", - "create": "Opprett", - "add-tag": "Legg til stikkord", - "modify": "Endre", - "rename": "Endre namn", - "delete": "Slett", - "search": "Søk", + "create": "Opprett emneord", + "add-tag": "Legg til emneord", + "modify": "Tilpass emneord", + "rename": "Endre emneord", + "delete": "Slett emneord", + "search": "Søk etter emneord", "settings": "Innstillingar", - "name": "Namn", + "name": "Namn på emneord", - "alerts.editing": "Redigerer", - "alerts.confirm-delete": "Er du sikker på at du vil slette dette stikkordet?", + "alerts.editing": "Redigerer emneord", + "alerts.confirm-delete": "Er du sikker på at du vil slette dette emneordet?", "alerts.update-success": "Oppdatering lukkast", "reset-colors": "Tilbakestill fargar" } \ No newline at end of file diff --git a/public/language/nn-NO/admin/menu.json b/public/language/nn-NO/admin/menu.json index bb8746ac3c..8ab19ed3c7 100644 --- a/public/language/nn-NO/admin/menu.json +++ b/public/language/nn-NO/admin/menu.json @@ -10,7 +10,7 @@ "section-manage": "Administrer", "manage/categories": "Kategoriar", "manage/privileges": "Rettar", - "manage/tags": "Stikkord", + "manage/tags": "Emneord", "manage/users": "Brukarar", "manage/admins-mods": "Administratorar og moderatorar", "manage/registration": "Registrering", @@ -35,9 +35,10 @@ "settings/post": "Innlegg", "settings/chat": "Chat", "settings/pagination": "Paginering", - "settings/tags": "Stikkord", + "settings/tags": "Emneord", "settings/notifications": "Varsel", "settings/api": "API-tilgang", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Lydar", "settings/social": "Sosial", "settings/cookies": "Informasjonskapslar", diff --git a/public/language/nn-NO/admin/settings/activitypub.json b/public/language/nn-NO/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/nn-NO/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/nn-NO/admin/settings/reputation.json b/public/language/nn-NO/admin/settings/reputation.json index 9f9281df98..bcf7b0cf51 100644 --- a/public/language/nn-NO/admin/settings/reputation.json +++ b/public/language/nn-NO/admin/settings/reputation.json @@ -11,9 +11,9 @@ "downvote-visibility-loggedin": "Berre innlogga brukarar kan sjå nedstemmer", "downvote-visibility-privileged": "Berre privilegerte brukarar kan sjå nedstemmer", "thresholds": "Grenseverdiar", - "min-rep-upvote": "Minimum omdømme for å stemme opp", - "upvotes-per-day": "Oppstemmer per dag", - "upvotes-per-user-per-day": "Oppstemmer per brukar per dag", + "min-rep-upvote": "Minimum omdømme for å tilrå", + "upvotes-per-day": "Tilrådingar per dag", + "upvotes-per-user-per-day": "Tilrådingar per brukar per dag", "min-rep-downvote": "Minimum omdømme for å stemme ned", "downvotes-per-day": "Nedstemmer per dag", "downvotes-per-user-per-day": "Nedstemmer per brukar per dag", diff --git a/public/language/nn-NO/admin/settings/tags.json b/public/language/nn-NO/admin/settings/tags.json index f52c27a2f6..1e3d230039 100644 --- a/public/language/nn-NO/admin/settings/tags.json +++ b/public/language/nn-NO/admin/settings/tags.json @@ -1,13 +1,13 @@ { - "tag": "Stikkord", - "link-to-manage": "Lenkje til administrasjon", - "system-tags": "Systemstikkord", - "system-tags-help": "Systemstikkord vert brukt til spesifikke føremål i forumet.", - "tags-per-topic": "Stikkord per emne", - "min-per-topic": "Minimum stikkord per emne", - "max-per-topic": "Maksimum stikkord per emne", - "min-length": "Minimum lengd", - "max-length": "Maksimum lengd", + "tag": "Innstilling for emneord", + "link-to-manage": "Administrer emneord", + "system-tags": "Systememneord", + "system-tags-help": "Systememneord vert brukt til spesifikke føremål i forumet.", + "tags-per-topic": "Emneord per tråd", + "min-per-topic": "Minimum emnerord per tråd", + "max-per-topic": "Maksimum emnerord per tråd", + "min-length": "Minimum lengd på emneord", + "max-length": "Maksimum lengd på emneord", "related-topics": "Relaterte emne", "max-related-topics": "Maksimum relaterte emne" } \ No newline at end of file diff --git a/public/language/nn-NO/aria.json b/public/language/nn-NO/aria.json index 7de30fd642..54e2f61bc4 100644 --- a/public/language/nn-NO/aria.json +++ b/public/language/nn-NO/aria.json @@ -3,7 +3,7 @@ "topic-sort-option": "Val for emnessortering, %1", "user-avatar-for": "Brukar ikon for %1", "profile-page-for": "Profile page for user %1", - "user-watched-tags": "Stikkord følgd av brukar", + "user-watched-tags": "Emneord følgt av brukar", "delete-upload-button": "Slett opplasting-knapp", "group-page-link-for": "Gruppeside-lenkje for, %1" } \ No newline at end of file diff --git a/public/language/nn-NO/category.json b/public/language/nn-NO/category.json index a632af845e..7287400455 100644 --- a/public/language/nn-NO/category.json +++ b/public/language/nn-NO/category.json @@ -3,7 +3,7 @@ "subcategories": "Underkategoriar", "new-topic-button": "Nytt emne", "guest-login-post": "Logg inn for å legge inn innlegg", - "no-topics": "Det er ingen emne i denne kategorien.
Kvifor prøver du ikkje å lage eit?", + "no-topics": "Denne kategorien er foreløpig tom.
Har du noko å dele? Opprett eit innlegg her!", "browsing": "blar gjennom", "no-replies": "Ingen har svart", "no-new-posts": "Ingen nye innlegg.", diff --git a/public/language/nn-NO/error.json b/public/language/nn-NO/error.json index 2e19070749..82fa382c4f 100644 --- a/public/language/nn-NO/error.json +++ b/public/language/nn-NO/error.json @@ -93,11 +93,11 @@ "too-many-posts-newbie": "Som ny brukar kan du berre poste ein gong kvart %1 sekund til du har oppnådd %2 omdømme - ver venleg å vente før du postar igjen", "too-many-posts-newbie-minutes": "Som ny brukar kan du berre poste ein gong kvart %1 minutt til du har oppnådd %2 omdømme - ver venleg å vente før du postar igjen", "already-posting": "Du postar allereie", - "tag-too-short": "Ver venleg å skrive eit lengre stikkord. Stikkord må innehalde minst %1 teikn", - "tag-too-long": "Ver venleg å skrive eit kortare stikkord. Stikkord kan ikkje vere lengre enn %1 teikn", - "tag-not-allowed": "Stikkord ikkje tillatt", - "not-enough-tags": "Ikkje nok stikkord. Emne må ha minst %1 stikkord", - "too-many-tags": "For mange stikkord. Emne kan ikkje ha meir enn %1 stikkord", + "tag-too-short": "Ver venleg å skrive eit lengre emneord. Emneord må innehalde minst %1 teikn", + "tag-too-long": "Ver venleg å skrive eit kortare emneord. Emneord kan ikkje vere lengre enn %1 teikn", + "tag-not-allowed": "Emneord ikkje tillatt", + "not-enough-tags": "Ikkje nok emneord. Emne må ha minst %1 emneord", + "too-many-tags": "For mange emneord. Emne kan ikkje ha meir enn %1 emneord", "cant-use-system-tag": "Du kan ikkje bruke dette system-stikkordet.", "cant-remove-system-tag": "Du kan ikkje fjerne dette system-stikkordet.", "still-uploading": "Ver venleg å vente til opplastingane er fullførte.", @@ -172,7 +172,7 @@ "reputation-system-disabled": "Omdømmesystemet er deaktivert.", "downvoting-disabled": "Nedstemming er deaktivert", "not-enough-reputation-to-chat": "Du treng %1 omdømme for å chatte", - "not-enough-reputation-to-upvote": "Du treng %1 omdømme for å stemme opp", + "not-enough-reputation-to-upvote": "Du treng %1 omdømme for å tilrå", "not-enough-reputation-to-downvote": "Du treng %1 omdømme for å stemme ned", "not-enough-reputation-to-post-links": "Du treng %1 omdømme for å poste lenkjer", "not-enough-reputation-to-flag": "Du treng %1 omdømme for å rapportere dette innlegget", @@ -198,8 +198,8 @@ "cant-flag-privileged": "Du har ikkje løyve til å rapportere profilar eller innhald frå privilegerte brukarar (moderatorar/globale moderatorar/administratorar)", "cant-locate-flag-report": "Kan ikkje finne rapport", "self-vote": "Du kan ikkje stemme på ditt eige innlegg", - "too-many-upvotes-today": "Du kan berre stemme opp %1 gong(ar) per dag", - "too-many-upvotes-today-user": "Du kan berre stemme opp ein brukar %1 gong(ar) per dag", + "too-many-upvotes-today": "Du kan berre tilrå %1 gong(ar) per dag", + "too-many-upvotes-today-user": "Du kan berre tilrå ein brukar %1 gong(ar) per dag", "too-many-downvotes-today": "Du kan berre stemme ned %1 gong(ar) per dag", "too-many-downvotes-today-user": "Du kan berre stemme ned ein brukar %1 gong(ar) per dag", "reload-failed": "NodeBB møtte eit problem ved oppdatering: \"%1\". NodeBB vil fortsette å bruke eksisterande klientressursar, men du bør oppheve det du gjorde før oppdateringa.", @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "Du har ikkje løyve til å endre plugin-status sidan dei er definert ved oppstart (config.json, miljøvariablar eller terminalargument), ver venleg å endre konfigurasjonen i staden.", "theme-not-set-in-configuration": "Når ein definerer aktive pluginar i konfigurasjonen, krev endring av tema at det nye temaet vert lagt til i lista over aktive pluginar før det oppdaterast i ACP", "topic-event-unrecognized": "Emnehending '%1' ikkje gjenkjent", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Kan ikkje setje barn som overordna kategori", "cant-set-self-as-parent": "Kan ikkje setje seg sjølv som overordna kategori", "api.master-token-no-uid": "Ein mastertoken vart mottatt utan ein tilsvarande `_uid` i førespurnadsinnhaldet", @@ -247,5 +248,11 @@ "api.500": "Ein uventa feil oppstod medan vi prøvde å handsame førespurnaden din.", "api.501": "Ruta du prøver å kalle på er ikkje implementert enno, prøv igjen i morgon", "api.503": "Ruta du prøver å kalle på er for augneblinken ikkje tilgjengeleg grunna serverkonfigurasjon", - "api.reauth-required": "Ressursen du prøver å nå krev (re-)autentisering." + "api.reauth-required": "Ressursen du prøver å nå krev (re-)autentisering.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/nn-NO/flags.json b/public/language/nn-NO/flags.json index bbf0b1a0e7..e90ecdbf42 100644 --- a/public/language/nn-NO/flags.json +++ b/public/language/nn-NO/flags.json @@ -75,7 +75,7 @@ "sort-all": "Sorter alle", "sort-posts-only": "Berre innlegg", "sort-downvotes": "Sorter etter nedstemmer", - "sort-upvotes": "Sorter etter oppstemmer", + "sort-upvotes": "Sorter etter tilrådingar", "sort-replies": "Sorter etter svar", "modal-title": "Rapporter innlegg", @@ -84,11 +84,17 @@ "modal-reason-offensive": "Støytande innhald", "modal-reason-other": "Annan grunn", "modal-reason-custom": "Skriv inn eigen grunn", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Send inn", "modal-submit-success": "Rapport sendt med suksess", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Massehandlingar", "bulk-resolve": "Løys alle", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "Alle vart handsama med suksess", "flagged-timeago": "Rapportert for %1 sidan", "auto-flagged": "Automatisk rapportert" diff --git a/public/language/nn-NO/global.json b/public/language/nn-NO/global.json index e5bb06bf66..29b9deba32 100644 --- a/public/language/nn-NO/global.json +++ b/public/language/nn-NO/global.json @@ -37,7 +37,7 @@ "header.categories": "Kategoriar", "header.recent": "Nyleg", "header.unread": "Uleste", - "header.tags": "Stikkord", + "header.tags": "Emneord", "header.popular": "Populære", "header.top": "Topp", "header.users": "Brukarar", @@ -50,6 +50,7 @@ "header.navigation": "Navigasjon", "header.manage": "Administrer", "header.drafts": "Utkast", + "header.world": "World", "notifications.loading": "Laster varsel", "chats.loading": "Laster chattar", "drafts.loading": "Laster utkast", @@ -75,8 +76,8 @@ "votes": "Stemmer", "x-votes": "%1 stemmer", "voters": "Veljarar", - "upvoters": "Oppstemmarar", - "upvoted": "Stemte opp", + "upvoters": "Tilrår", + "upvoted": "Tilrådde", "downvoters": "Nedstemmarar", "downvoted": "Stemte ned", "views": "Visningar", @@ -110,6 +111,7 @@ "dnd": "Ikkje forstyrr", "invisible": "Usynleg", "offline": "Avlogga", + "remote-user": "This user is from outside of this forum", "email": "E-post", "language": "Språk", "guest": "Gjest", diff --git a/public/language/nn-NO/modules.json b/public/language/nn-NO/modules.json index 2f16acf12d..131bc561fb 100644 --- a/public/language/nn-NO/modules.json +++ b/public/language/nn-NO/modules.json @@ -9,18 +9,18 @@ "chat.chat-with-usernames": "Chat med %1", "chat.chat-with-usernames-and-x-others": "Chat med %1 og %2 andre", "chat.send": "Send", - "chat.no-active": "Du har ingen aktive samtalar.", + "chat.no-active": "Du har ingen aktive chattar", "chat.user-typing-1": "%1 skriv ...", "chat.user-typing-2": "%1 og %2 skriv ...", "chat.user-typing-3": "%1, %2 og %3 skriv ...", "chat.user-typing-n": "%1, %2 og %3 andre skriv ...", "chat.user-has-messaged-you": "%1 har sendt deg ei melding.", "chat.replying-to": "Svarar til %1", - "chat.see-all": "Alle samtalar", + "chat.see-all": "Alle chattar", "chat.mark-all-read": "Merk alle som lese", "chat.no-messages": "Vel ein mottakar for å sjå meldingshistorikk", "chat.no-users-in-room": "Ingen brukarar i dette rommet", - "chat.recent-chats": "Nylege samtalar", + "chat.recent-chats": "Nylege chattar", "chat.contacts": "Kontaktar", "chat.message-history": "Meldingshistorikk", "chat.message-deleted": "Melding sletta", @@ -102,9 +102,9 @@ "composer.formatting.picture": "Bilete-lenkje", "composer.upload-picture": "Last opp bilete", "composer.upload-file": "Last opp fil", - "composer.zen-mode": "Zen-modus", + "composer.zen-mode": "Forenkla vising", "composer.select-category": "Vel kategori", - "composer.textarea.placeholder": "Skriv inn innhaldet ditt her, dra og slepp bilete", + "composer.textarea.placeholder": "Skriv inn innhald her.", "composer.post-queue-alert": "Hei👋!
Dette forumet brukar eit system for innleggskø. Sidan du er ny brukar, vil innlegget ditt vere skjult til det er godkjent av moderatorane våre.", "composer.schedule-for": "Planlegg emne til", "composer.schedule-date": "Dato", @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Forkast alle utkast", "composer.no-drafts": "Du har ingen utkast", "composer.discard-draft-confirm": "Ønskjer du å forkaste dette utkastet?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "OK", "bootbox.cancel": "Avbryt", "bootbox.confirm": "Stadfest", diff --git a/public/language/nn-NO/notifications.json b/public/language/nn-NO/notifications.json index f8ef60ee35..30e4e6d510 100644 --- a/public/language/nn-NO/notifications.json +++ b/public/language/nn-NO/notifications.json @@ -12,14 +12,14 @@ "you-have-unread-notifications": "Du har uleste varsel.", "all": "Alle", "topics": "Emne", - "tags": "Stikkord", + "tags": "Emneord", "categories": "Kategoriar", "replies": "Svar", "chat": "Meldingar", "group-chat": "Gruppechat", "public-chat": "Offentleg chat", "follows": "Følgjarar", - "upvote": "Oppstemmer", + "upvote": "Tilrår", "awards": "Utmerkingar", "new-flags": "Nye rapporteringar", "my-flags": "Rapporteringar tilordna meg", @@ -32,10 +32,10 @@ "user-posted-in-public-room-dual": "%1 og %2 skreiv i %4", "user-posted-in-public-room-triple": "%1, %2 og %3 skreiv i %5", "user-posted-in-public-room-multiple": "%1, %2 og %3 andre skreiv i %5", - "upvoted-your-post-in": "%1 har stemt opp innlegget ditt i %2.", - "upvoted-your-post-in-dual": "%1 og %2 har stemt opp innlegget ditt i %3.", - "upvoted-your-post-in-triple": "%1, %2 og %3 har stemt opp innlegget ditt i %4.", - "upvoted-your-post-in-multiple": "%1, %2 og %3 andre har stemt opp innlegget ditt i %4.", + "upvoted-your-post-in": "%1 har tilrådd innlegget ditt i %2.", + "upvoted-your-post-in-dual": "%1 og %2 har tilrådd innlegget ditt i %3.", + "upvoted-your-post-in-triple": "%1, %2 og %3 har tilrådd innlegget ditt i %4.", + "upvoted-your-post-in-multiple": "%1, %2 og %3 andre har tilrådd innlegget ditt i %4.", "moved-your-post": "%1 har flytta innlegget ditt til %2", "moved-your-topic": "%1 har flytta %2", "user-flagged-post-in": "%1 rapporterte eit innlegg i %2", @@ -81,9 +81,9 @@ "notification-only": "Berre varsel", "email-only": "Berre e-post", "notification-and-email": "Varsel og e-post", - "notificationType-upvote": "Når nokon stemmer opp innlegget ditt", + "notificationType-upvote": "Når nokon tilrår innlegget ditt", "notificationType-new-topic": "Når nokon du følgjer opprettar eit emne", - "notificationType-new-topic-with-tag": "Når eit emne vert oppretta med eit stikkord du følgjer", + "notificationType-new-topic-with-tag": "Når eit emne vert oppretta med eit emneord du følgjer", "notificationType-new-topic-in-category": "Når eit emne vert oppretta i ein kategori du følgjer", "notificationType-new-reply": "Når eit nytt svar vert posta i eit emne du følgjer", "notificationType-post-edit": "Når eit innlegg vert redigert i eit emne du følgjer", @@ -98,5 +98,9 @@ "notificationType-post-queue": "Når eit nytt innlegg vert lagt i køen", "notificationType-new-post-flag": "Når eit innlegg vert rapportert", "notificationType-new-user-flag": "Når ein brukar vert rapportert", - "notificationType-new-reward": "Når du får ein ny utmerking" + "notificationType-new-reward": "Når du får ein ny utmerking", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/nn-NO/pages.json b/public/language/nn-NO/pages.json index 1d1aaead6f..0cf6246cfe 100644 --- a/public/language/nn-NO/pages.json +++ b/public/language/nn-NO/pages.json @@ -23,7 +23,7 @@ "users/most-flags": "Brukarar med flest rapporteringar", "users/search": "Brukarsøk", "notifications": "Varsel", - "tags": "Stikkord", + "tags": "Emneord", "tag": "Emne merka med "%1"", "register": "Registrer ein konto", "registration-complete": "Registrering fullført", @@ -36,6 +36,7 @@ "chat": "Chattar med %1", "flags": "Rapportar", "flag-details": "Detaljar for rapport %1", + "world": "World", "account/edit": "Redigerar \"%1\"", "account/edit/password": "Endrar passord for \"%1\"", "account/edit/username": "Endrar brukarnamn for \"%1\"", @@ -48,20 +49,21 @@ "account/topics": "Emne oppretta av %1", "account/groups": "%1 sine grupper", "account/watched-categories": "%1 sine følgde kategoriar", - "account/watched-tags": "%1 sine følgde stikkord", + "account/watched-tags": "%1 sine følgde emneord", "account/bookmarks": "%1 sine bokmerka innlegg", "account/settings": "Brukarinnstillingar", "account/settings-of": "Endrar innstillingar for %1", "account/watched": "Emne følgde av %1", "account/ignored": "Emne ignorert av %1", "account/read": "Emne lest av %1", - "account/upvoted": "Innlegg stemt opp av %1", + "account/upvoted": "Innlegg tilrådd av %1", "account/downvoted": "Innlegg stemt ned av %1", "account/best": "Beste innlegg skrive av %1", "account/controversial": "Kontroversielle innlegg skrive av %1", "account/blocks": "Blokkerte brukarar for %1", "account/uploads": "Opplastingar av %1", "account/sessions": "Påloggingssesjonar", + "account/shares": "Topics shared by %1", "confirm": "E-post stadfesta", "maintenance.text": "%1 er for augneblinken under vedlikehald.
Ver venleg å kome tilbake seinare.", "maintenance.messageIntro": "Administratoren har også lagt att denne meldinga:", diff --git a/public/language/nn-NO/recent.json b/public/language/nn-NO/recent.json index c33e8c70b3..d3f22b10c1 100644 --- a/public/language/nn-NO/recent.json +++ b/public/language/nn-NO/recent.json @@ -7,5 +7,7 @@ "alltime": "Heile tida", "no-recent-topics": "Det er ingen nylege emne.", "no-popular-topics": "Det er ingen populære emne.", - "load-new-posts": "Last nye innlegg" + "load-new-posts": "Last nye innlegg", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/nn-NO/search.json b/public/language/nn-NO/search.json index d3e85ddda9..8bb15e8cde 100644 --- a/public/language/nn-NO/search.json +++ b/public/language/nn-NO/search.json @@ -10,15 +10,15 @@ "in-bookmarks": "I bokmerke", "in-categories": "I kategoriar", "in-users": "I brukarar", - "in-tags": "I stikkord", + "in-tags": "I emneord", "categories": "Kategoriar", "all-categories": "Alle kategoriar", "categories-x": "Kategoriar: %1", "categories-watched-categories": "Kategoriar: Følgde kategoriar", "type-a-category": "Skriv ein kategori", - "tags": "Stikkord", - "tags-x": "Stikkord: %1", - "type-a-tag": "Skriv eit stikkord", + "tags": "Emneord", + "tags-x": "Emneord: %1", + "type-a-tag": "Skriv eit emneord", "match-words": "Match ord", "match-all-words": "Match alle ord", "match-any-word": "Match eit ord", @@ -28,7 +28,7 @@ "posted-by-usernames": "Posta av: %1", "type-a-username": "Skriv inn eit brukarnamn", "search-child-categories": "Søk i underkategoriar", - "has-tags": "Har stikkord", + "has-tags": "Har emneord", "reply-count": "Svarantal", "replies": "Svar", "replies-atleast-count": "Svar: Minst %1", diff --git a/public/language/nn-NO/tags.json b/public/language/nn-NO/tags.json index 3efce53c2e..fd1087d24c 100644 --- a/public/language/nn-NO/tags.json +++ b/public/language/nn-NO/tags.json @@ -1,17 +1,17 @@ { - "all-tags": "Alle stikkord", - "no-tag-topics": "Det er ingen emne med dette stikkordet.", - "no-tags-found": "Ingen stikkord funne", - "tags": "Stikkord", - "enter-tags-here": "Skriv inn stikkord, %1 - %2 teikn.", - "enter-tags-here-short": "Skriv inn stikkord...", - "no-tags": "Det er ingen stikkord enno.", - "select-tags": "Vel stikkord", - "tag-whitelist": "Stikkord kviteliste", + "all-tags": "Alle emneord", + "no-tag-topics": "Det er ingen innlegg med dette emneordet", + "no-tags-found": "Ingen emneord funne", + "tags": "Emneord", + "enter-tags-here": "Skriv inn emneord, %1 - %2 teikn.", + "enter-tags-here-short": "Skriv inn emneord...", + "no-tags": "Det er ingen emneord enno.", + "select-tags": "Vel emneord", + "tag-whitelist": "Kviteliste for emneord", "watching": "Følgjer", "not-watching": "Følgjer ikkje", "watching.description": "Varsle meg om nye emne.", "not-watching.description": "Ikkje varsle meg om nye emne.", - "following-tag.message": "Du vil no motta varsel når nokon postar eit emne med dette stikkordet.", - "not-following-tag.message": "Du vil ikkje motta varsel når nokon postar eit emne med dette stikkordet." + "following-tag.message": "Du vil no motta varsel når nokon postar eit emne med dette emneordet.", + "not-following-tag.message": "Du vil ikkje motta varsel når nokon postar eit emne med dette emneordet." } \ No newline at end of file diff --git a/public/language/nn-NO/topic.json b/public/language/nn-NO/topic.json index 23219ffa98..ae7274ff73 100644 --- a/public/language/nn-NO/topic.json +++ b/public/language/nn-NO/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 gjenoppretta dette emnet den %2", "user-moved-topic-from-ago": "%1 flytta dette emnet frå %2 %3", "user-moved-topic-from-on": "%1 flytta dette emnet frå %2 den %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 køyrde innlegget for godkjenning %3", "user-queued-post-on": "%1 køyrde innlegget for godkjenning den %3", "user-referenced-topic-ago": "%1 refererte til dette emnet %3", @@ -107,7 +109,7 @@ "thread-tools.manage-editors": "Administrer editor", "thread-tools.select-category": "Vel kategori", "thread-tools.fork": "Kopier emne", - "thread-tools.tag": "Merk emne", + "thread-tools.tag": "Legg til emneord", "thread-tools.delete": "Slett emne", "thread-tools.delete-posts": "Slett innlegg", "thread-tools.delete-confirm": "Er du sikker på at du vil slette dette emnet?", @@ -135,6 +137,7 @@ "bookmarks": "Bokmerke", "bookmarks.has-no-bookmarks": "Du har ikkje bokmerka noko innlegg enno.", "copy-permalink": "Kopier permalenkje", + "go-to-original": "View Original Post", "loading-more-posts": "Lastar fleire innlegg", "move-topic": "Flytt emne", "move-topics": "Flytt emne", @@ -215,9 +218,11 @@ "post-quick-reply": "Raskt svar", "navigator.index": "Innlegg %1 av %2", "navigator.unread": "%1 uleste", - "upvote-post": "Stem opp innlegg", + "upvote-post": "Tilrå innlegg", "downvote-post": "Stem ned innlegg", "post-tools": "Innleggsverktøy", "unread-posts-link": "Lenkje til uleste innlegg", - "thumb-image": "Emne miniatyrbilete" + "thumb-image": "Emne miniatyrbilete", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/nn-NO/user.json b/public/language/nn-NO/user.json index 37615d5dde..5ebe918014 100644 --- a/public/language/nn-NO/user.json +++ b/public/language/nn-NO/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Standard kategori følgjetilstand", "followers": "Følgjarar", "following": "Følgjer", + "shares": "Shares", "blocks": "Blokker", "blocked-users": "Blokkerte brukarar", "block-toggle": "Veksle blokkering", @@ -59,8 +60,10 @@ "chat-with": "Fortset chat med %1", "new-chat-with": "Start ny chat med %1", "flag-profile": "Rapporter profil", + "profile-flagged": "Already flagged", "follow": "Følg", "unfollow": "Slutt å følgje", + "cancel-follow": "Cancel follow request", "more": "Meir", "profile-update-success": "Profilen er oppdatert!", "change-picture": "Endre bilete", @@ -111,15 +114,16 @@ "has-no-follower": "Denne brukaren har ingen følgjarar :(", "follows-no-one": "Denne brukaren følgjer ingen :(", "has-no-posts": "Denne brukaren har ikkje lagt inn noko enno.", - "has-no-best-posts": "Denne brukaren har inga innlegg som er stemt opp enno.", + "has-no-best-posts": "Denne brukaren har ingen innlegg som er tilrådd enno.", "has-no-topics": "Denne brukaren har ikkje lagt ut nokre emne enno.", "has-no-watched-topics": "Denne brukaren følgjer ingen emne enno.", "has-no-ignored-topics": "Denne brukaren ignorerer ingen emne enno.", "has-no-read-topics": "Denne brukaren har ikkje lese nokre emne enno.", - "has-no-upvoted-posts": "Denne brukaren har ikkje stemt opp nokre innlegg enno.", + "has-no-upvoted-posts": "Denne brukaren har ikkje tilrådd nokon innlegg enno.", "has-no-downvoted-posts": "Denne brukaren har ikkje stemt ned nokre innlegg enno.", "has-no-controversial-posts": "Denne brukaren har inga kontroversielle innlegg enno.", "has-no-blocks": "Du har ikkje blokkert nokon brukarar.", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "E-post er skjult", "hidden": "skjult", "paginate-description": "Del emne og innlegg i sider i staden for å bruke uendeleg rulling", @@ -131,9 +135,9 @@ "acp-language": "Språk for admin-side", "notifications": "Varsel", "upvote-notif-freq": "Frekvens for oppstemmingsvarsel", - "upvote-notif-freq.all": "Alle oppstemmer", + "upvote-notif-freq.all": "Alle tilrådingar", "upvote-notif-freq.first": "Fyrste per innlegg", - "upvote-notif-freq.everyTen": "Kvar tiande oppstemme", + "upvote-notif-freq.everyTen": "Kvar tiande tilråding", "upvote-notif-freq.threshold": "På 1, 5, 10, 25, 50, 100, 150, 200...", "upvote-notif-freq.logarithmic": "På 10, 100, 1000...", "upvote-notif-freq.disabled": "Deaktivert", diff --git a/public/language/nn-NO/users.json b/public/language/nn-NO/users.json index 368b26f278..6d080dba84 100644 --- a/public/language/nn-NO/users.json +++ b/public/language/nn-NO/users.json @@ -21,6 +21,6 @@ "popular-topics": "Populære emne", "unread-topics": "Uleste emne", "categories": "Kategoriar", - "tags": "Stikkord", + "tags": "Emneord", "no-users-found": "Ingen brukarar funne!" } \ No newline at end of file diff --git a/public/language/nn-NO/world.json b/public/language/nn-NO/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/nn-NO/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/pl/admin/manage/categories.json b/public/language/pl/admin/manage/categories.json index 939732ffad..a652daa9ca 100644 --- a/public/language/pl/admin/manage/categories.json +++ b/public/language/pl/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Uprawnienia", "back-to-categories": "Wróć do kategorii", "name": "Nazwa kategorii", + "handle": "Obsługa kategorii", + "handle.help": "Obsługa kategorii robi za znak rozpoznawczy w innych sieciach na wzór nazwy użytkownika. Z tej racji jej nazwa nie może się pokrywać z nazwą użytkownika lub grupą użytkowników.", "description": "Opis kategorii", "bg-color": "Kolor tła", "text-color": "Kolor tekstu", @@ -37,6 +39,7 @@ "disable": "Wyłącz", "edit": "Edytuj", "analytics": "Analityka", + "federation": "Federacja", "view-category": "Wyświetl kategorię", "set-order": "Ustaw kolejność", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Ilustracja 3– Dzienne tematy tworzone w tej kategorii", "analytics.posts-daily": "Ilustracja 4 – Dzienne posty pisane w tej kategorii", + "federation.title": "Ustawienia federacji dla kategorii \"%1\"", + "federation.disabled": "Federacja jest wyłączona na całej stronie, więc ustawienia federacji kategorii są niedostępne.", + "federation.disabled-cta": "Ustawienia federacji →", + "federation.syncing-header": "Synchronizacja", + "federation.syncing-intro": "Kategoria może śledzić \"Aktora grupy\" za pośrednictwem protokołu ActivityPub. O ile zawartość zostanie odebrana przez jednego z aktorów poniżej to z automatu pojawi się w tej kategorii.", + "federation.syncing-caveat": "To ustawienia zapewnia jednostronną synchronizację. NodeBB użyje aktora subskrybcji/śledzenia ale w drugą stronę może być różnie.", + "federation.syncing-none": "Ta kategoria nie jest wykorzystywana do śledzenia.", + "federation.syncing-add": "Synchronizuj z...", + "federation.syncing-actorUri": "Aktor", + "federation.syncing-follow": "Śledź", + "federation.syncing-unfollow": "Przestań śledzić", + "federation.followers": "Zdalni użytkownicy śledzący tę kategorię", + "federation.followers-handle": "Obsługa", + "federation.followers-id": "ID", + "federation.followers-none": "Brak śledzących.", + "alert.created": "Utworzony", "alert.create-success": "Kategoria pomyślnie dodana!", "alert.none-active": "Nie masz aktywnych kategorii.", diff --git a/public/language/pl/admin/menu.json b/public/language/pl/admin/menu.json index e8ffcb96fa..07005a5b14 100644 --- a/public/language/pl/admin/menu.json +++ b/public/language/pl/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Tagi", "settings/notifications": "Powiadomienia", "settings/api": "Dostęp do API", + "settings/activitypub": "Federacja (ActivityPub)", "settings/sounds": "Dźwięki", "settings/social": "Społecznościowe", "settings/cookies": "Ciasteczka", diff --git a/public/language/pl/admin/settings/activitypub.json b/public/language/pl/admin/settings/activitypub.json new file mode 100644 index 0000000000..910806e69c --- /dev/null +++ b/public/language/pl/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "Czym jest Federacja? ", + "intro-body": "NodeBB jest w stanie komunikować się z innymi instancjami NodeBB, które to obsługują. Jest to osiągnięte za pomocą protokołu ActivityPub. Jeśli włączono, NodeBB będzie też w stanie komunikować się z innymi aplikacjami i stronami, które używają ActivityPub (jak Mastodon, Peertube, itp.)", + "general": "Ogólne", + "pruning": "Usuwanie Zawartości", + "content-pruning": "Dni przechowywania zawartości zdalnej", + "content-pruning-help": "Zauważ, że zawartość zdalna, która uzyskała jakąś reakcję (jak odpowiedź, głos) zostanie zachowana. (0 aby wyłączyć)", + "user-pruning": "Dni przechowywania użytkowników zdalnych", + "user-pruning-help": "Konta użytkowników zdalnych będą usuwane tylko jeśli nie mają postów. W przeciwnych wypadku będą ponownie pobierane. (0 aby wyłączyć)", + "enabled": "Włącz Federację", + "enabled-help": "Po włączeniu NodeBB będzie komunikować się ze wszystkimi klientami obsługującymi ActivityPub zapewniając dostęp do fediverse.", + "allowLoopback": "Zezwól na przetwarzanie pętli zwrotnej", + "allowLoopback-help": "Użyteczne tylko do debugowania. Raczej powinieneś(-aś) zostawić to wyłączone.", + + "probe": "Otwórz w Aplikacji", + "probe-enabled": "Spróbuj otworzyć zawartość związaną z ActivityPub w NodeBB", + "probe-enabled-help": "O ile włączone, NodeBB sprawdzi każdy odnośnik pod kątem odpowiednika ActivityPub, a załaduje w NodeBB.", + "probe-timeout": "Czas oczekiwania (milisekundy)", + "probe-timeout-help": "(Domyślnie: 2000) O ile zapytanie nie doczeka się odpowiedzi w tym czasie to użytkownik otrzyma odnośnik bezpośredni. Możesz wydłużyć czas oczekiwania o ile strony działają wolno a mimo to chcesz dać im szansę.", + + "server-filtering": "Filtrowanie", + "count": "NodeBB obecnie wykrywa 1% serwerów", + "server.filter-help": "Określ serwery, z którymi nie chcesz spinać NodeBB w ramach fediverse. Alternatywnie możesz dobrać dozwolone serwery fediverse. Obie opcje są dostępne ale wybierz jedną z nich.", + "server.filter-help-hostname": "Poniżej podaj nazwę serwera (np. example.org) i użyj nowej linii dla kolejnych wpisów.", + "server.filter-allow-list": "Użyj tego jako listę dozwolonych" +} \ No newline at end of file diff --git a/public/language/pl/error.json b/public/language/pl/error.json index 25b9a9ddf2..ec9ebeef73 100644 --- a/public/language/pl/error.json +++ b/public/language/pl/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "Nie możesz zmienić stanu wtyczki, bo został on zdefiniowany przy uruchamianiu (config.json, zmienne środowiskowe lub argumenty z terminala). Zamiast tego zmień konfigurację.", "theme-not-set-in-configuration": "Pamiętaj o zależności między aktywnymi wtyczkami a wystrojem, który ma z nimi współpracować.", "topic-event-unrecognized": "Zdarzenie w temacie '%1' nierozpoznane", + "category.handle-taken": "Przydział kategorii jest już w użyciu, wybierz inną.", "cant-set-child-as-parent": "Nie można ustawić podkategorii jako kategorii nadrzędnej", "cant-set-self-as-parent": "Nie można ustawić kategorii nadrzędnej do samej siebie", "api.master-token-no-uid": "Otrzymano główny token bez odpowiedniego `_uid` w treści wywołania", @@ -247,5 +248,11 @@ "api.500": "Wystąpił nieoczekiwany błąd podczas próby obsługi Twojego żądania.", "api.501": "Ścieżka jaką próbujesz wywołać, nie jest jeszcze zaimplementowana. Spróbuj ponownie jutro.", "api.503": "Ścieżka z którą próbujesz się połączyć, jest obecnie niedostępna z powodu konfiguracji serwera", - "api.reauth-required": "Zasób, do którego próbujesz uzyskać dostęp, wymaga (być może ponownego) uwierzytelnienia." + "api.reauth-required": "Zasób, do którego próbujesz uzyskać dostęp, wymaga (być może ponownego) uwierzytelnienia.", + "activitypub.invalid-id": "Nie można przetworzyć id na wejściu, czyli pewnie jest zdeformowane.", + "activitypub.get-failed": "Nie udało się pobrać zadanego zasobu.", + "activitypub.pubKey-not-found": "Nie udało się uzyskać klucza publicznego, więc nie może zajść weryfikacja zawartości.", + "activitypub.origin-mismatch": "Odebrany obiekt nie zgadza się z tym co nadano.", + "activitypub.actor-mismatch": "Odebrana aktywność różni się od tego czego się spodziewano.", + "activitypub.not-implemented": "Zapytanie napotkało odmowę z racji braku obsługi po stronie serwera odbiorczego." } \ No newline at end of file diff --git a/public/language/pl/flags.json b/public/language/pl/flags.json index c85dab16da..6c23d83fee 100644 --- a/public/language/pl/flags.json +++ b/public/language/pl/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Treści obraźliwe", "modal-reason-other": "Inne (wybierz poniżej)", "modal-reason-custom": "Powód zgłaszania treści", + "modal-notify-remote": "Przekieruj to zgłoszenie do %1", "modal-submit": "Wyślij zgłoszenie", "modal-submit-success": "Treści zostały oflagowane i zgłoszone do moderacji.", + "modal-confirm-rescind": "Wycofać zgłoszenie?", + "bulk-actions": "Operacje masowe", "bulk-resolve": "Oznacz flagi jako rozwiązane", + "confirm-purge": "Czy jesteś pewien trwałego usunięcia tych flag?", + "purge-cancelled": "Wymazywanie flag anulowane", + "bulk-purge": "Wymaż flagi", "bulk-success": "Zaktualizowano %1 flag", "flagged-timeago": "Oznaczone ", "auto-flagged": "[Automatyczna Flaga] Otrzymano %1 głosów przeciw." diff --git a/public/language/pl/global.json b/public/language/pl/global.json index 48cedbc82d..44dec4b1c6 100644 --- a/public/language/pl/global.json +++ b/public/language/pl/global.json @@ -50,6 +50,7 @@ "header.navigation": "Nawigacja", "header.manage": "Zarządzaj", "header.drafts": "Wersje robocze", + "header.world": "Świat", "notifications.loading": "Ładowanie powiadomień", "chats.loading": "Ładowanie rozmów", "drafts.loading": "Ładowanie wersji roboczych", @@ -110,6 +111,7 @@ "dnd": "Nie przeszkadzać", "invisible": "Niewidoczny", "offline": "Niedostępny", + "remote-user": "Ten użytkownik jest spoza tego forum", "email": "Adres e-mail", "language": "Język", "guest": "Gość", diff --git a/public/language/pl/modules.json b/public/language/pl/modules.json index 3121924aa0..65f5d143de 100644 --- a/public/language/pl/modules.json +++ b/public/language/pl/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Wyrzuć wszystkie wersje robocze", "composer.no-drafts": "Nie masz wersji roboczych", "composer.discard-draft-confirm": "Czy chcesz wyrzucić tę wersję roboczą?", + "composer.remote-pid-editing": "Zmienia zdalny wpis", + "composer.remote-pid-content-immutable": "Nie można zmienić zdalnego wpisu. Można natomiast nadać nowy tytuł wątku i przypisać tagi.", "bootbox.ok": "OK", "bootbox.cancel": "Anuluj", "bootbox.confirm": "Potwierdź", diff --git a/public/language/pl/notifications.json b/public/language/pl/notifications.json index cb560d40c4..2c3cc3e068 100644 --- a/public/language/pl/notifications.json +++ b/public/language/pl/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "Kiedy nowy post jest kolejkowany", "notificationType-new-post-flag": "Kiedy post zostanie oflagowany", "notificationType-new-user-flag": "Kiedy użytkownik zostanie oflagowany", - "notificationType-new-reward": "Kiedy otrzymasz nagrodę" + "notificationType-new-reward": "Kiedy otrzymasz nagrodę", + "activitypub.announce": "%1 podzielił się Twoim wpisem w %2 z korzyścią dla śledzących.", + "activitypub.announce-dual": "%1 i %2 podzielili się Twoim wpisem w %3 z korzyścią dla śledzących.", + "activitypub.announce-triple": "%1, %2 i %3 podzielili się Twoim wpisem %4 ze śledzącymi.", + "activitypub.announce-multiple": "%1, %2 oraz %3 innych udostępiło Twój wpis w %4 dla śledzących." } \ No newline at end of file diff --git a/public/language/pl/pages.json b/public/language/pl/pages.json index fb34f5883c..67b8529c24 100644 --- a/public/language/pl/pages.json +++ b/public/language/pl/pages.json @@ -36,6 +36,7 @@ "chat": "Czat z %1", "flags": "Flagi", "flag-details": "Szczegóły flagi %1", + "world": "Świat", "account/edit": "Edytowanie „%1”", "account/edit/password": "Edytowanie hasła „%1”", "account/edit/username": "Edytowanie nazwy użytkownika „%1”", @@ -62,6 +63,7 @@ "account/blocks": "Użytkownicy zablokowani przez %1", "account/uploads": "Pliki przesłane przez %1", "account/sessions": "Sesje logowania", + "account/shares": "Wątki wskazane przez %1", "confirm": "E-mail potwierdzony", "maintenance.text": "%1 aktualnie przechodzi przerwę techniczną.
Proszę wrócić później.", "maintenance.messageIntro": "Dodatkowo administrator zostawił wiadomość:", diff --git a/public/language/pl/recent.json b/public/language/pl/recent.json index 08e88ed948..59e5cf815d 100644 --- a/public/language/pl/recent.json +++ b/public/language/pl/recent.json @@ -7,5 +7,7 @@ "alltime": "Od początku", "no-recent-topics": "Brak ostatnich tematów.", "no-popular-topics": "Brak popularnych tematów.", - "load-new-posts": "Załaduj nowe posty" + "load-new-posts": "Załaduj nowe posty", + "uncategorized.title": "Wszystkie znane wątki", + "uncategorized.intro": "Ta strona pokazuje chronologiczną listę odebranych przez to forum wątków.
Miej na uwadze, że treści w tym miejscu nie są moderowane i mogą kompletnie nie mieć związku z tą stroną internetową." } \ No newline at end of file diff --git a/public/language/pl/topic.json b/public/language/pl/topic.json index d295c0d1aa..4311bb4586 100644 --- a/public/language/pl/topic.json +++ b/public/language/pl/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 przywrócił ten temat dnia %2", "user-moved-topic-from-ago": "%1 przeniósł ten temat z %2 %3", "user-moved-topic-from-on": "%1 przeniósł ten temat z %2 dnia %3", + "user-shared-topic-ago": "%1 podzielił się wątkiem %2", + "user-shared-topic-on": "%1 podzielił się tym wątkiem dnia %2", "user-queued-post-ago": "%1 dodał do kolejki post do zatwierdzenia %3", "user-queued-post-on": "%1 dodał do kolejki post do zatwierdzenia dnia %3", "user-referenced-topic-ago": "%1 odniósł się do tego tematu %3", @@ -135,6 +137,7 @@ "bookmarks": "Zakładki", "bookmarks.has-no-bookmarks": "Nie masz jeszcze żadnych postów w zakładkach.", "copy-permalink": "Skopiuj link", + "go-to-original": "Zobacz oryginalny wpis", "loading-more-posts": "Załaduj więcej postów", "move-topic": "Przenieś temat", "move-topics": "Przenieś tematy", @@ -219,5 +222,7 @@ "downvote-post": "Nie podoba się", "post-tools": "Narzędzia postów", "unread-posts-link": "Link nieprzeczytanych postów", - "thumb-image": "Obraz miniaturki tematu" + "thumb-image": "Obraz miniaturki tematu", + "announcers": "Udostępnień", + "announcers-x": "Udostępnień (%1)" } \ No newline at end of file diff --git a/public/language/pl/user.json b/public/language/pl/user.json index 67ab014146..e4fffc4da9 100644 --- a/public/language/pl/user.json +++ b/public/language/pl/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Domyślny stan oglądania kategorii", "followers": "Obserwujący", "following": "Obserwowani", + "shares": "Udostępnień", "blocks": "Blokady", "blocked-users": "Zablokowani użytkownicy", "block-toggle": "Przełącz blokadę", @@ -59,8 +60,10 @@ "chat-with": "Kontynuuj czat z %1", "new-chat-with": "Rozpocznij czat z %1", "flag-profile": "Zgłoś profil", + "profile-flagged": "Już oflagowano", "follow": "Obserwuj", "unfollow": "Przestań obserwować", + "cancel-follow": "Anuluj próbę śledzenia", "more": "Więcej", "profile-update-success": "Profil został zaktualizowany!", "change-picture": "Zmień zdjęcie", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "Ten użytkownik jeszcze nie głosował przeciw w żadnym temacie.", "has-no-controversial-posts": "Ten użytkownik nie ma jeszcze żadnych postów z ujemną reputacją.", "has-no-blocks": "Brak zablokowanych użytkowników.", + "has-no-shares": "Ten użytkownik nie podzielił się żadnym wątkiem.", "email-hidden": "Adres e-mail ukryty", "hidden": "ukryty", "paginate-description": "Dziel tematy i posty na strony zamiast używać nieskończonego przewijania", diff --git a/public/language/pl/world.json b/public/language/pl/world.json new file mode 100644 index 0000000000..5e5a4d8247 --- /dev/null +++ b/public/language/pl/world.json @@ -0,0 +1,18 @@ +{ + "name": "Świat", + "popular": "Popularne tematy", + "recent": "Wszystkie tematy", + "help": "Pomoc", + + "help.title": "Co to za strona?", + "help.intro": "Witaj w swoim zakątku fediverse.", + "help.fediverse": "Sieć \"fediverse\" jest zbiorem połączonych aplikacji i stron internetowych, których użytkownicy mogą się ze sobą komunikować. To forum umożliwia tego typu interakcje w ramach \"fediverse\". Ta strona jest Twoim zakątkiem fediverse. Zawiera wątki tworzone i współdzielone przez śledzonych przez Ciebie użytkowników.", + "help.build": "Na początku może być tu trochę pusto; to normalne. Zacznie się robić tłoczno po tym jak zaczniesz śledzić innych użytkowników.", + "help.federating": "O ile użytkownicy spoza tego forum zaczną Cię śledzić, to w efekcie Twoje wpisy pojawią się na zewnętrznych stronach i w aplikacjach.", + "help.next-generation": "To są media społecznościowe kolejnej generacji, dołącz już dzisiaj!", + + "onboard.title": "Twoje okno na fediverse...", + "onboard.what": "Zawartość tej kategorii jest dostowana do Twoich poczynań i zawiera jedynie dane spoza tego forum. Aby się coś tu pojawiło trzeba zacząć śledzić zdalne źródła informacji.", + "onboard.why": "Mnóstwo rzeczy dzieje się poza tym forum ale niekoniecznie zgodnych z Twoimi zainteresowaniami. Dlatego śledzenie konkretnych użytkowników jest dobrą metodą aby uzyskać więcej zawartości przez nich dodawanych.", + "onboard.how": "W międzyczasie możesz użyć przycisków skrótów na górze aby przekonać się jak forum jest powiązane a okaże się, że zapewnia wiele dodatkowych treści!" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/manage/categories.json b/public/language/pt-BR/admin/manage/categories.json index a222c6f033..45e3fc411f 100644 --- a/public/language/pt-BR/admin/manage/categories.json +++ b/public/language/pt-BR/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Privilégios", "back-to-categories": "Back to categories", "name": "Nome da Categoria", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Descrição da Categoria", "bg-color": "Cor de Fundo", "text-color": "Cor do Texto", @@ -37,6 +39,7 @@ "disable": "Desativar", "edit": "Editar", "analytics": "Analytics", + "federation": "Federation", "view-category": "Ver categoria", "set-order": "Definir ordem", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Figura 3 – Tópicos criados nessa categoria por dia", "analytics.posts-daily": "Figura 4 – Posts feitos nessa categoria por dia", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Criado", "alert.create-success": "Categoria criada com sucesso!", "alert.none-active": "Você não possui categorias ativas.", diff --git a/public/language/pt-BR/admin/menu.json b/public/language/pt-BR/admin/menu.json index d4e8408367..8404e7bb29 100644 --- a/public/language/pt-BR/admin/menu.json +++ b/public/language/pt-BR/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Tags", "settings/notifications": "Notificações", "settings/api": "Acesso a API", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Sons", "settings/social": "Social", "settings/cookies": "Cookies", diff --git a/public/language/pt-BR/admin/settings/activitypub.json b/public/language/pt-BR/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/pt-BR/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/pt-BR/error.json b/public/language/pt-BR/error.json index a990013fc5..316c851ecf 100644 --- a/public/language/pt-BR/error.json +++ b/public/language/pt-BR/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", "topic-event-unrecognized": "Evento de tópico '%1' não reconhecido", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Não é possível definir filho como categoria pai", "cant-set-self-as-parent": "Não é possível definir a si mesmo como categoria pai", "api.master-token-no-uid": "Um token mestre foi recebido sem um `_uid` correspondente no corpo da requisição", @@ -247,5 +248,11 @@ "api.500": "An unexpected error was encountered while attempting to service your request.", "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow", "api.503": "The route you are trying to call is not currently available due to a server configuration", - "api.reauth-required": "The resource you are trying to access requires (re-)authentication." + "api.reauth-required": "The resource you are trying to access requires (re-)authentication.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/pt-BR/flags.json b/public/language/pt-BR/flags.json index 2ad5e9499d..27240dd38e 100644 --- a/public/language/pt-BR/flags.json +++ b/public/language/pt-BR/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Ofensivo", "modal-reason-other": "Outro (especifique abaixo)", "modal-reason-custom": "Motivo para reportar este conteúdo...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Enviar Denúncia", "modal-submit-success": "O conteúdo foi sinalizado para moderação.", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Ações em Massa", "bulk-resolve": "Resolver Sinalização(ões)", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 sinalizações atualizadas", "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." diff --git a/public/language/pt-BR/global.json b/public/language/pt-BR/global.json index efe92edf11..49de073ba7 100644 --- a/public/language/pt-BR/global.json +++ b/public/language/pt-BR/global.json @@ -50,6 +50,7 @@ "header.navigation": "Navegação", "header.manage": "Manage", "header.drafts": "Drafts", + "header.world": "World", "notifications.loading": "Carregando Notificações", "chats.loading": "Carregando Chats", "drafts.loading": "Loading Drafts", @@ -110,6 +111,7 @@ "dnd": "Não perturbar", "invisible": "Invisível", "offline": "Offline", + "remote-user": "This user is from outside of this forum", "email": "Email", "language": "Idioma", "guest": "Visitante", diff --git a/public/language/pt-BR/modules.json b/public/language/pt-BR/modules.json index 26eb190f69..64a27be0d1 100644 --- a/public/language/pt-BR/modules.json +++ b/public/language/pt-BR/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Discard all drafts", "composer.no-drafts": "You have no drafts", "composer.discard-draft-confirm": "Do you want to discard this draft?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "OK", "bootbox.cancel": "Cancelar", "bootbox.confirm": "Confirmar", diff --git a/public/language/pt-BR/notifications.json b/public/language/pt-BR/notifications.json index 5c24e081f8..912a4733b9 100644 --- a/public/language/pt-BR/notifications.json +++ b/public/language/pt-BR/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "Quando um novo post entrar na fila", "notificationType-new-post-flag": "Quando um post for marcado", "notificationType-new-user-flag": "Quando um usuário for marcado", - "notificationType-new-reward": "When you earn a new reward" + "notificationType-new-reward": "When you earn a new reward", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/pt-BR/pages.json b/public/language/pt-BR/pages.json index cb14df1b5e..ed80563df7 100644 --- a/public/language/pt-BR/pages.json +++ b/public/language/pt-BR/pages.json @@ -36,6 +36,7 @@ "chat": "Conversando com %1", "flags": "Sinalizações", "flag-details": "Detalhes da Sinalização %1", + "world": "World", "account/edit": "Editando \"%1\"", "account/edit/password": "Editando senha de \"%1\"", "account/edit/username": "Editando nome de usuário de \"%1\"", @@ -62,6 +63,7 @@ "account/blocks": "Usuários bloqueados para %1", "account/uploads": "Uploads feitos por %1", "account/sessions": "Sessões de Login", + "account/shares": "Topics shared by %1", "confirm": "E-mail Confirmado", "maintenance.text": "%1 is currently undergoing maintenance.
Please come back another time.", "maintenance.messageIntro": "Adicionalmente, o administrador deixou esta mensagem:", diff --git a/public/language/pt-BR/recent.json b/public/language/pt-BR/recent.json index 1d71b1e8d3..4b95566194 100644 --- a/public/language/pt-BR/recent.json +++ b/public/language/pt-BR/recent.json @@ -7,5 +7,7 @@ "alltime": "Todos os Tempos", "no-recent-topics": "Não há tópicos recentes.", "no-popular-topics": "Não há tópicos populares.", - "load-new-posts": "Load new posts" + "load-new-posts": "Load new posts", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/pt-BR/topic.json b/public/language/pt-BR/topic.json index c31d05ca39..42c79c8bd0 100644 --- a/public/language/pt-BR/topic.json +++ b/public/language/pt-BR/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 restaurou este tópico em %2", "user-moved-topic-from-ago": "%1 moveu este tópico de %2 %3", "user-moved-topic-from-on": "%1 moveu este tópico de %2 em %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 enfileirou post para aprovação %3", "user-queued-post-on": "%1 enfileirou post para aprovação em %3", "user-referenced-topic-ago": "%1 referenciou este tópico %3", @@ -135,6 +137,7 @@ "bookmarks": "Favoritos", "bookmarks.has-no-bookmarks": "Você ainda não adicionou quaisquer posts aos favoritos.", "copy-permalink": "Copiar Permalink", + "go-to-original": "View Original Post", "loading-more-posts": "Carregando Mais Posts", "move-topic": "Mover Tópico", "move-topics": "Mover Tópicos", @@ -219,5 +222,7 @@ "downvote-post": "Downvote post", "post-tools": "Post tools", "unread-posts-link": "Unread posts link", - "thumb-image": "Topic thumbnail image" + "thumb-image": "Topic thumbnail image", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/pt-BR/user.json b/public/language/pt-BR/user.json index 4bdce6c59c..e3d14da61b 100644 --- a/public/language/pt-BR/user.json +++ b/public/language/pt-BR/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Configuração padrão em relação a acompanhar as novidades das categorias", "followers": "Seguidores", "following": "Seguindo", + "shares": "Shares", "blocks": "Bloqueados", "blocked-users": "Blocked users", "block-toggle": "Alternar Bloqueio", @@ -59,8 +60,10 @@ "chat-with": "Continuar a conversa com %1", "new-chat-with": "Iniciar uma nova conversa com %1", "flag-profile": "Perfil da Sinalização", + "profile-flagged": "Already flagged", "follow": "Seguir", "unfollow": "Deixar de Seguir", + "cancel-follow": "Cancel follow request", "more": "Mais", "profile-update-success": "O Perfil foi atualizado com sucesso!", "change-picture": "Alterar Foto", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "Este usuário ainda não votou negativamente em quaisquer posts.", "has-no-controversial-posts": "This user does not have any downvoted posts yet.", "has-no-blocks": "Você não bloqueou nenhum usuário.", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "E-mail Oculto", "hidden": "oculto", "paginate-description": "Paginar tópicos ao invés de utilizar em vez de usar rolagem infinita.", diff --git a/public/language/pt-BR/world.json b/public/language/pt-BR/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/pt-BR/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/manage/categories.json b/public/language/pt-PT/admin/manage/categories.json index c076c33851..0386b8e1b1 100644 --- a/public/language/pt-PT/admin/manage/categories.json +++ b/public/language/pt-PT/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Privilégios", "back-to-categories": "Back to categories", "name": "Nome da Categoria", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Descrição da Categoria", "bg-color": "Cor de Fundo", "text-color": "Cor do Texto", @@ -37,6 +39,7 @@ "disable": "Desativar", "edit": "Editar", "analytics": "Analytics", + "federation": "Federation", "view-category": "View category", "set-order": "Set order", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Figura 3 – Tópicos por dia criados nesta categoria", "analytics.posts-daily": "Figura 4 – Publicações por dia feitas nesta categoria", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Criada", "alert.create-success": "Categoria criada com sucesso!", "alert.none-active": "Não tens categorias ativas.", diff --git a/public/language/pt-PT/admin/menu.json b/public/language/pt-PT/admin/menu.json index 06371dae8d..f3d98fc63d 100644 --- a/public/language/pt-PT/admin/menu.json +++ b/public/language/pt-PT/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Marcadores", "settings/notifications": "Notificações", "settings/api": "API Access", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Sons", "settings/social": "Social", "settings/cookies": "Cookies", diff --git a/public/language/pt-PT/admin/settings/activitypub.json b/public/language/pt-PT/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/pt-PT/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/pt-PT/error.json b/public/language/pt-PT/error.json index e52ee42b8c..ad2e498278 100644 --- a/public/language/pt-PT/error.json +++ b/public/language/pt-PT/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", "topic-event-unrecognized": "Topic event '%1' unrecognized", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Can't set child as parent category", "cant-set-self-as-parent": "Can't set self as parent category", "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body", @@ -247,5 +248,11 @@ "api.500": "An unexpected error was encountered while attempting to service your request.", "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow", "api.503": "The route you are trying to call is not currently available due to a server configuration", - "api.reauth-required": "The resource you are trying to access requires (re-)authentication." + "api.reauth-required": "The resource you are trying to access requires (re-)authentication.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/pt-PT/flags.json b/public/language/pt-PT/flags.json index 58f5327900..9f23a68154 100644 --- a/public/language/pt-PT/flags.json +++ b/public/language/pt-PT/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Ofensivo", "modal-reason-other": "Outra (especificar abaixo)", "modal-reason-custom": "Motivo para denunciar este conteúdo...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Submeter Denúncia", "modal-submit-success": "Este conteúdo foi denunciado para moderação.", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 flags updated", "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." diff --git a/public/language/pt-PT/global.json b/public/language/pt-PT/global.json index 98f75ccef6..7c2a5bb12a 100644 --- a/public/language/pt-PT/global.json +++ b/public/language/pt-PT/global.json @@ -50,6 +50,7 @@ "header.navigation": "Navegação", "header.manage": "Manage", "header.drafts": "Drafts", + "header.world": "World", "notifications.loading": "Carregando as notificações", "chats.loading": "Carregando as conversas", "drafts.loading": "Loading Drafts", @@ -110,6 +111,7 @@ "dnd": "Não perturbar", "invisible": "Invisível", "offline": "Offline", + "remote-user": "This user is from outside of this forum", "email": "E-mail", "language": "Língua", "guest": "Convidado", diff --git a/public/language/pt-PT/modules.json b/public/language/pt-PT/modules.json index 367ef43725..5b3018d4fa 100644 --- a/public/language/pt-PT/modules.json +++ b/public/language/pt-PT/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Discard all drafts", "composer.no-drafts": "You have no drafts", "composer.discard-draft-confirm": "Do you want to discard this draft?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "OK", "bootbox.cancel": "Cancelar", "bootbox.confirm": "Confirmar", diff --git a/public/language/pt-PT/notifications.json b/public/language/pt-PT/notifications.json index 894c0a021b..7afa2dab8d 100644 --- a/public/language/pt-PT/notifications.json +++ b/public/language/pt-PT/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "Quando uma nova publicação está à espera de aprovação", "notificationType-new-post-flag": "Quando uma publicação é denunciada", "notificationType-new-user-flag": "Quando um utilizador é denunciado", - "notificationType-new-reward": "When you earn a new reward" + "notificationType-new-reward": "When you earn a new reward", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/pt-PT/pages.json b/public/language/pt-PT/pages.json index 1daec053b4..ff14f16f1b 100644 --- a/public/language/pt-PT/pages.json +++ b/public/language/pt-PT/pages.json @@ -36,6 +36,7 @@ "chat": "Conversando com %1", "flags": "Denúncias", "flag-details": "Detalhes da denúncia %1", + "world": "World", "account/edit": "Editando \"%1\"", "account/edit/password": "Editando palavra-passe de \"%1\"", "account/edit/username": "Editando o nome de utilizador de \"%1\"", @@ -62,6 +63,7 @@ "account/blocks": "Utilizadores bloqueados para %1", "account/uploads": "Carregamentos feitos por %1", "account/sessions": "Sessões ativas", + "account/shares": "Topics shared by %1", "confirm": "E-mail confirmado", "maintenance.text": "%1 is currently undergoing maintenance.
Please come back another time.", "maintenance.messageIntro": "Adicionalmente, o administrador deixou esta mensagem:", diff --git a/public/language/pt-PT/recent.json b/public/language/pt-PT/recent.json index 77a9fecb6f..3d01d9299f 100644 --- a/public/language/pt-PT/recent.json +++ b/public/language/pt-PT/recent.json @@ -7,5 +7,7 @@ "alltime": "Desde sempre", "no-recent-topics": "Não existem tópicos recentes.", "no-popular-topics": "Não existem tópicos populares.", - "load-new-posts": "Load new posts" + "load-new-posts": "Load new posts", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/pt-PT/topic.json b/public/language/pt-PT/topic.json index 4c0b37418b..535f260664 100644 --- a/public/language/pt-PT/topic.json +++ b/public/language/pt-PT/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 restored this topic on %2", "user-moved-topic-from-ago": "%1 moved this topic from %2 %3", "user-moved-topic-from-on": "%1 moved this topic from %2 on %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 queued post for approval %3", "user-queued-post-on": "%1 queued post for approval on %3", "user-referenced-topic-ago": "%1 referenced this topic %3", @@ -135,6 +137,7 @@ "bookmarks": "Marcadores", "bookmarks.has-no-bookmarks": "Ainda não marcaste nenhuma publicação.", "copy-permalink": "Copy Permalink", + "go-to-original": "View Original Post", "loading-more-posts": "Carregando mais publicações", "move-topic": "Mover tópico", "move-topics": "Mover tópicos", @@ -219,5 +222,7 @@ "downvote-post": "Downvote post", "post-tools": "Post tools", "unread-posts-link": "Unread posts link", - "thumb-image": "Topic thumbnail image" + "thumb-image": "Topic thumbnail image", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/pt-PT/user.json b/public/language/pt-PT/user.json index f5b01b2afd..3fb5aeee8c 100644 --- a/public/language/pt-PT/user.json +++ b/public/language/pt-PT/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Estado predefinido da subscrição de categorias", "followers": "Seguidores", "following": "Seguindo", + "shares": "Shares", "blocks": "Bloqueados", "blocked-users": "Blocked users", "block-toggle": "Bloquear/Desbloquear", @@ -59,8 +60,10 @@ "chat-with": "Continuar a conversa com %1", "new-chat-with": "Começa nova conversa com %1", "flag-profile": "Denunciar Perfil", + "profile-flagged": "Already flagged", "follow": "Segue", "unfollow": "Deixar de seguir", + "cancel-follow": "Cancel follow request", "more": "Mais", "profile-update-success": "Perfil foi atualizado com sucesso!", "change-picture": "Alterar fotografia", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "Este utilizador ainda não votou negativamente em nenhuma publicação.", "has-no-controversial-posts": "This user does not have any downvoted posts yet.", "has-no-blocks": "Não bloqueaste nenhum utilizador.", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "E-mail escondido", "hidden": "Escondido", "paginate-description": "Paginar os tópicos e publicações em vez de usar o scroll infinito", diff --git a/public/language/pt-PT/world.json b/public/language/pt-PT/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/pt-PT/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/ro/admin/manage/categories.json b/public/language/ro/admin/manage/categories.json index 8a9ff471b0..a5c0253dae 100644 --- a/public/language/ro/admin/manage/categories.json +++ b/public/language/ro/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Privileges", "back-to-categories": "Back to categories", "name": "Category Name", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Category Description", "bg-color": "Background Colour", "text-color": "Text Colour", @@ -37,6 +39,7 @@ "disable": "Disable", "edit": "Edit", "analytics": "Analytics", + "federation": "Federation", "view-category": "View category", "set-order": "Set order", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Figure 3 – Daily topics created in this category", "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Created", "alert.create-success": "Category successfully created!", "alert.none-active": "You have no active categories.", diff --git a/public/language/ro/admin/menu.json b/public/language/ro/admin/menu.json index 6e30be22b3..913c74f475 100644 --- a/public/language/ro/admin/menu.json +++ b/public/language/ro/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Tags", "settings/notifications": "Notifications", "settings/api": "API Access", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Sounds", "settings/social": "Social", "settings/cookies": "Cookies", diff --git a/public/language/ro/admin/settings/activitypub.json b/public/language/ro/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/ro/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/ro/error.json b/public/language/ro/error.json index 19dd668e6a..9eae4def74 100644 --- a/public/language/ro/error.json +++ b/public/language/ro/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", "topic-event-unrecognized": "Topic event '%1' unrecognized", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Can't set child as parent category", "cant-set-self-as-parent": "Can't set self as parent category", "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body", @@ -247,5 +248,11 @@ "api.500": "An unexpected error was encountered while attempting to service your request.", "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow", "api.503": "The route you are trying to call is not currently available due to a server configuration", - "api.reauth-required": "The resource you are trying to access requires (re-)authentication." + "api.reauth-required": "The resource you are trying to access requires (re-)authentication.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/ro/flags.json b/public/language/ro/flags.json index 0a42e3877f..7985a69f33 100644 --- a/public/language/ro/flags.json +++ b/public/language/ro/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Offensive", "modal-reason-other": "Other (specify below)", "modal-reason-custom": "Reason for reporting this content...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Submit Report", "modal-submit-success": "Content has been flagged for moderation.", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 flags updated", "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." diff --git a/public/language/ro/global.json b/public/language/ro/global.json index daee2529fc..1483caaeef 100644 --- a/public/language/ro/global.json +++ b/public/language/ro/global.json @@ -50,6 +50,7 @@ "header.navigation": "Navigare", "header.manage": "Manage", "header.drafts": "Drafts", + "header.world": "World", "notifications.loading": "Se încarcă notificările", "chats.loading": "Se încarcă conversațiile", "drafts.loading": "Loading Drafts", @@ -110,6 +111,7 @@ "dnd": "Nu mă deranja", "invisible": "Invizibil", "offline": "Deconectat", + "remote-user": "This user is from outside of this forum", "email": "Email", "language": "Limbă", "guest": "Vizitator", diff --git a/public/language/ro/modules.json b/public/language/ro/modules.json index c637d7e8bb..e45d834abc 100644 --- a/public/language/ro/modules.json +++ b/public/language/ro/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Discard all drafts", "composer.no-drafts": "You have no drafts", "composer.discard-draft-confirm": "Do you want to discard this draft?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", "bootbox.confirm": "Confirm", diff --git a/public/language/ro/notifications.json b/public/language/ro/notifications.json index a4d0e1ecde..90eaf58060 100644 --- a/public/language/ro/notifications.json +++ b/public/language/ro/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "When a new post is queued", "notificationType-new-post-flag": "When a post is flagged", "notificationType-new-user-flag": "When a user is flagged", - "notificationType-new-reward": "When you earn a new reward" + "notificationType-new-reward": "When you earn a new reward", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/ro/pages.json b/public/language/ro/pages.json index ee08627bfd..87ab32ddb6 100644 --- a/public/language/ro/pages.json +++ b/public/language/ro/pages.json @@ -36,6 +36,7 @@ "chat": "Chatting with %1", "flags": "Flags", "flag-details": "Flag %1 Details", + "world": "World", "account/edit": "Editing \"%1\"", "account/edit/password": "Editing password of \"%1\"", "account/edit/username": "Editing username of \"%1\"", @@ -62,6 +63,7 @@ "account/blocks": "Blocked users for %1", "account/uploads": "Uploads by %1", "account/sessions": "Login Sessions", + "account/shares": "Topics shared by %1", "confirm": "Email Confirmed", "maintenance.text": "%1 is currently undergoing maintenance.
Please come back another time.", "maintenance.messageIntro": "Additionally, the administrator has left this message:", diff --git a/public/language/ro/recent.json b/public/language/ro/recent.json index 18914bdf5c..825ef74692 100644 --- a/public/language/ro/recent.json +++ b/public/language/ro/recent.json @@ -7,5 +7,7 @@ "alltime": "Tot Timpul", "no-recent-topics": "Nu există subiecte recente.", "no-popular-topics": "Nu sunt subiecte populare.", - "load-new-posts": "Load new posts" + "load-new-posts": "Load new posts", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/ro/topic.json b/public/language/ro/topic.json index 083b1bf042..5d44fe17d7 100644 --- a/public/language/ro/topic.json +++ b/public/language/ro/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 restored this topic on %2", "user-moved-topic-from-ago": "%1 moved this topic from %2 %3", "user-moved-topic-from-on": "%1 moved this topic from %2 on %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 queued post for approval %3", "user-queued-post-on": "%1 queued post for approval on %3", "user-referenced-topic-ago": "%1 referenced this topic %3", @@ -135,6 +137,7 @@ "bookmarks": "Bookmarks", "bookmarks.has-no-bookmarks": "You haven't bookmarked any posts yet.", "copy-permalink": "Copy Permalink", + "go-to-original": "View Original Post", "loading-more-posts": "Se încarcă mai multe mesaje", "move-topic": "Mută Subiect", "move-topics": "Mută Subiecte", @@ -219,5 +222,7 @@ "downvote-post": "Downvote post", "post-tools": "Post tools", "unread-posts-link": "Unread posts link", - "thumb-image": "Topic thumbnail image" + "thumb-image": "Topic thumbnail image", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/ro/user.json b/public/language/ro/user.json index 90f69180be..98beeb05e1 100644 --- a/public/language/ro/user.json +++ b/public/language/ro/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Default category watch state", "followers": "Urmărit de", "following": "Îi urmărește pe", + "shares": "Shares", "blocks": "Blocks", "blocked-users": "Blocked users", "block-toggle": "Toggle Block", @@ -59,8 +60,10 @@ "chat-with": "Continue chat with %1", "new-chat-with": "Start new chat with %1", "flag-profile": "Flag Profile", + "profile-flagged": "Already flagged", "follow": "Urmărește", "unfollow": "Oprește urmărirea", + "cancel-follow": "Cancel follow request", "more": "Mai multe", "profile-update-success": "Profilul tău a fost actualizat cu succes!", "change-picture": "Schimbă Poza", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "This user hasn't downvoted any posts yet.", "has-no-controversial-posts": "This user does not have any downvoted posts yet.", "has-no-blocks": "You have blocked no users.", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "Adresă de email ascunsă", "hidden": "ascuns", "paginate-description": "Paginate topics and posts instead of using infinite scroll", diff --git a/public/language/ro/world.json b/public/language/ro/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/ro/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/ru/admin/manage/categories.json b/public/language/ru/admin/manage/categories.json index 49ae61f61e..6a58d7166c 100644 --- a/public/language/ru/admin/manage/categories.json +++ b/public/language/ru/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Права доступа", "back-to-categories": "Back to categories", "name": "Название категории", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Описание категории", "bg-color": "Цвет фона", "text-color": "Цвет текста", @@ -37,6 +39,7 @@ "disable": "Отключить", "edit": "Редактировать", "analytics": "Аналитика", + "federation": "Federation", "view-category": "Перейти в категорию", "set-order": "Установить порядковый номер", @@ -76,6 +79,22 @@ "analytics.topics-daily": "График 3 – новых тем за день", "analytics.posts-daily": "График 4 – новых сообщений за день", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Создано", "alert.create-success": "Категория успешно создана!", "alert.none-active": "У вас нет активных категорий.", diff --git a/public/language/ru/admin/menu.json b/public/language/ru/admin/menu.json index 0c10ad9f1a..073870168c 100644 --- a/public/language/ru/admin/menu.json +++ b/public/language/ru/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Метки", "settings/notifications": "Уведомления", "settings/api": "Доступ API", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Звуки", "settings/social": "Шэринг", "settings/cookies": "Куки", diff --git a/public/language/ru/admin/settings/activitypub.json b/public/language/ru/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/ru/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/ru/error.json b/public/language/ru/error.json index 44e346905d..1816521a2d 100644 --- a/public/language/ru/error.json +++ b/public/language/ru/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", "topic-event-unrecognized": "Событие темы \"%1\" нераспознанно", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Невозможно установить дочернюю категорию в качестве родительской", "cant-set-self-as-parent": "Нельзя установить категорию в качестве родительской для самой себя", "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body", @@ -247,5 +248,11 @@ "api.500": "An unexpected error was encountered while attempting to service your request.", "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow", "api.503": "The route you are trying to call is not currently available due to a server configuration", - "api.reauth-required": "Ресурс к которому вы пытаетесь получить доступ требует авторизации." + "api.reauth-required": "Ресурс к которому вы пытаетесь получить доступ требует авторизации.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/ru/flags.json b/public/language/ru/flags.json index b812c9fa7e..4192bb3d55 100644 --- a/public/language/ru/flags.json +++ b/public/language/ru/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Оскорбительное содержимое", "modal-reason-other": "Другое (укажите ниже)", "modal-reason-custom": "Причина жалобы на содержимое...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Отправить отчёт", "modal-submit-success": "Содержимое было помечено для модераторов.", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Жалоба %1 обновлена", "bulk-resolve": "Решить жалобы", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "Жалоба %1 обновлена", "flagged-timeago": "Flagged ", "auto-flagged": "[Автожалоба] Получено %1 голосов против." diff --git a/public/language/ru/global.json b/public/language/ru/global.json index ca1dccd5a9..bccef6c5b4 100644 --- a/public/language/ru/global.json +++ b/public/language/ru/global.json @@ -50,6 +50,7 @@ "header.navigation": "Навигация", "header.manage": "Manage", "header.drafts": "Черновики", + "header.world": "World", "notifications.loading": "Загружаем уведомления", "chats.loading": "Загружаем чаты", "drafts.loading": "Загружаем черновики", @@ -110,6 +111,7 @@ "dnd": "Не беспокоить", "invisible": "Невидимка", "offline": "Не в сети", + "remote-user": "This user is from outside of this forum", "email": "Электронная почта", "language": "Язык", "guest": "Гость", diff --git a/public/language/ru/modules.json b/public/language/ru/modules.json index fe0dcb2f7e..3f36aca884 100644 --- a/public/language/ru/modules.json +++ b/public/language/ru/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Удалить все черновики", "composer.no-drafts": "У вас нет черновиков", "composer.discard-draft-confirm": "Удалить все черновики?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "ОК", "bootbox.cancel": "Отмена", "bootbox.confirm": "Подтвердить", diff --git a/public/language/ru/notifications.json b/public/language/ru/notifications.json index 3dd958a19d..0cb9c2d9c8 100644 --- a/public/language/ru/notifications.json +++ b/public/language/ru/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "Когда в очереди на проверку появляется новое сообщение", "notificationType-new-post-flag": "Когда поступает жалоба на сообщение", "notificationType-new-user-flag": "Когда поступает жалоба на пользователя", - "notificationType-new-reward": "When you earn a new reward" + "notificationType-new-reward": "When you earn a new reward", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/ru/pages.json b/public/language/ru/pages.json index fcd07af1e1..b973f72168 100644 --- a/public/language/ru/pages.json +++ b/public/language/ru/pages.json @@ -36,6 +36,7 @@ "chat": "Чат с %1", "flags": "Жалобы", "flag-details": "Подробности жалобы %1", + "world": "World", "account/edit": "Редактирование \"%1\"", "account/edit/password": "Сменить пароль \"%1\"", "account/edit/username": "Изменить имя пользователя \"%1\"", @@ -62,6 +63,7 @@ "account/blocks": "Пользователи, заблокированные %1", "account/uploads": "Загрузки %1", "account/sessions": "Сессии", + "account/shares": "Topics shared by %1", "confirm": "Электронная почта подтверждена", "maintenance.text": "%1 is currently undergoing maintenance.
Please come back another time.", "maintenance.messageIntro": "Кроме того, администратор оставил это сообщение:", diff --git a/public/language/ru/recent.json b/public/language/ru/recent.json index 0ff485a749..ea40750666 100644 --- a/public/language/ru/recent.json +++ b/public/language/ru/recent.json @@ -7,5 +7,7 @@ "alltime": "За всё время", "no-recent-topics": "Нет свежих тем.", "no-popular-topics": "Популярные темы отсутствуют.", - "load-new-posts": "Загрузить новые сообщения" + "load-new-posts": "Загрузить новые сообщения", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/ru/topic.json b/public/language/ru/topic.json index bd2b99ed92..86c8306ecf 100644 --- a/public/language/ru/topic.json +++ b/public/language/ru/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 восстановил эту тему в %2", "user-moved-topic-from-ago": "%1 переместил эту тему из %2 %3", "user-moved-topic-from-on": "%1 переместил эту тему из %2 в %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 добавил запись для одобрения %3", "user-queued-post-on": "%1 добавил запись для одобрения в %3", "user-referenced-topic-ago": "%1 сослался на эту тему %3", @@ -135,6 +137,7 @@ "bookmarks": "Закладки", "bookmarks.has-no-bookmarks": "Вы ещё не добавили в закладки ни одного сообщения.", "copy-permalink": "Скопировать Ссылку", + "go-to-original": "View Original Post", "loading-more-posts": "Загружаем больше сообщений", "move-topic": "Перенести тему", "move-topics": "Перенести темы", @@ -219,5 +222,7 @@ "downvote-post": "Downvote post", "post-tools": "Post tools", "unread-posts-link": "Unread posts link", - "thumb-image": "Topic thumbnail image" + "thumb-image": "Topic thumbnail image", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/ru/user.json b/public/language/ru/user.json index 56bcb61b38..8d6b38acb0 100644 --- a/public/language/ru/user.json +++ b/public/language/ru/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Стандартная настройка отслеживания категорий", "followers": "Подписчики", "following": "Подписки", + "shares": "Shares", "blocks": "Чёрный список", "blocked-users": "Заблокированные пользователи", "block-toggle": "Блок./Разблок", @@ -59,8 +60,10 @@ "chat-with": "Продолжить чат с %1", "new-chat-with": "Начать новый чат с %1", "flag-profile": "Пожаловаться на профиль", + "profile-flagged": "Already flagged", "follow": "Подписаться", "unfollow": "Отписаться", + "cancel-follow": "Cancel follow request", "more": "Больше", "profile-update-success": "Профиль обновлён!", "change-picture": "Изменить аватар", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "Этот пользователь ещё ни одному сообщению не понижал рейтинг.", "has-no-controversial-posts": "This user does not have any downvoted posts yet.", "has-no-blocks": "Вы никого не заблокировали.", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "Электронная почта скрыта", "hidden": "скрыто", "paginate-description": "Разбивать темы и сообщения на страницы, а не выводить бесконечным списком", diff --git a/public/language/ru/world.json b/public/language/ru/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/ru/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/rw/admin/manage/categories.json b/public/language/rw/admin/manage/categories.json index 8a9ff471b0..a5c0253dae 100644 --- a/public/language/rw/admin/manage/categories.json +++ b/public/language/rw/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Privileges", "back-to-categories": "Back to categories", "name": "Category Name", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Category Description", "bg-color": "Background Colour", "text-color": "Text Colour", @@ -37,6 +39,7 @@ "disable": "Disable", "edit": "Edit", "analytics": "Analytics", + "federation": "Federation", "view-category": "View category", "set-order": "Set order", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Figure 3 – Daily topics created in this category", "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Created", "alert.create-success": "Category successfully created!", "alert.none-active": "You have no active categories.", diff --git a/public/language/rw/admin/menu.json b/public/language/rw/admin/menu.json index 6e30be22b3..913c74f475 100644 --- a/public/language/rw/admin/menu.json +++ b/public/language/rw/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Tags", "settings/notifications": "Notifications", "settings/api": "API Access", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Sounds", "settings/social": "Social", "settings/cookies": "Cookies", diff --git a/public/language/rw/admin/settings/activitypub.json b/public/language/rw/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/rw/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/rw/error.json b/public/language/rw/error.json index e2939530d7..53ba567d7f 100644 --- a/public/language/rw/error.json +++ b/public/language/rw/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", "topic-event-unrecognized": "Topic event '%1' unrecognized", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Can't set child as parent category", "cant-set-self-as-parent": "Can't set self as parent category", "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body", @@ -247,5 +248,11 @@ "api.500": "An unexpected error was encountered while attempting to service your request.", "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow", "api.503": "The route you are trying to call is not currently available due to a server configuration", - "api.reauth-required": "The resource you are trying to access requires (re-)authentication." + "api.reauth-required": "The resource you are trying to access requires (re-)authentication.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/rw/flags.json b/public/language/rw/flags.json index 0a42e3877f..7985a69f33 100644 --- a/public/language/rw/flags.json +++ b/public/language/rw/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Offensive", "modal-reason-other": "Other (specify below)", "modal-reason-custom": "Reason for reporting this content...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Submit Report", "modal-submit-success": "Content has been flagged for moderation.", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 flags updated", "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." diff --git a/public/language/rw/global.json b/public/language/rw/global.json index 5c22313561..64c0f6a3c0 100644 --- a/public/language/rw/global.json +++ b/public/language/rw/global.json @@ -50,6 +50,7 @@ "header.navigation": "Ukureba", "header.manage": "Manage", "header.drafts": "Drafts", + "header.world": "World", "notifications.loading": "Amatangazo Araje", "chats.loading": "Ubutumwa Buraje", "drafts.loading": "Loading Drafts", @@ -110,6 +111,7 @@ "dnd": "Nta Kurogoya", "invisible": "Nta Kugaragara", "offline": "Nta Murongo", + "remote-user": "This user is from outside of this forum", "email": "Email", "language": "Ururimi", "guest": "Umushyitsi", diff --git a/public/language/rw/modules.json b/public/language/rw/modules.json index 6181e328f2..340d16cac4 100644 --- a/public/language/rw/modules.json +++ b/public/language/rw/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Discard all drafts", "composer.no-drafts": "You have no drafts", "composer.discard-draft-confirm": "Do you want to discard this draft?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "Sawa", "bootbox.cancel": "Isubire", "bootbox.confirm": "Emeza", diff --git a/public/language/rw/notifications.json b/public/language/rw/notifications.json index 8804f83529..0afc5da049 100644 --- a/public/language/rw/notifications.json +++ b/public/language/rw/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "When a new post is queued", "notificationType-new-post-flag": "When a post is flagged", "notificationType-new-user-flag": "When a user is flagged", - "notificationType-new-reward": "When you earn a new reward" + "notificationType-new-reward": "When you earn a new reward", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/rw/pages.json b/public/language/rw/pages.json index 528056c922..e7d2089214 100644 --- a/public/language/rw/pages.json +++ b/public/language/rw/pages.json @@ -36,6 +36,7 @@ "chat": "Ukuganira na %1", "flags": "Flags", "flag-details": "Flag %1 Details", + "world": "World", "account/edit": "Uguhindura \"%1\"", "account/edit/password": "Uguhindura ijambobanga rya \"%1\"", "account/edit/username": "Uguhindura izina rya \"%1\"", @@ -62,6 +63,7 @@ "account/blocks": "Blocked users for %1", "account/uploads": "Uploads by %1", "account/sessions": "Login Sessions", + "account/shares": "Topics shared by %1", "confirm": "Email Yemejwe", "maintenance.text": "%1 is currently undergoing maintenance.
Please come back another time.", "maintenance.messageIntro": "Byongeye, kandi, umuyobozi yasize ubu butumwa:", diff --git a/public/language/rw/recent.json b/public/language/rw/recent.json index cb46b2d299..b195326d47 100644 --- a/public/language/rw/recent.json +++ b/public/language/rw/recent.json @@ -7,5 +7,7 @@ "alltime": "Ibihe Byose", "no-recent-topics": "Nta biganiro biheruka.", "no-popular-topics": "Nta biganiro bikunzwe.", - "load-new-posts": "Load new posts" + "load-new-posts": "Load new posts", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/rw/topic.json b/public/language/rw/topic.json index c31cd666d3..ffc4c4084f 100644 --- a/public/language/rw/topic.json +++ b/public/language/rw/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 restored this topic on %2", "user-moved-topic-from-ago": "%1 moved this topic from %2 %3", "user-moved-topic-from-on": "%1 moved this topic from %2 on %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 queued post for approval %3", "user-queued-post-on": "%1 queued post for approval on %3", "user-referenced-topic-ago": "%1 referenced this topic %3", @@ -135,6 +137,7 @@ "bookmarks": "Bookmarks", "bookmarks.has-no-bookmarks": "You haven't bookmarked any posts yet.", "copy-permalink": "Copy Permalink", + "go-to-original": "View Original Post", "loading-more-posts": "Ibindi Biraje", "move-topic": "Imura Ikiganiro", "move-topics": "Imura Ibiganiro", @@ -219,5 +222,7 @@ "downvote-post": "Downvote post", "post-tools": "Post tools", "unread-posts-link": "Unread posts link", - "thumb-image": "Topic thumbnail image" + "thumb-image": "Topic thumbnail image", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/rw/user.json b/public/language/rw/user.json index dd5df13145..4fd8e1f094 100644 --- a/public/language/rw/user.json +++ b/public/language/rw/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Default category watch state", "followers": "Abamukurikira", "following": "Akurikira", + "shares": "Shares", "blocks": "Blocks", "blocked-users": "Blocked users", "block-toggle": "Toggle Block", @@ -59,8 +60,10 @@ "chat-with": "Continue chat with %1", "new-chat-with": "Start new chat with %1", "flag-profile": "Flag Profile", + "profile-flagged": "Already flagged", "follow": "Kurikira", "unfollow": "Ntukurikire", + "cancel-follow": "Cancel follow request", "more": "Ibindi", "profile-update-success": "Ishusho yashyizwe ku gihe nta ngorane!", "change-picture": "Hindura Ifoto", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "Uyu muntu ntabwo aragaya icyashizweho na kimwe.", "has-no-controversial-posts": "This user does not have any downvoted posts yet.", "has-no-blocks": "You have blocked no users.", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "Email Yahishwe", "hidden": "byahishwe", "paginate-description": "Gabanya ibiganiro n'ibyashyizweho mu ma paji aho kugirango umuntu ajye amanuka ubudahagarara", diff --git a/public/language/rw/world.json b/public/language/rw/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/rw/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/sc/admin/manage/categories.json b/public/language/sc/admin/manage/categories.json index 8a9ff471b0..a5c0253dae 100644 --- a/public/language/sc/admin/manage/categories.json +++ b/public/language/sc/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Privileges", "back-to-categories": "Back to categories", "name": "Category Name", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Category Description", "bg-color": "Background Colour", "text-color": "Text Colour", @@ -37,6 +39,7 @@ "disable": "Disable", "edit": "Edit", "analytics": "Analytics", + "federation": "Federation", "view-category": "View category", "set-order": "Set order", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Figure 3 – Daily topics created in this category", "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Created", "alert.create-success": "Category successfully created!", "alert.none-active": "You have no active categories.", diff --git a/public/language/sc/admin/menu.json b/public/language/sc/admin/menu.json index 6e30be22b3..913c74f475 100644 --- a/public/language/sc/admin/menu.json +++ b/public/language/sc/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Tags", "settings/notifications": "Notifications", "settings/api": "API Access", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Sounds", "settings/social": "Social", "settings/cookies": "Cookies", diff --git a/public/language/sc/admin/settings/activitypub.json b/public/language/sc/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/sc/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/sc/error.json b/public/language/sc/error.json index d203fe7cae..cf9ad6b31e 100644 --- a/public/language/sc/error.json +++ b/public/language/sc/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", "topic-event-unrecognized": "Topic event '%1' unrecognized", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Can't set child as parent category", "cant-set-self-as-parent": "Can't set self as parent category", "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body", @@ -247,5 +248,11 @@ "api.500": "An unexpected error was encountered while attempting to service your request.", "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow", "api.503": "The route you are trying to call is not currently available due to a server configuration", - "api.reauth-required": "The resource you are trying to access requires (re-)authentication." + "api.reauth-required": "The resource you are trying to access requires (re-)authentication.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/sc/flags.json b/public/language/sc/flags.json index 0a42e3877f..7985a69f33 100644 --- a/public/language/sc/flags.json +++ b/public/language/sc/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Offensive", "modal-reason-other": "Other (specify below)", "modal-reason-custom": "Reason for reporting this content...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Submit Report", "modal-submit-success": "Content has been flagged for moderation.", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 flags updated", "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." diff --git a/public/language/sc/global.json b/public/language/sc/global.json index 38a0de696b..d2475a0675 100644 --- a/public/language/sc/global.json +++ b/public/language/sc/global.json @@ -50,6 +50,7 @@ "header.navigation": "Navigation", "header.manage": "Manage", "header.drafts": "Drafts", + "header.world": "World", "notifications.loading": "Carrighende Notìficas", "chats.loading": "Carrighende Tzarras", "drafts.loading": "Loading Drafts", @@ -110,6 +111,7 @@ "dnd": "Do not disturb", "invisible": "Invisìbile", "offline": "Non in lìnia", + "remote-user": "This user is from outside of this forum", "email": "Email", "language": "Language", "guest": "Guest", diff --git a/public/language/sc/modules.json b/public/language/sc/modules.json index b01c92446b..7145e11029 100644 --- a/public/language/sc/modules.json +++ b/public/language/sc/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Discard all drafts", "composer.no-drafts": "You have no drafts", "composer.discard-draft-confirm": "Do you want to discard this draft?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", "bootbox.confirm": "Confirm", diff --git a/public/language/sc/notifications.json b/public/language/sc/notifications.json index 4348eb1bfe..90f6e9f3d9 100644 --- a/public/language/sc/notifications.json +++ b/public/language/sc/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "When a new post is queued", "notificationType-new-post-flag": "When a post is flagged", "notificationType-new-user-flag": "When a user is flagged", - "notificationType-new-reward": "When you earn a new reward" + "notificationType-new-reward": "When you earn a new reward", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/sc/pages.json b/public/language/sc/pages.json index 12bd5646f3..4756ac7199 100644 --- a/public/language/sc/pages.json +++ b/public/language/sc/pages.json @@ -36,6 +36,7 @@ "chat": "Chatting with %1", "flags": "Flags", "flag-details": "Flag %1 Details", + "world": "World", "account/edit": "Editing \"%1\"", "account/edit/password": "Editing password of \"%1\"", "account/edit/username": "Editing username of \"%1\"", @@ -62,6 +63,7 @@ "account/blocks": "Blocked users for %1", "account/uploads": "Uploads by %1", "account/sessions": "Login Sessions", + "account/shares": "Topics shared by %1", "confirm": "Email Confirmed", "maintenance.text": "%1 is currently undergoing maintenance.
Please come back another time.", "maintenance.messageIntro": "Additionally, the administrator has left this message:", diff --git a/public/language/sc/recent.json b/public/language/sc/recent.json index c25a87fb62..4df4d41de1 100644 --- a/public/language/sc/recent.json +++ b/public/language/sc/recent.json @@ -7,5 +7,7 @@ "alltime": "All Time", "no-recent-topics": "Non bi sunt ùrtimas arresonadas.", "no-popular-topics": "There are no popular topics.", - "load-new-posts": "Load new posts" + "load-new-posts": "Load new posts", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/sc/topic.json b/public/language/sc/topic.json index 228fe9a9d0..36b50ac704 100644 --- a/public/language/sc/topic.json +++ b/public/language/sc/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 restored this topic on %2", "user-moved-topic-from-ago": "%1 moved this topic from %2 %3", "user-moved-topic-from-on": "%1 moved this topic from %2 on %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 queued post for approval %3", "user-queued-post-on": "%1 queued post for approval on %3", "user-referenced-topic-ago": "%1 referenced this topic %3", @@ -135,6 +137,7 @@ "bookmarks": "Bookmarks", "bookmarks.has-no-bookmarks": "You haven't bookmarked any posts yet.", "copy-permalink": "Copy Permalink", + "go-to-original": "View Original Post", "loading-more-posts": "Càrriga Prus Arresonos", "move-topic": "Move Arresonada", "move-topics": "Move Topics", @@ -219,5 +222,7 @@ "downvote-post": "Downvote post", "post-tools": "Post tools", "unread-posts-link": "Unread posts link", - "thumb-image": "Topic thumbnail image" + "thumb-image": "Topic thumbnail image", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/sc/user.json b/public/language/sc/user.json index 3942ae1335..ae6710bb33 100644 --- a/public/language/sc/user.json +++ b/public/language/sc/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Default category watch state", "followers": "Sighidores", "following": "Sighende", + "shares": "Shares", "blocks": "Blocks", "blocked-users": "Blocked users", "block-toggle": "Toggle Block", @@ -59,8 +60,10 @@ "chat-with": "Continue chat with %1", "new-chat-with": "Start new chat with %1", "flag-profile": "Flag Profile", + "profile-flagged": "Already flagged", "follow": "Sighi", "unfollow": "Non sighes prus", + "cancel-follow": "Cancel follow request", "more": "More", "profile-update-success": "Profile has been updated successfully!", "change-picture": "Muda Immàgine", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "This user hasn't downvoted any posts yet.", "has-no-controversial-posts": "This user does not have any downvoted posts yet.", "has-no-blocks": "You have blocked no users.", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "Email Cuada", "hidden": "cuadu", "paginate-description": "Paginate topics and posts instead of using infinite scroll", diff --git a/public/language/sc/world.json b/public/language/sc/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/sc/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/sk/admin/manage/categories.json b/public/language/sk/admin/manage/categories.json index 9dc3cc8829..84ed373067 100644 --- a/public/language/sk/admin/manage/categories.json +++ b/public/language/sk/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Oprávnenia", "back-to-categories": "Back to categories", "name": "Názov kategórie", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Popis kategórie", "bg-color": "Farba pozadia", "text-color": "Farba textu", @@ -37,6 +39,7 @@ "disable": "Zakázať", "edit": "Upraviť", "analytics": "Analytics", + "federation": "Federation", "view-category": "View category", "set-order": "Set order", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Postava 3 - vytvorených tém za deň pre túto kategóriu", "analytics.posts-daily": "Postava 4 – vytvorených príspevkov za deň pre túto kategóriu", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Vytvorené", "alert.create-success": "Kategória bola úspešne vytvorená.", "alert.none-active": "Nemáte žiadne aktívne kategórie.", diff --git a/public/language/sk/admin/menu.json b/public/language/sk/admin/menu.json index c4b095b963..cca2bf85c8 100644 --- a/public/language/sk/admin/menu.json +++ b/public/language/sk/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Značky", "settings/notifications": "Oznámenia", "settings/api": "API Access", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Sounds", "settings/social": "Social", "settings/cookies": "Coockie", diff --git a/public/language/sk/admin/settings/activitypub.json b/public/language/sk/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/sk/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/sk/error.json b/public/language/sk/error.json index b6da6a7509..19d50aa3ca 100644 --- a/public/language/sk/error.json +++ b/public/language/sk/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", "topic-event-unrecognized": "Topic event '%1' unrecognized", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Can't set child as parent category", "cant-set-self-as-parent": "Can't set self as parent category", "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body", @@ -247,5 +248,11 @@ "api.500": "An unexpected error was encountered while attempting to service your request.", "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow", "api.503": "The route you are trying to call is not currently available due to a server configuration", - "api.reauth-required": "The resource you are trying to access requires (re-)authentication." + "api.reauth-required": "The resource you are trying to access requires (re-)authentication.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/sk/flags.json b/public/language/sk/flags.json index e06be6f7e5..753b99882b 100644 --- a/public/language/sk/flags.json +++ b/public/language/sk/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Urážlivý", "modal-reason-other": "Iné (popíšte nižšie)", "modal-reason-custom": "Dôvod oznamovania tohto obsahu...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Odoslať správu", "modal-submit-success": "Obsah bol označený na moderovanie.", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 flags updated", "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." diff --git a/public/language/sk/global.json b/public/language/sk/global.json index 381570eb4e..8c7b6b28b7 100644 --- a/public/language/sk/global.json +++ b/public/language/sk/global.json @@ -50,6 +50,7 @@ "header.navigation": "Navigácia", "header.manage": "Manage", "header.drafts": "Drafts", + "header.world": "World", "notifications.loading": "Načítavanie oznámení", "chats.loading": "Načítanie konverzácií", "drafts.loading": "Loading Drafts", @@ -110,6 +111,7 @@ "dnd": "Nevyrušovať", "invisible": "Neviditeľný", "offline": "Offline", + "remote-user": "This user is from outside of this forum", "email": "E-mail", "language": "Jazyk", "guest": "Hosť", diff --git a/public/language/sk/modules.json b/public/language/sk/modules.json index 1070b9f944..51c3df2339 100644 --- a/public/language/sk/modules.json +++ b/public/language/sk/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Discard all drafts", "composer.no-drafts": "You have no drafts", "composer.discard-draft-confirm": "Do you want to discard this draft?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "OK", "bootbox.cancel": "Zrušiť", "bootbox.confirm": "Potvrdiť", diff --git a/public/language/sk/notifications.json b/public/language/sk/notifications.json index 2ff5c2fe6f..31587c4102 100644 --- a/public/language/sk/notifications.json +++ b/public/language/sk/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "Ak bude pridaný nový príspevok do fronty", "notificationType-new-post-flag": "Ak bude príspevok označený", "notificationType-new-user-flag": "Ak bude používateľ označený", - "notificationType-new-reward": "When you earn a new reward" + "notificationType-new-reward": "When you earn a new reward", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/sk/pages.json b/public/language/sk/pages.json index b01e94fde7..82dfbbd9a0 100644 --- a/public/language/sk/pages.json +++ b/public/language/sk/pages.json @@ -36,6 +36,7 @@ "chat": "Rozprávate sa s %1", "flags": "Príznaky", "flag-details": "Detaily príznaku %1", + "world": "World", "account/edit": "Úprava \"%1\"", "account/edit/password": "Úprava hesla \"%1\"", "account/edit/username": "Úprava užívateľského mena \"%1\"", @@ -62,6 +63,7 @@ "account/blocks": "Zablokovaní používatelia z %1", "account/uploads": "Nahraté od %1", "account/sessions": "Login Sessions", + "account/shares": "Topics shared by %1", "confirm": "E-mail potvrdený", "maintenance.text": "%1 is currently undergoing maintenance.
Please come back another time.", "maintenance.messageIntro": "Správca, dodatočne zanechal túto správu:", diff --git a/public/language/sk/recent.json b/public/language/sk/recent.json index c3cd261d13..52cf9c32ab 100644 --- a/public/language/sk/recent.json +++ b/public/language/sk/recent.json @@ -7,5 +7,7 @@ "alltime": "Vždy", "no-recent-topics": "Neboli nájdené žiadne nové témy.", "no-popular-topics": "Neexistujú žiadne populárne témy.", - "load-new-posts": "Load new posts" + "load-new-posts": "Load new posts", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/sk/topic.json b/public/language/sk/topic.json index 575a258413..1f20e2e431 100644 --- a/public/language/sk/topic.json +++ b/public/language/sk/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 restored this topic on %2", "user-moved-topic-from-ago": "%1 moved this topic from %2 %3", "user-moved-topic-from-on": "%1 moved this topic from %2 on %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 queued post for approval %3", "user-queued-post-on": "%1 queued post for approval on %3", "user-referenced-topic-ago": "%1 referenced this topic %3", @@ -135,6 +137,7 @@ "bookmarks": "Záložky", "bookmarks.has-no-bookmarks": "Momentálne nemáte žiadne príspevky v záložkách.", "copy-permalink": "Copy Permalink", + "go-to-original": "View Original Post", "loading-more-posts": "Načítavanie ďalších príspevkov", "move-topic": "Presunúť tému", "move-topics": "Presunúť témy", @@ -219,5 +222,7 @@ "downvote-post": "Downvote post", "post-tools": "Post tools", "unread-posts-link": "Unread posts link", - "thumb-image": "Topic thumbnail image" + "thumb-image": "Topic thumbnail image", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/sk/user.json b/public/language/sk/user.json index 7f2619410d..1b788bb2a0 100644 --- a/public/language/sk/user.json +++ b/public/language/sk/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Default category watch state", "followers": "Nasledovatelia", "following": "Nasleduje", + "shares": "Shares", "blocks": "Zablokovaný", "blocked-users": "Blocked users", "block-toggle": "Prepnúť zablokovanie", @@ -59,8 +60,10 @@ "chat-with": "Konverzácia s %1", "new-chat-with": "Začať novú konverzáciu s %1", "flag-profile": "Označiť profil", + "profile-flagged": "Already flagged", "follow": "Nasledovať", "unfollow": "Prestať sledovať", + "cancel-follow": "Cancel follow request", "more": "Viac", "profile-update-success": "Profil bol úspešne aktualizovaný!", "change-picture": "Zmeniť obrázok", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "Tento užívateľ doteraz neodobral hlas žiadnemu príspevku.", "has-no-controversial-posts": "This user does not have any downvoted posts yet.", "has-no-blocks": "Nezablokoval ste žiadneho používateľa.", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "Skrytý e-mail", "hidden": "skrytý", "paginate-description": "Očíslovať témy a príspevky namiesto používania nekonečného rolovania", diff --git a/public/language/sk/world.json b/public/language/sk/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/sk/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/sl/admin/manage/categories.json b/public/language/sl/admin/manage/categories.json index c6da77d39b..bf72203a70 100644 --- a/public/language/sl/admin/manage/categories.json +++ b/public/language/sl/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Privilegiji", "back-to-categories": "Back to categories", "name": "Ime kategorije", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Opis kategorije", "bg-color": "Barva ozadja", "text-color": "Barva besedila", @@ -37,6 +39,7 @@ "disable": "Onemogoči", "edit": "Uredi", "analytics": "Analitika", + "federation": "Federation", "view-category": "Poglej kategorijo", "set-order": "Nastavi vrstni red", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Slika 3 – Dnevno ustvarjene teme v tej kategoriji", "analytics.posts-daily": "Slika 4 – Dnevne objave v tej kategoriji", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Ustvarjeno", "alert.create-success": "Kategorija je uspešno ustvarjena!", "alert.none-active": "Nimate aktivnih kategorij.", diff --git a/public/language/sl/admin/menu.json b/public/language/sl/admin/menu.json index 0cf578c4ad..0760f8e8ba 100644 --- a/public/language/sl/admin/menu.json +++ b/public/language/sl/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Oznake", "settings/notifications": "Obvestila", "settings/api": "API dostop", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Zvoki", "settings/social": "Družbeno", "settings/cookies": "Piškotki", diff --git a/public/language/sl/admin/settings/activitypub.json b/public/language/sl/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/sl/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/sl/error.json b/public/language/sl/error.json index 5f73b6f00e..f34e092f55 100644 --- a/public/language/sl/error.json +++ b/public/language/sl/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", "topic-event-unrecognized": "Topic event '%1' unrecognized", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Can't set child as parent category", "cant-set-self-as-parent": "Can't set self as parent category", "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body", @@ -247,5 +248,11 @@ "api.500": "An unexpected error was encountered while attempting to service your request.", "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow", "api.503": "The route you are trying to call is not currently available due to a server configuration", - "api.reauth-required": "The resource you are trying to access requires (re-)authentication." + "api.reauth-required": "The resource you are trying to access requires (re-)authentication.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/sl/flags.json b/public/language/sl/flags.json index 07e544aef2..10eeb72a13 100644 --- a/public/language/sl/flags.json +++ b/public/language/sl/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Offensive", "modal-reason-other": "Other (specify below)", "modal-reason-custom": "Reason for reporting this content...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Submit Report", "modal-submit-success": "Content has been flagged for moderation.", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 flags updated", "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." diff --git a/public/language/sl/global.json b/public/language/sl/global.json index 074e1a1a45..218584b5d8 100644 --- a/public/language/sl/global.json +++ b/public/language/sl/global.json @@ -50,6 +50,7 @@ "header.navigation": "Krmarjenje", "header.manage": "Manage", "header.drafts": "Osnutki", + "header.world": "World", "notifications.loading": "Nalaganje obvestil", "chats.loading": "Nalaganje klepetov", "drafts.loading": "Loading Drafts", @@ -110,6 +111,7 @@ "dnd": "Ne moti", "invisible": "Neviden", "offline": "Nedosegljiv", + "remote-user": "This user is from outside of this forum", "email": "E-pošta", "language": "Jezik", "guest": "Gost", diff --git a/public/language/sl/modules.json b/public/language/sl/modules.json index a15faa5681..5571ad4c35 100644 --- a/public/language/sl/modules.json +++ b/public/language/sl/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Discard all drafts", "composer.no-drafts": "You have no drafts", "composer.discard-draft-confirm": "Do you want to discard this draft?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "V redu", "bootbox.cancel": "Prekliči", "bootbox.confirm": "Potrdi", diff --git a/public/language/sl/notifications.json b/public/language/sl/notifications.json index 11c3b0bd56..a6c33aa49e 100644 --- a/public/language/sl/notifications.json +++ b/public/language/sl/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "When a new post is queued", "notificationType-new-post-flag": "When a post is flagged", "notificationType-new-user-flag": "When a user is flagged", - "notificationType-new-reward": "When you earn a new reward" + "notificationType-new-reward": "When you earn a new reward", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/sl/pages.json b/public/language/sl/pages.json index 1be0d79cea..e32f2d599d 100644 --- a/public/language/sl/pages.json +++ b/public/language/sl/pages.json @@ -36,6 +36,7 @@ "chat": "Klepet z osebo %1", "flags": "Flags", "flag-details": "Flag %1 Details", + "world": "World", "account/edit": "Urejanje \"%1\"", "account/edit/password": "Urejanje gesla za \"%1\"", "account/edit/username": "Urejanje uporabniškega imena za \"%1\"", @@ -62,6 +63,7 @@ "account/blocks": "Blocked users for %1", "account/uploads": "Uploads by %1", "account/sessions": "Login Sessions", + "account/shares": "Topics shared by %1", "confirm": "E-pošta potrjena", "maintenance.text": "%1 is currently undergoing maintenance.
Please come back another time.", "maintenance.messageIntro": "Dodatno vam je skrbnik pustil tole sporočilo:", diff --git a/public/language/sl/recent.json b/public/language/sl/recent.json index d2f338aaa2..75b64d04c6 100644 --- a/public/language/sl/recent.json +++ b/public/language/sl/recent.json @@ -7,5 +7,7 @@ "alltime": "Vse", "no-recent-topics": "Ni nedavnih tem.", "no-popular-topics": "Ni priljubljenih tem.", - "load-new-posts": "Load new posts" + "load-new-posts": "Load new posts", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/sl/topic.json b/public/language/sl/topic.json index 2dd857661a..18861a85ce 100644 --- a/public/language/sl/topic.json +++ b/public/language/sl/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 restored this topic on %2", "user-moved-topic-from-ago": "%1 moved this topic from %2 %3", "user-moved-topic-from-on": "%1 moved this topic from %2 on %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 queued post for approval %3", "user-queued-post-on": "%1 queued post for approval on %3", "user-referenced-topic-ago": "%1 referenced this topic %3", @@ -135,6 +137,7 @@ "bookmarks": "Zaznamki", "bookmarks.has-no-bookmarks": "Zaznamovali še niste nobenih objav.", "copy-permalink": "Copy Permalink", + "go-to-original": "View Original Post", "loading-more-posts": "Nalagam več objav", "move-topic": "Premakni temo", "move-topics": "Premakni teme", @@ -219,5 +222,7 @@ "downvote-post": "Downvote post", "post-tools": "Post tools", "unread-posts-link": "Unread posts link", - "thumb-image": "Topic thumbnail image" + "thumb-image": "Topic thumbnail image", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/sl/user.json b/public/language/sl/user.json index d616ad256f..dd7f1ab7cb 100644 --- a/public/language/sl/user.json +++ b/public/language/sl/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Privzeto stanje spremljanja kategorij", "followers": "Spremljevalci", "following": "Spremljano", + "shares": "Shares", "blocks": "Blocks", "blocked-users": "Blocked users", "block-toggle": "Toggle Block", @@ -59,8 +60,10 @@ "chat-with": "Nadaljuj klepet z %1", "new-chat-with": "Prični nov klepet z %1", "flag-profile": "Označi profil z zastavico", + "profile-flagged": "Already flagged", "follow": "Spremljaj", "unfollow": "Ne spremljaj", + "cancel-follow": "Cancel follow request", "more": "Več", "profile-update-success": "Profil je bil uspešno posodobljen.", "change-picture": "Spremeni sliko", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "Uporabnik še ni glasoval proti nobeni objavi.", "has-no-controversial-posts": "This user does not have any downvoted posts yet.", "has-no-blocks": "Nimate blokiranih uporabnikov.", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "Skrit e-poštni naslov", "hidden": "skrit", "paginate-description": "Uporabi oštevilčenje strani namesto neskončnega drsenja", diff --git a/public/language/sl/world.json b/public/language/sl/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/sl/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/sq-AL/admin/manage/categories.json b/public/language/sq-AL/admin/manage/categories.json index 8a9ff471b0..a5c0253dae 100644 --- a/public/language/sq-AL/admin/manage/categories.json +++ b/public/language/sq-AL/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Privileges", "back-to-categories": "Back to categories", "name": "Category Name", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Category Description", "bg-color": "Background Colour", "text-color": "Text Colour", @@ -37,6 +39,7 @@ "disable": "Disable", "edit": "Edit", "analytics": "Analytics", + "federation": "Federation", "view-category": "View category", "set-order": "Set order", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Figure 3 – Daily topics created in this category", "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Created", "alert.create-success": "Category successfully created!", "alert.none-active": "You have no active categories.", diff --git a/public/language/sq-AL/admin/menu.json b/public/language/sq-AL/admin/menu.json index 6e30be22b3..913c74f475 100644 --- a/public/language/sq-AL/admin/menu.json +++ b/public/language/sq-AL/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Tags", "settings/notifications": "Notifications", "settings/api": "API Access", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Sounds", "settings/social": "Social", "settings/cookies": "Cookies", diff --git a/public/language/sq-AL/admin/settings/activitypub.json b/public/language/sq-AL/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/sq-AL/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/sq-AL/error.json b/public/language/sq-AL/error.json index 6bef91cd7c..ea0eedd55b 100644 --- a/public/language/sq-AL/error.json +++ b/public/language/sq-AL/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", "topic-event-unrecognized": "Ngjarja e temës '%1' nuk njihet", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Nuk mund të vendoset si kategori mëmë", "cant-set-self-as-parent": "Nuk mund të vendosësh veten si kategori mëmë", "api.master-token-no-uid": "Një token kryesor u mor pa një `_uid` përkatëse në fushën e kërkesës", @@ -247,5 +248,11 @@ "api.500": "Një gabim i papritur u ndesh gjatë përpjekjes për të kryer kërkesën tuaj.", "api.501": "Itinerari që kërkoni nuk është zbatuar ende, ju lutemi provoni sërish nesër", "api.503": "Itinerari që kërkoni nuk është aktualisht i disponueshëm për shkak të një konfigurimi të serverit", - "api.reauth-required": "The resource you are trying to access requires (re-)authentication." + "api.reauth-required": "The resource you are trying to access requires (re-)authentication.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/sq-AL/flags.json b/public/language/sq-AL/flags.json index ceb5b91d94..2f82abdb06 100644 --- a/public/language/sq-AL/flags.json +++ b/public/language/sq-AL/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Ofenduese", "modal-reason-other": "Të tjera (specifikoni më poshtë)", "modal-reason-custom": "Arsyeja e raportimit të kësaj përmbajtjeje...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Dërgo raportin", "modal-submit-success": "Përmbajtja është raportuar për moderim", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Veprime në mas", "bulk-resolve": "Zgjidhja e raportim(eve)", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 raportime u përditësuan", "flagged-timeago": "Flagged ", "auto-flagged": "[I vetë Raportuar] Mori %1 vota kundër." diff --git a/public/language/sq-AL/global.json b/public/language/sq-AL/global.json index 189da13793..60564bbd01 100644 --- a/public/language/sq-AL/global.json +++ b/public/language/sq-AL/global.json @@ -50,6 +50,7 @@ "header.navigation": "Lundrim", "header.manage": "Manage", "header.drafts": "Drafts", + "header.world": "World", "notifications.loading": "Njoftimet po ngarkohen", "chats.loading": "Po ngarkohen bisedat", "drafts.loading": "Loading Drafts", @@ -110,6 +111,7 @@ "dnd": "Mos më shqetësoni", "invisible": "E padukshme", "offline": "Jashtë linje", + "remote-user": "This user is from outside of this forum", "email": "Email", "language": "Gjuha", "guest": "I ftuar", diff --git a/public/language/sq-AL/modules.json b/public/language/sq-AL/modules.json index 48554b92cc..e715ed133c 100644 --- a/public/language/sq-AL/modules.json +++ b/public/language/sq-AL/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Discard all drafts", "composer.no-drafts": "You have no drafts", "composer.discard-draft-confirm": "Do you want to discard this draft?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "Në rregull", "bootbox.cancel": "Anullo", "bootbox.confirm": "Konfirmo", diff --git a/public/language/sq-AL/notifications.json b/public/language/sq-AL/notifications.json index 0a937ec756..43ca29844d 100644 --- a/public/language/sq-AL/notifications.json +++ b/public/language/sq-AL/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "Kur një postim i ri është në radhë", "notificationType-new-post-flag": "Kur një postim është raportuar", "notificationType-new-user-flag": "Kur një përdorues është raportuar", - "notificationType-new-reward": "When you earn a new reward" + "notificationType-new-reward": "When you earn a new reward", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/sq-AL/pages.json b/public/language/sq-AL/pages.json index ef73a1ae49..8171325b23 100644 --- a/public/language/sq-AL/pages.json +++ b/public/language/sq-AL/pages.json @@ -36,6 +36,7 @@ "chat": "Biseda me %1", "flags": "Raportime", "flag-details": "Shënoni %1 Detajet", + "world": "World", "account/edit": "Redaktimi \"%1\"", "account/edit/password": "Redaktimi i fjalëkalimit të \"%1\"", "account/edit/username": "Redaktimi i emrit të përdoruesit të \"%1\"", @@ -62,6 +63,7 @@ "account/blocks": "Përdoruesit e bllokuara për %1", "account/uploads": "Ngarkimet e %1", "account/sessions": "Seancat e hyrjes", + "account/shares": "Topics shared by %1", "confirm": "Email-i u konfirmua", "maintenance.text": "%1 is currently undergoing maintenance.
Please come back another time.", "maintenance.messageIntro": "Për më tepër, administratori ka lënë këtë mesazh:", diff --git a/public/language/sq-AL/recent.json b/public/language/sq-AL/recent.json index e830ae0de2..e5df5189df 100644 --- a/public/language/sq-AL/recent.json +++ b/public/language/sq-AL/recent.json @@ -7,5 +7,7 @@ "alltime": "I gjithë kohërave", "no-recent-topics": "Nuk ka tema të fundit.", "no-popular-topics": "Nuk ka tema të njohura.", - "load-new-posts": "Load new posts" + "load-new-posts": "Load new posts", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/sq-AL/topic.json b/public/language/sq-AL/topic.json index c0797ab5a2..d3313d7967 100644 --- a/public/language/sq-AL/topic.json +++ b/public/language/sq-AL/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 restored this topic on %2", "user-moved-topic-from-ago": "%1 moved this topic from %2 %3", "user-moved-topic-from-on": "%1 moved this topic from %2 on %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 queued post for approval %3", "user-queued-post-on": "%1 queued post for approval on %3", "user-referenced-topic-ago": "%1 referenced this topic %3", @@ -135,6 +137,7 @@ "bookmarks": "Të ruajtura", "bookmarks.has-no-bookmarks": "Nuk keni ruajtur ende asnjë postim.", "copy-permalink": "Copy Permalink", + "go-to-original": "View Original Post", "loading-more-posts": "Duke ngarkuar më shumë postime", "move-topic": "Zhvendos Temën", "move-topics": "Zhvendos Temat", @@ -219,5 +222,7 @@ "downvote-post": "Downvote post", "post-tools": "Post tools", "unread-posts-link": "Unread posts link", - "thumb-image": "Topic thumbnail image" + "thumb-image": "Topic thumbnail image", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/sq-AL/user.json b/public/language/sq-AL/user.json index 830858a23c..b9a35428fa 100644 --- a/public/language/sq-AL/user.json +++ b/public/language/sq-AL/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Gjendja e kategorisë së parazgjedhur", "followers": "Ndjekësit", "following": "Duke ndjekur", + "shares": "Shares", "blocks": "Blloqe", "blocked-users": "Blocked users", "block-toggle": "Ndrysho bllokimin", @@ -59,8 +60,10 @@ "chat-with": "Vazhdo bisedën me %1", "new-chat-with": "Fillo bisedë te re me %1", "flag-profile": "Profil i raportuar", + "profile-flagged": "Already flagged", "follow": "Ndjek", "unfollow": "Hiqe", + "cancel-follow": "Cancel follow request", "more": "Më shumë", "profile-update-success": "Profili është përditësuar me sukses!", "change-picture": "Ndrysho foton", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "Ky përdorues nuk ka votuar kundër asnjë postimi.", "has-no-controversial-posts": "Ky përdorues nuk ka ende asnjë postim me votim kundër.", "has-no-blocks": "Nuk keni përdorues të bllokuar.", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "Email i fshehur.", "hidden": "I fshehur", "paginate-description": "Kategorizoni temat tuaja në vënd që të lundroni pafund.", diff --git a/public/language/sq-AL/world.json b/public/language/sq-AL/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/sq-AL/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/sr/admin/manage/categories.json b/public/language/sr/admin/manage/categories.json index 8a9ff471b0..a5c0253dae 100644 --- a/public/language/sr/admin/manage/categories.json +++ b/public/language/sr/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Privileges", "back-to-categories": "Back to categories", "name": "Category Name", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Category Description", "bg-color": "Background Colour", "text-color": "Text Colour", @@ -37,6 +39,7 @@ "disable": "Disable", "edit": "Edit", "analytics": "Analytics", + "federation": "Federation", "view-category": "View category", "set-order": "Set order", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Figure 3 – Daily topics created in this category", "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Created", "alert.create-success": "Category successfully created!", "alert.none-active": "You have no active categories.", diff --git a/public/language/sr/admin/menu.json b/public/language/sr/admin/menu.json index e7aa210710..0f4f76a1f0 100644 --- a/public/language/sr/admin/menu.json +++ b/public/language/sr/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Tags", "settings/notifications": "Notifikacije", "settings/api": "API Access", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Sounds", "settings/social": "Social", "settings/cookies": "Cookies", diff --git a/public/language/sr/admin/settings/activitypub.json b/public/language/sr/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/sr/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/sr/error.json b/public/language/sr/error.json index cfc28eac84..a67caebc12 100644 --- a/public/language/sr/error.json +++ b/public/language/sr/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "Није вам дозвољено да мењате стање додатне компоненте онако како је дефинисано у време извршавања (config.json, променљиве окружења или аргументи терминала), уместо тога измените конфигурацију.", "theme-not-set-in-configuration": "Приликом дефинисања активних додатних компоненти у конфигурацији, промена тема захтева додавање нове теме на листу активних додатних компоненти пре ажурирања у ACP", "topic-event-unrecognized": "Догађај из теме „%1“ није препознат", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Није могуће поставити подређену категорију као надређену", "cant-set-self-as-parent": "Није могуће поставити себе као надређену категорију", "api.master-token-no-uid": "Примљен је главни токен без одговарајућег `_uid` у телу захтева", @@ -247,5 +248,11 @@ "api.500": "Дошло је до неочекиване грешке приликом покушаја сервисирања вашег захтева.", "api.501": "Рута коју покушавате да позовете још увек није примењена, покушајте поново сутра", "api.503": "Рута коју покушавате да позовете тренутно није доступна због конфигурације сервера", - "api.reauth-required": "Ресурс којем покушавате да приступите захтева (поновну) аутентификацију." + "api.reauth-required": "Ресурс којем покушавате да приступите захтева (поновну) аутентификацију.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/sr/flags.json b/public/language/sr/flags.json index 759dc847ba..451d76d15f 100644 --- a/public/language/sr/flags.json +++ b/public/language/sr/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Увредљиво", "modal-reason-other": "Остало (наведите испод)", "modal-reason-custom": "Разлог за пријаву овог садржаја...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Поднеси извештај", "modal-submit-success": "Садржај је означен заставицом за модерацију.", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Масовне радње", "bulk-resolve": "Реши заставицу/е", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "Ажурираних заставица: %1", "flagged-timeago": "Flagged ", "auto-flagged": "[Аутоматски означено заставицом] Примљено је %1 негативних гласова." diff --git a/public/language/sr/global.json b/public/language/sr/global.json index c9db43eb1d..590aefc39d 100644 --- a/public/language/sr/global.json +++ b/public/language/sr/global.json @@ -50,6 +50,7 @@ "header.navigation": "Навигација", "header.manage": "Управљај", "header.drafts": "Нацрти", + "header.world": "World", "notifications.loading": "Учитавање обавештења", "chats.loading": "Учитавање ћаскања", "drafts.loading": "Учитавање нацрта", @@ -110,6 +111,7 @@ "dnd": "Не узнемиравај", "invisible": "Невидљив", "offline": "Ван мреже", + "remote-user": "This user is from outside of this forum", "email": "Е-пошта", "language": "Језик", "guest": "Гост", diff --git a/public/language/sr/modules.json b/public/language/sr/modules.json index c2bae5b14e..f10f3e5d83 100644 --- a/public/language/sr/modules.json +++ b/public/language/sr/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Одбаци све нацрте", "composer.no-drafts": "Немате нацрте", "composer.discard-draft-confirm": "Да ли желите да одбаците овај нацрт?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "У реду", "bootbox.cancel": "Откажи", "bootbox.confirm": "Потврди", diff --git a/public/language/sr/notifications.json b/public/language/sr/notifications.json index 1972607171..88d08b3a85 100644 --- a/public/language/sr/notifications.json +++ b/public/language/sr/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "Када је нова порука на чекању", "notificationType-new-post-flag": "Када је порука означена заставицом", "notificationType-new-user-flag": "Када је корисник означен заставицом", - "notificationType-new-reward": "Када зарадите нову награду" + "notificationType-new-reward": "Када зарадите нову награду", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/sr/pages.json b/public/language/sr/pages.json index 815a7dab6a..350d56b69d 100644 --- a/public/language/sr/pages.json +++ b/public/language/sr/pages.json @@ -36,6 +36,7 @@ "chat": "Ћаскање са %1", "flags": "Заставице", "flag-details": "Означи заставицом %1 детаље", + "world": "World", "account/edit": "Уређивање \"%1\"", "account/edit/password": "Уређивање лозинке од \"%1\"", "account/edit/username": "Уређивање корисничког имена од \"%1\"", @@ -62,6 +63,7 @@ "account/blocks": "Корисници које је блокирао %1", "account/uploads": "Отпремио %1", "account/sessions": "Сесије пријављивања", + "account/shares": "Topics shared by %1", "confirm": "Е-пошта је потврђена.", "maintenance.text": "%1 је тренутно у фази одржавања.
Молимо, навратите касније.", "maintenance.messageIntro": "Додатно, администратор је оставио ову поруку:", diff --git a/public/language/sr/recent.json b/public/language/sr/recent.json index af3800ec79..e8d441d72f 100644 --- a/public/language/sr/recent.json +++ b/public/language/sr/recent.json @@ -7,5 +7,7 @@ "alltime": "Одувек", "no-recent-topics": "Нема недавних тема.", "no-popular-topics": "Нема популарних тема.", - "load-new-posts": "Учитај нове поруке" + "load-new-posts": "Учитај нове поруке", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/sr/topic.json b/public/language/sr/topic.json index b1bd741280..27775992d9 100644 --- a/public/language/sr/topic.json +++ b/public/language/sr/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 је вратио ову тему %2", "user-moved-topic-from-ago": "%1 је преместио ову тему из %2 %3", "user-moved-topic-from-on": "%1 је преместио ову тему из %2 %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 објава у реду чекања за одобрење %3", "user-queued-post-on": "%1 објава у реду чекања за одобрење %3", "user-referenced-topic-ago": "%1 се осврнуо на ову тему %3", @@ -135,6 +137,7 @@ "bookmarks": "Обележивачи", "bookmarks.has-no-bookmarks": "Нисте додали ниједну поруку у обележиваче", "copy-permalink": "Копирај трајну везу", + "go-to-original": "View Original Post", "loading-more-posts": "Учитавање још порука", "move-topic": "Премести тему", "move-topics": "Премести теме", @@ -219,5 +222,7 @@ "downvote-post": "Downvote post", "post-tools": "Post tools", "unread-posts-link": "Unread posts link", - "thumb-image": "Topic thumbnail image" + "thumb-image": "Topic thumbnail image", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/sr/user.json b/public/language/sr/user.json index 4b42c39956..83b0b20611 100644 --- a/public/language/sr/user.json +++ b/public/language/sr/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Подразумевано стање надгледања категорија", "followers": "Пратиоци", "following": "Праћења", + "shares": "Shares", "blocks": "Блокирања", "blocked-users": "Блокирани корисници", "block-toggle": "Блокирај/одблокирај", @@ -59,8 +60,10 @@ "chat-with": "Ћаскај са %1", "new-chat-with": "Започни ново ћаскање са %1", "flag-profile": "Означи профил заставицом", + "profile-flagged": "Already flagged", "follow": "Прати", "unfollow": "Не прати", + "cancel-follow": "Cancel follow request", "more": "Више", "profile-update-success": "Профил је успешно ажуриран!", "change-picture": "Промена слике", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "Овај корисник још увек није негативно гласао за неку поруку.", "has-no-controversial-posts": "Овај корисник још увек нема ниједну поруку за коју се негативно гласало.", "has-no-blocks": "Нисте блокирали ниједног корисника", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "Скривена е-пошта", "hidden": "скривена", "paginate-description": "Нумериши теме и странице уместо бесконачног скроловања", diff --git a/public/language/sr/world.json b/public/language/sr/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/sr/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/sv/admin/manage/categories.json b/public/language/sv/admin/manage/categories.json index bd13a8cfeb..f9b9b35222 100644 --- a/public/language/sv/admin/manage/categories.json +++ b/public/language/sv/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Privileges", "back-to-categories": "Back to categories", "name": "Category Name", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Category Description", "bg-color": "Background Colour", "text-color": "Text Colour", @@ -37,6 +39,7 @@ "disable": "Disable", "edit": "Edit", "analytics": "Analytics", + "federation": "Federation", "view-category": "View category", "set-order": "Set order", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Figure 3 – Daily topics created in this category", "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Created", "alert.create-success": "Category successfully created!", "alert.none-active": "You have no active categories.", diff --git a/public/language/sv/admin/menu.json b/public/language/sv/admin/menu.json index 6e30be22b3..913c74f475 100644 --- a/public/language/sv/admin/menu.json +++ b/public/language/sv/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Tags", "settings/notifications": "Notifications", "settings/api": "API Access", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Sounds", "settings/social": "Social", "settings/cookies": "Cookies", diff --git a/public/language/sv/admin/settings/activitypub.json b/public/language/sv/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/sv/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/sv/error.json b/public/language/sv/error.json index 5d713cc6c4..851a9e7ced 100644 --- a/public/language/sv/error.json +++ b/public/language/sv/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", "topic-event-unrecognized": "Topic event '%1' unrecognized", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Can't set child as parent category", "cant-set-self-as-parent": "Can't set self as parent category", "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body", @@ -247,5 +248,11 @@ "api.500": "An unexpected error was encountered while attempting to service your request.", "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow", "api.503": "The route you are trying to call is not currently available due to a server configuration", - "api.reauth-required": "The resource you are trying to access requires (re-)authentication." + "api.reauth-required": "The resource you are trying to access requires (re-)authentication.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/sv/flags.json b/public/language/sv/flags.json index edf03a3e44..ba823ae426 100644 --- a/public/language/sv/flags.json +++ b/public/language/sv/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Kränkande", "modal-reason-other": "Annat (ange nedan)", "modal-reason-custom": "Anledning för rapportering av detta innehåll...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Skicka in rapport", "modal-submit-success": "Innehållet har flaggats för moderering.", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 flags updated", "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." diff --git a/public/language/sv/global.json b/public/language/sv/global.json index 96404fb706..4ffb3b0b7a 100644 --- a/public/language/sv/global.json +++ b/public/language/sv/global.json @@ -50,6 +50,7 @@ "header.navigation": "Navigering", "header.manage": "Manage", "header.drafts": "Utkast", + "header.world": "World", "notifications.loading": "Laddar notiser", "chats.loading": "Laddar chattar", "drafts.loading": "Laddar utkast", @@ -110,6 +111,7 @@ "dnd": "Stör inte", "invisible": "Osynlig", "offline": "Offline", + "remote-user": "This user is from outside of this forum", "email": "E-post", "language": "Språk", "guest": "Anonym", diff --git a/public/language/sv/modules.json b/public/language/sv/modules.json index 50c7275435..14b07ee511 100644 --- a/public/language/sv/modules.json +++ b/public/language/sv/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Ignorera samtliga utkast", "composer.no-drafts": "Du har inga utkast", "composer.discard-draft-confirm": "Do you want to discard this draft?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "OK", "bootbox.cancel": "Avbryt", "bootbox.confirm": "Bekräfta", diff --git a/public/language/sv/notifications.json b/public/language/sv/notifications.json index 42e431a7ef..e61853dd41 100644 --- a/public/language/sv/notifications.json +++ b/public/language/sv/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "När ett nytt inlägg läggs i kön", "notificationType-new-post-flag": "När ett nytt inlägg flaggas", "notificationType-new-user-flag": "När en användare flaggas", - "notificationType-new-reward": "When you earn a new reward" + "notificationType-new-reward": "When you earn a new reward", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/sv/pages.json b/public/language/sv/pages.json index abf0f1d6fe..5184c75815 100644 --- a/public/language/sv/pages.json +++ b/public/language/sv/pages.json @@ -36,6 +36,7 @@ "chat": "Chattar med %1", "flags": "Flaggor", "flag-details": "Detaljer för flaggan %1", + "world": "World", "account/edit": "Redigerar \"%1\"", "account/edit/password": "Redigerar lösenord för \"%1\"", "account/edit/username": "Redigerar användarnamn för \"%1\"", @@ -62,6 +63,7 @@ "account/blocks": "Blockerade användare för %1", "account/uploads": "Uppladdningar av %1", "account/sessions": "Inloggningssessioner", + "account/shares": "Topics shared by %1", "confirm": "E-postadress bekräftad", "maintenance.text": "%1 is currently undergoing maintenance.
Please come back another time.", "maintenance.messageIntro": "Utöver det så lämnade administratören följande meddelande:", diff --git a/public/language/sv/recent.json b/public/language/sv/recent.json index e13316c223..3cf7b1de84 100644 --- a/public/language/sv/recent.json +++ b/public/language/sv/recent.json @@ -7,5 +7,7 @@ "alltime": "Alltid", "no-recent-topics": "Det finns inga olästa ämnen.", "no-popular-topics": "Det finns inga populära ämnen.", - "load-new-posts": "Ladda nya inlägg" + "load-new-posts": "Ladda nya inlägg", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/sv/topic.json b/public/language/sv/topic.json index 44705ef8d3..483b26e254 100644 --- a/public/language/sv/topic.json +++ b/public/language/sv/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 restored this topic on %2", "user-moved-topic-from-ago": "%1 moved this topic from %2 %3", "user-moved-topic-from-on": "%1 moved this topic from %2 on %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 queued post for approval %3", "user-queued-post-on": "%1 queued post for approval on %3", "user-referenced-topic-ago": "%1 referenced this topic %3", @@ -135,6 +137,7 @@ "bookmarks": "Bokmärken", "bookmarks.has-no-bookmarks": "Du har inte bokmärkt några inlägg ännu.", "copy-permalink": "Kopiera länk", + "go-to-original": "View Original Post", "loading-more-posts": "Laddar fler inlägg", "move-topic": "Flytta ämne", "move-topics": "Flytta ämnen", @@ -219,5 +222,7 @@ "downvote-post": "Downvote post", "post-tools": "Post tools", "unread-posts-link": "Unread posts link", - "thumb-image": "Topic thumbnail image" + "thumb-image": "Topic thumbnail image", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/sv/user.json b/public/language/sv/user.json index eeaee369f7..0ecac55964 100644 --- a/public/language/sv/user.json +++ b/public/language/sv/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Förvalt bevakningsläge för kategori", "followers": "Följare", "following": "Följer", + "shares": "Shares", "blocks": "Blockerar", "blocked-users": "Blockerade användare", "block-toggle": "Ändra blockeringsinställning", @@ -59,8 +60,10 @@ "chat-with": "Fortsätt chatt med %1", "new-chat-with": "Påbörja ny chatt med %1", "flag-profile": "Flagga profil", + "profile-flagged": "Already flagged", "follow": "Följ", "unfollow": "Sluta följ", + "cancel-follow": "Cancel follow request", "more": "Mer", "profile-update-success": "Profilen uppdaterades.", "change-picture": "Ändra bild", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "Den här användaren har inte röstat ned några inlägg än.", "has-no-controversial-posts": "This user does not have any downvoted posts yet.", "has-no-blocks": "Du har inte blockerat några användare.", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "E-post dold", "hidden": "dold", "paginate-description": "Gör så att ämnen och inlägg visas som sidor istället för oändlig skroll", diff --git a/public/language/sv/world.json b/public/language/sv/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/sv/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/th/admin/manage/categories.json b/public/language/th/admin/manage/categories.json index 6d114d5abb..abe40ef135 100644 --- a/public/language/th/admin/manage/categories.json +++ b/public/language/th/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "สิทธิ์", "back-to-categories": "กลับไปที่หมวดหมู่ทั้งหมด", "name": "ชื่อหมวดหมู่", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "คำอธิบายหมวดหมู่", "bg-color": "สีพื้น", "text-color": "สีข้อความ", @@ -37,6 +39,7 @@ "disable": "ปิดการใช้งาน", "edit": "Edit", "analytics": "Analytics", + "federation": "Federation", "view-category": "View category", "set-order": "Set order", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Figure 3 – Daily topics created in this category", "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Created", "alert.create-success": "Category successfully created!", "alert.none-active": "You have no active categories.", diff --git a/public/language/th/admin/menu.json b/public/language/th/admin/menu.json index 6e30be22b3..913c74f475 100644 --- a/public/language/th/admin/menu.json +++ b/public/language/th/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Tags", "settings/notifications": "Notifications", "settings/api": "API Access", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Sounds", "settings/social": "Social", "settings/cookies": "Cookies", diff --git a/public/language/th/admin/settings/activitypub.json b/public/language/th/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/th/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/th/error.json b/public/language/th/error.json index e8c85cd25b..6e041aff37 100644 --- a/public/language/th/error.json +++ b/public/language/th/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "คุณไม่สามารถเปลี่ยนสถานะของปลั๊กอินเนื่องจากถูกกำหนดตอนรัน (ไฟล์ config.json, ตัวแปร environmental หรือระบุตอนสั่งในบรรทัดคำสั่ง) โปรดปรับที่การตั้งค่าแทน", "theme-not-set-in-configuration": "เมื่อกำหนดปลั๊กอันที่กำลังทำงานในส่วนตั้งค่า การเปลี่ยนธีมต้องเพิ่มทีมในรายการปลั๊กอินที่กำลังใช้งานก่อนที่จะเปลี่ยนในแผงควบคุมผู้ดูแล", "topic-event-unrecognized": "ไม่รู้จักอีเวนต์กระทู้ '%1'", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "ไม่สามารถตั้งหมวดหมู่ย่อยให้เป็นหมวดหมู่หลักได้", "cant-set-self-as-parent": "ไม่สามารถตั้งหมวดนี้ให้เป็นหมวดหมู่หลักได้", "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body", @@ -247,5 +248,11 @@ "api.500": "An unexpected error was encountered while attempting to service your request.", "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow", "api.503": "The route you are trying to call is not currently available due to a server configuration", - "api.reauth-required": "The resource you are trying to access requires (re-)authentication." + "api.reauth-required": "The resource you are trying to access requires (re-)authentication.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/th/flags.json b/public/language/th/flags.json index 9813a063eb..a6caffb72c 100644 --- a/public/language/th/flags.json +++ b/public/language/th/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "น่ารังเกียจ", "modal-reason-other": "อื่น ๆ (ระบุด้านล่าง)", "modal-reason-custom": "เหตุผลที่รายงานเนื้อหานี้...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "ส่งรายงาน", "modal-submit-success": "เนื้อหาถูกรายงานตามเพื่อรอตรวจสอบแล้ว", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "จัดการทีละมากๆ", "bulk-resolve": "แก้ปัญหารายงาน", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "รายงาน %1 อันถูกอัพเดท", "flagged-timeago": "ถูกรายงาน ", "auto-flagged": "[รายงานอัตโนมัติ] ถูกโหวดลง %1 ครั้ง" diff --git a/public/language/th/global.json b/public/language/th/global.json index e594121bd5..67ce8f1ffc 100644 --- a/public/language/th/global.json +++ b/public/language/th/global.json @@ -50,6 +50,7 @@ "header.navigation": "เมนูนำทาง", "header.manage": "จัดการ", "header.drafts": "ร่างข้อความ", + "header.world": "World", "notifications.loading": "กำลังโหลดข้อแจ้งเตือน", "chats.loading": "กำลังโหลดหัวข้อสนทนา", "drafts.loading": "กำลังโหลดร่างข้อความ", @@ -110,6 +111,7 @@ "dnd": "ห้ามรบกวน", "invisible": "ไม่ปรากฏตัว", "offline": "ออฟไลน์", + "remote-user": "This user is from outside of this forum", "email": "อีเมล์", "language": "ภาษา", "guest": "แขก", diff --git a/public/language/th/modules.json b/public/language/th/modules.json index bbabe4b7c7..c8198f1d99 100644 --- a/public/language/th/modules.json +++ b/public/language/th/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "ลบข้อความร่างทั้งหมด", "composer.no-drafts": "คุณไม่มีข้อความร่าง", "composer.discard-draft-confirm": "คุณต้องการลบข้อความร่างนี้หรือไม่?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "ตกลง", "bootbox.cancel": "ยกเลิก", "bootbox.confirm": "ยืนยัน", diff --git a/public/language/th/notifications.json b/public/language/th/notifications.json index 4c0996ea8d..6596b2bf9a 100644 --- a/public/language/th/notifications.json +++ b/public/language/th/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "เมื่อมีโพสต์ใหม่อยู่ในคิว", "notificationType-new-post-flag": "เมื่อโพสต์ถูกรายงาน", "notificationType-new-user-flag": "เมื่อผู้ใช้ถูกรายงาน", - "notificationType-new-reward": "เมื่อคุณได้รับรางวัล" + "notificationType-new-reward": "เมื่อคุณได้รับรางวัล", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/th/pages.json b/public/language/th/pages.json index 37ca460035..758e42581c 100644 --- a/public/language/th/pages.json +++ b/public/language/th/pages.json @@ -36,6 +36,7 @@ "chat": "กำลังแชทกับ %1", "flags": "รายงาน", "flag-details": "รายละเอียดของรายงาน %1 ", + "world": "World", "account/edit": "กำลังแก้ไข \"%1\"", "account/edit/password": "กำลังแก้ไขรหัสผ่านของ \"%1\"", "account/edit/username": "กำลังแก้ไขชื่อผู้ใช้ \"%1\"", @@ -62,6 +63,7 @@ "account/blocks": "ผู้ใช้งานที่ถูกบล็อกของ %1", "account/uploads": "ข้อมูลที่อัพโหลดโดย %1", "account/sessions": "เซสชันการเข้าสู่ระบบ", + "account/shares": "Topics shared by %1", "confirm": "อีเมล์ได้รับการยืนยันแล้ว", "maintenance.text": "%1 ตอนนี้กำลังอยู่ระหว่างการปิดปรับปรุง
โปรดเข้ามาใหม่ภายหลัง", "maintenance.messageIntro": "ผู้ดูแลระบบได้ฝากข้อความต่อไปนี้เอาไว้", diff --git a/public/language/th/recent.json b/public/language/th/recent.json index 8cc9ae294b..6ed908f25b 100644 --- a/public/language/th/recent.json +++ b/public/language/th/recent.json @@ -7,5 +7,7 @@ "alltime": "ตลอดกาล", "no-recent-topics": "ไม่มีกระทู้ล่าสุด", "no-popular-topics": "ไม่มีกระทู้ฮิต", - "load-new-posts": "โหลดโพสต์ใหม่" + "load-new-posts": "โหลดโพสต์ใหม่", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/th/topic.json b/public/language/th/topic.json index 2664b73afe..6d4e92b082 100644 --- a/public/language/th/topic.json +++ b/public/language/th/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 กู้คืนกระทู้นี้เมื่อ %2", "user-moved-topic-from-ago": "%1 ย้ายกระทู้นี้จาก %2 เมื่อ %3", "user-moved-topic-from-on": "%1 ย้ายกระทู้นี้จาก %2 เมื่อ %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 โพสต์ อยู่ในคิว รออนุมัติเมื่อ %3", "user-queued-post-on": "%1 โพสต์ อยู่ในคิว รออนุมัติเมื่อ %3", "user-referenced-topic-ago": "%1 อ้างอิง กระทู้นี้เมื่อ %3", @@ -135,6 +137,7 @@ "bookmarks": "บุ๊กมาร์ก", "bookmarks.has-no-bookmarks": "คุณยังไม่มีบุ๊กมาร์กใดๆเลย", "copy-permalink": "คัดลอกลิงก์ถาวร", + "go-to-original": "View Original Post", "loading-more-posts": "โหลดโพสเพิ่มเติม", "move-topic": "ย้ายกระทู้", "move-topics": "ย้ายกระทู้", @@ -219,5 +222,7 @@ "downvote-post": "โหวดลงโพสต์นี้", "post-tools": "เครื่องมือโพสต์", "unread-posts-link": "ลิงก์ไปโพสต์ที่ยังไม่ได้อ่าน", - "thumb-image": "รูปย่อของกระทู้" + "thumb-image": "รูปย่อของกระทู้", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/th/user.json b/public/language/th/user.json index 8f1a4fdebf..7584d42041 100644 --- a/public/language/th/user.json +++ b/public/language/th/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "ค่าเริ่มต้นของสถานะการเฝ้าดู", "followers": "คนติดตาม", "following": "ติดตาม", + "shares": "Shares", "blocks": "บล็อก", "blocked-users": "ผู้ใช้งานที่ถูกบล็อก", "block-toggle": "สลับการบล็อก", @@ -59,8 +60,10 @@ "chat-with": "สนทนาต่อกับ %1", "new-chat-with": "เริ่มสนทนากับ %1", "flag-profile": "รายงานผู้ใช้", + "profile-flagged": "Already flagged", "follow": "ติดตาม", "unfollow": "เลิกติดตาม", + "cancel-follow": "Cancel follow request", "more": "เพิ่มเติม", "profile-update-success": "ข้อมูลประวัติส่วนตัวได้รับการแก้ไขแล้ว", "change-picture": "เปลี่ยนรูป", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "ผู้ใช้รายนี้ไม่ได้โหวตลงให้ข้อความใดๆ", "has-no-controversial-posts": "ผู้ใช้รายนี้ยังไม่มีโพสต์ที่ได้รับโหวดลงเลย", "has-no-blocks": "คุณไม่ได้บล็อกผู้ใช้งานใด", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "อีเมลถูก", "hidden": "ซ่อน", "paginate-description": "ใช้การแบ่งหน้ากระทู้และข้อความแทนการเลื่อนต่อเรื่อยๆ", diff --git a/public/language/th/world.json b/public/language/th/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/th/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/tr/admin/manage/categories.json b/public/language/tr/admin/manage/categories.json index f79f1fc55a..9aa913f0ec 100644 --- a/public/language/tr/admin/manage/categories.json +++ b/public/language/tr/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "İzinler", "back-to-categories": "Back to categories", "name": "Kategori Adı", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Kategori Açıklaması", "bg-color": "Arkaplan Rengi", "text-color": "Yazı Rengi", @@ -37,6 +39,7 @@ "disable": "Devre dışı", "edit": "Düzenle", "analytics": "Analiz", + "federation": "Federation", "view-category": "Kategori Görüntüle", "set-order": "Bir sıra ayarla", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Şekil 3 – Bu kategoride oluşturulan günlük konular", "analytics.posts-daily": "Şekil 4 – Bu kategoride oluşturulan günlük iletiler", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Yaratıldı", "alert.create-success": "Kategori başarıyla yaratıldı!", "alert.none-active": "Aktif kategoriniz mevcut değil.", diff --git a/public/language/tr/admin/menu.json b/public/language/tr/admin/menu.json index a63ce9022e..6f316016ba 100644 --- a/public/language/tr/admin/menu.json +++ b/public/language/tr/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Etiketler", "settings/notifications": "Bildirimler", "settings/api": "API Erişimi", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Sesler", "settings/social": "Sosyal", "settings/cookies": "Çerezler", diff --git a/public/language/tr/admin/settings/activitypub.json b/public/language/tr/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/tr/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/tr/error.json b/public/language/tr/error.json index 86afb1d7e8..488672fb61 100644 --- a/public/language/tr/error.json +++ b/public/language/tr/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", "topic-event-unrecognized": "Konu aktivitesi '%1' tanımlanamadı", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Alt-kategoriyi üst kategori olarak ayarlayamazsınız!", "cant-set-self-as-parent": "Kendisini üst kategori olarak ayarlayamazsınız!", "api.master-token-no-uid": "İsteğe karşılık gelen bir \"_uid\" olmadan bir ana belirteç alındı", @@ -247,5 +248,11 @@ "api.500": "İsteğinizi gerçekleştirmeye çalışırken beklenmeyen bir hata ile karşılaşıldı.", "api.501": "Aramaya çalıştığınız rota henüz uygulanmadı, lütfen yarın tekrar deneyin", "api.503": "Aramaya çalıştığınız rota sunucu yapılandırması nedeniyle şu anda kullanılamıyor", - "api.reauth-required": "The resource you are trying to access requires (re-)authentication." + "api.reauth-required": "The resource you are trying to access requires (re-)authentication.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/tr/flags.json b/public/language/tr/flags.json index b0664c3c5e..9dbc5c3535 100644 --- a/public/language/tr/flags.json +++ b/public/language/tr/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Saldırgan", "modal-reason-other": "Diğer (aşağıda belirtin)", "modal-reason-custom": "Bu içeriği rapor etme nedeni...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Raporu Gönder", "modal-submit-success": "İçerik, denetlemesi için şikayet edildi.", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Toplu Aksiyonlar", "bulk-resolve": "Şikayetleri Çözümle", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 şikayet güncellendi", "flagged-timeago": "Şikayet edildi ", "auto-flagged": "[Otomatik Şikayet] %1 tane eksi oy aldı." diff --git a/public/language/tr/global.json b/public/language/tr/global.json index deb913076b..2a26960c3d 100644 --- a/public/language/tr/global.json +++ b/public/language/tr/global.json @@ -50,6 +50,7 @@ "header.navigation": "Navigasyon", "header.manage": "Yönet", "header.drafts": "Taslaklar", + "header.world": "World", "notifications.loading": "Bildirimler Yükleniyor", "chats.loading": "Sohbetler Yükleniyor", "drafts.loading": "Taslaklar Yükleniyor", @@ -110,6 +111,7 @@ "dnd": "Rahatsız etme", "invisible": "Görünmez", "offline": "Çevrimdışı", + "remote-user": "This user is from outside of this forum", "email": "E-posta", "language": "Dil", "guest": "Ziyaretçi", diff --git a/public/language/tr/modules.json b/public/language/tr/modules.json index 53ef99d661..d85dbd2821 100644 --- a/public/language/tr/modules.json +++ b/public/language/tr/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Tüm taslakları sil", "composer.no-drafts": "Taslak yok", "composer.discard-draft-confirm": "Bu taslağı silmek istiyor musunuz?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "Kabul", "bootbox.cancel": "İptal", "bootbox.confirm": "Onayla", diff --git a/public/language/tr/notifications.json b/public/language/tr/notifications.json index 0ab796c447..b44ab2717f 100644 --- a/public/language/tr/notifications.json +++ b/public/language/tr/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "Yeni bir ileti sıraya alındığında", "notificationType-new-post-flag": "Bir ileti şikayet edildiğinde", "notificationType-new-user-flag": "Bir kullanıcı şikayet edildiğinde", - "notificationType-new-reward": "Yeni bir ödül kazanınca" + "notificationType-new-reward": "Yeni bir ödül kazanınca", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/tr/pages.json b/public/language/tr/pages.json index c5f7a2edb4..b037f76a88 100644 --- a/public/language/tr/pages.json +++ b/public/language/tr/pages.json @@ -36,6 +36,7 @@ "chat": "%1 ile sohbet", "flags": "Şikayetler", "flag-details": "%1 Nolu Şikayet Detayları", + "world": "World", "account/edit": "\"%1\" düzenleniyor", "account/edit/password": "\"%1\" parolası düzenleniyor", "account/edit/username": "\"%1\" kullanıcı adı düzenleniyor", @@ -62,6 +63,7 @@ "account/blocks": "%1 tarafından engellenen kullanıcılar", "account/uploads": "%1 kullanıcısının yüklediği dosyalar", "account/sessions": "Giriş Oturumları", + "account/shares": "Topics shared by %1", "confirm": "E-posta Onaylandı", "maintenance.text": "%1 şu an itibariyle bakımda.
Lütfen daha sonra tekrar giriş yapınız.", "maintenance.messageIntro": "Ayrıca, yönetici şu mesaji bıraktı:", diff --git a/public/language/tr/recent.json b/public/language/tr/recent.json index fa77b53b16..4da092199b 100644 --- a/public/language/tr/recent.json +++ b/public/language/tr/recent.json @@ -7,5 +7,7 @@ "alltime": "Hepsi", "no-recent-topics": "Güncel konu yok.", "no-popular-topics": "Popüler konu yok.", - "load-new-posts": "Yeni iletileri yükle" + "load-new-posts": "Yeni iletileri yükle", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/tr/topic.json b/public/language/tr/topic.json index 49db7c66cb..d423571f7e 100644 --- a/public/language/tr/topic.json +++ b/public/language/tr/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 , %2 tarihinde bu başlığı geri getirdi", "user-moved-topic-from-ago": "%1 bu başlığı %2 bölümünden %3 taşıdı", "user-moved-topic-from-on": "%1 bu başlığı %3 tarihinde %2 bölümünden taşıdı", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 iletiyi onay için %3 sıraya aldı", "user-queued-post-on": "%1 iletiyi onay için %3 tarihindesıraya aldı", "user-referenced-topic-ago": "%1 bu başlıktan %3 bahsetti", @@ -135,6 +137,7 @@ "bookmarks": "Yer imleri", "bookmarks.has-no-bookmarks": "Henüz hiçbir iletiyi yer imlerine eklemediniz!", "copy-permalink": "Bağlantıyı Kopyala", + "go-to-original": "View Original Post", "loading-more-posts": "Daha fazla ileti", "move-topic": "Başlığı Taşı", "move-topics": "Başlıkları Taşı", @@ -219,5 +222,7 @@ "downvote-post": "İletiye eksi oy ver", "post-tools": "İleti araçları", "unread-posts-link": "Okunmamış iletilerin bağlantısı", - "thumb-image": "Başlık önizleme görüntüsü" + "thumb-image": "Başlık önizleme görüntüsü", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/tr/user.json b/public/language/tr/user.json index daa6e4e7eb..a596b550be 100644 --- a/public/language/tr/user.json +++ b/public/language/tr/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Varsayılan kategori izleme durumu", "followers": "Takipçiler", "following": "Takip Edilenler", + "shares": "Shares", "blocks": "Engellenenler", "blocked-users": "Engellenen Kullanıcılar", "block-toggle": "Blok Ayarını Değiştir", @@ -59,8 +60,10 @@ "chat-with": "%1 ile sohbete devam et", "new-chat-with": "%1 ile yeni sohbete başla", "flag-profile": "Profili şikayet et", + "profile-flagged": "Already flagged", "follow": "Takip Et", "unfollow": "Takip etme", + "cancel-follow": "Cancel follow request", "more": "Daha Fazla", "profile-update-success": "Profiliniz başarıyla güncellendi!", "change-picture": "Fotoğrafı Değiştir", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "Bu kullanıcı henüz hiçbir iletiyi eksilememiş.", "has-no-controversial-posts": "Bu kullanıcının herhangi bir gönderisi eksi oy almadı.", "has-no-blocks": "Hiçbir kullanıcıyı engellemediniz.", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "E-posta gizli", "hidden": "gizli", "paginate-description": "Sonsuz yükleme yerine konu ve iletileri sayfalara böl", diff --git a/public/language/tr/world.json b/public/language/tr/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/tr/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/uk/admin/manage/categories.json b/public/language/uk/admin/manage/categories.json index ffec24d057..13b81653e5 100644 --- a/public/language/uk/admin/manage/categories.json +++ b/public/language/uk/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Права", "back-to-categories": "Back to categories", "name": "Назва категорії", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "Опис категорії", "bg-color": "Колір фону", "text-color": "Колір тексту", @@ -37,6 +39,7 @@ "disable": "Вимкнути", "edit": "Редагувати", "analytics": "Analytics", + "federation": "Federation", "view-category": "View category", "set-order": "Set order", @@ -76,6 +79,22 @@ "analytics.topics-daily": "Рисунок 3 — Щоденна кількість створених тем у категорії", "analytics.posts-daily": "Рисунок 4 — Щоденна кількість постів у категорії", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "Створена", "alert.create-success": "Категорія успішно створена!", "alert.none-active": "У вас немає активних категорій.", diff --git a/public/language/uk/admin/menu.json b/public/language/uk/admin/menu.json index 4b731cad0c..f683775e6d 100644 --- a/public/language/uk/admin/menu.json +++ b/public/language/uk/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "Теги", "settings/notifications": "Сповіщення", "settings/api": "API Access", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "Sounds", "settings/social": "Social", "settings/cookies": "Куки", diff --git a/public/language/uk/admin/settings/activitypub.json b/public/language/uk/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/uk/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/uk/error.json b/public/language/uk/error.json index eccca3e9b9..4991371123 100644 --- a/public/language/uk/error.json +++ b/public/language/uk/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", "topic-event-unrecognized": "Topic event '%1' unrecognized", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Can't set child as parent category", "cant-set-self-as-parent": "Can't set self as parent category", "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body", @@ -247,5 +248,11 @@ "api.500": "An unexpected error was encountered while attempting to service your request.", "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow", "api.503": "The route you are trying to call is not currently available due to a server configuration", - "api.reauth-required": "The resource you are trying to access requires (re-)authentication." + "api.reauth-required": "The resource you are trying to access requires (re-)authentication.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/uk/flags.json b/public/language/uk/flags.json index 38800b17e7..525c4d922f 100644 --- a/public/language/uk/flags.json +++ b/public/language/uk/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Образа", "modal-reason-other": "Інше (зазначте нижче)", "modal-reason-custom": "Причина скарги на цей вміст...", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "Надіслати скаргу", "modal-submit-success": "Скарга на цей зміст надіслана модератору.", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 flags updated", "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." diff --git a/public/language/uk/global.json b/public/language/uk/global.json index c94e0185d0..6278cce5c7 100644 --- a/public/language/uk/global.json +++ b/public/language/uk/global.json @@ -50,6 +50,7 @@ "header.navigation": "Навігація", "header.manage": "Manage", "header.drafts": "Drafts", + "header.world": "World", "notifications.loading": "Завантаження сповіщень", "chats.loading": "Завантаження чатів", "drafts.loading": "Loading Drafts", @@ -110,6 +111,7 @@ "dnd": "Не турбувати", "invisible": "Невидимий", "offline": "Не в мережі", + "remote-user": "This user is from outside of this forum", "email": "Email", "language": "Мова", "guest": "Гість", diff --git a/public/language/uk/modules.json b/public/language/uk/modules.json index 4c280a1356..476a18f3f0 100644 --- a/public/language/uk/modules.json +++ b/public/language/uk/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Discard all drafts", "composer.no-drafts": "You have no drafts", "composer.discard-draft-confirm": "Do you want to discard this draft?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "ОК", "bootbox.cancel": "Скасувати", "bootbox.confirm": "Підтвердити", diff --git a/public/language/uk/notifications.json b/public/language/uk/notifications.json index ee638917a6..6111a139e3 100644 --- a/public/language/uk/notifications.json +++ b/public/language/uk/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "Коли новий пост знаходиться в черзі", "notificationType-new-post-flag": "Коли повідомлення позначено", "notificationType-new-user-flag": "Коли користувача позначено", - "notificationType-new-reward": "When you earn a new reward" + "notificationType-new-reward": "When you earn a new reward", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/uk/pages.json b/public/language/uk/pages.json index 1fa3360ffc..81b39b4fc7 100644 --- a/public/language/uk/pages.json +++ b/public/language/uk/pages.json @@ -36,6 +36,7 @@ "chat": "Чат з %1", "flags": "Скарги", "flag-details": "Деталі по скарзі %1", + "world": "World", "account/edit": "Редагування \"%1\"", "account/edit/password": "Редагування паролю для \"%1\"", "account/edit/username": "Редагування імені для \"%1\"", @@ -62,6 +63,7 @@ "account/blocks": "Заблоковані користувачі для %1", "account/uploads": "Завантаження від %1", "account/sessions": "Логін-сесії", + "account/shares": "Topics shared by %1", "confirm": "Електронну пошту підтверджено", "maintenance.text": "%1 is currently undergoing maintenance.
Please come back another time.", "maintenance.messageIntro": "Крім того, адміністратор залишив це повідомлення:", diff --git a/public/language/uk/recent.json b/public/language/uk/recent.json index c0e7bd0ae8..c1250936be 100644 --- a/public/language/uk/recent.json +++ b/public/language/uk/recent.json @@ -7,5 +7,7 @@ "alltime": "Весь час", "no-recent-topics": "Немає свіжих тем.", "no-popular-topics": "Немає популярних тем.", - "load-new-posts": "Load new posts" + "load-new-posts": "Load new posts", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/uk/topic.json b/public/language/uk/topic.json index 085558b1de..d7648e7b15 100644 --- a/public/language/uk/topic.json +++ b/public/language/uk/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 restored this topic on %2", "user-moved-topic-from-ago": "%1 moved this topic from %2 %3", "user-moved-topic-from-on": "%1 moved this topic from %2 on %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 queued post for approval %3", "user-queued-post-on": "%1 queued post for approval on %3", "user-referenced-topic-ago": "%1 referenced this topic %3", @@ -135,6 +137,7 @@ "bookmarks": "Закладки", "bookmarks.has-no-bookmarks": "Ви ще не додали в закладки жодного поста.", "copy-permalink": "Copy Permalink", + "go-to-original": "View Original Post", "loading-more-posts": "Завантажуємо більше постів", "move-topic": "Перемістити тему", "move-topics": "Перемістити теми", @@ -219,5 +222,7 @@ "downvote-post": "Downvote post", "post-tools": "Post tools", "unread-posts-link": "Unread posts link", - "thumb-image": "Topic thumbnail image" + "thumb-image": "Topic thumbnail image", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/uk/user.json b/public/language/uk/user.json index a3f61bf82b..ad186fc8c9 100644 --- a/public/language/uk/user.json +++ b/public/language/uk/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Спостереження за категоріями за замовчанням", "followers": "Відстежувачі", "following": "Відстежувані", + "shares": "Shares", "blocks": "Блокування", "blocked-users": "Blocked users", "block-toggle": "Увімкнути Блокування", @@ -59,8 +60,10 @@ "chat-with": "Продовжити чат з %1", "new-chat-with": "Почати новий чат з %1", "flag-profile": "Поскаржитись на профіль", + "profile-flagged": "Already flagged", "follow": "Стежити", "unfollow": "Не стежити", + "cancel-follow": "Cancel follow request", "more": "Більше", "profile-update-success": "Профіль успішно оновлений!", "change-picture": "Змінити зображення", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "Цей користувач ще не голосував проти жодного поста.", "has-no-controversial-posts": "This user does not have any downvoted posts yet.", "has-no-blocks": "Ви нікого не заблокували.", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "Електронна адреса прихована", "hidden": "прихований", "paginate-description": "Розбивати список тем та постів на сторінки замість нескінченної прокрутки", diff --git a/public/language/uk/world.json b/public/language/uk/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/uk/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/language/vi/admin/manage/categories.json b/public/language/vi/admin/manage/categories.json index 5b54586bf2..d2978c92c8 100644 --- a/public/language/vi/admin/manage/categories.json +++ b/public/language/vi/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "Đặc quyền", "back-to-categories": "Quay lại danh mục", "name": "Tên Chuyên Mục", + "handle": "Xử Lý Danh Mục", + "handle.help": "Xử lý danh mục của bạn được sử dụng làm đại diện cho danh mục này trên các mạng khác, tương tự như tên đăng nhập. Thẻ điều khiển danh mục không được khớp với tên người dùng hoặc nhóm người dùng hiện có.", "description": "Mô Tả Chuyên Mục", "bg-color": "Màu Nền", "text-color": "Màu Chữ", @@ -37,6 +39,7 @@ "disable": "Tắt", "edit": "Sửa", "analytics": "Phân tích", + "federation": "Liên đoàn", "view-category": "Xem chuyên mục", "set-order": "Đặt thứ tự", @@ -76,11 +79,27 @@ "analytics.topics-daily": "Hình 3 – Chủ đề được tạo hằng ngày trong chuyên mục này", "analytics.posts-daily": "Hình 4 – Bài viết hàng ngày được thực hiện trong chuyên mục này", + "federation.title": "Cài đặt liên đoàn cho danh mục \"%1\"", + "federation.disabled": "Liên đoàn bị vô hiệu hóa trên toàn trang web, do đó, cài đặt liên đoàn danh mục hiện không khả dụng.", + "federation.disabled-cta": "Cài Đặt Liên Đoàn →", + "federation.syncing-header": "Đồng bộ hóa", + "federation.syncing-intro": "Một danh mục có thể theo sau một \"Tác nhân nhóm\" thông qua giao thức ActPub. Nếu nội dung được nhận từ một trong những tác nhân được liệt kê bên dưới, nội dung đó sẽ tự động được thêm vào danh mục này.", + "federation.syncing-caveat": "N.B. Việc thiết lập đồng bộ hóa ở đây sẽ thiết lập đồng bộ hóa một chiều. NodeBB cố gắng đăng ký/theo dõi tác nhân, nhưng không thể giả định điều ngược lại.", + "federation.syncing-none": "Danh mục này hiện không có ai theo dõi.", + "federation.syncing-add": "Đồng bộ hóa với...", + "federation.syncing-actorUri": "Tác nhân", + "federation.syncing-follow": "Theo dõi", + "federation.syncing-unfollow": "Bỏ theo dõi", + "federation.followers": "Người dùng từ xa theo dõi danh mục này", + "federation.followers-handle": "Xử lý", + "federation.followers-id": "ID", + "federation.followers-none": "Không có người theo dõi.", + "alert.created": "Đã tạo", "alert.create-success": "Đã tạo chuyên mục thành công!", "alert.none-active": "Bạn không có chuyên mục hoạt động.", "alert.create": "Tạo Chuyên Mục", - "alert.confirm-purge": "

Bạn có thực sự muốn xóa danh mục \"%1\" này không?

Cảnh báo! Tất cả chủ đề và bài đăng trong danh mục này sẽ bị xóa!

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.confirm-purge": "

Bạn có chắc muốn loại bỏ danh mục \"%1\" này không?

Cảnh báo! Tất cả chủ đề và bài đăng trong danh mục này sẽ bị xóa!

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!", "alert.set-parent-category": "Đặt Chuyên Mục Chính", diff --git a/public/language/vi/admin/manage/privileges.json b/public/language/vi/admin/manage/privileges.json index 27f999cff3..69b3e159b0 100644 --- a/public/language/vi/admin/manage/privileges.json +++ b/public/language/vi/admin/manage/privileges.json @@ -1,6 +1,6 @@ { "manage-privileges": "Quản Lý Đặc Quyền", - "discard-changes": "Loại bỏ các thay đổi", + "discard-changes": "Hủy bỏ thay đổi", "global": "Toàn bộ", "admin": "Quản Trị Viên", "group-privileges": "Đặc Quyền Nhóm", @@ -53,7 +53,7 @@ "alert.confirm-admins-mods": "Bạn có chắc muốn cấp quyền "Quản Trị Viên& Người Điều Hành" cho người dùng/nhóm này? Người dùng này có quyền thăng và hạ cấp người dùng khác ở các vị trí đặc quyền, Bao gồm quản trị viên cấp cao", "alert.confirm-save": "Vui lòng xác nhận ý định của bạn để lưu các đặc quyền này", "alert.confirm-discard": "Bạn có chắc chắn muốn hủy các thay đổi đặc quyền của mình không?", - "alert.discarded": "Đã loại bỏ các thay đổi về đặc quyền", + "alert.discarded": "Đã hủy bỏ thay đổi đặc quyền", "alert.confirm-copyToAll": "Bạn có chắc muốn áp dụng cài đặt %1 cho tất cả danh mục?", "alert.confirm-copyToAllGroup": "Are you sure you wish to apply this group's set of %1 to all categories?", "alert.confirm-copyToChildren": "Bạn có chắc chắn muốn áp dụng các cài đặt này %1 cho tất cả danh mục hậu duệ (con) ?", diff --git a/public/language/vi/admin/manage/registration.json b/public/language/vi/admin/manage/registration.json index b30cde0329..db9b56ca08 100644 --- a/public/language/vi/admin/manage/registration.json +++ b/public/language/vi/admin/manage/registration.json @@ -1,6 +1,6 @@ { "queue": "Xếp hàng", - "description": "Không có ai xếp hàng đăng ký.
Để bật tính năng này, vào Cài đặt → Người dùng → Người dùng đăng ký và đặt Kiểu Đăng Ký là \"Phê Duyệt Của Quản Trị Viên\".", + "description": "Không có ai trong hàng đợi đăng ký.
Để bật tính năng này, vào Cài đặt → Người dùng → Người dùng đăng ký và đặt Kiểu Đăng Ký là \"Phê Duyệt Của Quản Trị Viên\".", "list.name": "Tên", "list.email": "Thư điện tử", diff --git a/public/language/vi/admin/menu.json b/public/language/vi/admin/menu.json index bda3bf2abf..acf4ab3f2e 100644 --- a/public/language/vi/admin/menu.json +++ b/public/language/vi/admin/menu.json @@ -13,7 +13,7 @@ "manage/tags": "Thẻ", "manage/users": "Người dùng", "manage/admins-mods": "Quản trị viên & Người điều hành", - "manage/registration": "Xếp Hàng Đăng Ký", + "manage/registration": "Hàng đợi đăng ký", "manage/flagged-content": "Nội Dung Bị Gắn Cờ", "manage/post-queue": "Xếp Hàng Bài Đăng", "manage/groups": "Nhóm", @@ -38,6 +38,7 @@ "settings/tags": "Thẻ", "settings/notifications": "Thông báo", "settings/api": "Truy cập API", + "settings/activitypub": "Liên đoàn (ActivityPub)", "settings/sounds": "Âm thanh", "settings/social": "Xã hội", "settings/cookies": "Cookies", diff --git a/public/language/vi/admin/settings/activitypub.json b/public/language/vi/admin/settings/activitypub.json new file mode 100644 index 0000000000..a2502f039a --- /dev/null +++ b/public/language/vi/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "Liên Đoàn là gì?", + "intro-body": "NodeBB có thể giao tiếp với các phiên bản NodeBB khác hỗ trợ nó. Điều này đạt được thông qua một giao thức gọi là ActivityPub. Nếu được bật, NodeBB cũng sẽ có thể giao tiếp với các ứng dụng và trang web khác sử dụng ActPub (ví dụ: Mastodon, Peertube, v.v.)", + "general": "Chung", + "pruning": "Cắt tỉa nội dung", + "content-pruning": "Số ngày giữ nội dung từ xa", + "content-pruning-help": "Lưu ý rằng nội dung từ xa đã nhận được sự tương tác (trả lời hoặc ủng hộ/phản đối) sẽ được giữ nguyên. (0 là tắt)", + "user-pruning": "Số ngày nhớ tạm tài khoản người dùng từ xa", + "user-pruning-help": "Tài khoản người dùng từ xa sẽ chỉ bị cắt bớt nếu họ không có bài viết. Nếu không chúng sẽ được lấy lại. (0 là tắt)", + "enabled": "Bật Liên Đoàn", + "enabled-help": "Nếu được bật, sẽ cho phép NodeBB này có thể giao tiếp với tất cả các máy khách đã bật Activitypub trên toàn bộ liên đoàn rộng hơn.", + "allowLoopback": "Cho phép xử lý vòng lặp", + "allowLoopback-help": "Chỉ hữu ích cho mục đích gỡ lỗi. Có lẽ bạn nên tắt tính năng này.", + + "probe": "Mở trong Ứng Dụng", + "probe-enabled": "Thử mở tài nguyên Kích Hoạt ActivityPub trong NodeBB", + "probe-enabled-help": "Nếu được bật, NodeBB sẽ kiểm tra mọi liên kết bên ngoài để tìm tương đương với ActPub và thay vào đó tải nó vào NodeBB.", + "probe-timeout": "Hết Thời Gian Tra Cứu (mili giây)", + "probe-timeout-help": "(Mặc định: 2000) Nếu truy vấn tra cứu không nhận được phản hồi trong khung thời gian đã đặt, thay vào đó sẽ đưa người dùng đến liên kết trực tiếp. Điều chỉnh con số này cao hơn nếu các trang web phản hồi chậm và bạn muốn dành thêm thời gian.", + + "server-filtering": "Lọc", + "count": "NodeBB này hiện đã biết về %1 máy chủ", + "server.filter-help": "Chỉ định các máy chủ mà bạn muốn cấm liên kết với NodeBB của mình. Ngoài ra, bạn có thể chọn tham gia có chọn lọc cho phép liên kết có chọn lọc với các máy chủ cụ thể. Cả hai tùy chọn đều được hỗ trợ, mặc dù chúng loại trừ lẫn nhau.", + "server.filter-help-hostname": "Chỉ nhập tên máy chủ bên dưới (vd: example.org), tách nhau bằng ngắt dòng.", + "server.filter-allow-list": "Dùng nó làm Danh Sách Cho Phép Thay Thế" +} \ No newline at end of file diff --git a/public/language/vi/email.json b/public/language/vi/email.json index eb64d9ecf0..552e3827ae 100644 --- a/public/language/vi/email.json +++ b/public/language/vi/email.json @@ -26,7 +26,7 @@ "digest.room-name-unreadcount": "%1 (%2 chưa đọc)", "digest.latest-topics": "Chủ đề mới nhất từ %1", "digest.top-topics": "Chủ đề hàng đầu từ %1", - "digest.popular-topics": "Các chủ đề phổ biến từ %1", + "digest.popular-topics": "Chủ đề phổ biến từ %1", "digest.cta": "Bấm vào đây để truy cập %1", "digest.unsub.info": "Thông báo này đã được gửi cho bạn theo cài đặt đăng ký của bạn.", "digest.day": "ngày", diff --git a/public/language/vi/error.json b/public/language/vi/error.json index 727b970d54..d46e7cb30b 100644 --- a/public/language/vi/error.json +++ b/public/language/vi/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "Bạn không được phép thay đổi trạng thái plugin vì chúng được xác định trong thời gian chạy (config.json, biến môi trường hoặc đối số đầu cuối), thay vào đó hãy sửa đổi cấu hình.", "theme-not-set-in-configuration": "Khi xác định các plugin hoạt động trong cấu hình, thay đổi giao diện buộc phải thêm giao diện mới vào danh sách các plugin hoạt động trước khi cập nhật nó trong ACP", "topic-event-unrecognized": "Sự kiện chủ đề '%1' không được công nhận", + "category.handle-taken": "Xử lý danh mục đã được thực hiện, vui lòng chọn danh mục khác.", "cant-set-child-as-parent": "Không thể đặt con làm chuyên mục chính", "cant-set-self-as-parent": "Không thể tự đặt mình là chuyên mục chính", "api.master-token-no-uid": "Mã thông báo chính đã được nhận mà không có `_uid` tương ứng trong nội dung yêu cầu", @@ -247,5 +248,11 @@ "api.500": "Đã xảy ra lỗi không mong muốn khi cố gắng thực hiện yêu cầu của bạn.", "api.501": "Định tuyến bạn đang cố gắng gọi chưa được triển khai, vui lòng thử lại vào ngày mai", "api.503": "Định tuyến bạn đang cố gọi hiện không khả dụng do cấu hình máy chủ", - "api.reauth-required": "Tài nguyên bạn đang cố truy cập yêu cầu xác thực (lại)." + "api.reauth-required": "Tài nguyên bạn đang cố truy cập yêu cầu xác thực (lại).", + "activitypub.invalid-id": "Không thể giải quyết id đầu vào, có thể vì nó không đúng định dạng.", + "activitypub.get-failed": "Không thể truy xuất tài nguyên được chỉ định.", + "activitypub.pubKey-not-found": "Không thể giải quyết khóa công khai, do đó việc xác minh payload không thể diễn ra.", + "activitypub.origin-mismatch": "Nguồn gốc của đối tượng nhận được không khớp với nguồn gốc của người gửi", + "activitypub.actor-mismatch": "Hoạt động nhận được đang được thực hiện bởi một tác nhân khác với dự kiến.", + "activitypub.not-implemented": "Yêu cầu bị từ chối vì nó hoặc một khía cạnh của nó không được máy chủ người nhận triển khai" } \ No newline at end of file diff --git a/public/language/vi/flags.json b/public/language/vi/flags.json index 11eae98340..bc746b52f7 100644 --- a/public/language/vi/flags.json +++ b/public/language/vi/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "Phản Cảm", "modal-reason-other": "Khác (Ghi Rõ Bên Dưới)", "modal-reason-custom": "Lý do báo cáo nội dung này...", + "modal-notify-remote": "Chuyển tiếp báo cáo này tới %1", "modal-submit": "Gửi Báo Cáo", "modal-submit-success": "Nội dung đã được gắn cờ để kiểm duyệt.", + "modal-confirm-rescind": "Hủy Bỏ Báo Cáo?", + "bulk-actions": "‎Hành động hàng loạt‎", "bulk-resolve": "Xử Lý Cờ", + "confirm-purge": "Bạn có chắc chắn muốn xóa vĩnh viễn những cờ này không?", + "purge-cancelled": "Đã Hủy Loại Bỏ Cờ", + "bulk-purge": "Loại Bỏ Cờ", "bulk-success": "%1 cờ đã cập nhật", "flagged-timeago": "Đã gắn cờ ", "auto-flagged": "[Cờ Tự Động] Nhận được %1 phản đối." diff --git a/public/language/vi/global.json b/public/language/vi/global.json index 66f32d7a20..c54ff71d72 100644 --- a/public/language/vi/global.json +++ b/public/language/vi/global.json @@ -50,6 +50,7 @@ "header.navigation": "Điều hướng", "header.manage": "Quản lý", "header.drafts": "Bản thảo", + "header.world": "Thế giới", "notifications.loading": "Đang Tải Thông Báo", "chats.loading": "Đang Tải Trò Chuyện", "drafts.loading": "Đang Tải Bản Nháp", @@ -110,6 +111,7 @@ "dnd": "Đừng làm phiền", "invisible": "Không hiển thị", "offline": "Ngoại tuyến", + "remote-user": "Người dùng này đến từ bên ngoài diễn đàn này", "email": "Thư điện tử", "language": "Ngôn ngữ", "guest": "Khách", diff --git a/public/language/vi/modules.json b/public/language/vi/modules.json index 33a417e509..e392bc9c7b 100644 --- a/public/language/vi/modules.json +++ b/public/language/vi/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Hủy tất cả bản nháp", "composer.no-drafts": "Bạn không có bản nháp nào", "composer.discard-draft-confirm": "Bạn có muốn hủy bản nháp này không?", + "composer.remote-pid-editing": "Sửa bài đăng từ xa", + "composer.remote-pid-content-immutable": "Nội dung của bài viết từ xa không thể được chỉnh sửa. Tuy nhiên, bạn có thể thay đổi tiêu đề và gắn thẻ chủ đề.", "bootbox.ok": "Đồng ý", "bootbox.cancel": "Huỷ", "bootbox.confirm": "Xác nhận", diff --git a/public/language/vi/notifications.json b/public/language/vi/notifications.json index 8a97743374..c659871195 100644 --- a/public/language/vi/notifications.json +++ b/public/language/vi/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "Khi một bài đăng mới xếp hàng đợi", "notificationType-new-post-flag": "Khi bài đăng bị gắn cờ cảnh báo", "notificationType-new-user-flag": "Khi người dùng bị gắn cờ cảnh báo", - "notificationType-new-reward": "Khi bạn kiếm được phần thưởng mới" + "notificationType-new-reward": "Khi bạn kiếm được phần thưởng mới", + "activitypub.announce": "%1 đã chia sẻ bài đăng của bạn trong %2 đến người theo dõi của họ.", + "activitypub.announce-dual": "%1%2 đã chia sẻ bài đăng của bạn trong %3 đến người theo dõi họ.", + "activitypub.announce-triple": "%1, %2%3 chia sẻ bài đăng của bạn trong %4 đến người theo dõi họ.", + "activitypub.announce-multiple": "%1, %2 và %3 người khác chia sẻ bài đăng của bạn trong %4 đến người theo dõi họ." } \ No newline at end of file diff --git a/public/language/vi/pages.json b/public/language/vi/pages.json index 0e2b7ba6d2..bbe1d38680 100644 --- a/public/language/vi/pages.json +++ b/public/language/vi/pages.json @@ -14,7 +14,7 @@ "flagged-content": "Nội Dung Bị Gắn Cờ", "ip-blacklist": "Danh sách đen IP", "post-queue": "Xếp Hàng Bài Viết", - "registration-queue": "Xếp Hàng Đăng Ký", + "registration-queue": "Hàng đợi đăng ký", "users/online": "Thành viên trực tuyến", "users/latest": "Người Dùng Mới Nhất", "users/sort-posts": "Người dùng nhiều bài đăng nhất", @@ -36,6 +36,7 @@ "chat": "Đang trò chuyện với %1", "flags": "Gắn Cờ", "flag-details": "Gắn Cờ %1 Chi Tiết", + "world": "Thế giới", "account/edit": "Chỉnh sửa \"%1\"", "account/edit/password": "Chỉnh sửa mật khẩu của \"%1\"", "account/edit/username": "Chỉnh sửa tên đăng nhập của \"%1\"", @@ -62,6 +63,7 @@ "account/blocks": "Người dùng bị chặn vì %1", "account/uploads": "Tải lên bởi %1", "account/sessions": "Phiên Đăng Nhập", + "account/shares": "Chủ đề được chia sẻ bởi %1", "confirm": "Đã xác nhận email", "maintenance.text": "%1 hiện đang bảo trì.
Vui lòng quay lại vào lúc khác.", "maintenance.messageIntro": "Ngoài ra, quản trị viên đã để lại thông báo này:", diff --git a/public/language/vi/recent.json b/public/language/vi/recent.json index 4b60e8602d..91832e9a5a 100644 --- a/public/language/vi/recent.json +++ b/public/language/vi/recent.json @@ -7,5 +7,7 @@ "alltime": "Mọi Lúc", "no-recent-topics": "Không có chủ đề gần đây.", "no-popular-topics": "Không có chủ đề phổ biến.", - "load-new-posts": "Tải bài đăng mới" + "load-new-posts": "Tải bài đăng mới", + "uncategorized.title": "Tất cả các chủ đề đã biết", + "uncategorized.intro": "Trang này hiển thị danh sách theo thứ tự thời gian của mọi chủ đề mà diễn đàn này đã nhận được.
Các quan điểm và ý kiến ​​thể hiện trong các chủ đề dưới đây không được kiểm duyệt và có thể không thể hiện quan điểm và ý kiến ​​của trang web này." } \ No newline at end of file diff --git a/public/language/vi/register.json b/public/language/vi/register.json index 41f39cb135..8585b68ffc 100644 --- a/public/language/vi/register.json +++ b/public/language/vi/register.json @@ -18,7 +18,7 @@ "terms-of-use": "Điều Khoản Sử Dụng", "agree-to-terms-of-use": "Tôi đồng ý với Điều Khoản Sử Dụng", "terms-of-use-error": "Bạn phải đồng ý Điều Khoản Sử Dụng", - "registration-added-to-queue": "Đăng ký của bạn đã được xếp hàng đợi phê duyệt. Bạn sẽ nhận được email khi quản trị viên chấp nhận yêu cầu.", + "registration-added-to-queue": "Yêu cầu đăng ký của bạn đã được xếp hàng đợi phê duyệt. Bạn sẽ nhận được email khi quản trị viên chấp nhận yêu cầu.", "registration-queue-average-time": "Thời gian chúng tôi phê duyệt tư cách thành viên là %1 giờ %2 phút.", "registration-queue-auto-approve-time": "Tư cách thành viên của bạn sẽ được kích hoạt đầy đủ trong tối đa %1 giờ.", "interstitial.intro": "Chúng tôi muốn một số thông tin bổ sung để cập nhật tài khoản của bạn…", diff --git a/public/language/vi/topic.json b/public/language/vi/topic.json index b2419eea64..c501addfc7 100644 --- a/public/language/vi/topic.json +++ b/public/language/vi/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 đã khôi phục chủ đề này trên %2", "user-moved-topic-from-ago": "%1 đã chuyển chủ đề này từ %2 %3", "user-moved-topic-from-on": "%1 đã chuyển chủ đề này từ %2 trên %3", + "user-shared-topic-ago": "%1 đã chia sẻ chủ đề này %2", + "user-shared-topic-on": "%1 đã chia sẻ chủ đề này trên %2", "user-queued-post-ago": "%1 đã xếp hàng bài đăng để phê duyệt %3", "user-queued-post-on": "%1 đã xếp hàng đăng bài để được phê duyệt trên %3", "user-referenced-topic-ago": "%1 đã tham khảo chủ đề này %3", @@ -98,7 +100,7 @@ "thread-tools.markAsUnreadForAll": "Đánh Dấu Chưa Đọc Tất Cả", "thread-tools.pin": "Ghim chủ đề", "thread-tools.unpin": "Bỏ ghim chủ đề", - "thread-tools.lock": "Khóa chủ đề", + "thread-tools.lock": "Khóa Chủ Đề", "thread-tools.unlock": "Mở Khóa Chủ Đề", "thread-tools.move": "Di Chuyển Chủ Đề", "thread-tools.move-posts": "Di Chuyển Bài Viết", @@ -107,7 +109,7 @@ "thread-tools.manage-editors": "Quản Lý Biên Tập Viên", "thread-tools.select-category": "Chọn chuyện mục", "thread-tools.fork": "Tạo bản sao chủ đề", - "thread-tools.tag": "Tag Topic", + "thread-tools.tag": "Gắn Thẻ Chủ Đề", "thread-tools.delete": "Xóa chủ đề", "thread-tools.delete-posts": "Xoá bài viết", "thread-tools.delete-confirm": "Bạn có muốn xóa chủ đề này?", @@ -135,6 +137,7 @@ "bookmarks": "Đánh dấu trang", "bookmarks.has-no-bookmarks": "Bạn chưa đánh dấu trang bài viết nào cả.", "copy-permalink": "Sao Chép Liên Kết Tĩnh", + "go-to-original": "Xem Bài Đăng Gốc", "loading-more-posts": "Tải thêm các bài gửi khác", "move-topic": "Di Chuyển Chủ Đề", "move-topics": "Di Chuyển Chủ Đề", @@ -219,5 +222,7 @@ "downvote-post": "Phản đối bài đăng", "post-tools": "Công cụ đăng bài", "unread-posts-link": "Liên kết bài đăng chưa đọc", - "thumb-image": "Ảnh thumbnail chủ đề" + "thumb-image": "Ảnh thumbnail chủ đề", + "announcers": "Chia sẻ", + "announcers-x": "Chia sẻ (%1)" } \ No newline at end of file diff --git a/public/language/vi/user.json b/public/language/vi/user.json index 9c0140104b..3e6404fa66 100644 --- a/public/language/vi/user.json +++ b/public/language/vi/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "Trạng thái xem chuyên mục mặc định", "followers": "Người theo dõi", "following": "Đang theo dõi", + "shares": "Chia sẻ", "blocks": "Khóa", "blocked-users": "Người dùng bị chặn", "block-toggle": "Chuyển Đổi Khóa", @@ -59,8 +60,10 @@ "chat-with": "Tiếp tục trò chuyện với %1", "new-chat-with": "Mở trò chuyện mới với %1", "flag-profile": "Gắn Cờ Hồ Sơ", + "profile-flagged": "Đã Được Gắn Cờ", "follow": "Theo dõi", "unfollow": "Bỏ theo dõi", + "cancel-follow": "Hủy yêu cầu theo dõi", "more": "Thêm", "profile-update-success": "Đã cập nhật hồ sơ thành công!", "change-picture": "Đổi Hình Ảnh", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "Thành viên này chưa phản đối bài viết nào cả.", "has-no-controversial-posts": "Người dùng này chưa có bài viết nào bị phản đối.", "has-no-blocks": "Bạn không khóa người dùng nào.", + "has-no-shares": "Người dùng này chưa chia sẻ bất kỳ chủ đề nào.", "email-hidden": "Ẩn Email", "hidden": "đã ẩn", "paginate-description": "Phân trang chủ đề và bài đăng thay vì sử dụng cuộn vô hạn", diff --git a/public/language/vi/world.json b/public/language/vi/world.json new file mode 100644 index 0000000000..77804e07aa --- /dev/null +++ b/public/language/vi/world.json @@ -0,0 +1,18 @@ +{ + "name": "Thế giới", + "popular": "Chủ đề phổ biến", + "recent": "Tất cả chủ đề", + "help": "Trợ giúp", + + "help.title": "Trang này là gì?", + "help.intro": "Chào mừng đến với góc của bạn trên fediverse.", + "help.fediverse": "\"Fediverse\" là một mạng lưới các ứng dụng và trang web được kết nối với nhau, tất cả đều giao tiếp với nhau và người dùng có thể nhìn thấy nhau. Diễn đàn này được liên kết và có thể tương tác với trang web xã hội đó (hoặc \"fediverse\"). Trang này là góc của bạn trên fediverse. Nó chỉ bao gồm các chủ đề được tạo bởi — và được chia sẻ từ — người dùng bạn theo dõi.", + "help.build": "Có thể không có nhiều chủ đề ở đây để bắt đầu; điều đó là bình thường. Bạn sẽ bắt đầu thấy nhiều nội dung hơn ở đây theo thời gian khi bạn bắt đầu theo dõi những người dùng khác.", + "help.federating": "Tương tự như vậy, nếu người dùng bên ngoài diễn đàn này bắt đầu theo dõi bạn, thì bài đăng của bạn cũng sẽ bắt đầu xuất hiện trên các ứng dụng và trang web đó.", + "help.next-generation": "Đây là thế hệ mạng xã hội kế tiếp, hãy bắt đầu đóng góp ngay hôm nay!", + + "onboard.title": "Cửa sổ của bạn đến với liên đoàn...", + "onboard.what": "Đây là danh mục được cá nhân hóa của bạn chỉ bao gồm nội dung được tìm thấy bên ngoài diễn đàn này. Việc nội dung nào đó có hiển thị trên trang này hay không tùy thuộc vào việc bạn có theo dõi họ hay không hoặc liệu bài đăng đó có được chia sẻ bởi người mà bạn theo dõi hay không.", + "onboard.why": "Có rất nhiều điều diễn ra bên ngoài diễn đàn này và không phải tất cả đều phù hợp với sở thích của bạn. Đó là lý do tại sao theo dõi mọi người là cách tốt nhất để báo hiệu rằng bạn muốn biết thêm thông tin từ ai đó.", + "onboard.how": "Trong thời gian chờ đợi, bạn có thể nhấp vào các nút tắt ở trên cùng để xem diễn đàn này biết thêm những gì và bắt đầu khám phá một số nội dung mới!" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/manage/categories.json b/public/language/zh-CN/admin/manage/categories.json index 301bc332ca..88574ea4ae 100644 --- a/public/language/zh-CN/admin/manage/categories.json +++ b/public/language/zh-CN/admin/manage/categories.json @@ -1,12 +1,14 @@ { - "manage-categories": "管理分类", - "add-category": "添加分类", + "manage-categories": "管理版块", + "add-category": "添加版块", "jump-to": "跳转…", "settings": "版块设置", - "edit-category": "编辑分类", + "edit-category": "编辑版块", "privileges": "权限", - "back-to-categories": "回到分类", + "back-to-categories": "回到版块", "name": "版块名", + "handle": "版块句柄", + "handle.help": "您的版块句柄在其他网络中用作该版块的代表,类似于用户名。版块句柄不得与现有的用户名或用户组相匹配。", "description": "版块描述", "bg-color": "背景颜色", "text-color": "图标颜色", @@ -37,6 +39,7 @@ "disable": "禁用", "edit": "编辑", "analytics": "分析", + "federation": "“联邦”", "view-category": "查看版块", "set-order": "设置顺序", @@ -76,6 +79,22 @@ "analytics.topics-daily": "图3 – 每日在此版块中创建的主题", "analytics.posts-daily": "图4 – 每日在此版块中每日发布的帖子", + "federation.title": "“ %1 ”版块的“联邦”设置", + "federation.disabled": "全站已禁用“联邦”,因此目前无法使用版块“联邦”设置。", + "federation.disabled-cta": "“联邦”设置 →", + "federation.syncing-header": "同步", + "federation.syncing-intro": "一个版块可以通过 ActivityPub 协议关注一个 “群组行为者”。如果从下列行为者之一收到内容,则会自动添加到该版块中。", + "federation.syncing-caveat": "注意:在此设置同步将建立单向同步。NodeBB 会尝试订阅/关注“行为者”,但不能反过来。", + "federation.syncing-none": "本版块目前没有关注任何人。", + "federation.syncing-add": "与...同步", + "federation.syncing-actorUri": "行为者", + "federation.syncing-follow": "关注", + "federation.syncing-unfollow": "取消关注", + "federation.followers": "关注此版块的远程用户", + "federation.followers-handle": "句柄", + "federation.followers-id": "ID", + "federation.followers-none": "无关注者", + "alert.created": "创建", "alert.create-success": "版块创建成功!", "alert.none-active": "您没有有效的版块。", diff --git a/public/language/zh-CN/admin/manage/user-custom-fields.json b/public/language/zh-CN/admin/manage/user-custom-fields.json index 29a34f43b5..3ef0e5eacd 100644 --- a/public/language/zh-CN/admin/manage/user-custom-fields.json +++ b/public/language/zh-CN/admin/manage/user-custom-fields.json @@ -1,28 +1,28 @@ { - "title": "Manage Custom User Fields", - "create-field": "Create Field", - "edit-field": "Edit Field", - "manage-custom-fields": "Manage Custom Fields", - "type-of-input": "Type of input", - "key": "Key", + "title": "管理自定义用户属性", + "create-field": "创建属性", + "edit-field": "编辑属性", + "manage-custom-fields": "自定义用户属性", + "type-of-input": "输入类型", + "key": "键", "name": "名称", - "icon": "Icon", - "type": "Type", - "min-rep": "Minimum Reputation", - "input-type-text": "Input (Text)", - "input-type-link": "Input (Link)", - "input-type-number": "Input (Number)", - "input-type-date": "Input (Date)", - "input-type-select": "选择", - "input-type-select-multi": "Select Multiple", + "icon": "图标", + "type": "类型", + "min-rep": "最低声望", + "input-type-text": "输入框(文本)", + "input-type-link": "输入框(链接)", + "input-type-number": "输入框(数字)", + "input-type-date": "输入框(日期)", + "input-type-select": "单选", + "input-type-select-multi": "多选", "select-options": "选项", - "select-options-help": "Add one option per line for the select element", - "minimum-reputation": "Minimum reputation", - "minimum-reputation-help": "If a user has less than this value they won't be able to use this field", - "delete-field-confirm-x": "Do you really want to delete custom field \"%1\"?", - "custom-fields-saved": "Custom fields saved", - "visibility": "Visibility", - "visibility-all": "Everyone can see the field", - "visibility-loggedin": "Only logged in users can see the field", - "visibility-privileged": "Only privileged users like admins & moderators can see the field" + "select-options-help": "为选择元素每行添加一个选项", + "minimum-reputation": "最低声望", + "minimum-reputation-help": "如果用户的声望值小于此值,则无法使用此字段", + "delete-field-confirm-x": "您真的要删除自定义字段“ %1 ”吗?", + "custom-fields-saved": "已保存自定义字段", + "visibility": "可见性", + "visibility-all": "所有人可见", + "visibility-loggedin": "仅登录用户可见", + "visibility-privileged": "仅管理员和版主等特权用户可见" } \ No newline at end of file diff --git a/public/language/zh-CN/admin/menu.json b/public/language/zh-CN/admin/menu.json index 9afd1ea191..7bb0105577 100644 --- a/public/language/zh-CN/admin/menu.json +++ b/public/language/zh-CN/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "标签", "settings/notifications": "通知", "settings/api": "API 访问", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "铃声", "settings/social": "社交", "settings/cookies": "Cookies", diff --git a/public/language/zh-CN/admin/settings/activitypub.json b/public/language/zh-CN/admin/settings/activitypub.json new file mode 100644 index 0000000000..902c824d03 --- /dev/null +++ b/public/language/zh-CN/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "什么是 “联邦”?", + "intro-body": "NodeBB 能够与支持它的其他 NodeBB 实例通信。这是通过名为 ActivityPub 的协议实现的。如果启用,NodeBB 还能与使用 ActivityPub 的其他应用程序和网站(如 Mastodon、Peertube 等)进行通信。", + "general": "通用", + "pruning": "内容修剪", + "content-pruning": "保存远程内容的天数", + "content-pruning-help": "请注意,已收到参与(回复或顶/踩)的远程内容将被保留。(0 表示禁用)", + "user-pruning": "缓存远程用户账户的天数", + "user-pruning-help": "远程用户账户只有在没有帖子的情况下才会被删除。否则将重新检索。(0 表示禁用)", + "enabled": "启用“联邦”", + "enabled-help": "如果启用,将允许 NodeBB 与更广泛的联邦宇宙中所有启用 Activitypub 的客户端进行通信。", + "allowLoopback": "允许环回处理", + "allowLoopback-help": "仅用于调试目的,您最好将其禁用。", + + "probe": "在应用程序中打开", + "probe-enabled": "尝试在 NodeBB 中打开启用了 ActivityPub 的资源", + "probe-enabled-help": "如果启用,NodeBB 将检查每个外部链接是否与 ActivityPub 对应,并将其加载到 NodeBB 中。", + "probe-timeout": "查询超时(毫秒)", + "probe-timeout-help": "(默认值:2000)如果查询在设定的时间内没有收到回复,将直接把用户发送到链接。如果网站响应速度较慢,您希望给予更多时间,则可将此数字调高。", + + "server-filtering": "过滤", + "count": "该 NodeBB 目前可检测到 %1 台服务器", + "server.filter-help": "指定您希望禁止与 NodeBB 联合的服务器。或者,您也可以选择性地 允许 与特定服务器联邦。两者只能选其一。", + "server.filter-help-hostname": "请在下面输入实例主机名(如 example.org ),中间用换行符隔开。", + "server.filter-allow-list": "将其用作允许列表" +} \ No newline at end of file diff --git a/public/language/zh-CN/error.json b/public/language/zh-CN/error.json index f859f3750a..45aeb91029 100644 --- a/public/language/zh-CN/error.json +++ b/public/language/zh-CN/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "您不能修改插件状态因为它们在运行时中被定义(config.json,环境变量或终端选项),请转而修改配置。", "theme-not-set-in-configuration": "在配置中定义活跃的插件时,需要先将新主题加入活跃插件的列表,才能在管理员控制面板中修改主题", "topic-event-unrecognized": "无法识别主题事件'%1'", + "category.handle-taken": "版块句柄已被占用,请另选一个。", "cant-set-child-as-parent": "无法将子版块设置为父版块", "cant-set-self-as-parent": "无法将自身设置为父版块", "api.master-token-no-uid": "收到一个在请求体中没有对应 `_uid` 的主令牌", @@ -247,5 +248,11 @@ "api.500": "在试图为您的请求提供服务时出现了一个意外的错误。", "api.501": "您试图调用的路由还没被实现,请明天重试", "api.503": "您试图调用的路由因为服务器配置而目前不可用", - "api.reauth-required": "您试图访问的资源需要(重新)进行身份验证。" + "api.reauth-required": "您试图访问的资源需要(重新)进行身份验证。", + "activitypub.invalid-id": "无法解析输入 id,可能是畸形输入。", + "activitypub.get-failed": "无法检索指定资源。", + "activitypub.pubKey-not-found": "无法解析公钥,因此无法进行有效载荷验证。", + "activitypub.origin-mismatch": "接收对象的原点与发送者的原点不一致", + "activitypub.actor-mismatch": "接收活动的行为者与预期的不同。", + "activitypub.not-implemented": "请求被拒绝的原因是接收方服务器没有执行该请求或其中的某个方面" } \ No newline at end of file diff --git a/public/language/zh-CN/flags.json b/public/language/zh-CN/flags.json index f262d3fa85..55f18b131f 100644 --- a/public/language/zh-CN/flags.json +++ b/public/language/zh-CN/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "人身攻击", "modal-reason-other": "其他(请在下方指定)", "modal-reason-custom": "举报此内容的理由……", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "提交举报", "modal-submit-success": "已举报此内容。", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "批量操作", "bulk-resolve": "处理举报", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "已更新%1个举报", "flagged-timeago": "标记", "auto-flagged": "【自动举报】收到 %1 个踩" diff --git a/public/language/zh-CN/global.json b/public/language/zh-CN/global.json index 6055623934..bafc874b49 100644 --- a/public/language/zh-CN/global.json +++ b/public/language/zh-CN/global.json @@ -50,6 +50,7 @@ "header.navigation": "导航", "header.manage": "管理", "header.drafts": "草稿", + "header.world": "World", "notifications.loading": "正在加载通知", "chats.loading": "正在加载聊天", "drafts.loading": "正在加载草稿", @@ -110,6 +111,7 @@ "dnd": "请勿打扰", "invisible": "隐身", "offline": "离线", + "remote-user": "This user is from outside of this forum", "email": "电子邮箱", "language": "语言", "guest": "游客", diff --git a/public/language/zh-CN/modules.json b/public/language/zh-CN/modules.json index f7e63925ff..15e2026baf 100644 --- a/public/language/zh-CN/modules.json +++ b/public/language/zh-CN/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "丢弃所有的草稿", "composer.no-drafts": "你没有草稿", "composer.discard-draft-confirm": "你想丢弃这个草案吗?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "确认", "bootbox.cancel": "取消", "bootbox.confirm": "确认", diff --git a/public/language/zh-CN/notifications.json b/public/language/zh-CN/notifications.json index b8e3676b58..e677fa3b74 100644 --- a/public/language/zh-CN/notifications.json +++ b/public/language/zh-CN/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "当有新帖子等待审核时", "notificationType-new-post-flag": "当有新的帖子举报时", "notificationType-new-user-flag": "当有新的用户信息举报时", - "notificationType-new-reward": "当您获得新奖励时" + "notificationType-new-reward": "当您获得新奖励时", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/zh-CN/pages.json b/public/language/zh-CN/pages.json index 46a380184b..11795afae2 100644 --- a/public/language/zh-CN/pages.json +++ b/public/language/zh-CN/pages.json @@ -36,6 +36,7 @@ "chat": "与 %1 聊天", "flags": "举报", "flag-details": "举报 %1 详情", + "world": "World", "account/edit": "正在编辑 \"%1\"", "account/edit/password": "正在编辑 \"%1\" 的密码", "account/edit/username": "正在编辑 \"%1\" 的用户名", @@ -62,6 +63,7 @@ "account/blocks": "%1 屏蔽的用户", "account/uploads": "%1 上传的文件", "account/sessions": "已登录的会话", + "account/shares": "Topics shared by %1", "confirm": "电子邮箱已确认", "maintenance.text": "%1 目前正在进行维护,请下次再来。", "maintenance.messageIntro": "此外,管理员留下的消息:", diff --git a/public/language/zh-CN/recent.json b/public/language/zh-CN/recent.json index f3cff06bd3..032ecafda0 100644 --- a/public/language/zh-CN/recent.json +++ b/public/language/zh-CN/recent.json @@ -7,5 +7,7 @@ "alltime": "总计", "no-recent-topics": "暂无主题。", "no-popular-topics": "暂无热门主题。", - "load-new-posts": "加载新的帖子" + "load-new-posts": "加载新的帖子", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/zh-CN/topic.json b/public/language/zh-CN/topic.json index 515fe112dc..ece35b8f6f 100644 --- a/public/language/zh-CN/topic.json +++ b/public/language/zh-CN/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 恢复了该主题于 %2", "user-moved-topic-from-ago": "%1 从 %2 %3 移动了该主题", "user-moved-topic-from-on": "%1 从 %3 中的 %2 移动了该主题", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 篇 已排队 待审批的帖子 %3", "user-queued-post-on": "在 %3 中 已排队 %1 篇待审批的帖子", "user-referenced-topic-ago": "%1 被引用 于这个主题 %3", @@ -135,6 +137,7 @@ "bookmarks": "书签", "bookmarks.has-no-bookmarks": "您还没有添加任何书签", "copy-permalink": "复制固定链接", + "go-to-original": "View Original Post", "loading-more-posts": "正在加载更多帖子", "move-topic": "移动主题", "move-topics": "移动主题", @@ -219,5 +222,7 @@ "downvote-post": "踩帖", "post-tools": "帖子工具", "unread-posts-link": "未读帖子链接", - "thumb-image": "主题缩略图" + "thumb-image": "主题缩略图", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/zh-CN/user.json b/public/language/zh-CN/user.json index a9ce6f6d43..66cc4b9744 100644 --- a/public/language/zh-CN/user.json +++ b/public/language/zh-CN/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "默认版块关注状态", "followers": "粉丝", "following": "关注", + "shares": "Shares", "blocks": "屏蔽", "blocked-users": "屏蔽用户", "block-toggle": "屏蔽该用户", @@ -59,8 +60,10 @@ "chat-with": "继续与 %1 聊天", "new-chat-with": "开始与 %1 的新会话", "flag-profile": "举报资料", + "profile-flagged": "Already flagged", "follow": "关注", "unfollow": "取消关注", + "cancel-follow": "Cancel follow request", "more": "更多", "profile-update-success": "资料已经成功更新。", "change-picture": "更改头像", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "此用户还未踩过任何帖子。", "has-no-controversial-posts": "此用户没有任何踩过的帖子。", "has-no-blocks": "您没有屏蔽其他用户。", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "电子邮箱已隐藏", "hidden": "隐藏", "paginate-description": "使用分页式版块浏览", diff --git a/public/language/zh-CN/world.json b/public/language/zh-CN/world.json new file mode 100644 index 0000000000..6902dd4bb2 --- /dev/null +++ b/public/language/zh-CN/world.json @@ -0,0 +1,18 @@ +{ + "name": "世界", + "popular": "热门主题", + "recent": "全部主题", + "help": "帮助", + + "help.title": "这是什么页面?", + "help.intro": "欢迎来到联邦宇宙的一角", + "help.fediverse": "联邦宇宙是一个由相互连接的应用程序和网站组成的网络,这些应用程序和网站可以相互对话,其用户也可以相互看到对方。本论坛是联盟式的,可以与该社交网络(或 “联邦宇宙”)互动。本页面是您在联邦宇宙中的一角。它仅由 关注的用户创建和分享的主题组成。", + "help.build": "开始时,这里可能没有很多主题;这很正常。随着时间的推移,当您开始关注其他用户时,您会在这里看到更多的内容。", + "help.federating": "同样,如果本论坛以外的用户开始关注 ,那么您的帖子也会开始出现在这些应用程序和网站上。", + "help.next-generation": "这是新一代的社交媒体,从今天开始,贡献力量吧!", + + "onboard.title": "您通往联邦宇宙的窗口...", + "onboard.what": "这是您的个性化版块,只包含本论坛以外的内容。内容是否显示在本页取决于您是否关注他们,或者该帖子是否由您关注的人分享。", + "onboard.why": "论坛之外的事情很多,而且并非所有事情都与您的兴趣相关。因此,关注他人是表明您想从某人那里了解更多信息的最佳方式。", + "onboard.how": "在此期间,您可以点击顶部的快捷按钮,了解本论坛的其他内容,并开始发现一些新内容!" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/manage/categories.json b/public/language/zh-TW/admin/manage/categories.json index b1b4d88422..acaf09c5c9 100644 --- a/public/language/zh-TW/admin/manage/categories.json +++ b/public/language/zh-TW/admin/manage/categories.json @@ -7,6 +7,8 @@ "privileges": "權限", "back-to-categories": "Back to categories", "name": "版面名稱", + "handle": "Category Handle", + "handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.", "description": "版面描述", "bg-color": "背景顏色", "text-color": "圖示顏色", @@ -37,6 +39,7 @@ "disable": "禁用", "edit": "編輯", "analytics": "Analytics", + "federation": "Federation", "view-category": "View category", "set-order": "Set order", @@ -76,6 +79,22 @@ "analytics.topics-daily": "圖3 – 每日在此版面中建立的主題", "analytics.posts-daily": "圖4 – 每日在此版面中每日發佈的貼文", + "federation.title": "Federation settings for \"%1\" category", + "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.", + "federation.disabled-cta": "Federation Settings →", + "federation.syncing-header": "Synchronization", + "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.", + "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.", + "federation.syncing-none": "This category is not currently following anybody.", + "federation.syncing-add": "Synchronize with...", + "federation.syncing-actorUri": "Actor", + "federation.syncing-follow": "Follow", + "federation.syncing-unfollow": "Unfollow", + "federation.followers": "Remote users following this category", + "federation.followers-handle": "Handle", + "federation.followers-id": "ID", + "federation.followers-none": "No followers.", + "alert.created": "建立", "alert.create-success": "版面建立成功!", "alert.none-active": "您沒有有效的版面。", diff --git a/public/language/zh-TW/admin/menu.json b/public/language/zh-TW/admin/menu.json index 83151597be..7f9ec2e046 100644 --- a/public/language/zh-TW/admin/menu.json +++ b/public/language/zh-TW/admin/menu.json @@ -38,6 +38,7 @@ "settings/tags": "標籤", "settings/notifications": "通知", "settings/api": "API Access", + "settings/activitypub": "Federation (ActivityPub)", "settings/sounds": "聲音", "settings/social": "社交", "settings/cookies": "Cookies", diff --git a/public/language/zh-TW/admin/settings/activitypub.json b/public/language/zh-TW/admin/settings/activitypub.json new file mode 100644 index 0000000000..94f9ad7822 --- /dev/null +++ b/public/language/zh-TW/admin/settings/activitypub.json @@ -0,0 +1,26 @@ +{ + "intro-lead": "What is Federation?", + "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)", + "general": "General", + "pruning": "Content Pruning", + "content-pruning": "Days to keep remote content", + "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)", + "user-pruning": "Days to cache remote user accounts", + "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)", + "enabled": "Enable Federation", + "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.", + "allowLoopback": "Allow loopback processing", + "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.", + + "probe": "Open in App", + "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB", + "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.", + "probe-timeout": "Lookup Timeout (milliseconds)", + "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.", + + "server-filtering": "Filtering", + "count": "This NodeBB is currently aware of %1 server(s)", + "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.", + "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.", + "server.filter-allow-list": "Use this as an Allow List instead" +} \ No newline at end of file diff --git a/public/language/zh-TW/error.json b/public/language/zh-TW/error.json index 4461dfa4bc..7c1292ece4 100644 --- a/public/language/zh-TW/error.json +++ b/public/language/zh-TW/error.json @@ -235,6 +235,7 @@ "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", "topic-event-unrecognized": "Topic event '%1' unrecognized", + "category.handle-taken": "Category handle is already taken, please choose another.", "cant-set-child-as-parent": "Can't set child as parent category", "cant-set-self-as-parent": "Can't set self as parent category", "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body", @@ -247,5 +248,11 @@ "api.500": "An unexpected error was encountered while attempting to service your request.", "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow", "api.503": "The route you are trying to call is not currently available due to a server configuration", - "api.reauth-required": "The resource you are trying to access requires (re-)authentication." + "api.reauth-required": "The resource you are trying to access requires (re-)authentication.", + "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.", + "activitypub.get-failed": "Unable to retrieve the specified resource.", + "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.", + "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin", + "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.", + "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server" } \ No newline at end of file diff --git a/public/language/zh-TW/flags.json b/public/language/zh-TW/flags.json index 8d468bbcb0..8b2f54750f 100644 --- a/public/language/zh-TW/flags.json +++ b/public/language/zh-TW/flags.json @@ -84,11 +84,17 @@ "modal-reason-offensive": "人身攻擊", "modal-reason-other": "其它(請在下方指定)", "modal-reason-custom": "舉報此內容的理由……", + "modal-notify-remote": "Forward this report to %1", "modal-submit": "提交舉報", "modal-submit-success": "已舉報此內容。", + "modal-confirm-rescind": "Rescind Report?", + "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", + "confirm-purge": "Are you sure you want to permanently delete these flags?", + "purge-cancelled": "Flag Purge Cancelled", + "bulk-purge": "Purge Flag(s)", "bulk-success": "%1 flags updated", "flagged-timeago": "標記 ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." diff --git a/public/language/zh-TW/global.json b/public/language/zh-TW/global.json index faf3cb34df..90f20e9337 100644 --- a/public/language/zh-TW/global.json +++ b/public/language/zh-TW/global.json @@ -50,6 +50,7 @@ "header.navigation": "導航", "header.manage": "Manage", "header.drafts": "Drafts", + "header.world": "World", "notifications.loading": "正在載入通知", "chats.loading": "正在載入聊天", "drafts.loading": "Loading Drafts", @@ -110,6 +111,7 @@ "dnd": "請勿打擾", "invisible": "隱身", "offline": "離線", + "remote-user": "This user is from outside of this forum", "email": "電子信箱", "language": "語言", "guest": "訪客", diff --git a/public/language/zh-TW/modules.json b/public/language/zh-TW/modules.json index 92b1136a1a..a0d0f953d3 100644 --- a/public/language/zh-TW/modules.json +++ b/public/language/zh-TW/modules.json @@ -115,6 +115,8 @@ "composer.discard-all-drafts": "Discard all drafts", "composer.no-drafts": "You have no drafts", "composer.discard-draft-confirm": "Do you want to discard this draft?", + "composer.remote-pid-editing": "Editing a remote post", + "composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.", "bootbox.ok": "確認", "bootbox.cancel": "取消", "bootbox.confirm": "確認", diff --git a/public/language/zh-TW/notifications.json b/public/language/zh-TW/notifications.json index 69bd52afc3..afdf1dd5b2 100644 --- a/public/language/zh-TW/notifications.json +++ b/public/language/zh-TW/notifications.json @@ -98,5 +98,9 @@ "notificationType-post-queue": "當有新貼文等待審核時", "notificationType-new-post-flag": "當有新的貼文舉報時", "notificationType-new-user-flag": "當有新的使用者資料舉報時", - "notificationType-new-reward": "當您得到新獎勵時" + "notificationType-new-reward": "當您得到新獎勵時", + "activitypub.announce": "%1 shared your post in %2 to their followers.", + "activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.", + "activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.", + "activitypub.announce-multiple": "%1, %2 and %3 others shared your post in %4 to their followers." } \ No newline at end of file diff --git a/public/language/zh-TW/pages.json b/public/language/zh-TW/pages.json index beedba02a4..c00de6fb69 100644 --- a/public/language/zh-TW/pages.json +++ b/public/language/zh-TW/pages.json @@ -36,6 +36,7 @@ "chat": "與 %1 聊天", "flags": "舉報", "flag-details": "舉報 %1 詳情", + "world": "World", "account/edit": "正在編輯 \"%1\"", "account/edit/password": "正在編輯 \"%1\" 的密碼", "account/edit/username": "正在編輯 \"%1\" 的使用者名", @@ -62,6 +63,7 @@ "account/blocks": "%1 封鎖的使用者", "account/uploads": "%1 上傳的檔案", "account/sessions": "已登入的會話", + "account/shares": "Topics shared by %1", "confirm": "電子信箱已確認", "maintenance.text": "%1 is currently undergoing maintenance.
Please come back another time.", "maintenance.messageIntro": "此外,管理員留下的訊息:", diff --git a/public/language/zh-TW/recent.json b/public/language/zh-TW/recent.json index c5eecf4aeb..bc500afcc6 100644 --- a/public/language/zh-TW/recent.json +++ b/public/language/zh-TW/recent.json @@ -7,5 +7,7 @@ "alltime": "總計", "no-recent-topics": "暫無主題。", "no-popular-topics": "暫無熱門主題。", - "load-new-posts": "Load new posts" + "load-new-posts": "Load new posts", + "uncategorized.title": "All known topics", + "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.
The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website." } \ No newline at end of file diff --git a/public/language/zh-TW/topic.json b/public/language/zh-TW/topic.json index 520c646522..927d486876 100644 --- a/public/language/zh-TW/topic.json +++ b/public/language/zh-TW/topic.json @@ -61,6 +61,8 @@ "user-restored-topic-on": "%1 回復了在 %2 的話題", "user-moved-topic-from-ago": "%1 移動話題來自 %2 %3", "user-moved-topic-from-on": "%1 移動話題來自 %2 的 %3", + "user-shared-topic-ago": "%1 shared this topic %2", + "user-shared-topic-on": "%1 shared this topic on %2", "user-queued-post-ago": "%1 排隊 等待審核貼文 %3", "user-queued-post-on": "%1 排隊 等待審核在 %3 的貼文", "user-referenced-topic-ago": "%1 引用 了話題 %3", @@ -135,6 +137,7 @@ "bookmarks": "書籤", "bookmarks.has-no-bookmarks": "您還沒有加入任何書籤", "copy-permalink": "拷貝固定鏈結", + "go-to-original": "View Original Post", "loading-more-posts": "正在載入更多貼文", "move-topic": "移動主題", "move-topics": "移動主題", @@ -219,5 +222,7 @@ "downvote-post": "倒讚貼文", "post-tools": "貼文工具", "unread-posts-link": "未讀貼文鏈結", - "thumb-image": "主題縮圖" + "thumb-image": "主題縮圖", + "announcers": "Shares", + "announcers-x": "Shares (%1)" } \ No newline at end of file diff --git a/public/language/zh-TW/user.json b/public/language/zh-TW/user.json index 3e4cbc668d..c9d4997bf7 100644 --- a/public/language/zh-TW/user.json +++ b/public/language/zh-TW/user.json @@ -47,6 +47,7 @@ "default-category-watch-state": "預設版面關注狀態", "followers": "追隨者", "following": "追隨", + "shares": "Shares", "blocks": "屏蔽", "blocked-users": "被封鎖的用戶", "block-toggle": "封鎖該使用者", @@ -59,8 +60,10 @@ "chat-with": "繼續與 %1 聊天", "new-chat-with": "開始與 %1 的新對話", "flag-profile": "舉報個人檔案", + "profile-flagged": "Already flagged", "follow": "追隨", "unfollow": "取消追隨", + "cancel-follow": "Cancel follow request", "more": "更多", "profile-update-success": "資料已經成功更新。", "change-picture": "更改頭像", @@ -120,6 +123,7 @@ "has-no-downvoted-posts": "此使用者還未倒讚過任何貼文。", "has-no-controversial-posts": "此用戶還沒有被倒贊過的貼文。", "has-no-blocks": "您沒有封鎖其他使用者。", + "has-no-shares": "This user has not shared any topics.", "email-hidden": "電子信箱已隱藏", "hidden": "隱藏", "paginate-description": "使用分頁式版面瀏覽", diff --git a/public/language/zh-TW/world.json b/public/language/zh-TW/world.json new file mode 100644 index 0000000000..3753335278 --- /dev/null +++ b/public/language/zh-TW/world.json @@ -0,0 +1,18 @@ +{ + "name": "World", + "popular": "Popular topics", + "recent": "All topics", + "help": "Help", + + "help.title": "What is this page?", + "help.intro": "Welcome to your corner of the fediverse.", + "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.", + "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.", + "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.", + "help.next-generation": "This is the next generation of social media, start contributing today!", + + "onboard.title": "Your window to the fediverse...", + "onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.", + "onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.", + "onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!" +} \ No newline at end of file diff --git a/public/openapi/write/posts/pid.yaml b/public/openapi/write/posts/pid.yaml index 25bf46f037..2203992b52 100644 --- a/public/openapi/write/posts/pid.yaml +++ b/public/openapi/write/posts/pid.yaml @@ -22,57 +22,65 @@ get: status: $ref: ../../components/schemas/Status.yaml#/Status response: - type: object - properties: - pid: - type: number - uid: - type: number - description: A user identifier - tid: - type: number - description: A topic identifier - content: - type: string - sourceContent: - type: string - description: If the pid is a remote post ID, and markdown was received, it will be saved in this property, and `content` will be emptied. - nullable: true - timestamp: - type: number - flagId: - type: number - deleted: - type: number - upvotes: - type: number - downvotes: - type: number - deleterUid: - type: number - edited: - type: number - replies: - type: number - bookmarks: - type: number - votes: - type: number - timestampISO: - type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - editedISO: - type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - upvoted: - type: boolean - downvoted: - type: boolean - attachments: - type: array - items: - type: string - description: A sha256 hash of the attachment (tied to the corresponding entry in the database) + allOf: + - type: object + properties: + pid: + type: number + uid: + type: number + description: A user identifier + tid: + type: number + description: A topic identifier + content: + type: string + timestamp: + type: number + flagId: + type: number + deleted: + type: number + upvotes: + type: number + downvotes: + type: number + deleterUid: + type: number + edited: + type: number + replies: + type: number + bookmarks: + type: number + votes: + type: number + timestampISO: + type: string + description: An ISO 8601 formatted date string (complementing `timestamp`) + editedISO: + type: string + description: An ISO 8601 formatted date string (complementing `timestamp`) + upvoted: + type: boolean + downvoted: + type: boolean + attachments: + type: array + items: + type: string + description: A sha256 hash of the attachment (tied to the corresponding entry in the database) + - type: object + description: Optional properties that may or may not be present (except for `pid`, which is always present, and is only here as a hack to pass validation) + properties: + pid: + type: number + description: A post identifier + sourceContent: + type: string + description: The markdown equivalent of a remote post content, as received (or fetched) from the remote site. + required: + - pid put: tags: - posts diff --git a/public/src/app.js b/public/src/app.js index b5d4dddb8d..1ba3a4093c 100644 --- a/public/src/app.js +++ b/public/src/app.js @@ -220,7 +220,7 @@ if (document.readyState === 'loading') { if (!isTouchDevice) { els = els || $('body'); els.tooltip({ - selector: '.avatar.avatar-tooltip', + selector: '.avatar-tooltip', placement: placement || 'top', container: '#content', animation: false, diff --git a/public/src/client/topic/images.js b/public/src/client/topic/images.js index 5fc2b34f66..c4c30319d8 100644 --- a/public/src/client/topic/images.js +++ b/public/src/client/topic/images.js @@ -19,7 +19,7 @@ define('forum/topic/images', [], function () { } if (!imageEl.parent().is('a')) { - if (utils.isRelativeUrl(src) && suffixRegex.test(src) && imageEl.get(0).naturalWidth >= config.resizeImageWidth) { + if (utils.isRelativeUrl(src) && suffixRegex.test(src)) { src = src.replace(suffixRegex, '$1'); } const alt = imageEl.attr('alt') || ''; diff --git a/public/src/modules/helpers.common.js b/public/src/modules/helpers.common.js index 0621f73b7d..454fb441c2 100644 --- a/public/src/modules/helpers.common.js +++ b/public/src/modules/helpers.common.js @@ -220,9 +220,9 @@ module.exports = function (utils, Benchpress, relative_path) { function renderTopicImage(topicObj) { if (topicObj.thumb) { - return ''; + return ''; } - return ''; + return ''; } function renderDigestAvatar(block) { @@ -319,7 +319,7 @@ module.exports = function (utils, Benchpress, relative_path) { let output = ''; if (userObj.picture) { - output += ``; + output += ``; } output += `${userObj['icon:text']}`; return output; @@ -393,7 +393,7 @@ module.exports = function (utils, Benchpress, relative_path) { `; }); - return html; + return html.join(''); } function register() { diff --git a/src/activitypub/helpers.js b/src/activitypub/helpers.js index aa00528717..9a5ac54e33 100644 --- a/src/activitypub/helpers.js +++ b/src/activitypub/helpers.js @@ -366,19 +366,29 @@ Helpers.remoteAnchorToLocalProfile = async (content) => { return content; } - // Filter out urls that don't backreference to a remote id + const urlMap = new Map(); const urlsArray = Array.from(urls); + + // Local references + const localUrls = urlsArray.filter(url => url.startsWith(nconf.get('url'))); + await Promise.all(localUrls.map(async (url) => { + const { type, id } = await Helpers.resolveLocalId(url); + if (type === 'user') { + urlMap.set(url, id); + } // else if (type === 'category') { + })); + + // Remote references const [backrefs, urlAsIdExists] = await Promise.all([ db.getObjectFields('remoteUrl:uid', urlsArray), db.isSortedSetMembers('usersRemote:lastCrawled', urlsArray), ]); - - const urlMap = new Map(); urlsArray.forEach((url, index) => { if (backrefs[url] || urlAsIdExists[index]) { urlMap.set(url, backrefs[url] || url); } }); + let slugs = await user.getUsersFields(Array.from(urlMap.values()), ['userslug']); slugs = slugs.map(({ userslug }) => userslug); Array.from(urlMap.keys()).forEach((url, idx) => { diff --git a/src/activitypub/index.js b/src/activitypub/index.js index 8a254a78f4..2043f127a6 100644 --- a/src/activitypub/index.js +++ b/src/activitypub/index.js @@ -336,6 +336,9 @@ async function sendMessage(uri, id, type, payload, attempts = 1) { if (String(response.statusCode).startsWith('2')) { ActivityPub.helpers.log(`[activitypub/send] Successfully sent ${payload.type} to ${uri}`); } else { + if (typeof body === 'object') { + throw new Error(JSON.stringify(body)); + } throw new Error(String(body)); } } catch (e) { diff --git a/src/activitypub/mocks.js b/src/activitypub/mocks.js index e2ea398731..95274fae89 100644 --- a/src/activitypub/mocks.js +++ b/src/activitypub/mocks.js @@ -535,6 +535,10 @@ Mocks.notes.public = async (post) => { let context = await posts.getPostField(post.pid, 'context'); context = context || `${nconf.get('url')}/topic/${post.topic.tid}`; + /** + * audience is exposed as part of 1b12 but is now ignored by Lemmy. + * Remove this and most references to audience in 2026. + */ let audience = `${nconf.get('url')}/category/${post.category.cid}`; // default if (inReplyTo) { const chain = await activitypub.notes.getParentChain(post.uid, inReplyTo); diff --git a/src/api/activitypub.js b/src/api/activitypub.js index 8400b60f98..20379025e3 100644 --- a/src/api/activitypub.js +++ b/src/api/activitypub.js @@ -46,13 +46,17 @@ activitypubApi.follow = enabledCheck(async (caller, { type, id, actor } = {}) => const handle = await user.getUserField(actor, 'username'); const timestamp = Date.now(); - await activitypub.send(type, id, [actor], { - id: `${nconf.get('url')}/${type}/${id}#activity/follow/${handle}/${timestamp}`, - type: 'Follow', - object: actor, - }); - await db.sortedSetAdd(`followRequests:${type}.${id}`, timestamp, actor); + try { + await activitypub.send(type, id, [actor], { + id: `${nconf.get('url')}/${type}/${id}#activity/follow/${handle}/${timestamp}`, + type: 'Follow', + object: actor, + }); + } catch (e) { + await db.sortedSetRemove(`followRequests:${type}.${id}`, actor); + throw e; + } }); // should be .undo.follow diff --git a/src/api/posts.js b/src/api/posts.js index 3c90ee4f92..04c9384177 100644 --- a/src/api/posts.js +++ b/src/api/posts.js @@ -402,10 +402,10 @@ async function getTooltipData(uids) { uids = uids.slice(0, cutoff - 1); } - const usernames = await user.getUsernamesByUids(uids); + const users = await user.getUsersFields(uids, ['username']); return { otherCount, - usernames, + usernames: users.map(user => user.displayname), cutoff, }; } diff --git a/src/categories/create.js b/src/categories/create.js index 60923d28b6..f2e8f8811d 100644 --- a/src/categories/create.js +++ b/src/categories/create.js @@ -92,6 +92,7 @@ module.exports = function (Categories) { ['categories:cid', category.order, category.cid], [`cid:${parentCid}:children`, category.order, category.cid], ['categories:name', 0, `${data.name.slice(0, 200).toLowerCase()}:${category.cid}`], + ['categoryhandle:cid', cid, handle], ]); await privileges.categories.give(result.defaultPrivileges, category.cid, ['registered-users', 'fediverse']); diff --git a/src/cli/index.js b/src/cli/index.js index e6f0485585..7bd1c37b87 100644 --- a/src/cli/index.js +++ b/src/cli/index.js @@ -87,7 +87,8 @@ program .option('--log-level ', 'Default logging level to use', 'info') .option('--config ', 'Specify a config file', 'config.json') .option('-d, --dev', 'Development mode, including verbose logging', false) - .option('-l, --log', 'Log subprocess output to console', false); + .option('-l, --log', 'Log subprocess output to console', false) + .option('-y, --unattended', 'Answer yes to any prompts, like plugin upgrades', false); // provide a yargs object ourselves // otherwise yargs will consume `--help` or `help` @@ -294,6 +295,7 @@ program ].join('\n')}`); }) .action((scripts, options) => { + options.unattended = program.opts().unattended; if (program.opts().dev) { process.env.NODE_ENV = 'development'; global.env = 'development'; @@ -308,7 +310,8 @@ program .alias('upgradePlugins') .description('Upgrade plugins') .action(() => { - require('./upgrade-plugins').upgradePlugins((err) => { + const { unattended } = program.opts(); + require('./upgrade-plugins').upgradePlugins(unattended, (err) => { if (err) { throw err; } diff --git a/src/cli/upgrade-plugins.js b/src/cli/upgrade-plugins.js index b68db55eac..92cc980fa2 100644 --- a/src/cli/upgrade-plugins.js +++ b/src/cli/upgrade-plugins.js @@ -120,7 +120,7 @@ async function checkPlugins() { return upgradable; } -async function upgradePlugins() { +async function upgradePlugins(unattended = false) { try { const found = await checkPlugins(); if (found && found.length) { @@ -132,16 +132,18 @@ async function upgradePlugins() { console.log(chalk.green('\nAll packages up-to-date!')); return; } + let result = { upgrade: 'y' }; + if (!unattended) { + prompt.message = ''; + prompt.delimiter = ''; - prompt.message = ''; - prompt.delimiter = ''; - - prompt.start(); - const result = await prompt.get({ - name: 'upgrade', - description: '\nProceed with upgrade (y|n)?', - type: 'string', - }); + prompt.start(); + result = await prompt.get({ + name: 'upgrade', + description: '\nProceed with upgrade (y|n)?', + type: 'string', + }); + } if (['y', 'Y', 'yes', 'YES'].includes(result.upgrade)) { console.log('\nUpgrading packages...'); diff --git a/src/cli/upgrade.js b/src/cli/upgrade.js index ff3487388c..e879239b7a 100644 --- a/src/cli/upgrade.js +++ b/src/cli/upgrade.js @@ -24,9 +24,9 @@ const steps = { }, plugins: { message: 'Checking installed plugins for updates...', - handler: async function () { + handler: async function (options) { await require('../database').init(); - await upgradePlugins(); + await upgradePlugins(options.unattended); }, }, schema: { @@ -45,14 +45,14 @@ const steps = { }, }; -async function runSteps(tasks) { +async function runSteps(tasks, options) { try { for (let i = 0; i < tasks.length; i++) { const step = steps[tasks[i]]; if (step && step.message && step.handler) { process.stdout.write(`\n${chalk.bold(`${i + 1}. `)}${chalk.yellow(step.message)}`); /* eslint-disable-next-line */ - await step.handler(); + await step.handler(options); } } const message = 'NodeBB Upgrade Complete!'; @@ -95,7 +95,7 @@ async function runUpgrade(upgrades, options) { options.plugins || options.schema || options.build) { tasks = tasks.filter(key => options[key]); } - await runSteps(tasks); + await runSteps(tasks, options); return; } diff --git a/src/controllers/accounts/helpers.js b/src/controllers/accounts/helpers.js index dad9892a10..4c289e5007 100644 --- a/src/controllers/accounts/helpers.js +++ b/src/controllers/accounts/helpers.js @@ -194,7 +194,7 @@ helpers.getCustomUserFields = async function (callerUID, userData) { if (f.type === 'input-link' && userValue) { f.linkValue = validator.escape(String(userValue.replace('http://', '').replace('https://', ''))); } - f['select-options'] = f['select-options'].split('\n').filter(Boolean).map( + f['select-options'] = (f['select-options'] || '').split('\n').filter(Boolean).map( opt => ({ value: opt, selected: Array.isArray(userValue) ? diff --git a/src/controllers/accounts/settings.js b/src/controllers/accounts/settings.js index 6248bc5ddd..8530486d7c 100644 --- a/src/controllers/accounts/settings.js +++ b/src/controllers/accounts/settings.js @@ -113,8 +113,14 @@ const doUnsubscribe = async (payload) => { user.updateDigestSetting(payload.uid, 'off'), ]); } else if (payload.template === 'notification') { + const currentToNewSetting = { + notificationemail: 'notification', + email: 'none', + }; const current = await db.getObjectField(`user:${payload.uid}:settings`, `notificationType_${payload.type}`); - await user.setSetting(payload.uid, `notificationType_${payload.type}`, (current === 'notificationemail' ? 'notification' : 'none')); + if (currentToNewSetting.hasOwnProperty(current)) { + await user.setSetting(payload.uid, `notificationType_${payload.type}`, currentToNewSetting[current]); + } } return true; }; diff --git a/src/controllers/authentication.js b/src/controllers/authentication.js index 6591459cf2..299bfa571b 100644 --- a/src/controllers/authentication.js +++ b/src/controllers/authentication.js @@ -49,7 +49,10 @@ async function registerAndLoginUser(req, res, userData) { const uid = await user.create(userData); if (res.locals.processLogin) { - await authenticationController.doLogin(req, uid); + const hasLoginPrivilege = await privileges.global.can('local:login', uid); + if (hasLoginPrivilege) { + await authenticationController.doLogin(req, uid); + } } // Distinguish registrations through invites from direct ones diff --git a/src/controllers/index.js b/src/controllers/index.js index ce2719b1da..b76df17944 100644 --- a/src/controllers/index.js +++ b/src/controllers/index.js @@ -6,7 +6,7 @@ const validator = require('validator'); const meta = require('../meta'); const user = require('../user'); const plugins = require('../plugins'); -const privileges = require('../privileges'); +const privilegesHelpers = require('../privileges/helpers'); const helpers = require('./helpers'); const Controllers = module.exports; @@ -126,7 +126,8 @@ Controllers.login = async function (req, res) { data.title = '[[pages:login]]'; data.allowPasswordReset = !meta.config['password:disableEdit']; - const hasLoginPrivilege = await privileges.global.canGroup('local:login', 'registered-users'); + const loginPrivileges = await privilegesHelpers.getGroupPrivileges(0, ['groups:local:login']); + const hasLoginPrivilege = !!loginPrivileges.find(privilege => privilege.privileges['groups:local:login']); data.allowLocalLogin = hasLoginPrivilege || parseInt(req.query.local, 10) === 1; if (!data.allowLocalLogin && !data.allowRegistration && data.alternate_logins && data.authentication.length === 1) { diff --git a/src/controllers/well-known.js b/src/controllers/well-known.js index 7df8d543fc..0a9937f036 100644 --- a/src/controllers/well-known.js +++ b/src/controllers/well-known.js @@ -40,7 +40,7 @@ Controller.webfinger = async (req, res) => { res.status(200).json(response); } catch (e) { - res.sendStatus(400); + res.sendStatus(404); } }; diff --git a/src/meta/minifier.js b/src/meta/minifier.js index 6aa975b334..6a617cc45d 100644 --- a/src/meta/minifier.js +++ b/src/meta/minifier.js @@ -164,7 +164,10 @@ actions.buildCSS = async function buildCSS(data) { loadPaths: data.paths, }; if (data.minify) { - opts.silenceDeprecations = ['mixed-decls', 'color-functions']; + opts.silenceDeprecations = [ + 'legacy-js-api', 'mixed-decls', 'color-functions', + 'global-builtin', 'import', + ]; } const scssOutput = await sass.compileStringAsync(data.source, opts); css = scssOutput.css.toString(); diff --git a/src/posts/uploads.js b/src/posts/uploads.js index 12564d0f17..5f97be9563 100644 --- a/src/posts/uploads.js +++ b/src/posts/uploads.js @@ -54,23 +54,25 @@ module.exports = function (Posts) { // Extract upload file paths from post content let match = searchRegex.exec(content); - const uploads = []; + let uploads = new Set(); while (match) { - uploads.push(match[1].replace('-resized', '')); + uploads.add(match[1].replace('-resized', '')); match = searchRegex.exec(content); } // Main posts can contain topic thumbs, which are also tracked by pid if (isMainPost) { const tid = await Posts.getPostField(pid, 'tid'); - let thumbs = await topics.thumbs.get(tid); + let thumbs = await topics.thumbs.get(tid, { thumbsOnly: true }); thumbs = thumbs.map(thumb => thumb.path).filter(path => !validator.isURL(path, { require_protocol: true, })); thumbs = thumbs.map(t => t.slice(1)); // remove leading `/` or `\\` on windows - uploads.push(...thumbs); + thumbs.forEach(t => uploads.add(t)); } + uploads = Array.from(uploads); + // Create add/remove sets const add = uploads.filter(path => !currentUploads.includes(path)); const remove = currentUploads.filter(path => !uploads.includes(path)); diff --git a/src/topics/fork.js b/src/topics/fork.js index e94da7f1c3..07111eecd1 100644 --- a/src/topics/fork.js +++ b/src/topics/fork.js @@ -24,7 +24,14 @@ module.exports = function (Topics) { throw new Error('[[error:invalid-pid]]'); } - pids.sort((a, b) => a - b); + if (pids.every(isFinite)) { + pids.sort((a, b) => a - b); + } else { + const pidsDatetime = (await db.sortedSetScores(`tid:${fromTid}:posts`, pids)).map(t => t || 0); + const map = pids.reduce((map, pid, idx) => map.set(pidsDatetime[idx], pid), new Map()); + pidsDatetime.sort((a, b) => a - b); + pids = pidsDatetime.map(key => map.get(key)); + } const mainPid = pids[0]; if (!cid) { diff --git a/src/topics/posts.js b/src/topics/posts.js index f7e37f100f..d9c20d3dc1 100644 --- a/src/topics/posts.js +++ b/src/topics/posts.js @@ -372,7 +372,7 @@ module.exports = function (Topics) { timestampISO: replyPids.length ? utils.toISOString(pidMap[replyPids[0]].timestamp) : undefined, }; - replyPids.sort((a, b) => parseInt(a, 10) - parseInt(b, 10)); + replyPids.sort((a, b) => pidMap[a].timestamp - pidMap[b].timestamp); replyPids.forEach((replyPid) => { const replyData = pidMap[replyPid]; diff --git a/src/topics/thumbs.js b/src/topics/thumbs.js index bea0b1292b..3a47033afc 100644 --- a/src/topics/thumbs.js +++ b/src/topics/thumbs.js @@ -74,9 +74,10 @@ Thumbs.get = async function (tids, options) { const mainPidUploads = await Promise.all(mainPids.map(async pid => await posts.uploads.list(pid))); mainPidUploads.forEach((uploads, idx) => { uploads = uploads.map(path => `/${path}`); - uploads = uploads.filter( - upload => !thumbs[idx].includes(upload) && mime.getType(upload).startsWith('image/') - ); + uploads = uploads.filter((upload) => { + const type = mime.getType(upload); + return !thumbs[idx].includes(upload) && type && type.startsWith('image/'); + }); if (uploads.length) { thumbs[idx].push(...uploads); diff --git a/src/upgrades/4.0.0/announces_zset.js b/src/upgrades/4.0.0/announces_zset.js deleted file mode 100644 index 8330cc6dbd..0000000000 --- a/src/upgrades/4.0.0/announces_zset.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; - -const db = require('../../database'); -const batch = require('../../batch'); -const topics = require('../../topics'); - -module.exports = { - name: 'Save ActivityPub Announces in their own per-post sorted set', - timestamp: Date.UTC(2024, 4, 1), - method: async function () { - const { progress } = this; - const bulkOp = []; - - await batch.processSortedSet('topics:tid', async (tids) => { - await Promise.all(tids.map(async (tid) => { - const announces = await topics.events.find(tid, { - type: 'announce', - }); - - if (announces.length) { - await Promise.all(announces.map(async (eid) => { - const event = await db.getObject(`topicEvent:${eid}`); - if (['uid', 'pid', 'timestamp'].every(prop => event.hasOwnProperty(prop))) { - bulkOp.push([`pid:${event.pid}:announces`, event.timestamp, event.uid]); - } - })); - - await topics.events.purge(tid, announces); - } - })); - - progress.incr(tids.length); - }, { progress }); - - await db.sortedSetAddBulk(bulkOp); - }, -}; diff --git a/src/upgrades/4.0.0/fix_global_user_and_post_counts.js b/src/upgrades/4.0.0/fix_global_user_and_post_counts.js deleted file mode 100644 index f8facf9ae6..0000000000 --- a/src/upgrades/4.0.0/fix_global_user_and_post_counts.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -const db = require('../../database'); -const meta = require('../../meta'); - -module.exports = { - name: 'Fix global counts for users and posts due to faulty AP logic', - timestamp: Date.UTC(2024, 5, 25), - method: async () => { - if (!meta.config.activitypubEnabled) { - return; - } - - const counts = await db.sortedSetsCard(['users:joindate', 'posts:pid', 'topics:tid']); - await db.setObject('global', { - userCount: counts[0], - postCount: counts[1], - topicCount: counts[2], - }); - }, -}; diff --git a/src/upgrades/4.0.0/fix_topic_zsets_for_uncategorized.js b/src/upgrades/4.0.0/fix_topic_zsets_for_uncategorized.js deleted file mode 100644 index 4103cd81e1..0000000000 --- a/src/upgrades/4.0.0/fix_topic_zsets_for_uncategorized.js +++ /dev/null @@ -1,36 +0,0 @@ -// REMOVE THIS PRIOR TO 4.0 ALPHA - -'use strict'; - -const db = require('../../database'); - -module.exports = { - name: 'Fix topic sorted sets for uncategorized topics', - timestamp: Date.UTC(2024, 2, 26), - method: async function () { - const props = ['views', 'posts', 'votes']; - const { progress } = this; - const tids = await db.getSortedSetMembers('cid:-1:tids'); - progress.total = tids.length; - - const remove = []; - const add = []; - await Promise.all(props.map(async (prop) => { - const set = `topics:${prop}`; - const newSet = `topicsRemote:${prop}`; - - const scores = await db.sortedSetScores(set, tids); - scores.forEach((score, idx) => { - if (score !== null) { - remove.push([set, tids[idx]]); - add.push([newSet, score, tids[idx]]); - } - }); - })); - - await Promise.all([ - db.sortedSetRemoveBulk(remove), - db.sortedSetAddBulk(add), - ]); - }, -}; diff --git a/src/upgrades/4.0.0/follow_backreferences.js b/src/upgrades/4.0.0/follow_backreferences.js deleted file mode 100644 index bec02a7ee5..0000000000 --- a/src/upgrades/4.0.0/follow_backreferences.js +++ /dev/null @@ -1,41 +0,0 @@ -'use strict'; - -const db = require('../../database'); -const batch = require('../../batch'); -const activitypub = require('../../activitypub'); - -module.exports = { - name: 'Establish follow backreference sorted sets for remote users', - timestamp: Date.UTC(2024, 6, 19), - method: async function () { - const { progress } = this; - const bulkOp = []; - const now = Date.now(); - const reassert = []; - - await batch.processSortedSet('users:joindate', async (uids) => { - const [_followers, _following] = await Promise.all([ - db.getSortedSetsMembers(uids.map(uid => `followersRemote:${uid}`)), - db.getSortedSetsMembers(uids.map(uid => `followingRemote:${uid}`)), - ]); - - const toCheck = Array.from(new Set(_followers.flat().concat(_following.flat()))); - const asserted = await db.isSortedSetMembers('usersRemote:lastCrawled', toCheck); - reassert.push(...toCheck.filter((actor, idx) => !asserted[idx])); - - uids.forEach((uid, idx) => { - const followers = _followers[idx]; - if (followers.length) { - bulkOp.push(...followers.map(actor => [`followingRemote:${actor}`, now, uid])); - } - }); - - progress.incr(uids.length); - }, { progress }); - - await Promise.all([ - db.sortedSetAddBulk(bulkOp), - activitypub.actors.assert(Array.from(new Set(reassert))), - ]); - }, -}; diff --git a/src/upgrades/4.0.0/prune_user_inboxes.js b/src/upgrades/4.0.0/prune_user_inboxes.js deleted file mode 100644 index 7ea27d322e..0000000000 --- a/src/upgrades/4.0.0/prune_user_inboxes.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -const db = require('../../database'); -const batch = require('../../batch'); -const topics = require('../../topics'); - -module.exports = { - name: 'Prune deleted topics out of user inboxes', - timestamp: Date.UTC(2024, 6, 12), - method: async function () { - const { progress } = this; - - await batch.processSortedSet('users:joindate', async (uids) => { - const exists = await db.exists(uids.map(uid => `uid:${uid}:inbox`)); - const count = uids.length; - uids = uids.filter((uid, idx) => exists[idx]); - - await Promise.all(uids.map(async (uid) => { - const key = `uid:${uid}:inbox`; - const tids = await db.getSortedSetMembers(key); - const exists = await topics.exists(tids); - const toRemove = tids.filter((tid, idx) => !exists[idx]); - await db.sortedSetRemove(key, toRemove); - })); - - progress.incr(count); - }, { progress }); - }, -}; diff --git a/src/upgrades/4.0.0/remote_user_urls.js b/src/upgrades/4.0.0/remote_user_urls.js deleted file mode 100644 index 2b5ee8088a..0000000000 --- a/src/upgrades/4.0.0/remote_user_urls.js +++ /dev/null @@ -1,35 +0,0 @@ -// REMOVE THIS PRIOR TO 4.0 ALPHA - -'use strict'; - -const db = require('../../database'); -const activitypub = require('../../activitypub'); - -module.exports = { - name: 'Re-assert all existing actors to save URL into hash', - timestamp: Date.UTC(2024, 3, 4), - method: async function () { - const batch = require('../../batch'); - const { progress } = this; - const interval = 1500; - - let actorIds = await db.getSortedSetMembers('usersRemote:lastCrawled'); - progress.total = actorIds.length; - const existing = await db.getObjectValues('remoteUrl:uid'); - const exists = actorIds.map(actorId => existing.includes(actorId)); - actorIds = actorIds.filter((_, idx) => !exists[idx]); - - // Increment ones that were already completed - progress.incr(progress.total - actorIds.length); - - await batch.processArray(actorIds, async (ids) => { - try { - await activitypub.actors.assert(ids, { update: true }); - } catch (e) { - // noop - } - - progress.incr(ids.length); - }, { progress, interval }); - }, -}; diff --git a/src/upgrades/4.0.0/searchable_remote_users.js b/src/upgrades/4.0.0/searchable_remote_users.js deleted file mode 100644 index 7cc9abbfb8..0000000000 --- a/src/upgrades/4.0.0/searchable_remote_users.js +++ /dev/null @@ -1,30 +0,0 @@ -// REMOVE THIS PRIOR TO 4.0 ALPHA - -'use strict'; - -const db = require('../../database'); - -module.exports = { - name: 'Allow remote user profiles to be searched', - // remember, month is zero-indexed (so January is 0, December is 11) - timestamp: Date.UTC(2024, 2, 1), - method: async () => { - const ids = await db.getSortedSetMembers('usersRemote:lastCrawled'); - const data = await db.getObjectsFields(ids.map(id => `userRemote:${id}`), ['username', 'fullname']); - - const queries = data.reduce((memo, profile, idx) => { - if (profile && profile.username && profile.fullname) { - memo.zset.push(['ap.preferredUsername:sorted', 0, `${profile.username.toLowerCase()}:${ids[idx]}`]); - memo.zset.push(['ap.name:sorted', 0, `${profile.fullname.toLowerCase()}:${ids[idx]}`]); - memo.hash[profile.username.toLowerCase()] = ids[idx]; - } - - return memo; - }, { zset: [], hash: {} }); - - await Promise.all([ - db.sortedSetAddBulk(queries.zset), - db.setObject('handle:uid', queries.hash), - ]); - }, -}; diff --git a/src/user/profile.js b/src/user/profile.js index 4c78534b89..40a0d3bc99 100644 --- a/src/user/profile.js +++ b/src/user/profile.js @@ -17,7 +17,7 @@ const tx = require('../translator'); module.exports = function (User) { User.updateProfile = async function (uid, data, extraFields) { let fields = [ - 'username', 'email', 'fullname', 'website', 'location', + 'username', 'email', 'fullname', 'groupTitle', 'birthday', 'signature', 'aboutme', ...await db.getSortedSetRange('user-custom-fields', 0, -1), ]; diff --git a/test/activitypub.js b/test/activitypub.js index 9fa2c757af..3465707203 100644 --- a/test/activitypub.js +++ b/test/activitypub.js @@ -158,6 +158,58 @@ describe('ActivityPub integration', () => { meta.config.maximumTitleLength = value; }); }); + + describe.only('.remoteAnchorToLocalProfile', () => { + const uuid1 = utils.generateUUID(); + const id1 = `https://example.org/uuid/${uuid1}`; + const url1 = `https://example.org/test`; + const uuid2 = utils.generateUUID(); + const id2 = `https://example.org/uuid/${uuid2}`; + const localUsername = utils.generateUUID(); + const localSlug = slugify(localUsername); + let localUid; + before(async () => { + // Mock up a fake remote user + [,,,, localUid] = await Promise.all([ + db.setObjectField('remoteUrl:uid', url1, id1), + db.sortedSetAdd('usersRemote:lastCrawled', Date.now(), id2), + db.setObject(`userRemote:${id1}`, { uid: id1, userslug: uuid1 }), + db.setObject(`userRemote:${id2}`, { uid: id2, userslug: id2 }), + user.create({ username: localUsername }), + ]); + }); + + it('should convert an anchor pointing to a remote user URL', async () => { + const content = `adsf @${uuid1} asdf`; + const converted = await activitypub.helpers.remoteAnchorToLocalProfile(content); + assert.strictEqual(converted, `adsf @${uuid1} asdf`); + }); + + it('should convert an anchor pointing to a remote user id', async () => { + const content = `adsf @${uuid2} asdf`; + const converted = await activitypub.helpers.remoteAnchorToLocalProfile(content); + assert.strictEqual(converted, `adsf @${uuid2} asdf`); + }); + + it('should convert an anchor pointing to a local user URL', async () => { + const content = `adsf @${localSlug} asdf`; + const converted = await activitypub.helpers.remoteAnchorToLocalProfile(content); + assert.strictEqual(converted, `adsf @${localSlug} asdf`); + }); + + it('should convert an anchor pointing to a local user URL', async () => { + const content = `adsf @${localSlug} asdf`; + const converted = await activitypub.helpers.remoteAnchorToLocalProfile(content); + assert.strictEqual(converted, `adsf @${localSlug} asdf`); + }); + + after(async () => { + await Promise.all([ + db.deleteObjectField('remoteUrl:uid', url1), + db.sortedSetRemove('usersRemote:lastCrawled', id2), + ]); + }); + }); }); describe('ActivityPub screener middleware', () => { diff --git a/test/controllers.js b/test/controllers.js index f4e2d850f5..c1fec64280 100644 --- a/test/controllers.js +++ b/test/controllers.js @@ -31,7 +31,6 @@ describe('Controllers', () => { let fooUid; let adminUid; let category; - let testRoutes = []; before(async () => { category = await categories.create({ @@ -56,48 +55,6 @@ describe('Controllers', () => { tid = result.topicData.tid; pid = result.postData.pid; - - testRoutes = [ - { it: 'should load /reset without code', url: '/reset' }, - { it: 'should load /reset with invalid code', url: '/reset/123123' }, - { it: 'should load /login', url: '/login' }, - { it: 'should load /register', url: '/register' }, - { it: 'should load /robots.txt', url: '/robots.txt' }, - { it: 'should load /manifest.webmanifest', url: '/manifest.webmanifest' }, - { it: 'should load /outgoing?url=', url: '/outgoing?url=http://youtube.com' }, - { it: 'should 404 on /outgoing with no url', url: '/outgoing', status: 404 }, - { it: 'should 404 on /outgoing with javascript: protocol', url: '/outgoing?url=javascript:alert(1);', status: 404 }, - { it: 'should 404 on /outgoing with invalid url', url: '/outgoing?url=derp', status: 404 }, - { it: 'should load /sping', url: '/sping', body: 'healthy' }, - { it: 'should load /ping', url: '/ping', body: '200' }, - { it: 'should handle 404', url: '/arouteinthevoid', status: 404 }, - { it: 'should load topic rss feed', url: `/topic/${tid}.rss` }, - { it: 'should load category rss feed', url: `/category/${cid}.rss` }, - { it: 'should load topics rss feed', url: `/topics.rss` }, - { it: 'should load recent rss feed', url: `/recent.rss` }, - { it: 'should load top rss feed', url: `/top.rss` }, - { it: 'should load popular rss feed', url: `/popular.rss` }, - { it: 'should load popular rss feed with term', url: `/popular/day.rss` }, - { it: 'should load recent posts rss feed', url: `/recentposts.rss` }, - { it: 'should load category recent posts rss feed', url: `/category/${cid}/recentposts.rss` }, - { it: 'should load user topics rss feed', url: `/user/foo/topics.rss` }, - { it: 'should load tag rss feed', url: `/tags/nodebb.rss` }, - { it: 'should load client.css', url: `/assets/client.css` }, - { it: 'should load admin.css', url: `/assets/admin.css` }, - { it: 'should load sitemap.xml', url: `/sitemap.xml` }, - { it: 'should load sitemap/pages.xml', url: `/sitemap/pages.xml` }, - { it: 'should load sitemap/categories.xml', url: `/sitemap/categories.xml` }, - { it: 'should load sitemap/topics.1.xml', url: `/sitemap/topics.1.xml` }, - { it: 'should load theme screenshot', url: `/css/previews/nodebb-theme-harmony` }, - { it: 'should load users page', url: `/users` }, - { it: 'should load users page section', url: `/users?section=online` }, - { it: 'should load groups page', url: `/groups` }, - { it: 'should get recent posts', url: `/api/recent/posts/month` }, - { it: 'should get post data', url: `/api/v3/posts/${pid}` }, - { it: 'should get topic data', url: `/api/v3/topics/${tid}` }, - { it: 'should get category data', url: `/api/v3/categories/${cid}` }, - { it: 'should return osd data', url: `/osd.xml` }, - ]; }); it('should load /config with csrf_token', async () => { @@ -222,6 +179,48 @@ describe('Controllers', () => { describe('routes that should 200/404 etc.', () => { const baseUrl = nconf.get('url'); + const testRoutes = [ + { it: 'should load /reset without code', url: '/reset' }, + { it: 'should load /reset with invalid code', url: '/reset/123123' }, + { it: 'should load /login', url: '/login' }, + { it: 'should load /register', url: '/register' }, + { it: 'should load /robots.txt', url: '/robots.txt' }, + { it: 'should load /manifest.webmanifest', url: '/manifest.webmanifest' }, + { it: 'should load /outgoing?url=', url: '/outgoing?url=http://youtube.com' }, + { it: 'should 404 on /outgoing with no url', url: '/outgoing', status: 404 }, + { it: 'should 404 on /outgoing with javascript: protocol', url: '/outgoing?url=javascript:alert(1);', status: 404 }, + { it: 'should 404 on /outgoing with invalid url', url: '/outgoing?url=derp', status: 404 }, + { it: 'should load /sping', url: '/sping', body: 'healthy' }, + { it: 'should load /ping', url: '/ping', body: '200' }, + { it: 'should handle 404', url: '/arouteinthevoid', status: 404 }, + { it: 'should load topic rss feed', url: `/topic/1.rss` }, + { it: 'should load category rss feed', url: `/category/1.rss` }, + { it: 'should load topics rss feed', url: `/topics.rss` }, + { it: 'should load recent rss feed', url: `/recent.rss` }, + { it: 'should load top rss feed', url: `/top.rss` }, + { it: 'should load popular rss feed', url: `/popular.rss` }, + { it: 'should load popular rss feed with term', url: `/popular/day.rss` }, + { it: 'should load recent posts rss feed', url: `/recentposts.rss` }, + { it: 'should load category recent posts rss feed', url: `/category/1/recentposts.rss` }, + { it: 'should load user topics rss feed', url: `/user/foo/topics.rss` }, + { it: 'should load tag rss feed', url: `/tags/nodebb.rss` }, + { it: 'should load client.css', url: `/assets/client.css` }, + { it: 'should load admin.css', url: `/assets/admin.css` }, + { it: 'should load sitemap.xml', url: `/sitemap.xml` }, + { it: 'should load sitemap/pages.xml', url: `/sitemap/pages.xml` }, + { it: 'should load sitemap/categories.xml', url: `/sitemap/categories.xml` }, + { it: 'should load sitemap/topics.1.xml', url: `/sitemap/topics.1.xml` }, + { it: 'should load theme screenshot', url: `/css/previews/nodebb-theme-harmony` }, + { it: 'should load users page', url: `/users` }, + { it: 'should load users page section', url: `/users?section=online` }, + { it: 'should load groups page', url: `/groups` }, + { it: 'should get recent posts', url: `/api/recent/posts/month` }, + { it: 'should get post data', url: `/api/v3/posts/1` }, + { it: 'should get topic data', url: `/api/v3/topics/1` }, + { it: 'should get category data', url: `/api/v3/categories/1` }, + { it: 'should return osd data', url: `/osd.xml` }, + { it: 'should load service worker', url: '/service-worker.js' }, + ]; testRoutes.forEach((route) => { it(route.it, async () => { const { response, body } = await request.get(`${baseUrl}/${route.url}`); @@ -1915,12 +1914,12 @@ describe('Controllers', () => { }); it('should deny access if view:users privilege is not enabled for guests', async () => { - await privileges.global.rescind(['groups:view:users'], 'guests'); + await privileges.global.rescind(['groups:view:users'], 'fediverse'); const { response } = await request.get(`${nconf.get('url')}/.well-known/webfinger?resource=acct:${username}@${nconf.get('url_parsed').host}`); assert.strictEqual(response.statusCode, 400); - await privileges.global.give(['groups:view:users'], 'guests'); + await privileges.global.give(['groups:view:users'], 'fediverse'); }); it('should respond appropriately if the user requested does not exist locally', async () => { diff --git a/test/posts.js b/test/posts.js index 20403e24cf..2ec2faf24c 100644 --- a/test/posts.js +++ b/test/posts.js @@ -86,7 +86,7 @@ describe('Post\'s', () => { assert.deepStrictEqual(await db.sortedSetScores(`tid:${postResult.topicData.tid}:posters`, [oldUid, newUid]), [2, null]); - await posts.changeOwner([pid1, pid2], newUid); + await socketPosts.changeOwner({ uid: globalModUid }, { pids: [pid1, pid2], toUid: newUid }); assert.deepStrictEqual(await db.sortedSetScores(`tid:${postResult.topicData.tid}:posters`, [oldUid, newUid]), [null, 2]); @@ -1072,6 +1072,65 @@ describe('Post\'s', () => { }); }); + describe('post editors', () => { + it('should fail with invalid data', async () => { + await assert.rejects( + socketPosts.saveEditors({ uid: 0 }, { + pid: 1, + uids: [1], + }), + { message: '[[error:no-privileges]]' }, + ); + await assert.rejects( + socketPosts.saveEditors({ uid: 0 }, null), + { message: '[[error:invalid-data]]' }, + ); + await assert.rejects( + socketPosts.saveEditors({ uid: 0 }, { + pid: null, + uids: [1], + }), + { message: '[[error:invalid-data]]' }, + ); + await assert.rejects( + socketPosts.saveEditors({ uid: 0 }, { + pid: 1, + uids: null, + }), + { message: '[[error:invalid-data]]' }, + ); + + await assert.rejects( + socketPosts.getEditors({ uid: 0 }, null), + { message: '[[error:invalid-data]]' }, + ); + + await assert.rejects( + socketPosts.saveEditors({ uid: 0 }, { pid: null }), + { message: '[[error:invalid-data]]' }, + ); + }); + + it('should add another user to post editors', async () => { + const ownerUid = await user.create({ username: 'owner user' }); + const editorUid = await user.create({ username: 'editor user' }); + const topic = await topics.post({ + uid: ownerUid, + cid, + title: 'just a topic for multi editor testing', + content: `Some text here for the OP`, + }); + const { pid } = topic.postData; + await socketPosts.saveEditors({ uid: ownerUid }, { + pid: pid, + uids: [editorUid], + }); + + const userData = await socketPosts.getEditors({ uid: ownerUid }, { pid: pid }); + assert.strictEqual(userData[0].username, 'editor user'); + }); + }); + describe('Topic Backlinks', () => { let tid1; before(async () => { diff --git a/test/socket.io.js b/test/socket.io.js index 9f2aeebbb6..8fd2895809 100644 --- a/test/socket.io.js +++ b/test/socket.io.js @@ -199,6 +199,26 @@ describe('socket.io', () => { assert(Array.isArray(users[0].groups)); }); + it('should error with invalid data set user reputation', async () => { + await assert.rejects( + socketAdmin.user.setReputation({ uid: adminUid }, null), + { message: '[[error:invalid-data]]' } + ); + await assert.rejects( + socketAdmin.user.setReputation({ uid: adminUid }, {}), + { message: '[[error:invalid-data]]' } + ); + await assert.rejects( + socketAdmin.user.setReputation({ uid: adminUid }, { uids: [], value: null }), + { message: '[[error:invalid-data]]' } + ); + }); + + it('should set user reputation', async () => { + await socketAdmin.user.setReputation({ uid: adminUid }, { uids: [adminUid], value: 10 }); + assert.strictEqual(10, await db.sortedSetScore('users:reputation', adminUid)); + }); + it('should reset lockouts', (done) => { socketAdmin.user.resetLockouts({ uid: adminUid }, [regularUid], (err) => { assert.ifError(err); diff --git a/test/template-helpers.js b/test/template-helpers.js index f01bdd642c..b0bbb334c5 100644 --- a/test/template-helpers.js +++ b/test/template-helpers.js @@ -52,6 +52,17 @@ describe('helpers', () => { done(); }); + it('should return true if route is visible', (done) => { + const flag = helpers.displayMenuItem({ + navigation: [{ route: '/recent' }], + user: { + privileges: {}, + }, + }, 0); + assert(flag); + done(); + }); + it('should stringify object', (done) => { const str = helpers.stringify({ a: 'herp < derp > and & quote "' }); assert.equal(str, '{"a":"herp < derp > and & quote \\""}'); @@ -64,7 +75,57 @@ describe('helpers', () => { done(); }); + it('should build category icon', (done) => { + assert.strictEqual( + helpers.buildCategoryIcon({ + bgColor: '#ff0000', + color: '#00ff00', + backgroundImage: '/assets/uploads/image.png', + imageClass: 'auto', + }, 16, 'rounded-circle'), + '' + ); + assert.strictEqual( + helpers.buildCategoryIcon({ + bgColor: '#ff0000', + color: '#00ff00', + backgroundImage: '/assets/uploads/image.png', + imageClass: 'auto', + icon: 'fa-book', + }, 16, 'rounded-circle'), + '' + ); + done(); + }); + + it('should build category label', (done) => { + assert.strictEqual( + helpers.buildCategoryLabel({ + bgColor: '#ff0000', + color: '#00ff00', + backgroundImage: '/assets/uploads/image.png', + imageClass: 'auto', + name: 'Category 1', + }, 'a', ''), + `\n\t\t\t\n\t\t\tCategory 1\n\t\t` + ); + assert.strictEqual( + helpers.buildCategoryLabel({ + bgColor: '#ff0000', + color: '#00ff00', + backgroundImage: '/assets/uploads/image.png', + imageClass: 'auto', + name: 'Category 1', + icon: 'fa-book', + }, 'span', 'rounded-1'), + `\n\t\t\t\n\t\t\tCategory 1\n\t\t`, + ); + done(); + }); + it('should return empty string if category is falsy', (done) => { + assert.equal(helpers.buildCategoryIcon(null), ''); + assert.equal(helpers.buildCategoryLabel(null), ''); assert.equal(helpers.generateCategoryBackground(null), ''); done(); }); @@ -169,16 +230,16 @@ describe('helpers', () => { }); it('should render thumb as topic image', (done) => { - const topicObj = { thumb: '/uploads/1.png', user: { username: 'baris' } }; + const topicObj = { thumb: '/uploads/1.png', user: { username: 'baris', displayname: 'Baris Soner Usakli' } }; const html = helpers.renderTopicImage(topicObj); - assert.equal(html, ``); + assert.equal(html, ``); done(); }); it('should render user picture as topic image', (done) => { - const topicObj = { thumb: '', user: { uid: 1, username: 'baris', picture: '/uploads/2.png' } }; + const topicObj = { thumb: '', user: { uid: 1, username: 'baris', displayname: 'Baris Soner Usakli', picture: '/uploads/2.png' } }; const html = helpers.renderTopicImage(topicObj); - assert.equal(html, ``); + assert.equal(html, ``); done(); }); @@ -251,4 +312,34 @@ describe('helpers', () => { assert.equal(html, ''); done(); }); + + it('should generate replied to or wrote based on toPid', (done) => { + const now = Date.now(); + const iso = new Date().toISOString(); + let post = { pid: 2, toPid: 1, timestamp: now, timestampISO: iso, parent: { displayname: 'baris' } }; + let str = helpers.generateWroteReplied(post, 1); + assert.strictEqual(str, `[[topic:replied-to-user-ago, 1, ${nconf.get('relative_path')}/post/1, baris, ${nconf.get('relative_path')}/post/2, ${iso}]]`); + + post = { pid: 2, toPid: 1, timestamp: now, timestampISO: iso, parent: { displayname: 'baris' } }; + str = helpers.generateWroteReplied(post, -1); + assert.strictEqual(str, `[[topic:replied-to-user-on, 1, ${nconf.get('relative_path')}/post/1, baris, ${nconf.get('relative_path')}/post/2, ${iso}]]`); + + post = { pid: 2, timestamp: now, timestampISO: iso, parent: { displayname: 'baris' } }; + str = helpers.generateWroteReplied(post, 1); + assert.strictEqual(str, `[[topic:wrote-ago, ${nconf.get('relative_path')}/post/2, ${iso}]]`); + + str = helpers.generateWroteReplied(post, -1); + assert.strictEqual(str, `[[topic:wrote-on, ${nconf.get('relative_path')}/post/2, ${iso}]]`); + + done(); + }); + + it('should generate placeholder wave', (done) => { + const items = [2, 'divider', 3]; + const str = helpers.generatePlaceholderWave(items); + assert(str.includes('dropdown-divider')); + assert(str.includes('col-2')); + assert(str.includes('col-3')); + done(); + }); }); diff --git a/test/translator.js b/test/translator.js index 61c3d5af8e..017efd3ce2 100644 --- a/test/translator.js +++ b/test/translator.js @@ -41,6 +41,36 @@ describe('Translator shim', () => { assert.strictEqual(t, 'secret'); }); }); + + describe('translateKeys', () => { + it('should translate each key in array', async () => { + const translated = await shim.translateKeys(['[[global:home]]', '[[global:search]]'], 'en-GB'); + assert.deepStrictEqual(translated, ['Home', 'Search']); + }); + + it('should translate each key in array using a callback', (done) => { + shim.translateKeys(['[[global:save]]', '[[global:close]]'], 'en-GB', (translated) => { + assert.deepStrictEqual(translated, ['Save', 'Close']); + done(); + }); + }); + }); + + it('should load translations for language', (done) => { + shim.load('en-GB', 'global', (translations) => { + assert(translations); + assert(translations['header.profile']); + done(); + }); + }); + + it('should get translations for language', (done) => { + shim.getTranslations('en-GB', 'global', (translations) => { + assert(translations); + assert(translations['header.profile']); + done(); + }); + }); }); describe('new Translator(language)', () => { diff --git a/test/user/custom-fields.js b/test/user/custom-fields.js new file mode 100644 index 0000000000..8e4bb0e5c3 --- /dev/null +++ b/test/user/custom-fields.js @@ -0,0 +1,124 @@ +'use strict'; + +const nconf = require('nconf'); +const assert = require('assert'); +const async = require('async'); + +const db = require('../mocks/databasemock'); + +const user = require('../../src/user'); +const groups = require('../../src/groups'); + +const request = require('../../src/request'); +const socketUser = require('../../src/socket.io/user'); +const adminUser = require('../../src/socket.io/admin/user'); + + +describe('custom user fields', () => { + let adminUid; + let lowRepUid; + let highRepUid; + before(async () => { + adminUid = await user.create({ username: 'admin' }); + await groups.join('administrators', adminUid); + lowRepUid = await user.create({ username: 'lowRepUser' }); + highRepUid = await user.create({ username: 'highRepUser' }); + await db.setObjectField(`user:${highRepUid}`, 'reputation', 10); + await db.sortedSetAdd(`users:reputation`, 10, highRepUid); + }); + + it('should create custom user fields', async () => { + const fields = [ + { key: 'website', icon: 'fa-solid fa-globe', name: 'Website', type: 'input-link', visibility: 'all', 'min:rep': 0 }, + { key: 'location', icon: 'fa-solid fa-pin', name: 'Location', type: 'input-text', visibility: 'all', 'min:rep': 0 }, + { key: 'favouriteDate', icon: '', name: 'Anniversary', type: 'input-date', visibility: 'all', 'min:rep': 0 }, + { key: 'favouriteLanguages', icon: 'fa-solid fa-code', name: 'Favourite Languages', type: 'select-multi', visibility: 'all', 'min:rep': 0, 'select-options': 'C++\nC\nJavascript\nPython\nAssembly' }, + { key: 'luckyNumber', icon: 'fa-solid fa-dice', name: 'Lucky Number', type: 'input-number', visibility: 'privileged', 'min:rep': 7 }, + { key: 'soccerTeam', icon: 'fa-regular fa-futbol', name: 'Soccer Team', type: 'select', visibility: 'all', 'min:rep': 0, 'select-options': 'Barcelona\nLiverpool\nArsenal\nGalatasaray\n' }, + ]; + await adminUser.saveCustomFields({ uid: adminUid }, fields); + }); + + it('should fail to update a field if user does not have enough reputation', async () => { + await assert.rejects( + user.updateProfile(lowRepUid, { + uid: lowRepUid, + luckyNumber: 13, + }), + { message: '[[error:not-enough-reputation-custom-field, 7, Lucky Number]]' }, + ); + }); + + it('should fail with invalid field data', async () => { + await assert.rejects( + user.updateProfile(highRepUid, { + uid: highRepUid, + location: new Array(300).fill('a').join(''), + }), + { message: '[[error:custom-user-field-value-too-long, Location]]' }, + ); + + await assert.rejects( + user.updateProfile(highRepUid, { + uid: highRepUid, + luckyNumber: 'not-a-number', + }), + { message: '[[error:custom-user-field-invalid-number, Lucky Number]]' }, + ); + + await assert.rejects( + user.updateProfile(highRepUid, { + uid: highRepUid, + location: 'https://spam.com', + }), + { message: '[[error:custom-user-field-invalid-text, Location]]' }, + ); + + await assert.rejects( + user.updateProfile(highRepUid, { + uid: highRepUid, + favouriteDate: 'not-a-date', + }), + { message: '[[error:custom-user-field-invalid-date, Anniversary]]' }, + ); + + await assert.rejects( + user.updateProfile(highRepUid, { + uid: highRepUid, + website: 'not-a-url', + }), + { message: '[[error:custom-user-field-invalid-link, Website]]' }, + ); + + await assert.rejects( + user.updateProfile(highRepUid, { + uid: highRepUid, + soccerTeam: 'not-in-options', + }), + { message: '[[error:custom-user-field-select-value-invalid, Soccer Team]]' }, + ); + + await assert.rejects( + user.updateProfile(highRepUid, { + uid: highRepUid, + favouriteLanguages: '["not-in-options"]', + }), + { message: '[[error:custom-user-field-select-value-invalid, Favourite Languages]]' }, + ); + }); + + it('should update a users custom fields if they have enough reputation', async () => { + await user.updateProfile(highRepUid, { + uid: highRepUid, + website: 'https://nodebb.org', + location: 'Toronto', + favouriteDate: '2014-05-01', + favouriteLanguages: '["Javascript", "Python"]', + luckyNumber: 13, + soccerTeam: 'Galatasaray', + }); + + const { body } = await request.get(`${nconf.get('url')}/api/user/highrepuser`); + assert.strictEqual(body.website, 'https://nodebb.org'); + }); +}); diff --git a/test/utils.js b/test/utils.js index 2d3edb7ff0..2cd422bdb6 100644 --- a/test/utils.js +++ b/test/utils.js @@ -199,10 +199,9 @@ describe('Utility Methods', () => { utils.assertPasswordValidity('Yzsh31j!a', zxcvbn); }); - // it('should generate UUID', () => { - // TODO: add back when nodejs 18 is minimum - // assert(validator.isUUID(utils.generateUUID())); - // }); + it('should generate UUID', () => { + assert(validator.isUUID(utils.generateUUID())); + }); it('should shallow merge two objects', (done) => { const a = { foo: 1, cat1: 'ginger' }; @@ -502,4 +501,77 @@ describe('Utility Methods', () => { assert.strictEqual(result.user1.uid, uid1); assert.strictEqual(result.user2.uid, uid2); }); + + describe('debounce/throttle', () => { + it('should call function after x milliseconds once', (done) => { + let count = 0; + const now = Date.now(); + const fn = utils.debounce(() => { + count += 1; + assert.strictEqual(count, 1); + assert(Date.now() - now > 50); + }, 100); + fn(); + fn(); + setTimeout(() => done(), 200); + }); + + it('should call function first if immediate=true', (done) => { + let count = 0; + const now = Date.now(); + const fn = utils.debounce(() => { + count += 1; + assert.strictEqual(count, 1); + assert(Date.now() - now < 50); + }, 100, true); + fn(); + fn(); + setTimeout(() => done(), 200); + }); + + it('should call function after x milliseconds once', (done) => { + let count = 0; + const now = Date.now(); + const fn = utils.throttle(() => { + count += 1; + assert.strictEqual(count, 1); + assert(Date.now() - now > 50); + }, 100); + fn(); + fn(); + setTimeout(() => done(), 200); + }); + + it('should call function twice if immediate=true', (done) => { + let count = 0; + const fn = utils.throttle(() => { + count += 1; + }, 100, true); + fn(); + fn(); + setTimeout(() => { + assert.strictEqual(count, 2); + done(); + }, 200); + }); + }); + + describe('Translator', () => { + const shim = require('../src/translator'); + + const { Translator } = shim; + it('should translate in place', async () => { + const translator = Translator.create('en-GB'); + const el = $(`
[[global:home]]
`); + await translator.translateInPlace(el.get(0)); + assert.strictEqual(el.find('#text').text(), 'Home'); + assert.strictEqual(el.find('#search').attr('title'), 'Search'); + }); + + it('should not error', (done) => { + shim.flush(); + shim.flushNamespace(); + done(); + }); + }); });