generaltranslation 2.0.53 → 2.0.55

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. package/dist/{codes → cjs/codes}/codes.js +11 -12
  2. package/dist/{codes → cjs/codes}/getLanguageDirection.js +4 -4
  3. package/dist/{index.js → cjs/index.js} +10 -29
  4. package/dist/cjs/translation/_bundleTranslation.js +42 -0
  5. package/dist/cjs/translation/_intl.js +52 -0
  6. package/dist/cjs/translation/_translate.js +51 -0
  7. package/dist/cjs/translation/_translateReactChildren.js +56 -0
  8. package/dist/cjs/translation/_updateRemoteDictionary.js +30 -0
  9. package/dist/mjs/codes/15924/CodeToScript.json +215 -0
  10. package/dist/mjs/codes/15924/ScriptToCode.json +215 -0
  11. package/dist/mjs/codes/3166/CodeToRegion.json +296 -0
  12. package/dist/mjs/codes/3166/RegionToCode.json +296 -0
  13. package/dist/mjs/codes/639-1/CodeToLanguage.json +185 -0
  14. package/dist/mjs/codes/639-1/LanguageToCode.json +227 -0
  15. package/dist/mjs/codes/639-3/CodeToLanguageTriletter.json +186 -0
  16. package/dist/mjs/codes/639-3/LanguageToCodeTriletter.json +228 -0
  17. package/dist/mjs/codes/codes.d.ts +8 -0
  18. package/dist/mjs/codes/codes.js +305 -0
  19. package/dist/mjs/codes/getLanguageDirection.d.ts +1 -0
  20. package/dist/mjs/codes/getLanguageDirection.js +68 -0
  21. package/dist/mjs/codes/predefined/Predefined.json +28 -0
  22. package/dist/mjs/index.d.ts +153 -0
  23. package/dist/mjs/index.js +130 -0
  24. package/dist/mjs/translation/_bundleTranslation.d.ts +22 -0
  25. package/dist/mjs/translation/_bundleTranslation.js +39 -0
  26. package/dist/mjs/translation/_intl.d.ts +1 -0
  27. package/dist/mjs/translation/_intl.js +49 -0
  28. package/dist/mjs/translation/_translate.d.ts +1 -0
  29. package/dist/mjs/translation/_translate.js +48 -0
  30. package/dist/mjs/translation/_translateReactChildren.d.ts +1 -0
  31. package/dist/mjs/translation/_translateReactChildren.js +53 -0
  32. package/dist/mjs/translation/_updateRemoteDictionary.d.ts +17 -0
  33. package/dist/mjs/translation/_updateRemoteDictionary.js +27 -0
  34. package/package.json +12 -5
  35. package/dist/translation/_bundleTranslation.js +0 -54
  36. package/dist/translation/_intl.js +0 -63
  37. package/dist/translation/_translate.js +0 -62
  38. package/dist/translation/_translateReactChildren.js +0 -67
  39. package/dist/translation/_updateRemoteDictionary.js +0 -41
  40. /package/dist/{codes → cjs/codes}/15924/CodeToScript.json +0 -0
  41. /package/dist/{codes → cjs/codes}/15924/ScriptToCode.json +0 -0
  42. /package/dist/{codes → cjs/codes}/3166/CodeToRegion.json +0 -0
  43. /package/dist/{codes → cjs/codes}/3166/RegionToCode.json +0 -0
  44. /package/dist/{codes → cjs/codes}/639-1/CodeToLanguage.json +0 -0
  45. /package/dist/{codes → cjs/codes}/639-1/LanguageToCode.json +0 -0
  46. /package/dist/{codes → cjs/codes}/639-3/CodeToLanguageTriletter.json +0 -0
  47. /package/dist/{codes → cjs/codes}/639-3/LanguageToCodeTriletter.json +0 -0
  48. /package/dist/{codes → cjs/codes}/codes.d.ts +0 -0
  49. /package/dist/{codes → cjs/codes}/getLanguageDirection.d.ts +0 -0
  50. /package/dist/{codes → cjs/codes}/predefined/Predefined.json +0 -0
  51. /package/dist/{index.d.ts → cjs/index.d.ts} +0 -0
  52. /package/dist/{translation → cjs/translation}/_bundleTranslation.d.ts +0 -0
  53. /package/dist/{translation → cjs/translation}/_intl.d.ts +0 -0
  54. /package/dist/{translation → cjs/translation}/_translate.d.ts +0 -0
  55. /package/dist/{translation → cjs/translation}/_translateReactChildren.d.ts +0 -0
  56. /package/dist/{translation → cjs/translation}/_updateRemoteDictionary.d.ts +0 -0
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // ----- IMPORTS ----- //
3
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
4
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
5
4
  };
