generaltranslation 1.2.14 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  <a href='https://www.generaltranslation.com' target="_blank">generaltranslation.com</a>
4
4
 
5
- A language toolkit for AI developers.
5
+ A language toolkit for AI developers. Used in `@generaltranslation/react`.
6
6
 
7
7
  Full documentation coming soon!
8
8
 
@@ -32,97 +32,48 @@ const gt = new GT()
32
32
 
33
33
  ### getLanguageName(codes)
34
34
 
35
- Returns a language name from a two or three-letter ISO-639 language code, or an array of codes.
35
+ Returns a language name from an ISO-639 language code, or an array of codes. Compatible with ISO-3166 regions and ISO-15924 scripts common in browser languages.
36
36
 
37
37
  ```
38
- const language = getLanguageName('en');
39
- console.log(language) // 'English'
38
+ const language1 = getLanguageName('en');
39
+ console.log(language1) // 'English'
40
40
 
41
- const languages = getLanguageName(['fr', 'es'])
42
- console.log(languages) // ['French', 'Spanish']
43
- ```
44
-
45
- ### getLanguageCode(languages)
46
-
47
- Returns an ISO-639 code from a language name or an array of language names.
48
-
49
- ```
50
- const code = getLanguageCode('English');
51
- console.log(language) // 'en'
52
-
53
- const codes = getLanguageCodes(['French', 'Spanish'])
54
- console.log(codes) // ['fr', 'es']
55
- ```
56
-
57
- ## Translation API
58
-
59
- For this function, you need to sign up for an API key at <a href='https://generaltranslation.com' target='_blank'>generaltranslation.com</a>.
60
-
61
- There's a small, free allowance to let you test out the API without payment details.
62
-
63
- Add the API key to your code like this:
64
-
65
- ```
66
- import GT from 'generaltranslation'
41
+ const language2 = getLanguageName('en-GB');
42
+ console.log(language2) // 'British English'
67
43
 
68
- const gt = new GT({
69
- apiKey: process.env.GT_API_KEY // looks like 'gtx-XXX'
70
- });
44
+ const languages = getLanguageName(['fr', 'zh-Hans'])
45
+ console.log(languages) // ['French', 'Mandarin Chinese']
71
46
  ```
72
47
 
73
- ### async translate(content, language)
74
-
75
- Translates content into the language represented by an ISO-639 language code. Caches by default. Just wrap `translate` around your content and go.
76
-
77
- All of the following are valid:
48
+ ### getLanguageObject(codes)
78
49
 
79
- ```
80
- const translation = await gt.translate('Tell me a story', 'es'); // returns a string
81
- ```
50
+ Returns a language object, or array of language objects, each containing a language, script, and region from an ISO-639 language code, or an array of codes. Compatible with ISO-3166 regions and ISO-15924 scripts common in browser languages.
82
51
 
83
52
  ```
84
- const first = 'Tell me a story';
85
- const second = ' about a cat'
53
+ const languageObject = getLanguageCode('en');
54
+ console.log(languageObject) // { "language": "English", "script": "", "region": "" }
86
55
 
87
- const translated = await gt.translate([
88
- first, second
89
- ], 'es');
56
+ const languageObjects = getLanguageObject(['zh-Hans', 'en-US'])
57
+ console.log(codes) // [{ "language": "Chinese", "script": "Han (simplified)", "region": "" }, { "language": "English", "script": "", "region": "United States" }]
90
58
  ```
91
59
 
92
- To mark text that shouldn't be translated, wrap it in `{ text: "", translate: false }`. Items marked as `translate: false` are never sent to our API. For example:
93
-
94
- ```
95
- const prompt = 'Tell me a story about ';
96
- const input = 'gatos con espadas'
97
-
98
- const translatedPrompt = await gt.translate([
99
- prompt, { text: input, translate: false }
100
- ], 'es');
101
- ```
102
-
103
- For type consistency, you can also make everything in the content parameter an object:
60
+ ### getLanguageCode(languages)
104
61
 
105
- ```
106
- const prompt = 'Tell me a story about ';
107
- const input = 'gatos con espadas'
62
+ Returns an ISO-639 code from a language name or an array of language names.
108
63
 
109
- const translatedPrompt = await gt.translate([
110
- { text: prompt },
111
- { text: input, translate: false }
112
- ], 'es');
113
64
  ```
65
+ const code = getLanguageCode('English');
66
+ console.log(code) // 'en'
114
67
 
115
- This also works:
116
-
117
- ```
118
- const translatedPrompt = await gt.translate({ text: 'Tell me a story' }, 'es');
68
+ const codes = getLanguageCode(['French', 'Spanish'])
69
+ console.log(codes) // ['fr', 'es']
119
70
  ```
120
71
 
121
- ### async translateMany(contentArray, language)
72
+ ### isSameLanguage(...codes)
122
73
 
123
- Translates multiple items of content into the language represented by an ISO-639 language code. Caches by default. Just wrap `translateMany` around an array of what you want to translate and specify a language. For example:
74
+ Checks if a given set of codes are all equivalent to the same language. Returns a boolean.
124
75
 
