diff --git a/.release-it.json b/.release-it.json index c341a81872..68ed5b69ee 100644 --- a/.release-it.json +++ b/.release-it.json @@ -5,8 +5,8 @@ "force": false, "pkgFiles": ["package.json"], "increment": "conventional:angular", - "beforeChangelogCommand": "npm run generate:changelog", - "changelogCommand": "npm run generate:changelog-recent", + "beforeChangelogCommand": "npm run generate:changelog", + "changelogCommand": "npm run generate:changelog-recent", "buildCommand": false, "safeBump": false, "beforeChangelogCommand": false, diff --git a/packages/stark-build/config/ng-cli-utils.js b/packages/stark-build/config/ng-cli-utils.js index ee19ad47b8..16240d6671 100644 --- a/packages/stark-build/config/ng-cli-utils.js +++ b/packages/stark-build/config/ng-cli-utils.js @@ -29,7 +29,7 @@ function validateAngularCLIConfig(jsonConfig) { try { const serializedConfig = JSON.parse(config.$$serialize("application/json")); return serializedConfig; - } catch(error) { + } catch (error) { return false; } } diff --git a/packages/stark-build/config/webpack.common.js b/packages/stark-build/config/webpack.common.js index c07511f2c9..0b99a763da 100644 --- a/packages/stark-build/config/webpack.common.js +++ b/packages/stark-build/config/webpack.common.js @@ -65,7 +65,7 @@ module.exports = function(options) { sourceMap: true // TODO: apply based on tsConfig value? } }; - + const rootDir = buildUtils.getAngularCliAppConfig().root; return { @@ -359,8 +359,8 @@ module.exports = function(options) { new CopyWebpackPlugin( [ ...buildUtils.getNbbAssetsConfig(), - - ...buildUtils.getApplicationAssetsConfig(), + + ...buildUtils.getApplicationAssetsConfig() // TODO uncomment this when is part of Stark // // Stark assets // { diff --git a/packages/stark-core/.ng-cli-config.json b/packages/stark-core/.ng-cli-config.json index 629190af44..fb434035c2 100644 --- a/packages/stark-core/.ng-cli-config.json +++ b/packages/stark-core/.ng-cli-config.json @@ -1,5 +1,5 @@ { - "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", "project": { "name": "stark-core" }, diff --git a/packages/stark-core/src/common/translations/locale.intf.ts b/packages/stark-core/src/common/translations/locale.intf.ts new file mode 100644 index 0000000000..31d64e1248 --- /dev/null +++ b/packages/stark-core/src/common/translations/locale.intf.ts @@ -0,0 +1,4 @@ +export interface StarkLocale { + languageCode: string; + translations: Object; +} diff --git a/packages/stark-core/src/common/translations/translations.spec.ts b/packages/stark-core/src/common/translations/translations.spec.ts new file mode 100644 index 0000000000..05b9f039e3 --- /dev/null +++ b/packages/stark-core/src/common/translations/translations.spec.ts @@ -0,0 +1,113 @@ +import { inject, TestBed } from "@angular/core/testing"; +import { TranslateModule, TranslateService } from "@ngx-translate/core"; +import { mergeTranslations } from "./translations"; +import { StarkLocale } from "./locale.intf"; + +describe("Translations: mergeTranslations", () => { + const translateModule: TranslateModule = TranslateModule.forRoot(); + let translateService: TranslateService; + + const moduleTranslationsEn: any = { + STARK: { + TEST: { + TEXT1: "Text1 from module", + TEXT2: "Text2 from module" + } + } + }; + + const appTranslationsEn: any = { + STARK: { + TEST: { + TEXT2: "Text2 from app", + TEXT3: "Text3 from app" + } + } + }; + + const appTranslationsDe: any = { + STARK: { + TEST: { + TEXT1: "Text1 aus der app", + TEXT2: "Text2 aus der app", + TEXT3: "Text3 aus der app" + } + } + }; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [translateModule] + }); + }); + + // Inject module dependencies + beforeEach( + inject([TranslateService], (_translateService: TranslateService) => { + translateService = _translateService; + translateService.addLangs(["en", "fr", "nl", "de"]); + translateService.setDefaultLang("en"); + }) + ); + + describe("mergeTranslations", () => { + it("should return the merged translations from common, module and app", () => { + // First the module is loaded + const english: StarkLocale = { languageCode: "en", translations: moduleTranslationsEn }; + mergeTranslations(translateService, english); + + // then the app is loaded + translateService.setTranslation("en", appTranslationsEn, true); + translateService.use("en"); + + const text1: string = translateService.instant("STARK.TEST.TEXT1"); + const text2: string = translateService.instant("STARK.TEST.TEXT2"); + const text3: string = translateService.instant("STARK.TEST.TEXT3"); + const ascending: string = translateService.instant("STARK.SORTING.ASC"); + + expect(text1).toBe("Text1 from module"); + expect(text2).toBe("Text2 from app"); // the app has the upper hand + expect(text3).toBe("Text3 from app"); + expect(ascending).toBe("Ascending"); // Common translations + }); + + it("should return the merged translations from common, module and app when lazy loading modules", () => { + // First the app is loaded + translateService.setTranslation("en", appTranslationsEn, true); + translateService.use("en"); + + // Then the module is lazy loaded + const english: StarkLocale = { languageCode: "en", translations: moduleTranslationsEn }; + mergeTranslations(translateService, english); + + const text1: string = translateService.instant("STARK.TEST.TEXT1"); + const text2: string = translateService.instant("STARK.TEST.TEXT2"); + const text3: string = translateService.instant("STARK.TEST.TEXT3"); + const ascending: string = translateService.instant("STARK.SORTING.ASC"); + + expect(text1).toBe("Text1 from module"); + expect(text2).toBe("Text2 from app"); // the app has the upper hand + expect(text3).toBe("Text3 from app"); + expect(ascending).toBe("Ascending"); // Common translations + }); + + it("should return the merged translations, where the app has an extra language", () => { + translateService.setTranslation("en", appTranslationsEn, true); + translateService.setTranslation("de", appTranslationsDe, true); + translateService.use("de"); + + const english: StarkLocale = { languageCode: "en", translations: moduleTranslationsEn }; + mergeTranslations(translateService, english); + + const text1: string = translateService.instant("STARK.TEST.TEXT1"); + const text2: string = translateService.instant("STARK.TEST.TEXT2"); + const text3: string = translateService.instant("STARK.TEST.TEXT3"); + const ascending: string = translateService.instant("STARK.SORTING.ASC"); + + expect(text1).toBe("Text1 aus der app"); + expect(text2).toBe("Text2 aus der app"); + expect(text3).toBe("Text3 aus der app"); + expect(ascending).toBe("Ascending"); // missing in the app => translated from the default language 'en' + }); + }); +}); diff --git a/packages/stark-core/src/common/translations/translations.ts b/packages/stark-core/src/common/translations/translations.ts new file mode 100644 index 0000000000..d54f0a1a1f --- /dev/null +++ b/packages/stark-core/src/common/translations/translations.ts @@ -0,0 +1,53 @@ +import { TranslateService } from "@ngx-translate/core"; +const _cloneDeep: Function = require("lodash/cloneDeep"); + +import { StarkLocale } from "./locale.intf"; +import { translationsEn } from "./translations/en"; +import { translationsFr } from "./translations/fr"; +import { translationsNl } from "./translations/nl"; + +/** + * This function can be used by Stark modules to merge their translations into existing translations, + * without losing any existing translations. + * + * There are three 'levels' that can provide translations: + * 1. Common: for the Stark framework, they are stored in the 'translations' folder in the current folder. + * 2. Module: each module contains it's own translations, to make Stark fully modular. + * 3. App: the translations provided by the client application that implements the Stark framework. + * + * These levels have a hierarchy, where the common translations have to lowest priority and the translations + * of the client application have the highest priority. This means that if one or more levels have a + * translation with the same key, the translation with the highest priority 'wins'. + * + * Functionality: + * First the existing translations are stored in a variable 'translations'. + * The function then iterates over the 'args' parameters. + * For each language, the following steps are processed: + * 1. The translateService is cleaned (shouldMerge = false) + * 2. The 'common' translations are added in the translateService + * 3. The 'module' translations are added in the translateService, replacing any existing translations + * 4. The 'stored' translations are added in the translateService, replacing any existing translations + * + * @param translateService + * Description: a reference to the translateService instance + * @param args + * Description: a list of StarkLocales that contain the translations for a specific language + * + * @example: + * mergeTranslations(this.translateService, english, french, dutch); + */ +export function mergeTranslations(translateService: TranslateService, ...args: StarkLocale[]): void { + const locales: StarkLocale[] = [...args]; + const translations: object = _cloneDeep(translateService.translations); + + const commonTranslations: any[] = []; + commonTranslations["en"] = translationsEn; + commonTranslations["fr"] = translationsFr; + commonTranslations["nl"] = translationsNl; + + locales.forEach((starkLocale: StarkLocale) => { + translateService.setTranslation(starkLocale.languageCode, commonTranslations[starkLocale.languageCode], false); + translateService.setTranslation(starkLocale.languageCode, starkLocale.translations, true); + translateService.setTranslation(starkLocale.languageCode, translations[starkLocale.languageCode], true); + }); +} diff --git a/packages/stark-core/src/common/translations/translations/en.ts b/packages/stark-core/src/common/translations/translations/en.ts new file mode 100644 index 0000000000..4938648e22 --- /dev/null +++ b/packages/stark-core/src/common/translations/translations/en.ts @@ -0,0 +1,14 @@ +export const translationsEn: object = { + STARK: { + LANGUAGES: { + EN: "English", + FR: "Français", + NL: "Nederlands", + DE: "Deutsch" + }, + SORTING: { + ASC: "Ascending", + DESC: "Descending" + } + } +}; diff --git a/packages/stark-core/src/common/translations/translations/fr.ts b/packages/stark-core/src/common/translations/translations/fr.ts new file mode 100644 index 0000000000..2412cfebdb --- /dev/null +++ b/packages/stark-core/src/common/translations/translations/fr.ts @@ -0,0 +1,14 @@ +export const translationsFr: object = { + STARK: { + LANGUAGES: { + EN: "English", + FR: "Français", + NL: "Nederlands", + DE: "Deutsch" + }, + SORTING: { + ASC: "Ascendant", + DESC: "Descendant" + } + } +}; diff --git a/packages/stark-core/src/common/translations/translations/nl.ts b/packages/stark-core/src/common/translations/translations/nl.ts new file mode 100644 index 0000000000..4270d58d25 --- /dev/null +++ b/packages/stark-core/src/common/translations/translations/nl.ts @@ -0,0 +1,14 @@ +export const translationsNl: object = { + STARK: { + LANGUAGES: { + EN: "English", + FR: "Français", + NL: "Nederlands", + DE: "Deutsch" + }, + SORTING: { + ASC: "Oplopend", + DESC: "Aflopend" + } + } +}; diff --git a/packages/stark-core/src/settings/effects/settings.effects.ts b/packages/stark-core/src/settings/effects/settings.effects.ts index c8c1326656..ddc7782ce7 100644 --- a/packages/stark-core/src/settings/effects/settings.effects.ts +++ b/packages/stark-core/src/settings/effects/settings.effects.ts @@ -18,7 +18,7 @@ export class StarkSettingsEffects { public setPreferredLanguage$(): Observable { return this.actions$.pipe( ofType(StarkSettingsActionTypes.SET_PREFERRED_LANGUAGE), - map((action: SetPreferredLanguage) =>this.sessionService.setCurrentLanguage(action.language)) + map((action: SetPreferredLanguage) => this.sessionService.setCurrentLanguage(action.language)) ); } } diff --git a/packages/stark-core/src/settings/services/settings.service.ts b/packages/stark-core/src/settings/services/settings.service.ts index b3951c86d2..2afe428445 100644 --- a/packages/stark-core/src/settings/services/settings.service.ts +++ b/packages/stark-core/src/settings/services/settings.service.ts @@ -40,7 +40,8 @@ export class StarkSettingsServiceImpl implements StarkSettingsService { this.store .pipe( select(selectStarkUser), - filter((user?: StarkUser) => typeof user !== "undefined" && typeof user.language !== "undefined")) + filter((user?: StarkUser) => typeof user !== "undefined" && typeof user.language !== "undefined") + ) .subscribe((user?: StarkUser) => { if ( (user).language !== null && diff --git a/packages/stark-testing/helpers.js b/packages/stark-testing/helpers.js index 48553d98d0..92fad9f151 100644 --- a/packages/stark-testing/helpers.js +++ b/packages/stark-testing/helpers.js @@ -12,22 +12,22 @@ const root = path.join.bind(path, _root); function getAngularCliAppConfig() { const applicationAngularCliConfigPath = root(".angular-cli.json"); const packageAngularCliConfigPath = root(".ng-cli-config.json"); - + let angularCliConfigPath; - + if (fs.existsSync(applicationAngularCliConfigPath)) { angularCliConfigPath = applicationAngularCliConfigPath; } else if (fs.existsSync(packageAngularCliConfigPath)) { angularCliConfigPath = packageAngularCliConfigPath; } else { - throw new Error(".angular-cli.json is not present. Please add this at the root your project because stark-build needs this.") + throw new Error(".angular-cli.json is not present. Please add this at the root your project because stark-build needs this."); } const angularCliConfig = require(angularCliConfigPath); if (angularCliConfig["apps"] && angularCliConfig["apps"][0]) { return angularCliConfig["apps"][0]; } else { - throw new Error("Angular-cli config apps is wrong. Please adapt it to follow Angular CLI way.") + throw new Error("Angular-cli config apps is wrong. Please adapt it to follow Angular CLI way."); } } diff --git a/starter/assets/translations/en.json b/starter/assets/translations/en.json index 0e7600d521..afaac352ac 100644 --- a/starter/assets/translations/en.json +++ b/starter/assets/translations/en.json @@ -1,170 +1,220 @@ { - "STARK.LANGUAGES.EN": "English", - "STARK.LANGUAGES.FR": "Français", - "STARK.LANGUAGES.NL": "Nederlands", - "STARK.LANGUAGES.DE": "Deutsch", - - "STARK.PRELOADING.FETCHING_USER_PROFILE": "Initializing...", - "STARK.PRELOADING.FETCHING_USER_PROFILE_FAILURE": "Initialization failed: could not fetch user profile.", - "STARK.PRELOADING.CONTACT_IT_SUPPORT": "Please contact your IT support department.", - "STARK.PRELOADING.CORRELATION_ID": "Correlation ID", - "STARK.PRELOADING.RELOAD": "Reload", - - "STARK.APP_DATA.USER": "User", - "STARK.APP_DATA.LAST_ACCESS": "Last access", - "STARK.APP_DATA.VERSION": "Version", - "STARK.APP_DATA.ENVIRONMENT": "Environment", - "STARK.APP_DATA.LOGOUT": "Log out", - "STARK.APP_DATA.MENU": "App data", - - "STARK.APP_MENU.SLIDING.BACK": "Back", - - "STARK.APP_FOOTER.COPYRIGHT": "National Bank of Belgium. All rights reserved", - "STARK.APP_FOOTER.COPYRIGHT_YEAR": "2016", - "STARK.APP_FOOTER.LEGAL_INFO": "Legal information", - "STARK.APP_FOOTER.HELP": "Help", - - "STARK.APP_LOGOUT.TOOLTIP": "Log out", - - "STARK.DROPDOWN.SELECTED": "{{count}} selected", - "STARK.DROPDOWN.SELECTED_PLURAL": "{{count}} selected", - - "STARK.TABLE.NB_SELECTED_ROWS": "Selected", - "STARK.TABLE.TOGGLE_SELECTION": "Toggle selection", - "STARK.TABLE.SELECT_ALL": "Select all", - "STARK.TABLE.DESELECT_ALL": "Deselect all", - "STARK.TABLE.SELECT_DESELECT_ALL": "SELECT all/Deselect all", - "STARK.TABLE.MORE": "More", - "STARK.TABLE.INDEX": "Index", - "STARK.TABLE.ACTIONS": "Actions", - "STARK.TABLE.FILTER": "Filter (max 80 characters)", - "STARK.TABLE.EXPAND_ALL": "Expand all lines", - "STARK.TABLE.COLLAPSE_ALL": "Collapse all lines", - "STARK.TABLE.PRISTINE_MESSAGE": "No data loaded yet.", - "STARK.TABLE.EMPTY_MESSAGE": "No elements found. Have a nice day!", - "STARK.TABLE.ITEMS_FOUND": "item(s)", - "STARK.TABLE.TOGGLE_COLUMNS": "Column filters", - "STARK.TABLE.MULTI_COLUMN_SORTING": "Multi-Column Sorting", - - "STARK.GRID.SHOW_MORE": "Show more...", - - "STARK.MULTI_COLUMN_SORTING.TITLE": "Multi-Column Sorting", - "STARK.MULTI_COLUMN_SORTING.ADD_SORTING_LEVEL": "Add sorting level", - "STARK.MULTI_COLUMN_SORTING.REMOVE_SORTING_LEVEL": "Remove sorting level", - "STARK.MULTI_COLUMN_SORTING.SORT_BY": "Sort by", - "STARK.MULTI_COLUMN_SORTING.THEN_BY": "Then by", - "STARK.MULTI_COLUMN_SORTING.CANCEL": "Cancel", - "STARK.MULTI_COLUMN_SORTING.SAVE": "Save", - - "STARK.SORTING.ASC": "Ascending", - "STARK.SORTING.DESC": "Descending", - - "STARK.FILE_UPLOAD.NAME": "Name", - "STARK.FILE_UPLOAD.SIZE": "Size", - "STARK.FILE_UPLOAD.TYPE": "Type", - "STARK.FILE_UPLOAD.UPLOAD_QUEUE": "Upload queue", - "STARK.FILE_UPLOAD.START": "Start Upload", - "STARK.FILE_UPLOAD.PROGRESS": "Progress", - "STARK.FILE_UPLOAD.DRAG_DROP": "Drag & drop files here ", - "STARK.FILE_UPLOAD.OR": "or ", - "STARK.FILE_UPLOAD.SELECT_FILES": "Select files", - - "STARK.PAGINATION.PAGE": "Page", - "STARK.PAGINATION.ITEMS_PER_PAGE": "Items per page", - - "STARK.ICONS.MENU": "Menu", - "STARK.ICONS.TOGGLE_MODE": "Toggle compact mode", - "STARK.ICONS.APP_DATA": "App data", - - "STARK.ICONS.ADD_ITEM": "Add", - "STARK.ICONS.EDIT_ITEM": "Edit", - "STARK.ICONS.DELETE_ITEM": "Delete", - "STARK.ICONS.APPROVE_ITEM": "Approve", - "STARK.ICONS.REJECT_ITEM": "Reject", - "STARK.ICONS.RELOAD_PAGE": "Reload page", - "STARK.ICONS.OPEN_SELECTION": "Open selection", - "STARK.ICONS.SAVE_ITEM": "Save", - "STARK.ICONS.CLOSE_ITEM": "Close", - "STARK.ICONS.RESET": "Reset", - "STARK.ICONS.SEARCH": "Search", - "STARK.ICONS.NEW_ITEM": "New", - "STARK.ICONS.SAVE_AND_NEXT": "Save And Next", - - "STARK.VALIDATION.REQUIRED": "This field is required", - "STARK.VALIDATION.SIZE": "This field must be between {{min}} and {{max}} characters", - "STARK.VALIDATION.EMAIL": "This email address is not in the correct format", - - "STARK.LOGIN.TITLE": "Login", - "STARK.LOGIN.USERNAME": "Username", - "STARK.LOGIN.PASSWORD": "Password", - "STARK.LOGIN.PASSWORD_FORGOTTEN": "I have forgotten my password", - "STARK.LOGIN.LOGIN_BUTTON": "Login", - "STARK.LOGIN.USERS_LIST": "Available users", - "STARK.LOGIN.NO_PROFILE": "No profile available", - - "STARK.CONFIRMATION.UNSAVED_CHANGES.TITLE": "Not saved changes", - "STARK.CONFIRMATION.UNSAVED_CHANGES.TEXT": "Do you really want to leave without saving changes?", - "STARK.CONFIRMATION.UNSAVED_CHANGES.ARIA_LABEL": "unsaved changes confirmation", - "STARK.CONFIRMATION.UNSAVED_CHANGES.CONFIRM": "Confirm", - "STARK.CONFIRMATION.UNSAVED_CHANGES.CANCEL": "Do not leave", - - "STARK.SESSION_EXPIRED.TITLE": "Session Expired", - "STARK.SESSION_EXPIRED.RELOAD": "Reload", - - "STARK.SESSION.TIMEOUT.WARNING.TITLE": "Session about to expire", - "STARK.SESSION.TIMEOUT.WARNING.WILL_EXPIRE_IN": "Your session will expire in", - "STARK.SESSION.TIMEOUT.WARNING.SECONDS": "seconds.", - "STARK.SESSION.TIMEOUT.WARNING.DO_YOU_WISH_TO_STAY_CONNECTED": "Do you wish to stay connected?", - "STARK.SESSION.TIMEOUT.WARNING.STAY_CONNECTED": "Stay connected", - - "STARK.SESSION_LOGOUT.TITLE": "Logged Out", - "STARK.SESSION_LOGOUT.LOGON": "Logon again", - - "STARK.MESSAGE_PANE.ERROR_MESSAGES": "Error messages", - "STARK.MESSAGE_PANE.WARNING_MESSAGES": "Warning messages", - "STARK.MESSAGE_PANE.INFO_MESSAGES": "Info messages", - "STARK.MESSAGE_PANE.EXPAND": "Expand message pane", - "STARK.MESSAGE_PANE.DISMISS_ALL": "Dismiss all messages", - "STARK.MESSAGE_PANE.COLLAPSE": "Collapse message pane", - "STARK.MESSAGE_PANE.CLOSE_MESSAGE": "Dismiss message", - - "STARK.RBAC.LABEL.FIRST_NAME": "First name", - "STARK.RBAC.LABEL.LAST_NAME": "Last Name", - "STARK.RBAC.LABEL.REFERENCE_NUMBER": "Reference number", - "STARK.RBAC.LABEL.USERNAME": "Username", - "STARK.RBAC.LABEL.LANGUAGE": "Language", - "STARK.RBAC.LABEL.START_DATE": "Start Date", - "STARK.RBAC.LABEL.END_DATE": "End Date", - "STARK.RBAC.LABEL.FROM": "From", - "STARK.RBAC.LABEL.TO": "To", - "STARK.RBAC.LABEL.DESCRIPTION": "Description", - "STARK.RBAC.LABEL.CODE": "Code", - "STARK.RBAC.LABEL.CHILD_GROUPS": "Child Groups", - "STARK.RBAC.LABEL.CHILD_PROFILES": "Child Profiles", - "STARK.RBAC.LABEL.PROFILE": "Profile", - "STARK.RBAC.LABEL.ROLE": "Role", - - "STARK.RBAC.TITLE.ADD_ROLE_TO_PROFILE": "Add role to profile", - "STARK.RBAC.TITLE.ADD_PRINCIPAL_TO_GROUP": "Add principal to group", - "STARK.RBAC.TITLE.CONTAINED_PRINCIPALS": "Contained Principals", - "STARK.RBAC.TITLE.CONTAINED_ROLES": "Contained Roles", - "STARK.RBAC.TITLE.GROUP_DETAILS": "Group Details", - "STARK.RBAC.TITLE.GROUP_MANAGEMENT": "Group Management", - "STARK.RBAC.TITLE.NEW_GROUP": "New Group", - "STARK.RBAC.TITLE.NEW_PRINCIPAL": "New Principal", - "STARK.RBAC.TITLE.NEW_PROFILE": "New Profile", - "STARK.RBAC.TITLE.NEW_PROFILE_ASSIGNMENT": "New Profile Assignment", - "STARK.RBAC.TITLE.NEW_ROLE": "New Role", - "STARK.RBAC.TITLE.NEW_ROLE_ASSIGNMENT": "New Role Assignment", - "STARK.RBAC.TITLE.PRINCIPAL_ASSIGNMENTS": "Principal Assignments", - "STARK.RBAC.TITLE.PRINCIPAL_DETAILS": "Principal Details", - "STARK.RBAC.TITLE.PRINCIPAL_MANAGEMENT": "Principal Management", - "STARK.RBAC.TITLE.PROFILE_ASSIGNMENTS": "Profile Assignments", - "STARK.RBAC.TITLE.PROFILE_ASSIGNMENT_DETAILS": "Profile Assignment Details", - "STARK.RBAC.TITLE.PROFILE_DETAILS": "Profile Details", - "STARK.RBAC.TITLE.PROFILE_MANAGEMENT": "Profile Management", - "STARK.RBAC.TITLE.ROLE_ASSIGNMENT_DETAILS": "Role Assignment Details", - "STARK.RBAC.TITLE.ROLE_ASSIGNMENTS": "Role Assignments", - "STARK.RBAC.TITLE.ROLE_DETAILS": "Role Details", - "STARK.RBAC.TITLE.ROLE_MANAGEMENT": "Role Management" + "STARK": { + "APP_DATA": { + "USER": "User", + "LAST_ACCESS": "Last access", + "VERSION": "Version", + "ENVIRONMENT": "Environment", + "LOGOUT": "Log out", + "MENU": "App data" + }, + + "APP_FOOTER": { + "COPYRIGHT": "National Bank of Belgium. All rights reserved", + "COPYRIGHT_YEAR": "2016", + "LEGAL_INFO": "Legal information", + "HELP": "Help" + }, + + "APP_LOGOUT": { + "TOOLTIP": "Log out" + }, + + "APP_MENU": { + "SLIDING.BACK": "Back" + }, + + "CONFIRMATION": { + "UNSAVED_CHANGES.TITLE": "Not saved changes", + "UNSAVED_CHANGES.TEXT": "Do you really want to leave without saving changes?", + "UNSAVED_CHANGES.ARIA_LABEL": "unsaved changes confirmation", + "UNSAVED_CHANGES.CONFIRM": "Confirm", + "UNSAVED_CHANGES.CANCEL": "Do not leave" + }, + + "DROPDOWN": { + "SELECTED": "{{count}} selected", + "SELECTED_PLURAL": "{{count}} selected" + }, + + "FILE_UPLOAD": { + "NAME": "Name", + "SIZE": "Size", + "TYPE": "Type", + "UPLOAD_QUEUE": "Upload queue", + "START": "Start Upload", + "PROGRESS": "Progress", + "DRAG_DROP": "Drag & drop files here ", + "OR": "or ", + "SELECT_FILES": "Select files" + }, + + "GRID": { + "SHOW_MORE": "Show more..." + }, + + "ICONS": { + "MENU": "Menu", + "TOGGLE_MODE": "Toggle compact mode", + "APP_DATA": "App data", + "ADD_ITEM": "Add", + "EDIT_ITEM": "Edit", + "DELETE_ITEM": "Delete", + "APPROVE_ITEM": "Approve", + "REJECT_ITEM": "Reject", + "RELOAD_PAGE": "Reload page", + "OPEN_SELECTION": "Open selection", + "SAVE_ITEM": "Save", + "CLOSE_ITEM": "Close", + "RESET": "Reset", + "SEARCH": "Search", + "NEW_ITEM": "New", + "SAVE_AND_NEXT": "Save And Next" + }, + + "LOGIN": { + "TITLE": "Login", + "USERNAME": "Username", + "PASSWORD": "Password", + "PASSWORD_FORGOTTEN": "I have forgotten my password", + "LOGIN_BUTTON": "Login", + "USERS_LIST": "Available users", + "NO_PROFILE": "No profile available" + }, + + "MESSAGE_PANE": { + "ERROR_MESSAGES": "Error messages", + "WARNING_MESSAGES": "Warning messages", + "INFO_MESSAGES": "Info messages", + "EXPAND": "Expand message pane", + "DISMISS_ALL": "Dismiss all messages", + "COLLAPSE": "Collapse message pane", + "CLOSE_MESSAGE": "Dismiss message" + }, + + "MULTI_COLUMN_SORTING": { + "TITLE": "Multi-Column Sorting", + "ADD_SORTING_LEVEL": "Add sorting level", + "REMOVE_SORTING_LEVEL": "Remove sorting level", + "SORT_BY": "Sort by", + "THEN_BY": "Then by", + "CANCEL": "Cancel", + "SAVE": "Save" + }, + + "PAGINATION": { + "PAGE": "Page", + "ITEMS_PER_PAGE": "Items per page" + }, + + "PRELOADING": { + "FETCHING_USER_PROFILE": "Initializing...", + "FETCHING_USER_PROFILE_FAILURE": "Initialization failed: could not fetch user profile.", + "CONTACT_IT_SUPPORT": "Please contact your IT support department.", + "CORRELATION_ID": "Correlation ID", + "RELOAD": "Reload" + }, + + "RBAC": { + "LABEL": { + "FIRST_NAME": "First name", + "LAST_NAME": "Last Name", + "REFERENCE_NUMBER": "Reference number", + "USERNAME": "Username", + "LANGUAGE": "Language", + "START_DATE": "Start Date", + "END_DATE": "End Date", + "FROM": "From", + "TO": "To", + "DESCRIPTION": "Description", + "CODE": "Code", + "CHILD_GROUPS": "Child Groups", + "CHILD_PROFILES": "Child Profiles", + "PROFILE": "Profile", + "ROLE": "Role" + }, + "TITLE": { + "ADD_ROLE_TO_PROFILE": "Add role to profile", + "ADD_PRINCIPAL_TO_GROUP": "Add principal to group", + "CONTAINED_PRINCIPALS": "Contained Principals", + "CONTAINED_ROLES": "Contained Roles", + "GROUP_DETAILS": "Group Details", + "GROUP_MANAGEMENT": "Group Management", + "NEW_GROUP": "New Group", + "NEW_PRINCIPAL": "New Principal", + "NEW_PROFILE": "New Profile", + "NEW_PROFILE_ASSIGNMENT": "New Profile Assignment", + "NEW_ROLE": "New Role", + "NEW_ROLE_ASSIGNMENT": "New Role Assignment", + "PRINCIPAL_ASSIGNMENTS": "Principal Assignments", + "PRINCIPAL_DETAILS": "Principal Details", + "PRINCIPAL_MANAGEMENT": "Principal Management", + "PROFILE_ASSIGNMENTS": "Profile Assignments", + "PROFILE_ASSIGNMENT_DETAILS": "Profile Assignment Details", + "PROFILE_DETAILS": "Profile Details", + "PROFILE_MANAGEMENT": "Profile Management", + "ROLE_ASSIGNMENT_DETAILS": "Role Assignment Details", + "ROLE_ASSIGNMENTS": "Role Assignments", + "ROLE_DETAILS": "Role Details", + "ROLE_MANAGEMENT": "Role Management" + } + }, + + "SESSION": { + "TIMEOUT": { + "WARNING": { + "TITLE": "Session about to expire", + "WILL_EXPIRE_IN": "Your session will expire in", + "SECONDS": "seconds.", + "DO_YOU_WISH_TO_STAY_CONNECTED": "Do you wish to stay connected?", + "STAY_CONNECTED": "Stay connected" + } + } + }, + + "SESSION_EXPIRED": { + "TITLE": "Session Expired", + "RELOAD": "Reload" + }, + + "SESSION_LOGOUT": { + "TITLE": "Logged Out", + "LOGON": "Logon again" + }, + + "TABLE": { + "NB_SELECTED_ROWS": "Selected", + "TOGGLE_SELECTION": "Toggle selection", + "SELECT_ALL": "Select all", + "DESELECT_ALL": "Deselect all", + "SELECT_DESELECT_ALL": "SELECT all/Deselect all", + "MORE": "More", + "INDEX": "Index", + "ACTIONS": "Actions", + "FILTER": "Filter (max 80 characters)", + "EXPAND_ALL": "Expand all lines", + "COLLAPSE_ALL": "Collapse all lines", + "PRISTINE_MESSAGE": "No data loaded yet.", + "EMPTY_MESSAGE": "No elements found. Have a nice day!", + "ITEMS_FOUND": "item(s)", + "TOGGLE_COLUMNS": "Column filters", + "MULTI_COLUMN_SORTING": "Multi-Column Sorting" + }, + + "USER": { + "TEXT": "Text translation from starter" + }, + + "VALIDATION": { + "REQUIRED": "This field is required", + "SIZE": "This field must be between {{min}} and {{max}} characters", + "EMAIL": "This email address is not in the correct format" + } + }, + + "STARTER": { + "HOME": { + "YOUR_CONTENT": "Your Content Here" + } + } } diff --git a/starter/assets/translations/fr.json b/starter/assets/translations/fr.json index 1e1fbfd365..762dfd0dc2 100644 --- a/starter/assets/translations/fr.json +++ b/starter/assets/translations/fr.json @@ -1,170 +1,220 @@ { - "STARK.LANGUAGES.EN": "English", - "STARK.LANGUAGES.FR": "Français", - "STARK.LANGUAGES.NL": "Nederlands", - "STARK.LANGUAGES.DE": "Deutsch", - - "STARK.PRELOADING.FETCHING_USER_PROFILE": "Initialisation...", - "STARK.PRELOADING.FETCHING_USER_PROFILE_FAILURE": "Échec de l'initialisation: impossible de récupérer le profil de l'utilisateur.", - "STARK.PRELOADING.CONTACT_IT_SUPPORT": "Veuillez contacter votre service d'assistance informatique.", - "STARK.PRELOADING.CORRELATION_ID": "ID de corrélation", - "STARK.PRELOADING.RELOAD": "Recharger", - - "STARK.APP_DATA.USER": "Utilisateur", - "STARK.APP_DATA.LAST_ACCESS": "Dernier accès", - "STARK.APP_DATA.VERSION": "Version", - "STARK.APP_DATA.ENVIRONMENT": "Environnement", - "STARK.APP_DATA.LOGOUT": "Déconnecter", - "STARK.APP_DATA.MENU": "Données d'application", - - "STARK.APP_MENU.SLIDING.BACK": "Retour", - - "STARK.APP_FOOTER.COPYRIGHT": "Banque Nationale de Belgique. Tous droits réservés", - "STARK.APP_FOOTER.COPYRIGHT_YEAR": "2016", - "STARK.APP_FOOTER.LEGAL_INFO": "Informations légales", - "STARK.APP_FOOTER.HELP": "Aide", - - "STARK.APP_LOGOUT.TOOLTIP": "Déconnecter", - - "STARK.DROPDOWN.SELECTED": "{{count}} sélectionné", - "STARK.DROPDOWN.SELECTED_PLURAL": "{{count}} sélectionnés", - - "STARK.TABLE.NB_SELECTED_ROWS": "Sélectionné", - "STARK.TABLE.TOGGLE_SELECTION": "Inverser la sélection", - "STARK.TABLE.SELECT_ALL": "Tout sélectionner", - "STARK.TABLE.DESELECT_ALL": "Tout désélectionner", - "STARK.TABLE.SELECT_DESELECT_ALL": "Tout sélectionner/Tout désélectionner", - "STARK.TABLE.MORE": "Plus", - "STARK.TABLE.INDEX": "Index", - "STARK.TABLE.ACTIONS": "Actions", - "STARK.TABLE.FILTER": "Filtre (max 80 caractères)", - "STARK.TABLE.EXPAND_ALL": "Afficher toutes les lignes", - "STARK.TABLE.COLLAPSE_ALL": "Cacher toutes les lignes", - "STARK.TABLE.PRISTINE_MESSAGE": "Il n'y a pas encore de données chargées.", - "STARK.TABLE.EMPTY_MESSAGE": "Aucun élément trouvé. Passez une bonne journée !", - "STARK.TABLE.ITEMS_FOUND": "élément(s)", - "STARK.TABLE.TOGGLE_COLUMNS": "Filtre colonnes", - "STARK.TABLE.MULTI_COLUMN_SORTING": "Tri multi-colonnes", - - "STARK.GRID.SHOW_MORE": "Montrer plus...", - - "STARK.MULTI_COLUMN_SORTING.TITLE": "Tri multi-colonnes", - "STARK.MULTI_COLUMN_SORTING.ADD_SORTING_LEVEL": "Ajouter le niveau de tri", - "STARK.MULTI_COLUMN_SORTING.REMOVE_SORTING_LEVEL": "Supprimer le niveau de tri", - "STARK.MULTI_COLUMN_SORTING.SORT_BY": "Trier par", - "STARK.MULTI_COLUMN_SORTING.THEN_BY": "Puis par", - "STARK.MULTI_COLUMN_SORTING.CANCEL": "Annuler", - "STARK.MULTI_COLUMN_SORTING.SAVE": "Enregistrer", - - "STARK.SORTING.ASC": "Ascendant", - "STARK.SORTING.DESC": "Descendant", - - "STARK.FILE_UPLOAD.NAME": "Nom", - "STARK.FILE_UPLOAD.SIZE": "Taille", - "STARK.FILE_UPLOAD.TYPE": "Type", - "STARK.FILE_UPLOAD.UPLOAD_QUEUE": "File d'envoi", - "STARK.FILE_UPLOAD.START": "Démarrer l'envoi", - "STARK.FILE_UPLOAD.PROGRESS": "Progression", - "STARK.FILE_UPLOAD.DRAG_DROP": "Drag & drop les fichiers ici ", - "STARK.FILE_UPLOAD.OR": "ou ", - "STARK.FILE_UPLOAD.SELECT_FILES": "selectioner les fichiers", - - "STARK.PAGINATION.PAGE": "Page", - "STARK.PAGINATION.ITEMS_PER_PAGE": "Eléments par page", - - "STARK.ICONS.MENU": "Menu", - "STARK.ICONS.TOGGLE_MODE": "Mode compact/plein", - "STARK.ICONS.APP_DATA": "Données d'application", - - "STARK.ICONS.ADD_ITEM": "Ajouter", - "STARK.ICONS.EDIT_ITEM": "Modifier", - "STARK.ICONS.DELETE_ITEM": "Supprimer", - "STARK.ICONS.APPROVE_ITEM": "Approuver", - "STARK.ICONS.REJECT_ITEM": "Rejeter", - "STARK.ICONS.RELOAD_PAGE": "Recharger la page", - "STARK.ICONS.OPEN_SELECTION": "Ouvrir la sélection", - "STARK.ICONS.SAVE_ITEM": "Sauver", - "STARK.ICONS.CLOSE_ITEM": "Fermer", - "STARK.ICONS.RESET": "Réinitialiser", - "STARK.ICONS.SEARCH": "Chercher", - "STARK.ICONS.NEW_ITEM": "Nouveau", - "STARK.ICONS.SAVE_AND_NEXT": "Sauver et Suivant", - - "STARK.VALIDATION.REQUIRED": "Ce champ est obligatoire", - "STARK.VALIDATION.SIZE": "Ce champ doit être compris entre {{min}} et {{max}} caractères", - "STARK.VALIDATION.EMAIL": "Cette adresse e-mail n'est pas dans le bon format", - - "STARK.LOGIN.TITLE": "Connexion", - "STARK.LOGIN.USERNAME": "Nom d'utilisateur", - "STARK.LOGIN.PASSWORD": "Mot de passe", - "STARK.LOGIN.PASSWORD_FORGOTTEN": "J'ai oublié mon mot de passe", - "STARK.LOGIN.LOGIN_BUTTON": "Connexion", - "STARK.LOGIN.USERS_LIST": "Utilisateurs disponibles", - "STARK.LOGIN.NO_PROFILE": "Aucun profil utilisateur disponible", - - "STARK.CONFIRMATION.UNSAVED_CHANGES.TITLE": "Modifications non enregistrées", - "STARK.CONFIRMATION.UNSAVED_CHANGES.TEXT": "Voulez-vous vraiment quitter sans enregistrer les modifications?", - "STARK.CONFIRMATION.UNSAVED_CHANGES.ARIA_LABEL": "confirmation des modifications non enregistrées", - "STARK.CONFIRMATION.UNSAVED_CHANGES.CONFIRM": "Confirmer", - "STARK.CONFIRMATION.UNSAVED_CHANGES.CANCEL": "Ne quittez pas", - - "STARK.SESSION_EXPIRED.TITLE": "La session a expiré", - "STARK.SESSION_EXPIRED.RELOAD": "recharger", - - "STARK.SESSION.TIMEOUT.WARNING.TITLE": "Session à venir", - "STARK.SESSION.TIMEOUT.WARNING.WILL_EXPIRE_IN": "Votre session expirera en", - "STARK.SESSION.TIMEOUT.WARNING.SECONDS": "secondes.", - "STARK.SESSION.TIMEOUT.WARNING.DO_YOU_WISH_TO_STAY_CONNECTED": "Voulez-vous rester connecté?", - "STARK.SESSION.TIMEOUT.WARNING.STAY_CONNECTED": "Rester connecté", - - "STARK.SESSION_LOGOUT.TITLE": "Déconnecté", - "STARK.SESSION_LOGOUT.LOGON": "Connexion", - - "STARK.MESSAGE_PANE.ERROR_MESSAGES": "Messages d'erreur", - "STARK.MESSAGE_PANE.WARNING_MESSAGES": "Messages d'avertissement", - "STARK.MESSAGE_PANE.INFO_MESSAGES": "Messages d'information", - "STARK.MESSAGE_PANE.EXPAND": "Développer le volet des messages", - "STARK.MESSAGE_PANE.DISMISS_ALL": "Supprimer tous les messages", - "STARK.MESSAGE_PANE.COLLAPSE": "Réduire le volet des messages", - "STARK.MESSAGE_PANE.CLOSE_MESSAGE": "Supprimer ce message", - - "STARK.RBAC.LABEL.FIRST_NAME": "Prénom", - "STARK.RBAC.LABEL.LAST_NAME": "Npm", - "STARK.RBAC.LABEL.REFERENCE_NUMBER": "Numéro de référence", - "STARK.RBAC.LABEL.USERNAME": "Npm d'utilisateur", - "STARK.RBAC.LABEL.LANGUAGE": "Langue", - "STARK.RBAC.LABEL.START_DATE": "Date de début", - "STARK.RBAC.LABEL.END_DATE": "Date de fin", - "STARK.RBAC.LABEL.FROM": "A partir de", - "STARK.RBAC.LABEL.TO": "Jusqu'à", - "STARK.RBAC.LABEL.DESCRIPTION": "Description", - "STARK.RBAC.LABEL.CODE": "Code", - "STARK.RBAC.LABEL.CHILD_GROUPS": "Groupes enfants", - "STARK.RBAC.LABEL.CHILD_PROFILES": "Profils enfants", - "STARK.RBAC.LABEL.PROFILE": "Profil", - "STARK.RBAC.LABEL.ROLE": "Rôle", - - "STARK.RBAC.TITLE.ADD_ROLE_TO_PROFILE": "Ajouter un rôle au profil", - "STARK.RBAC.TITLE.ADD_PRINCIPAL_TO_GROUP": "Ajouter un 'principal' au groupe", - "STARK.RBAC.TITLE.CONTAINED_PRINCIPALS": "'Principals' inclus", - "STARK.RBAC.TITLE.CONTAINED_ROLES": "Rôles inclus", - "STARK.RBAC.TITLE.GROUP_DETAILS": "Détails du groupe", - "STARK.RBAC.TITLE.GROUP_MANAGEMENT": "Gestions des groupes", - "STARK.RBAC.TITLE.NEW_GROUP": "Nouveau Groupe", - "STARK.RBAC.TITLE.NEW_PRINCIPAL": "Nouveau 'principal'", - "STARK.RBAC.TITLE.NEW_PROFILE": "Nouveau Profil", - "STARK.RBAC.TITLE.NEW_PROFILE_ASSIGNMENT": "Nouvel assignement de profil", - "STARK.RBAC.TITLE.NEW_ROLE": "Nouveau Rôle", - "STARK.RBAC.TITLE.NEW_ROLE_ASSIGNMENT": "Nouvel assignement de rôle", - "STARK.RBAC.TITLE.PRINCIPAL_ASSIGNMENTS": "Assignements du 'principal'", - "STARK.RBAC.TITLE.PRINCIPAL_DETAILS": "Détails du 'principal'", - "STARK.RBAC.TITLE.PRINCIPAL_MANAGEMENT": "Gestion des 'principals'", - "STARK.RBAC.TITLE.PROFILE_ASSIGNMENTS": "Assignements du profil", - "STARK.RBAC.TITLE.PROFILE_ASSIGNMENT_DETAILS": "Détails de l'assignement du profil", - "STARK.RBAC.TITLE.PROFILE_DETAILS": "Détails du profil", - "STARK.RBAC.TITLE.PROFILE_MANAGEMENT": "Gestion des profils", - "STARK.RBAC.TITLE.ROLE_ASSIGNMENT_DETAILS": "Détails de l'assignement du rôle", - "STARK.RBAC.TITLE.ROLE_ASSIGNMENTS": "Assignements du rôle", - "STARK.RBAC.TITLE.ROLE_DETAILS": "Détails du rôle", - "STARK.RBAC.TITLE.ROLE_MANAGEMENT": "Gestion des rôles" + "STARK": { + "APP_DATA": { + "USER": "Utilisateur", + "LAST_ACCESS": "Dernier accès", + "VERSION": "Version", + "ENVIRONMENT": "Environnement", + "LOGOUT": "Déconnecter", + "MENU": "Données d'application" + }, + + "APP_FOOTER": { + "COPYRIGHT": "Banque Nationale de Belgique. Tous droits réservés", + "COPYRIGHT_YEAR": "2016", + "LEGAL_INFO": "Informations légales", + "HELP": "Aide" + }, + + "APP_LOGOUT": { + "TOOLTIP": "Déconnecter" + }, + + "APP_MENU": { + "SLIDING.BACK": "Retour" + }, + + "CONFIRMATION": { + "UNSAVED_CHANGES.TITLE": "Modifications non enregistrées", + "UNSAVED_CHANGES.TEXT": "Voulez-vous vraiment quitter sans enregistrer les modifications?", + "UNSAVED_CHANGES.ARIA_LABEL": "confirmation des modifications non enregistrées", + "UNSAVED_CHANGES.CONFIRM": "Confirmer", + "UNSAVED_CHANGES.CANCEL": "Ne quittez pas" + }, + + "DROPDOWN": { + "SELECTED": "{{count}} sélectionné", + "SELECTED_PLURAL": "{{count}} sélectionnés" + }, + + "FILE_UPLOAD": { + "NAME": "Nom", + "SIZE": "Taille", + "TYPE": "Type", + "UPLOAD_QUEUE": "File d'envoi", + "START": "Démarrer l'envoi", + "PROGRESS": "Progression", + "DRAG_DROP": "Drag & drop les fichiers ici ", + "OR": "ou ", + "SELECT_FILES": "selectioner les fichiers" + }, + + "GRID": { + "SHOW_MORE": "Montrer plus..." + }, + + "ICONS": { + "MENU": "Menu", + "TOGGLE_MODE": "Mode compact/plein", + "APP_DATA": "Données d'application", + "ADD_ITEM": "Ajouter", + "EDIT_ITEM": "Modifier", + "DELETE_ITEM": "Supprimer", + "APPROVE_ITEM": "Approuver", + "REJECT_ITEM": "Rejeter", + "RELOAD_PAGE": "Recharger la page", + "OPEN_SELECTION": "Ouvrir la sélection", + "SAVE_ITEM": "Sauver", + "CLOSE_ITEM": "Fermer", + "RESET": "Réinitialiser", + "SEARCH": "Chercher", + "NEW_ITEM": "Nouveau", + "SAVE_AND_NEXT": "Sauver et Suivant" + }, + + "LOGIN": { + "TITLE": "Connexion", + "USERNAME": "Nom d'utilisateur", + "PASSWORD": "Mot de passe", + "PASSWORD_FORGOTTEN": "J'ai oublié mon mot de passe", + "LOGIN_BUTTON": "Connexion", + "USERS_LIST": "Utilisateurs disponibles", + "NO_PROFILE": "Aucun profil utilisateur disponible" + }, + + "MESSAGE_PANE": { + "ERROR_MESSAGES": "Messages d'erreur", + "WARNING_MESSAGES": "Messages d'avertissement", + "INFO_MESSAGES": "Messages d'information", + "EXPAND": "Développer le volet des messages", + "DISMISS_ALL": "Supprimer tous les messages", + "COLLAPSE": "Réduire le volet des messages", + "CLOSE_MESSAGE": "Supprimer ce message" + }, + + "MULTI_COLUMN_SORTING": { + "TITLE": "Tri multi-colonnes", + "ADD_SORTING_LEVEL": "Ajouter le niveau de tri", + "REMOVE_SORTING_LEVEL": "Supprimer le niveau de tri", + "SORT_BY": "Trier par", + "THEN_BY": "Puis par", + "CANCEL": "Annuler", + "SAVE": "Enregistrer" + }, + + "PAGINATION": { + "PAGE": "Page", + "ITEMS_PER_PAGE": "Eléments par page" + }, + + "PRELOADING": { + "FETCHING_USER_PROFILE": "Initialisation...", + "FETCHING_USER_PROFILE_FAILURE": "Échec de l'initialisation: impossible de récupérer le profil de l'utilisateur.", + "CONTACT_IT_SUPPORT": "Veuillez contacter votre service d'assistance informatique.", + "CORRELATION_ID": "ID de corrélation", + "RELOAD": "Recharger" + }, + + "RBAC": { + "LABEL": { + "FIRST_NAME": "Prénom", + "LAST_NAME": "Npm", + "REFERENCE_NUMBER": "Numéro de référence", + "USERNAME": "Npm d'utilisateur", + "LANGUAGE": "Langue", + "START_DATE": "Date de début", + "END_DATE": "Date de fin", + "FROM": "A partir de", + "TO": "Jusqu'à", + "DESCRIPTION": "Description", + "CODE": "Code", + "CHILD_GROUPS": "Groupes enfants", + "CHILD_PROFILES": "Profils enfants", + "PROFILE": "Profil", + "ROLE": "Rôle" + }, + "TITLE": { + "ADD_ROLE_TO_PROFILE": "Ajouter un rôle au profil", + "ADD_PRINCIPAL_TO_GROUP": "Ajouter un 'principal' au groupe", + "CONTAINED_PRINCIPALS": "'Principals' inclus", + "CONTAINED_ROLES": "Rôles inclus", + "GROUP_DETAILS": "Détails du groupe", + "GROUP_MANAGEMENT": "Gestions des groupes", + "NEW_GROUP": "Nouveau Groupe", + "NEW_PRINCIPAL": "Nouveau 'principal'", + "NEW_PROFILE": "Nouveau Profil", + "NEW_PROFILE_ASSIGNMENT": "Nouvel assignement de profil", + "NEW_ROLE": "Nouveau Rôle", + "NEW_ROLE_ASSIGNMENT": "Nouvel assignement de rôle", + "PRINCIPAL_ASSIGNMENTS": "Assignements du 'principal'", + "PRINCIPAL_DETAILS": "Détails du 'principal'", + "PRINCIPAL_MANAGEMENT": "Gestion des 'principals'", + "PROFILE_ASSIGNMENTS": "Assignements du profil", + "PROFILE_ASSIGNMENT_DETAILS": "Détails de l'assignement du profil", + "PROFILE_DETAILS": "Détails du profil", + "PROFILE_MANAGEMENT": "Gestion des profils", + "ROLE_ASSIGNMENT_DETAILS": "Détails de l'assignement du rôle", + "ROLE_ASSIGNMENTS": "Assignements du rôle", + "ROLE_DETAILS": "Détails du rôle", + "ROLE_MANAGEMENT": "Gestion des rôles" + } + }, + + "SESSION": { + "TIMEOUT": { + "WARNING": { + "TITLE": "Session à venir", + "WILL_EXPIRE_IN": "Votre session expirera en", + "SECONDS": "secondes.", + "DO_YOU_WISH_TO_STAY_CONNECTED": "Voulez-vous rester connecté?", + "STAY_CONNECTED": "Rester connecté" + } + } + }, + + "SESSION_EXPIRED": { + "TITLE": "La session a expiré", + "RELOAD": "recharger" + }, + + "SESSION_LOGOUT": { + "TITLE": "Déconnecté", + "LOGON": "Connexion" + }, + + "TABLE": { + "NB_SELECTED_ROWS": "Sélectionné", + "TOGGLE_SELECTION": "Inverser la sélection", + "SELECT_ALL": "Tout sélectionner", + "DESELECT_ALL": "Tout désélectionner", + "SELECT_DESELECT_ALL": "Tout sélectionner/Tout désélectionner", + "MORE": "Plus", + "INDEX": "Index", + "ACTIONS": "Actions", + "FILTER": "Filtre (max 80 caractères)", + "EXPAND_ALL": "Afficher toutes les lignes", + "COLLAPSE_ALL": "Cacher toutes les lignes", + "PRISTINE_MESSAGE": "Il n'y a pas encore de données chargées.", + "EMPTY_MESSAGE": "Aucun élément trouvé. Passez une bonne journée !", + "ITEMS_FOUND": "élément(s)", + "TOGGLE_COLUMNS": "Filtre colonnes", + "MULTI_COLUMN_SORTING": "Tri multi-colonnes" + }, + + "USER": { + "TEXT": "Traduction de texte via starter" + }, + + "VALIDATION": { + "REQUIRED": "Ce champ est obligatoire", + "SIZE": "Ce champ doit être compris entre {{min}} et {{max}} caractères", + "EMAIL": "Cette adresse e-mail n'est pas dans le bon format" + } + }, + + "STARTER": { + "HOME": { + "YOUR_CONTENT": "Votre Contenu Ici" + } + } } diff --git a/starter/assets/translations/nl.json b/starter/assets/translations/nl.json index 5cf12bb337..f3001d649a 100644 --- a/starter/assets/translations/nl.json +++ b/starter/assets/translations/nl.json @@ -1,170 +1,220 @@ { - "STARK.LANGUAGES.EN": "English", - "STARK.LANGUAGES.FR": "Français", - "STARK.LANGUAGES.NL": "Nederlands", - "STARK.LANGUAGES.DE": "Deutsch", - - "STARK.PRELOADING.FETCHING_USER_PROFILE": "Initialiseren...", - "STARK.PRELOADING.FETCHING_USER_PROFILE_FAILURE": "Initialisatie mislukt: gebruikersprofiel kon niet worden opgehaald.", - "STARK.PRELOADING.CONTACT_IT_SUPPORT": "Neem contact op met uw IT-support afdeling..", - "STARK.PRELOADING.CORRELATION_ID": "Correlatie ID", - "STARK.PRELOADING.RELOAD": "Herladen", - - "STARK.APP_DATA.USER": "Gebruiker", - "STARK.APP_DATA.LAST_ACCESS": "Laatste toegang", - "STARK.APP_DATA.VERSION": "Versie", - "STARK.APP_DATA.ENVIRONMENT": "Omgeving", - "STARK.APP_DATA.LOGOUT": "Afmelden", - "STARK.APP_DATA.MENU": "Toepassingsgegevens", - - "STARK.APP_MENU.SLIDING.BACK": "Vorige", - - "STARK.APP_FOOTER.COPYRIGHT": "Nationale Bank van België. Alle rechten voorbehouden", - "STARK.APP_FOOTER.COPYRIGHT_YEAR": "2016", - "STARK.APP_FOOTER.LEGAL_INFO": "Juridische informatie", - "STARK.APP_FOOTER.HELP": "Help", - - "STARK.APP_LOGOUT.TOOLTIP": "Afmelden", - - "STARK.DROPDOWN.SELECTED": "{{count}} geselecteerd", - "STARK.DROPDOWN.SELECTED_PLURAL": "{{count}} geselecteerd", - - "STARK.TABLE.NB_SELECTED_ROWS": "Geselecteerd", - "STARK.TABLE.TOGGLE_SELECTION": "Selectie omkeren", - "STARK.TABLE.SELECT_ALL": "Alles selectioneren", - "STARK.TABLE.DESELECT_ALL": "Selectie wissen", - "STARK.TABLE.SELECT_DESELECT_ALL": "Alles selectioneren/Selectie wissen", - "STARK.TABLE.MORE": "Meer", - "STARK.TABLE.INDEX": "Index", - "STARK.TABLE.ACTIONS": "Acties", - "STARK.TABLE.FILTER": "Filter (max 80 karakters)", - "STARK.TABLE.EXPAND_ALL": "Alle lijnen tonen", - "STARK.TABLE.COLLAPSE_ALL": "Alle lijnen verbergen", - "STARK.TABLE.PRISTINE_MESSAGE": "Nog geen data geladen.", - "STARK.TABLE.EMPTY_MESSAGE": "Geen elementen gevonden. Fijne dag!", - "STARK.TABLE.ITEMS_FOUND": "gegeven(s)", - "STARK.TABLE.TOGGLE_COLUMNS": "Kolom filters", - "STARK.TABLE.MULTI_COLUMN_SORTING": "Sorteren van meerdere kolommen", - - "STARK.GRID.SHOW_MORE": "Meer tonen...", - - "STARK.MULTI_COLUMN_SORTING.TITLE": "Sorteren van meerdere kolommen", - "STARK.MULTI_COLUMN_SORTING.ADD_SORTING_LEVEL": "Voeg sorteringsniveau toe", - "STARK.MULTI_COLUMN_SORTING.REMOVE_SORTING_LEVEL": "Verwijder sorteringsniveau", - "STARK.MULTI_COLUMN_SORTING.SORT_BY": "Sorteer op", - "STARK.MULTI_COLUMN_SORTING.THEN_BY": "Dan op", - "STARK.MULTI_COLUMN_SORTING.CANCEL": "Annuleer", - "STARK.MULTI_COLUMN_SORTING.SAVE": "Opslaan", - - "STARK.SORTING.ASC": "Oplopend", - "STARK.SORTING.DESC": "Aflopend", - - "STARK.FILE_UPLOAD.NAME": "Naam", - "STARK.FILE_UPLOAD.SIZE": "Groote", - "STARK.FILE_UPLOAD.TYPE": "Type", - "STARK.FILE_UPLOAD.UPLOAD_QUEUE": "Upload rij", - "STARK.FILE_UPLOAD.START": "Start Upload", - "STARK.FILE_UPLOAD.PROGRESS": "Vooruitgang", - "STARK.FILE_UPLOAD.DRAG_DROP": "Drag & drop bestanden hier ", - "STARK.FILE_UPLOAD.OR": "of ", - "STARK.FILE_UPLOAD.SELECT_FILES": "Selecteer de bestanden", - - "STARK.PAGINATION.PAGE": "Pagina", - "STARK.PAGINATION.ITEMS_PER_PAGE": "Elementen per pagina", - - "STARK.ICONS.MENU": "Menu", - "STARK.ICONS.TOGGLE_MODE": "Schakel naar compacte mode", - "STARK.ICONS.APP_DATA": "Toepassingsgegevens", - - "STARK.ICONS.ADD_ITEM": "Toevoegen", - "STARK.ICONS.EDIT_ITEM": "Wijzig", - "STARK.ICONS.DELETE_ITEM": "Verwijder", - "STARK.ICONS.APPROVE_ITEM": "Goedkeuren", - "STARK.ICONS.REJECT_ITEM": "Afkeuren", - "STARK.ICONS.RELOAD_PAGE": "Pagina vernieuwen", - "STARK.ICONS.OPEN_SELECTION": "Open selectie", - "STARK.ICONS.SAVE_ITEM": "Bewaren", - "STARK.ICONS.CLOSE_ITEM": "Sluiten", - "STARK.ICONS.RESET": "Reset", - "STARK.ICONS.SEARCH": "Zoeken", - "STARK.ICONS.NEW_ITEM": "Nieuw", - "STARK.ICONS.SAVE_AND_NEXT": "Bewaar en volgende", - - "STARK.VALIDATION.REQUIRED": "Dit veld is verplicht", - "STARK.VALIDATION.SIZE": "Dit veld moet tussen {{min}} en {{max}} karakters bevatten", - "STARK.VALIDATION.EMAIL": "Het e-mail adres is niet in het juiste formaat", - - "STARK.LOGIN.TITLE": "Aanmelden", - "STARK.LOGIN.USERNAME": "Gebruikersnaam", - "STARK.LOGIN.PASSWORD": "Wachtwoord", - "STARK.LOGIN.PASSWORD_FORGOTTEN": "Ik ben mijn wachtwoord vergeten", - "STARK.LOGIN.LOGIN_BUTTON": "Aanmelden", - "STARK.LOGIN.USERS_LIST": "Beschikbare gebruikers", - "STARK.LOGIN.NO_PROFILE": "Geen profiel beschikbaar", - - "STARK.CONFIRMATION.UNSAVED_CHANGES.TITLE": "Wijzigingen niet bewaard", - "STARK.CONFIRMATION.UNSAVED_CHANGES.TEXT": "Wil je echt verdergaan zonder de gegevens te bewaren?", - "STARK.CONFIRMATION.UNSAVED_CHANGES.ARIA_LABEL": "bevestiging van niet bewaarde gegevens", - "STARK.CONFIRMATION.UNSAVED_CHANGES.CONFIRM": "Bevestig", - "STARK.CONFIRMATION.UNSAVED_CHANGES.CANCEL": "Niet verdergaan", - - "STARK.SESSION_EXPIRED.TITLE": "sessie verlopen", - "STARK.SESSION_EXPIRED.RELOAD": "Herladen", - - "STARK.SESSION.TIMEOUT.WARNING.TITLE": "Sessie verlopen", - "STARK.SESSION.TIMEOUT.WARNING.WILL_EXPIRE_IN": "Uw sessie zal vervallen in", - "STARK.SESSION.TIMEOUT.WARNING.SECONDS": "seconden.", - "STARK.SESSION.TIMEOUT.WARNING.DO_YOU_WISH_TO_STAY_CONNECTED": "Wilt u om verbonden te blijven?", - "STARK.SESSION.TIMEOUT.WARNING.STAY_CONNECTED": "Blijf verbonden", - - "STARK.SESSION_LOGOUT.TITLE": "Afgemeld", - "STARK.SESSION_LOGOUT.LOGON": "Opnieuw aanmelden", - - "STARK.MESSAGE_PANE.ERROR_MESSAGES": "Foutmeldingen", - "STARK.MESSAGE_PANE.WARNING_MESSAGES": "Waarschuwingsberichten", - "STARK.MESSAGE_PANE.INFO_MESSAGES": "Info-berichten", - "STARK.MESSAGE_PANE.EXPAND": "Berichtenvenster uitvouwen", - "STARK.MESSAGE_PANE.DISMISS_ALL": "Verwijder alle berichten", - "STARK.MESSAGE_PANE.COLLAPSE": "Berichtenvenster verbergen", - "STARK.MESSAGE_PANE.CLOSE_MESSAGE": "Bericht verwijderen", - - "STARK.RBAC.LABEL.FIRST_NAME": "Voornaam", - "STARK.RBAC.LABEL.LAST_NAME": "Achternaam", - "STARK.RBAC.LABEL.REFERENCE_NUMBER": "Referentienummer", - "STARK.RBAC.LABEL.USERNAME": "Gebruikersnaam", - "STARK.RBAC.LABEL.LANGUAGE": "Taal", - "STARK.RBAC.LABEL.START_DATE": "Begin Datum", - "STARK.RBAC.LABEL.END_DATE": "Eind Datum", - "STARK.RBAC.LABEL.FROM": "Van", - "STARK.RBAC.LABEL.TO": "Tot", - "STARK.RBAC.LABEL.DESCRIPTION": "Beschrijving", - "STARK.RBAC.LABEL.CODE": "Code", - "STARK.RBAC.LABEL.CHILD_GROUPS": "Child Groups", - "STARK.RBAC.LABEL.CHILD_PROFILES": "Child Profiles", - "STARK.RBAC.LABEL.PROFILE": "Profile", - "STARK.RBAC.LABEL.ROLE": "Role", - - "STARK.RBAC.TITLE.ADD_ROLE_TO_PROFILE": "Voeg rol toe aan profiel", - "STARK.RBAC.TITLE.ADD_PRINCIPAL_TO_GROUP": "Principal aan groep toevoegen", - "STARK.RBAC.TITLE.CONTAINED_PRINCIPALS": "Bevat Opdrachtgevers", - "STARK.RBAC.TITLE.CONTAINED_ROLES": "Bevat Rollen", - "STARK.RBAC.TITLE.GROUP_DETAILS": "Groep Details", - "STARK.RBAC.TITLE.GROUP_MANAGEMENT": "Groep Beheer", - "STARK.RBAC.TITLE.NEW_GROUP": "Nieuw Groep", - "STARK.RBAC.TITLE.NEW_PRINCIPAL": "Nieuw Principal", - "STARK.RBAC.TITLE.NEW_PROFILE": "Niew Profiel", - "STARK.RBAC.TITLE.NEW_PROFILE_ASSIGNMENT": "Nieuwe Profiel Toewijzing", - "STARK.RBAC.TITLE.NEW_ROLE": "Nieuw Rol", - "STARK.RBAC.TITLE.NEW_ROLE_ASSIGNMENT": "Nieuwe Rol Toewijzing", - "STARK.RBAC.TITLE.PRINCIPAL_ASSIGNMENTS": "Principal Toewijzings", - "STARK.RBAC.TITLE.PRINCIPAL_DETAILS": "Principal Details", - "STARK.RBAC.TITLE.PRINCIPAL_MANAGEMENT": "Principal Beheer", - "STARK.RBAC.TITLE.PROFILE_ASSIGNMENTS": "Profiel Toewijzing", - "STARK.RBAC.TITLE.PROFILE_ASSIGNMENT_DETAILS": "Profiel Toewijzing Details", - "STARK.RBAC.TITLE.PROFILE_DETAILS": "Profiel Details", - "STARK.RBAC.TITLE.PROFILE_MANAGEMENT": "Profiel Beheer", - "STARK.RBAC.TITLE.ROLE_ASSIGNMENT_DETAILS": "Rol Toewijzing Details", - "STARK.RBAC.TITLE.ROLE_ASSIGNMENTS": "Rol Toewijzings", - "STARK.RBAC.TITLE.ROLE_DETAILS": "Rol Details", - "STARK.RBAC.TITLE.ROLE_MANAGEMENT": "Rol Beheer" + "STARK": { + "APP_DATA": { + "USER": "Gebruiker", + "LAST_ACCESS": "Laatste toegang", + "VERSION": "Versie", + "ENVIRONMENT": "Omgeving", + "LOGOUT": "Afmelden", + "MENU": "Toepassingsgegevens" + }, + + "APP_FOOTER": { + "COPYRIGHT": "Nationale Bank van België. Alle rechten voorbehouden", + "COPYRIGHT_YEAR": "2016", + "LEGAL_INFO": "Juridische informatie", + "HELP": "Help" + }, + + "APP_LOGOUT": { + "TOOLTIP": "Afmelden" + }, + + "APP_MENU": { + "SLIDING.BACK": "Vorige" + }, + + "CONFIRMATION": { + "UNSAVED_CHANGES.TITLE": "Wijzigingen niet bewaard", + "UNSAVED_CHANGES.TEXT": "Wil je echt verdergaan zonder de gegevens te bewaren?", + "UNSAVED_CHANGES.ARIA_LABEL": "bevestiging van niet bewaarde gegevens", + "UNSAVED_CHANGES.CONFIRM": "Bevestig", + "UNSAVED_CHANGES.CANCEL": "Niet verdergaan" + }, + + "DROPDOWN": { + "SELECTED": "{{count}} geselecteerd", + "SELECTED_PLURAL": "{{count}} geselecteerd" + }, + + "FILE_UPLOAD": { + "NAME": "Naam", + "SIZE": "Groote", + "TYPE": "Type", + "UPLOAD_QUEUE": "Upload rij", + "START": "Start Upload", + "PROGRESS": "Vooruitgang", + "DRAG_DROP": "Drag & drop bestanden hier ", + "OR": "of ", + "SELECT_FILES": "Selecteer de bestanden" + }, + + "GRID": { + "SHOW_MORE": "Meer tonen..." + }, + + "ICONS": { + "MENU": "Menu", + "TOGGLE_MODE": "Schakel naar compacte mode", + "APP_DATA": "Toepassingsgegevens", + "ADD_ITEM": "Toevoegen", + "EDIT_ITEM": "Wijzig", + "DELETE_ITEM": "Verwijder", + "APPROVE_ITEM": "Goedkeuren", + "REJECT_ITEM": "Afkeuren", + "RELOAD_PAGE": "Pagina vernieuwen", + "OPEN_SELECTION": "Open selectie", + "SAVE_ITEM": "Bewaren", + "CLOSE_ITEM": "Sluiten", + "RESET": "Reset", + "SEARCH": "Zoeken", + "NEW_ITEM": "Nieuw", + "SAVE_AND_NEXT": "Bewaar en volgende" + }, + + "LOGIN": { + "TITLE": "Aanmelden", + "USERNAME": "Gebruikersnaam", + "PASSWORD": "Wachtwoord", + "PASSWORD_FORGOTTEN": "Ik ben mijn wachtwoord vergeten", + "LOGIN_BUTTON": "Aanmelden", + "USERS_LIST": "Beschikbare gebruikers", + "NO_PROFILE": "Geen profiel beschikbaar" + }, + + "MESSAGE_PANE": { + "ERROR_MESSAGES": "Foutmeldingen", + "WARNING_MESSAGES": "Waarschuwingsberichten", + "INFO_MESSAGES": "Info-berichten", + "EXPAND": "Berichtenvenster uitvouwen", + "DISMISS_ALL": "Verwijder alle berichten", + "COLLAPSE": "Berichtenvenster verbergen", + "CLOSE_MESSAGE": "Bericht verwijderen" + }, + + "MULTI_COLUMN_SORTING": { + "TITLE": "Sorteren van meerdere kolommen", + "ADD_SORTING_LEVEL": "Voeg sorteringsniveau toe", + "REMOVE_SORTING_LEVEL": "Verwijder sorteringsniveau", + "SORT_BY": "Sorteer op", + "THEN_BY": "Dan op", + "CANCEL": "Annuleer", + "SAVE": "Opslaan" + }, + + "PAGINATION": { + "PAGE": "Pagina", + "ITEMS_PER_PAGE": "Elementen per pagina" + }, + + "PRELOADING": { + "FETCHING_USER_PROFILE": "Initialiseren...", + "FETCHING_USER_PROFILE_FAILURE": "Initialisatie mislukt: gebruikersprofiel kon niet worden opgehaald.", + "CONTACT_IT_SUPPORT": "Neem contact op met uw IT-support afdeling..", + "CORRELATION_ID": "Correlatie ID", + "RELOAD": "Herladen" + }, + + "RBAC": { + "LABEL": { + "FIRST_NAME": "Voornaam", + "LAST_NAME": "Achternaam", + "REFERENCE_NUMBER": "Referentienummer", + "USERNAME": "Gebruikersnaam", + "LANGUAGE": "Taal", + "START_DATE": "Begin Datum", + "END_DATE": "Eind Datum", + "FROM": "Van", + "TO": "Tot", + "DESCRIPTION": "Beschrijving", + "CODE": "Code", + "CHILD_GROUPS": "Child Groups", + "CHILD_PROFILES": "Child Profiles", + "PROFILE": "Profile", + "ROLE": "Role" + }, + "TITLE": { + "ADD_ROLE_TO_PROFILE": "Voeg rol toe aan profiel", + "ADD_PRINCIPAL_TO_GROUP": "Principal aan groep toevoegen", + "CONTAINED_PRINCIPALS": "Bevat Opdrachtgevers", + "CONTAINED_ROLES": "Bevat Rollen", + "GROUP_DETAILS": "Groep Details", + "GROUP_MANAGEMENT": "Groep Beheer", + "NEW_GROUP": "Nieuw Groep", + "NEW_PRINCIPAL": "Nieuw Principal", + "NEW_PROFILE": "Niew Profiel", + "NEW_PROFILE_ASSIGNMENT": "Nieuwe Profiel Toewijzing", + "NEW_ROLE": "Nieuw Rol", + "NEW_ROLE_ASSIGNMENT": "Nieuwe Rol Toewijzing", + "PRINCIPAL_ASSIGNMENTS": "Principal Toewijzings", + "PRINCIPAL_DETAILS": "Principal Details", + "PRINCIPAL_MANAGEMENT": "Principal Beheer", + "PROFILE_ASSIGNMENTS": "Profiel Toewijzing", + "PROFILE_ASSIGNMENT_DETAILS": "Profiel Toewijzing Details", + "PROFILE_DETAILS": "Profiel Details", + "PROFILE_MANAGEMENT": "Profiel Beheer", + "ROLE_ASSIGNMENT_DETAILS": "Rol Toewijzing Details", + "ROLE_ASSIGNMENTS": "Rol Toewijzings", + "ROLE_DETAILS": "Rol Details", + "ROLE_MANAGEMENT": "Rol Beheer" + } + }, + + "SESSION": { + "TIMEOUT": { + "WARNING": { + "TITLE": "Sessie verlopen", + "WILL_EXPIRE_IN": "Uw sessie zal vervallen in", + "SECONDS": "seconden.", + "DO_YOU_WISH_TO_STAY_CONNECTED": "Wilt u om verbonden te blijven?", + "STAY_CONNECTED": "Blijf verbonden" + } + } + }, + + "SESSION_EXPIRED": { + "TITLE": "sessie verlopen", + "RELOAD": "Herladen" + }, + + "SESSION_LOGOUT": { + "TITLE": "Afgemeld", + "LOGON": "Opnieuw aanmelden" + }, + + "TABLE": { + "NB_SELECTED_ROWS": "Geselecteerd", + "TOGGLE_SELECTION": "Selectie omkeren", + "SELECT_ALL": "Alles selectioneren", + "DESELECT_ALL": "Selectie wissen", + "SELECT_DESELECT_ALL": "Alles selectioneren/Selectie wissen", + "MORE": "Meer", + "INDEX": "Index", + "ACTIONS": "Acties", + "FILTER": "Filter (max 80 karakters)", + "EXPAND_ALL": "Alle lijnen tonen", + "COLLAPSE_ALL": "Alle lijnen verbergen", + "PRISTINE_MESSAGE": "Nog geen data geladen.", + "EMPTY_MESSAGE": "Geen elementen gevonden. Fijne dag!", + "ITEMS_FOUND": "gegeven(s)", + "TOGGLE_COLUMNS": "Kolom filters", + "MULTI_COLUMN_SORTING": "Sorteren van meerdere kolommen" + }, + + "USER": { + "TEXT": "Tekst vertaling vanuit starter" + }, + + "VALIDATION": { + "REQUIRED": "Dit veld is verplicht", + "SIZE": "Dit veld moet tussen {{min}} en {{max}} karakters bevatten", + "EMAIL": "Het e-mail adres is niet in het juiste formaat" + } + }, + + "STARTER": { + "HOME": { + "YOUR_CONTENT": "Uw Inhoud Hier" + } + } } diff --git a/starter/src/app/app.module.ts b/starter/src/app/app.module.ts index 543f3f95ff..531610119d 100644 --- a/starter/src/app/app.module.ts +++ b/starter/src/app/app.module.ts @@ -3,7 +3,6 @@ import { BrowserModule } from "@angular/platform-browser"; import { FormsModule } from "@angular/forms"; import { UIRouterModule } from "@uirouter/angular"; import { NgIdleModule } from "@ng-idle/core"; -import { TranslateModule } from "@ngx-translate/core"; import { validateSync } from "class-validator"; import { ActionReducer, ActionReducerMap, MetaReducer, StoreModule } from "@ngrx/store"; import { storeFreeze } from "ngrx-store-freeze"; @@ -25,6 +24,15 @@ import { } from "@nationalbankbelgium/stark-core"; import { routerConfigFn } from "./router.config"; import { Deserialize } from "cerialize"; + +/* + * Translations + */ +import { TranslateModule, TranslateService } from "@ngx-translate/core"; +const translationsEn: object = require("../../assets/translations/en.json"); +const translationsFr: object = require("../../assets/translations/fr.json"); +const translationsNl: object = require("../../assets/translations/nl.json"); + /* * Platform and Environment providers/directives/pipes */ @@ -139,4 +147,13 @@ export const metaReducers: MetaReducer[] = !environment.production ? [log { provide: STARK_APP_METADATA, useFactory: starkAppMetadataFactory } ] }) -export class AppModule {} +export class AppModule { + public constructor(private translateService: TranslateService) { + this.translateService.addLangs(["en", "fr", "nl"]); + this.translateService.setTranslation("en", translationsEn, true); + this.translateService.setTranslation("fr", translationsFr, true); + this.translateService.setTranslation("nl", translationsNl, true); + this.translateService.setDefaultLang("en"); + this.translateService.use("nl"); + } +} diff --git a/starter/src/app/home/home.component.html b/starter/src/app/home/home.component.html index e3ca3082bf..40b3a5c4ec 100644 --- a/starter/src/app/home/home.component.html +++ b/starter/src/app/home/home.component.html @@ -1,5 +1,5 @@
-

Your Content Here

+

STARTER.HOME.YOUR_CONTENT