FEATURE: Remove support for legacy navigation menu (#23752)
Why this change? Back in May 17 2023 along with the release of Discourse 3.1, we announced on meta that the legacy hamburger dropdown navigation menu is deprecated and will be dropped in Discourse 3.2. This is the link to the announcement on meta: https://meta.discourse.org/t/removing-the-legacy-hamburger-navigation-menu-option/265274 ## What does this change do? This change removes the `legacy` option from the `navigation_menu` site setting and migrates existing sites on the `legacy` option to the `header dropdown` option. All references to the `legacy` option in code and tests have been removed as well.
This commit is contained in:
parent
2c346a1ba6
commit
832b3b9e60
|
@ -408,11 +408,7 @@ const SiteHeaderComponent = MountWidget.extend(
|
|||
},
|
||||
|
||||
_dropDownHeaderEnabled() {
|
||||
return (
|
||||
(!this.sidebarEnabled &&
|
||||
this.siteSettings.navigation_menu !== "legacy") ||
|
||||
this.site.narrowDesktopView
|
||||
);
|
||||
return !this.sidebarEnabled || this.site.narrowDesktopView;
|
||||
},
|
||||
}
|
||||
);
|
||||
|
|
|
@ -87,10 +87,7 @@ export default Controller.extend({
|
|||
return true;
|
||||
}
|
||||
|
||||
if (
|
||||
navigationMenuQueryParamOverride === "legacy" ||
|
||||
navigationMenuQueryParamOverride === "header_dropdown"
|
||||
) {
|
||||
if (navigationMenuQueryParamOverride === "header_dropdown") {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -522,45 +522,45 @@ class PluginApi {
|
|||
decorateWidget(name, fn);
|
||||
}
|
||||
|
||||
/**
|
||||
* This is a bridge to support the legacy hamburger widget links that are added by decorating the widgets. This can
|
||||
* be removed once the legacy hamburger widget no longer exists.
|
||||
*/
|
||||
_deprecateDecoratingHamburgerWidgetLinks(name, fn) {
|
||||
if (
|
||||
name === "hamburger-menu:generalLinks" ||
|
||||
name === "hamburger-menu:footerLinks"
|
||||
) {
|
||||
const siteSettings = this.container.lookup("service:site-settings");
|
||||
|
||||
if (siteSettings.navigation_menu !== "legacy") {
|
||||
try {
|
||||
const { href, route, label, rawLabel, className } = fn();
|
||||
const textContent = rawLabel || I18n.t(label);
|
||||
|
||||
const args = {
|
||||
name: className || textContent.replace(/\s+/g, "-").toLowerCase(),
|
||||
title: textContent,
|
||||
text: textContent,
|
||||
};
|
||||
|
||||
if (href) {
|
||||
if (DiscourseURL.isInternal(href)) {
|
||||
args.href = href;
|
||||
} else {
|
||||
// Skip external links support for now
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
args.route = route;
|
||||
}
|
||||
|
||||
this.addCommunitySectionLink(args, name.match(/footerLinks/));
|
||||
} catch {
|
||||
deprecated(
|
||||
`Usage of \`api.decorateWidget('hamburger-menu:generalLinks')\` is incompatible with the \`navigation_menu\` site setting when not set to "legacy". Please use \`api.addCommunitySectionLink\` instead.`,
|
||||
{ id: "discourse.decorate-widget.hamburger-widget-links" }
|
||||
);
|
||||
deprecated(
|
||||
`Usage of \`api.decorateWidget('${name}')\` is deprecated, please use \`api.addCommunitySectionLink\` instead.`,
|
||||
{
|
||||
id: "discourse.decorate-widget.hamburger-widget-links",
|
||||
since: "3.2",
|
||||
dropFrom: "3.3",
|
||||
}
|
||||
);
|
||||
|
||||
return;
|
||||
const { href, route, label, rawLabel, className } = fn();
|
||||
const textContent = rawLabel || I18n.t(label);
|
||||
|
||||
const args = {
|
||||
name: className || textContent.replace(/\s+/g, "-").toLowerCase(),
|
||||
title: textContent,
|
||||
text: textContent,
|
||||
};
|
||||
|
||||
if (href) {
|
||||
if (DiscourseURL.isInternal(href)) {
|
||||
args.href = href;
|
||||
} else {
|
||||
// Skip external links support for now
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
args.route = route;
|
||||
}
|
||||
|
||||
this.addCommunitySectionLink(args, name.match(/footerLinks/));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -76,16 +76,14 @@
|
|||
<span>{{i18n "user.preferences_nav.interface"}}</span>
|
||||
</DNavigationItem>
|
||||
|
||||
{{#if (not-eq this.siteSettings.navigation_menu "legacy")}}
|
||||
<DNavigationItem
|
||||
@route="preferences.navigation-menu"
|
||||
@ariaCurrentContext="subNav"
|
||||
class="user-nav__preferences-navigation-menu"
|
||||
>
|
||||
{{d-icon "bars"}}
|
||||
<span>{{i18n "user.preferences_nav.navigation_menu"}}</span>
|
||||
</DNavigationItem>
|
||||
{{/if}}
|
||||
<DNavigationItem
|
||||
@route="preferences.navigation-menu"
|
||||
@ariaCurrentContext="subNav"
|
||||
class="user-nav__preferences-navigation-menu"
|
||||
>
|
||||
{{d-icon "bars"}}
|
||||
<span>{{i18n "user.preferences_nav.navigation_menu"}}</span>
|
||||
</DNavigationItem>
|
||||
|
||||
<PluginOutlet
|
||||
@name="user-preferences-nav-under-interface"
|
||||
|
|
|
@ -255,24 +255,6 @@ createWidget("header-icons", {
|
|||
action: "toggleHamburger",
|
||||
href: "",
|
||||
classNames: ["hamburger-dropdown"],
|
||||
|
||||
contents() {
|
||||
let { currentUser } = this;
|
||||
if (
|
||||
currentUser?.reviewable_count &&
|
||||
this.siteSettings.navigation_menu === "legacy"
|
||||
) {
|
||||
return h(
|
||||
"div.badge-notification.reviewables",
|
||||
{
|
||||
attributes: {
|
||||
title: I18n.t("notifications.reviewable_items"),
|
||||
},
|
||||
},
|
||||
this.currentUser.reviewable_count
|
||||
);
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
if (!attrs.sidebarEnabled || this.site.mobileView) {
|
||||
|
@ -483,9 +465,8 @@ export default createWidget("header", {
|
|||
} else if (state.hamburgerVisible) {
|
||||
if (
|
||||
attrs.navigationMenuQueryParamOverride === "header_dropdown" ||
|
||||
(attrs.navigationMenuQueryParamOverride !== "legacy" &&
|
||||
this.siteSettings.navigation_menu !== "legacy" &&
|
||||
(!attrs.sidebarEnabled || this.site.narrowDesktopView))
|
||||
!attrs.sidebarEnabled ||
|
||||
this.site.narrowDesktopView
|
||||
) {
|
||||
panels.push(this.attach("revamped-hamburger-menu-wrapper", {}));
|
||||
} else {
|
||||
|
@ -598,24 +579,15 @@ export default createWidget("header", {
|
|||
},
|
||||
|
||||
toggleHamburger() {
|
||||
if (
|
||||
this.siteSettings.navigation_menu !== "legacy" &&
|
||||
this.attrs.sidebarEnabled &&
|
||||
!this.site.narrowDesktopView
|
||||
) {
|
||||
if (this.attrs.sidebarEnabled && !this.site.narrowDesktopView) {
|
||||
this.sendWidgetAction("toggleSidebar");
|
||||
} else {
|
||||
this.state.hamburgerVisible = !this.state.hamburgerVisible;
|
||||
this.toggleBodyScrolling(this.state.hamburgerVisible);
|
||||
|
||||
schedule("afterRender", () => {
|
||||
if (this.siteSettings.navigation_menu !== "legacy") {
|
||||
// Remove focus from hamburger toggle button
|
||||
document.querySelector("#toggle-hamburger-menu")?.blur();
|
||||
} else {
|
||||
// auto focus on first link in dropdown
|
||||
document.querySelector(".hamburger-panel .menu-links a")?.focus();
|
||||
}
|
||||
// Remove focus from hamburger toggle button
|
||||
document.querySelector("#toggle-hamburger-menu")?.blur();
|
||||
});
|
||||
}
|
||||
},
|
||||
|
|
|
@ -11,5 +11,9 @@ globalThis.deprecationWorkflow.config = {
|
|||
},
|
||||
{ handler: "silence", matchId: "discourse.select-kit" },
|
||||
{ handler: "silence", matchId: "discourse.d-section" },
|
||||
{
|
||||
handler: "silence",
|
||||
matchId: "discourse.decorate-widget.hamburger-widget-links",
|
||||
},
|
||||
],
|
||||
};
|
||||
|
|
|
@ -25,9 +25,6 @@ acceptance("Enforce Second Factor", function (needs) {
|
|||
});
|
||||
});
|
||||
});
|
||||
needs.settings({
|
||||
navigation_menu: "legacy",
|
||||
});
|
||||
|
||||
test("as an admin", async function (assert) {
|
||||
await visit("/u/eviltrout/preferences/second-factor");
|
||||
|
@ -41,8 +38,9 @@ acceptance("Enforce Second Factor", function (needs) {
|
|||
"it will not transition from second-factor preferences"
|
||||
);
|
||||
|
||||
await click("#toggle-hamburger-menu");
|
||||
await click("a.admin-link");
|
||||
await click(
|
||||
".sidebar-section[data-section-name='community'] .sidebar-section-link[data-link-name='admin']"
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
currentRouteName(),
|
||||
|
@ -65,8 +63,13 @@ acceptance("Enforce Second Factor", function (needs) {
|
|||
"it will not transition from second-factor preferences"
|
||||
);
|
||||
|
||||
await click("#toggle-hamburger-menu");
|
||||
await click("a.about-link");
|
||||
await click(
|
||||
".sidebar-section[data-section-name='community'] .sidebar-more-section-links-details-summary"
|
||||
);
|
||||
|
||||
await click(
|
||||
".sidebar-section[data-section-name='community'] .sidebar-section-link[data-link-name='about']"
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
currentRouteName(),
|
||||
|
@ -90,8 +93,13 @@ acceptance("Enforce Second Factor", function (needs) {
|
|||
"it will transition from second-factor preferences"
|
||||
);
|
||||
|
||||
await click("#toggle-hamburger-menu");
|
||||
await click("a.about-link");
|
||||
await click(
|
||||
".sidebar-section[data-section-name='community'] .sidebar-more-section-links-details-summary"
|
||||
);
|
||||
|
||||
await click(
|
||||
".sidebar-section[data-section-name='community'] .sidebar-section-link[data-link-name='about']"
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
currentRouteName(),
|
||||
|
|
|
@ -1,41 +0,0 @@
|
|||
import {
|
||||
acceptance,
|
||||
exists,
|
||||
query,
|
||||
updateCurrentUser,
|
||||
} from "discourse/tests/helpers/qunit-helpers";
|
||||
import { click, triggerKeyEvent, visit } from "@ember/test-helpers";
|
||||
import { test } from "qunit";
|
||||
|
||||
acceptance(
|
||||
"Opening the hamburger menu with some reviewables",
|
||||
function (needs) {
|
||||
needs.user();
|
||||
needs.settings({
|
||||
navigation_menu: "legacy",
|
||||
});
|
||||
test("As a staff member", async function (assert) {
|
||||
updateCurrentUser({ moderator: true, admin: false, reviewable_count: 3 });
|
||||
|
||||
await visit("/");
|
||||
await click(".hamburger-dropdown");
|
||||
|
||||
assert.strictEqual(
|
||||
query(".review .badge-notification.reviewables").innerText,
|
||||
"3"
|
||||
);
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
acceptance("Hamburger Menu accessibility", function (needs) {
|
||||
needs.settings({
|
||||
navigation_menu: "legacy",
|
||||
});
|
||||
test("Escape key closes hamburger menu", async function (assert) {
|
||||
await visit("/");
|
||||
await click("#toggle-hamburger-menu");
|
||||
await triggerKeyEvent(".hamburger-panel", "keydown", "Escape");
|
||||
assert.ok(!exists(".hamburger-panel"), "Esc closes the hamburger panel");
|
||||
});
|
||||
});
|
|
@ -9,24 +9,6 @@ import {
|
|||
} from "discourse/tests/helpers/qunit-helpers";
|
||||
import Sinon from "sinon";
|
||||
|
||||
acceptance(
|
||||
"Sidebar - Logged on user - Legacy navigation menu enabled",
|
||||
function (needs) {
|
||||
needs.user();
|
||||
|
||||
needs.settings({
|
||||
navigation_menu: "legacy",
|
||||
});
|
||||
|
||||
test("clicking header hamburger icon displays old hamburger dropdown", async function (assert) {
|
||||
await visit("/");
|
||||
await click(".hamburger-dropdown");
|
||||
|
||||
assert.ok(exists(".menu-container-general-links"));
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
acceptance(
|
||||
"Sidebar - Logged on user - Mobile view - Header dropdown navigation menu enabled",
|
||||
function (needs) {
|
||||
|
|
|
@ -37,16 +37,6 @@ module("Integration | Component | site-header", function (hooks) {
|
|||
assert.strictEqual(unreadBadge.textContent, "5");
|
||||
});
|
||||
|
||||
test("hamburger menu icon shows pending reviewables count", async function (assert) {
|
||||
this.siteSettings.navigation_menu = "legacy";
|
||||
this.currentUser.set("reviewable_count", 1);
|
||||
await render(hbs`<SiteHeader />`);
|
||||
let pendingReviewablesBadge = query(
|
||||
".hamburger-dropdown .badge-notification"
|
||||
);
|
||||
assert.strictEqual(pendingReviewablesBadge.textContent, "1");
|
||||
});
|
||||
|
||||
test("hamburger menu icon doesn't show pending reviewables count for non-legacy navigation menu", async function (assert) {
|
||||
this.currentUser.set("reviewable_count", 1);
|
||||
this.siteSettings.navigation_menu = "sidebar";
|
||||
|
|
|
@ -49,8 +49,6 @@ class ReviewableClaimedTopicsController < ApplicationController
|
|||
|
||||
MessageBus.publish("/reviewable_claimed", data, group_ids: group_ids.to_a)
|
||||
|
||||
if !SiteSetting.legacy_navigation_menu?
|
||||
Jobs.enqueue(:refresh_users_reviewable_counts, group_ids: group_ids.to_a)
|
||||
end
|
||||
Jobs.enqueue(:refresh_users_reviewable_counts, group_ids: group_ids.to_a)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2013,20 +2013,18 @@ class UsersController < ApplicationController
|
|||
permitted.concat UserUpdater::TAG_NAMES.keys
|
||||
permitted << UserUpdater::NOTIFICATION_SCHEDULE_ATTRS
|
||||
|
||||
if !SiteSetting.legacy_navigation_menu?
|
||||
if params.has_key?(:sidebar_category_ids) && params[:sidebar_category_ids].blank?
|
||||
params[:sidebar_category_ids] = []
|
||||
if params.has_key?(:sidebar_category_ids) && params[:sidebar_category_ids].blank?
|
||||
params[:sidebar_category_ids] = []
|
||||
end
|
||||
|
||||
permitted << { sidebar_category_ids: [] }
|
||||
|
||||
if SiteSetting.tagging_enabled
|
||||
if params.has_key?(:sidebar_tag_names) && params[:sidebar_tag_names].blank?
|
||||
params[:sidebar_tag_names] = []
|
||||
end
|
||||
|
||||
permitted << { sidebar_category_ids: [] }
|
||||
|
||||
if SiteSetting.tagging_enabled
|
||||
if params.has_key?(:sidebar_tag_names) && params[:sidebar_tag_names].blank?
|
||||
params[:sidebar_tag_names] = []
|
||||
end
|
||||
|
||||
permitted << { sidebar_tag_names: [] }
|
||||
end
|
||||
permitted << { sidebar_tag_names: [] }
|
||||
end
|
||||
|
||||
if SiteSetting.enable_user_status
|
||||
|
|
|
@ -207,8 +207,7 @@ class AdminDashboardData
|
|||
:unreachable_themes,
|
||||
:watched_words_check,
|
||||
:google_analytics_version_check,
|
||||
:translation_overrides_check,
|
||||
:legacy_navigation_menu_check
|
||||
:translation_overrides_check
|
||||
|
||||
register_default_scheduled_problem_checks
|
||||
|
||||
|
@ -368,12 +367,6 @@ class AdminDashboardData
|
|||
end
|
||||
end
|
||||
|
||||
def legacy_navigation_menu_check
|
||||
if SiteSetting.navigation_menu == "legacy"
|
||||
I18n.t("dashboard.legacy_navigation_menu_deprecated", base_path: Discourse.base_path)
|
||||
end
|
||||
end
|
||||
|
||||
def image_magick_check
|
||||
if SiteSetting.create_thumbnails && !system("command -v convert >/dev/null;")
|
||||
I18n.t("dashboard.image_magick_warning")
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
class NavigationMenuSiteSetting < EnumSiteSetting
|
||||
SIDEBAR = "sidebar"
|
||||
HEADER_DROPDOWN = "header dropdown"
|
||||
LEGACY = "legacy"
|
||||
|
||||
def self.valid_value?(val)
|
||||
values.any? { |v| v[:value] == val }
|
||||
|
@ -13,7 +12,6 @@ class NavigationMenuSiteSetting < EnumSiteSetting
|
|||
@values ||= [
|
||||
{ name: "admin.navigation_menu.sidebar", value: SIDEBAR },
|
||||
{ name: "admin.navigation_menu.header_dropdown", value: HEADER_DROPDOWN },
|
||||
{ name: "admin.navigation_menu.legacy", value: LEGACY },
|
||||
]
|
||||
end
|
||||
|
||||
|
|
|
@ -257,10 +257,6 @@ class SiteSetting < ActiveRecord::Base
|
|||
c.present? && c.to_i != SiteSetting.uncategorized_category_id.to_i
|
||||
end
|
||||
|
||||
def self.legacy_navigation_menu?
|
||||
SiteSetting.navigation_menu == "legacy"
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def self.clear_cache!
|
||||
|
|
|
@ -43,7 +43,7 @@ class TopicTrackingState
|
|||
return unless topic.regular?
|
||||
|
||||
tag_ids, tags = nil
|
||||
tag_ids, tags = topic.tags.pluck(:id, :name).transpose if SiteSetting.tagging_enabled
|
||||
tag_ids, tags = topic.tags.pluck(:id, :name).transpose if include_tags_in_report?
|
||||
|
||||
payload = {
|
||||
last_read_post_number: nil,
|
||||
|
@ -71,7 +71,7 @@ class TopicTrackingState
|
|||
return unless topic.regular?
|
||||
|
||||
tag_ids, tags = nil
|
||||
tag_ids, tags = topic.tags.pluck(:id, :name).transpose if SiteSetting.tagging_enabled
|
||||
tag_ids, tags = topic.tags.pluck(:id, :name).transpose if include_tags_in_report?
|
||||
|
||||
message = {
|
||||
topic_id: topic.id,
|
||||
|
@ -276,11 +276,7 @@ class TopicTrackingState
|
|||
end
|
||||
|
||||
def self.include_tags_in_report?
|
||||
SiteSetting.tagging_enabled && (@include_tags_in_report || !SiteSetting.legacy_navigation_menu?)
|
||||
end
|
||||
|
||||
def self.include_tags_in_report=(v)
|
||||
@include_tags_in_report = v
|
||||
SiteSetting.tagging_enabled
|
||||
end
|
||||
|
||||
# Sam: this is a hairy report, in particular I need custom joins and fancy conditions
|
||||
|
@ -340,7 +336,7 @@ class TopicTrackingState
|
|||
end
|
||||
|
||||
def self.tags_included_wrapped_sql(sql)
|
||||
return <<~SQL if SiteSetting.tagging_enabled && TopicTrackingState.include_tags_in_report?
|
||||
return <<~SQL if include_tags_in_report?
|
||||
WITH tags_included_cte AS (
|
||||
#{sql}
|
||||
)
|
||||
|
|
|
@ -2048,7 +2048,6 @@ class User < ActiveRecord::Base
|
|||
private
|
||||
|
||||
def set_default_sidebar_section_links(update: false)
|
||||
return if SiteSetting.legacy_navigation_menu?
|
||||
return if staged? || bot?
|
||||
|
||||
if SiteSetting.default_navigation_menu_categories.present?
|
||||
|
|
|
@ -16,33 +16,10 @@ module UserSidebarMixin
|
|||
end
|
||||
|
||||
def include_sidebar_tags?
|
||||
SiteSetting.tagging_enabled && sidebar_navigation_menu?
|
||||
SiteSetting.tagging_enabled
|
||||
end
|
||||
|
||||
def sidebar_category_ids
|
||||
object.secured_sidebar_category_ids(scope)
|
||||
end
|
||||
|
||||
def include_sidebar_category_ids?
|
||||
sidebar_navigation_menu?
|
||||
end
|
||||
|
||||
def sidebar_sections
|
||||
object
|
||||
.sidebar_sections
|
||||
.order(created_at: :asc)
|
||||
.includes(sidebar_section_links: :linkable)
|
||||
.map { |section| SidebarSectionSerializer.new(section, root: false) }
|
||||
end
|
||||
|
||||
def include_sidebar_sections?
|
||||
sidebar_navigation_menu?
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def sidebar_navigation_menu?
|
||||
!SiteSetting.legacy_navigation_menu? ||
|
||||
%w[sidebar header_dropdown].include?(options[:navigation_menu_param])
|
||||
end
|
||||
end
|
||||
|
|
|
@ -268,7 +268,7 @@ class SiteSerializer < ApplicationSerializer
|
|||
end
|
||||
|
||||
def include_navigation_menu_site_top_tags?
|
||||
!SiteSetting.legacy_navigation_menu? && SiteSetting.tagging_enabled
|
||||
SiteSetting.tagging_enabled
|
||||
end
|
||||
|
||||
def anonymous_default_navigation_menu_tags
|
||||
|
@ -283,7 +283,7 @@ class SiteSerializer < ApplicationSerializer
|
|||
end
|
||||
|
||||
def include_anonymous_default_navigation_menu_tags?
|
||||
scope.anonymous? && !SiteSetting.legacy_navigation_menu? && SiteSetting.tagging_enabled &&
|
||||
scope.anonymous? && SiteSetting.tagging_enabled &&
|
||||
SiteSetting.default_navigation_menu_tags.present? &&
|
||||
anonymous_default_navigation_menu_tags.present?
|
||||
end
|
||||
|
|
|
@ -38,6 +38,9 @@ class WebHookUserSerializer < UserSerializer
|
|||
use_logo_small_as_avatar
|
||||
pending_posts_count
|
||||
status
|
||||
display_sidebar_tags
|
||||
sidebar_category_ids
|
||||
sidebar_tags
|
||||
].each { |attr| define_method("include_#{attr}?") { false } }
|
||||
|
||||
def include_email?
|
||||
|
|
|
@ -1626,7 +1626,6 @@ ar:
|
|||
unreachable_themes: "لم نتمكن من التحقُّق من وجود تحديثات للسمات التالية:"
|
||||
watched_word_regexp_error: "التعبير العادي للكلمات المُراقَبة للإجراء \"%{action}\" غير صالح. يُرجى التحقُّق من <a href='%{base_path}/admin/customize/watched_words'>إعدادات الكلمات المُراقَبة</a>، أو إيقاف إعداد الموقع `watched words regular expressions`."
|
||||
v3_analytics_deprecated: "يستخدم Discourse لديك حاليًا Google Analytics 3، والذي سيتوقف دعمه بعد يوليو 2023. <a href='https://meta.discourse.org/t/260498'>قم بالترقية إلى Google Analytics 4</a> الآن للاستمرار في تلقي رؤى وتحليلات قيمة لأداء موقعك الإلكتروني."
|
||||
legacy_navigation_menu_deprecated: "يستخدم Discourse لديك حاليًا قائمة التنقل \"القديمة\"، والتي <a href='https://meta.discourse.org/t/removing-the-legacy-hamburger-navigation-menu-option/265274'>ستتم إزالتها في الإصدار التجريبي الأول من Discourse 3.2</a>. انتقل إلى قائمة التنقل الجديدة عن طريق تحديث <a href='%{base_path}/admin/site_settings/category/all_results?filter=navigation_menu'>إعداد موقع قائمة التنقل</a> إلى \"الشريط الجانبي\" أو \"القائمة المنسدلة للرأس\"."
|
||||
site_settings:
|
||||
allow_bulk_invite: "السماح بالدعوات الجماعية عن طريق تحميل ملف CSV"
|
||||
disabled: "متوقف"
|
||||
|
|
|
@ -1415,7 +1415,6 @@ de:
|
|||
unreachable_themes: "Wir konnten die folgenden Themes nicht auf Updates prüfen:"
|
||||
watched_word_regexp_error: "Der reguläre Ausdruck für „%{action}“ überwachte Wörter ist ungültig. Bitte überprüfe deine <a href='%{base_path}/admin/customize/watched_words'>Einstellungen für überwachte Wörter</a> oder deaktiviere die Website-Einstellung „watched words regular expressions“."
|
||||
v3_analytics_deprecated: "Dein Discourse verwendet derzeit Google Analytics 3, das ab Juli 2023 nicht mehr unterstützt wird. <a href='https://meta.discourse.org/t/260498'>Aktualisiere jetzt auf Google Analytics 4</a>, um weiterhin wertvolle Einblicke und Analysen zur Leistung deiner Website zu erhalten."
|
||||
legacy_navigation_menu_deprecated: "Dein Discourse verwendet derzeit das „alte“ Navigationsmenü, das <a href='https://meta.discourse.org/t/removing-the-legacy-hamburger-navigation-menu-option/265274'>in der ersten Betaversion von Discourse 3.2</a> entfernt wird. Stelle auf das neue Navigationsmenü um, indem du deine <a href='%{base_path}/admin/site_settings/category/all_results?filter=navigation_menu'>Navigationsmenü-Website-Einstellung</a> auf „Seitenleiste“ oder „Kopfzeilen-Drop-down“ aktualisierst."
|
||||
site_settings:
|
||||
allow_bulk_invite: "Erlaube Masseneinladungen durch Hochladen einer CSV-Datei"
|
||||
disabled: "deaktiviert"
|
||||
|
|
|
@ -1502,7 +1502,6 @@ en:
|
|||
unreachable_themes: "We were unable to check for updates on the following themes:"
|
||||
watched_word_regexp_error: "The regular expression for '%{action}' watched words is invalid. Please check your <a href='%{base_path}/admin/customize/watched_words'>Watched Word settings</a>, or disable the 'watched words regular expressions' site setting."
|
||||
v3_analytics_deprecated: "Your Discourse is currently using Google Analytics 3, which will no longer be supported after July 2023. <a href='https://meta.discourse.org/t/260498'>Upgrade to Google Analytics 4</a> now to continue receiving valuable insights and analytics for your website's performance."
|
||||
legacy_navigation_menu_deprecated: "Your Discourse is currently using the 'legacy' navigation menu which <a href='https://meta.discourse.org/t/removing-the-legacy-hamburger-navigation-menu-option/265274'>will be removed in the first beta release of Discourse 3.2</a>. Migrate to the new navigation menu by updating your <a href='%{base_path}/admin/site_settings/category/all_results?filter=navigation_menu'>navigation menu site setting</a> to 'sidebar' or 'header dropdown'."
|
||||
|
||||
site_settings:
|
||||
allow_bulk_invite: "Allow bulk invites by uploading a CSV file"
|
||||
|
|
|
@ -1387,7 +1387,6 @@ es:
|
|||
unreachable_themes: "No pudimos verificar actualizaciones de los siguientes temas:"
|
||||
watched_word_regexp_error: "Expresión regular no válida para las palabras vigiladas con acción de «%{action}». Por favor, revisa los <a href='%{base_path}/admin/customize/watched_words'>ajustes sobre palabras vigiladas</a> o desactiva el ajuste «watched words regular expressions»."
|
||||
v3_analytics_deprecated: "Tu Discourse utiliza actualmente Google Analytics 3, que dejará de ser compatible después de julio de 2023. <a href='https://meta.discourse.org/t/260498'>Actualízate a Google Analytics 4</a> ahora para seguir recibiendo información y análisis valiosos sobre el rendimiento de tu sitio web."
|
||||
legacy_navigation_menu_deprecated: "Tu Discourse utiliza actualmente el menú de navegación «heredado» que <a href='https://meta.discourse.org/t/removing-the-legacy-hamburger-navigation-menu-option/265274'>se eliminará en la primera versión beta de Discourse 3.2</a>. Migra al nuevo menú de navegación actualizando tu <a href='%{base_path}/admin/site_settings/category/all_results?filter=navigation_menu'>configuración del menú de navegación del sitio</a> a «barra lateral» o «encabezado desplegable»."
|
||||
site_settings:
|
||||
allow_bulk_invite: "Permitir invitaciones en masa subiendo un archivo CSV"
|
||||
disabled: "desactivado"
|
||||
|
|
|
@ -1406,7 +1406,6 @@ fi:
|
|||
unreachable_themes: "Näille teemoille ei voitu tarkistaa päivityksiä:"
|
||||
watched_word_regexp_error: "Säännöllinen lauseke %{action}-tyypin tarkkailuille sanoille ei kelpaa. Tarkista <a href='%{base_path}/admin/customize/watched_words'>tarkkailtujen sanojen asetukset</a> tai poista käytöstä \"watched words regular expressions\" -sivustoasetus."
|
||||
v3_analytics_deprecated: "Discoursesi käyttää tällä hetkellä Google Analytics 3:a, jota ei enää tueta heinäkuun 2023 jälkeen. <a href='https://meta.discourse.org/t/260498'>Päivitä Google Analytics 4:ään</a> nyt, jotta saat jatkossakin arvokkaita tietoja ja analytiikkaa verkkosivustosi suoriutumisesta."
|
||||
legacy_navigation_menu_deprecated: "Discoursesi käyttää tällä hetkellä vanhaa navigointivalikkoa, joka <a href='https://meta.discourse.org/t/removing-the-legacy-hamburger-navigation-menu-option/265274'>poistetaan Discourse 3.2:n ensimmäisessä beetaversiossa</a>. Siirry uuteen navigointivalikkoon päivittämällä <a href='%{base_path}/admin/site_settings/category/all_results?filter=navigation_menu'>navigation menu -sivustoasetukseksi</a> \"sidebar\" tai \"header dropdown\"."
|
||||
site_settings:
|
||||
allow_bulk_invite: "Salli joukkokutsut lataamalla CSV-tiedosto"
|
||||
disabled: "poistettu käytöstä"
|
||||
|
|
|
@ -1401,7 +1401,6 @@ fr:
|
|||
unreachable_themes: "Nous n'avons pas pu vérifier les mises à jour pour les thèmes suivants :"
|
||||
watched_word_regexp_error: "L'expression régulière pour détecter des mots suivis et déclencher l'action « %{action} » n'est pas valide. Veuillez vérifier la <a href='%{base_path}/admin/customize/watched_words'>configuration des mots surveillés</a> ou désactiver le paramètre « watched words regular expressions »."
|
||||
v3_analytics_deprecated: "Votre Discourse utilise actuellement Google Analytics 3, qui ne sera plus pris en charge après le mois de juillet 2023. <a href='https://meta.discourse.org/t/260498'>Passez à Google Analytics 4</a> dès maintenant pour continuer à recevoir des informations et des analyses précieuses sur les performances de votre site Web."
|
||||
legacy_navigation_menu_deprecated: "Votre Discourse utilise actuellement le menu de navigation hérité qui <a href='https://meta.discourse.org/t/removing-the-legacy-hamburger-navigation-menu-option/265274'>sera supprimé dans la première version bêta de Discourse 3.2</a>. Migrez vers le nouveau menu de navigation en mettant à jour le <a href='%{base_path}/admin/site_settings/category/all_results?filter=navigation_menu'>paramètre du menu de navigation</a> sur « barre latérale » ou « menu déroulant d'en-tête »."
|
||||
site_settings:
|
||||
allow_bulk_invite: "Autoriser l'envoi d'invitations multiples via l'importation d'un fichier CSV"
|
||||
disabled: "désactivé"
|
||||
|
|
|
@ -1521,7 +1521,6 @@ he:
|
|||
unreachable_themes: "לא הצלחתי לבדוק אם יש עדכונים לערכות העיצוב הבאות:"
|
||||
watched_word_regexp_error: "הביטוי הרגולרי למילים במעקב ‚%{action}’ שגוי. נא לבדוק את <a href='%{base_path}/admin/customize/watched_words'>הגדרות המילים במעקב</a> או ךהשבית את הגדרת האתר ‚ביטוי רגולרי למילים במעקב’."
|
||||
v3_analytics_deprecated: "ה־Discourse שלך משתמש כרגע ב־Google Analytics 3, שהתמיכה בו תיפסק אחרי יולי 2023. כדאי <a href='https://meta.discourse.org/t/260498'>לשדרג ל־Google Analytics 4</a> כעת כדי להמשיך לקבל תובנות מועילות בנוגע לביצועי האתר שלך."
|
||||
legacy_navigation_menu_deprecated: "ה־Discourse שלך משתמש עדיין בתפריט הניווט ה‚מיושן’ ש<a href='https://meta.discourse.org/t/removing-the-legacy-hamburger-navigation-menu-option/265274'>יוסר במהדורת הבטא הראשונה של Discourse 3.2</a>. כדי לעבור לתפריט הניווט החדש על ידי עדכון <a href='%{base_path}/admin/site_settings/category/all_results?filter=navigation_menu'>הגדרת תפריט הניווט באתר</a> שלך ל־‚sidebar’ (סרגל צד) או ל־‚header dropdown’ (תפריט נגלל משורת הכותרת)."
|
||||
site_settings:
|
||||
allow_bulk_invite: "לאפשר הזמנות במרוכז על ידי העלאת קובץ CSV"
|
||||
disabled: "מושבת"
|
||||
|
|
|
@ -1186,7 +1186,6 @@ id:
|
|||
other: "Email polling telah menghasilkan %{count} kesalahan dalam 24 jam terakhir. Lihatlah <a href='%{base_path}/logs' target='_blank'>log</a> untuk lebih jelasnya."
|
||||
missing_mailgun_api_key: "Server dikonfigurasi untuk mengirim email melalui Mailgun tetapi Anda belum memberikan kunci API yang digunakan untuk memverifikasi pesan webhook."
|
||||
v3_analytics_deprecated: "Wacana Anda saat ini menggunakan Google Analytics 3, yang tidak akan didukung lagi setelah Juli 2023.0 <a href='https://meta.discourse.org/t/260498'>ke Google Analytics 4</a> sekarang untuk terus menerima wawasan dan analitik berharga untuk kinerja situs web Anda."
|
||||
legacy_navigation_menu_deprecated: "Discourse Anda saat ini menggunakan menu navigasi 'lama' yang <a href='https://meta.discourse.org/t/removing-the-legacy-hamburger-navigation-menu-option/265274'>akan dihapus pada rilis beta pertama Discourse 3.2</a>. Migrasi ke menu navigasi yang baru dengan memperbarui pengaturan situs menu navigasi <a href='%{base_path}/admin/site_settings/category/all_results?filter=navigation_menu'></a> ke 'sidebar' atau 'header dropdown'."
|
||||
site_settings:
|
||||
disabled: "dinonaktifkan"
|
||||
allow_user_locale: "Perbolehkan pengguna untuk memilih bahasa sendiri"
|
||||
|
|
|
@ -1408,7 +1408,6 @@ it:
|
|||
unreachable_themes: "Non è stato possibile verificare la presenza di aggiornamenti per i seguenti temi:"
|
||||
watched_word_regexp_error: "L'espressione regolare per le parole osservate %{action} non è valida. Per favore verifica le tue <a href='%{base_path}/admin/customize/watched_words'>Impostazioni sulle Parole Osservate</a>, o disabilita l'impostazione del sito 'watched words regular expressions'."
|
||||
v3_analytics_deprecated: "Il tuo Discourse utilizza attualmente Google Analytics 3, che non sarà più supportato dopo luglio 2023. <a href='https://meta.discourse.org/t/260498'>Passa a Google Analytics 4</a> ora per continuare a ricevere preziose informazioni e analisi per le prestazioni del tuo sito web."
|
||||
legacy_navigation_menu_deprecated: "Il tuo Discourse sta attualmente utilizzando il menu di navigazione \"legacy\" che <a href='https://meta.discourse.org/t/removing-the-legacy-hamburger-navigation-menu-option/265274'>verrà rimosso nella prima versione beta di Discourse 3.2</a>. Passa al nuovo menu di navigazione aggiornando la tua impostazione <a href='%{base_path}/admin/site_settings/category/all_results?filter=navigation_menu'>del sito del menu di navigazione</a> su \"barra laterale\" o \"elenco a discesa dell'intestazione\"."
|
||||
site_settings:
|
||||
allow_bulk_invite: "Consenti inviti di massa caricando un file CSV"
|
||||
disabled: "disabilitato"
|
||||
|
|
|
@ -1334,7 +1334,6 @@ ja:
|
|||
unreachable_themes: "次のテーマの更新を確認できませんでした:"
|
||||
watched_word_regexp_error: "'%{action}' のウォッチ語の正規表現は無効です。<a href='%{base_path}/admin/customize/watched_words'>ウォッチ語の設定</a>を確認するか、'ウォッチ語の正規表現' サイト設定を無効にしてください。"
|
||||
v3_analytics_deprecated: "あなたの Discourse は現在 Google Analytics 3 を使用していますが、2023 年 7 月以降はサポートされなくなります。今すぐ <a href='https://meta.discourse.org/t/260498'>Google Analytics 4 にアップグレード</a>して、ウェブサイトのパフォーマンスに関する貴重なインサイトと分析を引き続き受け取りましょう。"
|
||||
legacy_navigation_menu_deprecated: "Discourse は現在「レガシー」ナビゲーションメニューを使用していますが、<a href='https://meta.discourse.org/t/removing-the-legacy-hamburger-navigation-menu-option/265274'>Discourse 3.2 の最初のベータリリースで削除されます</a>。<a href='%{base_path}/admin/site_settings/category/all_results?filter=navigation_menu'>ナビゲーションメニューのサイトの設定</a>を「サイドバー」または「ヘッダードロップダウン」に更新して、新しいナビゲーションメニューに移行してください。"
|
||||
site_settings:
|
||||
allow_bulk_invite: "CSV ファイルのアップロードによる一括招待を許可する"
|
||||
disabled: "無効"
|
||||
|
|
|
@ -1401,7 +1401,6 @@ nl:
|
|||
unreachable_themes: "We konden niet op updates controleren voor de volgende thema's:"
|
||||
watched_word_regexp_error: "De reguliere expressie voor '%{action}' geobserveerde woorden is ongeldig. Controleer je <a href='%{base_path}/admin/customize/watched_words'>instellingen voor geobserveerde woorden</a> of schakel de website-instelling 'reguliere expressies voor geobserveerde woorden' uit."
|
||||
v3_analytics_deprecated: "Je Discourse gebruikt momenteel Google Analytics 3, dat na juli 2023 niet meer wordt ondersteund. <a href='https://meta.discourse.org/t/260498'>Upgrade nu naar Google Analytics 4</a> om waardevolle inzichten en analyses te blijven ontvangen voor de prestaties van je website."
|
||||
legacy_navigation_menu_deprecated: "Je Discourse gebruikt momenteel het 'verouderde' navigatiemenu dat <a href='https://meta.discourse.org/t/removing-the-legacy-hamburger-navigation-menu-option/265274'>wordt verwijderd in de eerste bètaversie van Discourse 3.2</a>. Migreer naar het nieuwe navigatiemenu door de site-instelling van je <a href='%{base_path}/admin/site_settings/category/all_results?filter=navigation_menu'>navigatiemenu</a> bij te werken naar 'Zijbalk' of 'Vervolgkeuzelijst kop'."
|
||||
site_settings:
|
||||
allow_bulk_invite: "Bulkuitnodigingen toestaan door een CSV-bestand te uploaden"
|
||||
disabled: "uitgeschakeld"
|
||||
|
|
|
@ -1517,7 +1517,6 @@ pl_PL:
|
|||
unreachable_themes: "Nie byliśmy w stanie sprawdzić aktualizacji następujących tematów:"
|
||||
watched_word_regexp_error: "Wyrażenie regularne dla '%{action}' jest nieprawidłowe. Sprawdź ustawienia <a href='%{base_path}/admin/customize/watched_words'>obserwowanych słów</a> lub wyłącz ustawienie witryny „obserwowane słowa regularne”."
|
||||
v3_analytics_deprecated: "Twój Discourse używa obecnie Google Analytics 3, które nie będzie już wspierane po lipcu 2023 roku. <a href='https://meta.discourse.org/t/260498'>Uaktualnij do Google Analytics 4</a> teraz, aby nadal otrzymywać cenne informacje i analizy dotyczące wydajności twojej strony."
|
||||
legacy_navigation_menu_deprecated: "Twój Discourse używa obecnie \"starszego\" menu nawigacyjnego, które <a href='https://meta.discourse.org/t/removing-the-legacy-hamburger-navigation-menu-option/265274'>zostanie usunięte w pierwszej wersji beta Discourse 3.2</a>. Przeprowadź migrację do nowego menu nawigacyjnego, aktualizując ustawienia witryny menu nawigacyjnego <a href='%{base_path}/admin/site_settings/category/all_results?filter=navigation_menu'></a> do 'sidebar' lub 'header dropdown'."
|
||||
site_settings:
|
||||
allow_bulk_invite: "Zezwalaj na zaproszenia zbiorcze, przesyłając plik CSV"
|
||||
disabled: "wyłączone"
|
||||
|
|
|
@ -1401,7 +1401,6 @@ pt_BR:
|
|||
unreachable_themes: "Não foi possível verificar se há atualizações para os seguintes temas:"
|
||||
watched_word_regexp_error: "A expressão regular para \"%{action}\" palavras acompanhadas é inválida. Verifique as <a href='%{base_path}/admin/customize/watched_words'>configurações de palavras acompanhadas</a> ou desative as \"configurações do site para expressões regulares\"."
|
||||
v3_analytics_deprecated: "Atualmente, seu Discourse está usando o Google Analytics 3, que não será mais compatível depois de julho de 2023. <a href='https://meta.discourse.org/t/260498'>Atualize para o Google Analytics 4</a> agora para continuar recebendo informações e análises valiosas para o desempenho do seu site."
|
||||
legacy_navigation_menu_deprecated: "Atualmente, seu Discourse está usando o menu de navegação herdado, que <a href='https://meta.discourse.org/t/removing-the-legacy-hamburger-navigation-menu-option/265274'>será removido no lançamento da primeira versão beta do Discourse 3.2</a>. Migre para o novo menu de navegação ao atualizar as <a href='%{base_path}/admin/site_settings/category/all_results?filter=navigation_menu'>configurações do site do menu de navegação</a> para \"barra lateral\" ou \"menu de cascada do cabeçalho\"."
|
||||
site_settings:
|
||||
allow_bulk_invite: "Permitir convites em massa com o uso de um arquivo CSV"
|
||||
disabled: "desativado(a)"
|
||||
|
|
|
@ -1493,7 +1493,6 @@ ru:
|
|||
unreachable_themes: "Не удается проверить наличие обновлений для следующих тем:"
|
||||
watched_word_regexp_error: "Недопустимое регулярное выражение для контролируемых слов типа «%{action}». Проверьте <a href='%{base_path}/admin/customize/watched_words'>параметры контролируемых слов</a> или отключите в настройках сайта пункт «Контролируемые слова представлены регулярными выражениями»."
|
||||
v3_analytics_deprecated: "Ваша версия Discourse использует Google Аналитику 3, поддержка которой прекратится после июля 2023 года. <a href='https://meta.discourse.org/t/260498'>Обновитесь до Google Аналитики 4</a> — так вы сможете и в дальнейшем получать ценную информацию и статистику о работе веб-сайта."
|
||||
legacy_navigation_menu_deprecated: "Ваша версия Discourse использует настройку меню навигации «Старая версия», которая <a href='https://meta.discourse.org/t/removing-the-legacy-hamburger-navigation-menu-option/265274'>будет удалено в первой бета-версии Discourse 3.2</a>. Перейдите на новое меню навигации — измените <a href='%{base_path}/admin/site_settings/category/all_results?filter=navigation_menu'>настройку сайта для меню навигации</a> на «Боковую панель» или «Выпадающий список заголовка»."
|
||||
site_settings:
|
||||
allow_bulk_invite: "Разрешить массовые приглашения путём загрузки CSV-файла"
|
||||
disabled: "отключено"
|
||||
|
|
|
@ -1401,7 +1401,6 @@ sv:
|
|||
unreachable_themes: "Vi kunde inte kontrollera uppdateringar för följande teman:"
|
||||
watched_word_regexp_error: "Det reguljära uttrycket för '%{action}'-bevakade ord är ogiltigt. Kontrollera dina <a href='%{base_path}/admin/customize/watched_words'>inställningar för bevakade ord</a> eller inaktivera webbplatsinställningen 'Reguljära uttryck för bevakade ord'."
|
||||
v3_analytics_deprecated: "Din Discourse använder för närvarande Google Analytics 3, som inte längre kommer att stödjas efter juli 2023. <a href='https://meta.discourse.org/t/260498'>Uppgradera till Google Analytics 4</a> nu för att fortsätta att få värdefulla insikter i, och analyser av, din webbplats prestanda."
|
||||
legacy_navigation_menu_deprecated: "Din Discourse använder för närvarande den \"äldre\" navigeringsmenyn som <a href='https://meta.discourse.org/t/removing-the-legacy-hamburger-navigation-menu-option/265274'>kommer att tas bort i den första betaversionen av Discourse 3.2</a>. Migrera till den nya navigeringsmenyn genom att uppdatera din <a href='%{base_path}/admin/site_settings/category/all_results?filter=navigation_menu'>webbplatsinställning för navigeringsmenyer</a> till 'sidebar' eller 'header dropdown'."
|
||||
site_settings:
|
||||
allow_bulk_invite: "Tillåt massinbjudningar genom att ladda upp en CSV-fil"
|
||||
disabled: "inaktiverade"
|
||||
|
|
|
@ -1398,7 +1398,6 @@ tr_TR:
|
|||
unreachable_themes: "Aşağıdaki temalarda güncelleme olup olmadığını kontrol edemedik:"
|
||||
watched_word_regexp_error: "\"%{action}\" izlenen sözcükler için normal ifade geçersiz. Lütfen <a href='%{base_path}/admin/customize/watched_words'>İzlenen Kelime ayarlarınızı</a>kontrol edin veya \"izlenen kelimeler sıradan ifadeler\" site ayarını devre dışı bırakın."
|
||||
v3_analytics_deprecated: "Discourse'unuz şu anda Temmuz 2023'ten sonra artık desteklenmeyecek olan Google Analytics 3'ü kullanıyor. Web sitenizin performansı hakkında değerli bilgiler ve analizler almaya devam etmek için hemen <a href='https://meta.discourse.org/t/260498'>Google Analytics 4'e yükseltin</a>."
|
||||
legacy_navigation_menu_deprecated: "Discourse'unuz şu anda <a href='https://meta.discourse.org/t/removing-the-legacy-hamburger-navigation-menu-option/265274'>Discourse 3.2'nin</a>ilk beta sürümünde kaldırılacak olan \"eski\" gezinme menüsünü kullanıyor. <a href='%{base_path}/admin/site_settings/category/all_results?filter=navigation_menu'>Gezinme menüsü site ayarınızı</a> \"yan çubuk\" veya \"başlık açılır menüsü\" olarak güncelleyerek yeni gezinme menüsüne geçiş yapın."
|
||||
site_settings:
|
||||
allow_bulk_invite: "Bir CSV dosyası yükleyerek toplu davetlere izin verin"
|
||||
disabled: "devre dışı"
|
||||
|
|
|
@ -1521,7 +1521,6 @@ uk:
|
|||
unreachable_themes: "Ми не змогли перевірити наявність оновлень для наступних тем:"
|
||||
watched_word_regexp_error: "Неприпустимий регулярний вираз для '%{action}' контрольованих слів. Будь ласка, перевірте ваші <a href='%{base_path}/admin/customize/watched_words'>Налаштування контрольованих слів</a>, або вимкніть параметр 'контрольовані слова представлені регулярними виразами'."
|
||||
v3_analytics_deprecated: "Ваш Discourse наразі використовує Google Analytics 3, яка більше не підтримуватиметься після липня 2023 року. <a href='https://meta.discourse.org/t/260498'>Оновіть Google Analytics 4</a> зараз, щоб і надалі отримувати цінну статистику та аналітику щодо ефективності вашого веб-сайту."
|
||||
legacy_navigation_menu_deprecated: "У вашому Discourse наразі використовується «застаріле» навігаційне меню, <a href='https://meta.discourse.org/t/removing-the-legacy-hamburger-navigation-menu-option/265274'>буде видалено в першій бета-версії Discourse 3.2</a>. Перейдіть до нового навігаційного меню, оновивши налаштування сайту <a href='%{base_path}/admin/site_settings/category/all_results?filter=navigation_menu'>навігаційного меню</a> на «бічній панелі» або «випадаючому списку заголовка»."
|
||||
site_settings:
|
||||
allow_bulk_invite: "Дозволити масові запрошення, шляхом завантаження файлу CSV"
|
||||
disabled: "вимкнуто"
|
||||
|
|
|
@ -1343,7 +1343,6 @@ zh_CN:
|
|||
unreachable_themes: "我们无法检查以下主题的更新:"
|
||||
watched_word_regexp_error: "'%{action}' 关注词的正则表达式无效。请检查您的<a href='%{base_path}/admin/customize/watched_words'>关注词设置</a>,或禁用“关注词正则表达式”站点设置。"
|
||||
v3_analytics_deprecated: "您的 Discourse 目前使用的是 Google Analytics(分析)3,2023 年 7 月后该版本将不受支持。立即<a href='https://meta.discourse.org/t/260498'>升级到Google Analytics(分析)4</a> ,以继续接收有价值的见解和分析,了解您的网站性能。"
|
||||
legacy_navigation_menu_deprecated: "您的 Discourse 目前使用的是“旧版”导航菜单,<a href='https://meta.discourse.org/t/removing-the-legacy-hamburger-navigation-menu-option/265274'>该菜单将在 Discourse 3.2 的第一个测试版中移除</a>。更新您的<a href='%{base_path}/admin/site_settings/category/all_results?filter=navigation_menu'>导航菜单站点设置</a>为 'sidebar' 或 'header dropdown',迁移到新的导航菜单。"
|
||||
site_settings:
|
||||
allow_bulk_invite: "允许通过上传 CSV 文件批量邀请"
|
||||
disabled: "已禁用"
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class MigrateLegacyNavigationMenuSiteSetting < ActiveRecord::Migration[7.0]
|
||||
def up
|
||||
execute "UPDATE site_settings SET value = 'header dropdown' WHERE name = 'navigation_menu' AND value = 'legacy'"
|
||||
end
|
||||
|
||||
def down
|
||||
raise ActiveRecord::IrreversibleMigration
|
||||
end
|
||||
end
|
|
@ -6,7 +6,7 @@ RSpec.describe "List channels | no sidebar", type: :system do
|
|||
let(:chat) { PageObjects::Pages::Chat.new }
|
||||
|
||||
before do
|
||||
SiteSetting.navigation_menu = "legacy"
|
||||
SiteSetting.navigation_menu = "header dropdown"
|
||||
chat_system_bootstrap
|
||||
sign_in(current_user)
|
||||
end
|
||||
|
|
|
@ -13,7 +13,7 @@ RSpec.describe "Navigation", type: :system do
|
|||
before do
|
||||
chat_system_bootstrap(user, [category_channel, category_channel_2])
|
||||
sign_in(user)
|
||||
SiteSetting.navigation_menu = "legacy"
|
||||
SiteSetting.navigation_menu = "header dropdown"
|
||||
end
|
||||
|
||||
it "uses chat (not core) sidebar" do
|
||||
|
|
|
@ -45,18 +45,6 @@ RSpec.describe AdminDashboardData do
|
|||
expect(problems.map(&:to_s)).to include("a problem was found")
|
||||
end
|
||||
end
|
||||
|
||||
describe "when `navigation_menu` site setting is `legacy`" do
|
||||
it "should include the right problem message" do
|
||||
SiteSetting.set(:navigation_menu, "legacy")
|
||||
|
||||
problem = AdminDashboardData.fetch_problems.last
|
||||
|
||||
expect(problem.message).to include(
|
||||
I18n.t("dashboard.legacy_navigation_menu_deprecated", base_path: Discourse.base_path),
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe "adding scheduled checks" do
|
||||
|
|
|
@ -673,36 +673,20 @@ RSpec.describe TopicTrackingState do
|
|||
)
|
||||
end
|
||||
|
||||
it "includes tags when SiteSetting.navigation_menu is not legacy" do
|
||||
SiteSetting.navigation_menu = "legacy"
|
||||
report = TopicTrackingState.report(user)
|
||||
expect(report.length).to eq(1)
|
||||
row = report[0]
|
||||
expect(row.respond_to?(:tags)).to eq(false)
|
||||
it "includes tags based on the `tagging_enabled` site setting" do
|
||||
SiteSetting.tagging_enabled = false
|
||||
|
||||
SiteSetting.navigation_menu = "sidebar"
|
||||
|
||||
report = TopicTrackingState.report(user)
|
||||
expect(report.length).to eq(1)
|
||||
row = report[0]
|
||||
expect(row.tags).to contain_exactly("apples", "bananas")
|
||||
end
|
||||
|
||||
it "includes tags when TopicTrackingState.include_tags_in_report option is enabled" do
|
||||
SiteSetting.navigation_menu = "legacy"
|
||||
report = TopicTrackingState.report(user)
|
||||
expect(report.length).to eq(1)
|
||||
row = report[0]
|
||||
expect(row.respond_to? :tags).to eq(false)
|
||||
|
||||
TopicTrackingState.include_tags_in_report = true
|
||||
SiteSetting.tagging_enabled = true
|
||||
|
||||
report = TopicTrackingState.report(user)
|
||||
expect(report.length).to eq(1)
|
||||
row = report[0]
|
||||
expect(row.tags).to contain_exactly("apples", "bananas")
|
||||
ensure
|
||||
TopicTrackingState.include_tags_in_report = false
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -64,14 +64,6 @@ RSpec.describe User do
|
|||
).to contain_exactly(tag.id, hidden_tag.id)
|
||||
end
|
||||
|
||||
it "should not create any sidebar section link records when navigation_menu site setting is still legacy" do
|
||||
SiteSetting.navigation_menu = "legacy"
|
||||
|
||||
user = Fabricate(:user)
|
||||
|
||||
expect(SidebarSectionLink.exists?(user_id: user.id)).to eq(false)
|
||||
end
|
||||
|
||||
it "should not create any sidebar section link records for staged users" do
|
||||
user = Fabricate(:user, staged: true)
|
||||
|
||||
|
|
|
@ -324,6 +324,15 @@
|
|||
"null"
|
||||
]
|
||||
},
|
||||
"sidebar_tags": {
|
||||
"type": "array"
|
||||
},
|
||||
"sidebar_category_ids": {
|
||||
"type": "array"
|
||||
},
|
||||
"display_sidebar_tags": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"user_auth_tokens": {
|
||||
"type": "array",
|
||||
"items":
|
||||
|
|
|
@ -8,7 +8,6 @@ RSpec.describe "users" do
|
|||
|
||||
before do
|
||||
SiteSetting.tagging_enabled = true
|
||||
SiteSetting.navigation_menu = "legacy"
|
||||
Jobs.run_immediately!
|
||||
sign_in(admin)
|
||||
end
|
||||
|
|
|
@ -389,12 +389,6 @@ RSpec.describe NotificationsController do
|
|||
get "/notifications.json", params: { recent: true }
|
||||
expect(response.status).to eq(200)
|
||||
expect_correct_notifications(response)
|
||||
|
||||
SiteSetting.navigation_menu = "legacy"
|
||||
|
||||
get "/notifications.json", params: { recent: true }
|
||||
expect(response.status).to eq(200)
|
||||
expect_correct_notifications(response)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -405,12 +399,6 @@ RSpec.describe NotificationsController do
|
|||
get "/notifications.json"
|
||||
expect(response.status).to eq(200)
|
||||
expect_correct_notifications(response)
|
||||
|
||||
SiteSetting.navigation_menu = "legacy"
|
||||
|
||||
get "/notifications.json"
|
||||
expect(response.status).to eq(200)
|
||||
expect_correct_notifications(response)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -283,12 +283,6 @@ RSpec.describe CurrentUserSerializer do
|
|||
)
|
||||
end
|
||||
|
||||
it "is included when navigation menu is legacy" do
|
||||
SiteSetting.navigation_menu = "legacy"
|
||||
|
||||
expect(serializer.as_json[:new_personal_messages_notifications_count]).to eq(1)
|
||||
end
|
||||
|
||||
it "is included when sidebar is enabled" do
|
||||
SiteSetting.navigation_menu = "sidebar"
|
||||
|
||||
|
|
|
@ -155,13 +155,6 @@ RSpec.describe SiteSerializer do
|
|||
expect(serialized[:anonymous_default_navigation_menu_tags]).to eq(nil)
|
||||
end
|
||||
|
||||
it "is not included in the serialised object when navigation menu is legacy" do
|
||||
SiteSetting.navigation_menu = "legacy"
|
||||
|
||||
serialized = described_class.new(Site.new(guardian), scope: guardian, root: false).as_json
|
||||
expect(serialized[:anonymous_default_navigation_menu_tags]).to eq(nil)
|
||||
end
|
||||
|
||||
it "is not included in the serialised object when user is not anonymous" do
|
||||
guardian = Guardian.new(user)
|
||||
|
||||
|
@ -339,14 +332,6 @@ RSpec.describe SiteSerializer do
|
|||
)
|
||||
end
|
||||
|
||||
it "should not be serialized if `navigation_menu` site setting is set to `legacy`" do
|
||||
SiteSetting.set(:navigation_menu, "legacy")
|
||||
|
||||
serialized = described_class.new(Site.new(guardian), scope: guardian, root: false).as_json
|
||||
|
||||
expect(serialized[:navigation_menu_site_top_tags]).to eq(nil)
|
||||
end
|
||||
|
||||
it "should not be serialized if `tagging_enabled` site setting is set to false" do
|
||||
SiteSetting.set(:tagging_enabled, false)
|
||||
|
||||
|
|
|
@ -4,8 +4,6 @@ RSpec.describe TopicTrackingStateItemSerializer do
|
|||
fab!(:user) { Fabricate(:user) }
|
||||
fab!(:post) { create_post }
|
||||
|
||||
before { SiteSetting.navigation_menu = "legacy" }
|
||||
|
||||
it "serializes topic tracking state reports" do
|
||||
report = TopicTrackingState.report(user)
|
||||
serialized = described_class.new(report[0], scope: Guardian.new(user), root: false).as_json
|
||||
|
@ -17,11 +15,10 @@ RSpec.describe TopicTrackingStateItemSerializer do
|
|||
expect(serialized[:notification_level]).to eq(nil)
|
||||
expect(serialized[:created_in_new_period]).to eq(true)
|
||||
expect(serialized[:treat_as_new_topic_start_date]).to be_present
|
||||
expect(serialized.has_key?(:tags)).to eq(false)
|
||||
end
|
||||
|
||||
it "includes tags attribute when tags are present" do
|
||||
TopicTrackingState.include_tags_in_report = true
|
||||
it "includes tags attribute when `tagging_enabled` site setting is `true`" do
|
||||
SiteSetting.tagging_enabled = true
|
||||
|
||||
post.topic.notifier.watch_topic!(post.topic.user_id)
|
||||
|
||||
|
@ -35,7 +32,5 @@ RSpec.describe TopicTrackingStateItemSerializer do
|
|||
serialized = described_class.new(report[0], scope: Guardian.new(user), root: false).as_json
|
||||
|
||||
expect(serialized[:tags]).to contain_exactly("bananas", "apples")
|
||||
ensure
|
||||
TopicTrackingState.include_tags_in_report = false
|
||||
end
|
||||
end
|
||||
|
|
|
@ -13,8 +13,6 @@ RSpec.describe WebHookUserSerializer do
|
|||
WebHookUserSerializer.new(user, scope: Guardian.new(admin), root: false)
|
||||
end
|
||||
|
||||
before { SiteSetting.navigation_menu = "legacy" }
|
||||
|
||||
it "should include relevant user info" do
|
||||
payload = serializer.as_json
|
||||
expect(payload[:email]).to eq(user.email)
|
||||
|
|
|
@ -25,14 +25,6 @@ RSpec.shared_examples "User Sidebar Serializer Attributes" do |serializer_klass|
|
|||
Fabricate(:category_sidebar_section_link, user: user, linkable: private_category)
|
||||
end
|
||||
|
||||
it "is not included when navigation menu is legacy" do
|
||||
SiteSetting.navigation_menu = "legacy"
|
||||
|
||||
json = serializer.as_json
|
||||
|
||||
expect(json[:sidebar_category_ids]).to eq(nil)
|
||||
end
|
||||
|
||||
it 'serializes only the categories that the user can see when sidebar has been enabled"' do
|
||||
SiteSetting.navigation_menu = "sidebar"
|
||||
|
||||
|
@ -73,15 +65,6 @@ RSpec.shared_examples "User Sidebar Serializer Attributes" do |serializer_klass|
|
|||
Fabricate(:tag_sidebar_section_link, user: user, linkable: hidden_tag)
|
||||
end
|
||||
|
||||
it "is not included when navigation menu is legacy" do
|
||||
SiteSetting.navigation_menu = "legacy"
|
||||
SiteSetting.tagging_enabled = true
|
||||
|
||||
json = serializer.as_json
|
||||
|
||||
expect(json[:sidebar_tags]).to eq(nil)
|
||||
end
|
||||
|
||||
it "is not included when tagging has not been enabled" do
|
||||
SiteSetting.navigation_menu = "sidebar"
|
||||
SiteSetting.tagging_enabled = false
|
||||
|
@ -117,13 +100,6 @@ RSpec.shared_examples "User Sidebar Serializer Attributes" do |serializer_klass|
|
|||
describe "#display_sidebar_tags" do
|
||||
fab!(:tag) { Fabricate(:tag) }
|
||||
|
||||
it "should not be included in serialised object when navigation menu is legacy" do
|
||||
SiteSetting.tagging_enabled = true
|
||||
SiteSetting.navigation_menu = "legacy"
|
||||
|
||||
expect(serializer.as_json[:display_sidebar_tags]).to eq(nil)
|
||||
end
|
||||
|
||||
it "should not be included in serialised object when tagging has been disabled" do
|
||||
SiteSetting.tagging_enabled = false
|
||||
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module PageObjects
|
||||
module Components
|
||||
class LegacyHeaderDropdown < PageObjects::Components::Base
|
||||
def click
|
||||
page.find(".hamburger-dropdown").click
|
||||
end
|
||||
|
||||
def visible?
|
||||
page.has_css?(".menu-container-general-links")
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -9,29 +9,6 @@ describe "Viewing sidebar as logged in user", type: :system do
|
|||
|
||||
before { sign_in(user) }
|
||||
|
||||
describe "when using the legacy navigation menu" do
|
||||
before { SiteSetting.navigation_menu = "legacy" }
|
||||
|
||||
it "should display the sidebar when `navigation_menu` query param is 'sidebar'" do
|
||||
visit("/latest?navigation_menu=sidebar")
|
||||
|
||||
expect(sidebar).to be_visible
|
||||
expect(sidebar).to have_category_section_link(category_sidebar_section_link.linkable)
|
||||
expect(page).not_to have_css(".hamburger-dropdown")
|
||||
end
|
||||
|
||||
it "should display the sidebar dropdown menu when `navigation_menu` query param is 'header_dropdown'" do
|
||||
visit("/latest?navigation_menu=header_dropdown")
|
||||
|
||||
expect(sidebar).to be_not_visible
|
||||
|
||||
header_dropdown = PageObjects::Components::SidebarHeaderDropdown.new
|
||||
header_dropdown.click
|
||||
|
||||
expect(header_dropdown).to be_visible
|
||||
end
|
||||
end
|
||||
|
||||
describe "when using the header dropdown navigation menu" do
|
||||
before { SiteSetting.navigation_menu = "header dropdown" }
|
||||
|
||||
|
@ -41,33 +18,11 @@ describe "Viewing sidebar as logged in user", type: :system do
|
|||
expect(sidebar).to be_visible
|
||||
expect(page).not_to have_css(".hamburger-dropdown")
|
||||
end
|
||||
|
||||
it "should display the legacy dropdown menu when `navigation_menu` query param is 'legacy'" do
|
||||
visit("/latest?navigation_menu=legacy")
|
||||
|
||||
expect(sidebar).to be_not_visible
|
||||
|
||||
legacy_header_dropdown = PageObjects::Components::LegacyHeaderDropdown.new
|
||||
legacy_header_dropdown.click
|
||||
|
||||
expect(legacy_header_dropdown).to be_visible
|
||||
end
|
||||
end
|
||||
|
||||
describe "when using the sidebar navigation menu" do
|
||||
before { SiteSetting.navigation_menu = "sidebar" }
|
||||
|
||||
it "should display the legacy dropdown menu when `navigation_menu` query param is 'legacy'" do
|
||||
visit("/latest?navigation_menu=legacy")
|
||||
|
||||
expect(sidebar).to be_not_visible
|
||||
|
||||
legacy_header_dropdown = PageObjects::Components::LegacyHeaderDropdown.new
|
||||
legacy_header_dropdown.click
|
||||
|
||||
expect(legacy_header_dropdown).to be_visible
|
||||
end
|
||||
|
||||
it "should display the sidebar dropdown menu when `navigation_menu` query param is 'header_dropdown'" do
|
||||
visit("/latest?navigation_menu=header_dropdown")
|
||||
|
||||
|
|
Loading…
Reference in New Issue