diff --git a/CODEOWNERS b/CODEOWNERS index a2e9f9dc92a2b..4bced546aa22f 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -1,3 +1,12 @@ +# Dev Experience (Block API, Dev Tools, Registry, Plugin API) +/frontend/discourse/app/blocks/ @discourse/dev-xp +/frontend/discourse/app/lib/blocks/ @discourse/dev-xp +/frontend/discourse/app/services/blocks.js @discourse/dev-xp +/frontend/discourse/app/static/dev-tools/ @discourse/dev-xp +/frontend/discourse/app/lib/registry/ @discourse/dev-xp +/frontend/discourse/app/lib/plugin-api.gjs @discourse/dev-xp + +# Migrations tooling /migrations/ @discourse/migrations-tooling /script/bulk_import/ @discourse/migrations-tooling /script/import_scripts/ @discourse/migrations-tooling diff --git a/Gemfile.lock b/Gemfile.lock index 9ad6e8887f387..a86beec6710a5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -143,7 +143,7 @@ GEM discourse-seed-fu (2.3.12) activerecord (>= 3.1) activesupport (>= 3.1) - discourse_ai-tokenizers (0.4) + discourse_ai-tokenizers (0.4.2) activesupport (>= 6.0) tiktoken_ruby (~> 0.0.15) tokenizers (~> 0.6.3) @@ -252,12 +252,13 @@ GEM base64 kgio (2.11.4) language_server-protocol (3.17.0.5) - libv8-node (24.1.0.0) - libv8-node (24.1.0.0-aarch64-linux) - libv8-node (24.1.0.0-arm64-darwin) - libv8-node (24.1.0.0-x86_64-darwin) - libv8-node (24.1.0.0-x86_64-linux) - libv8-node (24.1.0.0-x86_64-linux-musl) + libv8-node (24.12.0.1) + libv8-node (24.12.0.1-aarch64-linux) + libv8-node (24.12.0.1-aarch64-linux-musl) + libv8-node (24.12.0.1-arm64-darwin) + libv8-node (24.12.0.1-x86_64-darwin) + libv8-node (24.12.0.1-x86_64-linux) + libv8-node (24.12.0.1-x86_64-linux-musl) lint_roller (1.1.0) listen (3.9.0) rb-fsevent (~> 0.10, >= 0.10.3) @@ -295,8 +296,8 @@ GEM mime-types-data (~> 3.2025, >= 3.2025.0507) mime-types-data (3.2025.0924) mini_mime (1.1.5) - mini_racer (0.19.1) - libv8-node (~> 24.1.0.0) + mini_racer (0.19.2) + libv8-node (~> 24.12.0.1) mini_scheduler (0.18.0) sidekiq (>= 6.5, < 8.0) mini_sql (1.6.0) @@ -977,7 +978,7 @@ CHECKSUMS discourse-emojis (1.0.44) sha256=63425a32379fb471d58f5eac9a1e931fc5a94efb7d327f71f1580af4dfe4edb3 discourse-fonts (0.0.19) sha256=78d4ddd671615908303a675427039d8d787c935e6deae184c6e143c18c6e0033 discourse-seed-fu (2.3.12) sha256=4f61d95c11ed54609046cd04eb3a51b531c5fa863fa86d1bea7d74264e5c75e4 - discourse_ai-tokenizers (0.4) sha256=54d7ddcc5479f3bb3057b90f4a85106b4602a07336b51d372c1a1dd8f08104c5 + discourse_ai-tokenizers (0.4.2) sha256=61c2f254582a3ae69255115b2b072904361003612b5b0f52aa64773817aae413 discourse_dev_assets (0.0.6) sha256=4dfe7946927aa3d61a4ba89b5aef39d6daaeb70e35d7125dc481806a5c0aea4e discourse_math_bundle (1.0.1) sha256=c7d82fa65c9680cab2f77daeba32c1b89e500faccd2269e050ab27d5e1bc8337 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e @@ -1039,12 +1040,13 @@ CHECKSUMS jwt (2.10.1) sha256=e6424ae1d813f63e761a04d6284e10e7ec531d6f701917fadcd0d9b2deaf1cc5 kgio (2.11.4) sha256=bda7a2146115998a5b07154e708e0ac02c38dcee7e793c33e2e14f600fdfffc6 language_server-protocol (3.17.0.5) sha256=fd1e39a51a28bf3eec959379985a72e296e9f9acfce46f6a79d31ca8760803cc - libv8-node (24.1.0.0) sha256=2f0e9ac629c4c5753eaf7001952bb6dce4eb596f3dc0df3049ee7d9cfb9471cd - libv8-node (24.1.0.0-aarch64-linux) sha256=fe7787bdb082d1101f65d8f42572ec6c634776a334d82b9fedded152e1d4f358 - libv8-node (24.1.0.0-arm64-darwin) sha256=f34bdd85787a32a16db137ffbe83feb1cd09f4d69ff3c43cd2f0a675656ee16b - libv8-node (24.1.0.0-x86_64-darwin) sha256=243cfae376d7d54b02fb9e8cfd2a2a08e791d066fb78252925a825f05805083b - libv8-node (24.1.0.0-x86_64-linux) sha256=0857486e64f7bd4133d4aa607c42d0abade1ab53dffcbfd30f12e0b7dba8f157 - libv8-node (24.1.0.0-x86_64-linux-musl) sha256=080a243ac014054780cc0d0be2c18b93642a139d09622c0cfd1ebc8614d24437 + libv8-node (24.12.0.1) sha256=d93d23b861bfe5de3ba829e34a142402fb83b4c3592dd58d9ac4e027588d739a + libv8-node (24.12.0.1-aarch64-linux) sha256=22bd0246cde85d70c88cf772727ac3677a20ac1d169105f82efe5f1f7c39f755 + libv8-node (24.12.0.1-aarch64-linux-musl) sha256=791b5960f79525e87d1bd1e5f2bf3715ef2a38bac6c97f297853e98a8411ba89 + libv8-node (24.12.0.1-arm64-darwin) sha256=124904a46b4a15c01ac024b4cf537dcf199cfb49a309cc59f66315e156e48339 + libv8-node (24.12.0.1-x86_64-darwin) sha256=5eee594393e7a27dc230a7fca5f9f72fc11ed58bce655624a683f4d027bf2d16 + libv8-node (24.12.0.1-x86_64-linux) sha256=e1236be4765edc109bd6ecef2989cf781bdcbac6f6e2cb3236ec9568540a9cfa + libv8-node (24.12.0.1-x86_64-linux-musl) sha256=7563175534c40893815bfd28e8fe27e12ff1656700c7208f53de06d14001712b lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 listen (3.9.0) sha256=db9e4424e0e5834480385197c139cb6b0ae0ef28cc13310cfd1ca78377d59c67 literate_randomizer (0.4.0) sha256=05073c9b383983b1ed7e26c40b963468e91bc86e663b3eeff3a4af91b84217b1 @@ -1065,7 +1067,7 @@ CHECKSUMS mime-types (3.7.0) sha256=dcebf61c246f08e15a4de34e386ebe8233791e868564a470c3fe77c00eed5e56 mime-types-data (3.2025.0924) sha256=f276bca15e59f35767cbcf2bc10e023e9200b30bd6a572c1daf7f4cc24994728 mini_mime (1.1.5) sha256=8681b7e2e4215f2a159f9400b5816d85e9d8c6c6b491e96a12797e798f8bccef - mini_racer (0.19.1) sha256=3e4ec1bfbb3ebb39c23d8fc4b6e641b5dc6767a173a8938356c271895e5d6de3 + mini_racer (0.19.2) sha256=ef3328e7e164d5ef2d38bb25d0da0fde3a9199a6f467461dd5f5e0b6443dd7ef mini_scheduler (0.18.0) sha256=d2f084f38da8d76c5844a92f0d6bd01fc9982a8b5e6c7679b6cf44c82da33503 mini_sql (1.6.0) sha256=5296637f6a4af5bb43e06788037e9a2968ff9c8eb65928befcba8cb41f42d6ee mini_suffix (0.3.3) sha256=8d1d33f92f69a2247c9b7d27173235da90479d955cdb863b63a7f53843b722e7 diff --git a/app/assets/stylesheets/admin/admin_report.scss b/app/assets/stylesheets/admin/admin_report.scss index 770655677d439..910bc79cfc95c 100644 --- a/app/assets/stylesheets/admin/admin_report.scss +++ b/app/assets/stylesheets/admin/admin_report.scss @@ -279,3 +279,7 @@ } } } + +.admin-reports-group { + margin-block: var(--space-4) var(--space-8); +} diff --git a/app/assets/stylesheets/admin/admin_section_landing_page.scss b/app/assets/stylesheets/admin/admin_section_landing_page.scss index 5dc907fc9edda..63cf6129a6027 100644 --- a/app/assets/stylesheets/admin/admin_section_landing_page.scss +++ b/app/assets/stylesheets/admin/admin_section_landing_page.scss @@ -4,7 +4,6 @@ display: grid; grid-template-columns: repeat(auto-fill, minmax(16em, 1fr)); gap: 1em 2em; - margin-top: 1em; padding-top: 1em; .admin-section-landing-item { diff --git a/app/assets/stylesheets/admin/dashboard.scss b/app/assets/stylesheets/admin/dashboard.scss index eaf802aab59b9..2804b0525c440 100644 --- a/app/assets/stylesheets/admin/dashboard.scss +++ b/app/assets/stylesheets/admin/dashboard.scss @@ -741,17 +741,6 @@ } } -.admin-new-feature-item__header-experimental { - color: var(--tertiary); - background-color: var(--tertiary-very-low); - padding: 0.5em; - font-size: var(--font-down-3); - margin-left: 0.5rem; - font-weight: 400; - border-radius: var(--d-border-radius); - display: inline-block; -} - .admin-new-feature-item__body { display: flex; justify-content: space-between; @@ -825,13 +814,3 @@ } } } - -.admin-new-features__experiments-filter { - display: flex; - margin-bottom: 1em; - align-items: center; - - .d-toggle-switch { - margin-right: 0.5em; - } -} diff --git a/app/assets/stylesheets/common/base/faqs.scss b/app/assets/stylesheets/common/base/faqs.scss index bb5d28488cac1..fea77aaaa2a13 100644 --- a/app/assets/stylesheets/common/base/faqs.scss +++ b/app/assets/stylesheets/common/base/faqs.scss @@ -30,6 +30,8 @@ .nav-pills { margin: 0 0 2em; + gap: 0; + overflow: auto; } ul:not(.nav-pills), diff --git a/app/assets/stylesheets/common/base/onebox.scss b/app/assets/stylesheets/common/base/onebox.scss index 735a537750083..0bd69c6e5798c 100644 --- a/app/assets/stylesheets/common/base/onebox.scss +++ b/app/assets/stylesheets/common/base/onebox.scss @@ -950,13 +950,48 @@ aside.onebox.xkcd .onebox-body img { } .onebox.reddit { - div.aspect-image-full-size { - position: relative; - } - div.description { color: var(--primary-med-or-secondary-med); } + + .onebox-body.reddit-preview-onebox { + display: flex; + gap: 0.75em; + + .reddit-preview-thumbnail { + flex-shrink: 0; + max-width: 150px; + + // neutralize the legacy float/absolute-position system + .aspect-image { + position: relative; + width: auto; + height: auto; + max-width: 100%; + max-height: none; + float: none; + margin: 0; + } + + .aspect-image img, + > img { + position: static; + width: auto; + height: auto; + max-width: 100%; + max-height: 170px; + float: none; + } + } + + .reddit-preview-details { + flex: 1; + min-width: 0; + display: flex; + flex-direction: column; + justify-content: space-between; + } + } } .onebox.githubfolder { diff --git a/app/assets/stylesheets/common/base/reviewables.scss b/app/assets/stylesheets/common/base/reviewables.scss index 93e4e00fb2de9..c86777cf3ea86 100644 --- a/app/assets/stylesheets/common/base/reviewables.scss +++ b/app/assets/stylesheets/common/base/reviewables.scss @@ -7,12 +7,6 @@ margin-bottom: 1em; } - .flagged-post-header { - width: 100%; - display: flex; - justify-content: space-between; - } - .status { color: var(--primary-medium); @@ -378,24 +372,6 @@ } } - .reviewable-post-header { - display: flex; - justify-content: space-between; - align-items: center; - max-width: 100%; - - .reviewable-reply-to { - display: flex; - align-items: center; - color: var(--primary-medium); - font-size: 0.9em; - - .d-icon { - margin-right: 0.5em; - } - } - } - .post-contents { width: 100%; min-width: 0; // Flexbox fix @@ -548,25 +524,6 @@ font-weight: bold; } - .reviewable-contents { - display: flex; - flex-wrap: wrap; - margin: 1.5rem 0 1rem; - background: var(--secondary); - padding: 1rem; - - @include viewport.until(sm) { - .reviewable-post-header, - .post-body { - max-width: 100%; - - p { - overflow-x: scroll; - } - } - } - } - .reviewable-actions { display: flex; flex-wrap: wrap; @@ -583,13 +540,6 @@ opacity: 0.7; } -.reviewable-deleted { - .reviewable-contents .post-contents .post-body { - background-color: var(--danger-low-mid); - padding: 0.5em; - } -} - .blur-images { img:not(.avatar, .emoji) { filter: blur(10px); diff --git a/app/assets/stylesheets/common/base/topic-post.scss b/app/assets/stylesheets/common/base/topic-post.scss index 9e5f81a50d93e..11088d7e13640 100644 --- a/app/assets/stylesheets/common/base/topic-post.scss +++ b/app/assets/stylesheets/common/base/topic-post.scss @@ -410,6 +410,7 @@ nav.post-controls { justify-content: space-between; color: var(--d-post-control-text-color); user-select: none; + overflow-x: auto; .fade-out { .discourse-no-touch & { @@ -428,7 +429,6 @@ nav.post-controls { --control-space: 0.58em; --control-space-small: calc(var(--control-space) / 2); --control-space-large: calc(var(--control-space) * 1.3); - overflow-x: auto; } .actions { diff --git a/app/assets/stylesheets/common/base/uc-modernize-foundation-theme.scss b/app/assets/stylesheets/common/base/uc-modernize-foundation-theme.scss index 4007f315a184b..9044f159ac464 100644 --- a/app/assets/stylesheets/common/base/uc-modernize-foundation-theme.scss +++ b/app/assets/stylesheets/common/base/uc-modernize-foundation-theme.scss @@ -72,7 +72,7 @@ } .btn.no-text.btn-icon { - &:not(.user-menu-tab, .user-menu-tab-active) { + &:not(.user-menu-tab, .user-menu-tab-active, .dropdown-select-box-header) { width: var(--button-height); } } diff --git a/app/assets/stylesheets/common/base/uc-simplified-category-setup-edit-categories.scss b/app/assets/stylesheets/common/base/uc-simplified-category-setup-edit-categories.scss index 76e08a7282b50..db40725be9756 100644 --- a/app/assets/stylesheets/common/base/uc-simplified-category-setup-edit-categories.scss +++ b/app/assets/stylesheets/common/base/uc-simplified-category-setup-edit-categories.scss @@ -1,16 +1,86 @@ @use "lib/viewport"; .uc-enable-simplified-category-creation { - .select-kit.multi-select.group-chooser { - width: var(--form-kit-large-input); + .edit-category-tab-security { + .alert { + --permission-table-max-width: var(--form-kit-max-input); + } + } - @include viewport.until(sm) { - width: 100%; + .form-kit__container-content { + width: 100%; + } + + .edit-category-tab:not(.edit-category-tab-general) { + .form-kit__container-optional { + display: none; } } + .category-permissions-table { + --permission-table-max-width: var(--form-kit-max-input); + width: 100%; + } + div.edit-category { display: block; + max-width: 75ch; + width: 100%; + margin: 0 auto; + + .form-kit { + padding-bottom: 6em; // space for save footer + } + + .form-kit__field-toggle { + flex-direction: column; + width: 100%; + gap: 0.5em; + align-items: start; + + .form-kit__container-content { + align-items: flex-start; + } + } + + .form-kit__conditional-display-content { + // prevent content shift when changing style options + min-height: 2.8em; + + &:has(.badge-category__wrapper) { + justify-content: center; + } + } + + .--radio-cards { + width: var(--form-kit-max-input); + + .form-kit__container-title { + max-width: var(--form-kit-max-input); + width: 100%; + } + + .form-kit__conditional-display-content { + .form-kit__container { + flex-direction: column; + } + } + } + + .select-kit.multi-select.group-chooser { + max-width: var(--form-kit-max-input); + width: 100%; + } + + .edit-category-tab-settings label, + .edit-category-tab-tags label, + .edit-category-tab-settings input[type="text"], + .edit-category-tab-settings .select-kit, + .edit-category-tab-tags input[type="text"], + .edit-category-tab-tags .select-kit { + width: 100%; + max-width: var(--form-kit-max-input); + } .add-required-tag-group { align-self: start; @@ -69,12 +139,6 @@ } } - .edit-category-tab-security { - .form-kit__container-content { - width: 100%; - } - } - .edit-category-title-text { display: flex; flex-direction: column; @@ -98,11 +162,9 @@ } } - .category-permissions-table { - width: 100%; - } - .form-kit__errors-summary { + width: 100%; + max-width: var(--form-kit-max-input); margin-top: var(--space-4); + .form-kit__section.edit-category-content { @@ -111,11 +173,6 @@ } .form-kit__conditional-display { - .badge-category__wrapper { - min-height: 2.6em; - top: var(--space-1); - } - .form-kit__container-content:has(.is-disabled) { // select-kit has pointer-events disabled, so we need to style the parent cursor: not-allowed; @@ -126,4 +183,25 @@ padding: 0; margin-bottom: var(--space-4); } + + .edit-category-tab-localizations { + .btn-default { + align-self: start; + } + } + + #main-outlet:has(.edit-category) + .powered-by-discourse { + display: none; // hide for now due to alignment + } + + .admin-changes-banner { + max-width: var(--form-kit-max-input); + flex-direction: row-reverse; + align-items: center; + + .controls { + flex-direction: row-reverse; + margin-right: auto; + } + } } diff --git a/app/assets/stylesheets/common/base/upload.scss b/app/assets/stylesheets/common/base/upload.scss index 2b1d6a41c4bad..bfbcd05969d19 100644 --- a/app/assets/stylesheets/common/base/upload.scss +++ b/app/assets/stylesheets/common/base/upload.scss @@ -12,12 +12,16 @@ position: relative; max-width: 400px; width: 100%; - height: 80px; + height: 125px; box-sizing: border-box; border-radius: var(--d-input-border-radius); background-origin: content-box; background-clip: content-box; + &:has(.lightbox) { + height: 85px; // ~125px with controls visible to match above height + } + &:focus, &:focus-within { border-color: var(--tertiary); diff --git a/app/assets/stylesheets/common/components/admin-onboarding-banner.scss b/app/assets/stylesheets/common/components/admin-onboarding-banner.scss index 4622de376fef8..7e502ae56b66b 100644 --- a/app/assets/stylesheets/common/components/admin-onboarding-banner.scss +++ b/app/assets/stylesheets/common/components/admin-onboarding-banner.scss @@ -103,3 +103,55 @@ } } } + +.start-posting-options-modal { + .modal-options { + display: flex; + flex-direction: column; + gap: var(--space-8); + } + + .option { + p { + margin: var(--space-2) 0; + } + } +} + +.predefined-topic-options-modal { + &__list { + display: flex; + flex-direction: column; + gap: var(--space-4); + } + + &__card { + display: flex; + flex-direction: column; + align-items: start; + text-align: left; + width: 100%; + padding: var(--space-4); + border: 1px solid var(--content-border-color); + border-radius: var(--d-border-radius); + background: var(--secondary); + + &:focus-visible, + &:hover { + outline: 2px solid var(--tertiary); + + .predefined-topic-options-modal__title { + color: var(--tertiary); + } + } + } + + &__title { + display: block; + font-weight: bold; + } + + &__body { + max-width: var(--modal-max-width); + } +} diff --git a/app/assets/stylesheets/common/components/filter-input.scss b/app/assets/stylesheets/common/components/filter-input.scss index 55d861ba848ef..fff3c00abfdc8 100644 --- a/app/assets/stylesheets/common/components/filter-input.scss +++ b/app/assets/stylesheets/common/components/filter-input.scss @@ -12,12 +12,18 @@ @include default-focus; } + .d-icon + .filter-input { + padding-left: 0; + } + .filter-input, .filter-input:focus { width: 100%; margin: 0; border: none; outline: none; + border-radius: 0; + clip-path: fill-box; @include viewport.from(md) { .chat-browse-view__actions & { diff --git a/app/assets/stylesheets/common/components/table-layout.scss b/app/assets/stylesheets/common/components/table-layout.scss index ea58b647ebcc5..6097761560724 100644 --- a/app/assets/stylesheets/common/components/table-layout.scss +++ b/app/assets/stylesheets/common/components/table-layout.scss @@ -138,6 +138,17 @@ color: var(--primary); } + .d-table__overview-link { + color: var(--primary); + + .d-table__overview-name { + &:hover, + &:focus { + color: var(--tertiary); + } + } + } + a.d-table__overview-name { &:visited { color: currentcolor; diff --git a/app/assets/stylesheets/common/float-kit/_index.scss b/app/assets/stylesheets/common/float-kit/_index.scss index 6754da592bcc4..ca662b2d08c79 100644 --- a/app/assets/stylesheets/common/float-kit/_index.scss +++ b/app/assets/stylesheets/common/float-kit/_index.scss @@ -3,3 +3,9 @@ @import "d-button-tooltip"; @import "d-toasts"; @import "d-default-toast"; +@import "d-sheet"; +@import "d-sheet-header"; +@import "d-scroll"; +@import "d-card"; +@import "d-stack"; +@import "bottom-sheet"; diff --git a/app/assets/stylesheets/common/float-kit/bottom-sheet.scss b/app/assets/stylesheets/common/float-kit/bottom-sheet.scss new file mode 100644 index 0000000000000..f684403fd37bd --- /dev/null +++ b/app/assets/stylesheets/common/float-kit/bottom-sheet.scss @@ -0,0 +1,56 @@ +.bottom-sheet__view { + height: calc(max(100dvh, 100lvh) + 60px); +} + +.bottom-sheet__content { + box-sizing: border-box; + height: auto; + min-height: 100px; + max-width: 700px; + padding-bottom: max( + calc(env(safe-area-inset-bottom, 0px) + 12px), + var(--space-5) + ); + display: grid; + justify-items: center; + + &.--expandable { + height: calc( + max(100dvh, 100lvh) - max(env(safe-area-inset-top), var(--space-5)) + ); + padding-bottom: 0; + overflow: hidden; + grid-template-rows: auto 1fr; + } +} + +.bottom-sheet__bleeding-background { + border-radius: var(--d-border-radius-large); + background-color: var(--secondary); + box-shadow: var(--shadow-card); +} + +.bottom-sheet__handle { + width: 50px; + height: 6px; + border: 0; + border-radius: 9999px; + background-color: var(--primary-low-mid); + cursor: pointer; +} + +.bottom-sheet__scroll-view { + width: 100%; + min-height: 0; +} + +.bottom-sheet__scroll-content { + padding: var(--space-4); +} + +.bottom-sheet__input { + box-sizing: border-box; + width: 100%; + height: 35px; + padding-inline: var(--space-4); +} diff --git a/app/assets/stylesheets/common/float-kit/d-card.scss b/app/assets/stylesheets/common/float-kit/d-card.scss new file mode 100644 index 0000000000000..d42b1f3948925 --- /dev/null +++ b/app/assets/stylesheets/common/float-kit/d-card.scss @@ -0,0 +1,18 @@ +.d-card { + --card-border-radius: var(--d-border-radius); + --card-background: var(--secondary); + --card-box-shadow: var(--shadow-dropdown); + z-index: z("max"); +} + +.d-card-content { + box-sizing: border-box; + width: min(600px, calc(100% - 2 * 1rem)); + box-shadow: var(--card-box-shadow); + border-radius: var(--card-border-radius); + background-color: var(--card-background); + height: auto; + max-width: 580px; + aspect-ratio: 8 / 10; + padding: var(--space-4); +} diff --git a/app/assets/stylesheets/common/float-kit/d-default-toast.scss b/app/assets/stylesheets/common/float-kit/d-default-toast.scss index 0dd9adc0ac74b..483fed835395c 100644 --- a/app/assets/stylesheets/common/float-kit/d-default-toast.scss +++ b/app/assets/stylesheets/common/float-kit/d-default-toast.scss @@ -1,119 +1,135 @@ +@use "lib/viewport"; + .fk-d-default-toast { display: flex; - flex: 1 1 auto; - padding: 0.5rem; - - &__close-container { - width: calc(40px - 0.5rem); - height: calc(1em + (2 * 0.65em)); + align-items: center; + gap: var(--space-2); + padding: var(--space-2); + position: relative; + border-radius: var(--toast-border-radius); + background-color: var(--toast-background-color); + box-shadow: var(--toast-box-shadow); + + &--has-progress { + padding-block-end: var(--space-4); } - &__icon-container { - flex: 1 0 auto; + &__close-btn { + position: absolute; + inset-block-start: 0; + inset-inline-end: 0; + transform: translate(45%, -45%); display: flex; - width: calc(40px - 0.5rem); - height: calc(1em + (2 * 0.65em)); - align-items: center; justify-content: center; - - &.alert-success { - background-color: var(--success-low); - color: var(--primary); - } - - &.alert-error { - background-color: var(--danger-low); - color: var(--primary); - } - - &.alert-warning { - background-color: var(--highlight-bg); - color: var(--primary); + align-items: center; + z-index: 1; + border-radius: 50%; + padding: var(--space-1); + font-size: var(--font-down-3); + color: var(--primary); + border: none; + background: var(--secondary-very-high); + + @include viewport.until(sm) { + display: none; } + } - &.alert-info { - background-color: var(--tertiary-low); - color: var(--primary); + &__icon { + display: flex; + justify-content: center; + align-items: center; + inline-size: 1rem; + block-size: 1rem; + flex-shrink: 0; - &.clickable { - color: var(--tertiary); - z-index: z("base"); - } + .d-icon { + inline-size: 1rem; + block-size: 1rem; } - .-success & { - .d-icon { - color: var(--success); - } + .fk-d-default-toast--success & .d-icon { + color: var(--success); } - .-error & { - .d-icon { - color: var(--danger); - } + .fk-d-default-toast--error & .d-icon { + color: var(--danger); } - .-warning & { - .d-icon { - color: var(--highlight); - } + .fk-d-default-toast--warning & .d-icon { + color: var(--highlight); } - .-info & { - .d-icon { - color: var(--tertiary); - } + .fk-d-default-toast--info & .d-icon { + color: var(--tertiary); } } - &__main-container { - box-sizing: border-box; + &__content { display: flex; flex-direction: column; - width: 100%; - min-height: calc(1em + (2 * 0.65em)); + flex: 1; + min-inline-size: 0; } - &__progress-bar { - width: 100%; - height: 5px; - top: 0; - left: 0; - position: absolute; - background-color: var(--success); - transform-origin: 0 0; + &__title { + font-weight: 500; + line-height: 1.5; + color: var(--primary); } - .fk-d-default-toast:has(&__progress-bar) { - padding-top: 15px; + &__description { + font-weight: 400; + line-height: 1.4; + color: var(--primary-high); + font-size: var(--font-down-1); } - &__texts { - min-height: inherit; - display: flex; - justify-content: center; - flex-direction: column; + &__action-btn { + margin-inline-start: auto; + flex-shrink: 0; } - &__actions { - display: flex; - flex-wrap: wrap; - padding-top: 1rem; - margin-bottom: -0.5rem; + &__cancel-btn { + flex-shrink: 0; + } - .btn { - margin-right: 0.5rem; - margin-bottom: 0.5rem; + &__progress-wrapper { + position: absolute; + inset-block-end: 4px; + inset-inline: 8px; + block-size: 3px; + background: var(--primary-very-low); + border-radius: var(--d-border-radius-large); + overflow: hidden; + z-index: 1; + pointer-events: none; + } + + &__progress-bar { + inline-size: 100%; + block-size: 100%; + background: var(--primary-low); + border-radius: inherit; + transform-origin: 0 0; + animation-name: d-toast-progress; + animation-timing-function: linear; + animation-fill-mode: forwards; + + &.--hidden { + position: absolute; + visibility: hidden; + pointer-events: none; } } +} - &__title { - display: flex; - font-weight: 700; +@keyframes d-toast-progress { + from { + transform: scaleX(1); } - &__message { - display: flex; - color: var(--primary-high); + to { + transform: scaleX(0); } } diff --git a/app/assets/stylesheets/common/float-kit/d-scroll.scss b/app/assets/stylesheets/common/float-kit/d-scroll.scss new file mode 100644 index 0000000000000..9acdc76911379 --- /dev/null +++ b/app/assets/stylesheets/common/float-kit/d-scroll.scss @@ -0,0 +1,228 @@ +[data-d-scroll~="view"] { + display: grid; + position: relative; +} + +[data-d-scroll~="view"] > * { + position: absolute !important; +} + +[data-d-scroll~="view"][data-d-scroll~="scroll-ongoing"] + [contenteditable="true"], +[data-d-scroll~="view"][data-d-scroll~="scroll-ongoing"] input, +[data-d-scroll~="view"][data-d-scroll~="scroll-ongoing"] textarea { + caret-color: transparent !important; +} + +[data-d-scroll~="scroll-container"] { + --grid-template: 0px max-content 0px max-content 0px max-content 0px !important; + scrollbar-color: inherit; + scrollbar-gutter: inherit; + outline: none !important; + padding: 0 !important; + display: grid !important; + position: relative !important; +} + +[data-d-scroll~="scroll-container"]:focus { + outline: none; +} + +[data-d-scroll~="scroll-container"][data-d-scroll~="axis-y"] { + overflow-x: hidden !important; + overflow-y: auto !important; + grid-template-rows: var(--grid-template); +} + +[data-d-scroll~="scroll-container"][data-d-scroll~="axis-x"] { + overflow-x: auto !important; + overflow-y: hidden !important; + grid-template-columns: var(--grid-template); +} + +[data-d-scroll~="scroll-container"][data-d-scroll~="no-overshoot"] { + overscroll-behavior: none !important; +} + +[data-d-scroll~="scroll-container"][data-d-scroll~="trap-x"] { + overscroll-behavior-x: contain !important; +} + +[data-d-scroll~="scroll-container"][data-d-scroll~="trap-y"] { + overscroll-behavior-y: contain !important; +} + +[data-d-scroll~="scroll-container"][data-d-scroll~="no-scroll-gesture"] { + overflow-anchor: none; + overflow: hidden !important; +} + +[data-d-scroll~="scroll-container"][data-d-scroll~="scroll-skip"] { + scroll-behavior: auto; +} + +[data-d-scroll~="scroll-container"][data-d-scroll~="scroll-smooth"] { + scroll-behavior: smooth; +} + +[data-d-scroll~="scroll-container"][data-d-scroll~="scroll-auto"] { + scroll-behavior: smooth; +} + +@media (prefers-reduced-motion: reduce) { + [data-d-scroll~="scroll-container"][data-d-scroll~="scroll-auto"] { + scroll-behavior: auto; + } +} + +[data-d-scroll~="scroll-container"][data-d-scroll~="no-anchoring"] { + overflow-anchor: none; +} + +[data-d-scroll~="scroll-container"][data-d-scroll~="snap-proximity"][data-d-scroll~="axis-y"] { + scroll-snap-type: y proximity; +} + +[data-d-scroll~="scroll-container"][data-d-scroll~="snap-proximity"][data-d-scroll~="axis-x"] { + scroll-snap-type: x proximity; +} + +[data-d-scroll~="scroll-container"][data-d-scroll~="snap-mandatory"][data-d-scroll~="axis-y"] { + scroll-snap-type: y mandatory; +} + +[data-d-scroll~="scroll-container"][data-d-scroll~="snap-mandatory"][data-d-scroll~="axis-x"] { + scroll-snap-type: x mandatory; +} + +[data-d-scroll~="scroll-container"][data-d-scroll~="no-scrollbar"] { + scrollbar-width: none; + + &::-webkit-scrollbar { + display: none; + } +} + +[data-d-scroll~="scroll-container"][data-d-scroll~="overflow-x"][data-d-scroll~="trap-x"][data-d-scroll~="trap-y"], +[data-d-scroll~="scroll-container"][data-d-scroll~="overflow-y"][data-d-scroll~="trap-x"][data-d-scroll~="trap-y"] { + scrollbar-width: none !important; + + &::-webkit-scrollbar { + display: none !important; + } +} + +[data-d-scroll~="scroll-container"][data-d-scroll~="overflow-x"][data-d-scroll~="trap-x"][data-d-scroll~="trap-y"]::before { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 101%; + height: 1px; + user-select: none !important; + pointer-events: none !important; +} + +[data-d-scroll~="scroll-container"][data-d-scroll~="overflow-y"][data-d-scroll~="trap-x"][data-d-scroll~="trap-y"]::after { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 1px; + height: 101%; + user-select: none !important; + pointer-events: none !important; +} + +[data-d-scroll~="spy"] { + width: 1px; + height: 1px; + margin-bottom: -1px; + margin-right: -1px; +} + +[data-d-scroll~="spy"][data-d-scroll~="spy-start"][data-d-scroll~="axis-y"] { + grid-row: 1; +} + +[data-d-scroll~="spy"][data-d-scroll~="spy-end"][data-d-scroll~="axis-y"] { + grid-row: -1; + margin-top: -2px; +} + +[data-d-scroll~="spy"][data-d-scroll~="spy-start"][data-d-scroll~="axis-x"] { + grid-column: 1; +} + +[data-d-scroll~="spy"][data-d-scroll~="spy-end"][data-d-scroll~="axis-x"] { + grid-column: -1; + margin-left: -2px; +} + +[data-d-scroll~="start-spacer"][data-d-scroll~="axis-y"] { + width: 1px; + height: 0; + grid-row: 2; +} + +[data-d-scroll~="start-spacer"][data-d-scroll~="axis-x"] { + width: 0; + height: 1px; + grid-column: 2; +} + +[data-d-scroll~="end-spacer"][data-d-scroll~="axis-y"] { + width: 1px; + grid-row: 6; +} + +[data-d-scroll~="end-spacer"][data-d-scroll~="axis-x"] { + height: 1px; + grid-column: 6; +} + +[data-d-scroll~="content"] { + position: relative !important; +} + +[data-d-scroll~="scroll-container"][data-d-scroll~="axis-y"] + [data-d-scroll~="content"] { + grid-row: 4 !important; +} + +[data-d-scroll~="scroll-container"][data-d-scroll~="axis-x"] + [data-d-scroll~="content"] { + grid-column: 4 !important; +} + +[data-d-scroll~="content"][data-d-scroll~="no-overflow-x"][data-d-scroll~="trap-x"] { + position: sticky !important; + left: 0 !important; + right: 0 !important; +} + +[data-d-scroll~="content"][data-d-scroll~="no-overflow-y"][data-d-scroll~="trap-y"] { + position: sticky !important; + top: 0 !important; + bottom: 0 !important; +} + +[data-d-scroll~="trigger"] { + appearance: none; + background: transparent; + border: none; + padding: 0; + margin: 0; + font: inherit; + color: inherit; + cursor: pointer; + + &:focus { + outline: none; + } + + &:focus-visible { + outline: 2px solid var(--tertiary); + outline-offset: 2px; + } +} diff --git a/app/assets/stylesheets/common/float-kit/d-sheet-header.scss b/app/assets/stylesheets/common/float-kit/d-sheet-header.scss new file mode 100644 index 0000000000000..a92ef3ee35090 --- /dev/null +++ b/app/assets/stylesheets/common/float-kit/d-sheet-header.scss @@ -0,0 +1,28 @@ +.d-sheet-header { + border-bottom: 1px solid var(--content-border-color); + position: relative; + display: grid; + grid-template-columns: 80px 1fr 80px; + align-items: center; + gap: var(--space-2); + height: 45px; + flex-shrink: 0; + + &__title { + margin: 0; + justify-self: center; + text-box: trim-both cap alphabetic; + color: var(--primary); + font-size: var(--font-up-1); + } + + &__left { + display: flex; + justify-self: start; + } + + &__right { + display: flex; + justify-self: end; + } +} diff --git a/app/assets/stylesheets/common/float-kit/d-sheet.scss b/app/assets/stylesheets/common/float-kit/d-sheet.scss new file mode 100644 index 0000000000000..16ab382c35f2f --- /dev/null +++ b/app/assets/stylesheets/common/float-kit/d-sheet.scss @@ -0,0 +1,895 @@ +[data-d-sheet], +[data-d-sheet] * { + box-sizing: border-box; + min-width: 0; + min-height: 0; + margin: 0; + -webkit-tap-highlight-color: transparent; + text-size-adjust: 100%; +} + +[data-d-sheet~="swipe-trap-both"] { + overscroll-behavior: contain !important; +} + +[data-d-sheet~="swipe-trap-horizontal"] { + overscroll-behavior-x: contain !important; +} + +[data-d-sheet~="swipe-trap-vertical"] { + overscroll-behavior-y: contain !important; +} + +:where([data-d-sheet~="scroll-trap-root"]:not([data-d-sheet~="fixed"])) { + --d-sheet-defaults: initial; + position: var(--d-sheet-defaults, relative); +} + +[data-d-sheet~="scroll-trap-root"][data-d-sheet~="scroll-vertical"] { + overscroll-behavior-y: none !important; + overflow-x: hidden !important; + overflow-y: auto !important; +} + +[data-d-sheet~="scroll-trap-root"][data-d-sheet~="scroll-horizontal"] { + overscroll-behavior-x: none !important; + overflow-y: hidden !important; + overflow-x: auto !important; +} + +[data-d-sheet~="scroll-trap-root"][data-d-sheet~="scroll-both"] { + overscroll-behavior: none !important; + overflow: auto !important; +} + +[data-d-sheet~="scroll-trap-root"] { + scrollbar-width: none !important; +} + +[data-d-sheet~="scroll-trap-root"]::-webkit-scrollbar { + display: none !important; +} + +[data-d-sheet~="scroll-trap-root"]::before { + content: "" !important; + width: calc(100% + 600px) !important; + height: calc(100% + 600px) !important; + position: absolute !important; + top: 0 !important; + left: 0 !important; +} + +[data-d-sheet~="scroll-trap-root"][data-d-sheet~="scroll-trap-inactive"]::before { + display: none !important; +} + +[data-d-sheet~="view"]:not([data-d-sheet~="staging-none"]) + [data-d-sheet~="scroll-trap-root"][data-d-sheet~="scroll-trap-optimised"] { + overflow: clip !important; +} + +[data-d-sheet~="view"]:not([data-d-sheet~="staging-none"]) + [data-d-sheet~="scroll-trap-root"][data-d-sheet~="scroll-trap-optimised"]::before { + display: none !important; +} + +[data-d-sheet~="view"]:not([data-d-sheet~="staging-none"]) + [data-d-sheet~="scroll-container"][data-d-sheet] { + overflow: hidden; +} + +[data-d-sheet~="view"]:not([data-d-sheet~="staging-none"]) + [data-d-scroll~="scroll-container"] { + overflow-anchor: none; + overflow: hidden !important; +} + +[data-d-sheet~="view"][data-d-sheet~="animating"] + [data-d-sheet~="secondary-scroll-trap"][data-d-sheet~="no-pointer-events"] { + z-index: 1; + pointer-events: auto !important; +} + +[data-d-sheet~="scroll-trap-stabilizer"] { + width: 100% !important; + height: 100% !important; + position: sticky !important; + top: 0 !important; + left: 0 !important; +} + +:where([data-d-sheet~="view"]) { + --d-sheet-defaults: initial; + position: var(--d-sheet-defaults, fixed); + top: var(--d-sheet-defaults, var(--d-sheet-default-top, initial)); + bottom: var(--d-sheet-defaults, var(--d-sheet-default-bottom, initial)); + left: var(--d-sheet-defaults, var(--d-sheet-default-left, initial)); + right: var(--d-sheet-defaults, var(--d-sheet-default-right, initial)); + height: var(--d-sheet-defaults, 100%); + width: var(--d-sheet-defaults, 100%); + outline: none; + + --x-collapsed-scrollbar-thickness: 0px; + --y-collapsed-scrollbar-thickness: 0px; +} + +:where([data-d-sheet~="view"] > *) { + --d-sheet-default-top: initial; + --d-sheet-default-bottom: initial; + --d-sheet-default-left: initial; + --d-sheet-default-right: initial; +} + +[data-d-sheet~="view"]:not([data-d-sheet~="staging-none"]) * { + caret-color: transparent; +} + +:where([data-d-sheet~="view"][data-d-sheet~="bottom"]) { + --d-sheet-default-bottom: 0; + --d-sheet-default-left: 0; +} + +:where([data-d-sheet~="view"][data-d-sheet~="top"]) { + --d-sheet-default-top: 0; + --d-sheet-default-left: 0; +} + +:where([data-d-sheet~="view"][data-d-sheet~="left"]) { + --d-sheet-default-top: 0; + --d-sheet-default-left: 0; + height: 100%; + width: 100vw; +} + +:where([data-d-sheet~="view"][data-d-sheet~="right"]) { + --d-sheet-default-top: 0; + --d-sheet-default-right: 0; + height: 100%; + width: 100vw; +} + +[data-d-sheet~="view"] { + z-index: z("modal", "overlay"); + + --d-sheet-minimum-snap-distance: var( + --d-sheet-minimum-snap-distance-from-props, + 1px + ); + --d-sheet-viewport-height: 100vh; + --d-sheet-snap-accelerator: 1px; + --d-sheet-edge-padding: 10px; + --d-sheet-view-travel-axis: initial; // aD + --d-sheet-view-cross-axis: initial; // aE + --d-sheet-content-travel-axis: initial; // aF + --d-sheet-content-cross-axis: initial; // aG + --d-sheet-front-spacer: initial; // aH + --d-sheet-back-spacer: initial; // aI + --d-sheet-first-detent-size: initial; // aK + --d-sheet-travel-size: var(--d-sheet-view-travel-axis, 100%); + --d-sheet-cross-size: var(--d-sheet-view-cross-axis, 100%); + --d-sheet-max-overshoot-distance: min(300px, var(--d-sheet-travel-size)); + --d-sheet-snap-margin: 2px; + --d-sheet-content-wrapper-overshoot-offset: calc( + -1 * (var(--d-sheet-max-overshoot-distance) - var(--d-sheet-snap-margin)) + ); + border-width: 0 !important; + overflow: clip !important; +} + +[data-d-sheet~="view"][data-d-sheet~="hidden"] { + opacity: 0 !important; +} + +[data-d-sheet~="view"][data-d-sheet~="closed"] { + /* stylelint-disable-next-line property-no-deprecated -- fallback for older browsers */ + clip: rect(0 0 0 0) !important; + clip-path: inset(0) !important; + white-space: nowrap !important; + border: 0 !important; + width: 1px !important; + height: 1px !important; + margin: -1px !important; + padding: 0 !important; + position: fixed !important; + top: 0 !important; + left: 0 !important; + overflow: hidden !important; +} + +[data-d-sheet~="view"][data-d-sheet~="no-pointer-events"] { + pointer-events: none !important; + user-select: none !important; +} + +[data-d-sheet~="view"] > * { + position: absolute; +} + +:where([data-d-sheet~="backdrop"]) { + --d-sheet-defaults: initial; + left: var(--d-sheet-defaults, 0); + right: var(--d-sheet-defaults, 0); + top: var(--d-sheet-defaults, 0); + bottom: var(--d-sheet-defaults, 0); + background-color: var(--d-sheet-defaults, #000); + opacity: var(--d-sheet-defaults, 0.5); +} + +[data-d-sheet~="backdrop"] { + z-index: -1 !important; + position: absolute !important; +} + +[data-d-sheet~="backdrop"][data-d-sheet~="no-pointer-events"] { + pointer-events: none !important; + user-select: none !important; +} + +:where([data-d-sheet~="content"]) { + --d-sheet-defaults: initial; + width: var(--d-sheet-defaults, var(--d-sheet-default-width, initial)); + height: var(--d-sheet-defaults, var(--d-sheet-default-height, initial)); + background-color: var(--d-sheet-defaults, #fff); +} + +[data-d-sheet~="content"]:has(:where([data-d-sheet~="bleeding-background"])) { + background-color: initial; +} + +[data-d-sheet~="no-bleeding-background"] { + background-color: initial; +} + +:where([data-d-sheet~="bleeding-background"]) { + --d-sheet-defaults: initial; + border-radius: var(--d-sheet-defaults, inherit); + background-color: var(--d-sheet-defaults, #fff); +} + +[data-d-sheet~="bleeding-background"] { + box-sizing: border-box !important; + z-index: -1 !important; + position: absolute !important; +} + +[data-d-sheet~="bleeding-background"][data-d-sheet~="right"], +[data-d-sheet~="bleeding-background"][data-d-sheet~="left"] { + width: calc(100% + var(--d-sheet-max-overshoot-distance)) !important; + height: 100% !important; +} + +[data-d-sheet~="bleeding-background"][data-d-sheet~="overshoot-inactive"][data-d-sheet~="right"], +[data-d-sheet~="bleeding-background"][data-d-sheet~="overshoot-inactive"][data-d-sheet~="left"] { + width: 100% !important; +} + +[data-d-sheet~="bleeding-background"][data-d-sheet~="right"] { + top: 0 !important; + right: 0 !important; +} + +[data-d-sheet~="bleeding-background"][data-d-sheet~="left"], +[data-d-sheet~="bleeding-background"][data-d-sheet~="center"][data-d-sheet~="horizontal"] { + top: 0 !important; + left: 0 !important; +} + +[data-d-sheet~="bleeding-background"][data-d-sheet~="start"], +[data-d-sheet~="bleeding-background"][data-d-sheet~="end"] { + height: calc(100% + var(--d-sheet-max-overshoot-distance)) !important; + width: 100% !important; +} + +[data-d-sheet~="bleeding-background"][data-d-sheet~="overshoot-inactive"][data-d-sheet~="start"], +[data-d-sheet~="bleeding-background"][data-d-sheet~="overshoot-inactive"][data-d-sheet~="end"] { + height: 100% !important; +} + +[data-d-sheet~="bleeding-background"][data-d-sheet~="start"] { + bottom: 0 !important; + left: 0 !important; +} + +[data-d-sheet~="bleeding-background"][data-d-sheet~="end"], +[data-d-sheet~="bleeding-background"][data-d-sheet~="center"][data-d-sheet~="vertical"] { + top: 0 !important; + left: 0 !important; +} + +[data-d-sheet~="bleeding-background"][data-d-sheet~="center"] { + width: 100% !important; + height: 100% !important; +} + +[data-d-sheet~="bleeding-background"]:not( + [data-d-sheet~="staging-none"] + )[data-d-sheet~="start"], +[data-d-sheet~="bleeding-background"]:not( + [data-d-sheet~="staging-none"] + )[data-d-sheet~="end"] { + height: calc(100% + 50px) !important; +} + +[data-d-sheet~="bleeding-background"]:not( + [data-d-sheet~="staging-none"] + )[data-d-sheet~="left"], +[data-d-sheet~="bleeding-background"]:not( + [data-d-sheet~="staging-none"] + )[data-d-sheet~="right"] { + width: calc(100% + 50px) !important; +} + +:where([data-d-sheet~="special-wrapper-root"]) { + --d-sheet-defaults: initial; + width: var(--d-sheet-defaults, 100%); + height: var(--d-sheet-defaults, 100%); +} + +[data-d-sheet~="primary-scroll-trap"] { + position: absolute; +} + +[data-d-sheet~="primary-scroll-trap"][data-d-sheet~="top"], +[data-d-sheet~="primary-scroll-trap"][data-d-sheet~="bottom"], +[data-d-sheet~="primary-scroll-trap"][data-d-sheet~="vertical"] { + width: var(--d-sheet-cross-size); + height: var(--d-sheet-travel-size); +} + +[data-d-sheet~="primary-scroll-trap"][data-d-sheet~="left"], +[data-d-sheet~="primary-scroll-trap"][data-d-sheet~="right"], +[data-d-sheet~="primary-scroll-trap"][data-d-sheet~="horizontal"] { + height: var(--d-sheet-cross-size); + width: var(--d-sheet-travel-size); +} + +[data-d-sheet~="primary-scroll-trap"][data-d-sheet~="pass-through"] + > [data-d-sheet~="scroll-trap-stabilizer"] + > * { + pointer-events: auto; + user-select: initial; +} + +[data-d-sheet~="secondary-scroll-trap"] { + z-index: -1; + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; +} + +[data-d-sheet~="secondary-scroll-trap"][data-d-sheet~="no-pointer-events"] { + pointer-events: none !important; +} + +[data-d-sheet~="scroll-container"] { + --d-sheet-scroll-container-height: calc(2 * var(--d-sheet-travel-size)); + z-index: 1; + flex-wrap: nowrap; + place-items: center; + display: flex; + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + scrollbar-width: none; +} + +[data-d-sheet~="scroll-container"][data-d-sheet~="top"], +[data-d-sheet~="scroll-container"][data-d-sheet~="bottom"], +[data-d-sheet~="scroll-container"][data-d-sheet~="vertical"] { + height: var(--d-sheet-scroll-container-height); + scroll-snap-type: y mandatory; + flex-direction: column; + width: 100%; + overflow-x: hidden; + overflow-y: auto; +} + +[data-d-sheet~="scroll-container"][data-d-sheet~="left"], +[data-d-sheet~="scroll-container"][data-d-sheet~="right"], +[data-d-sheet~="scroll-container"][data-d-sheet~="horizontal"] { + width: var(--d-sheet-scroll-container-height); + scroll-snap-type: x mandatory; + flex-direction: row; + height: 100%; + overflow-y: hidden; + overflow-x: auto; +} + +[data-d-sheet~="scroll-container"][data-d-sheet~="top"] { + top: calc(-1 * var(--d-sheet-travel-size)); +} + +[data-d-sheet~="scroll-container"][data-d-sheet~="bottom"] { + bottom: calc(-1 * var(--d-sheet-travel-size)); +} + +[data-d-sheet~="scroll-container"][data-d-sheet~="left"] { + left: calc(-1 * var(--d-sheet-travel-size)); +} + +[data-d-sheet~="scroll-container"][data-d-sheet~="right"] { + right: calc(-1 * var(--d-sheet-travel-size)); +} + +[data-d-sheet~="scroll-container"][data-d-sheet~="horizontal"] { + left: calc(-0.5 * var(--d-sheet-travel-size)); +} + +[data-d-sheet~="scroll-container"][data-d-sheet~="vertical"] { + top: calc(-0.5 * var(--d-sheet-travel-size)); +} + +[data-d-sheet~="scroll-container"][data-d-sheet~="no-pointer-events"][data-d-sheet] { + pointer-events: none; + user-select: none; +} + +[data-d-sheet~="scroll-container"][data-d-sheet~="swipe-disabled"][data-d-sheet] { + overflow: hidden; +} + +[data-d-sheet~="scroll-container"][data-d-sheet~="overscroll-contain"] { + overscroll-behavior-y: contain; +} + +[data-d-sheet~="scroll-container"][data-d-sheet~="overshoot-inactive"][data-d-sheet~="top"], +[data-d-sheet~="scroll-container"][data-d-sheet~="overshoot-inactive"][data-d-sheet~="bottom"], +[data-d-sheet~="scroll-container"][data-d-sheet~="overshoot-inactive"][data-d-sheet~="vertical"] { + overscroll-behavior-y: none; +} + +[data-d-sheet~="scroll-container"][data-d-sheet~="overshoot-inactive"][data-d-sheet~="left"], +[data-d-sheet~="scroll-container"][data-d-sheet~="overshoot-inactive"][data-d-sheet~="right"], +[data-d-sheet~="scroll-container"][data-d-sheet~="overshoot-inactive"][data-d-sheet~="horizontal"] { + overscroll-behavior-x: none; +} + +[data-d-sheet~="scroll-container"][data-d-sheet~="vertical"][data-d-sheet~="center"], +[data-d-sheet~="scroll-container"][data-d-sheet~="horizontal"][data-d-sheet~="center"] { + justify-content: center; +} + +[data-d-sheet~="scroll-container"]::-webkit-scrollbar { + display: none; +} + +[data-d-sheet~="scroll-container"] > * { + --d-sheet-travel-size: var(--d-sheet-view-travel-axis, 50%); + flex-grow: 0; + flex-shrink: 0; +} + +[data-d-sheet~="front-spacer"] { + user-select: none !important; + pointer-events: none !important; +} + +[data-d-sheet~="front-spacer"][data-d-sheet~="top"], +[data-d-sheet~="front-spacer"][data-d-sheet~="left"] { + scroll-snap-align: end; + order: 3; +} + +[data-d-sheet~="front-spacer"][data-d-sheet~="bottom"], +[data-d-sheet~="front-spacer"][data-d-sheet~="right"], +[data-d-sheet~="front-spacer"][data-d-sheet~="horizontal"], +[data-d-sheet~="front-spacer"][data-d-sheet~="vertical"] { + scroll-snap-align: start; + order: 1; +} + +[data-d-sheet~="front-spacer"][data-d-sheet~="top"], +[data-d-sheet~="front-spacer"][data-d-sheet~="bottom"] { + height: var(--d-sheet-front-spacer); + width: 1px; +} + +[data-d-sheet~="front-spacer"][data-d-sheet~="left"], +[data-d-sheet~="front-spacer"][data-d-sheet~="right"] { + width: var(--d-sheet-front-spacer); + height: 1px; +} + +[data-d-sheet~="front-spacer"][data-d-sheet~="vertical"] { + height: var(--d-sheet-front-spacer); + width: 1px; +} + +[data-d-sheet~="front-spacer"][data-d-sheet~="horizontal"] { + width: var(--d-sheet-front-spacer); + height: 1px; +} + +[data-d-sheet~="content-wrapper"] { + z-index: 1; + pointer-events: none; + user-select: text; + order: 2; + display: flex; + position: sticky; +} + +[data-d-sheet~="content-wrapper"][data-d-sheet~="center"][data-d-sheet~="horizontal"], +[data-d-sheet~="content-wrapper"][data-d-sheet~="center"][data-d-sheet~="vertical"] { + position: relative; +} + +[data-d-sheet~="content-wrapper"][data-d-sheet~="left"], +[data-d-sheet~="content-wrapper"][data-d-sheet~="right"], +[data-d-sheet~="content-wrapper"][data-d-sheet~="horizontal"] { + --d-sheet-content-wrapper-offset: calc( + var(--d-sheet-travel-size) - var(--d-sheet-content-travel-axis) - var( + --d-sheet-minimum-snap-distance + ) + ); + width: var(--d-sheet-travel-size); + align-items: center; + height: 100%; +} + +[data-d-sheet~="content-wrapper"][data-d-sheet~="top"], +[data-d-sheet~="content-wrapper"][data-d-sheet~="bottom"], +[data-d-sheet~="content-wrapper"][data-d-sheet~="vertical"] { + --d-sheet-content-wrapper-offset: calc( + var(--d-sheet-travel-size) - var(--d-sheet-content-travel-axis) - var( + --d-sheet-minimum-snap-distance + ) + ); + height: var(--d-sheet-travel-size); + justify-content: center; + width: 100%; +} + +[data-d-sheet~="content-wrapper"][data-d-sheet~="left"] { + justify-content: flex-start; + left: var(--d-sheet-content-wrapper-offset); +} + +[data-d-sheet~="content-wrapper"][data-d-sheet~="right"] { + justify-content: flex-end; + right: var(--d-sheet-content-wrapper-offset); +} + +[data-d-sheet~="content-wrapper"][data-d-sheet~="start"] { + top: var(--d-sheet-content-wrapper-offset); + align-items: flex-start; +} + +[data-d-sheet~="content-wrapper"][data-d-sheet~="end"] { + bottom: var(--d-sheet-content-wrapper-offset); + align-items: flex-end; +} + +[data-d-sheet~="content-wrapper"][data-d-sheet~="center"] { + justify-content: center; + align-items: center; +} + +[data-d-sheet~="content-wrapper"][data-d-sheet~="top"][data-d-sheet~="center"], +[data-d-sheet~="content-wrapper"][data-d-sheet~="bottom"][data-d-sheet~="center"], +[data-d-sheet~="content-wrapper"][data-d-sheet~="left"][data-d-sheet~="center"], +[data-d-sheet~="content-wrapper"][data-d-sheet~="right"][data-d-sheet~="center"] { + --d-sheet-content-wrapper-offset: calc( + (var(--d-sheet-travel-size) - var(--d-sheet-content-travel-axis)) / + 2 - var(--d-sheet-minimum-snap-distance) + ); +} + +[data-d-sheet~="content-wrapper"][data-d-sheet~="horizontal"], +[data-d-sheet~="content-wrapper"][data-d-sheet~="vertical"] { + --d-sheet-content-wrapper-centered-offset: calc( + (var(--d-sheet-view-travel-axis) - var(--d-sheet-content-travel-axis)) / + 2 - var(--d-sheet-view-travel-axis) / + 2 - var(--d-sheet-minimum-snap-distance) + ); +} + +[data-d-sheet~="content-wrapper"][data-d-sheet~="vertical"]:not( + [data-d-sheet~="center"] + ) { + top: var(--d-sheet-content-wrapper-centered-offset); + bottom: var(--d-sheet-content-wrapper-centered-offset); +} + +[data-d-sheet~="content-wrapper"][data-d-sheet~="horizontal"]:not( + [data-d-sheet~="center"] + ) { + left: var(--d-sheet-content-wrapper-centered-offset); + right: var(--d-sheet-content-wrapper-centered-offset); +} + +[data-d-sheet~="content-wrapper"][data-d-sheet~="overshoot-inactive"][data-d-sheet~="left"] { + right: 0; +} + +[data-d-sheet~="content-wrapper"][data-d-sheet~="overshoot-inactive"][data-d-sheet~="right"] { + left: 0; +} + +[data-d-sheet~="content-wrapper"][data-d-sheet~="overshoot-inactive"][data-d-sheet~="top"] { + bottom: 0; +} + +[data-d-sheet~="content-wrapper"][data-d-sheet~="overshoot-inactive"][data-d-sheet~="bottom"] { + top: 0; +} + +[data-d-sheet~="content-wrapper"][data-d-sheet~="overshoot-inactive"][data-d-sheet~="swipe-out-disabled"] { + --d-sheet-content-wrapper-offset: calc( + var(--d-sheet-travel-size) - var(--d-sheet-content-travel-axis) + + var(--d-sheet-first-detent-size) + ); +} + +[data-d-sheet~="content-wrapper"][data-d-sheet~="overshoot-active"][data-d-sheet~="left"] { + left: auto; + right: var(--d-sheet-content-wrapper-overshoot-offset); +} + +[data-d-sheet~="content-wrapper"][data-d-sheet~="overshoot-active"][data-d-sheet~="right"] { + right: auto; + left: var(--d-sheet-content-wrapper-overshoot-offset); +} + +[data-d-sheet~="content-wrapper"][data-d-sheet~="overshoot-active"][data-d-sheet~="top"] { + bottom: var(--d-sheet-content-wrapper-overshoot-offset); +} + +[data-d-sheet~="content-wrapper"][data-d-sheet~="overshoot-active"][data-d-sheet~="bottom"] { + top: var(--d-sheet-content-wrapper-overshoot-offset); +} + +[data-d-sheet~="content"][data-d-sheet~="start"], +[data-d-sheet~="content"][data-d-sheet~="end"], +[data-d-sheet~="content"][data-d-sheet~="center"][data-d-sheet~="top"], +[data-d-sheet~="content"][data-d-sheet~="center"][data-d-sheet~="bottom"] { + --d-sheet-default-width: 100%; + --d-sheet-default-height: 50%; +} + +[data-d-sheet~="content"][data-d-sheet~="center"][data-d-sheet~="vertical"] { + --d-sheet-default-width: 100%; + --d-sheet-default-height: 50%; +} + +[data-d-sheet~="content"][data-d-sheet~="left"], +[data-d-sheet~="content"][data-d-sheet~="right"] { + --d-sheet-default-width: 50%; + --d-sheet-default-height: 100%; +} + +[data-d-sheet~="content"][data-d-sheet~="center"][data-d-sheet~="horizontal"] { + --d-sheet-default-width: 50%; + --d-sheet-default-height: 100%; +} + +[data-d-sheet~="content"] { + user-select: initial; + user-select: auto; + box-sizing: border-box !important; + margin: 0 !important; + position: relative !important; + overflow: visible !important; + padding-bottom: env(safe-area-inset-bottom); +} + +[data-d-sheet~="content"], +[data-d-sheet~="content"][data-d-sheet~="no-pointer-events"] { + pointer-events: auto; +} + +[data-d-sheet~="content"] > * { + --d-sheet-default-width: initial; + --d-sheet-default-height: initial; +} + +[data-d-sheet~="back-spacer"] { + position: relative; + user-select: none !important; + pointer-events: none !important; +} + +[data-d-sheet~="back-spacer"][data-d-sheet~="top"], +[data-d-sheet~="back-spacer"][data-d-sheet~="left"] { + scroll-snap-align: start; + order: 1; +} + +[data-d-sheet~="back-spacer"][data-d-sheet~="bottom"], +[data-d-sheet~="back-spacer"][data-d-sheet~="right"], +[data-d-sheet~="back-spacer"][data-d-sheet~="horizontal"], +[data-d-sheet~="back-spacer"][data-d-sheet~="vertical"] { + scroll-snap-align: end; + order: 3; +} + +[data-d-sheet~="back-spacer"][data-d-sheet~="top"], +[data-d-sheet~="back-spacer"][data-d-sheet~="bottom"] { + height: var(--d-sheet-back-spacer); + width: 1px; +} + +[data-d-sheet~="back-spacer"][data-d-sheet~="left"], +[data-d-sheet~="back-spacer"][data-d-sheet~="right"] { + width: var(--d-sheet-back-spacer); + height: 1px; +} + +[data-d-sheet~="back-spacer"][data-d-sheet~="vertical"] { + height: 0; + width: 1px; +} + +[data-d-sheet~="back-spacer"][data-d-sheet~="horizontal"] { + width: 0; + height: 1px; +} + +[data-d-sheet~="detent-marker"] { + --d-sheet-detent-marker-position: calc( + 100% + var(--d-sheet-content-travel-axis) - var(--d-sheet-marker-current) + ); + --d-sheet-detent-marker-scroll-margin: calc( + var(--d-sheet-travel-size) - var(--d-sheet-marker-current) + + var(--d-sheet-marker-prev) + ); + place-items: center; + display: grid; + position: absolute; +} + +[data-d-sheet~="detent-marker"][data-d-sheet~="top"], +[data-d-sheet~="detent-marker"][data-d-sheet~="bottom"], +[data-d-sheet~="detent-marker"][data-d-sheet~="vertical"] { + height: calc(var(--d-sheet-marker-current) - var(--d-sheet-marker-prev)); + width: 1px; +} + +[data-d-sheet~="detent-marker"][data-d-sheet~="left"], +[data-d-sheet~="detent-marker"][data-d-sheet~="right"], +[data-d-sheet~="detent-marker"][data-d-sheet~="horizontal"] { + width: calc(var(--d-sheet-marker-current) - var(--d-sheet-marker-prev)); + height: 1px; +} + +[data-d-sheet~="detent-marker"][data-d-sheet~="top"], +[data-d-sheet~="detent-marker"][data-d-sheet~="left"] { + scroll-snap-align: end; +} + +[data-d-sheet~="detent-marker"][data-d-sheet~="bottom"], +[data-d-sheet~="detent-marker"][data-d-sheet~="right"] { + scroll-snap-align: start; +} + +[data-d-sheet~="detent-marker"][data-d-sheet~="horizontal"], +[data-d-sheet~="detent-marker"][data-d-sheet~="vertical"] { + scroll-snap-align: center; +} + +[data-d-sheet~="detent-marker"][data-d-sheet~="top"] { + top: var(--d-sheet-detent-marker-position); + scroll-margin-bottom: var(--d-sheet-detent-marker-scroll-margin); + left: calc(var(--d-sheet-marker-index) * 10px); +} + +[data-d-sheet~="detent-marker"][data-d-sheet~="bottom"] { + bottom: var(--d-sheet-detent-marker-position); + scroll-margin-top: var(--d-sheet-detent-marker-scroll-margin); + left: calc(var(--d-sheet-marker-index) * 10px); +} + +[data-d-sheet~="detent-marker"][data-d-sheet~="left"] { + left: var(--d-sheet-detent-marker-position); + scroll-margin-right: var(--d-sheet-detent-marker-scroll-margin); + top: calc(var(--d-sheet-marker-index) * 10px); +} + +[data-d-sheet~="detent-marker"][data-d-sheet~="right"] { + right: var(--d-sheet-detent-marker-position); + scroll-margin-left: var(--d-sheet-detent-marker-scroll-margin); + top: calc(var(--d-sheet-marker-index) * 10px); +} + +[data-d-sheet~="detent-marker"][data-d-sheet~="horizontal"] { + right: calc( + 100% + (var(--d-sheet-travel-size) - var(--d-sheet-marker-current)) / 2 + ); + top: calc(var(--d-sheet-marker-index) * 10px); +} + +[data-d-sheet~="detent-marker"][data-d-sheet~="vertical"] { + bottom: calc( + 100% + (var(--d-sheet-travel-size) - var(--d-sheet-marker-current)) / 2 + ); + left: calc(var(--d-sheet-marker-index) * 10px); +} + +@supports not (scroll-margin-bottom: 1px) { + [data-d-sheet~="detent-marker"][data-d-sheet~="top"] { + scroll-margin-bottom: var(--d-sheet-detent-marker-scroll-margin); + } +} + +@supports not (scroll-margin-top: 1px) { + [data-d-sheet~="detent-marker"][data-d-sheet~="bottom"] { + scroll-margin-top: var(--d-sheet-detent-marker-scroll-margin); + } +} + +@supports not (scroll-margin-right: 1px) { + [data-d-sheet~="detent-marker"][data-d-sheet~="left"] { + scroll-margin-right: var(--d-sheet-detent-marker-scroll-margin); + } +} + +@supports not (scroll-margin-left: 1px) { + [data-d-sheet~="detent-marker"][data-d-sheet~="right"] { + scroll-margin-left: var(--d-sheet-detent-marker-scroll-margin); + } +} + +[data-d-sheet~="detent-marker"]:not(:only-child):last-child, +[data-d-sheet~="detent-marker"][data-d-sheet~="top"]:only-child, +[data-d-sheet~="detent-marker"][data-d-sheet~="bottom"]:only-child, +[data-d-sheet~="detent-marker"][data-d-sheet~="left"]:only-child, +[data-d-sheet~="detent-marker"][data-d-sheet~="right"]:only-child, +[data-d-sheet~="detent-marker"][data-d-sheet~="swipe-out-disabled"]:first-child { + scroll-snap-align: none; +} + +[data-d-sheet~="touch-target-expander"][data-d-sheet~="handle"] { + position: relative; + + &::before { + content: ""; + display: block; + position: absolute; + left: calc(-1 * max(100%, 48px) / 2 + 50%); + top: calc(-1 * max(100%, 48px) / 2 + 50%); + width: max(100%, 48px); + height: max(100%, 48px); + } +} + +[data-d-sheet~="handle"] { + width: 50px; + height: 6px; + margin: var(--space-2) auto; + padding: 0; + border: 0; + border-radius: 9999px; + background-color: var(--primary-low-mid); + cursor: pointer; + user-select: none; + + &:disabled { + cursor: default; + opacity: 0.5; + } +} + +[data-d-sheet~="bottom-color-fade"] { + position: fixed; + z-index: 10; + bottom: 0; + width: 100%; + height: 5px; + background-color: var(--secondary); + mask-image: linear-gradient(rgb(0, 0, 0, 0.01), transparent); + pointer-events: none; +} + +[data-d-sheet~="bottom-color-border"] { + position: fixed; + z-index: 10; + bottom: 0; + width: 100%; + height: 0; + border-top: 1px solid var(--primary-low); + pointer-events: none; +} diff --git a/app/assets/stylesheets/common/float-kit/d-stack.scss b/app/assets/stylesheets/common/float-kit/d-stack.scss new file mode 100644 index 0000000000000..f3e1c3eff1dd7 --- /dev/null +++ b/app/assets/stylesheets/common/float-kit/d-stack.scss @@ -0,0 +1,28 @@ +.d-stack { + &__view { + z-index: z("max"); + } + + &__content { + box-sizing: border-box; + background-color: transparent; + padding: var(--space-2); + display: grid; + + &[data-d-sheet~="right"] { + width: min(80%, 700px); + height: 100%; + } + } + + &__inner-content { + box-sizing: border-box; + background-color: var(--secondary); + border-radius: var(--d-border-radius-large); + overflow: hidden; + } + + &__backdrop { + background-color: rgb(0 0 0 / 50%); + } +} diff --git a/app/assets/stylesheets/common/float-kit/d-toasts.scss b/app/assets/stylesheets/common/float-kit/d-toasts.scss index 75a4b436c4a08..a4f7eda5a9a30 100644 --- a/app/assets/stylesheets/common/float-kit/d-toasts.scss +++ b/app/assets/stylesheets/common/float-kit/d-toasts.scss @@ -1,58 +1,90 @@ -@keyframes d-toast-opening { - from { - transform: translateY(var(--transform-y, 10px)); - } -} +@use "lib/viewport"; .fk-d-toasts { - --transform-y: 0; position: fixed; - top: calc(var(--header-offset) + 0.33rem); - right: 5px; - z-index: z("max"); - display: flex; - flex-direction: column; - gap: 5px 0; - flex: 1 1 auto; - - .mobile-view & { - left: 5px; - } + z-index: calc(z("max") + 2); - .fk-d-toast { - box-sizing: border-box; - opacity: 1; - transition: opacity 0.5s; - border-radius: var(--d-border-radius); - overflow: hidden; - background-color: var(--secondary); - border: 1px solid var(--content-border-color); - box-shadow: var(--shadow-dropdown); - overflow-wrap: break-word; - display: flex; - animation: d-toast-opening 0.3s ease-in-out; - will-change: transform; - - .desktop-view & { - margin-left: auto; + .d-toast { + --toast-padding-x: var(--space-3); + --toast-padding-top: var(--space-3); + --toast-padding-bottom: var(--space-6); + --toast-max-height: 90px; + --toast-content-height: calc( + max(env(safe-area-inset-top, 0px), var(--toast-padding-top)) + + var(--toast-max-height) + var(--toast-padding-bottom) + ); + --toast-border-color: var(--content-border-color); + --toast-box-shadow: var(--shadow-card); + --toast-border-radius: var(--d-border-radius-large); + --toast-background-color: var(--secondary); + --toast-offset: 8px; + z-index: var(--z-index); + + &--success { + --toast-background-color: var(--success-low); + --toast-border-color: var(--success); } - &:hover { - border-color: var(--primary-300); + &--error { + --toast-background-color: var(--danger-low); + --toast-border-color: var(--danger); } - &.-fade-out { - opacity: 0; + &--warning { + --toast-background-color: var(--highlight-low); + --toast-border-color: var(--highlight); } - & + .d-toast { - margin-top: 0.25rem; + &--info { + --toast-background-color: var(--tertiary-low); + --toast-border-color: var(--tertiary); + } + + @media (width >= 1000px) { + --toast-padding-x: var(--space-4); + --toast-padding-top: var(--space-4); + height: var(--toast-content-height); } - } -} -@media (prefers-reduced-motion: no-preference) { - .fk-d-toasts { - --transform-y: 2vh; + &__content { + box-sizing: border-box; + width: 100%; + height: var(--toast-content-height); + background-color: transparent; + padding: var(--toast-padding-x); + padding-top: max(env(safe-area-inset-top), var(--toast-padding-top)); + padding-bottom: var(--toast-padding-bottom); + display: grid; + + @include viewport.from(sm) { + margin-left: auto !important; + max-width: 400px; + } + } + + &__inner-content { + --scale: calc(1 - var(--distance-from-front) * 0.05); + --y-offset: calc(var(--distance-from-front) * -8px); + max-height: var(--toast-max-height); + opacity: 0; + transform: translateY(var(--y-offset)) scale(var(--scale)); + transform-origin: bottom center; + transition: + transform 0.4s cubic-bezier(0.25, 1, 0.5, 1), + opacity 0.4s ease, + max-height 0.4s cubic-bezier(0.25, 1, 0.5, 1); + + &[data-presented="true"] { + opacity: 1; + } + + &[data-front="false"] { + filter: drop-shadow(0 3px 8px rgb(0, 0, 0, 0.25)); + + .fk-d-default-toast { + box-shadow: none; + } + } + } } } diff --git a/app/assets/stylesheets/common/form-kit/_conditional-display.scss b/app/assets/stylesheets/common/form-kit/_conditional-display.scss index 8aca24a9b3610..0160c3b23d60a 100644 --- a/app/assets/stylesheets/common/form-kit/_conditional-display.scss +++ b/app/assets/stylesheets/common/form-kit/_conditional-display.scss @@ -13,7 +13,7 @@ } .--radio-cards { - width: var(--form-kit-large-input); + width: var(--form-kit-max-input); @include viewport.until(sm) { width: 100%; diff --git a/app/assets/stylesheets/common/form-kit/_container.scss b/app/assets/stylesheets/common/form-kit/_container.scss index 0d4004763da26..c45bd06dc9aa5 100644 --- a/app/assets/stylesheets/common/form-kit/_container.scss +++ b/app/assets/stylesheets/common/form-kit/_container.scss @@ -59,6 +59,11 @@ width: var(--form-kit-large-input); } + &.--max { + max-width: var(--form-kit-max-input); + width: 100%; + } + &.--full { width: 100% !important; } diff --git a/app/assets/stylesheets/common/form-kit/_control-textarea.scss b/app/assets/stylesheets/common/form-kit/_control-textarea.scss index 0432df5a36e13..450500278b468 100644 --- a/app/assets/stylesheets/common/form-kit/_control-textarea.scss +++ b/app/assets/stylesheets/common/form-kit/_control-textarea.scss @@ -1,3 +1,5 @@ +@use "lib/viewport"; + .form-kit__control-textarea { // prevents firefox/chrome to add spacing under textarea display: block; @@ -8,4 +10,12 @@ min-width: auto !important; padding: 0.5em !important; } + + @include viewport.until(sm) { + height: 100px; + } + + &.--no-resize { + resize: none; + } } diff --git a/app/assets/stylesheets/common/form-kit/_field.scss b/app/assets/stylesheets/common/form-kit/_field.scss index 58484bcdda0a3..670b6f3cc6c9d 100644 --- a/app/assets/stylesheets/common/form-kit/_field.scss +++ b/app/assets/stylesheets/common/form-kit/_field.scss @@ -64,6 +64,11 @@ width: var(--form-kit-large-input); } + &.--max { + max-width: var(--form-kit-max-input); + width: 100%; + } + &.--full { width: 100% !important; } diff --git a/app/assets/stylesheets/common/form-kit/_form-kit.scss b/app/assets/stylesheets/common/form-kit/_form-kit.scss index 05b02fe40af77..993c1dc843826 100644 --- a/app/assets/stylesheets/common/form-kit/_form-kit.scss +++ b/app/assets/stylesheets/common/form-kit/_form-kit.scss @@ -1,6 +1,11 @@ -.form-kit { +.form-kit:not(.--no-layout) { display: flex; flex-direction: column; gap: 1.5em; align-items: flex-start; + + .alert { + // we space elements with gap, so don't need the margin + margin-bottom: 0; + } } diff --git a/app/assets/stylesheets/common/form-kit/_variables.scss b/app/assets/stylesheets/common/form-kit/_variables.scss index 5ebf928587385..08dbe6f70dc98 100644 --- a/app/assets/stylesheets/common/form-kit/_variables.scss +++ b/app/assets/stylesheets/common/form-kit/_variables.scss @@ -1,6 +1,7 @@ :root { --form-kit-gutter-x: 1rem; --form-kit-gutter-y: 1rem; + --form-kit-max-input: 75ch; --form-kit-large-input: 325px; --form-kit-medium-input: 200px; --form-kit-small-input: 75px; diff --git a/app/assets/stylesheets/common/foundation/base.scss b/app/assets/stylesheets/common/foundation/base.scss index 54999375c920b..d4376dec8a4ca 100644 --- a/app/assets/stylesheets/common/foundation/base.scss +++ b/app/assets/stylesheets/common/foundation/base.scss @@ -37,7 +37,7 @@ html { font-size: var(--base-font-size); line-height: var(--line-height-large); background-color: var(--secondary); - overflow-y: scroll; + scrollbar-gutter: stable; direction: ltr; &.text-size-smallest { diff --git a/app/assets/stylesheets/common/modal/_index.scss b/app/assets/stylesheets/common/modal/_index.scss index fef1f68dc9916..f962016c5135c 100644 --- a/app/assets/stylesheets/common/modal/_index.scss +++ b/app/assets/stylesheets/common/modal/_index.scss @@ -1,2 +1,3 @@ +@import "choose-category-type"; @import "modal-overrides"; @import "user-status"; diff --git a/app/assets/stylesheets/common/modal/choose-category-type.scss b/app/assets/stylesheets/common/modal/choose-category-type.scss new file mode 100644 index 0000000000000..4545723d1e737 --- /dev/null +++ b/app/assets/stylesheets/common/modal/choose-category-type.scss @@ -0,0 +1,63 @@ +.choose-category-type-modal { + &__grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 0.75em; + } + + &__card { + display: flex; + flex-direction: column; + align-items: center; + gap: 0.5em; + padding: 1.25em 1em; + border: 1px solid var(--primary-low); + border-radius: var(--d-border-radius); + background: var(--secondary); + cursor: pointer; + transition: border-color 0.15s; + text-align: center; + + &:hover, + &:focus-visible { + border-color: var(--tertiary); + outline: none; + } + + &.--unavailable { + opacity: 0.5; + cursor: not-allowed; + + &:hover, + &:focus-visible { + border-color: var(--primary-low); + } + } + } + + &__card-icon { + font-size: var(--font-up-3); + color: var(--tertiary); + + .--unavailable & { + color: var(--primary-medium); + } + } + + &__card-name { + font-weight: 700; + } + + &__card-description { + font-size: var(--font-down-1); + color: var(--primary-medium); + } + + &__card-badge { + font-size: var(--font-down-2); + color: var(--primary-medium); + background: var(--primary-very-low); + padding: 0.15em 0.5em; + border-radius: var(--d-border-radius); + } +} diff --git a/app/assets/stylesheets/common/toolbar-popup-menu-options.scss b/app/assets/stylesheets/common/toolbar-popup-menu-options.scss index 0ea31c18b2e23..e0f1cba36efb1 100644 --- a/app/assets/stylesheets/common/toolbar-popup-menu-options.scss +++ b/app/assets/stylesheets/common/toolbar-popup-menu-options.scss @@ -30,7 +30,9 @@ } } -.toolbar-menu__options-content { +.toolbar-menu__options-content, +.toolbar-menu__list-content, +.toolbar-menu__heading-content { .dropdown-menu { .btn { &.--active { @@ -58,16 +60,10 @@ } } -.toolbar-menu__heading-content { +.toolbar-menu__heading-content, +.toolbar-menu__list-content { .dropdown-menu { .btn { - &.--active { - .d-button-label__active-icon { - visibility: visible; - margin-left: auto; - } - } - &:hover, &:focus, &:focus-visible { @@ -106,7 +102,11 @@ font-size: var(--font-down-1-rem); } } + } +} +.toolbar-menu__heading-content { + .dropdown-menu { .btn[data-name="heading-1"] { .d-button-label__text, .d-icon[class*="d-icon-discourse"] { diff --git a/app/assets/stylesheets/mobile/components/user-card.scss b/app/assets/stylesheets/mobile/components/user-card.scss index 5b134941567cc..d6784a35d8595 100644 --- a/app/assets/stylesheets/mobile/components/user-card.scss +++ b/app/assets/stylesheets/mobile/components/user-card.scss @@ -118,10 +118,23 @@ z-index: z("mobile-composer") + 1; // 1101 height: 100vh; width: 100vw; - background-color: rgb(black, 0.5); - animation: fadein 0.2s; + background-color: #000; + opacity: 0; + visibility: hidden; + transition: + opacity 0.3s, + visibility 0s 0.3s; + + &.--visible { + pointer-events: all; + opacity: 0.6; + visibility: visible; + transition: + opacity 0.3s, + visibility 0s; + } @media (prefers-reduced-motion) { - animation-duration: 0s; + transition-duration: 0s; } } diff --git a/app/controllers/admin/staff_action_logs_controller.rb b/app/controllers/admin/staff_action_logs_controller.rb index d5c74530ae2b2..9a999e2a1a0c1 100644 --- a/app/controllers/admin/staff_action_logs_controller.rb +++ b/app/controllers/admin/staff_action_logs_controller.rb @@ -54,8 +54,12 @@ def diff diff_fields.each do |k, v| output << "
#{CGI.escapeHTML(I18n.t("errors.diff_too_complex"))}
" + end end render json: { side_by_side: output } diff --git a/app/controllers/categories_controller.rb b/app/controllers/categories_controller.rb index 67aa2de875e0b..5b0f72859bb9d 100644 --- a/app/controllers/categories_controller.rb +++ b/app/controllers/categories_controller.rb @@ -127,6 +127,11 @@ def reorder render json: success_json end + def types + guardian.ensure_can_create_category! + render json: { types: Categories::TypeRegistry.list } + end + def show guardian.ensure_can_see!(@category) @@ -141,6 +146,7 @@ def show def create guardian.ensure_can_create!(Category) position = category_params.delete(:position) + category_type = params[:category_type] if category_params[:description].present? && category_params[:description].size > MAX_DESCRIPTION_PARAM_LENGTH @@ -166,6 +172,11 @@ def create if @category.save @category.move_to(position.to_i) if position + if category_type.present? && + UpcomingChanges.enabled_for_user?(:enable_simplified_category_creation, current_user) + Categories::Configure.call(guardian:, params: { category_id: @category.id, category_type: }) + end + Scheduler::Defer.later "Log staff action create category" do @staff_action_logger.log_category_creation(@category) end diff --git a/app/controllers/directory_items_controller.rb b/app/controllers/directory_items_controller.rb index 8cc9ef58a4ad0..bf22f82eeb804 100644 --- a/app/controllers/directory_items_controller.rb +++ b/app/controllers/directory_items_controller.rb @@ -113,7 +113,14 @@ def index if params[:user_field_ids] serializer_opts[:user_custom_field_map] = {} - user_field_ids = params[:user_field_ids]&.split("|")&.map(&:to_i) + allowed_field_ids = + if guardian.is_staff? + UserField.pluck(:id) + else + UserField.public_fields.pluck(:id) + end + + user_field_ids = params[:user_field_ids].split("|").map(&:to_i) & allowed_field_ids user_field_ids.each do |user_field_id| serializer_opts[:user_custom_field_map][ "#{User::USER_FIELD_PREFIX}#{user_field_id}" diff --git a/app/controllers/groups_controller.rb b/app/controllers/groups_controller.rb index 257332b84106e..918d8cbcbe3d0 100644 --- a/app/controllers/groups_controller.rb +++ b/app/controllers/groups_controller.rb @@ -610,6 +610,9 @@ def request_membership group = find_group(:name) + raise Discourse::InvalidAccess unless group.allow_membership_requests? + raise Discourse::InvalidAccess if group.users.exists?(id: current_user.id) + begin GroupRequest.create!(group: group, user: current_user, reason: params[:reason]) rescue ActiveRecord::RecordNotUnique diff --git a/app/controllers/post_actions_controller.rb b/app/controllers/post_actions_controller.rb index 966af4d4baec1..333f8258ea455 100644 --- a/app/controllers/post_actions_controller.rb +++ b/app/controllers/post_actions_controller.rb @@ -48,7 +48,11 @@ def destroy if result.failed? render_json_error(result) else - render_post_json(result.post, add_raw: false) + if !guardian.can_see_post?(result.post) + head :no_content + else + render_post_json(result.post, add_raw: false) + end end end diff --git a/app/controllers/posts_controller.rb b/app/controllers/posts_controller.rb index 66adcd5e52074..2e1ec19345d94 100644 --- a/app/controllers/posts_controller.rb +++ b/app/controllers/posts_controller.rb @@ -489,20 +489,26 @@ def revisions post = find_post_from_params raise Discourse::NotFound if post.hidden && !guardian.can_view_hidden_post_revisions? - post_revision = find_post_revision_from_params - post_revision_serializer = - PostRevisionSerializer.new(post_revision, scope: guardian, root: false) - render_json_dump(post_revision_serializer) + render_json_dump( + PostRevisionSerializer.new(find_post_revision_from_params, scope: guardian, root: false), + ) + rescue ONPDiff::DiffLimitExceeded + render_json_error(I18n.t("errors.diff_too_complex"), status: 422) end def latest_revision post = find_post_from_params raise Discourse::NotFound if post.hidden && !guardian.can_view_hidden_post_revisions? - post_revision = find_latest_post_revision_from_params - post_revision_serializer = - PostRevisionSerializer.new(post_revision, scope: guardian, root: false) - render_json_dump(post_revision_serializer) + render_json_dump( + PostRevisionSerializer.new( + find_latest_post_revision_from_params, + scope: guardian, + root: false, + ), + ) + rescue ONPDiff::DiffLimitExceeded + render_json_error(I18n.t("errors.diff_too_complex"), status: 422) end def hide_revision diff --git a/app/controllers/reviewable_notes_controller.rb b/app/controllers/reviewable_notes_controller.rb index c2a9cf4168c9c..7bd21f463dfa5 100644 --- a/app/controllers/reviewable_notes_controller.rb +++ b/app/controllers/reviewable_notes_controller.rb @@ -1,8 +1,8 @@ # frozen_string_literal: true class ReviewableNotesController < ApplicationController - before_action :find_reviewable before_action :ensure_can_see + before_action :find_reviewable def create note = @reviewable.reviewable_notes.build(note_params) @@ -30,7 +30,7 @@ def destroy private def find_reviewable - @reviewable = Reviewable.find(params[:reviewable_id]) + @reviewable = Reviewable.viewable_by(current_user, preload: false).find(params[:reviewable_id]) end def note_params diff --git a/app/controllers/topics_controller.rb b/app/controllers/topics_controller.rb index 162bf4688a0ca..a0c58c790307f 100644 --- a/app/controllers/topics_controller.rb +++ b/app/controllers/topics_controller.rb @@ -303,6 +303,7 @@ def excerpts @posts = Post + .secured(guardian) .where(hidden: false, deleted_at: nil, topic_id: @topic.id) .where("posts.id in (?)", post_ids) .joins("LEFT JOIN users u on u.id = posts.user_id") @@ -449,21 +450,25 @@ def update changes.delete(:title) if topic.title == changes[:title] changes.delete(:category_id) if topic.category_id.to_i == changes[:category_id].to_i - if Tag.include_tags? && changes[:tags].present? - incoming = changes[:tags] + if Tag.include_tags? && changes.has_key?(:tags) + if changes[:tags].present? + incoming = changes[:tags] - if incoming.first.is_a?(String) - Discourse.deprecate( - "Passing tag names as strings to the tags param is deprecated, use tag objects ({id, name}) instead", - since: "2026.01", - drop_from: "2026.07", - ) - changes.delete(:tags) if incoming.sort == topic.tags.map(&:name).sort - else - has_new = incoming.any? { |t| t[:id].blank? } - if !has_new && incoming.filter_map { |t| t[:id]&.to_i }.sort == topic.tags.pluck(:id).sort - changes.delete(:tags) + if incoming.first.is_a?(String) + Discourse.deprecate( + "Passing tag names as strings to the tags param is deprecated, use tag objects ({id, name}) instead", + since: "2026.01", + drop_from: "2026.07", + ) + changes.delete(:tags) if incoming.sort == topic.tags.map(&:name).sort + else + has_new = incoming.any? { |t| t[:id].blank? } + if !has_new && incoming.filter_map { |t| t[:id]&.to_i }.sort == topic.tags.pluck(:id).sort + changes.delete(:tags) + end end + elsif topic.tags.empty? + changes.delete(:tags) end end @@ -607,6 +612,12 @@ def timer guardian.ensure_can_delete!(topic) if TopicTimer.destructive_types.values.include?(status_type) + if status_type == TopicTimer.types[:publish_to_category] && params[:category_id].present? + category = Category.find_by(id: params[:category_id]) + raise Discourse::NotFound if !category + raise Discourse::InvalidAccess if !guardian.can_create_topic_on_category?(category) + end + options = { by_user: current_user, based_on_last_post: based_on_last_post } options.merge!(category_id: params[:category_id]) if params[:category_id].present? @@ -954,6 +965,11 @@ def move_posts end end + if params[:destination_topic_id].present? + destination_topic = Topic.find_by(id: params[:destination_topic_id]) + guardian.ensure_can_create_post_on_topic!(destination_topic) + end + hijack do destination_topic = move_posts_to_destination(topic) render_topic_changes(destination_topic) diff --git a/app/controllers/uploads_controller.rb b/app/controllers/uploads_controller.rb index db17bc89671c9..5b9808a46972f 100644 --- a/app/controllers/uploads_controller.rb +++ b/app/controllers/uploads_controller.rb @@ -112,21 +112,35 @@ def show return render_404 if !RailsMultisite::ConnectionManagement.has_db?(params[:site]) - RailsMultisite::ConnectionManagement.with_connection(params[:site]) do |db| - return render_404 if SiteSetting.prevent_anons_from_downloading_files && current_user.nil? - - if upload = - Upload.find_by(sha1: params[:sha]) || - Upload.find_by(id: params[:id], url: request.env["PATH_INFO"]) - unless Discourse.store.internal? - local_store = FileStore::LocalStore.new - return render_404 unless local_store.has_been_uploaded?(upload.url) + begin + request_site_current_user = + request.env.delete(Auth::DefaultCurrentUserProvider::CURRENT_USER_KEY) + + RailsMultisite::ConnectionManagement.with_connection(params[:site]) do |db| + begin + # current_user here refers to the user for the site that we are operating on + # using with_connection. If DB for the target site matches the current site + # for the request, then current_user will be the same as the request_site_current_user + return render_404 if SiteSetting.prevent_anons_from_downloading_files && current_user.nil? + + upload = + Upload.find_by(sha1: params[:sha]) || + Upload.find_by(id: params[:id], url: request.env["PATH_INFO"]) + + if upload.present? + if !Discourse.store.internal? + local_store = FileStore::LocalStore.new + return render_404 unless local_store.has_been_uploaded?(upload.url) + end + + send_file_local_upload(upload) + else + render_404 + end end - - send_file_local_upload(upload) - else - render_404 end + ensure + request.env[Auth::DefaultCurrentUserProvider::CURRENT_USER_KEY] = request_site_current_user end end diff --git a/app/controllers/webhooks_controller.rb b/app/controllers/webhooks_controller.rb index acd118650e885..0b13d9a6d0aa0 100644 --- a/app/controllers/webhooks_controller.rb +++ b/app/controllers/webhooks_controller.rb @@ -22,9 +22,7 @@ def sendgrid if SiteSetting.sendgrid_verification_key.present? return signature_failure if !valid_sendgrid_signature? else - Rails.logger.warn( - "Received a Sendgrid webhook, but no verification key has been configured. This is unsafe behaviour and will be disallowed in the future.", - ) + return signature_failure end events = params["_json"] || [params] @@ -38,7 +36,7 @@ def sendgrid # so we set the error code to 5.1.2 which translates to permanent failure bad destination system address. error_code = "5.1.2" if !error_code && event["type"] == "blocked" - if error_code[Email::SMTP_STATUS_TRANSIENT_FAILURE] + if error_code&.[](Email::SMTP_STATUS_TRANSIENT_FAILURE) process_bounce(message_id, to_address, SiteSetting.soft_bounce_score, error_code) else process_bounce(message_id, to_address, SiteSetting.hard_bounce_score, error_code) @@ -55,9 +53,7 @@ def mailjet if SiteSetting.mailjet_webhook_token.present? return signature_failure if !valid_mailjet_token? else - Rails.logger.warn( - "Received a Mailjet webhook, but no token has been configured. This is unsafe behaviour and will be disallowed in the future.", - ) + return signature_failure end events = params["_json"] || [params] @@ -79,6 +75,12 @@ def mailjet def mailpace # see https://docs.mailpace.com/guide/webhooks#email-events + if SiteSetting.mailpace_webhook_token.present? + return signature_failure if !valid_mailpace_token? + else + return signature_failure + end + message_id = Email::MessageIdService.message_id_clean(params["payload"]["message_id"]) to_address = params["payload"]["to"] status = params["payload"]["status"] @@ -97,9 +99,7 @@ def mandrill if SiteSetting.mandrill_authentication_key.present? return signature_failure if !valid_mandrill_signature? else - Rails.logger.warn( - "Received a Mandrill webhook, but no authentication key has been configured. This is unsafe behaviour and will be disallowed in the future.", - ) + return signature_failure end JSON @@ -130,9 +130,7 @@ def postmark if SiteSetting.postmark_webhook_token.present? return signature_failure if !valid_postmark_token? else - Rails.logger.warn( - "Received a Postmark webhook, but no token has been configured. This is unsafe behaviour and will be disallowed in the future.", - ) + return signature_failure end # see https://postmarkapp.com/developer/webhooks/bounce-webhook#bounce-webhook-data @@ -155,9 +153,7 @@ def sparkpost if SiteSetting.sparkpost_webhook_token.present? return signature_failure if !valid_sparkpost_token? else - Rails.logger.warn( - "Received a Sparkpost webhook, but no token has been configured. This is unsafe behaviour and will be disallowed in the future.", - ) + return signature_failure end events = params["_json"] || [params] @@ -241,7 +237,7 @@ def handle_mailgun_legacy(params) # only handle soft bounces, because hard bounces are also handled # by the "dropped" event and we don't want to increase bounce score twice # for the same message - if event == "bounced" && params["error"][Email::SMTP_STATUS_TRANSIENT_FAILURE] + if event == "bounced" && params["error"]&.[](Email::SMTP_STATUS_TRANSIENT_FAILURE) process_bounce(message_id, to_address, SiteSetting.soft_bounce_score, error_code) elsif event == "dropped" process_bounce(message_id, to_address, SiteSetting.hard_bounce_score, error_code) @@ -280,6 +276,8 @@ def handle_mailgun_new(params) def valid_sendgrid_signature? signature = request.headers["X-Twilio-Email-Event-Webhook-Signature"] timestamp = request.headers["X-Twilio-Email-Event-Webhook-Timestamp"] + return false if signature.blank? || timestamp.blank? + request.body.rewind payload = request.body.read @@ -297,11 +295,13 @@ def valid_sendgrid_signature? end def valid_mailjet_token? + return false if params[:t].blank? ActiveSupport::SecurityUtils.secure_compare(params[:t], SiteSetting.mailjet_webhook_token) end def valid_mandrill_signature? signature = request.headers["X-Mandrill-Signature"] + return false if signature.blank? payload = "#{Discourse.base_url}/webhooks/mandrill" params @@ -321,11 +321,17 @@ def valid_mandrill_signature? ) end + def valid_mailpace_token? + ActiveSupport::SecurityUtils.secure_compare(params[:t], SiteSetting.mailpace_webhook_token) + end + def valid_postmark_token? + return false if params[:t].blank? ActiveSupport::SecurityUtils.secure_compare(params[:t], SiteSetting.postmark_webhook_token) end def valid_sparkpost_token? + return false if params[:t].blank? ActiveSupport::SecurityUtils.secure_compare(params[:t], SiteSetting.sparkpost_webhook_token) end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index a6f72dc3624f5..491a51531365d 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -130,7 +130,7 @@ def script_asset_path(script) path end - def preload_script(script) + def preload_script(script, attrs: {}) scripts = [] if chunks = EmberCli.script_chunks[script] @@ -142,20 +142,24 @@ def preload_script(script) scripts .map do |name| path = script_asset_path(name) - preload_script_url(path, entrypoint: script) + preload_script_url(path, entrypoint: script, attrs: attrs) end .join("\n") .html_safe end - def preload_script_url(url, entrypoint: nil, type_module: false) + def preload_script_url(url, entrypoint: nil, type_module: false, attrs: {}) entrypoint_attribute = entrypoint ? "data-discourse-entrypoint=\"#{entrypoint}\"" : "" nonce_attribute = "nonce=\"#{csp_nonce_placeholder}\"" + extra_attrs = + attrs.map { |k, v| "#{ERB::Util.html_escape(k)}=\"#{ERB::Util.html_escape(v)}\"" }.join(" ") + extra_attrs = " #{extra_attrs}" if extra_attrs.present? + add_resource_preload_list(url, "script") <<~HTML.html_safe - + HTML end diff --git a/app/models/post_revision.rb b/app/models/post_revision.rb index 921267d3a0811..9c9c32363c3e9 100644 --- a/app/models/post_revision.rb +++ b/app/models/post_revision.rb @@ -4,6 +4,8 @@ class PostRevision < ActiveRecord::Base belongs_to :post belongs_to :user + attr_accessor :silent + serialize :modifications, type: Hash, coder: YAML after_create :create_notification diff --git a/app/models/report.rb b/app/models/report.rb index 57c51399064c4..4f90d1e46d153 100644 --- a/app/models/report.rb +++ b/app/models/report.rb @@ -53,6 +53,20 @@ def self.hidden?(type, admin:) yellow: "#FFCD56", } + LEGACY_REPORTS = %w[ + bookmarks + likes + moderator_warning_private_messages + notify_moderators_private_messages + notify_user_private_messages + post_edits + profile_views + system_private_messages + top_users_by_likes_received_from_inferior_trust_level + top_users_by_likes_received_from_a_variety_of_people + user_to_user_private_messages + ] + include Reports::AssociatedAccountsByProvider include Reports::Bookmarks include Reports::ConsolidatedApiRequests @@ -123,7 +137,8 @@ def self.hidden?(type, admin:) :primary_color, :secondary_color, :filters, - :available_filters + :available_filters, + :legacy def self.default_days 30 @@ -244,6 +259,7 @@ def as_json(options = nil) higher_is_better: self.higher_is_better, modes: self.modes, }.tap do |json| + json[:legacy] = self.legacy if self.legacy json[:icon] = self.icon if self.icon json[:error] = self.error if self.error json[:total] = self.total if self.total @@ -284,6 +300,8 @@ def self._get(type, opts = nil) report.filters = opts[:filters] if opts[:filters] report.labels = Report.default_labels + report.legacy = LEGACY_REPORTS.include?(type) if SiteSetting.reporting_improvements + report end diff --git a/app/models/topic.rb b/app/models/topic.rb index a723c64d4ce12..7995d3ca58de2 100644 --- a/app/models/topic.rb +++ b/app/models/topic.rb @@ -520,6 +520,7 @@ def limit_topics_per_day def limit_private_messages_per_day return unless private_message? + return if subtype == TopicSubtype.notify_moderators apply_per_day_rate_limit_for("pms", :max_personal_messages_per_day) end diff --git a/app/models/user.rb b/app/models/user.rb index 54ff9f5154088..a49128ca482a8 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -2197,7 +2197,7 @@ def self.first_login_admin_id private def main_user_record - anonymous? ? master_user : self + (anonymous? && master_user) ? master_user : self end def set_default_sidebar_section_links(update: false) diff --git a/app/queries/reports/list_query.rb b/app/queries/reports/list_query.rb index 71aeeeb94799c..3f411b2ef6341 100644 --- a/app/queries/reports/list_query.rb +++ b/app/queries/reports/list_query.rb @@ -10,15 +10,31 @@ def initialize(name) @type = name.to_s.gsub("report_", "") end - def to_h(admin:) - return if Report.hidden?(type, admin:) + def visible?(admin:) + return false if Report.hidden?(type, admin:) - { + if SiteSetting.reporting_improvements + return false if plugin_report? && plugin_disabled? + return false if Report::LEGACY_REPORTS.include?(type) + end + + true + end + + def to_h + result = { type:, title:, description:, description_link: I18n.t("reports.#{type}.description_link", default: "").presence, } + + if SiteSetting.reporting_improvements && plugin_report? + result[:plugin] = plugin_name + result[:plugin_display_name] = plugin_display_name + end + + result end private @@ -41,6 +57,43 @@ def legacy? SiteSetting.use_legacy_pageviews && type.in?(%w[consolidated_page_views consolidated_page_views_browser_detection]) end + + def plugin_name + return @plugin_name if defined?(@plugin_name) + + @plugin_name = resolve_plugin_name + end + + def resolve_plugin_name + return unless Report.singleton_class.method_defined?(@name) + + source_path = Report.method(@name).source_location.first + return unless source_path&.include?("/plugins/") + + # Extract plugin name from path like /plugins/discourse-ai/... + match = source_path.match(%r{/plugins/([^/]+)/}) + match[1] if match + rescue NameError + nil + end + + def plugin_instance + return @plugin_instance if defined?(@plugin_instance) + @plugin_instance = plugin_name && Discourse.plugins_by_name[plugin_name] + end + + def plugin_display_name + plugin_instance&.humanized_name + end + + def plugin_report? + plugin_name.present? + end + + def plugin_disabled? + return true unless plugin_instance + !plugin_instance.enabled? + end end def self.call(admin:) @@ -62,7 +115,8 @@ def self.call(admin:) reports_methods .filter_map do |report_name| - Reports::ListQuery::FormattedReport.new(report_name).to_h(admin:) + report = Reports::ListQuery::FormattedReport.new(report_name) + report.to_h if report.visible?(admin:) end .sort_by { |report| report[:title] } end diff --git a/app/serializers/site_serializer.rb b/app/serializers/site_serializer.rb index e628a72759f50..0dbffed075d7d 100644 --- a/app/serializers/site_serializer.rb +++ b/app/serializers/site_serializer.rb @@ -52,6 +52,7 @@ class SiteSerializer < ApplicationSerializer :full_name_required_for_signup, :full_name_visible_in_signup, :admin_config_login_routes, + :email_configured, ) has_many :archetypes, embed: :objects, serializer: ArchetypeSerializer @@ -269,7 +270,7 @@ def topic_featured_link_allowed_category_ids end def censored_regexp - WordWatcher.serialized_regexps_for_action(:censor, engine: :js) + WordWatcher.serialized_regexps_for_action(:censor) end def custom_emoji_translation @@ -285,11 +286,11 @@ def include_shared_drafts_category_id? end def watched_words_replace - WordWatcher.regexps_for_action(:replace, engine: :js) + WordWatcher.regexps_for_action(:replace) end def watched_words_link - WordWatcher.regexps_for_action(:link, engine: :js) + WordWatcher.regexps_for_action(:link) end def categories @@ -416,6 +417,10 @@ def include_admin_config_routes? scope.is_admin? end + def email_configured + GlobalSetting.smtp_address.present? + end + def full_name_required_for_signup Site.full_name_required_for_signup end diff --git a/app/serializers/watched_word_list_serializer.rb b/app/serializers/watched_word_list_serializer.rb index 42f89f326a6fe..68f3243b4192a 100644 --- a/app/serializers/watched_word_list_serializer.rb +++ b/app/serializers/watched_word_list_serializer.rb @@ -18,7 +18,7 @@ def words def compiled_regular_expressions expressions = {} actions.each do |action| - expressions[action] = WordWatcher.serialized_regexps_for_action(action, engine: :js) + expressions[action] = WordWatcher.serialized_regexps_for_action(action) end expressions end diff --git a/app/serializers/watched_word_serializer.rb b/app/serializers/watched_word_serializer.rb index aff7cb7a7f719..a880a5cad2c47 100644 --- a/app/serializers/watched_word_serializer.rb +++ b/app/serializers/watched_word_serializer.rb @@ -11,7 +11,7 @@ class WatchedWordSerializer < ApplicationSerializer :html def regexp - WordWatcher.word_to_regexp(word, engine: :js) + WordWatcher.word_to_regexp(word) end def action diff --git a/app/services/base_bookmarkable.rb b/app/services/base_bookmarkable.rb index f68748c62b369..d232c46be1df1 100644 --- a/app/services/base_bookmarkable.rb +++ b/app/services/base_bookmarkable.rb @@ -182,7 +182,7 @@ def self.bookmark_metadata(bookmark, user) # @param [Guardian] guardian The guardian for the user which is creating the bookmark. # @param [Model] bookmarkable The ActiveRecord model which is acting as the bookmarkable for the new bookmark. def self.validate_before_create(guardian, bookmarkable) - # noop + raise NotImplementedError end ## diff --git a/app/services/categories/configure.rb b/app/services/categories/configure.rb new file mode 100644 index 0000000000000..79aea64fb0533 --- /dev/null +++ b/app/services/categories/configure.rb @@ -0,0 +1,75 @@ +# frozen_string_literal: true + +module Categories + class Configure + include Service::Base + + params do + attribute :category_id, :integer + attribute :category_type, :string + attribute :configuration_values + + validates :category_id, presence: true + validates :category_type, presence: true + validate :category_type_is_valid + + def category_type_is_valid + return if category_type.blank? + return if Categories::TypeRegistry.valid?(category_type) + + errors.add(:category_type, :invalid) + end + end + + model :category + model :type_class + policy :can_modify_category + + transaction do + step :enable_plugin + step :configure_site_settings + step :configure_category + end + + step :log_action + + private + + def fetch_category(params:) + Category.find_by(id: params.category_id) + end + + def can_modify_category(guardian:, category:) + guardian.can_edit_category?(category) + end + + def fetch_type_class(params:) + Categories::TypeRegistry.get(params.category_type) + end + + def enable_plugin(type_class:) + type_class.enable_plugin + end + + def configure_site_settings(type_class:, category:, params:) + type_class.configure_site_settings( + category, + configuration_values: params.configuration_values || {}, + ) + end + + def configure_category(type_class:, category:, params:) + type_class.configure_category( + category, + configuration_values: params.configuration_values || {}, + ) + end + + def log_action(guardian:, category:, params:) + StaffActionLogger.new(guardian.user).log_custom( + "configure_category_type", + { category_id: category.id, category_type: params.category_type }, + ) + end + end +end diff --git a/app/services/categories/type_registry.rb b/app/services/categories/type_registry.rb new file mode 100644 index 0000000000000..8e80a20c9a6fe --- /dev/null +++ b/app/services/categories/type_registry.rb @@ -0,0 +1,52 @@ +# frozen_string_literal: true + +module Categories + class TypeRegistry + class << self + def register(klass, plugin_identifier: nil) + id = klass.type_id + if types.key?(id) && owners[id] != plugin_identifier + raise ArgumentError, + "Category type '#{id}' is already registered#{owners[id] ? " by #{owners[id]}" : ""}" + end + types[id] = klass + owners[id] = plugin_identifier + end + + def get(id) + types[id.to_sym] + end + + def get!(id) + get(id) || raise(ArgumentError, "Unknown category type: #{id}") + end + + def all + types + end + + def list + types.values.map(&:metadata) + end + + def valid?(id) + types.key?(id.to_sym) + end + + def reset! + @types = nil + @owners = nil + end + + private + + def types + @types ||= {} + end + + def owners + @owners ||= {} + end + end + end +end diff --git a/app/services/categories/types/base.rb b/app/services/categories/types/base.rb new file mode 100644 index 0000000000000..adccb489cc11a --- /dev/null +++ b/app/services/categories/types/base.rb @@ -0,0 +1,85 @@ +# frozen_string_literal: true + +module Categories + module Types + class Base + class << self + def type_id(id = nil) + if id + @type_id = id.to_sym + else + @type_id || name.demodulize.underscore.to_sym + end + end + + def enable_plugin + end + + def configure_site_settings(category, configuration_values: {}) + configuration_schema[:site_settings]&.each do |setting_name, default_value| + value = configuration_values.fetch(setting_name.to_s, default_value) + SiteSetting.public_send("#{setting_name}=", value) + end + end + + def configure_category(category, configuration_values: {}) + end + + def configuration_schema + {} + end + + def available? + true + end + + def icon + "comments" + end + + def metadata + { + id: type_id, + name: I18n.t("category_types.#{type_id}.name", default: type_id.to_s.titleize), + description: I18n.t("category_types.#{type_id}.description", default: ""), + icon: icon, + available: available?, + configuration_schema: resolved_configuration_schema, + } + end + + private + + def resolved_configuration_schema + schema = configuration_schema + return [] if schema.blank? + + entries = [] + + schema[:site_settings]&.each do |setting_name, target_value| + meta = SiteSetting.setting_metadata_hash(setting_name) + entries << { + key: setting_name.to_s, + default: target_value, + type: meta[:type], + label: meta[:humanized_name], + description: meta[:description], + } + end + + schema[:category_settings]&.each do |field_name, config| + entries << { + key: field_name.to_s, + default: config[:default], + type: config[:type].to_s, + label: config[:label], + description: config[:description], + } + end + + entries + end + end + end + end +end diff --git a/app/services/categories/types/discussion.rb b/app/services/categories/types/discussion.rb new file mode 100644 index 0000000000000..9d0010ffa032b --- /dev/null +++ b/app/services/categories/types/discussion.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Categories + module Types + class Discussion < Base + end + end +end diff --git a/app/services/hashtag_autocomplete_service.rb b/app/services/hashtag_autocomplete_service.rb index 94272235ad147..0986719449055 100644 --- a/app/services/hashtag_autocomplete_service.rb +++ b/app/services/hashtag_autocomplete_service.rb @@ -262,11 +262,7 @@ def lookup(slugs, types_in_priority_order) # bother searching subsequent types if the first types in # the array already reach the limit. # @returns {Array} The results as HashtagItems - def search( - term, - types_in_priority_order, - limit: SiteSetting.experimental_hashtag_search_result_limit - ) + def search(term, types_in_priority_order, limit: 20) raise Discourse::InvalidParameters.new(:order) if !types_in_priority_order.is_a?(Array) limit = [limit, SEARCH_MAX_LIMIT].min types_in_priority_order = diff --git a/app/services/post_action_notifier.rb b/app/services/post_action_notifier.rb index c90fa520349f0..e35f8b10d43cd 100644 --- a/app/services/post_action_notifier.rb +++ b/app/services/post_action_notifier.rb @@ -105,6 +105,7 @@ def self.after_create_post_revision(post_revision) return if post_revision.user.blank? return if post.topic.blank? return if post.topic.private_message? + return if post_revision.silent return if notification_is_disabled?(post_revision) user_ids = [] @@ -160,14 +161,21 @@ def self.add_post_revision_notifier_recipients(&block) private def self.notification_is_disabled?(post_revision) + if SiteSetting.disable_system_edit_notifications && + post_revision.user_id == Discourse::SYSTEM_USER_ID + return true + end + modifications = post_revision.modifications - ( - SiteSetting.disable_system_edit_notifications && - post_revision.user_id == Discourse::SYSTEM_USER_ID - ) || - ( - SiteSetting.disable_category_edit_notifications && - modifications&.dig("category_id").present? - ) || (SiteSetting.disable_tags_edit_notifications && modifications&.dig("tags").present?) + + if SiteSetting.disable_category_edit_notifications && modifications&.dig("category_id").present? + return true + end + + if SiteSetting.disable_tags_edit_notifications && modifications&.dig("tags").present? + return true + end + + false end end diff --git a/app/services/tags/bulk_create.rb b/app/services/tags/bulk_create.rb index d600c79be6add..2de71e367ce91 100644 --- a/app/services/tags/bulk_create.rb +++ b/app/services/tags/bulk_create.rb @@ -67,27 +67,18 @@ def normalize_tags(raw_tag_names:) raw_tag_names.each do |raw_name| next if raw_name.blank? - normalized_input = raw_name.strip - normalized_input = normalized_input.downcase if SiteSetting.force_lowercase_tags - normalized_input = normalized_input.gsub(/[[:space:]]+/, "-") - - if normalized_input.length > SiteSetting.max_tag_length - results[:failed][raw_name] = I18n.t( - "tags.bulk_create.tag_too_long", - count: SiteSetting.max_tag_length, - ) - next - end - - tag_name = DiscourseTagging.clean_tag(raw_name) + tag_name = DiscourseTagging.clean_tag(raw_name, truncate: false) if tag_name.blank? results[:failed][raw_name] = I18n.t("tags.bulk_create.invalid_name") next end - if tag_name != normalized_input - results[:failed][raw_name] = I18n.t("tags.bulk_create.invalid_name") + if tag_name.length > SiteSetting.max_tag_length + results[:failed][raw_name] = I18n.t( + "tags.bulk_create.tag_too_long", + count: SiteSetting.max_tag_length, + ) next end diff --git a/app/services/word_watcher.rb b/app/services/word_watcher.rb index c92be31723659..46282e0e8b9b8 100644 --- a/app/services/word_watcher.rb +++ b/app/services/word_watcher.rb @@ -53,15 +53,13 @@ def self.cached_words_for_action(action) end end - def self.regexps_for_action(action, engine: :ruby) - cached_words_for_action(action)&.to_h do |_, attrs| - [word_to_regexp(attrs[:word], engine: engine), attrs] - end + def self.regexps_for_action(action) + cached_words_for_action(action)&.to_h { |_, attrs| [word_to_regexp(attrs[:word]), attrs] } end # This regexp is run in miniracer, and the client JS app # Make sure it is compatible with major browsers when changing - def self.compiled_regexps_for_action(action, engine: :ruby, raise_errors: false) + def self.compiled_regexps_for_action(action, raise_errors: false) words = cached_words_for_action(action) return [] if words.blank? @@ -92,11 +90,7 @@ def self.compiled_regexps_for_action(action, engine: :ruby, raise_errors: false) next if regexp.blank? # Add word boundaries to the regexp for regular watched words - regexp = - match_word_regexp( - regexp, - engine: engine, - ) if !SiteSetting.watched_words_regular_expressions? + regexp = match_word_regexp(regexp) if !SiteSetting.watched_words_regular_expressions? # Add case insensitive flag if needed begin @@ -112,13 +106,11 @@ def self.compiled_regexps_for_action(action, engine: :ruby, raise_errors: false) .compact end - def self.serialized_regexps_for_action(action, engine: :ruby) - compiled_regexps_for_action(action, engine: engine).map do |r| - { r.source => { case_sensitive: !r.casefold? } } - end + def self.serialized_regexps_for_action(action) + compiled_regexps_for_action(action).map { |r| { r.source => { case_sensitive: !r.casefold? } } } end - def self.word_to_regexp(word, engine: :ruby, match_word: true) + def self.word_to_regexp(word, match_word: true) if SiteSetting.watched_words_regular_expressions? regexp = word regexp = "(#{regexp})" if match_word @@ -132,7 +124,7 @@ def self.word_to_regexp(word, engine: :ruby, match_word: true) # Convert wildcards to regexp regexp = regexp.gsub("\\*", '\S*') - regexp = match_word_regexp(regexp, engine: engine) if match_word + regexp = match_word_regexp(regexp) if match_word regexp end end @@ -294,19 +286,14 @@ def self.censor_text_with_regexp(text, regexp) "Tibetan" => "\\u0F00-\\u0FFF", }.values.join - def self.match_word_regexp(regexp, engine: :ruby) + WORD_CHARS = "[\\p{L}\\p{M}\\p{N}\\p{Pc}]" + + def self.match_word_regexp(regexp) s = SPACELESS_SCRIPTS - if engine == :js - leading = "(?:[\\P{L}#{s}]|^|(?=[#{s}]))" - trailing = "(?:(?=[\\P{L}#{s}]|$)|(?<=[#{s}]))" - "#{leading}(#{regexp})#{trailing}" - elsif engine == :ruby - leading = "(?:(? <%- plugin_assets.each do |asset| %> - <%= preload_script asset[:name] %> + <%= preload_script asset[:name], attrs: { + "data-discourse-plugin": asset[:plugin].metadata.name, + "data-official": asset[:plugin].metadata.official?, + "data-preinstalled": asset[:plugin].preinstalled?, + } %> <%- end %> <%- end %> diff --git a/config/initializers/000-zeitwerk.rb b/config/initializers/000-zeitwerk.rb index 50470d4126b10..a4855a1743b26 100644 --- a/config/initializers/000-zeitwerk.rb +++ b/config/initializers/000-zeitwerk.rb @@ -53,6 +53,7 @@ def self.inflect(overrides) "lib/generators", "lib/freedom_patches", "lib/i18n/backend", + "lib/release_utils", "lib/unicorn_logstash_patch.rb", "lib/pitchfork_logstash_patch.rb", ) diff --git a/config/initializers/012-category_types.rb b/config/initializers/012-category_types.rb new file mode 100644 index 0000000000000..dfa44e30bebe9 --- /dev/null +++ b/config/initializers/012-category_types.rb @@ -0,0 +1,5 @@ +# frozen_string_literal: true + +Rails.application.config.to_prepare do + Categories::TypeRegistry.register(Categories::Types::Discussion) +end diff --git a/config/locales/client.ar.yml b/config/locales/client.ar.yml index f4739b4aa8db4..89c953162f0c1 100644 --- a/config/locales/client.ar.yml +++ b/config/locales/client.ar.yml @@ -6,6 +6,12 @@ ar: js: + blocks: + ghost: + status: "الحالة" + in_location: "في" + hidden: "مخفي" + failed: "فشل" carousel: go_to_slide: "الانتقال إلى الشريحة %{index}" previous: "الشريحة السابقة" @@ -274,7 +280,7 @@ ar: el: name: اليونانية en: - name: إنجليزي + name: الإنجليزية en_GB: name: الإنجليزية (المملكة المتحدة) es: @@ -543,6 +549,8 @@ ar: pill: "مُقترح" pm_title: "الرسائل المقترحة" admin_onboarding_banner: + start_posting: + back: "رجوع" spread_the_word: action: "نسخ الرابط" copied_to_clipboard: "تم نسخ الرابط إلى الحافظة!" @@ -771,6 +779,13 @@ ar: remove_confirmation: "هل تريد بالتأكيد حذف هذه المسودة؟" bulk_delete: "احذف المحدّد" bulk_delete_confirmation: "احذف المسودات" + bulk_delete_message: + zero: "هل تريد بالتأكيد حذف هذه المسودة؟" + one: "هل تريد بالتأكيد حذف هذه المسودة؟" + two: "هل تريد بالتأكيد حذف هاتين المسودتين؟" + few: "هل تريد بالتأكيد حذف %{count} مسودات؟" + many: "هل تريد بالتأكيد حذف %{count} مسودة؟" + other: "هل تريد بالتأكيد حذف %{count} مسودة؟" new_topic: "مسودة موضوع جديد" new_private_message: "مسودة رسالة خاصة جديدة" edit_topic: "تعديل مسودة الموضوع" @@ -874,23 +889,13 @@ ar: in_reply_to: "ردًا على" filtered_flagged_by: "تم الإبلاغ بواسطة" unknown: - title: - zero: "ليس لديك أي عناصر قابلة للمراجعة من المكوِّن الإضافي المُعطّل:" - one: "لديك عنصر واحد قابل للمراجعة من المكوِّن الإضافي المُعطّل:" - two: "لديك عنصران قابلان للمراجعة من المكوِّن الإضافي المُعطّل:" - few: "لديك عناصر قابلة للمراجعة من المكوِّن الإضافي المُعطّل:" - many: "لديك عناصر قابلة للمراجعة من المكوِّن الإضافي المُعطّل:" - other: "لديك عناصر قابلة للمراجعة من المكوِّن الإضافي المُعطّل:" instruction: "لا يمكن عرض تلك العناصر ما لم تفعّل المكوِّن الإضافي ذا الصلة. يُرجى تفعيل المكوِّن الإضافي ثم تحديث الصفحة. أو يمكنك تجاهلها. معرفة المزيد..." reviewable_unknown_source: "%{reviewableType} (مكوِّن إضافي غير معروف)" reviewable_known_source: "%{reviewableType} (من المكوِّن الإضافي \"%{pluginName}\")" ignore_all: "تجاهل الكل" enable_plugins: "تفعيل المكوِّنات الإضافية" - delete_confirm: "هل ترغب بالتأكيد في حذف كل المراجعات التي أُنشِئت بواسطة المكوِّنات الإضافية المعطّلة؟" - ignore_success: "حُذفت كل المراجعات التي أُنشِئت بواسطة المكوِّنات الإضافية المعطّلة." explain: why: "اشرح سبب دخول هذا العنصر في قائمة الانتظار" - title: "التقييم القابل للمراجعة" formula: "المُعادلة" subtotal: "الإجمالي الفرعي" total: "الإجمالي" @@ -904,10 +909,8 @@ ar: title: "يحصل المستخدمون الذين تم التحقُّق من صحة بلاغاتهم بشكلٍٍ متكرر على مكافأة." trust_level_bonus: name: "مستوى الثقة" - title: "تحظى العناصر القابلة للمراجعة التي أنشأها مستخدمون من مستوى ثقة أعلى بنقاط أعلى." type_bonus: name: "مكافأة النوع" - title: "يمكن لفريق العمل تخصيص مكافأة لبعض الأنواع القابلة للمراجعة لمنحها أولوية أعلى." revise_and_reject_post: title: "مراجعة" reason: "السبب" @@ -916,7 +919,6 @@ ar: custom_reason: "قدِّم وصفًا واضحًا للسبب" other_reason: "آخر..." optional: "اختياري" - stale_help: "تم إجراء هذه المراجعة بواسطة %{username}." claim_help: optional: "يمكنك المطالبة بهذا العنصر لمنع الآخرين من مراجعته." required: "يجب عليك المطالبة بالعناصر قبل أن تتمكن من مراجعتها." @@ -952,6 +954,7 @@ ar: filtered_topic: "لقد قمت بالتصفية لعرض المحتوى القابل للمراجعة في موضوع واحد." filtered_user: "المستخدم المبلَّغ عنه" filtered_reviewed_by: "تمت المراجعة بواسطة" + filtered_claimed_by: "تمت المطالبة بالعلم من قِبل" show_all_topics: "عرض كل الموضوعات" deleted_post: "(تم حذف المنشور)" deleted_user: "(تم حذف المستخدم)" @@ -1096,6 +1099,10 @@ ar: is_this_post: "هل هذا %{reviewable_type} %{reviewable_human_score_types}؟" delimiter: "أو" something_else_wrong: "هل هناك خطأ ما في %{reviewable_type} هذا؟" + approve_user: "هل توافق على هذا المستخدم؟" + suspect_user: "هل ينشر هذا المستخدم رسائل عشوائية؟" + approve_post: "هل توافق على هذا المنشور؟" + approve_topic: "هل توافق على هذا الموضوع؟" types: reviewable_flagged_post: title: "المنشورات المُبلَغ عنها" @@ -1114,29 +1121,43 @@ ar: title: "المنشور" noun: "منشور" reviewable_ai_chat_message: + title: "رسالة دردشة تم الإبلاغ عنها بواسطة الذكاء الاصطناعي" noun: "رسالة الدردشة" reviewable_ai_post: + title: "منشور تم الإبلاغ عنه بواسطة الذكاء الاصطناعي" noun: "منشور" + reviewable_post_voting_comment: + title: "تعليق تم الإبلاغ عنه" + noun: "تعليق" flagged_as: "صفة الإبلاغ" post_flagged_as: "عُلّم على المنشور على أنه" chat_flagged_as: "عُلّم على الدردشة على أنها" + queued_post_label: "منشور في قائمة الانتظار" + queued_topic_label: "الموضوع في قائمة الانتظار" user_label: "المستخدم" + assigned_to: "المنشور مُخصص لـ" moderator_actions: "الإجراءات المتاحة للمشرفين" timeline_and_notes: "المخطط الزمني والملاحظات" timeline: target_created: "تم إنشاء المنشور" target_created_by: "أُنشئ المنشور من طرف %{username} · %{relativeDate}" target_deleted: "تم حذف المنشور" + target_deleted_by: "تم حذف المنشور بواسطة %{username} · %{relativeDate}" flagged: "تم الإبلاغ" flagged_as_by: "تم الإبلاغ عنه بسبب %{flagReason} من قِبل %{username} · %{relativeDate}" claimed: "تمت المطالبة به" claimed_by: "تمت المطالبة به من قِبل %{username} · %{relativeDate}" + unclaimed_by: "لم يتم المطالبة به من قِبل %{username} · %{relativeDate}" reviewed: "أُجريت مراجعته" + approved_by: "تمت الموافقة عليه من قِبل %{username} · %{relativeDate}" + rejected_by: "تم رفضه من قِبل %{username} · %{relativeDate}" + ignored_by: "تم تجاهله من قِبل %{username} · %{relativeDate}" view_conversation: "عرض الرسالة الخاصة" note_added: "ملاحظة المشرف" note_added_by: "ملاحظة المشرف من قِبل %{username} · %{relativeDate}" no_events: "لا توجد أحداث زمنية متاحة للعرض" notes: + add_note_description: "أضف ملاحظة لتوضيح السياق للمشرفين الآخرين." add_note_button: "أضف ملاحظة" placeholder: "اكتب ملاحظتك هنا..." chars_remaining: "متبقي %{count} من الحروف" @@ -1149,6 +1170,7 @@ ar: review_user: "المستخدم" need_help: "هل تحتاج إلى مساعدة؟" copy_link: "نسخ الرابط" + copy_permalink_title: "نسخ رابط هذا العنصر القابل للمراجعة إلى الحافظة" copy_link_feedback: "تم نسخ الرابط" view_source: "عرض المصدر" insights: @@ -1161,8 +1183,17 @@ ar: few: "جرى الإبلاغ بواسطة %{count} مستخدمين مختلفين" many: "جرى الإبلاغ بواسطة %{count} مستخدمًا مختلفًا" other: "جرى الإبلاغ بواسطة %{count} مستخدم مختلف" + similar_posts: "الانتهاكات السابقة" + flagged_in_timeframe: + zero: "لم يتم تأكيد أي إبلاغ" + one: "تم تأكيد إبلاغ واحد" + two: "تم تأكيد إبلاغين" + few: "تم تأكيد %{count} إبلاغات" + many: "تم تأكيد %{count} إبلاغًا" + other: "تم تأكيد %{count} إبلاغ" user_activity: "معلومات المستخدم" activities: + joined_on: "تاريخ الانضمام: %{joinDate}" trust_level: "مستوى الثقة: %{trustLevelName}" posts: zero: "%{count} من المنشورات" @@ -1171,10 +1202,17 @@ ar: few: "%{count} منشورات" many: "%{count} منشورًا" other: "%{count} منشور" + moderation_history: + label: "تاريخ الإشراف" + silenced: "صامت: %{count}" + suspended: "معلق: %{count}" + rejected_posts: "المنشورات المرفوضة: %{count}" solution_marked: "جرى تعيين الحل" topic_has_solution: "هناك حل لهذا الموضوع" visibility: "الرؤية" + topic_unlisted: "هذا الموضوع غير مدرج ولا يمكن الوصول إليه إلا عبر الرابط المباشر." help: + community_moderation_guide: "دليل الإشراف الخاص بهذا المجتمع" moderation_guide: "دليل الإشراف في Discourse" flag_priorities: "إدارة سمعة المستخدم وأولويات الإبلاغ" spam_detection: "اكتشاف المحتوى العشوائي" @@ -1351,6 +1389,7 @@ ar: title: التفاعل posting: النشر notification: الإشعارات + self_lockout: "أنت على وشك تغيير رؤية المجموعة بطريقة ستؤدي إلى إزالة صلاحية وصولك. هل أنت متأكد من رغبتك في المتابعة؟" email: title: "البريد الإلكتروني" enable_smtp: "تفعيل SMTP" @@ -1363,6 +1402,7 @@ ar: smtp_title: "SMTP" smtp_instructions: "عند تفعيل SMTP للمجموعة، سيتم إرسال جميع الرسائل الإلكترونية الصادرة المُرسَلة من صندوق الوارد الخاص بالمجموعة عبر إعدادات SMTP المحدَّدة هنا بدلًا من خادم البريد الذي تم إعداده للرسائل الإلكترونية الأخرى التي يرسلها منتداك." additional_settings: "إعدادات إضافية" + smtp_disable_confirm: "إذا أوقفت بروتوكول SMTP، فسيُعاد ضبط جميع إعداداته وتُعطل الوظائف المرتبطة به. هل تريد المتابعة فعلاً؟" prefill: title: "الملء المسبق بإعدادات:" gmail: "Gmail" @@ -1485,6 +1525,8 @@ ar: make_owner_description: "جعل %{username} أحد مالكي هذه المجموعة" remove_owner: "إزالة كمالك" remove_owner_description: "إزالة %{username} كمالك هذه المجموعة" + remove_member_self_lockout: "إذا أزلت نفسك من هذه المجموعة، فسيُسحب منك حق الوصول لإدارتها. هل تريد المتابعة فعلاً؟" + remove_owner_self_lockout: "إذا أزلت نفسك كمالك، فسيُسحب منك حق الوصول لإدارة هذه المجموعة. هل تريد المتابعة فعلاً؟" make_primary: "التعيين كمجموعة أساسية" make_primary_description: "جعل هذه المجموعة هي المجموعة الأساسية للمستخدم %{username}" remove_primary: "الإزالة كمجموعة أساسية" @@ -1651,6 +1693,13 @@ ar: organisation: المؤسسة phone: الهاتف other_accounts: "الحسابات الأخرى بعنوان IP هذا:" + other_accounts_with_ip: + zero: "%{count} من الحسابات الأخرى بعنوان IP هذا" + one: "حساب آخر (%{count}) بعنوان IP هذا" + two: "حسابان آخران (%{count}) بعنوان IP هذا" + few: "%{count} حسابات أخرى بعنوان IP هذا" + many: "%{count} حسابًا آخر بعنوان IP هذا" + other: "%{count} حساب آخر بعنوان IP هذا" delete_other_accounts: zero: "حذف %{count}" one: "حذف %{count}" @@ -1694,6 +1743,12 @@ ar: for_user: upcoming_change: "التغيير القادم" enabled: "مفعَّلة؟" + why: "لماذا؟" + why_reasons: + not_in_specific_groups: "المستخدم غير موجود في المجموعات المحددة المطلوبة لإجراء هذا التغيير." + in_specific_groups: "المستخدم موجود في المجموعات المحددة المطلوبة لإجراء هذا التغيير." + enabled_for_everyone: "هذا التغيير متاح لجميع الأعضاء" + enabled_for_no_one: "هذا التغيير غير متاح لجميع الأعضاء" user_notifications: filters: filter_by: "التصفية حسب" @@ -2068,11 +2123,13 @@ ar: interface: "الواجهة" apps: "التطبيقات" navigation_menu: "قائمة التنقل" + upcoming_changes: "التغييرات القادمة" change_password: success: "(تم إرسال رسالة البريد الإلكتروني)" in_progress: "(جارٍ إرسال رسالة البريد الإلكتروني)" error: "(خطأ)" action: "إرسال رسالة إلكترونية لإعادة تعيين كلمة المرور" + staged_user: "المستخدمون المؤقتون لا يمكنهم تلقي رسائل إعادة تعيين كلمة المرور." set_password: "تعيين كلمة المرور" choose_new: "اختيار كلمة مرور جديدة" choose: "اختيار كلمة مرور" @@ -2732,6 +2789,14 @@ ar: no_results: "لا توجد نتائج" search: "البحث…" label: "تحديد الخيارات" + d_otp: + screen_reader: + zero: أدخل رقمًا + one: أدخل رقمًا + two: أدخل رقمين + few: أدخل %{count} أرقام + many: أدخل %{count} رقمًا + other: أدخل %{count} رقم form_kit: reset: إعادة التعيين optional: اختياري @@ -3127,6 +3192,7 @@ ar: many: "%{count} موضوعًا في هذه الفئة" other: "%{count} موضوع في هذه الفئة" read_only: "للقراءة فقط" + read_only_description: "هذه الفئة للقراءة فقط، لذا لا يمكنك اختيارها لهذا الموضوع." timezone_input: ambiguous_ist: "اختصار IST غير واضح، يرجى اختيار منطقة زمنية محددة (مثل: Asia/Kolkata)" select_kit: @@ -3230,7 +3296,7 @@ ar: translation: "ترجمة" no_translation_yet: "ابدأ الكتابة لرؤية معاينة الترجمة..." placeholder: "أدخل ترجمة المنشور هنا…" - show_raw_markdown: "اعرض الخام" + show_raw_markdown: "اعرض النص الأصلي" group_mentioned_limit: zero: "تحذير!لقد أشرت إلى %{group}، لكن هذه المجموعة تتضمَّن عدد أعضاء أكثر من حد الإشارة الذي عيَّنه المسؤول وهو %{count} مستخدم. لن يتم إرسال إشعار إلى أي أحد." one: "تحذير!لقد أشرت إلى %{group}، لكن هذه المجموعة تتضمَّن عدد أعضاء أكثر من حد الإشارة الذي عيَّنه المسؤول وهو مستخدم واحد (%{count}). لن يتم إرسال إشعار إلى أي أحد." @@ -3321,8 +3387,8 @@ ar: create_shared_draft: "إنشاء مسودة مشتركة" edit_shared_draft: "تعديل المسودة المشتركة" title: "أو اضغط على %{modifier}Enter" - save_and_close: "احفظ وأغلق" - discard: "أهمِل" + save_and_close: "حفظ وإغلاق" + discard: "تجاهل" draft_saved: "حُفظت المسودة!" users_placeholder: "إضافة مستخدمين أو مجموعات" title_placeholder: "ما موضوع هذه المناقشة في جملة واحدة مختصرة؟" @@ -3390,9 +3456,9 @@ ar: no_attributes: "لم تتم إضافة أي سمات بعد." wrap_text: "إضافة عنصر احتواء للمحتوى" help: "مساعدة تحرير Markdown" - collapse: "صغّر لوحة الإنشاء" - open: "افتح لوحة الإنشاء" - abandon: "إغلاق أداة الإنشاء وأهمِل المسودة" + collapse: "تصغير لوحة أداة الإنشاء" + open: "فتح لوحة أداة الإنشاء" + abandon: "إغلاق أداة الإنشاء وتجاهل المسودة" enter_fullscreen: "فتح أداة الإنشاء في وضع ملء الشاشة" exit_fullscreen: "اخرج من أداة الإنشاء في وضع ملء الشاشة" exit_fullscreen_prompt: "اضغط على ESC للخروج من وضع الشاشة الكاملة" @@ -3445,6 +3511,7 @@ ar: desc: "الرد دون تغيير تاريخ آخر رد" toggle_unlisted: label: تفعيل إلغاء الإدراج + desc: "لا يمكن الوصول إلى الموضوعات غير المدرجة إلا من خلال الرابط المباشر" reload: "إعادة التحميل" ignore: "تجاهل" image_alt_text: @@ -3588,6 +3655,7 @@ ar: description: "\"%{changeName}\" متاح للمعاينة" automatically_promoted: title: "التغييرات القادمة" + description: "تم تفعيل '%{changeName}' تلقائيًا" dismiss_confirmation: body: default: @@ -3659,8 +3727,11 @@ ar: post_approved: "تمت الموافقة على المنشور" membership_request_consolidated: "طلبات العضوية الجديدة" reaction: "تفاعل جديد" - votes_released: "تم تحرير التصويت" + votes_released: "صدَر التصويت" + new_features: "تم إطلاق ميزات جديدة في Discourse" admin_problems: "نصيحة جديدة بشأن لوحة معلومات موقعك" + upcoming_change_available: "التغيير الجديد القادم '%{changeName}' متاح الآن" + upcoming_change_automatically_promoted: "تم تفعيل التغيير القادم '%{changeName}' تلقائيًا" upload_selector: change: "تغيير" delete: "حذف" @@ -3755,6 +3826,7 @@ ar: aria_label: التصفية باستخدام الوسوم filters: label: إرجاع الموضوعات/المنشورات فقط… + all: تضمين الرسائل title: مطابقة العنوان فقط likes: أعجبتني posted: نشرت فيها @@ -3800,8 +3872,6 @@ ar: max_views: placeholder: الحد الأقصى aria_label: التصفية حسب أقصى عدد من المشاهدات - additional_options: - label: "التصفية حسب عدد المنشورات وعدد مشاهدات الموضوع" hamburger_menu: "قائمة التنقل" new_item: "جديد" go_back: "الرجوع" @@ -3893,6 +3963,7 @@ ar: topics: new_messages_marker: "آخر زيارة" bulk: + select: "تحديد الكل" confirm: "تأكيد" select_all: "تحديد الكل" clear_all: "مسح الكل" @@ -3915,6 +3986,13 @@ ar: few: "حذف المنشورات" many: "حذف المنشورات" other: "حذف المنشورات" + delete_posts_confirmation: + zero: "هل تريد بالتأكيد حذف %{count} منشورًا؟" + one: "هل تريد بالتأكيد حذف المنشور (%{count})؟" + two: "هل تريد بالتأكيد حذف المنشورين (%{count})؟" + few: "هل تريد بالتأكيد حذف %{count} منشورات؟" + many: "هل تريد بالتأكيد حذف %{count} منشورًا؟" + other: "هل تريد بالتأكيد حذف %{count} منشور؟" dismiss: "تجاهل" dismiss_read: "تجاهل كل الموضوعات غير المقروءة" dismiss_read_with_selected: @@ -4087,7 +4165,7 @@ ar: many: "%{count} منشورًا في الموضوع" other: "%{count} منشور في الموضوع" create: "موضوع جديد" - create_long: "أنشئ موضوعًا جديدًا" + create_long: "إنشاء موضوع جديد" open_draft: "فتح المسودة" private_message: "إنشاء رسالة" archive_message: @@ -4612,12 +4690,25 @@ ar: many: "لقد حدَّدت %{count} منشورًا." other: "لقد حدَّدت %{count} منشور." deleted_by_author_simple: "(تم حذف الموضوع بواسطة الكاتب)" + localizations: + title_edit_warning: + message: "هذا عنوان موضوع مترجم.%{site_name}, %{preferred_display_name}"
placeholder: "مرحبًا بك، %{preferred_display_name}!"
header_logged_in:
+ label: "رأس الصفحة للأعضاء المسجلين"
+ description: "المتغيرات المتاحة: %{site_name}, %{preferred_display_name}"
placeholder: "مرحبًا بعودتك يا %{preferred_display_name}!"
header_anonymous:
+ label: "رأس الصفحة للزوار المجهولين"
+ description: "المتغيرات المتاحة: %{site_name}"
placeholder: "مرحبًا بك في %{site_name}!"
+ subheader_logged_in:
+ label: "العنوان الفرعي للأعضاء المسجلين"
+ description: "النص الثانوي المعروض أسفل الرأس للأعضاء المسجلين."
+ placeholder: "اكتشف كل جديد في المجتمع"
+ subheader_anonymous:
+ label: "العنوان الفرعي للزوار المجهولين"
+ description: "النص الثانوي المعروض أسفل الرأس للزوار المجهولين."
+ placeholder: "انضم إلى مجتمعنا للمشاركة في المناقشات"
+ search_placeholder:
+ label: "نص العنصر النائب للبحث"
+ description: "نص العنصر النائب لمربع البحث في بانر الترحيب."
+ placeholder: "موضوعات البحث..."
navigation:
title: "التنقل"
header_description: "تكوين روابط التنقل وعناصر القائمة لموقعك. يتضمَّن ذلك الموقع وسلوك قائمة التنقل الرئيسية، والروابط السريعة في أعلى الصفحة الرئيسية، والشريط الجانبي للمسؤول"
@@ -6618,7 +6851,7 @@ ar:
header_description: "تُعَد التقارير أداةً قوية لمساعدتك على فيهم ما يحدث على موقعك. ويمكنها مساعدتك على تحديد الاتجاهات الرائجة، واكتشاف المشكلات، واتخاذ القرارات استنادًا إلى البيانات."
sub_pages:
settings:
- title: "إعدادات لوحة المعلومات"
+ title: "الإعدادان"
badges:
title: "الشارات"
header_description: "تكافئ الشارات المستخدمين على أنشطتهم ومساهماتهم وإنجازاتهم، بهدف الاعتراف بجهودهم وتقديرها وتشجيع السلوك الإيجابي وتعزيز التفاعل داخل المجتمع."
@@ -6759,6 +6992,8 @@ ar:
select_setting: "اختر إعدادًا من الموقع لعرض القيم الحالية للسمة"
add: "اذهب إلى إعدادات سمة الموقع"
help: "السمة التي تستخدمها حاليًا هي %{currentTheme}. انتقل إلى صفحة إعدادات السمة لتعديل إعدادات موقع السمة، أو انقر على أي سمة مرتبطة في الجدول أدناه لتعديل إعداداته."
+ filter: "تصفية إعدادات موقع السمة حسب اسم الإعداد، أو الوصف، أو اسم السمة..."
+ filter_no_results: "لا توجد إعدادات لموقع السمة تتطابق مع عامل التصفية"
site_setting_warning: 'تتم إدارة هذا الإعداد بواسطة القالب الافتراضي لموقعك (%{defaultThemeName}). يمكنك تعديله من صفحة تحرير القالب.'
search:
modal_title: "ابحث عن كل شيء في المسؤول"
@@ -6773,42 +7008,6 @@ ar:
few: '%{count} نتائج عن "%{filter}"'
many: '%{count} نتيجة عن "%{filter}"'
other: '%{count} نتيجة عن "%{filter}"'
- result_types:
- page:
- zero: "صفحات"
- one: "صفحة"
- two: "صفحتان"
- few: "صفحات"
- many: "صفحات"
- other: "صفحات"
- report:
- zero: "التقارير"
- one: "التقرير"
- two: "التقريران"
- few: "التقارير"
- many: "التقارير"
- other: "التقارير"
- setting:
- zero: "الإعدادات"
- one: "الإعداد"
- two: "الإعدادان"
- few: "الإعدادات"
- many: "الإعدادات"
- other: "الإعدادات"
- theme:
- zero: "السمات"
- one: "السمة"
- two: "السمتان"
- few: "السمات"
- many: "السمات"
- other: "السمات"
- component:
- zero: "المكوِّنات"
- one: "المكوِّن"
- two: "المكوِّنان"
- few: "المكوِّنات"
- many: "المكوِّنات"
- other: "المكوِّنات"
new_features:
title: "ما الجديد؟"
check_for_updates: "تحقَّق من وجود تحديثات"
@@ -6831,24 +7030,8 @@ ar:
new_features:
title: "ما الجديد؟"
subtitle: "نحن نصدر ميزات وتحسينات جديدة طوال الوقت. تغطي هذه الصفحة أبرز النقاط، ولكن يمكنك النقر على \"معرفة المزيد\" للاطلاع على ملاحظات الإصدار الشاملة."
+ no_new_features_error: "حدث خطأ أثناء تحميل الموجز. يمكنك الاطلاع على الإعلانات السابقة للميزات الجديدة في مجتمع Discourse Meta."
learn_more: "معرفة المزيد..."
- experimental: "تجريبي"
- only_experiments: "عرض الميزات التجريبية فقط"
- experiment_enabled: "لقد فعَّلت الميزة التجريبية."
- experiment_disabled: "لقد أوقفت الميزة التجريبية."
- feature_enabled: "تم تفعيل هذه الميزة بنجاح."
- feature_disabled: "تم تعطيل هذه الميزة."
- toggled_too_fast: "لقد بدلت الزر بسرعة كبيرة. يُرجى الانتظار بضع ثوانٍ قبل إعادة المحاولة."
- experiment_tooltip:
- title_disabled: "جرّب هذه الميزة التجريبية"
- title_enabled: "إيقاف تشغيل الميزة التجريبية"
- content_disabled: "جرّب أحدث ميزاتنا قيد التطوير! ما زالت في المرحلة التجريبية، لذلك قد نزيلها في أي وقت. يمكنك إيقافها متى شئت.\b في بداية التعبير العادي ونهايته.'
actions:
block: "حظر"
@@ -8433,6 +8642,7 @@ ar:
success: "تم بنجاح"
exists: "موجودة بالفعل"
upload: "الإضافة من ملف"
+ upload_successful: "تم التحميل بنجاح. ستتم معالجة الكلمات قريبًا."
case_sensitivity_label: "حساس لحالة الأحرف"
case_sensitivity_description: "الكلمات ذات حالة الأحرف المطابقة فقط"
html_label: "HTML"
@@ -8483,6 +8693,7 @@ ar:
upload: "تحميل ملف"
multiselect: "اختيارات متعددة"
tagchooser: "محدد مجموعة الوسوم"
+ composer: "إجابة بتنسيق Markdown"
validations_modal:
button_title: "عمليات التحقق"
modal_title: "خيارات التحقق"
@@ -8524,7 +8735,10 @@ ar:
second: "الخيار 2"
third: "الخيار 3"
edit_category:
+ toggle_freeform: "تم تعطيل قالب النموذج"
+ toggle_form_template: "تم تفعيل قالب النموذج"
select_template: "التحديد من القوالب"
+ select_template_help: "إضافة/تعديل قوالب النماذج"
errors:
multiple_tags_not_allowed: 'لا يمكنك اختيار المزيد من الوسوم من "%{tag_name}". لتجنب المشكلات، استخدم قالب النموذج'
impersonate:
@@ -8532,7 +8746,7 @@ ar:
help: "استخدم هذه الأداة لانتحال شخصية حساب مستخدم لأغراض تصحيح الأخطاء. عليك تسجيل الخروج بعد الانتهاء."
not_found: "يتعذَّر العثور على هذا المستخدم."
invalid: "عذرًا، لا يمكنك انتحال شخصية هذا المستخدم."
- error: "عذراً، حدث خطأ غير متوقع."
+ error: "عذرًا، حدث خطأ غير متوقع."
users:
title: "المستخدمون"
description: "عرض المستخدمين وإدراتهم."
@@ -8657,6 +8871,16 @@ ar:
penalty_post_actions: "ما الذي ترغب في فعله بالمنشور ذي الصلة؟"
penalty_post_delete: "حذف المنشور"
penalty_post_delete_replies: "حذف المنشور + أي ردود"
+ penalty_post_delete_all: "حذف جميع الموضوعات التي أنشأها المستخدم بالإضافة إلى أي ردود عليها"
+ penalty_post_delete_all_confirmation_MF: |
+ سيؤدي هذا إلى حذف { TOPICS, plural,
+ one {موضوع واحد} two {موضوعين} few {# موضوعات} many {# موضوعًا}
+ other {# موضوع}
+ } و
+ { REPLIES, plural,
+ one {رد واحد} two {ردين} few {# ردود} many {# ردًا}
+ other {# رد}
+ }. هذا الإجراء لا يمكن التراجع عنه! هل ترغب بالتأكيد في القيام بذلك؟
penalty_post_edit: "تعديل المنشور"
penalty_post_none: "عدم اتخاذ أي إجراء"
penalty_count: "عدد العقوبات"
@@ -8714,6 +8938,11 @@ ar:
approve_bulk_success: "تم بنجاح! لقد تمت الموافقة على جميع الأعضاء المحدَّدين وإرسال إشعارات إليهم."
time_read: "وقت القراءة"
post_edits_count: "تعديلات المنشور"
+ upcoming_changes:
+ title: "التغييرات القادمة للمستخدم"
+ description: "لتعديل المجموعات أو لتفعيل التغييرات القادمة أو تعطيلها، يرجى زيارة صفحة إعدادات التغييرات القادمة."
+ filter_placeholder: "تصفية التغييرات القادمة حسب الاسم أو الوصف"
+ filter_no_results: "لا توجد تغييرات قادمة"
exports:
title: عمليات تصدير المستخدم
download:
@@ -8742,6 +8971,13 @@ ar:
button: "حذف كل المنشورات"
progress:
title: "تقدُّم حذف المنشورات"
+ description:
+ zero: "جارٍ حذف كل المنشورات من @%{username}..."
+ one: "جارٍ حذف منشور واحد من @%{username}..."
+ two: "جارٍ حذف منشورين من @%{username}..."
+ few: "جارٍ حذف %{count} منشورات من @%{username}..."
+ many: "جارٍ حذف %{count} منشورًا من @%{username}..."
+ other: "جارٍ حذف %{count} منشور من @%{username}..."
confirmation:
title: "حذف كل المنشورات من @%{username}"
description: |
@@ -8753,6 +8989,7 @@ ar:
text: "حذف المنشورات من @%{username}"
delete: "حذف المنشورات من @%{username}"
cancel: "إلغاء"
+ all_enqueued: "تمت إضافة جميع منشورات @%{username}إلى قائمة الانتظار للحذف"
merge:
button: "دمج"
prompt:
@@ -8779,6 +9016,8 @@ ar:
cancel: "إلغاء"
merging_user: "جارٍ دمج المستخدم…"
merge_failed: "حدث خطأ في أثناء دمج المستخدمين."
+ delete_forbidden_because_admin: "لا يمكن حذف المسؤولين."
+ delete_posts_forbidden_because_admin: "لا يمكن حذف جميع منشورات المسؤولين."
delete_forbidden:
zero: "لا يمكن حذف المستخدمين إذا كان لديهم منشورات. احذف كل المنشورات أولًا قبل محاولة حذف المستخدم. (لا يمكنك حذف المشاركات التي مضى عليها %{count} يوم.)"
one: "لا يمكن حذف المستخدمين إذا كان لديهم منشورات. احذف كل المنشورات أولًا قبل محاولة حذف المستخدم. (لا يمكنك حذف المشاركات التي مضى عليها يوم واحد (%{count}))."
@@ -8945,6 +9184,10 @@ ar:
title: "العرض على بطاقة المستخدم"
enabled: "معروض على بطاقة المستخدم"
disabled: "غير معروض على بطاقة المستخدم"
+ show_on_signup:
+ title: "عرض في نموذج التسجيل"
+ enabled: "معروض في نموذج التسجيل"
+ disabled: "غير معروض في نموذج التسجيل"
searchable:
title: "قابل للبحث"
enabled: "قابل للبحث"
@@ -8952,6 +9195,7 @@ ar:
field_types:
text: "النص"
textarea: "منطقة النص"
+ date: "التاريخ"
confirm: "تأكيد"
dropdown: "قائمة منسدلة"
multiselect: "حقل اختيارات متعددة"
@@ -9035,6 +9279,9 @@ ar:
label: "تحميل"
title: "تحميل الصور"
download_file: "تنزيل"
+ upload_restrictions:
+ extensions: "مقبول: %{extensions}"
+ max_size: "الحد الأقصى: %{size}"
selectable_avatars:
title: "قائمة الصور الرمزية التي يمكن للمستخدمين الاختيار منها"
table_column_heading:
@@ -9073,6 +9320,7 @@ ar:
experimental: "تجريبي"
secret_list:
invalid_input: "لا يمكن ترك حقول الإدخال فارغة أو أن تتضمَّن شريطًا عموديًا."
+ already_exists: "إدخال المفتاح %{key} موجود بالفعل."
default_categories:
modal_description:
zero: "هل ترغب في تطبيق هذا التغيير بأثر رجعي؟ سيؤدي ذلك إلى تغيير التفضيلات لعدد %{count} مستخدم حالي."
@@ -9101,13 +9349,20 @@ ar:
prompt: "قد يؤدي تغيير هذا الإعداد إلى عواقب بعيدة المدى أو غير مقصودة على موقعك. هل تريد بالتأكيد المتابعة؟"
confirm: "نعم، أنا متأكد"
min_password_length:
+ prompt: "أنت على وشك تغيير سياسة كلمة المرور. سيؤثر هذا على جميع المستخدمين الذين سيغيرون كلمات مرورهم من الآن فصاعدًا. هل أنت متأكد أنك تريد المتابعة؟"
confirm: "نعم، تحديث سياسة كلمة المرور"
min_admin_password_length:
+ prompt: "أنت على وشك تغيير سياسة كلمة المرور. سيؤثر هذا على جميع المسؤولين الذين سيغيرون كلمات مرورهم من الآن فصاعدًا. هل أنت متأكد أنك تريد المتابعة؟"
confirm: "نعم، تحديث سياسة كلمة المرور"
password_unique_charactes:
+ prompt: "أنت على وشك تغيير سياسة كلمة المرور. سيؤثر هذا على جميع المستخدمين الذين سيغيرون كلمات مرورهم من الآن فصاعدًا. هل أنت متأكد أنك تريد المتابعة؟"
confirm: "نعم، تحديث سياسة كلمة المرور"
block_common_passwords:
+ prompt: "أنت على وشك تغيير سياسة كلمة المرور. سيؤثر هذا على جميع المستخدمين الذين سيغيرون كلمات مرورهم من الآن فصاعدًا. هل أنت متأكد أنك تريد المتابعة؟"
confirm: "نعم، تحديث سياسة كلمة المرور"
+ clean_up_inactive_users_after_days:
+ prompt: "سيؤدي تعيين هذه القيمة إلى أي رقم غير 0 إلى حذف المستخدمين غير النشطين لمدة هذا العدد من الأيام نهائيًا. هل أنت متأكد أنك تريد المتابعة؟"
+ confirm: "نعم، أفهم أنه سيتم حذف المستخدمين غير النشطين نهائيًا ما لم تُعيّن هذه القيمة على 0"
job_status:
completed: "اكتمل التحديث"
enqueued: "التحديث قيد التقدم"
@@ -9147,7 +9402,7 @@ ar:
sections:
design: تصميم
query: استعلام
- settings: الإعدادان
+ settings: الإعدادات
usage_heading: الاستخدام
allow_title: السماح للمستخدمين باستخدام الشارة كعنوان
multiple_grant: يمكن منحها عدة مرات
@@ -9260,6 +9515,7 @@ ar:
category: "النشر في الفئة"
tags: "وسوم الموضوع"
post_author: "مؤلف المنشور"
+ post_author_description: "المؤلف لجميع الموضوعات المضمنة من هذا المضيف، مع تجاوز وسوم التعريف الخاصة بصفحة المدونة. اترك هذا الحقل فارغًا لقراءة اسم المؤلف من وسوم أو الموجودة في الصفحة."
post_author_with_default: "مؤلف المنشور (القيمة الافتراضية هي %{author})"
add_host: "إضافة مضيف"
posts_and_topics: "تكوين المنشورات والموضوعات"
diff --git a/config/locales/client.be.yml b/config/locales/client.be.yml
index a812a687aca8a..ce05db7dff62e 100644
--- a/config/locales/client.be.yml
+++ b/config/locales/client.be.yml
@@ -6,6 +6,10 @@
be:
js:
+ blocks:
+ ghost:
+ status: "Статус"
+ failed: "памылка"
number:
format:
separator: ","
@@ -409,6 +413,9 @@ be:
pill: "Звязаныя паведамленні"
suggested_topics:
pm_title: "Прапанаваныя паведамленні"
+ admin_onboarding_banner:
+ start_posting:
+ back: "Назад"
about:
edit: "Рэдагаваць гэту старонку"
simple_title: "Пра сайт"
@@ -876,7 +883,7 @@ be:
remove_filter: "выдаліць фільтр"
category: "Катэгорыя"
reorder:
- apply_all: "Ужыць"
+ apply_all: "Прымяніць"
position: "Пазіцыя"
posts: "Допісы"
topics: "Тэмы"
@@ -1434,8 +1441,8 @@ be:
other: "Выдаліць тэмы"
dismiss_read: "Адхіліць усе непрачытаныя"
dismiss_new: "Адхіліць новыя"
- toggle: "пераключыць масавы выбар тэм"
- actions: "Масавыя дзеянні"
+ toggle: "Пераключыць групавы выбар тэм"
+ actions: "Групавыя дзеянні"
close_topics: "Закрыць тэмы"
archive_topics: "Архіваваць тэмы"
move_messages_to_inbox: "Перамясціць ва Уваходныя"
@@ -1456,7 +1463,7 @@ be:
close_topics:
name: "Закрыць"
archive_topics:
- name: "У архіў"
+ name: "У Архіў"
move_messages_to_inbox:
name: "Ва Уваходныя"
delete_topics:
@@ -1838,6 +1845,15 @@ be:
tags: "тэгі"
choose_for_topic: "дадатковыя тэгі"
add_synonyms: "дадаць"
+ description: "Апісанне"
+ settings:
+ title: "Налады"
+ general: "Агульныя"
+ back: "Назад"
+ name: "Імя"
+ localization:
+ name: "Імя"
+ description: "Апісанне"
sort_by: "Сартаваць па:"
sort_by_count: "падлічваць"
sort_by_name: "Імя"
@@ -1964,7 +1980,6 @@ be:
categories: "Усе катэгорыі"
admin_js:
settings: "Налады"
- reset_filter: "Скінуць"
admin:
moderator: "Мадэратар"
tags:
@@ -1973,6 +1988,11 @@ be:
never: "ніколі"
reports:
sidebar_title: "Справаздачы"
+ group_traffic: "трафік"
+ group_members: "Члены"
+ group_moderation: "Мадэрацыя"
+ group_security: "Бяспека"
+ group_other: "Іншае"
config_sections:
account:
title: "Аккаўнт"
@@ -2057,6 +2077,9 @@ be:
title: "Логі"
reports:
title: "Справаздачы"
+ sub_pages:
+ settings:
+ title: "Налады"
badges:
title: "значкі"
permalinks:
diff --git a/config/locales/client.bg.yml b/config/locales/client.bg.yml
index 2862e542092dc..2b1aedf80aeed 100644
--- a/config/locales/client.bg.yml
+++ b/config/locales/client.bg.yml
@@ -6,6 +6,12 @@
bg:
js:
+ blocks:
+ ghost:
+ status: "Статус"
+ in_location: "в"
+ hidden: "скрит"
+ failed: "провалени"
number:
format:
separator: "."
@@ -279,6 +285,9 @@ bg:
pill: "Свързани съобщения"
suggested_topics:
pm_title: "Предложени съобщения"
+ admin_onboarding_banner:
+ start_posting:
+ back: "Назад"
about:
edit: "Редактирайте тази страница"
simple_title: "Относно"
@@ -424,7 +433,6 @@ bg:
in_reply_to: "в отговор на"
explain:
why: "обясни защо този елемент се озова в опашката"
- title: "Оценяване с възможност за преразглеждане"
formula: "Формула"
subtotal: "Междинна сума"
total: "Общо"
@@ -438,17 +446,14 @@ bg:
title: "Потребителите, чиито сигнали исторически са били съгласувани, получават бонус."
trust_level_bonus:
name: "ниво на доверие"
- title: "Елементите, които могат да се преглеждат, създадени от потребители с по-високо ниво на доверие, имат по-висок резултат."
type_bonus:
name: "тип бонус"
- title: "Определени типове, подлежащи на преглед, могат да получат бонус от персонала, за да бъдат с по-висок приоритет."
revise_and_reject_post:
title: "Преразглеждане"
reason: "Причина"
send_pm: "Изпратете ЛС"
feedback: "Обратна връзка"
optional: "по избор"
- stale_help: "Този преглед е разрешен от %{username}."
claim_help:
optional: "Можете да заявите този артикул, за да попречите на други да го преглеждат."
required: "Трябва да заявите артикули, преди да можете да ги прегледате."
@@ -3248,6 +3253,16 @@ bg:
choose_for_topic: "етикети по желание"
add_synonyms: "Добави"
delete_tag: "Изтрийте таг"
+ description: "Описание"
+ settings:
+ title: "Настройки"
+ general: "Основни"
+ back: "Назад"
+ name: "Име"
+ slug: "Slug"
+ localization:
+ name: "Име "
+ description: "Описание"
sort_by: "Сортирай по:"
sort_by_count: "брой"
sort_by_name: "име"
@@ -3413,7 +3428,6 @@ bg:
categories: "Всички категории"
admin_js:
settings: "Настройки"
- reset_filter: "Нулиране"
admin:
title: "Discourse Админ"
moderator: "Модератор"
@@ -3421,6 +3435,11 @@ bg:
remove_muted_tags_from_latest:
always: "винаги"
never: "никога"
+ reports:
+ group_traffic: "Трафик"
+ group_members: "Членове"
+ group_security: "Сигурност"
+ group_other: "Други"
config_sections:
account:
title: "Профил"
@@ -3438,7 +3457,6 @@ bg:
preview: "Преглед"
enabled_for_options:
everyone: "Всички"
- staff: "Само за екипа"
impact_roles:
admins: "Админи"
moderators: "Модератори"
@@ -3502,6 +3520,10 @@ bg:
sub_pages:
logs:
title: "Логове"
+ reports:
+ sub_pages:
+ settings:
+ title: "Настройки"
badges:
title: "Значки"
permalinks:
@@ -4329,6 +4351,7 @@ bg:
title: "Показване в потребителската карта"
field_types:
text: "Текст"
+ date: "Дата"
confirm: "Потвърждение"
dropdown: "Падащо"
site_text:
diff --git a/config/locales/client.bs_BA.yml b/config/locales/client.bs_BA.yml
index 9f910a5075cf6..7ca93b92d3b9c 100644
--- a/config/locales/client.bs_BA.yml
+++ b/config/locales/client.bs_BA.yml
@@ -6,6 +6,11 @@
bs_BA:
js:
+ blocks:
+ ghost:
+ status: "Status"
+ hidden: "hidden"
+ failed: "neuspješno"
number:
format:
separator: "."
@@ -264,6 +269,9 @@ bs_BA:
pill: "Povezane Poruke"
suggested_topics:
pm_title: "Preporučene Poruke"
+ admin_onboarding_banner:
+ start_posting:
+ back: "Prethodno"
about:
edit: "Edit this page"
simple_title: "O nama"
@@ -385,7 +393,6 @@ bs_BA:
in_reply_to: "odgovori na"
explain:
why: "objasnite zašto je ovaj objekat završio na listi za čekanje"
- title: "Ocjenjiv Skor"
formula: "Formula"
subtotal: "Podsuma"
total: "Suma"
@@ -399,10 +406,8 @@ bs_BA:
title: "Korisnicima čije su zastave prethodno bivale usaglašene dobivaju bonus."
trust_level_bonus:
name: "nivo povjerenja"
- title: "Ocjenjivi objekti kreirani od strane korisnika sa višim nivoom povjerenja imaju viši skor."
type_bonus:
name: "bonus tip"
- title: "Neki ocjenjivi tipovi mogu zaprimiti bonus od strane osoblja foruma kako bi tim tipovima podigli prioritet"
revise_and_reject_post:
reason: "Reason"
optional: "opciono"
@@ -2954,6 +2959,16 @@ bs_BA:
one: "Pripadajući sinonim će također biti obrisan."
few: "Pripadajućih %{count} sinonima će također biti obrisano."
other: "Pripadajućih %{count} sinonima će također biti obrisano."
+ description: "Opis"
+ settings:
+ title: "Postavke"
+ general: "General"
+ back: "Prethodno"
+ name: "Ime"
+ synonyms_subtitle: "U slučaju da se sljedeće oznake koriste, iste će biti zamijenjene sa %{name}"
+ localization:
+ name: "Ime"
+ description: "Opis"
sort_by: "Sortiraj po:"
sort_by_count: "brojenje"
sort_by_name: "ime"
@@ -3132,7 +3147,6 @@ bs_BA:
categories: "Sve kategorije"
admin_js:
settings: "Postavke"
- reset_filter: "Resetovati"
admin:
title: "Discourse Admin"
moderator: "Moderator"
@@ -3145,6 +3159,11 @@ bs_BA:
reports:
title: "Lista dostupnih izvještaja"
sidebar_title: "Izvještaji"
+ group_traffic: "Promet"
+ group_members: "Članovi"
+ group_moderation: "Moderacija"
+ group_security: "Security"
+ group_other: "Other"
config_sections:
account:
title: "Račun"
@@ -3166,7 +3185,6 @@ bs_BA:
preview: "Pregled"
enabled_for_options:
everyone: "Svatko"
- staff: "Samo za urednike i admine"
impact_roles:
admins: "Admins"
moderators: "Moderators"
@@ -3236,6 +3254,9 @@ bs_BA:
title: "Logs"
reports:
title: "Izvještaji"
+ sub_pages:
+ settings:
+ title: "Postavke"
badges:
title: "Bedž"
permalinks:
@@ -3283,15 +3304,6 @@ bs_BA:
default_value: "Uobičajen"
search:
title: "Pretraži"
- result_types:
- theme:
- one: "Izgled"
- few: "Teme"
- other: "Teme"
- component:
- one: "Komponenta"
- few: "Komponenti"
- other: "Komponenti"
dashboard:
title: "Dashboard"
last_updated: "Nadzorna ploča je ažurirana:"
@@ -4360,6 +4372,7 @@ bs_BA:
title: "Prikaži na korisničkoj kartici"
field_types:
text: "Poruka"
+ date: "Datum"
confirm: "Confirmation"
dropdown: "Ispustiti"
site_text:
diff --git a/config/locales/client.ca.yml b/config/locales/client.ca.yml
index 616be43059bdb..1103683f9e8a5 100644
--- a/config/locales/client.ca.yml
+++ b/config/locales/client.ca.yml
@@ -6,6 +6,11 @@
ca:
js:
+ blocks:
+ ghost:
+ status: "Estat"
+ hidden: "amagat"
+ failed: "fallits"
number:
format:
separator: "."
@@ -292,6 +297,9 @@ ca:
pill: "Missatges relacionats"
suggested_topics:
pm_title: "Missatges recomanats"
+ admin_onboarding_banner:
+ start_posting:
+ back: "Enrere"
about:
edit: "Edita aquesta pàgina"
simple_title: "Quant a"
@@ -440,7 +448,6 @@ ca:
in_reply_to: "en resposta a"
explain:
why: "expliqueu per què aquest element ha acabat a la cua"
- title: "Puntuació revisable"
formula: "Fórmula"
subtotal: "Subtotal"
total: "Total"
@@ -454,10 +461,8 @@ ca:
title: "Es dóna una bonificació als usuaris que hagin creat banderes amb les quals històricament s'hagi estat d'acord. "
trust_level_bonus:
name: "nivell de confiança"
- title: "Els elements revisables creats per usuaris de nivell superior de confiança tenen una puntuació més alta."
type_bonus:
name: "bonificació tipus"
- title: "El personal pot assignar una bonificació a certs tipus revisables perquè tinguin una prioritat més alta."
revise_and_reject_post:
reason: "Motiu"
optional: "opcional"
@@ -2484,6 +2489,7 @@ ca:
allow_global_tags_label: "Permet també altres etiquetes"
required_tag_group:
delete: "Suprimeix"
+ tag_group: "Grup d'etiquetes"
topic_featured_link_allowed: "Permet enllaços destacats dins aquesta categoria"
create_long: "Crea una categoria nova"
slug_placeholder: "(opcional) paraules amb guionets per a url"
@@ -2865,6 +2871,15 @@ ca:
one: "Esteu segur que voleu suprimir aquesta etiqueta i eliminar-la del tema %{count} al qual és assignada?"
other: "Esteu segur que voleu suprimir aquesta etiqueta i eliminar-la dels %{count} temes als quals és assignada?"
delete_confirm_no_topics: "Esteu segur que voleu suprimir aquesta etiqueta?"
+ description: "Descripció"
+ settings:
+ title: "Configuració"
+ general: "General"
+ back: "Enrere"
+ name: "Nom"
+ localization:
+ name: "Nom"
+ description: "Descripció"
sort_by: "Ordena per:"
sort_by_count: "comptabilitza"
sort_by_name: "nom"
@@ -3042,7 +3057,6 @@ ca:
categories: "Totes les categories"
admin_js:
settings: "Configuració"
- reset_filter: "Restableix"
admin:
title: "Administració de Discourse"
moderator: "Moderador"
@@ -3055,6 +3069,11 @@ ca:
reports:
title: "Llista de reports disponibles"
sidebar_title: "Reports"
+ group_traffic: "Tràfic"
+ group_members: "Membres"
+ group_moderation: "Moderació"
+ group_security: "Seguretat"
+ group_other: "Altres"
config_sections:
account:
title: "Compte"
@@ -3076,7 +3095,6 @@ ca:
preview: "Previsualitza"
enabled_for_options:
everyone: "Tothom"
- staff: "Només l'equip responsable"
impact_roles:
admins: "Administradors"
moderators: "Moderadors"
@@ -3148,6 +3166,9 @@ ca:
title: "Registres"
reports:
title: "Reports"
+ sub_pages:
+ settings:
+ title: "Configuració"
badges:
title: "Insígnies"
permalinks:
@@ -3196,13 +3217,6 @@ ca:
default_value: "Per defecte"
search:
title: "Cerca"
- result_types:
- theme:
- one: "Aparença"
- other: "Aparences"
- component:
- one: "Component"
- other: "Components"
dashboard:
title: "Tauler de control"
last_updated: "Tauler de control actualitzat:"
@@ -4284,6 +4298,7 @@ ca:
title: "Mostra en la targeta d'usuari"
field_types:
text: "Text"
+ date: "Data"
confirm: "Confirmació"
dropdown: "Desplega"
site_text:
diff --git a/config/locales/client.cs.yml b/config/locales/client.cs.yml
index 430d5f40cbb57..1e93d71559b5a 100644
--- a/config/locales/client.cs.yml
+++ b/config/locales/client.cs.yml
@@ -6,6 +6,12 @@
cs:
js:
+ blocks:
+ ghost:
+ status: "Stav"
+ in_location: "v"
+ hidden: "skrytý"
+ failed: "neúspěšný"
carousel:
go_to_slide: "Přejít na snímek č. %{index}"
previous: "Předchozí snímek"
@@ -482,6 +488,8 @@ cs:
pm_title: "Doporučené zprávy"
admin_onboarding_banner:
launch_in_easy_steps: "Odstartujte v %{step_count} snadných krocích"
+ start_posting:
+ back: "Zpět"
spread_the_word:
action: "Kopírovat odkaz"
copied_to_clipboard: "Odkaz zkopírován do schránky!"
@@ -774,21 +782,13 @@ cs:
in_reply_to: "v odpovědi na"
filtered_flagged_by: "Nahlásil"
unknown:
- title:
- one: "Máte nevyřízené revize ze zakázaného pluginu:"
- few: "Máte nevyřízené revize ze zakázaných pluginů:"
- many: "Máte nevyřízené revize ze zakázaných pluginů:"
- other: "Máte nevyřízené revize ze zakázaných pluginů:"
instruction: "Nelze je správně zobrazit, dokud neaktivujete příslušný plugin. Povolte prosím plugin a obnovte stránku. Případně je můžete ignorovat. Další informace..."
reviewable_unknown_source: "%{reviewableType} (neznámý plugin)"
reviewable_known_source: "%{reviewableType} (z pluginu '%{pluginName}')"
ignore_all: "Ignorovat vše"
enable_plugins: "Povolit pluginy"
- delete_confirm: "Opravdu chcete smazat všechny revize vytvořené zakázanými pluginy?"
- ignore_success: "Všechny revize vytvořené zakázanými pluginy byly smazány."
explain:
why: "vysvětlete, proč tato položka skončila ve frontě"
- title: "Hodnocení nahlášeného příspěvku"
formula: "Vzorec"
subtotal: "Mezisoučet"
total: "Celkem"
@@ -802,10 +802,8 @@ cs:
title: "Uživatelé, jejichž nahlášení byla historicky odsouhlasena, dostávají bonus."
trust_level_bonus:
name: "úroveň důvěry"
- title: "Kontrolovatelné položky vytvořené uživateli s vyšší úrovní důvěry mají vyšší skóre."
type_bonus:
name: "bonus za psaní"
- title: "Některým revidovatelným typům mohou redaktoři přidělit bonus, aby měly vyšší prioritu."
revise_and_reject_post:
title: "Revidovat"
reason: "Důvod"
@@ -814,7 +812,6 @@ cs:
custom_reason: "Uveďte jasný popis důvodu"
other_reason: "Ostatní..."
optional: "volitelné"
- stale_help: "Tuto revizi vyřešil/a %{username}."
claim_help:
optional: "Tuto položku si můžete nárokovat, abyste zabránili ostatním v její kontrole."
required: "Než budete moci položky revidovat, musíte si je nárokovat."
@@ -3588,8 +3585,6 @@ cs:
max_views:
placeholder: maximum
aria_label: filtrovat podle maximálního počtu zobrazení
- additional_options:
- label: "Filtrovat podle počtu příspěvků a zobrazení tématu"
hamburger_menu: "Navigační nabídka"
new_item: "nové"
go_back: "jít zpět"
@@ -4446,7 +4441,11 @@ cs:
edit: "Upravit"
delete: "Smazat"
add: "Přidat nový překlad"
- manage: "Správa překladů (%{count} existujících)"
+ manage:
+ one: "Správa překladů (%{count} existujících)"
+ few: "Správa překladů (%{count} existujících)"
+ many: "Správa překladů (%{count} existujících)"
+ other: "Správa překladů (%{count} existujících)"
view:
one: "Zobrazit %{count} překlad"
few: "Zobrazit %{count} překlady"
@@ -4723,6 +4722,7 @@ cs:
create: "Přidat kategorii"
create_long: "Vytvořit novou kategorii"
save: "Uložit kategorii"
+ unsaved_changes: "Máte neuložené změny"
slug: "URL kategorie"
parent: "Nadřazená kategorie"
slug_placeholder: "(Nepovinné) slova s pomlčkou pro URL"
@@ -5426,7 +5426,20 @@ cs:
other: "Jeho %{count} synonym bude také smazáno."
edit_tag: "Upravit název a popis štítku"
edit: "Upravit tento štítek"
- description: "Popis (max. 1000 znaků)"
+ description: "Popis"
+ settings:
+ title: "Nastavení"
+ general: "Obecné"
+ localizations: "Lokalizace"
+ back: "Zpět"
+ name: "Jméno"
+ slug: "URL"
+ name_placeholder: "Název štítku"
+ synonyms_subtitle: "Pokud jsou použity následující štítky, budou nahrazeny %{name}"
+ localization:
+ locale: "Jazyk"
+ name: "Název"
+ description: "Popis"
sort_by: "Seřadit dle:"
sort_by_count: "počtu"
sort_by_name: "názvu"
@@ -5974,7 +5987,6 @@ cs:
admin_js:
type_to_filter: "Text pro filtrování..."
settings: "Nastavení"
- reset_filter: "obnovit výchozí"
toggle_filters: "Přepnout rozbalovací filtry"
admin:
title: "Administrátor"
@@ -5988,9 +6000,13 @@ cs:
never: "nikdy"
reports:
title: "Seznam dostupných sestav"
- meta_doc: "Sestavy jsou mocným nástrojem, který vám pomůže pochopit, co se děje na vašich stránkách. Mohou vám pomoci rozpoznat trendy, problémy a činit rozhodnutí na základě dat."
sidebar_title: "Sestavy"
back: "Zpět na všechny sestavy"
+ group_traffic: "Provoz"
+ group_members: "Členové"
+ group_moderation: "Moderování"
+ group_security: "Zabezpečení"
+ group_other: "Ostatní"
config_sections:
account:
title: "Účet"
@@ -6033,7 +6049,6 @@ cs:
enabled_for_options:
no_one: "Nikdo"
everyone: "Všichni"
- staff: "Pouze redakce"
specific_groups: "Specifické skupiny"
specific_groups_with_group_names:
one: "skupina %{groupNames}"
@@ -6146,7 +6161,6 @@ cs:
help_text: "Doporučená velikost je 600 x 80 pixelů."
large_icon:
title: "Čtvercová ikona"
- description: "Čtvercová verze obrázku loga se zobrazuje v horní části administrace a je zároveň logem mobilní aplikace na domovské obrazovce."
help_text: "Doporučená velikost je 512 x 512 pixelů."
square_icon_dark:
required: "Použít pro tmavý režim jinou čtvercovou ikonu?"
@@ -6336,7 +6350,7 @@ cs:
header_description: "Sestavy jsou mocným nástrojem, který vám pomůže pochopit, co se děje na vašich stránkách. Mohou vám pomoci rozpoznat trendy, problémy a činit rozhodnutí na základě dat."
sub_pages:
settings:
- title: "Nastavení nástěnky"
+ title: "Nastavení"
badges:
title: "Odznaky"
header_description: "Odznaky odměňují uživatele za jejich aktivity, příspěvky a úspěchy, aby uznaly, potvrdily a podpořily pozitivní chování a zapojení v rámci komunity"
@@ -6491,32 +6505,6 @@ cs:
few: '%{count} výsledky pro „%{filter}“'
many: '%{count} výsledků pro „%{filter}“'
other: '%{count} výsledků pro „%{filter}“'
- result_types:
- page:
- one: "Stránka"
- few: "Stránky"
- many: "Stránek"
- other: "Stránek"
- report:
- one: "Sestava"
- few: "Sestavy"
- many: "Sestav"
- other: "Sestav"
- setting:
- one: "Nastavení"
- few: "Nastavení"
- many: "Nastavení"
- other: "Nastavení"
- theme:
- one: "Téma"
- few: "Motivy"
- many: "Motivy"
- other: "Motivy"
- component:
- one: "Komponenta"
- few: "Komponenty"
- many: "Komponenty"
- other: "Komponenty"
new_features:
title: "Co je nového?"
check_for_updates: "Aktualizovat"
@@ -6541,23 +6529,6 @@ cs:
subtitle: "Neustále vydáváme nové funkce a vylepšení. Tato stránka obsahuje hlavní body, ale kliknutím na „Další informace“ zobrazíte rozsáhlé poznámky k verzi."
no_new_features_error: "Při načítání zdroje došlo k chybě. Předchozí oznámení o nových funkcích můžete vidět na komunitě Discourse Meta."
learn_more: "Více informací..."
- experimental: "Experimentální"
- only_experiments: "Zobrazit pouze experimentální funkce"
- experiment_enabled: "Povolili jste experimentální funkci."
- experiment_disabled: "Vypnuli jste experimentální funkci."
- feature_enabled: "Funkci jste povolili."
- feature_disabled: "Funkci jste zakázali."
- toggled_too_fast: "Přepínač jste přepnuli příliš rychle. Počkejte prosím několik vteřin před dalším pokusem."
- experiment_tooltip:
- title_disabled: "Vyzkoušejte tuto experimentální funkci"
- title_enabled: "Vypněte experimentální funkci"
- content_disabled: "Vyzkoušejte naši nejnovější funkci ve vývoji! Je stále v experimentální fázi, takže ji můžeme kdykoli odstranit. Můžete se odhlásit, kdykoli budete chtít.%{site_name}, %{preferred_display_name}"
placeholder: "Καλώς ήρθες, %{preferred_display_name}!"
header_logged_in:
+ label: "Επικεφαλίδα για συνδεδεμένα μέλη"
+ description: "Διαθέσιμες μεταβλητές: %{site_name}, %{preferred_display_name}"
placeholder: "Καλώς ήρθες πίσω, %{preferred_display_name}!"
header_anonymous:
label: "Κεφαλίδα για ανώνυμους επισκέπτες"
description: "Διαθέσιμη μεταβλητή: %{site_name}"
placeholder: "Καλώς ήλθατε στην %{site_name}!"
+ subheader_logged_in:
+ label: "Υποκεφαλίδα για συνδεδεμένα μέλη"
+ description: "Δευτερεύον κείμενο που εμφανίζεται κάτω από την επικεφαλίδα για συνδεδεμένους χρήστες."
+ placeholder: "Δείτε τι νέο υπάρχει στην κοινότητα"
subheader_anonymous:
label: "Υποκεφαλίδα για ανώνυμους επισκέπτες"
+ description: "Δευτερεύον κείμενο που εμφανίζεται κάτω από την επικεφαλίδα για ανώνυμους επισκέπτες."
+ placeholder: "Γίνετε μέλος της κοινότητάς μας για να συμμετάσχετε σε συζητήσεις"
search_placeholder:
placeholder: "Αναζητήστε θέματα..."
navigation:
@@ -5478,7 +5666,7 @@ el:
title: "Αναφορές"
sub_pages:
settings:
- title: "Ρυθμίσεις πίνακα ελέγχου"
+ title: "Ρυθμίσεις"
badges:
title: "Παράσημα"
analytics:
@@ -5505,6 +5693,8 @@ el:
header_description: "Ανακατευθύνσεις προς εφαρμογή σε διευθύνσεις URL που δεν είναι γνωστές στο forum"
user_defaults:
title: "Προεπιλογές χρήστη"
+ header_description: "Ορίστε προεπιλεγμένες τιμές για ρυθμίσεις που επηρεάζουν τους χρήστες σας, διαμορφώνοντας την εμπειρία ενσωμάτωσής τους"
+ keywords: "χρήστες|ενσωμάτωση|νέοι"
user_fields:
title: "Πεδία χρήστη"
color_palettes:
@@ -5573,16 +5763,21 @@ el:
header_description: "Τα URL της λίστας χρησιμοποιήθηκαν σε αναρτήσεις από χρήστες που έχουν εντοπιστεί πως αναρτούν ανεπιθύμητα μηνύματα"
search_logs:
title: "Αναζήτηση καταγραφών"
+ header_description: "Προβολή ενός αρχείου καταγραφής αναζητήσεων που έχουν πραγματοποιηθεί"
plugins:
title: "Εγκατεστημένα πρόσθετα"
header_description: "Τα πρόσθετα ενισχύουν την κοινότητά σας με πρόσθετες λειτουργίες. Τόσο τα προεγκατεστημένα όσο και τα προσαρμοσμένα πρόσθετα παρατίθενται παρακάτω."
api_keys:
title: "Κλειδιά API"
+ keywords: "διακριτικό|πεδίο εφαρμογής"
webhooks:
title: "Webhooks"
keywords: "συμβάν|φορτίο|url"
embedding:
title: "Ενσωμάτωση"
+ form_templates:
+ title: "Πρότυπα φόρμας"
+ header_description: "Τα πρότυπα φόρμας σάς επιτρέπουν να επιβάλλετε μια δομημένη φόρμα με επικύρωση δεδομένων ως μέρος της ροής δημιουργίας θεμάτων"
theme_site_settings:
setting: "Ρύθμιση"
overridden_by: "Παρακάμφθηκε από"
@@ -5592,28 +5787,13 @@ el:
add: "Μετάβαση στις ρυθμίσεις θέματος ιστότοπου"
filter_no_results: "Καμία ρύθμιση θέματος ιστότοπου δεν αντιστοιχεί με το φίλτρο σας"
search:
+ modal_title: "Αναζητήστε τα πάντα στη διαχείριση"
title: "Αναζήτηση"
full_page_link: "Εναλλαγή σε αναζήτηση πλήρους σελίδας"
no_results: 'Δεν μπορέσαμε να βρούμε κάτι που να αντιστοιχεί με "%{filter}".'
result_count:
one: '%{count} αποτέλεσμα για "%{filter}"'
other: '%{count} αποτελέσματα για "%{filter}"'
- result_types:
- page:
- one: "Σελίδα"
- other: "Σελίδες"
- report:
- one: "Αναφορά"
- other: "Αναφορές"
- setting:
- one: "Ρύθμιση"
- other: "Ρυθμίσεις"
- theme:
- one: "Θέμα"
- other: "Θέματα"
- component:
- one: "Συστατικό"
- other: "Συστατικά"
new_features:
title: "Τι νέο υπάρχει;"
check_for_updates: "Ελέγξτε για ενημερώσεις"
@@ -5636,13 +5816,6 @@ el:
new_features:
title: "Τι νέο υπάρχει;"
learn_more: "Μάθε περισσότερα..."
- experimental: "Πειραματικό"
- experiment_tooltip:
- content_disabled: "Δώστε μια ματιά στην υπό ανάπτυξη νεότερη λειτουργία μας! Είναι ακόμα στο πειραματικό στάδιο, οπότε μπορεί να το αφαιρέσουμε ανά πάσα στιγμή. Μπορείτε να εξαιρεθείτε όποτε θέλετε.%{site_name}、%{preferred_display_name}"
+ placeholder: "%{preferred_display_name}、ようこそ!"
header_logged_in:
+ label: "ログイン済みメンバー向けのヘッダー"
+ description: "利用可能な変数: %{site_name}、%{preferred_display_name}"
placeholder: "%{preferred_display_name}、おかえりなさい!"
header_anonymous:
+ label: "匿名の訪問者向けのヘッダー"
+ description: "利用可能な変数: %{site_name}"
placeholder: "%{site_name} へようこそ!"
+ subheader_logged_in:
+ label: "ログイン済みメンバー向けのサブヘッダー"
+ description: "ログイン済みユーザー向けのヘッダーの下に表示されるセカンダリテキスト。"
+ placeholder: "コミュニティーの新機能をご覧ください"
+ subheader_anonymous:
+ label: "匿名の訪問者向けのサブヘッダー"
+ description: "匿名の訪問者向けのヘッダーの下に表示されるセカンダリテキスト。"
+ placeholder: "コミュニティに参加してディスカッションに参加しましょう"
+ search_placeholder:
+ label: "検索プレースホルダー"
+ description: "ウェルカムバナーの検索ボックスのプレースホルダーテキスト。"
+ placeholder: "トピックを検索..."
navigation:
title: "ナビゲーション"
header_description: "サイトのナビゲーションリンクとメニュー項目を構成します。これには、メインのナビゲーションメニュー、ホームページ上部のクイックリンク、および管理者サイドバーの場所と動作が含まれます。"
@@ -5158,7 +5504,7 @@ ja:
header_description: "レポートは、サイトで起きていることを理解するのに役立つ強力なツールです。トレンドの特定、問題の検出、データに基づく決定に役立ちます。"
sub_pages:
settings:
- title: "ダッシュボードの設定"
+ title: "設定"
badges:
title: "バッジ"
header_description: "コミュニティー内での前向きな行動と取り組みを認識、検証、奨励するために、バッジによってユーザーの活動、貢献、および実績を称えます"
@@ -5299,6 +5645,9 @@ ja:
select_setting: "サイトの設定を選択して現在のテーマの値を確認してください"
add: "テーマサイト設定に移動"
help: "現在使用しているテーマは %{currentTheme} です。テーマ構成ページに移動すると、テーマサイト設定を変更できます。または以下のテーブルでリンクされたテーマをクリックすると、その設定を編集できます。"
+ filter: "設定名、説明、またはテーマ名でテーマサイト設定をフィルタ..."
+ filter_no_results: "フィルタに一致するテーマサイト設定はありません"
+ site_setting_warning: 'この設定は、サイトのデフォルトのテーマ (%{defaultThemeName}) によって管理されています。テーマの編集ページで変更できます。'
search:
modal_title: "管理者のすべての項目を検索"
title: "検索"
@@ -5307,17 +5656,6 @@ ja:
no_results: '「%{filter}」に一致するものは見つかりませんでした。'
result_count:
other: '「%{filter}」の %{count} 件の結果'
- result_types:
- page:
- other: "ページ"
- report:
- other: "レポート"
- setting:
- other: "設定"
- theme:
- other: "テーマ"
- component:
- other: "コンポーネント"
new_features:
title: "新機能"
check_for_updates: "アップデートを確認"
@@ -5340,24 +5678,8 @@ ja:
new_features:
title: "新機能"
subtitle: "新しい機能や改善機能は常にリリースされています。このページでは主な内容を説明していますが、'詳細' をクリックすると、さらに詳しく説明されたリリースノートをご覧いただけます。"
+ no_new_features_error: "フィードを読み込み中にエラーが発生しました。以前の新機能の発表は Discover Meta コミュニティーをご覧ください。"
learn_more: "もっと詳しく..."
- experimental: "実験的"
- only_experiments: "実験的機能のみを表示"
- experiment_enabled: "実験的機能を有効にしました。"
- experiment_disabled: "実験的機能を無効にしました。"
- feature_enabled: "機能を有効にしました。"
- feature_disabled: "機能を無効にしました。"
- toggled_too_fast: "切り替え操作が速すぎます。数秒待ってから、もう一度お試しください。"
- experiment_tooltip:
- title_disabled: "この実験的機能を試す"
- title_enabled: "実験的機能をオフにする"
- content_disabled: "開発中の最新の機能をぜひお試しください!実験段階であるため、いつか削除される可能性があります。いつでもオプトアウトできます。\b を含めます。'
actions:
block: "ブロック"
@@ -6844,6 +7195,7 @@ ja:
success: "成功"
exists: "すでに存在します"
upload: "ファイルから追加"
+ upload_successful: "アップロードが完了しました。語はまもなく処理されます。"
case_sensitivity_label: "大文字と小文字を区別"
case_sensitivity_description: "大文字と小文字が一致する語のみ"
html_label: "HTML"
@@ -6894,6 +7246,7 @@ ja:
upload: "ファイルをアップロードする"
multiselect: "複数選択"
tagchooser: "タググループのセレクター"
+ composer: "Markdown回答"
validations_modal:
button_title: "検証"
modal_title: "検証オプション"
@@ -6935,7 +7288,10 @@ ja:
second: "オプション 2"
third: "オプション 3"
edit_category:
+ toggle_freeform: "フォームテンプレートは無効です"
+ toggle_form_template: "フォームテンプレートは有効です"
select_template: "フォームテンプレートを選択する"
+ select_template_help: "フォームテンプレートの追加/編集"
errors:
multiple_tags_not_allowed: '「%{tag_name}」からこれ以上のタグを選択できません。問題を回避するには、フォームテンプレートを使用してください'
impersonate:
@@ -6943,6 +7299,7 @@ ja:
help: "このツールを使用して、デバッグ目的でユーザーアカウントを代理操作します。作業を終了したら、ログアウトしてください。"
not_found: "ユーザーが見つかりません。"
invalid: "このユーザーを代理して操作できません。"
+ error: "予期しないエラーが発生しました。"
users:
title: "ユーザー"
description: "ユーザーの表示と管理を行います。"
@@ -7047,6 +7404,14 @@ ja:
penalty_post_actions: "関連する投稿についてどうしますか?"
penalty_post_delete: "投稿を削除する"
penalty_post_delete_replies: "投稿と返信を削除する"
+ penalty_post_delete_all: "ユーザーによるすべてのトピックと返信を削除する"
+ penalty_post_delete_all_confirmation_MF: |
+ これにより、{ TOPICS, plural,
+ other {# 件のトピック}
+ }と
+ { REPLIES, plural,
+ other {# 件の返信}
+ }が削除されます。この操作は元に戻せません!続行してもよろしいですか?
penalty_post_edit: "投稿を編集する"
penalty_post_none: "何もしない"
penalty_count: "ペナルティ数"
@@ -7104,6 +7469,11 @@ ja:
approve_bulk_success: "成功!選択したすべてのユーザーは承認され、通知が送信されました。"
time_read: "閲覧時間"
post_edits_count: "投稿の編集"
+ upcoming_changes:
+ title: "ユーザー向けの次回の変更"
+ description: "グループを変更するか、次回の変更を有効化または無効化するには、次回の変更の構成ページにアクセスしてください。"
+ filter_placeholder: "名前または説明で次回の変更をフィルタ"
+ filter_no_results: "次回の変更は見つかりませんでした"
exports:
title: ユーザーのエクスポート
download:
@@ -7127,6 +7497,8 @@ ja:
button: "すべての投稿を削除する"
progress:
title: "投稿の削除状況"
+ description:
+ other: "@%{username} の %{count} 件の投稿を削除中..."
confirmation:
title: "@%{username} のすべての投稿を削除"
description: |
@@ -7138,6 +7510,7 @@ ja:
text: "@%{username} の投稿を削除する"
delete: "@%{username} の投稿を削除する"
cancel: "キャンセル"
+ all_enqueued: "@%{username} のすべての投稿は削除待ちです"
merge:
button: "マージ"
prompt:
@@ -7164,6 +7537,8 @@ ja:
cancel: "キャンセル"
merging_user: "ユーザーをマージ中…"
merge_failed: "ユーザーをマージ中にエラーが発生しました。"
+ delete_forbidden_because_admin: "管理者は削除できません。"
+ delete_posts_forbidden_because_admin: "管理者の投稿をすべて削除することはできません。"
delete_forbidden:
other: "投稿が存在するユーザーを削除できません。ユーザーを削除する前にすべての投稿を削除してください。(%{count} 日以上経過した投稿は削除できません)"
cant_delete_all_posts:
@@ -7305,6 +7680,10 @@ ja:
title: "ユーザーカードに表示"
enabled: "ユーザーカードに表示"
disabled: "ユーザーカードに表示しない"
+ show_on_signup:
+ title: "登録フォームに表示"
+ enabled: "登録フォームに表示"
+ disabled: "登録フォームに非表示"
searchable:
title: "検索可能"
enabled: "検索可能"
@@ -7312,6 +7691,7 @@ ja:
field_types:
text: "テキスト"
textarea: "テキストエリア"
+ date: "日付"
confirm: "確認"
dropdown: "ドロップダウン"
multiselect: "複数選択"
@@ -7375,6 +7755,9 @@ ja:
label: "アップロード"
title: "画像のアップロード"
download_file: "ダウンロード"
+ upload_restrictions:
+ extensions: "利用可能な形式: %{extensions}"
+ max_size: "最大サイズ: %{size}"
selectable_avatars:
title: "ユーザーが選択できるアバターのリスト"
table_column_heading:
@@ -7413,6 +7796,7 @@ ja:
experimental: "実験的"
secret_list:
invalid_input: "入力フィールドを空にしたり、縦棒文字を含めることはできません。"
+ already_exists: "%{key} のエントリはすでに存在します。"
default_categories:
modal_description:
other: "この変更を過去に適用しますか?これにより、既存の %{count} 人のユーザーの設定が変更されます。"
@@ -7436,13 +7820,23 @@ ja:
prompt: "この設定を変更すると、サイトに広範に適用されるか意図しない結果が生じる可能性があります。続行してもよろしいですか?"
confirm: "はい"
min_password_length:
+ prompt: "パスワードポリシーを変更しようとしています。これは、今後すべてのユーザーのパスワード変更に影響します。続行してもよろしいですか?"
confirm: "はい。パスワードポリシーを更新します"
min_admin_password_length:
+ prompt: "パスワードポリシーを変更しようとしています。これは、今後すべての管理者のパスワード変更に影響します。続行してもよろしいですか?"
confirm: "はい。パスワードポリシーを更新します"
password_unique_charactes:
+ prompt: "パスワードポリシーを変更しようとしています。これは、今後すべてのユーザーのパスワード変更に影響します。続行してもよろしいですか?"
confirm: "はい。パスワードポリシーを更新します"
block_common_passwords:
+ prompt: "パスワードポリシーを変更しようとしています。これは、今後すべてのユーザーのパスワード変更に影響します。続行してもよろしいですか?"
confirm: "はい。パスワードポリシーを更新します"
+ clean_up_inactive_users_after_days:
+ prompt: "この値を 0 以外に設定すると、その日数以上アクティブでないユーザーが完全に削除されます。続行してもよろしいですか?"
+ confirm: "はい。この値を 0 に設定しない限り、非アクティブなユーザーが完全に削除されることを理解しています"
+ job_status:
+ completed: "更新完了"
+ enqueued: "更新中"
badges:
status: ステータス
title: バッジ
@@ -7477,6 +7871,7 @@ ja:
no_badges: 付与できるバッジがありません。
none_selected: "開始するにはバッジを選択してください"
sections:
+ design: デザイン
query: クエリ
settings: 設定
usage_heading: 使用方法
@@ -7576,6 +7971,7 @@ ja:
category: "カテゴリへ投稿"
tags: "トピックのタグ"
post_author: "投稿者"
+ post_author_description: "このホストから埋め込まれたすべてのトピックの作成者。ブログページのメタタグをオーバーライドします。空白にすると、ページの または タグの作成者を読み取ります。"
post_author_with_default: "投稿者 (デフォルトは %{author})"
add_host: "ホストを追加"
posts_and_topics: "投稿とトピックの構成"
diff --git a/config/locales/client.ko.yml b/config/locales/client.ko.yml
index b91cc6cc46d12..6b961d8e2aa96 100644
--- a/config/locales/client.ko.yml
+++ b/config/locales/client.ko.yml
@@ -6,6 +6,11 @@
ko:
js:
+ blocks:
+ ghost:
+ status: "상태"
+ hidden: "숨김"
+ failed: "실패"
number:
format:
separator: "."
@@ -274,6 +279,8 @@ ko:
pill: "추천"
pm_title: "제안된 메시지"
admin_onboarding_banner:
+ start_posting:
+ back: "뒤로"
spread_the_word:
action: "링크 복사"
about:
@@ -472,7 +479,6 @@ ko:
enable_plugins: "플러그인 사용"
explain:
why: "이 항목이 대기열에 있는 이유 설명"
- title: "검토 가능 점수"
formula: "공식"
subtotal: "소계"
total: "합계"
@@ -486,10 +492,8 @@ ko:
title: "신고가 수락된 경우 신고자에게 보너스가 주어집니다."
trust_level_bonus:
name: "회원 레벨"
- title: "신뢰 레벨이 더 높은 사용자가 만든 검토 가능 항목은 더 높은 점수를 받습니다."
type_bonus:
name: "유형 보너스"
- title: "특정한 검토 유형에는 관리자가 보너스를 할당하여 우선 순위를 높일 수 있습니다."
revise_and_reject_post:
title: "수정"
reason: "이유"
@@ -498,7 +502,6 @@ ko:
custom_reason: "이유를 명확하게 설명해 주세요."
other_reason: "기타..."
optional: "선택 사항"
- stale_help: "이 검토 가능 항목은 %{username} 님이 해결했습니다."
claim_help:
optional: "다른 사용자가 검토하지 못하도록 이 항목을 독점할 수 있습니다."
required: "항목을 검토하려면 먼저 항목을 독점해야 합니다."
@@ -2363,8 +2366,6 @@ ko:
max_views:
placeholder: 최대
aria_label: 최대 조회수로 필터링
- additional_options:
- label: "게시물 수 및 글 조회수로 필터링"
new_item: "새로운"
go_back: "뒤로 가기"
not_logged_in_user: "현재 활동 및 환경설정에 대한 요약이 포함된 사용자 페이지"
@@ -3525,6 +3526,18 @@ ko:
delete_confirm_synonyms:
other: "%{count}개의 동의어도 삭제됩니다."
edit_tag: "태그 이름 및 설명 편집"
+ description: "내용"
+ settings:
+ title: "설정"
+ general: "일반"
+ back: "뒤로"
+ name: "그룹명"
+ slug: "강타"
+ name_placeholder: "태그명"
+ synonyms_subtitle: "다음 태그를 사용하면 %{name} 으로 대체됩니다"
+ localization:
+ name: "그룹명"
+ description: "내용"
sort_by: "정렬 기준:"
sort_by_count: "개수"
sort_by_name: "이름"
@@ -3768,7 +3781,6 @@ ko:
admin_js:
type_to_filter: "필터 입력..."
settings: "설정"
- reset_filter: "리셋"
admin:
title: "Discourse 관리자"
moderator: "운영자"
@@ -3781,6 +3793,11 @@ ko:
reports:
title: "사용 가능한 리포트 목록"
sidebar_title: "보고서"
+ group_traffic: "트래픽"
+ group_members: "회원"
+ group_moderation: "관리"
+ group_security: "보안"
+ group_other: "기타"
config_sections:
account:
title: "계정"
@@ -3802,7 +3819,6 @@ ko:
preview: "미리 보기"
enabled_for_options:
everyone: "모두"
- staff: "직원 만"
impact_roles:
admins: "관리자"
moderators: "관리자"
@@ -3890,6 +3906,9 @@ ko:
title: "로그"
reports:
title: "보고서"
+ sub_pages:
+ settings:
+ title: "설정"
badges:
title: "배지"
permalinks:
@@ -3938,17 +3957,6 @@ ko:
default_value: "기본"
search:
title: "검색"
- result_types:
- page:
- other: "페이지"
- report:
- other: "보고서"
- setting:
- other: "설정"
- theme:
- other: "테마"
- component:
- other: "구성 요소"
dashboard:
title: "대시보드"
last_updated: "대시보드 업데이트됨:"
@@ -5246,6 +5254,7 @@ ko:
disabled: "검색할 수 없음"
field_types:
text: "텍스트"
+ date: "날짜"
confirm: "확인"
dropdown: "드롭다운"
multiselect: "다중 선택"
diff --git a/config/locales/client.lt.yml b/config/locales/client.lt.yml
index 513b06839602b..e15babdb15786 100644
--- a/config/locales/client.lt.yml
+++ b/config/locales/client.lt.yml
@@ -6,6 +6,12 @@
lt:
js:
+ blocks:
+ ghost:
+ status: "Statusas"
+ in_location: "į"
+ hidden: "paslėptas"
+ failed: "nepavyko"
carousel:
go_to_slide: "Eiti į skaidrę %{index}"
previous: "Ankstesnė skaidrė"
@@ -343,6 +349,8 @@ lt:
pill: "Siūloma"
pm_title: "Rekomenduojamos žinutės"
admin_onboarding_banner:
+ start_posting:
+ back: "Atgal"
spread_the_word:
action: "Nukopijuoti nuorodą"
copied_to_clipboard: "Nuoroda nukopijuota į iškarpinę!"
@@ -607,21 +615,13 @@ lt:
in_reply_to: "atsakant į"
filtered_flagged_by: "Pažymėjo"
unknown:
- title:
- one: "Yra laukiančių peržiūrų dėl išjungto papildinio:"
- few: "Yra laukiančių peržiūrų dėl išjungto papildinio:"
- many: "Yra laukiančių peržiūrų dėl išjungto papildinio:"
- other: "Yra laukiančių peržiūrų dėl išjungtų papildinių:"
instruction: "Jie negalės būti tinkamai rodomi, kol neįgalinsite atitinkamo papildinio. Įjunkite papildinį ir atnaujinkite puslapį. Arba galite jų ignoruoti. Sužinokite daugiau..."
reviewable_unknown_source: "%{reviewableType} (nežinomas įskiepis)"
reviewable_known_source: "%{reviewableType} (iš „%{pluginName}“ įskiepio)"
ignore_all: "Ignoruoti viską"
enable_plugins: "Įjungti papildinius"
- delete_confirm: "Ar tikrai norite ištrinti visas išjungtų papildinių sukurtas apžvalgas?"
- ignore_success: "Visos išjungtų papildinių sukurtos apžvalgos buvo ištrintos."
explain:
why: "paaiškinkite, kodėl šis elementas atsidūrė eilėje"
- title: "Peržiūrimas balas"
formula: "Formulė"
subtotal: "Tarpinė suma"
total: "Viso"
@@ -635,10 +635,8 @@ lt:
title: "Naudotojams, kurių vėliavoms istoriškai pritarta, suteikiama premija."
trust_level_bonus:
name: "patikimumo lygis"
- title: "Peržiūrimi elementai, sukurti aukštesnio pasitikėjimo lygio naudotojų, turi didesnį balą."
type_bonus:
name: "tipo premija"
- title: "Tam tikriems peržiūrėtiems tipams darbuotojai gali priskirti premiją, kad jie taptų aukštesniu prioritetu."
revise_and_reject_post:
title: "Pataisyti"
reason: "Priežastis"
@@ -647,7 +645,6 @@ lt:
custom_reason: "Pateikite aiškų priežasties aprašymą"
other_reason: "Kiti..."
optional: "pasirinktinai"
- stale_help: "Ši peržiūra buvo išspręsta %{username}."
claim_help:
optional: "Galite pareikšti teises į šį elementą, kad kiti negalėtų jo peržiūrėti."
required: "Turite pareikšti teises į elementus, kad galėtumėte juos peržiūrėti."
@@ -2726,8 +2723,6 @@ lt:
max_views:
placeholder: maksimalus
aria_label: filtruoti pagal daugiausia peržiūrų
- additional_options:
- label: "Filtruoti pagal įrašų skaičių ir temos peržiūras"
new_item: "Nauja"
go_back: "grįžti atgal"
not_logged_in_user: "Vartotojo puslapis su veiksmų ir nustatymų aprašymu"
@@ -3411,6 +3406,7 @@ lt:
allow_global_tags_label: "Taip pat leiskite kitas žymas"
required_tag_group:
delete: "Pašalinti"
+ tag_group: "Žymų grupė"
topic_featured_link_allowed: "Leisti svarbiausias šios kategorijos nuorodas"
create_long: "Sukurti naują kategoriją"
slug_placeholder: "(Pasirinktinai) brūkšniniai žodžiai skirti URL"
@@ -3884,6 +3880,16 @@ lt:
delete_tag: "Ištrinti žymą"
delete_confirm_no_topics: "Ar tikrai norite ištrinti šią žymą?"
edit_tag: "Redaguoti žymos pavadinimą ir aprašymą"
+ description: "Aprašymas"
+ settings:
+ title: "Nustatymai"
+ general: "Bendrieji"
+ back: "Atgal"
+ name: "Vardas"
+ name_placeholder: "Žymos pavadinimas"
+ localization:
+ name: "Vardas"
+ description: "Aprašymas"
sort_by: "Rūšiuoti pagal:"
sort_by_count: "skaičių"
sort_by_name: "vardą"
@@ -4120,7 +4126,6 @@ lt:
admin_js:
type_to_filter: "Įveskite filtrą…"
settings: "Nustatymai"
- reset_filter: "Atstatyti"
admin:
title: "Forumo administratorius"
moderator: "Moderatorius"
@@ -4133,6 +4138,11 @@ lt:
reports:
title: "Galimų ataskaitų sąrašas"
sidebar_title: "Pranešimai"
+ group_traffic: "Srautas"
+ group_members: "Nariai"
+ group_moderation: "Moderavimas"
+ group_security: "Apsauga"
+ group_other: "Kiti"
config_sections:
account:
title: "Paskyra"
@@ -4154,7 +4164,6 @@ lt:
preview: "Peržiūrėti"
enabled_for_options:
everyone: "Visi"
- staff: "Tik personalui"
impact_roles:
admins: "Administratoriai"
moderators: "Moderatoriai"
@@ -4233,6 +4242,9 @@ lt:
title: "Įrašai"
reports:
title: "Pranešimai"
+ sub_pages:
+ settings:
+ title: "Nustatymai"
badges:
title: "Trofėjai"
permalinks:
@@ -4275,17 +4287,6 @@ lt:
default_value: "Numatytasis"
search:
title: "Paieška"
- result_types:
- theme:
- one: "Tema"
- few: "Temos"
- many: "Temos"
- other: "Temos"
- component:
- one: "Komponentas"
- few: "Komponentai"
- many: "Komponentai"
- other: "Komponentai"
dashboard:
title: "Apžvalga"
last_updated: "Informacijos suvestinė atnaujinta:"
@@ -5454,6 +5455,7 @@ lt:
enabled: "Ieškoma"
field_types:
text: "Tekstas"
+ date: "Data"
confirm: "Patvirtinimas"
dropdown: "Išskleidimas"
multiselect: "Daugialypis pasirinkimas"
diff --git a/config/locales/client.lv.yml b/config/locales/client.lv.yml
index 84aad53a97055..637883b7663a7 100644
--- a/config/locales/client.lv.yml
+++ b/config/locales/client.lv.yml
@@ -6,6 +6,11 @@
lv:
js:
+ blocks:
+ ghost:
+ status: "Statuss"
+ hidden: "paslēpts"
+ failed: "neizdevies"
number:
format:
separator: ","
@@ -254,6 +259,9 @@ lv:
pill: "Saistītās ziņas"
suggested_topics:
pm_title: "Ieteiktās ziņas"
+ admin_onboarding_banner:
+ start_posting:
+ back: "Atpakaļ"
about:
simple_title: "Par"
title: "Par %{title}"
@@ -353,7 +361,6 @@ lv:
in_reply_to: "atbildot uz"
explain:
why: "paskaidrojiet, kāpēc šis vienums netika apstrādāts"
- title: "Pārskatāms vērtējums"
formula: "Formula"
subtotal: "Starpsumma"
total: "Kopā"
@@ -367,14 +374,11 @@ lv:
title: "Lietotājiem, kuru karogi vēsturiski ir saskaņoti, tiek piešķirti bonusi."
trust_level_bonus:
name: "uzticības līmenis"
- title: "Pārskatāmiem vienumiem, ko izveidojuši augstāka uzticamības līmeņa lietotāji, ir augstāks rādītājs."
type_bonus:
name: "tipa bonuss"
- title: "Atsevišķiem pārskatāmiem veidiem darbinieki var piešķirt prēmiju, lai tie būtu augstāka prioritāte."
revise_and_reject_post:
reason: "Iemesls"
optional: "pēc izvēles"
- stale_help: "Šo pārskatāmo jautājumu ir atrisinājis %{username}."
claim_help:
optional: "Jūs varat pieprasīt šo vienumu, lai citi to nevarētu pārskatīt."
required: "Jums ir jāpieprasa vienumi, pirms jūs varat tos pārskatīt."
@@ -2681,6 +2685,15 @@ lv:
tags: "Tagi"
add_synonyms: "Pievienot"
delete_tag: "Dzēst tagu"
+ description: "Apraksts"
+ settings:
+ title: "Iestatījumi"
+ general: "Vispārīgi"
+ back: "Atpakaļ"
+ name: "Vārds"
+ localization:
+ name: "Vārds"
+ description: "Apraksts"
sort_by: "Kārtot pēc:"
sort_by_count: "skaita"
sort_by_name: "vārda"
@@ -2832,7 +2845,6 @@ lv:
categories: "Visas sadaļas"
admin_js:
settings: "Iestatījumi"
- reset_filter: "Atlikt"
admin:
title: "Discourse administrators"
moderator: "Moderators"
@@ -2840,6 +2852,11 @@ lv:
remove_muted_tags_from_latest:
always: "vienmēr"
never: "nekad"
+ reports:
+ group_traffic: "Datu plūsma"
+ group_members: "Dalībnieki"
+ group_security: "Drošība"
+ group_other: "Citi"
config_sections:
account:
title: "Konts"
@@ -2857,7 +2874,6 @@ lv:
preview: "Priekšskatījums"
enabled_for_options:
everyone: "Ikviens"
- staff: "Tikai darbiniekiem"
impact_roles:
admins: "Administratori"
moderators: "Moderātori"
@@ -2923,6 +2939,10 @@ lv:
sub_pages:
logs:
title: "Žurnāls"
+ reports:
+ sub_pages:
+ settings:
+ title: "Iestatījumi"
badges:
title: "Žetoni"
permalinks:
@@ -2964,11 +2984,6 @@ lv:
default_value: "Noklusējums"
search:
title: "Meklēt"
- result_types:
- theme:
- zero: "Dizaini"
- one: "Tēma"
- other: "Dizaini"
dashboard:
title: "Administrācijas panelis"
version: "Versija"
@@ -3741,6 +3756,7 @@ lv:
title: "Parādīt leitotāja kartē"
field_types:
text: "Teksts"
+ date: "Datums"
confirm: "Apstiprinājums"
dropdown: "Nolaižams izvēļu saraksts"
site_text:
diff --git a/config/locales/client.nb_NO.yml b/config/locales/client.nb_NO.yml
index 724d0438bd115..854379089876b 100644
--- a/config/locales/client.nb_NO.yml
+++ b/config/locales/client.nb_NO.yml
@@ -6,6 +6,12 @@
nb_NO:
js:
+ blocks:
+ ghost:
+ status: "Status"
+ in_location: "i"
+ hidden: "skjult"
+ failed: "feilet"
number:
format:
separator: "."
@@ -291,6 +297,9 @@ nb_NO:
title: "Nye og uleste emner"
pill: "Foreslåtte"
pm_title: "Anbefalte meldinger"
+ admin_onboarding_banner:
+ start_posting:
+ back: "Forrige"
about:
edit: "Endre denne siden"
simple_title: "Om"
@@ -495,7 +504,6 @@ nb_NO:
in_reply_to: "i svar til"
explain:
why: "forklar hvorfor dette elementet ble plassert i køen"
- title: "Trust factor"
formula: "Formel"
subtotal: "Delsum"
total: "Total"
@@ -509,10 +517,8 @@ nb_NO:
title: "Brukere som historisk gir gode flagg får bonus."
trust_level_bonus:
name: "tillitsnivå"
- title: "Elementer opprettet av brukere med høyere tillitsrangering har høyere score"
type_bonus:
name: "type bonus"
- title: "Visse typer som kan gjennomgås, kan tildeles en bonus av personalet for å gjøre dem til en høyere prioritet."
revise_and_reject_post:
title: "Revider"
reason: "Begrunnelse"
@@ -521,7 +527,6 @@ nb_NO:
custom_reason: "Gi en tydelig beskrivelse av årsaken"
other_reason: "Annet..."
optional: "valgfritt"
- stale_help: "Denne vurderingen har blitt løst av %{username}."
claim_help:
optional: "Du kan gjøre krav på dette elementet for å hindre andre i å gjennomgå det."
required: "Du må gjøre krav på varer før du kan se gjennom dem."
@@ -2746,8 +2751,6 @@ nb_NO:
max_views:
placeholder: maksimum
aria_label: filtrer etter maksimal antall visninger
- additional_options:
- label: "Filtrer etter antall innlegg og emnevisninger"
new_item: "ny"
go_back: "gå tilbake"
not_logged_in_user: "brukerside med oppsummering av nåværende aktivtet og innstillinger"
@@ -3636,6 +3639,7 @@ nb_NO:
delete: "Slett"
add: "Legg til påkrevd stikkordgruppe"
placeholder: "Velg stikkordgruppe…"
+ tag_group: "Stikkordgrupper"
topic_featured_link_allowed: "Tillat fremhevede lenker i denne kategorien"
create_long: "Opprett en ny kategori"
slug_placeholder: "(Valgfritt) sammensatte ord for bruk i URL"
@@ -4111,6 +4115,17 @@ nb_NO:
delete_confirm_synonyms:
one: "Synonymen vil også bli slettet."
other: "Dets %{count} synonymer vil også bli slettet."
+ description: "Beskrivelse"
+ settings:
+ title: "Innstillinger"
+ general: "Generelt"
+ back: "Forrige"
+ name: "Navn"
+ slug: "Navn i URL"
+ synonyms_subtitle: "Når følgende merkelapper brukes, vil de bli erstattet med %{name}"
+ localization:
+ name: "Navn"
+ description: "Beskrivelse"
sort_by: "Sorter etter:"
sort_by_count: "antall"
sort_by_name: "navn"
@@ -4316,7 +4331,6 @@ nb_NO:
admin_js:
type_to_filter: "Skriv for å filtrere…"
settings: "Instillinger"
- reset_filter: "Tilbakestill"
admin:
title: "Discourse-admin"
moderator: "Moderator"
@@ -4329,6 +4343,11 @@ nb_NO:
reports:
title: "Liste over tilgjengelige rapporter"
sidebar_title: "Rapporter"
+ group_traffic: "Trafikk"
+ group_members: "Medlemmer"
+ group_moderation: "Moderering"
+ group_security: "Sikkerhet"
+ group_other: "Annet"
config_sections:
account:
title: "Konto"
@@ -4350,7 +4369,6 @@ nb_NO:
preview: "Forhåndsvis"
enabled_for_options:
everyone: "Alle"
- staff: "Bare ansatte"
impact_roles:
admins: "Adminer"
moderators: "Moderatorer"
@@ -4420,6 +4438,9 @@ nb_NO:
title: "Logger"
reports:
title: "Rapporter"
+ sub_pages:
+ settings:
+ title: "Innstillinger"
badges:
title: "Merker"
permalinks:
@@ -4468,13 +4489,6 @@ nb_NO:
default_value: "Forvalg"
search:
title: "Søk"
- result_types:
- theme:
- one: "Drakt"
- other: "Drakter"
- component:
- one: "Komponent"
- other: "Komponenter"
dashboard:
title: "Dashbord"
last_updated: "Dashbord oppdatert:"
@@ -5557,6 +5571,7 @@ nb_NO:
title: "Vis på brukerkort"
field_types:
text: "Tekst"
+ date: "Dato"
confirm: "Bekreftelse"
dropdown: "Nedtrekk"
site_text:
diff --git a/config/locales/client.nl.yml b/config/locales/client.nl.yml
index 1ab779e7e15d2..7b31eb5af6e39 100644
--- a/config/locales/client.nl.yml
+++ b/config/locales/client.nl.yml
@@ -6,6 +6,12 @@
nl:
js:
+ blocks:
+ ghost:
+ status: "Status"
+ in_location: "in"
+ hidden: "verborgen"
+ failed: "mislukt"
carousel:
go_to_slide: "Ga naar dia %{index}"
previous: "Vorige dia"
@@ -418,6 +424,7 @@ nl:
title: "Begin met posten"
description: "Geef mensen iets om samen over te praten"
action: "Ideeën voor ijsbrekers"
+ back: "Terug"
icebreakers:
fun_facts:
title: "Wat zijn leuke weetjes over jou?"
@@ -671,19 +678,13 @@ nl:
in_reply_to: "in antwoord op"
filtered_flagged_by: "Gemarkeerd door"
unknown:
- title:
- one: "Je hebt wachtende beoordeelbare items van een uitgeschakelde plug-in:"
- other: "Je hebt wachtende beoordeelbare items van uitgeschakelde plug-ins:"
instruction: "Ze kunnen pas correct worden weergegeven nadat je de betreffende plug-in hebt ingeschakeld. Schakel de plug-in in en vernieuw de pagina. Je kunt ze ook negeren. Meer informatie..."
reviewable_unknown_source: "%{reviewableType} (onbekende plug-in)"
reviewable_known_source: "%{reviewableType} (van de plug-in '%{pluginName}' )"
ignore_all: "Alles negeren"
enable_plugins: "Plug-ins inschakelen"
- delete_confirm: "Weet je zeker dat je alle beoordelingen wilt verwijderen die zijn gemaakt door uitgeschakelde plug-ins?"
- ignore_success: "Alle beoordelingen gemaakt door uitgeschakelde plug-ins zijn verwijderd."
explain:
why: "leg uit waarom dit item in de wachtrij is beland"
- title: "Beoordeelbare scores"
formula: "Formule"
subtotal: "Subtotaal"
total: "Totaal"
@@ -697,10 +698,8 @@ nl:
title: "Gebruikers waarvan markeringen in het verleden zijn geaccordeerd ontvangen een bonus."
trust_level_bonus:
name: "vertrouwensniveau"
- title: "Beoordeelbare items die door gebruikers met een hoger vertrouwensniveau zijn gemaakt hebben een hogere score."
type_bonus:
name: "typebonus"
- title: "Aan bepaalde beoordeelbare typen kan door medewerkers een bonus worden toegekend om ze hogere prioriteit te geven."
revise_and_reject_post:
title: "Herzien"
reason: "Reden"
@@ -709,7 +708,6 @@ nl:
custom_reason: "Geef een duidelijke beschrijving van de reden"
other_reason: "Anders..."
optional: "optioneel"
- stale_help: "Dit beoordeelbare item is afgehandeld door %{username}."
claim_help:
optional: "Je kunt dit item claimen om te voorkomen dat anderen het beoordelen."
required: "Je moet items claimen voordat je ze kunt beoordelen."
@@ -3180,8 +3178,6 @@ nl:
max_views:
placeholder: maximum
aria_label: filteren op maximumaantal weergaven
- additional_options:
- label: "Filteren op aantal berichten en topicweergaven"
hamburger_menu: "Navigatiemenu"
new_item: "nieuw"
go_back: "terug"
@@ -4140,8 +4136,10 @@ nl:
delete: "Verwijderen"
add: "Vereiste taggroep toevoegen"
placeholder: "Selecteer taggroep…"
+ tag_group: "Tag-groep"
topic_featured_link_allowed: "Uitgelichte links toestaan in deze categorie"
create_long: "Nieuwe categorie maken"
+ unsaved_changes: "Je hebt niet-opgeslagen wijzigingen"
slug_placeholder: "(Optioneel) met streepjes verbonden woorden voor URL"
creation_error: Er is een fout opgetreden bij het maken van de categorie.
save_error: Er is een fout opgetreden bij het opslaan van de categorie.
@@ -4737,7 +4735,20 @@ nl:
one: "Het synoniem wordt ook verwijderd."
other: "De %{count} synoniemen worden ook verwijderd."
edit_tag: "Tagnaam en -beschrijving bewerken"
- description: "Beschrijving (max. 1000 tekens)"
+ description: "Beschrijving"
+ settings:
+ title: "Instellingen"
+ general: "Algemeen"
+ localizations: "Lokalisaties"
+ back: "Terug"
+ name: "Naam"
+ slug: "Slug"
+ name_placeholder: "Tagnaam"
+ synonyms_subtitle: "Wanneer de volgende tags worden gebruikt, worden deze vervangen door %{name}"
+ localization:
+ locale: "Taal"
+ name: "Naam"
+ description: "Beschrijving"
sort_by: "Sorteren op:"
sort_by_count: "aantal"
sort_by_name: "naam"
@@ -5227,7 +5238,6 @@ nl:
admin_js:
type_to_filter: "Typ om te filteren…"
settings: "Instellingen"
- reset_filter: "Resetten"
admin:
title: "Discourse-beheerder"
moderator: "Moderator"
@@ -5240,9 +5250,13 @@ nl:
never: "nooit"
reports:
title: "Lijst van beschikbare rapporten"
- meta_doc: "Rapporten zijn een krachtig hulpmiddel om te begrijpen wat er op je site gebeurt. Ze kunnen je helpen trends te identificeren, problemen te signaleren en beslissingen te nemen op basis van gegevens."
sidebar_title: "Rapporten"
back: "Terug naar alle rapporten"
+ group_traffic: "Verkeer"
+ group_members: "Leden"
+ group_moderation: "Moderatie"
+ group_security: "Beveiliging"
+ group_other: "Overig"
config_sections:
account:
title: "Account"
@@ -5267,7 +5281,6 @@ nl:
preview: "Voorbeeld"
enabled_for_options:
everyone: "Iedereen"
- staff: "Alleen medewerkers"
statuses:
experimental: "Experimenteel"
impact_roles:
@@ -5340,7 +5353,6 @@ nl:
help_text: "De aanbevolen grootte is 600 x 80 pixels."
large_icon:
title: "Vierkant pictogram"
- description: "Een vierkante versie van het logo wordt bovenaan het beheerscherm weergegeven en is ook het logo in het startscherm van de mobiele app."
help_text: "De aanbevolen grootte is 512 x 512 pixels."
square_icon_dark:
required: "Ander vierkant pictogram gebruiken voor de donkere modus?"
@@ -5491,7 +5503,7 @@ nl:
header_description: "Rapporten zijn een krachtig hulpmiddel om te begrijpen wat er op je site gebeurt. Ze kunnen je helpen trends te identificeren, problemen te signaleren en beslissingen te nemen op basis van gegevens."
sub_pages:
settings:
- title: "Dashboardinstellingen"
+ title: "Instellingen"
badges:
title: "Badges"
header_description: "Badges belonen gebruikers voor hun activiteit, bijdragen en prestaties om positief gedrag en betrokkenheid binnen de community te erkennen, te valideren en aan te moedigen"
@@ -5641,22 +5653,6 @@ nl:
result_count:
one: '%{count} resultaat voor "%{filter}"'
other: '%{count} resultaten voor "%{filter}"'
- result_types:
- page:
- one: "Pagina"
- other: "Pagina's"
- report:
- one: "Rapport"
- other: "Rapporten"
- setting:
- one: "Instelling"
- other: "Instellingen"
- theme:
- one: "Thema"
- other: "Thema's"
- component:
- one: "Onderdeel"
- other: "Onderdelen"
new_features:
title: "Wat is er nieuw?"
check_for_updates: "Controleren op updates"
@@ -5680,15 +5676,6 @@ nl:
title: "Wat is er nieuw?"
subtitle: "We brengen voortdurend nieuwe functies en verbeteringen uit. Deze pagina behandelt de belangrijkste punten, maar je kunt op 'Meer informatie' klikken om uitgebreide releaseopmerkingen te bekijken."
learn_more: "Meer informatie..."
- experimental: "Experimenteel"
- only_experiments: "Alleen experimentele functies weergeven"
- experiment_enabled: "Je hebt de experimentele functie ingeschakeld."
- experiment_disabled: "Je hebt de experimentele functie uitgeschakeld."
- experiment_tooltip:
- title_enabled: "Schakel de experimentele functie uit"
- content_enabled: "Wijziging hiervan schakelt de functie uit voor alle gebruikers."
- feature_tooltip:
- content_enabled: "Wijziging hiervan schakelt de functie uit voor alle gebruikers."
last_checked: "Laatst gecontroleerd"
refresh_problems: "Vernieuwen"
no_problems: "Er zijn geen problemen gevonden."
@@ -7665,6 +7652,7 @@ nl:
field_types:
text: "Tekst"
textarea: "Tekstgebied"
+ date: "Datum"
confirm: "Bevestiging"
dropdown: "Vervolgkeuzelijst"
multiselect: "Meervoudige selectie"
diff --git a/config/locales/client.pl_PL.yml b/config/locales/client.pl_PL.yml
index 5ef116dfbb0e1..54baa0e28d091 100644
--- a/config/locales/client.pl_PL.yml
+++ b/config/locales/client.pl_PL.yml
@@ -6,6 +6,22 @@
pl_PL:
js:
+ blocks:
+ ghost:
+ status: "Status"
+ conditions: "Warunki"
+ arguments: "Argumenty"
+ container_args: "Argumenty kontenera"
+ in_location: "w"
+ hidden: "ukryty"
+ not_registered: "niezarejestrowany"
+ no_visible_children: "brak widocznych podrzędnych"
+ failed: "nieudany"
+ ghost_reasons:
+ optional_missing_hint: "Ten opcjonalny blok nie jest renderowany, ponieważ nie jest zarejestrowany."
+ no_visible_children_hint: "Ten blok kontenera nie jest renderowany, ponieważ żaden z jego elementów podrzędnych nie jest widoczny."
+ condition_failed_hint: "Ten blok nie został wyrenderowany, ponieważ jego warunki nie zostały spełnione."
+ head_hidden_tail_hint: "Ten blok nie jest renderowany, ponieważ w kontenerze `head` najpierw został renderowany inny blok."
carousel:
go_to_slide: "Przejdź do slajdu %{index}"
previous: "Poprzedni slajd"
@@ -353,6 +369,7 @@ pl_PL:
skip_to_top: "Przejdź do góry"
skip_user_nav: "Przejdź do treści profilu"
emails_are_disabled: "Wszystkie wychodzące wiadomości e-mail zostały globalnie wyłączone przez administratora. Żadne powiadomienia e-mail nie będą wysyłane."
+ emails_are_disabled_no_smtp: "Wszystkie wiadomości wychodzące są wyłączone, ponieważ nie skonfigurowano serwera SMTP. Nie można wysyłać żadnych wiadomości e-mail."
emails_are_disabled_non_staff: "Poczta wychodząca została wyłączona dla użytkowników niebędących pracownikami."
software_update_prompt:
message: "Zaktualizowaliśmy tę witrynę, odśwież, aby wszystko działało sprawnie."
@@ -378,12 +395,27 @@ pl_PL:
broken_page_change_alert: "Procedura obsługi onPageChange zgłosiła błąd. Aby uzyskać więcej informacji, sprawdź narzędzia programistyczne przeglądarki."
broken_plugin_alert: "Spowodowane przez wtyczkę '%{name}'"
broken_transformer_alert: "Wystąpił błąd. Twoja witryna może nie działać prawidłowo."
+ broken_block_alert: "Wykryto błąd konfiguracji bloku. Szczegóły znajdziesz w konsoli przeglądarki."
+ broken_block_factory_alert: "Nie udało się załadować bloku. Niektóre elementy interfejsu użytkownika mogą nie wyświetlać się poprawnie."
critical_deprecation:
notice: "[Uwaga administratora] %{source} zawiera kod, który wymaga aktualizacji. (id:%{id})"
learn_more_link: "(dowiedz się więcej)"
theme_source: "Motyw '%{name}'"
plugin_source: "Wtyczka „%{name}”"
unknown_source: "Jeden z Twoich motywów lub wtyczek"
+ dev_tools:
+ drag_to_move: "Przeciągnij, aby przesunąć"
+ toggle_plugin_outlet_debug: "Przełącz debugowanie wyjścia wtyczki"
+ toggle_block_debug: "Przełącz debugowanie bloku"
+ block_debug:
+ outlet_boundaries: "Granice wyjścia"
+ visual_overlay: "Nakładka wizualna"
+ ghost_blocks: "Bloki duchów"
+ condition_debugging: "Debugowanie warunków"
+ toggle_safe_mode: "Przełącz tryb awaryjny"
+ toggle_verbose_localization: "Przełącz szczegółową lokalizację"
+ toggle_mobile_view: "Przełącz widok mobilny"
+ disable_dev_tools: "Wyłącz narzędzia programistyczne"
s3:
regions:
ap_northeast_1: "Azja i Pacyfik (Tokio)"
@@ -492,6 +524,13 @@ pl_PL:
title: "Rozpocznij publikowanie"
description: "Daj ludziom temat do wspólnej rozmowy"
action: "Pomysły na przełamanie lodów"
+ choose_option: "Jak chcesz zacząć?"
+ predefined_topics: "Szablony przełamujące lody"
+ predefined_topics_subtitle: "Daj nowym członkom temat do rozmów, wybierz szablon do edycji i stwórz swój własny."
+ predefined_topics_description: "Wybierz z kolekcji tematów do rozpoczęcia rozmowy, aby rozpocząć dyskusję"
+ use_predefined: "Przeglądaj szablony"
+ start_with_this: "Zacznij od tego"
+ back: "Wstecz"
icebreakers:
fun_facts:
title: "Jakie są ciekawostki na Twój temat?"
@@ -718,6 +757,10 @@ pl_PL:
few: "+%{count} inne szkice"
many: "+%{count} innych szkiców"
other: "+%{count} innych szkiców"
+ embed_mode:
+ storage_access_prompt: "Masz już konto %{site_name} ? Zezwól na dostęp do swojej sesji, aby móc komentować jako Ty."
+ allow_access: "Zezwól na dostęp"
+ continue_as_guest: "Kontynuuj jako gość"
topic_count_all:
one: "Zobacz %{count} nowy temat"
few: "Zobacz %{count} nowe tematy"
@@ -796,20 +839,20 @@ pl_PL:
filtered_flagged_by: "Oflagowany przez"
unknown:
title:
- one: "Masz oczekujące recenzje z wyłączonej wtyczki:"
- few: "Masz oczekujące recenzje z wyłączonych wtyczek:"
- many: "Masz oczekujące recenzje z wyłączonych wtyczek:"
- other: "Masz oczekujące recenzje z wyłączonych wtyczek:"
+ one: "Masz elementy oczekujące na sprawdzenie w kolejce z wyłączonej wtyczki:"
+ few: "Masz elementy oczekujące na sprawdzenie w kolejce z wyłączonych wtyczek:"
+ many: "Masz elementy oczekujące na sprawdzenie w kolejce z wyłączonych wtyczek:"
+ other: "Masz elementy oczekujące na sprawdzenie w kolejce z wyłączonych wtyczek:"
instruction: "Nie można ich poprawnie wyświetlić, dopóki nie włączysz odpowiedniej wtyczki. Włącz wtyczkę i odśwież stronę. Alternatywnie możesz je zignorować. Dowiedz się więcej..."
reviewable_unknown_source: "%{reviewableType} (nieznana wtyczka)"
reviewable_known_source: "%{reviewableType} (z wtyczki '%{pluginName}')"
ignore_all: "Ignoruj wszystko"
enable_plugins: "Włącz wtyczki"
- delete_confirm: "Czy na pewno chcesz usunąć wszystkie recenzje utworzone przez wyłączone wtyczki?"
- ignore_success: "Wszystkie recenzje utworzone przez wyłączone wtyczki zostały usunięte."
+ delete_confirm: "Czy na pewno chcesz usunąć wszystkie elementy kolejki recenzji utworzone przez wyłączone wtyczki?"
+ ignore_success: "Wszystkie elementy kolejki recenzji utworzone przez wyłączone wtyczki zostały usunięte."
explain:
why: "wyjaśnij, dlaczego ten element znalazł się w kolejce"
- title: "Przeglądalna ocena"
+ title: "Punktacja elementów kolejki recenzji"
formula: "Formuła"
subtotal: "Suma częściowa"
total: "Łącznie"
@@ -823,10 +866,10 @@ pl_PL:
title: "Użytkownicy, których flagi były wcześniej uzgodnione, otrzymują bonus."
trust_level_bonus:
name: "Poziom zaufania"
- title: "Przedmioty, które można przeglądać, tworzone przez użytkowników o wyższym poziomie zaufania, mają wyższy wynik."
+ title: "Flagi utworzone przez użytkowników o wyższym poziomie zaufania mają wyższy wynik."
type_bonus:
name: "bonus typu"
- title: "Niektóre rodzaje przeglądalne mogą otrzymać premię od pracowników, aby nadać im wyższy priorytet."
+ title: "Niektórym typom flag personel może przypisać premię, aby nadać im wyższy priorytet."
revise_and_reject_post:
title: "Sprawdź"
reason: "Powód"
@@ -835,7 +878,7 @@ pl_PL:
custom_reason: "Podaj jasny opis przyczyny"
other_reason: "Inny..."
optional: "opcjonalnie"
- stale_help: "Wiadomość została już zweryfikowana przez %{username}."
+ stale_help: "Ten element został rozwiązany przez %{username}."
claim_help:
optional: "Możesz przejąć tę pozycję, aby uniemożliwić innym jego sprawdzenie."
required: "Musisz przejąć tę pozycję, zanim będziesz mógł/mogła je przejrzeć."
@@ -3222,6 +3265,7 @@ pl_PL:
upload_description: "tutaj wpisz opis przesłania"
olist_title: "Lista numerowana"
ulist_title: "Lista wypunktowana"
+ list_title: "Listy"
list_item: "Element listy"
toggle_direction: "Przełącz kierunek"
apply_wrap_title: "Zastosuj zawijanie"
@@ -3622,8 +3666,6 @@ pl_PL:
max_views:
placeholder: maksimum
aria_label: filtrować według maksymalnych wyświetleń
- additional_options:
- label: "Filtruj według liczby wpisów i wyświetleń tematu"
hamburger_menu: "Menu nawigacyjne"
new_item: "nowy"
go_back: "wróć"
@@ -3706,8 +3748,8 @@ pl_PL:
clear_all: "Wyczyść wszystko"
unlist_topics: "Zastrzeż tematy"
relist_topics: "Odśwież listę tematów"
- reset_bump_dates: "Zresetuj daty ważności"
- defer: "Oznacz jako nieprzeczytane"
+ reset_bump_dates: "Zresetuj datę podbicia"
+ defer: "Oznacz jako nieprzeczytany"
delete: "Usuń tematy"
delete_topics_count:
one: "Usuń temat"
@@ -3725,13 +3767,13 @@ pl_PL:
many: "Czy na pewno chcesz usunąć %{count} wpisów?"
other: "Czy na pewno chcesz usunąć %{count} wpisów?"
dismiss: "Wyczyść"
- dismiss_read: "Wyczyść nieprzeczytane"
+ dismiss_read: "Odrzuć wszystkie nieprzeczytane"
dismiss_read_with_selected:
- one: "Odrzuć %{count} nieprzeczytane"
+ one: "Odrzuć %{count} nieprzeczytany"
few: "Odrzuć %{count} nieprzeczytane"
many: "Odrzuć %{count} nieprzeczytanych"
other: "Odrzuć %{count} nieprzeczytanych"
- dismiss_button: "Wyczyść…"
+ dismiss_button: "Odrzuć…"
dismiss_button_with_selected:
one: "Odrzuć (%{count})…"
few: "Odrzuć (%{count})…"
@@ -4497,7 +4539,11 @@ pl_PL:
edit: "Edytuj"
delete: "Usuń"
add: "Dodaj nowe tłumaczenie"
- manage: "Zarządzaj tłumaczeniami (istniejące: %{count})"
+ manage:
+ one: "Zarządzaj tłumaczeniami (istniejące: %{count})"
+ few: "Zarządzaj tłumaczeniami (istniejące: %{count})"
+ many: "Zarządzaj tłumaczeniami (istniejące: %{count})"
+ other: "Zarządzaj tłumaczeniami (istniejące: %{count})"
view:
one: "Wyświetl %{count} przetłumaczone ustawienia regionalne"
few: "Wyświetl %{count} przetłumaczone ustawienia regionalne"
@@ -4769,11 +4815,15 @@ pl_PL:
delete: "Usuń"
add: "Dodaj wymaganą grupę tagów"
placeholder: "Wybierz grupę tagów…"
+ min_count: "Liczba tagów"
+ tag_group: "Grupa tagów"
topic_featured_link_allowed: "Zezwól na wybrane linki w tej kategorii"
delete: "Usuń kategorię"
create: "Nowa kategoria"
create_long: "Utwórz nową kategorię"
+ create_category: "Utwórz kategorię"
save: "Zapisz kategorię"
+ unsaved_changes: "Masz niezapisane zmiany"
slug: "Slug kategorii"
parent: "Kategoria nadrzędna"
slug_placeholder: "(opcjonalne) słowa-z-myślnikiem dla URLi"
@@ -5439,17 +5489,25 @@ pl_PL:
category_restricted: "Ten tag jest ograniczony do kategorii, do których nie masz uprawnień dostępu."
synonyms: "Synonimy"
synonyms_description: "W przypadku użycia następujących tagów zostaną one zastąpione przez %{base_tag_name}."
+ synonyms_inline: "Synonimy te zostaną zastąpione przez %{base_tag_name}:"
save: "Zapisz nazwę i opis tagu"
tag_groups_info:
one: 'Ten tag należy do grupy "%{tag_groups}”.'
few: "Ten tag należy do następujących grup: %{tag_groups}."
many: "Ten tag należy do następujących grup: %{tag_groups}."
other: "Ten tag należy do następujących grup: %{tag_groups}."
+ tag_groups_info_prefix:
+ one: "Ten tag należy do grupy "
+ few: "Te tagi należą do grupy: "
+ many: "Te tagi należą do grupy: "
+ other: "Te tagi należą do grupy: "
category_restrictions:
one: "Można go używać tylko w tej kategorii:"
few: "Można go używać tylko w tych kategoriach:"
many: "Można go używać tylko w tych kategoriach:"
other: "Można go używać tylko w tych kategoriach:"
+ restricted_to: "Ograniczone do"
+ no_synonyms: "Ten tag nie ma synonimów."
edit_synonyms: "Edytuj synonimy"
add_synonyms_label: "Dodaj synonimy:"
add_synonyms: "Dodaj"
@@ -5475,7 +5533,34 @@ pl_PL:
other: "Jego %{count} synonimów również zostanie usuniętych."
edit_tag: "Edytuj nazwę tagu i opis"
edit: "Edytuj ten tag"
- description: "Opis (maks. 1000 znaków)"
+ description: "Opis"
+ settings:
+ title: "Ustawienia"
+ edit_title: "Edytuj tag: %{name}"
+ edit_tag_prefix: "Edytuj tag:"
+ select_tag: "Wybierz tag do edycji"
+ general: "Ogólne"
+ localizations: "Języki"
+ back: "Wstecz"
+ name: "Nazwa"
+ slug: "Identyfikator tekstowy"
+ name_placeholder: "Nazwa tagu"
+ slug_placeholder: "Identyfikator tekstowy tagu (opcjonalny, generowany automatycznie z nazwy)"
+ saved: "Zapisane ustawienia tagów"
+ no_synonyms: "Dla tego tagu nie zdefiniowano synonimów."
+ add_synonym_placeholder: "Wyszukaj tagi, które chcesz dodać jako synonimy..."
+ synonyms_subtitle: "W przypadku użycia następujących tagów zostaną one zastąpione przez %{name}"
+ save: "Zapisz tag"
+ delete: "Usuń tag"
+ synonyms_hint: "W przypadku użycia powyższych tagów zostaną one zastąpione przez %{baseTagName}."
+ add_synonyms_confirm: "Każde miejsce, w którym obecnie używany jest kod %{synonymNames} , zostanie zmienione na kod %{tagName} . Czy na pewno chcesz wprowadzić tę zmianę?"
+ localization:
+ hint: "Dodaj lokalizacje, aby wyświetlać różne nazwy tagów użytkownikom w różnych językach."
+ locale: "Ustawienia regionalne"
+ name: "Nazwa"
+ description: "Opis"
+ add: "Dodaj lokalizację"
+ remove: "Usuń lokalizację"
sort_by: "Sortuj po:"
sort_by_count: "Liczba"
sort_by_name: "nazwa"
@@ -6025,7 +6110,7 @@ pl_PL:
admin_js:
type_to_filter: "Pisz, aby filtrować…"
settings: "Ustawienia"
- reset_filter: "Przywróć"
+ reset_filter: "Zresetuj filtr"
toggle_filters: "Przełącz filtry rozwijane"
admin:
title: "Administrator Discourse"
@@ -6039,9 +6124,16 @@ pl_PL:
never: "nigdy"
reports:
title: "Lista dostępnych zgłoszeń"
- meta_doc: "Raporty to potężne narzędzie, które pomoże Ci zrozumieć, co dzieje się w Twojej witrynie. Mogą pomóc Ci zidentyfikować trendy, zauważyć problemy i podejmować decyzje w oparciu o dane."
sidebar_title: "Zgłoszenia"
back: "Powrót do wszystkich raportów"
+ group_engagement: "Zaangażowanie"
+ group_traffic: "Ruch"
+ group_members: "Członkowie"
+ group_content: "Treść i zdrowie"
+ group_moderation: "Moderacja"
+ group_security: "Bezpieczeństwo"
+ group_other: "Inne"
+ legacy_warning: "To jest starszy raport. Wkrótce zostanie wycofany. Jeśli potrzebujesz pomocy w znalezieniu zamiennika, skontaktuj się z pomocą techniczną."
config_sections:
account:
title: "Konto"
@@ -6086,7 +6178,7 @@ pl_PL:
enabled_for_options:
no_one: "Nikt"
everyone: "Wszyscy"
- staff: "Wyłącznie dla zespołu"
+ staff: "Tylko %{staffGroupName}"
specific_groups: "Określone grupy"
specific_groups_with_group_names:
one: "grupa %{groupNames}"
@@ -6111,7 +6203,7 @@ pl_PL:
all: "Wszystkie"
enabled_all: "Wszystkie włączone stany"
enabled: "Włączona"
- enabled_for_staff: "Włączone dla personelu"
+ enabled_for_staff: "Włączone dla %{staffGroupName}"
enabled_for_specific_groups: "Włączone dla określonych grup"
disabled: "Wyłączone"
impact_type_all: "Wszystkie rodzaje uderzeń"
@@ -6201,7 +6293,7 @@ pl_PL:
help_text: "Zalecany rozmiar to 600 x 80 pikseli."
large_icon:
title: "Kwadratowa ikona"
- description: "Kwadratowa wersja obrazu logo jest wyświetlana u góry panelu administracyjnego i stanowi również logo aplikacji na ekranie głównym urządzenia mobilnego."
+ description: "Kwadratowa wersja obrazu logo znajduje się u góry witryny i jest jednocześnie logo aplikacji mobilnej."
help_text: "Zalecany rozmiar to 512 x 512 pikseli."
square_icon_dark:
required: "Użyć innej ikony kwadratowej dla trybu ciemnego?"
@@ -6391,7 +6483,7 @@ pl_PL:
header_description: "Raporty to potężne narzędzie, które pomoże Ci zrozumieć, co dzieje się w Twojej witrynie. Mogą pomóc Ci zidentyfikować trendy, zauważyć problemy i podejmować decyzje w oparciu o dane."
sub_pages:
settings:
- title: "Ustawienia panelu"
+ title: "Ustawienia"
badges:
title: "Odznaki"
header_description: "Odznaki nagradzają użytkowników za ich aktywność, wkład i osiągnięcia, aby rozpoznawać, potwierdzać i zachęcać do pozytywnych zachowań i zaangażowania w społeczności"
@@ -6549,32 +6641,6 @@ pl_PL:
few: '%{count} wyniki dla "%{filter}"'
many: '%{count} wyników dla "%{filter}"'
other: '%{count} wyników dla "%{filter}"'
- result_types:
- page:
- one: "Strona"
- few: "Strony"
- many: "Stron"
- other: "Stron"
- report:
- one: "Zgłoszenie"
- few: "Zgłoszenia"
- many: "Zgłoszeń"
- other: "Zgłoszeń"
- setting:
- one: "Ustawienie"
- few: "Ustawienia"
- many: "Ustawień"
- other: "Ustawień"
- theme:
- one: "Motyw"
- few: "Motywy"
- many: "Motywy"
- other: "Motywy"
- component:
- one: "Komponent"
- few: "Komponenty"
- many: "Komponenty"
- other: "Komponenty"
new_features:
title: "Co nowego?"
check_for_updates: "Sprawdź aktualizacje"
@@ -6598,25 +6664,8 @@ pl_PL:
title: "Co nowego?"
subtitle: "Cały czas udostępniamy nowe funkcje i ulepszenia. Ta strona obejmuje najważniejsze z nich, ale możesz kliknąć 'Dowiedz się więcej', aby zobaczyć obszerne informacje o wersji."
no_new_features_found: "Brak elementów w kanale lub wybrany filtr nie zwrócił żadnych wyników. Poprzednie ogłoszenia o nowych funkcjach można zobaczyć w społeczności Discourse Meta."
- no_new_features_error: "Wystąpił błąd podczas ładowania kanału. Poprzednie ogłoszenia o nowych funkcjach można zobaczyć w społeczności Discourse Meta ."
+ no_new_features_error: "Wystąpił błąd podczas ładowania kanału. Poprzednie ogłoszenia o nowych funkcjach można zobaczyć w społeczności Discourse Meta."
learn_more: "Dowiedz się więcej..."
- experimental: "Eksperymentalne"
- only_experiments: "Pokaż tylko funkcje eksperymentalne"
- experiment_enabled: "Włączono funkcję eksperymentalną."
- experiment_disabled: "Wyłączono funkcję eksperymentalną."
- feature_enabled: "Włączyłeś tę funkcję."
- feature_disabled: "Wyłączyłeś tę funkcję."
- toggled_too_fast: "Przełączyłeś przełącznik zbyt szybko. Odczekaj kilka sekund przed ponowną próbą."
- experiment_tooltip:
- title_disabled: "Wypróbuj tę eksperymentalną funkcję"
- title_enabled: "Wyłącz funkcję eksperymentalną"
- content_disabled: "Wypróbuj naszą najnowszą, rozwijaną funkcję! Jest jeszcze w fazie eksperymentalnej, więc możemy ją usunąć w dowolnym momencie. Możesz zrezygnować, kiedy tylko chcesz.%{site_name}, %{preferred_display_name}"
- placeholder: "欢迎, %{preferred_display_name}!"
+ label: "新成员的标题"
+ description: "可用变量:%{site_name}、%{preferred_display_name}"
+ placeholder: "欢迎,%{preferred_display_name}!"
header_logged_in:
label: "已登录成员的标题"
- description: "可用变量: %{site_name}, %{preferred_display_name}"
+ description: "可用变量:%{site_name}、%{preferred_display_name}"
placeholder: "欢迎回来,%{preferred_display_name}!"
header_anonymous:
- label: "匿名访客标题"
- description: "可用变量: %{site_name}"
+ label: "匿名访客的标题"
+ description: "可用变量:%{site_name}"
placeholder: "欢迎来到 %{site_name}!"
subheader_logged_in:
- label: "已登录成员的子标题"
+ label: "已登录成员的副标题"
description: "显示在已登录用户标题下方的辅助文本。"
- placeholder: "看看社区里有哪些新内容"
+ placeholder: "查看社区中的最新动态"
subheader_anonymous:
label: "匿名访客的副标题"
description: "显示在匿名访问者标题下方的辅助文本。"
@@ -5479,7 +5565,7 @@ zh_CN:
search_placeholder:
label: "搜索占位符"
description: "欢迎横幅中搜索框的占位符文本。"
- placeholder: "搜索主题……"
+ placeholder: "搜索话题…"
navigation:
title: "导航"
header_description: "配置网站的导航链接与菜单项。这包括主导航菜单、首页顶部快速链接以及管理边栏的位置和行为"
@@ -5541,7 +5627,7 @@ zh_CN:
header_description: "报告是帮助您了解站点上所发生事情的强大工具。它们可以帮助您了解趋势、发现问题并根据数据做出决策。"
sub_pages:
settings:
- title: "信息中心设置"
+ title: "设置"
badges:
title: "徽章"
header_description: "徽章奖励用户的活动、贡献和成就,以表彰、认可和鼓励用户在社区中的积极行为和参与。"
@@ -5687,7 +5773,7 @@ zh_CN:
help: "您当前使用的主题为 %{currentTheme}。请转到主题配置页面更改主题站点设置,或点击下表中链接的主题,编辑其设置。"
filter: "按设置名称、描述或主题名称筛选主题站点设置…"
filter_no_results: "没有符合您的筛选条件的主题站点设置"
- site_setting_warning: '此设置由您网站的默认主题接管(%{defaultThemeName})。您可以在 主题编辑页面 进行修改。'
+ site_setting_warning: '此设置由您的站点的默认主题 (%{defaultThemeName}) 管理。您可以在主题编辑页面中进行修改。'
search:
modal_title: "在管理页面中搜索所有内容"
title: "搜索"
@@ -5696,17 +5782,6 @@ zh_CN:
no_results: '我们找不到任何与“%{filter}”匹配的内容。'
result_count:
other: '“%{filter}”有 %{count} 个结果'
- result_types:
- page:
- other: "页面"
- report:
- other: "报告"
- setting:
- other: "设置"
- theme:
- other: "主题"
- component:
- other: "组件"
new_features:
title: "最新变化"
check_for_updates: "检查更新"
@@ -5729,25 +5804,9 @@ zh_CN:
new_features:
title: "最新变化"
subtitle: "我们一直在发布新功能和改进。本页涵盖了重点内容,但您也可以点击“了解详情”查看详细的版本说明。"
+ no_new_features_found: "新闻源中没有项目,或者您所选的过滤器没有返回结果。 您可以在 Discourse Meta 社区 上看到以前的新功能公告。"
no_new_features_error: "加载最新功能列表时出现错误。您可以在Discourse Meta 社区查看以前的新功能公告。"
learn_more: "了解详情…"
- experimental: "实验性"
- only_experiments: "只显示实验性功能"
- experiment_enabled: "您已启用实验性功能。"
- experiment_disabled: "您已禁用实验性功能。"
- feature_enabled: "您已启用该功能。"
- feature_disabled: "您已禁用该功能。"
- toggled_too_fast: "您切换开关的频率过快。请稍等几秒钟后再试。"
- experiment_tooltip:
- title_disabled: "试用这个实验性功能"
- title_enabled: "关闭实验性功能"
- content_disabled: "试试我们正在开发的最新功能吧!它仍处于试验阶段,因此我们可能随时将其移除。您可以随时选择退出。DISCOURSE_SMTP_ENABLE_START_TLS=falseمن بيئة النظام لديك. لمزيد من التفاصيل، يرجى الرجوع إلى هذا الموضوع." back_from_logster_text: "العودة إلى الموقع" site_settings: allow_bulk_invite: "السماح بالدعوات الجماعية عن طريق تحميل ملف CSV" @@ -1950,6 +1971,7 @@ ar: allow_duplicate_topic_titles_category: "اسمح بالموضوعات ذات العناوين المتطابقة والمتكررة إذا كانت الفئة مختلفة. يجب أن تكون القيمة allow_duplicate_topic_titles مضبوطة على False." unique_posts_mins: "عدد الدقائق قبل أن يتمكن العضو من إنشاء منشور يتضمَّن المحتوى نفسه مجددًا" educate_until_posts: "إظهار اللوحة التعليمية المنبثقة للمستخدمين الجدُد عندما يبدأ العضو في كتابة منشوراته الأولى (n)" + title: "اسم هذا الموقع. يظهر لجميع الزوار، بما فيهم المستخدمون المجهولون. يُرجى العلم أن تغيير هذا الاسم قد يُرسل إشعارًا لمستخدمي تطبيق الويب التقدمي (PWA) يطلب منهم تحديث التطبيق أو إلغاء تثبيته." site_description: "صِف هذا الموقع بجملة واحدة. مرئي لجميع الزوار، بما في ذلك المستخدمون المجهولون." short_site_description: "وصف قصير من بضع كلمات. مرئي لجميع الزوار، بما في ذلك المستخدمون المجهولون." contact_email: "عنوان البريد الإلكتروني لجهة الاتصال الرئيسية المسؤولة عن هذا الموقع. يتم استخدامه للإشعارات المهمة ويتم عرضه أيضًا على صفحة /about. مرئي للمستخدمين المجهولين على المواقع العامة." @@ -1957,6 +1979,7 @@ ar: crawl_images: "استعادة الصور من عناوين URL البعيدة لإدراج الأبعاد الصحيحة للطول والعرض" download_remote_images_to_local: "يمكنك تحويل الصور البعيدة (المرتبطة برابط ساخن) عن طريق تنزيلها؛ يحفظ ذلك المحتوى حتى إذا تمت إزالة الصور من الموقع البعيد في المستقبل." download_remote_images_threshold: "الحد الأدنى من مساحة القرص اللازمة لتنزيل الصور البعيدة محليًا (بالنسبة المئوية)" + disabled_image_download_domains: "لن يتم تنزيل الصور البعيدة من هذه النطاقات أبدًا." block_hotlinked_media: "امنع المستخدمين من وضع وسائط بعيدة (مرتبطة برابط ساخن) في منشوراتهم. سيتم استبدال الوسائط البعيدة التي لا يتم تنزيلها عبر 'download_remote_images_to_local' برابط لعنصر نائب." block_hotlinked_media_exceptions: "قائمة بعناوين URL الأساسية المستثناة من إعداد block_hotlinked_media. قم بتضمين البروتوكول (مثل https://example.com)." editing_grace_period: "لن يؤدي التعديل إلى إنشاء نسخة جديدة في سجل المنشورات لمدة (n) ثانية بعد النشر." @@ -1995,6 +2018,7 @@ ar: logo: "صورة الشعار في الجزء العلوي الأيمن من موقعك. استخدم صورة مستطيلة عريضة بارتفاع 120 ونسبة عرض إلى ارتفاع أكبر من 3:1. وإذا تركتها فارغة، فسيتم عرض نص عنوان الموقع." logo_small: "صورة الشعار الصغيرة في الجزء العلوي الأيمن من موقعك، وتظهر عند التمرير لأسفل. استخدم صورة مربعة بمقاس 120 × 120. وإذا تركتها فارغة، فسيتم عرض صورة رمزية لمنزل." digest_logo: "الشعار البديل المُستخدَم أعلى ملخص البريد الإلكتروني لموقعك. استخدم صورة مستطيلية عريضة. لا تستخدم صورة SVG. وإذا تركتها فارغة، فسيتم استخدام الصورة من إعداد `logo`." + mobile_logo: "الشعار المستخدم في النسخة المحمولة من موقعك. نوصي باستخدام أيقونة مربعة لتجنب ازدحام رأس الصفحة، لكن يمكنك استخدام صورة مستطيلة عريضة بارتفاع 120 بكسل ونسبة عرض إلى ارتفاع أكبر من 3:1. إذا تُرك هذا الحقل فارغًا، سيتم استخدام الصورة المحددة في إعداد الشعار." logo_dark: "بديل الألوان الداكنة لإعداد الموقع `logo`" logo_small_dark: "بديل الألوان الداكنة لإعداد الموقع `logo small`" mobile_logo_dark: "بديل الألوان الداكنة لإعداد الموقع `mobile logo`" @@ -2005,8 +2029,11 @@ ar: opengraph_image: "صورة opengraph افتراضية، يتم استخدامها عندما لا تحتوي الصفحة على صورة أخرى مناسبة. وإذا تركتها فارغة، فسيتم استخدام large_icon." x_summary_large_image: "بطاقة Twitter من نوع \"summary large image\" (يجب أن تكون على الأقل بعرض 280 بكسل وارتفاع 150 بكسل، ولا يمكن أن تكون بصيغة .svg). إذا تُرك هذا الحقل فارغًا، يتم إنشاء البيانات الوصفية التقليدية باستخدام opengraph_image بشرط ألا تكون أيضًا بصيغة .svg" notification_email: "عنوان البريد الإلكتروني المُستخدَم في حقل \"من:\" عند إرسال جميع رسائل النظام الأساسية. يجب تعيين سجلات SPF وDKIM وreverse PTR للنطاق المحدَّد هنا بشكلٍٍ صحيح لتصل الرسالة الإلكترونية." + email_custom_headers: "قائمة برؤوس البريد الإلكتروني المخصصة" email_subject: "صيغة الموضوع القابلة للتخصيص للبريد الإلكتروني القياسي. راجع https://meta.discourse.org/t/customizing-specific-system-email-templates/88323" detailed_404: "يوفِّر مزيدًا من التفاصيل للمستخدمين بشأن سبب عدم تمكُّنهم من الوصول إلى موضوع معيَّن. ملاحظة: هذا الإعداد أقل أمانًا لأن المستخدمين سيعرفون إذا كان عنوان URL مرتبطًا بموضوع صالح." + enforce_second_factor: "مطالبة المستخدمين بتفعيل المصادقة الثنائية (2FA) قبل أن يتمكنوا من الوصول إلى واجهة مستخدم Discourse. لا يؤثر هذا الإعداد على المصادقة عبر واجهة برمجة التطبيقات (API) أو مقدمي المصادقة من نوع \"DiscourseConnect\". إذا تم تفعيل الخيار enforce_second_factor_on_external_auth، فلن يتمكن المستخدمون من تسجيل الدخول باستخدام مقدمي المصادقة الخارجيين بعد إعداد المصادقة الثنائية." + enforce_second_factor_on_external_auth: "مطالبة المستخدمين باستخدام المصادقة الثنائية (2FA) في جميع الأوقات. عند تفعيل هذا الإعداد، سيتم منع المستخدمين من تسجيل الدخول عبر طرق المصادقة الخارجية مثل تسجيل الدخول بحساب تواصل اجتماعي إذا تم تفعيل المصادقة الثنائية لديهم. عند تعطيله، سيحتاج المستخدمون فقط لتأكيد المصادقة الثنائية عند تسجيل الدخول باستخدام اسم المستخدم وكلمة المرور. راجع أيضًا إعداد enforce_second_factor." force_https: "فرض استخدام HTTPS فقط على الموقع. تحذير: لا تقم بتفعيل هذا الإعداد إلا بعد التأكد من أن HTTPS مُعد بالكامل ويعمل فى جميع أنحاء الموقع! هل تحقَّقت من شبكة توصيل المحتوى (CDN)، وعمليات تسجيل الدخول على جميع شبكات التواصل الاجتماعى، وأي شعارات أو تبعيات خارجية للتأكد من أنها جميعًا متوافقه مع HTTPS؟" summary_score_threshold: "الحد الأدنى من النقاط المطلوبة لتضمين منشور في \"تلخيص هذا الموضوع\"" summary_posts_required: "الحد الأدنى من عدد المنشورات في الموضوع قبل تفعيل \"تلخيص هذا الموضوع\". سيتم تطبيق التغييرات على هذا الإعداد بأثر رجعي في غضون أسبوع." @@ -2064,7 +2091,10 @@ ar: ga_universal_domain_name: "اسم نطاق Google Universal Analytics، على سبيل المثال: eg: mysite.com؛ راجع https://google.com/analytics" ga_universal_auto_link_domains: "تفعيل تتبُّع Google Universal Analytics عبر النطاقات. ستتم إضافة معرِّف العميل إلى الروابط الصادرة إلى هذه النطاقات. راجع دليل التتبُّع عبر النطاقات من Google." gtm_container_id: "معرِّف حاوية Google Tag Manager. على سبيل المثال: GTM-ABCD12E.
لقد أعدنا إرسال الرسالة الإلكترونية للتنشيط إلى %{email}"
+ discourse_id:
+ help: "جارٍ إعداد معرف Discourse لحسابك."
+ no_allowed_emails: "لا توجد عناوين بريد إلكتروني مسموح بها مُكوَّنة في DISCOURSE_DEVELOPER_EMAILS. لا يمكن متابعة إعداد الموقع."
+ global_notice: "لم يتم تسجيل دخول أي مسؤول بعد. يرجى تسجيل الدخول باستخدام حساب Discourse ID يحتوي على بريد إلكتروني يطابق متغير البيئة DISCOURSE_DEVELOPER_EMAILS لإكمال عملية التثبيت."
safe_mode:
title: "الدخول إلى الوضع الآمن"
description: "يسمح لك الوضع الآمن باختبار موقعك دون تحميل السمات أو تخصيصات المكوِّنات الإضافية من جانب العميل. تظل تخصيصات المكوِّنات الإضافية من جانب الخادم مفعَّلة."
@@ -5334,15 +5502,18 @@ ar:
enter: "الدخول إلى الوضع الآمن"
must_select: "يجب عليك تحديد خيار واحد على الأقل للدخول إلى الوضع الآمن."
dev_mode:
- enter: "مفتاح Enter"
+ title: "وضع المطور"
+ enable_rack_mini_profiler: "تفعيل Rack Mini Profiler بحيث يظل فعالًا عبر تغييرات الجلسة لمدة ساعة واحدة."
wizard:
title: "إعداد Discourse"
step:
setup:
title: "خطوات البدء"
+ description: "هيا نبدأ بإعداد العناصر الأساسية لمجتمعك. يمكنك تغيير هذه الإعدادات في أي وقت لاحقًا."
fields:
title:
label: "اسم المجتمع"
+ placeholder: "ملتقى جين"
default_locale:
label: "اللغة"
login_required:
@@ -5390,9 +5561,20 @@ ar:
review_by: "روجع من قِبل"
pr_summary: "أدت %{commits} من عمليات التضمين إلى تغيير %{changed_files} من الملفات بإجراء %{additions} من الإضافات و%{deletions} من الحذوفات"
no_description: "المساهمة في تطوير %{repo} من خلال إنشاء حساب على GitHub."
+ pr_title:
+ default: "طلب سحب"
+ draft: "طلب سحب مسودة"
+ open: "طلب سحب مفتوح"
+ approved: "طلب سحب مُوافق عليه"
+ changes_requested: "التغييرات مطلوبة"
+ merged: "طلب سحب مُدمج"
+ closed: "طلب سحب مغلق"
status_date:
open: "مفتوحة"
+ draft: "تم إنشاؤه كمسودة"
approved: "تمت الموافقة عليها"
+ changes_requested: "التغييرات مطلوبة"
+ merged: "تم دمجه"
closed: "مغلقة"
discourse_push_notifications:
popup:
@@ -5408,9 +5590,12 @@ ar:
confirm_body: "تم بنجاح! تم تفعيل الإشعارات."
custom: "إشعار من %{username} على %{site_title}"
staff_action_logs:
+ redacted: "[المحتوى غير مرئي]"
json_too_long: "القيم غير مسجَّلة لأنها تتجاوز حدود طول العمود"
not_found: "غير موجود"
unknown: "غير معروف"
+ site_setting:
+ update_existing_users: "هل تريد تحديث المستخدمين الحاليين؟ %{value}"
user_merged: "تم دمج %{username} في هذا الحساب"
user_delete_self: "تم الحذف بواسطتي من %{url}"
webhook_deactivation_reason: "تم إلغاء تنشيط خطاف الويب الخاص بك تلقائيًا. لقد تلقينا عدة استجابات لفشل حالة HTTP \"%{status}\"."
@@ -5439,9 +5624,14 @@ ar:
auto_deleted_hidden_posts: "تمت إزالة المنشورات المخفية تلقائيًا"
seed_data_topic_updated: "تم تحديث موضوع بيانات التهيئة الأولية"
seed_data_topic_deleted: "تم حذف موضوع بيانات التهيئة الأولية"
+ upcoming_changes:
+ log_manually_toggled: "تم التبديل يدويًا بواسطة المستخدم"
+ log_promoted: >
+ وصل هذا التغيير القادم إلى حالة '%{change_status}'، لذلك تم تفعيله تلقائيًا على موقعك. راجع صفحة التغييرات القادمة لمزيد من التفاصيل.
reviewables:
already_handled: "شكرًا، لكننا راجعنا هذا المنشور بالفعل وقررنا أنه لا يلزم الإبلاغ عنه مرة أخرى."
already_handled_and_user_not_exist: "شكرًا، لكن شخصًا ما راجعه بالفعل ولم يعُد هذا المستخدم موجودًا."
+ post_restored_by_author: "تم استعادة المنشور بواسطة المؤلف"
priorities:
low: "منخفضة"
medium: "متوسطة"
@@ -5511,14 +5701,19 @@ ar:
description: "الموافقة على البلاغ وإخفاء هذا المنشور + إرسال رسالة إلى المستخدم تلقائيًا تحثه فيها على تعديله."
complete: "تم إخفاء المنشور، وتم إشعار المستخدم."
agree_and_edit:
+ title: "تعديل المنشور"
description: "الموافقة مع البلاغ وفتح نافذة أداة الإنشاء لتعديل المنشور."
complete: "تم التعرف على البلاغ، يمكنك الآن تعديل المنشور."
delete:
title: "حذف"
complete: "تم حذف المنشور."
delete_and_ignore:
+ title: "حذف المنشور وتجاهل البلاغ"
+ description: "احذف المنشور وتجاهل البلاغ عن طريق إزالته من قائمة الانتظار؛ وإذا كان هذا المنشور الأول، فاحذف الموضوع أيضًا. "
complete: "تم حذف المنشور."
delete_and_ignore_replies:
+ title: "حذف المنشور والردود، وتجاهل البلاغ"
+ description: "احذف المنشور وكافة الردود المرتبطة به، ثم تجاهل البلاغ عن طريق إزالته من قائمة الانتظار؛ وإذا كان هذا المنشور الأول، فاحذف الموضوع أيضًا"
confirm: "هل تريد بالتأكيد حذف الردود على المنشور أيضًا؟"
complete: "تم حذف المنشور وردوده."
delete_and_agree:
@@ -5532,19 +5727,23 @@ ar:
complete: "تم حذف المنشور وردوده."
disagree_and_restore:
title: "استعادة المنشور"
+ description: "رفض البلاغ واستعادة المنشور"
complete: "تم استعادة المنشور."
disagree_bundle:
title: "لا"
disagree:
title: "إبقاء المنشور"
+ description: "رفض البلاغ"
complete: "تم تجاهل البلاغ."
discard_post:
title: "تجاهل المنشور"
complete: "تم تجاهل المنشور."
revise_and_reject_post:
+ title: "طلب مراجعة.."
complete: "تم رفض المنشور في انتظار المراجعة."
ignore:
title: "تجاهل"
+ description: "إزالته من قائمة الانتظار دون اتخاذ أي إجراء."
complete: "تم تجاهل البلاغ."
ignore_and_do_nothing:
title: "عدم اتخاذ أي إجراء"
@@ -5572,6 +5771,7 @@ ar:
title: "لا"
delete:
title: "حذف المستخدم"
+ description: "حذف المستخدم دون حظره"
complete: "تم حذف المستخدم."
block:
title: "الحذف وحظر المستخدم"
@@ -5581,6 +5781,7 @@ ar:
title: "نعم"
not_spam:
title: "لا"
+ description: "ليس بريدًا عشوائيًا، وافق على المستخدم"
reject:
title: "رفض"
bundle_title: "رفض…"
@@ -5593,9 +5794,13 @@ ar:
reject_and_delete:
title: "الرفض وحذف المنشور"
complete: "تم رفض المنشور وحذفه."
+ reject_and_delete_standalone:
+ title: "لا، احذف المنشور"
reject_and_keep_deleted:
title: "إبقاء المنشور محذوفًا"
complete: "تم رفض المنشور والإبقاء على حذفه."
+ reject_and_keep_deleted_standalone:
+ title: "لا، احتفظ بالمنشور محذوفًا"
scrub:
title: تنقية السجل
approve_and_restore:
@@ -5604,31 +5809,52 @@ ar:
approve_and_unhide:
title: "نعم"
complete: "تمت الموافقة على المنشور وإظهاره"
- no_action_post:
- title: "التي لم يتم اتخاذ إجراء بشأنها"
+ post_actions:
+ bundle_title: "ماذا تريد أن تفعل بالمنشور؟"
delete_post:
title: "حذف المنشور"
+ description: "حذف هذا المنشور"
complete: "تم حذف المنشور"
hide_post:
title: "إخفاء المنشور"
+ description: "إخفاء هذا المنشور عن العامة"
+ complete: "تم إخفاء المنشور"
+ unhide_post:
+ title: "إظهار المنشور"
+ description: "اجعل هذا المنشور مرئيًا لجميع المستخدمين"
+ complete: "تم إظهار المنشور"
restore_post:
title: "استعادة المنشور"
- complete: "تم استعادة المنشور"
- no_action_user:
- title: "التي لم يتم اتخاذ إجراء بشأنها"
+ description: "استعادة هذا المنشور المحذوف"
+ complete: "تمت استعادة المنشور"
+ edit_post:
+ title: "تعديل المنشور"
+ description: "تعديل محتوى هذا المنشور"
+ complete: "تم تعديل المنشور"
+ user_actions:
+ bundle_title: "ماذا تريد أن تفعل بهذا المستخدم؟"
silence_user:
title: "كتم المستخدم"
+ description: "منع المستخدم من النشر"
complete: "تم كتم صوت المستخدم"
+ reason: "تم كتم المستخدم عبر قائمة انتظار المراجعة"
suspend_user:
title: "تعليق المستخدم"
+ description: "تعليق حساب المستخدم"
complete: "تم تعليق المستخدم"
+ reason: "تم تعليق حساب المستخدم عبر قائمة انتظار المراجعة"
delete_user:
title: "حذف المستخدم"
+ description: "احذف هذا المستخدم من المنتدى"
complete: "تم حذف المستخدم"
reason: "تم الحذف من خلال قائمة انتظار المراجعة"
delete_and_block_user:
+ title: "حذف وحظر"
+ description: "احذف المستخدم واحظر عنوان IP/ البريد الإلكتروني"
complete: "تم حذف المستخدم وحظره"
delete_user_block:
+ title: "حذف وحظر"
+ description: "احذف المستخدم واحظر عنوان IP/ البريد الإلكتروني"
complete: "تم حذف المستخدم وحظره"
email_style:
html_missing_placeholder: "يجب أن يشتمل قالب html على %{placeholder}"
@@ -5677,6 +5903,11 @@ ar:
reserved_id: "يحتوي على كلمة مفتاحية محجوزة كمعرف: %{id}"
unsafe_description: "يحتوي على وصف HTML غير آمن"
invalid_tag_group: "مجموعة الوسوم غير صالحة: %{tag_group_name}"
+ discourse_id:
+ already_registered: "هذا الموقع مسجل بالفعل في معرّف Discourse"
+ errors:
+ not_configured: "لم يتم إعداد معرّف Discourse. يرجى تفعيل معرّف Discourse أولاً."
+ regenerate_failed: "فشل في إعادة إنشاء بيانات الاعتماد. يرجى المحاولة مرة أخرى لاحقًا."
activemodel:
errors:
<<: *errors
diff --git a/config/locales/server.be.yml b/config/locales/server.be.yml
index 6da3b14919946..2f2fac28862df 100644
--- a/config/locales/server.be.yml
+++ b/config/locales/server.be.yml
@@ -956,7 +956,6 @@ be:
blocked_ip_blocks: "Спіс прыватных IP-блокаў, якія ніколі не павінны сканіравацца дыскурсе"
allowed_internal_hosts: "Спіс ўнутраных хастоў, дыскурс можа бяспечна паўзці для oneboxing і іншых мэтаў"
slow_down_crawler_rate: "Калі slow_down_crawler_user_agents паказаны гэтая стаўка будзе прымяняцца да ўсіх сканэра (колькасць секунд затрымкі паміж запытамі)"
- content_security_policy_collect_reports: "Ўключыць CSP збор справаздач парушэнні ў"
invalidate_inactive_admin_email_after_days: "Адміністратар рахункаў, якія не наведвалі сайт у гэтым колькасць дзён трэба будзе паўторна праверыць іх адрасы электроннай пошты перад уваходам у сістэму. Усталюйце 0, каб адключыць."
share_links: "Вызначце, якія элементы адлюстроўваюцца ў дыялогу акцый, і ў якім парадку."
site_contact_username: "Сапраўднае імя карыстальніка персанал для адпраўкі ўсіх аўтаматычных паведамленняў з. Калі пакінуць пустым, будзе выкарыстоўвацца па змаўчанні сістэмы уліковы запіс."
@@ -1224,8 +1223,6 @@ be:
staged_users_disabled: "Вы павінны спачатку ўключыць «паставілі карыстальнік» перад уключэннем гэтага параметру."
reply_by_email_disabled: "Вы павінны спачатку ўключыць «адказ па электроннай пошце», перад тым як уключыць гэтую наладу."
enable_local_logins_disabled: "Вы павінны спачатку ўключыць «каб мясцовыя лагіны» перад уключэннем гэтага параметру."
- min_username_length_range: "Вы не можаце ўсталяваць мінімум вышэй максімуму."
- max_username_length_range: "Вы не можаце ўсталяваць максімум ніжэй мінімуму."
invalid_hex_value: "Значэння колеру павінны быць 6-значныя шаснаццаткавыя коды."
allowed_unicode_usernames:
leading_trailing_slash: "Рэгулярны выраз не павінна пачынацца і заканчвацца касой рысай."
@@ -2333,10 +2330,6 @@ be:
title: "Так"
approve_and_unhide:
title: "Так"
- no_action_post:
- title: "Ніякіх дзеянняў"
- no_action_user:
- title: "Ніякіх дзеянняў"
delete_user:
reason: "Выдаляецца з дапамогай чарзе на разгляд"
fallback_username: "карыстальнік"
diff --git a/config/locales/server.bg.yml b/config/locales/server.bg.yml
index 94a23c9149487..ecdfd60909360 100644
--- a/config/locales/server.bg.yml
+++ b/config/locales/server.bg.yml
@@ -865,6 +865,7 @@ bg:
strip_images_from_short_emails: "Премахни от имейлите по-малките от 2800 байта изображения"
sendgrid_verification_key: "Ключ за проверка на Sendgrid, използван за проверка на съобщенията на Webhook."
mailjet_webhook_token: "Токен, използван за проверка на полезния товар на webhook. Той трябва да бъде предаден като параметър на заявката \"t\" на webhook, например: https://example.com/webhook/mailjet?t=supersecret"
+ mailpace_webhook_token: "Токен, използван за проверка на полезния товар на webhook. Той трябва да бъде предаден като параметър на заявката \"t\" на webhook, например: https://example.com/webhook/mailpace?t=supersecret"
mandrill_authentication_key: "Ключ за удостоверение Mandrill, който се използва за проверка на webhook съобщения"
postmark_webhook_token: "Токен, използван за проверка на полезния товар на webhook. Той трябва да бъде предаден като параметър на заявката \"t\" на webhook, например: https://example.com/webhook/postmark?t=supersecret"
sparkpost_webhook_token: "Токен, използван за проверка на полезния товар на webhook. Той трябва да бъде предаден като параметър на заявката \"t\" на webhook, например: https://example.com/webhook/sparkpost?t=supersecret"
@@ -1572,8 +1573,6 @@ bg:
description: "Безопасният режим ви позволява да тествате сайта си, без да зареждате теми или персонализации на плъгини от страна на клиента. Персонализирането на плъгини от страна на сървъра остава активирано."
no_unofficial_plugins: "Деактивирайте неофициалните персонализации на приставки от страна на клиента"
no_plugins: "Деактивирайте всички персонализации на приставки от страна на клиента"
- dev_mode:
- enter: "Въведете"
wizard:
step:
setup:
diff --git a/config/locales/server.bs_BA.yml b/config/locales/server.bs_BA.yml
index 285cb88e96c8e..4048b5fc722d3 100644
--- a/config/locales/server.bs_BA.yml
+++ b/config/locales/server.bs_BA.yml
@@ -1006,8 +1006,6 @@ bs_BA:
button: "Registriraj"
resend_email:
title: "Pošalji ponovo email aktivacije"
- dev_mode:
- enter: "Naprijed"
wizard:
step:
setup:
diff --git a/config/locales/server.ca.yml b/config/locales/server.ca.yml
index d1006c64b1b9b..4c32c5871bf16 100644
--- a/config/locales/server.ca.yml
+++ b/config/locales/server.ca.yml
@@ -1195,7 +1195,6 @@ ca:
allowed_internal_hosts: "Llista d'amfitrions interns que Discourse pot rastrejar de manera segura per a onebox i altres finalitats."
allowed_crawler_user_agents: "Agents d'usuari dels rastrejadors web als quals es permet accedir al lloc web. ATENCIÓ! ESTABLIR AIXÒ IMPEDIRÀ ACTUAR A TOTS ELS RASTREJADORS NO LLISTATS AQUÍ!"
slow_down_crawler_rate: "Si s'especifica slow_down_crawler_user_agents, aquesta ràtio s'aplicarà a tots els rastrejadors (nombre de segons de retard entre les sol·licituds)."
- content_security_policy_collect_reports: "Habilita la recol·lecció de reports de violació de CSP en /csp_reports"
invalidate_inactive_admin_email_after_days: "Els comptes d'administrador que no hagin visitat el lloc web en aquest nombre de dies hauran de tornar a validar la seva adreça de correu abans d'iniciar la sessió. 0 per a desactivar-ho."
share_links: "Determina quins elements apareixen en el diàleg de compartir i en qui ordre."
site_contact_username: "Nom d'usuari vàlid de l'equip responsable des del qual s'envien tots els missatges automàtics. Si es deixa buit, es farà servir el compte per defecte del sistema."
@@ -1371,7 +1370,6 @@ ca:
alternative_reply_by_email_addresses: "Llista de plantilles alternatives per a les adreces de resposta per correu. Per exemple: %%{reply_key}@reply.example.com|replies+%%{reply_key}@example.com"
incoming_email_prefer_html: "Utilitza HTML en comptes de text per al correu electrònic entrant."
strip_incoming_email_lines: "Elimina els espais en blanc al principi i al final de cada línia de correu electrònic entrant."
- disable_emails: "Evita que Discourse enviï cap mena de correu electrònic. Seleccioneu \"sí\" per a inhabilitar els correus per a tots els usuaris. Seleccioneu \"no equip responsable\" per a inhabilitar els correus sols per a usuaris fora de l'equip responsable."
strip_images_from_short_emails: "Elimina imatges de correus amb una mida inferior a 2800 bytes"
display_name_on_email_from: "Mostra noms complets en els camps de remitent dels correus"
unsubscribe_via_email: "Permet als usuaris cancel·lar la subscripció enviant un correu amb 'unsubscribe' en el tema o en el cos del missatge."
@@ -1542,10 +1540,6 @@ ca:
staged_users_disabled: "Cal activar 'usuaris ficticis' abans d'activar aquest paràmetre."
reply_by_email_disabled: "Cal habilitar primer 'resposta per correu' abans d'habilitar aquesta opció."
enable_local_logins_disabled: "Primer cal habilitar \"habilita els inicis de sessió locals\" abans d'habilitar aquesta opció."
- min_username_length_exists: "No podeu establir la longitud mínima del nom d'usuari per damunt del nom d'usuari més curt (%{username})."
- min_username_length_range: "No podeu definir el mínim per damunt del màxim."
- max_username_length_exists: "No podeu establir la longitud màxima del nom d'usuari per sota del nom d'usuari més llarg (%{username})."
- max_username_length_range: "No podeu definir el màxim per sota del mínim."
invalid_hex_value: "Els valors de color han de ser codis hexadecimals de 6 dígits."
allowed_unicode_usernames:
regex_invalid: "L'expressió regular no és vàlida: %{error}"
@@ -2731,8 +2725,6 @@ ca:
title: "Entra en mode segur"
enter: "Entra en mode segur"
must_select: "Cal seleccionar almenys una opció per a entrar en mode segur."
- dev_mode:
- enter: "Retorn"
wizard:
title: "Instal·lació de Discourse"
step:
@@ -2850,12 +2842,8 @@ ca:
title: "Sí"
approve_and_unhide:
title: "Sí"
- no_action_post:
- title: "Cap acció"
delete_post:
complete: "Publicació suprimida"
- no_action_user:
- title: "Cap acció"
delete_user:
complete: "Usuari suprimit"
reason: "Suprimit mitjançant cua de revisió"
diff --git a/config/locales/server.cs.yml b/config/locales/server.cs.yml
index df42c1f1a58fe..c3e95c2cd8e2e 100644
--- a/config/locales/server.cs.yml
+++ b/config/locales/server.cs.yml
@@ -60,8 +60,6 @@ cs:
inline_oneboxer:
topic_page_title_post_number: "#%{post_number}"
topic_page_title_post_number_by_user: "#%{post_number} od %{username}"
- too_many_urls: "Do jednoho požadavku nelze vložit více než 10 adres URL."
- concurrency_not_allowed: "Souběžné požadavky na inline-oneboxing nejsou povoleny. Odešlete prosím vždy jednu žádost."
components:
enabled_filter: "Zapnuto"
disabled_filter: "Vypnuto"
@@ -399,7 +397,6 @@ cs:
slow_down_crawler_user_agent_must_be_at_least_3_characters: "'User agents' musí mít alespoň 3 znaky, aby nedošlo k náhodnému omezení rychlosti legitimních uživatelů."
slow_down_crawler_user_agent_cannot_be_popular_browsers: "K nastavení nemůžete přidat žádnou z následujících hodnot: %{values}."
strip_image_metadata_cannot_be_disabled_if_composer_media_optimization_image_enabled: "Odstranění metadat odstranění obrázků nelze zakázat, pokud je povolena možnost 'composer media optimization image enabled'. Před vypnutím odstraňování metadat obrázků zakažte možnost 'composer media optimization image enabled'."
- x_summary_large_image_no_svg: "Obrázky na Twitter shrnutí používané pro twitter:image metadata nemohou být obrázky .svg."
tl0_and_anonymous_flag: "Pro anonymní uživatele musí být nastaven buď 'site contact email' nebo 'email address to report illegal content'."
allow_likes_in_anonymous_mode_without_anonymous_mode_enabled: "Toto nastavení vyžaduje, aby bylo nejprve povoleno nastavení 'allow anonymous mode'."
conflicting_google_user_id: 'ID účtu Google pro tento účet se změnilo; z bezpečnostních důvodů je nutný zásah redakce. Kontaktujte prosím redakci a odkažte je na %{email} にアクティベーションメールを再送信しました"
+ discourse_id:
+ help: "あなたの Discourse ID をセットアップ中です。"
+ no_allowed_emails: "DISCOURSE_DEVELOPER_EMAILS に許可されたメールアドレスが構成されていません。サイトのセットアップを続行できません。"
+ global_notice: "管理者はまだログインしていません。`DISCOURSE_DEVELOPER_EMAILS` 環境変数に一致するメールアドレスを使用する Discourse ID アカウントを使って、インストールを完了してください。"
safe_mode:
title: "セーフモードを開始"
description: "セーフモードを使用すると、テーマまたはクライアント側プラグインのカスタマイズを読み込まずにサイトをテストできます。サーバー側プラグインのカスタマイズは有効のままになります。"
@@ -4772,15 +4920,18 @@ ja:
enter: "セーフモードを開始"
must_select: "セーフモードを開始するには、少なくとも 1 つのオプションを選択する必要があります。"
dev_mode:
- enter: "Enter"
+ title: "開発者モード"
+ enable_rack_mini_profiler: "セッションを変更しても Rack Mini Profiler が 1 時間持続できるようにする"
wizard:
title: "Discourse のセットアップ"
step:
setup:
title: "はじめに"
+ description: "まずはコミュニティーの基本設定をセットアップしましょう。この設定は後でいつでも変更できます。"
fields:
title:
label: "コミュニティー名"
+ placeholder: "純子のたまり場"
default_locale:
label: "言語"
login_required:
@@ -4828,9 +4979,20 @@ ja:
review_by: "レビュー担当者"
pr_summary: "%{commits} 個のコミットにより %{changed_files} 個のファイルが変更されました。%{additions} 個が追加され、%{deletions} 個が削除されました。"
no_description: "GitHub でアカウントを作成して %{repo} の開発に貢献してください。"
+ pr_title:
+ default: "プルリクエスト"
+ draft: "プルリクエストの下書きを作成する"
+ open: "プルリクエストを開く"
+ approved: "プルリクエストを承認する"
+ changes_requested: "変更がリクエストされました"
+ merged: "プルリクエストがマージされました"
+ closed: "プルリクエストがクローズされました"
status_date:
open: "オープン"
+ draft: "下書き作成済み"
approved: "承認"
+ changes_requested: "変更リクエスト"
+ merged: "マージ"
closed: "閉鎖"
discourse_push_notifications:
popup:
@@ -4846,9 +5008,12 @@ ja:
confirm_body: "成功!通知を有効にしました!"
custom: "%{username} からの通知(%{site_title})"
staff_action_logs:
+ redacted: "[コンテンツは表示されません]"
json_too_long: "値は列の長さ制限を超えているため、ログに記録されません"
not_found: "は見つかりません"
unknown: "不明"
+ site_setting:
+ update_existing_users: "既存のユーザーを更新しますか?%{value}"
user_merged: "%{username} がこのアカウントにマージされました"
user_delete_self: "%{url} から自分で削除"
webhook_deactivation_reason: "あなたの Webhook は自動的に無効化されています。複数の '%{status}' HTTP ステータス失敗応答を受信しました。"
@@ -4867,9 +5032,14 @@ ja:
auto_deleted_hidden_posts: "非表示の投稿は自動的に破棄されました"
seed_data_topic_updated: "シードデータのトピックが更新されました"
seed_data_topic_deleted: "シードデータのトピックが削除されました"
+ upcoming_changes:
+ log_manually_toggled: "ユーザーによる手動切り替え"
+ log_promoted: >
+ この次回の変更は '%{change_status}' ステータスに達したため、あなたのサイトで自動的に有効化されました。詳細は、次回の変更ページをご覧ください。
reviewables:
already_handled: "その投稿をすでにレビューし、再通報の必要はないと判断しました。"
already_handled_and_user_not_exist: "誰かがすでにレビュー済みで、そのユーザーはもう存在しません。"
+ post_restored_by_author: "投稿は作成者によって復元されました"
priorities:
low: "低"
medium: "普通"
@@ -4934,14 +5104,19 @@ ja:
description: "通報に同意し、この投稿を非表示にします。さらに、ユーザーに編集を求めるメッセージを自動送信します。"
complete: "投稿は非表示になり、ユーザーに通知されました。"
agree_and_edit:
+ title: "投稿を編集する"
description: "通報に同意し、コンポーザーウィンドウを開いて投稿を編集します。"
complete: "通報が承認され、投稿を編集できるようになりました。"
delete:
title: "削除"
complete: "投稿は削除されました。"
delete_and_ignore:
+ title: "投稿を削除して通報を無視する"
+ description: "キューから削除すると、投稿を削除して通報を無視します。最初の投稿である場合、トピックも削除されます。 "
complete: "投稿は削除されました。"
delete_and_ignore_replies:
+ title: "投稿と返信を削除して通報を無視する"
+ description: "キューから削除すると、投稿とそのすべての返信を削除して通報を無視します。最初の投稿である場合、トピックも削除されます"
confirm: "投稿への返信も削除してよろしいですか?"
complete: "投稿と返信を削除しました。"
delete_and_agree:
@@ -4955,19 +5130,23 @@ ja:
complete: "投稿と返信を削除しました。"
disagree_and_restore:
title: "投稿を復元する"
+ description: "通報を却下して投稿を復元します"
complete: "投稿を復元しました。"
disagree_bundle:
title: "いいえ"
disagree:
title: "投稿を維持する"
+ description: "通報を却下する"
complete: "通報は無視されました。"
discard_post:
title: "投稿を破棄"
complete: "投稿を破棄しました。"
revise_and_reject_post:
+ title: "修正をリクエストする..."
complete: "投稿を修正待ちで拒否しました。"
ignore:
title: "無視"
+ description: "対応せずにキューから削除します。"
complete: "通報は無視されました。"
ignore_and_do_nothing:
title: "何もしない"
@@ -4995,6 +5174,7 @@ ja:
title: "いいえ"
delete:
title: "ユーザーの削除"
+ description: "ブロックせずにユーザーを削除します"
complete: "ユーザーは削除されました。"
block:
title: "ユーザーの削除とブロック"
@@ -5004,6 +5184,7 @@ ja:
title: "はい"
not_spam:
title: "いいえ"
+ description: "迷惑行為ではないためユーザーを承認します"
reject:
title: "却下"
bundle_title: "拒否…"
@@ -5016,9 +5197,13 @@ ja:
reject_and_delete:
title: "投稿の拒否と削除"
complete: "投稿を拒否し、削除しました。"
+ reject_and_delete_standalone:
+ title: "いいえ。投稿を削除する"
reject_and_keep_deleted:
title: "投稿を削除されたままにする"
complete: "投稿を拒否し、削除のままにしました。"
+ reject_and_keep_deleted_standalone:
+ title: "いいえ。投稿を削除されたままにする"
scrub:
title: レコードを削除
approve_and_restore:
@@ -5027,25 +5212,53 @@ ja:
approve_and_unhide:
title: "はい"
complete: "投稿を承認して非表示状態を解除しました"
- no_action_post:
- title: "未対応"
+ post_actions:
+ bundle_title: "投稿をどうしますか?"
delete_post:
title: "投稿を削除"
+ description: "この投稿を削除します"
complete: "削除された投稿"
hide_post:
title: "投稿を非表示にする"
+ description: "この投稿を非公開にします"
+ complete: "投稿は非表示になりました"
+ unhide_post:
+ title: "投稿を表示する"
+ description: "この投稿をすべてのユーザーに公開します"
+ complete: "投稿を公開しました"
restore_post:
title: "投稿を復元する"
- no_action_user:
- title: "未対応"
+ description: "削除されたこの投稿を復元します"
+ complete: "投稿を復元しました"
+ edit_post:
+ title: "投稿を編集する"
+ description: "この投稿のコンテンツを編集します"
+ complete: "投稿を編集しました"
+ user_actions:
+ bundle_title: "ユーザーをどうしますか?"
silence_user:
title: "ユーザーを投稿禁止にする"
+ description: "ユーザーが投稿できないようにします"
+ complete: "ユーザーを投稿禁止にしました"
+ reason: "ユーザーはレビューキューを通じて投稿禁止にされました"
suspend_user:
title: "ユーザーを凍結する"
+ description: "ユーザーアカウントを凍結します"
+ complete: "ユーザーを凍結しました"
+ reason: "ユーザーはレビューキューを通じて凍結されました"
delete_user:
title: "ユーザーを削除"
+ description: "このユーザーをフォーラムから削除します"
complete: "削除されたユーザー"
reason: "レビューキューを介して削除されました"
+ delete_and_block_user:
+ title: "削除してブロックする"
+ description: "ユーザーを削除して、ユーザーの IP/メールアドレスをブロックします"
+ complete: "ユーザーを削除してブロックしました"
+ delete_user_block:
+ title: "削除してブロックする"
+ description: "ユーザーを削除して、ユーザーの IP/メールアドレスをブロックします"
+ complete: "ユーザーを削除してブロックしました"
email_style:
html_missing_placeholder: "html テンプレートには %{placeholder} が含まれている必要があります。"
notification_level:
@@ -5088,6 +5301,11 @@ ja:
reserved_id: "には ID: %{id} として予約されたキーワードがあります"
unsafe_description: "には安全でない HTML 記述が含まれます"
invalid_tag_group: "には無効なタググループがあります: %{tag_group_name}"
+ discourse_id:
+ already_registered: "このサイトはすでに Discourse ID で登録されています"
+ errors:
+ not_configured: "Discourse ID が構成されていません。まず Discourse ID を有効にしてください。"
+ regenerate_failed: "認証情報の再作成に失敗しました。後でもう一度お試しください。"
activemodel:
errors:
<<: *errors
diff --git a/config/locales/server.ko.yml b/config/locales/server.ko.yml
index b95bdfa7f1ebf..47b1664164dc9 100644
--- a/config/locales/server.ko.yml
+++ b/config/locales/server.ko.yml
@@ -1345,7 +1345,6 @@ ko:
allowed_crawler_user_agents: "사이트 액세스를 허용해야 하는 웹 크롤러의 사용자 에이전트입니다. 경고! 이것을 설정하면 여기에 나열되지 않은 모든 크롤러가 비활성화됩니다!"
blocked_crawler_user_agents: "사이트 액세스가 허용되지 않아야 하는 웹 크롤러를 식별하는 사용자 에이전트 스트링에서 대소문자를 구분하지 않는 고유한 단어입니다. 허용 목록이 정의된 경우 적용되지 않습니다."
slow_down_crawler_rate: "slow_down_crawler_user_agents를 지정하면 이 비율이 모든 크롤러에 적용됩니다(요청 간 지연 시간(초))."
- content_security_policy_collect_reports: "/csp_reports에서 CSP 위반 리포트 수집 활성화"
content_security_policy_frame_ancestors: "CSP를 통해 iframe에 이 사이트를 임베드할 수 있는 사용자를 제한합니다. 임베딩에서 허용된 호스트를 제어합니다."
invalidate_inactive_admin_email_after_days: "이 기간에 사이트를 방문하지 않은 관리자 계정은 로그인하기 전에 이메일 주소를 다시 확인해야 합니다. 비활성화하려면 0으로 설정하세요."
share_links: "공유 대화창에 표시할 항목과 순서를 결정합니다."
@@ -1568,7 +1567,6 @@ ko:
alternative_reply_by_email_addresses: "수신 이메일 주소로 회신 이메일을 보내는 데 사용하는 대체 템플릿 목록입니다. 예: %%{reply_key}@reply.example.com|replies+%%{reply_key}@example.com"
incoming_email_prefer_html: "수신 이메일에 텍스트 대신 HTML을 사용합니다."
strip_incoming_email_lines: "수신 이메일의 각 줄에서 앞뒤 공백을 제거합니다."
- disable_emails: "Discourse에서 모든 유형의 이메일을 보내지 못하도록 합니다. 모든 사용자의 이메일을 비활성화하려면 '예'를 선택합니다. 운영진이 아닌 사용자에 대해서만 이메일을 비활성화하려면 '비운영진'을 선택하세요."
strip_images_from_short_emails: "2800바이트, 즉 2.73KB 이내 크기를 가지도록 이메일에서 이미지 제거"
display_name_on_email_from: "이메일 보내는 사람 필드에 전체 이름 표시"
unsubscribe_via_email: "사용자가 이메일 제목이나 본문에 '구독 해제'를 포함하여 답장하면 이메일을 구독 해제하도록 허용"
@@ -1785,10 +1783,6 @@ ko:
reply_by_email_disabled: "이 설정을 활성화하기 전에 먼저 '이메일로 회신'을 활성화해야 합니다."
discourse_connect_url_is_empty: "이 설정을 활성화하기 전에 'discourse connect url'을 설정해야 합니다."
enable_local_logins_disabled: "이 설정을 활성화하기 전에 먼저 '로컬 로그인 활성화'를 활성화해야 합니다."
- min_username_length_exists: "최소 아이디 길이를 가장 짧은 아이디(%{username}) 이상으로 설정할 수 없습니다."
- min_username_length_range: "최솟값은 최댓값보다 크게 설정할 수 없습니다."
- max_username_length_exists: "최대 아이디 길이를 가장 긴 아이디(%{username}) 이하로 설정할 수 없습니다."
- max_username_length_range: "최솟값은 최댓값보다 작게 설정할 수 없습니다."
invalid_hex_value: "색상 값은 6자리 16진수 코드여야 합니다."
empty_selectable_avatars: "이 설정을 활성화하기 전에 먼저 두 개 이상의 선택 가능한 아바타를 업로드해야 합니다."
category_search_priority:
@@ -3524,8 +3518,6 @@ ko:
title: "안전 모드 시작"
enter: "안전 모드 시작"
must_select: "안전 모드를 시작하려면 옵션을 하나 이상 선택하세요."
- dev_mode:
- enter: "시작하다"
wizard:
title: "Discourse Setup"
step:
@@ -3670,12 +3662,8 @@ ko:
title: "예"
approve_and_unhide:
title: "예"
- no_action_post:
- title: "조치 없음"
delete_post:
complete: "게시물 삭제됨"
- no_action_user:
- title: "조치 없음"
delete_user:
complete: "사용자 삭제됨"
reason: "검토 대기열을 통해 삭제됨"
diff --git a/config/locales/server.lt.yml b/config/locales/server.lt.yml
index 63ee3deb89f00..fdff51b4026d3 100644
--- a/config/locales/server.lt.yml
+++ b/config/locales/server.lt.yml
@@ -1391,8 +1391,6 @@ lt:
invalid_string_min_max: "Turi būti tarp %{min} ir %{max} simbolių."
invalid_json: "Netinkamas JSON."
invalid_reply_by_email_address: "Reikšmę turi sudaryti „%{reply_key}“ ir ji turi skirtis nuo pranešimo el. pašto."
- max_username_length_exists: "Negalite nustatyti maksimalaus vartotojo vardo ilgio žemiau ilgiausio vartotojo vardo (%{username})."
- max_username_length_range: "Negalite nustatyti didžiausios vertės žemiau minimumo."
invalid_hex_value: "Spalvų reikšmės turi būti 6 skaitmenų šešioliktainiai kodai."
empty_selectable_avatars: "Prieš įgalindami šį nustatymą, pirmiausia turite įkelti bent du pasirinktus avatarus."
allowed_unicode_usernames:
@@ -2510,8 +2508,6 @@ lt:
title: "Įeikite į saugųjį režimą"
enter: "Įeikite į saugųjį režimą"
must_select: "Norėdami įjungti saugųjį režimą, turite pasirinkti bent vieną parinktį."
- dev_mode:
- enter: "Įeiti"
wizard:
title: "Discourse sąranka"
step:
@@ -2641,12 +2637,8 @@ lt:
title: "Taip"
approve_and_unhide:
title: "Taip"
- no_action_post:
- title: "Jokių veiksmų"
delete_post:
complete: "Įrašas ištrintas"
- no_action_user:
- title: "Jokių veiksmų"
delete_user:
complete: "Naudotojas ištrintas"
create_linked_topic:
diff --git a/config/locales/server.lv.yml b/config/locales/server.lv.yml
index 579f89029d49f..28fd95c8d0069 100644
--- a/config/locales/server.lv.yml
+++ b/config/locales/server.lv.yml
@@ -492,8 +492,6 @@ lv:
button: "Reģistrēties"
resend_email:
title: "Atkārtoti nosūtīt aktivācijas e-pastu"
- dev_mode:
- enter: "Ievadīt"
wizard:
step:
setup:
diff --git a/config/locales/server.nb_NO.yml b/config/locales/server.nb_NO.yml
index 54341be7afe6a..5fe7f24b9208a 100644
--- a/config/locales/server.nb_NO.yml
+++ b/config/locales/server.nb_NO.yml
@@ -1005,8 +1005,6 @@ nb_NO:
invalid_integer_min_max: "Verdien må være mellom %{min} og %{max}."
invalid_integer: "Verdien må være et heltall."
invalid_string: "Ugyldig verdi"
- min_username_length_range: "Du kan ikke sette minimum høyere enn maksimum."
- max_username_length_range: "Du kan ikke sette maksimum under minimum."
search:
within_post: "#%{post_number} av %{username}"
types:
@@ -1280,8 +1278,6 @@ nb_NO:
message: " Vi har sendt aktiverings-eposten på nytt til %{email}"
safe_mode:
title: "Start sikkerhetsmodus"
- dev_mode:
- enter: "Angi"
wizard:
title: "Discourse-oppsett"
step:
@@ -1374,12 +1370,8 @@ nb_NO:
title: "Ja"
approve_and_unhide:
title: "Ja"
- no_action_post:
- title: "Ingen handling"
delete_post:
complete: "Post slettet"
- no_action_user:
- title: "Ingen handling"
delete_user:
complete: "Bruker slettet"
fallback_username: "bruker"
diff --git a/config/locales/server.nl.yml b/config/locales/server.nl.yml
index 7289f49ad0e20..4defbbb84f89e 100644
--- a/config/locales/server.nl.yml
+++ b/config/locales/server.nl.yml
@@ -60,8 +60,6 @@ nl:
inline_oneboxer:
topic_page_title_post_number: "#%{post_number}"
topic_page_title_post_number_by_user: "%{post_number} van %{username}"
- too_many_urls: "Er kunnen niet meer dan 10 URL's inlijn worden ge-oneboxt in één verzoek."
- concurrency_not_allowed: "Gelijktijdige inline oneboxverzoeken zijn niet toegestaan. Stuur één verzoek tegelijk."
components:
enabled_filter: "Ingeschakeld"
disabled_filter: "Uitgeschakeld"
@@ -344,7 +342,6 @@ nl:
slow_down_crawler_user_agent_must_be_at_least_3_characters: "User agents moeten minimaal 3 tekens lang zijn om te voorkomen dat de snelheid van legitieme gebruikers per ongeluk wordt beperkt."
slow_down_crawler_user_agent_cannot_be_popular_browsers: "Je kunt de volgende waarden niet toevoegen aan de instelling: %{values}."
strip_image_metadata_cannot_be_disabled_if_composer_media_optimization_image_enabled: "Je kunt megagegevens van afbeeldingen strippen niet uitschakelen als 'composer media optimization image enabled' is ingeschakeld. Schakel 'composer media optimization image enabled' uit voordat je megagegevens van afbeeldingen strippen uitschakelt."
- x_summary_large_image_no_svg: "Twitter-samenvattingsafbeeldingen die worden gebruikt voor twitter:image-metadata mogen geen .svg-afbeelding zijn."
tl0_and_anonymous_flag: "Voor anonieme gebruikers moet ofwel 'site contact email' of 'email address to report illegal content' worden opgegeven."
allow_likes_in_anonymous_mode_without_anonymous_mode_enabled: "Voor deze instelling moet eerst de instelling 'allow anonymous mode' worden ingeschakeld."
conflicting_google_user_id: 'De Google-account-ID voor deze account is gewijzigd; om beveiligingsredenen is medewerkerinterventie vereist. Neem contact op met een medewerker en wijs hem of haar op Ste skoraj na koncu! Poslali smo vam aktivacijsko e-sporočilo na vaš e-naslov. Sledite navodilom v e-sporočilu za aktivacijo računa. Če e-sporočila ne prejmete, preverite predal z vsiljeno pošto. Ponovno smo poslali aktivacijsko e-sporočilo na%{email}"
- dev_mode:
- enter: "Enter"
wizard:
title: "Postavitev Discourse"
step:
diff --git a/config/locales/server.sq.yml b/config/locales/server.sq.yml
index 1e669364e309f..47b2282926f7d 100644
--- a/config/locales/server.sq.yml
+++ b/config/locales/server.sq.yml
@@ -1375,8 +1375,6 @@ sq:
title: "Konfirmoni emailin tuaj"
resend_email:
title: "Dërgo përsëri emailin e aktivizimit"
- dev_mode:
- enter: "Hyni"
wizard:
step:
setup:
diff --git a/config/locales/server.sv.yml b/config/locales/server.sv.yml
index f1b90eae8c60a..a5c3f9bfea23a 100644
--- a/config/locales/server.sv.yml
+++ b/config/locales/server.sv.yml
@@ -241,7 +241,6 @@ sv:
slow_down_crawler_user_agent_must_be_at_least_3_characters: "Användaragenter måste vara minst 3 tecken långa för att undvika oavsiktligt hastighetsbegränsande legitima användare."
slow_down_crawler_user_agent_cannot_be_popular_browsers: "Du kan inte lägga till något av följande värden till inställningen: %{values}."
strip_image_metadata_cannot_be_disabled_if_composer_media_optimization_image_enabled: "Du kan inte inaktivera Radera metadata för bild om 'composer media optimization image enabled' är aktiverat. Inaktivera 'composer media optimization image enabled' innan du inaktiverar Radera metadata för bild."
- x_summary_large_image_no_svg: "Twitter, sammanfattningsbilder som används för twitter: bildens metadata kan inte vara .svg"
conflicting_google_user_id: 'Google-konto-ID:et för det här kontot har ändrats och av säkerhetsskäl krävs personalens ingripande. Kontakta personalen och hänvisa dem till 我们已将激活电子邮件重新发送至 %{email}"
discourse_id:
help: "我们正在为您设置 Discourse ID。"
- no_allowed_emails: "DISCOURSE_DEVELOPER_EMAILS 中未配置允许的电子邮件。无法继续站点设置。"
- global_notice: "目前还没有管理员登录。请使用与 `DISCOURSE_DEVELOPER_EMAILS` 环境变量中邮箱地址匹配的 Discourse ID 帐户登录,以完成安装。"
+ no_allowed_emails: "DISCOURSE_DEVELOPER_EMAILS 中未配置允许的电子邮件地址。无法继续站点设置。"
+ global_notice: "目前还没有管理员登录。请通过与 `DISCOURSE_DEVELOPER_EMAILS` 环境变量匹配的电子邮件地址使用 Discourse ID 帐户登录,以完成安装。"
safe_mode:
title: "进入安全模式"
description: "安全模式允许您在不加载主题或客户端插件自定义的情况下测试您的网站。服务器端插件自定义保持启用状态。"
@@ -4960,17 +4968,17 @@ zh_CN:
dev_mode:
title: "开发者模式"
enable_rack_mini_profiler: "启用 Rack Mini Profiler,使其在会话切换后保持 1 小时。"
- enter: "Enter"
+ enter: "进入开发者模式"
wizard:
title: "Discourse 设置"
step:
setup:
title: "使用入门"
- description: "我们将使用基本设置完成您社区的设置流程,您可以在后续修改这些设置。"
+ description: "我们将使用基本设置完成您社区的设置,您可以在后续修改这些设置。"
fields:
title:
label: "社区名称"
- placeholder: "Jane's Hangout"
+ placeholder: "朱桦的环聊"
default_locale:
label: "语言"
login_required:
@@ -4990,7 +4998,7 @@ zh_CN:
invite_only:
label: "仅限邀请"
must_approve_users:
- description: "要手动批准成员帐户吗?"
+ description: "是否要批准成员帐户?"
choices:
"no":
label: "否,新成员可以立即加入"
@@ -5023,14 +5031,14 @@ zh_CN:
draft: "草稿拉取请求"
open: "打开拉取请求"
approved: "已批准的拉取请求"
- changes_requested: "请求更改"
- merged: "合并拉取请求"
+ changes_requested: "已请求更改"
+ merged: "已合并的拉取请求"
closed: "已关闭的拉取请求"
status_date:
open: "已打开"
draft: "草稿"
approved: "已批准"
- changes_requested: "请求更改"
+ changes_requested: "已请求更改"
merged: "已合并"
closed: "已关闭"
discourse_push_notifications:
@@ -5052,7 +5060,7 @@ zh_CN:
not_found: "找不到"
unknown: "未知"
site_setting:
- update_existing_users: "更新现有用户? %{value}"
+ update_existing_users: "更新现有用户?%{value}"
user_merged: "%{username} 已被合并到此帐户"
user_delete_self: "被自己从 %{url} 删除"
webhook_deactivation_reason: "您的网络钩子已自动停用。我们收到了多个 '%{status}' HTTP 状态失败响应。"
@@ -5074,7 +5082,7 @@ zh_CN:
upcoming_changes:
log_manually_toggled: "用户手动切换"
log_promoted: >
- 这项即将进行的更改达到了 '%{change_status}' 状态,因此它已在您的网站上自动启用。有关更多详细信息,请参阅 即将进行的更改页面 。
+ 这项即将推出的更改达到了 '%{change_status}' 状态,因此它已在您的站点上自动启用。有关更多详细信息,请参阅即将推出的更改页面 。
reviewables:
already_handled: "谢谢,但我们已经审核该帖子并确定不需要再次举报它。"
already_handled_and_user_not_exist: "谢谢,但有人已经审核过了,该用户已不存在。"
@@ -5151,11 +5159,11 @@ zh_CN:
complete: "帖子已被删除。"
delete_and_ignore:
title: "删除帖子并忽略举报"
- description: "删除帖子并忽略举报,将其从队列中移除;如果是第一篇帖子,则同时删除话题。 "
+ description: "删除帖子并忽略举报,将其从队列中移除;如果是第一个帖子,同时删除话题。 "
complete: "帖子已被删除。"
delete_and_ignore_replies:
- title: "删除帖子及与之关联的回复,并忽略该举报"
- description: "删除帖子及与之关联的回复,忽略该举报,并将其从审核队列中移除;如果这是首帖,则同时删除该话题"
+ title: "删除帖子与回复,并忽略举报"
+ description: "删除帖子及其所有回复,忽略举报,并将其从队列中移除;如果是第一个帖子,同时删除话题"
confirm: "确定要同时删除对帖子的回复吗?"
complete: "帖子和回复已被删除。"
delete_and_agree:
@@ -5169,23 +5177,23 @@ zh_CN:
complete: "帖子和回复已被删除。"
disagree_and_restore:
title: "恢复帖子"
- description: "拒绝该举报,恢复帖子"
+ description: "不同意举报,并恢复帖子"
complete: "帖子已恢复。"
disagree_bundle:
title: "否"
disagree:
title: "保留帖子"
- description: "拒绝该举报"
+ description: "不同意举报"
complete: "举报已被忽略。"
discard_post:
title: "舍弃帖子"
complete: "帖子已被舍弃。"
revise_and_reject_post:
- title: "打回帖子"
+ title: "请求修订…"
complete: "帖子被拒绝,等待修订。"
ignore:
title: "忽略"
- description: "将其从审核队列中移除,不采取任何措施"
+ description: "将其从队列中移除,不采取任何措施。"
complete: "举报已被忽略。"
ignore_and_do_nothing:
title: "不进行操作"
@@ -5213,7 +5221,7 @@ zh_CN:
title: "否"
delete:
title: "删除用户"
- description: "删除用户,而不封禁其IP/Email"
+ description: "删除用户,而不封禁"
complete: "用户已被删除。"
block:
title: "删除并阻止用户"
@@ -5223,7 +5231,7 @@ zh_CN:
title: "是"
not_spam:
title: "否"
- description: "不是,批准该用户"
+ description: "非垃圾信息,批准用户"
reject:
title: "拒绝"
bundle_title: "拒绝…"
@@ -5237,12 +5245,12 @@ zh_CN:
title: "拒绝并删除帖子"
complete: "帖子被拒绝并被删除。"
reject_and_delete_standalone:
- title: "不是,删除帖子"
+ title: "否,删除帖子"
reject_and_keep_deleted:
title: "保持帖子删除"
complete: "帖子被拒绝,保持删除状态。"
reject_and_keep_deleted_standalone:
- title: "不是,保持帖子删除状态"
+ title: "否,保持帖子删除状态"
scrub:
title: 清除记录
approve_and_restore:
@@ -5252,11 +5260,7 @@ zh_CN:
title: "是"
complete: "帖子已获批准并取消隐藏"
post_actions:
- bundle_title: "您想对这篇帖子做什么?"
- no_action_post:
- title: "无行动"
- description: "不对帖子采取任何行动"
- complete: "未对帖子采取任何行动"
+ bundle_title: "您想如何处理该帖子?"
delete_post:
title: "删除帖子"
description: "删除此帖子"
@@ -5267,48 +5271,40 @@ zh_CN:
complete: "帖子已隐藏"
unhide_post:
title: "取消隐藏帖子"
- description: "让所有用户都可以看到此帖子"
- complete: "帖子取消隐藏"
+ description: "将此帖子设为对所有用户可见"
+ complete: "帖子已取消隐藏"
restore_post:
title: "恢复帖子"
description: "恢复已删除的帖子"
complete: "帖子已恢复"
edit_post:
title: "编辑帖子"
- description: "编辑此帖内容"
+ description: "编辑此帖子内容"
complete: "帖子已编辑"
- convert_to_pm:
- title: "转换为 PM"
- description: "将此帖子转换为个人消息"
- complete: "帖子已转换为私人消息"
user_actions:
- bundle_title: "您想对这位用户做什么?"
- no_action_user:
- title: "无行动"
- description: "不执行任何操作"
- complete: "不执行任何操作"
+ bundle_title: "您想如何处理该用户?"
silence_user:
- title: "禁言用户"
+ title: "将用户禁言"
description: "禁止该用户发帖"
- complete: "用户被禁言"
+ complete: "用户已被禁言"
reason: "用户通过审核队列被禁言"
suspend_user:
title: "封禁用户"
- description: "封禁用户"
- complete: "用户被封禁"
+ description: "封禁用户帐户"
+ complete: "用户已被封禁"
reason: "用户通过审核队列被封禁"
delete_user:
title: "删除用户"
- description: "删除用户"
- complete: "用户被删除"
+ description: "从论坛中删除此用户"
+ complete: "用户已被删除"
reason: "已通过审核队列删除"
delete_and_block_user:
- title: "删除并禁止用户"
- description: "删除用户,并禁止 IP/email"
- complete: "用户被删除且被禁止"
+ title: "删除并屏蔽"
+ description: "删除该用户并屏蔽其 IP /电子邮件地址"
+ complete: "用户已被删除并屏蔽"
delete_user_block:
title: "删除并屏蔽"
- description: "删除该用户并屏蔽其 IP 地址/邮箱。"
+ description: "删除该用户并屏蔽其 IP /电子邮件地址"
complete: "用户已被删除并屏蔽"
email_style:
html_missing_placeholder: "HTML 模板必须包含 %{placeholder}"
@@ -5353,10 +5349,10 @@ zh_CN:
unsafe_description: "有不安全的 HTML 描述"
invalid_tag_group: "具有无效的标签组:%{tag_group_name}"
discourse_id:
- already_registered: "该站点已经使用 Discourse ID 注册"
+ already_registered: "此站点已经使用 Discourse ID 注册"
errors:
not_configured: "Discourse ID 尚未配置,请先启用 Discourse ID 。"
- regenerate_failed: "重新生成凭据失败,请稍后重试。"
+ regenerate_failed: "无法重新生成凭据。请稍后再试。"
activemodel:
errors:
<<: *errors
diff --git a/config/locales/server.zh_TW.yml b/config/locales/server.zh_TW.yml
index 5de717c843e7a..641728a87bef0 100644
--- a/config/locales/server.zh_TW.yml
+++ b/config/locales/server.zh_TW.yml
@@ -1125,7 +1125,6 @@ zh_TW:
allowed_internal_hosts: "Discourse 可以安全抓取以用於 Onebox 與其他用途的內部主機列表"
allowed_crawler_user_agents: "使用者代理(User Agents)的網路爬蟲(Web Crawlers)將允許存取網站。警告!設置此將取消未列出的所有網路爬蟲者(Web Crawlers)"
slow_down_crawler_rate: "如果指定了slow_down_crawler_user_agents,則此速率將適用於所有抓取工具(請求之間的延遲秒數)"
- content_security_policy_collect_reports: "在 /csp_reports 啟用CSP違規報告蒐集"
invalidate_inactive_admin_email_after_days: "在這幾天沒有訪問網站的管理員帳戶,在登入前需要重新驗證該管理員帳戶的電子郵件。設定為0禁用。"
share_links: "決定在分享對話方塊裡顯示哪些項目、以什麼順序顯示。"
site_contact_username: "以一個有效的工作成員帳號來發送所有自動化消息。如果保留空白,則會使用預設的系統帳號。"
@@ -1296,7 +1295,6 @@ zh_TW:
alternative_reply_by_email_addresses: "通過郵件回覆的回覆地址模板,例如:%%{reply_key}@reply.example.com|replies+%%{reply_key}@example.com"
incoming_email_prefer_html: "電子郵件格式使用HTML而不是純文字(text)檔"
strip_incoming_email_lines: "從每行傳入電子郵件中刪除前導、尾隨空格。"
- disable_emails: "防止Discourse發送任何類型的電子郵件。 選擇“是”以禁用所有使用者的電子郵件。選擇“非工作人員”僅為非管理權限帳戶禁用電子郵件。"
strip_images_from_short_emails: "郵件小於 2800 位元組時去除圖片"
display_name_on_email_from: "在郵件的來自欄顯示暱稱"
unsubscribe_via_email: "允許使用者在發送的郵件「退訂」來退訂郵件訂閲,「退訂」可在主題或正文中。"
@@ -1456,10 +1454,6 @@ zh_TW:
staged_users_disabled: "您必須先啟用「暫存使用者(staged users)」,才能啟用此設定"
reply_by_email_disabled: "在啟用此設定之前,您必須先啟用「通過電子郵件回覆」設定"
enable_local_logins_disabled: "在啟用此設定之前,必須先啟用「啟用本地登入(local logins)」設定。"
- min_username_length_exists: "你不能設比現有使用者名稱短的「最小使用者名稱長度」。"
- min_username_length_range: "您不能將下限設定的高於上限。"
- max_username_length_exists: "您不能設置比現有使用者名稱短的「最大使用者名稱長度」。"
- max_username_length_range: "您不能將上限設定的低於下限。"
invalid_hex_value: "顏色值必須是6位十六進制代碼(hex codes),例如:紅色,FF0000。"
allowed_unicode_usernames:
regex_invalid: "正則表達式無效:%{error}"
@@ -2765,8 +2759,6 @@ zh_TW:
title: "進入安全模式"
enter: "進入安全模式"
must_select: "您必須至少選擇一個選項才能進入安全模式。"
- dev_mode:
- enter: "Enter"
wizard:
title: "Discourse 安裝"
step:
@@ -2891,12 +2883,8 @@ zh_TW:
title: "是"
approve_and_unhide:
title: "是"
- no_action_post:
- title: "沒有動作"
delete_post:
title: "刪除貼文"
- no_action_user:
- title: "沒有動作"
silence_user:
title: "使用者靜音"
delete_user:
diff --git a/config/pitchfork.conf.rb b/config/pitchfork.conf.rb
index 8583deff9af36..81360ca83d370 100644
--- a/config/pitchfork.conf.rb
+++ b/config/pitchfork.conf.rb
@@ -73,10 +73,20 @@
Discourse.before_fork
end
+oob_gc_enabled = ENV["DISCOURSE_DISABLE_MAJOR_GC_DURING_REQUESTS"] && RUBY_VERSION >= "3.4"
+
after_worker_fork do |server, worker|
DiscourseEvent.trigger(:web_fork_started)
Discourse.after_fork
SignalTrapLogger.instance.after_fork
+
+ GC.config(rgengc_allow_full_mark: false) if oob_gc_enabled
+end
+
+if oob_gc_enabled
+ after_request_complete do |_server, _worker, _rack_env|
+ GC.start if GC.latest_gc_info(:need_major_by)
+ end
end
before_service_worker_ready do |server, service_worker|
diff --git a/config/routes.rb b/config/routes.rb
index 71229606060a4..d46e4bfad34b8 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -1331,6 +1331,7 @@ def patch(*)
resources :categories, only: %i[index create update destroy]
post "categories/reorder" => "categories#reorder"
+ get "categories/types" => "categories#types"
get "categories/find" => "categories#find"
post "categories/search" => "categories#search"
get "categories/hierarchical_search" => "categories#hierarchical_search"
diff --git a/config/site_settings.yml b/config/site_settings.yml
index 401b66d49823d..ec744b6dddcbe 100644
--- a/config/site_settings.yml
+++ b/config/site_settings.yml
@@ -16,6 +16,9 @@
# The key should be as the same as possible value of default_locale.
# mandatory_values - A list of mandatory values that must be included in the setting, these cannot be changed or removed
# in the UI.
+# disallowed_groups - A list of group IDs (pipe-separated) that should be hidden from the group selector.
+# These groups cannot be selected and will be stripped if set via API.
+# Only applies to group_list type settings.
# requires_confirmation - A string that indicates if the setting requires confirmation before it can be changed.
# Only valid value here is "simple" which will display a confirmation dialog when the setting
# is changed.
@@ -449,6 +452,7 @@ basic:
default: ""
allow_any: false
refresh: true
+ disallowed_groups: "0"
area: "group_permissions"
hidden_post_visible_groups:
type: group_list
@@ -2006,6 +2010,9 @@ email:
mailjet_webhook_token:
default: ""
secret: true
+ mailpace_webhook_token:
+ default: ""
+ secret: true
mandrill_authentication_key:
default: ""
secret: true
@@ -2846,6 +2853,12 @@ onebox:
type: list
secret: true
list_type: secret
+ reddit_onebox_client_id:
+ default: ""
+ secret: true
+ reddit_onebox_client_secret:
+ default: ""
+ secret: true
spam:
add_rel_nofollow_to_user_content: true
hide_post_sensitivity:
@@ -4201,9 +4214,19 @@ dashboard:
client: true
experimental:
+ reporting_improvements:
+ default: false
+ client: true
+ hidden: true
+ area: "experimental"
+ upcoming_change:
+ status: "experimental"
+ impact: "feature,staff"
+ learn_more_url: "https://meta.discourse.org/t/-/395768"
enable_auto_grid_images:
default: false
client: true
+ hidden: true
area: "experimental"
upcoming_change:
status: "experimental"
@@ -4222,11 +4245,6 @@ experimental:
default: false
client: true
area: "experimental"
- experimental_hashtag_search_result_limit:
- default: 20
- client: true
- hidden: true
- area: "experimental"
enable_form_templates:
client: true
default: false
@@ -4290,3 +4308,7 @@ experimental:
status: "experimental"
impact: "feature,staff"
learn_more_url: "https://meta.discourse.org/t/-/394971"
+ enable_category_type_setup:
+ default: false
+ hidden: true
+ client: true
\ No newline at end of file
diff --git a/docs/INSTALL.md b/docs/INSTALL.md
index fe09d4ecca729..2830873afa5f7 100644
--- a/docs/INSTALL.md
+++ b/docs/INSTALL.md
@@ -25,7 +25,7 @@ Hosting Rails applications is complicated. Even if you already have Postgres, Re
### Software Requirements
-- [Postgres 13](https://www.postgresql.org/download/)
+- [PostgreSQL](https://www.postgresql.org/download/) (with major version matching the [version deployed in our docker images](https://github.com/discourse/discourse_docker/blob/main/image/base/Dockerfile))
- [Redis 7](https://redis.io/download)
- [Ruby 3.2+](https://www.ruby-lang.org/en/downloads/)
## Security
diff --git a/docs/developer-guides/lib/api.rb b/docs/developer-guides/lib/api.rb
index c1a9b12170c26..435fc801d4ba9 100644
--- a/docs/developer-guides/lib/api.rb
+++ b/docs/developer-guides/lib/api.rb
@@ -55,7 +55,7 @@ def self.trash_topic(topic_id:)
def self.fetch_current_state
result =
client.post(
- "/admin/plugins/explorer/queries/#{DATA_EXPLORER_QUERY_ID}/run",
+ "/admin/plugins/discourse-data-explorer/queries/#{DATA_EXPLORER_QUERY_ID}/run",
{ params: { category_id: CATEGORY_ID.to_s }.to_json },
).body
diff --git a/frontend/discourse-markdown-it/src/features/quotes.js b/frontend/discourse-markdown-it/src/features/quotes.js
index 11bd3a777979b..6b867d55bcb72 100644
--- a/frontend/discourse-markdown-it/src/features/quotes.js
+++ b/frontend/discourse-markdown-it/src/features/quotes.js
@@ -42,12 +42,9 @@ const rule = {
if (split[i].startsWith("username:")) {
// return users name by selecting all values from the first index to the post
// this protects us from when a user has a `,` in their name
- displayName = split.slice(0, split.indexOf(`post:${postNumber}`));
-
- // preserve `,` in a users name if they exist
- if (displayName.length > 1) {
- displayName = displayName.join(", ");
- }
+ displayName = split
+ .slice(0, split.indexOf(`post:${postNumber}`))
+ .join(", ");
// strip key of 'username:' and return username
username = split[i].slice(9);
@@ -94,6 +91,10 @@ const rule = {
token.attrs.push(["data-username", username]);
}
+ if (displayName && displayName !== username) {
+ token.attrs.push(["data-display-name", displayName]);
+ }
+
if (postNumber) {
token.attrs.push(["data-post", postNumber]);
}
diff --git a/frontend/discourse-plugins/index.js b/frontend/discourse-plugins/index.js
index 4b39f90ea4474..c81d16ae03bce 100644
--- a/frontend/discourse-plugins/index.js
+++ b/frontend/discourse-plugins/index.js
@@ -123,14 +123,6 @@ module.exports = {
fs.existsSync(path.resolve(root, dirent.name, "plugin.rb"))
);
- // Load official plugins list
- const officialPluginsPath = path.resolve(
- "../../config/official_plugins.json"
- );
- const officialPlugins = JSON.parse(
- fs.readFileSync(officialPluginsPath, "utf8")
- );
-
return pluginDirectories.map((directory) => {
const directoryName = directory.name;
const pluginName = parsePluginName(
@@ -157,14 +149,6 @@ module.exports = {
const hasTests = fs.existsSync(testDirectory);
const hasConfig = fs.existsSync(configDirectory);
- // Check if plugin is official
- const isOfficial = officialPlugins.includes(pluginName);
-
- // Check if plugin is preinstalled (bundled in discourse git repo)
- const isPreinstalled = !fs.existsSync(
- path.resolve(root, directoryName, ".git")
- );
-
return {
pluginName,
directoryName,
@@ -176,8 +160,6 @@ module.exports = {
hasAdminJs,
hasTests,
hasConfig,
- isOfficial,
- isPreinstalled,
};
});
},
diff --git a/frontend/discourse/admin/components/admin-area-settings.gjs b/frontend/discourse/admin/components/admin-area-settings.gjs
index a1bdd1244c4ad..0cc496de63cfa 100644
--- a/frontend/discourse/admin/components/admin-area-settings.gjs
+++ b/frontend/discourse/admin/components/admin-area-settings.gjs
@@ -15,13 +15,16 @@ import { i18n } from "discourse-i18n";
export default class AdminAreaSettings extends Component {
@tracked settings = [];
@tracked loading = false;
- @tracked showBreadcrumb = this.args.showBreadcrumb ?? true;
constructor() {
super(...arguments);
this.#loadSettings();
}
+ get showBreadcrumb() {
+ return this.args.showBreadcrumb ?? true;
+ }
+
get showSettings() {
return !this.loading && this.settings.length > 0;
}
diff --git a/frontend/discourse/admin/components/admin-config-areas/components.gjs b/frontend/discourse/admin/components/admin-config-areas/components.gjs
index 692f642478a39..bfc8a3a4b9892 100644
--- a/frontend/discourse/admin/components/admin-config-areas/components.gjs
+++ b/frontend/discourse/admin/components/admin-config-areas/components.gjs
@@ -4,6 +4,7 @@ import { tracked } from "@glimmer/tracking";
import { array, concat, hash } from "@ember/helper";
import { on } from "@ember/modifier";
import { action } from "@ember/object";
+import { LinkTo } from "@ember/routing";
import { service } from "@ember/service";
import AdminConfigAreaEmptyList from "discourse/admin/components/admin-config-area-empty-list";
import AdminFilterControls from "discourse/admin/components/admin-filter-controls";
@@ -56,8 +57,8 @@ const STATUS_FILTER_OPTIONS = [
export default class AdminConfigAreasComponents extends Component {
@service modal;
- @service router;
@service toasts;
+ @service router;
@tracked loading = true;
@tracked components = [];
@@ -286,7 +287,6 @@ export default class AdminConfigAreasComponents extends Component {
class ComponentRow extends Component {
@service toasts;
@service dialog;
- @service router;
@tracked enabled = this.args.component.enabled;
@tracked hasUpdates = this.args.component.remote_theme?.commits_behind > 0;
@@ -340,14 +340,6 @@ class ComponentRow extends Component {
);
}
- get editUrl() {
- return this.router.urlFor(
- "adminCustomizeThemes.show",
- "themes",
- this.args.component.id
- );
- }
-
@action
async toggleEnabled() {
this.disableToggle = true;
@@ -474,9 +466,13 @@ class ComponentRow extends Component {
{{if this.hasUpdates 'has-update'}}"
>
https://meta.discourse.org/t/76575'
@@ -1944,7 +1941,6 @@ cs:
slow_down_crawler_rate: "Pokud je zadána hodnota slow_down_crawler_user_agents,použije se tato hodnota na všechny crawlery (počet sekund prodlevy mezi požadavky)."
content_security_policy: "Povolte zásady zabezpečení obsahu (CSP). CSP je další vrstva zabezpečení, která pomáhá předcházet určitým typům útoků, včetně Cross Site Scripting (XSS) a data injection."
content_security_policy_report_only: "Povolit Content-Security-Policy-Report-Only (CSP)"
- content_security_policy_collect_reports: "Povolit shromažďování zpráv o porušení CSP na /csp_reports"
content_security_policy_frame_ancestors: "Omezit, kdo může zabudovat tento web do iframů přes CSP. Nastavte povolené hostitele v Zabudování"
content_security_policy_script_src: "Další zdroje skriptů na seznamu povolených. Aktuální hostitel a CDN jsou zahrnuty ve výchozím nastavení. Viz Zmírnění útoků XSS pomocí zásad zabezpečení obsahu. (CSP). Ostatní zdroje hostitelů jsou ignorovány, protože je povoleno nastavení strict-dynamic."
invalidate_inactive_admin_email_after_days: "Administrátorské účty, které web v tomto počtu dní nenavštívily, budou muset před přihlášením znovu ověřit svou e-mailovou adresu. Pro deaktivaci nastavte hodnotu 0."
@@ -2030,7 +2026,6 @@ cs:
enable_local_logins_via_email: "Umožnit uživatelům požádat o přihlášení odesláním odkazu pro přihlášení jedním kliknutím prostřednictvím e-mailu."
allow_new_registrations: "Povolit registraci nových uživatelů. Zrušte zaškrtnutí této možnosti, pokud chcete zabránit komukoli ve vytváření nového účtu."
enable_signup_cta: "Zobrazit vracejícím se anonymním uživatelům oznámení s výzvou k registraci účtu."
- enable_discourse_id: "Povolit ověření pomocí Discourse ID, jednotné přihlašovací služby, která umožňuje uživatelům přihlásit se na více stránkách Discourse pomocí jediného účtu. Běžní poskytovatelé sociálních přihlášení jako Google, Facebook, Apple, Github jsou podporováni bez další konfigurace. Více informací naleznete na id.discourse.com."
enable_google_oauth2_logins: "Povolit ověřování Google Oauth2. Toto je metoda ověřování, kterou Google aktuálně podporuje. Vyžaduje klíč a tajný kód. Viz Konfigurace přihlášení Google pro Discourse."
google_oauth2_client_id: "Jedinečné ID klienta poskytnuté vaší aplikací Google, používané pro proces ověřování."
google_oauth2_client_secret: "Client secret vaší Google aplikace."
@@ -2334,8 +2329,6 @@ cs:
many: "Musí mít alespoň %{count} znaků."
other: "Musí mít alespoň %{count} znaků."
staged_users_disabled: "Než toto nastavení povolíte, musíte nejprve povolit „předběžně založené uživatele“."
- min_username_length_range: "Nemůžete nastavit minimum nad maximum."
- max_username_length_range: "Nemůžete nastavit maximum pod minimum."
delete_rejected_email_after_days: "Toto nastavení nemůže být nižší než nastavení delete_email_logs_after_days nebo vyšší než %{max}."
keywords:
navigation_menu: "postranní panel|rozbalovací nabídka v záhlaví"
@@ -2362,7 +2355,6 @@ cs:
exclude_tag: "Vyloučit témata s konkrétním štítkem"
exclude_tags_any: "Vyloučit témata s kterýmkoli ze zadaných štítků (oddělenými čárkou)"
exclude_tags_all: "Vyloučit témata se všemi zadanými štítky (oddělenými plusem)"
- tags_alias: "Alias pro filtr 'tag:'"
tag_group: "Zobrazit témata se štítky z konkrétní skupiny štítků"
exclude_tag_group: "Vyloučit témata se štítky z konkrétní skupiny štítků"
activity_before: "Zobrazit témata s poslední činností před datem (RRRR-MM-DD nebo před x dny)"
@@ -4441,8 +4433,6 @@ cs:
deprecation_error_label: Umožnit, aby zastaralé Javascripty vyvolaly chybu
enter: "Vstoupit do bezpečného režimu"
must_select: "Chcete-li vstoupit do bezpečného režimu, musíte vybrat alespoň jednu možnost."
- dev_mode:
- enter: "Enter"
wizard:
title: "Nastavení Discourse"
step:
@@ -4677,10 +4667,6 @@ cs:
complete: "Příspěvek schválen a zviditelněn"
post_actions:
bundle_title: "Co chcete s příspěvkem udělat?"
- no_action_post:
- title: "Bez akce"
- description: "S příspěvkem nepodniknout žádnou akci"
- complete: "S příspěvkem nebyla provedena žádná akce"
delete_post:
title: "Odstranit příspěvek"
description: "Smazat příspěvek"
@@ -4701,16 +4687,8 @@ cs:
title: "Upravit příspěvek"
description: "Upravit obsah tohoto příspěvku"
complete: "Příspěvek upraven"
- convert_to_pm:
- title: "Převést na SZ"
- description: "Převést tento příspěvek na soukromou zprávu"
- complete: "Příspěvek převeden na soukromou zprávu"
user_actions:
bundle_title: "Co chcete udělat s tímto uživatelem?"
- no_action_user:
- title: "Bez akce"
- description: "Proti tomuto uživateli nepodniknout žádná opatření"
- complete: "Proti uživateli nebyla podniknuta žádná opatření"
silence_user:
title: "Ztišit uživatele"
description: "Zabránit uživateli v publikování příspěvků"
diff --git a/config/locales/server.da.yml b/config/locales/server.da.yml
index b0a6a130212dc..3df1706af7a88 100644
--- a/config/locales/server.da.yml
+++ b/config/locales/server.da.yml
@@ -1345,7 +1345,6 @@ da:
allowed_crawler_user_agents: "Brugeragenter for webcrawlere, der skal have adgang til webstedet. ADVARSEL! INDSTILLES DETTE VIL ALLE CRAWLERE, DER IKKE ER ANGIVET HER BLIVE NÆGTET!"
blocked_crawler_user_agents: "Entydigt store og små bogstaver i brugeragentstrengen, der identificerer webcrawlere, der ikke skal have adgang til webstedet. Gælder ikke, hvis tilladelsesliste er defineret."
slow_down_crawler_rate: "Hvis der er angivet slow_down_crawler_user_agents, gælder denne sats for alle crawlere (antal sekunders forsinkelse mellem anmodninger)"
- content_security_policy_collect_reports: "Aktivér CSP-overtrædelsesrapportindsamling på /csp_reports"
invalidate_inactive_admin_email_after_days: "Administratorkonti, der ikke har besøgt webstedet i dette antal dage, skal validere deres e-mailadresse igen, før de logger ind. Indstil til til 0 for at deaktivere."
share_links: "Angiv hvilke elementer der skal vises i “del“-dialogboksen og i hvilken rækkefølge."
site_contact_username: "Et gyldigt personale-brugernavn, som alle automatiske meddelelser skal sendes fra. Hvis den er tom, bruges standard systemkontoen."
@@ -1472,7 +1471,6 @@ da:
cooldown_hours_until_reflag: "Hvor lang tid brugerne skal vente, indtil de kan genanmelde et indlæg"
reply_by_email_address: "Skabelon for e-mail-adressen i formularen, for eksempel: %%{reply_key}@reply.myforum.com."
incoming_email_prefer_html: "Brug HTML i stedet for tekst til indgående e-mail."
- disable_emails: "Forhindre Discourse i at sende nogen form for e-mails. Vælg 'ja' for at deaktivere e-mails for alle brugere. Vælg 'ikke-personale' for at deaktivere e-mails for ikke-personale brugere."
strip_images_from_short_emails: "Undlad at inkludere billeder fra emails som fylder mindre end 2800 Bytes"
display_name_on_email_from: "Vis fulde navne på emails fra felter"
unsubscribe_via_email: "Tillad brugere at afmelde sig fra emails ved at sende en email med \"unsubscribe\" i emne eller indholdsfeltet"
@@ -1582,8 +1580,6 @@ da:
invalid_alternative_reply_by_email_addresses: "Alle værdier skal indeholde '%{reply_key}' og være forskellige fra notifikations e-mail."
pop3_polling_authentication_failed: "POP3 godkendelse mislykkedes. Kontroller venligst dine pop3 legitimationsoplysninger."
reply_by_email_address_is_empty: "Du skal angive en 'svar via email-adresse', før du aktiverer svar via e-mail."
- min_username_length_range: "Du kan ikke sætte minimum til mere end maksimum."
- max_username_length_range: "Du kan ikke sætte maksimum til mindre end minimum."
invalid_hex_value: "Farveværdier skal være 6-cifrede hexadecimale koder."
empty_selectable_avatars: "Du skal først overføre mindst to valgbare avatarer før du aktiverer denne indstilling."
placeholder:
@@ -3098,8 +3094,6 @@ da:
title: "Gå ind i fejlsikret tilstand"
enter: "Gå ind i fejlsikret tilstand"
must_select: "Du skal vælge mindst én mulighed for at gå i fejlsikret tilstand."
- dev_mode:
- enter: "Enter"
wizard:
title: "Discourse Opsætning"
step:
@@ -3230,13 +3224,9 @@ da:
title: "Ja"
approve_and_unhide:
title: "Ja"
- no_action_post:
- title: "Ingen handling"
delete_post:
title: "Slet indlæg"
complete: "Indlæg slettet"
- no_action_user:
- title: "Ingen handling"
delete_user:
title: "Slet bruger"
complete: "Bruger slettet"
diff --git a/config/locales/server.de.yml b/config/locales/server.de.yml
index b175e4779d4fd..c602fbbbeac3d 100644
--- a/config/locales/server.de.yml
+++ b/config/locales/server.de.yml
@@ -60,8 +60,8 @@ de:
inline_oneboxer:
topic_page_title_post_number: "#%{post_number}"
topic_page_title_post_number_by_user: "#%{post_number} von %{username}"
- too_many_urls: "Onebox kann nicht mehr als 10 URLs in einer einzigen Anfrage einbinden."
- concurrency_not_allowed: "Gleichzeitige Inline-Oneboxing-Anfragen sind nicht erlaubt. Bitte sende nur eine Anfrage auf einmal."
+ too_many_urls: "Es können nicht mehr als 10 URLs in einer einzigen Anfrage in Inline-Oneboxen umgewandelt werden."
+ concurrency_not_allowed: "Gleichzeitige Anfragen zur Umwandlung von URLs in Inline-Oneboxen sind nicht erlaubt. Bitte sende nur eine Anfrage auf einmal."
components:
enabled_filter: "Aktiviert"
disabled_filter: "Deaktiviert"
@@ -347,7 +347,7 @@ de:
slow_down_crawler_user_agent_must_be_at_least_3_characters: "Browserkennungen müssen mindestens 3 Zeichen lang sein, um zu verhindern, dass legitime Benutzer versehentlich einer Durchsatzratenbegrenzung unterworfen werden."
slow_down_crawler_user_agent_cannot_be_popular_browsers: "Du kannst keinen der folgenden Werte zu der Einstellung hinzufügen: %{values}."
strip_image_metadata_cannot_be_disabled_if_composer_media_optimization_image_enabled: "Du kannst das Entfernen der Bild-Metadaten nicht deaktivieren, wenn „composer media optimization image enabled“ aktiviert ist. Deaktiviere „composer media optimization image enabled“, bevor du das Entfernen der Bild-Metadaten deaktivierst."
- x_summary_large_image_no_svg: "Twitter-Zusammenfassungsbilder, die für twitter:image-Metadaten verwendet werden, können keine .svg-Bilder sein."
+ x_summary_large_image_no_svg: "X-Zusammenfassungsbilder, die für twitter:image-Metadaten verwendet werden, können keine .svg-Bilder sein."
tl0_and_anonymous_flag: "Für anonyme Benutzer muss entweder „site contact email“ oder „email address to report illegal content“ angegeben werden."
allow_likes_in_anonymous_mode_without_anonymous_mode_enabled: "Für diese Einstellung muss zuerst die Einstellung „allow anonymous mode“ aktiviert werden."
conflicting_google_user_id: 'Die Google-Konto-ID für dieses Konto hat sich geändert; das Einschreiten des Teams ist aus Sicherheitsgründen erforderlich. Bitte kontaktiere das Team und verweise es auf
https://meta.discourse.org/t/76575'
@@ -1589,7 +1589,7 @@ de:
problem:
twitter_login: 'Die Anmeldung über Twitter scheint im Moment nicht zu funktionieren. Überprüfe die Anmeldedaten in den Website-Einstellungen.'
group_email_credentials: 'Es gab ein Problem mit den E-Mail-Anmeldedaten für die Gruppe %{group_full_name}. Bis dieses Problem behoben ist, werden keine E-Mails aus dem Posteingang der Gruppe versendet. %{error}'
- upcoming_change_stable_opted_out: 'Deine Website hat die bevorstehende Änderung "%{upcoming_change}" deaktiviert. Diese Änderung hat jetzt den Status „dauerhaft“ erreicht und wird bald entfernt. Besuche die Seite mit den bevorstehenden Änderungen, um mehr über diese Änderung zu erfahren.'
+ upcoming_change_stable_opted_out: 'Deine Website hat die bevorstehende Änderung „%{upcoming_change}“ deaktiviert. Diese Änderung hat jetzt den Status „stabil“ erreicht und wird bald entfernt. Besuche die Seite mit den bevorstehenden Änderungen, um mehr über diese Änderung zu erfahren.'
rails_env: "Dein Server läuft im %{env}-Modus."
host_names: "Deine config/database.yml-Datei verwendet den Standard-Hostnamen localhost. Trage hier den Hostnamen deiner Website ein."
sidekiq: 'Sidekiq läuft nicht. Viele Aufgaben – wie zum Beispiel das Versenden von E-Mails – werden asynchron durch Sidekiq ausgeführt. Bitte stell sicher, dass mindestens ein Sidekiq-Prozess läuft. Mehr über Sidekiq erfährst du hier.'
@@ -1638,7 +1638,7 @@ de:
support_mixed_text_direction: "Unterstütze die Vermischung von rechtsläufigem und linksläufigem Text"
min_post_length: "Minimal zulässige Beitragslänge in Zeichen (ohne persönliche Nachrichten)"
min_first_post_length: "Zulässige Mindestlänge des ersten Beitrags (Thementext) (ohne persönliche Nachrichten)"
- prevent_uploads_only_posts: "Markdown-Code von Uploads bei der Prüfung der Mindestlänge des Beitrags (festgelegt mit der \"min post lenght\" Einstellung) nicht berücksichtigen"
+ prevent_uploads_only_posts: "Markdown-Code von Uploads bei der Prüfung der Mindestlänge des Beitrags (festgelegt mit der Einstellung „min post length“) nicht berücksichtigen"
min_personal_message_post_length: "Minimal zulässige Beitragslänge in Zeichen für Nachrichten (sowohl erster Beitrag als auch Antworten)"
max_post_length: "Maximal zulässige Beitragslänge in Zeichen."
topic_featured_link_enabled: "Ermöglicht es Benutzern, ihren Themen einen Feature-Link zuzuweisen. Wenn diese Funktion aktiviert ist, können Themen mit einem hervorgehobenen Link versehen werden, der öffentlich sichtbar ist und bearbeitet werden kann, wenn der Benutzer über ausreichende Berechtigungen verfügt. Der Feature-Link kann die Verständlichkeit eines Themas verbessern, indem er zusätzliche Inhalte bereitstellt."
@@ -1711,10 +1711,12 @@ de:
max_oneboxes_per_post: "Lege die maximale Anzahl von Oneboxes fest, die in einem Beitrag enthalten sein können. Oneboxes bieten eine Vorschau der verlinkten Inhalte im Beitrag."
facebook_app_access_token: "Ein Token, das aus deiner Facebook-App-ID und deinem Geheimnis generiert wird. Wird verwendet, um Instagram-Oneboxes zu generieren."
github_onebox_access_tokens: "Eine Zuordnung einer GitHub-Organisation oder eines GitHub-Benutzers zu einem GitHub-Zugriffs-Token, das verwendet wird, um GitHub-Oneboxes für private Repos, Commits, Pull Requests, Issues und Dateiinhalte zu erzeugen. Ohne dieses Token werden nur öffentliche GitHub-URLs in eine Onebox umgewandelt."
+ reddit_onebox_client_id: "Reddit-API-OAuth-Client-ID, die für authentifizierte Reddit-Oneboxes verwendet wird. Erstelle eine App vom Typ „script“ unter reddit.com/prefs/apps, um Anmeldedaten zu erhalten."
+ reddit_onebox_client_secret: "Reddit-API-OAuth-Client-Secret, das für authentifizierte Reddit-Oneboxes verwendet wird. Zu finden unter der App vom Typ „script“ die auf reddit.com/prefs/apps erstellt wurde."
logo: "Das Logo oben links auf deiner Website. Verwende ein breites rechteckiges Bild mit einer Höhe von 120 Pixeln und einem Seitenverhältnis von mindestens 3:1. Wenn leer, wird die Website-Überschrift angezeigt."
logo_small: "Kleine Logo-Grafik oben links auf der Website, die beim Herunterscrollen angezeigt wird. Verwende ein quadratisches Bild (120 × 120). Falls leer, wird ein „Home“-Zeichen angezeigt."
digest_logo: "Das alternative Logo oben in den E-Mail-Zusammenfassungen deiner Website. Verwende ein breites rechteckiges Bild. Verwende kein SVG-Bild. Wenn leer, wird das Bild aus der `logo`-Einstellung verwendet."
- mobile_logo: "Das Logo auf der mobilen Ausgabe deiner Website. Wir empehlen ein quartatisches Bild zu verwenden, damit die Kopfzeile nicht zu voll wird. Aber du kannst auch ein breites rechteckiges Bild mit einer Höhe von 120 Pixeln und einem Seitenverhältnis von mindestens 3:1 verwenden. Wenn leer, wird das Bild aus der `logo`-Einstellung verwendet."
+ mobile_logo: "Das Logo auf der mobilen Ausgabe deiner Website. Wir empfehlen ein quadratisches Bild zu verwenden, damit die Kopfzeile nicht zu voll wird. Aber du kannst auch ein breites rechteckiges Bild mit einer Höhe von 120 Pixeln und einem Seitenverhältnis von mindestens 3:1 verwenden. Wenn leer, wird das Bild aus der `logo`-Einstellung verwendet."
logo_dark: "Alternative für dunkles Schema betreffend die Website-Einstellung „logo“."
logo_small_dark: "Alternative für dunkles Schema betreffend die Website-Einstellung „logo small“."
mobile_logo_dark: "Alternative für dunkles Schema betreffend die Website-Einstellung „mobile logo“."
@@ -1806,7 +1808,6 @@ de:
llms_txt: "Lade eine Textdatei hoch, die unter /llms.txt für LLM-Crawler bereitgestellt wird. Siehe llmstxt.org für weitere Informationen."
content_security_policy: "Aktiviere die Content-Security-Policy (CSP). CSP ist eine zusätzliche Sicherheitsebene, die hilft, bestimmte Arten von Angriffen zu verhindern, z. B. Cross Site Scripting (XSS) und Data Injection."
content_security_policy_report_only: "Content-Security-Policy-Report-Only (CSP) aktivieren"
- content_security_policy_collect_reports: "Aktiviere die Sammlung von Berichten zu CSP-Verstößen unter /csp_reports"
content_security_policy_frame_ancestors: "Schränke ein, wer diese Website in iframes über CSP einbetten kann. Kontrolliere erlaubte Hosts unter Einbettung"
content_security_policy_script_src: "Zusätzliche Skript-Quellen auf der Erlaubnisliste. Der aktuelle Host und das CDN sind standardmäßig enthalten. Siehe Minderung von XSS-Angriffen mit Content Security Policy (CSP). Host-Quellen werden ignoriert, wenn content_security_policy_strict_dynamic aktiviert ist."
invalidate_inactive_admin_email_after_days: "Administrator-Konten, die die Website in dieser Anzahl von Tagen nicht besucht haben, müssen ihre E-Mail-Adresse erneut bestätigen, bevor sie sich anmelden können. 0 zum Deaktivieren."
@@ -1961,7 +1962,7 @@ de:
invite_link_max_redemptions_limit_users: "Die maximal zulässigen Einlösungen für Einladungslinks, die von regulären Benutzern erstellt wurden, dürfen diesen Wert nicht überschreiten."
alert_admins_if_errors_per_minute: "Anzahl der Fehler pro Minute, bei der ein Administrator benachrichtigt werden soll. Ein Wert von 0 deaktiviert diese Funktion. HINWEIS: Erfordert einen Neustart."
alert_admins_if_errors_per_hour: "Anzahl der Fehler pro Stunde, bei der ein Administrator benachrichtigt werden soll. Ein Wert von 0 deaktiviert diese Funktion. HINWEIS: Erfordert einen Neustart."
- categories_topics: 'Anzahl der Themen, die auf der Seite /categories angezeigt werden. Bei 0 wird automatisch ein Wert gewählt, um die beiden Spalten (Kategorien und Themen) symmetrisch zu halten. Nur relevant für „Kategorien und aktuelle/ angesagte Themen“ category page style Einstellungen.'
+ categories_topics: 'Anzahl der Themen, die auf der Seite /categories angezeigt werden. Bei 0 wird automatisch ein Wert gewählt, um die beiden Spalten (Kategorien und Themen) symmetrisch zu halten. Nur relevant für die Kategorien-Seitenstile „Kategorien und aktuelle/angesagte Themen“.'
suggested_topics: "Anzahl der empfohlenen Themen am Ende eines Themas."
limit_suggested_to_category: "Zeige nur Themen der aktuellen Kategorie in vorgeschlagenen Themen."
suggested_topics_max_days_old: "Vorgeschlagene Themen sollten nicht älter als n Tage sein."
@@ -2115,6 +2116,8 @@ de:
num_flaggers_to_close_topic: "Mindestzahl unabhängiger Mitglieder, die ein Thema melden, damit es automatisch für eine Prüfung pausiert wird."
num_hours_to_close_topic: "Anzahl der Stunden, um ein Thema für eine Intervention zu pausieren."
auto_respond_to_flag_actions: "Automatische Antwort auf abgearbeitete Meldungen aktivieren."
+ min_first_post_typing_time: "Zeit, die ein Benutzer mindestens aufwenden muss, um seinen ersten Beitrag zu schreiben. Wenn diese Zeit unterschritten wird, wird der Beitrag automatisch in die Warteschlange für freizuschaltende Beiträge verschoben. Setze diesen Wert auf 0, um dieses Verhalten zu deaktivieren (nicht empfohlen)."
+ fast_typing_threshold: "Zeit, die ein Benutzer mindestens aufwenden muss, um seinen ersten Beitrag zu schreiben. Wenn diese Zeit unterschritten wird, wird der Beitrag automatisch in die Warteschlange für freizuschaltende Beiträge verschoben. „Low“ ist 1 Sekunde, „standard“ sind 3 Sekunden, „high“ sind 5 Sekunden."
auto_silence_fast_typers_on_first_post: "Automatisches Stummschalten von Benutzern, die `fast typing threshold` nicht erreichen"
auto_silence_fast_typers_max_trust_level: "Maximale Vertrauensstufe, um „Schnelltipper“ stummzuschalten."
auto_silence_first_post_regex: "Regex ohne Berücksichtigung der Groß-/Kleinschreibung, die bei Erfolg dazu führt, dass der erste Beitrag des Benutzers stummgeschaltet und an die Genehmigungswarteschlange gesendet wird. Beispiel: wüten|a[bc]a wird dazu führen, dass alle Beiträge, die „wüten“ oder „aba“ oder „aca“ enthalten, stummgeschaltet werden. Gilt nur für den ersten Beitrag. VERALTET: Verwende stattdessen „Beobachtete Wörter stummschalten“."
@@ -2133,7 +2136,7 @@ de:
alternative_reply_by_email_addresses: "Liste der alternativen Vorlagen für die Beantwortung per E-Mail (eingehende E-Mail-Adressen). Beispiel: %%{reply_key}@reply.example.com|replies+%%{reply_key}@example.com"
incoming_email_prefer_html: "Verwende HTML statt Text für eingehende E-Mails."
strip_incoming_email_lines: "Entferne führende und folgende Leerzeichen von jeder Zeile eingehender E-Mails."
- disable_emails: "Discourse daran hindern, jegliche E-Mails zu versenden. Wähle „yes“, um E-Mails für alle Benutzer zu deaktivieren. Wähle „non-staff“, um E-Mails für alle Benutzer außer den Team-Mitgliedern zu deaktivieren."
+ disable_emails: "Discourse daran hindern, jegliche E-Mails zu versenden. Wähle „yes“, um ausgehende E-Mails für alle Benutzer zu deaktivieren. Wähle „non-staff“, um E-Mails für alle Benutzer außer den Team-Mitgliedern zu deaktivieren."
allow_email_invites: "Wenn diese Funktion deaktiviert ist, können Benutzer keine Einladungs-E-Mails mehr über Discourse versenden."
strip_images_from_short_emails: "Entferne Bilder aus E-Mails kleiner als 2800 Bytes."
short_email_length: "Lege die maximale Länge einer E-Mail in Bytes fest, damit sie als „kurz“ in Bezug auf die Bildunterdrückung eingestuft wird. Wenn die Größe einer E-Mail diese Einstellung nicht überschreitet, werden alle Bilder (wie Avatare und Emojis) aus der E-Mail entfernt."
@@ -2152,6 +2155,7 @@ de:
mailgun_api_key: "Geheimer Mailgun-API-Schlüssel, um Webhook-Nachrichten zu überprüfen."
sendgrid_verification_key: "Sendgrid-Verifizierungsschlüssel, der zur Verifizierung von Webhook-Nachrichten verwendet wird."
mailjet_webhook_token: "Token, das zur Verifizierung der Webhook-Payload verwendet wird. Es muss als „t“-Abfrageparameter des Webhooks übergeben werden, zum Beispiel: https://example.com/webhook/mailjet?t=supersecret"
+ mailpace_webhook_token: "Token, das zur Verifizierung der Webhook-Payload verwendet wird. Es muss als „t“-Abfrageparameter des Webhooks übergeben werden, zum Beispiel: https://example.com/webhook/mailpace?t=supersecret"
mandrill_authentication_key: "Mandrill-Authentifizierungsschlüssel, der zur Verifizierung von Webhook-Nachrichten verwendet wird."
postmark_webhook_token: "Token, das zur Verifizierung der Webhook-Payload verwendet wird. Es muss als „t“-Abfrageparameter des Webhooks übergeben werden, zum Beispiel: https://example.com/webhook/postmark?t=supersecret"
sparkpost_webhook_token: "Token, das zur Verifizierung der Webhook-Payload verwendet wird. Es muss als „t“-Abfrageparameter des Webhooks übergeben werden, zum Beispiel: https://example.com/webhook/sparkpost?t=supersecret"
@@ -2442,17 +2446,17 @@ de:
welcome_banner_image: "Lege ein Bild fest, das im Hintergrund des Willkommensbanners angezeigt werden soll."
welcome_banner_location: "Legt fest, wo auf der Seite das Willkommensbanner erscheinen soll."
welcome_banner_page_visibility: "Legt fest, auf welchen Seiten das Willkommensbanner erscheinen soll."
- welcome_banner_text_color: "Wenn du die „Welcome banner image“ Einstellung konfiguriert hast, kannst du mit dieser Einstellung die Textfarbe des Banners ändern, um sicherzustellen, dass er lesbar bleibt. Wenn du keine Farbe wählst oder kein Hintergrundbild hochgeladen hast, wird die Farbe vom aktiven Theme bestimmt."
+ welcome_banner_text_color: "Wenn du die Einstellung „Welcome banner image“ konfiguriert hast, kannst du mit dieser Einstellung die Textfarbe des Banners ändern, um sicherzustellen, dass er lesbar bleibt. Wenn du keine Farbe wählst oder kein Hintergrundbild hochgeladen hast, wird die Farbe vom aktiven Theme bestimmt."
splash_screen: "Zeigt einen temporären Ladebildschirm an, während Website-Assets geladen werden"
splash_screen_image: "Ein SVG-Bild, das auf dem Bildschirm angezeigt wird, während die Website geladen wird. Animierte SVGs sollten nur CSS-Transformations oder - Deckkraftanimationen verwenden. Verwende eindeutige Namen für die Css-Klassen und Keyframes. Du kannst var(--primary), var(--secondary) und var(--tertiary) verwenden, um auf die Farben des Themes zu verweisen."
navigation_menu: "Lege die Seitenleiste oder das Kopfzeilen-Drop-down als Hauptnavigationsmenü für deine Website fest. Die Seitenleiste wird empfohlen."
default_navigation_menu_categories: "Ausgewählte Kategorien werden standardmäßig im Abschnitt „Kategorien“ des Navigationsmenüs angezeigt."
default_navigation_menu_tags: "Ausgewählte Schlagwörter werden standardmäßig im Abschnitt „Schlagwörter“ des Navigationsmenüs angezeigt."
experimental_new_new_view_groups: 'Eine neue Themenliste aktivieren, die ungelesene und neue Themen kombiniert, und den Link „Alles“ in der Seitenleiste entsprechend verknüpfen.'
- enable_form_templates: "Aktivieren die Formularvorlagen-Funktion. Damit kannst du ein strukturiertes Formular mit Datenvalidierung im Rahmen der Themenerstellung erzwingen."
+ enable_form_templates: "Aktiviere die Formularvorlagen-Funktion. Damit kannst du ein strukturiertes Formular mit Datenvalidierung im Rahmen der Themenerstellung erzwingen."
show_preview_for_form_templates: "Aktiviere die Vorschau für Formularvorlagen"
lazy_load_categories_groups: "Lazy Loading von Kategorieinformationen nur für Benutzer dieser Gruppen. Dies verbessert die Leistung auf Websites mit vielen Kategorien."
- enable_auto_grid_images: "Wickelt Bilder automatisch in [grid]-Tags ein, wenn 3 oder mehr Bilder im Composer hochgeladen werden."
+ enable_auto_grid_images: "Schließt Bilder automatisch in [grid]-Tags ein, wenn 3 oder mehr Bilder im Editor hochgeladen werden."
impersonate_without_logout: "Erlaube Administratoren in die Rolle eines anderen Benutzers zu schlüpfen, ohne sich von ihrem Administratorkonto abmelden zu müssen."
experimental_impersonation_time_limit_minutes: "Nach welcher Zeitspanne das Schlüpfen in die Rolle eines Benutzers automatisch beendet wird."
page_loading_indicator: "Die Ladeanzeige konfigurieren, die bei der Seitennavigation in Discourse erscheint. „Spinner“ ist ein ganzseitiger Indikator. „Slider“ zeigt einen schmalen Balken am oberen Rand des Bildschirms an."
@@ -2477,11 +2481,13 @@ de:
content_localization_allow_author_localization: "Ermögliche es Autoren, die Lokalisierungen ihrer eigenen Themen und Beiträge über das Beitragsmenü zu aktualisieren."
enable_upcoming_changes: "Aktiviere bevorstehende Änderungen"
fake_upcoming_change: "Dies ist keine echte bevorstehende Änderung. Sie dient zu Testzwecken und muss nicht übersetzt werden."
- floating_dismiss_topics_on_mobile: "Zeigt auf dem Handy über der Themenliste eine schwebende \"Verwerfen...\"-Schaltfläche, um den Zugriff zu erleichtern und Platz im oberen Bereich der Themenliste freizugeben"
+ floating_dismiss_topics_on_mobile: "Zeigt auf dem Handy über der Themenliste eine schwebende „Verwerfen …“-Schaltfläche, um den Zugriff zu erleichtern und Platz im oberen Bereich der Themenliste freizugeben"
rename_faq_to_guidelines: "Diese Änderung benennt die FAQ-Seite in „Richtlinien“ um. Die FAQ-Seite ist weiterhin unter /faq erreichbar. Die Einstellung „faq url“ funktioniert wie bisher."
+ experimental_tag_settings_page: "Aktiviere eine eigene Einstellungsseite für Schlagwörter unter /tag/:slug/:id/edit."
enable_simplified_category_creation: "Ermöglicht eine vereinfachte Kategorienerstellung mit weniger Optionen und einer übersichtlicheren Oberfläche."
enable_custom_splash_screen: "Ermöglicht die Anpassung des Ladebildschirms mit einem eigenen SVG-Bild. Lade ein Bild über die Einstellung \"Splash Screen Image\" hoch. Achtung! Dies kann sich negativ auf die LCP-Bewertung und die Google-Indexierung auswirken."
modernize_foundation_theme: "Diese Änderung führt Design-Änderungen am Foundation-Theme in Discourse ein."
+ reporting_improvements: "Verbesserungen der Navigation, des Designs und der Benutzerfreundlichkeit für die Admin-Berichte in Discourse."
errors:
invalid_css_color: "Ungültige Farbe. Gib einen Farbnamen oder einen Hexadezimalwert ein."
invalid_datetime: "Ungültiges Datums-/Uhrzeitformat. Bitte stelle sicher, dass du ein gültiges Datum und eine gültige Uhrzeit eingegeben hast."
@@ -2489,6 +2495,8 @@ de:
invalid_username: "Es gibt keinen Benutzer mit diesem Benutzernamen."
valid_username: "Es gibt einen Benutzer mit diesem Benutzernamen."
invalid_group: "Es gibt keine Gruppe mit diesem Namen."
+ invalid_svg: "Das SVG-Bild ist ungültig. Es muss ein SVG-Element enthalten und darf keine Skripte oder Event-Handler enthalten."
+ invalid_upload: "Der Upload ist ungültig oder existiert nicht."
invalid_topic: "Es gibt kein Thema mit dieser ID."
invalid_integer_min_max: "Der Wert muss zwischen %{min} und %{max} liegen."
invalid_integer_min: "Der Wert muss %{min} oder größer sein."
@@ -2526,12 +2534,12 @@ de:
reply_by_email_disabled: "Du musst erst „reply by email“ aktivieren, bevor du diese Einstellung aktivierst."
discourse_connect_url_is_empty: "Du musst eine „discourse connect url'“ festlegen, bevor du diese Einstellung aktivierst."
enable_local_logins_disabled: "Du musst erst „enable local logins“ aktivieren, bevor du diese Einstellung aktivierst."
- min_username_length_exists: "Du kannst die Mindestlänge von Benutzernamen nicht über den kürzesten Benutzernamen (%{username}) setzen."
- min_group_name_length_exists: "Du kannst die minimale Länge von Benutzernamen nicht länger als den kürzesten Gruppennamen (%{group_name}) setzen."
- min_username_length_range: "Du kannst das Minimum nicht über das Maximum setzen."
- max_username_length_exists: "Du kannst die maximale Länge von Benutzernamen nicht unter den längsten Benutzernamen (%{username}) setzen."
- max_group_name_length_exists: "Du kannst die maximale Länge von Benutzernamen nicht kürzer als längsten Gruppennamen (%{group_name}) setzen."
- max_username_length_range: "Du kannst das Maximum nicht unter das Minimum setzen."
+ min_username_length_exists: "Du kannst die „min username length“ Einstellung nicht größer als den kürzesten Benutzernamen (%{username}) konfigurieren."
+ min_group_name_length_exists: "Du kannst die „min username length“ Einstellung nicht größer als den kürzesten Gruppennamen (%{group_name}) konfigurieren."
+ min_username_length_range: "Du kannst die „min username length“ Einstellung nicht größer als die „max username length“ Einstellung konfigurieren."
+ max_username_length_exists: "Du kannst die „max username length“ Einstellung nicht kleiner als den längsten Benutzernamen (%{username}) konfigurieren."
+ max_group_name_length_exists: "Du kannst die „max username length“ Einstellung nicht kleiner als den längsten Gruppennamen (%{group_name}) konfigurieren."
+ max_username_length_range: "Du kannst die „max username length“ Einstellung nicht kleiner als die „min username length“ Einstellung konfigurieren."
invalid_hex_value: "Farbwerte müssen als 6-stellige Hexadezimalcodes angegeben werden."
empty_selectable_avatars: "Du musst zunächst mindestens zwei auswählbare Avatare hochladen, bevor du diese Einstellung aktivieren kannst."
category_search_priority:
@@ -2594,7 +2602,6 @@ de:
exclude_tag: "Themen mit einem bestimmten Schlagwort ausschließen"
exclude_tags_any: "Themen mit einem der angegebenen Schlagwörter ausschließen (durch Kommas getrennt)"
exclude_tags_all: "Themen mit allen angegebenen Schlagwörtern ausschließen (durch Kommas getrennt)"
- tags_alias: "Alias für den Filter 'Schlagwort:'"
tag_group: "Themen mit Schlagwörtern aus einer bestimmten Schlagwortgruppe anzeigen"
exclude_tag_group: "Themen mit Schlagwörtern aus einer bestimmten Schlagwortgruppe ausschließen"
activity_before: "Themen mit letzter Aktivität vor einem Datum anzeigen (JJJJ-MM-TT oder vor Tagen)"
@@ -2632,7 +2639,7 @@ de:
in_watching_first_post: "Themen anzeigen, bei denen du den ersten Beitrag beobachtest"
in_new: "Themen anzeigen, die neu sind oder neue Antworten haben"
in_new_replies: "Themen mit neuen Antworten anzeigen"
- in_new_topics: "Zeige neue Themen"
+ in_new_topics: "Neue Themen anzeigen"
in_unseen: "Themen anzeigen, die du noch nicht gesehen hast"
order_activity: "Nach letzter Aktivität sortieren (die neuesten zuerst)"
order_activity_asc: "Nach letzter Aktivität sortieren (die ältesten zuerst)"
@@ -2795,6 +2802,7 @@ de:
csrf_detected: "Die Autorisierung ist leider abgelaufen oder du hast den Browser gewechselt. Bitte versuche es erneut."
request_error: "Beim Start der Autorisierung ist leider ein Fehler aufgetreten. Bitte versuche es erneut."
invalid_iat: "Das Autorisierungstoken kann wegen unterschiedlicher Server-Uhrzeiten leider nicht geprüft werden. Bitte versuche es erneut."
+ unauthorized: "Leider wurde deine Anfrage vom Anmeldeanbieter nicht autorisiert. Bitte versuche es erneut oder kontaktiere einen Administrator."
omniauth_error_unknown: "Bei der Verarbeitung deiner Anmeldung ist etwas schiefgelaufen, bitte versuche es noch einmal."
omniauth_confirm_title: "Anmeldung per %{provider}"
omniauth_confirm_button: "Weiter"
@@ -4183,7 +4191,7 @@ de:
%{base_url}/u/confirm-old-email/%{email_token}
notify_old_email:
title: "Benachrichtigung an alte E-Mail-Adresse"
- preview: "E-Mail Adresse aktualisiert."
+ preview: "E-Mail-Adresse aktualisiert."
subject_template: "[%{email_prefix}] Deine E-Mail-Adresse wurde geändert"
text_body_template: |
Dies ist eine automatisierte Nachricht, um eine Änderung deiner E-Mail-Adresse für %{site_name} mitzuteilen. Bitte kontaktiere einen Website-Administrator, wenn du von einem Fehler ausgehst.
@@ -5051,7 +5059,7 @@ de:
rss_by_tag: "Themen mit dem Schlagwort %{tag}"
finish_installation:
congratulations: "Glückwunsch, du hast Discourse installiert!"
- login_with_discourse_id: "Mit Discourse-ID anmelden"
+ login_with_discourse_id: "Mit Discourse ID anmelden"
discourse_id_help: "Bitte verwende den Button, um dich mit einem Discourse ID-Konto anzumelden.
Stelle sicher, dass du ein Discourse ID-Konto mit einer primären E-Mail-Adresse, die der Umgebungsvariablen `DISCOURSE_DEVELOPER_EMAILS` entspricht, verwendest."
discourse_id_error_help: "Du hast dich entschieden, die Einrichtung der E-Mail vorerst zu überspringen. Leider kann die Einrichtung aufgrund der obigen Fehlermeldung nicht fortgesetzt werden. Bitte melde dieses Problem auf meta.discourse.org."
register:
@@ -5068,7 +5076,7 @@ de:
discourse_id:
help: "Wir richten jetzt Discourse ID für dich ein."
no_allowed_emails: "In DISCOURSE_DEVELOPER_EMAILS sind keine zulässigen E-Mail-Adressen konfiguriert. Die Einrichtung der Website kann nicht fortgesetzt werden."
- global_notice: "Es haben sich noch keine Administratoren angemeldet. Bitte melde dich mit einem Discourse ID-Konto und einer E-Mail an, die der Umgebungsvariablen `DISCOURSE_DEVELOPER_EMAILS` entspricht, um die Installation abzuschließen."
+ global_notice: "Es haben sich noch keine Administratoren angemeldet. Bitte melde dich mit einem Discourse ID-Konto und einer E-Mail-Adresse an, die der Umgebungsvariablen `DISCOURSE_DEVELOPER_EMAILS` entspricht, um die Installation abzuschließen."
safe_mode:
title: "Abgesicherten Modus betreten"
description: "Im abgesicherten Modus kannst du deine Website testen, ohne Themes oder clientseitige Plug-in-Anpassungen zu laden. Server-seitige Plug-in-Anpassungen bleiben aktiviert."
@@ -5082,7 +5090,7 @@ de:
dev_mode:
title: "Entwicklermodus"
enable_rack_mini_profiler: "Rack Mini Profiler für 1 Stunde sitzungsunabhängig aktivieren"
- enter: "Enter"
+ enter: "Entwicklermodus betreten"
wizard:
title: "Discourse einrichten"
step:
@@ -5146,14 +5154,14 @@ de:
open: "Offener Pull Request"
approved: "Genehmigter Pull Request"
changes_requested: "Änderungen angefordert"
- merged: "Gemergter Pull Request"
+ merged: "Zusammengeführter Pull Request"
closed: "Geschlossener Pull Request"
status_date:
open: "offen"
draft: "entworfen"
approved: "genehmigt"
changes_requested: "Änderungen angefordert"
- merged: "Merged am"
+ merged: "Zusammengeführt am"
closed: "geschlossen"
discourse_push_notifications:
popup:
@@ -5306,7 +5314,7 @@ de:
title: "Beitrag verwerfen"
complete: "Beitrag verworfen."
revise_and_reject_post:
- title: "Überarbeitung anfordern..."
+ title: "Überarbeitung anfordern …"
complete: "Beitrag wurde bis zur Überarbeitung abgelehnt."
ignore:
title: "Ignorieren"
@@ -5378,10 +5386,6 @@ de:
complete: "Beitrag genehmigt und wieder sichtbar gemacht"
post_actions:
bundle_title: "Was willst du mit dem Beitrag machen?"
- no_action_post:
- title: "Keine Aktion"
- description: "Keine Maßnahmen bezüglich des Beitrags ergreifen"
- complete: "Keine Aktion bezüglich des Beitrags ausgeführt"
delete_post:
title: "Beitrag löschen"
description: "Diesen Beitrag löschen"
@@ -5402,16 +5406,8 @@ de:
title: "Beitrag bearbeiten"
description: "Den Inhalt dieses Beitrags bearbeiten"
complete: "Beitrag bearbeitet"
- convert_to_pm:
- title: "In PN umwandeln"
- description: "Diesen Beitrag in eine persönliche Nachricht umwandeln"
- complete: "Beitrag in persönliche Nachricht umgewandelt"
user_actions:
bundle_title: "Was willst du mit dem Benutzer machen?"
- no_action_user:
- title: "Keine Aktion"
- description: "Keine Maßnahmen gegen den Benutzer ergreifen"
- complete: "Keine Maßnahmen gegen den Benutzer ergriffen"
silence_user:
title: "Benutzer stummschalten"
description: "Benutzer daran hindern Beiträge zu veröffentlichen"
@@ -5429,11 +5425,11 @@ de:
reason: "Gelöscht via Warteschlange zur Überprüfung"
delete_and_block_user:
title: "Löschen & Blockieren"
- description: "Lösche den Benutzer und blockiere seine IP/E-Mail"
+ description: "Lösche den Benutzer und blockiere seine IP/E-Mail-Adresse"
complete: "Benutzer gelöscht und gesperrt"
delete_user_block:
title: "Löschen & Blockieren"
- description: "Lösche den Benutzer und blockiere seine IP/E-Mail"
+ description: "Lösche den Benutzer und blockiere seine IP/E-Mail-Adresse"
complete: "Benutzer gelöscht und gesperrt"
email_style:
html_missing_placeholder: "Die HTML-Vorlage muss %{placeholder} beinhalten"
diff --git a/config/locales/server.el.yml b/config/locales/server.el.yml
index e8c2ddaee2959..f8609e615452c 100644
--- a/config/locales/server.el.yml
+++ b/config/locales/server.el.yml
@@ -308,6 +308,7 @@ el:
topic_not_found: "Κάτι πήγε στραβά. Ίσως αυτό το θέμα έκλεισε ή διαγράφηκε ενώ το κοιτούσατε."
not_accepting_pms: "Λυπούμαστε, ο/η %{username} δεν δέχεται μηνύματα αυτή τη στιγμή."
max_pm_recipients: "Λυπούμαστε, μπορείτε να στείλετε μήνυμα το μέγιστο σε %{recipients_limit} παραλήπτες."
+ removed_direct_reply_full_quotes: "Αφαιρέθηκε αυτόματα η παράθεση ολόκληρης της προηγούμενης ανάρτησης."
slow_mode_enabled: "Αυτό το θέμα είναι σε αργή λειτουργία."
just_posted_that: "είναι παρόμοιο με αυτό που δημοσιεύσατε πρόσφατα"
invalid_characters: "περιέχει μη έγκυρους χαρακτήρες"
@@ -365,6 +366,7 @@ el:
custom: "Προσαρμοσμένη ημερομηνία και ώρα"
groups:
errors:
+ grant_trust_level_not_valid: "Το '%{trust_level}' δεν είναι έγκυρο επίπεδο εμπιστοσύνης."
can_not_modify_automatic: "Δεν μπορείς να τροποποιήσεις μια αυτόματη ομάδα"
invalid_domain: "'%{domain}' δεν είναι έγκυρος τομέας."
too_many_domains: "Πάρα πολλοί τομείς. Μέγιστο %{max}."
@@ -519,10 +521,13 @@ el:
media_placeholder:
blocked_hotlinked_title: "Πολυμέσο που φιλοξενείται σε άλλον ιστότοπο. Κάντε κλικ για να ανοίξετε σε νέα καρτέλα."
blocked_hotlinked: "Εξωτερικό Πολυμέσο"
+ hidden_bidi_character: "Οι χαρακτήρες αμφίδρομου ελέγχου μπορούν να αλλάξουν τη σειρά με την οποία απεικονίζεται το κείμενο. Αυτό θα μπορούσε να χρησιμοποιηθεί για την απόκρυψη κακόβουλου κώδικα."
has_likes:
one: "%{count} «Μου αρέσει»"
other: "%{count} «Μου αρέσει»"
rate_limiter:
+ by_type:
+ public_group_membership: "Συμμετέχετε/αποχωρείτε από ομάδες λίγο πολύ συχνά. Παρακαλούμε περιμένετε %{time_left} πριν προσπαθήσετε ξανά."
hours:
one: "%{count} ώρα"
other: "%{count} ώρες"
@@ -895,6 +900,7 @@ el:
title: "Αρέσει"
xaxis: "Ημέρα"
yaxis: "Αριθμός νέων 'Μου αρέσει'"
+ description: "Αριθμός νέων \"Μου αρέσει\"."
flags:
title: "Σημάνσεις"
xaxis: "Ημέρα"
@@ -1077,17 +1083,21 @@ el:
filesize: Μέγεθος αρχείου
description: "Λίστα όλων των μεταφορτώσεων κατά επέκταση, μέγεθος αρχείου και συντάκτη."
top_users_by_likes_received:
+ title: "Κορυφαίοι χρήστες με βάση τα \"Μου αρέσει\" που έλαβαν"
labels:
user: Χρήστης
- qtt_like: Μου αρέσει που λήφθησαν
+ qtt_like: Ληφθέντα "Μου αρέσει"
+ description: "Κορυφαίοι 10 χρήστες που έχουν λάβει \"Μου αρέσει\"."
top_users_by_likes_received_from_inferior_trust_level:
+ title: "Κορυφαίοι χρήστες με βάση τα \"Μου αρέσει\" που έλαβαν από χρήστη με χαμηλότερο επίπεδο εμπιστοσύνης"
labels:
user: Χρήστης
- qtt_like: Μου αρέσει που λήφθησαν
+ trust_level: Επίπεδο εμπιστοσύνης
+ qtt_like: Ληφθέντα "Μου αρέσει"
top_users_by_likes_received_from_a_variety_of_people:
labels:
user: Χρήστης
- qtt_like: Μου αρέσει που λήφθησαν
+ qtt_like: Ληφθέντα "Μου αρέσει"
topic_view_stats:
title: "Στατιστικά Προβολών Θέματος"
labels:
@@ -1148,8 +1158,11 @@ el:
show_pinned_excerpt_desktop: "Εμφάνιση αποσπάσματος σε καρφιτσωμένα νήματα στην προβολή για υπολογιστές."
post_onebox_maxlength: "Μέγιστο μέγεθος μιας oneboxed ανάρτησης σε χαρακτήρες."
allowed_inline_onebox_domains: "Μια λίστα από τομείς τα οποία θα γίνουν onebox σε σκίκρυνση αν αναφερθούν χωρίς τίτλο"
+ logo_small: "Η μικρή εικόνα λογότυπου επάνω αριστερά στον ιστότοπό σας, που φαίνεται κατά την κύλιση προς τα κάτω. Χρησιμοποιήστε μια εικόνα 120 × 120. Εάν αφεθεί κενό, θα εμφανιστεί ένα σύμβολο αρχικής σελίδας."
notification_email: "Η από: διεύθυνση email που χρησιμοποιείται για την αποστολή όλων των απαραιτήτων μηνυμάτων του συστήματος. Ο τομέας που καθορίζεται εδώ πρέπει να έχει SPF, DKIM και reverse PTR αρχεία ρυθμισμένα σωστά για να φθάσει το μήνυμα."
- force_https: "Αναγκάζει το site σας να χρησιμοποιεί μόνο HTTPS. ΠΡΟΣΟΧΗ: Μην το ενεργοποιήσετε, μέχρι να επαληθεύσετε ότι το HTTPS είναι πλήρως εγκατεστημένο και λειτουργεί απολύτως παντού! Ελέγξατε το CDN σας, όλες τις κοινωνικές συνδέσεις και τα εξωτερικά σας λογότυπα / εξαρτήσεις για να βεβαιωθείτε ότι είναι όλα συμβατά με HTTPS;"
+ email_subject: "Προσαρμόσιμη μορφή θέματος για τυπικά μηνύματα email. Δείτε το https://meta.discourse.org/t/customizing-specific-system-email-templates/88323"
+ enforce_second_factor_on_external_auth: "Να απαιτείται από τους χρήστες να χρησιμοποιούν πάντα τον έλεγχο ταυτότητας δύο παραγόντων (2FA). Όταν είναι ενεργοποιημένο, αυτό θα εμποδίζει τους χρήστες να συνδέονται με εξωτερικές μεθόδους ελέγχου ταυτότητας, όπως συνδέσεις κοινωνικών δικτύων, εάν έχουν ενεργοποιήσει τον έλεγχο ταυτότητας δύο παραγόντων. Όταν είναι απενεργοποιημένο, οι χρήστες θα χρειάζεται μόνο να επιβεβαιώσουν τον έλεγχο ταυτότητας δύο παραγόντων κατά τη σύνδεση με όνομα χρήστη και κωδικό πρόσβασης. Δείτε επίσης τη ρύθμιση `enforce_second_factor`."
+ force_https: "Αναγκάζει τον ιστότοπό σας να χρησιμοποιεί μόνο HTTPS. ΠΡΟΣΟΧΗ: Μην το ενεργοποιήσετε, μέχρι να επαληθεύσετε ότι το HTTPS είναι πλήρως εγκατεστημένο και λειτουργεί απολύτως παντού! Ελέγξατε το CDN σας, όλες τις συνδέσεις κοινωνικών δικτύων και τα εξωτερικά σας λογότυπα / εξαρτήσεις για να βεβαιωθείτε ότι είναι όλα συμβατά με HTTPS;"
summary_score_threshold: "Η ελάχιστη βαθμολογία που απαιτείται από μια ανάρτηση για να συμπεριληφθεί στο «Συνοψίστε αυτό το θέμα»"
summary_percent_filter: "Όταν ο χρήστης επιλέξει «Συνοψίστε αυτό το θέμα», δείξε το κορυφαίο % των αναρτήσεων"
long_polling_base_url: "Base URL που χρησιμοποιείτε για μακρύ ψήφισμα (όταν ένα CDN εξυπηρετεί δυναμικό περιεχόμενο, βεβαιωθείτε ότι το ορίσατε σε έλξη προέλευσης ) π.χ.: http://origin.site.com"
@@ -1218,6 +1231,7 @@ el:
top_topics_formula_log_views_multiplier: "value of log views multiplier (n) in top topics formula: `log(views_count) * (n) + op_likes_count * 0.5 + LEAST(likes_count / posts_count, 3) + 10 + log(posts_count)`"
top_topics_formula_first_post_likes_multiplier: "value of first post likes multiplier (n) in top topics formula: `log(views_count) * 2 + op_likes_count * (n) + LEAST(likes_count / posts_count, 3) + 10 + log(posts_count)`"
top_topics_formula_least_likes_per_post_multiplier: "value of least likes per post multiplier (n) in top topics formula: `log(views_count) * 2 + op_likes_count * 0.5 + LEAST(likes_count / posts_count, (n)) + 10 + log(posts_count)`"
+ enable_safe_mode: "Να επιτρέπεται στους χρήστες να εισέλθουν στην ασφαλή λειτουργία για αποσφαλμάτωση των πρόσθετων."
rate_limit_create_topic: "Μετά τη δημιουργία θέματος, οι χρήστες πρέπει να περιμένουν (n) δευτερόλεπτα πριν τη δημιουργία άλλου θέματος."
rate_limit_create_post: "Μετά την ανάρτηση, οι χρήστες πρέπει να περιμένουν (n) δευτερόλεπτα πριν τη δημιουργία άλλης ανάρτησης."
rate_limit_new_user_create_post: "Μετά την ανάρτηση, οι νέοι χρήστες πρέπει να περιμένουν (n) δευτερόλεπτα πριν τη δημιουργία άλλης ανάρτησης."
@@ -1270,7 +1284,7 @@ el:
tl3_requires_max_flagged: "Ο χρήστης δεν θα πρέπει να είχε περισσότερες από x αναρτήσεις αναφερόμενες από x διαφορετικούς χρήστες τις τελευταίες (tl3 time period) ημέρες για να πληροί τις προϋποθέσεις για να προαχθεί σε επίπεδο εμπιστοσύνης 3, όπου x είναι η τιμή αυτής της ρύθμισης. (0 ή μεγαλύτερο)"
tl3_promotion_min_duration: "Ο ελάχιστος αριθμός ημερών για τις οποίες διαρκεί μια προώθηση στο επίπεδο εμπιστοσύνης 3, προτού ένας χρήστης μπορεί να υποβιβαστεί στο επίπεδο εμπιστοσύνης 2. "
tl3_requires_likes_given: "Ο ελάχιστος αριθμός των 'μου αρέσει' που πρέπει να έχουν δωθεί τις τελευταίες (tl3 time period) ημέρες, ώστε να πληρούνται οι προυποθέσεις για να προαχθεί στο επίπεδο εμπιστοσύνης 3. "
- tl3_requires_likes_received: "Ο ελάχιστος αριθμός των 'μου αρέσει' που πρέπει να έχουν ληφθεί τις τελευταίες (tl3 time period) ημέρες, ώστε να πληρούνται οι προυποθέσεις για να προαχθεί στο επίπεδο εμπιστοσύνης 3. "
+ tl3_requires_likes_received: "Ο ελάχιστος αριθμός των \"Μου αρέσει\" που πρέπει να έχουν ληφθεί τις τελευταίες (tl3 time period) ημέρες, ώστε να πληρούνται οι προυποθέσεις για να προαχθεί στο επίπεδο εμπιστοσύνης 3."
tl3_links_no_follow: "Μην αφαιρείτε rel=nofollow από συνδέσμους που αναρτήθηκαν από χρήστες επιπέδου εμπιστοσύνης 3."
newuser_max_links: "Πόσους συνδέσμους μπορεί να προσθέσει ένας χρήστης σε μια ανάρτηση."
newuser_max_attachments: "Πόσα συνημμένα μπορεί να προσθέσει ένας χρήστης σε μια ανάρτηση."
@@ -1317,6 +1331,7 @@ el:
num_flaggers_to_close_topic: "Ελάχιστος αριθμός ξεχωριστών αναφορών που απαιτείται για την αυτόματη παύση ενός θέματος για παρέμβαση"
num_hours_to_close_topic: "Αριθμός ωρών παύσης ενός θέματος για παρέμβαση"
auto_respond_to_flag_actions: "Ενεργοποίηση αυτόματης απάντησης όταν αφαιρείται μια αναφορά."
+ fast_typing_threshold: "Ελάχιστος χρόνος που πρέπει να πληκτρολογήσει ένας χρήστης για την πρώτη του ανάρτηση. Εάν δεν επιτευχθεί το όριο, η ανάρτηση θα εισέλθει αυτόματα στην ουρά ελέγχου. Το ελάχιστο είναι 1 δευτερόλεπτο, το τυπικό είναι 3 δευτερόλεπτα και το μέγιστο είναι 5 δευτερόλεπτα."
auto_silence_fast_typers_max_trust_level: "Μέγιστο επίπεδο εμπιστοσύνης για την αυτόματη σίγηση σε περίπτωση γρήγορης πληκτρολόγησης"
reply_by_email_address: "Πρότυπο για την απάντηση μέσω email της διεύθυνσης email εισερχομένων μηνυμάτων, για παράδειγμα: %%{reply_key}@reply.example.com or replies+%%{reply_key}@example.com"
alternative_reply_by_email_addresses: "Λίστα εναλλακτικών προτύπων για την απάντηση μέσω email της διεύθυνσης email εισερχομένων μηνυμάτων, πχ: %%{reply_key}@reply.example.com|replies+%%{reply_key}@example.com"
@@ -1344,7 +1359,7 @@ el:
pop3_polling_password: "Ο κωδικός πρόσβασης του POP3 λογαριασμού για το email."
email_prefix: "Το [label] που χρησιμοποιείται στο θέμα των μηνυμάτων email. Αυτό θα προκαθοριστεί σαν «τίτλος», αν δεν οριστεί."
email_site_title: "Ο τίτλος της ιστοσελίδας που χρησιμοποιείται ως ο αποστολέας των email από την ιστοσελίδα. Η προκαθορισμένη ρύθμιση είναι 'τίτλος'. Εάν ο 'τίτλος' σας περιέχει χαρακτήρες οι οποίοι δεν επιτρέπονται στα email, χρησιμοποιήστε αυτή τη ρύθμιση. "
- find_related_post_with_key: "Χρησιμοποίησε μόνο το 'reply key' για να βρεις την ανάρτηση replied-to. ΠΡΟΣΟΧΗ: αν απενεργοποιηθεί, επιτρέπει την πλαστοπροσωπία με βάση την διεύθυνση email."
+ find_related_post_with_key: "Χρησιμοποιήστε μόνο το 'reply key' για να βρείτε την ανάρτηση replied-to. ΠΡΟΣΟΧΗ: αν απενεργοποιηθεί, επιτρέπει την πλαστοπροσωπία με βάση την διεύθυνση email."
minimum_topics_similar: "Πόσα νήματα χρειάζεται να υπάρχουν προτού παρουσιαστούν παρόμοια νήματα όταν δημιουργείς νέα νήματα."
relative_date_duration: "Αριθμός ημερών μετά την ανάρτηση όταν οι ημερομηνίες ανάρτησης θα εμφανίζονται ως σχετικές (7ημ) αντί για απόλυτες (20 Φεβ). "
delete_user_max_post_age: "Να μην επιτρέπεται η διαγραφή χρηστών των οποίων η πρώτη ανάρτηση είναι τουλάχιστον (Χ) ημερών. "
@@ -1366,6 +1381,7 @@ el:
enable_user_directory: "Παροχή καταλόγου χρηστών για περιήγηση"
enable_group_directory: "Παροχή καταλόγου με ομάδες για περιήγηση"
enable_category_group_moderation: "Να επιτρέπεται στις ομάδες να συντονίζουν περιεχόμενο σε συγκεκριμένες κατηγορίες"
+ group_in_subject: "Ορίστε το %%{optional_pm} στο θέμα του email στο όνομα της πρώτης ομάδας στο ΠΜ, δείτε: Προσαρμογή μορφής θέματος για τυπικά μηνύματα email (στα Αγγλικά)"
allow_anonymous_mode: "Ενεργοποιήστε την επιλογή για τους χρήστες να μεταβαίνουν σε ανώνυμη λειτουργία για δημοσίευση. Όταν ενεργοποιηθεί, οι χρήστες μπορούν να επιλέξουν την απόκρυψη της ταυτότητάς τους κατά τη δημιουργία αναρτήσεων ή θεμάτων σε ολόκληρο τον ιστότοπο. Δείτε επίσης την επιλογή `allow anonymous likes`."
allow_likes_in_anonymous_mode: "Ενεργοποιήστε αυτήν τη ρύθμιση για να επιτρέψετε στους χρήστες που περιηγούνται στον ιστότοπό σας ανώνυμα να κάνουν \"Μου αρέσει\" σε αναρτήσεις. Όταν ενεργοποιηθεί, οι χρήστες μπορούν να επιλέξουν να αποκρύπτεται η ταυτότητά τους όταν κάνουν \"Μου αρέσει\" σε αναρτήσεις ή θέματα σε ολόκληρο τον ιστότοπο. Αυτή η ρύθμιση απαιτεί την ενεργοποίηση της ρύθμισης `allow anonymous mode`."
anonymous_account_duration_minutes: "Για να προστατευθεί η ανωνυμία δημιούργησε ένα νέο ανώνυμο λογαριασμό κάθε Ν λεπτά για κάθε χρήστη. Παράδειγμα: εάν τεθεί στο 600, μόλις περάσουν 600 λεπτά από την τελευταία ανάρτηση ΚΑΙ ο χρήστης αλλάξει σε ανώνυμος, ένας νέος ανώνυμος λογαριασμός δημιουργείται."
@@ -1375,6 +1391,7 @@ el:
get_a_room_threshold: "Ο αριθμός των αναρτήσεων που πρέπει να κάνει ένας χρήστης στον ίδιο άνθρωπο και στο ίδιο θέμα προτού να προειδοποιηθεί. "
enable_mobile_theme: "Οι κινητές συσκευές χρησιμοποιούν θέματα φιλικά προς τα κινητά, με δυνατότητα αλλαγής στον ολοκληρωμένο ιστότοπο. Απενεργοποιήστε το εάν θέλετε να χρησιμοποιήσετε ένα fully responsive stylesheet."
dominating_topic_minimum_percent: "To ποσοστό αναρτήσεων που πρέπει να κάνει ένας χρήστης σε ένα νήμα πριν ειδοποιηθεί για υπερβολική χρήση του θέματος."
+ pm_warn_user_last_seen_months_ago: "Κατά τη δημιουργία ενός νέου ΠΜ, να προειδοποιούνται οι χρήστες όταν ο παραλήπτης-στόχος δεν έχει εμφανιστεί για περισσότερους από n μήνες."
suppress_uncategorized_badge: "Να μην εμφανίζεται το παράσημο για τα θέματα που δεν ανήκουν σε κατηγορίες στις λίστες θεμάτων."
permalink_normalizations: "Εφαρμόστε την ακόλουθη regex πριν ταιριάξετε τα permalinks, για παράδειγμα: /(topic.*)\\?.*/\\1 θα αφαιρέσει τις συμβολοσειρά για ερώτηση από τις διαδρομές για τα νήματα. Η μορφή είναι regex+συμβολοσειρά χρησημοποιήστε \\ 1 κ.λπ., για να αποκτήσετε πρόσβαση στις συλλήψεις"
global_notice: "Εμφανίστε μια ΕΠΕΙΓΟΥΣΑ, ΕΚΤΑΚΤΗ ΑΝΑΓΚΗ, μη παραβλέψιμη καθολική ειδοποίηση banner σε όλους τους επισκέπτες, αλλάξτε την σε κενό για να την αποκρύψετε (επιτρέπεται HTML)."
@@ -1398,6 +1415,7 @@ el:
approve_post_count: "Ο όγκος των αναρτήσεων ενός καινούριου ή βασικού χρήστη που θα πρέπει να εγκριθεί."
auto_close_messages_post_count: "Ανώταρο όριο αναρτήσεων που επιτρέπονται σε ένα μήνυμα πριν αυτό κλείσει αυτομάτως (0 για απενεργοποιήση)"
auto_close_topics_post_count: "Ανώτατο όριο αναρτήσεων που επιτρέπονται σε ένα νήμα πριν αυτό κλείσει αυτομάτως (0 για απενεργοποίηση)"
+ auto_close_topics_create_linked_topic: "Δημιουργήστε ένα νέο συνδεδεμένο θέμα όταν ένα θέμα κλείνει αυτόματα με βάση τη ρύθμιση 'auto close topics post count'"
code_formatting_style: "Το κουμπί κώδικα στον συνθέτη θα έχει ως αποτέλεσμα αυτό το στυλ μορφοποίησης κώδικα "
max_allowed_message_recipients: "Μέγιστος αριθμός παραληπτών που επιτρέπονται σε ένα μήνυμα"
default_email_digest_frequency: "Πόσο συχνά οι χρήστες λαμβάνουν συνοπτικά email από προεπιλογή."
@@ -1413,7 +1431,7 @@ el:
default_other_enable_quoting: "Ενεργοποίηση απάντησης με παράθεση για επιλεγμένο κείμενο από προεπιλογή"
default_other_enable_markdown_monospace_font: "Χρήση γραμματοσειράς monospace στη λειτουργία Markdown του συνθέτη από προεπιλογή."
default_other_dynamic_favicon: "Δείχνε τον αριθμό νέων/ενημερωμένων θεμάτων στο εικονίδιο του προγράμματος περιήγησης από προεπιλογή. "
- default_other_skip_new_user_tips: "Παράλειψη συμβουλών και σημάτων για την ενσωμάτωση νέου χρήστη."
+ default_other_skip_new_user_tips: "Παράλειψη συμβουλών και παρασήμων για την ενσωμάτωση νέου χρήστη."
default_topics_automatic_unpin: "Αυτόματο ξεκαρφίτσωμα των θεμάτων, όταν ο χρήστης φτάνει στο κάτω μέρος από προεπιλογή."
default_categories_watching: "Λίστα κατηγοριών που επιτηρούνται από προεπιλογή."
default_categories_tracking: "Λίστα κατηγοριών που παρακολουθούνται από προεπιλογή."
@@ -1436,6 +1454,9 @@ el:
suppress_overlapping_tags_in_list: "Αν μία ετικέτα ταιριάζει ακριβώς με μία λέξη στον τίτλο ενός θέματος, τότε μην εμφανίσεις την ετικέτα. "
shared_drafts_allowed_groups: "Να επιτρέπεται στους χρήστες σε αυτές τις ομάδες να βλέπουν και να επεξεργάζονται Κοινόχρηστα Προσχέδια."
enable_desktop_push_notifications: "Ενεργοποιήστε τις ειδοποιήσεις push για τη διεπαφή στους υπολογιστές. Αυτή η λειτουργία επιτρέπει την αποστολή ειδοποιήσεων σε πραγματικό χρόνο από τον ιστότοπο απευθείας στον υπολογιστή σας, ενισχύοντας την αλληλεπίδραση και διασφαλίζοντας ότι οι χρήστες είναι πάντα ενημερωμένοι. Ωστόσο, η αποτελεσματικότητα αυτής της λειτουργίας εξαρτάται από την υποστήριξη του προγράμματος περιήγησης για ειδοποιήσεις push."
+ enable_site_owner_onboarding: "Εμφανίζει ένα πλαίσιο στην αρχική σελίδα στους νέους διαχειριστές για να τους βοηθήσει να ξεκινήσουν. Ενεργοποιήστε ξανά αυτήν τη ρύθμιση για να δείτε ξανά τα βήματα ενσωμάτωσης."
+ impersonate_without_logout: "Να επιτρέπεται στους διαχειριστές να προσποιούνται έναν χρήστη χωρίς να χρειάζεται να αποσυνδεθούν από τον λογαριασμό διαχειριστή τους."
+ experimental_impersonation_time_limit_minutes: "Πόσος χρόνος προτού τερματιστεί αυτόματα μια συνεδρία πλαστοπροσωπίας."
viewport_based_mobile_mode: "Χρησιμοποιήστε το πλάτος του παραθύρου προβολής για να προσδιορίσετε τις λειτουργίες για κινητά/υπολογιστές. Αυτή η ρύθμιση θα καταργηθεί σύντομα. Εάν διαπιστώσετε ότι χρειάζεται να την απενεργοποιήσετε, ενημερώστε μας στο Meta."
floating_dismiss_topics_on_mobile: "Εμφανίζει ένα αιωρούμενο κουμπί \"Παράβλεψη...\" στο κινητό για τη λίστα θεμάτων για ευκολότερη πρόσβαση και για να απελευθερωθεί χώρος στην κορυφή της λίστας θεμάτων"
errors:
@@ -1462,9 +1483,10 @@ el:
email_editable_enabled: "Θα πρέπει να απενεγοποιηθεί το 'email editable' πριν ενεργοποιηθεί αυτή η ρύθμιση."
staged_users_disabled: "Θα πρέπει να ενεργοποιήσετε τους σταδιακούς χρηστες πριν ενεργοποιήσετε αυτή τη ρύθμιση."
reply_by_email_disabled: "Θα πρέπει να ενεργοποιήσετε την απάντηση μέσω email πριν ενεργοποιήσετε αυτή τη ρύθμιση."
- min_username_length_range: "Δεν μπορείς να θέσεις το ελάχιστο πιο πάνω από το μέγιστο"
- max_username_length_range: "Δεν μπορείς να θέσεις το μέγιστο πιο κάτω από το ελάχιστο."
markdown_linkify_tlds: "Δεν μπορείτε να συμπεριλάβετε την τιμή '*'."
+ placeholder:
+ discourse_connect_provider_secrets:
+ key: "www.example.com"
search:
within_post: "#%{post_number} από %{username}"
types:
@@ -1474,10 +1496,14 @@ el:
results_page: "Αποτελέσματα αναζήτησης για '%{term}'"
filter:
description:
+ status_deleted: "Εμφάνιση διαγραμμένων θεμάτων (αν έχετε δικαίωμα)"
in_bookmarked: "Εμφάνιση θεμάτων που έχετε σελιδοδεικτήσει"
in_unseen: "Εμφάνιση θεμάτων που δεν έχετε δει"
order_latest_post: "Ταξινόμηση κατά ημερομηνία τελευταίας ανάρτησης (νεότερη πρώτη)"
order_latest_post_asc: "Ταξινόμηση κατά ημερομηνία τελευταίας ανάρτησης (παλαιότερη πρώτη)"
+ locale: "Φιλτράρισμα θεμάτων ανά πρωτότυπη γλώσσα"
+ locale_any: "Εμφάνιση θεμάτων που γράφτηκαν αρχικά σε οποιαδήποτε από τις καθορισμένες γλώσσες (διαχωρισμένες με κόμμα)"
+ exclude_locale: "Εξαίρεση θεμάτων που γράφτηκαν αρχικά σε μια συγκεκριμένη γλώσσα"
discourse_connect:
login_error: "Σφάλμα Σύνδεσης"
not_found: "Ο λογαριασμός σου δεν ήταν δυνατόν να βρεθεί. Παρακαλώ επικοινώνησε με το διαχειριστή της ιστοσελίδας."
@@ -1489,6 +1515,7 @@ el:
original_poster: "Αρχικός Αναρτητής"
most_recent_poster: "Πιο Πρόσφατος Αναρτητής"
frequent_poster: "Συχνός Αναρτητής"
+ poster_description_joiner: ", "
redirected_to_top_reasons:
new_user: "Καλώς ήλθες στην κοινότητά μας! Αυτά είναι τα πιο δημοφιλή πρόσφατα νήματα συζητήσεων."
not_seen_in_a_month: "Καλώς ήλθες και πάλι! Δε σε έχουμε δει για αρκετό καιρό. Αυτά είναι τα πιο δημοφιλή νήματα συζητήσεων από την τελευταία σου επίσκεψη."
@@ -1595,6 +1622,10 @@ el:
second_factor_backup_description: "Παρακαλώ εισαγάγετε έναν από τους εφεδρικούς κωδικούς σας:"
second_factor_toggle:
backup_code: "Χρησιμοποιήστε αντ 'αυτού έναν εφεδρικό κωδικό"
+ second_factor_auth:
+ actions:
+ discourse_connect_provider:
+ description: "Το %{hostname} σας ζήτησε να επιβεβαιώσετε το 2FA σας. Θα ανακατευθυνθείτε πίσω στον ιστότοπο μόλις επιβεβαιώσετε το 2FA σας."
admin:
email:
sent_test: "στάλθηκε!"
@@ -1772,15 +1803,22 @@ el:
title: "Καλωσόρισμα Χρήστη"
preview: "Καλώς ήλθατε στην %{site_name}!"
subject_template: "Καλώς ήλθατε στην %{site_name}!"
- text_body_template: |2
-
- Ευχαριστούμε για την εγγραφή σας στην %{site_name}, καλώς ορίσατε!
+ text_body_template: |
+ Ευχαριστούμε για την συμμετοχή σας στο %{site_name}, και καλώς ορίσατε!
%{new_user_tips}
- Πιστεύουμε και επικροτούμε την [πολιτισμένη επικοινωνία](%{base_url}/guidelines) στο διαδίκτυο.
+ Πιστεύουμε στην [πολιτισμένη συμπεριφορά της κοινότητας](%{base_url}/guidelines) ανά πάσα στιγμή.
Να περάσετε καλά!
+ welcome_staff:
+ subject_template: "Συγχαρητήρια, σας έχει χορηγηθεί ιδιότητα %{role}!"
+ text_body_template: |
+ Σας έχει χορηγηθεί η ιδιότητα %{role} από ένα μέλος του προσωπικού.
+
+ Ως %{role}, έχετε πλέον πρόσβαση στη διεπαφή διαχειριστή.
+
+ Με μεγάλη δύναμη έρχεται και μεγάλη ευθύνη. Εάν είστε νέοι στη διαχείριση, ανατρέξτε στον [Οδηγό Συντονισμού](https://meta.discourse.org/t/discourse-moderation-guide/63116).
welcome_invite:
title: "Πρόσκληση Καλωσορίσματος"
preview: "Καλώς ήλθατε στην %{site_name}!"
@@ -2056,11 +2094,10 @@ el:
new_user_of_the_month:
title: "Έχεις επιλεχθεί ως Χρήστης του Μήνα!"
subject_template: "Έχεις επιλεχθεί ως Χρήστης του Μήνα!"
- text_body_template: |2
-
- Συγχαρητήρια, κέρδισες το βραβείο **Χρήστης του Μήνα για %{month_year}**. :trophy:
+ text_body_template: |
+ Συγχαρητήρια, κέρδισες το βραβείο **Νέος Χρήστης του Μήνα για %{month_year}**. :trophy:
- Αυτό το βραβείο επονέμεται σε δυο νέους χρήστες κάθε μήνα και θα είναι για πάντα ορατό στην [σελίδα χρήστη](%{url}).
+ Αυτό το βραβείο απονέμεται σε δυο νέους χρήστες κάθε μήνα και θα είναι για πάντα ορατό στη [σελίδα χρήστη](%{url}).
Γίνατε γρήγορα ένα πολύτιμο μέλος της κοινότητάς μας. Σας ευχαριστούμε για την συμμετοχή σας και ελπίζουμε να συνεχίσετε έτσι και στο μέλλον!
queued_posts_reminder:
@@ -2495,6 +2532,7 @@ el:
size_not_found: "Λυπούμαστε, αλλά δεν μπορούμε να καθορίσουμε το μέγεθος της εικόνας. Μήπως η εικόνα σας είναι χαλασμένη;"
placeholders:
too_large: "(εικόνα μεγαλύτερη από %{max_size_kb}KB)"
+ too_large_humanized: "(εικόνα μεγαλύτερη από %{max_size})"
avatar:
missing: "Λυπούμαστε, αλλά δεν μπορέσαμε να βρούμε κάποιο άβαταρ που να αντιστοιχίζεται με τη συγκεκριμένη διεύθυνση email. Μπορείτε να δοκιμάσετε να το ανεβάσετε ξανά;"
flag_reason:
@@ -2574,6 +2612,7 @@ el:
Αυτό το παράσημο χορηγείται όταν φτάσετε στο επίπεδο εμπιστοσύνης 2. Σας ευχαριστούμε που συμμετέχετε για μια περίοδο εβδομάδων για να γίνετε πραγματικά μέλος της κοινότητάς μας. Μπορείτε πλέον να στέλνετε προσκλήσεις από τη σελίδα χρήστη σας ή από μεμονωμένα θέματα, να δημιουργείτε ομαδικά προσωπικά μηνύματα και να έχετε περισσότερα "Μου αρέσει" ανά ημέρα.
regular:
name: Τακτικός
+ description: Χορηγήθηκε ανακατηγοριοποίηση, μετονομασία, σύνδεσμοι που ακολουθούνται, wiki, περισσότερα "Μου αρέσει"
leader:
name: Ηγέτης
description: Χορηγήθηκαν καθολική επεξεργασία, καρφίτσωμα, κλείσιμο, αρχειοθέτηση, διαχωρισμός και συγχώνευση, περισσότερα "Μου αρέσει"
@@ -2599,13 +2638,13 @@ el:
description: Έλαβε 50 "Μου αρέσει" σε μια απάντηση
nice_topic:
name: Καλο Νήμα
- description: Έλαβε 10 "Μου αρέσει" σε ένα νήμα
+ description: Έλαβε 10 "Μου αρέσει" σε ένα θέμα
good_topic:
name: Πολύ Καλό Νήμα
- description: Έλαβε 25 "Μου αρέσει" σε ένα νήμα
+ description: Έλαβε 25 "Μου αρέσει" σε ένα θέμα
great_topic:
name: Υπέροχο Νήμα
- description: Έλαβε 50 "Μου αρέσει" σε ένα νήμα
+ description: Έλαβε 50 "Μου αρέσει" σε ένα θέμα
nice_share:
name: Καλή Κοινοποίηση
description: Κοινοποίησε μια ανάρτηση με 25 μοναδικούς επισκέπτες
@@ -2718,7 +2757,7 @@ el:
name: Πρώτη Επισήμανση
description: Επισήμανε έναν χρήστη σε μία ανάρτηση
long_description: |
- Αυτό το παράσημο απονέμεται την πρώτη φορά που επισημαίνεις το @όνομα χρήστη κάποιου στην ανάρτησή σου. Κάθε επισήμανση δημιουργεί μια ειδοποίηση προς αυτό το άτομο, ώστε να γνωρίζει για την ανάρτησή σου. Απλά ξεκίνα να πληκτρολογείς @ (σύμβολο παπάκι) για να επισημάνεις οποιονδήποτε χρήστη ή, αν επιτρέπεται, ομάδα – είναι ένας βολικός τρόπος να επιστήσεις την προσοχή του σε κάτι.
+ Αυτό το παράσημο χορηγείται την πρώτη φορά που επισημαίνεις το @όνομα χρήστη κάποιου στην ανάρτησή σου. Κάθε επισήμανση δημιουργεί μια ειδοποίηση προς αυτό το άτομο, ώστε να γνωρίζει για την ανάρτησή σου. Απλά ξεκίνα να πληκτρολογείς @ (σύμβολο παπάκι) για να επισημάνεις οποιονδήποτε χρήστη ή, αν επιτρέπεται, ομάδα – είναι ένας βολικός τρόπος να επιστήσεις την προσοχή του σε κάτι.
first_onebox:
name: Πρώτο Onebox
description: Αναρτήθηκε σύνδεσμος ο οποίος είναι oneboxed
@@ -2730,9 +2769,8 @@ el:
new_user_of_the_month:
name: "Νέος Χρήστης του Μήνα"
description: Εξαιρετική συνεισφορά κατά τον πρώτο μήνα
- long_description: |2
-
- Αυτό το βραβείο απονέμεται σε δύο νέους χρήστες κάθε μήνα για την εξαιρετική συνεισφορά τους στην κοινότητα, όπως αυτή μετρήθηκε από το πόσο σύχνα άρεσαν οι αναρτήσεις τους και σε ποιους.
+ long_description: |
+ Αυτό το παράσημο χορηγείται σε δύο νέους χρήστες κάθε μήνα για την εξαιρετική συνεισφορά τους στην κοινότητα, όπως αυτή μετρήθηκε από το πόσο σύχνα άρεσαν οι αναρτήσεις τους και σε ποιους.
enthusiast:
name: Θιασώτης
description: Επισκέφθηκε 10 συνεχόμενες ημέρες
@@ -2753,7 +2791,7 @@ el:
email_input: "Email Διαχειριστή"
submit_button: "Αποστολή Email"
performance_report:
- initial_post_raw: Αυτό το θέμα περιλαμβάνει καθημερινές αναφορές απόδοσης για τη σελίδα σας.
+ initial_post_raw: Αυτό το θέμα περιλαμβάνει καθημερινές αναφορές απόδοσης για τον ιστότοπό σας.
initial_topic_title: Εκθέσεις απόδοσης ιστοσελίδας
tags:
title: "Ετικέτες"
@@ -2774,8 +2812,6 @@ el:
title: "Έναρξη ασφαλούς λειτουργίας"
enter: "Έναρξη Ασφαλούς Λειτουργίας"
must_select: "Θα πρέπει να διαλέξτε τουλάχιστον μία επιλογή για να εισέλθετε σε ασφαλή λειτοθργία."
- dev_mode:
- enter: "Enter"
wizard:
title: "Εγκατάσταση Discourse"
step:
@@ -2790,7 +2826,10 @@ el:
private:
label: "Ιδιωτική"
onebox:
+ gitlab:
+ show_original: "εμφάνιση πρωτότυπου"
github:
+ show_original: "εμφάνιση πρωτότυπου"
closed: "κλειστό"
review_by: "Έλεγχος από"
status_date:
@@ -2959,8 +2998,6 @@ el:
complete: "Η ανάρτηση εγκρίθηκε και επανεμφανίστηκε"
post_actions:
bundle_title: "Τι θέλετε να κάνετε με την ανάρτηση;"
- no_action_post:
- title: "Καμία ενέργεια"
delete_post:
title: "Διαγραφή ανάρτησης"
description: "Διαγραφή ανάρτησης"
@@ -2981,14 +3018,8 @@ el:
title: "Επεξεργασία ανάρτησης"
description: "Επεξεργασία του περιεχομένου αυτής της ανάρτησης"
complete: "Η ανάρτηση τροποποιήθηκε"
- convert_to_pm:
- title: "Μετατροπή σε ΠΜ"
- description: "Μετατρέψτε αυτήν την ανάρτηση σε προσωπικό μήνυμα"
- complete: "Η ανάρτηση μετατράπηκε σε προσωπικό μήνυμα"
user_actions:
bundle_title: "Τι θέλετε να κάνετε με τον χρήστη;"
- no_action_user:
- title: "Καμία ενέργεια"
silence_user:
title: "Σίγαση χρήστη"
description: "Αποτρέψτε τον χρήστη από το να δημοσιεύσει"
@@ -3012,6 +3043,12 @@ el:
title: "Διαγραφή & αποκλεισμός"
description: "Διαγραφή του χρήστη και αποκλεισμός της IP/διεύθυνσης email του"
complete: "Ο χρήστης διαγράφηκε και αποκλείστηκε"
+ create_linked_topic:
+ topic_title_with_sequence:
+ one: "%{topic_title} (Μέρος %{count})"
+ other: "%{topic_title} (Μέρος %{count})"
+ post_raw: "Συνέχεια της συζήτησης από %{parent_url}.\n\nΠροηγούμενες συζητήσεις:\n\n%{previous_topics}"
+ small_action_post_raw: "Συνεχίστε τη συζήτηση στο %{new_title}."
fallback_username: "χρήστης"
activemodel:
errors:
diff --git a/config/locales/server.en.yml b/config/locales/server.en.yml
index 6a9ed2aac5b0c..565be4c9d8dc1 100644
--- a/config/locales/server.en.yml
+++ b/config/locales/server.en.yml
@@ -9,17 +9,17 @@ en:
datetime_formats: &datetime_formats
formats:
- # Format directives: https://ruby-doc.org/core/Time.html#method-i-strftime
+ # Format directives: https://ruby-doc.org/core/strftime_formatting_rdoc.html
short: "%m-%d-%Y"
- # Format directives: https://ruby-doc.org/core/Time.html#method-i-strftime
+ # Format directives: https://ruby-doc.org/core/strftime_formatting_rdoc.html
short_no_year: "%B %-d"
- # Format directives: https://ruby-doc.org/core/Time.html#method-i-strftime
+ # Format directives: https://ruby-doc.org/core/strftime_formatting_rdoc.html
date_only: "%B %-d, %Y"
- # Format directives: https://ruby-doc.org/core/Time.html#method-i-strftime
+ # Format directives: https://ruby-doc.org/core/strftime_formatting_rdoc.html
long: "%B %-d, %Y, %l:%M%P"
- # Format directives: https://ruby-doc.org/core/Time.html#method-i-strftime
+ # Format directives: https://ruby-doc.org/core/strftime_formatting_rdoc.html
no_day: "%B %Y"
- # Format directives: https://ruby-doc.org/core/Time.html#method-i-strftime
+ # Format directives: https://ruby-doc.org/core/strftime_formatting_rdoc.html
calendar_ics: "%Y%m%dT%H%M%SZ"
date:
# Do not remove the brackets and commas and do not translate the first month name. It should be "null".
@@ -286,6 +286,7 @@ en:
errors: &errors
format: ! "%{attribute} %{message}"
format_with_full_message: "%{attribute}: %{message}"
+ diff_too_complex: "The diff is too complex to compute safely. Please try smaller edits."
messages:
invalid_locale: "%{invalid_locale} is not a valid locale"
too_long_validation:
@@ -892,6 +893,12 @@ en:
other: "Can't delete this category because it has %{count} topics. Oldest topic is %{topic_link}."
topic_exists_no_oldest: "Can't delete this category because topic count is %{count}."
uncategorized_description: "Topics that don't need a category, or don't fit into any other existing category."
+
+ category_types:
+ discussion:
+ name: "Discussion"
+ description: "General discussion topics"
+
trust_levels:
admin: "Admin"
staff: "Staff"
@@ -1814,6 +1821,8 @@ en:
max_oneboxes_per_post: "Set the maximum number of oneboxes that can be included in a single post. Oneboxes provide a preview of linked content within the post."
facebook_app_access_token: "A token generated from your Facebook app ID and secret. Used to generate Instagram oneboxes."
github_onebox_access_tokens: "A mapping of a GitHub organisation or user to a GitHub access token which is used to generate GitHub oneboxes for private repos, commits, pull requests, issues, and file contents. Without this, only public GitHub URLs will be oneboxed."
+ reddit_onebox_client_id: "Reddit API OAuth client ID used for authenticated Reddit oneboxes. Create a 'script' type app at reddit.com/prefs/apps to obtain credentials."
+ reddit_onebox_client_secret: "Reddit API OAuth client secret used for authenticated Reddit oneboxes. Found under the 'script' type app created at reddit.com/prefs/apps."
logo: "The logo image at the top left of your site. Use a wide rectangular image with a height of 120 and an aspect ratio greater than 3:1. If left blank, the site title text will be shown."
logo_small: "The small logo image at the top left of your site, seen when scrolling down. Use a square 120 × 120 image. If left blank, a home glyph will be shown."
@@ -2340,6 +2349,7 @@ en:
mailgun_api_key: "Mailgun Secret API key used to verify webhook messages."
sendgrid_verification_key: "Sendgrid verification key used to verify webhook messages."
mailjet_webhook_token: "Token used to verify webhook payload. It must be passed as the 't' query parameter of the webhook, for example: https://example.com/webhook/mailjet?t=supersecret"
+ mailpace_webhook_token: "Token used to verify webhook payload. It must be passed as the 't' query parameter of the webhook, for example: https://example.com/webhook/mailpace?t=supersecret"
mandrill_authentication_key: "Mandrill authentication key used to verify webhook messages."
postmark_webhook_token: "Token used to verify webhook payload. It must be passed as the 't' query parameter of the webhook, for example: https://example.com/webhook/postmark?t=supersecret"
sparkpost_webhook_token: "Token used to verify webhook payload. It must be passed as the 't' query parameter of the webhook, for example: https://example.com/webhook/sparkpost?t=supersecret"
@@ -2427,7 +2437,7 @@ en:
anonymous_posting_allowed_groups: "Groups that are allowed to enable anonymous posting. This setting requires the `allow anonymous mode` setting to be enabled."
anonymous_account_duration_minutes: "To protect anonymity create a new anonymous account every N minutes for each user. Example: if set to 600, as soon as 600 minutes elapse from last post AND user switches to anon, a new anonymous account is created."
- hide_user_profiles_from_public: "Disable user cards, user profiles and user directory for anonymous users."
+ hide_user_profiles_from_public: "Disable user cards and user profiles for anonymous users. Aggregated stats will still be available in the user directory."
hide_new_user_profiles: "Hide trust level 1 or lower user profiles from the public and trust level 1 users until they post for the first time. This feature is disabled unconditionally on must_approve_users and invite_only sites."
allow_users_to_hide_profile: "Allow users to hide their profile and presence"
hide_user_activity_tab: "Hide the activity tab on user profiles except for Admin and self."
@@ -2757,6 +2767,7 @@ en:
enable_simplified_category_creation: "Enables a simplified category creation flow with fewer options and a cleaner interface."
enable_custom_splash_screen: "Allows customizing the loading splash screen with your own SVG image. Upload an image via the 'splash screen image' setting. Warning: This may negatively impact LCP scores and Google indexing."
modernize_foundation_theme: "This change introduces design modifcations to the Foundation theme in Discourse."
+ reporting_improvements: "Improvements to navigation, design, and usability for Discourse's admin reports."
errors:
invalid_css_color: "Invalid color. Enter a color name or hex value."
@@ -2804,12 +2815,12 @@ en:
reply_by_email_disabled: "You must first enable 'reply by email' before enabling this setting."
discourse_connect_url_is_empty: "You must set a 'discourse connect url' before enabling this setting."
enable_local_logins_disabled: "You must first enable 'enable local logins' before enabling this setting."
- min_username_length_exists: "You cannot set the minimum username length above the shortest username (%{username})."
- min_group_name_length_exists: "You cannot set the minimum group name length above the shortest group name (%{group_name})."
- min_username_length_range: "You cannot set the minimum above the maximum."
- max_username_length_exists: "You cannot set the maximum username length below the longest username (%{username})."
- max_group_name_length_exists: "You cannot set the maximum group name length below the longest group name (%{group_name})."
- max_username_length_range: "You cannot set the maximum below the minimum."
+ min_username_length_exists: "You cannot set 'min username length' above the shortest username (%{username})."
+ min_group_name_length_exists: "You cannot set 'min username length' above the shortest group name (%{group_name})."
+ min_username_length_range: "You cannot set 'min username length' above 'max username length'."
+ max_username_length_exists: "You cannot set 'max username length' below the longest username (%{username})."
+ max_group_name_length_exists: "You cannot set 'max username length' below the longest group name (%{group_name})."
+ max_username_length_range: "You cannot set the 'max username length' below 'min username length'."
invalid_hex_value: "Color values have to be 6-digit hexadecimal codes."
empty_selectable_avatars: "You must first upload at least two selectable avatars before enabling this setting."
category_search_priority:
@@ -2876,7 +2887,6 @@ en:
exclude_tag: "Exclude topics with a specific tag"
exclude_tags_any: "Exclude topics with any of the specified tags (comma-separated)"
exclude_tags_all: "Exclude topics with all of the specified tags (plus-separated)"
- tags_alias: "Alias for 'tag:' filter"
tag_group: "Show topics with tags from a specific tag group"
exclude_tag_group: "Exclude topics with tags from a specific tag group"
activity_before: "Show topics with last activity before a date (YYYY-MM-DD or days ago)"
diff --git a/config/locales/server.es.yml b/config/locales/server.es.yml
index 00e0f7f887c37..ab1266fac068b 100644
--- a/config/locales/server.es.yml
+++ b/config/locales/server.es.yml
@@ -60,8 +60,6 @@ es:
inline_oneboxer:
topic_page_title_post_number: "nº %{post_number}"
topic_page_title_post_number_by_user: "nº %{post_number} por %{username}"
- too_many_urls: "No se pueden incluir más de 10 URL en una única solicitud de onebox."
- concurrency_not_allowed: "No se permiten solicitudes simultáneas de inline-oneboxing. Envía una sola solicitud a la vez."
components:
enabled_filter: "Activado"
disabled_filter: "Desactivado"
@@ -344,7 +342,6 @@ es:
slow_down_crawler_user_agent_must_be_at_least_3_characters: "Los agentes de usuario deben tener al menos 3 caracteres para evitar limitar accidentalmente la velocidad de los usuarios legítimos."
slow_down_crawler_user_agent_cannot_be_popular_browsers: "No puedes añadir ninguno de los siguientes valores a este ajuste: %{values}."
strip_image_metadata_cannot_be_disabled_if_composer_media_optimization_image_enabled: "No es posible desactivar «strip image metadata» si el ajuste «composer media optimization image enabled» está activado. Desactiva «composer media optimization image enabled» antes de desactivar «strip image metadata»."
- x_summary_large_image_no_svg: "Las imágenes de resumen de Twitter usadas para los metadatos de twitter:image no pueden ser .svg"
tl0_and_anonymous_flag: "Debes proporcionar el «site contact email» (correo electrónico de contacto del sitio) o la «email address to report illegal content» (dirección de correo electrónico para denunciar contenido ilegal) para los usuarios anónimos."
allow_likes_in_anonymous_mode_without_anonymous_mode_enabled: "Este ajuste requiere que primero se active el ajuste «allow anonymous mode»."
conflicting_google_user_id: 'El ID de la cuenta Google para esta cuenta ha cambiado; el personal debe intervenir por razones de seguridad. Ponte en contacto con el personal y envía esta referencia
https://meta.discourse.org/t/76575'
@@ -1776,7 +1773,6 @@ es:
slow_down_crawler_rate: "Si slow_down_crawler_user_agents es especificado, esta proporción aplicará para todos los crawlers (número de segundos de demora entre solicitudes)"
content_security_policy: "Activa la Política de Seguridad de Contenidos (CSP). La CSP es una capa adicional de seguridad que ayuda a evitar ciertos tipos de ataques, como el Cross Site Scripting (XSS) y la inyección de datos."
content_security_policy_report_only: "Activar la política de seguridad de contenido de solo denuncias (CSP)"
- content_security_policy_collect_reports: "Activar la recolección de denuncias de violación de CSP en /csp_reports"
content_security_policy_frame_ancestors: "Restringir quién puede incrustar este sitio en iframes a través de CSP. Controla los hosts permitidos en Insertado"
content_security_policy_script_src: "Fuentes de scripts adicionales permitidas. El host actual y la CDN se incluyen por defecto. Ver Mitigar los ataques XSS con la Política de Seguridad de Contenidos. (CSP). Otras fuentes de host se ignoran, ya que está activada la dinámica estricta."
invalidate_inactive_admin_email_after_days: "Las cuentas administrativas que no hayan visitado la página en este número de días deberán validar de nuevo su dirección de correo electrónico antes de iniciar sesión. Establecer a 0 para desactivar."
@@ -2093,7 +2089,6 @@ es:
alternative_reply_by_email_addresses: "Lista de plantillas alternativa para las direcciones de respuesta por correo electrónico. Ejemplo: %%{reply_key}@reply.example.com|replies+%%{reply_key}@example.com"
incoming_email_prefer_html: "Usar el HTML en vez del texto para los correos electrónicos entrantes."
strip_incoming_email_lines: "Elimina los espacios en blanco iniciales y finales de cada línea de correos electrónicos entrantes."
- disable_emails: "Evite que el Discourse envíe cualquier clase de correo electrónico. Seleccione «sí» para desactivar los correos electrónicos a todos los usuarios. Seleccione «no staff» para desactivar los correos electrónicos solo para usuarios que no formen parte del personal."
strip_images_from_short_emails: "Quitar imágenes que tengan un tamaño menor a 2800 Bytes de los correos electrónicos"
short_email_length: "Define la longitud máxima, en bytes, para que un correo electrónico se clasifique como «corto» para la supresión de imágenes. Si el tamaño de un correo electrónico no supera este valor, se eliminarán todas las imágenes (como avatares y emojis) que contenga."
display_name_on_email_from: "Mostrar nombres completos en los campos de remitente de correos electrónicos"
@@ -2373,7 +2368,6 @@ es:
dashboard_hidden_reports: "Permitir ocultar los informes especificados del panel de control."
dashboard_visible_tabs: "Elige qué pestañas del panel de control se mostrarán."
dashboard_general_tab_activity_metrics: "Selecciona las denuncias que se muestran como medidas de actividad en la pestaña general."
- gravatar_enabled: "Usa el servicio Gravatar para los avatares de usuario. Esto evitará que los usuarios cambien a Gravatar para sus avatares, pero no afectará a quienes ya lo usan."
gravatar_name: "Especifica el nombre del proveedor del servicio Gravatar. Este nombre se utiliza normalmente para identificar la fuente que proporciona avatares Gravatar al sitio."
gravatar_base_url: "Especifica la URL para acceder a la API del proveedor de Gravatar. Este ajuste es fundamental para convertir las direcciones de correo electrónico en URL de Gravatar, donde se almacenan las imágenes de avatar."
gravatar_login_url: "URL relativa a «gravatar_base_url», que proporciona al usuario el acceso al servicio Gravatar."
@@ -2454,12 +2448,6 @@ es:
reply_by_email_disabled: "Primero debes activar «responder por correo electrónico» antes de activar esta configuración."
discourse_connect_url_is_empty: "Debes rellenar «discourse connect url» antes de activar este ajuste."
enable_local_logins_disabled: "Primero debes activar «activar inicio de sesión local» antes de activar esta configuración."
- min_username_length_exists: "No puede establecer la longitud de usuario mínima por encima del nombre de usuario más corto (%{username})"
- min_group_name_length_exists: "No puedes establecer la longitud de nombre de usuario mínima por encima del nombre de grupo más corto (%{group_name})"
- min_username_length_range: "No puedes establecer el mínimo por encima del máximo."
- max_username_length_exists: "No puedes establecer la longitud de usuario máxima por debajo del nombre de usuario más largo (%{username})."
- max_group_name_length_exists: "No puedes establecer la longitud de nombre usuario máxima por debajo del nombre de grupo más largo (%{group_name})."
- max_username_length_range: "No puedes establecer el máximo por debajo del mínimo."
invalid_hex_value: "Los colores debe ser códigos hexadecimalesde 6 dígitos."
empty_selectable_avatars: "Debes subir al menos dos avatares seleccionables antes de activar esta configuración."
category_search_priority:
@@ -2518,7 +2506,6 @@ es:
exclude_tag: "Excluir temas con una etiqueta específica"
exclude_tags_any: "Excluir temas con cualquiera de las etiquetas especificadas (separadas por comas)"
exclude_tags_all: "Excluir temas con todas las etiquetas especificadas (separadas por comas)"
- tags_alias: "Alias para el filtro «etiqueta:»"
tag_group: "Mostrar temas con etiquetas de un grupo de etiquetas específico"
exclude_tag_group: "Excluir temas con etiquetas de un grupo de etiquetas específico"
activity_before: "Mostrar temas con última actividad antes de una fecha (AAAA-MM-DD o hace días)"
@@ -4914,8 +4901,6 @@ es:
deprecation_error_label: Hacer que las depreciaciones de Javascript produzcan un error
enter: "Activar modo seguro"
must_select: "Debes escoger al menos una opción para entrar en el modo seguro."
- dev_mode:
- enter: "Intro"
wizard:
title: "Instalación de Discourse"
step:
@@ -5184,10 +5169,6 @@ es:
complete: "Se ha aprobado la publicación y se ha dejado de ocultar"
post_actions:
bundle_title: "¿Qué quieres hacer con la publicación?"
- no_action_post:
- title: "Ninguna acción"
- description: "No hacer nada"
- complete: "No se ha tomado ninguna medida al respecto"
delete_post:
title: "Eliminar publicación"
description: "Eliminar esta publicación"
@@ -5208,16 +5189,8 @@ es:
title: "Editar publicación"
description: "Editar el contenido de esta publicación"
complete: "Publicación editada"
- convert_to_pm:
- title: "Convertir en mensaje personal"
- description: "Convertir esta publicación en un mensaje personal"
- complete: "Publicación convertida en mensaje personal"
user_actions:
bundle_title: "¿Qué quieres hacer con el usuario?"
- no_action_user:
- title: "Ninguna acción"
- description: "No hacer nada con el usuario"
- complete: "No se ha tomado ninguna medida contra el usuario"
silence_user:
title: "Silenciar al usuario"
description: "Evitar que el usuario siga publicando"
diff --git a/config/locales/server.et.yml b/config/locales/server.et.yml
index 3720668ba1f82..cfb713ae6261b 100644
--- a/config/locales/server.et.yml
+++ b/config/locales/server.et.yml
@@ -775,8 +775,6 @@ et:
suppress_overlapping_tags_in_list: "Ära näita silti, kui see ühtib täpselt sõnaga teema päses"
errors:
invalid_integer: "Väärtuseks peab olema täisarv."
- min_username_length_range: "Minimaalne ei tohi olla maksimaalsest suurem."
- max_username_length_range: "Sa ei tohi maksimaalset seada minimaalsest väiksemaks."
search:
within_post: "postituse nr%{post_number} tegi %{username}"
types:
@@ -1100,12 +1098,8 @@ et:
title: "Jah"
approve_and_unhide:
title: "Jah"
- no_action_post:
- title: "Tegevust pole"
delete_post:
complete: "Postitus kustutatud"
- no_action_user:
- title: "Tegevust pole"
delete_user:
complete: "Kasutaja kustutatud"
fallback_username: "kasutaja"
diff --git a/config/locales/server.fa_IR.yml b/config/locales/server.fa_IR.yml
index 663e6fac9d329..e679e6d5daca7 100644
--- a/config/locales/server.fa_IR.yml
+++ b/config/locales/server.fa_IR.yml
@@ -58,8 +58,6 @@ fa_IR:
inline_oneboxer:
topic_page_title_post_number: "#%{post_number}"
topic_page_title_post_number_by_user: "#%{post_number} توسط %{username}"
- too_many_urls: "نمی توان بیش از ۱۰ نشانی وب را در یک درخواست به صورت inline در یک جعبه قرار داد."
- concurrency_not_allowed: "درخواستهای inline-oneboxing همزمان مجاز نیستند. لطفاً هر بار یک درخواست ارسال کنید."
components:
enabled_filter: "فعال شده"
disabled_filter: "غیرفعال"
@@ -335,7 +333,6 @@ fa_IR:
cors_origins_should_not_have_trailing_slash: "شما نباید اسلش انتهایی (/) را به مبدا CORS اضافه کنید."
slow_down_crawler_user_agent_must_be_at_least_3_characters: "یوزر ایجینت باید حداقل 3 کاراکتر داشته باشند تا از محدود شدن نرخ درخواست کاربران قانونی به صورت تصادفی جلوگیری شود."
slow_down_crawler_user_agent_cannot_be_popular_browsers: "شما نمی توانید هیچ یک از مقادیر زیر را به تنظیمات اضافه کنید: %{values}."
- x_summary_large_image_no_svg: "تصاویر خلاصه توییتر مورد استفاده برای ابرداده twitter:image نمی توانند یک تصویر .svg باشند."
tl0_and_anonymous_flag: "برای کاربران ناشناس باید «ایمیل تماس با سایت» یا «آدرس ایمیل برای گزارش محتوای غیرقانونی» ارائه شود."
allow_likes_in_anonymous_mode_without_anonymous_mode_enabled: "این تنظیم نیاز دارد که ابتدا تنظیمات «فعالسازی حالت ناشناس» فعال باشد."
conflicting_google_user_id: 'شناسه حساب Google برای این حساب تغییر کرده است. مداخله کارکنان به دلایل امنیتی لازم است. لطفاً با کارکنان تماس بگیرید و به آنها نشان دهید
https://meta.discourse.org/t/76575'
@@ -1782,8 +1779,6 @@ fa_IR:
reply_by_email_address_is_empty: "باید یک 'آدرس پاسخ با ایمیل' قبل از فعالسازی پاسخ با ایمیل تنظیم کنید."
user_locale_not_enabled: "قبل از فعالسازی این قسمت، ابتدا باید 'اجازه انتخاب زبان' را به کاربر بدهید."
invalid_regex: "الگوی regex نامعتبر یا غیرمجاز است."
- min_username_length_range: "شما نمیتوانید مقدار حداقل را بیشتر از حداکثر قرار دهید."
- max_username_length_range: "شما نمیتوانید حداکثر را کمتر از حداقل قرار دهید."
markdown_linkify_tlds: "شما مقدار «*» را نمیتوانید وارد کنید."
content_localization_locale_limit: "تعداد زبانهای پشتیبانیشده نمیتواند بیش از %{max} باشد."
placeholder:
@@ -2759,8 +2754,6 @@ fa_IR:
title: "ورود به حالت امن"
no_themes: "غیرفعال کردن پوستهها و اجزای پوسته"
enter: "فعالسازی حالت امن"
- dev_mode:
- enter: "وارد شدن "
wizard:
title: "راه اندازی Discourse"
step:
@@ -2869,15 +2862,11 @@ fa_IR:
title: "بله"
approve_and_unhide:
title: "بله"
- no_action_post:
- title: "هیچ اقدامی"
delete_post:
title: "حذف نوشته"
complete: "نوشته حذف شده"
restore_post:
title: "بازیابی نوشته"
- no_action_user:
- title: "هیچ اقدامی"
suspend_user:
title: "کاربر تعلیق شده"
delete_user:
diff --git a/config/locales/server.fi.yml b/config/locales/server.fi.yml
index d75edee5d703a..dcf6113236096 100644
--- a/config/locales/server.fi.yml
+++ b/config/locales/server.fi.yml
@@ -60,8 +60,6 @@ fi:
inline_oneboxer:
topic_page_title_post_number: "%{post_number}"
topic_page_title_post_number_by_user: "#%{post_number} käyttäjältä %{username}"
- too_many_urls: "Yhdessä pyynnössä ei voi olla yli 10:tä URL-osoitetta yhdessä tekstiin sidotussa oneboxissa."
- concurrency_not_allowed: "Samanaikaisia tekstiin sidottuja oneboxing-pyyntöjä ei sallita. Lähetä yksi pyyntö kerrallaan."
components:
enabled_filter: "Käytössä"
disabled_filter: "Pois käytöstä"
@@ -344,7 +342,6 @@ fi:
slow_down_crawler_user_agent_must_be_at_least_3_characters: "Käyttäjäagenttien täytyy sisältää vähintään kolme merkkiä aitojen käyttäjien pyyntöjen virheellisen rajoittamisen välttämiseksi."
slow_down_crawler_user_agent_cannot_be_popular_browsers: "Et voi lisätä asetukseen mitään seuraavista arvoista: %{values}."
strip_image_metadata_cannot_be_disabled_if_composer_media_optimization_image_enabled: "Et voi poistaa kuvan metatietojen poistoa käytöstä, jos 'composer media optimization image enabled' on käytössä. Poista 'composer media optimization image enabled' käytöstä ennen kuvien metatietojen poiston poistamista käytöstä."
- x_summary_large_image_no_svg: "Twitterin yhteenvetokuvat, joita käytetään twitter:image-metatiedoissa, eivät voi olla .svg-kuvia."
tl0_and_anonymous_flag: "Joko \"site contact email\" tai \"email address to report illegal content\" täytyy antaa anonyymeille käyttäjille."
allow_likes_in_anonymous_mode_without_anonymous_mode_enabled: "Tämä asetus edellyttää, että \"allow anonymous mode\" -asetus otetaan ensin käyttöön."
conflicting_google_user_id: 'Tämän tilin Google-tilitunnus on muuttunut. Henkilökunnan toimenpiteet ovat tarpeen tietoturvasyistä. Ota yhteyttä henkilökuntaan ja ohjaa heidät osoitteeseen
https://meta.discourse.org/t/76575'
@@ -1774,7 +1771,6 @@ fi:
slow_down_crawler_rate: "Jos slow_down_crawler_user_agents on määritelty, tämä nopeusrajoitus koskee kaikkia hakurobotteja (kuinka monta sekuntia pitää kulua pyyntöjen välillä)"
content_security_policy: "Ota Content-Security-Policy (CSP) käyttöön. CSP on ylimääräinen suojaustaso, joka auttaa estämään tietyntyyppiset hyökkäykset, kuten Cross Site Scriptingin (XSS) ja tietojen lisäyksen."
content_security_policy_report_only: "Käytä epäilyttävän sisällön raportointia (Content-Security-Policy-Report-Only)"
- content_security_policy_collect_reports: "Ota käyttöön CSP-seulontojen kerääminen lokiin kohteessa /csp_reports"
content_security_policy_frame_ancestors: "Rajoita sitä, ketkä voivat upottaa tämän sivuston iframe-kehyksiin CSP:n kautta. Hallitse sallittuja isäntiä Upottaminen-sivulla"
content_security_policy_script_src: "Muut sallitut skriptilähteet. Nykyinen palvelin ja CDN sallitaan oletuksena. Katso Mitigate XSS Attacks with Content Security Policy. (CSP) Muut isäntälähteet ohitetaan, koska strict-dynamic on käytössä."
invalidate_inactive_admin_email_after_days: "Ylläpitäjätilit, jotka eivät ole vierailleet sivustolla näin moneen päivään, joutuvat vahvistamaan sähköpostiosoitteensa uudelleen ennen sisäänkirjautumista. Aseta 0 poistaaksesi käytöstä."
@@ -2091,7 +2087,6 @@ fi:
alternative_reply_by_email_addresses: "Lista vaihtoehtoisista saapuvien sähköpostivastausten sähköpostiosoitekaavoista, esimerkiksi: %%{reply_key}@reply.esimerkki.fi tai replies+%%{reply_key}@esimerkki.fi"
incoming_email_prefer_html: "Käytä HTML:ää tekstin sijaan saapuvissa sähköposteissa."
strip_incoming_email_lines: "Poista saapuvien sähköpostien jokaisen rivin alusta ja lopusta tyhjät merkit."
- disable_emails: "Estä Discoursea lähettämästä minkäänlaisia sähköposteja. Ota pois sähköpostit kaikilta käyttäjiltä valitsemalla \"yes\" . \"Non-staff\" poistaa sähköpostit vain muilta kuin henkilökunnalta."
strip_images_from_short_emails: "Poista kuvat sähköposteista, joiden koko on alle 2 800 tavua"
short_email_length: "Määritä enimmäispituus tavuina lyhyeksi luokitellulle sähköpostille kuvien rajoittamista varten. Jos sähköpostin koko ei ylitä tätä asetusta, kaikki sähköpostissa olevat kuvat (kuten avatarit ja emojit) poistetaan."
display_name_on_email_from: "Näytä sähköpostien lähettäjinä käyttäjien koko nimet"
@@ -2370,7 +2365,6 @@ fi:
dashboard_hidden_reports: "Salli tiettyjen raporttien piilottaminen hallintapaneelista."
dashboard_visible_tabs: "Valitse mitkä hallintapaneelin välilehdet ovat näkyvillä."
dashboard_general_tab_activity_metrics: "Valitse raportit, jotka näytetään aktiivisuusmittareina Yleistä-välilehdellä."
- gravatar_enabled: "Käytä Gravatar-palvelua käyttäjien avatareille. Tämä estää käyttäjiä vaihtamasta Gravatariin avatareillaan, mutta ei vaikuta käyttäjiin, jotka jo käyttävät sitä."
gravatar_name: "Määritä Gravatar-palveluntarjoajan nimi. Tätä nimeä käytetään yleensä Gravatar-avatareita sivustolle tarjoavan lähteen tunnistamiseen."
gravatar_base_url: "Määritä Gravatar-palveluntarjoajan APIn URL-osoite. Tämä asetus on ehdottoman tärkeä muunnettaessa sähköpostiosoitteita Gravatarin URL-osoitteiksi, joihin avatar-kuvat on tallennettu."
gravatar_login_url: "URL suhteessa gravatar_base_url-osoitteeseen, jolla käyttäjä kirjautuu Gravatar-palveluun."
@@ -2451,12 +2445,6 @@ fi:
reply_by_email_disabled: "Vastaus sähköpostilla täytyy ottaa käyttöön ennen tämän asetuksen käyttöönottoa."
discourse_connect_url_is_empty: "Sinun täytyy määrittää \"discourse connect url'\" ennen kuin otat tämän asetuksen käyttöön."
enable_local_logins_disabled: "Paikalliset kirjautumiset täytyy ottaa käyttöön ennen tämän asetuksen käyttöönottoa."
- min_username_length_exists: "Käyttäjätunnuksen vähimmäispituus ei voi olla suurempi kuin lyhin käyttäjätunnus (%{username})."
- min_group_name_length_exists: "Käyttäjätunnuksen vähimmäispituutta ei voi asettaa lyhintä ryhmän nimeä (%{group_name}) pidemmäksi."
- min_username_length_range: "Vähimmäisarvo ei voi olla suurempi kuin enimmäisarvo."
- max_username_length_exists: "Käyttäjätunnuksen enimmäispituus ei voi olla suurempi kuin pisin käyttäjätunnus (%{username})."
- max_group_name_length_exists: "Käyttäjätunnuksen enimmäispituutta ei voi asettaa pisintä ryhmän nimeä (%{group_name}) lyhyemmäksi."
- max_username_length_range: "Enimmäisarvo ei voi olla pienempi kuin vähimmäisarvo."
invalid_hex_value: "Väriarvon täytyy olla kuusinumeroinen heksadesimaalikoodi."
empty_selectable_avatars: "Sinun täytyy ladata ensin vähintään kaksi valittavaa avataria ennen kuin otat tämän asetuksen käyttöön."
category_search_priority:
@@ -2515,7 +2503,6 @@ fi:
exclude_tag: "Jätä pois ketjut tietyllä tunnisteella"
exclude_tags_any: "Jätä pois ketjut millä tahansa määritetyillä tunnisteilla (pilkuilla erotettuna)"
exclude_tags_all: "Jätä pois ketjut kaikilla määritetyillä tunnisteilla (plus-merkillä erotettuna)"
- tags_alias: "Alias \"tag:\"-suodattimelle"
tag_group: "Näytä ketjut, joilla on tietyn tunnisteiryhmän tunnisteita"
exclude_tag_group: "Jätä pois ketjut, joilla on tietyn tunnisteiryhmän tunnisteita"
activity_before: "Näytä ketjut, joissa viimeisin toiminta on ennen tiettyä päivämäärää (VVVV-KK-PP tai päivää sitten)"
@@ -4808,8 +4795,6 @@ fi:
deprecation_error_label: Aseta Javascriptin vanhentumiset aiheuttamaan virhe
enter: "Siirry vikasietotilaan"
must_select: "Ainakin yksi on valittava, jotta voi siirtyä vikasietotilaan."
- dev_mode:
- enter: "Enter"
wizard:
title: "Discoursen asennus"
step:
@@ -5067,8 +5052,6 @@ fi:
approve_and_unhide:
title: "Kyllä"
complete: "Viesti hyväksytty ja näkyvissä"
- no_action_post:
- title: "Ei toimintaa"
delete_post:
title: "Poista viesti"
complete: "Viesti poistettu"
@@ -5077,8 +5060,6 @@ fi:
restore_post:
title: "Palauta viesti"
complete: "Viesti palautettu"
- no_action_user:
- title: "Ei toimintaa"
silence_user:
title: "Hiljennä käyttäjä"
complete: "Käyttäjä hiljennetty"
diff --git a/config/locales/server.fr.yml b/config/locales/server.fr.yml
index 53804eb635bfe..dc8faeddfc492 100644
--- a/config/locales/server.fr.yml
+++ b/config/locales/server.fr.yml
@@ -60,8 +60,6 @@ fr:
inline_oneboxer:
topic_page_title_post_number: "numéro %{post_number}"
topic_page_title_post_number_by_user: "#%{post_number} par %{username}"
- too_many_urls: "Impossible d'intégrer plus de 10 URL dans une seule requête."
- concurrency_not_allowed: "Les demandes simultanées de « inline-oneboxing » ne sont pas autorisées. Veuillez envoyer une demande à la fois."
components:
enabled_filter: "Activé"
disabled_filter: "Désactivé"
@@ -344,7 +342,6 @@ fr:
slow_down_crawler_user_agent_must_be_at_least_3_characters: "Les agents utilisateurs doivent comporter au moins 3 caractères pour éviter de limiter accidentellement le débit des utilisateurs légitimes."
slow_down_crawler_user_agent_cannot_be_popular_browsers: "Vous ne pouvez ajouter aucune des valeurs suivantes au paramètre : %{values}."
strip_image_metadata_cannot_be_disabled_if_composer_media_optimization_image_enabled: "Vous ne pouvez pas désactiver la suppression des métadonnées d'image si l'option « Optimisation des images dans l'éditeur » est activée. Désactivez « Optimisation des images dans l'éditeur » avant de désactiver la suppression des métadonnées d'image."
- x_summary_large_image_no_svg: "Les images de résumé X utilisées pour les métadonnées twitter:image ne peuvent pas être des images .svg."
tl0_and_anonymous_flag: "Pour les utilisateurs anonymes, une « site contact email » ou une « email address to report illegal content » doit être fournie."
allow_likes_in_anonymous_mode_without_anonymous_mode_enabled: "Ce paramètre nécessite que le paramètre « Autoriser le mode anonyme » soit activé au préalable."
conflicting_google_user_id: 'Le Google Account ID a changé pour ce compte ; un responsable doit intervenir pour des raisons de sécurité. Merci de contacter les responsables et les renvoyer vers
https://meta.discourse.org/t/76575'
@@ -1774,7 +1771,6 @@ fr:
slow_down_crawler_rate: "Si slow_down_crawler_user_agents est défini, ce taux s'appliquera à tous les robots d'indexation (nombre de secondes d'attente entre requêtes)"
content_security_policy: "Activez la politique de sécurité du contenu (CSP). La CSP est une couche de sécurité supplémentaire qui permet de prévenir certains types d'attaques, notamment le Cross Site Scripting (XSS) et l'injection de données."
content_security_policy_report_only: "Activer Content-Security-Policy-Report-Only (CSP)"
- content_security_policy_collect_reports: "Activer la collecte des rapports de violation CSP sur la page /csp_reports"
content_security_policy_frame_ancestors: "Limiter les parties autorisées à intégrer ce site dans une iframe par le biais de l'attribut « csp ». Appliquer les restrictions d'hôtes définies dans la page Intégration externe."
content_security_policy_script_src: "Sources de script supplémentaires autorisées. L'hôte actuel et le CDN sont inclus par défaut. Voir Empêcher les attaques XSS grâce à la politique de sécurité du contenu (CSP). Les autres sources hôtes sont ignorées car la dynamique stricte est activée."
invalidate_inactive_admin_email_after_days: "Les comptes administrateurs qui n'ont pas visité le site depuis ce nombre de jours devront revalider leur adresse e-mail avant de se connecter. Mettre à 0 pour désactiver."
@@ -2091,7 +2087,6 @@ fr:
alternative_reply_by_email_addresses: "Liste des modèles alternatifs pour les adresses des e-mails entrants de la réponse par e-mail. Exemple : %%{reply_key}@reply.example.com|replies+%%{reply_key}@example.com"
incoming_email_prefer_html: "Utilisez du HTML plutôt que du texte pour les e-mails entrants."
strip_incoming_email_lines: "Supprimer les espaces en début et fin de chaque ligne d'e-mail entrants."
- disable_emails: "Empêcher Discourse d'envoyer tout type d'e-mails. Sélectionnez « oui » pour désactiver les e-mails pour tous les utilisateurs. Sélectionnez « non responsables » pour désactiver les e-mails uniquement pour les utilisateurs qui ne sont pas des responsables."
strip_images_from_short_emails: "Retirer les images des e-mails dont la taille est inférieure à 2 800 octets"
short_email_length: "Définissez la longueur maximale, en octets, pour qu'un e-mail soit classé comme « court » pour la suppression de l'image. Si la taille d'un e-mail ne dépasse pas ce paramètre, toutes les images (telles que les avatars et les émojis) contenues dans l'e-mail seront supprimées."
display_name_on_email_from: "Afficher les noms complets dans le champ « De » des e-mails"
@@ -2109,6 +2104,7 @@ fr:
mailgun_api_key: "Clé d'API secrète de Mailgun utilisée pour vérifier les messages du webhook."
sendgrid_verification_key: "Clé de vérification Sendgrid utilisée pour vérifier les messages du webhook."
mailjet_webhook_token: "Jeton utilisé pour vérifier la charge utile du webhook. Il doit être transmis en tant que paramètre de requête « t » du webhook, par exemple : https://example.com/webhook/mailjet?t=supersecret"
+ mailpace_webhook_token: "Jeton utilisé pour vérifier la charge utile du webhook. Il doit être transmis en tant que paramètre de requête « t » du webhook, par exemple : https://example.com/webhook/mailpace?t=supersecret"
mandrill_authentication_key: "Clé d'authentification Mandrill utilisée pour vérifier les messages du webhook."
postmark_webhook_token: "Jeton utilisé pour vérifier la charge utile du webhook. Il doit être transmis en tant que paramètre de requête « t » du webhook, par exemple : https://example.com/webhook/postmark?t=supersecret"
sparkpost_webhook_token: "Jeton utilisé pour vérifier la charge utile du webhook. Il doit être transmis en tant que paramètre de requête « t » du webhook, par exemple : https://example.com/webhook/sparkpost?t=supersecret"
@@ -2371,7 +2367,6 @@ fr:
dashboard_hidden_reports: "Permettre de masquer les rapports du tableau de bord."
dashboard_visible_tabs: "Choisissez les onglets visibles sur le tableau de bord."
dashboard_general_tab_activity_metrics: "Sélectionnez les rapports à afficher comme indicateurs d'activité dans l'onglet général."
- gravatar_enabled: "Utilisez le service Gravatar pour les avatars des utilisateurs. Cela empêchera les utilisateurs de passer à Gravatar pour leurs avatars, mais cela n'affectera pas les utilisateurs qui l'utilisent déjà."
gravatar_name: "Spécifiez le nom du fournisseur de services Gravatar. Ce nom est généralement utilisé pour identifier la source fournissant des avatars Gravatar au site."
gravatar_base_url: "Spécifiez l'URL d'accès à l'API du fournisseur Gravatar. Ce paramètre est essentiel pour convertir les adresses e-mail en URL Gravatar dans lesquelles les images d'avatar sont stockées."
gravatar_login_url: "URL relative à gravatar_base_url, qui fournit à l'utilisateur la connexion au service Gravatar."
@@ -2452,12 +2447,6 @@ fr:
reply_by_email_disabled: "Vous devez d'abord activer « reply by email » avant d'activer ce paramètre."
discourse_connect_url_is_empty: "Avant d'activer ce paramètre, vous devez d'abord définir le paramètre « discourse connect url »."
enable_local_logins_disabled: "Vous devez d'abord activer « enable local logins » avant d'activer ce paramètre."
- min_username_length_exists: "Il n'est pas possible de définir une longueur minimale de nom d'utilisateur qui soit plus longue qu'un nom d'utilisateur qui existe déjà (%{username})."
- min_group_name_length_exists: "Vous ne pouvez pas définir une longueur minimale de nom d'utilisateur supérieure au nom de groupe le plus court (%{group_name})."
- min_username_length_range: "Il n'est pas possible de définir un minimum plus grand qu'un maximum."
- max_username_length_exists: "Il n'est pas possible de définir une longueur maximale de nom d'utilisateur qui soit plus courte qu'un nom d'utilisateur qui existe déjà (%{username})."
- max_group_name_length_exists: "Vous ne pouvez pas définir une longueur maximale de nom d'utilisateur inférieure au nom de groupe le plus long (%{group_name})."
- max_username_length_range: "Il n'est pas possible de définir un maximum plus petit que le minimum."
invalid_hex_value: "Les valeurs de couleurs doivent être au format hexadécimal à 6 chiffres."
empty_selectable_avatars: "Vous devez d'abord envoyer au moins deux avatars sélectionnables avant d'activer ce paramètre."
category_search_priority:
@@ -2516,7 +2505,6 @@ fr:
exclude_tag: "Exclure les sujets avec une étiquette spécifique"
exclude_tags_any: "Exclure les sujets avec l'une des étiquettes spécifiées (séparés par des virgules)"
exclude_tags_all: "Exclure les sujets comportant toutes les étiquettes spécifiées (séparées par des plus)"
- tags_alias: "Alias pour le filtre « tag : »"
tag_group: "Afficher les sujets dont les étiquettes appartiennent à un groupe de balises spécifique"
exclude_tag_group: "Exclure les sujets comportant des balises d'un groupe de balises spécifique"
activity_before: "Afficher les sujets dont la dernière activité est antérieure à une date (YYYY-MM-DD ou il y a quelques jours)"
@@ -4912,8 +4900,6 @@ fr:
deprecation_error_label: Faire en sorte que les dépréciations de Javascript génèrent une erreur
enter: "Activer le mode sans échec"
must_select: "Vous devez sélectionner au moins une option pour activer le mode sans échec."
- dev_mode:
- enter: "Entrée"
wizard:
title: "Configuration de Discourse"
step:
@@ -5171,8 +5157,6 @@ fr:
approve_and_unhide:
title: "Oui"
complete: "Publication approuvée et visible"
- no_action_post:
- title: "Aucune action"
delete_post:
title: "Supprimer la publication"
complete: "Publication supprimée"
@@ -5181,8 +5165,6 @@ fr:
restore_post:
title: "Rétablir le message"
complete: "Publication restaurée"
- no_action_user:
- title: "Aucune action"
silence_user:
title: "Désactiver l'utilisateur"
complete: "Utilisateur mis en sourdine"
diff --git a/config/locales/server.gl.yml b/config/locales/server.gl.yml
index ace86820691d4..e085d6a67719f 100644
--- a/config/locales/server.gl.yml
+++ b/config/locales/server.gl.yml
@@ -1316,7 +1316,6 @@ gl:
allowed_crawler_user_agents: "Axentes de usuario de rastreadores web aos que se lles debería permitir o acceso ao sitio. AVISO! AO CONFIGURAR ISTO, VETARÁ TODOS OS RASTREXADORES NON LISTADOS AQUÍ!"
blocked_crawler_user_agents: "Palabra única insensíbel a maiúsculas e minúsculas na cadea de axente de usuario que identifica rastrexadores web que non deberían ter permitido o acceso ao sitio. Non se lle aplica se está definida a listaxe de permitidos."
slow_down_crawler_rate: "Se slow_down_crawler_user_agents está especificado, este valor aplicarase a todos os rastrexadores (número de segundos de demora entre respostas)"
- content_security_policy_collect_reports: "Activar a recolección de informes de violación de CSP en /csp_reports"
content_security_policy_frame_ancestors: "Restrinxir quen pode incorporar este sitio en iframes mediante CSP. O control de servidores permitidos en Incorporación"
invalidate_inactive_admin_email_after_days: "As contas administrativas que non visiten o sitio neste número de días terán que volver validar o seu enderezo electrónico antes de iniciar sesión. Estabelecer en 0 para desactivalo."
share_links: "Determinar que elementos aparecen no cadro de compartir e en que orde."
@@ -1529,7 +1528,6 @@ gl:
alternative_reply_by_email_addresses: "Lista de modelos alternativos para responder a enderezos de correo electrónico entrantes. Exemplo: %%{reply_key}@reply.example.com|respostas+%%{reply_key}@example.com"
incoming_email_prefer_html: "Utilizar HTML no canto de texto para o correo entrante."
strip_incoming_email_lines: "Retirar os espazos en branco iniciais e finais de cada liña de correos electrónicos entrantes."
- disable_emails: "Evita que Discourse envíe calquera clase de correo electrónico. Seleccione «si» para desactivar os correos electrónicos a todos os usuarios. Seleccione «non do equipo» para desactivar os correos electrónicos só para usuarios que non sexan do equipo."
strip_images_from_short_emails: "Elimina as imaxes de correos electrónicos que teñan un tamaño inferior a 2800 bytes"
display_name_on_email_from: "Amosar nomes completos nos campos de remitente do correo"
unsubscribe_via_email: "Permitir aos usuarios darse de baixa dos correos electrónicos ao responder co texto «cancelar subscrición» no asunto ou no corpo da mensaxe"
@@ -1734,10 +1732,6 @@ gl:
reply_by_email_disabled: "Primeiro debe activar «responder vía correo electrónico» antes de activar esta opción."
discourse_connect_url_is_empty: "Debe estabelecer un «URL de discourse connect» antes de activar este axuste."
enable_local_logins_disabled: "Debe activar primeiro «activar inicios de sesión locais» antes de activar esta opción."
- min_username_length_exists: "Non pode estabelecer que a largura mínima do nome de usuario sexa maior có nome de usuario máis curto (%{username})."
- min_username_length_range: "O mínimo non pode ser maior que o máximo."
- max_username_length_exists: "Non pode estabelecer que a largura máxima do nome de usuario sexa menor que o nome de usuario máis longo (%{username})."
- max_username_length_range: "Non pode estabelecer o máximo por debaixo do mínimo."
invalid_hex_value: "Os valores das cores deben ser códigos de 6 díxitos hexadecimais."
empty_selectable_avatars: "Debe subir polo menos dous avatares seleccionables antes de activar esta opción."
category_search_priority:
@@ -3399,8 +3393,6 @@ gl:
title: "Entrar en modo seguro"
enter: "Entrar en modo seguro"
must_select: "Debe seleccionar polo menos unha opción para entrar no modo seguro."
- dev_mode:
- enter: "Intro"
wizard:
title: "Configuración de Discourse"
step:
@@ -3523,12 +3515,8 @@ gl:
title: "Si"
approve_and_unhide:
title: "Si"
- no_action_post:
- title: "Sen acción"
delete_post:
complete: "Publicación eliminada"
- no_action_user:
- title: "Sen acción"
delete_user:
complete: "Usuario eliminado"
reason: "Eliminado a través da cola de revisións"
diff --git a/config/locales/server.he.yml b/config/locales/server.he.yml
index 210e312fa0a09..0d58fb0d44a83 100644
--- a/config/locales/server.he.yml
+++ b/config/locales/server.he.yml
@@ -60,8 +60,6 @@ he:
inline_oneboxer:
topic_page_title_post_number: "מס׳ %{post_number}"
topic_page_title_post_number_by_user: "מס׳ %{post_number} מאת %{username}"
- too_many_urls: "אי אפשר להכניס יותר מ־10 קישורים לתיבה תוחמת בבקשה אחת."
- concurrency_not_allowed: "אי אפשר לשלוח בקשות להטמעת תיבות תוחמות במקביל. נא לשלוח בקשה אחת כל פעם."
components:
enabled_filter: "פעיל"
disabled_filter: "כבוי"
@@ -398,7 +396,6 @@ he:
slow_down_crawler_user_agent_must_be_at_least_3_characters: "סוכני משתמש חייבים להיות באורך של 3 תווים לפחות כדי למנוע הגבלה בשוגג של כמות פניות ממשתמשים תקפים."
slow_down_crawler_user_agent_cannot_be_popular_browsers: "אי אפשר להוסיף אף אחת מהערכים הבאים להגדרה: %{values}."
strip_image_metadata_cannot_be_disabled_if_composer_media_optimization_image_enabled: "אי אפשר להשבית הפשטת נתוני על מתמונה אם האפשרות ‚תמונת מיטוב מדיה בכתיבת הודעה פעילה’ פעילה. יש להשבית את האפשרות בטרם השבתת הפשטת נתוני על מתמונה."
- x_summary_large_image_no_svg: "תמונות התקציר של טוויטר שמשמשות לנתוני העל של twitter:image לא יכולות להיות תמונת .svg"
tl0_and_anonymous_flag: "יש לספק ‚דוא״ל קשר עם האתר’ או ‚כתובת דוא״ל לדיווח על תוכן לא חוקי’ למשתמשים אלמוניים."
allow_likes_in_anonymous_mode_without_anonymous_mode_enabled: "ההגדרה הזאת דורשת את הפעלת ההגדרה ‚לאפשר מצב אלמוני’ תחילה."
conflicting_google_user_id: 'מזהה חשבון ה־Google לחשבון זה השתנה, התערבות של חבר סגל נדרשת מטעמי אבטחה. נא ליצור קשר עם אחד מחברי הסגל ולהפנות אותו אל
https://meta.discourse.org/t/76575'
@@ -1944,7 +1941,6 @@ he:
slow_down_crawler_rate: "אם הוגדר slow_down_crawler_user_agents (האטת סורקי אינטרנט) קצב זה יחול על כל סורקי האינטרנט (כמות ההמתנה בשניות בין בקשות)"
content_security_policy: "אפשר מדיניות תוכן-אבטחה (CSP). CSP הוא שכבת אבטחה נוספת שעוזרת למנוע סוגים מסוימים של התקפות, כולל Cross Site Scripting (XSS) והזרקת נתונים."
content_security_policy_report_only: "הפעלת Content-Security-Policy-Report-Only (מדיניות אבטחת תוכן בדיווח בלבד - CSP)"
- content_security_policy_collect_reports: "הפעלת איסוף דוחות הפרה של CSP (מדיניות אבטחת תוכן) תחת /csp_reports"
content_security_policy_frame_ancestors: "להגביל מי יכול להטמיע את האתר הזה עם מסגרות iframes דרך CSP. ניתן לשלוח במארחים המורשים דרך הטמעה"
content_security_policy_script_src: "מקורות סקריפט נוספים ברשימת ההיתרים. השרת המקומי וה-CDN כלולים כברירת מחדל. ראה הגבלת התקפות XSS עם מדיניות אבטחת תוכן. (CSP). מקורות שרת מקומי יתעלמו שכן strict-dynamic מופעל."
invalidate_inactive_admin_email_after_days: "חשבונות מנהלים שלא ביקרו באתר מעל כמות כזו של ימים יאלצו לאמת מחדש את כתובת הדוא״ל שלהם כדי לשוב ולהיכנס. להגדיר כ־0 כדי להשבית."
@@ -2030,7 +2026,6 @@ he:
enable_local_logins_via_email: "לאפשר למשתמשים לבקש לשלוח אליהם קישור לכניסה בלחיצה אחת בדוא״ל."
allow_new_registrations: "לאפשר הרשמות של משתמשים חדשים. יש לבטל סימון זה כדי למנוע יצירת חשבונות חדשים."
enable_signup_cta: "להציג מודעה למשתמשים אלמוניים חוזרים שמציעה להם להירשם כדי לקבל חשבון."
- enable_discourse_id: "הפעלת אימות דרך Discourse ID, שירות כניסה אחודה שמאפשר למשתמשים להיכנס למגוון אתרי Discourse עם חשבון אחד. ספקי כניסה נפוצים כגון Google, Facebook, Apple ו־GitHub נתמכים בלי הגדרות נוספות. בכתובת id.discourse.com אפשר למצוא פרטים נוספים."
enable_google_oauth2_logins: "להפעיל אימות עם Oauth2 מול Google. זו שיטת האימות שכרגע נתמכת מול Google. דורשת מפתח וסוד. יש לעיין בהגדרת כניסה עם Google ל־Discourse."
google_oauth2_client_id: "מזהה הלקוח הייחודי שסופק על ידי יישום ה־Google שלך, המשמש לתהליך האימות."
google_oauth2_client_secret: "קוד סודי של לקוח (client secret) של אפליקציית Google."
@@ -2269,7 +2264,6 @@ he:
alternative_reply_by_email_addresses: "רשימה של כמה תבניות לתגובות בדוא״ל באמצעות כתובות דוא״ל נכנסות. למשל: %%{reply_key}@reply.example.com|replies+%%{reply_key}@example.com"
incoming_email_prefer_html: "להשתמש ב־HTML במקום בטקסט בהודעות דוא״ל נכנסות."
strip_incoming_email_lines: "להסיר רווחים מובילים וסוגרים בכל שורה בהודעות דוא״ל נכנסות."
- disable_emails: "למנוע מ־Discourse לשלוח כל סוג של הודעות דוא״ל. יש לבחור ב־‚כן’ כדי להשבית את כל הודעות הדוא״ל לכל המשתמשים. ניתן גם לבחור ב־‚ללא סגל’ כדי להשבית את ההודעות למשתמשים שאינם נמנים עם הסגל."
strip_images_from_short_emails: "הסרת תמונות מהודעות דוא״ל שגודלן אינו עולה על 2800 בתים"
short_email_length: "הגדרת האורך המרבי, בבתים, לסיווג הודעת דוא״ל כ‚קצרה’ כדי להדחיק תמונות. אם גודל של הודעת דוא״ל לא חורג מהערך הזה, תמונות כלשהן (כגון תמונות ייצוגיות ואמוג׳ים) בהודעות הדוא״ל תוסרנה."
display_name_on_email_from: "להציג שמות מלאים בשדה „מאת” בדוא״ל"
@@ -2287,6 +2281,7 @@ he:
mailgun_api_key: "מפתח API סודי של Mailgun לאימות של הודעות webhook."
sendgrid_verification_key: "מפתח התיקוף של Sendgrid משמש לתיקוף הודעות התליה."
mailjet_webhook_token: "אסימון המשמש לתיקוף מטען של התליה. חובה להעביר אותו בתור המשתנה ‚t’ בשאילתה של ההתליה, למשל: https://example.com/webhook/mailjet?t=supersecret"
+ mailpace_webhook_token: "אסימון המשמש לתיקוף מטען של התליה. חובה להעביר אותו בתור המשתנה ‚t’ בשאילתה של ההתליה, למשל: https://example.com/webhook/mailpace?t=supersecret"
mandrill_authentication_key: "מפתח האימות של Mandrill משמש לאימות הודעות התליה."
postmark_webhook_token: "אסימון המשמש לתיקוף מטען של התליה. חובה להעביר אותו בתור המשתנה ‚t’ בשאילתה של ההתליה, למשל: https://example.com/webhook/postmark?t=supersecret"
sparkpost_webhook_token: "אסימון המשמש לתיקוף מטען של התליה. חובה להעביר אותו בתור המשתנה ‚t’ בשאילתה של ההתליה, למשל: https://example.com/webhook/sparkpost?t=supersecret"
@@ -2555,7 +2550,6 @@ he:
dashboard_hidden_reports: "לאפשר להסתיר את הדוחות המסוימים בלוח הבקרה."
dashboard_visible_tabs: "נא לבחור אילו לשוניות תופענה בלוח הבקרה."
dashboard_general_tab_activity_metrics: "נא לבחור דיווחים שיופיעו בתור מדדי פעילות בלשונית הכללית."
- gravatar_enabled: "אפשר להשתמש בשירות Gravatar לתמונות ייצוגיות של משתמשים. ההגדרה הזאת תמנע ממשתמשים לעבור ל־Gravatar עבור התמונות ייצוגיות שלהם, אך לא תשפיע על משתמשים שכבר עשו זאת."
gravatar_name: "נא לציין את שם ספק שירות Gravatar. השם הזה בדרך כלל ישמש לזיהוי ספק מקור תמונות ה־Gravatar הייצוגיות באתר."
gravatar_base_url: "נא לציין את כתובת הגישה ל־API של ספק Gravatar. ההגדרה הזאת הכרחית להמרת כתובות דוא״ל לכתובות Gravatar בה מאוחסנות התמונות הייצוגיות."
gravatar_login_url: "כתובת ביחס אל `gravatar_base_url` (כתובת הבסיס של Gravatar) שמספקת למשתמש גישה לשירות Gravatar."
@@ -2644,12 +2638,6 @@ he:
reply_by_email_disabled: "עליך להפעיל את ‚תגובה בדוא״ל’ בטרם הפעלת הגדרה זו."
discourse_connect_url_is_empty: "עליך להגדיר ‚כתובת discourse connect’ בטרם הפעלת הגדרה זו."
enable_local_logins_disabled: "עליך תחילה להפעיל את ‚הפעלת כניסה מקומית’ בטרם הפעלת הגדרה זו."
- min_username_length_exists: "לא ניתן להגדיר את האורך המזערי לשם המשתמש לפחות תווים מאשר שם המשתמש הקצר ביותר במערכת (%{username})."
- min_group_name_length_exists: "לא ניתן להגדיר את האורך המזערי לשם המשתמש ליותר תווים מאשר שם הקבוצה הקצר ביותר (%{group_name})."
- min_username_length_range: "לא ניתן לקבוע את המינימום מעל המקסימום."
- max_username_length_exists: "לא ניתן להגדיר את האורך המרבי לשם המשתמש ליותר תווים מאשר שם המשתמש הארוך ביותר במערכת (%{username})."
- max_group_name_length_exists: "לא ניתן להגדיר את האורך המרבי לשם המשתמש לפחות תווים מאשר שם הקבוצה הארוך ביותר (%{group_name})."
- max_username_length_range: "לא ניתן לקבוע את המקסימום מתחת למינימום."
invalid_hex_value: "ערכי הצבעים חייבים להיות קודים הקסדצימליים באורך 6 תווים."
empty_selectable_avatars: "עליך להעלות שתי תמונות ייצוגיות לפחות כדי לבחור ביניהן לפני הפעלת האפשרות הזאת."
category_search_priority:
@@ -2709,7 +2697,6 @@ he:
exclude_tag: "החרגת נושאים עם תגית מסוימת"
exclude_tags_any: "החרגת נושאים עם לפחות אחת מבין התגיות שצוינו (מופרדות בפסיקים)"
exclude_tags_all: "החרגת נושאים עם כל התגיות שצוינו (מופרדים בפלוס)"
- tags_alias: "כינוי למסנן ‚tag:’"
tag_group: "הצגת נושאים עם תגיות מקבוצת תגיות מסוימת"
exclude_tag_group: "החרגת נושאים עם תגיות מקבוצת תגיות מסוימת"
activity_before: "הצגת נושאים עם פעילות אחרונה לפני תאריך (YYYY-MM-DD או כמות ימים לפני)"
@@ -5180,8 +5167,6 @@ he:
deprecation_error_label: לגרום להשבתות נקודתיות של JavaScript לעורר שגיאה
enter: "כנסו למצב בטוח"
must_select: "עליך לבחור באפשרות אחת לפחות כדי להיכנס למצב בטוח."
- dev_mode:
- enter: "Enter"
wizard:
title: "הקמת Discourse"
step:
@@ -5458,10 +5443,6 @@ he:
complete: "הפוסט אושר והוצג מחדש"
post_actions:
bundle_title: "מה לעשות עם הפוסט?"
- no_action_post:
- title: "אין פעולה"
- description: "לא לנקוט בפעולה על הפוסט"
- complete: "לא ננקטה פעולה על הפוסט"
delete_post:
title: "מחיקת פוסט"
description: "למחוק את הפוסט הזה"
@@ -5482,16 +5463,8 @@ he:
title: "עריכת פוסט"
description: "עריכת תוכן הפוסט הזה"
complete: "פוסט נערך"
- convert_to_pm:
- title: "המרה להודעה פרטית"
- description: "להמיר את הפוסט הזה להודעה פרטית"
- complete: "הפוסט הומר להודעה פרטית"
user_actions:
bundle_title: "מה לעשות עם המשתמש/ת?"
- no_action_user:
- title: "אין פעולה"
- description: "לא לנקוט בפעולות נגד המשתמש/ת"
- complete: "לא לנקוט בפעולה נגד המשתמש/ת"
silence_user:
title: "השתקת משתמש"
description: "למנוע מהמשתמש/ת לפרסם"
diff --git a/config/locales/server.hr.yml b/config/locales/server.hr.yml
index 246a504fb57b8..2c20c9deb58d1 100644
--- a/config/locales/server.hr.yml
+++ b/config/locales/server.hr.yml
@@ -2750,8 +2750,6 @@ hr:
help: "Za početak registrirajte novi korisnički račun."
resend_email:
title: "Ponovno pošaljite e-poštu za aktivaciju"
- dev_mode:
- enter: "Unesi"
wizard:
step:
setup:
@@ -2854,13 +2852,9 @@ hr:
title: "Da"
approve_and_unhide:
title: "Da"
- no_action_post:
- title: "Nema akcije"
delete_post:
title: "Izbrišite objavu"
complete: "Post izbrisan"
- no_action_user:
- title: "Nema akcije"
delete_user:
complete: "Korisnik izbrisan"
fallback_username: "korisnik"
diff --git a/config/locales/server.hu.yml b/config/locales/server.hu.yml
index d066fb2a9fa10..ae62c12290d60 100644
--- a/config/locales/server.hu.yml
+++ b/config/locales/server.hu.yml
@@ -60,8 +60,6 @@ hu:
inline_oneboxer:
topic_page_title_post_number: "#%{post_number}"
topic_page_title_post_number_by_user: "#%{post_number} általa: %{username}"
- too_many_urls: "Egy kérelemben nem lehet 10-nél több URL-címet beilleszteni."
- concurrency_not_allowed: "Egyidejű beágyazott egydobozos kérések nem engedélyezettek. Kérjük, egyszerre egy kérést küldjön."
components:
enabled_filter: "Engedélyezed"
disabled_filter: "Kikapcsolt"
@@ -347,7 +345,6 @@ hu:
slow_down_crawler_user_agent_must_be_at_least_3_characters: "A felhasználói ügynököknek legalább 3 karakter hosszúaknak kell lenniük, hogy elkerüljék a jogos felhasználók véletlen sebességkorlátozását."
slow_down_crawler_user_agent_cannot_be_popular_browsers: "A következő értékek egyikét sem adhatja hozzá a beállításhoz: %{values}."
strip_image_metadata_cannot_be_disabled_if_composer_media_optimization_image_enabled: "Nem lehet letiltani a szalagkép metaadatait, ha a composer médiaoptimalizáló kép engedélyezve van. Kapcsolja ki ezt az opciót, mielőtt letiltaná a szalagkép metaadatokat."
- x_summary_large_image_no_svg: "A twitter:image metaadatokhoz használt Twitter összefoglaló képek nem lehetnek .svg képek."
tl0_and_anonymous_flag: "A névtelen felhasználók számára meg kell adni a „webhely kapcsolatfelvételi e-mail-címét” vagy „az illegális tartalom bejelentéséhez szükséges e-mail-címet”."
allow_likes_in_anonymous_mode_without_anonymous_mode_enabled: "Ehhez a beállításhoz először engedélyezni kell az 'anonim mód engedélyezése' beállítást."
conflicting_google_user_id: 'A fiók Google-fiók azonosítója megváltozott; biztonsági okokból a személyzet beavatkozása szükséges. Kérjük, lépjen kapcsolatba a személyzettel, és mutassa meg nekik a következő címet:
https://meta.discourse.org/t/76575'
@@ -1805,7 +1802,6 @@ hu:
llms_txt: "Töltsön fel egy szöveges fájlt, amely az /llms.txt útvonalon lesz elérhető az LLM-robotok (crawlerek) számára. További információért látogasson el az llmstxt.org oldalra."
content_security_policy: "Engedélyezze a Tartalombiztonsági Szabályzatot (Content-Security-Policy, CSP). A CSP egy további biztonsági réteg, amely segít megelőzni bizonyos típusú támadásokat, beleértve a keresztoldali szkriptelést (Cross Site Scripting, XSS) és az adatbefecskendezést."
content_security_policy_report_only: "Engedélyezze a Tartalombiztonsági Szabályzat Csak Jelentés Módját (CSP)"
- content_security_policy_collect_reports: "Engedélyezze a CSP-szabálysértési jelentések gyűjtését /csp_reports címen."
content_security_policy_frame_ancestors: "Korlátozza, ki ágyazhatja be ezt a webhelyet iframe-ekbe a CSP segítségével. Az engedélyezett kiszolgálók szabályozása a Beágyazás oldalon történik"
content_security_policy_script_src: "További engedélyezett szkriptforrások. Az aktuális kiszolgáló és CDN alapértelmezetten szerepel. Lásd XSS támadások mérséklése Tartalombiztonsági Szabályzattal. (CSP). Egyéb kiszolgálóforrások figyelmen kívül maradnak, mivel a strict-dynamic engedélyezve van."
invalidate_inactive_admin_email_after_days: "Azok az adminisztrátori fiókok, amelyek ennyi napja nem látogatták meg a webhelyet, újra kell érvényesíteniük az e-mail címüket a bejelentkezés előtt. Állítsa 0-ra a kikapcsoláshoz."
@@ -1891,7 +1887,6 @@ hu:
enable_local_logins_via_email: "Engedélyezze a felhasználóknak, hogy egy kattintással bejelentkezési linket kérjenek, amelyet e-mailben kapnak meg."
allow_new_registrations: "Új felhasználók regisztrációjának engedélyezése. Vegye ki a jelölést, hogy megakadályozza, hogy bárki új fiókot hozzon létre."
enable_signup_cta: "Mutasson értesítést a visszatérő névtelen felhasználóknak, és ajánlja fel, hogy regisztráljanak egy fiókot."
- enable_discourse_id: "Engedélyezze a Discourse ID-n keresztüli hitelesítést, amely egy egyszeri bejelentkezési szolgáltatás, amely lehetővé teszi a felhasználók számára, hogy egyetlen fiókkal több Discourse-oldalra is bejelentkezzenek. Az olyan gyakori közösségi bejelentkezési szolgáltatók, mint a Google, a Facebook, az Apple és a Github további konfiguráció nélkül támogatottak. További részletekért lásd: id.discourse.com."
enable_google_oauth2_logins: "Engedélyezze a Google Oauth2 hitelesítést. A Google jelenleg ezt a hitelesítési módszert támogatja. Kulcs és titkos kód szükséges. Lásd: A Google bejelentkezés konfigurálása a Discourseszámára."
google_oauth2_client_id: "A Google-alkalmazás által megadott egyedi ügyfél-azonosító, amelyet a hitelesítési folyamathoz használnak."
google_oauth2_client_secret: "A Google-alkalmazás titkos kliens kódja."
@@ -2132,7 +2127,6 @@ hu:
alternative_reply_by_email_addresses: "Alternatív sablonok listája a bejövő e-mail-címekre történő válaszadáshoz. Példa: %%{reply_key}@reply.example.com|válaszok+%%{reply_key}@example.com"
incoming_email_prefer_html: "Szöveg helyett HTML-kódot használjon bejövő e-mailekhez."
strip_incoming_email_lines: "Távolítsa el a kezdő és a záró szóközöket a bejövő e-mailek minden sorából."
- disable_emails: "Megakadályozza, hogy a Discourse bármilyen típusú e-mailt küldjön. Válassza az „igen” lehetőséget az e-mailek letiltásához az összes felhasználó számára. Válassza a „nem személyzet” lehetőséget, ha csak a nem stábtagok számára szeretné letiltani az e-maileket."
allow_email_invites: "Ha le van tiltva, a felhasználók nem tudnak meghívókat küldeni a Discourse-on keresztül."
strip_images_from_short_emails: "Képek eltávolítása 2800 bájtnál kisebb méretű e-mailekből"
short_email_length: "Határozza meg bájtban azt a maximális hosszt, amelyen egy e-mailt „rövid”-nek kell minősíteni a képelnyomás miatt. Ha egy e-mail mérete nem haladja meg ezt a beállítást, az e-mailben található képek (például avatarok és hangulatjelek) törlődnek."
@@ -2151,6 +2145,7 @@ hu:
mailgun_api_key: "Mailgun titkos API-kulcs a webhook-üzenetek ellenőrzésére."
sendgrid_verification_key: "Sendgrid ellenőrző kulcs, amelyet a webhook üzenetek ellenőrzésére használnak."
mailjet_webhook_token: "A webhook hasznos terhelésének ellenőrzésére használt token. Ezt a webhook 't' lekérdezési paramétereként kell átadni, például: https://example.com/webhook/mailjet?t=supersecret"
+ mailpace_webhook_token: "A webhook hasznos terhelésének ellenőrzésére használt token. Ezt a webhook 't' lekérdezési paramétereként kell átadni, például: https://example.com/webhook/mailpace?t=supersecret"
mandrill_authentication_key: "Mandrill hitelesítési kulcs a webhook üzenetek ellenőrzésére."
postmark_webhook_token: "A webhook hasznos terhelésének ellenőrzésére használt token. Ezt a webhook „t” lekérdezési paramétereként kell átadni, például: https://example.com/webhook/postmark?t=supersecret"
sparkpost_webhook_token: "A webhook hasznos terhelésének ellenőrzésére használt token. Ezt a webhook 't' lekérdezési paramétereként kell átadni, például: https://example.com/webhook/sparkpost?t=supersecret"
@@ -2418,7 +2413,6 @@ hu:
dashboard_hidden_reports: "Engedélyezze a megadott jelentések elrejtését a vezérlőpulton."
dashboard_visible_tabs: "Válassza ki, hogy a vezérlőpult mely lapjai legyenek láthatóak."
dashboard_general_tab_activity_metrics: "Válassza ki azokat a jelentéseket, amelyek aktivitási mutatóként jelenjenek meg az általános fülön."
- gravatar_enabled: "Használd a Gravatar szolgáltatást a felhasználói avatarokhoz. Ez megakadályozza, hogy a felhasználók a Gravatarra váltsanak avatarjaikhoz, de nem befolyásolja azokat a felhasználókat, akik már használják azt."
gravatar_name: "Adja meg a Gravatar szolgáltató nevét. Ezt a nevet általában a Gravatar avatarokat biztosító forrás azonosítására használják a webhelyen."
gravatar_base_url: "Adja meg a Gravatar szolgáltató API-jának elérési URL-jét. Ez a beállítás kulcsfontosságú az e-mail címek Gravatar URL-é alakításához, ahol az avatar képek tárolva vannak."
gravatar_login_url: "A `gravatar_base_url`-hez viszonyított URL, amely lehetővé teszi a felhasználónak, hogy bejelentkezzen a Gravatar szolgáltatásba."
@@ -2514,12 +2508,6 @@ hu:
reply_by_email_disabled: "A beállítás engedélyezése előtt először engedélyeznie kell a „válasz e-mailben” funkciót."
discourse_connect_url_is_empty: "Először be kell állítania egy 'discourse connect url'-t, mielőtt engedélyezné ezt a beállítást."
enable_local_logins_disabled: "Először engedélyeznie kell a 'helyi bejelentkezések engedélyezése' opciót, mielőtt ezt a beállítást engedélyezné."
- min_username_length_exists: "Nem állíthatja a felhasználónév minimális hosszát a legrövidebb felhasználónév (%{username}) fölé."
- min_group_name_length_exists: "A minimális felhasználónévhossz nem állítható a legrövidebb csoportnév (%{group_name}) fölé."
- min_username_length_range: "Nem lehet a legnagyobb értéknél nagyobb legkisebb értéket beállítani."
- max_username_length_exists: "Nem állíthatja a felhasználónév maximális hosszát a leghosszabb felhasználónév (%{username}) alá."
- max_group_name_length_exists: "A felhasználónév maximális hossza nem állítható a leghosszabb csoportnév (%{group_name}) alá."
- max_username_length_range: "Nem lehet a legkisebb értéknél kisebb legnagyobb értéket beállítani."
invalid_hex_value: "A színértékeknek 6 számjegyű hexadecimális kódoknak kell lenniük."
empty_selectable_avatars: "A beállítás engedélyezése előtt fel kell töltened legalább két választható avatart."
category_search_priority:
@@ -2582,7 +2570,6 @@ hu:
exclude_tag: "Egy adott címkével rendelkező témák kizárása"
exclude_tags_any: "Kizárja a megadott címkék bármelyikét tartalmazó témákat (vesszővel elválasztva)."
exclude_tags_all: "Kizárja a megadott címkékkel rendelkező témákat (plusz-szeparált)"
- tags_alias: "A „tag:” szűrő álneve"
tag_group: "Témák megjelenítése egy adott címkecsoport címkéivel"
exclude_tag_group: "Címkékkel ellátott témák kizárása egy adott címkecsoportból"
activity_before: "Mutassa a témákat, amelyek utolsó aktivitása egy adott dátum előtt (ÉÉÉÉ-HH-NN vagy nappal ezelőtt) történt"
@@ -5011,7 +4998,6 @@ hu:
dev_mode:
title: "Fejlesztői mód"
enable_rack_mini_profiler: "Engedélyezze a Rack Mini Profiler 1 órás megőrzését a munkamenet-változások között"
- enter: "Belépés"
wizard:
title: "Discourse telepítő"
step:
@@ -5307,10 +5293,6 @@ hu:
complete: "Bejegyzés jóváhagyva és felfedve"
post_actions:
bundle_title: "Mit akarsz csinálni a bejegyzéssel?"
- no_action_post:
- title: "Nincs művelet"
- description: "Ne tegyen semmit a bejegyzéssel kapcsolatban"
- complete: "Nem történt intézkedés a bejegyzéssel kapcsolatban"
delete_post:
title: "Bejegyzés törlése"
description: "Bejegyzés törlése"
@@ -5331,16 +5313,8 @@ hu:
title: "Bejegyzés szerkesztése"
description: "A bejegyzés tartalmának szerkesztése"
complete: "Bejegyzés szerkesztve"
- convert_to_pm:
- title: "Átalakít PÜ-re"
- description: "Alakítsa át ezt a bejegyzést személyes üzenetté"
- complete: "Bejegyzés személyes üzenetté alakítva"
user_actions:
bundle_title: "Mit szeretnél csinálni a felhasználóval?"
- no_action_user:
- title: "Nincs művelet"
- description: "Ne tegyen lépéseket a felhasználó ellen"
- complete: "Nem történt intézkedés a felhasználó ellen"
silence_user:
title: "Felhasználó némítása"
description: "Felhasználó letiltása a posztolásról"
diff --git a/config/locales/server.hy.yml b/config/locales/server.hy.yml
index 66be9fddc1eef..8b0787d3319a0 100644
--- a/config/locales/server.hy.yml
+++ b/config/locales/server.hy.yml
@@ -1126,7 +1126,6 @@ hy:
blocked_ip_blocks: "Մասնավոր IP արգելափակումների ցանկ, որոնք երբեք չպետք է ենթարկվեն տվյալների հավաքագրման Discourse-ի կողմից:"
allowed_internal_hosts: "Ներքին հոսթերի ցանկ, որը discourse-ը կարող է ապահով հավաքագրել սմարթ-ներդիրի և այլ նպատակների համար"
slow_down_crawler_rate: "Եթե slow_down_crawler_user_agents -ը որոշված է, այս գնահատականը կկիրառվի տվյալների բոլոր հավաքագրիչների նկատմամբ (հարցումների միջև դադարի վայրկյանների քանակը)"
- content_security_policy_collect_reports: "Միացնել CSP խախտումների հաշվետվությունների հավաքածուն /csp_reports -ում"
invalidate_inactive_admin_email_after_days: "Ադմինի հաշիվները, որոնք չեն այցելել կայք այսքան օրվա ընթացքում, պետք է վերա-վավերացնեն իրենց էլ. հասցեն մինչ մուտք գործելը: Սահմանեք 0 անջատելու համար:"
share_links: "Որոշեք, թե որ տարրերն են հայտնվելու կիսման երկխոսության մեջ և ինչ հերթականությամբ:"
site_contact_username: "Անձնակազմի որևէ վավեր օգտանուն, որից պետք է ուղարկվեն բոլոր ավտոմատ հաղորդագրությունները: Դատարկ թողնելու դեպքում կօգտագործվի Համակարգի լռելյայն հաշիվը:"
@@ -1290,7 +1289,6 @@ hy:
reply_by_email_address: "Էլ. փոստի միջոցով պատասխանի մուտքային էլ. հասցեների ձևանմուշ, օրինակ՝ %%{reply_key}@reply.example.com կամ replies+%%{reply_key}@example.com"
alternative_reply_by_email_addresses: "Էլ. նամակի միջոցով պատասխանի համար մուտքային հասցեների այլընտրանքային ձևանմուշների ցանկ: Օրինակ՝ %%{reply_key}@reply.example.com|replies+%%{reply_key}@example.com"
incoming_email_prefer_html: "Մուտքային նամակի համար տեսքտի փոխարեն օգտագործեք HTML:"
- disable_emails: "Կանխարգելել Discourse-ը՝ ցանկացած տիպի նամակ ուղարկելուց: Ընտրեք 'այո' ՝ բոլոր օգտատերերի համար էլ. նամակներն անջատելու համար: Ընտրեք 'ոչ-անձնակազմ' ՝ միայն ոչ-անձնակազմի օգտատերերի համար էլ. նամակներն անջատելու համար:"
strip_images_from_short_emails: "Էլ. նամակներից առանձնացնել 2800 Բայթից քիչ չափ ունեցող նկարները"
display_name_on_email_from: "Դաշտերից ցուցադրել նամակում ամբողջական անունները"
unsubscribe_via_email: "Թույլատրել օգտատերերին դուրս գալ էլ. նամակների բաժանորդագրումից՝ ուղարկելով էլ. նամակ, որը կպարունակի 'unsubscribe' թեմայում կամ տեքստի մեջ"
@@ -1438,10 +1436,6 @@ hy:
staged_users_disabled: "Դուք պետք է սկզբում միացնեք 'staged users' ՝ մինչև այս կարգավորումը միացնելը"
reply_by_email_disabled: "Դուք պետք է սկզբում միացնեք 'reply by email'' ՝ մինչև այս կարգավորումը միացնելը"
enable_local_logins_disabled: "Դուք պետք է սկզբում միացնեք 'enable local logins' ՝ մինչև այս կարգավորումը միացնելը"
- min_username_length_exists: "Դուք չեք կարող սահմանել օգտանվան նվազագույն երկարություն ամենակարճ օգտանունից բարձր (%{username})"
- min_username_length_range: "Դուք չեք կարող սահմանել նվազագույնը առավելագույնից բարձր:"
- max_username_length_exists: "Դուք չեք կարող սահմանել օգտանվան առավելագույն երկարություն ամենաերկար օգտանունից ցածր (%{username}):"
- max_username_length_range: "Դուք չեք կարող սահմանել առավելագույնը նվազագույնից ցածր:"
invalid_hex_value: "Գույների արժեքները պետք է լինեն 6-նիշանոց տասնվեցերորդական կոդեր:"
placeholder:
discourse_connect_provider_secrets:
@@ -2734,8 +2728,6 @@ hy:
title: "Մուտք գործել անվտանգ ռեժիմ"
enter: "Մուտք գործել Ապահով Ռեժիմ"
must_select: "Դուք պետք է ընտրեք առնվազն մեկ տարբերակ՝ անվտանգ ռեժիմ մուտք գործելու համար:"
- dev_mode:
- enter: "Մուտք"
wizard:
title: "Discourse Տեղադրում"
step:
@@ -2844,12 +2836,8 @@ hy:
title: "Այո"
approve_and_unhide:
title: "Այո"
- no_action_post:
- title: "Առանց գործողության"
delete_post:
complete: "Գրառումը ջնջված է"
- no_action_user:
- title: "Առանց գործողության"
delete_user:
complete: "Օգտատերը ջնջված է"
fallback_username: "օգտատեր"
diff --git a/config/locales/server.id.yml b/config/locales/server.id.yml
index 8fb90b336ac0c..f15389993953d 100644
--- a/config/locales/server.id.yml
+++ b/config/locales/server.id.yml
@@ -209,7 +209,6 @@ id:
slow_down_crawler_user_agent_must_be_at_least_3_characters: "Agen pengguna harus memiliki panjang minimal 3 karakter untuk menghindari pengguna sah yang secara tidak sengaja dibatasi lajunya."
slow_down_crawler_user_agent_cannot_be_popular_browsers: "Anda tidak dapat menambahkan salah satu nilai berikut ke setelan: %{values}."
strip_image_metadata_cannot_be_disabled_if_composer_media_optimization_image_enabled: "Anda tidak dapat menonaktifkan metadata gambar strip jika 'composer media optimization image enabled' diaktifkan. Nonaktifkan 'composer media optimization image enabled' sebelum menonaktifkan metadata gambar strip."
- x_summary_large_image_no_svg: "Gambar ringkasan Twitter yang digunakan untuk twitter:image metadata tidak boleh berupa gambar .svg."
conflicting_google_user_id: 'ID Akun Google untuk akun ini telah berubah; intervensi staf diperlukan untuk alasan keamanan. Silakan hubungi staf dan arahkan mereka ke
https://meta.discourse.org/t/76575'
onebox:
invalid_address: "Maaf, kami tidak dapat membuat pratinjau untuk halaman web ini karena server '%{hostname}' tidak dapat ditemukan. Alih-alih pratinjau, hanya tautan yang akan muncul di post Anda. :cry:"
@@ -1232,6 +1231,7 @@ id:
dark_mode_none: "Tidak ada"
sendgrid_verification_key: "Kunci verifikasi Sendgrid digunakan untuk memverifikasi pesan webhook."
mailjet_webhook_token: "Token digunakan untuk memverifikasi payload webhook. Itu harus diteruskan sebagai parameter kueri 't' dari webhook, misalnya: https://example.com/webhook/mailjet?t=supersecret"
+ mailpace_webhook_token: "Token digunakan untuk memverifikasi payload webhook. Itu harus diteruskan sebagai parameter kueri 't' dari webhook, misalnya: https://example.com/webhook/mailpace?t=supersecret"
mandrill_authentication_key: "Kunci autentikasi Mandrill digunakan untuk memverifikasi pesan webhook."
postmark_webhook_token: "Token digunakan untuk memverifikasi payload webhook. Itu harus diteruskan sebagai parameter kueri 't' dari webhook, misalnya: https://example.com/webhook/postmark?t=supersecret"
sparkpost_webhook_token: "Token digunakan untuk memverifikasi payload webhook. Itu harus diteruskan sebagai parameter kueri 't' dari webhook, misalnya: https://example.com/webhook/sparkpost?t=supersecret"
@@ -1261,8 +1261,6 @@ id:
invalid_email: "Alamat email tidak valid."
invalid_csp_script_src: "Nilai harus berupa 'unsafe-eval' atau 'wasm-unsafe-eval', atau dalam bentuk '
https://meta.discourse.org/t/76575'
@@ -1768,7 +1765,6 @@ it:
slow_down_crawler_rate: "Se viene specificato slow_down_crawler_user_agents, tale frequenza verrà applicata a tutti i crawler (numero di secondi di ritardo tra le richieste)"
content_security_policy: "Abilita Content-Security-Policy (CSP). CSP aggiunge un livello di sicurezza extra che contribuisce a prevenire determinati tipi di attacco informatico, tra cui Cross Site Scripting (XSS) e data injection."
content_security_policy_report_only: "Abilita Content-Security-Policy-Report-Only (CSP)"
- content_security_policy_collect_reports: "Abilita raccolta di report di violazioni CSP in /csp_reports"
content_security_policy_frame_ancestors: "Limita chi può incorporare questo sito in iframes tramite CSP. Controlla gli host ammessi su Incorporamenti"
content_security_policy_script_src: "Sorgenti di script aggiuntivi consentite. Il server e la rete CDN in uso sono inclusi per impostazione predefinita. Consulta la sezione Mitigare gli attacchi XSS con i criteri di sicurezza dei contenuti (CSP). Quando è abilitata strict-dynamic, le altre sorgenti host vengono ignorate."
invalidate_inactive_admin_email_after_days: "Gli account amministratore che non hanno visitato il sito in questo numero di giorni dovranno riconvalidare il proprio indirizzo email prima di accedere. Impostare su 0 per disabilitare."
@@ -2085,7 +2081,6 @@ it:
alternative_reply_by_email_addresses: "Elenco dei modelli alternativi per generare gli indirizzi di risposta alle email in arrivo. Esempio: %%{reply_key}@reply.example.com|replies+%%{reply_key}@example.com"
incoming_email_prefer_html: "Usa HTML al posto del testo per le email in arrivo."
strip_incoming_email_lines: "Rimuovi gli spazi bianchi iniziali e finali da ciascuna riga di email in arrivo."
- disable_emails: "Impedisci a Discourse di inviare qualsiasi tipo di email. Seleziona 'Sì' per disabilitare le email per tutti gli utenti. Seleziona 'non-staff' per disabilitare le email solo per gli utenti non staff."
strip_images_from_short_emails: "Elimina le immagini dalle email aventi dimensione inferiore a 2800 Byte."
short_email_length: "Definisci in byte la lunghezza massima entro cui un'email viene classificata come \"breve\" per il blocco immagini. Se le dimensioni dell'email non superano il valore impostato, tutte le immagini (come avatar ed emoji) presenti nell'email verranno bloccate."
display_name_on_email_from: "Mostra nomi completi per email dai campi"
@@ -2103,6 +2098,7 @@ it:
mailgun_api_key: "Chiave API Segreta di Mailgun usata per verificare i messaggi webhook. "
sendgrid_verification_key: "Chiave di verifica Sendgrid utilizzata per verificare i messaggi webhook."
mailjet_webhook_token: "Token utilizzato per verificare il payload del webhook. Deve essere passato come parametro di query 't' del webhook, ad esempio: https://example.com/webhook/mailjet?t=supersecret"
+ mailpace_webhook_token: "Token utilizzato per verificare il payload del webhook. Deve essere passato come parametro di query 't' del webhook, ad esempio: https://example.com/webhook/mailpace?t=supersecret"
mandrill_authentication_key: "Chiave di autenticazione Mandrill usata per verificare i messaggi webhook."
postmark_webhook_token: "Token utilizzato per verificare il payload del webhook. Deve essere passato come parametro di query 't' del webhook, ad esempio: https://example.com/webhook/postmark?t=supersecret"
sparkpost_webhook_token: "Token utilizzato per verificare il payload del webhook. Deve essere passato come parametro di query 't' del webhook, ad esempio: https://example.com/webhook/sparkpost?t=supersecret"
@@ -2365,7 +2361,6 @@ it:
dashboard_hidden_reports: "Consenti di nascondere i report specificati dal dashboard."
dashboard_visible_tabs: "Scegli quali schede del dashboard sono visibili."
dashboard_general_tab_activity_metrics: "Scegli i report da visualizzare come metriche di attività nella scheda generale."
- gravatar_enabled: "Utilizza il servizio Gravatar per gli avatar degli utenti. Questo impedirà agli utenti di passare a Gravatar per i propri avatar, ma non avrà alcun impatto sugli utenti che già lo utilizzano."
gravatar_name: "Specifica il nome del fornitore di servizi Gravatar. Questo nome serve generalmente a identificare la sorgente che fornisce al sito gli avatar Gravatar."
gravatar_base_url: "Definisci l'URL di accesso all'API del provider di Gravatar. Questa impostazione è necessaria per convertire gli indirizzi email negli URL di Gravatar presso cui verranno archiviate le immagini degli avatar."
gravatar_login_url: "URL relativo a `gravatar_base_url`, che fornisce all'utente le credenziali di accesso al servizio Gravatar."
@@ -2445,12 +2440,6 @@ it:
reply_by_email_disabled: "Devi abilitare 'reply by email' prima di attivare questa impostazione ."
discourse_connect_url_is_empty: "È necessario definire un 'discourse connect url' prima di abilitare questa impostazione."
enable_local_logins_disabled: "Prima di abilitare questa impostazione è necessario abilitare 'enable local logins'."
- min_username_length_exists: "Non è possibile impostare la lunghezza minima del nome utente a un valore maggiore di quella del nome utente più breve (%{username})."
- min_group_name_length_exists: "Non è possibile impostare la lunghezza minima del nome utente al di sopra del nome del gruppo più corto (%{group_name})."
- min_username_length_range: "Non puoi impostare il minimo più grande del massimo."
- max_username_length_exists: "Non è possibile impostare la lunghezza massima del nome utente a un valore inferiore di quella del nome utente più lungo (%{username})."
- max_group_name_length_exists: "Non è possibile impostare la lunghezza massima del nome utente al di sotto del nome del gruppo più lungo (%{group_name})."
- max_username_length_range: "Non puoi impostare il massimo inferiore al minimo."
invalid_hex_value: "I valori di colore devono essere codici esadecimali a 6 cifre."
empty_selectable_avatars: "Devi caricare almeno due avatar selezionabili prima di abilitare questa impostazione."
category_search_priority:
@@ -2509,7 +2498,6 @@ it:
exclude_tag: "Escludi argomenti con un'etichetta specifica"
exclude_tags_any: "Escludi gli argomenti con una qualsiasi delle etichette specificate (separate da una virgola)"
exclude_tags_all: "Escludi gli argomenti di tutte le etichette specificate (separate dal segno più)"
- tags_alias: "Alias per il filtro 'etichetta:'"
tag_group: "Mostra argomenti con etichetta da un gruppo di etichette specifico"
exclude_tag_group: "Escludi argomenti con etichetta da un gruppo di etichette specifico"
activity_before: "Mostra argomenti con ultima attività prima di una data (AAAA-MM-GG o giorni fa)"
@@ -4503,8 +4491,6 @@ it:
deprecation_error_label: Fai in modo che le deprecazioni di Javascript generino un errore
enter: "Avvia Modalità Sicura"
must_select: "È necessario selezionare almeno un'opzione per accedere alla modalità sicura."
- dev_mode:
- enter: "Invio"
wizard:
title: "Configurazione Discourse"
step:
@@ -4762,8 +4748,6 @@ it:
approve_and_unhide:
title: "Sì"
complete: "Messaggio approvato e reso visibile"
- no_action_post:
- title: "Nessuna azione"
delete_post:
title: "Elimina messaggio"
complete: "Messaggio eliminato"
@@ -4772,8 +4756,6 @@ it:
restore_post:
title: "Ripristina messaggio"
complete: "Messaggio ripristinato"
- no_action_user:
- title: "Nessuna azione"
silence_user:
title: "Silenzia utente"
complete: "Utente silenziato"
diff --git a/config/locales/server.ja.yml b/config/locales/server.ja.yml
index 6d051ae4d0f5e..a941cf154bfb0 100644
--- a/config/locales/server.ja.yml
+++ b/config/locales/server.ja.yml
@@ -60,8 +60,6 @@ ja:
inline_oneboxer:
topic_page_title_post_number: "#%{post_number}"
topic_page_title_post_number_by_user: "%{username} の #%{post_number}"
- too_many_urls: "1 つのリクエストで 10 個以上の URL をワンボックスにインライン化できません。"
- concurrency_not_allowed: "インラインワンボックスリクエストを同時に送信できません。リクエストを 1 つずつ送信してください。"
components:
enabled_filter: "有効"
disabled_filter: "無効"
@@ -141,6 +139,8 @@ ja:
invalid_type: "%{type} は有効な型ではありません"
humanize_not_valid_string_value: "JSON ポインター '%{property_json_pointer}' のプロパティは文字列である必要があります。"
not_valid_string_value: "は文字列である必要があります"
+ humanize_not_valid_datetime_value: "JSON ポインター '%{property_json_pointer}' のプロパティは有効な日時である必要があります。"
+ not_valid_datetime_value: "有効な日時である必要があります"
humanize_not_valid_integer_value: "JSON ポインター '%{property_json_pointer}' のプロパティは整数である必要があります。"
not_valid_integer_value: "は整数である必要があります"
humanize_not_valid_float_value: "JSON ポインター '%{property_json_pointer}' のプロパティは浮動小数点である必要があります。"
@@ -256,6 +256,7 @@ ja:
greater_than: は %{count} より大きい値である必要があります
greater_than_or_equal_to: は %{count} 以上である必要があります
has_already_been_used: "はすでに使用されています"
+ in: '%{count} 内である必要があります'
inclusion: はリストに含まれていません
invalid: は無効です
is_invalid: "は曖昧です。完全な文ですか?"
@@ -317,7 +318,6 @@ ja:
slow_down_crawler_user_agent_must_be_at_least_3_characters: "ユーザーエージェントは、正当なユーザーを誤ってレート制限しないように、3 文字以上である必要があります。"
slow_down_crawler_user_agent_cannot_be_popular_browsers: "設定に次の値を追加することはできません: %{values}。"
strip_image_metadata_cannot_be_disabled_if_composer_media_optimization_image_enabled: "'composer media optimization image enabled' が有効である場合、画像メタデータの削除を無効にすることはできません。画像メタデータの削除を無効にする前に、'composer media optimization image enabled' を無効にしてください。"
- x_summary_large_image_no_svg: "twitter:image メタデータに使用される X の要約画像に .svg 画像を使用できません。"
tl0_and_anonymous_flag: "匿名ユーザーの場合は、'site contact email' または 'email address to report illegal content' のいずれかが指定されている必要があります。"
allow_likes_in_anonymous_mode_without_anonymous_mode_enabled: "この設定では、先に 'allow anonymous mode' 設定が有効になっている必要があります。"
conflicting_google_user_id: 'このアカウントの Google アカウント ID が変更されました。セキュリティの理由により、スタッフによる介入が必要です。スタッフに連絡し、
https://meta.discourse.org/t/76575 を示してください。'
@@ -365,6 +365,7 @@ ja:
redemption_count_less_than_max: "は %{max_redemptions_allowed} より小さい値である必要があります。"
email_xor_domain: "メールアドレスとドメインのフィールドを同時に使用できません"
existing_user_success: "招待は正常に引き換えられました"
+ email_invites_disabled: "招待メールの送信は無効です"
bulk_invite:
file_should_be_csv: "アップロードファイルは csv 形式である必要があります。"
max_rows: "最初の %{max_bulk_invites} 件の招待が送信されました。ファイルをより小さく分割してください。"
@@ -550,6 +551,7 @@ ja:
other: "一度に最大 %{count} 個のメールドメインをカウントできます。"
no_invites_with_discourse_connect: "DiscourseConnect が有効である場合にのみ、登録済みユーザーを招待できます"
no_invites_without_local_logins: "ローカルログインが無効である場合にのみ、登録済みユーザーを招待できます"
+ update_existing_users_required: "この変更は %{count} 人の既存のグループメンバーに影響します。'update_existing_users' パラメーター (ture または false) によって、新しい通知のデフォルトを既存のメンバーに適用するかどうかを指定する必要があります。"
default_names:
everyone: "全員"
admins: "管理者"
@@ -745,6 +747,8 @@ ja:
email_already_used_in_group: "'%{email}' はすでに '%{group_name}' グループに使われています。"
email_already_used_in_category: "'%{email}' はすでに '%{category_name}' カテゴリに使われています。"
description_incomplete: "カテゴリの説明の投稿には少なくとも 1 段落必要です。"
+ description_too_long:
+ other: "説明が長すぎます (最大 %{count} 文字)。"
permission_conflict: "サブカテゴリにアクセスできるグループは、その親カテゴリにもアクセスできます。次のグループは、サブカテゴリの 1 つにアクセスできますが、親カテゴリにはアクセスできません: %{group_names}"
disallowed_topic_tags: "このトピックにはこのカテゴリで許可されていないタグがあります: '%{tags}'"
disallowed_tags_generic: "このトピックはタグを許可していません。"
@@ -958,6 +962,7 @@ ja:
too_many_drafts:
title: "下書きが多すぎます"
description: "許可される下書きの最大数に達しました。一部の[下書き](%{base_url}/my/activity/drafts)を削除してからもう一度お試しください。"
+ bulk_destroy_limit: "一度に削除できる下書きは %{limit} 件までです。"
draft_backup:
pm_title: "進行中のトピックのバックアップ下書き"
pm_body: "バックアップの下書きを含むトピック"
@@ -1056,10 +1061,14 @@ ja:
every_month: "毎月"
every_six_months: "6 か月毎"
user_api_key:
+ title: '「%{application_name}」の承認'
authorize: "承認"
deny: "キャンセル"
read: "読み取り"
read_write: "読み取り/書き込み"
+ logged_in_as: "ログイン中:"
+ permissions_header: 'これにより、「%{application_name}」で次を行えます:'
+ redirect_warning: "承認すると次の場所にリダイレクトされます:"
instructions: '"%{application_name}" で使用できる新しいユーザー API キーを生成しました。次のキーをアプリケーションに貼り付けてください。'
otp_description: '"%{application_name}" にこのサイトへのアクセスを許可しますか?'
otp_confirmation:
@@ -1184,6 +1193,8 @@ ja:
yaxis: "日"
description: "通常の API キーとユーザー API キーの API リクエスト。"
consolidated_page_views_browser_detection:
+ title: "ブラウザ検出による統合ページビュー (推奨)"
+ title_legacy: "ブラウザ検出による統合ページビュー (推奨)"
xaxis:
page_view_anon_browser: "匿名ブラウザ"
page_view_logged_in_browser: "ログイン中のブラウザ"
@@ -1491,11 +1502,15 @@ ja:
labels:
provider: ログインプロバイダー
no_accounts: "関連アカウントはありません"
+ discourse_connect: "Discourse Connect による SSO"
+ no_sso_accounts: "SSO レコードのないアカウント"
+ total_users: "合計アクティブユーザーアカウント数"
description: "ログインプロバイダーでグループ化された関連アカウントの数を表示します。ソーシャルログインが有効になっている場合にのみ適用有れます。"
dashboard:
problem:
twitter_login: 'X ログインは現在動作していないようです。サイト設定で資格情報を確認してください。'
group_email_credentials: 'グループ %{group_full_name} のメールの資格情報に問題がありました。この問題が解決されるまで、このグループの受信トレイからメールを送信できません。%{error}'
+ upcoming_change_stable_opted_out: 'あなたのサイトは「%{upcoming_change}」の次回の変更をオプトアウトしていますが、この変更は「安定」ステータスに達したため、まもなく削除されるか正式に公開されます。この変更の詳細については、次回の変更ページをご覧ください。'
rails_env: "サーバーは %{env} モードで実行中です。"
host_names: "現在 config/database.yml ファイルは、デフォルトの localhost をホスト名として使用しています。あなたのサイトのホスト名に更新してください。"
sidekiq: 'Sidekiq が実行していません。メール送信などの多くのタスクは sidekiq により非同期に実行されます。少なくとも 1 つの sidekiq プロセスが実行していることを確認してください。Sidekiq についてはこちらをご覧ください。'
@@ -1526,6 +1541,7 @@ ja:
category_style_deprecated: "あなたの Discourse は現在、Discourse 3.2 の最終ベータリリース前に削除が予定されている非推奨のカテゴリスタイルを使用しています。選択したカテゴリスタイルを維持する方法については、単一カテゴリスタイルのサイト設定をご覧ください。"
maxmind_db_configuration: 'サーバーは逆 IP ルックアップに MaxMind データベースを使用するように構成されていますが、有効な MaxMind アカウント ID が構成されていないため、今後、MaxMind データベースのダウンロードに失敗する可能性があります。詳しくは、こちらのガイドをご覧ください。'
admin_sidebar_deprecation: "古い管理者レイアウトは使用できなくなり、新しいサイドバーレイアウトに代わります。古いレイアウトは次のリリースで削除されます。その前に新しいサイドバーレイアウトを使用し始める場合は、今すぐ構成してください。"
+ starttls_disabled: "送信メールの構成では STARTTLS が無効になっています。これはほとんど必要ありません。環境から DISCOURSE_SMTP_ENABLE_START_TLS=false
を削除することを検討してください。詳細については、こちらのトピックをご覧ください。"
back_from_logster_text: "サイトに戻る"
site_settings:
allow_bulk_invite: "CSV ファイルのアップロードによる一括招待を許可する"
@@ -1570,6 +1586,7 @@ ja:
allow_duplicate_topic_titles_category: "カテゴリが異なる場合、同一の重複したタイトルを持つトピックを許可する。allow_duplicate_topic_titles は無効にする必要があります。"
unique_posts_mins: "同じコンテンツを投稿できるまでの時間 (分)"
educate_until_posts: "最初の (n) 件の新規投稿を入力し始めたときに、新規ユーザーチュートリアルのパネルをポップアップ表示します。"
+ title: "このサイトの名前。匿名ユーザーを含むすべての訪問者に表示されます。このタイトルを変更すると、PWA のユーザーに、アプリの更新またはアンインストールを求めるプロンプトが送信される場合があります。"
site_description: "このサイトを一文で説明してください。匿名ユーザーを含むすべての訪問者に表示されます。"
short_site_description: "短い言葉で簡単に説明してください。匿名ユーザーを含むすべての訪問者に表示されます。"
contact_email: "このサイトの責任者の主要連絡先のメールアドレス。重要な通知に使用され、サイト情報にも表示されます。公開サイトの匿名ユーザーにも表示されます。"
@@ -1577,6 +1594,7 @@ ja:
crawl_images: "リモート URL から画像を取得して、正しい幅と高さの寸法を挿入する。"
download_remote_images_to_local: "リモート (ホットリンク) 画像をダウンロードしてローカル画像に変換します。これにより、サイトから画像が削除された場合でも、コンテンツが保持されます。"
download_remote_images_threshold: "リモート画像をダウンロードするために必要なディスクの最低空き容量 (パーセント表示)"
+ disabled_image_download_domains: "これらのドメインのリモート画像をダウンロードしない。"
block_hotlinked_media: "ユーザーがリモート (ホットリンク) メディアを投稿に導入できないようにします。'download_remote_images_to_local' でダウンロードされないリモートメディアは、プレースホルダーリンクに置き換えられます。"
block_hotlinked_media_exceptions: "block_hotlinked_media 設定から除外されるベース URL のリストです。プロトコルを含めます (例: https://example.com)。"
editing_grace_period: "投稿から (n) 秒間は、編集しても投稿履歴に新しいバージョンを作成しない。"
@@ -1615,6 +1633,7 @@ ja:
logo: "サイトの左上にあるロゴ画像です。高さ 120、縦横比 3:1を超える広幅の長方形の画像を使用してください。空白のままにすると、サイトタイトルのテキストが表示されます。"
logo_small: "あなたのサイトの左上にある小さなロゴ画像です。下にスクロールしたときに見えます。 120×120 の正方形の画像を使用してください。空白のままにすると、ホームグリフが表示されます。"
digest_logo: "サイトのメール要約の上部で使用されるロゴの代替画像です。広い長方形の画像を使用してください。SVG 画像を使わないでください。空白のままにすると、`logo` で設定した画像が使用されます。"
+ mobile_logo: "あなたのサイトのモバイル版で使用されるロゴ。ヘッダーが混雑しないように正方形のアイコンを使用することをお勧めしますが、高さ 120、アスペクト比 3:1 以上の幅広の長方形画像を使用できます。空白のままにする後、ロゴ設定の画像が使用されます。"
logo_dark: "'logo' サイト設定の代替のダークスキーム。"
logo_small_dark: "'logo small' サイト設定の代替のダークスキーム。"
mobile_logo_dark: "'mobile logo' サイト設定の代替のダークスキーム。"
@@ -1625,8 +1644,11 @@ ja:
opengraph_image: "デフォルトの opengraph 画像。ページにほかの適切な画像がない場合に使用されます。空のままにすると、large_icon が使用されます"
x_summary_large_image: "Twitter カードの 'summary large image' (幅 280 以上、高さ 150 以上である必要があり、.svg を使用できません)。空のままにすると、.svg でない限り opengraph_image を使って通常のカードメタデータが生成されます。"
notification_email: "システムからの重要なメール送信に使用する from: メールアドレス。メールが届くように、ここに指定されたドメインは SPF、DKIM、逆引き PTR レコードが正しく設定されている必要があります。"
+ email_custom_headers: "カスタムメールヘッダーのリスト"
email_subject: "標準メールのカスタマイズ可能な件名形式。https://meta.discourse.org/t/customizing-specific-system-email-templates/88323 をご覧ください"
detailed_404: "特定のトピックにアクセスできない詳細な理由をユーザーに提供します。注意: URL が有効なトピックにリンクしているかどうかがユーザーにわかるため、安全性が低くなります。"
+ enforce_second_factor: "ユーザーに Discourse UI にアクセスする前に二要素認証 (2FA) を有効にするように要求します。この設定は API または 'DiscourseConnect プロバイダー' 認証に影響しません。enforce_second_factor_on_external_auth が有効である場合、ユーザーは 2FA をセットアップした後、外部認証プロバイダーを使用してログインできなくなります。"
+ enforce_second_factor_on_external_auth: "ユーザーに常に二要素認証 (2FA) を使用するように要求します。これを有効にすると、2FA が有効である場合に、ソーシャルログインなどの外部認証方法でログインできなくなります。無効にすると、ユーザー名とパスワードでログインする際に 2FA のみを確認する必要があります。`enforce_second_factor` 設定も参照してください。"
force_https: "サイトが HTTPS のみを使用するように強制する。警告: HTTPS が完全にセットアップ済みであり、すべての場所で機能していることを確認するまで、これを有効にしないでください!CDN、すべてのソーシャルログイン、および外部ロゴ/依存関係がすべて HTTPS 対応であることを確認しましたか?"
summary_score_threshold: "「このトピックを要約」に含まれるために必要な投稿の最低スコア"
summary_posts_required: "'このトピックを要約' を有効にするために最低限必要なトピック内の投稿数。この設定を変更すると、1 週間以内で遡って適用されます。"
@@ -1684,7 +1706,10 @@ ja:
ga_universal_domain_name: "Google Universal Analytics ドメイン名。例: mysite.com。https://google.com/analytics をご覧ください"
ga_universal_auto_link_domains: "Google Universal Analytics クロスドメイントラッキングを有効にする。これらのドメインへの発信リンクにはクライアント ID が追加されます。Google のクロスドメイントラッキングガイドをご覧ください。"
gtm_container_id: "Google Tag Manager コンテナ ID。例: GTM-ABCD12E。
注意: コンテンツセキュリティポリシー (CSP) が有効な場合に GTM を使用するには、メタのドキュメントをご覧ください: Google Tag Manager スクリプトでノンスを使用する。"
+ google_site_verification_token: Google 検索コンソールの認証トークン。HTML の head にメタタグとして含まれます。
enable_escaped_fragments: "ウェブクローラーが検出されない場合、Google の Ajax-Crawling API にフォールバックする。https://developers.google.com/webmasters/ajax-crawling/docs/learn-more をご覧ください。"
+ moderators_manage_categories: "モデレーターによるカテゴリの作成と管理を許可する"
+ moderators_manage_groups: "モデレーターによるグループの作成と管理を許可する"
moderators_change_post_ownership: "モデレーターによる投稿の所有権の変更を許可する"
cors_origins: "CORS を許可。オリジンは http:// か https:// を含む必要があります。CORS を有効にするには、環境変数 DISCOURSE_ENABLE_CORS に true を設定する必要があります。"
use_admin_ip_allowlist: "管理者はスクリーン対象 IP リスト (管理者 > ログ > スクリーン対象 IP) に定義されている IP アドレスからのみログインできる。"
@@ -1696,9 +1721,9 @@ ja:
blocked_crawler_user_agents: "サイトへのアクセスを許可してはいけないウェブクローラーを識別する、ユーザーエージェント文字列の大文字と小文字を区別しない一意の語。ホワイトリストが定義されている場合は適用されません。"
slow_down_crawler_user_agents: '"slow down crawler rate" 設定の構成のとおりに速度の制限が必要なウェブクローラーのユーザーエージェント。各値の長さは 3 文字以上です。'
slow_down_crawler_rate: "このレートに slow_down_crawler_user_agents が指定されている場合、このレートはすべてのクローラーに適用されます (リクエスト間の遅延秒数)"
+ llms_txt: "LLM クローラー向けに /llms.txt に配信するテキストファイルをアップロードする。詳細は llmstxt.org をご覧ください。"
content_security_policy: "Content-Security-Policy (CSP) を有効にします。CSP は、クロスサイトスクリプティング (XSS) やデータインジェクションなどの特定の種類の攻撃を防ぐのに役立つ追加のセキュリティレイヤーです。"
content_security_policy_report_only: "Content-Security-Policy-Report-Only (CSP) を有効にする"
- content_security_policy_collect_reports: "/csp_reports で CSP 違反レポートの収集を有効にする"
content_security_policy_frame_ancestors: "CSP を介してこのサイトを iframe に埋め込むことのできるユーザーを制限する。許可されるホストを 埋め込みで制御します。"
content_security_policy_script_src: "追加のホワイトリストにあるスクリプトソース。現在のホストと CDN はデフォルトで含まれています。コンテンツセキュリティポリシー (CSP) で XSS 攻撃を緩和する をご覧ください。その他のホストソースは strict-dynamic が有効であるため無視されます。"
invalidate_inactive_admin_email_after_days: "この日数以上サイトを訪問していない管理者アカウントは、ログインする前にメールアドレスを再確認する必要があります。0 に設定すると無効になります。"
@@ -1726,6 +1751,7 @@ ja:
top_page_default_timeframe: "匿名ユーザーのデフォルトのトップページ期間 (ログインユーザーの場合は最終アクセスに基づいて自動的に調整されます)。"
moderators_view_emails: "モデレーターによるユーザーのメールアドレスの閲覧を許可します。"
moderators_view_ips: "モデレーターによるユーザーの IP アドレスの閲覧を許可します。"
+ moderators_change_trust_levels: "モデレーターによるユーザーの信頼レベルの変更を許可する。"
prioritize_username_in_ux: "ユーザーページ、ユーザーカード、および投稿の最初にユーザー名を表示する (無効にすると先に名前が表示されます)"
enable_rich_text_paste: "テキストをコンポーザーに貼り付ける際に、HTML からマークダウンへの自動変換を有効にする。"
send_old_credential_reminder_days: "日数後に古い資格情報についてリマインダーする"
@@ -1736,6 +1762,8 @@ ja:
whispers_allowed_groups: "特定のグループのメンバーに、トピック内での非公開コミュニケーションを許可します。"
hidden_post_visible_groups: "これらのグループのメンバーが非表示の投稿を表示できるようにします。スタッフユーザーは常に非表示の投稿を表示できます。"
allow_index_in_robots_txt: "このサイトはウェブ検索エンジンによるインデックス作成を許可されていることを robots.txt で指定します。robots.txt のオーバーライドはこちらで行えます。警告: 構成ルールを誤ると、期待どおりにサイトがクロールされない場合があります。"
+ blocked_email_domains: "ユーザーがアカウントの登録に使用できないメールドメインのリスト。サブドメインは自動的に指定されたドメインに対して処理されます。ワイルドカード記号の * と ? はサポートされていません。例: mailinator.com"
+ allowed_email_domains: "ユーザーがアカウントの登録に使用する必要のあるメールドメインのリスト。サブドメインは自動的に指定されたドメインに対して処理されます。ワイルドカード記号の * と ? はサポートされていません。警告: リストに含まれないメールドメインのユーザーは許可されません!"
normalize_emails: "正規化されたメールアドレスが一意であるかをチェックします。正規化されたメールアドレスでは、ユーザー名のすべてのドットと、+ と @ 記号の間のすべてが削除されます。"
auto_approve_email_domains: "このドメインリストにあるメールアドレスを持つユーザーは自動的に承認されます。サブドメインは自動的に指定されたドメインに対して処理されます。ワイルドカード記号の * と ? はサポートされていません。"
hide_email_address_taken: "サインアップ中やパスワード忘れのフローの際に、指定したメールアドレスでアカウントが存在することをユーザーに知らせません。'パスワード忘れ' のリクエストでは、完全なメールアドレスが必要です。"
@@ -1769,6 +1797,7 @@ ja:
auth_overrides_email: "ログインするたびにローカルメールを外部サイトメールでオーバーライドし、ローカルでの変更を防止する。すべての認証プロバイダーに適用されます (警告: ローカルメールの正規化により、矛盾が生じる可能性があります)"
auth_overrides_username: "ログインするたびにローカルユーザー名を外部サイトのユーザー名でオーバーライドし、ローカルでの変更を防止する。すべての認証プロバイダーに適用されます (警告: ユーザー名の長さ/要件の違いにより、矛盾が発生する可能性があります)。"
auth_overrides_name: "ログインするたびにローカルのフルネームを外部サイトのフルネームでオーバーライドする。すべての認証プロバイダーに適用されます。"
+ auth_overrides_avatar: "ログインするたびにローカルのアバターを外部サイトのアバターでオーバーライドする。すべての認証プロバイダーに適用されます。"
discourse_connect_overrides_avatar: "ユーザーのアバターを DiscourseConnect ペイロードの値でオーバーライドする。有効である場合、ユーザーは Discourse にアバターをアップロードできなくなります。"
discourse_connect_overrides_location: "ユーザーの場所を DiscourseConnect ペイロードの値でオーバーライドし、ローカルの変更を防止する。"
discourse_connect_overrides_website: "ユーザーのウェブサイトを DiscourseConnect ペイロードの値でオーバーライドし、ローカルの変更を防止する。"
@@ -1848,6 +1877,7 @@ ja:
invite_link_max_redemptions_limit_users: "通常のユーザーが生成した招待リンクに許可される最大引き換え数はこの値を超えることはできません。"
alert_admins_if_errors_per_minute: "管理者アラートをトリガーするための 1 分あたりのエラー数。値 0 はこの機能を無効にします。注意: 再起動が必要です。"
alert_admins_if_errors_per_hour: "管理者アラートをトリガーするための 1 時間あたりのエラー数。値 0 はこの機能を無効にします。注意: 再起動が必要です。"
+ categories_topics: '/categories ページに表示するトピックの数。0 に設定すると、2 つの列が対称になるように自動的に値が設定されます。「カテゴリと最新/トップトピック」カテゴリページスタイルのみに関係します。'
suggested_topics: "トピックの下に表示される推奨トピックの数"
limit_suggested_to_category: "推奨トピックには現在参照しているカテゴリのトピックのみを表示する。"
suggested_topics_max_days_old: "投稿されて n 日経過したものを推奨トピックにしない。"
@@ -1874,6 +1904,7 @@ ja:
selectable_avatars_mode: "ユーザーが selectable_avatars リストからアバターを選択できるようにし、カスタムアバターのアップロードを選択した信頼レベルに制限できるようにします。"
selectable_avatars: "ユーザーがプロファイル写真に選択できるアバターのコレクションを指定します。この選択肢はユーザープロファイルの作成時またはプロファイルアバターの更新時に表示されます。"
allow_all_attachments_for_group_messages: "グループメッセージのメールの添付ファイルをすべて許可する。"
+ image_quality: "サイトにアップロードされる画像の品質レベルを設定します。品質が低いほどファイルサイズが小さくなります。"
png_to_jpg_quality: "変換された JPG ファイルの品質 (1 は最低品質、99 は最高品質、100 は無効)。"
recompress_original_jpg_quality: "アップロードされた画像ファイルの品質 (1 は最低品質、99 は最高品質、100 は無効)。"
image_preview_jpg_quality: "サイズ変更された画像ファイルの品質 (1 は最低品質、99 は最高品質、100 は無効)。"
@@ -1887,6 +1918,7 @@ ja:
video_conversion_enabled: "アップロードした動画ファイルの動画変換を有効にします。これにより、動画をウェブ互換形式に変換できます。"
video_conversion_service: "アップロードした動画の処理に使用する動画変換サービス。"
mediaconvert_role_arn: "MediaConvert サービスの AWS IAM ロールの ARN。動画変換に AWS MediaConvert を使用する場合に必要です。"
+ mediaconvert_output_subdirectory: "MediaConvert が変換した動画を最終アップロード場所に移動する前に一時的に書き込む S3 バケットのサブディレクトリ。"
min_ratio_to_crop: "高さのある画像のトリミングに使用される比率。幅 ÷ 高さの結果を入力します。"
simultaneous_uploads: "コンポーザーにドラッグアンドドロップできるファイルの最大数"
default_invitee_trust_level: "招待したユーザーのデフォルトの信頼レベル (0~4)。"
@@ -2002,6 +2034,7 @@ ja:
auto_silence_fast_typers_on_first_post: "`fast typing threshold` を満たさないユーザーを自動的に投稿禁止にする"
auto_silence_fast_typers_max_trust_level: "高速タイパーを自動的に投稿禁止する最高信頼レベル"
auto_silence_first_post_regex: "大文字と小文字を区別しない正規表現。合格すると、ユーザーの最初の投稿は投稿禁止になり、承認キューに送られます。例: aging|a[bc]a はまず、「raging」または「aba」または「aca」を含むすべての投稿を投稿禁止にします。最初の投稿のみに適用されます。使用廃止: 代わりに「ウォッチ語の投稿禁止」を使用してください"
+ moderator_guide_topic: "コミュニティーのモデレーション方法を説明するトピック。リンクはモデレーターと管理者のレビューキューに表示されます。"
reviewable_claiming: "レビュー待ちコンテンツは、対応前に割り当てられる必要があるかどうか"
reviewable_default_topics: "デフォルトでレビュー待ちコンテンツをトピック別にグループ化して表示する"
reviewable_default_visibility: "レビュー待ち項目がこの優先度を満たさない場合、それを表示しない"
@@ -2010,12 +2043,13 @@ ja:
allow_all_users_to_flag_illegal_content: "匿名ユーザーには、違法コンテンツを管理者にメールで報告する必要があるという情報が表示されます。この設定は 'flag post allowed groups' より優先されます。"
email_address_to_report_illegal_content: "空白のままにすると、デフォルトのサイト管理者のメールアドレスが使用されます。"
cooldown_hours_until_reflag: "ユーザーが投稿をもう一度通報できるまでの時間"
+ slow_mode_prevents_editing: "「低速モード」では、'editing grace period' の後に編集できなくなりますか?"
reply_by_email_enabled: "ユーザーがウェブサイトにログインせずに、直接メールでトピックに返信できるようにする機能を有効にします。詳細については、Meta のガイドをご覧ください。"
reply_by_email_address: "メールによる返信の受信メールアドレスのテンプレート。例: %%{reply_key}@reply.example.com または replies+%%{reply_key}@example.com"
alternative_reply_by_email_addresses: "メールによる返信の受信メールアドレスの代替テンプレートのリスト。例: %%{reply_key}@reply.example.com|replies+%%{reply_key}@example.com"
incoming_email_prefer_html: "受信メールにテキストの代わりに HTML を使用する。"
strip_incoming_email_lines: "受信メールの各行から先頭と末尾の空白を削除する。"
- disable_emails: "Discourse があらゆる種類のメールを送信しないようにする。'はい' を選択するとすべてのユーザーのメールが無効になります。'スタッフ以外' を選択すると、スタッフ以外のユーザーのみのメールを無効にします。"
+ allow_email_invites: "無効にすると、ユーザーは Discourse 経由で招待メールを送信できなくなります。"
strip_images_from_short_emails: "2800 バイト未満のメールから画像を削除します。"
short_email_length: "画像抑制の目的でメールが '短い' として分類される最大長をバイトで定義します。メールのサイズがこの設定を超過しない場合、メール内の画像 (アバターや絵文字など) はすべて削除されます。"
display_name_on_email_from: "email from フィールドにフルネームを表示する"
@@ -2033,6 +2067,7 @@ ja:
mailgun_api_key: "Webhook メッセージを検証するために使用される Mailgun Secret API キー。"
sendgrid_verification_key: "Webhook メッセージの検証に使用される Sendgrid 検証キー。"
mailjet_webhook_token: "Webhook ペイロードの検証に使用されるトークン。webhook の 't' クエリパラメーターとして渡される必要があります。例: https://example.com/webhook/mailjet?t=supersecret"
+ mailpace_webhook_token: "Webhook ペイロードの検証に使用されるトークン。webhook の 't' クエリパラメーターとして渡される必要があります。例: https://example.com/webhook/mailpace?t=supersecret"
mandrill_authentication_key: "Webhook メッセージの検証に使用される Mandrill 認証キー。"
postmark_webhook_token: "Webhook ペイロードの検証に使用されるトークン。webhook の 't' クエリパラメーターとして渡される必要があります。例: https://example.com/webhook/postmark?t=supersecret"
sparkpost_webhook_token: "Webhook ペイロードの検証に使用されるトークン。webhook の 't' クエリパラメーターとして渡される必要があります。例: https://example.com/webhook/sparkpost?t=supersecret"
@@ -2075,6 +2110,7 @@ ja:
relative_date_duration: "投稿後、投稿日が相対表示 (例: 7 日) から絶対表示 (2 月 20 日) に変わるまでの日数。"
delete_user_max_post_age: "最初の投稿が (x) 日間以上前であるユーザーは削除しない"
delete_all_posts_max: "[すべての投稿を削除] ボタンで一度に削除可能な最大投稿数。ユーザーがここで指定した以上の投稿を作成していた場合は、全投稿をまとめて削除することができません。またユーザーも削除されません。"
+ delete_all_posts_background_threshold: "バックグラウンドで削除が処理されるまでに、「すべての投稿を削除」ボタンで一度に削除できる投稿の最大件数。"
delete_user_self_max_post_count: "セルフサービスのアカウント削除を許可しているときにユーザーが持つことのできる投稿の最大数。-1 を設定するとセルフサービスのアカウント削除が無効になります。"
username_change_period: "アカウントがユーザー名を変更できる、登録後の最大日数 (0 に設定すると、ユーザー名の変更を禁止にします)。"
email_editable: "登録後、ユーザーにメールアドレスの変更を許可します。"
@@ -2103,6 +2139,8 @@ ja:
enable_category_group_moderation: "グループが特定のカテゴリのコンテンツに介入することを許可する"
group_in_subject: "メールの件名の %%{optional_pm} を PM の最初のグループの名前に設定する。「標準メールの件名のフォーマットをカスタマイズする」をご覧ください。"
allow_anonymous_mode: "ユーザーが匿名モードに切り替えて投稿するオプションを有効にします。有効にすると、ユーザーはサイト全体で投稿またはトピックを作成する際に自分の ID を非表示することを選択できます。`allow anonymous likes` も参照してください。"
+ allow_likes_in_anonymous_mode: "サイトを匿名で閲覧しているユーザーが投稿に「いいね!」できるようにするには、この設定を有効にします。有効にすると、ユーザーはサイト全体で投稿またはトピックに「いいね!」する際に、自分の ID を非表示にすることを選択できます。この設定には `allow_anonymous_mode` 設定が有効になっている必要があります。"
+ anonymous_posting_allowed_groups: "匿名投稿を有効にできるグループ。この設定には `allow anonymous mode` 設定が有効になっている必要があります。"
anonymous_account_duration_minutes: "匿名性を守るため、N 分毎に各ユーザーの匿名アカウントを作成しなおします。例 : 600 に設定すると、最終投稿から 600 分が経過し、さらにユーザーが匿名に切り替えると、新しい匿名アカウントが作成されます。"
hide_user_profiles_from_public: "匿名ユーザーのユーザーカード、ユーザープロファイル、およびユーザーディレクトリを無効にする。"
hide_new_user_profiles: "信頼レベル 1 以下のユーザープロファイルは、そのユーザーが初めて投稿するまで一般ユーザーと信頼レベル 1 のユーザーに対して非表示になります。この機能は must_approve_users と invite_only サイトでは無条件に無効になります。"
@@ -2118,6 +2156,7 @@ ja:
clean_up_unused_staged_users_after_days: "未使用のステージングユーザー (投稿なし) が削除されるまでの日数。クリーンアップを無効にするには、0 に設定します。"
user_selected_primary_groups: "ユーザーが独自のプライマリーグループを設定することを許可する"
max_notifications_per_user: "ユーザー当たりの通知の最大数。この数を超えると、古い通知は削除されます。毎週適用されます。0 に設定すると無効になります"
+ allowed_user_website_domains: "ユーザーのウェブサイトはこれらのドメインに対して検証されます。"
allow_profile_backgrounds: "ユーザーにプロファイル背景のアップロードを許可します。"
get_a_room_threshold: "警告を受けるまでに、ユーザーが同じトピックの同じ人物に行える投稿数。"
dont_feed_the_trolls_threshold: "警告を受けるまでの他のユーザーからの通報数。"
@@ -2196,6 +2235,7 @@ ja:
disable_watched_word_checking_in_user_fields: "ユーザーフィールドでのウォッチ中の単語のチェックを無効にする"
watched_words_regular_expressions: "単語をフィルタリングするための正規表現の使用を許可します。有効にすると、この機能は大文字と小文字を区別して、慎重な扱いを要する単語をグループ化します。そして選択されたすべての単語を 1 つの正規表現にコンパイルし、通常のウォッチ中の単語に単語境界を追加します。そのため、この正規表現を使用するフィルタリング手法では、より洗練された単語パターンをサポートすることで、コンテンツモデレーションに対する制御レイヤーがさらに追加されます。この設定は、元もテキストを任意の文字で置換したテキストに簡単に置き換えることも可能です。"
enable_fast_edit: "投稿選択メニューにインラインで小さな選択範囲を編集できるボタンを追加します。"
+ old_post_notice_days: "新しいユーザーと復帰ユーザーの投稿の通知が非表示になるまでの日数。公式投稿の通知は常に表示されます。"
new_user_notice_tl: "新しいユーザーの投稿通知を閲覧するために必要な最低信頼レベル。"
returning_user_notice_tl: "リピートユーザーの投稿通知を閲覧するために必要な最低信頼レベル。"
returning_users_days: "ユーザーがリピートとみなされる経過日数。"
@@ -2277,6 +2317,7 @@ ja:
force_lowercase_tags: "すべての新しいタグが完全に小文字になるように強制する。"
create_post_for_category_and_tag_changes: "トピックのカテゴリまたはタグが変更されたときにささやき投稿を作成する。ささやき投稿を有効にする必要があります。"
automatically_clean_unused_tags: "どのトピックや個人メッセージにも使用されていないタグを毎日自動的に削除します。"
+ default_watched_precedence_over_muted: "ミュートしているものも含み、ユーザーがウォッチ中のカテゴリまたはタグ内のトピックについてユーザーに通知する"
company_name: "会社または組織の名前。空白のままにすると、定型の利用規約またはプライバシーに関する通知は提供されません。"
governing_law: "利用規約やプライバシーポリシーなど、サイトの法的な側面を管理する管轄を指定します。これは通常、サイトを運営する会社が登録している国または州、または事業を行っている国または州です。"
city_for_disputes: "このフォーラムの使用に関連する紛争を解決するための管轄として使用される都市を指定します。この情報は通常、フォーラムの利用規約などの法的文書に含まれます。"
@@ -2292,10 +2333,10 @@ ja:
sitemap_page_size: "各サイトマップページに含める URL の数。最大 50,000"
enable_user_status: "ユーザーがカスタムステータスメッセージ (絵文字 + 説明) を設定できるようにする。"
enable_user_tips: "重要な機能をユーザーに説明する新しいユーザーヒントを有効にする"
+ short_title: "短いタイトルはユーザーのホーム画面、ランチャー、またはスペースが限られている場所で使用されます。12 文字以内です。このタイトルを変更すると、PWA のユーザーに、アプリの更新またはアンインストールを求めるプロンプトが送信される場合があります。"
dashboard_hidden_reports: "ダッシュボードから指定されたレポートを非表示にすることを許可する。"
dashboard_visible_tabs: "表示するダッシュボードのタブを選択します。"
dashboard_general_tab_activity_metrics: "アクティビティメトリクスとして一般タブに表示されるレポートを選択します。"
- gravatar_enabled: "ユーザーアバターに Gravatar サービスを使用する。これにより、ユーザーはアバターを Gravatar に切り替えられなくなりますが、すでに使用しているユーザーには影響しません。"
gravatar_name: "Gravatar サービスプロバイダーの名前を指定します。この名前は通常、Gravatar アバターをサイトに提供するソースを特定するために使用されます。"
gravatar_base_url: "Gravatar プロバイダーの API にアクセスするための URL を指定します。この設定は、メールアドレスをアバター画像が保存されている Gravatar URL に変換するために重要です。"
gravatar_login_url: "`gravatar_base_url` に相対する URL。ユーザーに Gravatar サービスへのログインを提供します。"
@@ -2312,6 +2353,7 @@ ja:
welcome_banner_image: "ウェルカムバナーの背景に表示する画像を設定します。"
welcome_banner_location: "ウェルカムバナーが表示されるページ内の場所を決定します。"
welcome_banner_page_visibility: "ウェルカムバナーが表示されるページを決定します。"
+ welcome_banner_text_color: "上記の「ウェルカムバナーの画像」設定を構成した場合、この設定を使用してバナーを読み取りやすいテキストの色に変更してください。空白のままにするか、画像をアップロードしなかった場合は、アクティブなテーマによって色が設定されます。"
splash_screen: "サイトアセットの読み込み中に一時的なローディング画面を表示します"
navigation_menu: "サイトのメインナビゲーションメニューとして、サイドバーかヘッダーのドロップダウンを指定します。推奨はサイドバーです。"
default_navigation_menu_categories: "選択されたカテゴリは、デフォルトでナビゲーションメニューのカテゴリセクションに表示されます。"
@@ -2320,6 +2362,7 @@ ja:
show_preview_for_form_templates: "フォームテンプレート機能のプレビューを有効にする"
lazy_load_categories_groups: "これらのグループのユーザーに対してのみ、カテゴリ情報を遅延読み込みする。これにより、カテゴリ数の多いサイトのパフォーマンスが改善されます。"
enable_auto_grid_images: "作成ツールに 3 つ以上の画像がアップロードされると、画像を自動的に [grid] タグで囲みます。"
+ experimental_impersonation_time_limit_minutes: "代理操作セッションが自動的に終了するまでの時間。"
page_loading_indicator: "Discourse 内のページナビゲーション中に表示される読み込みインジケーターを構成します。「スピナー」はページ全体のインジケーターです。「スライダー」は画面上部に細いバーを表示します。"
show_user_menu_avatars: "ユーザーメニューにユーザーアバターを表示する"
about_page_hidden_groups: "/about ページに特定のグループのメンバーを表示しない。"
@@ -2332,14 +2375,27 @@ ja:
rich_editor: "作成ツールでリッチエディターを有効にして、すべてのユーザーがより直感的で使いやすく作成できるように、現在の Markdown モードと新しいリッチテキストエディターを切り替えられるようにする。"
default_composition_mode: "コミュニティーの作成ツールのデフォルトモードを設定する。リッチテキストモードでは、よりモダンでほとんどのユーザーが使い慣れた書き心地を得られます。Markdown モードはより技術的な知識を持つユーザーに適しています。メンバーは作成ツールのツールバーにあるトグルでモードを切り替えられます。"
reviewable_ui_refresh: "レビューキューで実験的な新しい UI を使用できるグループ。"
+ viewport_based_mobile_mode: "ビューポートの幅を使用してモバイル/デスクトップモードを決定する。この設定はまもなく削除されます。オフにする必要がある場合は、Meta でお知らせください。"
content_localization_enabled: "ユーザーのブラウザまたはユーザの言語設定に基づいて、ローカライズされたコンテンツを表示します。コンテンツには、カテゴリ、タグ、投稿、トピックが含まれる場合があります。サポートされているロケールは、'content localization supported locales' に設定されているロケールです。"
+ content_localization_supported_locales: "ユーザーコンテンツを翻訳できるサポートされたロケールのリスト。'content localization enabled' が必要です。"
content_localization_allowed_groups: "ローカライズされたコンテンツの更新を許可されたグループ。'content localization enabled' が必要です。"
+ content_localization_language_switcher: "訪問者が Discourse の翻訳バージョンとユーザー貢献コンテンツを切り替えられる言語切り替え機能をヘッダーに表示します。'content localization supported locales' に定義された言語を使用します"
+ content_localization_crawler_param: "'content localization enabled' と 'set locale from param' が有効な場合にローカライズされたコンテンツをウェブクローラーに配信する。サポートされたロケールのリストは 'content localization supported locales' に定義されています。"
+ content_localization_use_default_locale_when_unsupported: "優先言語が 'content localization supported locales' に含まれていないユーザーに、サイトのデフォルトのロケールでローカライズされたコンテンツを配信する。"
+ content_localization_allow_author_localization: "作成者が投稿メニューから自分のトピックと投稿を更新することを許可する。"
+ enable_upcoming_changes: "次回の変更を有効にする"
+ fake_upcoming_change: "これは実際の次回の変更ではありません。テストを目的としているため、この文字列の翻訳は不要です。"
+ floating_dismiss_topics_on_mobile: "モバイル版では、アクセスの簡易性とトピックリストの上部のスペースを空けるために「閉じる...」フローティングボタンを表示する"
+ rename_faq_to_guidelines: "この変更によって FAQ ページの名前が「ガイドライン」に変更されます。FAQ ページは引き続き /faq で利用できます。'faq url' 設定はこれまで通り機能します。"
+ enable_simplified_category_creation: "より少ないオプションとクリーンなインターフェースによって、シンプルなカテゴリ作成フローを実現します。"
errors:
invalid_css_color: "無効な色です。色名または 16 進数値を入力してください。"
+ invalid_datetime: "日付形式は無効です。有効な日付と時刻を入力したことを確認してください。"
invalid_email: "無効なメールアドレスです。"
invalid_username: "そのユーザー名のユーザは存在しません。"
valid_username: "そのユーザー名のユーザーが存在します。"
invalid_group: "その名前のグループは存在しません。"
+ invalid_topic: "その ID のトピックは存在しません。"
invalid_integer_min_max: "値は %{min} から %{max} の間である必要があります。"
invalid_integer_min: "値は %{min} 以上である必要があります。"
invalid_integer_max: "値は %{max} を超えることはできません。"
@@ -2374,12 +2430,6 @@ ja:
reply_by_email_disabled: "この設定を有効にする前に 'reply by email' を有効にする必要があります。"
discourse_connect_url_is_empty: "この設定を有効にする前に 'discourse connect url' を設定する必要があります。"
enable_local_logins_disabled: "この設定を有効にする前に 'enable local logins' を有効にする必要があります。"
- min_username_length_exists: "最も短いユーザー名 (%{username}) を超える最小のユーザー名の長さを設定することはできません。"
- min_group_name_length_exists: "ユーザー名の最低文字数は、最も短いグループ名 (%{group_name}) より多い文字数に設定できません。"
- min_username_length_range: "最小値を最大値より上にすることはできません。"
- max_username_length_exists: "最も長いユーザー名 (%{username}) を下回る最大のユーザー名の長さを設定することはできません。"
- max_group_name_length_exists: "ユーザー名の最大文字数は、最も長いグループ名 (%{group_name}) より少ない文字数に設定できません。"
- max_username_length_range: "最大値を最小値よりも小さくすることはできません。"
invalid_hex_value: "色値は 6 桁の 16 進数コードである必要があります。"
empty_selectable_avatars: "この設定を有効にする前に、少なくとも 2 つの選択可能なアバターをアップロードする必要があります。"
category_search_priority:
@@ -2393,6 +2443,7 @@ ja:
other: "リストには正確に %{count} 個の値が含まれている必要があります。"
markdown_linkify_tlds: "値 '*' を含めることはできません。"
google_oauth2_hd_groups: "この設定を有効にする前に、すべての 'google oauth2 hd' 設定を構成する必要があります。"
+ discourse_id_registration: "Discourse ID での自動登録に失敗しました。これは、ネットワーク接続の問題、ファイアウォールの制限、または Discourse ID サービスにアクセスできないことが原因である可能性があります。詳細については、サーバーログを確認するか、サポートにお問い合わせください。"
linkedin_oidc_credentials: "この設定を有効にする前に、LinkedIn OIDC 資格情報 ('linkedin_oidc_client_id' および 'linkedin_oidc_client_secret') を構成する必要があります。"
search_tokenize_chinese_enabled: "この設定を有効にする前に 'search_tokenize_chinese' を無効にする必要があります。"
search_tokenize_japanese_enabled: "この設定を有効にする前に 'search_tokenize_japanese' を無効にする必要があります。"
@@ -2401,7 +2452,9 @@ ja:
invalid_uncategorized_category_setting: '「未分類トピックを許可」が有効でない場合、「未分類」カテゴリを選択できません。'
invalid_search_ranking_weights: "search_ranking_weights サイト設定の値が無効です。例: '{0.1,0.2,0.3,1.0}'。各重みの最大値は 1.0 であることに注意してください。"
content_localization_locale_limit: "サポートされているロケールの数は %{max} 以下である必要があります。"
+ content_localization_language_switcher_requirements: "言語切り替え機能には、'set locale from cookie' と 'allow user locale' サイト設定が有効であり、'content localization supported locales' に少なくとも 1 つの言語が含まれている必要があります。"
mediaconvert_role_arn_required: "AWS MediaConvert を使って動画変換を行う場合、AWS IAM ロールの ARN が必要です。"
+ mediaconvert_output_subdirectory_required: "MediaConvert 出力サブディレクトリが必要です。"
s3_credentials_required_for_video_conversion: "動画変換には S3 資格情報が必要です。S3 アクセスキーを構成するか、IAM プロファイルを有効にしてください。"
keywords:
clean_up_inactive_users_after_days: "有効化解除|非アクティブ|未有効化"
@@ -2425,6 +2478,7 @@ ja:
filter:
description:
status: "ステータスでトピックを絞り込みます"
+ in: "個人リスト内でトピックを絞り込みます"
order: "特定のフィールドでトピックを並べ替えます"
category: "特定のカテゴリのトピックを表示します"
category_any: "指定されたカテゴリのトピックを表示します (カンマ区切り)"
@@ -2437,13 +2491,15 @@ ja:
exclude_tag: "特定のタグが付いたトピックを除外します"
exclude_tags_any: "指定されたタグのいずれかが付いたトピックを除外します (カンマ区切り)"
exclude_tags_all: "指定されたすべてのタグが付いたトピックを除外します (プラス区切り)"
- tags_alias: "'tag:' フィルタのエイリアス"
tag_group: "特定のタググループのタグが付いたトピックを表示します"
exclude_tag_group: "特定のタググループのタグが付いたトピックを除外します"
activity_before: "日付より前に最終アクティビティがあるトピックを表示します (YYYY-MM-DD または数日前)"
activity_after: "日付より後に最終アクティビティがあるトピックを表示します (YYYY-MM-DD または数日前)"
created_before: "日付より前に作成されたトピックを表示します (YYYY-MM-DD または数日前)"
created_after: "日付より後に作成されたトピックを表示します (YYYY-MM-DD または数日前)"
+ created_by: "特定のユーザーまたはグループが作成したトピックを表示します"
+ created_by_user: "ユーザー名またはグループが作成したトピックを表示します (@ を使用しない)"
+ created_by_multiple: "いずれかの特定のユーザーまたはグループが作成したトピックを表示します (カンマ区切り)"
latest_post_before: "日付より前に最終投稿があるトピックを表示します (YYYY-MM-DD または数日前)"
latest_post_after: "日付より後に最終投稿があるトピックを表示します (YYYY-MM-DD または数日前)"
likes_min: "指定した数以上の「いいね!」があるトピックを表示します"
@@ -2473,6 +2529,7 @@ ja:
in_new: "新規または新しい返信のあるトピックを表示します"
in_new_replies: "新しい返信のあるトピックを表示します"
in_new_topics: "新規トピックを表示します"
+ in_unseen: "まだ閲覧していないトピックを表示します"
order_activity: "最終アクティビティで並べ替えます (新しい順)"
order_activity_asc: "最終アクティビティで並べ替えます (古い順)"
order_category: "カテゴリ名で並べ替えます (Z~A)"
@@ -2493,6 +2550,18 @@ ja:
order_views_asc: "ビュー数で並べ替えます (少ない順)"
order_read: "最後に読んだ順で並べ替えます (新しい順)"
order_read_asc: "最後に読んだ順で並べ替えます (古い順)"
+ order_hot: "ホットスコアで並べ替えます (多い順)"
+ order_hot_asc: "ホットスコアで並べ替えます (少ない順)"
+ users: "参加者別にトピックを絞り込みます"
+ users_any: "指定されたユーザーのいずれかを含むトピックを表示します (カンマ区切り)"
+ users_all: "指定されたすべてのユーザーを含むトピックを表示します (プラス区切り)"
+ exclude_users: "指定されたユーザーを含むトピックを除外します"
+ group: "グループ別にトピックを絞り込みます"
+ groups_any: "指定されたグループのいずれかを含むトピックを表示します (カンマ区切り)"
+ groups_all: "指定されたすべてのグループを含むトピックを表示します (プラス区切り)"
+ locale: "元の言語でトピックを絞り込みます"
+ locale_any: "指定されたいずれかの言語で原文が記述されたトピックを表示します (カンマ区切り)"
+ exclude_locale: "指定された言語で原文が記述されたトピックを除外します"
discourse_connect:
login_error: "ログインエラー"
not_found: "あなたのアカウントが見つかりませんでした。サイトの管理者にお問い合わせください。"
@@ -2656,6 +2725,7 @@ ja:
updating_user_ids: "ユーザー ID を更新中…"
deleting_source_user: "ソースユーザーを削除中…"
user:
+ anonymized: "[ユーザー匿名化により削除されました]"
deactivated: "'%{email}' からのバウンスメールが多すぎるため無効化されました。"
deactivated_by_staff: "スタッフによる無効化"
deactivated_by_inactivity:
@@ -2858,11 +2928,13 @@ ja:
illegal: "あなたの投稿は**違法**として通報されました: コミュニティーは投稿が法律に違反している可能性があると考えています。"
spam: "あなたの投稿は「迷惑」として通報されました。コミュニティーはあなたの投稿に営利目的、宣伝目的の性質があり、トピックに意図される有用性または関連性がないと判断しました。"
notify_moderators: "あなたの投稿は「モデレーターの注意要」として通報されました。コミュニティーはあなたの投稿にスタッフメンバーによる手動介入が必要であると判断しました。"
+ needs_approval: "投稿は**要承認**として通報されました。投稿は[コミュニティーガイドライン](%{base_path}/guidelines)を満たすかどうかを確認するために、自動的にスタッフメンバーによるレビュー待ちとなっています。"
responder:
off_topic: "投稿は**話題に関係ない**として通報されました。コミュニティーはあなたの投稿がタイトルと最初の投稿で定義されているトピックにふさわしくないと判断しました。"
inappropriate: "投稿は**不適切**として通報されました。コミュニティーは投稿が攻撃的、虐待的、ヘイト行為、または[コミュニティーガイドライン](%{base_path}/guidelines)に違反すると感じています。"
spam: "投稿は**迷惑**として通報されました。コミュニティーはあなたの投稿に営利目的、宣伝目的の性質があり、トピックに意図される有用性または関連性がないと判断しました。"
notify_moderators: "投稿は**モデレーターの注意要**として通報されました。コミュニティーはあなたの投稿にスタッフメンバーによる手動介入が必要であると判断しました。"
+ needs_approval: "投稿は**要承認**として通報されました。投稿は[コミュニティーガイドライン](%{base_path}/guidelines)を満たすかどうかを確認するために、自動的にスタッフメンバーによるレビュー待ちとなっています。"
flags_dispositions:
agreed: "ご連絡いただきありがとうございます。問題があることを認め、現在調査しています。"
agreed_and_deleted: "ご連絡いただきありがとうございます。問題があることを認め、投稿を削除しました。"
@@ -2880,6 +2952,7 @@ ja:
contents_hidden: "コンテンツを見るには投稿にアクセスしてください。"
post_hidden:
title: "非表示の投稿"
+ preview: "コミュニティーメンバーによる通報により投稿は非表示になりました。"
subject_template: "コミュニティー通報によって非表示にされた投稿"
text_body_template: |
こんにちは。
@@ -2941,6 +3014,7 @@ ja:
%{site_name} モデレーター
post_hidden_again:
title: "再度非表示"
+ preview: "コミュニティーメンバーによって投稿は再度非表示になりました。"
subject_template: "コミュニティー通報によって非表示にされた投稿、スタッフ通知済み"
text_body_template: |
こんにちは。
@@ -3425,6 +3499,7 @@ ja:
その他のガイダンスについては、[コミュニティーガイドライン](%{base_url}/guidelines)をご覧ください。
too_many_spam_flags:
title: "迷惑通報が多すぎます"
+ preview: "迷惑行為の通報により、投稿は一時的に非表示になっています。"
subject_template: "新規アカウントは保留中です"
text_body_template: |
こんにちは。
@@ -3447,6 +3522,7 @@ ja:
その他のガイダンスについては、[コミュニティーガイドライン](%{base_url}/guidelines)をご覧ください。
silenced_by_staff:
title: "スタッフにより投稿禁止にされました"
+ preview: "アカウントは一時的に保留されています。"
subject_template: "アカウントは一時的に保留中です"
text_body_template: |
こんにちは。
@@ -3459,9 +3535,27 @@ ja:
user_automatically_silenced:
title: "ユーザーは自動的に投稿禁止にされました"
subject_template: "新規ユーザー %{username} はコミュニティー通報により投稿禁止になりました"
+ text_body_template: |
+ これは自動メッセージです。
+
+ 新規ユーザー [%{username}](%{user_url}) は自動的に投稿禁止になりました。
+
+ [通報をレビュー](%{base_url}/review)してください。%{username} が誤って投稿禁止になっている場合は、[このユーザーの管理者ページ](%{user_url})で投稿禁止を解除ボタンをクリックしてください。
+
+ このしきい値は、`silence_new_user` サイト設定で変更できます。
user_automatically_silenced_with_reason:
title: "ユーザーは自動的に投稿禁止にされました"
subject_template: "新規ユーザー %{username} はコミュニティー通報により投稿禁止になりました"
+ text_body_template: |
+ これは自動メッセージです。
+
+ 新規ユーザー [%{username}](%{user_url}) は自動的に投稿禁止になりました。
+
+ 理由 - %{reason}
+
+ [通報をレビュー](%{base_url}/review)してください。%{username} が誤って投稿禁止になっている場合は、[このユーザーの管理者ページ](%{user_url})で投稿禁止を解除ボタンをクリックしてください。
+
+ このしきい値は、`silence_new_user` サイト設定で変更できます。
spam_post_blocked:
title: "迷惑投稿はブロックされました"
subject_template: "同一リンクの連続投稿により、新規ユーザー %{username} の投稿をブロック"
@@ -3512,6 +3606,11 @@ ja:
こんにちは。
新規ユーザーの投稿が介入を必要としており、現在レビュー待ちとなっています。[こちらから承認または拒否](%{base_url}/review?type=ReviewableQueuedPost)してください。
+ user_posts_deleted:
+ title: "ユーザー投稿は削除されました"
+ subject_template: "%{user} の投稿はすべて削除されました"
+ text_body_template:
+ other: "@%{user} による %{count} 件の投稿が @%{staff_user} によって削除されました。"
unsubscribe_link: |
メールの購読を解除するには、[こちらをクリック](%{unsubscribe_url})してください。
unsubscribe_link_and_mail: |
@@ -3623,6 +3722,7 @@ ja:
%{respond_instructions}
user_replied:
title: "ユーザーが返信しました"
+ preview: "誰かがあなたの投稿に返信しました。"
subject_template: "[%{email_prefix}] %{topic_title}"
text_body_template: |
%{header_instructions}
@@ -3645,6 +3745,7 @@ ja:
%{respond_instructions}
user_quoted:
title: "ユーザーが引用しました"
+ preview: "誰かが投稿内であなたを引用しました。"
subject_template: "[%{email_prefix}] %{topic_title}"
text_body_template: |
%{header_instructions}
@@ -3656,6 +3757,7 @@ ja:
%{respond_instructions}
user_linked:
title: "ユーザーがリンクしました"
+ preview: "投稿が別のトピックにリンクされました。"
subject_template: "[%{email_prefix}] %{topic_title}"
text_body_template: |
%{header_instructions}
@@ -3667,6 +3769,7 @@ ja:
%{respond_instructions}
user_mentioned:
title: "ユーザーがメンションしました"
+ preview: "誰かが投稿であなたをメンションしました"
subject_template: "[%{email_prefix}] %{topic_title}"
text_body_template: |
%{header_instructions}
@@ -3722,6 +3825,7 @@ ja:
%{respond_instructions}
user_posted:
title: "ユーザーが投稿しました"
+ preview: "あなたがウォッチ中のトピックに誰かが返信しました。"
subject_template: "[%{email_prefix}] %{topic_title}"
text_body_template: |
%{header_instructions}
@@ -3755,6 +3859,7 @@ ja:
%{respond_instructions}
user_posted_pm:
title: "ユーザーが PM を投稿しました"
+ preview: "誰かがあなたに PM を送信しました。"
subject_template: "[%{email_prefix}] [PM] %{topic_title}"
text_body_template: |
%{header_instructions}
@@ -3823,6 +3928,12 @@ ja:
account_second_factor_disabled:
title: "二要素認証が無効です"
subject_template: "[%{email_prefix}] 二要素認証が無効です"
+ text_body_template: |
+ %{site_name} のアカウントの二要素認証が無効になったため、パスワードのみでログインできるようになりました。今後、追加の認証コードは不要です。
+
+ 二要素認証 (2FA) を無効にしなかった場合、誰かがあなたのアカウントを侵害した可能性があります。
+
+ 不明な点がございましたら、[スタッフにお問い合わせください](%{base_url}/about)。
digest:
why: "%{since} 以降の %{site_link} の簡単な要約"
since_last_visit: "最終アクセス以降"
@@ -3843,6 +3954,7 @@ ja:
preheader: "%{since} 以降の簡単な要約"
forgot_password:
title: "パスワードを忘れました"
+ preview: "パスワードをリセットしてください。"
subject_template: "[%{email_prefix}] パスワードのリセット"
text_body_template: |
誰かが [%{site_name}](%{base_url}) のパスワードをリセットしようとしてます。
@@ -3864,6 +3976,7 @@ ja:
%{base_url}/session/email-login/%{email_token}
set_password:
title: "パスワードを設定"
+ preview: "アカウントのパスワードを設定してください。"
subject_template: "[%{email_prefix}] パスワードを設定してください"
text_body_template: |
誰かが [%{site_name}](%{base_url}) のあなたのアカウントにパスワードを追加するよう依頼しました。または、この検証済みのメールアドレスに関連付けられている対応のオンラインサービス (Google、Facebook など) を使用してログインすることもできます。
@@ -3874,6 +3987,7 @@ ja:
%{base_url}/u/password-reset/%{email_token}
admin_login:
title: "管理者ログイン"
+ preview: "管理者ログインがリクエストされました。"
subject_template: "[%{email_prefix}] ログイン"
text_body_template: |
誰かが [%{site_name}](%{base_url}) のアカウントにログインしようとしています。
@@ -3884,6 +3998,7 @@ ja:
%{base_url}/session/email-login/%{email_token}
account_created:
title: "アカウントが作成されました"
+ preview: "あなたの新しいアカウントが作成されました。"
subject_template: "[%{email_prefix}] 新しいアカウント"
text_body_template: |
あなたの新規アカウントが %{site_name} で作成されました
@@ -3928,6 +4043,7 @@ ja:
%{base_url}/u/confirm-old-email/%{email_token}
notify_old_email:
title: "古いメールに通知"
+ preview: "メールアドレスが更新されました。"
subject_template: "[%{email_prefix}] あなたのメールアドレスは変更されました"
text_body_template: |
これは、%{site_name} のあなたのメールアドレスが変更されたことを
@@ -3950,6 +4066,7 @@ ja:
%{new_email}
signup_after_approval:
title: "登録 - 承認後"
+ preview: "新しいアカウントが承認されました。"
subject_template: "%{site_name} での承認が完了しました!"
text_body_template: "%{site_name} へようこそ!\n\nスタッフメンバーが %{site_name} のあなたのアカウントを承認しました。\n\nこれで、次の場所からログインすると、新しいアカウントにアクセスできるようになりました。\n%{base_url}\n\n上記のリンクをクリックできない場合は、それをコピーしてウェブブラウザのアドレスバーに貼り付けてください。\n\n%{new_user_tips}\n\nコミュニティーでは常に[礼節ある行動](%{base_url}/guidelines)を取ってもらえると信じています。 \n\nではお楽しみください!\n"
signup_after_reject:
@@ -3961,6 +4078,7 @@ ja:
%{reject_reason}
signup:
title: "登録"
+ preview: "アカウントを確認してください。"
subject_template: "[%{email_prefix}] 新しいアカウントを確認してください"
text_body_template: |
%{site_name} へようこそ!
@@ -3983,6 +4101,7 @@ ja:
このリンクがクリックできない場合は、リンクをコピーしてウェブブラウザのアドレスバーに貼り付けてください。
suspicious_login:
title: "新しいログインのアラート"
+ preview: "デバイスを認証してください。"
subject_template: "[%{site_name}] %{location} からの新しいログイン"
text_body_template: |
こんにちは
@@ -4009,8 +4128,14 @@ ja:
page_not_found:
page_title: "ページが見つかりません"
title: "おっとっと!ページが存在しないか非公開です。"
+ subtitle: "どこを探しても、お探しのページは見つかりませんでした。"
+ popular_topics: "人気のトピック"
+ recent_topics: "最近のトピック"
see_more: "もっと"
+ search_title: "代わりに検索しますか?"
search_button: "検索"
+ home: "ホームに移動"
+ placeholder: "タイトルまたはキーワードでトピックを検索..."
offline:
title: "アプリを読み込めません"
offline_page_message: "オフラインになっているようです!ネットワーク接続を確認して、もう一度お試しください。"
@@ -4019,6 +4144,7 @@ ja:
upload:
edit_reason: "ダウンロードされた画像のコピー"
unauthorized: "アップロードしようとしているファイルは許可されていません (許可されている拡張子: %{authorized_extensions})。"
+ images_only: "この設定では画像のみをアップロードできます。"
pasted_image_filename: "貼り付けた画像"
store_failure: "ユーザー #%{user_id} のアップロード #%{upload_id} の保存に失敗しました。"
file_missing: "アップロードするファイルを指定する必要があります。"
@@ -4106,6 +4232,8 @@ ja:
latte_theme_name: "ラテ"
summer_theme_name: "夏"
dark_rose_theme_name: "ダークローズ"
+ errors:
+ cannot_edit_remote_copies: "色パレットのリモートコピーの編集はできません。"
edit_this_page: "このページを編集"
csv_export:
boolean_yes: "はい"
@@ -4557,12 +4685,18 @@ ja:
nice_share:
name: ナイスな共有
description: 25 人の訪問者に投稿を共有
+ long_description: |
+ このバッジは、共有したリンクを 25 人の異なる外部訪問者がクリックすると付与されます。ディスカッションとこのコミュニティーの存在を伝えてくれ、ありがとう!
good_share:
name: イカした共有
description: 300 人の訪問者に投稿を共有
+ long_description: |
+ このバッジは、300 人の異なる外部訪問者がクリックしたリンクを共有したときに付与されます。よくできました!あなたはたくさんの新しい人々に素晴らしいディスカッションを披露し、このコミュニティーの成長を助けました。
great_share:
name: グレートな共有
description: 1000 人の訪問者に投稿を共有
+ long_description: |
+ このバッジは、1000 人の異なる外部訪問者がクリックしたリンクを共有したときに付与されます。わぉ!あなたは大勢の新しいオーディエンスに興味深いディスカッションを促進し、コミュニティーを大きく成長させることに役立ちました!
first_like:
name: 初めての「いいね!」
description: 投稿に「いいね!」した
@@ -4729,6 +4863,13 @@ ja:
minimum_required_tags:
other: "少なくとも %{count} 個のタグを選択する必要があります。"
upload_row_too_long: "CSV ファイルには 1 行につき 1 つのタグが必要です。オプションで、タグの後にカンマを付け、その後のグループ名を続けることができます。"
+ bulk_create:
+ invalid_params: "パラメーターが無効です。タグ名の配列を指定してください。"
+ invalid_name: "タグ名が無効です。"
+ tag_too_long:
+ other: "タグが長すぎます (最大 %{count} 文字)。"
+ too_many_tags:
+ other: "タグが長すぎます。一度に作成できるタグは %{count} 個までです。大量にインポートするには、CSV アップロード機能を使用してください。"
forbidden:
invalid:
other: "選択したタブはどれも使用できません"
@@ -4750,6 +4891,9 @@ ja:
rss_by_tag: "%{tag} がタグ付けされたトピック"
finish_installation:
congratulations: "おめでとうございます。Discourse をインストールしました!"
+ login_with_discourse_id: "Discourse ID でログイン"
+ discourse_id_help: "下のボタンを使って Discourse ID でログインしてください。
Discourse ID アカウントで、`DISCOURSE_DEVELOPER_EMAILS` 環境変数に一致するプライマリメールアドレスが使用されていることを確認してください。"
+ discourse_id_error_help: "メールアドレスの設定をスキップすることを選択しました。残念ながら、上記のエラーメッセージにより、セットアップを続行できません。この問題を meta.discourse.org にご報告ください。"
register:
button: "登録"
title: "管理者アカウントの登録"
@@ -4761,6 +4905,10 @@ ja:
resend_email:
title: "アクティベーションメールの再送"
message: "
https://meta.discourse.org/t/76575'
@@ -1768,7 +1765,6 @@ nl:
slow_down_crawler_rate: "Als slow_down_crawler_user_agents is opgegeven, is deze beperking op alle crawlers van toepassing (aantal seconden vertraging tussen verzoeken)"
content_security_policy: "Schakel Content-Security-Policy (CSP) in. CSP is een extra beveiligingslaag die bepaalde soorten aanvallen helpt voorkomen, waaronder cross-site scripting (XSS) en data-injectie."
content_security_policy_report_only: "Content-Security-Policy-Report-Only (CSP) inschakelen"
- content_security_policy_collect_reports: "Rapportverzameling voor CSP-schendingen inschakelen via /csp_reports"
content_security_policy_frame_ancestors: "Beperken wie deze website kan insluiten in iframes via CSP. Beheer toegestane hosts op Insluiten"
content_security_policy_script_src: "Aanvullende scriptbronnen op de toelatingslijst. De huidige host en CDN zijn standaard inbegrepen. Zie XSS-aanvallen beperken met Content Security Policy. (CSP). Andere hostbronnen worden genegeerd omdat strict-dynamic is ingeschakeld."
invalidate_inactive_admin_email_after_days: "Beheerdersaccounts die de website dit aantal dagen niet hebben bezocht, dienen hun e-mailadres voor het aanmelden opnieuw te valideren. Stel dit in op 0 om uit te schakelen."
@@ -2085,7 +2081,6 @@ nl:
alternative_reply_by_email_addresses: "Lijst van alternatieve sjablonen voor adressen voor inkomende e-mail bij antwoorden per e-mail. Voorbeeld: %%{reply_key}@reply.example.com|replies+%%{reply_key}@example.com"
incoming_email_prefer_html: "HTML in plaats van tekst gebruiken voor inkomende e-mail."
strip_incoming_email_lines: "Voorloop- en volgspaties uit elke regel van inkomende e-mails verwijderen."
- disable_emails: "Voorkomen dat Discourse alle soorten e-mail verstuurt. Selecteer 'yes' om e-mails voor alle gebruikers uit te schakelen. Selecteer 'non-medewerkerf' om alleen e-mails voor medewerkers uit te schakelen."
strip_images_from_short_emails: "Afbeeldingen met grootte van minder dan 2800 bytes uit e-mails verwijderen"
short_email_length: "Bepaal de maximale lengte, in bytes, voor een e-mail om te worden geclassificeerd als 'kort' voor afbeeldingsonderdrukking. Als een e-mail niet groter is dan deze instelling, worden alle afbeeldingen (zoals avatars en emoji's) in de e-mail verwijderd."
display_name_on_email_from: "Volledige namen in van-veld van e-mails weergeven"
@@ -2103,6 +2098,7 @@ nl:
mailgun_api_key: "Geheime API-sleutel van Mailgun voor het verifiëren van webhookberichten."
sendgrid_verification_key: "SendGrid-verificatiesleutel die wordt gebruikt om webhookberichten te verifiëren."
mailjet_webhook_token: "Token dat wordt gebruikt om webhookpayloads te verifiëren. Het moet worden doorgegeven als de queryparameter 't' van de webhook, bijvoorbeeld: https://example.com/webhook/mailjet?t=supersecret"
+ mailpace_webhook_token: "Token dat wordt gebruikt om webhookpayloads te verifiëren. Het moet worden doorgegeven als de queryparameter 't' van de webhook, bijvoorbeeld: https://example.com/webhook/mailpace?t=supersecret"
mandrill_authentication_key: "Mandrill-verificatiesleutel die wordt gebruikt om webhookberichten te verifiëren."
postmark_webhook_token: "Token dat wordt gebruikt om webhookpayloads te verifiëren. Het moet worden doorgegeven als de queryparameter 't' van de webhook, bijvoorbeeld: https://example.com/webhook/postmark?t=supersecret"
sparkpost_webhook_token: "Token dat wordt gebruikt om webhookpayloads te verifiëren. Het moet worden doorgegeven als de queryparameter 't' van de webhook, bijvoorbeeld: https://example.com/webhook/sparkpost?t=supersecret"
@@ -2365,7 +2361,6 @@ nl:
dashboard_hidden_reports: "Toestaan dat de opgegeven rapporten worden verborgen op het dashboard."
dashboard_visible_tabs: "Kiezen welke dashboardtabbladen zichtbaar zijn."
dashboard_general_tab_activity_metrics: "Kies rapporten die als activiteitsgegevens op het algemene tabblad worden weergegeven."
- gravatar_enabled: "Gebruik de Gravatar-service voor gebruikersavatars. Dit voorkomt dat gebruikers overschakelen naar Gravatar voor hun avatars, maar heeft geen invloed op gebruikers die het al gebruiken."
gravatar_name: "Geef de naam op van de Gravatar-provider. Deze naam wordt meestal gebruikt om de bron te identificeren die Gravatar-avatars aan de site levert."
gravatar_base_url: "Geef de URL op voor toegang tot de API van de Gravatar-provider. Deze instelling is cruciaal voor het omzetten van e-mailadressen in Gravatar-URL's waar avatarafbeeldingen worden opgeslagen."
gravatar_login_url: "URL relatief aan `gravatar_base_url`, waarmee de gebruiker zich kan aanmelden op de Gravatar-service."
@@ -2446,12 +2441,6 @@ nl:
reply_by_email_disabled: "Je moet eerst 'reply by email' inschakelen voordat je deze instelling inschakelt."
discourse_connect_url_is_empty: "Je moet een 'DiscourseConnect-URL' instellen voordat je deze instelling inschakelt."
enable_local_logins_disabled: "Je moet eerst 'enable local logins' inschakelen voordat je deze instelling inschakelt."
- min_username_length_exists: "Je kunt de minimale gebruikersnaamlengte niet hoger instellen dan de kortste gebruikersnaam (%{username})."
- min_group_name_length_exists: "Je kunt de minimale gebruikersnaamlengte niet hoger instellen dan de kortste groepsnaam (%{group_name})."
- min_username_length_range: "Je kunt het minimum niet hoger instellen dan het maximum."
- max_username_length_exists: "Je kunt de maximale gebruikersnaamlengte niet lager instellen dan de langste gebruikersnaam (%{username})."
- max_group_name_length_exists: "Je kunt de maximale gebruikersnaamlengte niet lager instellen dan de langste groepsnaam (%{group_name})."
- max_username_length_range: "Je kunt het maximum niet lager instellen dan het minimum."
invalid_hex_value: "Kleurwaarden moeten 6-cijferige hexadecimale codes zijn."
empty_selectable_avatars: "Je moet eerst minimaal twee selecteerbare avatars uploaden voordat je deze instelling inschakelt."
category_search_priority:
@@ -2510,7 +2499,6 @@ nl:
exclude_tag: "Sluit topics met een specifieke tag uit"
exclude_tags_any: "Sluit topics met een van de opgegeven tags uit (door komma's gescheiden)"
exclude_tags_all: "Sluit topics met alle opgegeven tags uit (door plustekens gescheiden)"
- tags_alias: "Alias voor 'tag:'-filter"
tag_group: "Geef topics met tags van een specifieke taggroep weer"
exclude_tag_group: "Sluit topics met tags van een specifieke taggroep uit"
activity_before: "Geef topics weer met de laatste activiteit vóór een datum (JJJJ-MM-DD of aantal dagen geleden)"
@@ -4902,8 +4890,6 @@ nl:
deprecation_error_label: Laat Javascript-deprecaties een foutmelding geven
enter: "Veilige modus starten"
must_select: "Je moet ten minste één optie selecteren om naar de veilige modus te gaan."
- dev_mode:
- enter: "Enter"
wizard:
title: "Discourse instellen"
step:
@@ -5161,8 +5147,6 @@ nl:
approve_and_unhide:
title: "Ja"
complete: "Bericht goedgekeurd en zichtbaar gemaakt"
- no_action_post:
- title: "Geen actie"
delete_post:
title: "Bericht verwijderen"
complete: "Bericht verwijderd"
@@ -5171,8 +5155,6 @@ nl:
restore_post:
title: "Bericht herstellen"
complete: "Bericht hersteld"
- no_action_user:
- title: "Geen actie"
silence_user:
title: "Gebruiker dempen"
complete: "Gebruiker gedempt"
diff --git a/config/locales/server.pl_PL.yml b/config/locales/server.pl_PL.yml
index eccfd76791607..1c7d12513c7df 100644
--- a/config/locales/server.pl_PL.yml
+++ b/config/locales/server.pl_PL.yml
@@ -60,8 +60,8 @@ pl_PL:
inline_oneboxer:
topic_page_title_post_number: "#%{post_number}"
topic_page_title_post_number_by_user: "#%{post_number} przez %{username}"
- too_many_urls: "Nie można umieścić więcej niż 10 adresów URL w jednym żądaniu."
- concurrency_not_allowed: "Jednoczesne żądania inline-oneboxing nie są dozwolone. Prosimy o wysyłanie jednego żądania na raz."
+ too_many_urls: "Nie można przekonwertować więcej niż 10 adresów URL na wbudowane pola jednoskrzynkowe w jednym żądaniu."
+ concurrency_not_allowed: "Jednoczesne żądania konwersji adresów URL na wbudowane pola jednoskrzynkowe są niedozwolone. Prosimy o wysyłanie jednej prośby na raz."
components:
enabled_filter: "Włączona"
disabled_filter: "Wyłączone"
@@ -300,6 +300,7 @@ pl_PL:
errors: &errors
format: ! "%{attribute} %{message}"
format_with_full_message: "%{attribute}:%{message}"
+ diff_too_complex: "Różnica jest zbyt złożona, aby obliczyć ją bezpiecznie. Spróbuj wprowadzić mniejsze zmiany."
messages:
invalid_locale: "%{invalid_locale} to nieprawidłowe ustawienia regionalne"
too_long_validation:
@@ -401,7 +402,7 @@ pl_PL:
slow_down_crawler_user_agent_must_be_at_least_3_characters: "User-Agent musi mieć co najmniej 3 znaki, aby uniknąć przypadkowego ograniczania prawdziwych użytkowników."
slow_down_crawler_user_agent_cannot_be_popular_browsers: "Do ustawienia nie można dodać żadnej z następujących wartości: %{values}."
strip_image_metadata_cannot_be_disabled_if_composer_media_optimization_image_enabled: "Nie można wyłączyć usuwania metadanych obrazu, jeśli 'composer media optimization image enabled'. Wyłącz 'composer media optimization image enabled' przed wyłączeniem usuwania metadanych obrazu."
- x_summary_large_image_no_svg: "Obrazy podsumowania Twittera używane w metadanych twitter:image nie mogą być obrazami .svg."
+ x_summary_large_image_no_svg: "Obrazy podsumowania X używane w metadanych twitter:image nie mogą być obrazami w formacie .svg."
tl0_and_anonymous_flag: "W przypadku anonimowych użytkowników należy podać 'site contact email' lub 'email address to report illegal content'."
allow_likes_in_anonymous_mode_without_anonymous_mode_enabled: "To ustawienie wymaga, aby najpierw włączyć ustawienie 'allow anonymous mode'."
conflicting_google_user_id: 'Identyfikator konta Google dla tego konta został zmieniony; interwencja personelu jest wymagana ze względów bezpieczeństwa. Skontaktuj się z personelem i wskaż go
https://meta.discourse.org/t/76575'
@@ -1865,6 +1866,8 @@ pl_PL:
max_oneboxes_per_post: "Ustaw maksymalną liczbę oneboxów, które można umieścić w jednym poście. Oneboxy zapewniają podgląd powiązanej treści bezpośrednio w poście."
facebook_app_access_token: "Token wygenerowany z Twojego identyfikatora aplikacji Facebook i sekret. Używany do generowania osadzonych oneboxów z serwisu Instagram."
github_onebox_access_tokens: "Mapowanie organizacji lub użytkownika GitHub na token dostępu GitHub, który jest używany do generowania oneboxów GitHub dla prywatnych repozytoriów, commitów, pull requestów, zgłoszeń i zawartości plików. Bez tego tylko publiczne adresy URL GitHub będą miały onebox."
+ reddit_onebox_client_id: "Identyfikator klienta OAuth API Reddit używany do uwierzytelniania skrzynek Reddit. Utwórz aplikację typu „skrypt” na stronie reddit.com/prefs/apps, aby uzyskać dane uwierzytelniające."
+ reddit_onebox_client_secret: "Klucz klienta OAuth API Reddit używany do uwierzytelniania skrzynek OneBox w Reddit. Znajduje się w aplikacji typu „skrypt” utworzonej na stronie reddit.com/prefs/apps."
logo: "Obraz logo w lewym górnym rogu witryny. Użyj szerokiego prostokątnego obrazu o wysokości 120 i współczynniku kształtu większym niż 3: 1. Jeśli pole pozostanie puste, wyświetlony zostanie tekst tytułu witryny."
logo_small: "Mały obraz logo w lewym górnym rogu witryny, widoczny podczas przewijania w dół. Użyj kwadratowego obrazu 120 × 120. Jeśli pole pozostanie puste, wyświetlony zostanie glif domowy."
digest_logo: "Alternatywne logo użyte w górnej części podsumowania e-mail witryny. Użyj szerokiego obrazu prostokąta. Nie używaj obrazu SVG. Jeśli pole pozostanie puste, zostanie użyty obraz z ustawienia „logo”."
@@ -1960,7 +1963,6 @@ pl_PL:
llms_txt: "Prześlij plik tekstowy, który będzie udostępniany w katalogu /llms.txt robotom LLM. Więcej informacji znajdziesz na stronie llmstxt.org ."
content_security_policy: "Włącz ochronę Content-Security-Policy (CSP). CSP to dodatkowa warstwa bezpieczeństwa, która pomaga zapobiegać niektórym rodzajom ataków, takim jak Cross Site Scripting (XSS) i wstrzykiwanie danych."
content_security_policy_report_only: "Włącz Content-Security-Policy-Report-Only (CSP)."
- content_security_policy_collect_reports: "Włącz zbieranie raportów o naruszeniach CSP na / csp_reports"
content_security_policy_frame_ancestors: "Określ, kto może osadzić tę witrynę w ramkach iframe za pośrednictwem CSP. Kontroluj dozwolone hosty w ustawieniach osadzania"
content_security_policy_script_src: "Dodatkowe dozwolone źródła skryptów. Bieżący host i CDN są domyślnie uwzględnione. Zobacz Ograniczanie ataków XSS za pomocą polityki bezpieczeństwa treści. (CSP). Inne źródła hosta są ignorowane, ponieważ włączona jest funkcja strict-dynamic."
invalidate_inactive_admin_email_after_days: "Konta administracyjne, które nie odwiedzały witryny w tej liczbie dni, będą musiały ponownie zweryfikować swój adres e-mail przed zalogowaniem. Ustaw na 0, aby wyłączyć."
@@ -2046,7 +2048,7 @@ pl_PL:
enable_local_logins_via_email: "Zezwalaj użytkownikom na żądanie linku logowania do jednego kliknięcia, który zostanie im przesłany pocztą e-mail."
allow_new_registrations: "Zezwól na rejestrację nowych użytkowników. Odznacz opcję żeby uniemożliwić rejestrację nowych kont."
enable_signup_cta: "Pokazuj wiadomość dla powracających użytkowników anonimowych, zachęcającą ich do założenia konta."
- enable_discourse_id: "Włącz uwierzytelnianie za pomocą Discourse ID – usługi logowania jednokrotnego, która umożliwia użytkownikom logowanie się do wielu witryn Discourse za pomocą jednego konta. Popularni dostawcy logowania społecznościowego, tacy jak Google, Facebook, Apple i Github, są obsługiwani bez dodatkowej konfiguracji. Więcej informacji znajdziesz na stronie id.discourse.com ."
+ enable_discourse_id: "Włącz uwierzytelnianie za pomocą Discourse ID – usługi logowania jednokrotnego, która umożliwia użytkownikom logowanie się do wielu witryn Discourse za pomocą jednego konta. Popularni dostawcy logowania społecznościowego, tacy jak Google, Facebook, Apple i GitHub, są obsługiwani bez dodatkowej konfiguracji. Więcej informacji znajdziesz na stronie id.discourse.com."
enable_google_oauth2_logins: "Włącz uwierzytelnianie Google Oauth2. Jest to metoda uwierzytelniania obsługiwana obecnie przez Google. Wymaga podania klucza i sekretu. Zobacz Konfigurowanie logowania Google dla Discourse."
google_oauth2_client_id: "Unikalny identyfikator klienta udostępniany przez Twoją aplikację Google, wykorzystywany do procesu uwierzytelnienia."
google_oauth2_client_secret: "Client Secret twojej aplikacji w Google"
@@ -2289,7 +2291,7 @@ pl_PL:
alternative_reply_by_email_addresses: "Lista alternatywnych szablonów do odpowiedzi przez adres email. Przykład: %%{reply_key}@reply.example.com|replies+%%{reply_key}@example.com"
incoming_email_prefer_html: "Do przychodzących wiadomości e-mail używaj HTML zamiast tekstu."
strip_incoming_email_lines: "Usuń wiodące i końcowe białe spacje z każdej linii przychodzących wiadomości e-mail."
- disable_emails: "Zapobiegaj wysyłaniu przez Discourse jakichkolwiek wiadomości e-mail. Wybierz 'yes', aby wyłączyć e-maile dla wszystkich użytkowników. Wybierz opcję 'non-staff', aby wyłączyć wiadomości e-mail tylko dla użytkowników niebędących członkami personelu."
+ disable_emails: "Zapobiegaj wysyłaniu przez Discourse jakichkolwiek wiadomości e-mail. Wybierz 'yes', aby wyłączyć wychodzące wiadomości e-mail dla wszystkich użytkowników. Wybierz opcję 'non-staff', aby wyłączyć wiadomości e-mail tylko dla użytkowników niebędących członkami personelu."
allow_email_invites: "Po wyłączeniu tej opcji użytkownicy nie będą mogli wysyłać zaproszeń e-mailem za pośrednictwem Discourse"
strip_images_from_short_emails: "Pasek zdjęć z emaila o rozmiarze mniejszym niż 2800 bajtów"
short_email_length: "Ustal maksymalną długość wiadomości e-mail w bajtach, aby uznać ją za 'krótką' w celu ukrycia obrazów. Jeżeli rozmiar wiadomości nie przekroczy tego ustawienia, wszelkie obrazy (takie jak awatary i emotikony) w wiadomości zostaną usunięte."
@@ -2308,6 +2310,7 @@ pl_PL:
mailgun_api_key: "Klucz Mailgun Secret API używany do weryfikacji wiadomości webhook."
sendgrid_verification_key: "Klucz weryfikacyjny Sendgrid używany do weryfikacji wiadomości webhook."
mailjet_webhook_token: "Token używany do weryfikacji zawartości webhooka. Musi być przekazany jako parametr zapytania 't' w webhooku, na przykład: https://example.com/webhook/mailjet?t=supersecret"
+ mailpace_webhook_token: "Token używany do weryfikacji zawartości webhooka. Musi być przekazany jako parametr zapytania 't' w webhooku, na przykład: https://example.com/webhook/mailpace?t=supersecret"
mandrill_authentication_key: "Klucz uwierzytelniania Mandrill używany do weryfikowania wiadomości webhook."
postmark_webhook_token: "Token używany do weryfikacji zawartości webhooka. Musi być przekazany jako parametr zapytania 't' w webhooku, na przykład: https://example.com/webhook/postmark?t=supersecret"
sparkpost_webhook_token: "Token używany do weryfikacji zawartości webhooka. Musi być przekazany jako parametr zapytania 't' w webhooku, na przykład: https://example.com/webhook/sparkpost?t=supersecret"
@@ -2580,7 +2583,7 @@ pl_PL:
dashboard_hidden_reports: "Zezwalaj na ukrycie określonych raportów z panelu administracyjnego."
dashboard_visible_tabs: "Wybierz, które karty panelu administracyjnego są widoczne."
dashboard_general_tab_activity_metrics: "Wybierz raporty, które mają być wyświetlane jako metryki aktywności na karcie ogólne."
- gravatar_enabled: "Użyj usługi Gravatar dla awatarów użytkowników. Uniemożliwi to użytkownikom przełączanie się na usługę Gravatar dla swoich awatarów, ale nie wpłynie to na użytkowników, którzy już z niej korzystają."
+ gravatar_enabled: "Użyj usługi Gravatar dla awatarów użytkowników. Wyłączenie tej opcji uniemożliwi użytkownikom przełączanie się na Gravatar dla swoich awatarów, ale nie wpłynie to na użytkowników, którzy już z niej korzystają."
gravatar_name: "Podaj nazwę dostawcy usługi Gravatar. Ta nazwa jest zwykle używana do identyfikacji źródła dostarczającego awatary Gravatar do witryny."
gravatar_base_url: "Podaj adres URL umożliwiający dostęp do API serwisu Gravatar. To ustawienie jest niezbędne do konwersji adresów e-mail na adresy URL Gravatar, gdzie przechowywane są obrazy awatarów."
gravatar_login_url: "Odnoszący się do `gravatar_base_url` adres URL, który umożliwia użytkownikowi zalogowanie się do usługi Gravatar."
@@ -2635,9 +2638,11 @@ pl_PL:
fake_upcoming_change: "Jest to fałszywa nadchodząca zmiana do celów testowych. Nie musisz tłumaczyć tego ciągu znaków."
floating_dismiss_topics_on_mobile: "Wyświetla na urządzeniu mobilnym pływający przycisk „Odrzuć...” dla listy tematów, aby ułatwić dostęp i zwolnić miejsce u góry listy tematów"
rename_faq_to_guidelines: "Ta zmiana zmienia nazwę strony FAQ na Wytyczne. Strona FAQ będzie nadal dostępna pod adresem /faq. Ustawienie „faq url” działa jak poprzednio."
+ experimental_tag_settings_page: "Włącz dedykowaną stronę ustawień dla tagów w /tag/:slug/:id/edit."
enable_simplified_category_creation: "Umożliwia uproszczony proces tworzenia kategorii z mniejszą liczbą opcji i bardziej przejrzystym interfejsem."
enable_custom_splash_screen: "Umożliwia dostosowanie ekranu powitalnego ładowania za pomocą własnego obrazu SVG. Prześlij obraz za pomocą ustawienia „obraz ekranu powitalnego”. Uwaga: może to negatywnie wpłynąć na wyniki LCP i indeksowanie Google."
modernize_foundation_theme: "Zmiana ta wprowadza modyfikacje projektowe do motywu Foundation w Discourse."
+ reporting_improvements: "Ulepszenia nawigacji, projektu i użyteczności raportów administracyjnych Discourse."
errors:
invalid_css_color: "Nieprawidłowy kolor. Wpisz nazwę koloru lub wartość szesnastkową."
invalid_datetime: "Nieprawidłowy format daty i godziny. Upewnij się, że wprowadzono prawidłową datę i godzinę."
@@ -2688,12 +2693,12 @@ pl_PL:
reply_by_email_disabled: "Przed włączeniem tego ustawienia musisz najpierw włączyć opcję 'reply by email'."
discourse_connect_url_is_empty: "Musisz ustawić 'discourse connect url' przed włączeniem tego ustawienia."
enable_local_logins_disabled: "Przed włączeniem tego ustawienia musisz najpierw włączyć opcję 'enable local logins'."
- min_username_length_exists: "Nie możesz ustawić minimalnej długości nazwy użytkownika powyżej najkrótszej nazwy użytkownika (%{username})."
- min_group_name_length_exists: "Nie możesz ustawić minimalnej długości nazwy użytkownika powyżej najkrótszej nazwy grupy (%{group_name})."
- min_username_length_range: "Nie możesz ustawić minimum powyżej maksimum."
- max_username_length_exists: "Nie możesz ustawić maksymalnej długości nazwy użytkownika poniżej najdłuższej nazwy użytkownika (%{username})."
- max_group_name_length_exists: "Nie możesz ustawić maksymalnej długości nazwy użytkownika poniżej najdłuższej nazwy grupy (%{group_name})."
- max_username_length_range: "Nie możesz ustawić maksimum poniżej minimum."
+ min_username_length_exists: "Nie można ustawić wartości „minimalnej długości nazwy użytkownika” wyższej niż najkrótsza nazwa użytkownika (%{username})."
+ min_group_name_length_exists: "Nie można ustawić wartości „minimalnej długości nazwy użytkownika” wyższej niż najkrótsza nazwa grupy (%{group_name})."
+ min_username_length_range: "Nie można ustawić wartości „minimalnej długości nazwy użytkownika” na poziomie wyższym niż „maksymalna długość nazwy użytkownika”."
+ max_username_length_exists: "Nie można ustawić maksymalnej długości nazwy użytkownika poniżej najdłuższej nazwy użytkownika (%{username})."
+ max_group_name_length_exists: "Nie można ustawić maksymalnej długości nazwy użytkownika poniżej najdłuższej nazwy grupy (%{group_name})."
+ max_username_length_range: "Nie można ustawić maksymalnej długości nazwy użytkownika poniżej minimalnej długości nazwy użytkownika."
invalid_hex_value: "Wartości kolorów muszą być sześciocyfrowymi kodami szesnastkowymi."
empty_selectable_avatars: "Przed włączeniem tego ustawienia należy najpierw przesłać co najmniej dwa wybrane awatary."
category_search_priority:
@@ -2758,7 +2763,6 @@ pl_PL:
exclude_tag: "Wyklucz tematy z określonym tagiem"
exclude_tags_any: "Wyklucz tematy zawierające dowolne ze wskazanych tagów (rozdzielone przecinkami)"
exclude_tags_all: "Wyklucz tematy zawierające wszystkie określone tagi (rozdzielone znakiem plus)"
- tags_alias: "Alias dla filtra „tag:”"
tag_group: "Pokaż tematy z tagami z określonej grupy tagów"
exclude_tag_group: "Wyklucz tematy z tagami z określonej grupy tagów"
activity_before: "Pokaż tematy z ostatnią aktywnością przed datą (RRRR-MM-DD lub dni temu)"
@@ -5326,7 +5330,7 @@ pl_PL:
dev_mode:
title: "Tryb programisty"
enable_rack_mini_profiler: "Włącz funkcję Rack Mini Profiler, aby zmiany w sesjach były zachowywane przez 1 godzinę"
- enter: "Wejdź"
+ enter: "Przejdź do trybu programisty"
wizard:
title: "Instalacja Discourse"
step:
@@ -5628,10 +5632,6 @@ pl_PL:
complete: "Post zatwierdzony i nieukryty"
post_actions:
bundle_title: "Co chcesz zrobić z tym wpisem?"
- no_action_post:
- title: "Brak akcji"
- description: "Nie podejmuj żadnych działań w związku ze wpisem"
- complete: "Nie podjęto żadnych działań w związku ze wpisem"
delete_post:
title: "Usuń wpis"
description: "Usuń ten wpis"
@@ -5652,16 +5652,8 @@ pl_PL:
title: "Edytuj wpis"
description: "Edytuj treść tego wpisu"
complete: "Wpis edytowany"
- convert_to_pm:
- title: "Konwertuj na PW"
- description: "Zmień ten post na prywatną wiadomość"
- complete: "Wpis przekształcony w prywatną wiadomość"
user_actions:
bundle_title: "Co chcesz zrobić z użytkownikiem?"
- no_action_user:
- title: "Brak akcji"
- description: "Nie podejmuj żadnych działań wobec użytkownika"
- complete: "Nie podjęto żadnych działań wobec użytkownika"
silence_user:
title: "Wycisz użytkownika"
description: "Zablokuj użytkownikowi możliwość tworzenia wpisów"
diff --git a/config/locales/server.pt.yml b/config/locales/server.pt.yml
index b88fbd32a8d3e..5866c59e8bbcd 100644
--- a/config/locales/server.pt.yml
+++ b/config/locales/server.pt.yml
@@ -1270,8 +1270,6 @@ pt:
reply_by_email_address_is_empty: "É necessário definir um email para 'resposta por endereço de email' antes de ligar a resposta por email."
user_locale_not_enabled: "Tem de ligar 'permitir definições regionais do utilizador' antes de ligar esta configuração."
invalid_regex: "A expressão regular não é válida ou permitida."
- min_username_length_range: "Não pode definir o mínimo acima do máximo."
- max_username_length_range: "Não pode definir o máximo abaixo do mínimo."
search:
within_post: "#%{post_number} por %{username}"
types:
@@ -2036,8 +2034,6 @@ pt:
safe_mode:
title: "Entrar em modo de segurança"
enter: "Entrar em Modo de Segurança"
- dev_mode:
- enter: "Entrar"
wizard:
title: "Configuração do Discourse"
step:
diff --git a/config/locales/server.pt_BR.yml b/config/locales/server.pt_BR.yml
index eb0ec9b62d1b9..5240f1bacb4d0 100644
--- a/config/locales/server.pt_BR.yml
+++ b/config/locales/server.pt_BR.yml
@@ -60,8 +60,6 @@ pt_BR:
inline_oneboxer:
topic_page_title_post_number: "#%{post_number}"
topic_page_title_post_number_by_user: "#%{post_number} de %{username}"
- too_many_urls: "Não é possível incorporar com onebox mais de dez URLs numa única solicitação."
- concurrency_not_allowed: "Solicitações simultâneas de incorporação com onebox não são permitidas. Envie uma solicitação por vez."
components:
enabled_filter: "Ativado(a)"
disabled_filter: "Desativado(a)"
@@ -344,7 +342,6 @@ pt_BR:
slow_down_crawler_user_agent_must_be_at_least_3_characters: "Agentes de usuário(a) devem ter pelo menos três caracteres para evitar limitação de taxa de usuários(as) legítimos(as) sem querer."
slow_down_crawler_user_agent_cannot_be_popular_browsers: "Não é possível adicionar nenhum dos valores a seguir à configuração: %{values}."
strip_image_metadata_cannot_be_disabled_if_composer_media_optimization_image_enabled: "Você não pode desativar a remoção de metadados de imagem se 'a imagem de otimização de mídia do compositor habilitada' estiver ativada. Desative a 'imagem de otimização de mídia do compositor ativada' antes de desativar a remoção dos metadados da imagem."
- x_summary_large_image_no_svg: "Imagens de resumo do Twitter usadas para metadados twitter:image não podem ser uma imagem .svg."
tl0_and_anonymous_flag: "É preciso informar o \"site contact email\" ou \"email address to report illegal content\" para usuários(as) anônimos(as)."
allow_likes_in_anonymous_mode_without_anonymous_mode_enabled: "Para usar esta configuração, ative a definição \"allow anonymous mode\" primeiro."
conflicting_google_user_id: 'A ID da conta Google para esta conta foi alterada. A intervenção da equipe é necessária por razões de segurança. Entre em contato com a equipe e direcione para
https://meta.discourse.org/t/76575'
@@ -1769,7 +1766,6 @@ pt_BR:
slow_down_crawler_rate: "Se slow_down_crawler_user_agents for especificado, essa taxa será aplicada a todos os rastreadores (quantidade de segundos de atraso entre os pedidos)"
content_security_policy: "Ative Política de Segurança de Conteúdo (CSP). A CSP é uma camada adicional de segurança que ajuda a impedir certos tipos de ataque, incluindo Cross Site Scripting (XSS) e injeção de dados."
content_security_policy_report_only: "Ativar Content-Security-Policy-Report-Only (CSP)"
- content_security_policy_collect_reports: "Ativar a coleta de relatórios de violação de CSP em /csp_reports"
content_security_policy_frame_ancestors: "Restrinja quem incorpora este site em iframes via CSP. Controle os hosts permitidos em Incorporação"
content_security_policy_script_src: "Fontes de scripts adicionais na lista de permissões. O host e CDN atual estão inclusos por padrão. Consulte Mitigue ataques XSS com a política de segurança de conteúdo. (CSP). Outras fontes de hosts são ignoradas, pois a dinâmica estrita está ativada."
invalidate_inactive_admin_email_after_days: "As contas de administrador(a) que não acessaram o site nesta quantidade de dias precisarão validar novamente seu endereço de e-mail antes de entrarem com a conta. Defina como 0 para desativar."
@@ -2086,7 +2082,6 @@ pt_BR:
alternative_reply_by_email_addresses: "Lista de modelos alternativos para responder por e-mail a endereços de e-mail recebidos. Por exemplo:%%{reply_key}@reply.example.com|replies+%%{reply_key}@example.com"
incoming_email_prefer_html: "Use HTML em vez de texto para e-mail recebido."
strip_incoming_email_lines: "Remova os espaços em branco iniciais e finais de cada linha de e-mails recebidos."
- disable_emails: "Evite que o Discourse envie qualquer tipo de e-mail. Selecione \"sim\" para desativar os e-mails de todos(as) os(as) usuários(as). Selecione \"não pertence à equipe\" para desativar os e-mails apenas para usuários(as) que não fizerem parte da equipe."
strip_images_from_short_emails: "Tirar imagens de e-mails cujo tamanho seja menor que 2.800 bytes"
short_email_length: "Defina o tamanho máximo, em bytes, para que um e-mail seja classificado como \"curto\" para compactação de imagem. Se o tamanho do e-mail não exceder esta configuração, as imagens no e-mail (como avatar e emojis) serão removidas."
display_name_on_email_from: "Exibir nomes completos no e-mail dos campos"
@@ -2104,6 +2099,7 @@ pt_BR:
mailgun_api_key: "A chave da API secreta do Mailgun é usada para verificar as mensagens do webhook."
sendgrid_verification_key: "Chave de verificação Sendgrid usada para verificar mensagens de webhook."
mailjet_webhook_token: "Token usado para verificar o payload do webhook. Deve ser passado como parâmetro de consulta 't' do webhook, por exemplo: https://example.com/webhook/mailjet?t=supersecret"
+ mailpace_webhook_token: "Token usado para verificar o payload do webhook. Deve ser passado como parâmetro de consulta 't' do webhook, por exemplo: https://example.com/webhook/mailpace?t=supersecret"
mandrill_authentication_key: "Chave de autenticação Mandrill usada para verificar mensagens de webhook."
postmark_webhook_token: "Token usado para verificar o payload do webhook. Deve ser passado como parâmetro de consulta 't' do webhook, por exemplo: https://example.com/webhook/postmark?t=supersecret"
sparkpost_webhook_token: "Token usado para verificar o payload do webhook. Deve ser passado como parâmetro de consulta 't' do webhook, por exemplo: https://example.com/webhook/sparkpost?t=supersecret"
@@ -2366,7 +2362,6 @@ pt_BR:
dashboard_hidden_reports: "Permita que relatórios específicos sejam ocultos no painel de controle."
dashboard_visible_tabs: "Escolha quais abas do painel de controle estão visíveis."
dashboard_general_tab_activity_metrics: "Escolha relatórios para serem exibidos como métricas de atividade na aba geral."
- gravatar_enabled: "Use o serviço Gravatar para os avatares dos(as) usuários(as). Impede que os(as) usuários(as) troquem para o Gravatar para obter seus avatares, mas não afeta os(as) usuários(as) que já o usam."
gravatar_name: "Especifique o nome do provedor de serviço do Gravatar. Geralmente, o nome é usado para identificar a origem dos avatares do Gravatar no site."
gravatar_base_url: "Especifique a URL para acessar a API do provedor do Gravatar. Esta configuração é fundamental para converter endereços de e-mail em URLs do Gravatar onde as imagens de avatares estão armazenadas."
gravatar_login_url: "URL relacionada a \"gravatar_base_url\", que permite ao(à) usuário(a) entrar com a conta no serviço Gravatar."
@@ -2447,12 +2442,6 @@ pt_BR:
reply_by_email_disabled: "Você deve ativar \"responder por e-mail\" antes de ativar esta configuração primeiro."
discourse_connect_url_is_empty: "É preciso definir uma \"url de conexão do Discourse\" antes de ativar esta configuração."
enable_local_logins_disabled: "Você deve ativar \"ativar entradas com e-mail em modo local\" antes de ativar esta configuração."
- min_username_length_exists: "Você não pode definir o tamanho mínimo do nome do(a) usuário(a) acima do nome do(a) usuário(a) mais curto (%{username})."
- min_group_name_length_exists: "Você não pode definir o tamanho mínimo do nome de usuário(a) acima do nome de grupo mais curto (%{group_name})."
- min_username_length_range: "Você não pode definir o mínimo acima do máximo."
- max_username_length_exists: "Você não pode definir o tamanho máximo do nome do(a) usuário(a) abaixo do nome do(a) usuário(a) mais longo (%{username})."
- max_group_name_length_exists: "Você não pode definir o tamanho máximo do nome de usuário(a) abaixo do nome de grupo mais longo (%{group_name})."
- max_username_length_range: "Você não pode definir o máximo abaixo do mínimo."
invalid_hex_value: "Os valores de cor precisam ser códigos hexadecimais de seis dígitos."
empty_selectable_avatars: "É preciso enviar pelo menos dois avatares selecionáveis antes de ativar esta configuração."
category_search_priority:
@@ -2511,7 +2500,6 @@ pt_BR:
exclude_tag: "Excluir tópicos com uma etiqueta especificada"
exclude_tags_any: "Excluir tópicos com qualquer uma das etiquetas especificadas (separadas por vírgula)"
exclude_tags_all: "Excluir tópicos com todas as etiquetas especificadas (separadas por vírgula)"
- tags_alias: "Alias para \"etiqueta\": filtro"
tag_group: "Exibir tópicos com etiquetas de um grupo de etiquetas específico"
exclude_tag_group: "Excluir tópicos com tags de um grupo de etiquetas específico"
activity_before: "Exibir tópicos com atividade mais recente antes de uma data (DD-MM-AAAA ou dias atrás)"
@@ -4894,8 +4882,6 @@ pt_BR:
deprecation_error_label: Faça com que conteúdos obsoletos de Javascript causem um erro
enter: "Entrar no modo de segurança"
must_select: "Você deve selecionar pelo menos uma opção para entrar no modo de segurança."
- dev_mode:
- enter: "Enter"
wizard:
title: "Configuração do Discourse"
step:
@@ -5154,8 +5140,6 @@ pt_BR:
approve_and_unhide:
title: "Sim"
complete: "Postagem aprovada e revelada"
- no_action_post:
- title: "Sem ação"
delete_post:
title: "Excluir postagem"
complete: "Postagem excluída"
@@ -5164,8 +5148,6 @@ pt_BR:
restore_post:
title: "Restaurar postagem"
complete: "Postagem restaurada"
- no_action_user:
- title: "Sem ação"
silence_user:
title: "Silenciar usuário(a)"
suspend_user:
diff --git a/config/locales/server.ro.yml b/config/locales/server.ro.yml
index 9e7bba019dd35..d4fe1ba5fa977 100644
--- a/config/locales/server.ro.yml
+++ b/config/locales/server.ro.yml
@@ -1037,7 +1037,6 @@ ro:
auth_overrides_avatar: "Suprascrie avatarul local cu avatarul site-ului extern la fiecare conectare și previne modificările locale. Se aplică tuturor furnizorilor de autentificare."
allow_new_registrations: "Permite înregistrarea noilor utilizatori. Debifați pentru a restricționa pe oricine să creeze un cont nou."
enable_signup_cta: "Arată o notificare către utilizatorii anonimi care revin prin care să le ceri să se înregistreze pentru a avea un cont pe site."
- enable_discourse_id: "Activează autentificarea prin Discourse ID, un serviciu de conectare unică ce permite utilizatorilor să se conecteze la mai multe site-uri Discourse folosind un singur cont. Furnizorii comuni de conectare socială, cum ar fi Google, Facebook, Apple și GitHub, sunt acceptați fără configurare suplimentară. Consultă id.discourse.com pentru mai multe detalii."
google_oauth2_client_secret: "Secret client al aplicației tale Google."
google_oauth2_hd_groups: "Preia grupurile Google ale utilizatorilor pe domeniul găzduit la autentificare. Grupurile Google preluate pot fi utilizate pentru a acorda automat calitatea de membru al grupului Discourse (consultă setările grupului). Pentru mai multe informații, vezi https://meta.discourse.org/t/226850"
google_oauth2_verbose_logging: "Înregistrează diagnostice verbale legate de Google OAuth2 în /logs"
@@ -1318,8 +1317,6 @@ ro:
reply_by_email_address_is_empty: "Trebuie să setezi o adresă pentru „răspunde prin email” înainte să poți activa răspunsul prin email."
user_locale_not_enabled: "Trebuie să activezi întâi „permite locale utilizator” înainte de activa această setare."
invalid_regex: "Regex invalid sau nepermis."
- min_username_length_range: "Nu poți seta minimum cu o valoare mai mare decât a maximului."
- max_username_length_range: "Nu poți seta maximum cu o valoare mai mică decât a minimului."
content_localization_locale_limit: "Numărul de locale acceptate nu poate depăși %{max}."
content_localization_language_switcher_requirements: "Comutatorul de limbă necesită ca „setarea localei din cookie” și „permite locala utilizatorului” din setările site-ului să fie activate, și „locale acceptate din localizarea de conținut” să aibă cel puțin o limbă."
mediaconvert_role_arn_required: "Rolul AWS IAM ARN este necesar atunci când utilizezi AWS MediaConvert pentru conversia video."
@@ -1353,7 +1350,6 @@ ro:
exclude_tag: "Exclude subiectele cu o anumită etichetă"
exclude_tags_any: "Exclude subiectele cu oricare dintre etichetele specificate (separate prin virgulă)"
exclude_tags_all: "Exclude subiectele cu toate etichetele specificate (separate prin virgulă)"
- tags_alias: "Alias pentru filtrul „etichetă:”"
tag_group: "Arată subiectele cu etichete dintr-un anumit grup de etichete"
exclude_tag_group: "Exclude subiectele cu etichete dintr-un anumit grup de etichete"
activity_before: "Arată subiectele cu ultima activitate înainte de o dată (AAAA-LL-ZZ sau acum câteva zile)"
@@ -2226,8 +2222,6 @@ ro:
deprecation_error_description: "Pentru a verifica compatibilitatea cu viitoarele actualizări Discourse, poți face ca deprecierile Javascript să ridice o eroare:"
deprecation_error_label: Fă ca deprecierile Javascript să ridice o eroare
enter: "Activează modul sigur"
- dev_mode:
- enter: "Enter"
wizard:
title: "Configurare Discourse"
step:
@@ -2367,18 +2361,12 @@ ro:
approve_and_unhide:
title: "Da"
complete: "Postare aprobată și afișată"
- no_action_post:
- title: "Nicio acțiune"
delete_post:
complete: "Postarea a fost ștearsă"
restore_post:
complete: "Postarea a fost restaurată"
user_actions:
bundle_title: "Ce vrei să faci cu utilizatorul?"
- no_action_user:
- title: "Nicio acțiune"
- description: "Nu lua nicio măsură împotriva utilizatorului"
- complete: "Nicio măsură luată împotriva utilizatorului"
silence_user:
title: "Redu la tăcere utilizatorul"
description: "Împiedică utilizatorul să posteze"
diff --git a/config/locales/server.ru.yml b/config/locales/server.ru.yml
index b42f705ddc811..f494984ecd72f 100644
--- a/config/locales/server.ru.yml
+++ b/config/locales/server.ru.yml
@@ -60,8 +60,6 @@ ru:
inline_oneboxer:
topic_page_title_post_number: "#%{post_number}"
topic_page_title_post_number_by_user: "#%{post_number} от пользователя %{username}"
- too_many_urls: "Невозможно встроить как OneBox более 10 URL-адресов в один запрос."
- concurrency_not_allowed: "Нельзя делать несколько запросов OneBox одновременно. Отправляйте их по одному за раз."
components:
enabled_filter: "Включено"
disabled_filter: "Отключено"
@@ -396,7 +394,6 @@ ru:
slow_down_crawler_user_agent_must_be_at_least_3_characters: "Значение User agent должно содержать не менее 3 символов, чтобы избежать случайного ограничения скорости для полномочных пользователей."
slow_down_crawler_user_agent_cannot_be_popular_browsers: "Не допускается использование следующих значений: %{values}."
strip_image_metadata_cannot_be_disabled_if_composer_media_optimization_image_enabled: "В не можете отключить удаление метаданных из изображения, пока включена оптимизация загружаемых файлов изображений на стороне клиента. Отключите параметр «composer media optimization image enabled» перед отключением параметра «strip image metadata»."
- x_summary_large_image_no_svg: "Изображения сводной карточки Twitter, используемые для метаданных twitter:image, не могут быть в формате «.svg»."
tl0_and_anonymous_flag: "Для анонимных пользователей необходимо указать 'site contact email' или 'email address to report illegal content'."
allow_likes_in_anonymous_mode_without_anonymous_mode_enabled: "Для этой настройки сначала нужно включить параметр 'allow anonymous mode'."
conflicting_google_user_id: 'Идентификатор аккаунта Google для этого аккаунта изменился. По соображениям безопасности требуется вмешательство персонала. Свяжитесь с персоналом и укажите
https://meta.discourse.org/t/76575'
@@ -1925,7 +1922,6 @@ ru:
slow_down_crawler_rate: "Если указано значение «slow_down_crawler_user_agents» (количество секунд между запросами), то это значение будет применяться ко всем поисковым роботам"
content_security_policy: "Включить Content-Security-Policy (CSP). CSP — это дополнительный уровень защиты, который помогает предотвратить определенные типы атак, включая межсайтовый скриптинг (XSS) и внедрение данных."
content_security_policy_report_only: "Включить Content-Security-Policy-Report-Only (CSP)"
- content_security_policy_collect_reports: "Включить отчёты о нарушениях CSP в /csp_reports"
content_security_policy_frame_ancestors: "Ограничить через CSP число тех, кто может встроить этот сайт в iframes. Перечень разрешённых хостов настраивается на закладке Встраивание."
content_security_policy_script_src: "Дополнительные источники сценариев в белом списке. Текущий хост и CDN включены по умолчанию. См. «Смягчение атак XSS с помощью политики безопасности контента (CSP)». Другие хост-источники игнорируются, так как включена директива strict-dynamic."
invalidate_inactive_admin_email_after_days: "Аккаунты администраторов, которые не посещали сайт в течение указанного здесь количества дней, должны будут повторно подтвердить свой адрес электронной почты перед входом в систему. Для отключения параметра установите это значение в 0."
@@ -2244,7 +2240,6 @@ ru:
alternative_reply_by_email_addresses: "Список альтернативных шаблонов для ответа, применяемый на основе входящих адресов электронной почты. Пример: %%{reply_key}@reply.example.com|replies+1%%{reply_key}@example.com"
incoming_email_prefer_html: "Использовать HTML вместо обычного текста для входящих писем."
strip_incoming_email_lines: "Удалять начальные и конечные пробелы из каждой строки входящих писем."
- disable_emails: "Запретить отправлять электронные письма. Выберите «yes», чтобы отключить электронную почту для всех пользователей. Выберите «non-staff», чтобы отключить электронную почту для пользователей, не являющихся персоналом."
strip_images_from_short_emails: "Удалять картинки из коротких писем — размером менее 2800 байт"
short_email_length: "Максимальная длина в байтах, при которой электронное письмо будет определено как «короткое». Если размер письма не превышает это значение, изображения в нем (например, аватары и эмодзи) будут удалены."
display_name_on_email_from: "Отображать в поле «От» полные имена отправителей электронных писем"
@@ -2262,6 +2257,7 @@ ru:
mailgun_api_key: "Секретный ключ API Mailgun, используемый для проверки сообщений вебхука."
sendgrid_verification_key: "Ключ верификации Sendgrid, используемый для проверки сообщений вебхука."
mailjet_webhook_token: "Токен для проверки полезной нагрузки вебхука. Передается как параметр «t» запроса в вебхуке, например: https://example.com/webhook/mailjet?t=supersecret."
+ mailpace_webhook_token: "Токен для проверки полезной нагрузки вебхука. Передается как параметр «t» запроса в вебхуке, например: https://example.com/webhook/mailpace?t=supersecret."
mandrill_authentication_key: "Ключ аутентификации Mandrill, используемый для проверки сообщений вебхука."
postmark_webhook_token: "Токен для проверки полезной нагрузки вебхука. Передается как параметр «t» запроса в вебхуке, например: https://example.com/webhook/postmark?t=supersecret."
sparkpost_webhook_token: "Токен для проверки полезной нагрузки вебхука. Передается как параметр «t» запроса в вебхуке, например: https://example.com/webhook/sparkpost?t=supersecret."
@@ -2527,7 +2523,6 @@ ru:
dashboard_hidden_reports: "Разрешать скрывать отдельные отчёты в панели управления."
dashboard_visible_tabs: "Закладки, которые будут отображаться в панели управления."
dashboard_general_tab_activity_metrics: "Отчёты, отображаемые в метриках активности на основной вкладке панели управления."
- gravatar_enabled: "Использовать сервис Gravatar для аватаров пользователей. Эта настройка отключает у пользователей возможность вручную переключаться на Gravatar, но не затрагивает тех, кто его уже использует."
gravatar_name: "Укажите имя поставщика услуг Gravatar. Это имя обычно используется для идентификации источника, предоставляющего сайту аватары Gravatar."
gravatar_base_url: "Укажите URL-адрес для доступа к API поставщика Gravatar. Этот параметр имеет решающее значение для преобразования адресов электронной почты в URL-адреса Gravatar, где хранятся изображения аватаров."
gravatar_login_url: "URL-адрес, связанный с `gravatar_base_url`, который обеспечивает вход пользователя в сервис Gravatar."
@@ -2614,12 +2609,6 @@ ru:
reply_by_email_disabled: "Перед включением этого параметра необходимо включить параметр «Ответить по электронной почте»."
discourse_connect_url_is_empty: "Перед включением этого параметра необходимо настроить параметр «discourse connect url»."
enable_local_logins_disabled: "Перед включением этого параметра необходимо включить параметр «Включить локальные аккаунты»."
- min_username_length_exists: "Вы не можете установить минимальную длину имени пользователя более самого короткого (%{username})."
- min_group_name_length_exists: "Минимальная длина имени пользователя не может превышать длину самого короткого названия группы (%{group_name})."
- min_username_length_range: "Нельзя установить минимум больше максимума."
- max_username_length_exists: "Вы не можете установить максимальную длину имени пользователя менее самого длинного (%{username})."
- max_group_name_length_exists: "Максимальная длина имени пользователя не может быть меньше длины самого длинного названия группы (%{group_name})."
- max_username_length_range: "Нельзя установить максимум ниже минимума."
invalid_hex_value: "Значения цвета — шесть цифр в шестнадцатеричной системе исчисления."
empty_selectable_avatars: "Для включения этого параметра необходимо загрузить не менее двух аватаров, из которых можно будет сделать выбор."
category_search_priority:
@@ -2678,7 +2667,6 @@ ru:
exclude_tag: "Исключать темы с определенным тегом"
exclude_tags_any: "Исключать темы с любым из указанных тегов (через запятую)"
exclude_tags_all: "Исключать темы со всеми указанными тегами (через «+»)"
- tags_alias: "Псевдоним для фильтра 'tag:'"
tag_group: "Показывать темы с тегами из определенной группы тегов"
exclude_tag_group: "Исключать темы с тегами из определенной группы тегов"
activity_before: "Показывать темы с последней активностью до указанной даты (YYYY-MM-DD или количество дней назад)"
@@ -5156,8 +5144,6 @@ ru:
deprecation_error_label: Сделать так, чтобы прекращение поддержки Javascript вызывало ошибку
enter: "Войти в безопасный режим"
must_select: "Для перехода в безопасный режим необходимо выбрать хотя бы один параметр."
- dev_mode:
- enter: "Enter"
wizard:
title: "Настройка Discourse"
step:
@@ -5420,10 +5406,6 @@ ru:
complete: "Публикация одобрена и показана"
post_actions:
bundle_title: "Что вы хотите сделать с этим постом?"
- no_action_post:
- title: "Нет действий"
- description: "Не предпринимать никаких действий по сообщению"
- complete: "Никаких действий по сообщению не предпринято."
delete_post:
title: "Удалить публикацию"
description: "Удалить этот пост"
@@ -5442,10 +5424,6 @@ ru:
complete: "Публикация восстановлена"
user_actions:
bundle_title: "Что вы хотите сделать с пользователем?"
- no_action_user:
- title: "Нет действий"
- description: "Не предпринимать никаких действий против пользователя"
- complete: "Никаких действий против пользователя не предпринято."
silence_user:
title: "Заморозка пользователя"
description: "Запретить пользователю публиковать сообщения"
diff --git a/config/locales/server.sk.yml b/config/locales/server.sk.yml
index 7f18865ebf8e3..3e8f38ec7fa01 100644
--- a/config/locales/server.sk.yml
+++ b/config/locales/server.sk.yml
@@ -60,8 +60,6 @@ sk:
inline_oneboxer:
topic_page_title_post_number: "#%{post_number}"
topic_page_title_post_number_by_user: "#%{post_number} podľa %{username}"
- too_many_urls: "V jednej požiadavke nie je možné vložiť do jedného poľa viac ako 10 adries URL."
- concurrency_not_allowed: "Súbežné požiadavky na inline-oneboxing nie sú povolené. Prosím, pošlite vždy len jednu žiadosť."
components:
enabled_filter: "Povolené"
disabled_filter: "Vypnuté"
@@ -398,7 +396,6 @@ sk:
slow_down_crawler_user_agent_must_be_at_least_3_characters: "Používateľské agendy musia mať dĺžku aspoň 3 znaky, aby nedošlo k náhodnému obmedzeniu rýchlosti legitímnych používateľov."
slow_down_crawler_user_agent_cannot_be_popular_browsers: "K nastaveniu nemôžete pridať žiadnu z nasledujúcich hodnôt: %{values}."
strip_image_metadata_cannot_be_disabled_if_composer_media_optimization_image_enabled: "Ak je povolená možnosť „optimalizácia obrazu pre kompozitor“, nemôžete zakázať metadáta obrázka pásu. Pred zakázaním metadát obrázkov pásu zakážte možnosť „optimalizácia obrazu kompozitora je povolená“."
- x_summary_large_image_no_svg: "Súhrnné obrázky Twitteru používané pre metadáta twitter:image nemôžu byť obrázky .svg."
tl0_and_anonymous_flag: "V prípade anonymných používateľov sa musí uviesť buď \"kontaktný e-mail stránky\", alebo \"e-mailová adresa na nahlásenie nezákonného obsahu\"."
allow_likes_in_anonymous_mode_without_anonymous_mode_enabled: "Toto nastavenie vyžaduje, aby bolo najprv povolené nastavenie \"povoliť anonymný režim\"."
conflicting_google_user_id: 'ID účtu Google pre toto konto sa zmenilo; z bezpečnostných dôvodov je potrebný zásah personálu. Obráťte sa na personál a odkážte ich na
https://meta.discourse.org/t/76575.'
@@ -1919,7 +1916,6 @@ sk:
slow_down_crawler_rate: "Ak je zadaný parameter slow_down_crawler_user_agents, táto rýchlosť sa uplatní na všetky crawlery (počet sekúnd oneskorenia medzi požiadavkami)"
content_security_policy: "Povoľte Content-Security-Policy (CSP). CSP je ďalšia vrstva zabezpečenia, ktorá pomáha predchádzať určitým typom útokov vrátane Cross Site Scripting (XSS) a injekcie dát."
content_security_policy_report_only: "Povoliť Content-Security-Policy-Report-Only (CSP)"
- content_security_policy_collect_reports: "Povolenie zberu správ o porušeniach CSP na adrese /csp_reports"
content_security_policy_frame_ancestors: "Obmedziť, kto môže túto stránku vložiť do iframe prostredníctvom CSP. Kontrola povolených hostiteľov pri vkladaní"
content_security_policy_script_src: "Ďalšie zdroje skriptov uvedené v zozname povolených zdrojov. Aktuálny hostiteľ a CDN sú predvolene zahrnuté. Pozrite si časť Zmiernenie útokov XSS pomocou zásad zabezpečenia obsahu. (CSP). Ostatné zdroje hostiteľa sú ignorované, pretože je povolená funkcia strict-dynamic."
invalidate_inactive_admin_email_after_days: "Účty administrátorov, ktorí nenavštívili stránku počas tohto počtu dní, budú musieť pred prihlásením znovu overiť svoju e-mailovú adresu. Nastavte na 0, aby ste to zakázali."
@@ -2234,7 +2230,6 @@ sk:
alternative_reply_by_email_addresses: "Zoznam alternatívnych šablón pre odpoveď e-mailom na prichádzajúce e-mailové adresy. Príklad: %%{reply_key}@reply.example.com|replies+%%{reply_key}@example.com"
incoming_email_prefer_html: "Používajte HTML namiesto textu pre prichádzajúce e-maily."
strip_incoming_email_lines: "Odstráňte úvodné a koncové biele znaky z každého riadku prichádzajúcich e-mailov."
- disable_emails: "Zabráňte aplikácii Discourse odosielať akékoľvek e-maily. Výberom možnosti \"áno\" zakážete odosielanie e-mailov všetkým používateľom. Výberom možnosti \"non-staff\" zakážete e-maily len pre používateľov, ktorí nie sú členmi personálu."
strip_images_from_short_emails: "Odobrať obrázky z e-mailov s veľkosťou menšou ako 2800 bajtov"
short_email_length: "Definujte maximálnu dĺžku e-mailu v bajtoch, aby bol klasifikovaný ako \"krátky\" na potlačenie obrázkov. Ak veľkosť e-mailu neprekročí toto nastavenie, všetky obrázky (napríklad avatary a emotikony) v e-maile budú odstránené."
display_name_on_email_from: "V emailovom poli Od zobraziť plné mená"
@@ -2252,6 +2247,7 @@ sk:
mailgun_api_key: "Mailgun Secret API kľúč používaný na overenie správ webhooku."
sendgrid_verification_key: "Overovací kľúč Sendgrid používaný na overovanie správ webhook."
mailjet_webhook_token: "Token používaný na overenie payload webového háku. Musí byť odovzdaný ako parameter dotazu 't' webového háku, napríklad: https://example.com/webhook/mailjet?t=supersecret"
+ mailpace_webhook_token: "Token používaný na overenie payload webového háku. Musí byť odovzdaný ako parameter dotazu 't' webového háku, napríklad: https://example.com/webhook/mailpace?t=supersecret"
mandrill_authentication_key: "Autentizačný kľúč Mandrill používaný na overovanie správ webhook."
postmark_webhook_token: "Token používaný na overenie užitočného zaťaženia webhooku. Musí sa odovzdať ako parameter dopytu \"t\" webhooku, napríklad: https://example.com/webhook/postmark?t=supersecret"
sparkpost_webhook_token: "Token používaný na overenie obsahu webhooku. Musí sa odovzdať ako parameter dopytu „t“ webhooku, napríklad: https://example.com/webhook/sparkpost?t=supersecret"
@@ -2512,7 +2508,6 @@ sk:
dashboard_hidden_reports: "Povoliť skrytie zadaných správ z hlavného panela."
dashboard_visible_tabs: "Vyberte, ktoré karty hlavného panela budú viditeľné."
dashboard_general_tab_activity_metrics: "Na karte Všeobecné vyberte správy, ktoré sa majú zobrazovať ako metriky aktivity."
- gravatar_enabled: "Používajte službu Gravatar pre avatary používateľov. Zabráni to používateľom prejsť na službu Gravatar pre ich avatary, ale nebude to mať vplyv na používateľov, ktorí ju už používajú."
gravatar_name: "Zadajte názov poskytovateľa služby Gravatar. Tento názov sa zvyčajne používa na identifikáciu zdroja, ktorý poskytuje avatary Gravatar na lokalitu."
gravatar_base_url: "Zadajte adresu URL na prístup k rozhraniu API poskytovateľa Gravatar. Toto nastavenie je rozhodujúce pre konverziu e-mailových adries na adresy URL Gravataru, v ktorých sú uložené obrázky avataru."
gravatar_login_url: "URL relatívna k `gravatar_base_url`, ktorá poskytuje používateľovi prihlásenie do služby Gravatar."
@@ -2595,12 +2590,6 @@ sk:
reply_by_email_disabled: "Pred povolením tohto nastavenia musíte najprv povoliť funkciu \"odpovedať e-mailom\"."
discourse_connect_url_is_empty: "Pred povolením tohto nastavenia musíte nastaviť \"url adresu discourse connect\"."
enable_local_logins_disabled: "Pred povolením tohto nastavenia musíte najskôr povoliť „povoliť miestne prihlásenie“."
- min_username_length_exists: "Minimálnu dĺžku používateľského mena nemôžete nastaviť nad najkratšie používateľské meno (%{username})."
- min_group_name_length_exists: "Minimálnu dĺžku používateľského mena nemôžete nastaviť nad najkratší názov skupiny (%{group_name})."
- min_username_length_range: "Nemôžete nastaviť minimum viac ako maximum."
- max_username_length_exists: "Maximálnu dĺžku používateľského mena nemôžete nastaviť pod najdlhšie používateľské meno (%{username})."
- max_group_name_length_exists: "Maximálnu dĺžku používateľského mena nemôžete nastaviť pod najdlhší názov skupiny (%{group_name})."
- max_username_length_range: "Nemôžete nastaviť maximum menšie ako minimum."
invalid_hex_value: "Hodnoty farieb musia byť 6-miestne hexadecimálne kódy."
empty_selectable_avatars: "Pred povolením tohto nastavenia musíte najprv nahrať aspoň dva vyberateľné avatary."
category_search_priority:
@@ -2661,7 +2650,6 @@ sk:
exclude_tag: "Vylúčenie tém s konkrétnou značkou"
exclude_tags_any: "Vylúčiť témy s niektorou zo zadaných značiek (oddelených čiarkami)"
exclude_tags_all: "Vylúčiť témy so všetkými zadanými značkami (oddelenými plusom)"
- tags_alias: "Alias pre filter 'tag:'"
tag_group: "Zobrazenie tém so značkami z konkrétnej skupiny značiek"
exclude_tag_group: "Vylúčenie tém so značkami z určitej skupiny značiek"
activity_before: "Zobraziť témy s poslednou aktivitou pred dátumom (RRRR-MM-DD alebo pred niekoľkými dňami)"
@@ -5131,8 +5119,6 @@ sk:
deprecation_error_label: Zabezpečte, aby deprekácie Javascriptu vyvolali chybu
enter: "Vstup do núdzového režimu"
must_select: "Ak chcete vstúpiť do núdzového režimu, musíte vybrať aspoň jednu možnosť."
- dev_mode:
- enter: "Zadajte"
wizard:
title: "Nastavenie Discourse"
step:
@@ -5396,8 +5382,6 @@ sk:
approve_and_unhide:
title: "Áno"
complete: "Príspevok schválený a odkrytý"
- no_action_post:
- title: "Žiadna akcia"
delete_post:
title: "Odstrániť príspevok"
complete: "Príspevok zmazaný"
@@ -5406,8 +5390,6 @@ sk:
restore_post:
title: "Obnoviť príspevok"
complete: "Príspevok bol obnovený"
- no_action_user:
- title: "Žiadna akcia"
silence_user:
title: "Umlčať používateľa"
complete: "Používateľ umlčaný"
diff --git a/config/locales/server.sl.yml b/config/locales/server.sl.yml
index 4eb8af75a23bc..ea91739c68369 100644
--- a/config/locales/server.sl.yml
+++ b/config/locales/server.sl.yml
@@ -106,7 +106,6 @@ sl:
other: ! "%{count} napak preprečuje tej %{model} da se shrani"
site_settings:
second_factor_cannot_be_enforced_with_discourse_connect_enabled: "2FA ne morete nastaviti kot zahtevano, če je omogočena možnost DiscourseConnect."
- x_summary_large_image_no_svg: "Slike povzetka Twitterja, ki se uporabljajo za metapodatke twitter:image, ne morejo biti slike tipa .svg."
invite:
confirm_email: "
https://meta.discourse.org/t/76575'
onebox:
invalid_address: "Tyvärr kunde vi inte generera en förhandsvisning av den här webbsidan eftersom servern '%{hostname}' inte kunde hittas. I stället för en förhandsvisning visas enbart en länk i ditt inlägg. :cry:"
@@ -1534,7 +1533,6 @@ sv:
slow_down_crawler_user_agents: 'Användaragenter för sökrobotar som ska vara hastighetsbegränsade vilket konfigurerats i inställningen "sakta ned sökrobots hastighet". Varje värde måste vara minst 3 tecken långt.'
slow_down_crawler_rate: "Om slow_down_crawler_user_agents anges kommer denna hastighet att gälla för alla sökrobotar (fördröjning mellan förfrågningarna uttryckt i sekunder)"
content_security_policy_report_only: "Aktivera enbart rapport över säkerhetspolicy för innehåll (CSP)"
- content_security_policy_collect_reports: "Aktivera insamling av CSP-överträdelserapporter på /csp_reports"
content_security_policy_frame_ancestors: "Begränsa vem som kan bädda in denna webbplats i iframes via CSP. Kontrollera tillåtna värdar på Inbäddning"
invalidate_inactive_admin_email_after_days: "Administratörskonton som inte har besökt webbplatsen under detta antal dagar kommer att behöva validera sin e-postadress innan de loggar in. Ställ in till 0 för att inaktivera."
include_secure_categories_in_tag_counts: "När detta är aktiverat kommer antalet ämnen för en tagg att omfatta ämnen som finns i läsbegränsade kategorier för alla användare. När detta är inaktiverat visas normala användare endast ett antal ämnen för en tagg där alla ämnen är i offentliga kategorier."
@@ -1797,7 +1795,6 @@ sv:
alternative_reply_by_email_addresses: "Lista på alternativa mallar för svar genom inkommen e-post. Exempelvis: %%{reply_key}@svar.exempel.se|replies+%% {reply_key}@exempel.se"
incoming_email_prefer_html: "Använd HTML istället för text för inkommande e-post."
strip_incoming_email_lines: "Ta bort ledande och efterföljande blanksteg från varje rad för inkommande e-post."
- disable_emails: "Förhindra att Discourse skickar några e-postmeddelanden alls. Välj 'ja' för att inaktivera e-postmeddelanden för alla användare. Välj 'icke-personliga' för att inaktivera e-postmeddelanden endast för användare som inte är personal."
strip_images_from_short_emails: "Rensa bilder från e-post som har mindre storlek än 2 800 bytes."
display_name_on_email_from: "Visa fullständiga namn på e-postmeddelandens Från-fält."
unsubscribe_via_email: "Tillåt att användare avprenumererar från e-post genom att skicka ett e-postmeddelande med 'unsubscribe' i ämnesrubriken eller innehållet."
@@ -1814,6 +1811,7 @@ sv:
mailgun_api_key: "Mailgun Secret API-nyckel att använda för att verifiera webhook-meddelanden."
sendgrid_verification_key: "Verifieringsnyckel för Sendgrid som används för att verifiera webhook-meddelanden."
mailjet_webhook_token: "Token som används för att verifiera webhook-nyttolasten. Den måste skickas som frågeparametern \"t\" för webhook, till exempel: https://example.com/webhook/mailjet?t=supersecret"
+ mailpace_webhook_token: "Token som används för att verifiera webhook-nyttolasten. Den måste skickas som frågeparametern \"t\" för webhook, till exempel: https://example.com/webhook/mailpace?t=supersecret"
mandrill_authentication_key: "Mandrill-autentiseringsnyckel som används för att verifiera webhook-meddelanden."
postmark_webhook_token: "Token som används för att verifiera webhook-nyttolasten. Den måste skickas som frågeparametern \"t\" för webhook, till exempel: https://example.com/webhook/postmark?t=supersecret"
sparkpost_webhook_token: "Token som används för att verifiera webhook-nyttolasten. Den måste skickas som frågeparametern \"t\" för webhook, till exempel: https://example.com/webhook/sparkpost?t=supersecret"
@@ -2062,10 +2060,6 @@ sv:
reply_by_email_disabled: "Du måste först aktivera 'svara med e-post' innan du aktiverar denna inställning."
discourse_connect_url_is_empty: "Du måste ange en 'discourse connect url' innan du aktiverar denna inställning."
enable_local_logins_disabled: "Du måste först 'aktivera lokala inloggningar' innan du aktiverar denna inställning."
- min_username_length_exists: "Du kan inte ställa in kortast tillåtna längd på användarnamn till att vara längre än det kortaste användarnamnet (%{username})."
- min_username_length_range: "Du kan inte ställa in minimum till att vara högre än maximum"
- max_username_length_exists: "Du kan inte ställa in högsta tillåtna längd på användarnamn till att vara kortare än det längsta användarnamnet (%{username})."
- max_username_length_range: "Du kan inte ställa in maximum till att vara mindre än minimum."
invalid_hex_value: "Färgvärden måste vara sexsiffriga hexadecimala koder."
empty_selectable_avatars: "Du måste först ladda upp åtminstone två valbara avatarer innan du aktiverar denna inställning."
category_search_priority:
@@ -4058,8 +4052,6 @@ sv:
deprecation_error_label: Se till att Javascript-utfasningar ger upphov till ett fel
enter: "Starta felsäkert läge"
must_select: "Du måste välja minst ett alternativ för att aktivera felsäkert läge."
- dev_mode:
- enter: "Retur"
wizard:
title: "Discourse-inställningar"
step:
@@ -4265,8 +4257,6 @@ sv:
title: "Ja"
approve_and_unhide:
title: "Ja"
- no_action_post:
- title: "Ingen åtgärd"
delete_post:
title: "Radera inlägg"
complete: "Inlägg raderat"
@@ -4274,8 +4264,6 @@ sv:
title: "Dölj inlägg"
restore_post:
title: "Återställ inlägg"
- no_action_user:
- title: "Ingen åtgärd"
silence_user:
title: "Tysta användare"
suspend_user:
diff --git a/config/locales/server.sw.yml b/config/locales/server.sw.yml
index 9899d96a04c34..08115ae99a124 100644
--- a/config/locales/server.sw.yml
+++ b/config/locales/server.sw.yml
@@ -911,8 +911,6 @@ sw:
staged_users_disabled: "Kwanza ruhusu 'watumiaji walio staged' kabla ya kuruhusu mpangilio huu."
reply_by_email_disabled: "Kwanza ruhusu 'jibu kupitia barua pepe' kabla ya kuruhusu mpangilio huu."
enable_local_logins_disabled: "Kwanza ruhusu 'ruhusu programu-jalizi ' kabla ya kuruhusu mpangilio huu."
- min_username_length_range: "Hauwezi ukaseti kiwango cha chini kiwe zaidi ya kiwango cha juu."
- max_username_length_range: "Hauwezi ukaweka kiwango cha juu kiwe kidogo ya kiwango cha chini."
search:
within_post: "#%{post_number} za %{username}"
types:
diff --git a/config/locales/server.te.yml b/config/locales/server.te.yml
index 3f0ffa8a8588a..d1e3ffe941a78 100644
--- a/config/locales/server.te.yml
+++ b/config/locales/server.te.yml
@@ -171,7 +171,6 @@ te:
slow_down_crawler_user_agent_must_be_at_least_3_characters: "చట్టబద్ధమైన వినియోగదారులను ప్రమాదవశాత్తూ రేట్-పరిమితం చేయడాన్ని నివారించడానికి వినియోగదారు ఏజెంట్లు తప్పనిసరిగా కనీసం 3 అక్షరాల పొడవు ఉండాలి."
slow_down_crawler_user_agent_cannot_be_popular_browsers: "మీరు సెట్టింగ్కు కింది విలువల్లో దేనినీ జోడించలేరు: %{values}."
strip_image_metadata_cannot_be_disabled_if_composer_media_optimization_image_enabled: "'కంపోజర్ మీడియా ఆప్టిమైజేషన్ ఇమేజ్ ఎనేబుల్' ప్రారంభించబడితే మీరు స్ట్రిప్ ఇమేజ్ మెటాడేటాను డిజేబుల్ చేయలేరు. స్ట్రిప్ ఇమేజ్ మెటాడేటాను డిసేబుల్ చేయడానికి ముందు 'కంపోజర్ మీడియా ఆప్టిమైజేషన్ ఇమేజ్ ఎనేబుల్ చేయబడింది' అని డిజేబుల్ చేయండి."
- x_summary_large_image_no_svg: "Twitter కోసం ఉపయోగించే Twitter సారాంశం చిత్రాలు:ఇమేజ్ మెటాడేటా .svg చిత్రం కాకూడదు."
word_connector:
comma: ", "
invite:
@@ -1120,7 +1119,6 @@ te:
slow_down_crawler_user_agents: '"స్లో డౌన్ క్రాలర్ రేట్" సెట్టింగ్లో కాన్ఫిగర్ చేయబడినట్లుగా రేట్ పరిమితం చేయబడే వెబ్ క్రాలర్ల వినియోగదారు ఏజెంట్లు. ప్రతి విలువ తప్పనిసరిగా కనీసం 3 అక్షరాల పొడవు ఉండాలి.'
slow_down_crawler_rate: "slow_down_crawler_user_agents పేర్కొనబడితే, ఈ రేటు అన్ని క్రాలర్లకు వర్తిస్తుంది (అభ్యర్థనల మధ్య సెకన్ల ఆలస్యం సంఖ్య)"
content_security_policy_report_only: "కంటెంట్-సెక్యూరిటీ-పాలసీ-రిపోర్ట్-మాత్రమే (CSP)ని ప్రారంభించండి"
- content_security_policy_collect_reports: "/csp_reports వద్ద CSP ఉల్లంఘన నివేదిక సేకరణను ప్రారంభించండి"
content_security_policy_frame_ancestors: "CSP ద్వారా iframesలో ఈ సైట్ను ఎవరు పొందుపరచవచ్చో నియంత్రించండి. ఎంబెడ్డింగ్లో అనుమతించబడిన హోస్ట్లను నియంత్రించండి"
invalidate_inactive_admin_email_after_days: "ఇన్ని రోజులలో సైట్ను సందర్శించని అడ్మిన్ ఖాతాలు లాగిన్ చేయడానికి ముందు వారి ఇమెయిల్ చిరునామాను మళ్లీ ధృవీకరించాలి. నిలిపివేయడానికి 0కి సెట్ చేయండి."
include_secure_categories_in_tag_counts: "ప్రారంభించబడినప్పుడు, ట్యాగ్ కోసం టాపిక్ల గణన వినియోగదారులందరికీ చదవడానికి పరిమితం చేయబడిన వర్గాల్లోని అంశాలను కలిగి ఉంటుంది. నిలిపివేయబడినప్పుడు, సాధారణ వినియోగదారులకు ట్యాగ్ కోసం అంశాల గణన మాత్రమే చూపబడుతుంది, ఇక్కడ అన్ని అంశాలు పబ్లిక్ కేటగిరీలలో ఉంటాయి."
@@ -1382,7 +1380,6 @@ te:
alternative_reply_by_email_addresses: "ఇమెయిల్ ఇన్కమింగ్ ఇమెయిల్ చిరునామాల ద్వారా ప్రత్యుత్తరం కోసం ప్రత్యామ్నాయ టెంప్లేట్ల జాబితా. ఉదాహరణ: %%{reply_key}@reply.example.com|ప్రత్యుత్తరాలు+%%{reply_key}@example.com"
incoming_email_prefer_html: "ఇన్కమింగ్ ఇమెయిల్ కోసం టెక్స్ట్కు బదులుగా HTMLని ఉపయోగించండి."
strip_incoming_email_lines: "ఇన్కమింగ్ ఇమెయిల్ల ప్రతి లైన్ నుండి లీడింగ్ మరియు ట్రైలింగ్ వైట్స్పేస్లను తీసివేయండి."
- disable_emails: "ఎలాంటి ఇమెయిల్లను పంపకుండా ఉపన్యాసం నిరోధించండి. వినియోగదారులందరికీ ఇమెయిల్లను నిలిపివేయడానికి 'అవును' ఎంచుకోండి. సిబ్బందియేతర వినియోగదారుల కోసం మాత్రమే ఇమెయిల్లను నిలిపివేయడానికి 'నాన్-స్టాఫ్'ని ఎంచుకోండి."
strip_images_from_short_emails: "2800 బైట్ల కంటే తక్కువ పరిమాణం ఉన్న ఇమెయిల్ల నుండి చిత్రాలను తీసివేయండి"
display_name_on_email_from: "ఫీల్డ్ల నుండి ఇమెయిల్లో పూర్తి పేర్లను ప్రదర్శించండి"
unsubscribe_via_email: "సబ్జెక్ట్ లేదా బాడీలో 'అన్సబ్స్క్రయిబ్'తో ఇమెయిల్ పంపడం ద్వారా ఇమెయిల్ల నుండి అన్సబ్స్క్రైబ్ చేయడానికి వినియోగదారులను అనుమతించండి"
@@ -1399,6 +1396,7 @@ te:
mailgun_api_key: "వెబ్హుక్ సందేశాలను ధృవీకరించడానికి Mailgun సీక్రెట్ API కీ ఉపయోగించబడుతుంది."
sendgrid_verification_key: "webhook సందేశాలను ధృవీకరించడానికి Sendgrid ధృవీకరణ కీ ఉపయోగించబడుతుంది."
mailjet_webhook_token: "వెబ్హుక్ పేలోడ్ని ధృవీకరించడానికి టోకెన్ ఉపయోగించబడింది. ఇది తప్పనిసరిగా webhook యొక్క 't' ప్రశ్న పరామితి వలె పాస్ చేయబడాలి, ఉదాహరణకు: https://example.com/webhook/mailjet?t=supersecret"
+ mailpace_webhook_token: "వెబ్హుక్ పేలోడ్ని ధృవీకరించడానికి టోకెన్ ఉపయోగించబడింది. ఇది తప్పనిసరిగా webhook యొక్క 't' ప్రశ్న పరామితి వలె పాస్ చేయబడాలి, ఉదాహరణకు: https://example.com/webhook/mailpace?t=supersecret"
mandrill_authentication_key: "వెబ్హుక్ సందేశాలను ధృవీకరించడానికి మాండ్రిల్ ప్రమాణీకరణ కీ ఉపయోగించబడుతుంది."
postmark_webhook_token: "వెబ్హుక్ పేలోడ్ని ధృవీకరించడానికి టోకెన్ ఉపయోగించబడింది. ఇది తప్పనిసరిగా webhook యొక్క 't' ప్రశ్న పరామితి వలె పాస్ చేయబడాలి, ఉదాహరణకు: https://example.com/webhook/postmark?t=supersecret"
sparkpost_webhook_token: "వెబ్హుక్ పేలోడ్ని ధృవీకరించడానికి టోకెన్ ఉపయోగించబడింది. ఇది తప్పనిసరిగా webhook యొక్క 't' ప్రశ్న పరామితి వలె పాస్ చేయబడాలి, ఉదాహరణకు: https://example.com/webhook/sparkpost?t=supersecret"
@@ -1647,10 +1645,6 @@ te:
reply_by_email_disabled: "ఈ సెట్టింగ్ని ఎనేబుల్ చేసే ముందు మీరు ముందుగా 'ఇమెయిల్ ద్వారా ప్రత్యుత్తరం' ఎనేబుల్ చేయాలి."
discourse_connect_url_is_empty: "మీరు ఈ సెట్టింగ్ని ప్రారంభించే ముందు తప్పనిసరిగా 'డిస్కోర్స్ కనెక్ట్ url'ని సెట్ చేయాలి."
enable_local_logins_disabled: "ఈ సెట్టింగ్ని ప్రారంభించే ముందు మీరు ముందుగా 'స్థానిక లాగిన్లను ప్రారంభించు'ని తప్పనిసరిగా ప్రారంభించాలి."
- min_username_length_exists: "మీరు చిన్న వినియోగదారు పేరు (%{username}) కంటే కనీస వినియోగదారు పేరు పొడవును సెట్ చేయలేరు."
- min_username_length_range: "మీరు కనిష్టాన్ని గరిష్టం కంటే ఎక్కువగా సెట్ చేయలేరు."
- max_username_length_exists: "మీరు పొడవైన వినియోగదారు పేరు (%{username}) క్రింద గరిష్ట వినియోగదారు పేరు పొడవును సెట్ చేయలేరు."
- max_username_length_range: "మీరు గరిష్టాన్ని కనిష్ట స్థాయికి దిగువన సెట్ చేయలేరు."
invalid_hex_value: "రంగు విలువలు 6-అంకెల హెక్సాడెసిమల్ కోడ్లుగా ఉండాలి."
empty_selectable_avatars: "ఈ సెట్టింగ్ని ప్రారంభించే ముందు మీరు తప్పనిసరిగా కనీసం రెండు ఎంచుకోదగిన అవతార్లను అప్లోడ్ చేయాలి."
category_search_priority:
@@ -2414,8 +2408,6 @@ te:
safe_mode:
title: "సురక్షిత మోడ్ను నమోదు చేయండి"
enter: "సేఫ్ మోడ్ని నమోదు చేయండి"
- dev_mode:
- enter: "Enter"
wizard:
title: "డిస్కర్స్ సెటప్"
step:
@@ -2558,16 +2550,12 @@ te:
title: "అవును"
approve_and_unhide:
title: "అవును"
- no_action_post:
- title: "చర్య తీసుకోలేదు"
delete_post:
title: "పోస్ట్ తొలగించండి"
hide_post:
title: "పోస్ట్ను దాచండి"
restore_post:
title: "పోస్ట్ని పునరుద్ధరించండి"
- no_action_user:
- title: "చర్య తీసుకోలేదు"
silence_user:
title: "సభ్యుని నిశ్శబ్దం చేయండి"
suspend_user:
diff --git a/config/locales/server.th.yml b/config/locales/server.th.yml
index da91b4f26bb95..19a2c0098844e 100644
--- a/config/locales/server.th.yml
+++ b/config/locales/server.th.yml
@@ -491,8 +491,6 @@ th:
button: "ลงทะเบียน"
resend_email:
title: "ส่งอีเมลยืนยันตัวตนอีกครั้ง"
- dev_mode:
- enter: "เอ็นเทอร์"
wizard:
step:
setup:
diff --git a/config/locales/server.tr_TR.yml b/config/locales/server.tr_TR.yml
index 86d84a2443c3f..b2c49d9aad2e0 100644
--- a/config/locales/server.tr_TR.yml
+++ b/config/locales/server.tr_TR.yml
@@ -60,8 +60,6 @@ tr_TR:
inline_oneboxer:
topic_page_title_post_number: "#%{post_number}"
topic_page_title_post_number_by_user: "%{username} tarafından #%{post_number}"
- too_many_urls: "Tek bir talepte 10’dan fazla URL’yi satır içinde onebox olarak ekleyemezsiniz."
- concurrency_not_allowed: "Eş zamanlı satır içi onebox yapma taleplerine izin verilmez. Lütfen her seferinde bir talep gönderin."
components:
enabled_filter: "Etkin"
disabled_filter: "Devre Dışı"
@@ -344,7 +342,6 @@ tr_TR:
slow_down_crawler_user_agent_must_be_at_least_3_characters: "Kullanıcı aracıları, geçerli kullanıcıların yanlışlıkla sınırlandırılmasını önlemek için en az 3 karakter uzunluğunda olmalıdır."
slow_down_crawler_user_agent_cannot_be_popular_browsers: "Ayara şu değerlerden herhangi birini ekleyemezsiniz: %{values}."
strip_image_metadata_cannot_be_disabled_if_composer_media_optimization_image_enabled: "\"Besteci medya optimizasyonu görüntüsü etkin\" etkinleştirilmişse şerit görüntü meta verilerini devre dışı bırakamazsınız. Şerit görüntü meta verilerini devre dışı bırakmadan önce \"besteci medya optimizasyonu görüntüsü etkin\" seçeneğini devre dışı bırakın."
- x_summary_large_image_no_svg: "twitter:image meta verileri için kullanılan Twitter özet görüntüleri .svg görüntüsü olamaz."
tl0_and_anonymous_flag: "Anonim kullanıcılar için ya \"site contact email\" ya da \"email address to report illegal content\" sağlanmalıdır."
allow_likes_in_anonymous_mode_without_anonymous_mode_enabled: "Bu ayar öncelikle \"anonim moduna izin ver\" ayarının etkinleştirilmesini gerektiriyor."
conflicting_google_user_id: 'Bu hesabın Google Hesap Kimliği değişti; güvenlik nedeniyle personelin müdahalesi gerekiyor. Lütfen personelle iletişime geçin ve onları
https://meta.discourse.org/t/76575adresine yönlendirin.'
@@ -1774,7 +1771,6 @@ tr_TR:
slow_down_crawler_rate: "slow_down_crawler_user_agents belirtilirse bu oran tüm veri gezginleri için geçerli olur (istekler arasındaki saniye gecikme sayısı)"
content_security_policy: "İçerik Güvenliği Politikasını (CSP) etkinleştirin. CSP, Siteler Arası Komut Dosyası Çalıştırma (XSS) ve veri enjeksiyonu da dâhil olmak üzere belirli saldırı türlerini önlemeye yardımcı olan ek bir güvenlik katmanıdır."
content_security_policy_report_only: "Sadece-Raporla-İçerik-Güvenlik-Politikasını (CSP) Etkinleştir"
- content_security_policy_collect_reports: "CSP ihlal raporu toplamayı /csp_reports adresinde etkinleştir"
content_security_policy_frame_ancestors: "CSP aracılığıyla bu siteyi iframe'lere kimlerin yerleştirebileceğini kısıtlayın. Gömme bölümünde izin verilen sunucuları kontrol edin"
content_security_policy_script_src: "İzin verilen ek komut dosyası kaynakları. Geçerli sunucu ve İTA varsayılan olarak dâhil edilir. İçerik Güvenliği İlkesi ile XSS Saldırılarını Azaltma. (CSP). Diğer sunucu kaynakları, strict-dynamic etkinleştirildiği için yok sayılır."
invalidate_inactive_admin_email_after_days: "Bu kadar gün içinde siteyi ziyaret etmemiş olan yönetici hesaplarının oturum açmadan önce e-posta adreslerini yeniden doğrulamaları gerekir. Devre dışı bırakmak için 0 olarak ayarlayın."
@@ -2091,7 +2087,6 @@ tr_TR:
alternative_reply_by_email_addresses: "Gelen e-posta adreslerini e-posta ile yanıtlamak için alternatif şablonların listesi. Örnek: %%{reply_key}@reply.example.com|replies+%%{reply_key}@example.com"
incoming_email_prefer_html: "Gelen e-postalar için metin yerine HTML kullanın."
strip_incoming_email_lines: "Gelen e-postaların her satırından baştaki ve sondaki boşlukları kaldırın."
- disable_emails: "Discourse'un her türlü e-posta göndermesini engelleyin. Tüm kullanıcılar için e-postaları devre dışı bırakmak için \"evet\"i seçin. Yalnızca personel olmayan kullanıcılar için e-postaları devre dışı bırakmak amacıyla \"personel olmayan\" seçeneğini belirleyin."
strip_images_from_short_emails: "Boyutu 2800 Bayt'tan küçük olan e-postalardaki görüntüleri soyun"
short_email_length: "Bir e-postanın görüntü bastırma için \"kısa\" olarak sınıflandırılacağı maksimum uzunluğu bayt cinsinden tanımlayın. Bir e-postanın boyutu bu ayarı aşmazsa e-postadaki tüm görüntüler (avatarlar ve emoji'ler gibi) çıkarılır."
display_name_on_email_from: "Alanlardan gelen e-postalarda tam adları gösterin"
@@ -2109,6 +2104,7 @@ tr_TR:
mailgun_api_key: "Web kancası mesajlarını doğrulamak için kullanılan Mailgun Gizli API anahtarı."
sendgrid_verification_key: "Web kancası mesajlarını doğrulamak için kullanılan Sendgrid doğrulama anahtarı."
mailjet_webhook_token: "Web kancası yükünü doğrulamak için kullanılan token. Web kancasının \"t\" sorgu parametresi olarak geçirilmelidir, örneğin: https://example.com/webhook/mailjet?t=supersecret"
+ mailpace_webhook_token: "Web kancası yükünü doğrulamak için kullanılan token. Web kancasının \"t\" sorgu parametresi olarak geçirilmelidir, örneğin: https://example.com/webhook/mailpace?t=supersecret"
mandrill_authentication_key: "Web kancası mesajlarını doğrulamak için kullanılan Mandrill kimlik doğrulama anahtarı."
postmark_webhook_token: "Web kancası yükünü doğrulamak için kullanılan token. Web kancasının \"t\" sorgu parametresi olarak geçirilmelidir, örneğin: https://example.com/webhook/postmark?t=supersecret"
sparkpost_webhook_token: "Web kancası yükünü doğrulamak için kullanılan token. Web kancasının \"t\" sorgu parametresi olarak geçirilmelidir, örneğin: https://example.com/webhook/sparkpost?t=supersecret"
@@ -2371,7 +2367,6 @@ tr_TR:
dashboard_hidden_reports: "Belirtilen raporların panodan gizlenmesine izin verin."
dashboard_visible_tabs: "Hangi pano sekmelerinin görünür olacağını seçin."
dashboard_general_tab_activity_metrics: "Genel sekmesinde aktivite metrikleri olarak görüntülenecek raporları seçin."
- gravatar_enabled: "Kullanıcı avatarları için Gravatar hizmetini kullanın. Bu, kullanıcıların avatarları için Gravatar'a geçmesini engeller ancak halihazırda Gravatar kullanan kullanıcıları etkilemez."
gravatar_name: "Gravatar hizmet sağlayıcısının adını belirtin. Bu ad genellikle siteye Gravatar avatarları sağlayan kaynağı tanımlamak için kullanılır."
gravatar_base_url: "Gravatar sağlayıcısının API'sine erişmek için URL'yi belirtin. Bu ayar, e-posta adreslerini avatar görüntülerinin depolandığı Gravatar URL'lerine dönüştürmek için kritik öneme sahiptir."
gravatar_login_url: "Kullanıcıya Gravatar hizmetine giriş yapmasını sağlayan `gravatar_base_url` ögesine göre URL."
@@ -2452,12 +2447,6 @@ tr_TR:
reply_by_email_disabled: "Bu ayarı etkinleştirmeden önce \"e-posta ile yanıtla\" özelliğini etkinleştirmeniz gerekiyor."
discourse_connect_url_is_empty: "Bu ayarı etkinleştirmeden önce bir \"discourse bağlantı URL'si\" ayarlamanız gerekiyor."
enable_local_logins_disabled: "Bu ayarı etkinleştirmeden önce \"yerel girişleri etkinleştir\" seçeneğini etkinleştirmeniz gerekiyor."
- min_username_length_exists: "Minimum kullanıcı adı uzunluğunu en kısa kullanıcı adının üzerinde ayarlayamazsınız (%{username})."
- min_group_name_length_exists: "En kısa grup adının (%{group_name}) üstünde minimum kullanıcı adı uzunluğunu ayarlayamazsınız."
- min_username_length_range: "Minimum değeri maksimum değerin üzerinde ayarlayamazsınız."
- max_username_length_exists: "Maksimum kullanıcı adı uzunluğunu en uzun kullanıcı adının (%{username}) altında ayarlayamazsınız."
- max_group_name_length_exists: "Kullanıcı adı uzunluğunu en uzun grup adının (%{group_name}) altına ayarlayamazsınız."
- max_username_length_range: "Maksimum değeri minimum değerin altında ayarlayamazsınız."
invalid_hex_value: "Renk değerleri 6 haneli onaltılık kodlar olmalıdır."
empty_selectable_avatars: "Bu ayarı etkinleştirmeden önce en az iki seçilebilir avatar yüklemeniz gerekiyor."
category_search_priority:
@@ -2516,7 +2505,6 @@ tr_TR:
exclude_tag: "Belirli bir etikete sahip konuları hariç tutun"
exclude_tags_any: "Belirtilen etiketlerden herhangi birine sahip konuları hariç tutun (virgülle ayrılmış)"
exclude_tags_all: "Belirtilen etiketlerin tümüne sahip konuları hariç tutun (artı ile ayrılmış)"
- tags_alias: "\"tag:\" filtresi için takma ad"
tag_group: "Belirli bir etiket grubundan etiketlere sahip konuları gösterin"
exclude_tag_group: "Belirli bir etiket grubundan etiketli konuları hariç tutun"
activity_before: "Belirli bir tarihten önceki son aktiviteye sahip konuları gösterin (YYYY-AA-GG veya günler önce)"
@@ -4864,8 +4852,6 @@ tr_TR:
deprecation_error_label: Javascript kullanımdan kaldırmaları hata oluştursun
enter: "Güvenli Moda Gir"
must_select: "Güvenli moda girmek için en az bir seçenek belirlemelisiniz."
- dev_mode:
- enter: "Enter"
wizard:
title: "Discourse Kurulumu"
step:
@@ -5123,8 +5109,6 @@ tr_TR:
approve_and_unhide:
title: "Evet"
complete: "Gönderi onaylandı ve gizlemesi kaldırıldı"
- no_action_post:
- title: "Eylem yok"
delete_post:
title: "Gönderiyi sil"
complete: "Gönderi silindi"
@@ -5133,8 +5117,6 @@ tr_TR:
restore_post:
title: "Gönderiyi geri yükle"
complete: "Gönderi geri yüklendi"
- no_action_user:
- title: "Eylem yok"
silence_user:
title: "Kullanıcıyı sustur"
complete: "Kullanıcı susturuldu"
diff --git a/config/locales/server.ug.yml b/config/locales/server.ug.yml
index afcb0d7a51572..dfd0e6688e219 100644
--- a/config/locales/server.ug.yml
+++ b/config/locales/server.ug.yml
@@ -60,8 +60,6 @@ ug:
inline_oneboxer:
topic_page_title_post_number: "#%{post_number}"
topic_page_title_post_number_by_user: "#%{post_number} / %{username}"
- too_many_urls: "بىر ئىلتىماستا 10 دىن ئارتۇق تور ئادرېسىنى كۆرۈنۈش قۇتىسىنىڭ بىر قۇرىغا سىغدۇرغىلى بولمايدۇ."
- concurrency_not_allowed: "بىرلا ۋاقىتتا بىر قانچە ئىچكى onebox ئىلتىماس قىلىشقا يول قويۇلمايدۇ. بىر قېتىمدا بىر ئىلتىماس يوللاڭ."
components:
enabled_filter: "قوزغىتىلدى"
disabled_filter: "چەكلەندى"
@@ -344,7 +342,6 @@ ug:
slow_down_crawler_user_agent_must_be_at_least_3_characters: "تاسادىپىي قانۇنلۇق ئىشلەتكۈچىنى سۈرئىتىنى چەكلەشنىڭ ئالدىنى ئېلىش ئۈچۈن ئىشلەتكۈچى ۋاكالەتچىنىڭ ئۇزۇنلۇقى كەم دېگەندە 3 ھەرپ بولۇشى كېرەك."
slow_down_crawler_user_agent_cannot_be_popular_browsers: "تۆۋەندىكى ھەر قانداق قىممەتنى تەڭشەككە قوشالمايسىز: %{values}."
strip_image_metadata_cannot_be_disabled_if_composer_media_optimization_image_enabled: "ئەگەر «كومپوزىتور ۋاسىتە ئەلالاشتۇرۇش سۈرىتى قوزغىتىلغان» نى قوزغاتقان بولسا، بەلگە سۈرەت مېتا سانلىق مەلۇماتىنى چەكلىيەلمەيسىز. بەلگە سۈرەت مېتا سانلىق مەلۇماتىنى چەكلەشتىن بۇرۇن «كومپوزىتور ۋاسىتە ئەلالاشتۇرۇش سۈرىتى قوزغىتىلغان» نى چەكلەڭ."
- x_summary_large_image_no_svg: "twitter:image مېتا سانلىق مەلۇماتىغا ئىشلىتىلىدىغان Twitter خۇلاسە سۈرەت .sage سۈرەت بولسا بولمايدۇ."
tl0_and_anonymous_flag: "چوقۇم «تور بېكەت ئالاقە ئېلخېتى» ياكى «قانۇنسىز مەزمۇننى پاش قىلىدىغان ئېلخەت ئادرېسى» نى نامسىز ئىشلەتكۈچىلەرگە تەمىنلەش كېرەك."
allow_likes_in_anonymous_mode_without_anonymous_mode_enabled: "بۇ تەڭشەك ئالدى بىلەن «نامسىز ھالەتكە يول قوي» تەڭشىكىنى قوزغىتىشنى تەلەپ قىلىدۇ."
conflicting_google_user_id: 'بۇ ھېساباتنىڭ Google ھېسابات كىملىكى ئۆزگەردى؛ بىخەتەرلىك سەۋەبىدىن باشقۇرغۇچى خادىملار مۇداخىلە قىلىشى كېرەك. باشقۇرغۇچى خادىملار بىلەن ئالاقىلىشىپ، ئۇلارنى
https://meta.discourse.org/t/76575 نىشانلاڭ.'
@@ -1774,7 +1771,6 @@ ug:
slow_down_crawler_rate: "ئەگەر slow_down_crawler_user_agents بەلگىلەنگەن بولسا، بۇ نىسبەت بارلىق ئۆمىلىگۈچ (ئىككى قېتىملىق ئىلتىماس ئارىسىدىكى كۈتىدىغان سېكۇنت سانى) لەرگە قوللىنىلىدۇ"
content_security_policy: "مەزمۇن بىخەتەرلىك تۈزۈمى(CSP) قوزغىتىلسا، CSP بىر قوشۇمچە بىخەتەرلىك قەۋىتى بولۇپ، بەزى خىلدىكى يەنى بېكەت ھالقىغان قوليازما (XSS) ۋە سانلىق مەلۇمات ئوكۇلىغا ئوخشاش سانلىق مەلۇمات ھۇجۇملىرىنىڭ ئالدىنى ئالىدۇ."
content_security_policy_report_only: "مەزمۇن بىخەتەرلىك تۈزۈمى (CSP) دوكلاتىنىلا قوزغات"
- content_security_policy_collect_reports: "/ Csp_reports دىكى CSP بەلگىلىمىگە خىلاپلىق قىلىش دوكلاتى توپلاشنى قوزغىتىدۇ"
content_security_policy_frame_ancestors: "كىمنىڭ بۇ تور بېكەتنى CSP ئارقىلىق iframe گە سىڭدۈرەلەيدىغانلىقىنى چەكلەيدۇ. سىڭدۈرۈشتە يول قويۇلىدىغان مۇلازىمېتىرنى تېزگىنلەيدۇ."
content_security_policy_script_src: "يول قويۇش تىزىمىغا قوشۇلغان باشقا قوليازما مەنبەسى. كۆڭۈلدىكى ئەھۋالدا نۆۋەتتىكى مۇلازىمېتىر ۋە CDN نى ئۆز ئىچىگە ئالىدۇ. مەزمۇن بىخەتەرلىك تۈزۈمى (CSP) نى ئىشلىتىش ئارقىلىق XSS ھۇجۇمىنى ئازايتىدۇ ئەگەر strict-dynamic قوزغىتىلغاندا، باشقا مۇلازىمېتىر مەنبەسىگە پەرۋا قىلمايدۇ."
invalidate_inactive_admin_email_after_days: "مۇشۇ كۈن ئىچىدە تور بېكەتنى زىيارەت قىلمىغان باشقۇرغۇچى ھېساباتى تىزىمغا كىرىشتىن ئىلگىرى ئېلخەت ئادرېسىنى قايتا دەلىللىشى كېرەك. 0 گە تەڭشەلسە چەكلىنىدۇ."
@@ -2088,7 +2084,6 @@ ug:
alternative_reply_by_email_addresses: "كەلگەن ئېلخەت ئادرېسى ئارقىلىق جاۋاب قايتۇرىدىغان زاپاس قېلىپ تىزىمى، مەسىلەن: %%{reply_key}@reply.example.com|replies+%%{reply_key}@example.com"
incoming_email_prefer_html: "كەلگەن ئېلخەتتە تېكىستنىڭ ئورنىغا HTML ئىشلىتىلىدۇ."
strip_incoming_email_lines: "كەلگەن ئېلخەتنىڭ ھەر بىر قۇر بېشى ۋە ئاخىرىدىكى بوشلۇقنى چىقىرىۋېتىدۇ."
- disable_emails: "Discourse نىڭ ھەر قانداق ئېلخەت يوللىشىنىڭ ئالدىنى ئالىدۇ. «ھەئە» تاللانسا بارلىق ئىشلەتكۈچىلەرگە ئېلخەتنى چەكلەيدۇ. «باشقۇرغۇچى بولمىغانلار» تالانسا پەقەت باشقۇرغۇچى بولمىغان ئىشلەتكۈچىلەرگىلا ئېلخەتنى چەكلەيدۇ."
strip_images_from_short_emails: "سىغىمى 2800 بايتتىن تۆۋەن بولغان ئېلخەتتىكى سۈرەتنى چىقىرىۋېتىدۇ"
short_email_length: "ئېلخەتنى «قىسقا» دەپ تۈرگە ئايرىپ بايت بىلەن ئىپادىلىنىدىغان ئەڭ چوڭ سۈرەت چوڭلۇقىنى چەكلەشنى بەلگىلەيدۇ. ئەگەر ئېلخەتنىڭ چوڭلۇقى بۇ تەڭشەكتىكى قىممەتتىن ئېشىپ كەتمىسە، ئېلخەتتىكى ھېچقانداق سۈرەت (سىما ۋە چىراي ئىپادىگە ئوخشاش) نىڭ ھەممىسى چىقىرىۋېتىلىدۇ."
display_name_on_email_from: "ئېلخەت يوللىغۇچى بۆلىكىدە تولۇق ئىسمىنى كۆرسىتىدۇ"
@@ -2106,6 +2101,7 @@ ug:
mailgun_api_key: "تور ئىلمىكى ئۇچۇرىنى دەلىللەشكە ئىشلىتىدىغان Mailgun بىخەتەرلىك API ئاچقۇچى."
sendgrid_verification_key: "تور ئىلمىكى ئۇچۇرىنى دەلىللەشكە ئىشلىتىدىغان Sendgrid دەلىللەش ئاچقۇچى."
mailjet_webhook_token: "تور ئىلمىكىنىڭ يۈكىنى دەلىللەشكە ئىشلىتىدىغان پەرمان تاختىسى. ئۇ چوقۇم تور ئىلمىكىنىڭ «t» سۈرۈشتۈرۈشىنىڭ پارامېتىرى بولۇپ يوللىنىدۇ، مەسىلەن: https://example.com/webhook/mailjet?t=supersecret"
+ mailpace_webhook_token: "تور ئىلمىكىنىڭ يۈكىنى دەلىللەشكە ئىشلىتىدىغان پەرمان تاختىسى. ئۇ چوقۇم تور ئىلمىكىنىڭ «t» سۈرۈشتۈرۈشىنىڭ پارامېتىرى بولۇپ يوللىنىدۇ، مەسىلەن: https://example.com/webhook/mailpace?t=supersecret"
mandrill_authentication_key: "تور ئىلمىكى ئۇچۇرىنى دەلىللەشكە ئىشلىتىدىغان Sendgrid سالاھىيەت دەلىللەش ئاچقۇچى."
postmark_webhook_token: "تور ئىلمىكىنىڭ يۈكىنى دەلىللەشكە ئىشلىتىدىغان پەرمان تاختىسى. ئۇ چوقۇم تور ئىلمىكىنىڭ «t» سۈرۈشتۈرۈشىنىڭ پارامېتىرى بولۇپ يوللىنىدۇ، مەسىلەن: https://example.com/webhook/postmark?t=supersecret"
sparkpost_webhook_token: "تور ئىلمىكىنىڭ يۈكىنى دەلىللەشكە ئىشلىتىدىغان پەرمان تاختىسى. ئۇ چوقۇم تور ئىلمىكىنىڭ «t» سۈرۈشتۈرۈشىنىڭ پارامېتىرى بولۇپ يوللىنىدۇ، مەسىلەن: https://example.com/webhook/sparkpost?t=supersecret"
@@ -2441,12 +2437,6 @@ ug:
reply_by_email_disabled: "بۇ تەڭشەكنى قوزغىتىشتىن ئىلگىرى ئالدى بىلەن «ئېلخەتتە جاۋاب قايتۇر» نى قوزغىتىشىڭىز كېرەك."
discourse_connect_url_is_empty: "بۇ تەڭشەكنى قوزغىتىشتىن ئىلگىرى «discourse ئۇلىنىش تور ئادرېسى» نى تەڭشىشىڭىز كېرەك."
enable_local_logins_disabled: "بۇ تەڭشەكنى قوزغىتىشتىن ئىلگىرى ئالدى بىلەن «يەرلىكتە تىزىمغا كىرىشنى قوزغات» نى قوزغىتىشىڭىز كېرەك."
- min_username_length_exists: "ئەڭ قىسقا ئىشلەتكۈچى ئاتى ئۇزۇنلۇقىنى قىسقا ئىشلەتكۈچى ئاتى (%{username}) دىنمۇ قىسقا قىلىپ تەڭشىيەلمەيسىز."
- min_group_name_length_exists: "ئەڭ قىسقا ئىشلەتكۈچى ئاتى ئۇزۇنلۇقىنى قىسقا گۇرۇپپا ئاتى (%{group_name}) دىنمۇ قىسقا قىلىپ تەڭشىيەلمەيسىز."
- min_username_length_range: "ئەڭ كىچىك قىممەتنى ئەڭ چوڭ قىممەتتىن چوڭ قىلىپ تەڭشىيەلمەيسىز."
- max_username_length_exists: "ئەڭ ئۇزۇن ئىشلەتكۈچى ئاتى ئۇزۇنلۇقىنى ئەڭ ئۇزۇن ئىشلەتكۈچى ئاتى (%{username}) دىن قىسقا قىلىپ تەڭشىيەلمەيسىز."
- max_group_name_length_exists: "ئەڭ ئۇزۇن ئىشلەتكۈچى ئاتى ئۇزۇنلۇقىنى ئەڭ ئۇزۇن گۇرۇپپا ئاتى (%{group_name}) دىن قىسقا قىلىپ تەڭشىيەلمەيسىز."
- max_username_length_range: "ئەڭ چوڭ قىممەتنى ئەڭ كىچىك قىممەتتىن كىچىك قىلىپ تەڭشىيەلمەيسىز."
invalid_hex_value: "رەڭ قىممىتى ئون ئالتىلىك سىستېمىدىكى 6 خانىلىق كود بولۇشى كېرەك."
empty_selectable_avatars: "بۇ تەڭشەكنى قوزغىتىشتىن ئىلگىرى ئالدى بىلەن كەم دېگەندە تاللاشچان سىمادىن ئىككىنى يۈكلىشىڭىز كېرەك."
category_search_priority:
@@ -2498,7 +2488,6 @@ ug:
exclude_tag: "مۇئەييەن بەلگە بار تېمىنى ئۆز ئىچىگە ئالمايدۇ"
exclude_tags_any: "بەلگىلەنگەن خالىغان بەلگە (پەش بىلەن ئايرىلغان) بار تېمىنى ئۆز ئىچىگە ئالمايدۇ"
exclude_tags_all: "بەلگىلەنگەن ھەممە بەلگە (قوشۇش بەلگىسى بىلەن ئايرىلغان) بار تېمىنى ئۆز ئىچىگە ئالمايدۇ"
- tags_alias: "«بەلگە:» سۈزگۈچنىڭ باشقا ئىسمى"
tag_group: "بەلگىلەنگەن بەلگە گۇرۇپپىسىدىن بەلگىسى بار تېمىنى كۆرسىتىدۇ"
exclude_tag_group: "بەلگىلەنگەن بەلگە گۇرۇپپىسىدىن بەلگىسى بار تېمىنى چىقىرىۋېتىدۇ"
status_open: "ئوچۇق تېمىنى كۆرسەت (تاقالمىغان ياكى ئارخىپلانمىغان)"
@@ -4675,8 +4664,6 @@ ug:
deprecation_error_label: Javascript ئىشلەتمەسلىك خاتالىقى كەلتۈرۈپ چىقىرىدۇ
enter: "بىخەتەر ھالەتكە كىرىدۇ"
must_select: "بىخەتەر ھالەتكە كىرىشتە كەم دېگەندە تاللاشتىن بىرى تاللىنىدۇ."
- dev_mode:
- enter: "Enter"
wizard:
title: "Discourse تەڭشەك"
step:
@@ -4938,9 +4925,6 @@ ug:
complete: "يازما تەستىقلاندى ۋە ئاشكارىلاندى"
post_actions:
bundle_title: "يازمىغا نېمە ئىش قىلماقچى؟"
- no_action_post:
- title: "تەدبىر قوللانمىغان"
- complete: "يازمىغا ھېچنېمە قىلمايدۇ"
delete_post:
title: "يازما ئۆچۈر"
description: "بۇ يازمىنى ئۆچۈرىدۇ"
@@ -4961,11 +4945,6 @@ ug:
title: "يازما تەھرىر"
description: "بۇ يازمىنىڭ مەزمۇنىنى تەھرىرلەيدۇ"
complete: "يازما تەھرىرلەندى"
- convert_to_pm:
- title: "شەخسىي ئۇچۇرغا ئۆزگەرت"
- description: "بۇ يازمىنى شەخسىي ئۇچۇرغا ئايلاندۇرىدۇ"
- no_action_user:
- title: "تەدبىر قوللانمىغان"
silence_user:
title: "ئىشلەتكۈچىنى ئۈنسىزلە"
complete: "ئىشلەتكۈچى ئۈنسىزلەندى"
diff --git a/config/locales/server.uk.yml b/config/locales/server.uk.yml
index 064a13e03fef9..396af5886cc51 100644
--- a/config/locales/server.uk.yml
+++ b/config/locales/server.uk.yml
@@ -19,7 +19,7 @@ uk:
calendar_ics: "%Y%m%dT%H%M%SZ"
date:
month_names:
- - null
+ -
- Січень
- Лютий
- Березень
@@ -60,8 +60,8 @@ uk:
inline_oneboxer:
topic_page_title_post_number: "#%{post_number}"
topic_page_title_post_number_by_user: "#%{post_number} від %{username}"
- too_many_urls: "Неможливо вставити більше 10 URL-адрес в один запит."
- concurrency_not_allowed: "Одночасні запити inline-oneboxing заборонені. Будь ласка, надсилайте по одному запиту."
+ too_many_urls: "Неможливо конвертувати більше 10 URL-адрес у вбудовані OneBox за один запит."
+ concurrency_not_allowed: "Одночасні запити на перетворення URL-адрес у вбудовані OneBox не дозволені. Надсилайте по одному запиту за раз."
components:
enabled_filter: "Включено"
disabled_filter: "Вимкнено"
@@ -401,7 +401,7 @@ uk:
slow_down_crawler_user_agent_must_be_at_least_3_characters: "Значення «User agent» мають містити щонайменше 3 символи, щоб уникнути обмеження швидкості сканування."
slow_down_crawler_user_agent_cannot_be_popular_browsers: "Ви не можете додати жодного з наведених нижче значень до параметра: %{values}."
strip_image_metadata_cannot_be_disabled_if_composer_media_optimization_image_enabled: "Ви не можете вимкнути видалення метаданих зображення, якщо ввімкнено оптимізацію зображення для редактора на боці клієнта. Вимкніть 'composer media optimization image enabled', перш ніж вимикати метадані зображення."
- x_summary_large_image_no_svg: "Зображення для Twitter, що використовуються для twitter:image metadata не може бути у форматі .svg."
+ x_summary_large_image_no_svg: "Зображення зведення X, що використовуються для метаданих twitter:image, не можуть бути зображеннями .svg."
tl0_and_anonymous_flag: "Для анонімних користувачів необхідно вказати або «контактну електронну адресу сайту», або «електронну адресу для повідомлення про незаконний вміст»."
allow_likes_in_anonymous_mode_without_anonymous_mode_enabled: "Для цього параметра потрібно спочатку увімкнути параметр «дозволити анонімний режим»."
conflicting_google_user_id: 'Ідентифікатор облікового запису Google для цього облікового запису змінився; потрібне втручання команди обслуговування через міркування безпеки. Будь ласка, звʼяжіться з командою обслуговування і вкажіть на
https://meta.discourse.org/t/76575'
@@ -1960,7 +1960,6 @@ uk:
llms_txt: "Завантажте текстовий файл, який буде відображатися за адресою /llms.txt для сканерів LLM. Див. llmstxt.org для отримання додаткової інформації."
content_security_policy: "Увімкнути політику безпеки вмісту (CSP). CSP - це додатковий шар безпеки, який допомагає запобігти деяким типам атак, в тому числі Cross Site Scripting (XSS) та під час введення даних."
content_security_policy_report_only: "Увімкнути політику безпеки вмісту, лише звіт (CSP)"
- content_security_policy_collect_reports: "Увімкнути збір звітів про порушення CSP на /csp_reports"
content_security_policy_frame_ancestors: "Обмежити за допомогою CSP, хто може вбудувати цей сайт в iframes. Керування дозволеними хостами у Вбудовування"
content_security_policy_script_src: "Додаткові дозволені джерела скриптів. Поточний хост і CDN включено за замовчуванням. Див. статтю Запобігання XSS-атакам за допомогою політики безпеки вмісту. (CSP). Джерела інших хостів ігноруються, оскільки увімкнено строгий динамічний режим."
invalidate_inactive_admin_email_after_days: "Облікові записи адміністраторів, які не відвідували сайт протягом цієї кількості днів, потрібно буде повторно підтвердити свою електронну адресу пошти перед входом у систему. Встановіть 0, щоб вимкнути."
@@ -2046,7 +2045,7 @@ uk:
enable_local_logins_via_email: "Дозвольте користувачам запитувати посилання для входу в один клік, яке буде надіслано їм електронною поштою."
allow_new_registrations: "Дозволити реєстрацію нових користувачів. Зніміть цей прапорець, щоб ніхто не міг створити новий обліковий запис."
enable_signup_cta: "Показувати сповіщення анонімним користувачам, що повертаються, із проханням зареєструвати обліковий запис."
- enable_discourse_id: "Увімкніть автентифікацію за допомогою Discourse ID, служби єдиного входу, яка дозволяє користувачам входити на кілька сайтів Discourse за допомогою одного облікового запису. Поширені постачальники соціальних мереж для входу, такі як Google, Facebook, Apple та Github, підтримуються без додаткового налаштування. Див. id.discourse.com для отримання додаткової інформації."
+ enable_discourse_id: "Увімкніть автентифікацію за допомогою Discourse ID, служби єдиного входу, яка дозволяє користувачам входити на кілька сайтів Discourse за допомогою одного облікового запису. Поширені постачальники соціальних мереж для входу, такі як Google, Facebook, Apple та GitHub, підтримуються без додаткового налаштування. Див. id.discourse.com для отримання додаткової інформації."
enable_google_oauth2_logins: "Увімкніть автентифікацію Google Oauth2. Це метод автентифікації, який зараз підтримує Google. Потрібен ключ і секрет. Див. Налаштування входу Google для Discourse."
google_oauth2_client_id: "Унікальний ідентифікатор клієнта, наданий вашою програмою Google, який використовується для процесу автентифікації."
google_oauth2_client_secret: "Клієнтський секрет вашого застосунку Google."
@@ -2289,7 +2288,7 @@ uk:
alternative_reply_by_email_addresses: "Список альтернативних шаблонів для відповіді, який застосовується на основі вхідних адрес електронної пошти. Наприклад: %%{reply_key}@reply.example.com|replies+%%{reply_key}@example.com"
incoming_email_prefer_html: "Використовуйте HTML замість звичайного тексту для вхідної електронної пошти."
strip_incoming_email_lines: "Видаляти проміжні пробіли та пробіли з кожного рядка вхідних електронних листів."
- disable_emails: "Заборонити Discourse надсилати будь-які електронні листи. Виберіть «так», щоб вимкнути надсилання електронних листів для всіх користувачів. Виберіть «не команда обслуговування», щоб вимкнути електронні листи лише для звичайних користувачів."
+ disable_emails: "Заборонити Discourse надсилати будь-які електронні листи. Виберіть «так», щоб вимкнути вихідні електронні листи для всіх користувачів. Виберіть «не для співробітників», щоб вимкнути електронні листи лише для користувачів, які не є співробітниками."
allow_email_invites: "Якщо вимкнено, користувачі не зможуть надсилати електронні листи із запрошеннями через Discourse."
strip_images_from_short_emails: "Видаляти зображення з електронних листів розміром менше 2800 байт"
short_email_length: "Визначте максимальну довжину листа в байтах, який буде класифіковано як \"короткий\" для придушення зображень. Якщо розмір листа не перевищує цей параметр, будь-які зображення (наприклад, аватарки та емодзі) в ньому будуть вилучені."
@@ -2308,6 +2307,7 @@ uk:
mailgun_api_key: "Ключ API Mailgun Secret, який використовується для перевірки повідомлень webhook."
sendgrid_verification_key: "Ключ перевірки Sendgrid, який використовується для перевірки повідомлень webhook."
mailjet_webhook_token: "Маркер, який використовується для перевірки корисного навантаження вебхуку. Його потрібно передати як параметр запиту «t» вебхука, наприклад: https://example.com/webhook/mailjet?t=supersecret"
+ mailpace_webhook_token: "Маркер, який використовується для перевірки корисного навантаження вебхуку. Його потрібно передати як параметр запиту «t» вебхуку, наприклад: https://example.com/webhook/mailpace?t=supersecret"
mandrill_authentication_key: "Ключ автентифікації Mandrill, який використовується для перевірки повідомлень webhook."
postmark_webhook_token: "Маркер, який використовується для перевірки корисного навантаження вебхуку. Його потрібно передати як параметр запиту «t» вебхуку, наприклад: https://example.com/webhook/postmark?t=supersecret"
sparkpost_webhook_token: "Маркер, який використовується для перевірки корисного навантаження вебхуку. Його потрібно передати як параметр запиту «t» вебхуку, наприклад: https://example.com/webhook/sparkpost?t=supersecret"
@@ -2580,7 +2580,6 @@ uk:
dashboard_hidden_reports: "Дозволити приховати вказані звіти з панелі інструментів."
dashboard_visible_tabs: "Виберіть, які вкладки інформаційної панелі будуть видимі."
dashboard_general_tab_activity_metrics: "Виберіть звіти, які показуватимуться як показники активності на загальній вкладці."
- gravatar_enabled: "Використовувати сервіс Gravatar для аватарок користувачів. Це не дозволить користувачам переключитися на Gravatar для своїх аватарок, але не вплине на користувачів, які вже використовують його."
gravatar_name: "Вкажіть назву постачальника послуг Gravatar. Ця назва зазвичай використовується для ідентифікації джерела, яке надає аватари Gravatar на сайт."
gravatar_base_url: "Вкажіть URL-адресу для доступу до API постачальника Gravatar. Цей параметр є критичним для перетворення адрес електронної пошти на URL-адреси Gravatar, де зберігаються зображення аватарів."
gravatar_login_url: "URL-адреса відносно `gravatar_base_url`, яка надає користувачеві можливість входу до служби Gravatar."
@@ -2635,6 +2634,7 @@ uk:
fake_upcoming_change: "Це фальшива майбутня зміна для тестових цілей. Немає потреби перекладати цей рядок."
floating_dismiss_topics_on_mobile: "Відображає плаваючу кнопку «Закрити...» на мобільному пристрої для списку тем для легшого доступу та звільнення місця у верхній частині списку тем."
rename_faq_to_guidelines: "Ця зміна перейменовує сторінку поширених запитань на «Правила». Сторінка поширених запитань все ще буде доступна за адресою /faq. Налаштування «faq url» працює як і раніше."
+ experimental_tag_settings_page: "Увімкнути окрему сторінку налаштувань для тегів за адресою /tag/:slug/:id/edit."
enable_simplified_category_creation: "Забезпечує спрощений процес створення категорій з меншою кількістю опцій та зрозумілішим інтерфейсом."
enable_custom_splash_screen: "Дозволяє налаштувати заставку завантаження за допомогою власного зображення SVG. Завантажте зображення за допомогою налаштування «зображення заставки». Попередження: це може негативно вплинути на оцінки LCP та індексацію Google."
modernize_foundation_theme: "Ця зміна запроваджує проектні перетворення на тему Foundation на Discourse."
@@ -2688,12 +2688,6 @@ uk:
reply_by_email_disabled: "Перш ніж активувати це налаштування, потрібно спочатку увімкнути 'відповідь електронною поштою'."
discourse_connect_url_is_empty: "Ви повинні встановити 'discourse connect url' перед увімкненням цього параметра."
enable_local_logins_disabled: "Перш ніж активувати цей параметр, спочатку потрібно ввімкнути функцію 'enable local logins'."
- min_username_length_exists: "Ви не можете встановити мінімальну довжину імені користувача менше найкоротшого імені користувача (%{username})."
- min_group_name_length_exists: "Ви не можете встановити мінімальну довжину імені користувача більшою найкоротшого імені групи (%{group_name})."
- min_username_length_range: "Ви не можете встановити мінімум вище максимуму."
- max_username_length_exists: "Ви не можете встановити максимальну довжину імені користувача нижче найдовшого імені користувача (%{username})."
- max_group_name_length_exists: "Ви не можете встановити максимальну довжину імені користувача менше найдовшої назви групи (%{group_name})."
- max_username_length_range: "Ви не можете встановити максимум нижче мінімуму."
invalid_hex_value: "Значення кольорів мають бути шестизначними шістнадцятковими hex кодами."
empty_selectable_avatars: "Ви повинні спочатку завантажити принаймні два доступні для вибору аватари, перш ніж увімкнути цей параметр."
category_search_priority:
@@ -2758,7 +2752,6 @@ uk:
exclude_tag: "Виключити теми з певним тегом"
exclude_tags_any: "Виключити теми з будь-яким із зазначених тегів (розділені комами)"
exclude_tags_all: "Виключити теми з усіма вказаними тегами (розділені символом плюс)"
- tags_alias: "Псевдонім для фільтра 'tag:'"
tag_group: "Показати теми з тегами вибраної групи тегів"
exclude_tag_group: "Виключити теми з тегами зі певної групи тегів"
activity_before: "Показати теми з останньою активністю до дати (YYYY-MM-DD або днів тому)"
@@ -5279,7 +5272,7 @@ uk:
dev_mode:
title: "Режим розробника"
enable_rack_mini_profiler: "Дозволити Rack Mini Profiler зберігати зміни сеансу протягом 1 години"
- enter: "Enter"
+ enter: "Увійти в режим розробника"
wizard:
title: "Налаштування Discourse"
step:
@@ -5581,10 +5574,6 @@ uk:
complete: "Публікація схвалена та розблокована"
post_actions:
bundle_title: "Що ви хочете зробити з публікацією?"
- no_action_post:
- title: "Немає дій"
- description: "Не вживати жодних дій щодо публікації"
- complete: "Жодних дій щодо публікації не вжито"
delete_post:
title: "Видалити повідомлення"
description: "Видалити цей допис"
@@ -5605,16 +5594,8 @@ uk:
title: "Редагувати публікацію"
description: "Редагувати вміст цієї публікації"
complete: "Допис відредаговано"
- convert_to_pm:
- title: "Перетворити на ПП"
- description: "Перетворити цей пост у особисте повідомлення"
- complete: "Публікацію перетворено на особисте повідомлення"
user_actions:
bundle_title: "Що ви хочете зробити з користувачем?"
- no_action_user:
- title: "Немає дій"
- description: "Не вживати жодних заходів проти користувача"
- complete: "Жодних заходів щодо користувача не вжито"
silence_user:
title: "Заблокувати користувача"
description: "Заборонити користувачеві публікувати повідомлення"
diff --git a/config/locales/server.ur.yml b/config/locales/server.ur.yml
index 3a42137502ab3..b0440ee173a83 100644
--- a/config/locales/server.ur.yml
+++ b/config/locales/server.ur.yml
@@ -57,8 +57,6 @@ ur:
inline_oneboxer:
topic_page_title_post_number: "#%{post_number}"
topic_page_title_post_number_by_user: "%{username} کی طرف سے #%{post_number}"
- too_many_urls: "ایک درخواست میں 10 سے زیادہ یو آر ایل ون باکس کو ان لائن نہیں کر سکتے۔"
- concurrency_not_allowed: "ایک ساتھ ان لائن ون باکسنگ کی درخواستوں کی اجازت نہیں ہے۔ براہ کرم ایک وقت میں ایک درخواست بھیجیں۔"
components:
enabled_filter: "فعال"
disabled_filter: "غیر فعال"
@@ -1457,7 +1455,6 @@ ur:
allowed_internal_hosts: "اندرونی ہَوسٹس کی فہرست جو ڈِسکَورس محفوظ طریقے سے وَن باکس اور دیگر مقاصد کیلئے کرال کر سکتا ہے"
allowed_crawler_user_agents: "وَیب کرالرز کے صارف ایجنٹوں جن کو سائٹ تک رسائی کی اجازت دی جانی چاہیئے۔ انتباہ! اِس ترتیب کو فعال کرنے سے وہ تمام کرالرز جو یہاں فہرست کردہ نہیں ہیں رد کر دہے جائیں گے!"
slow_down_crawler_rate: "اگر slow_down_crawler_user_agents کی وضاحت کی گئی ہے تو یہ شرح تمام کرالرز پر لاگو ہوگی (درخواستوں کے درمیان سیکنڈوں کی تاخیر)"
- content_security_policy_collect_reports: "سی ایس پی کی خلاف ورزی کی رپورٹ کو /csp_reports پر جمع کرنے کو فعال کریں"
invalidate_inactive_admin_email_after_days: "ایڈمن اکاؤنٹس جنہوں نے دنوں کی اتنی تعداد میں سائٹ کا دورہ نہیں کیا، اُن کو لاگ اِن کرنے سے پہلے اپنے ایمیل ایڈریس کی دوبارہ توثیق کرنے کی ضرورت ہوگی۔ غیر فعال کرنے کیلئے 0 پر سَیٹ کریں۔"
top_menu: "اس بات کا تعین کریں کہ ہوم پیج نیویگیشن میں کون سے اشیاء، اور کس ترتیب میں نظر آئیں۔"
share_links: "اِس بات کا تعین کریں کہ شیئر ڈائیلاگ پر کونسی، اور کس ترتیب کے ساتھ اشیاء ظاہر ہوں۔"
@@ -1692,7 +1689,6 @@ ur:
alternative_reply_by_email_addresses: "جواب بذریعہ ای میل کے آنے والا ای میل ایڈریس کیلئے متبادل ٹیمپلیٹس، مثال: %%{reply_key}@reply.example.com|replies+%%{reply_key}@example.com"
incoming_email_prefer_html: "آنے والے ای میل کیلئے ٹیکسٹ کے بجائے HTML کا استعمال کریں۔"
strip_incoming_email_lines: "آنے والی ای میلز کی ہر سطر سے آگے اور پیچھے آنی والی خالی جگہیں ہٹا دیں۔"
- disable_emails: "ڈِسکورس کو کسی بھی قسم کے ای میل بھیجنے سے روکیں۔ تمام صارفین کیلئے ای میلز غیر فعال کرنے کیلئے 'ہاں' منتخب کریں۔ صرف غیر سٹاف صارفین کیلئے ای میلز غیر فعال کرنے کیلئے 'غیر سٹاف' کا انتخاب کریں۔"
strip_images_from_short_emails: "2800 بائٹس سے کم سائز والے ای میلز سے تصاویر ہٹا دیں"
display_name_on_email_from: "ای میل کی \"سے\" فیلڈ پر مکمل نام دکھائیں"
unsubscribe_via_email: "صارفین کو ای میل کے موضوع یا متن میں 'غیر سَبسکرائب' کا لِنک بھیج کر ای میلز سے غیر سَبسکرائب ہو جانے کی اجازت دیں"
@@ -1884,10 +1880,6 @@ ur:
staged_users_disabled: "اس ترتیب کو فعال کرنے سے پہلے آپ کا 'عارضی اراکین' فعال کرنا ضروری ہے۔"
reply_by_email_disabled: "اِس ترتیب کو فعال کرنے سے پہلے آپ کا 'جواب بذریعہ ای میل' فعال کرنا ضروری ہے۔"
enable_local_logins_disabled: "اِس ترتیب کو فعال کرنے سے پہلے آپ کا 'مقامی لاگ اِن' فعال کرنا ضروری ہے۔"
- min_username_length_exists: "آپ اسمِ صارف کی کم از کم لمبائی، سب سے مختصر صارف نام کی لمبائی سے کم مقرر نہیں کرسکتے (%{username})۔"
- min_username_length_range: "آپ کم از کم، زیادہ سے زیادہ سے اوپر مقرر نہیں کرسکتے۔"
- max_username_length_exists: "آپ اسمِ صارف کی زیادہ سے زیادہ لمبائی، سب سے طویل صارف نام کی لمبائی سے کم مقرر نہیں کرسکتے (%{username})۔"
- max_username_length_range: "آپ زیادہ سے زیادہ، کم از کم سے نیچے مقرر نہیں کرسکتے۔"
invalid_hex_value: "رنگ اقدار کا 6-عددی ہیکسا ڈَیسیمل کوڈ ہونا ضروری ہے۔"
allowed_unicode_usernames:
regex_invalid: "رَیگولر اَیکسپرَیشَ غلط ہے: %{error}"
@@ -3559,8 +3551,6 @@ ur:
deprecation_error_description: "آنے والے ڈسکورس اپ ڈیٹس کے ساتھ مطابقت کی جانچ کرنے کے لیے، آپ جاوا اسکرپٹ کی فرسودگی کو ایک خرابی پیدا کر سکتے ہیں:"
enter: "سَیف مَوڈ میں داخل ہوں"
must_select: "سَیف مَوڈ میں داخل ہونے کیلئے آپ کا کم از کم ایک آپشن منتخب کرنا ضروری ہے۔"
- dev_mode:
- enter: "اَینٹر"
wizard:
title: "ڈِسکورس سَیٹ اَپ"
step:
@@ -3699,13 +3689,9 @@ ur:
title: "جی ہاں"
approve_and_unhide:
title: "جی ہاں"
- no_action_post:
- title: "کوئی کارروائی نہیں"
delete_post:
title: "پوسٹ کو حذف"
complete: "دھاگہ مٹا دیا"
- no_action_user:
- title: "کوئی کارروائی نہیں"
delete_user:
complete: "صارف مٹادیا گیا"
reason: "بذریعہ نظر ثانی قطار کے حذف کر دیا گیا"
diff --git a/config/locales/server.vi.yml b/config/locales/server.vi.yml
index 923e8f523dd33..b6fc8cbec310a 100644
--- a/config/locales/server.vi.yml
+++ b/config/locales/server.vi.yml
@@ -189,7 +189,6 @@ vi:
cors_origins_should_not_have_trailing_slash: "Bạn không nên thêm dấu gạch chéo (/) vào nguồn gốc CORS."
slow_down_crawler_user_agent_cannot_be_popular_browsers: "Bạn không thể thêm bất kỳ giá trị nào sau đây vào cài đặt: %{values}."
strip_image_metadata_cannot_be_disabled_if_composer_media_optimization_image_enabled: "Bạn không thể tắt siêu dữ liệu hình ảnh dải nếu bật 'hình ảnh tối ưu hóa phương tiện tổng hợp' được bật. Tắt 'đã bật hình ảnh tối ưu hóa phương tiện tổng hợp' trước khi tắt siêu dữ liệu hình ảnh dải."
- x_summary_large_image_no_svg: "Hình ảnh tóm tắt trên Twitter được sử dụng cho twitter: siêu dữ liệu hình ảnh không được là hình ảnh .svg."
conflicting_google_user_id: 'ID Tài khoản Google cho tài khoản này đã thay đổi; cần có sự can thiệp của nhân viên vì lý do an ninh. Vui lòng liên hệ với nhân viên và chỉ họ đến
https://meta.discourse.org/t/76575'
onebox:
invalid_address: "Xin lỗi, chúng tôi không thể tạo bản xem trước cho trang web này vì không thể tìm thấy máy chủ %{hostname}. Thay vì xem trước, chỉ một liên kết sẽ xuất hiện trong tút của bạn :cry:"
@@ -1354,8 +1353,6 @@ vi:
pop3_polling_authentication_failed: "Chứng thực POP3 thất bại, xin hãy kiểm tra lại thông tin."
reply_by_email_address_is_empty: "Bạn phải thiết lập 'reply by email address' trước khi kích hoạt trả lời bằng email."
user_locale_not_enabled: "Bạn phải bật 'allow user locale' trước khi kích hoạt thiết lập này."
- min_username_length_range: "Bạn không thiết lập giá trị nhỏ nhất lớn hơn giá trị lớn nhất"
- max_username_length_range: "Bạn không thể thiết lập số tối đa nhỏ hơn số tối thiểu"
search:
within_post: "#%{post_number} bởi %{username}"
types:
@@ -1379,7 +1376,6 @@ vi:
exclude_tag: "Loại trừ chủ đề chứa thẻ cụ thể"
exclude_tags_any: "Loại trừ chủ đề chứa bất kỳ thẻ cụ thể (phân cách bằng dấu phẩy)"
exclude_tags_all: "Loại trừ chủ đề có chứa tất cả thẻ cụ thể (phân cách bằng dấu cộng)"
- tags_alias: "Tên gọi khác cho bộ lọc 'tag:'"
tag_group: "Hiển thị chủ đề chứa thẻ từ một nhóm thẻ cụ thể"
exclude_tag_group: "Loại trừ chủ đề chứa thẻ từ một nhóm thẻ cụ thể"
activity_before: "Hiển thị chủ đề có hoạt động cuối cùng trước một ngày cụ thể (YYYY-MM-DD hoặc số ngày trước)"
@@ -2377,8 +2373,6 @@ vi:
button: "Đăng ký"
resend_email:
title: "Gửi lại email kích hoạt"
- dev_mode:
- enter: "Nhập"
wizard:
step:
setup:
@@ -2488,12 +2482,8 @@ vi:
title: "Đồng ý"
approve_and_unhide:
title: "Đồng ý"
- no_action_post:
- title: "Không có hành động"
delete_post:
complete: "Tút đã bị xóa"
- no_action_user:
- title: "Không có hành động"
delete_user:
complete: "Người dùng đã bị xóa"
discord:
diff --git a/config/locales/server.zh_CN.yml b/config/locales/server.zh_CN.yml
index 31456beee3c18..feb599ce0cdef 100644
--- a/config/locales/server.zh_CN.yml
+++ b/config/locales/server.zh_CN.yml
@@ -19,7 +19,7 @@ zh_CN:
calendar_ics: "%Y%m%dT%H%M%SZ"
date:
month_names:
- -
+ - null
- 1 月
- 2 月
- 3 月
@@ -60,8 +60,8 @@ zh_CN:
inline_oneboxer:
topic_page_title_post_number: "#%{post_number}"
topic_page_title_post_number_by_user: "#%{post_number},来自 %{username}"
- too_many_urls: "无法在单个请求中内联超过 10 个 URL。"
- concurrency_not_allowed: "不允许并发内嵌请求。请一次发送一个请求。"
+ too_many_urls: "单次请求中无法将超过 10 个 URL 转换为内联单选框。"
+ concurrency_not_allowed: "不允许同时请求将 URL 转换为内联单选框。请一次只发送一个请求。"
components:
enabled_filter: "已启用"
disabled_filter: "已禁用"
@@ -141,8 +141,8 @@ zh_CN:
invalid_type: "%{type}不是有效类型"
humanize_not_valid_string_value: "JSON 指针 '%{property_json_pointer}' 处的属性必须是字符串。"
not_valid_string_value: "必须是字符串"
- humanize_not_valid_datetime_value: "JSON 指针 “%{property_json_pointer}” 处的属性必须是有效的日期时间。"
- not_valid_datetime_value: "必须是有效的日期时间"
+ humanize_not_valid_datetime_value: "JSON 指针 “%{property_json_pointer}” 处的属性必须为有效的日期时间。"
+ not_valid_datetime_value: "必须为有效的日期时间"
humanize_not_valid_integer_value: "JSON 指针 '%{property_json_pointer}' 处的属性必须是整数。"
not_valid_integer_value: "必须是整数"
humanize_not_valid_float_value: "JSON 指针 '%{property_json_pointer}' 处的属性必须是浮点数。"
@@ -240,6 +240,7 @@ zh_CN:
errors: &errors
format: ! "%{attribute} %{message}"
format_with_full_message: "%{attribute}:%{message}"
+ diff_too_complex: "差异过于复杂,无法安全计算。请尝试进行较小的修改。"
messages:
invalid_locale: "%{invalid_locale} 不是一个有效的语言区域"
too_long_validation:
@@ -320,7 +321,7 @@ zh_CN:
slow_down_crawler_user_agent_must_be_at_least_3_characters: "用户代理的长度必须至少为 3 个字符,以避免意外限制合法用户的速率。"
slow_down_crawler_user_agent_cannot_be_popular_browsers: "您不能将以下任何值添加到设置中:%{values}。"
strip_image_metadata_cannot_be_disabled_if_composer_media_optimization_image_enabled: "如果启用了 'composer media optimization image enabled',则无法禁用带状图片元数据。在禁用带状图片元数据之前,禁用 'composer media optimization image enabled'。"
- x_summary_large_image_no_svg: "用于 twitter:image 元数据的 Twitter 摘要图片不能是 .svg 图片。"
+ x_summary_large_image_no_svg: "用于 twitter:image 元数据的 Twitter 总结图片不能是 .svg 图片。"
tl0_and_anonymous_flag: "对于匿名用户,必须提供 'site contact email' 或 'email address to report illegal content'。"
allow_likes_in_anonymous_mode_without_anonymous_mode_enabled: "此设置需要先启用 'allow anonymous mode' 设置。"
conflicting_google_user_id: '此帐户的 Google 帐号 ID 已更改;出于安全原因,需要管理人员干预。请联系管理人员并将他们指向
https://meta.discourse.org/t/76575'
@@ -554,7 +555,7 @@ zh_CN:
other: "一次最多可以统计 %{count} 个电子邮件域"
no_invites_with_discourse_connect: "如果已启用 DiscourseConnect,您只能邀请注册用户"
no_invites_without_local_logins: "如果已启用社交登录,您只能邀请注册用户"
- update_existing_users_required: "此更改影响 %{count} 现有群组成员。必须指定 “update_existing_users” 参数(真或假),以指明是否将新通知默认应用于现有成员。"
+ update_existing_users_required: "此更改影响 %{count} 个现有群组成员。您必须指定 'update_existing_users' 参数(true 或 false),以指明是否将新通知默认设置应用于现有成员。"
default_names:
everyone: "所有人"
admins: "管理员"
@@ -751,7 +752,7 @@ zh_CN:
email_already_used_in_category: "'%{email}' 已被类别 '%{category_name}' 使用。"
description_incomplete: "类别描述帖子至少要有一段。"
description_too_long:
- other: "描述太长(最多 %{count} 个字符)。"
+ other: "描述过长(最多 %{count} 个字符)。"
permission_conflict: "任何被允许访问子类别的组也必须被允许访问父类别。以下群组可以访问子类别之一,但无法访问父类别:%{group_names}。"
disallowed_topic_tags: "此话题包含此类别不允许的标签:%{tags}"
disallowed_tags_generic: "此话题包含禁止的标签。"
@@ -1069,8 +1070,8 @@ zh_CN:
deny: "取消"
read: "读取"
read_write: "读/写"
- logged_in_as: "登录为"
- permissions_header: '这将允许 “%{application_name}”:'
+ logged_in_as: "登录身份"
+ permissions_header: '这将允许“%{application_name}”:'
redirect_warning: "授权会将您重定向到"
instructions: '我们刚刚生成了一个新的用户 API 密钥供您与“%{application_name}”搭配使用,请将以下密钥粘贴到您的应用程序中:'
otp_description: '要允许“%{application_name}”访问此网站吗?'
@@ -1507,13 +1508,13 @@ zh_CN:
no_accounts: "无关联帐户"
discourse_connect: "通过 Discourse Connect 的 SSO"
no_sso_accounts: "没有 SSO 记录的帐户"
- total_users: "活动用户帐户总数"
+ total_users: "活跃用户帐户总数"
description: "显示按登录提供商分组的关联帐户数量。仅在启用社交登录方法时适用。"
dashboard:
problem:
twitter_login: 'X 登录目前似乎无法使用。请在 网站设置中检查凭据。'
group_email_credentials: '群组“%{group_full_name}”的电子邮件凭据存在问题。在解决此问题之前,不会从群组收件箱发送任何电子邮件。%{error}'
- upcoming_change_stable_opted_out: '您的网站已选择退出 "%{upcoming_change}" 即将到来的变更。该变更现已进入 "稳定 "状态,可能很快就会被移除或永久化。请访问"即将发生的更改 "页面,查看有关此更改的详细信息。'
+ upcoming_change_stable_opted_out: '您的网站已选择退出即将推出的更改“%{upcoming_change}”。此更改现已进入“稳定”状态,可能很快就会被移除或设为永久。请访问"即将推出的更改页面,查看有关此更改的详细信息。'
rails_env: "您的服务器正在以%{env}模式运行。"
host_names: "您的 config/database.yml 文件使用的是默认的 localhost 主机名。请将其更新为您的网站的主机名。"
sidekiq: 'Sidekiq 未运行。许多任务(例如发送电子邮件)都是由 Sidekiq 异步执行的。请确保至少一个 Sidekiq 进程正在运行。在此处了解 Sidekiq。'
@@ -1545,7 +1546,7 @@ zh_CN:
category_style_deprecated: "您的 Discourse 目前使用的是过时的类别样式,该样式将在 Discourse 3.2 最终测试版发布前移除。请参阅迁移至单一类别样式网站设置,了解如何保留所选类别样式。"
maxmind_db_configuration: '服务器已被配置为使用 MaxMind 数据库进行反向 IP 查找,但尚未配置有效的 MaxMind 帐户 ID,这可能导致 MaxMind 数据库将来无法下载。请参阅本指南了解更多详情。'
admin_sidebar_deprecation: "旧的管理布局已被替换为新的边栏布局,旧布局将在下一个版本中移除。您现在可以选择配置新的边栏布局。"
- starttls_disabled: "外发电子邮件配置已禁用 STARTTLS。这几乎没有必要。请考虑从您的环境中移除DISCOURSE_SMTP_ENABLE_START_TLS=false
。有关详细信息,请参阅此主题。"
+ starttls_disabled: "外发电子邮件配置已禁用 STARTTLS。这几乎没有必要。考虑从您的环境中移除 DISCOURSE_SMTP_ENABLE_START_TLS=false
。有关详情,请参阅此话题。"
back_from_logster_text: "返回网站"
site_settings:
allow_bulk_invite: "允许通过上传 CSV 文件批量邀请"
@@ -1590,7 +1591,7 @@ zh_CN:
allow_duplicate_topic_titles_category: "如果类别不同,允许有相同或重复标题的话题。必须禁用 allow_duplicate_topic_titles。"
unique_posts_mins: "用户可以再次发布相同内容的帖子前需要等待的分钟数"
educate_until_posts: "当用户开始输入他们的前几 (n) 个新帖子时,在编辑器中显示弹出式新用户教育面板。"
- title: "此站点的名称。所有访客(包括匿名用户)均可见。请注意,更改此标题可能会向 PWA 用户发送提示,要求他们更新或卸载该应用。"
+ title: "此站点的名称。对所有访客(包括匿名用户)可见。请注意,更改此标题可能会向 PWA 用户发送提示,询问他们是更新还是卸载应用。"
site_description: "用一句话描述此网站。对包括匿名用户在内的所有访客可见。"
short_site_description: "几个字的简短描述。对包括匿名用户在内的所有访客可见。"
contact_email: "负责此网站的主要联系人的电子邮件地址,用于重要通知,也会显示在 /about 上。对公共网站上的匿名用户可见。"
@@ -1598,7 +1599,7 @@ zh_CN:
crawl_images: "从远程 URL 检索图片以插入正确的宽度和高度尺寸。"
download_remote_images_to_local: "通过下载将远程(热链接)图片转换为本地图片;即使图片将来从远程网站移除,这也会保留内容。"
download_remote_images_threshold: "将远程图片下载到本地所需的最小磁盘空间(百分比)"
- disabled_image_download_domains: "永远不会从这些网域下载远程图片。"
+ disabled_image_download_domains: "永远不会从这些域下载远程图片。"
block_hotlinked_media: "阻止用户在他们的帖子中引入远程(热链接)媒体。未通过 'download_remote_images_to_local' 下载的远程媒体将被替换为占位符链接。"
block_hotlinked_media_exceptions: "不受 block_hotlinked_media 设置影响的基础 URL 列表。包括协议(例如,https://example.com)。"
editing_grace_period: "发帖后 (n) 秒内,编辑不会在帖子历史记录中创建新版本。"
@@ -1634,10 +1635,12 @@ zh_CN:
max_oneboxes_per_post: "设置单个帖子中可以包含的最大 onebox 数量。onebox 提供了帖子中链接内容的预览。"
facebook_app_access_token: "从您的 Facebook 应用 ID 和密钥生成的令牌。用于生成 Instagram Onebox。"
github_onebox_access_tokens: "GitHub 组织或用户与 GitHub 访问令牌之间的映射,用于为私有仓库、提交、拉取请求、议题和文件内容生成 GitHub onebox。如果没有此映射,将只为公开 GitHub URL 创建 onebox。"
+ reddit_onebox_client_id: "Reddit API OAuth 客户端 ID,用于认证 Reddit onebox。在 reddit.com/prefs/apps 上创建 \"脚本 \"类型的应用程序,以获取凭证。"
+ reddit_onebox_client_secret: "用于已认证 Reddit OneBox 的 Reddit API OAuth 客户端密钥。可在 reddit.com/prefs/apps 创建的“脚本”类型应用下找到。"
logo: "您的网站左上角的徽标图片。使用高度为 120 且宽高比大于 3:1 的宽矩形图片。如果留空,将显示网站标题文本。"
logo_small: "您的网站左上角的小徽标图片,向下滚动后可见。使用 120×120 的方形图片。如果留空,将显示首页标志符号。"
digest_logo: "在您网站的电子邮件总结顶部使用的备用徽标图片。使用宽矩形图片。不要使用 SVG 图片。如果留空,则使用 `logo` 设置中的图片。"
- mobile_logo: "您网站的移动版本上使用的徽标。我们建议使用方形图标以避免标题拥挤,但您可以使用高度为 120 且宽高比大于 3:1 的宽矩形图像。如果留空,将使用徽标设置中的图像。"
+ mobile_logo: "您的站点的移动版本上使用的徽标。我们建议使用方形图标以避免标题拥挤,但您可以使用高度为 120 且宽高比大于 3:1 的宽矩形图片。如果留空,将使用徽标设置中的图片。"
logo_dark: "'logo' 网站设置的深色方案替代选择。"
logo_small_dark: "'logo small' 网站设置的深色方案替代选择。"
mobile_logo_dark: "'mobile logo' 网站设置的深色方案替代选择。"
@@ -1652,8 +1655,8 @@ zh_CN:
email_custom_headers: "自定义邮件头列表"
email_subject: "标准电子邮件的可自定义主题格式。请参阅 https://meta.discourse.org/t/customizing-specific-system-email-templates/88323"
detailed_404: "向用户提供有关他们无法访问特定话题的更多详细信息。注意:这不太安全,因为用户会知道 URL 是否链接到有效话题。"
- enforce_second_factor: "要求用户启用双重身份验证 (2FA),然后才能访问 Discourse 用户界面。此设置不影响 API 或 “DiscourseConnect 提供商” 身份验证。如果启用了 enforce_second_factor_on_external_auth,则用户在设置 2FA 后将无法使用外部身份验证提供商登录。"
- enforce_second_factor_on_external_auth: "要求用户始终使用双重身份验证 (2FA)。启用后,如果用户已启用双重身份验证 (2FA),则将阻止他们使用外部身份验证方法(例如社交登录)登录。禁用后,用户只需在使用用户名和密码登录时确认双重身份验证 (2FA)。另请参阅“enforce_second_factor”设置。"
+ enforce_second_factor: "要求用户启用双重身份验证 (2FA),然后才能访问 Discourse 用户界面。此设置不影响 API 或 'DiscourseConnect provider' 身份验证。如果启用了 enforce_second_factor_on_external_auth,则用户在设置 2FA 后将无法使用外部身份验证提供商登录。"
+ enforce_second_factor_on_external_auth: "要求用户始终使用双重身份验证 (2FA)。启用后,如果用户已启用双重身份验证 (2FA),将阻止他们使用外部身份验证方法(例如社交登录)登录。禁用后,用户只需要在使用用户名和密码登录时确认双重身份验证 (2FA)。另请参阅 `enforce_second_factor` 设置。"
force_https: "强制您的网站仅使用 HTTPS。警告:在您验证 HTTPS 已完全设置并在任何地方都可以正常工作之前,请勿启用此功能!您是否检查过您的 CDN、所有社交登录以及任何外部徽标/依赖项,以确保它们都与 HTTPS 兼容?"
summary_score_threshold: "将帖子包含在“总结此话题”中所需的最低分数"
summary_posts_required: "启用“总结此话题”之前话题中的最少帖子数。对此设置的更改将在一周内追溯应用。"
@@ -1726,10 +1729,9 @@ zh_CN:
blocked_crawler_user_agents: "用户代理字符串中不区分大小写的唯一字词,用于标识不应被允许访问网站的网抓取工具。如果定义了许可名单,则不适用。"
slow_down_crawler_user_agents: '网络爬虫的用户代理应该按照“减慢爬虫速率”设置中的配置进行速率限制。每个值的长度必须至少为 3 个字符。'
slow_down_crawler_rate: "如果指定了 slow_down_crawler_user_agents,则此速率将应用于所有抓取工具(请求之间的延迟秒数)"
- llms_txt: "上传一个文本文件,该文件将通过 /llms.txt 提供给 LLM 爬虫。更多信息请访问 llmstxt.org 。"
+ llms_txt: "上传一个文本文件,该文件将通过 /llms.txt 提供给 LLM 爬虫。有关详情,请参阅 llmstxt.org。"
content_security_policy: "启用内容安全策略 (CSP)。CSP 是一个附加安全层,有助于防止某些类型的攻击,包括跨站脚本 (XSS) 和数据注入。"
content_security_policy_report_only: "启用仅限内容安全策略报告 (CSP)"
- content_security_policy_collect_reports: "在 /csp_reports 启用 CSP 违规报告收集"
content_security_policy_frame_ancestors: "限制谁可以通过 CSP 将此网站嵌入 iframe 中。在嵌入上控制允许的主机。"
content_security_policy_script_src: "额外的允许脚本源。默认包括当前主机和 CDN。请参阅使用内容安全策略 (CSP) 缓解 XSS 攻击。启用 strict-dynamic 后,其他主机源将被忽略。"
invalidate_inactive_admin_email_after_days: "在此天数内未访问网站的管理员帐户将需要在登录前重新验证其电子邮件地址。设置为 0 将禁用。"
@@ -1768,8 +1770,8 @@ zh_CN:
whispers_allowed_groups: "允许指定群组的成员在话题内进行不公开交流。"
hidden_post_visible_groups: "允许这些群组的成员查看隐藏的帖子。管理人员始终可以查看隐藏的帖子。"
allow_index_in_robots_txt: "在 robots.txt 中指定允许网络搜索引擎索引本网站。您可以在此处覆盖 robots.txt。警告:错误配置的规则可能导致网站无法按预期被抓取。"
- blocked_email_domains: "用户不允许注册帐户的电子邮件域列表。 子域自动处理指定域名。不支持通配符 * 和 ? 。例如:mailinator.com"
- allowed_email_domains: "用户必须注册帐户的电子邮件域列表。子域将自动处理指定域名。 Wildcard 符号 * 和 ? 不支持。警告: 电子邮件域名以外的用户将不被允许!"
+ blocked_email_domains: "用户不可以用于注册帐户的电子邮件域列表。将针对指定域自动处理子域。不支持通配符 * 和 ? 。例如:mailinator.com"
+ allowed_email_domains: "用户必须用于注册帐户的电子邮件域列表。将针对指定域自动处理子域。不支持通配符 * 和 ?。警告:使用不在列出的电子邮件域的用户将不被允许!"
normalize_emails: "检查规范化电子邮件是否唯一。规范化电子邮件移除了用户名中的所有点以及 + 和 @ 符号之间的所有内容。"
auto_approve_email_domains: "使用来自此域列表的电子邮件地址的用户将被自动批准。系统会自动处理指定域的子域。不支持通配符 * 和 ?。"
hide_email_address_taken: "在注册或忘记密码的过程中,不要告知用户存在一个使用给定电子邮件地址的帐户。对于“忘记密码”请求,需要完整的电子邮件。"
@@ -1815,7 +1817,7 @@ zh_CN:
enable_local_logins_via_email: "允许用户请求通过电子邮件向他们发送一键登录链接。"
allow_new_registrations: "允许新用户注册。取消选中此项以防止任何人创建新帐户。"
enable_signup_cta: "向回访匿名用户显示通知,提示他们注册帐户。"
- enable_discourse_id: "通过 Discourse ID 启用身份验证,这是一种单点登录服务,允许用户使用一个帐户登录多个 Discourse 站点。无需额外配置即可支持 Google、Facebook 和 Twitter 等常见社交登录提供商。如需了解详情,请参阅 id.discourse.com。"
+ enable_discourse_id: "通过 Discourse ID 启用身份验证,这是一种单点登录服务,允许用户使用一个帐户登录多个 Discourse 站点。无需额外配置即可支持 Google、Facebook、Apple 和 GitHub 等常见社交登录提供商。如需了解详情,请参阅 id.discourse.com。"
enable_google_oauth2_logins: "启用 Google Oauth2 身份验证。这是 Google 当前支持的身份验证方法。要求密钥和密钥代码。请参阅为 Discourse 配置 Google 登录。"
google_oauth2_client_id: "由 Google 应用程序提供的唯一客户端 ID,用于身份验证流程。"
google_oauth2_client_secret: "您的 Google 应用的客户端密钥。"
@@ -1884,7 +1886,7 @@ zh_CN:
invite_link_max_redemptions_limit_users: "普通用户生成的邀请链接允许的最大确认次数不能超过此值。"
alert_admins_if_errors_per_minute: "激活管理员警告的每分钟错误数量。值为 0 会禁用此功能。注意:需要重启。"
alert_admins_if_errors_per_hour: "激活管理员警告的每小时错误数量。值为 0 会禁用此功能。注意:需要重启。"
- categories_topics: '在 /categories 页面上显示的主题数量。如果设置为 0,则会自动设置一个值以保持两列对称。该设置仅适用于“分类和最新/热门主题” 分类页面样式。'
+ categories_topics: '在 /categories 页面上显示的话题数量。如果设置为 0,则会自动设置一个值以保持两列对称。该设置仅适用于“类别和最新/热门话题” 类别页面样式。'
suggested_topics: "在话题底部显示的推荐话题的数量。"
limit_suggested_to_category: "仅在推荐话题中显示当前类别中的话题"
suggested_topics_max_days_old: "推荐话题的存在时间不应超过 n 天。"
@@ -1911,7 +1913,7 @@ zh_CN:
selectable_avatars_mode: "允许用户从 selectable_avatars 列表中选择头像,并将自定义头像上传限制在所选信任级别。"
selectable_avatars: "指定一组头像,用户可以从中选择自己的个人资料照片。该选择将在用户个人资料创建期间或更新个人资料头像时出现。"
allow_all_attachments_for_group_messages: "允许群组消息的所有电子邮件附件。"
- image_quality: "设置上传到您站点图像的质量等级。较低的质量等级将减少文件尺寸。"
+ image_quality: "设置上传到您的站点的图片的质量等级。较低的质量等级将缩减文件大小。"
png_to_jpg_quality: "转换后的 JPG 文件的质量(1 为最低质量,99 为最佳质量,100 为禁用)。"
recompress_original_jpg_quality: "上传的图片文件的质量(1 为最低质量,99 为最佳质量,100 为禁用)。"
image_preview_jpg_quality: "调整大小的图片文件的质量(1 为最低质量,99 为最佳质量,100 为禁用)。"
@@ -1925,7 +1927,7 @@ zh_CN:
video_conversion_enabled: "为上传的视频文件启用视频转换。这可以将视频转换为与网页兼容的格式。"
video_conversion_service: "用于处理所上传视频的视频转换服务。"
mediaconvert_role_arn: "用于 MediaConvert 服务的 AWS IAM 角色 ARN。使用 AWS MediaConvert 进行视频转换时需要此角色。"
- mediaconvert_output_subdirectory: "S3 存储桶中的子目录。MediaConvert 会将转码后的视频临时写入此目录,之后再移动到最终的上传位置。"
+ mediaconvert_output_subdirectory: "S3 存储桶中的子目录,MediaConvert 会将转换后的视频临时写入此目录,之后再移动到最终的上传位置。"
min_ratio_to_crop: "用于裁剪高图片的比率。输入宽度/高度的结果。"
simultaneous_uploads: "可以在编辑器中拖放的最大文件数"
default_invitee_trust_level: "受邀用户的默认信任级别 (0-4)。"
@@ -2052,14 +2054,14 @@ zh_CN:
allow_all_users_to_flag_illegal_content: "匿名用户将看到需要通过电子邮件向管理员举报非法内容的信息。此设置优先于“允许举报帖子的群组”。"
email_address_to_report_illegal_content: "如果留空,将使用默认的网站管理员电子邮件地址。"
cooldown_hours_until_reflag: "用户需要等待多长时间才能重新举报帖子"
- slow_mode_prevents_editing: "在 \"编辑宽限期 \"之后,\"慢速模式 \"是否会阻止编辑?"
+ slow_mode_prevents_editing: "在 'editing grace period' 之后,Slow mode' 是否会阻止编辑?"
reply_by_email_enabled: "激活允许用户直接通过电子邮件回复话题的功能,无需他们登录网站。有关详情,请参阅 Meta 上的指南 。"
reply_by_email_address: "通过传入电子邮件地址回复的模板。示例:%%{reply_key}@reply.example.com 或 replies+%%{reply_key}@example.com"
alternative_reply_by_email_addresses: "通过传入电子邮件地址回复的备用模板列表。示例:%%{reply_key}@reply.example.com|replies+%%{reply_key}@example.com"
incoming_email_prefer_html: "对传入电子邮件使用 HTML 而不是文本。"
strip_incoming_email_lines: "从传入电子邮件的每一行中移除前导和尾随空格。"
disable_emails: "禁止 Discourse 发送任何类型的电子邮件。选择“是”将对所有用户禁用电子邮件。选择“非管理人员”将仅对非管理人员用户禁用电子邮件。"
- allow_email_invites: "禁用此功能后,用户将无法通过 Discourse 发送邀请邮件。"
+ allow_email_invites: "禁用后,用户将无法通过 Discourse 发送邀请电子邮件。"
strip_images_from_short_emails: "从大小小于 2800 字节的电子邮件中去除图片"
short_email_length: "定义电子邮件被归类为“短”以禁止图片的最大长度(以字节为单位)。如果电子邮件的大小未超过此设置,则电子邮件中的任何图片(例如头像和表情符号)都将被删除。"
display_name_on_email_from: "在电子邮件发件人字段上显示全名"
@@ -2077,6 +2079,7 @@ zh_CN:
mailgun_api_key: "用于验证网络钩子消息的 Mailgun Secret API 密钥。"
sendgrid_verification_key: "用于验证网络钩子消息的 Sendgrid 验证密钥。"
mailjet_webhook_token: "用于验证网络钩子负载的令牌。它必须作为网络钩子的 't' 查询参数传递,例如:https://example.com/webhook/mailjet?t=supersecret"
+ mailpace_webhook_token: "用于验证网络钩子负载的令牌。它必须作为网络钩子的 't' 查询参数传递,例如:https://example.com/webhook/mailpace?t=supersecret"
mandrill_authentication_key: "用于验证网络钩子消息的 Mandrill 身份验证密钥。"
postmark_webhook_token: "用于验证网络钩子负载的令牌。它必须作为网络钩子的 't' 查询参数传递,例如:https://example.com/webhook/postmark?t=supersecret"
sparkpost_webhook_token: "用于验证网络钩子负载的令牌。它必须作为网络钩子的 't' 查询参数传递,例如:https://example.com/webhook/sparkpost?t=supersecret"
@@ -2148,8 +2151,8 @@ zh_CN:
enable_category_group_moderation: "允许群组审核特定类别的内容"
group_in_subject: "在电子邮件主题中将 %%{optional_pm} 设置为私信中第一个群组的名称,请参阅:自定义标准电子邮件的主题格式"
allow_anonymous_mode: "启用可供用户切换到匿名发帖模式的选项。激活后,用户在网站上创建帖子或话题时可以选择隐藏身份。另请参阅 `allow anonymous likes`。"
- allow_likes_in_anonymous_mode: "启用此设置,允许匿名浏览网站的用户点赞帖子。 激活后,用户在为帖子或话题点赞时,可以选择隐藏其身份。 此设置需要先启用 `允许匿名模式`。"
- anonymous_posting_allowed_groups: "允许匿名发帖的群组。此设置需要启用“允许匿名模式”设置。"
+ allow_likes_in_anonymous_mode: "启用此设置,允许匿名浏览您的站点的用户为帖子点赞。激活后,用户在为帖子或话题点赞时可以选择隐藏其身份。此设置需要先启用 `allow anonymous mode`。"
+ anonymous_posting_allowed_groups: "可以启用匿名发帖的群组。此设置需要启用 `allow anonymous mode` 设置。"
anonymous_account_duration_minutes: "为了保护匿名性,每 N 分钟为每个用户创建一个新的匿名帐户。示例:如果设置为 600,则在距离上次发帖 600 分钟且用户切换到匿名时,将创建一个新的匿名帐户。"
hide_user_profiles_from_public: "禁用匿名用户的用户卡片、用户个人资料和用户目录。"
hide_new_user_profiles: "向公众隐藏信任级别 1 或更低的用户个人资料,并隐藏信任级别 1 的用户,直到他们首次发帖。此功能在 must_approve_users 和 invite_only 网站上无条件禁用。"
@@ -2167,7 +2170,7 @@ zh_CN:
clean_up_unused_staged_users_after_days: "未使用的暂存用户(没有任何帖子)被移除前的等待天数。设为 0 将禁用清理。"
user_selected_primary_groups: "允许用户设置自己的主要群组"
max_notifications_per_user: "每个用户的最大通知数量,如果超过此数值,旧通知将被删除。每周强制执行。设置为 0 将禁用"
- allowed_user_website_domains: "用户网站将根据这些域名进行验证。"
+ allowed_user_website_domains: "用户网站将根据这些域进行验证。"
allow_profile_backgrounds: "允许用户上传个人资料背景。"
get_a_room_threshold: "在被警告之前,用户必须在同一话题中向同一个人发布的帖子数。"
dont_feed_the_trolls_threshold: "被警告前来自其他用户的举报数量。"
@@ -2247,7 +2250,7 @@ zh_CN:
disable_watched_word_checking_in_user_fields: "在用户字段中禁用关注词检查"
watched_words_regular_expressions: "允许使用正则表达式筛选字词。如果启用,它会根据字词的大小写将敏感词分组。然后,它将所有选定字词编译成一个单一的正则表达式,并为常规关注词添加字词边界。因此,这种基于正则表达式的筛选方法通过支持更复杂的字词模式,对内容审核增加了额外一层控制。该设置还允许轻松地使用选择的替换文本替换原始文本。"
enable_fast_edit: "在帖子选择菜单中添加一个按钮以内联编辑小部分内容。"
- old_post_notice_days: "新用户和回访用户发布通知后隐藏的天数。官方发布的通知将始终可见。"
+ old_post_notice_days: "新用户和回访用户发布通知后隐藏的天数。官方帖子通知将始终可见。"
new_user_notice_tl: "查看新用户帖子通知所需的最低信任级别。"
returning_user_notice_tl: "查看回访用户帖子通知所需的最低信任级别。"
returning_users_days: "在用户被视为回访之前应经过的天数。"
@@ -2329,7 +2332,7 @@ zh_CN:
force_lowercase_tags: "强制所有新标签完全小写。"
create_post_for_category_and_tag_changes: "当一个话题的类别或标签发生更改时,创建密语帖子,需要启用密语帖子。"
automatically_clean_unused_tags: "每天自动删除未在任何话题或个人消息中使用的标签。"
- default_watched_precedence_over_muted: "如果我正在关注的类别或标签中有我已设为免打扰的话题,请通知我。"
+ default_watched_precedence_over_muted: "如果用户正在关注的类别或标签中有他们已设为免打扰的类别或标签,则通知他们"
company_name: "您的公司或组织的名称。如果留空,将不会提供样板《服务条款》或《隐私声明》。"
governing_law: "指定管辖网站法律方面(包括《服务条款》和《隐私政策》)的司法管辖区。这通常是运营网站的公司注册或开展业务的国家/地区或州。"
city_for_disputes: "指定将用作解决与使用此论坛相关的任何争议的管辖城市。此信息通常包含在法律文件(例如论坛的《服务条款》)中。"
@@ -2345,7 +2348,7 @@ zh_CN:
sitemap_page_size: "每个网站地图页面中包含的 URL 数量。最大 50.000"
enable_user_status: "允许用户设置自定义状态消息(表情符号 + 描述)。"
enable_user_tips: "启用向用户描述关键功能的新用户提示"
- short_title: "简短标题将显示在用户的主屏幕、启动器或其他空间有限的地方。标题长度应限制在 12 个字符以内。请注意,更改此标题可能会向 PWA 用户发送提示,询问他们是否需要更新或卸载该应用。"
+ short_title: "简短标题将显示在用户的主屏幕、启动器或其他空间有限的地方。标题长度应限制在 12 个字符以内。请注意,更改此标题可能会向 PWA 用户发送提示,询问他们是更新还是卸载应用。"
dashboard_hidden_reports: "允许从信息中心隐藏指定报告。"
dashboard_visible_tabs: "选择可见的信息中心标签页。"
dashboard_general_tab_activity_metrics: "选择要在“常规”标签页上显示为活动指标的报告。"
@@ -2367,7 +2370,7 @@ zh_CN:
welcome_banner_image: "设置在欢迎横幅背景中显示的图片。"
welcome_banner_location: "确定欢迎横幅在页面上的显示位置。"
welcome_banner_page_visibility: "确定哪些页面会显示欢迎横幅。"
- welcome_banner_text_color: "配置 “欢迎横幅图片” 设置后,使用此设置更改横幅文字颜色,以确保其可读性。当留空或未上传任何图像时,则颜色由当前主题控制。"
+ welcome_banner_text_color: "配置 'Welcome banner image' 设置后,使用此设置更改横幅文本颜色,以确保其清晰可读。如果留空或未上传任何图片,有效主题将控制颜色。"
splash_screen: "在加载网站资源时显示临时加载屏幕"
splash_screen_image: "网站加载时在启动画面上显示的 SVG 图像。动画 SVG 只能使用 CSS 变换或不透明动画。为 CSS 类和关键帧使用唯一的名称。你可以使用 var (--primary)、var (--secondary) 和 var (--terriary) 来引用主题颜色。"
navigation_menu: "指定边栏或标题下拉菜单作为网站的主导航菜单。推荐使用边栏。"
@@ -2392,28 +2395,32 @@ zh_CN:
rich_editor: "为输入框启用富文本编辑器,以便所有用户都可以在当前 Markdown 模式和新的富文本编辑器之间切换,从而实现更直观、更人性化的写作体验。"
default_composition_mode: "设置社区编辑器的默认模式。富文本模式为大多数用户提供了更现代、更熟悉的写作体验,而 Markdown 模式可能更适合技术能力更高的用户。成员可以使用编辑器工具栏中的切换按钮在不同模式之间切换。"
reviewable_ui_refresh: "可以在审核队列中使用实验性新 UI 的群组。"
- viewport_based_mobile_mode: "使用视口宽度来确定移动/桌面模式。此设置即将移除。如果您需要将其关闭,请在 Meta 中告知我们 。"
+ viewport_based_mobile_mode: "使用视口宽度来确定移动/桌面模式。此设置即将移除。如果您需要将其关闭,请在 Meta 上告诉我们。"
content_localization_enabled: "根据用户的浏览器或语言偏好设置,显示本地化内容。此类内容可能包括类别、标签、帖子和话题。支持的语言环境在 'content localization supported locales' 中设置。"
- content_localization_supported_locales: "用户内容可翻译成的支持语言列表。网站默认语言始终包含在内。需要启用 'content localization enabled'。"
+ content_localization_supported_locales: "用户内容可以翻译成的支持语言区域列表。站点的默认语言区域始终包含在内。需要启用 'content localization enabled'。"
content_localization_allowed_groups: "允许更新本地化内容的群组。需要 'content localization enabled'。"
- content_localization_language_switcher: "在页眉中显示语言切换器,允许访问者在翻译版本的 Discourse 和用户贡献的内容之间切换。使用 \"内容本地化支持的本地语言 \"中定义的语言"
- content_localization_crawler_param: "启用 \"内容本地化 \"和 \"从参数设置本地化 \"后,向网络爬虫提供本地化内容。支持的本地化语言列表在 \"内容本地化支持的本地化语言 \"中定义。"
- content_localization_use_default_locale_when_unsupported: "向首选语言未列在 \"内容本地化支持的语言 \"中的用户提供网站默认语言的本地化内容。"
- content_localization_allow_author_localization: "允许作者通过帖子菜单更新自己主题和帖子的本地化内容。"
- enable_upcoming_changes: "启用即将到来的更改"
- fake_upcoming_change: "这是为测试目的即将进行的虚假更改。无需翻译此字符串。"
- floating_dismiss_topics_on_mobile: "在移动设备上为话题列表显示一个浮动的 \"忽略... \"按钮,以方便用户访问,并腾出话题列表顶部的空间"
+ content_localization_language_switcher: "在页眉中显示语言切换器,允许访客在翻译版本的 Discourse 和用户贡献的内容之间切换。使用 'content localization supported locales' 中定义的语言"
+ content_localization_crawler_param: "启用 'content localization enabled' 和 'set locale from param' 后,向网络爬虫提供本地化内容。支持的语言区域列表在 'content localization supported locales' 中定义。"
+ content_localization_use_default_locale_when_unsupported: "向首选语言未列在 'content localization supported locales' 中的用户提供站点的默认语言区域的本地化内容。"
+ content_localization_allow_author_localization: "允许作者通过帖子菜单更新自己话题和帖子的本地化。"
+ enable_upcoming_changes: "启用即将推出的更改"
+ fake_upcoming_change: "这是用于测试目的虚假即将推出的更改。无需翻译此字符串。"
+ floating_dismiss_topics_on_mobile: "在移动设备上为话题列表显示一个浮动式 'Dismiss...' 按钮,以方便用户访问,并腾出话题列表顶部的空间"
rename_faq_to_guidelines: "此更改将常见问题页面重命名为指南。常见问题页面仍可通过 /faq 访问。 'faq url' 的设置与以前一样有效。"
- enable_simplified_category_creation: "使用更少的选项和更简洁的界面来简化类别创建流程。"
+ experimental_tag_settings_page: "在 /tag/:slug/:id/edit 启用标签专用设置页面。"
+ enable_simplified_category_creation: "使用更少的选项和更简洁的界面简化类别创建流程。"
enable_custom_splash_screen: "允许您使用自己的 SVG 图片自定义加载启动画面。通过“启动画面图片”设置上传图片。警告:这可能会对 LCP 分数和 Google 索引产生负面影响。"
modernize_foundation_theme: "此次更改对 Discourse 中的 Foundation 主题进行了设计修改。"
+ reporting_improvements: "改进了 Discourse 管理报告的导航、设计和可用性。"
errors:
invalid_css_color: "颜色无效。输入颜色名称或十六进制值。"
- invalid_datetime: "日期时间格式无效。请确保您输入的日期和时间有效。"
+ invalid_datetime: "日期时间格式无效。请确保输入有效的日期和时间。"
invalid_email: "无效的电子邮件地址。"
invalid_username: "没有使用该用户名的用户。"
valid_username: "存在一个使用该用户名的用户。"
invalid_group: "没有使用该名称的群组。"
+ invalid_svg: "SVG图像无效。它必须包含SVG元素,且不能包含任何脚本或事件处理程序。"
+ invalid_upload: "上传内容无效或不存在。"
invalid_topic: "没有与该 ID 匹配的话题。"
invalid_integer_min_max: "值必须介于 %{min} 和 %{max}之间。"
invalid_integer_min: "值必须为 %{min} 或更大。"
@@ -2451,10 +2458,10 @@ zh_CN:
enable_local_logins_disabled: "在启用此设置之前,您必须先启用 'enable local logins'。"
min_username_length_exists: "您不能将最小用户名长度设置为高于最短用户名 (%{username})。"
min_group_name_length_exists: "您不能将最小用户名长度设置为大于最短群组名称 (%{group_name})。"
- min_username_length_range: "您不能将最小值设置为高于最大值。"
+ min_username_length_range: "用户名最小长度不能设置得高于用户名最大长度。"
max_username_length_exists: "您不能将最大用户名长度设置为低于最长用户名 (%{username})。"
max_group_name_length_exists: "您不能将最大用户名长度设置为小于最长群组名称 (%{group_name})。"
- max_username_length_range: "您不能将最大值设置为低于最小值。"
+ max_username_length_range: "您不能将“最大用户名长度”设置为低于“最小用户名长度”。"
invalid_hex_value: "颜色值必须是 6 位十六进制代码。"
empty_selectable_avatars: "在启用此设置之前,您必须先上传至少两个可选择的头像。"
category_search_priority:
@@ -2468,7 +2475,7 @@ zh_CN:
other: "该列表必须恰好包含 %{count} 个值。"
markdown_linkify_tlds: "您不能包含 '*' 的值。"
google_oauth2_hd_groups: "在启用此设置之前,您必须配置所有 'google oauth2 hd' 设置。"
- discourse_id_registration: "使用 Discourse ID 自动注册失败。这可能是由于网络连接问题、防火墙限制或 Discourse ID 服务无法访问造成的。请查看服务器日志了解更多详情或联系技术支持。"
+ discourse_id_registration: "无法使用 Discourse ID 自动注册。这可能是由于网络连接问题、防火墙限制或 Discourse ID 服务无法访问。请查看服务器日志了解更多详情或联系支持团队。"
linkedin_oidc_credentials: "启用此设置前,必须先配置 LinkedIn OIDC 凭据 ('linkedin_oidc_client_id' 和 'linkedin_oidc_client_secret')。"
search_tokenize_chinese_enabled: "在启用此设置之前,您必须禁用 'search_tokenize_chinese'。"
search_tokenize_japanese_enabled: "在启用此设置之前,您必须禁用 'search_tokenize_japanese'。"
@@ -2477,9 +2484,9 @@ zh_CN:
invalid_uncategorized_category_setting: '如果“允许未分类话题”设置未启用,则无法选择“未分类”类别。'
invalid_search_ranking_weights: "该值对于 search_ranking_weights 网站设置无效。示例:'{0.1,0.2,0.3,1.0}'。注意,每个权重的最大值为 1.0。"
content_localization_locale_limit: "支持的语言环境数量不能超过 %{max} 个。"
- content_localization_language_switcher_requirements: "语言切换器要求启用 \"从 cookie 设置本地化 \"和 \"允许用户本地化 \"网站设置,并且 \"内容本地化支持的本地化 \"至少有一种语言。"
+ content_localization_language_switcher_requirements: "语言切换器要求启用 'set locale from cookie' 和 'allow user locale' 站点设置,并且 'content localization supported locales' 至少有一种语言。"
mediaconvert_role_arn_required: "使用 AWS MediaConvert 进行视频转换时需要具有 AWS IAM 角色 ARN。"
- mediaconvert_output_subdirectory_required: "MediaConvert 输出子目录是必填的。"
+ mediaconvert_output_subdirectory_required: "MediaConvert 输出子目录为必选项。"
s3_credentials_required_for_video_conversion: "需要具有 S3 凭据才能进行视频转换。请配置 S3 访问密钥或启用 IAM 配置文件。"
keywords:
clean_up_inactive_users_after_days: "已停用|闲置|未激活"
@@ -2503,7 +2510,7 @@ zh_CN:
filter:
description:
status: "按状态筛选话题"
- in: "筛选个人列表中的主题"
+ in: "筛选个人列表中的话题"
order: "按特定字段排列话题"
category: "显示特定类别中的话题"
category_any: "显示任意指定类别(以逗号分隔)中的话题"
@@ -2516,7 +2523,6 @@ zh_CN:
exclude_tag: "排除带有特定标签的话题"
exclude_tags_any: "排除带有任意指定标签(以逗号分隔)的话题"
exclude_tags_all: "排除带有所有指定标签(以加号分隔)的话题"
- tags_alias: "“标签:”筛选器的别名"
tag_group: "显示带有特定标签组的标签的话题"
exclude_tag_group: "排除带有特定标签组的标签的话题"
activity_before: "显示最新活动在某个日期之前(YYYY-MM-DD 或几天前)的话题"
@@ -2524,8 +2530,8 @@ zh_CN:
created_before: "显示在某个日期之前(YYYY-MM-DD 或几天前)创建的话题"
created_after: "显示在某个日期之后(YYYY-MM-DD 或几天前)创建的话题"
created_by: "显示特定用户或群组创建的话题"
- created_by_user: "显示由用户名或群组创建的主题(不带@符号)"
- created_by_multiple: "显示任何指定用户或群组创建的主题(以逗号分隔)"
+ created_by_user: "显示由用户名或群组创建的话题(不带 @)"
+ created_by_multiple: "显示任何指定用户或群组创建的话题(以逗号分隔)"
latest_post_before: "显示最新帖子在某个日期之前(YYYY-MM-DD 或几天前)的话题"
latest_post_after: "显示最新帖子在某个日期之后(YYYY-MM-DD 或几天前)的话题"
likes_min: "显示至少有这些赞的话题"
@@ -2578,15 +2584,15 @@ zh_CN:
order_read_asc: "按最后阅读时间排序(时间最早的优先)"
order_hot: "按热门程度排序(最高优先)"
order_hot_asc: "按热门程度排序(最低优先)"
- users: "按参与者筛选主题"
- users_any: "显示任何指定用户的主题(以逗号分隔)"
- users_all: "显示所有指定用户参与的主题(以加号分隔)"
+ users: "按参与者筛选话题"
+ users_any: "显示包含任意指定用户的话题(以逗号分隔)"
+ users_all: "显示包含所有指定用户的话题(以加号分隔)"
exclude_users: "排除特定用户的话题"
- group: "按群组筛选主题"
- groups_any: "显示任意指定群组的主题(以逗号分隔)"
- groups_all: "显示包含所有指定群组的主题(加号分隔)"
- locale: "按原始语言过滤话题"
- locale_any: "显示以任何指定语言撰写的原始话题(以逗号分隔)"
+ group: "按群组筛选话题"
+ groups_any: "显示包含任意指定群组的话题(以逗号分隔)"
+ groups_all: "显示包含所有指定群组的话题(以加号分隔)"
+ locale: "按原始语言筛选话题"
+ locale_any: "显示以任意指定语言撰写的原始话题(以逗号分隔)"
exclude_locale: "排除最初以特定语言撰写的话题"
discourse_connect:
login_error: "登录错误"
@@ -2752,7 +2758,7 @@ zh_CN:
updating_user_ids: "正在更新用户 ID…"
deleting_source_user: "正在删除源用户…"
user:
- anonymized: "[因用户匿名化已移除]"
+ anonymized: "[已因用户匿名化移除]"
deactivated: "由于 '%{email}' 的退回电子邮件过多,已被停用。"
deactivated_by_staff: "被管理人员停用"
deactivated_by_inactivity:
@@ -2958,13 +2964,13 @@ zh_CN:
illegal: "您的帖子被举报为**非法**:社区认为这可能触犯了法律。"
spam: "您的帖子被举报为**垃圾信息**:社区认为它是广告,像是在过度地推广着什么,而不是预期中与话题有关的内容。"
notify_moderators: "您的帖子被举报为**需要版主注意**:社区认为帖子需要管理人员手动干预。"
- needs_approval: "您的帖子被标记为**需要批准**:它已加入审核队列,管理人员将审核它是否满足[我们的社区准则](%{base_path}/guidelines)。"
+ needs_approval: "您的帖子被标记为**需要审批**:它已自动加入审核队列,管理人员将确保它满足[我们的社区准则](%{base_path}/guidelines)。"
responder:
off_topic: "该帖子被举报为**偏离话题**:鉴于话题标题和第一个帖子,社区认为它不适合该话题。"
inappropriate: "这个帖子被举报为**不当言论**:社区认为它具有冒犯性、侮辱性、属于仇恨行为或违反了[我们的社区准则](%{base_path}/guidelines)。"
spam: "该帖子被举报为**垃圾信息**:社区认为这是一个广告,本质上是过度宣传的东西,而不是像预期的那样有用或与话题相关。"
notify_moderators: "该帖子被举报为**需要版主注意**:社区认为帖子需要管理人员手动干预。"
- needs_approval: "该帖子被标记为**需要批准**:它已加入审核队列,管理人员将审核它是否满足[我们的社区准则](%{base_path}/guidelines)。"
+ needs_approval: "该帖子被标记为**需要审批**:它已自动加入审核队列,管理人员将确保它满足[我们的社区准则](%{base_path}/guidelines)。"
flags_dispositions:
agreed: "感谢通知我们。我们认为这是个问题,正在进行调查。"
agreed_and_deleted: "感谢通知我们。我们认为这是个问题,并且已将该帖子移除。"
@@ -3566,24 +3572,26 @@ zh_CN:
title: "用户被自动禁言"
subject_template: "新用户 %{username} 因社区举报被禁言"
text_body_template: |
- 新用户[%{username}](%{user_url})已被系统自动禁言。
+ 这是一条由系统发送的消息。
+
+ 新用户 [%{username}](%{user_url}) 已被自动禁言。
- 请[审核举报内容](%{base_url}/review)。如果%{username}被错误地禁言,请点击[此用户管理页面](%{user_url})中的解除禁言按钮。
+ 请[审核举报内容](%{base_url}/review)。如果 %{username} 被错误地禁言,请点击[此用户管理页面](%{user_url})中的解除禁言按钮。
- 自动禁言阈值可以通过站点设置中的`silence_new_user`调整。
+ 此阈值可以通过 `silence_new_user` 站点设置进行更改。
user_automatically_silenced_with_reason:
title: "用户被自动禁言"
subject_template: "新用户 %{username} 因社区举报被禁言"
text_body_template: |
这是一条由系统发送的消息。
- 新用户[%{username}](%{user_url})已被系统自动禁言。
+ 新用户 [%{username}](%{user_url}) 已被自动禁言。
- 原因:%{reason}
+ 原因 - %{reason}
- 请[审核举报内容](%{base_url}/review)。如果%{username}被错误地禁言,请点击[此用户管理页面](%{user_url})中的解除禁言按钮。
+ 请[审核举报内容](%{base_url}/review)。如果 %{username} 被错误地禁言,请点击[此用户管理页面](%{user_url})中的解除禁言按钮。
- 自动禁言阈值可以通过站点设置中的`silence_new_user`调整。
+ 此阈值可以通过 `silence_new_user` 站点设置进行更改。
spam_post_blocked:
title: "垃圾信息帖子被屏蔽"
subject_template: "新用户 %{username} 的帖子因重复链接被屏蔽"
@@ -3597,7 +3605,7 @@ zh_CN:
可以通过 `newuser_spam_host_threshold` 和 `allowed_spam_host_domains` 网站设置对此进行修改。如果他们应该被豁免,请考虑将 %{domains} 添加到许可名单中。
unsilenced:
title: "已被取消禁言"
- preview: "帐户不再处于暂停状态."
+ preview: "帐户不再处于暂停状态。"
subject_template: "帐户不再处于暂停状态"
text_body_template: |
您好,
@@ -3635,10 +3643,10 @@ zh_CN:
新用户的帖子目前正在等待审核。[在此处批准或拒绝他们](%{base_url}/review?type=ReviewableQueuedPost)。
user_posts_deleted:
- title: "用户的帖子已被删除"
+ title: "用户帖子已被删除"
subject_template: "%{user} 的所有帖子已被删除"
text_body_template:
- other: "@%{user} 的%{count}个帖子已被 @%{staff_user} 删除。"
+ other: "@%{user} 的 %{count} 个帖子已被 @%{staff_user} 删除。"
unsubscribe_link: |
要退订这些电子邮件,请[点击此处](%{unsubscribe_url})。
unsubscribe_link_and_mail: |
@@ -3750,7 +3758,7 @@ zh_CN:
%{respond_instructions}
user_replied:
title: "用户回复"
- preview: "有用户回复了你的帖子。"
+ preview: "有人回复了您的帖子。"
subject_template: "[%{email_prefix}] %{topic_title}"
text_body_template: |
%{header_instructions}
@@ -3773,7 +3781,7 @@ zh_CN:
%{respond_instructions}
user_quoted:
title: "用户引用"
- preview: "有用户在帖子内引用了你的内容。"
+ preview: "有人在帖子中引用了您的内容。"
subject_template: "[%{email_prefix}] %{topic_title}"
text_body_template: |
%{header_instructions}
@@ -3785,7 +3793,7 @@ zh_CN:
%{respond_instructions}
user_linked:
title: "用户链接"
- preview: "你的帖子与另一个话题相关联。"
+ preview: "帖子链接到另一个话题。"
subject_template: "[%{email_prefix}] %{topic_title}"
text_body_template: |
%{header_instructions}
@@ -3797,7 +3805,7 @@ zh_CN:
%{respond_instructions}
user_mentioned:
title: "用户提及"
- preview: "有用户在帖子中@了你。"
+ preview: "有人在帖子中提到了您。"
subject_template: "[%{email_prefix}] %{topic_title}"
text_body_template: |
%{header_instructions}
@@ -3853,7 +3861,7 @@ zh_CN:
%{respond_instructions}
user_posted:
title: "用户发帖"
- preview: "有用户回复了你关注的帖子。"
+ preview: "有人回复了您关注的话题。"
subject_template: "[%{email_prefix}] %{topic_title}"
text_body_template: |
%{header_instructions}
@@ -3887,7 +3895,7 @@ zh_CN:
%{respond_instructions}
user_posted_pm:
title: "用户发布私信"
- preview: "有用户向你发送了私信。"
+ preview: "有人向您发送了一条 PM。"
subject_template: "[%{email_prefix}] [私信] %{topic_title}"
text_body_template: |
%{header_instructions}
@@ -3957,11 +3965,11 @@ zh_CN:
title: "双重身份验证已禁用"
subject_template: "[%{email_prefix}] 双重身份验证已禁用"
text_body_template: |
- 您在 %{site_name} 上的账户的双重身份验证已被停用,现在你可以通过密码登录账户,而无需额外的身份验证码。
+ 您在 %{site_name} 上的帐户的双重身份验证已被禁用。您现在可以仅使用您的密码登录;不再需要额外的身份验证代码。
- 如果您未曾选择禁用双重身份验证,那么您的帐户可能已被他人盗用。
+ 如果您没有选择禁用双重身份验证 (2FA),则可能有人盗用了您的帐户。
- 如果您对此有任何疑问,请[联系网站管理](%{base_url}/about)。
+ 如果您有任何问题,请[联系我们友好的管理人员](%{base_url}/about)。
digest:
why: "自 %{since} 以来 %{site_link} 的简要摘要"
since_last_visit: "自从您上次访问以来"
@@ -3993,7 +4001,7 @@ zh_CN:
%{base_url}/u/password-reset/%{email_token}
email_login:
title: "通过链接登录"
- preview: "通过链接登录."
+ preview: "通过链接登录。"
subject_template: "[%{email_prefix}] 通过链接登录"
text_body_template: |
这是您用于登录 [%{site_name}](%{base_url}) 的链接
@@ -4170,9 +4178,9 @@ zh_CN:
popular_topics: "热门话题"
recent_topics: "近期话题"
see_more: "更多"
- search_title: "尝试搜索感兴趣的话题"
+ search_title: "尝试改为搜索?"
search_button: "搜索"
- home: "返回主页"
+ home: "返回首页"
placeholder: "通过标题或关键字搜索话题…"
offline:
title: "无法加载应用"
@@ -4724,17 +4732,17 @@ zh_CN:
name: 不错的分享
description: 与 25 个唯一身份访客分享帖子
long_description: |
- 当您分享的链接被 25 位独立外部访客点击时,将授予此徽章。感谢您宣传我们的讨论和社区。
+ 当您分享的链接被 25 个唯一身份外部访客点击时,将授予此徽章。感谢您宣传我们的讨论和社区。
good_share:
name: 很棒的分享
description: 与 300 个唯一身份访客分享帖子
long_description: |
- 当您分享的链接被 300 个独立外部访客点击时,将授予此徽章。干得漂亮!您向一群新人展示了一场精彩的讨论,并帮助这个社区成长。
+ 当您分享的链接被 300 个唯一身份外部访客点击时,将授予此徽章。干得漂亮!您向一群新人展示了一场精彩的讨论,并帮助这个社区成长。
great_share:
name: 精彩的分享
description: 与 1000 个唯一身份访客分享帖子
long_description: |
- 当您分享的链接被 1000 个独立外部访客点击时,将授予此徽章。哇!您将一个有趣的讨论介绍给大量新受众,并帮助社区前进了一大步!
+ 当您分享的链接被 1000 个唯一身份外部访客点击时,将授予此徽章。哇!您将一个有趣的讨论介绍给大量新受众,并帮助社区前进了一大步!
first_like:
name: 第一个赞
description: 赞了一个帖子
@@ -4903,11 +4911,11 @@ zh_CN:
upload_row_too_long: "CSV 文件的每行应该有一个标签。或者,标签后面可以跟一个逗号,然后是标签组名称。"
bulk_create:
invalid_params: "参数无效。请提供标签名称数组。"
- invalid_name: "无效的标签名称。"
+ invalid_name: "标签名称无效。"
tag_too_long:
other: "标签过长(最多 %{count} 个字符)。"
too_many_tags:
- other: "标签太多了。您一次最多可以创建 %{count} 标签。对于较大的导入,请使用 CSV 上传功能。"
+ other: "标签过多。您一次最多可以创建 %{count} 个标签。对于较大的导入,请使用 CSV 上传功能。"
forbidden:
invalid:
other: "您选择的标签均无法使用"
@@ -4930,8 +4938,8 @@ zh_CN:
finish_installation:
congratulations: "恭喜,您已安装 Discourse!"
login_with_discourse_id: "使用 Discourse ID 登录"
- discourse_id_help: "请使用 Discourse ID 登录。
请确保您使用的 Discourse ID 账户的主电子邮件与 `DISCOURSE_DEVELOPER_EMAILS` 环境变量相匹配。"
- discourse_id_error_help: "您选择暂时跳过设置电子邮件。不幸的是,由于上述错误信息,设置无法继续。请在meta.discourse.org 上报告此问题。"
+ discourse_id_help: "请通过以下按钮使用 Discourse ID 登录。
请确保您使用的 Discourse ID 帐户的主电子邮件地址与 `DISCOURSE_DEVELOPER_EMAILS` 环境变量相匹配。"
+ discourse_id_error_help: "您选择暂时跳过设置电子邮件地址。很抱歉,由于上述错误消息,设置无法继续。请在 meta.discourse.org 上报告此问题。"
register:
button: "注册"
title: "注册管理员帐户"
@@ -4945,8 +4953,8 @@ zh_CN:
message: "
-
- {{@component.name}}
-
+