From 467bd0833a8628fca490022d53e2c0f2161f970a Mon Sep 17 00:00:00 2001 From: ArtyomSavchenko Date: Mon, 12 Oct 2026 15:14:22 +0700 Subject: [PATCH] fix: finish lang loader refactor so front webpack build resolves ./lang Commit 48be04ee switched the "./lang" export of the *-assets packages from the lang/ directory to ./lib/lang.js, but configureI18n() in dev/prod and desktop still loaded strings with import(`@hcengineering//lang/${lang}.json`). Webpack resolves that template import as a context on "/lang", which now maps to a file, so `rushx package` failed with 58 "Package path ./lang is exported ... but no valid target file was found". - use Lang.loadLang for every package that exports ./lang -> lib/lang.js in dev/prod/src/platform.ts and desktop/src/ui/platform.ts - add the missing src/lang.ts to chat-assets (export already pointed at it) - port inbox-assets to the same lang.ts / ./lang export scheme Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_014MzfgQXRL2ntDzgvtoSh8Z Signed-off-by: ArtyomSavchenko --- desktop/src/ui/platform.ts | 174 ++++++++++++------------------ dev/prod/src/platform.ts | 169 +++++++++++------------------ plugins/chat-assets/src/lang.ts | 18 ++++ plugins/inbox-assets/package.json | 4 +- plugins/inbox-assets/src/lang.ts | 18 ++++ 5 files changed, 169 insertions(+), 214 deletions(-) create mode 100644 plugins/chat-assets/src/lang.ts create mode 100644 plugins/inbox-assets/src/lang.ts diff --git a/desktop/src/ui/platform.ts b/desktop/src/ui/platform.ts index 0b4d1fd19a..ef6171df34 100644 --- a/desktop/src/ui/platform.ts +++ b/desktop/src/ui/platform.ts @@ -90,6 +90,7 @@ import billingPlugin, { billingId } from '@hcengineering/billing' import '@hcengineering/activity-assets' import * as ActivityLang from '@hcengineering/activity-assets/lang' import '@hcengineering/analytics-collector-assets' +import * as AnalyticsCollectorLang from '@hcengineering/analytics-collector-assets/lang' import '@hcengineering/attachment-assets' import * as AttachmentLang from '@hcengineering/attachment-assets/lang' import '@hcengineering/bitrix-assets' @@ -185,13 +186,17 @@ import * as ViewLang from '@hcengineering/view-assets/lang' import '@hcengineering/workbench-assets' import * as WorkbenchLang from '@hcengineering/workbench-assets/lang' import '@hcengineering/mail-assets' +import * as MailLang from '@hcengineering/mail-assets/lang' import '@hcengineering/chat-assets' +import * as ChatLang from '@hcengineering/chat-assets/lang' import '@hcengineering/inbox-assets' +import * as InboxLang from '@hcengineering/inbox-assets/lang' import '@hcengineering/achievement-assets' import * as AchievementLang from '@hcengineering/achievement-assets/lang' import '@hcengineering/emoji-assets' import * as EmojiLang from '@hcengineering/emoji-assets/lang' import '@hcengineering/media-assets' +import * as MediaLang from '@hcengineering/media-assets/lang' import '@hcengineering/communication-assets' import '@hcengineering/billing-assets' import * as BillingLang from '@hcengineering/billing-assets/lang' @@ -200,6 +205,7 @@ import * as HulyMailLang from '@hcengineering/huly-mail-assets/lang' import '@hcengineering/ai-assistant-assets' import * as AiAssistantLang from '@hcengineering/ai-assistant-assets/lang' import '@hcengineering/rating-assets' +import * as RatingLang from '@hcengineering/rating-assets/lang' import analyticsCollector, { analyticsCollectorId } from '@hcengineering/analytics-collector' import { coreId } from '@hcengineering/core' @@ -233,118 +239,70 @@ function configureI18n (): void { ) addStringsLoader(textEditorId, TextEditorLang.loadLang) addStringsLoader(uiId, async (lang: string) => await import(`@hcengineering/ui/lang/${lang}.json`)) - addStringsLoader(mediaId, async (lang: string) => await import(`@hcengineering/media-assets/lang/${lang}.json`)) - addStringsLoader(uploaderId, async (lang: string) => await import(`@hcengineering/uploader-assets/lang/${lang}.json`)) - addStringsLoader(recorderId, async (lang: string) => await import(`@hcengineering/recorder-assets/lang/${lang}.json`)) - addStringsLoader(activityId, async (lang: string) => await import(`@hcengineering/activity-assets/lang/${lang}.json`)) - addStringsLoader( - attachmentId, - async (lang: string) => await import(`@hcengineering/attachment-assets/lang/${lang}.json`) - ) - addStringsLoader(bitrixId, async (lang: string) => await import(`@hcengineering/bitrix-assets/lang/${lang}.json`)) - addStringsLoader(boardId, async (lang: string) => await import(`@hcengineering/board-assets/lang/${lang}.json`)) - addStringsLoader(calendarId, async (lang: string) => await import(`@hcengineering/calendar-assets/lang/${lang}.json`)) - addStringsLoader(chunterId, async (lang: string) => await import(`@hcengineering/chunter-assets/lang/${lang}.json`)) - addStringsLoader(contactId, async (lang: string) => await import(`@hcengineering/contact-assets/lang/${lang}.json`)) - addStringsLoader(driveId, async (lang: string) => await import(`@hcengineering/drive-assets/lang/${lang}.json`)) - addStringsLoader(gmailId, async (lang: string) => await import(`@hcengineering/gmail-assets/lang/${lang}.json`)) - addStringsLoader(hrId, async (lang: string) => await import(`@hcengineering/hr-assets/lang/${lang}.json`)) - addStringsLoader( - inventoryId, - async (lang: string) => await import(`@hcengineering/inventory-assets/lang/${lang}.json`) - ) - addStringsLoader(leadId, async (lang: string) => await import(`@hcengineering/lead-assets/lang/${lang}.json`)) - addStringsLoader(loginId, async (lang: string) => await import(`@hcengineering/login-assets/lang/${lang}.json`)) - addStringsLoader( - notificationId, - async (lang: string) => await import(`@hcengineering/notification-assets/lang/${lang}.json`) - ) - addStringsLoader(onboardId, async (lang: string) => await import(`@hcengineering/onboard-assets/lang/${lang}.json`)) - addStringsLoader( - preferenceId, - async (lang: string) => await import(`@hcengineering/preference-assets/lang/${lang}.json`) - ) - addStringsLoader(recruitId, async (lang: string) => await import(`@hcengineering/recruit-assets/lang/${lang}.json`)) - addStringsLoader(requestId, async (lang: string) => await import(`@hcengineering/request-assets/lang/${lang}.json`)) - addStringsLoader(settingId, async (lang: string) => await import(`@hcengineering/setting-assets/lang/${lang}.json`)) - addStringsLoader(supportId, async (lang: string) => await import(`@hcengineering/support-assets/lang/${lang}.json`)) - addStringsLoader(tagsId, async (lang: string) => await import(`@hcengineering/tags-assets/lang/${lang}.json`)) - addStringsLoader(taskId, async (lang: string) => await import(`@hcengineering/task-assets/lang/${lang}.json`)) - addStringsLoader(telegramId, async (lang: string) => await import(`@hcengineering/telegram-assets/lang/${lang}.json`)) - addStringsLoader( - templatesId, - async (lang: string) => await import(`@hcengineering/templates-assets/lang/${lang}.json`) - ) - addStringsLoader(trackerId, async (lang: string) => await import(`@hcengineering/tracker-assets/lang/${lang}.json`)) - addStringsLoader(viewId, async (lang: string) => await import(`@hcengineering/view-assets/lang/${lang}.json`)) - addStringsLoader( - workbenchId, - async (lang: string) => await import(`@hcengineering/workbench-assets/lang/${lang}.json`) - ) - - addStringsLoader( - desktopPreferencesId, - async (lang: string) => await import(`@hcengineering/desktop-preferences-assets/lang/${lang}.json`) - ) - addStringsLoader( - desktopDownloadsId, - async (lang: string) => await import(`@hcengineering/desktop-downloads-assets/lang/${lang}.json`) - ) - addStringsLoader(diffviewId, async (lang: string) => await import(`@hcengineering/diffview-assets/lang/${lang}.json`)) - addStringsLoader(documentId, async (lang: string) => await import(`@hcengineering/document-assets/lang/${lang}.json`)) - addStringsLoader(timeId, async (lang: string) => await import(`@hcengineering/time-assets/lang/${lang}.json`)) - addStringsLoader(githubId, async (lang: string) => await import(`@hcengineering/github-assets/lang/${lang}.json`)) - addStringsLoader( - documentsId, - async (lang: string) => await import(`@hcengineering/controlled-documents-assets/lang/${lang}.json`) - ) - addStringsLoader(productsId, async (lang: string) => await import(`@hcengineering/products-assets/lang/${lang}.json`)) - addStringsLoader( - questionsId, - async (lang: string) => await import(`@hcengineering/questions-assets/lang/${lang}.json`) - ) - addStringsLoader(trainingId, async (lang: string) => await import(`@hcengineering/training-assets/lang/${lang}.json`)) - addStringsLoader(guestId, async (lang: string) => await import(`@hcengineering/guest-assets/lang/${lang}.json`)) - addStringsLoader( - globalProfileId, - async (lang: string) => await import(`@hcengineering/global-profile-assets/lang/${lang}.json`) - ) - addStringsLoader(loveId, async (lang: string) => await import(`@hcengineering/love-assets/lang/${lang}.json`)) - addStringsLoader(printId, async (lang: string) => await import(`@hcengineering/print-assets/lang/${lang}.json`)) - addStringsLoader(exportId, async (lang: string) => await import(`@hcengineering/export-assets/lang/${lang}.json`)) - addStringsLoader( - analyticsCollectorId, - async (lang: string) => await import(`@hcengineering/analytics-collector-assets/lang/${lang}.json`) - ) - addStringsLoader( - testManagementId, - async (lang: string) => await import(`@hcengineering/test-management-assets/lang/${lang}.json`) - ) - addStringsLoader(surveyId, async (lang: string) => await import(`@hcengineering/survey-assets/lang/${lang}.json`)) - addStringsLoader(cardId, async (lang: string) => await import(`@hcengineering/card-assets/lang/${lang}.json`)) - addStringsLoader(mailId, async (lang: string) => await import(`@hcengineering/mail-assets/lang/${lang}.json`)) - addStringsLoader(chatId, async (lang: string) => await import(`@hcengineering/chat-assets/lang/${lang}.json`)) - addStringsLoader(inboxId, async (lang: string) => await import(`@hcengineering/inbox-assets/lang/${lang}.json`)) - addStringsLoader(processId, async (lang: string) => await import(`@hcengineering/process-assets/lang/${lang}.json`)) - addStringsLoader( - achievementId, - async (lang: string) => await import(`@hcengineering/achievement-assets/lang/${lang}.json`) - ) + addStringsLoader(mediaId, MediaLang.loadLang) + addStringsLoader(uploaderId, UploaderLang.loadLang) + addStringsLoader(recorderId, RecorderLang.loadLang) + addStringsLoader(activityId, ActivityLang.loadLang) + addStringsLoader(attachmentId, AttachmentLang.loadLang) + addStringsLoader(bitrixId, BitrixLang.loadLang) + addStringsLoader(boardId, BoardLang.loadLang) + addStringsLoader(calendarId, CalendarLang.loadLang) + addStringsLoader(chunterId, ChunterLang.loadLang) + addStringsLoader(contactId, ContactLang.loadLang) + addStringsLoader(driveId, DriveLang.loadLang) + addStringsLoader(gmailId, GmailLang.loadLang) + addStringsLoader(hrId, HrLang.loadLang) + addStringsLoader(inventoryId, InventoryLang.loadLang) + addStringsLoader(leadId, LeadLang.loadLang) + addStringsLoader(loginId, LoginLang.loadLang) + addStringsLoader(notificationId, NotificationLang.loadLang) + addStringsLoader(onboardId, OnboardLang.loadLang) + addStringsLoader(preferenceId, PreferenceLang.loadLang) + addStringsLoader(recruitId, RecruitLang.loadLang) + addStringsLoader(requestId, RequestLang.loadLang) + addStringsLoader(settingId, SettingLang.loadLang) + addStringsLoader(supportId, SupportLang.loadLang) + addStringsLoader(tagsId, TagsLang.loadLang) + addStringsLoader(taskId, TaskLang.loadLang) + addStringsLoader(telegramId, TelegramLang.loadLang) + addStringsLoader(templatesId, TemplatesLang.loadLang) + addStringsLoader(trackerId, TrackerLang.loadLang) + addStringsLoader(viewId, ViewLang.loadLang) + addStringsLoader(workbenchId, WorkbenchLang.loadLang) + + addStringsLoader(desktopPreferencesId, DesktopPreferencesLang.loadLang) + addStringsLoader(desktopDownloadsId, DesktopDownloadsLang.loadLang) + addStringsLoader(diffviewId, DiffviewLang.loadLang) + addStringsLoader(documentId, DocumentLang.loadLang) + addStringsLoader(timeId, TimeLang.loadLang) + addStringsLoader(githubId, GithubLang.loadLang) + addStringsLoader(documentsId, ControlledDocumentsLang.loadLang) + addStringsLoader(productsId, ProductsLang.loadLang) + addStringsLoader(questionsId, QuestionsLang.loadLang) + addStringsLoader(trainingId, TrainingLang.loadLang) + addStringsLoader(guestId, GuestLang.loadLang) + addStringsLoader(globalProfileId, GlobalProfileLang.loadLang) + addStringsLoader(loveId, LoveLang.loadLang) + addStringsLoader(printId, PrintLang.loadLang) + addStringsLoader(exportId, ExportLang.loadLang) + addStringsLoader(analyticsCollectorId, AnalyticsCollectorLang.loadLang) + addStringsLoader(testManagementId, TestManagementLang.loadLang) + addStringsLoader(surveyId, SurveyLang.loadLang) + addStringsLoader(cardId, CardLang.loadLang) + addStringsLoader(mailId, MailLang.loadLang) + addStringsLoader(chatId, ChatLang.loadLang) + addStringsLoader(inboxId, InboxLang.loadLang) + addStringsLoader(processId, ProcessLang.loadLang) + addStringsLoader(achievementId, AchievementLang.loadLang) addStringsLoader( communicationId, async (lang: string) => await import(`@hcengineering/communication-assets/lang/${lang}.json`) ) - addStringsLoader(emojiId, async (lang: string) => await import(`@hcengineering/emoji-assets/lang/${lang}.json`)) - addStringsLoader(billingId, async (lang: string) => await import(`@hcengineering/billing-assets/lang/${lang}.json`)) - addStringsLoader( - hulyMailId, - async (lang: string) => await import(`@hcengineering/huly-mail-assets/lang/${lang}.json`) - ) - addStringsLoader( - aiAssistantId, - async (lang: string) => await import(`@hcengineering/ai-assistant-assets/lang/${lang}.json`) - ) - addStringsLoader(ratingId, async (lang: string) => await import(`@hcengineering/rating-assets/lang/${lang}.json`)) + addStringsLoader(emojiId, EmojiLang.loadLang) + addStringsLoader(billingId, BillingLang.loadLang) + addStringsLoader(hulyMailId, HulyMailLang.loadLang) + addStringsLoader(aiAssistantId, AiAssistantLang.loadLang) + addStringsLoader(ratingId, RatingLang.loadLang) } export class PlatformBranding { diff --git a/dev/prod/src/platform.ts b/dev/prod/src/platform.ts index be2fc86466..6b410e07b8 100644 --- a/dev/prod/src/platform.ts +++ b/dev/prod/src/platform.ts @@ -88,6 +88,7 @@ import { ratingId } from '@hcengineering/rating' import '@hcengineering/activity-assets' import * as ActivityLang from '@hcengineering/activity-assets/lang' import '@hcengineering/analytics-collector-assets' +import * as AnalyticsCollectorLang from '@hcengineering/analytics-collector-assets/lang' import '@hcengineering/attachment-assets' import * as AttachmentLang from '@hcengineering/attachment-assets/lang' import '@hcengineering/bitrix-assets' @@ -181,13 +182,17 @@ import * as MediaLang from '@hcengineering/media-assets/lang' import '@hcengineering/view-assets' import * as ViewLang from '@hcengineering/view-assets/lang' import '@hcengineering/workbench-assets' +import * as WorkbenchLang from '@hcengineering/workbench-assets/lang' import '@hcengineering/chat-assets' +import * as ChatLang from '@hcengineering/chat-assets/lang' import '@hcengineering/inbox-assets' +import * as InboxLang from '@hcengineering/inbox-assets/lang' import '@hcengineering/mail-assets' import * as MailLang from '@hcengineering/mail-assets/lang' import '@hcengineering/github-assets' import * as GithubLang from '@hcengineering/github-assets/lang' import '@hcengineering/achievement-assets' +import * as AchievementLang from '@hcengineering/achievement-assets/lang' import '@hcengineering/communication-assets' import '@hcengineering/emoji-assets' import * as EmojiLang from '@hcengineering/emoji-assets/lang' @@ -198,6 +203,7 @@ import * as HulyMailLang from '@hcengineering/huly-mail-assets/lang' import '@hcengineering/ai-assistant-assets' import * as AiAssistantLang from '@hcengineering/ai-assistant-assets/lang' import '@hcengineering/rating-assets' +import * as RatingLang from '@hcengineering/rating-assets/lang' import { coreId } from '@hcengineering/core' import * as CoreLang from '@hcengineering/core/lang' @@ -342,114 +348,69 @@ function configureI18n(): void { ) addStringsLoader(textEditorId, TextEditorLang.loadLang) addStringsLoader(uiId, async (lang: string) => await import(`@hcengineering/ui/lang/${lang}.json`)) - addStringsLoader(uploaderId, async (lang: string) => await import(`@hcengineering/uploader-assets/lang/${lang}.json`)) - addStringsLoader(recorderId, async (lang: string) => await import(`@hcengineering/recorder-assets/lang/${lang}.json`)) - addStringsLoader(mediaId, async (lang: string) => await import(`@hcengineering/media-assets/lang/${lang}.json`)) - addStringsLoader(activityId, async (lang: string) => await import(`@hcengineering/activity-assets/lang/${lang}.json`)) - addStringsLoader( - attachmentId, - async (lang: string) => await import(`@hcengineering/attachment-assets/lang/${lang}.json`) - ) - addStringsLoader(bitrixId, async (lang: string) => await import(`@hcengineering/bitrix-assets/lang/${lang}.json`)) - addStringsLoader(boardId, async (lang: string) => await import(`@hcengineering/board-assets/lang/${lang}.json`)) - addStringsLoader(calendarId, async (lang: string) => await import(`@hcengineering/calendar-assets/lang/${lang}.json`)) - addStringsLoader(chunterId, async (lang: string) => await import(`@hcengineering/chunter-assets/lang/${lang}.json`)) - addStringsLoader(contactId, async (lang: string) => await import(`@hcengineering/contact-assets/lang/${lang}.json`)) - addStringsLoader(driveId, async (lang: string) => await import(`@hcengineering/drive-assets/lang/${lang}.json`)) - addStringsLoader(gmailId, async (lang: string) => await import(`@hcengineering/gmail-assets/lang/${lang}.json`)) - addStringsLoader(hrId, async (lang: string) => await import(`@hcengineering/hr-assets/lang/${lang}.json`)) - addStringsLoader( - inventoryId, - async (lang: string) => await import(`@hcengineering/inventory-assets/lang/${lang}.json`) - ) - addStringsLoader(leadId, async (lang: string) => await import(`@hcengineering/lead-assets/lang/${lang}.json`)) - addStringsLoader(loginId, async (lang: string) => await import(`@hcengineering/login-assets/lang/${lang}.json`)) - addStringsLoader( - notificationId, - async (lang: string) => await import(`@hcengineering/notification-assets/lang/${lang}.json`) - ) - addStringsLoader(onboardId, async (lang: string) => await import(`@hcengineering/onboard-assets/lang/${lang}.json`)) - addStringsLoader( - preferenceId, - async (lang: string) => await import(`@hcengineering/preference-assets/lang/${lang}.json`) - ) - addStringsLoader(recruitId, async (lang: string) => await import(`@hcengineering/recruit-assets/lang/${lang}.json`)) - addStringsLoader(requestId, async (lang: string) => await import(`@hcengineering/request-assets/lang/${lang}.json`)) - addStringsLoader(settingId, async (lang: string) => await import(`@hcengineering/setting-assets/lang/${lang}.json`)) - addStringsLoader(supportId, async (lang: string) => await import(`@hcengineering/support-assets/lang/${lang}.json`)) - addStringsLoader(tagsId, async (lang: string) => await import(`@hcengineering/tags-assets/lang/${lang}.json`)) - addStringsLoader(taskId, async (lang: string) => await import(`@hcengineering/task-assets/lang/${lang}.json`)) - addStringsLoader(telegramId, async (lang: string) => await import(`@hcengineering/telegram-assets/lang/${lang}.json`)) - addStringsLoader( - templatesId, - async (lang: string) => await import(`@hcengineering/templates-assets/lang/${lang}.json`) - ) - addStringsLoader(trackerId, async (lang: string) => await import(`@hcengineering/tracker-assets/lang/${lang}.json`)) - addStringsLoader(viewId, async (lang: string) => await import(`@hcengineering/view-assets/lang/${lang}.json`)) - addStringsLoader( - workbenchId, - async (lang: string) => await import(`@hcengineering/workbench-assets/lang/${lang}.json`) - ) - - addStringsLoader( - desktopPreferencesId, - async (lang: string) => await import(`@hcengineering/desktop-preferences-assets/lang/${lang}.json`) - ) - addStringsLoader(diffviewId, async (lang: string) => await import(`@hcengineering/diffview-assets/lang/${lang}.json`)) - addStringsLoader(documentId, async (lang: string) => await import(`@hcengineering/document-assets/lang/${lang}.json`)) - addStringsLoader(timeId, async (lang: string) => await import(`@hcengineering/time-assets/lang/${lang}.json`)) - addStringsLoader(githubId, async (lang: string) => await import(`@hcengineering/github-assets/lang/${lang}.json`)) - addStringsLoader( - documentsId, - async (lang: string) => await import(`@hcengineering/controlled-documents-assets/lang/${lang}.json`) - ) - addStringsLoader(productsId, async (lang: string) => await import(`@hcengineering/products-assets/lang/${lang}.json`)) - addStringsLoader( - questionsId, - async (lang: string) => await import(`@hcengineering/questions-assets/lang/${lang}.json`) - ) - addStringsLoader(trainingId, async (lang: string) => await import(`@hcengineering/training-assets/lang/${lang}.json`)) - addStringsLoader(guestId, async (lang: string) => await import(`@hcengineering/guest-assets/lang/${lang}.json`)) - addStringsLoader( - globalProfileId, - async (lang: string) => await import(`@hcengineering/global-profile-assets/lang/${lang}.json`) - ) - addStringsLoader(loveId, async (lang: string) => await import(`@hcengineering/love-assets/lang/${lang}.json`)) - addStringsLoader(printId, async (lang: string) => await import(`@hcengineering/print-assets/lang/${lang}.json`)) - addStringsLoader(exportId, async (lang: string) => await import(`@hcengineering/export-assets/lang/${lang}.json`)) - addStringsLoader( - analyticsCollectorId, - async (lang: string) => await import(`@hcengineering/analytics-collector-assets/lang/${lang}.json`) - ) - addStringsLoader( - testManagementId, - async (lang: string) => await import(`@hcengineering/test-management-assets/lang/${lang}.json`) - ) - addStringsLoader(surveyId, async (lang: string) => await import(`@hcengineering/survey-assets/lang/${lang}.json`)) - addStringsLoader(cardId, async (lang: string) => await import(`@hcengineering/card-assets/lang/${lang}.json`)) - addStringsLoader(mailId, async (lang: string) => await import(`@hcengineering/mail-assets/lang/${lang}.json`)) - addStringsLoader(chatId, async (lang: string) => await import(`@hcengineering/chat-assets/lang/${lang}.json`)) - addStringsLoader(processId, async (lang: string) => await import(`@hcengineering/process-assets/lang/${lang}.json`)) - addStringsLoader( - achievementId, - async (lang: string) => await import(`@hcengineering/achievement-assets/lang/${lang}.json`) - ) + addStringsLoader(uploaderId, UploaderLang.loadLang) + addStringsLoader(recorderId, RecorderLang.loadLang) + addStringsLoader(mediaId, MediaLang.loadLang) + addStringsLoader(activityId, ActivityLang.loadLang) + addStringsLoader(attachmentId, AttachmentLang.loadLang) + addStringsLoader(bitrixId, BitrixLang.loadLang) + addStringsLoader(boardId, BoardLang.loadLang) + addStringsLoader(calendarId, CalendarLang.loadLang) + addStringsLoader(chunterId, ChunterLang.loadLang) + addStringsLoader(contactId, ContactLang.loadLang) + addStringsLoader(driveId, DriveLang.loadLang) + addStringsLoader(gmailId, GmailLang.loadLang) + addStringsLoader(hrId, HrLang.loadLang) + addStringsLoader(inventoryId, InventoryLang.loadLang) + addStringsLoader(leadId, LeadLang.loadLang) + addStringsLoader(loginId, LoginLang.loadLang) + addStringsLoader(notificationId, NotificationLang.loadLang) + addStringsLoader(onboardId, OnboardLang.loadLang) + addStringsLoader(preferenceId, PreferenceLang.loadLang) + addStringsLoader(recruitId, RecruitLang.loadLang) + addStringsLoader(requestId, RequestLang.loadLang) + addStringsLoader(settingId, SettingLang.loadLang) + addStringsLoader(supportId, SupportLang.loadLang) + addStringsLoader(tagsId, TagsLang.loadLang) + addStringsLoader(taskId, TaskLang.loadLang) + addStringsLoader(telegramId, TelegramLang.loadLang) + addStringsLoader(templatesId, TemplatesLang.loadLang) + addStringsLoader(trackerId, TrackerLang.loadLang) + addStringsLoader(viewId, ViewLang.loadLang) + addStringsLoader(workbenchId, WorkbenchLang.loadLang) + + addStringsLoader(desktopPreferencesId, DesktopPreferencesLang.loadLang) + addStringsLoader(diffviewId, DiffviewLang.loadLang) + addStringsLoader(documentId, DocumentLang.loadLang) + addStringsLoader(timeId, TimeLang.loadLang) + addStringsLoader(githubId, GithubLang.loadLang) + addStringsLoader(documentsId, ControlledDocumentsLang.loadLang) + addStringsLoader(productsId, ProductsLang.loadLang) + addStringsLoader(questionsId, QuestionsLang.loadLang) + addStringsLoader(trainingId, TrainingLang.loadLang) + addStringsLoader(guestId, GuestLang.loadLang) + addStringsLoader(globalProfileId, GlobalProfileLang.loadLang) + addStringsLoader(loveId, LoveLang.loadLang) + addStringsLoader(printId, PrintLang.loadLang) + addStringsLoader(exportId, ExportLang.loadLang) + addStringsLoader(analyticsCollectorId, AnalyticsCollectorLang.loadLang) + addStringsLoader(testManagementId, TestManagementLang.loadLang) + addStringsLoader(surveyId, SurveyLang.loadLang) + addStringsLoader(cardId, CardLang.loadLang) + addStringsLoader(mailId, MailLang.loadLang) + addStringsLoader(chatId, ChatLang.loadLang) + addStringsLoader(processId, ProcessLang.loadLang) + addStringsLoader(achievementId, AchievementLang.loadLang) addStringsLoader( communicationId, async (lang: string) => await import(`@hcengineering/communication-assets/lang/${lang}.json`) ) - addStringsLoader(inboxId, async (lang: string) => await import(`@hcengineering/inbox-assets/lang/${lang}.json`)) - addStringsLoader(emojiId, async (lang: string) => await import(`@hcengineering/emoji-assets/lang/${lang}.json`)) - addStringsLoader(billingId, async (lang: string) => await import(`@hcengineering/billing-assets/lang/${lang}.json`)) - addStringsLoader( - hulyMailId, - async (lang: string) => await import(`@hcengineering/huly-mail-assets/lang/${lang}.json`) - ) - addStringsLoader( - aiAssistantId, - async (lang: string) => await import(`@hcengineering/ai-assistant-assets/lang/${lang}.json`) - ) - addStringsLoader(ratingId, async (lang: string) => await import(`@hcengineering/rating-assets/lang/${lang}.json`)) + addStringsLoader(inboxId, InboxLang.loadLang) + addStringsLoader(emojiId, EmojiLang.loadLang) + addStringsLoader(billingId, BillingLang.loadLang) + addStringsLoader(hulyMailId, HulyMailLang.loadLang) + addStringsLoader(aiAssistantId, AiAssistantLang.loadLang) + addStringsLoader(ratingId, RatingLang.loadLang) } export async function configurePlatform() { diff --git a/plugins/chat-assets/src/lang.ts b/plugins/chat-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/chat-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://polyformproject.org/licenses/shield/1.0.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/inbox-assets/package.json b/plugins/inbox-assets/package.json index b814db232d..53e8b2e33c 100644 --- a/plugins/inbox-assets/package.json +++ b/plugins/inbox-assets/package.json @@ -61,8 +61,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/inbox-assets/src/lang.ts b/plugins/inbox-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/inbox-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://polyformproject.org/licenses/shield/1.0.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`)