@@ -9,6 +8,7 @@ exports._standardizeLanguageCode = _standardizeLanguageCode;
9
8
  exports._isValidLanguageCode = _isValidLanguageCode;
10
9
  exports._getLanguageObject = _getLanguageObject;
11
10
  exports._isSameLanguage = _isSameLanguage;
11
+ // ----- IMPORTS ----- //
12
12
  // Import modules for mapping ISO 639 codes to language names and vice versa
13
13
  const CodeToLanguage_json_1 = __importDefault(require("./639-1/CodeToLanguage.json"));
14
14
  const LanguageToCode_json_1 = __importDefault(require("./639-1/LanguageToCode.json"));
@@ -31,7 +31,6 @@ const RegionToCode = RegionToCode_json_1.default;
31
31
  const CodeToRegion = CodeToRegion_json_1.default;
32
32
  // Import predefined common regions
33
33
  const Predefined_json_1 = __importDefault(require("./predefined/Predefined.json"));
34
- const generaltranslation_1 = require("generaltranslation");
35
34
  const Predefined = Predefined_json_1.default;
36
35
  // ----- VALIDITY CHECKS ----- //
37
36
  /**
@@ -41,7 +40,7 @@ const Predefined = Predefined_json_1.default;
41
40
  * @internal
42
41
  */
