From b8cc637c75a08e650d9e585d175394bdeb027db4 Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Thu, 9 Oct 2025 16:01:33 +0300 Subject: [PATCH] fix: missing translations warning --- packages/ai/src/Button.ts | 12 ++++++------ packages/ai/src/WritingAssistant.ts | 25 +++++++++++------------- packages/fiori/src/NavigationMenu.ts | 7 ++++++- packages/fiori/src/NavigationMenuItem.ts | 8 ++++++-- packages/fiori/src/TimelineItem.ts | 6 +++--- 5 files changed, 32 insertions(+), 26 deletions(-) diff --git a/packages/ai/src/Button.ts b/packages/ai/src/Button.ts index 1f8bdd590f3a..06cfafdd23b3 100644 --- a/packages/ai/src/Button.ts +++ b/packages/ai/src/Button.ts @@ -2,6 +2,7 @@ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js"; import { renderFinished } from "@ui5/webcomponents-base/dist/Render.js"; import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js"; import property from "@ui5/webcomponents-base/dist/decorators/property.js"; +import { i18n } from "@ui5/webcomponents-base/dist/decorators.js"; import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js"; import slot from "@ui5/webcomponents-base/dist/decorators/slot.js"; import query from "@ui5/webcomponents-base/dist/decorators/query.js"; @@ -17,12 +18,11 @@ import { getAssociatedLabelForTexts, getAllAccessibleNameRefTexts, } from "@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js"; +import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js"; +import type { AccessibilityAttributes } from "@ui5/webcomponents-base/dist/types.js"; // Styles import ButtonCss from "./generated/themes/Button.css.js"; -import { i18n } from "@ui5/webcomponents-base/dist/decorators.js"; -import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js"; -import type { AccessibilityAttributes } from "@ui5/webcomponents-base/dist/types.js"; type AIButtonRootAccessibilityAttributes = Pick; type AIButtonArrowButtonAccessibilityAttributes = Pick; @@ -190,8 +190,8 @@ class Button extends UI5Element { @query(".ui5-ai-button-hidden[ui5-split-button]") _hiddenSplitButton?: SplitButton; - @i18n("@ui5/webcomponents") - static i18nBundle: I18nBundle; + @i18n("@ui5/webcomponents-ai") + static i18nBundleAi: I18nBundle; get _hideArrowButton() { return !this._effectiveStateObject?.showArrowButton; @@ -352,7 +352,7 @@ class Button extends UI5Element { get _computedAccessibilityAttributes(): AIButtonAccessibilityAttributes { const labelRefTexts = getAllAccessibleNameRefTexts(this) || getEffectiveAriaLabelText(this) || getAssociatedLabelForTexts(this) || ""; - const mainTitle = this._hasText ? Button.i18nBundle.getText(BUTTON_TOOLTIP_TEXT, this._stateText as string) : ""; + const mainTitle = this._hasText ? Button.i18nBundleAi.getText(BUTTON_TOOLTIP_TEXT, this._stateText as string) : ""; const title = `${mainTitle} ${labelRefTexts}`.trim(); return { diff --git a/packages/ai/src/WritingAssistant.ts b/packages/ai/src/WritingAssistant.ts index 0cef8bd13c90..98794691acb0 100644 --- a/packages/ai/src/WritingAssistant.ts +++ b/packages/ai/src/WritingAssistant.ts @@ -1,10 +1,10 @@ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js"; import property from "@ui5/webcomponents-base/dist/decorators/property.js"; import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js"; +import { i18n } from "@ui5/webcomponents-base/dist/decorators.js"; import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js"; import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js"; import announce from "@ui5/webcomponents-base/dist/util/InvisibleMessage.js"; -import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js"; import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js"; import { WRITING_ASSISTANT_LABEL, @@ -113,12 +113,6 @@ class WritingAssistant extends UI5Element { @property({ type: Boolean }) loading = false; - static i18nBundle: I18nBundle; - - static async onDefine() { - WritingAssistant.i18nBundle = await getI18nBundle("@ui5/webcomponents-ai"); - } - /** * Defines the action text of the AI Writing Assistant. * @@ -158,6 +152,9 @@ class WritingAssistant extends UI5Element { @property({ type: Number }) totalVersions = 1; + @i18n("@ui5/webcomponents-ai") + static i18nBundleAi: I18nBundle; + /** * Handles the version change event from the versioning component. */ @@ -177,31 +174,31 @@ class WritingAssistant extends UI5Element { this.fireDecoratorEvent("stop-generation"); } else { this.fireDecoratorEvent("button-click", { clickTarget: target }); - announce(WritingAssistant.i18nBundle.getText(WRITING_ASSISTANT_GENERATING_ANNOUNCEMENT), "Polite"); + announce(WritingAssistant.i18nBundleAi.getText(WRITING_ASSISTANT_GENERATING_ANNOUNCEMENT), "Polite"); } } get _ariaLabel() { - return WritingAssistant.i18nBundle.getText(WRITING_ASSISTANT_LABEL); + return WritingAssistant.i18nBundleAi.getText(WRITING_ASSISTANT_LABEL); } get _previousButtonAccessibleName() { - return WritingAssistant.i18nBundle.getText(VERSIONING_PREVIOUS_BUTTON_TEXT); + return WritingAssistant.i18nBundleAi.getText(VERSIONING_PREVIOUS_BUTTON_TEXT); } get _nextButtonAccessibleName() { - return WritingAssistant.i18nBundle.getText(VERSIONING_NEXT_BUTTON_TEXT); + return WritingAssistant.i18nBundleAi.getText(VERSIONING_NEXT_BUTTON_TEXT); } get _toolbarAccessibleName() { - return WritingAssistant.i18nBundle.getText(WRITING_ASSISTANT_TOOLBAR_ACCESSIBLE_NAME); + return WritingAssistant.i18nBundleAi.getText(WRITING_ASSISTANT_TOOLBAR_ACCESSIBLE_NAME); } get _buttonAccessibleName() { - return WritingAssistant.i18nBundle.getText(WRITING_ASSISTANT_BUTTON_ACCESSIBLE_NAME); + return WritingAssistant.i18nBundleAi.getText(WRITING_ASSISTANT_BUTTON_ACCESSIBLE_NAME); } get _buttonTooltip() { - return WritingAssistant.i18nBundle.getText(WRITING_ASSISTANT_BUTTON_TOOLTIP); + return WritingAssistant.i18nBundleAi.getText(WRITING_ASSISTANT_BUTTON_TOOLTIP); } } diff --git a/packages/fiori/src/NavigationMenu.ts b/packages/fiori/src/NavigationMenu.ts index e9c9cd276b43..bb7a685bb2ca 100644 --- a/packages/fiori/src/NavigationMenu.ts +++ b/packages/fiori/src/NavigationMenu.ts @@ -1,5 +1,7 @@ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js"; import slot from "@ui5/webcomponents-base/dist/decorators/slot.js"; +import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js"; +import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js"; import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js"; import { isDesktop, @@ -54,6 +56,9 @@ class NavigationMenu extends Menu { @slot({ "default": true, type: HTMLElement, invalidateOnChildChange: true }) declare items: Array; + @i18n("@ui5/webcomponents-fiori") + static i18nBundleFiori: I18nBundle; + _itemMouseOver(e: MouseEvent) { if (isDesktop()) { // respect mouseover only on desktop @@ -65,7 +70,7 @@ class NavigationMenu extends Menu { } get accSideNavigationPopoverHiddenText() { - return NavigationMenu.i18nBundle.getText(NAVIGATION_MENU_POPOVER_HIDDEN_TEXT); + return NavigationMenu.i18nBundleFiori.getText(NAVIGATION_MENU_POPOVER_HIDDEN_TEXT); } } diff --git a/packages/fiori/src/NavigationMenuItem.ts b/packages/fiori/src/NavigationMenuItem.ts index eb02357b7bfb..0cfd11fdd3ae 100644 --- a/packages/fiori/src/NavigationMenuItem.ts +++ b/packages/fiori/src/NavigationMenuItem.ts @@ -1,10 +1,11 @@ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js"; import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js"; +import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js"; +import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js"; import type { ClassMap } from "@ui5/webcomponents-base/dist/types.js"; import property from "@ui5/webcomponents-base/dist/decorators/property.js"; import MenuItem from "@ui5/webcomponents/dist/MenuItem.js"; import type SideNavigationItemDesign from "./types/SideNavigationItemDesign.js"; -import NavigationMenu from "./NavigationMenu.js"; import { isSpace, isEnter, @@ -87,6 +88,9 @@ class NavigationMenuItem extends MenuItem { @property() design: `${SideNavigationItemDesign}` = "Default"; + @i18n("@ui5/webcomponents-fiori") + static i18nBundleFiori: I18nBundle; + associatedItem?: SideNavigationSelectableItemBase; get isExternalLink() { @@ -201,7 +205,7 @@ class NavigationMenuItem extends MenuItem { } get acessibleNameText() { - return NavigationMenu.i18nBundle.getText(NAVIGATION_MENU_POPOVER_HIDDEN_TEXT); + return NavigationMenuItem.i18nBundleFiori.getText(NAVIGATION_MENU_POPOVER_HIDDEN_TEXT); } } diff --git a/packages/fiori/src/TimelineItem.ts b/packages/fiori/src/TimelineItem.ts index 86d37ca67e1e..ab032f0041f8 100644 --- a/packages/fiori/src/TimelineItem.ts +++ b/packages/fiori/src/TimelineItem.ts @@ -178,8 +178,8 @@ class TimelineItem extends UI5Element implements ITimelineItem { @property({ type: Number }) positionInGroup?: number; - @i18n("@ui5/webcomponents") - static i18nBundle: I18nBundle; + @i18n("@ui5/webcomponents-fiori") + static i18nBundleFiori: I18nBundle; constructor() { super(); @@ -206,7 +206,7 @@ class TimelineItem extends UI5Element implements ITimelineItem { } get timelineItemStateText() { - return this.state !== "None" ? TimelineItem.i18nBundle.getText(TimelineItem.typeTextMappings()[this.state]) : undefined; + return this.state !== "None" ? TimelineItem.i18nBundleFiori.getText(TimelineItem.typeTextMappings()[this.state]) : undefined; } get isGroupItem() {