Angular интернационализация обслуживает в режиме разработки
Я хотел бы получить опыт работы с угловым i18n (https://angular.io/guide/i18n#build-from-the-command-line). Я могу обслуживать свое приложение с одной локалью, это нормально. Но я не могу отладить приложение, потому что оно входит в комплект.
Я использую Angular 12
Вопрос Как я могу использовать интернационализацию (i18n) в обычном режиме разработчика (без связанного приложения)? Или, может быть, есть возможность иметь конфигурацию без i18n и использовать i18n только для создания приложения в производственном режиме?
angular.json
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"pomodoro-app": {
"projectType": "application",
"schematics": {
"@schematics/angular:component": {
"style": "scss"
},
"@schematics/angular:application": {
"strict": true
}
},
"root": "",
"sourceRoot": "src",
"prefix": "pom",
"i18n": {
"sourceLocale": "en-US",
"locales": {
"pl": {
"translation": "src/locale/messages.pl.xlf"
},
"en": {
"translation": "src/locale/messages.en.xlf"
}
}
},
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"localize": true,
"outputPath": "dist",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.app.json",
"assets": ["src/favicon.ico", "src/assets"],
"styles": ["src/styles/styles.scss"],
"scripts": [],
"aot": true,
"optimization": {
"fonts": false
}
},
"configurations": {
"production": {
"optimization": true,
"sourceMap": false,
"namedChunks": false,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
"budgets": [
{...},
{...}
],
"fileReplacements": [...],
"outputHashing": "all"
},
"development": {
"buildOptimizer": false,
"optimization": false,
"vendorChunk": true,
"extractLicenses": false,
"sourceMap": true,
"namedChunks": true
},
"en": {
"localize": ["en"],
"baseHref": "/en/"
},
"pl": {
"localize": ["pl"],
"baseHref": "/pl/"
}
},
"defaultConfiguration": "production"
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "pomodoro-app:build"
},
"configurations": {
"production": {
"browserTarget": "pomodoro-app:build:production"
},
"en": {
"browserTarget": "pomodoro-app:build:en"
},
"pl": {
"browserTarget": "pomodoro-app:build:pl"
}
},
"defaultConfiguration": "development"
},
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n",
"options": {
"browserTarget": "pomodoro-app:build"
}
},
"test": {...}
}
}
}
},
"defaultProject": "pomodoro-app",
"cli": {
"defaultCollection": "@ngrx/schematics"
}
}
PS Я проверил документацию и живой пример (https://angular.io/generated/live-examples/i18n/stackblitz.html), и я не могу найти что-то, что поможет мне с этим вопросом.
1 ответ
Я нашел решение, возникла проблема с разделом сборки и обслуживания в конфигурации angular.json:
вот разница
...
"build": {
"configurations": {
"development-en": {
"buildOptimizer": false,
"optimization": false,
"vendorChunk": false,
"extractLicenses": false,
"sourceMap": true,
"localize": ["en"],
"baseHref": "/en/"
},
"development-pl": {
"buildOptimizer": false,
"optimization": false,
"vendorChunk": false,
"extractLicenses": false,
"sourceMap": true,
"localize": ["pl"],
"baseHref": "/pl/"
},
...
},
...
"serve": {
...
"configurations": {
"development-en": {
"buildOptimizer": false,
"optimization": false,
"vendorChunk": false,
"extractLicenses": false,
"sourceMap": true,
"localize": ["en"],
"baseHref": "/en/"
},
"development-pl": {
"buildOptimizer": false,
"optimization": false,
"vendorChunk": false,
"extractLicenses": false,
"sourceMap": true,
"localize": ["pl"],
"baseHref": "/pl/"
},
}