Translations cleaning / workflows (#10125)
This commit is contained in:
@ -2,6 +2,7 @@ import { UseFilters, UseGuards } from '@nestjs/common';
|
||||
import { Args, Context, Mutation, Query, Resolver } from '@nestjs/graphql';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
|
||||
import { SOURCE_LOCALE } from 'twenty-shared';
|
||||
import { Repository } from 'typeorm';
|
||||
|
||||
import { ApiKeyTokenInput } from 'src/engine/core-modules/auth/dto/api-key-token.input';
|
||||
@ -348,7 +349,7 @@ export class AuthResolver {
|
||||
return await this.resetPasswordService.sendEmailPasswordResetLink(
|
||||
resetToken,
|
||||
emailPasswordResetInput.email,
|
||||
context.req.headers['x-locale'] || 'en',
|
||||
context.req.headers['x-locale'] || SOURCE_LOCALE,
|
||||
);
|
||||
}
|
||||
|
||||
@ -366,7 +367,7 @@ export class AuthResolver {
|
||||
await this.authService.updatePassword(
|
||||
id,
|
||||
newPassword,
|
||||
context.req.headers['x-locale'] || 'en',
|
||||
context.req.headers['x-locale'] || SOURCE_LOCALE,
|
||||
);
|
||||
|
||||
return await this.resetPasswordService.invalidatePasswordResetToken(id);
|
||||
|
||||
@ -2,7 +2,7 @@ import { Injectable, NestMiddleware } from '@nestjs/common';
|
||||
|
||||
import { i18n } from '@lingui/core';
|
||||
import { NextFunction, Request, Response } from 'express';
|
||||
import { APP_LOCALES } from 'twenty-shared';
|
||||
import { APP_LOCALES, SOURCE_LOCALE } from 'twenty-shared';
|
||||
|
||||
@Injectable()
|
||||
export class I18nMiddleware implements NestMiddleware {
|
||||
@ -12,7 +12,7 @@ export class I18nMiddleware implements NestMiddleware {
|
||||
if (locale && Object.values(APP_LOCALES).includes(locale)) {
|
||||
i18n.activate(locale);
|
||||
} else {
|
||||
i18n.activate('en');
|
||||
i18n.activate(SOURCE_LOCALE);
|
||||
}
|
||||
|
||||
next();
|
||||
|
||||
@ -1,18 +1,37 @@
|
||||
import { Injectable, OnModuleInit } from '@nestjs/common';
|
||||
|
||||
import { i18n } from '@lingui/core';
|
||||
import { APP_LOCALES } from 'twenty-shared';
|
||||
import { APP_LOCALES, SOURCE_LOCALE } from 'twenty-shared';
|
||||
|
||||
import { messages as afMessages } from 'src/engine/core-modules/i18n/locales/generated/af-ZA';
|
||||
import { messages as arMessages } from 'src/engine/core-modules/i18n/locales/generated/ar-SA';
|
||||
import { messages as caMessages } from 'src/engine/core-modules/i18n/locales/generated/ca-ES';
|
||||
import { messages as csMessages } from 'src/engine/core-modules/i18n/locales/generated/cs-CZ';
|
||||
import { messages as daMessages } from 'src/engine/core-modules/i18n/locales/generated/da-DK';
|
||||
import { messages as deMessages } from 'src/engine/core-modules/i18n/locales/generated/de-DE';
|
||||
import { messages as elMessages } from 'src/engine/core-modules/i18n/locales/generated/el-GR';
|
||||
import { messages as enMessages } from 'src/engine/core-modules/i18n/locales/generated/en';
|
||||
import { messages as esMessages } from 'src/engine/core-modules/i18n/locales/generated/es-ES';
|
||||
import { messages as fiMessages } from 'src/engine/core-modules/i18n/locales/generated/fi-FI';
|
||||
import { messages as frMessages } from 'src/engine/core-modules/i18n/locales/generated/fr-FR';
|
||||
import { messages as heMessages } from 'src/engine/core-modules/i18n/locales/generated/he-IL';
|
||||
import { messages as huMessages } from 'src/engine/core-modules/i18n/locales/generated/hu-HU';
|
||||
import { messages as itMessages } from 'src/engine/core-modules/i18n/locales/generated/it-IT';
|
||||
import { messages as jaMessages } from 'src/engine/core-modules/i18n/locales/generated/ja-JP';
|
||||
import { messages as koMessages } from 'src/engine/core-modules/i18n/locales/generated/ko-KR';
|
||||
import { messages as nlMessages } from 'src/engine/core-modules/i18n/locales/generated/nl-NL';
|
||||
import { messages as noMessages } from 'src/engine/core-modules/i18n/locales/generated/no-NO';
|
||||
import { messages as plMessages } from 'src/engine/core-modules/i18n/locales/generated/pl-PL';
|
||||
import { messages as pseudoEnMessages } from 'src/engine/core-modules/i18n/locales/generated/pseudo-en';
|
||||
import { messages as ptBRMessages } from 'src/engine/core-modules/i18n/locales/generated/pt-BR';
|
||||
import { messages as ptPTMessages } from 'src/engine/core-modules/i18n/locales/generated/pt-PT';
|
||||
import { messages as roMessages } from 'src/engine/core-modules/i18n/locales/generated/ro-RO';
|
||||
import { messages as ruMessages } from 'src/engine/core-modules/i18n/locales/generated/ru-RU';
|
||||
import { messages as srMessages } from 'src/engine/core-modules/i18n/locales/generated/sr-Cyrl';
|
||||
import { messages as svMessages } from 'src/engine/core-modules/i18n/locales/generated/sv-SE';
|
||||
import { messages as trMessages } from 'src/engine/core-modules/i18n/locales/generated/tr-TR';
|
||||
import { messages as ukMessages } from 'src/engine/core-modules/i18n/locales/generated/uk-UA';
|
||||
import { messages as viMessages } from 'src/engine/core-modules/i18n/locales/generated/vi-VN';
|
||||
import { messages as zhHansMessages } from 'src/engine/core-modules/i18n/locales/generated/zh-CN';
|
||||
import { messages as zhHantMessages } from 'src/engine/core-modules/i18n/locales/generated/zh-TW';
|
||||
|
||||
@ -22,14 +41,33 @@ export class I18nService implements OnModuleInit {
|
||||
const messages: Record<keyof typeof APP_LOCALES, any> = {
|
||||
en: enMessages,
|
||||
'pseudo-en': pseudoEnMessages,
|
||||
'fr-FR': frMessages,
|
||||
'ko-KR': koMessages,
|
||||
'af-ZA': afMessages,
|
||||
'ar-SA': arMessages,
|
||||
'ca-ES': caMessages,
|
||||
'cs-CZ': csMessages,
|
||||
'da-DK': daMessages,
|
||||
'de-DE': deMessages,
|
||||
'it-IT': itMessages,
|
||||
'el-GR': elMessages,
|
||||
'es-ES': esMessages,
|
||||
'fi-FI': fiMessages,
|
||||
'fr-FR': frMessages,
|
||||
'he-IL': heMessages,
|
||||
'hu-HU': huMessages,
|
||||
'it-IT': itMessages,
|
||||
'ja-JP': jaMessages,
|
||||
'pt-PT': ptPTMessages,
|
||||
'ko-KR': koMessages,
|
||||
'nl-NL': nlMessages,
|
||||
'no-NO': noMessages,
|
||||
'pl-PL': plMessages,
|
||||
'pt-BR': ptBRMessages,
|
||||
'pt-PT': ptPTMessages,
|
||||
'ro-RO': roMessages,
|
||||
'ru-RU': ruMessages,
|
||||
'sr-Cyrl': srMessages,
|
||||
'sv-SE': svMessages,
|
||||
'tr-TR': trMessages,
|
||||
'uk-UA': ukMessages,
|
||||
'vi-VN': viMessages,
|
||||
'zh-CN': zhHansMessages,
|
||||
'zh-TW': zhHantMessages,
|
||||
};
|
||||
@ -40,7 +78,7 @@ export class I18nService implements OnModuleInit {
|
||||
},
|
||||
);
|
||||
|
||||
i18n.activate('en');
|
||||
i18n.activate(SOURCE_LOCALE);
|
||||
}
|
||||
|
||||
async onModuleInit() {
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -2,7 +2,7 @@
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
|
||||
import { TypeOrmQueryService } from '@ptc-org/nestjs-query-typeorm';
|
||||
import { isDefined } from 'twenty-shared';
|
||||
import { isDefined, SOURCE_LOCALE } from 'twenty-shared';
|
||||
import { Repository } from 'typeorm';
|
||||
|
||||
import { TypeORMService } from 'src/database/typeorm/typeorm.service';
|
||||
@ -78,7 +78,7 @@ export class UserWorkspaceService extends TypeOrmQueryService<UserWorkspace> {
|
||||
user.id,
|
||||
user.email,
|
||||
user.defaultAvatarUrl ?? '',
|
||||
user.locale ?? 'en',
|
||||
user.locale ?? SOURCE_LOCALE,
|
||||
],
|
||||
);
|
||||
const workspaceMember = await workspaceDataSource?.query(
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
import { EntityManager } from 'typeorm';
|
||||
|
||||
import { DEMO_SEED_USER_IDS } from 'src/database/typeorm-seeds/core/demo/users';
|
||||
import { SOURCE_LOCALE } from 'twenty-shared';
|
||||
|
||||
export const DEMO_SEED_WORKSPACE_MEMBER_IDS = {
|
||||
NOAH: '20202020-0687-4c41-b707-ed1bfca972a2',
|
||||
@ -30,7 +31,7 @@ export const seedWorkspaceMemberWithDemoData = async (
|
||||
id: DEMO_SEED_WORKSPACE_MEMBER_IDS.NOAH,
|
||||
nameFirstName: 'Noah',
|
||||
nameLastName: 'A',
|
||||
locale: 'en',
|
||||
locale: SOURCE_LOCALE,
|
||||
colorScheme: 'Light',
|
||||
userEmail: 'noah@demo.dev',
|
||||
userId: DEMO_SEED_USER_IDS.NOAH,
|
||||
@ -39,7 +40,7 @@ export const seedWorkspaceMemberWithDemoData = async (
|
||||
id: DEMO_SEED_WORKSPACE_MEMBER_IDS.HUGO,
|
||||
nameFirstName: 'Hugo',
|
||||
nameLastName: 'I',
|
||||
locale: 'en',
|
||||
locale: SOURCE_LOCALE,
|
||||
colorScheme: 'Light',
|
||||
userEmail: 'hugo@demo.dev',
|
||||
userId: DEMO_SEED_USER_IDS.HUGO,
|
||||
@ -48,7 +49,7 @@ export const seedWorkspaceMemberWithDemoData = async (
|
||||
id: DEMO_SEED_WORKSPACE_MEMBER_IDS.TIM,
|
||||
nameFirstName: 'Tim',
|
||||
nameLastName: 'Apple',
|
||||
locale: 'en',
|
||||
locale: SOURCE_LOCALE,
|
||||
colorScheme: 'Light',
|
||||
userEmail: 'tim@apple.dev',
|
||||
userId: DEMO_SEED_USER_IDS.TIM,
|
||||
|
||||
Reference in New Issue
Block a user