Skip to content

Commit d4523c9

Browse files
Merge remote-tracking branch 'origin/main' into transifex
2 parents 5b27bc9 + 9459fce commit d4523c9

32 files changed

Lines changed: 3468 additions & 1583 deletions

CHANGELOG.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,43 @@
1+
## v2.135.6 - 2026-06-12
2+
3+
[Full Changelog](https://github.com/ORCID/orcid-angular/compare/v2.135.5...v2.135.6)
4+
5+
- [#2852](https://github.com/ORCID/orcid-angular/pull/2852): PD-5670
6+
7+
## v2.135.5 - 2026-06-12
8+
9+
[Full Changelog](https://github.com/ORCID/orcid-angular/compare/v2.135.4...v2.135.5)
10+
11+
- [#2850](https://github.com/ORCID/orcid-angular/pull/2850): PD-5670
12+
13+
## v2.135.4 - 2026-06-12
14+
15+
[Full Changelog](https://github.com/ORCID/orcid-angular/compare/v2.135.3...v2.135.4)
16+
17+
## v2.135.3 - 2026-06-11
18+
19+
[Full Changelog](https://github.com/ORCID/orcid-angular/compare/v2.135.2...v2.135.3)
20+
21+
## v2.135.2 - 2026-06-05
22+
23+
[Full Changelog](https://github.com/ORCID/orcid-angular/compare/v2.135.1...v2.135.2)
24+
25+
- [#2846](https://github.com/ORCID/orcid-angular/pull/2846): PD-5541
26+
27+
## v2.135.1 - 2026-06-04
28+
29+
[Full Changelog](https://github.com/ORCID/orcid-angular/compare/v2.135.0...v2.135.1)
30+
31+
## v2.135.0 - 2026-06-01
32+
33+
[Full Changelog](https://github.com/ORCID/orcid-angular/compare/v2.134.8...v2.135.0)
34+
35+
## v2.134.8 - 2026-06-01
36+
37+
[Full Changelog](https://github.com/ORCID/orcid-angular/compare/v2.134.7...v2.134.8)
38+
39+
- [#2841](https://github.com/ORCID/orcid-angular/pull/2841): Transifex: update translations
40+
141
## v2.134.7 - 2026-05-29
242

343
[Full Changelog](https://github.com/ORCID/orcid-angular/compare/v2.134.6...v2.134.7)

SUPPORTED_BROWSERS.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
| Browser | Minimum version |
66
| ---------------- | --------------- |
77
| Android WebView | 145 or newer |
8-
| Apple Safari | 17 or newer |
9-
| Google Chrome | 119 or newer |
10-
| Microsoft Edge | 119 or newer |
11-
| Mozilla Firefox | 119 or newer |
12-
| Opera | 105 or newer |
8+
| Apple Safari | 17.2 or newer |
9+
| Google Chrome | 120 or newer |
10+
| Microsoft Edge | 120 or newer |
11+
| Mozilla Firefox | 120 or newer |
12+
| Opera | 106 or newer |
1313
| Opera Mobile | 80 or newer |
1414
| Samsung Internet | 25 or newer |

angular.json

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,12 +117,18 @@
117117
{
118118
"glob": "**/*",
119119
"input": "src/assets/",
120-
"ignore": ["fonts/**/*", "**/*.scss"],
120+
"ignore": [
121+
"fonts/**/*",
122+
"**/*.scss",
123+
"**/*.spec.ts",
124+
"print-view/**"
125+
],
121126
"output": "/assets/"
122127
},
123128
{
124129
"glob": "**/*",
125130
"input": "src/assets/print-view/",
131+
"ignore": ["fetch-orcid.js", "**/*.spec.ts"],
126132
"output": "/print-view/"
127133
},
128134
{
@@ -138,6 +144,7 @@
138144
"projects/orcid-tokens/tokens.css",
139145
"src/assets/scss/orcid-ui-theme.scss",
140146
"src/assets/scss/orcid.scss",
147+
"node_modules/intl-tel-input/dist/css/intlTelInput.css",
141148
"src/styles.scss",
142149
"src/assets/scss/grid.scss"
143150
],
@@ -424,7 +431,8 @@
424431
],
425432
"scripts": [
426433
"/scripts/environment.runtime.js",
427-
"/scripts/onetrust.runtime.js"
434+
"/scripts/onetrust.runtime.js",
435+
"src/assets/print-view/fetch-orcid.js"
428436
],
429437
"assets": ["src/favicon.ico", "src/assets", "src/manifest.json"],
430438
"sourceMap": true

package.json

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -39,19 +39,20 @@
3939
},
4040
"private": true,
4141
"dependencies": {
42-
"@angular/animations": "^20.1.6",
43-
"@angular/cdk": "^20.1.5",
44-
"@angular/common": "^20.1.6",
45-
"@angular/compiler": "^20.3.18",
46-
"@angular/core": "^20.3.16",
42+
"@angular/animations": "20.1.6",
43+
"@angular/cdk": "20.1.6",
44+
"@angular/common": "20.1.6",
45+
"@angular/compiler": "20.1.6",
46+
"@angular/core": "20.1.6",
4747
"@angular/elements": "20.1.6",
48-
"@angular/forms": "^20.1.6",
49-
"@angular/localize": "^20.1.6",
50-
"@angular/material": "^20.1.5",
51-
"@angular/platform-browser": "^20.1.6",
52-
"@angular/platform-browser-dynamic": "^20.1.6",
53-
"@angular/router": "^20.1.6",
54-
"@angular/service-worker": "^20.1.6",
48+
"@angular/forms": "20.1.6",
49+
"@angular/localize": "20.1.6",
50+
"@angular/material": "20.1.6",
51+
"@angular/platform-browser": "20.1.6",
52+
"@angular/platform-browser-dynamic": "20.1.6",
53+
"@angular/router": "20.1.6",
54+
"@angular/service-worker": "20.1.6",
55+
"@intl-tel-input/angular": "^29.0.1",
5556
"@orcid/bibtex-parse-js": "0.0.25",
5657
"@tailwindcss/postcss": "^4.1.18",
5758
"bowser": "^2.11.0",
@@ -62,6 +63,7 @@
6263
"gulp-clean": "^0.4.0",
6364
"gulp-flatten": "^0.4.0",
6465
"helphero": "^3.6.0",
66+
"intl-tel-input": "^29.0.1",
6567
"karma-jasmine-html-reporter": "^1.7.0",
6668
"lodash": "^4.18.1",
6769
"ngx-cookie-service": "^20",
@@ -76,9 +78,9 @@
7678
"zone.js": "~0.15.1"
7779
},
7880
"devDependencies": {
79-
"@angular-devkit/build-angular": "20.1.5",
80-
"@angular/build": "^20.1.5",
81-
"@angular/cli": "^20.1.5",
81+
"@angular-devkit/build-angular": "20.1.6",
82+
"@angular/build": "20.1.6",
83+
"@angular/cli": "20.1.6",
8284
"@angular/compiler-cli": "20.1.6",
8385
"@angular/language-service": "20.1.6",
8486
"@types/jasmine": "~3.6.0",

scripts/moveToShareFolder.postbuild.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ const del = require('del')
55

66
export async function createShareAssetsFolder() {
77
await new Promise((resolve, reject) => {
8-
src(['./dist/*/*.{js,woff,woff2,jpg,svg,txt,css}', '!./dist/*/assets/*'])
8+
src([
9+
'./dist/*/*.{js,woff,woff2,jpg,jpeg,png,svg,webp,txt,css}',
10+
'!./dist/*/assets/*',
11+
])
912
.pipe(clean({ force: true }))
1013
.pipe(flatten())
1114
.pipe(dest('./dist/share-assets/', { overwrite: true }))

scripts/normalize-xlf.prebuild.ts

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,107 @@ function normalizeXlf12Sources(path: string) {
8585
}
8686
})
8787

88+
// Inject @@printView.* source-only trans-units so the test-language
89+
// generator (generateTestingLanguages) will also stamp X / LR / RL for
90+
// these strings, and so Transifex can discover them for real locales.
91+
// We use a stable @@-prefixed id so $localize can match by explicit id.
92+
const PRINT_VIEW_UNITS = [
93+
'printView.unnamedProfile',
94+
'printView.orcidIdAlt',
95+
'printView.biography',
96+
'printView.personalInformation',
97+
'printView.emails',
98+
'printView.websitesSocialLinks',
99+
'printView.otherIds',
100+
'printView.keywords',
101+
'printView.countries',
102+
'printView.activities',
103+
'printView.employments',
104+
'printView.educationAndQualifications',
105+
'printView.professionalActivities',
106+
'printView.fundings',
107+
'printView.researchResources',
108+
'printView.works',
109+
'printView.organization',
110+
'printView.organizationAddress',
111+
'printView.startDate',
112+
'printView.endDate',
113+
'printView.publicationDate',
114+
'printView.journal',
115+
'printView.roleTitle',
116+
'printView.department',
117+
'printView.type',
118+
'printView.url',
119+
'printView.untitled',
120+
'printView.identifier',
121+
'printView.enterOrcidId',
122+
'printView.orcidIdHelp',
123+
'printView.loadProfile',
124+
'printView.invalidOrcidId',
125+
'printView.loadingRecord',
126+
'printView.recordNotFound',
127+
'printView.redirectingToPrimary',
128+
'printView.fetchFailed',
129+
'printView.couldNotLoad',
130+
'printView.activityGroupHeading',
131+
'printView.peerReviewHeading',
132+
]
133+
const PRINT_VIEW_SOURCES: Record<string, string> = {
134+
'printView.unnamedProfile': 'Unnamed ORCID profile',
135+
'printView.orcidIdAlt': 'ORCID iD',
136+
'printView.biography': 'Biography',
137+
'printView.personalInformation': 'Personal information',
138+
'printView.emails': 'Emails',
139+
'printView.websitesSocialLinks': 'Websites & social links',
140+
'printView.otherIds': 'Other IDs',
141+
'printView.keywords': 'Keywords',
142+
'printView.countries': 'Countries',
143+
'printView.activities': 'Activities',
144+
'printView.employments': 'Employments',
145+
'printView.educationAndQualifications': 'Education and qualifications',
146+
'printView.professionalActivities': 'Professional activities',
147+
'printView.fundings': 'Fundings',
148+
'printView.researchResources': 'Research Resources',
149+
'printView.works': 'Works',
150+
'printView.organization': 'Organization',
151+
'printView.organizationAddress': 'Organization address',
152+
'printView.startDate': 'Start date',
153+
'printView.endDate': 'End date',
154+
'printView.publicationDate': 'Publication date',
155+
'printView.journal': 'Journal',
156+
'printView.roleTitle': 'Role title',
157+
'printView.department': 'Department',
158+
'printView.type': 'Type',
159+
'printView.url': 'URL',
160+
'printView.untitled': 'Untitled',
161+
'printView.identifier': 'Identifier',
162+
'printView.enterOrcidId': 'Enter an ORCID iD',
163+
'printView.orcidIdHelp':
164+
'Add an ORCID iD to the URL or use the form below.',
165+
'printView.loadProfile': 'Load profile',
166+
'printView.invalidOrcidId':
167+
'Enter a valid ORCID iD (format: 0000-0000-0000-0000).',
168+
'printView.loadingRecord': 'Loading ORCID record...',
169+
'printView.recordNotFound':
170+
'Record data was not found in ORCID response.',
171+
'printView.redirectingToPrimary':
172+
'Redirecting to primary ORCID record\u2026',
173+
'printView.fetchFailed': 'Failed to fetch ORCID record',
174+
'printView.couldNotLoad': 'Could not load',
175+
'printView.activityGroupHeading': 'Activity group heading',
176+
'printView.peerReviewHeading': 'Peer review heading',
177+
}
178+
const existingIds = new Set(transUnits.map((tu: any) => tu?.$?.id))
179+
const printViewBody = fileNode?.body?.[0]
180+
PRINT_VIEW_UNITS.forEach((id) => {
181+
if (!existingIds.has(id)) {
182+
printViewBody['trans-unit'].push({
183+
$: { id, datatype: 'html', resname: id },
184+
source: [PRINT_VIEW_SOURCES[id] ?? id],
185+
})
186+
}
187+
})
188+
88189
writeXlf(path, data)
89190
generateTestingLanguages(data)
90191
})

scripts/postbuild.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import { renameSync, readFileSync } from 'fs'
1010
import { createShareAssetsFolder } from './moveToShareFolder.postbuild'
1111
import { addOneTrustNotAutoBlockForAppScripts } from './onetrust.postbuild'
1212
import { newRelic } from './new-relic.postbuild'
13+
import { localizeAndWritePrintViewScript } from './print-view-localize.postbuild'
1314

1415
const glob = require('glob')
1516
// Run updates on index.html files across languages
@@ -38,6 +39,11 @@ glob.sync('./dist/*/*.js').forEach((file) => {
3839
replacedHash[hash] = true
3940
})
4041

42+
// Translate and write the print-view script for every locale using
43+
// @angular/localize/tools so $localize calls are replaced with the
44+
// correct locale's strings at build time.
45+
localizeAndWritePrintViewScript()
46+
4147
// Replace all the `runtime*.js` references to match updated JS values with language code
4248
glob.sync('./dist/*/runtime*.js').forEach((file) => {
4349
const options = getOptionsObjet(file)

0 commit comments

Comments
 (0)