43
42
  function _standardizeLanguageCode(code) {
44
- if (!(0, generaltranslation_1.isValidLanguageCode)(code))
43
+ if (!_isValidLanguageCode(code))
45
44
  return '';
46
45
  const codeParts = code.split('-');
47
46
  let result = `${codeParts[0].toLowerCase()}`;
@@ -104,11 +103,11 @@ const _capitalize = (code) => {
104
103
  * @returns {string} The language name.
105
104
  */
106
105
  const _mapCodeToLanguage = (code) => {
107
- code = code === null || code === void 0 ? void 0 : code.toLowerCase();
108
- if ((code === null || code === void 0 ? void 0 : code.length) === 2) {
106
+ code = code?.toLowerCase();
107
+ if (code?.length === 2) {
109
108
  return CodeToLanguage[code];
110
109
  }
111
- if ((code === null || code === void 0 ? void 0 : code.length) === 3) {
110
+ if (code?.length === 3) {
112
111
  return CodeToLanguageTriletter[code];
113
112
  }
114
113
  return '';
@@ -120,7 +119,7 @@ const _mapCodeToLanguage = (code) => {
120
119
  * @returns {string} BCP 47 language tag.
121
120
  */
122
121
  const _mapLanguageToCode = (language) => {
123
- language = language === null || language === void 0 ? void 0 : language.toLowerCase();
122
+ language = language?.toLowerCase();
124
123
  return LanguageToCode[language] || LanguageToCodeTriletter[language] || '';
125
124
  };
126
125
  /**
@@ -138,7 +137,7 @@ const _mapCodeToScript = (code) => {
138
137
  * @returns {string} The ISO 15924 code.
139
138
  */
140
139
  const _mapScriptToCode = (script) => {
141
- script = script === null || script === void 0 ? void 0 : script.toLowerCase();
140
+ script = script?.toLowerCase();
142
141
  return ScriptToCode[script] || '';
143
142
  };
144
143
  /**
@@ -147,7 +146,7 @@ const _mapScriptToCode = (script) => {
147
146
  * @returns {string} The region name.
148
147
  */
149
148
  const _mapCodeToRegion = (code) => {
150
- code = code === null || code === void 0 ? void 0 : code.toUpperCase();
149
+ code = code?.toUpperCase();
151
150
  return CodeToRegion[code] || '';
152
151
  };
153
152
  /**
@@ -156,7 +155,7 @@ const _mapCodeToRegion = (code) => {
156
155
  * @returns {string} The ISO 3166 code.
157
156
  */
158
157
  const _mapRegionToCode = (region) => {
159
- region = region === null || region === void 0 ? void 0 : region.toLowerCase();
158
+ region = region?.toLowerCase();
160
159
  return RegionToCode[region] || '';
161
160
  };
162
161
  /**
@@ -171,7 +170,7 @@ function _getLanguageObject(codes) {
171
170
  * @returns {LanguageObject|null} The language object.
172
171
  */
173
172
  const _handleGetLanguageObject = (code) => {
174
- if (!(0, generaltranslation_1.isValidLanguageCode)(code))
173
+ if (!_isValidLanguageCode(code))
175
174
  return null;
176
175
  const codeParts = code.split('-');
177
176
  let languageObject = {
@@ -280,7 +279,7 @@ const _handleGetLanguageCodeFromString = (language) => {
280
279
  * @returns {string} The language code.
281
280
  */
282
281
  const _handleGetLanguageCodeFromObject = (languageObject) => {
283
- if (!(languageObject === null || languageObject === void 0 ? void 0 : languageObject.language))
282
+ if (!languageObject?.language)
284
283
  return '';
285
284
  let code = languageObject.language.toLowerCase();
286
285
  if (languageObject.script) {
@@ -50,7 +50,7 @@ const rtlLanguages = [
50
50
  'yi' /* 'ייִדיש', Yiddish */
51
51
  ];
52
52
  /* ----- END YAHOO COPYRIGHT ----- */
53
- const codes_1 = require("./codes");
53
+ const codes_js_1 = require("./codes.js");
54
54
  /**
55
55
  * Get the text direction for a given language code.
56
56
  *
@@ -60,12 +60,12 @@ const codes_1 = require("./codes");
60
60
  */
61
61
  function _getLanguageDirection(code) {
62
62
  return rtlLanguages.some(language => {
63
- const lo = (0, codes_1._getLanguageObject)(language);
64
- const clo = (0, codes_1._getLanguageObject)(code);
63
+ const lo = (0, codes_js_1._getLanguageObject)(language);
64
+ const clo = (0, codes_js_1._getLanguageObject)(code);
65
65
  if (!lo || !clo)
66
66
  return false;
67
67
  if (lo.script && clo.script && lo.script !== clo.script)
68
68
  return false;
69
- return (0, codes_1._isSameLanguage)(code, language);
69
+ return (0, codes_js_1._isSameLanguage)(code, language);
70
70
  }) ? 'rtl' : 'ltr';
71
71
  }
@@ -1,15 +1,6 @@
1
1
  "use strict";
2
2
  // `generaltranslation` language toolkit
3
3
  // © 2024, General Translation, Inc.
4
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
5
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
6
- return new (P || (P = Promise))(function (resolve, reject) {
7
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
8
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
9
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
10
- step((generator = generator.apply(thisArg, _arguments || [])).next());
11
- });
12
- };
13
4
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
5
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
6
  };
@@ -60,10 +51,8 @@ class GT {
60
51
  * @param {{ notes?: string, [key: string]: any }} metadata - Additional metadata for the translation request.
61
52
  * @returns {Promise<{ translation: string, error?: Error | unknown }>} - The translated content with optional error information.
62
53
  */
63
- translate(content, targetLanguage, metadata) {
64
- return __awaiter(this, void 0, void 0, function* () {
65
- return yield (0, _translate_1.default)(this, content, targetLanguage, Object.assign({ projectID: this.projectID, defaultLanguage: this.defaultLanguage }, metadata));
66
- });
54
+ async translate(content, targetLanguage, metadata) {
55
+ return await (0, _translate_1.default)(this, content, targetLanguage, { projectID: this.projectID, defaultLanguage: this.defaultLanguage, ...metadata });
67
56
  }
68
57
  /**
69
58
  * Translates a string and caches for use in a public project.
@@ -73,10 +62,8 @@ class GT {
73
62
  * @param {dictionaryName?: string, context?: string, [key: string]: any }} metadata - Additional metadata for the translation request.
74
63
  * @returns {Promise<{ translation: string, error?: Error | unknown }>} The translated content with optional error information.
75
64
  */
76
- intl(content, targetLanguage, projectID, metadata) {
77
- return __awaiter(this, void 0, void 0, function* () {
78
- return yield (0, _intl_1.default)(this, content, targetLanguage, projectID || this.projectID, Object.assign({ projectID: projectID || this.projectID, defaultLanguage: this.defaultLanguage }, metadata));
79
- });
65
+ async intl(content, targetLanguage, projectID, metadata) {
66
+ return await (0, _intl_1.default)(this, content, targetLanguage, projectID || this.projectID, { projectID: projectID || this.projectID, defaultLanguage: this.defaultLanguage, ...metadata });
80
67
  }
81
68
  /**
82
69
  * Translates the content of React children elements.
@@ -88,20 +75,16 @@ class GT {
88
75
  *
89
76
  * @returns {Promise<any>} - A promise that resolves to the translated content.
90
77
  */
91
- translateReactChildren(content, targetLanguage, metadata) {
92
- return __awaiter(this, void 0, void 0, function* () {
93
- return yield (0, _translateReactChildren_1.default)(this, content, targetLanguage, Object.assign({ projectID: this.projectID, defaultLanguage: this.defaultLanguage }, metadata));
94
- });
78
+ async translateReactChildren(content, targetLanguage, metadata) {
79
+ return await (0, _translateReactChildren_1.default)(this, content, targetLanguage, { projectID: this.projectID, defaultLanguage: this.defaultLanguage, ...metadata });
95
80
  }
96
81
  /**
97
82
  * Bundles multiple translation requests and sends them to the server.
98
83
  * @param requests - Array of requests to be processed and sent.
99
84
  * @returns A promise that resolves to an array of processed results.
100
85
  */
101
- bundleTranslation(requests) {
102
- return __awaiter(this, void 0, void 0, function* () {
103
- return (0, _bundleTranslation_1.default)(this, requests);
104
- });
86
+ async bundleTranslation(requests) {
87
+ return (0, _bundleTranslation_1.default)(this, requests);
105
88
  }
106
89
  /**
107
90
  * Pushes updates to a remotely cached translation dictionary.
@@ -111,10 +94,8 @@ class GT {
111
94
  * @param {boolean} [replace=false] - Whether to replace the existing dictionary. Defaults to false.
112
95
  * @returns {Promise<string[]>} A promise that resolves to an array of strings indicating the languages which have been updated.
113
96
  */
114
- updateRemoteDictionary(updates_1) {
115
- return __awaiter(this, arguments, void 0, function* (updates, languages = [], projectID = this.projectID, replace = false) {
116
- return (0, _updateRemoteDictionary_1.default)(this, updates, languages, projectID, replace);
117
- });
97
+ async updateRemoteDictionary(updates, languages = [], projectID = this.projectID, replace = false) {
98
+ return (0, _updateRemoteDictionary_1.default)(this, updates, languages, projectID, replace);
118
99
  }
119
100
  }
120
101
  // ----- EXPORTS ----- //
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = _bundleTranslation;
4
+ /**
5
+ * Bundles multiple requests and sends them to the server.
6
+ * @param {{ baseURL: string, apiKey: string }} gt - Contains the baseURL and apiKey for the server request.
7
+ * @param {Request[]} requests - Array of requests to be processed and sent.
8
+ * @param {{ timeout?: number }} options - Additional options for the request, including timeout.
9
+ * @returns {Promise<Array<any | null>>} A promise that resolves to an array of processed results.
10
+ * @internal
11
+ */
12
+ async function _bundleTranslation(gt, requests) {
13
+ const controller = new AbortController();
14
+ const signal = controller.signal;
15
+ if (requests[0]?.data?.metadata?.timeout) {
16
+ setTimeout(() => controller.abort(), requests[0].data.metadata.timeout);
17
+ }
18
+ try {
19
+ const response = await fetch(`${gt.baseURL}/bundle`, {
20
+ method: 'POST',
21
+ headers: {
22
+ 'Content-Type': 'application/json',
23
+ 'gtx-api-key': gt.apiKey,
24
+ },
25
+ body: JSON.stringify(requests),
26
+ signal
27
+ });
28
+ if (!response.ok) {
29
+ throw new Error(`${response.status}: ${await response.text()}`);
30
+ }
31
+ const resultArray = await response.json();
32
+ return resultArray;
33
+ }
34
+ catch (error) {
35
+ if (error instanceof Error && error.name === 'AbortError') {
36
+ console.error('Request timed out');
37
+ return Array.from(requests, () => ({ translation: null, error: 'Request timed out' }));
38
+ }
39
+ console.error(error);
40
+ return Array.from(requests, () => ({ translation: null, error: error }));
41
+ }
42
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = _translate;
4
+ /**
5
+ * Translates a single piece of content and caches for use in a public project.
6
+ * @param {{ baseURL: string, apiKey: string }} gt - The translation service configuration.
7
+ * @param {string} content - The content to translate.
8
+ * @param {string} targetLanguage - The target language for the translation.
9
+ * @param {string} projectID - The ID of the project
10
+ * @param {{ dictionaryName?: string, notes?: string, timeout?: number, [key: string]: any }} metadata - Additional metadata for the translation request.
11
+ * @returns {Promise<{ translation: string, error?: Error | unknown }>} - The translated content with optional error information.
12
+ * @internal
13
+ */
14
+ async function _translate(gt, content, targetLanguage, projectID, metadata) {
15
+ const controller = new AbortController();
16
+ const signal = controller.signal;
17
+ if (metadata.timeout) {
18
+ setTimeout(() => controller.abort(), metadata.timeout);
19
+ }
20
+ try {
21
+ const response = await fetch(`${gt.baseURL}/translate`, {
22
+ method: 'POST',
23
+ headers: {
24
+ 'Content-Type': 'application/json',
25
+ 'gtx-api-key': gt.apiKey,
26
+ },
27
+ body: JSON.stringify({
28
+ content, targetLanguage, projectID, metadata
29
+ }),
30
+ signal
31
+ });
32
+ if (!response.ok) {
33
+ throw new Error(`${response.status}: ${await response.text()}`);
34
+ }
35
+ const result = await response.json();
36
+ return result;
37
+ }
38
+ catch (error) {
39
+ if (error instanceof Error && error.name === 'AbortError') {
40
+ console.error('Request timed out');
41
+ return {
42
+ translation: content,
43
+ error: 'Request timed out'
44
+ };
45
+ }
46
+ console.error(error);
47
+ return {
48
+ translation: content,
49
+ error: error
50
+ };
51
+ }
52
+ }
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = _translate;
4
+ /**
5
+ * Translates a string.
6
+ * @param {{ baseURL: string, apiKey: string }} gt - The translation service configuration.
7
+ * @param {string} content - The content to translate.
8
+ * @param {string} targetLanguage - The target language for the translation.
9
+ * @param {{ notes?: string, timeout?: number, [key: string]: any }} metadata - Additional metadata for the translation request.
10
+ * @returns {Promise<{ translation: string, error?: Error | unknown }>} - The translated content with optional error information.
11
+ * @internal
12
+ */
13
+ async function _translate(gt, content, targetLanguage, metadata) {
14
+ const controller = new AbortController();
15
+ const signal = controller.signal;
16
+ if (metadata.timeout) {
17
+ setTimeout(() => controller.abort(), metadata.timeout);
18
+ }
19
+ try {
20
+ const response = await fetch(`${gt.baseURL}/translate`, {
21
+ method: 'POST',
22
+ headers: {
23
+ 'Content-Type': 'application/json',
24
+ 'gtx-api-key': gt.apiKey,
25
+ },
26
+ body: JSON.stringify({
27
+ content, targetLanguage, metadata
28
+ }),
29
+ signal
30
+ });
31
+ if (!response.ok) {
32
+ throw new Error(`${response.status}: ${await response.text()}`);
33
+ }
34
+ const result = await response.json();
35
+ return result;
36
+ }
37
+ catch (error) {
38
+ if (error instanceof Error && error.name === 'AbortError') {
39
+ console.error('Request timed out');
40
+ return {
41
+ translation: content,
42
+ error: 'Request timed out'
43
+ };
44
+ }
45
+ console.error(error);
46
+ return {
47
+ translation: content,
48
+ error: error
49
+ };
50
+ }
51
+ }
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = _translateReactChildren;
4
+ /**
5
+ * Translates the given content into the target language using a specified API.
6
+ *
7
+ * @param {{ baseURL: string, apiKey: string }} gt - An object containing baseURL and apiKey for the API.
8
+ * @param {any} content - The content to be translated. This can be of any type.
9
+ * @param {string} targetLanguage - The target language code (e.g., 'en', 'fr') for the translation.
10
+ * @param {{ [key: string]: any }} metadata - Additional metadata to be sent with the translation request.
11
+ *
12
+ * @returns {Promise<{ translation: any | null, error?: Error | unknown }>} - A promise that resolves to the translated content as an object, or null if an error occurs.
13
+ *
14
+ * @throws {Error} - Throws an error if the response from the API is not ok (status code not in the range 200-299).
15
+ * @internal
16
+ **/
17
+ async function _translateReactChildren(gt, content, targetLanguage, metadata) {
18
+ const controller = new AbortController();
19
+ const signal = controller.signal;
20
+ if (metadata.timeout) {
21
+ setTimeout(() => controller.abort(), metadata.timeout);
22
+ }
23
+ try {
24
+ const response = await fetch(`${gt.baseURL}/react`, {
25
+ method: 'POST',
26
+ headers: {
27
+ 'Content-Type': 'application/json',
28
+ 'gtx-api-key': gt.apiKey,
29
+ },
30
+ body: JSON.stringify({
31
+ content: content,
32
+ targetLanguage: targetLanguage,
33
+ metadata: metadata
34
+ }),
35
+ signal
36
+ });
37
+ if (!response.ok) {
38
+ throw new Error(`${response.status}: ${await response.text()}`);
39
+ }
40
+ return await response.json();
41
+ }
42
+ catch (error) {
43
+ if (error instanceof Error && error.name === 'AbortError') {
44
+ console.error('Request timed out');
45
+ return {
46
+ translation: null,
47
+ error: 'Request timed out'
48
+ };
49
+ }
50
+ console.error(error);
51
+ return {
52
+ translation: null,
53
+ error: error
54
+ };
55
+ }
56
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = _updateRemoteDictionary;
4
+ async function _updateRemoteDictionary(gt, updates, languages, projectID, replace) {
5
+ try {
6
+ const response = await fetch(`${gt.baseURL}/update`, {
7
+ method: 'POST',
8
+ headers: {
9
+ 'Content-Type': 'application/json',
10
+ 'gtx-api-key': gt.apiKey,
11
+ },
12
+ body: JSON.stringify({
13
+ updates, languages, projectID, replace
14
+ })
15
+ });
16
+ if (!response.ok) {
17
+ throw new Error(`${response.status}: ${await response.text()}`);
18
+ }
19
+ const result = await response.json();
20
+ return result.languages;
21
+ }
22
+ catch (error) {
23
+ if (error instanceof Error && error.name === 'AbortError') {
24
+ console.error('Request timed out');
25
+ return [];
26
+ }
27
+ console.error(error);
28
+ return [];
29
+ }
30
+ }
@@ -0,0 +1,215 @@
1
+ {
2
+ "Adlm": "Adlam",
3
+ "Afak": "Afaka",
4
+ "Aghb": "Caucasian Albanian",
5
+ "Ahom": "Ahom",
6
+ "Aran": "Arabic (Nastaliq variant)",
7
+ "Armi": "Imperial Aramaic",
8
+ "Armn": "Armenian",
9
+ "Avst": "Avestan",
10
+ "Bali": "Balinese",
11
+ "Bamu": "Bamum",
12
+ "Bass": "Bassa Vah",
13
+ "Batk": "Batak",
14
+ "Beng": "Bengali",
15
+ "Bhks": "Bhaiksuki",
16
+ "Blis": "Blissymbols",
17
+ "Bopo": "Bopomofo",
18
+ "Brah": "Brahmi",
19
+ "Brai": "Braille",
20
+ "Bugi": "Buginese",
21
+ "Buhd": "Buhid",
22
+ "Cakm": "Chakma",
23
+ "Cans": "Unified Canadian Aboriginal Syllabics",
24
+ "Cari": "Carian",
25
+ "Cham": "Cham",
26
+ "Cher": "Cherokee",
27
+ "Chis": "Chisoi",
28
+ "Chrs": "Chorasmian",
29
+ "Cirt": "Cirth",
30
+ "Copt": "Coptic",
31
+ "Cpmn": "Cypro-Minoan",
32
+ "Cprt": "Cypriot syllabary",
33
+ "Cyrl": "Cyrillic",
34
+ "Cyrs": "Cyrillic (Old Church Slavonic variant)",
35
+ "Deva": "Devanagari",
36
+ "Diak": "Dives Akuru",
37
+ "Dogr": "Dogra",
38
+ "Dsrt": "Deseret",
39
+ "Dupl": "Duployan shorthand",
40
+ "Egyd": "Egyptian demotic",
41
+ "Egyh": "Egyptian hieratic",
42
+ "Egyp": "Egyptian hieroglyphs",
43
+ "Elba": "Elbasan",
44
+ "Elym": "Elymaic",
45
+ "Ethi": "Ethiopic",
46
+ "Gara": "Garay",
47
+ "Geok": "Khutsuri (Asomtavruli and Nuskhuri)",
48
+ "Geor": "Georgian (Mkhedruli and Mtavruli)",
49
+ "Glag": "Glagolitic",
50
+ "Gong": "Gunjala Gondi",
51
+ "Gonm": "Masaram Gondi",
52
+ "Goth": "Gothic",
53
+ "Gran": "Grantha",
54
+ "Grek": "Greek",
55
+ "Gujr": "Gujarati",
56
+ "Gukh": "Gurung Khema",
57
+ "Guru": "Gurmukhi",
58
+ "Hanb": "Han with Bopomofo",
59
+ "Hang": "Hangul",
60
+ "Hani": "Han",
61
+ "Hano": "Hanunoo",
62
+ "Hans": "Han (Simplified variant)",
63
+ "Hant": "Han (Traditional variant)",
64
+ "Hatr": "Hatran",
65
+ "Hebr": "Hebrew",
66
+ "Hira": "Hiragana",
67
+ "Hluw": "Anatolian Hieroglyphs",
68
+ "Hmng": "Pahawh Hmong",
69
+ "Hmnp": "Nyiakeng Puachue Hmong",
70
+ "Hrkt": "Japanese syllabaries",
71
+ "Hung": "Old Hungarian",
72
+ "Inds": "Indus",
73
+ "Ital": "Old Italic",
74
+ "Jamo": "Jamo",
75
+ "Java": "Javanese",
76
+ "Jpan": "Japanese",
77
+ "Jurc": "Jurchen",
78
+ "Kali": "Kayah Li",
79
+ "Kana": "Katakana",
80
+ "Kawi": "Kawi",
81
+ "Khar": "Kharoshthi",
82
+ "Khmr": "Khmer",
83
+ "Khoj": "Khojki",
84
+ "Kitl": "Khitan large script",
85
+ "Kits": "Khitan small script",
86
+ "Knda": "Kannada",
87
+ "Kore": "Korean",
88
+ "Kpel": "Kpelle",
89
+ "Krai": "Kirat Rai",
90
+ "Kthi": "Kaithi",
91
+ "Lana": "Tai Tham",
92
+ "Laoo": "Lao",
93
+ "Latf": "Latin (Fraktur variant)",
94
+ "Latg": "Latin (Gaelic variant)",
95
+ "Latn": "Latin",
96
+ "Leke": "Leke",
97
+ "Lepc": "Lepcha",
98
+ "Limb": "Limbu",
99
+ "Lina": "Linear A",
100
+ "Linb": "Linear B",
101
+ "Lisu": "Lisu",
102
+ "Loma": "Loma",
103
+ "Lyci": "Lycian",
104
+ "Lydi": "Lydian",
105
+ "Mahj": "Mahajani",
106
+ "Maka": "Makasar",
107
+ "Mand": "Mandaic",
108
+ "Mani": "Manichaean",
109
+ "Marc": "Marchen",
110
+ "Maya": "Mayan hieroglyphs",
111
+ "Medf": "Medefaidrin",
112
+ "Mend": "Mende Kikakui",
113
+ "Merc": "Meroitic Cursive",
114
+ "Mero": "Meroitic Hieroglyphs",
115
+ "Mlym": "Malayalam",
116
+ "Modi": "Modi",
117
+ "Mong": "Mongolian",
118
+ "Moon": "Moon",
119
+ "Mroo": "Mro",
120
+ "Mtei": "Meitei Mayek",
121
+ "Mult": "Multani",
122
+ "Mymr": "Myanmar",
123
+ "Nagm": "Nag Mundari",
124
+ "Nand": "Nandinagari",
125
+ "Narb": "Old North Arabian",
126
+ "Nbat": "Nabataean",
127
+ "Newa": "Newa",
128
+ "Nkdb": "Naxi Dongba",
129
+ "Nkgb": "Naxi Geba",
130
+ "Nkoo": "N’Ko",
131
+ "Nshu": "Nüshu",
132
+ "Ogam": "Ogham",
133
+ "Olck": "Ol Chiki",
134
+ "Onao": "Ol Onal",
135
+ "Orkh": "Old Turkic",
136
+ "Orya": "Oriya",
137
+ "Osge": "Osage",
138
+ "Osma": "Osmanya",
139
+ "Ougr": "Old Uyghur",
140
+ "Palm": "Palmyrene",
141
+ "Pauc": "Pau Cin Hau",
142
+ "Pcun": "Proto-Cuneiform",
143
+ "Pelm": "Proto-Elamite",
144
+ "Perm": "Old Permic",
145
+ "Phag": "Phags-pa",
146
+ "Phli": "Inscriptional Pahlavi",
147
+ "Phlp": "Psalter Pahlavi",
148
+ "Phlv": "Book Pahlavi",
149
+ "Phnx": "Phoenician",
150
+ "Piqd": "Klingon",
151
+ "Plrd": "Miao",
152
+ "Prti": "Inscriptional Parthian",
153
+ "Psin": "Proto-Sinaitic",
154
+ "Ranj": "Ranjana",
155
+ "Rjng": "Rejang",
156
+ "Rohg": "Hanifi Rohingya",
157
+ "Roro": "Rongorongo",
158
+ "Runr": "Runic",
159
+ "Samr": "Samaritan",
160
+ "Sara": "Sarati",
161
+ "Sarb": "Old South Arabian",
162
+ "Saur": "Saurashtra",
163
+ "Sgnw": "SignWriting",
164
+ "Shaw": "Shavian",
165
+ "Shrd": "Sharada",
166
+ "Shui": "Shuishu",
167
+ "Sidd": "Siddham",
168
+ "Sidt": "Sidetic",
169
+ "Sind": "Khudawadi",
170
+ "Sinh": "Sinhala",
171
+ "Sogd": "Sogdian",
172
+ "Sogo": "Old Sogdian",
173
+ "Sora": "Sora Sompeng",
174
+ "Soyo": "Soyombo",
175
+ "Sund": "Sundanese",
176
+ "Sunu": "Sunuwar",
177
+ "Sylo": "Syloti Nagri",
178
+ "Syrc": "Syriac",
179
+ "Syre": "Syriac (Estrangelo variant)",
180
+ "Syrj": "Syriac (Western variant)",
181
+ "Syrn": "Syriac (Eastern variant)",
182
+ "Tagb": "Tagbanwa",
183
+ "Takr": "Takri",
184
+ "Tale": "Tai Le",
185
+ "Talu": "New Tai Lue",
186
+ "Taml": "Tamil",
187
+ "Tang": "Tangut",
188
+ "Tavt": "Tai Viet",
189
+ "Tayo": "Tai Yo",
190
+ "Telu": "Telugu",
191
+ "Teng": "Tengwar",
192
+ "Tfng": "Tifinagh",
193
+ "Tglg": "Tagalog",
194
+ "Thaa": "Thaana",
195
+ "Thai": "Thai",
196
+ "Tibt": "Tibetan",
197
+ "Tirh": "Tirhuta",
198
+ "Tnsa": "Tangsa",
199
+ "Todr": "Todhri",
200
+ "Tols": "Tolong Siki",
201
+ "Toto": "Toto",
202
+ "Tutg": "Tulu-Tigalari",
203
+ "Ugar": "Ugaritic",
204
+ "Vaii": "Vai",
205
+ "Visp": "Visible Speech",
206
+ "Vith": "Vithkuqi",
207
+ "Wara": "Warang Citi",
208
+ "Wcho": "Wancho",
209
+ "Wole": "Woleai",
210
+ "Xpeo": "Old Persian",
211
+ "Xsux": "Sumero-Akkadian cuneiform",
212
+ "Yezi": "Yezidi",
213
+ "Yiii": "Yi",
214
+ "Zanb": "Zanabazar Square"
215
+ }