Skip to content

Commit 4230720

Browse files
committed
PD-5748 Localized country names
1 parent 30154fa commit 4230720

5 files changed

Lines changed: 389 additions & 124 deletions

File tree

src/assets/print-view/fetch-orcid.js

Lines changed: 266 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,271 @@ const STRINGS = {
5959
relFundedBy: $localize`:@@printView.relFundedBy:Funded by`,
6060
}
6161

62+
// Localized country names keyed by ISO 3166-1 alpha-2 code.
63+
// Mirrors `getCountryCodes` in
64+
// src/app/core/record-countries/record-countries.service.ts so the print view
65+
// can show a localized country name instead of the raw country code.
66+
// Values are replaced per-locale by the Angular localize pipeline at build time.
67+
const COUNTRY_NAMES = {
68+
AF: $localize`:@@share.af:Afghanistan`,
69+
AL: $localize`:@@share.AL:Albania`,
70+
DZ: $localize`:@@share.DZ:Algeria`,
71+
AS: $localize`:@@share.AS:American Samoa`,
72+
AD: $localize`:@@share.AD:Andorra`,
73+
AO: $localize`:@@share.AO:Angola`,
74+
AI: $localize`:@@share.AI:Anguilla`,
75+
AQ: $localize`:@@share.AQ:Antarctica`,
76+
AG: $localize`:@@share.AG:Antigua and Barbuda`,
77+
AR: $localize`:@@share.AR:Argentina`,
78+
AM: $localize`:@@share.AM:Armenia`,
79+
AW: $localize`:@@share.AW:Aruba`,
80+
AU: $localize`:@@share.AU:Australia`,
81+
AT: $localize`:@@share.AT:Austria`,
82+
AZ: $localize`:@@share.AZ:Azerbaijan`,
83+
BS: $localize`:@@share.BS:Bahamas`,
84+
BH: $localize`:@@share.BH:Bahrain`,
85+
BD: $localize`:@@share.BD:Bangladesh`,
86+
BB: $localize`:@@share.BB:Barbados`,
87+
BY: $localize`:@@share.BY:Belarus`,
88+
BE: $localize`:@@share.BE:Belgium`,
89+
BZ: $localize`:@@share.BZ:Belize`,
90+
BJ: $localize`:@@share.BJ:Benin`,
91+
BM: $localize`:@@share.BM:Bermuda`,
92+
BT: $localize`:@@share.BT:Bhutan`,
93+
BO: $localize`:@@share.BO:Bolivia`,
94+
BA: $localize`:@@share.BA:Bosnia and Herzegovina`,
95+
BW: $localize`:@@share.BW:Botswana`,
96+
BV: $localize`:@@share.BV:Bouvet Island`,
97+
BR: $localize`:@@share.BR:Brazil`,
98+
BQ: $localize`:@@share.BQ:British Antarctic Territory`,
99+
IO: $localize`:@@share.IO:British Indian Ocean Territory`,
100+
VG: $localize`:@@share.VG:British Virgin Islands`,
101+
BN: $localize`:@@share.BN:Brunei`,
102+
BG: $localize`:@@share.BG:Bulgaria`,
103+
BF: $localize`:@@share.BF:Burkina Faso`,
104+
BI: $localize`:@@share.BI:Burundi`,
105+
KH: $localize`:@@share.KH:Cambodia`,
106+
CM: $localize`:@@share.CM:Cameroon`,
107+
CA: $localize`:@@share.CA:Canada`,
108+
CV: $localize`:@@share.CV:Cape Verde`,
109+
KY: $localize`:@@share.KY:Cayman Islands`,
110+
CF: $localize`:@@share.CF:Central African Republic`,
111+
TD: $localize`:@@share.TD:Chad`,
112+
CL: $localize`:@@share.CL:Chile`,
113+
CN: $localize`:@@share.CN:China`,
114+
CX: $localize`:@@share.CX:Christmas Island`,
115+
CC: $localize`:@@share.CC:Cocos [Keeling] Islands`,
116+
CO: $localize`:@@share.CO:Colombia`,
117+
KM: $localize`:@@share.KM:Comoros`,
118+
CG: $localize`:@@share.CG:Congo - Brazzaville`,
119+
CD: $localize`:@@share.CD:Congo - Kinshasa`,
120+
CK: $localize`:@@share.CK:Cook Islands`,
121+
CR: $localize`:@@share.CR:Costa Rica`,
122+
HR: $localize`:@@share.HR:Croatia`,
123+
CU: $localize`:@@share.CU:Cuba`,
124+
CW: $localize`:@@share.CW:Curaçao`,
125+
CY: $localize`:@@share.CY:Cyprus`,
126+
CZ: $localize`:@@share.CZ:Czech Republic`,
127+
CI: $localize`:@@share.CI:Côte d'Ivoire`,
128+
DK: $localize`:@@share.DK:Denmark`,
129+
DJ: $localize`:@@share.DJ:Djibouti`,
130+
DM: $localize`:@@share.DM:Dominica`,
131+
DO: $localize`:@@share.DO:Dominican Republic`,
132+
EC: $localize`:@@share.EC:Ecuador`,
133+
EG: $localize`:@@share.EG:Egypt`,
134+
SV: $localize`:@@share.SV:El Salvador`,
135+
GQ: $localize`:@@share.GQ:Equatorial Guinea`,
136+
ER: $localize`:@@share.ER:Eritrea`,
137+
EE: $localize`:@@share.EE:Estonia`,
138+
ET: $localize`:@@share.ET:Ethiopia`,
139+
FK: $localize`:@@share.FK:Falkland Islands`,
140+
FO: $localize`:@@share.FO:Faroe Islands`,
141+
FJ: $localize`:@@share.FJ:Fiji`,
142+
FI: $localize`:@@share.FI:Finland`,
143+
FR: $localize`:@@share.FR:France`,
144+
GF: $localize`:@@share.GF:French Guiana`,
145+
PF: $localize`:@@share.PF:French Polynesia`,
146+
TF: $localize`:@@share.TF:French Southern Territories`,
147+
GA: $localize`:@@share.GA:Gabon`,
148+
GM: $localize`:@@share.GM:Gambia`,
149+
GE: $localize`:@@share.GE:Georgia`,
150+
DE: $localize`:@@share.DE:Germany`,
151+
GH: $localize`:@@share.GH:Ghana`,
152+
GI: $localize`:@@share.GI:Gibraltar`,
153+
GR: $localize`:@@share.GR:Greece`,
154+
GL: $localize`:@@share.GL:Greenland`,
155+
GD: $localize`:@@share.GD:Grenada`,
156+
GP: $localize`:@@share.GP:Guadeloupe`,
157+
GU: $localize`:@@share.GU:Guam`,
158+
GT: $localize`:@@share.GT:Guatemala`,
159+
GG: $localize`:@@share.GG:Guernsey`,
160+
GN: $localize`:@@share.GN:Guinea`,
161+
GW: $localize`:@@share.GW:Guinea-Bissau`,
162+
GY: $localize`:@@share.GY:Guyana`,
163+
HT: $localize`:@@share.HT:Haiti`,
164+
HM: $localize`:@@share.HM:Heard Island and McDonald Islands`,
165+
HN: $localize`:@@share.HN:Honduras`,
166+
HK: $localize`:@@share.HK:Hong Kong SAR China`,
167+
HU: $localize`:@@share.HU:Hungary`,
168+
IS: $localize`:@@share.IS:Iceland`,
169+
IN: $localize`:@@share.IN:India`,
170+
ID: $localize`:@@share.ID:Indonesia`,
171+
IR: $localize`:@@share.IR:Iran`,
172+
IQ: $localize`:@@share.IQ:Iraq`,
173+
IE: $localize`:@@share.IE:Ireland`,
174+
IM: $localize`:@@share.IM:Isle of Man`,
175+
IL: $localize`:@@share.IL:Israel`,
176+
IT: $localize`:@@share.IT:Italy`,
177+
JM: $localize`:@@share.JM:Jamaica`,
178+
JP: $localize`:@@share.JP:Japan`,
179+
JE: $localize`:@@share.JE:Jersey`,
180+
JO: $localize`:@@share.JO:Jordan`,
181+
KZ: $localize`:@@share.KZ:Kazakhstan`,
182+
KE: $localize`:@@share.KE:Kenya`,
183+
KI: $localize`:@@share.KI:Kiribati`,
184+
XK: $localize`:@@share.XK:Kosovo`,
185+
KW: $localize`:@@share.KW:Kuwait`,
186+
KG: $localize`:@@share.KG:Kyrgyzstan`,
187+
LA: $localize`:@@share.LA:Laos`,
188+
LV: $localize`:@@share.LV:Latvia`,
189+
LB: $localize`:@@share.LB:Lebanon`,
190+
LS: $localize`:@@share.LS:Lesotho`,
191+
LR: $localize`:@@share.LR:Liberia`,
192+
LY: $localize`:@@share.LY:Libya`,
193+
LI: $localize`:@@share.LI:Liechtenstein`,
194+
LT: $localize`:@@share.LT:Lithuania`,
195+
LU: $localize`:@@share.LU:Luxembourg`,
196+
MO: $localize`:@@share.MO:Macau SAR China`,
197+
MG: $localize`:@@share.MG:Madagascar`,
198+
MW: $localize`:@@share.MW:Malawi`,
199+
MY: $localize`:@@share.MY:Malaysia`,
200+
MV: $localize`:@@share.MV:Maldives`,
201+
ML: $localize`:@@share.ML:Mali`,
202+
MT: $localize`:@@share.MT:Malta`,
203+
MH: $localize`:@@share.MH:Marshall Islands`,
204+
MQ: $localize`:@@share.MQ:Martinique`,
205+
MR: $localize`:@@share.MR:Mauritania`,
206+
MU: $localize`:@@share.MU:Mauritius`,
207+
YT: $localize`:@@share.YT:Mayotte`,
208+
MX: $localize`:@@share.MX:Mexico`,
209+
FM: $localize`:@@share.FM:Micronesia`,
210+
MD: $localize`:@@share.MD:Moldova`,
211+
MC: $localize`:@@share.MC:Monaco`,
212+
MN: $localize`:@@share.MN:Mongolia`,
213+
ME: $localize`:@@share.ME:Montenegro`,
214+
MS: $localize`:@@share.MS:Montserrat`,
215+
MA: $localize`:@@share.MA:Morocco`,
216+
MZ: $localize`:@@share.MZ:Mozambique`,
217+
MM: $localize`:@@share.MM:Myanmar [Burma]`,
218+
NA: $localize`:@@share.NA:Namibia`,
219+
NR: $localize`:@@share.NR:Nauru`,
220+
NP: $localize`:@@share.NP:Nepal`,
221+
NL: $localize`:@@share.NL:Netherlands`,
222+
NC: $localize`:@@share.NC:New Caledonia`,
223+
NZ: $localize`:@@share.NZ:New Zealand`,
224+
NI: $localize`:@@share.NI:Nicaragua`,
225+
NE: $localize`:@@share.NE:Niger`,
226+
NG: $localize`:@@share.NG:Nigeria`,
227+
NU: $localize`:@@share.NU:Niue`,
228+
NF: $localize`:@@share.NF:Norfolk Island`,
229+
KP: $localize`:@@share.KP:North Korea`,
230+
MK: $localize`:@@share.MK:North Macedonia`,
231+
MP: $localize`:@@share.MP:Northern Mariana Islands`,
232+
NO: $localize`:@@share.NO:Norway`,
233+
OM: $localize`:@@share.OM:Oman`,
234+
PK: $localize`:@@share.PK:Pakistan`,
235+
PW: $localize`:@@share.PW:Palau`,
236+
PS: $localize`:@@share.PS:Palestinian Territories`,
237+
PA: $localize`:@@share.PA:Panama`,
238+
PG: $localize`:@@share.PG:Papua New Guinea`,
239+
PY: $localize`:@@share.PY:Paraguay`,
240+
PE: $localize`:@@share.PE:Peru`,
241+
PH: $localize`:@@share.PH:Philippines`,
242+
PN: $localize`:@@share.PN:Pitcairn Islands`,
243+
PL: $localize`:@@share.PL:Poland`,
244+
PT: $localize`:@@share.PT:Portugal`,
245+
PR: $localize`:@@share.PR:Puerto Rico`,
246+
QA: $localize`:@@share.QA:Qatar`,
247+
RO: $localize`:@@share.RO:Romania`,
248+
RU: $localize`:@@share.RU:Russia`,
249+
RW: $localize`:@@share.RW:Rwanda`,
250+
RE: $localize`:@@share.RE:Réunion`,
251+
BL: $localize`:@@share.BL:Saint Barthélemy`,
252+
SH: $localize`:@@share.SH:Saint Helena`,
253+
KN: $localize`:@@share.KN:Saint Kitts and Nevis`,
254+
LC: $localize`:@@share.LC:Saint Lucia`,
255+
MF: $localize`:@@share.MF:Saint Martin`,
256+
PM: $localize`:@@share.PM:Saint Pierre and Miquelon`,
257+
VC: $localize`:@@share.VC:Saint Vincent and the Grenadines`,
258+
WS: $localize`:@@share.WS:Samoa`,
259+
SM: $localize`:@@share.SM:San Marino`,
260+
SA: $localize`:@@share.SA:Saudi Arabia`,
261+
SN: $localize`:@@share.SN:Senegal`,
262+
RS: $localize`:@@share.RS:Serbia`,
263+
SC: $localize`:@@share.SC:Seychelles`,
264+
SL: $localize`:@@share.SL:Sierra Leone`,
265+
SG: $localize`:@@share.SG:Singapore`,
266+
SX: $localize`:@@share.SX:Sint Maarten (Dutch Part)`,
267+
SK: $localize`:@@share.SK:Slovakia`,
268+
SI: $localize`:@@share.SI:Slovenia`,
269+
SB: $localize`:@@share.SB:Solomon Islands`,
270+
SO: $localize`:@@share.SO:Somalia`,
271+
ZA: $localize`:@@share.ZA:South Africa`,
272+
GS: $localize`:@@share.GS:South Georgia and the South Sandwich Islands`,
273+
KR: $localize`:@@share.KR:South Korea`,
274+
SS: $localize`:@@share.SS:South Sudan`,
275+
ES: $localize`:@@share.ES:Spain`,
276+
LK: $localize`:@@share.LK:Sri Lanka`,
277+
SD: $localize`:@@share.SD:Sudan`,
278+
SR: $localize`:@@share.SR:Suriname`,
279+
SJ: $localize`:@@share.SJ:Svalbard and Jan Mayen`,
280+
SZ: $localize`:@@share.SZ:Swaziland`,
281+
SE: $localize`:@@share.SE:Sweden`,
282+
CH: $localize`:@@share.CH:Switzerland`,
283+
SY: $localize`:@@share.SY:Syria`,
284+
ST: $localize`:@@share.ST:São Tomé and Príncipe`,
285+
TW: $localize`:@@share.TW:Taiwan`,
286+
TJ: $localize`:@@share.TJ:Tajikistan`,
287+
TZ: $localize`:@@share.TZ:Tanzania`,
288+
TH: $localize`:@@share.TH:Thailand`,
289+
TL: $localize`:@@share.TL:Timor-Leste`,
290+
TG: $localize`:@@share.TG:Togo`,
291+
TK: $localize`:@@share.TK:Tokelau`,
292+
TO: $localize`:@@share.TO:Tonga`,
293+
TT: $localize`:@@share.TT:Trinidad and Tobago`,
294+
TN: $localize`:@@share.TN:Tunisia`,
295+
TR: $localize`:@@share.TR:Türkiye`,
296+
TM: $localize`:@@share.TM:Turkmenistan`,
297+
TC: $localize`:@@share.TC:Turks and Caicos Islands`,
298+
TV: $localize`:@@share.TV:Tuvalu`,
299+
UM: $localize`:@@share.UM:U.S. Minor Outlying Islands`,
300+
VI: $localize`:@@share.VI:U.S. Virgin Islands`,
301+
UG: $localize`:@@share.UG:Uganda`,
302+
UA: $localize`:@@share.UA:Ukraine`,
303+
AE: $localize`:@@share.AE:United Arab Emirates`,
304+
GB: $localize`:@@share.GB:United Kingdom`,
305+
US: $localize`:@@share.US:United States`,
306+
UY: $localize`:@@share.UY:Uruguay`,
307+
UZ: $localize`:@@share.UZ:Uzbekistan`,
308+
VU: $localize`:@@share.VU:Vanuatu`,
309+
VA: $localize`:@@share.VA:Vatican City`,
310+
VE: $localize`:@@share.VE:Venezuela`,
311+
VN: $localize`:@@share.VN:Vietnam`,
312+
WF: $localize`:@@share.WF:Wallis and Futuna`,
313+
EH: $localize`:@@share.EH:Western Sahara`,
314+
YE: $localize`:@@share.YE:Yemen`,
315+
ZM: $localize`:@@share.ZM:Zambia`,
316+
ZW: $localize`:@@share.ZW:Zimbabwe`,
317+
AX: $localize`:@@share.AX:Åland Islands`,
318+
}
319+
320+
// Returns the localized country name for an ISO 3166-1 alpha-2 code.
321+
// Falls back to the original value (e.g. the raw code) when no match is found.
322+
function localizedCountryName(countryCode) {
323+
const code = (countryCode || '').trim().toUpperCase()
324+
return COUNTRY_NAMES[code] || countryCode
325+
}
326+
62327
const ORCID_REGEX = /\b\d{4}-\d{4}-\d{4}-\d{3}[\dX]\b/i
63328

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

385650
const countries = jsonList(person?.addresses?.address)
386651
.map((a) => {
387-
return jsonText(a?.country)
652+
return localizedCountryName(jsonText(a?.country))
388653
})
389654
.filter(Boolean)
390655

0 commit comments

Comments
 (0)