Skip to content
This repository was archived by the owner on Apr 10, 2026. It is now read-only.

Commit 39f052d

Browse files
authored
Csmccarthy/add native names (#21)
* add native names, couple exports
1 parent a3480b8 commit 39f052d

File tree

3 files changed

+152
-10
lines changed

3 files changed

+152
-10
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"author": "Transcend Inc.",
33
"name": "@transcend-io/internationalization",
44
"description": "Internationalization configuration for the monorepo",
5-
"version": "1.7.2",
5+
"version": "1.7.3",
66
"homepage": "https://github.com/transcend-io/internationalization",
77
"repository": {
88
"type": "git",

src/enums.ts

Lines changed: 145 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -373,9 +373,9 @@ export const AWS_SUPPORTED_TRANSLATIONS = {
373373
} as const;
374374

375375
/** Union of all AWS translation keys */
376-
type AwsTranslationKey = keyof typeof AWS_SUPPORTED_TRANSLATIONS;
376+
export type AwsTranslationKey = keyof typeof AWS_SUPPORTED_TRANSLATIONS;
377377
/** Union of all AWS translation enum values */
378-
type AwsTranslationValue =
378+
export type AwsTranslationValue =
379379
(typeof AWS_SUPPORTED_TRANSLATIONS)[AwsTranslationKey];
380380

381381
/** These are the languages we could translate with AWS but don't currently */
@@ -490,7 +490,7 @@ export const LOCALE_TRANSLATION_MAP = {
490490
[LOCALE_KEY.TrTr]: TRANSCEND_SUPPORTED_TRANSLATIONS.Turkish,
491491
[LOCALE_KEY.UkUa]: TRANSCEND_SUPPORTED_TRANSLATIONS.Ukrainian,
492492
[LOCALE_KEY.ViVn]: TRANSCEND_SUPPORTED_TRANSLATIONS.Vietnamese,
493-
[LOCALE_KEY.ZuZa]: TRANSCEND_SUPPORTED_TRANSLATIONS.English, // TODO: this translation is just english?
493+
[LOCALE_KEY.ZuZa]: TRANSCEND_SUPPORTED_TRANSLATIONS.English, // TODO: https://transcend.height.app/T-6386
494494
[LOCALE_KEY.EnUs]: TRANSCEND_SUPPORTED_TRANSLATIONS.English,
495495
[LOCALE_KEY.EnAu]: TRANSCEND_SUPPORTED_TRANSLATIONS.English,
496496
[LOCALE_KEY.FrBe]: TRANSCEND_SUPPORTED_TRANSLATIONS.French,
@@ -1351,4 +1351,146 @@ export const LOCALE_BROWSER_MAP = {
13511351

13521352
/** Union of Browser locale keys */
13531353
export type BrowserLocaleKey = keyof typeof LOCALE_BROWSER_MAP;
1354+
1355+
/**
1356+
* Native language names, used to render options to users
1357+
* Language options for end-users should be written in own language
1358+
*/
1359+
export const NATIVE_LANGUAGE_NAMES = {
1360+
/* English */
1361+
[LOCALE_KEY.En]: 'English',
1362+
/* Arabic */
1363+
[LOCALE_KEY.Ar]: 'العربية',
1364+
/* French */
1365+
[LOCALE_KEY.Fr]: 'Français',
1366+
/* German */
1367+
[LOCALE_KEY.De]: 'Deutsch',
1368+
/* Spanish */
1369+
[LOCALE_KEY.Es]: 'Español',
1370+
/* Italian */
1371+
[LOCALE_KEY.It]: 'Italiano',
1372+
/* Japanese */
1373+
[LOCALE_KEY.Ja]: '日本語',
1374+
/* Russian */
1375+
[LOCALE_KEY.Ru]: 'Русский язык',
1376+
/* Arabic UAE */
1377+
[LOCALE_KEY.ArAe]: 'العربية (الإمارات العربية المتحدة)',
1378+
/* French */
1379+
[LOCALE_KEY.FrFr]: 'Français (France)',
1380+
/* German */
1381+
[LOCALE_KEY.DeDe]: 'Deutsch (Deutschland)',
1382+
/* Italian */
1383+
[LOCALE_KEY.ItIt]: 'Italiano (Italia)',
1384+
/* Afrikaans */
1385+
[LOCALE_KEY.AfZz]: 'Afrikaans',
1386+
/* Bulgarian */
1387+
[LOCALE_KEY.BgBg]: 'български',
1388+
/* Chinese Simplified */
1389+
[LOCALE_KEY.ZhCn]: '汉语',
1390+
/* Croatian */
1391+
[LOCALE_KEY.HrHr]: 'Hrvatski',
1392+
/* Czech */
1393+
[LOCALE_KEY.CsCz]: 'Čeština',
1394+
/* Danish */
1395+
[LOCALE_KEY.DaDk]: 'Dansk',
1396+
/* English (UK) */
1397+
[LOCALE_KEY.EnGb]: 'English (UK)',
1398+
/* English (Canada) */
1399+
[LOCALE_KEY.EnCa]: 'English (Canada)',
1400+
/* English (UAE) */
1401+
[LOCALE_KEY.EnAe]: 'English (UAE)',
1402+
/* Finnish */
1403+
[LOCALE_KEY.FiFi]: 'Suomi',
1404+
/* Greek */
1405+
[LOCALE_KEY.ElGr]: 'ελληνικά',
1406+
/* Hindi */
1407+
[LOCALE_KEY.HiIn]: 'हिन्दी',
1408+
/* Hungarian */
1409+
[LOCALE_KEY.HuHu]: 'Magyar',
1410+
/* Indonesian */
1411+
[LOCALE_KEY.IdId]: 'Bahasa Indonesia',
1412+
/* Japanese */
1413+
[LOCALE_KEY.JaJp]: '日本語',
1414+
/* Korean */
1415+
[LOCALE_KEY.KoKr]: '한국어',
1416+
/* Lithuanian */
1417+
[LOCALE_KEY.LtLt]: 'Lietuvių',
1418+
/* Malay */
1419+
[LOCALE_KEY.MsMy]: 'Bahasa Melayu',
1420+
/* Marathi */
1421+
[LOCALE_KEY.MrIn]: 'मराठी',
1422+
/* Norwegian Bokmål */
1423+
[LOCALE_KEY.NbNi]: 'Bokmål',
1424+
/* Polish */
1425+
[LOCALE_KEY.PlPl]: 'Polski',
1426+
/* Portuguese (Brazil) */
1427+
[LOCALE_KEY.PtBr]: 'Português (Brasil)',
1428+
/* Portuguese (Portugal) */
1429+
[LOCALE_KEY.PtPt]: 'Português (Portugal)',
1430+
/* Romanian */
1431+
[LOCALE_KEY.RoRo]: 'Română',
1432+
/* Russian */
1433+
[LOCALE_KEY.RuRu]: 'Русский язык',
1434+
/* Latn-Serbian (Latin) */
1435+
[LOCALE_KEY.SrLatnRs]: 'Srpski',
1436+
/* Swedish */
1437+
[LOCALE_KEY.SvSe]: 'Svenska',
1438+
/* Tamil */
1439+
[LOCALE_KEY.TaIn]: 'தமிழ்',
1440+
/* Thai */
1441+
[LOCALE_KEY.ThTh]: 'ภาษาไทย',
1442+
/* Turkish */
1443+
[LOCALE_KEY.TrTr]: 'Türkçe',
1444+
/* Ukrainian */
1445+
[LOCALE_KEY.UkUa]: 'українська мова',
1446+
/* Vietnamese */
1447+
[LOCALE_KEY.ViVn]: 'Tiếng Việt',
1448+
/* Zulu */
1449+
[LOCALE_KEY.ZuZa]: 'isiZulu',
1450+
/* USA */
1451+
[LOCALE_KEY.EnUs]: 'English (US)',
1452+
/* Australia */
1453+
[LOCALE_KEY.EnAu]: 'English (Australia)',
1454+
/* Belgium */
1455+
[LOCALE_KEY.FrBe]: 'Français (Belgique)',
1456+
/* Quebec */
1457+
[LOCALE_KEY.FrCa]: 'Français (Québec)',
1458+
/* Ireland */
1459+
[LOCALE_KEY.EnIe]: 'English (Ireland)',
1460+
/* Dutch */
1461+
[LOCALE_KEY.NlNl]: 'Nederlands',
1462+
/* Dutch (Belgium) */
1463+
[LOCALE_KEY.NlBe]: 'Nederlands (België)',
1464+
/* Spanish (Castilian) */
1465+
[LOCALE_KEY.EsEs]: 'Español (Castellano)',
1466+
/* Spanish (Latin America & Caribbean) */
1467+
[LOCALE_KEY.Es419]: 'Español (América Latina)',
1468+
/* Chinese (Traditional) */
1469+
[LOCALE_KEY.ZhHk]: '漢語',
1470+
/** Austrian German */
1471+
[LOCALE_KEY.DeAt]: 'Österreichisches Standarddeutsch,',
1472+
/** Swiss German */
1473+
[LOCALE_KEY.DeCh]: 'Schwiizerdütsch',
1474+
/** Swiss Italian */
1475+
[LOCALE_KEY.ItCh]: 'Dialetto Svizzero',
1476+
/** French (Switzerland) */
1477+
[LOCALE_KEY.FrCh]: 'Français de Suisse',
1478+
/** Hebrew (Israel) */
1479+
[LOCALE_KEY.HeIl]: 'עִבְרִית',
1480+
/* New Zealand */
1481+
[LOCALE_KEY.EnNz]: 'English (New Zealand)',
1482+
/** Estonian (Estonia) */
1483+
[LOCALE_KEY.EtEe]: 'Eesti',
1484+
/** Icelandic (Iceland) */
1485+
[LOCALE_KEY.IsIs]: 'Íslenska',
1486+
/** Latvian (Latvia) */
1487+
[LOCALE_KEY.LvLv]: 'Latviešu',
1488+
/** Maltese (Malta) */
1489+
[LOCALE_KEY.MtMt]: 'Malti',
1490+
/** Slovak (Slovakia) */
1491+
[LOCALE_KEY.SkSk]: 'Slovenčina',
1492+
/** Slovenian (Slovenia) */
1493+
[LOCALE_KEY.SlSl]: 'Slovenščina',
1494+
} as const satisfies Record<LocaleValue, string>;
1495+
13541496
/* eslint-enable max-lines */

src/types.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
// local
2-
import type { LanguageKey } from './enums';
2+
import type { LocaleValue } from './enums';
33

44
/**
5-
* Translations map from message id to translation
5+
* Translations map from message id to translation string
66
*/
77
export type TranslatedMessages = { [id in string]: string };
88

99
/**
10-
* Message translations by language key
10+
* Mapping of Transcend locale key to a message object
1111
*/
12-
export type Translations = { [key in LanguageKey]: TranslatedMessages };
12+
export type Translations = { [key in LocaleValue]: TranslatedMessages };
1313

1414
/**
15-
* Message translations plus an additional description file
15+
* Mapping of Transcend locale key (or description) to a message object
1616
*/
1717
export type TranslationsWithDescriptions = {
18-
[key in LanguageKey | 'description']: TranslatedMessages;
18+
[key in LocaleValue | 'description']: TranslatedMessages;
1919
};
2020

2121
/**

0 commit comments

Comments
 (0)