diff --git a/generators/base-core/generator.mts b/generators/base-core/generator.mts index 475f64f3ffa..88411d3dbcc 100644 --- a/generators/base-core/generator.mts +++ b/generators/base-core/generator.mts @@ -267,7 +267,7 @@ export default class CoreGenerator extends YeomanGenerator 0; priorities = priorities.filter(priorityName => !this.options.skipPriorities!.includes(priorityName)); diff --git a/generators/base/api.d.mts b/generators/base/api.d.mts index 22b2f181dcc..a388352bc2e 100644 --- a/generators/base/api.d.mts +++ b/generators/base/api.d.mts @@ -71,6 +71,10 @@ export type JHipsterGeneratorFeatures = BaseFeatures & { jhipster7Migration?: boolean; sbsBlueprint?: boolean; checkBlueprint?: boolean; + /** + * Disable skipPriorities flag. + */ + disableSkipPriorities?: boolean; /** * Compose with bootstrap generator. * diff --git a/generators/entities/__snapshots__/generator.spec.mts.snap b/generators/entities/__snapshots__/generator.spec.mts.snap index ee5d6bf358f..2edca06ff87 100644 --- a/generators/entities/__snapshots__/generator.spec.mts.snap +++ b/generators/entities/__snapshots__/generator.spec.mts.snap @@ -257,15 +257,60 @@ exports[`generator - entities regenerating all entities should match snapshot 1` "src/main/webapp/app/entities/skip/update/skip-update.component.ts": { "stateCleared": "modified", }, + "src/main/webapp/i18n/en/activate.json": { + "stateCleared": "modified", + }, "src/main/webapp/i18n/en/bar.json": { "stateCleared": "modified", }, + "src/main/webapp/i18n/en/configuration.json": { + "stateCleared": "modified", + }, + "src/main/webapp/i18n/en/error.json": { + "stateCleared": "modified", + }, "src/main/webapp/i18n/en/foo.json": { "stateCleared": "modified", }, + "src/main/webapp/i18n/en/global.json": { + "stateCleared": "modified", + }, + "src/main/webapp/i18n/en/health.json": { + "stateCleared": "modified", + }, + "src/main/webapp/i18n/en/home.json": { + "stateCleared": "modified", + }, + "src/main/webapp/i18n/en/login.json": { + "stateCleared": "modified", + }, + "src/main/webapp/i18n/en/logs.json": { + "stateCleared": "modified", + }, + "src/main/webapp/i18n/en/metrics.json": { + "stateCleared": "modified", + }, + "src/main/webapp/i18n/en/password.json": { + "stateCleared": "modified", + }, + "src/main/webapp/i18n/en/register.json": { + "stateCleared": "modified", + }, + "src/main/webapp/i18n/en/reset.json": { + "stateCleared": "modified", + }, + "src/main/webapp/i18n/en/sessions.json": { + "stateCleared": "modified", + }, + "src/main/webapp/i18n/en/settings.json": { + "stateCleared": "modified", + }, "src/main/webapp/i18n/en/skip.json": { "stateCleared": "modified", }, + "src/main/webapp/i18n/en/user-management.json": { + "stateCleared": "modified", + }, "src/test/java/com/mycompany/myapp/domain/BarTest.java": { "stateCleared": "modified", }, @@ -535,12 +580,57 @@ exports[`generator - entities regenerating some entities should match snapshot 1 "src/main/webapp/app/entities/foo/update/foo-update.component.ts": { "stateCleared": "modified", }, + "src/main/webapp/i18n/en/activate.json": { + "stateCleared": "modified", + }, "src/main/webapp/i18n/en/bar.json": { "stateCleared": "modified", }, + "src/main/webapp/i18n/en/configuration.json": { + "stateCleared": "modified", + }, + "src/main/webapp/i18n/en/error.json": { + "stateCleared": "modified", + }, "src/main/webapp/i18n/en/foo.json": { "stateCleared": "modified", }, + "src/main/webapp/i18n/en/global.json": { + "stateCleared": "modified", + }, + "src/main/webapp/i18n/en/health.json": { + "stateCleared": "modified", + }, + "src/main/webapp/i18n/en/home.json": { + "stateCleared": "modified", + }, + "src/main/webapp/i18n/en/login.json": { + "stateCleared": "modified", + }, + "src/main/webapp/i18n/en/logs.json": { + "stateCleared": "modified", + }, + "src/main/webapp/i18n/en/metrics.json": { + "stateCleared": "modified", + }, + "src/main/webapp/i18n/en/password.json": { + "stateCleared": "modified", + }, + "src/main/webapp/i18n/en/register.json": { + "stateCleared": "modified", + }, + "src/main/webapp/i18n/en/reset.json": { + "stateCleared": "modified", + }, + "src/main/webapp/i18n/en/sessions.json": { + "stateCleared": "modified", + }, + "src/main/webapp/i18n/en/settings.json": { + "stateCleared": "modified", + }, + "src/main/webapp/i18n/en/user-management.json": { + "stateCleared": "modified", + }, "src/test/java/com/mycompany/myapp/domain/BarTest.java": { "stateCleared": "modified", }, diff --git a/generators/languages/generator.mjs b/generators/languages/generator.mjs index 09dcdc1869f..89aa3e22072 100644 --- a/generators/languages/generator.mjs +++ b/generators/languages/generator.mjs @@ -35,6 +35,7 @@ import { updateLanguagesTask as updateLanguagesInJava } from '../server/support/ import { SERVER_MAIN_RES_DIR, SERVER_TEST_RES_DIR } from '../generator-constants.mjs'; import command from './command.mjs'; import { QUEUES } from '../base-application/priorities.mjs'; +import { PRIORITY_NAMES } from '../base/priorities.mjs'; const { startCase } = _; @@ -75,6 +76,17 @@ export default class LanguagesGenerator extends BaseApplicationGenerator { if (!this.delegateToBlueprint) { await this.dependsOnJHipster(GENERATOR_BOOTSTRAP_APPLICATION); } + + if ( + !this.jhipsterConfigWithDefaults.skipClient && + this.jhipsterConfigWithDefaults.clientFramework !== 'no' && + (!this.jhipsterConfig.enableTranslation || this.jhipsterConfigWithDefaults.clientFramework === 'angular') + ) { + // We must write languages files for translation process for entities only generation. + // Angular frontend uses translation files even if enableTranslation is enabled. + // As side effect, with angular frontends, translation files will be written for nativeLanguage for entity only generation. + this.setFeatures({ disableSkipPriorities: true }); + } } // Public API method used by the getter and also by Blueprints @@ -268,7 +280,8 @@ export default class LanguagesGenerator extends BaseApplicationGenerator { if ( !application.enableTranslation || application.skipServer || - (!application.backendTypeSpringBoot && !this.writeJavaLanguageFiles) + (!application.backendTypeSpringBoot && !this.writeJavaLanguageFiles) || + this.options.skipPriorities?.includes?.(PRIORITY_NAMES.POST_WRITING) ) return; await Promise.all( @@ -323,6 +336,8 @@ export default class LanguagesGenerator extends BaseApplicationGenerator { get postWriting() { return this.asPostWritingTaskGroup({ write({ application, control }) { + if (this.options.skipPriorities?.includes?.(PRIORITY_NAMES.POST_WRITING)) return; + if (application.enableTranslation && !application.skipClient) { if (application.clientFrameworkAngular) { updateLanguagesInAngularTask.call(this, { application, control });