From aab486398ddefdca7e7f6f744c64e16f3e16938a Mon Sep 17 00:00:00 2001
From: andrej romanov <50377758+auumgn@users.noreply.github.com>
Date: Wed, 22 Nov 2023 21:10:02 +0200
Subject: [PATCH 01/24] add initial config
---
ui/angular.json | 7 +
.../account/settings/settings.component.html | 389 ++++++++++------
ui/src/i18n/messages.xlf | 421 ++++++++++++++++++
ui/src/main.ts | 2 +
ui/tsconfig.app.json | 4 +-
ui/tsconfig.spec.json | 5 +-
6 files changed, 696 insertions(+), 132 deletions(-)
create mode 100644 ui/src/i18n/messages.xlf
diff --git a/ui/angular.json b/ui/angular.json
index a07983c60..6d5826f30 100644
--- a/ui/angular.json
+++ b/ui/angular.json
@@ -4,6 +4,12 @@
"newProjectRoot": "projects",
"projects": {
"ui": {
+ "i18n": {
+ "sourceLocale": "en-US",
+ "locales": {
+ "es": "src/i18n/messages.es.xlf"
+ }
+ },
"projectType": "application",
"schematics": {
"@schematics/angular:component": {
@@ -17,6 +23,7 @@
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
+ "localize": ["es"],
"outputPath": "dist/",
"index": "src/index.html",
"main": "src/main.ts",
diff --git a/ui/src/app/account/settings/settings.component.html b/ui/src/app/account/settings/settings.component.html
index de18a8683..ab3d07a70 100644
--- a/ui/src/app/account/settings/settings.component.html
+++ b/ui/src/app/account/settings/settings.component.html
@@ -1,138 +1,267 @@
-
-
-
Personal details
-
+
+
+
Personal details
+
-
- Settings saved!
-
+
+ Settings saved!
+
-
-
-
-
- Security
-
-
- 2FA settings updated
-
-
-
- Install a two-factor authentication app A 2FA app is required to create the six-digit code you need to access your account each time you sign in. Most apps are for mobile devices; some are also available as desktop or web-based apps. Download and install your preferred 2FA app, such as Google Authenticator , FreeOTP , or Authy .
- Scan this QR code with your device Open your 2FA app and scan the image below.
-
-
-
-
-
-
-
-
-
-
-
{{ mfaSetup.secret }}
-
-
-
-
-
- Can't scan the QR code? Get a text code and enter it into your 2FA app instead
- Enter the six-digit code from the app After scanning the QR code or entering in the text code, your 2FA app will display a six-digit code. Enter this code in the box below and click Save.
-
-
-
-
+
+
+
+
+ Make a note of the following backup codes, this is the only time they will be shown.
+
+
+
+
+
+ Save
+
+
+
-
+
diff --git a/ui/src/i18n/messages.xlf b/ui/src/i18n/messages.xlf
new file mode 100644
index 000000000..595912b24
--- /dev/null
+++ b/ui/src/i18n/messages.xlf
@@ -0,0 +1,421 @@
+
+
+
+
+
+ Close
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ HH
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ Close
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+
+ Select month
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ Previous month
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ Slide of
+
+ node_modules/src/ngb-config.ts
+ 13
+
+ Currently selected slide number read by screen reader
+
+
+ Hours
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+
+ Previous
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ MM
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+
+ Select year
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ Next month
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ Next
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ Minutes
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+
+ Increment hours
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+
+
+ Decrement hours
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+
+ Increment minutes
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+
+ Decrement minutes
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ SS
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ Seconds
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ Increment seconds
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ Decrement seconds
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ Personal details
+
+ src/app/account/settings/settings.component.html
+ 4
+
+
+
+ Settings saved!
+
+ src/app/account/settings/settings.component.html
+ 8
+
+
+
+ First Name
+
+ src/app/account/settings/settings.component.html
+ 21
+
+
+
+ Your first name is required.
+
+ src/app/account/settings/settings.component.html
+ 43,45
+
+
+
+ Your first name is required to be at least 1 character.
+
+ src/app/account/settings/settings.component.html
+ 51,53
+
+
+
+ Your first name cannot be longer than 50 characters.
+
+ src/app/account/settings/settings.component.html
+ 59,61
+
+
+
+ Last Name
+
+ src/app/account/settings/settings.component.html
+ 66
+
+
+
+ Your last name is required.
+
+ src/app/account/settings/settings.component.html
+ 89,91
+
+
+
+ Your last name is required to be at least 1 character.
+
+ src/app/account/settings/settings.component.html
+ 97,99
+
+
+
+ Your last name cannot be longer than 50 characters.
+
+ src/app/account/settings/settings.component.html
+ 105,107
+
+
+
+ Email
+
+ src/app/account/settings/settings.component.html
+ 111
+
+
+
+ Language
+
+ src/app/account/settings/settings.component.html
+ 125
+
+
+
+ Save
+
+ src/app/account/settings/settings.component.html
+ 137,139
+
+
+ src/app/account/settings/settings.component.html
+ 260,262
+
+
+
+ Security
+
+ src/app/account/settings/settings.component.html
+ 151
+
+
+
+ Add extra security to your ORCID member portal account by enabling two-factor authentication. Each time you sign in, you'll be prompted to enter a six-digit code we send to your preferred authentication application.
+
+ src/app/account/settings/settings.component.html
+ 154,157
+
+
+
+ Two-factor Authentication
+
+ src/app/account/settings/settings.component.html
+ 159
+
+
+
+ 2FA settings updated
+
+ src/app/account/settings/settings.component.html
+ 170
+
+
+
+ Install a two-factor authentication app A 2FA app is required to create the six-digit code you need to access your account each time you sign in. Most apps are for mobile devices; some are also available as desktop or web-based apps. Download and install your preferred 2FA app, such as Google Authenticator , FreeOTP , or Authy .
+
+ src/app/account/settings/settings.component.html
+ 174,181
+
+
+
+ Can't scan the QR code?
+
+ src/app/account/settings/settings.component.html
+ 204
+
+
+
+ Get a text code
+
+ src/app/account/settings/settings.component.html
+ 210
+
+
+
+ and enter it into your 2FA app instead
+
+ src/app/account/settings/settings.component.html
+ 212
+
+
+
+ Enter the six-digit code from the app After scanning the QR code or entering in the text code, your 2FA app will display a six-digit code. Enter this code in the box below and click Save.
+
+ src/app/account/settings/settings.component.html
+ 215,218
+
+
+
+ Incorrect verification code
+
+ src/app/account/settings/settings.component.html
+ 229,231
+
+
+
+ Make a note of the following backup codes, this is the only time they will be shown.
+
+ src/app/account/settings/settings.component.html
+ 244,246
+
+
+
+
+
diff --git a/ui/src/main.ts b/ui/src/main.ts
index 274537fe8..cc1fa54d2 100644
--- a/ui/src/main.ts
+++ b/ui/src/main.ts
@@ -1,3 +1,5 @@
+///
+
import { enableProdMode } from '@angular/core'
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'
diff --git a/ui/tsconfig.app.json b/ui/tsconfig.app.json
index ff396d4ce..ccc8bede8 100644
--- a/ui/tsconfig.app.json
+++ b/ui/tsconfig.app.json
@@ -3,7 +3,9 @@
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "./out-tsc/app",
- "types": []
+ "types": [
+ "@angular/localize"
+ ]
},
"files": ["src/main.ts", "src/polyfills.ts"],
"include": ["src/**/*.d.ts"]
diff --git a/ui/tsconfig.spec.json b/ui/tsconfig.spec.json
index 669344f8d..3d85cbc4b 100644
--- a/ui/tsconfig.spec.json
+++ b/ui/tsconfig.spec.json
@@ -3,7 +3,10 @@
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "./out-tsc/spec",
- "types": ["jasmine"]
+ "types": [
+ "jasmine",
+ "@angular/localize"
+ ]
},
"files": ["src/test.ts", "src/polyfills.ts"],
"include": ["src/**/*.spec.ts", "src/**/*.d.ts"]
From c652f5fea7de68bf238f48685d5377f97b1b098e Mon Sep 17 00:00:00 2001
From: andrej romanov <50377758+auumgn@users.noreply.github.com>
Date: Thu, 23 Nov 2023 01:17:35 +0200
Subject: [PATCH 02/24] add ng-extract-i18n-merge
---
ui/angular.json | 9 ++-
ui/package-lock.json | 161 +++++++++++++++++++++++++++++++++++++++++--
ui/package.json | 1 +
3 files changed, 165 insertions(+), 6 deletions(-)
diff --git a/ui/angular.json b/ui/angular.json
index 6d5826f30..7538c95e9 100644
--- a/ui/angular.json
+++ b/ui/angular.json
@@ -84,9 +84,14 @@
"defaultConfiguration": "development"
},
"extract-i18n": {
- "builder": "@angular-devkit/build-angular:extract-i18n",
+ "builder": "ng-extract-i18n-merge:ng-extract-i18n-merge",
"options": {
- "browserTarget": "ui:build"
+ "browserTarget": "ui:build",
+ "format": "xlf2",
+ "outputPath": "src/i18n",
+ "targetFiles": [
+ "messages.es.xlf"
+ ]
}
},
"test": {
diff --git a/ui/package-lock.json b/ui/package-lock.json
index 3f05d5d24..a5dc0cb4b 100644
--- a/ui/package-lock.json
+++ b/ui/package-lock.json
@@ -47,6 +47,7 @@
"karma-coverage": "~2.2.0",
"karma-jasmine": "~5.1.0",
"karma-jasmine-html-reporter": "~2.0.0",
+ "ng-extract-i18n-merge": "^2.9.0",
"prettier": "^3.0.3",
"typescript": "~4.9.5"
}
@@ -11065,6 +11066,88 @@
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
"dev": true
},
+ "node_modules/ng-extract-i18n-merge": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/ng-extract-i18n-merge/-/ng-extract-i18n-merge-2.9.0.tgz",
+ "integrity": "sha512-xKdkegJcJCzbvsy07IaSxz2AmkHdF3l0UR5mLr5CHai2g1VHD0xhoHPk/6kFFDNJ42fQT8EybPH/YcqZUt2iQg==",
+ "dev": true,
+ "dependencies": {
+ "@angular-devkit/architect": "^0.1301.0 || ^0.1401.0 || ^0.1501.0 || ^0.1601.0 || ^0.1700.0",
+ "@angular-devkit/core": "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0",
+ "@angular-devkit/schematics": "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0",
+ "@schematics/angular": "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0",
+ "xmldoc": "^1.1.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "@angular-devkit/build-angular": "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
+ }
+ },
+ "node_modules/ng-extract-i18n-merge/node_modules/@angular-devkit/architect": {
+ "version": "0.1700.3",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1700.3.tgz",
+ "integrity": "sha512-HUjx7vD16paWXHKHYc2LsSn/kaYbFr2YNnlzuSr9C0kauKS1e7sRpRvtGwQzXfohzgyKi81AAU5uA2KLRGq83w==",
+ "dev": true,
+ "dependencies": {
+ "@angular-devkit/core": "17.0.3",
+ "rxjs": "7.8.1"
+ },
+ "engines": {
+ "node": "^18.13.0 || >=20.9.0",
+ "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
+ "yarn": ">= 1.13.0"
+ }
+ },
+ "node_modules/ng-extract-i18n-merge/node_modules/@angular-devkit/core": {
+ "version": "17.0.3",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.0.3.tgz",
+ "integrity": "sha512-SOngD3rKnwZWhhUV68AYlH8M3LRGvF69jnDrYKwtRy1ESqSH7tt+1vexGC290gKvqH7bNMgYv8f5BS1AASRfzw==",
+ "dev": true,
+ "dependencies": {
+ "ajv": "8.12.0",
+ "ajv-formats": "2.1.1",
+ "jsonc-parser": "3.2.0",
+ "picomatch": "3.0.1",
+ "rxjs": "7.8.1",
+ "source-map": "0.7.4"
+ },
+ "engines": {
+ "node": "^18.13.0 || >=20.9.0",
+ "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
+ "yarn": ">= 1.13.0"
+ },
+ "peerDependencies": {
+ "chokidar": "^3.5.2"
+ },
+ "peerDependenciesMeta": {
+ "chokidar": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/ng-extract-i18n-merge/node_modules/picomatch": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz",
+ "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/ng-extract-i18n-merge/node_modules/rxjs": {
+ "version": "7.8.1",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
+ "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
"node_modules/ngx-webstorage": {
"version": "12.0.0",
"resolved": "https://registry.npmjs.org/ngx-webstorage/-/ngx-webstorage-12.0.0.tgz",
@@ -13134,8 +13217,7 @@
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz",
"integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==",
- "dev": true,
- "optional": true
+ "dev": true
},
"node_modules/saxes": {
"version": "5.0.1",
@@ -15152,6 +15234,15 @@
"integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
"dev": true
},
+ "node_modules/xmldoc": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/xmldoc/-/xmldoc-1.3.0.tgz",
+ "integrity": "sha512-y7IRWW6PvEnYQZNZFMRLNJw+p3pezM4nKYPfr15g4OOW9i8VpeydycFuipE2297OvZnh3jSb2pxOt9QpkZUVng==",
+ "dev": true,
+ "dependencies": {
+ "sax": "^1.2.4"
+ }
+ },
"node_modules/y18n": {
"version": "5.0.8",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
@@ -23415,6 +23506,60 @@
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
"dev": true
},
+ "ng-extract-i18n-merge": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/ng-extract-i18n-merge/-/ng-extract-i18n-merge-2.9.0.tgz",
+ "integrity": "sha512-xKdkegJcJCzbvsy07IaSxz2AmkHdF3l0UR5mLr5CHai2g1VHD0xhoHPk/6kFFDNJ42fQT8EybPH/YcqZUt2iQg==",
+ "dev": true,
+ "requires": {
+ "@angular-devkit/architect": "^0.1301.0 || ^0.1401.0 || ^0.1501.0 || ^0.1601.0 || ^0.1700.0",
+ "@angular-devkit/core": "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0",
+ "@angular-devkit/schematics": "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0",
+ "@schematics/angular": "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0",
+ "xmldoc": "^1.1.2"
+ },
+ "dependencies": {
+ "@angular-devkit/architect": {
+ "version": "0.1700.3",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1700.3.tgz",
+ "integrity": "sha512-HUjx7vD16paWXHKHYc2LsSn/kaYbFr2YNnlzuSr9C0kauKS1e7sRpRvtGwQzXfohzgyKi81AAU5uA2KLRGq83w==",
+ "dev": true,
+ "requires": {
+ "@angular-devkit/core": "17.0.3",
+ "rxjs": "7.8.1"
+ }
+ },
+ "@angular-devkit/core": {
+ "version": "17.0.3",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.0.3.tgz",
+ "integrity": "sha512-SOngD3rKnwZWhhUV68AYlH8M3LRGvF69jnDrYKwtRy1ESqSH7tt+1vexGC290gKvqH7bNMgYv8f5BS1AASRfzw==",
+ "dev": true,
+ "requires": {
+ "ajv": "8.12.0",
+ "ajv-formats": "2.1.1",
+ "jsonc-parser": "3.2.0",
+ "picomatch": "3.0.1",
+ "rxjs": "7.8.1",
+ "source-map": "0.7.4"
+ }
+ },
+ "picomatch": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz",
+ "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==",
+ "dev": true
+ },
+ "rxjs": {
+ "version": "7.8.1",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
+ "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
+ "dev": true,
+ "requires": {
+ "tslib": "^2.1.0"
+ }
+ }
+ }
+ },
"ngx-webstorage": {
"version": "12.0.0",
"resolved": "https://registry.npmjs.org/ngx-webstorage/-/ngx-webstorage-12.0.0.tgz",
@@ -24901,8 +25046,7 @@
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz",
"integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==",
- "dev": true,
- "optional": true
+ "dev": true
},
"saxes": {
"version": "5.0.1",
@@ -26368,6 +26512,15 @@
"integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
"dev": true
},
+ "xmldoc": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/xmldoc/-/xmldoc-1.3.0.tgz",
+ "integrity": "sha512-y7IRWW6PvEnYQZNZFMRLNJw+p3pezM4nKYPfr15g4OOW9i8VpeydycFuipE2297OvZnh3jSb2pxOt9QpkZUVng==",
+ "dev": true,
+ "requires": {
+ "sax": "^1.2.4"
+ }
+ },
"y18n": {
"version": "5.0.8",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
diff --git a/ui/package.json b/ui/package.json
index 1aa605da5..4a19364fd 100644
--- a/ui/package.json
+++ b/ui/package.json
@@ -53,6 +53,7 @@
"karma-coverage": "~2.2.0",
"karma-jasmine": "~5.1.0",
"karma-jasmine-html-reporter": "~2.0.0",
+ "ng-extract-i18n-merge": "^2.9.0",
"prettier": "^3.0.3",
"typescript": "~4.9.5"
}
From 9cb8b39c7e9d00ec40a078a2a728fb0d6a7be08b Mon Sep 17 00:00:00 2001
From: andrej romanov <50377758+auumgn@users.noreply.github.com>
Date: Thu, 23 Nov 2023 01:28:32 +0200
Subject: [PATCH 03/24] Revert "add ng-extract-i18n-merge"
This reverts commit c652f5fea7de68bf238f48685d5377f97b1b098e.
---
ui/angular.json | 9 +--
ui/package-lock.json | 161 ++-----------------------------------------
ui/package.json | 1 -
3 files changed, 6 insertions(+), 165 deletions(-)
diff --git a/ui/angular.json b/ui/angular.json
index 7538c95e9..6d5826f30 100644
--- a/ui/angular.json
+++ b/ui/angular.json
@@ -84,14 +84,9 @@
"defaultConfiguration": "development"
},
"extract-i18n": {
- "builder": "ng-extract-i18n-merge:ng-extract-i18n-merge",
+ "builder": "@angular-devkit/build-angular:extract-i18n",
"options": {
- "browserTarget": "ui:build",
- "format": "xlf2",
- "outputPath": "src/i18n",
- "targetFiles": [
- "messages.es.xlf"
- ]
+ "browserTarget": "ui:build"
}
},
"test": {
diff --git a/ui/package-lock.json b/ui/package-lock.json
index a5dc0cb4b..3f05d5d24 100644
--- a/ui/package-lock.json
+++ b/ui/package-lock.json
@@ -47,7 +47,6 @@
"karma-coverage": "~2.2.0",
"karma-jasmine": "~5.1.0",
"karma-jasmine-html-reporter": "~2.0.0",
- "ng-extract-i18n-merge": "^2.9.0",
"prettier": "^3.0.3",
"typescript": "~4.9.5"
}
@@ -11066,88 +11065,6 @@
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
"dev": true
},
- "node_modules/ng-extract-i18n-merge": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/ng-extract-i18n-merge/-/ng-extract-i18n-merge-2.9.0.tgz",
- "integrity": "sha512-xKdkegJcJCzbvsy07IaSxz2AmkHdF3l0UR5mLr5CHai2g1VHD0xhoHPk/6kFFDNJ42fQT8EybPH/YcqZUt2iQg==",
- "dev": true,
- "dependencies": {
- "@angular-devkit/architect": "^0.1301.0 || ^0.1401.0 || ^0.1501.0 || ^0.1601.0 || ^0.1700.0",
- "@angular-devkit/core": "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0",
- "@angular-devkit/schematics": "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0",
- "@schematics/angular": "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0",
- "xmldoc": "^1.1.2"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "@angular-devkit/build-angular": "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
- }
- },
- "node_modules/ng-extract-i18n-merge/node_modules/@angular-devkit/architect": {
- "version": "0.1700.3",
- "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1700.3.tgz",
- "integrity": "sha512-HUjx7vD16paWXHKHYc2LsSn/kaYbFr2YNnlzuSr9C0kauKS1e7sRpRvtGwQzXfohzgyKi81AAU5uA2KLRGq83w==",
- "dev": true,
- "dependencies": {
- "@angular-devkit/core": "17.0.3",
- "rxjs": "7.8.1"
- },
- "engines": {
- "node": "^18.13.0 || >=20.9.0",
- "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
- "yarn": ">= 1.13.0"
- }
- },
- "node_modules/ng-extract-i18n-merge/node_modules/@angular-devkit/core": {
- "version": "17.0.3",
- "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.0.3.tgz",
- "integrity": "sha512-SOngD3rKnwZWhhUV68AYlH8M3LRGvF69jnDrYKwtRy1ESqSH7tt+1vexGC290gKvqH7bNMgYv8f5BS1AASRfzw==",
- "dev": true,
- "dependencies": {
- "ajv": "8.12.0",
- "ajv-formats": "2.1.1",
- "jsonc-parser": "3.2.0",
- "picomatch": "3.0.1",
- "rxjs": "7.8.1",
- "source-map": "0.7.4"
- },
- "engines": {
- "node": "^18.13.0 || >=20.9.0",
- "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
- "yarn": ">= 1.13.0"
- },
- "peerDependencies": {
- "chokidar": "^3.5.2"
- },
- "peerDependenciesMeta": {
- "chokidar": {
- "optional": true
- }
- }
- },
- "node_modules/ng-extract-i18n-merge/node_modules/picomatch": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz",
- "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/ng-extract-i18n-merge/node_modules/rxjs": {
- "version": "7.8.1",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
- "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
- "dev": true,
- "dependencies": {
- "tslib": "^2.1.0"
- }
- },
"node_modules/ngx-webstorage": {
"version": "12.0.0",
"resolved": "https://registry.npmjs.org/ngx-webstorage/-/ngx-webstorage-12.0.0.tgz",
@@ -13217,7 +13134,8 @@
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz",
"integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==",
- "dev": true
+ "dev": true,
+ "optional": true
},
"node_modules/saxes": {
"version": "5.0.1",
@@ -15234,15 +15152,6 @@
"integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
"dev": true
},
- "node_modules/xmldoc": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/xmldoc/-/xmldoc-1.3.0.tgz",
- "integrity": "sha512-y7IRWW6PvEnYQZNZFMRLNJw+p3pezM4nKYPfr15g4OOW9i8VpeydycFuipE2297OvZnh3jSb2pxOt9QpkZUVng==",
- "dev": true,
- "dependencies": {
- "sax": "^1.2.4"
- }
- },
"node_modules/y18n": {
"version": "5.0.8",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
@@ -23506,60 +23415,6 @@
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
"dev": true
},
- "ng-extract-i18n-merge": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/ng-extract-i18n-merge/-/ng-extract-i18n-merge-2.9.0.tgz",
- "integrity": "sha512-xKdkegJcJCzbvsy07IaSxz2AmkHdF3l0UR5mLr5CHai2g1VHD0xhoHPk/6kFFDNJ42fQT8EybPH/YcqZUt2iQg==",
- "dev": true,
- "requires": {
- "@angular-devkit/architect": "^0.1301.0 || ^0.1401.0 || ^0.1501.0 || ^0.1601.0 || ^0.1700.0",
- "@angular-devkit/core": "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0",
- "@angular-devkit/schematics": "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0",
- "@schematics/angular": "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0",
- "xmldoc": "^1.1.2"
- },
- "dependencies": {
- "@angular-devkit/architect": {
- "version": "0.1700.3",
- "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1700.3.tgz",
- "integrity": "sha512-HUjx7vD16paWXHKHYc2LsSn/kaYbFr2YNnlzuSr9C0kauKS1e7sRpRvtGwQzXfohzgyKi81AAU5uA2KLRGq83w==",
- "dev": true,
- "requires": {
- "@angular-devkit/core": "17.0.3",
- "rxjs": "7.8.1"
- }
- },
- "@angular-devkit/core": {
- "version": "17.0.3",
- "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.0.3.tgz",
- "integrity": "sha512-SOngD3rKnwZWhhUV68AYlH8M3LRGvF69jnDrYKwtRy1ESqSH7tt+1vexGC290gKvqH7bNMgYv8f5BS1AASRfzw==",
- "dev": true,
- "requires": {
- "ajv": "8.12.0",
- "ajv-formats": "2.1.1",
- "jsonc-parser": "3.2.0",
- "picomatch": "3.0.1",
- "rxjs": "7.8.1",
- "source-map": "0.7.4"
- }
- },
- "picomatch": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz",
- "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==",
- "dev": true
- },
- "rxjs": {
- "version": "7.8.1",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
- "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
- "dev": true,
- "requires": {
- "tslib": "^2.1.0"
- }
- }
- }
- },
"ngx-webstorage": {
"version": "12.0.0",
"resolved": "https://registry.npmjs.org/ngx-webstorage/-/ngx-webstorage-12.0.0.tgz",
@@ -25046,7 +24901,8 @@
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz",
"integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==",
- "dev": true
+ "dev": true,
+ "optional": true
},
"saxes": {
"version": "5.0.1",
@@ -26512,15 +26368,6 @@
"integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
"dev": true
},
- "xmldoc": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/xmldoc/-/xmldoc-1.3.0.tgz",
- "integrity": "sha512-y7IRWW6PvEnYQZNZFMRLNJw+p3pezM4nKYPfr15g4OOW9i8VpeydycFuipE2297OvZnh3jSb2pxOt9QpkZUVng==",
- "dev": true,
- "requires": {
- "sax": "^1.2.4"
- }
- },
"y18n": {
"version": "5.0.8",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
diff --git a/ui/package.json b/ui/package.json
index 4a19364fd..1aa605da5 100644
--- a/ui/package.json
+++ b/ui/package.json
@@ -53,7 +53,6 @@
"karma-coverage": "~2.2.0",
"karma-jasmine": "~5.1.0",
"karma-jasmine-html-reporter": "~2.0.0",
- "ng-extract-i18n-merge": "^2.9.0",
"prettier": "^3.0.3",
"typescript": "~4.9.5"
}
From 498109a8227b425d480c5b2f380bdc2b933c3672 Mon Sep 17 00:00:00 2001
From: andrej romanov <50377758+auumgn@users.noreply.github.com>
Date: Mon, 27 Nov 2023 23:39:14 +0200
Subject: [PATCH 04/24] add i18n messages
---
ui/messages.xlf | 421 ++++++++++++++++++++++++++++++++++++
ui/src/i18n/messages.es.xlf | 421 ++++++++++++++++++++++++++++++++++++
2 files changed, 842 insertions(+)
create mode 100644 ui/messages.xlf
create mode 100644 ui/src/i18n/messages.es.xlf
diff --git a/ui/messages.xlf b/ui/messages.xlf
new file mode 100644
index 000000000..595912b24
--- /dev/null
+++ b/ui/messages.xlf
@@ -0,0 +1,421 @@
+
+
+
+
+
+ Close
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ HH
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ Close
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+
+ Select month
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ Previous month
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ Slide of
+
+ node_modules/src/ngb-config.ts
+ 13
+
+ Currently selected slide number read by screen reader
+
+
+ Hours
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+
+ Previous
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ MM
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+
+ Select year
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ Next month
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ Next
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ Minutes
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+
+ Increment hours
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+
+
+ Decrement hours
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+
+ Increment minutes
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+
+ Decrement minutes
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ SS
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ Seconds
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ Increment seconds
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ Decrement seconds
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ Personal details
+
+ src/app/account/settings/settings.component.html
+ 4
+
+
+
+ Settings saved!
+
+ src/app/account/settings/settings.component.html
+ 8
+
+
+
+ First Name
+
+ src/app/account/settings/settings.component.html
+ 21
+
+
+
+ Your first name is required.
+
+ src/app/account/settings/settings.component.html
+ 43,45
+
+
+
+ Your first name is required to be at least 1 character.
+
+ src/app/account/settings/settings.component.html
+ 51,53
+
+
+
+ Your first name cannot be longer than 50 characters.
+
+ src/app/account/settings/settings.component.html
+ 59,61
+
+
+
+ Last Name
+
+ src/app/account/settings/settings.component.html
+ 66
+
+
+
+ Your last name is required.
+
+ src/app/account/settings/settings.component.html
+ 89,91
+
+
+
+ Your last name is required to be at least 1 character.
+
+ src/app/account/settings/settings.component.html
+ 97,99
+
+
+
+ Your last name cannot be longer than 50 characters.
+
+ src/app/account/settings/settings.component.html
+ 105,107
+
+
+
+ Email
+
+ src/app/account/settings/settings.component.html
+ 111
+
+
+
+ Language
+
+ src/app/account/settings/settings.component.html
+ 125
+
+
+
+ Save
+
+ src/app/account/settings/settings.component.html
+ 137,139
+
+
+ src/app/account/settings/settings.component.html
+ 260,262
+
+
+
+ Security
+
+ src/app/account/settings/settings.component.html
+ 151
+
+
+
+ Add extra security to your ORCID member portal account by enabling two-factor authentication. Each time you sign in, you'll be prompted to enter a six-digit code we send to your preferred authentication application.
+
+ src/app/account/settings/settings.component.html
+ 154,157
+
+
+
+ Two-factor Authentication
+
+ src/app/account/settings/settings.component.html
+ 159
+
+
+
+ 2FA settings updated
+
+ src/app/account/settings/settings.component.html
+ 170
+
+
+
+ Install a two-factor authentication app A 2FA app is required to create the six-digit code you need to access your account each time you sign in. Most apps are for mobile devices; some are also available as desktop or web-based apps. Download and install your preferred 2FA app, such as Google Authenticator , FreeOTP , or Authy .
+
+ src/app/account/settings/settings.component.html
+ 174,181
+
+
+
+ Can't scan the QR code?
+
+ src/app/account/settings/settings.component.html
+ 204
+
+
+
+ Get a text code
+
+ src/app/account/settings/settings.component.html
+ 210
+
+
+
+ and enter it into your 2FA app instead
+
+ src/app/account/settings/settings.component.html
+ 212
+
+
+
+ Enter the six-digit code from the app After scanning the QR code or entering in the text code, your 2FA app will display a six-digit code. Enter this code in the box below and click Save.
+
+ src/app/account/settings/settings.component.html
+ 215,218
+
+
+
+ Incorrect verification code
+
+ src/app/account/settings/settings.component.html
+ 229,231
+
+
+
+ Make a note of the following backup codes, this is the only time they will be shown.
+
+ src/app/account/settings/settings.component.html
+ 244,246
+
+
+
+
+
diff --git a/ui/src/i18n/messages.es.xlf b/ui/src/i18n/messages.es.xlf
new file mode 100644
index 000000000..595912b24
--- /dev/null
+++ b/ui/src/i18n/messages.es.xlf
@@ -0,0 +1,421 @@
+
+
+
+
+
+ Close
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ HH
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ Close
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+
+ Select month
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ Previous month
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ Slide of
+
+ node_modules/src/ngb-config.ts
+ 13
+
+ Currently selected slide number read by screen reader
+
+
+ Hours
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+
+ Previous
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ MM
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+
+ Select year
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ Next month
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ Next
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ Minutes
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+
+ Increment hours
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+
+
+ Decrement hours
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+
+ Increment minutes
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+
+ Decrement minutes
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ SS
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ Seconds
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ Increment seconds
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ Decrement seconds
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+
+
+ node_modules/src/ngb-config.ts
+ 13
+
+
+
+ Personal details
+
+ src/app/account/settings/settings.component.html
+ 4
+
+
+
+ Settings saved!
+
+ src/app/account/settings/settings.component.html
+ 8
+
+
+
+ First Name
+
+ src/app/account/settings/settings.component.html
+ 21
+
+
+
+ Your first name is required.
+
+ src/app/account/settings/settings.component.html
+ 43,45
+
+
+
+ Your first name is required to be at least 1 character.
+
+ src/app/account/settings/settings.component.html
+ 51,53
+
+
+
+ Your first name cannot be longer than 50 characters.
+
+ src/app/account/settings/settings.component.html
+ 59,61
+
+
+
+ Last Name
+
+ src/app/account/settings/settings.component.html
+ 66
+
+
+
+ Your last name is required.
+
+ src/app/account/settings/settings.component.html
+ 89,91
+
+
+
+ Your last name is required to be at least 1 character.
+
+ src/app/account/settings/settings.component.html
+ 97,99
+
+
+
+ Your last name cannot be longer than 50 characters.
+
+ src/app/account/settings/settings.component.html
+ 105,107
+
+
+
+ Email
+
+ src/app/account/settings/settings.component.html
+ 111
+
+
+
+ Language
+
+ src/app/account/settings/settings.component.html
+ 125
+
+
+
+ Save
+
+ src/app/account/settings/settings.component.html
+ 137,139
+
+
+ src/app/account/settings/settings.component.html
+ 260,262
+
+
+
+ Security
+
+ src/app/account/settings/settings.component.html
+ 151
+
+
+
+ Add extra security to your ORCID member portal account by enabling two-factor authentication. Each time you sign in, you'll be prompted to enter a six-digit code we send to your preferred authentication application.
+
+ src/app/account/settings/settings.component.html
+ 154,157
+
+
+
+ Two-factor Authentication
+
+ src/app/account/settings/settings.component.html
+ 159
+
+
+
+ 2FA settings updated
+
+ src/app/account/settings/settings.component.html
+ 170
+
+
+
+ Install a two-factor authentication app A 2FA app is required to create the six-digit code you need to access your account each time you sign in. Most apps are for mobile devices; some are also available as desktop or web-based apps. Download and install your preferred 2FA app, such as Google Authenticator , FreeOTP , or Authy .
+
+ src/app/account/settings/settings.component.html
+ 174,181
+
+
+
+ Can't scan the QR code?
+
+ src/app/account/settings/settings.component.html
+ 204
+
+
+
+ Get a text code
+
+ src/app/account/settings/settings.component.html
+ 210
+
+
+
+ and enter it into your 2FA app instead
+
+ src/app/account/settings/settings.component.html
+ 212
+
+
+
+ Enter the six-digit code from the app After scanning the QR code or entering in the text code, your 2FA app will display a six-digit code. Enter this code in the box below and click Save.
+
+ src/app/account/settings/settings.component.html
+ 215,218
+
+
+
+ Incorrect verification code
+
+ src/app/account/settings/settings.component.html
+ 229,231
+
+
+
+ Make a note of the following backup codes, this is the only time they will be shown.
+
+ src/app/account/settings/settings.component.html
+ 244,246
+
+
+
+
+
From 74191ef69148be915f05a7472aa22de65de3667a Mon Sep 17 00:00:00 2001
From: andrej romanov <50377758+auumgn@users.noreply.github.com>
Date: Mon, 27 Nov 2023 23:56:05 +0200
Subject: [PATCH 05/24] replace jhiTranslate with i18n id
---
.../account/settings/settings.component.html | 60 ++++++++-----------
1 file changed, 26 insertions(+), 34 deletions(-)
diff --git a/ui/src/app/account/settings/settings.component.html b/ui/src/app/account/settings/settings.component.html
index ab3d07a70..45e255046 100644
--- a/ui/src/app/account/settings/settings.component.html
+++ b/ui/src/app/account/settings/settings.component.html
@@ -1,10 +1,10 @@
-
Personal details
+
Personal details
-
+
Settings saved!
@@ -17,7 +17,7 @@
Personal de
novalidate
>
- First Name
@@ -39,7 +39,7 @@
Personal de
class="form-text text-danger"
*ngIf="(settingsForm.get('firstName')?.errors)!['required']"
i18n
- jhiTranslate="settings.messages.validate.firstname.required.string"
+ i18n="@@settings.messages.validate.firstname.required.string"
>
Your first name is required.
@@ -47,7 +47,7 @@ Personal de
class="form-text text-danger"
*ngIf="(settingsForm.get('firstName')?.errors)!['minlength']"
i18n
- jhiTranslate="settings.messages.validate.firstname.minlength.string"
+ i18n="@@settings.messages.validate.firstname.minlength.string"
>
Your first name is required to be at least 1 character.
@@ -55,14 +55,14 @@ Personal de
class="form-text text-danger"
*ngIf="(settingsForm.get('firstName')?.errors)!['maxlength']"
i18n
- jhiTranslate="settings.messages.validate.firstname.maxlength.string"
+ i18n="@@settings.messages.validate.firstname.maxlength.string"
>
Your first name cannot be longer than 50 characters.
- Last Name
@@ -85,7 +85,7 @@
Personal de
class="form-text text-danger"
*ngIf="(settingsForm.get('lastName')?.errors)!['required']"
i18n
- jhiTranslate="settings.messages.validate.lastname.required.string"
+ i18n="@@settings.messages.validate.lastname.required.string"
>
Your last name is required.
@@ -93,7 +93,7 @@ Personal de
class="form-text text-danger"
*ngIf="(settingsForm.get('lastName')?.errors)!['minlength']"
i18n
- jhiTranslate="settings.messages.validate.lastname.minlength.string"
+ i18n="@@settings.messages.validate.lastname.minlength.string"
>
Your last name is required to be at least 1 character.
@@ -101,14 +101,14 @@ Personal de
class="form-text text-danger"
*ngIf="(settingsForm.get('lastName')?.errors)!['maxlength']"
i18n
- jhiTranslate="settings.messages.validate.lastname.maxlength.string"
+ i18n="@@settings.messages.validate.lastname.maxlength.string"
>
Your last name cannot be longer than 50 characters.
- Email
+ Email
Personal de
/>