[ACS-5629] enhanced way of providing translations (#8763)

* enhanced way providing translations

* update documentation

* update documentation

* test fixes

* try add missing module import

* inject i18n to core module to cause the setup
This commit is contained in:
Denys Vuika
2023-07-18 20:06:09 +01:00
committed by GitHub
parent d70f689e06
commit 1a4d7ba008
11 changed files with 99 additions and 183 deletions

View File

@@ -25,7 +25,7 @@ import {
FormModel,
FormOutcomeEvent,
FormOutcomeModel, FormRenderingService, FormService,
TRANSLATION_PROVIDER, UploadWidgetContentLinkModel, WidgetVisibilityService
UploadWidgetContentLinkModel, WidgetVisibilityService, provideTranslations
} from '@alfresco/adf-core';
import { Node } from '@alfresco/js-api';
import { ESCAPE } from '@angular/cdk/keycodes';
@@ -54,6 +54,7 @@ import { FormCloudRepresentation } from '../models/form-cloud-representation.mod
import { FormCloudService } from '../services/form-cloud.service';
import { CloudFormRenderingService } from './cloud-form-rendering.service';
import { FormCloudComponent } from './form-cloud.component';
import { ProcessServicesCloudModule } from '../../process-services-cloud.module';
const mockOauth2Auth: any = {
oauth2Auth: {
@@ -1152,17 +1153,11 @@ describe('Multilingual Form', () => {
imports: [
NoopAnimationsModule,
TranslateModule.forRoot(),
CoreModule.forRoot()
CoreModule.forRoot(),
ProcessServicesCloudModule.forRoot()
],
providers: [
{
provide: TRANSLATION_PROVIDER,
multi: true,
useValue: {
name: 'app',
source: 'resources'
}
}
provideTranslations('app', 'resources')
]
});
translateService = TestBed.inject(TranslateService);
@@ -1184,20 +1179,20 @@ describe('Multilingual Form', () => {
formComponent.ngOnChanges({ appName: new SimpleChange(null, appName, true) });
expect(formCloudService.getForm).toHaveBeenCalledWith(appName, formId, 1);
fixture.ngZone.run(() => translateService.use('fr'));
await translateService.use('fr').toPromise();
await fixture.whenStable();
fixture.detectChanges();
await fixture.whenStable();
expect(getLabelValue('textField')).toEqual('Champ de texte');
expect(getLabelValue('fildUploadField')).toEqual('Téléchargement de fichiers');
expect(getLabelValue('dateField')).toEqual('Champ de date (D-M-YYYY)');
expect(getLabelValue('amountField')).toEqual('Champ Montant');
fixture.ngZone.run(() => translateService.use('en'));
await translateService.use('en').toPromise();
await fixture.whenStable();
fixture.detectChanges();
await fixture.whenStable();
expect(getLabelValue('textField')).toEqual('Text field');
expect(getLabelValue('fildUploadField')).toEqual('File Upload');
@@ -1237,14 +1232,7 @@ describe('retrieve metadata on submit', () => {
FormCloudModule
],
providers: [
{
provide: TRANSLATION_PROVIDER,
multi: true,
useValue: {
name: 'app',
source: 'resources'
}
},
provideTranslations('app', 'resources'),
{
provide: VersionCompatibilityService,
useValue: {}

View File

@@ -16,7 +16,7 @@
*/
import { NgModule, ModuleWithProviders } from '@angular/core';
import { TRANSLATION_PROVIDER, CoreModule, FormRenderingService } from '@alfresco/adf-core';
import { CoreModule, FormRenderingService, provideTranslations } from '@alfresco/adf-core';
import { AppListCloudModule } from './app/app-list-cloud.module';
import { TaskCloudModule } from './task/task-cloud.module';
import { ProcessCloudModule } from './process/process-cloud.module';
@@ -52,14 +52,7 @@ import { RichTextEditorModule } from './rich-text-editor/rich-text-editor.module
RichTextEditorModule
],
providers: [
{
provide: TRANSLATION_PROVIDER,
multi: true,
useValue: {
name: 'adf-process-services-cloud',
source: 'assets/adf-process-services-cloud'
}
}
provideTranslations('adf-process-services-cloud', 'assets/adf-process-services-cloud')
],
exports: [
AppListCloudModule,
@@ -81,14 +74,7 @@ export class ProcessServicesCloudModule {
return {
ngModule: ProcessServicesCloudModule,
providers: [
{
provide: TRANSLATION_PROVIDER,
multi: true,
useValue: {
name: 'adf-process-services-cloud',
source: 'assets/adf-process-services-cloud'
}
},
provideTranslations('adf-process-services-cloud', 'assets/adf-process-services-cloud'),
{ provide: PROCESS_FILTERS_SERVICE_TOKEN, useExisting: filterPreferenceServiceInstance ?? LocalPreferenceCloudService },
{ provide: TASK_FILTERS_SERVICE_TOKEN, useExisting: filterPreferenceServiceInstance ?? LocalPreferenceCloudService },
{ provide: PROCESS_LISTS_PREFERENCES_SERVICE_TOKEN, useExisting: listPreferenceServiceInstance ?? LocalPreferenceCloudService },

View File

@@ -16,25 +16,20 @@
*/
import { NgModule } from '@angular/core';
import { CoreModule, TRANSLATION_PROVIDER } from '@alfresco/adf-core';
import { CoreModule, provideTranslations } from '@alfresco/adf-core';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { TranslateModule } from '@ngx-translate/core';
import { ProcessServicesCloudModule } from '../process-services-cloud.module';
@NgModule({
imports: [
BrowserAnimationsModule,
TranslateModule.forRoot(),
CoreModule.forRoot(),
BrowserAnimationsModule
ProcessServicesCloudModule.forRoot()
],
providers: [
{
provide: TRANSLATION_PROVIDER,
multi: true,
useValue: {
name: 'adf-process-services-cloud',
source: 'assets/adf-process-services-cloud'
}
}
provideTranslations('adf-process-services-cloud', 'assets/adf-process-services-cloud')
]
})
export class ProcessServicesCloudStoryModule { }