Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
mololab
GitHub Repository: mololab/json-translator
Path: blob/master/src/modules/modules.ts
235 views
1
import {
2
translateWithGoogle,
3
translateWithBing,
4
translateWithLibre,
5
translateWithArgos,
6
translateWithDeepL,
7
translateWithGoogle2,
8
translateWithGPT35Turbo,
9
translateWithGPT4o,
10
translateWithGPT4,
11
translateWithGPT4oMini,
12
translateWithGPT5,
13
translateWithGPT5Nano,
14
translateWithGPT5Mini,
15
translateWithGemma7B,
16
translateWithGemma9B,
17
translateWithMixtral8x7B,
18
translateWithLlama8B,
19
translateWithLlama70B,
20
translateWithLlamaCpp,
21
} from './functions';
22
import {
23
GoogleTranslateLanguages,
24
BingTranslateLanguages,
25
LibreTranslateLanguages,
26
ArgosTranslateLanguages,
27
DeepLTranslateLanguages,
28
GoogleTranslate2Languages,
29
GTPTranslateLanguages,
30
} from './languages';
31
32
export type TranslationModulesType = {
33
[key: string]: TranslationModule;
34
};
35
36
export type TranslationConfig = {
37
moduleKey: string;
38
TranslationModule: TranslationModule;
39
concurrencyLimit: number;
40
fallback: boolean;
41
cacheEnabled: boolean;
42
};
43
44
export interface TranslationModule {
45
name: string;
46
altName: string;
47
languages: Record<string, string>;
48
requirements?: string[];
49
init?: Function;
50
translate: Function;
51
onComplete?: Function;
52
}
53
54
export const TranslationModules: TranslationModulesType = {
55
google: {
56
name: 'Google Translate',
57
altName: `[FREE] Google Translate (104 languages)`,
58
languages: GoogleTranslateLanguages,
59
translate: translateWithGoogle,
60
},
61
google2: {
62
name: 'Google Translate 2',
63
altName: `[FREE] Google Translate 2 (104 languages)`,
64
languages: GoogleTranslate2Languages,
65
translate: translateWithGoogle2,
66
},
67
bing: {
68
name: 'Bing Translate',
69
altName: '[FREE] Bing Microsoft Translate (110 languages)',
70
languages: BingTranslateLanguages,
71
translate: translateWithBing,
72
},
73
libre: {
74
name: 'Libre Translate',
75
altName: `[FREE] Libre Translate (29 languages)`,
76
languages: LibreTranslateLanguages,
77
translate: translateWithLibre,
78
},
79
argos: {
80
name: 'Argos Translate',
81
altName: `[FREE] Argos Translate (17 languages)`,
82
languages: ArgosTranslateLanguages,
83
translate: translateWithArgos,
84
},
85
deepl: {
86
name: 'DeepL Translate',
87
altName: 'DeepL Translate (29 languages)',
88
requirements: ['"DEEPL_API_KEY" and "DEEPL_API_URL"(optional) as env'],
89
languages: DeepLTranslateLanguages,
90
translate: translateWithDeepL,
91
},
92
'gpt-4o': {
93
name: 'gpt-4o model',
94
altName: 'AI model: gpt-4o model (104 languages)',
95
requirements: ['"OPENAI_API_KEY" as env'],
96
languages: GTPTranslateLanguages,
97
translate: translateWithGPT4o,
98
},
99
'gpt-3.5-turbo': {
100
name: 'gpt-3.5-turbo model',
101
altName: 'AI model: gpt-3.5-turbo model (104 languages)',
102
requirements: ['"OPENAI_API_KEY" as env'],
103
languages: GTPTranslateLanguages,
104
translate: translateWithGPT35Turbo,
105
},
106
'gpt-4': {
107
name: 'gpt-4 model',
108
altName: 'AI model: gpt-4 model (104 languages)',
109
requirements: ['"OPENAI_API_KEY" as env'],
110
languages: GTPTranslateLanguages,
111
translate: translateWithGPT4,
112
},
113
'gpt-4o-mini': {
114
name: 'gpt-4o-mini model',
115
altName: 'AI model: gpt-4o-mini model (104 languages)',
116
requirements: ['"OPENAI_API_KEY" as env'],
117
languages: GTPTranslateLanguages,
118
translate: translateWithGPT4oMini,
119
},
120
'gpt-5': {
121
name: 'gpt-5 model',
122
altName: '\x1b[33m**NEW**\x1b[0m AI model: gpt-5 model (104 languages)',
123
requirements: ['"OPENAI_API_KEY" as env'],
124
languages: GTPTranslateLanguages,
125
translate: translateWithGPT5,
126
},
127
'gpt-5-nano': {
128
name: 'gpt-5-nano model',
129
altName:
130
'\x1b[33m**NEW**\x1b[0m AI model: gpt-5-nano model (104 languages)',
131
requirements: ['"OPENAI_API_KEY" as env'],
132
languages: GTPTranslateLanguages,
133
translate: translateWithGPT5Nano,
134
},
135
'gpt-5-mini': {
136
name: 'gpt-5-mini model',
137
altName:
138
'\x1b[33m**NEW**\x1b[0m AI model: gpt-5-mini model (104 languages)',
139
requirements: ['"OPENAI_API_KEY" as env'],
140
languages: GTPTranslateLanguages,
141
translate: translateWithGPT5Mini,
142
},
143
'gemma-7b': {
144
name: 'gemma-7b model',
145
altName: '\x1b[33m**NEW**\x1b[0m AI model: gemma-7b model',
146
requirements: ['"GROQ_API_KEY" as env'],
147
languages: GTPTranslateLanguages,
148
translate: translateWithGemma7B,
149
},
150
'gemma2-9b': {
151
name: 'gemma2-9b model',
152
altName: '\x1b[33m**NEW**\x1b[0m AI model: gemma2-9b model',
153
requirements: ['"GROQ_API_KEY" as env'],
154
languages: GTPTranslateLanguages,
155
translate: translateWithGemma9B,
156
},
157
'mixtral-8x7b': {
158
name: 'mixtral-8x7b model',
159
altName: '\x1b[33m**NEW**\x1b[0m AI model: mixtral-8x7b model',
160
requirements: ['"GROQ_API_KEY" as env'],
161
languages: GTPTranslateLanguages,
162
translate: translateWithMixtral8x7B,
163
},
164
'llama3-8b': {
165
name: 'llama3-8b model',
166
altName: '\x1b[33m**NEW**\x1b[0m AI model: llama3-8b model',
167
requirements: ['"GROQ_API_KEY" as env'],
168
languages: GTPTranslateLanguages,
169
translate: translateWithLlama8B,
170
},
171
'llama3-70b': {
172
name: 'llama3-70b model',
173
altName: '\x1b[33m**NEW**\x1b[0m AI model: llama3-70b model',
174
requirements: ['"GROQ_API_KEY" as env'],
175
languages: GTPTranslateLanguages,
176
translate: translateWithLlama70B,
177
},
178
'llama-cpp': {
179
name: 'llama.cpp model',
180
altName: '[FREE] AI model: llama.cpp model',
181
languages: GTPTranslateLanguages,
182
translate: translateWithLlamaCpp,
183
},
184
};
185
186