From 16f544ef2ba46fc49e8aa71de173d6303d54c93a Mon Sep 17 00:00:00 2001 From: Kalle <38327916+Sendouc@users.noreply.github.com> Date: Sun, 6 Sep 2026 15:55:13 +0300 Subject: [PATCH] Misc edit widgets page tweaks --- .../components/WidgetSettingsForm.tsx | 7 +- .../user-page/core/widgets/portfolio.ts | 2 +- .../core/widgets/widget-form-schemas.ts | 28 +++++--- .../u.$identifier.edit-widgets.module.css | 11 +++ .../routes/u.$identifier.edit-widgets.tsx | 21 ++++-- app/features/user-page/user-page-constants.ts | 8 +++ .../user-page/user-page-schemas.test.ts | 69 +++++++++++++++++++ app/features/user-page/user-page-schemas.ts | 3 + locales/da/user.json | 18 +---- locales/de/user.json | 18 +---- locales/en/user.json | 18 +---- locales/es-ES/user.json | 18 +---- locales/es-US/user.json | 18 +---- locales/fr-CA/user.json | 18 +---- locales/fr-EU/user.json | 18 +---- locales/he/user.json | 18 +---- locales/it/user.json | 18 +---- locales/ja/user.json | 18 +---- locales/ko/user.json | 18 +---- locales/nl/user.json | 18 +---- locales/pl/user.json | 18 +---- locales/pt-BR/user.json | 18 +---- locales/ru/user.json | 18 +---- locales/zh/user.json | 18 +---- 24 files changed, 161 insertions(+), 276 deletions(-) diff --git a/app/features/user-page/components/WidgetSettingsForm.tsx b/app/features/user-page/components/WidgetSettingsForm.tsx index 83c32f805..fd74a6767 100644 --- a/app/features/user-page/components/WidgetSettingsForm.tsx +++ b/app/features/user-page/components/WidgetSettingsForm.tsx @@ -10,7 +10,7 @@ import { TIMEZONE_OPTIONS, } from "../core/widgets/widget-form-schemas"; import type { loader } from "../loaders/u.$identifier.edit-widgets.server"; -import { USER } from "../user-page-constants"; +import { SENS_OPTIONS, USER } from "../user-page-constants"; import { GameBadgeSelectField } from "./GameBadgeSelectField"; export function WidgetSettingsForm({ @@ -144,11 +144,6 @@ function FavoriteBadgesField() { ); } -const SENS_OPTIONS = [ - -50, -45, -40, -35, -30, -25, -20, -15, -10, -5, 0, 5, 10, 15, 20, 25, 30, 35, - 40, 45, 50, -]; - function SensFields() { const { t } = useTranslation(["user"]); const { values, setValue, onFieldChange } = useFormFieldContext(); diff --git a/app/features/user-page/core/widgets/portfolio.ts b/app/features/user-page/core/widgets/portfolio.ts index 973573d50..0d63d7104 100644 --- a/app/features/user-page/core/widgets/portfolio.ts +++ b/app/features/user-page/core/widgets/portfolio.ts @@ -246,7 +246,7 @@ export const DEFAULT_WIDGETS: StoredWidget[] = [ { id: "teams" }, { id: "sens", - settings: { controller: "s2-pro-con", motionSens: null, stickSens: null }, + settings: { controller: "s1-pro-con", motionSens: null, stickSens: null }, }, { id: "join-date" }, ]; diff --git a/app/features/user-page/core/widgets/widget-form-schemas.ts b/app/features/user-page/core/widgets/widget-form-schemas.ts index 195c4a7b6..e58643a20 100644 --- a/app/features/user-page/core/widgets/widget-form-schemas.ts +++ b/app/features/user-page/core/widgets/widget-form-schemas.ts @@ -19,7 +19,8 @@ import { } from "~/form/fields"; import type { FormObjectSchema, SelectOption } from "~/form/types"; import { GAME_BADGE_IDS } from "~/modules/in-game-lists/game-badge-ids"; -import { USER } from "../../user-page-constants"; +import { superRefine } from "~/utils/schema"; +import { SENS_OPTIONS, USER } from "../../user-page-constants"; export const bioSchema = v.object({ bio: textAreaOptional({ @@ -47,11 +48,18 @@ export const xRankPeaksSchema = v.object({ }), }); -export const timezoneSchema = v.object({ - timezone: selectDynamic({ - label: "labels.timezone", +export const timezoneSchema = v.pipe( + v.object({ + timezone: selectDynamic({ + label: "labels.timezone", + }), }), -}); + superRefine((data, ctx) => { + if (TIMEZONES.includes(data.timezone)) return; + + ctx.addIssue({ message: "Invalid timezone", path: ["timezone"] }); + }), +); export const TIMEZONE_OPTIONS: SelectOption[] = TIMEZONES.map((tz) => ({ value: tz, @@ -67,8 +75,9 @@ export const favoriteStageSchema = v.object({ export const peakXpUnverifiedSchema = v.object({ peakXp: numberField({ label: "labels.peakXp", - minLength: 4, maxLength: 4, + min: USER.PEAK_XP_MIN, + max: USER.PEAK_XP_MAX, }), division: select({ label: "labels.division", @@ -87,6 +96,8 @@ export const peakXpWeaponSchema = v.object({ const CONTROLLERS = ["s1-pro-con", "s2-pro-con", "grip", "handheld"] as const; +const sensValueSchema = v.nullable(v.picklist(SENS_OPTIONS)); + export const sensSchema = v.object({ controller: select({ label: "labels.controller", @@ -94,10 +105,9 @@ export const sensSchema = v.object({ value: controller, label: `options.controller.${controller}` as const, })), - initialValue: "s2-pro-con", }), - motionSens: customField({ initialValue: null }, v.nullable(v.number())), - stickSens: customField({ initialValue: null }, v.nullable(v.number())), + motionSens: customField({ initialValue: null }, sensValueSchema), + stickSens: customField({ initialValue: null }, sensValueSchema), }); export const artSchema = v.object({ diff --git a/app/features/user-page/routes/u.$identifier.edit-widgets.module.css b/app/features/user-page/routes/u.$identifier.edit-widgets.module.css index f5eca1c4e..5299195ee 100644 --- a/app/features/user-page/routes/u.$identifier.edit-widgets.module.css +++ b/app/features/user-page/routes/u.$identifier.edit-widgets.module.css @@ -223,6 +223,17 @@ display: flex; flex-direction: column; gap: var(--s-4); + + /** Narrow profiles show the side widgets above the main ones, so the editor lists them in that order too. */ + & .sideSlotSection { + order: -1; + } + + @container (min-width: 768px) { + & .sideSlotSection { + order: 0; + } + } } .empty { diff --git a/app/features/user-page/routes/u.$identifier.edit-widgets.tsx b/app/features/user-page/routes/u.$identifier.edit-widgets.tsx index c93ef1e22..7255dc762 100644 --- a/app/features/user-page/routes/u.$identifier.edit-widgets.tsx +++ b/app/features/user-page/routes/u.$identifier.edit-widgets.tsx @@ -35,6 +35,7 @@ import { findWidgetById, maxWidgetsPerSlot, } from "~/features/user-page/core/widgets/portfolio"; +import type { WidgetId } from "~/features/user-page/core/widgets/types"; import { getWidgetFormSchema } from "~/features/user-page/core/widgets/widget-form-schemas"; import { USER } from "~/features/user-page/user-page-constants"; import { useUnsavedChangesChecker } from "~/form/UnsavedChangesGuard"; @@ -291,7 +292,7 @@ function AvailableWidgetsList({ if (!searchLower) return true; return [ - t(`user:widget.${widget.id}` as const), + t(widgetNameKey(widget.id)), t( `user:widgets.description.${widget.id}` as const, widgetDescriptionParams(widget.id), @@ -338,7 +339,7 @@ function AvailableWidgetsList({
- {t(`user:widget.${widget.id}` as const)} + {t(widgetNameKey(widget.id))} {isLocked ? (
-
+
{t("user:widgets.sideSlot")} @@ -556,7 +557,7 @@ function DraggableWidgetItem({ - {t(`user:widget.${widget.id}` as const)} + {t(widgetNameKey(widget.id))}
{hasSettings ? ( @@ -608,6 +609,18 @@ function WidgetNavIcon({ navItem }: { navItem?: string }) { ); } +/** Widgets whose name is shared with another one, spelled out so the editor lists stay unambiguous. */ +const EDITOR_WIDGET_NAME_KEYS = { + "bio-md": "user:widgets.editorName.bio-md", + "game-badges-small": "user:widgets.editorName.game-badges-small", +} as const; + +function widgetNameKey(widgetId: WidgetId) { + return widgetId in EDITOR_WIDGET_NAME_KEYS + ? EDITOR_WIDGET_NAME_KEYS[widgetId as keyof typeof EDITOR_WIDGET_NAME_KEYS] + : (`user:widget.${widgetId}` as const); +} + const WIDGET_DESCRIPTION_PARAMS: Record> = { "game-badges": { max: USER.GAME_BADGES_MAX }, "game-badges-small": { max: USER.GAME_BADGES_SMALL_MAX }, diff --git a/app/features/user-page/user-page-constants.ts b/app/features/user-page/user-page-constants.ts index cfefdff23..30ca5090a 100644 --- a/app/features/user-page/user-page-constants.ts +++ b/app/features/user-page/user-page-constants.ts @@ -16,8 +16,16 @@ export const USER = { GAME_BADGES_SMALL_MAX: 4, COUNTDOWN_TITLE_MAX_LENGTH: 50, MARKDOWN_WIDGET_MAX_LENGTH: 2000, + PEAK_XP_MIN: 1000, + PEAK_XP_MAX: 6000, }; +/** In-game sensitivity values (-5.0 to +5.0 in 0.5 steps), stored multiplied by ten. */ +export const SENS_OPTIONS = [ + -50, -45, -40, -35, -30, -25, -20, -15, -10, -5, 0, 5, 10, 15, 20, 25, 30, 35, + 40, 45, 50, +] as const; + export const SPL2_JOIN_ORDER_CUTOFF = 13_589; export const MATCHES_PER_SEASONS_PAGE = 8; diff --git a/app/features/user-page/user-page-schemas.test.ts b/app/features/user-page/user-page-schemas.test.ts index 295a2c298..2ab86cf98 100644 --- a/app/features/user-page/user-page-schemas.test.ts +++ b/app/features/user-page/user-page-schemas.test.ts @@ -19,4 +19,73 @@ describe("widgetsEditSchema", () => { expect(result.success).toBe(false); }); + + test("rejects the same widget twice", () => { + const result = v.safeParse(widgetsEditSchema(false), { + widgets: JSON.stringify([{ id: "join-date" }, { id: "join-date" }]), + }); + + expect(result.success).toBe(false); + }); + + test.each([ + { + why: "timezone outside the known list", + widget: { id: "timezone", settings: { timezone: "Mars/Olympus_Mons" } }, + }, + { + why: "peak XP below the minimum", + widget: { + id: "peak-xp-unverified", + settings: { peakXp: 0, division: "tentatek" }, + }, + }, + { + why: "peak XP above the maximum", + widget: { + id: "peak-xp-unverified", + settings: { peakXp: 99999, division: "tentatek" }, + }, + }, + { + why: "sensitivity outside the selectable values", + widget: { + id: "sens", + settings: { controller: "s1-pro-con", motionSens: 51, stickSens: null }, + }, + }, + ])("rejects $why", ({ widget }) => { + const result = v.safeParse(widgetsEditSchema(true), { + widgets: JSON.stringify([widget]), + }); + + expect(result.success).toBe(false); + }); + + test.each([ + { + why: "a timezone from the known list", + widget: { id: "timezone", settings: { timezone: "Europe/Helsinki" } }, + }, + { + why: "a four digit peak XP", + widget: { + id: "peak-xp-unverified", + settings: { peakXp: 3123, division: "takoroka" }, + }, + }, + { + why: "a selectable sensitivity", + widget: { + id: "sens", + settings: { controller: "s1-pro-con", motionSens: -25, stickSens: 5 }, + }, + }, + ])("accepts $why", ({ widget }) => { + const result = v.safeParse(widgetsEditSchema(true), { + widgets: JSON.stringify([widget]), + }); + + expect(result.success).toBe(true); + }); }); diff --git a/app/features/user-page/user-page-schemas.ts b/app/features/user-page/user-page-schemas.ts index a81d1db42..ad897b731 100644 --- a/app/features/user-page/user-page-schemas.ts +++ b/app/features/user-page/user-page-schemas.ts @@ -180,12 +180,15 @@ export const widgetsEditSchema = (isSupporter: boolean) => { v.minLength(1), v.maxLength(max.main + max.side), v.check((widgets) => { + const seenIds = new Set(); let mainCount = 0; let sideCount = 0; for (const w of widgets) { const def = findWidgetById(w.id); if (!def) return false; if (def.supporterOnly && !isSupporter) return false; + if (seenIds.has(w.id)) return false; + seenIds.add(w.id); if (def.slot === "main") mainCount++; else sideCount++; } diff --git a/locales/da/user.json b/locales/da/user.json index eaa4450fd..272850e44 100644 --- a/locales/da/user.json +++ b/locales/da/user.json @@ -90,6 +90,8 @@ "widgets.category.art": "", "widgets.category.friends": "", "widgets.category.game-badges": "", + "widgets.editorName.bio-md": "", + "widgets.editorName.game-badges-small": "", "widgets.description.bio": "", "widgets.description.bio-md": "", "widgets.description.trophies-owned": "", @@ -141,24 +143,8 @@ "widgets.description.live-stream": "", "widgets.description.countdown": "", "widgets.description.markdown": "", - "widgets.forms.bio": "", - "widgets.forms.bio.markdownSupport": "", - "widgets.forms.division": "", - "widgets.forms.division.both": "", - "widgets.forms.division.tentatek": "", - "widgets.forms.division.takoroka": "", - "widgets.forms.timezone": "", - "widgets.forms.favoriteStage": "", - "widgets.forms.weapon": "", - "widgets.forms.peakXp": "", - "widgets.forms.source": "", - "widgets.forms.source.ALL": "", - "widgets.forms.source.MADE-BY": "", - "widgets.forms.source.MADE-OF": "", - "widgets.forms.links": "", "widgets.forms.gameBadges": "", "widgets.forms.gameBadgesSearch": "", - "widgets.forms.tierListUrl": "", "widget.tier-list.untitled": "", "controllers.s1-pro-con": "", "controllers.s2-pro-con": "", diff --git a/locales/de/user.json b/locales/de/user.json index e615d20cf..a40f63f31 100644 --- a/locales/de/user.json +++ b/locales/de/user.json @@ -90,6 +90,8 @@ "widgets.category.art": "", "widgets.category.friends": "", "widgets.category.game-badges": "", + "widgets.editorName.bio-md": "", + "widgets.editorName.game-badges-small": "", "widgets.description.bio": "", "widgets.description.bio-md": "", "widgets.description.trophies-owned": "", @@ -141,24 +143,8 @@ "widgets.description.live-stream": "", "widgets.description.countdown": "", "widgets.description.markdown": "", - "widgets.forms.bio": "", - "widgets.forms.bio.markdownSupport": "", - "widgets.forms.division": "", - "widgets.forms.division.both": "", - "widgets.forms.division.tentatek": "", - "widgets.forms.division.takoroka": "", - "widgets.forms.timezone": "", - "widgets.forms.favoriteStage": "", - "widgets.forms.weapon": "", - "widgets.forms.peakXp": "", - "widgets.forms.source": "", - "widgets.forms.source.ALL": "", - "widgets.forms.source.MADE-BY": "", - "widgets.forms.source.MADE-OF": "", - "widgets.forms.links": "", "widgets.forms.gameBadges": "", "widgets.forms.gameBadgesSearch": "", - "widgets.forms.tierListUrl": "", "widget.tier-list.untitled": "", "controllers.s1-pro-con": "", "controllers.s2-pro-con": "", diff --git a/locales/en/user.json b/locales/en/user.json index ba45f3386..75bc22621 100644 --- a/locales/en/user.json +++ b/locales/en/user.json @@ -90,6 +90,8 @@ "widgets.category.art": "Art", "widgets.category.friends": "Friends", "widgets.category.game-badges": "Game Badges", + "widgets.editorName.bio-md": "Bio (Markdown)", + "widgets.editorName.game-badges-small": "Game Badges (Small)", "widgets.description.bio": "Share freeform information about yourself", "widgets.description.bio-md": "Share freeform information about yourself with markdown formatting", "widgets.description.trophies-owned": "Display your earned trophies", @@ -141,24 +143,8 @@ "widgets.description.live-stream": "Show your Twitch stream while you are live streaming Splatoon 3", "widgets.description.countdown": "Count down to a date and event of your choosing", "widgets.description.markdown": "Write anything you want with markdown formatting", - "widgets.forms.bio": "Bio", - "widgets.forms.bio.markdownSupport": "Supports Markdown", - "widgets.forms.division": "Division", - "widgets.forms.division.both": "Both divisions", - "widgets.forms.division.tentatek": "Tentatek only", - "widgets.forms.division.takoroka": "Takoroka only", - "widgets.forms.timezone": "Timezone", - "widgets.forms.favoriteStage": "Favorite Stage", - "widgets.forms.weapon": "Weapon", - "widgets.forms.peakXp": "Peak XP", - "widgets.forms.source": "Art source", - "widgets.forms.source.ALL": "All", - "widgets.forms.source.MADE-BY": "Made by me", - "widgets.forms.source.MADE-OF": "Made of me", - "widgets.forms.links": "Links", "widgets.forms.gameBadges": "Badges", "widgets.forms.gameBadgesSearch": "Search badges by name...", - "widgets.forms.tierListUrl": "Tier List URL", "widget.tier-list.untitled": "Untitled Tier List", "controllers.s1-pro-con": "Switch 1 Pro Controller", "controllers.s2-pro-con": "Switch 2 Pro Controller", diff --git a/locales/es-ES/user.json b/locales/es-ES/user.json index c42352c70..7390bde02 100644 --- a/locales/es-ES/user.json +++ b/locales/es-ES/user.json @@ -91,6 +91,8 @@ "widgets.category.art": "Arte", "widgets.category.friends": "Amigos", "widgets.category.game-badges": "Chapas del juego", + "widgets.editorName.bio-md": "", + "widgets.editorName.game-badges-small": "", "widgets.description.bio": "Comparte información libre sobre ti", "widgets.description.bio-md": "Comparte información libre sobre ti usando formato Markdown", "widgets.description.trophies-owned": "Muestra los trofeos que has ganado", @@ -142,24 +144,8 @@ "widgets.description.live-stream": "", "widgets.description.countdown": "", "widgets.description.markdown": "", - "widgets.forms.bio": "Biografía", - "widgets.forms.bio.markdownSupport": "Compatible con Markdown", - "widgets.forms.division": "División", - "widgets.forms.division.both": "Ambas divisiones", - "widgets.forms.division.tentatek": "Solo Tentatek", - "widgets.forms.division.takoroka": "Solo Sepioca", - "widgets.forms.timezone": "Zona horaria", - "widgets.forms.favoriteStage": "Escenario favorito", - "widgets.forms.weapon": "Arma", - "widgets.forms.peakXp": "Energía X máxima", - "widgets.forms.source": "Fuente del arte", - "widgets.forms.source.ALL": "Todo", - "widgets.forms.source.MADE-BY": "Hecho por mí", - "widgets.forms.source.MADE-OF": "Hecho sobre mí", - "widgets.forms.links": "Enlaces", "widgets.forms.gameBadges": "Chapas", "widgets.forms.gameBadgesSearch": "Buscar chapas por nombre...", - "widgets.forms.tierListUrl": "URL de la Tier List", "widget.tier-list.untitled": "Tier List sin título", "controllers.s1-pro-con": "Mando Pro de Switch 1", "controllers.s2-pro-con": "Mando Pro de Switch 2", diff --git a/locales/es-US/user.json b/locales/es-US/user.json index 8f498f126..5e073aa80 100644 --- a/locales/es-US/user.json +++ b/locales/es-US/user.json @@ -91,6 +91,8 @@ "widgets.category.art": "Arte", "widgets.category.friends": "Amigos", "widgets.category.game-badges": "Insignias del juego", + "widgets.editorName.bio-md": "", + "widgets.editorName.game-badges-small": "", "widgets.description.bio": "Comparte información libre sobre ti", "widgets.description.bio-md": "Comparte información libre sobre ti usando formato Markdown", "widgets.description.trophies-owned": "Muestra los trofeos que has ganado", @@ -142,24 +144,8 @@ "widgets.description.live-stream": "", "widgets.description.countdown": "", "widgets.description.markdown": "", - "widgets.forms.bio": "Biografía", - "widgets.forms.bio.markdownSupport": "Compatible con Markdown", - "widgets.forms.division": "División", - "widgets.forms.division.both": "Ambas divisiones", - "widgets.forms.division.tentatek": "Solo Tentatek", - "widgets.forms.division.takoroka": "Solo Pulpioka", - "widgets.forms.timezone": "Zona horaria", - "widgets.forms.favoriteStage": "Escenario favorito", - "widgets.forms.weapon": "Arma", - "widgets.forms.peakXp": "Energía X máxima", - "widgets.forms.source": "Fuente del arte", - "widgets.forms.source.ALL": "Todo", - "widgets.forms.source.MADE-BY": "Hecho por mí", - "widgets.forms.source.MADE-OF": "Hecho sobre mí", - "widgets.forms.links": "Enlaces", "widgets.forms.gameBadges": "Insignias", "widgets.forms.gameBadgesSearch": "Buscar insignias por nombre...", - "widgets.forms.tierListUrl": "URL de la Tier List", "widget.tier-list.untitled": "Tier List sin título", "controllers.s1-pro-con": "Control Pro de Switch 1", "controllers.s2-pro-con": "Control Pro de Switch 2", diff --git a/locales/fr-CA/user.json b/locales/fr-CA/user.json index a0e225854..9aa070d62 100644 --- a/locales/fr-CA/user.json +++ b/locales/fr-CA/user.json @@ -91,6 +91,8 @@ "widgets.category.art": "", "widgets.category.friends": "", "widgets.category.game-badges": "", + "widgets.editorName.bio-md": "", + "widgets.editorName.game-badges-small": "", "widgets.description.bio": "", "widgets.description.bio-md": "", "widgets.description.trophies-owned": "", @@ -142,24 +144,8 @@ "widgets.description.live-stream": "", "widgets.description.countdown": "", "widgets.description.markdown": "", - "widgets.forms.bio": "", - "widgets.forms.bio.markdownSupport": "", - "widgets.forms.division": "", - "widgets.forms.division.both": "", - "widgets.forms.division.tentatek": "", - "widgets.forms.division.takoroka": "", - "widgets.forms.timezone": "", - "widgets.forms.favoriteStage": "", - "widgets.forms.weapon": "", - "widgets.forms.peakXp": "", - "widgets.forms.source": "", - "widgets.forms.source.ALL": "", - "widgets.forms.source.MADE-BY": "", - "widgets.forms.source.MADE-OF": "", - "widgets.forms.links": "", "widgets.forms.gameBadges": "", "widgets.forms.gameBadgesSearch": "", - "widgets.forms.tierListUrl": "", "widget.tier-list.untitled": "", "controllers.s1-pro-con": "", "controllers.s2-pro-con": "", diff --git a/locales/fr-EU/user.json b/locales/fr-EU/user.json index cd06b67f1..1992c9d7d 100644 --- a/locales/fr-EU/user.json +++ b/locales/fr-EU/user.json @@ -91,6 +91,8 @@ "widgets.category.art": "", "widgets.category.friends": "", "widgets.category.game-badges": "", + "widgets.editorName.bio-md": "", + "widgets.editorName.game-badges-small": "", "widgets.description.bio": "", "widgets.description.bio-md": "", "widgets.description.trophies-owned": "", @@ -142,24 +144,8 @@ "widgets.description.live-stream": "", "widgets.description.countdown": "", "widgets.description.markdown": "", - "widgets.forms.bio": "", - "widgets.forms.bio.markdownSupport": "", - "widgets.forms.division": "", - "widgets.forms.division.both": "", - "widgets.forms.division.tentatek": "", - "widgets.forms.division.takoroka": "", - "widgets.forms.timezone": "", - "widgets.forms.favoriteStage": "", - "widgets.forms.weapon": "", - "widgets.forms.peakXp": "", - "widgets.forms.source": "", - "widgets.forms.source.ALL": "", - "widgets.forms.source.MADE-BY": "", - "widgets.forms.source.MADE-OF": "", - "widgets.forms.links": "", "widgets.forms.gameBadges": "", "widgets.forms.gameBadgesSearch": "", - "widgets.forms.tierListUrl": "", "widget.tier-list.untitled": "", "controllers.s1-pro-con": "", "controllers.s2-pro-con": "", diff --git a/locales/he/user.json b/locales/he/user.json index cca1dd3f9..dce2c6ad2 100644 --- a/locales/he/user.json +++ b/locales/he/user.json @@ -91,6 +91,8 @@ "widgets.category.art": "", "widgets.category.friends": "", "widgets.category.game-badges": "", + "widgets.editorName.bio-md": "", + "widgets.editorName.game-badges-small": "", "widgets.description.bio": "", "widgets.description.bio-md": "", "widgets.description.trophies-owned": "", @@ -142,24 +144,8 @@ "widgets.description.live-stream": "", "widgets.description.countdown": "", "widgets.description.markdown": "", - "widgets.forms.bio": "", - "widgets.forms.bio.markdownSupport": "", - "widgets.forms.division": "", - "widgets.forms.division.both": "", - "widgets.forms.division.tentatek": "", - "widgets.forms.division.takoroka": "", - "widgets.forms.timezone": "", - "widgets.forms.favoriteStage": "", - "widgets.forms.weapon": "", - "widgets.forms.peakXp": "", - "widgets.forms.source": "", - "widgets.forms.source.ALL": "", - "widgets.forms.source.MADE-BY": "", - "widgets.forms.source.MADE-OF": "", - "widgets.forms.links": "", "widgets.forms.gameBadges": "", "widgets.forms.gameBadgesSearch": "", - "widgets.forms.tierListUrl": "", "widget.tier-list.untitled": "", "controllers.s1-pro-con": "", "controllers.s2-pro-con": "", diff --git a/locales/it/user.json b/locales/it/user.json index 9d8f941f7..229bebc50 100644 --- a/locales/it/user.json +++ b/locales/it/user.json @@ -91,6 +91,8 @@ "widgets.category.art": "", "widgets.category.friends": "", "widgets.category.game-badges": "", + "widgets.editorName.bio-md": "", + "widgets.editorName.game-badges-small": "", "widgets.description.bio": "", "widgets.description.bio-md": "", "widgets.description.trophies-owned": "", @@ -142,24 +144,8 @@ "widgets.description.live-stream": "", "widgets.description.countdown": "", "widgets.description.markdown": "", - "widgets.forms.bio": "", - "widgets.forms.bio.markdownSupport": "", - "widgets.forms.division": "", - "widgets.forms.division.both": "", - "widgets.forms.division.tentatek": "", - "widgets.forms.division.takoroka": "", - "widgets.forms.timezone": "", - "widgets.forms.favoriteStage": "", - "widgets.forms.weapon": "", - "widgets.forms.peakXp": "", - "widgets.forms.source": "", - "widgets.forms.source.ALL": "", - "widgets.forms.source.MADE-BY": "", - "widgets.forms.source.MADE-OF": "", - "widgets.forms.links": "", "widgets.forms.gameBadges": "", "widgets.forms.gameBadgesSearch": "", - "widgets.forms.tierListUrl": "", "widget.tier-list.untitled": "", "controllers.s1-pro-con": "", "controllers.s2-pro-con": "", diff --git a/locales/ja/user.json b/locales/ja/user.json index dad747c8e..c9a680355 100644 --- a/locales/ja/user.json +++ b/locales/ja/user.json @@ -88,6 +88,8 @@ "widgets.category.art": "", "widgets.category.friends": "", "widgets.category.game-badges": "", + "widgets.editorName.bio-md": "", + "widgets.editorName.game-badges-small": "", "widgets.description.bio": "", "widgets.description.bio-md": "", "widgets.description.trophies-owned": "", @@ -139,24 +141,8 @@ "widgets.description.live-stream": "", "widgets.description.countdown": "", "widgets.description.markdown": "", - "widgets.forms.bio": "", - "widgets.forms.bio.markdownSupport": "", - "widgets.forms.division": "", - "widgets.forms.division.both": "", - "widgets.forms.division.tentatek": "", - "widgets.forms.division.takoroka": "", - "widgets.forms.timezone": "", - "widgets.forms.favoriteStage": "", - "widgets.forms.weapon": "", - "widgets.forms.peakXp": "", - "widgets.forms.source": "", - "widgets.forms.source.ALL": "", - "widgets.forms.source.MADE-BY": "", - "widgets.forms.source.MADE-OF": "", - "widgets.forms.links": "", "widgets.forms.gameBadges": "", "widgets.forms.gameBadgesSearch": "", - "widgets.forms.tierListUrl": "", "widget.tier-list.untitled": "", "controllers.s1-pro-con": "", "controllers.s2-pro-con": "", diff --git a/locales/ko/user.json b/locales/ko/user.json index a8263df35..4ef108ccb 100644 --- a/locales/ko/user.json +++ b/locales/ko/user.json @@ -88,6 +88,8 @@ "widgets.category.art": "", "widgets.category.friends": "", "widgets.category.game-badges": "", + "widgets.editorName.bio-md": "", + "widgets.editorName.game-badges-small": "", "widgets.description.bio": "", "widgets.description.bio-md": "", "widgets.description.trophies-owned": "", @@ -139,24 +141,8 @@ "widgets.description.live-stream": "", "widgets.description.countdown": "", "widgets.description.markdown": "", - "widgets.forms.bio": "", - "widgets.forms.bio.markdownSupport": "", - "widgets.forms.division": "", - "widgets.forms.division.both": "", - "widgets.forms.division.tentatek": "", - "widgets.forms.division.takoroka": "", - "widgets.forms.timezone": "", - "widgets.forms.favoriteStage": "", - "widgets.forms.weapon": "", - "widgets.forms.peakXp": "", - "widgets.forms.source": "", - "widgets.forms.source.ALL": "", - "widgets.forms.source.MADE-BY": "", - "widgets.forms.source.MADE-OF": "", - "widgets.forms.links": "", "widgets.forms.gameBadges": "", "widgets.forms.gameBadgesSearch": "", - "widgets.forms.tierListUrl": "", "widget.tier-list.untitled": "", "controllers.s1-pro-con": "", "controllers.s2-pro-con": "", diff --git a/locales/nl/user.json b/locales/nl/user.json index 565ba2fdd..caaaf4cee 100644 --- a/locales/nl/user.json +++ b/locales/nl/user.json @@ -90,6 +90,8 @@ "widgets.category.art": "", "widgets.category.friends": "", "widgets.category.game-badges": "", + "widgets.editorName.bio-md": "", + "widgets.editorName.game-badges-small": "", "widgets.description.bio": "", "widgets.description.bio-md": "", "widgets.description.trophies-owned": "", @@ -141,24 +143,8 @@ "widgets.description.live-stream": "", "widgets.description.countdown": "", "widgets.description.markdown": "", - "widgets.forms.bio": "", - "widgets.forms.bio.markdownSupport": "", - "widgets.forms.division": "", - "widgets.forms.division.both": "", - "widgets.forms.division.tentatek": "", - "widgets.forms.division.takoroka": "", - "widgets.forms.timezone": "", - "widgets.forms.favoriteStage": "", - "widgets.forms.weapon": "", - "widgets.forms.peakXp": "", - "widgets.forms.source": "", - "widgets.forms.source.ALL": "", - "widgets.forms.source.MADE-BY": "", - "widgets.forms.source.MADE-OF": "", - "widgets.forms.links": "", "widgets.forms.gameBadges": "", "widgets.forms.gameBadgesSearch": "", - "widgets.forms.tierListUrl": "", "widget.tier-list.untitled": "", "controllers.s1-pro-con": "", "controllers.s2-pro-con": "", diff --git a/locales/pl/user.json b/locales/pl/user.json index bd4dbc416..e41e13e13 100644 --- a/locales/pl/user.json +++ b/locales/pl/user.json @@ -92,6 +92,8 @@ "widgets.category.art": "", "widgets.category.friends": "", "widgets.category.game-badges": "", + "widgets.editorName.bio-md": "", + "widgets.editorName.game-badges-small": "", "widgets.description.bio": "", "widgets.description.bio-md": "", "widgets.description.trophies-owned": "", @@ -143,24 +145,8 @@ "widgets.description.live-stream": "", "widgets.description.countdown": "", "widgets.description.markdown": "", - "widgets.forms.bio": "", - "widgets.forms.bio.markdownSupport": "", - "widgets.forms.division": "", - "widgets.forms.division.both": "", - "widgets.forms.division.tentatek": "", - "widgets.forms.division.takoroka": "", - "widgets.forms.timezone": "", - "widgets.forms.favoriteStage": "", - "widgets.forms.weapon": "", - "widgets.forms.peakXp": "", - "widgets.forms.source": "", - "widgets.forms.source.ALL": "", - "widgets.forms.source.MADE-BY": "", - "widgets.forms.source.MADE-OF": "", - "widgets.forms.links": "", "widgets.forms.gameBadges": "", "widgets.forms.gameBadgesSearch": "", - "widgets.forms.tierListUrl": "", "widget.tier-list.untitled": "", "controllers.s1-pro-con": "", "controllers.s2-pro-con": "", diff --git a/locales/pt-BR/user.json b/locales/pt-BR/user.json index 78aefee2f..c4f8eb839 100644 --- a/locales/pt-BR/user.json +++ b/locales/pt-BR/user.json @@ -91,6 +91,8 @@ "widgets.category.art": "", "widgets.category.friends": "", "widgets.category.game-badges": "", + "widgets.editorName.bio-md": "", + "widgets.editorName.game-badges-small": "", "widgets.description.bio": "", "widgets.description.bio-md": "", "widgets.description.trophies-owned": "", @@ -142,24 +144,8 @@ "widgets.description.live-stream": "", "widgets.description.countdown": "", "widgets.description.markdown": "", - "widgets.forms.bio": "", - "widgets.forms.bio.markdownSupport": "", - "widgets.forms.division": "", - "widgets.forms.division.both": "", - "widgets.forms.division.tentatek": "", - "widgets.forms.division.takoroka": "", - "widgets.forms.timezone": "", - "widgets.forms.favoriteStage": "", - "widgets.forms.weapon": "", - "widgets.forms.peakXp": "", - "widgets.forms.source": "", - "widgets.forms.source.ALL": "", - "widgets.forms.source.MADE-BY": "", - "widgets.forms.source.MADE-OF": "", - "widgets.forms.links": "", "widgets.forms.gameBadges": "", "widgets.forms.gameBadgesSearch": "", - "widgets.forms.tierListUrl": "", "widget.tier-list.untitled": "", "controllers.s1-pro-con": "", "controllers.s2-pro-con": "", diff --git a/locales/ru/user.json b/locales/ru/user.json index c52bdbbb0..c240c2da4 100644 --- a/locales/ru/user.json +++ b/locales/ru/user.json @@ -92,6 +92,8 @@ "widgets.category.art": "", "widgets.category.friends": "", "widgets.category.game-badges": "", + "widgets.editorName.bio-md": "", + "widgets.editorName.game-badges-small": "", "widgets.description.bio": "", "widgets.description.bio-md": "", "widgets.description.trophies-owned": "", @@ -143,24 +145,8 @@ "widgets.description.live-stream": "", "widgets.description.countdown": "", "widgets.description.markdown": "", - "widgets.forms.bio": "", - "widgets.forms.bio.markdownSupport": "", - "widgets.forms.division": "", - "widgets.forms.division.both": "", - "widgets.forms.division.tentatek": "", - "widgets.forms.division.takoroka": "", - "widgets.forms.timezone": "", - "widgets.forms.favoriteStage": "", - "widgets.forms.weapon": "", - "widgets.forms.peakXp": "", - "widgets.forms.source": "", - "widgets.forms.source.ALL": "", - "widgets.forms.source.MADE-BY": "", - "widgets.forms.source.MADE-OF": "", - "widgets.forms.links": "", "widgets.forms.gameBadges": "", "widgets.forms.gameBadgesSearch": "", - "widgets.forms.tierListUrl": "", "widget.tier-list.untitled": "", "controllers.s1-pro-con": "", "controllers.s2-pro-con": "", diff --git a/locales/zh/user.json b/locales/zh/user.json index 1aea48e5f..b2907706e 100644 --- a/locales/zh/user.json +++ b/locales/zh/user.json @@ -88,6 +88,8 @@ "widgets.category.art": "插画", "widgets.category.friends": "好友", "widgets.category.game-badges": "游戏内徽章", + "widgets.editorName.bio-md": "", + "widgets.editorName.game-badges-small": "", "widgets.description.bio": "自由分享关于您自己的自定义信息", "widgets.description.bio-md": "自由分享关于您自己的自定义信息,支持 Markdown 语法", "widgets.description.trophies-owned": "", @@ -139,24 +141,8 @@ "widgets.description.live-stream": "", "widgets.description.countdown": "", "widgets.description.markdown": "", - "widgets.forms.bio": "个人简介", - "widgets.forms.bio.markdownSupport": "支持 Markdown 语法", - "widgets.forms.division": "组别", - "widgets.forms.division.both": "均可", - "widgets.forms.division.tentatek": "仅限艾洛眼", - "widgets.forms.division.takoroka": "仅限暇古", - "widgets.forms.timezone": "时区", - "widgets.forms.favoriteStage": "喜爱的场地", - "widgets.forms.weapon": "武器", - "widgets.forms.peakXp": "最高 XP", - "widgets.forms.source": "作品来源", - "widgets.forms.source.ALL": "全部", - "widgets.forms.source.MADE-BY": "由我创作", - "widgets.forms.source.MADE-OF": "与我相关", - "widgets.forms.links": "自定义链接", "widgets.forms.gameBadges": "徽章", "widgets.forms.gameBadgesSearch": "按名称搜索徽章...", - "widgets.forms.tierListUrl": "自制强度榜 URL", "widget.tier-list.untitled": "未命名自制强度榜", "controllers.s1-pro-con": "Nintendo Switch Pro 控制器", "controllers.s2-pro-con": "Nintendo Switch 2 Pro 控制器",