Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
mololab
GitHub Repository: mololab/json-translator
Path: blob/master/src/index.ts
235 views
1
import { initializeCli } from './cli/cli';
2
import { plaintranslate } from './core/translator';
3
import { fileTranslator } from './core/json_file';
4
import { objectTranslator } from './core/json_object';
5
import {
6
TranslationConfig as TranslationConfigTemp,
7
TranslationModules as TranslationModulesTemp,
8
TranslationModule,
9
} from './modules/modules';
10
import { default_concurrency_limit, default_fallback } from './utils/micro';
11
12
const defaults: TranslationConfigTemp = {
13
moduleKey: 'google',
14
TranslationModule: TranslationModulesTemp['google'],
15
concurrencyLimit: default_concurrency_limit,
16
fallback: default_fallback,
17
cacheEnabled: false,
18
};
19
20
export async function translateWord(
21
word: string,
22
from: string,
23
to: string,
24
config: TranslationConfigTemp = defaults,
25
) {
26
return await plaintranslate(config, word, from, to, []);
27
}
28
29
export async function translateObject(
30
object: translatedObject,
31
from: string,
32
to: string[],
33
config: TranslationConfigTemp = defaults
34
): Promise<translatedObject | translatedObject[]> {
35
let hard_copy = JSON.parse(JSON.stringify(object));
36
return objectTranslator(config, hard_copy, from, to, []);
37
}
38
39
export async function translateFile(
40
objectPath: string,
41
from: string,
42
to: string[],
43
newFileName: string,
44
config: TranslationConfigTemp = defaults
45
) {
46
return fileTranslator(config, objectPath, from, to, newFileName);
47
}
48
49
export async function runCli() {
50
initializeCli();
51
}
52
53
// TYPES
54
export interface translatedObject {
55
[key: string]: any;
56
}
57
58
export { TranslationModule };
59
export { TranslationModules } from './modules/modules';
60
export type TranslationConfig = TranslationConfigTemp;
61
62