125
76
  ```
126
- const requests = ["You say goodbye.", "And I say hello."];
127
- const translationArray = await gt.translateMany(requests, 'es') // returns an array
77
+ const same = isSameLanguage('en', 'en-US', 'en-GB');
78
+ console.log(same) // true
128
79
  ```
@@ -0,0 +1,216 @@
1
+ const CodeToScript = {
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
+ }
216
+ module.exports = CodeToScript;
@@ -0,0 +1,216 @@
1
+ const ScriptToCode = {
2
+ "adlam": "Adlm",
3
+ "afaka": "Afak",
4
+ "caucasian albanian": "Aghb",
5
+ "ahom": "Ahom",
6
+ "arabic (nastaliq variant)": "Aran",
7
+ "imperial aramaic": "Armi",
8
+ "armenian": "Armn",
9
+ "avestan": "Avst",
10
+ "balinese": "Bali",
11
+ "bamum": "Bamu",
12
+ "bassa vah": "Bass",
13
+ "batak": "Batk",
14
+ "bengali": "Beng",
15
+ "bhaiksuki": "Bhks",
16
+ "blissymbols": "Blis",
17
+ "bopomofo": "Bopo",
18
+ "brahmi": "Brah",
19
+ "braille": "Brai",
20
+ "buginese": "Bugi",
21
+ "buhid": "Buhd",
22
+ "chakma": "Cakm",
23
+ "unified canadian aboriginal syllabics": "Cans",
24
+ "carian": "Cari",
25
+ "cham": "Cham",
26
+ "cherokee": "Cher",
27
+ "chisoi": "Chis",
28
+ "chorasmian": "Chrs",
29
+ "cirth": "Cirt",
30
+ "coptic": "Copt",
31
+ "cypro-minoan": "Cpmn",
32
+ "cypriot syllabary": "Cprt",
33
+ "cyrillic": "Cyrl",
34
+ "cyrillic (old church slavonic variant)": "Cyrs",
35
+ "devanagari": "Deva",
36
+ "dives akuru": "Diak",
37
+ "dogra": "Dogr",
38
+ "deseret": "Dsrt",
39
+ "duployan shorthand": "Dupl",
40
+ "egyptian demotic": "Egyd",
41
+ "egyptian hieratic": "Egyh",
42
+ "egyptian hieroglyphs": "Egyp",
43
+ "elbasan": "Elba",
44
+ "elymaic": "Elym",
45
+ "ethiopic": "Ethi",
46
+ "garay": "Gara",
47
+ "khutsuri (asomtavruli and nuskhuri)": "Geok",
48
+ "georgian (mkhedruli and mtavruli)": "Geor",
49
+ "glagolitic": "Glag",
50
+ "gunjala gondi": "Gong",
51
+ "masaram gondi": "Gonm",
52
+ "gothic": "Goth",
53
+ "grantha": "Gran",
54
+ "greek": "Grek",
55
+ "gujarati": "Gujr",
56
+ "gurung khema": "Gukh",
57
+ "gurmukhi": "Guru",
58
+ "han with bopomofo": "Hanb",
59
+ "hangul": "Hang",
60
+ "han": "Hani",
61
+ "hanunoo": "Hano",
62
+ "han (simplified variant)": "Hans",
63
+ "han (traditional variant)": "Hant",
64
+ "hatran": "Hatr",
65
+ "hebrew": "Hebr",
66
+ "hiragana": "Hira",
67
+ "anatolian hieroglyphs": "Hluw",
68
+ "pahawh hmong": "Hmng",
69
+ "nyiakeng puachue hmong": "Hmnp",
70
+ "japanese syllabaries": "Hrkt",
71
+ "old hungarian": "Hung",
72
+ "indus": "Inds",
73
+ "old italic": "Ital",
74
+ "jamo": "Jamo",
75
+ "javanese": "Java",
76
+ "japanese": "Jpan",
77
+ "jurchen": "Jurc",
78
+ "kayah li": "Kali",
79
+ "katakana": "Kana",
80
+ "kawi": "Kawi",
81
+ "kharoshthi": "Khar",
82
+ "khmer": "Khmr",
83
+ "khojki": "Khoj",
84
+ "khitan large script": "Kitl",
85
+ "khitan small script": "Kits",
86
+ "kannada": "Knda",
87
+ "korean": "Kore",
88
+ "kpelle": "Kpel",
89
+ "kirat rai": "Krai",
90
+ "kaithi": "Kthi",
91
+ "tai tham": "Lana",
92
+ "lao": "Laoo",
93
+ "latin (fraktur variant)": "Latf",
94
+ "latin (gaelic variant)": "Latg",
95
+ "latin": "Latn",
96
+ "leke": "Leke",
97
+ "lepcha": "Lepc",
98
+ "limbu": "Limb",
99
+ "linear a": "Lina",
100
+ "linear b": "Linb",
101
+ "lisu": "Lisu",
102
+ "loma": "Loma",
103
+ "lycian": "Lyci",
104
+ "lydian": "Lydi",
105
+ "mahajani": "Mahj",
106
+ "makasar": "Maka",
107
+ "mandaic": "Mand",
108
+ "manichaean": "Mani",
109
+ "marchen": "Marc",
110
+ "mayan hieroglyphs": "Maya",
111
+ "medefaidrin": "Medf",
112
+ "mende kikakui": "Mend",
113
+ "meroitic cursive": "Merc",
114
+ "meroitic hieroglyphs": "Mero",
115
+ "malayalam": "Mlym",
116
+ "modi": "Modi",
117
+ "mongolian": "Mong",
118
+ "moon": "Moon",
119
+ "mro": "Mroo",
120
+ "meitei mayek": "Mtei",
121
+ "multani": "Mult",
122
+ "myanmar": "Mymr",
123
+ "nag mundari": "Nagm",
124
+ "nandinagari": "Nand",
125
+ "old north arabian": "Narb",
126
+ "nabataean": "Nbat",
127
+ "newa": "Newa",
128
+ "naxi dongba": "Nkdb",
129
+ "naxi geba": "Nkgb",
130
+ "n’ko": "Nkoo",
131
+ "nüshu": "Nshu",
132
+ "ogham": "Ogam",
133
+ "ol chiki": "Olck",
134
+ "ol onal": "Onao",
135
+ "old turkic": "Orkh",
136
+ "oriya": "Orya",
137
+ "osage": "Osge",
138
+ "osmanya": "Osma",
139
+ "old uyghur": "Ougr",
140
+ "palmyrene": "Palm",
141
+ "pau cin hau": "Pauc",
142
+ "proto-cuneiform": "Pcun",
143
+ "proto-elamite": "Pelm",
144
+ "old permic": "Perm",
145
+ "phags-pa": "Phag",
146
+ "inscriptional pahlavi": "Phli",
147
+ "psalter pahlavi": "Phlp",
148
+ "book pahlavi": "Phlv",
149
+ "phoenician": "Phnx",
150
+ "klingon": "Piqd",
151
+ "miao": "Plrd",
152
+ "inscriptional parthian": "Prti",
153
+ "proto-sinaitic": "Psin",
154
+ "ranjana": "Ranj",
155
+ "rejang": "Rjng",
156
+ "hanifi rohingya": "Rohg",
157
+ "rongorongo": "Roro",
158
+ "runic": "Runr",
159
+ "samaritan": "Samr",
160
+ "sarati": "Sara",
161
+ "old south arabian": "Sarb",
162
+ "saurashtra": "Saur",
163
+ "signwriting": "Sgnw",
164
+ "shavian": "Shaw",
165
+ "sharada": "Shrd",
166
+ "shuishu": "Shui",
167
+ "siddham": "Sidd",
168
+ "sidetic": "Sidt",
169
+ "khudawadi": "Sind",
170
+ "sinhala": "Sinh",
171
+ "sogdian": "Sogd",
172
+ "old sogdian": "Sogo",
173
+ "sora sompeng": "Sora",
174
+ "soyombo": "Soyo",
175
+ "sundanese": "Sund",
176
+ "sunuwar": "Sunu",
177
+ "syloti nagri": "Sylo",
178
+ "syriac": "Syrc",
179
+ "syriac (estrangelo variant)": "Syre",
180
+ "syriac (western variant)": "Syrj",
181
+ "syriac (eastern variant)": "Syrn",
182
+ "tagbanwa": "Tagb",
183
+ "takri": "Takr",
184
+ "tai le": "Tale",
185
+ "new tai lue": "Talu",
186
+ "tamil": "Taml",
187
+ "tangut": "Tang",
188
+ "tai viet": "Tavt",
189
+ "tai yo": "Tayo",
190
+ "telugu": "Telu",
191
+ "tengwar": "Teng",
192
+ "tifinagh": "Tfng",
193
+ "tagalog": "Tglg",
194
+ "thaana": "Thaa",
195
+ "thai": "Thai",
196
+ "tibetan": "Tibt",
197
+ "tirhuta": "Tirh",
198
+ "tangsa": "Tnsa",
199
+ "todri": "Todr",
200
+ "tolong siki": "Tols",
201
+ "toto": "Toto",
202
+ "tulu-tigalari": "Tutg",
203
+ "ugaritic": "Ugar",
204
+ "vai": "Vaii",
205
+ "visible speech": "Visp",
206
+ "vithkuqi": "Vith",
207
+ "warang citi": "Wara",
208
+ "wancho": "Wcho",
209
+ "woleai": "Wole",
210
+ "old persian": "Xpeo",
211
+ "sumero-akkadian cuneiform": "Xsux",
212
+ "yezidi": "Yezi",
213
+ "yi": "Yiii",
214
+ "zanabazar square": "Zanb"
215
+ }
216
+ module.exports = ScriptToCode;