diff --git a/apps/meteor/server/services/startup.ts b/apps/meteor/server/services/startup.ts index 90f3288c9fb..8707cd409c3 100644 --- a/apps/meteor/server/services/startup.ts +++ b/apps/meteor/server/services/startup.ts @@ -25,7 +25,6 @@ import { RoomService } from './room/service'; import { SAUMonitorService } from './sauMonitor/service'; import { SettingsService } from './settings/service'; import { TeamService } from './team/service'; -import { TranslationService } from './translation/service'; import { UiKitCoreAppService } from './uikit-core-app/service'; import { UploadService } from './upload/service'; import { UserService } from './user/service'; @@ -57,7 +56,6 @@ export const registerServices = async (): Promise => { api.registerService(new VideoConfService()); api.registerService(new UploadService()); api.registerService(new MessageService()); - api.registerService(new TranslationService()); api.registerService(new SettingsService()); api.registerService(new OmnichannelIntegrationService()); api.registerService(new ImportService()); diff --git a/apps/meteor/server/services/translation/service.ts b/apps/meteor/server/services/translation/service.ts deleted file mode 100644 index 2dbc1a57a5e..00000000000 --- a/apps/meteor/server/services/translation/service.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { ServiceClassInternal } from '@rocket.chat/core-services'; -import type { ITranslationService } from '@rocket.chat/core-services'; -import type { IUser } from '@rocket.chat/core-typings'; -import { Settings } from '@rocket.chat/models'; -import mem from 'mem'; - -import { i18n } from '../../lib/i18n'; - -export class TranslationService extends ServiceClassInternal implements ITranslationService { - protected name = 'translation'; - - // Cache the server language for 1 hour - private getServerLanguageCached = mem(this.getServerLanguage.bind(this), { maxAge: 1000 * 60 * 60 }); - - private async getServerLanguage(): Promise { - return ((await Settings.findOneById('Language'))?.value as string) || 'en'; - } - - // Use translateText when you already know the language, or want to translate to a predefined language - translateText(text: string, targetLanguage: string, args?: Record): Promise { - return Promise.resolve(i18n.t(text, { lng: targetLanguage, ...args })); - } - - // Use translate when you want to translate to the user's language, or server's as a fallback - async translate(text: string, user: IUser): Promise { - const language = user.language || (await this.getServerLanguageCached()); - - return this.translateText(text, language); - } - - async translateToServerLanguage(text: string, args?: Record): Promise { - const language = await this.getServerLanguageCached(); - - return this.translateText(text, language, args); - } - - async translateMultipleToServerLanguage(keys: string[]): Promise> { - const language = await this.getServerLanguageCached(); - - return keys.map((key) => ({ - key, - value: i18n.t(key, { lng: language, fallbackLng: 'en' }), - })); - } -} diff --git a/packages/core-services/src/index.ts b/packages/core-services/src/index.ts index c59df5ee55e..de2b5f4291e 100644 --- a/packages/core-services/src/index.ts +++ b/packages/core-services/src/index.ts @@ -42,7 +42,6 @@ import type { IListRoomsFilter, } from './types/ITeamService'; import type { ITelemetryEvent, TelemetryMap, TelemetryEvents } from './types/ITelemetryEvent'; -import type { ITranslationService } from './types/ITranslationService'; import type { UiKitCoreAppPayload, IUiKitCoreApp, IUiKitCoreAppService } from './types/IUiKitCoreApp'; import type { ISendFileLivechatMessageParams, ISendFileMessageParams, IUploadFileParams, IUploadService } from './types/IUploadService'; import type { IUserService } from './types/IUserService'; @@ -139,7 +138,6 @@ export { IOmnichannelTranscriptService, IQueueWorkerService, HealthAggResult, - ITranslationService, IMessageService, ISettingsService, IOmnichannelEEService, @@ -176,7 +174,6 @@ export const Calendar = proxify('calendar'); export const QueueWorker = proxify('queue-worker'); export const OmnichannelTranscript = proxify('omnichannel-transcript'); export const Message = proxify('message'); -export const Translation = proxify('translation'); export const Settings = proxify('settings'); export const OmnichannelIntegration = proxify('omnichannel-integration'); export const Federation = proxify('federation'); diff --git a/packages/core-services/src/types/ITranslationService.ts b/packages/core-services/src/types/ITranslationService.ts deleted file mode 100644 index a3e159c9ce1..00000000000 --- a/packages/core-services/src/types/ITranslationService.ts +++ /dev/null @@ -1,8 +0,0 @@ -import type { IUser } from '@rocket.chat/core-typings'; - -export interface ITranslationService { - translateText(text: string, targetLanguage: string, args?: Record): Promise; - translate(text: string, user: IUser): Promise; - translateToServerLanguage(text: string, args?: Record): Promise; - translateMultipleToServerLanguage(keys: string[]): Promise>; -}