Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
267 changes: 266 additions & 1 deletion src/assets/print-view/fetch-orcid.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,271 @@ const STRINGS = {
relFundedBy: $localize`:@@printView.relFundedBy:Funded by`,
}

// Localized country names keyed by ISO 3166-1 alpha-2 code.
// Mirrors `getCountryCodes` in
// src/app/core/record-countries/record-countries.service.ts so the print view
// can show a localized country name instead of the raw country code.
// Values are replaced per-locale by the Angular localize pipeline at build time.
const COUNTRY_NAMES = {
AF: $localize`:@@share.af:Afghanistan`,
AL: $localize`:@@share.AL:Albania`,
DZ: $localize`:@@share.DZ:Algeria`,
AS: $localize`:@@share.AS:American Samoa`,
AD: $localize`:@@share.AD:Andorra`,
AO: $localize`:@@share.AO:Angola`,
AI: $localize`:@@share.AI:Anguilla`,
AQ: $localize`:@@share.AQ:Antarctica`,
AG: $localize`:@@share.AG:Antigua and Barbuda`,
AR: $localize`:@@share.AR:Argentina`,
AM: $localize`:@@share.AM:Armenia`,
AW: $localize`:@@share.AW:Aruba`,
AU: $localize`:@@share.AU:Australia`,
AT: $localize`:@@share.AT:Austria`,
AZ: $localize`:@@share.AZ:Azerbaijan`,
BS: $localize`:@@share.BS:Bahamas`,
BH: $localize`:@@share.BH:Bahrain`,
BD: $localize`:@@share.BD:Bangladesh`,
BB: $localize`:@@share.BB:Barbados`,
BY: $localize`:@@share.BY:Belarus`,
BE: $localize`:@@share.BE:Belgium`,
BZ: $localize`:@@share.BZ:Belize`,
BJ: $localize`:@@share.BJ:Benin`,
BM: $localize`:@@share.BM:Bermuda`,
BT: $localize`:@@share.BT:Bhutan`,
BO: $localize`:@@share.BO:Bolivia`,
BA: $localize`:@@share.BA:Bosnia and Herzegovina`,
BW: $localize`:@@share.BW:Botswana`,
BV: $localize`:@@share.BV:Bouvet Island`,
BR: $localize`:@@share.BR:Brazil`,
BQ: $localize`:@@share.BQ:British Antarctic Territory`,
IO: $localize`:@@share.IO:British Indian Ocean Territory`,
VG: $localize`:@@share.VG:British Virgin Islands`,
BN: $localize`:@@share.BN:Brunei`,
BG: $localize`:@@share.BG:Bulgaria`,
BF: $localize`:@@share.BF:Burkina Faso`,
BI: $localize`:@@share.BI:Burundi`,
KH: $localize`:@@share.KH:Cambodia`,
CM: $localize`:@@share.CM:Cameroon`,
CA: $localize`:@@share.CA:Canada`,
CV: $localize`:@@share.CV:Cape Verde`,
KY: $localize`:@@share.KY:Cayman Islands`,
CF: $localize`:@@share.CF:Central African Republic`,
TD: $localize`:@@share.TD:Chad`,
CL: $localize`:@@share.CL:Chile`,
CN: $localize`:@@share.CN:China`,
CX: $localize`:@@share.CX:Christmas Island`,
CC: $localize`:@@share.CC:Cocos [Keeling] Islands`,
CO: $localize`:@@share.CO:Colombia`,
KM: $localize`:@@share.KM:Comoros`,
CG: $localize`:@@share.CG:Congo - Brazzaville`,
CD: $localize`:@@share.CD:Congo - Kinshasa`,
CK: $localize`:@@share.CK:Cook Islands`,
CR: $localize`:@@share.CR:Costa Rica`,
HR: $localize`:@@share.HR:Croatia`,
CU: $localize`:@@share.CU:Cuba`,
CW: $localize`:@@share.CW:Curaçao`,
CY: $localize`:@@share.CY:Cyprus`,
CZ: $localize`:@@share.CZ:Czech Republic`,
CI: $localize`:@@share.CI:Côte d'Ivoire`,
DK: $localize`:@@share.DK:Denmark`,
DJ: $localize`:@@share.DJ:Djibouti`,
DM: $localize`:@@share.DM:Dominica`,
DO: $localize`:@@share.DO:Dominican Republic`,
EC: $localize`:@@share.EC:Ecuador`,
EG: $localize`:@@share.EG:Egypt`,
SV: $localize`:@@share.SV:El Salvador`,
GQ: $localize`:@@share.GQ:Equatorial Guinea`,
ER: $localize`:@@share.ER:Eritrea`,
EE: $localize`:@@share.EE:Estonia`,
ET: $localize`:@@share.ET:Ethiopia`,
FK: $localize`:@@share.FK:Falkland Islands`,
FO: $localize`:@@share.FO:Faroe Islands`,
FJ: $localize`:@@share.FJ:Fiji`,
FI: $localize`:@@share.FI:Finland`,
FR: $localize`:@@share.FR:France`,
GF: $localize`:@@share.GF:French Guiana`,
PF: $localize`:@@share.PF:French Polynesia`,
TF: $localize`:@@share.TF:French Southern Territories`,
GA: $localize`:@@share.GA:Gabon`,
GM: $localize`:@@share.GM:Gambia`,
GE: $localize`:@@share.GE:Georgia`,
DE: $localize`:@@share.DE:Germany`,
GH: $localize`:@@share.GH:Ghana`,
GI: $localize`:@@share.GI:Gibraltar`,
GR: $localize`:@@share.GR:Greece`,
GL: $localize`:@@share.GL:Greenland`,
GD: $localize`:@@share.GD:Grenada`,
GP: $localize`:@@share.GP:Guadeloupe`,
GU: $localize`:@@share.GU:Guam`,
GT: $localize`:@@share.GT:Guatemala`,
GG: $localize`:@@share.GG:Guernsey`,
GN: $localize`:@@share.GN:Guinea`,
GW: $localize`:@@share.GW:Guinea-Bissau`,
GY: $localize`:@@share.GY:Guyana`,
HT: $localize`:@@share.HT:Haiti`,
HM: $localize`:@@share.HM:Heard Island and McDonald Islands`,
HN: $localize`:@@share.HN:Honduras`,
HK: $localize`:@@share.HK:Hong Kong SAR China`,
HU: $localize`:@@share.HU:Hungary`,
IS: $localize`:@@share.IS:Iceland`,
IN: $localize`:@@share.IN:India`,
ID: $localize`:@@share.ID:Indonesia`,
IR: $localize`:@@share.IR:Iran`,
IQ: $localize`:@@share.IQ:Iraq`,
IE: $localize`:@@share.IE:Ireland`,
IM: $localize`:@@share.IM:Isle of Man`,
IL: $localize`:@@share.IL:Israel`,
IT: $localize`:@@share.IT:Italy`,
JM: $localize`:@@share.JM:Jamaica`,
JP: $localize`:@@share.JP:Japan`,
JE: $localize`:@@share.JE:Jersey`,
JO: $localize`:@@share.JO:Jordan`,
KZ: $localize`:@@share.KZ:Kazakhstan`,
KE: $localize`:@@share.KE:Kenya`,
KI: $localize`:@@share.KI:Kiribati`,
XK: $localize`:@@share.XK:Kosovo`,
KW: $localize`:@@share.KW:Kuwait`,
KG: $localize`:@@share.KG:Kyrgyzstan`,
LA: $localize`:@@share.LA:Laos`,
LV: $localize`:@@share.LV:Latvia`,
LB: $localize`:@@share.LB:Lebanon`,
LS: $localize`:@@share.LS:Lesotho`,
LR: $localize`:@@share.LR:Liberia`,
LY: $localize`:@@share.LY:Libya`,
LI: $localize`:@@share.LI:Liechtenstein`,
LT: $localize`:@@share.LT:Lithuania`,
LU: $localize`:@@share.LU:Luxembourg`,
MO: $localize`:@@share.MO:Macau SAR China`,
MG: $localize`:@@share.MG:Madagascar`,
MW: $localize`:@@share.MW:Malawi`,
MY: $localize`:@@share.MY:Malaysia`,
MV: $localize`:@@share.MV:Maldives`,
ML: $localize`:@@share.ML:Mali`,
MT: $localize`:@@share.MT:Malta`,
MH: $localize`:@@share.MH:Marshall Islands`,
MQ: $localize`:@@share.MQ:Martinique`,
MR: $localize`:@@share.MR:Mauritania`,
MU: $localize`:@@share.MU:Mauritius`,
YT: $localize`:@@share.YT:Mayotte`,
MX: $localize`:@@share.MX:Mexico`,
FM: $localize`:@@share.FM:Micronesia`,
MD: $localize`:@@share.MD:Moldova`,
MC: $localize`:@@share.MC:Monaco`,
MN: $localize`:@@share.MN:Mongolia`,
ME: $localize`:@@share.ME:Montenegro`,
MS: $localize`:@@share.MS:Montserrat`,
MA: $localize`:@@share.MA:Morocco`,
MZ: $localize`:@@share.MZ:Mozambique`,
MM: $localize`:@@share.MM:Myanmar [Burma]`,
NA: $localize`:@@share.NA:Namibia`,
NR: $localize`:@@share.NR:Nauru`,
NP: $localize`:@@share.NP:Nepal`,
NL: $localize`:@@share.NL:Netherlands`,
NC: $localize`:@@share.NC:New Caledonia`,
NZ: $localize`:@@share.NZ:New Zealand`,
NI: $localize`:@@share.NI:Nicaragua`,
NE: $localize`:@@share.NE:Niger`,
NG: $localize`:@@share.NG:Nigeria`,
NU: $localize`:@@share.NU:Niue`,
NF: $localize`:@@share.NF:Norfolk Island`,
KP: $localize`:@@share.KP:North Korea`,
MK: $localize`:@@share.MK:North Macedonia`,
MP: $localize`:@@share.MP:Northern Mariana Islands`,
NO: $localize`:@@share.NO:Norway`,
OM: $localize`:@@share.OM:Oman`,
PK: $localize`:@@share.PK:Pakistan`,
PW: $localize`:@@share.PW:Palau`,
PS: $localize`:@@share.PS:Palestinian Territories`,
PA: $localize`:@@share.PA:Panama`,
PG: $localize`:@@share.PG:Papua New Guinea`,
PY: $localize`:@@share.PY:Paraguay`,
PE: $localize`:@@share.PE:Peru`,
PH: $localize`:@@share.PH:Philippines`,
PN: $localize`:@@share.PN:Pitcairn Islands`,
PL: $localize`:@@share.PL:Poland`,
PT: $localize`:@@share.PT:Portugal`,
PR: $localize`:@@share.PR:Puerto Rico`,
QA: $localize`:@@share.QA:Qatar`,
RO: $localize`:@@share.RO:Romania`,
RU: $localize`:@@share.RU:Russia`,
RW: $localize`:@@share.RW:Rwanda`,
RE: $localize`:@@share.RE:Réunion`,
BL: $localize`:@@share.BL:Saint Barthélemy`,
SH: $localize`:@@share.SH:Saint Helena`,
KN: $localize`:@@share.KN:Saint Kitts and Nevis`,
LC: $localize`:@@share.LC:Saint Lucia`,
MF: $localize`:@@share.MF:Saint Martin`,
PM: $localize`:@@share.PM:Saint Pierre and Miquelon`,
VC: $localize`:@@share.VC:Saint Vincent and the Grenadines`,
WS: $localize`:@@share.WS:Samoa`,
SM: $localize`:@@share.SM:San Marino`,
SA: $localize`:@@share.SA:Saudi Arabia`,
SN: $localize`:@@share.SN:Senegal`,
RS: $localize`:@@share.RS:Serbia`,
SC: $localize`:@@share.SC:Seychelles`,
SL: $localize`:@@share.SL:Sierra Leone`,
SG: $localize`:@@share.SG:Singapore`,
SX: $localize`:@@share.SX:Sint Maarten (Dutch Part)`,
SK: $localize`:@@share.SK:Slovakia`,
SI: $localize`:@@share.SI:Slovenia`,
SB: $localize`:@@share.SB:Solomon Islands`,
SO: $localize`:@@share.SO:Somalia`,
ZA: $localize`:@@share.ZA:South Africa`,
GS: $localize`:@@share.GS:South Georgia and the South Sandwich Islands`,
KR: $localize`:@@share.KR:South Korea`,
SS: $localize`:@@share.SS:South Sudan`,
ES: $localize`:@@share.ES:Spain`,
LK: $localize`:@@share.LK:Sri Lanka`,
SD: $localize`:@@share.SD:Sudan`,
SR: $localize`:@@share.SR:Suriname`,
SJ: $localize`:@@share.SJ:Svalbard and Jan Mayen`,
SZ: $localize`:@@share.SZ:Swaziland`,
SE: $localize`:@@share.SE:Sweden`,
CH: $localize`:@@share.CH:Switzerland`,
SY: $localize`:@@share.SY:Syria`,
ST: $localize`:@@share.ST:São Tomé and Príncipe`,
TW: $localize`:@@share.TW:Taiwan`,
TJ: $localize`:@@share.TJ:Tajikistan`,
TZ: $localize`:@@share.TZ:Tanzania`,
TH: $localize`:@@share.TH:Thailand`,
TL: $localize`:@@share.TL:Timor-Leste`,
TG: $localize`:@@share.TG:Togo`,
TK: $localize`:@@share.TK:Tokelau`,
TO: $localize`:@@share.TO:Tonga`,
TT: $localize`:@@share.TT:Trinidad and Tobago`,
TN: $localize`:@@share.TN:Tunisia`,
TR: $localize`:@@share.TR:Türkiye`,
TM: $localize`:@@share.TM:Turkmenistan`,
TC: $localize`:@@share.TC:Turks and Caicos Islands`,
TV: $localize`:@@share.TV:Tuvalu`,
UM: $localize`:@@share.UM:U.S. Minor Outlying Islands`,
VI: $localize`:@@share.VI:U.S. Virgin Islands`,
UG: $localize`:@@share.UG:Uganda`,
UA: $localize`:@@share.UA:Ukraine`,
AE: $localize`:@@share.AE:United Arab Emirates`,
GB: $localize`:@@share.GB:United Kingdom`,
US: $localize`:@@share.US:United States`,
UY: $localize`:@@share.UY:Uruguay`,
UZ: $localize`:@@share.UZ:Uzbekistan`,
VU: $localize`:@@share.VU:Vanuatu`,
VA: $localize`:@@share.VA:Vatican City`,
VE: $localize`:@@share.VE:Venezuela`,
VN: $localize`:@@share.VN:Vietnam`,
WF: $localize`:@@share.WF:Wallis and Futuna`,
EH: $localize`:@@share.EH:Western Sahara`,
YE: $localize`:@@share.YE:Yemen`,
ZM: $localize`:@@share.ZM:Zambia`,
ZW: $localize`:@@share.ZW:Zimbabwe`,
AX: $localize`:@@share.AX:Åland Islands`,
}

// Returns the localized country name for an ISO 3166-1 alpha-2 code.
// Falls back to the original value (e.g. the raw code) when no match is found.
function localizedCountryName(countryCode) {
const code = (countryCode || '').trim().toUpperCase()
return COUNTRY_NAMES[code] || countryCode
}

const ORCID_REGEX = /\b\d{4}-\d{4}-\d{4}-\d{3}[\dX]\b/i

const cvRoot = document.getElementById('cv-root')
Expand Down Expand Up @@ -384,7 +649,7 @@ function renderPersonalInfoFromJson(recordJson, container) {

const countries = jsonList(person?.addresses?.address)
.map((a) => {
return jsonText(a?.country)
return localizedCountryName(jsonText(a?.country))
})
.filter(Boolean)

Expand Down
Loading
Loading