diff --git a/src/app/app.config.ts b/src/app/app.config.ts index d953f4c..2b3aaaa 100644 --- a/src/app/app.config.ts +++ b/src/app/app.config.ts @@ -1,12 +1,17 @@ -import { ApplicationConfig, provideBrowserGlobalErrorListeners, provideZoneChangeDetection } from '@angular/core'; +import { ApplicationConfig, InjectionToken, provideBrowserGlobalErrorListeners, provideZoneChangeDetection } from '@angular/core'; import { provideRouter } from '@angular/router'; import { routes } from './app.routes'; +import { strings } from './strings'; + +const STRINGS_TOKEN = 'strings'; +export const STRINGS_INJECTOR = new InjectionToken(STRINGS_TOKEN); export const appConfig: ApplicationConfig = { providers: [ provideBrowserGlobalErrorListeners(), provideZoneChangeDetection({ eventCoalescing: true }), - provideRouter(routes) + provideRouter(routes), + {provide: STRINGS_INJECTOR, useValue: strings} ] }; diff --git a/src/app/strings.ts b/src/app/strings.ts new file mode 100644 index 0000000..9b0d0e8 --- /dev/null +++ b/src/app/strings.ts @@ -0,0 +1,13 @@ +export const strings = Object.freeze({ + add: 'add', + addContact: 'add a contact', + allFieldRequired: 'all fields are required', + company: 'company', + contactList: 'contact list', + name: 'name', + phone: 'phone', + errorMessageRequired: 'This field is required.', + errorMessageMaxLength: (maxLen: number) => `Must be ${maxLen} characters or fewer.`, + errorMessageMinLength: (minLen: number) => `Must be at least ${minLen} characters long.`, + errorMessagePhonePattern: `Valid format: + (optional) plus 12 to 15 digits`, +});