illyria-scraper
Version:
Google Translate scraper for Illyria Translate
686 lines (685 loc) • 15.1 kB
TypeScript
declare const languages: {
auto: string;
af: string;
sq: string;
am: string;
ar: string;
hy: string;
as: string;
ay: string;
az: string;
bm: string;
eu: string;
be: string;
bn: string;
bho: string;
bs: string;
bg: string;
ca: string;
ceb: string;
ny: string;
zh: string;
zh_HANT: string;
co: string;
hr: string;
cs: string;
da: string;
dv: string;
doi: string;
nl: string;
en: string;
eo: string;
et: string;
ee: string;
tl: string;
fi: string;
fr: string;
fy: string;
gl: string;
ka: string;
de: string;
el: string;
gn: string;
gu: string;
ht: string;
ha: string;
haw: string;
iw: string;
hi: string;
hmn: string;
hu: string;
is: string;
ig: string;
ilo: string;
id: string;
ga: string;
it: string;
ja: string;
jw: string;
kn: string;
kk: string;
km: string;
rw: string;
gom: string;
ko: string;
kri: string;
ku: string;
ckb: string;
ky: string;
lo: string;
la: string;
lv: string;
ln: string;
lt: string;
lg: string;
lb: string;
mk: string;
mai: string;
mg: string;
ms: string;
ml: string;
mt: string;
mi: string;
mr: string;
"mni-Mtei": string;
lus: string;
mn: string;
my: string;
ne: string;
no: string;
or: string;
om: string;
ps: string;
fa: string;
pl: string;
pt: string;
pa: string;
qu: string;
ro: string;
ru: string;
sm: string;
sa: string;
gd: string;
nso: string;
sr: string;
st: string;
sn: string;
sd: string;
si: string;
sk: string;
sl: string;
so: string;
es: string;
su: string;
sw: string;
sv: string;
tg: string;
ta: string;
tt: string;
te: string;
th: string;
ti: string;
ts: string;
tr: string;
tk: string;
ak: string;
uk: string;
ur: string;
ug: string;
uz: string;
vi: string;
cy: string;
xh: string;
yi: string;
yo: string;
zu: string;
}, exceptions: {
source: {
zh_HANT: string;
};
target: {
auto: string;
};
}, mappings: {
request: {
zh: string;
zh_HANT: string;
};
response: {
"zh-CN": string;
"zh-TW": string;
};
};
export declare const LanguageType: {
readonly SOURCE: "source";
readonly TARGET: "target";
};
type LangType = (typeof LanguageType)[keyof typeof LanguageType];
/**
* Represents a valid language code in the system
*
* This type uses conditional types to filter out exception codes
* based on the language context (source or target)
*
* @template T - Optional language type (source/target)
*
* @example
* ```typescript
* // All language codes including "auto"
* const anyCode: LangCode = "en";
*
* // Source language codes (excludes zh_HANT which maps to zh)
* const sourceCode: LangCode<"source"> = "en";
*
* // Target language codes (excludes "auto" which maps to "en")
* const targetCode: LangCode<"target"> = "fr";
* ```
*/
export type LangCode<T extends LangType | void = void> = T extends LangType ? Exclude<keyof typeof languages, keyof (typeof exceptions)[T]> : keyof typeof languages;
/**
* Represents Google Translate-specific language codes
*
* Handles the mapping between internal codes and Google API expectations
*
* @template T - Language code or type
*
* @example
* ```typescript
* // Maps "zh" to "zh-CN" for Google API
* const googleCode: LangCodeGoogle = mapGoogleCode("zh");
* ```
*/
export type LangCodeGoogle<T extends LangCode | LangType = LangCode> = T extends LangType ? Exclude<LangCode<T>, keyof (typeof mappings)['request']> | keyof (typeof mappings)['response'] : Exclude<T, keyof (typeof mappings)['request']> | keyof (typeof mappings)['response'];
/**
* Verifies if a string is a valid language code in our system
*
* @param code - Code to validate (e.g. "en", "zh", "auto")
* @param langType - Optional language type to check against specific exceptions
* @returns Type guard confirming code is valid
*
* @example
* ```typescript
* // Check if valid for any context
* if (isValidCode("xyz")) {
* // Not valid, won't enter this block
* }
*
* // Check if valid as a source language
* if (isValidCode("auto", LanguageType.SOURCE)) {
* // Valid as source, will enter this block
* }
* ```
*/
export declare const isValidCode: <T extends LangType>(code: string | null | undefined, langType?: T) => code is LangCode<T>;
/**
* Replaces language codes with their exceptions based on language type
*
* Handles special cases like:
* - Converting Traditional Chinese (zh_HANT) to standard Chinese (zh) for source languages
* - Converting "auto" to "en" for target languages
*
* @param langType - Source or target language type
* @param langCode - Original language code
* @returns Potentially replaced language code appropriate for the context
*
* @example
* ```typescript
* // Traditional Chinese gets replaced with standard Chinese for source
* replaceExceptedCode(LanguageType.SOURCE, "zh_HANT") // returns "zh"
*
* // "auto" gets replaced with "en" for target
* replaceExceptedCode(LanguageType.TARGET, "auto") // returns "en"
* ```
*
* @see {@link exceptions} for the full mapping of exceptions
*/
export declare const replaceExceptedCode: <T extends LangType>(langType: T, langCode: LangCode) => LangCode<T>;
/**
* Maps internal language codes to Google Translate API codes
*
* Google Translate API uses slightly different codes for some languages.
* This function converts our internal codes to match Google's expectations.
*
* @param langCode - Internal language code
* @returns Google-compatible language code
*
* @example
* ```typescript
* mapGoogleCode("zh") // returns "zh-CN"
* mapGoogleCode("zh_HANT") // returns "zh-TW"
* mapGoogleCode("en") // returns "en" (unchanged)
* ```
*
* @see {@link mappings.request} for the full mapping table
*/
export declare const mapGoogleCode: <T extends LangCode>(langCode: T) => LangCodeGoogle<T>;
/**
* Maps Google Translate API response codes back to internal language codes
*
* The reverse operation of {@link mapGoogleCode} - converts Google's specific
* codes back to our internal representation for consistent handling.
*
* @param langCode - Google API language code
* @returns Internal language code
*
* @example
* ```typescript
* mapLingvaCode("zh-CN") // returns "zh"
* mapLingvaCode("zh-TW") // returns "zh"
* mapLingvaCode("en") // returns "en" (unchanged)
* ```
*
* @see {@link mappings.response} for the full mapping table
*/
export declare const mapLingvaCode: <T extends LangType>(langCode: LangCodeGoogle<T>) => LangCode<T>;
export declare const languageList: {
all: {
auto: string;
af: string;
sq: string;
am: string;
ar: string;
hy: string;
as: string;
ay: string;
az: string;
bm: string;
eu: string;
be: string;
bn: string;
bho: string;
bs: string;
bg: string;
ca: string;
ceb: string;
ny: string;
zh: string;
zh_HANT: string;
co: string;
hr: string;
cs: string;
da: string;
dv: string;
doi: string;
nl: string;
en: string;
eo: string;
et: string;
ee: string;
tl: string;
fi: string;
fr: string;
fy: string;
gl: string;
ka: string;
de: string;
el: string;
gn: string;
gu: string;
ht: string;
ha: string;
haw: string;
iw: string;
hi: string;
hmn: string;
hu: string;
is: string;
ig: string;
ilo: string;
id: string;
ga: string;
it: string;
ja: string;
jw: string;
kn: string;
kk: string;
km: string;
rw: string;
gom: string;
ko: string;
kri: string;
ku: string;
ckb: string;
ky: string;
lo: string;
la: string;
lv: string;
ln: string;
lt: string;
lg: string;
lb: string;
mk: string;
mai: string;
mg: string;
ms: string;
ml: string;
mt: string;
mi: string;
mr: string;
"mni-Mtei": string;
lus: string;
mn: string;
my: string;
ne: string;
no: string;
or: string;
om: string;
ps: string;
fa: string;
pl: string;
pt: string;
pa: string;
qu: string;
ro: string;
ru: string;
sm: string;
sa: string;
gd: string;
nso: string;
sr: string;
st: string;
sn: string;
sd: string;
si: string;
sk: string;
sl: string;
so: string;
es: string;
su: string;
sw: string;
sv: string;
tg: string;
ta: string;
tt: string;
te: string;
th: string;
ti: string;
ts: string;
tr: string;
tk: string;
ak: string;
uk: string;
ur: string;
ug: string;
uz: string;
vi: string;
cy: string;
xh: string;
yi: string;
yo: string;
zu: string;
};
source: {
auto: string;
af: string;
sq: string;
am: string;
ar: string;
hy: string;
as: string;
ay: string;
az: string;
bm: string;
eu: string;
be: string;
bn: string;
bho: string;
bs: string;
bg: string;
ca: string;
ceb: string;
ny: string;
zh: string;
zh_HANT: string;
co: string;
hr: string;
cs: string;
da: string;
dv: string;
doi: string;
nl: string;
en: string;
eo: string;
et: string;
ee: string;
tl: string;
fi: string;
fr: string;
fy: string;
gl: string;
ka: string;
de: string;
el: string;
gn: string;
gu: string;
ht: string;
ha: string;
haw: string;
iw: string;
hi: string;
hmn: string;
hu: string;
is: string;
ig: string;
ilo: string;
id: string;
ga: string;
it: string;
ja: string;
jw: string;
kn: string;
kk: string;
km: string;
rw: string;
gom: string;
ko: string;
kri: string;
ku: string;
ckb: string;
ky: string;
lo: string;
la: string;
lv: string;
ln: string;
lt: string;
lg: string;
lb: string;
mk: string;
mai: string;
mg: string;
ms: string;
ml: string;
mt: string;
mi: string;
mr: string;
"mni-Mtei": string;
lus: string;
mn: string;
my: string;
ne: string;
no: string;
or: string;
om: string;
ps: string;
fa: string;
pl: string;
pt: string;
pa: string;
qu: string;
ro: string;
ru: string;
sm: string;
sa: string;
gd: string;
nso: string;
sr: string;
st: string;
sn: string;
sd: string;
si: string;
sk: string;
sl: string;
so: string;
es: string;
su: string;
sw: string;
sv: string;
tg: string;
ta: string;
tt: string;
te: string;
th: string;
ti: string;
ts: string;
tr: string;
tk: string;
ak: string;
uk: string;
ur: string;
ug: string;
uz: string;
vi: string;
cy: string;
xh: string;
yi: string;
yo: string;
zu: string;
};
target: {
auto: string;
af: string;
sq: string;
am: string;
ar: string;
hy: string;
as: string;
ay: string;
az: string;
bm: string;
eu: string;
be: string;
bn: string;
bho: string;
bs: string;
bg: string;
ca: string;
ceb: string;
ny: string;
zh: string;
zh_HANT: string;
co: string;
hr: string;
cs: string;
da: string;
dv: string;
doi: string;
nl: string;
en: string;
eo: string;
et: string;
ee: string;
tl: string;
fi: string;
fr: string;
fy: string;
gl: string;
ka: string;
de: string;
el: string;
gn: string;
gu: string;
ht: string;
ha: string;
haw: string;
iw: string;
hi: string;
hmn: string;
hu: string;
is: string;
ig: string;
ilo: string;
id: string;
ga: string;
it: string;
ja: string;
jw: string;
kn: string;
kk: string;
km: string;
rw: string;
gom: string;
ko: string;
kri: string;
ku: string;
ckb: string;
ky: string;
lo: string;
la: string;
lv: string;
ln: string;
lt: string;
lg: string;
lb: string;
mk: string;
mai: string;
mg: string;
ms: string;
ml: string;
mt: string;
mi: string;
mr: string;
"mni-Mtei": string;
lus: string;
mn: string;
my: string;
ne: string;
no: string;
or: string;
om: string;
ps: string;
fa: string;
pl: string;
pt: string;
pa: string;
qu: string;
ro: string;
ru: string;
sm: string;
sa: string;
gd: string;
nso: string;
sr: string;
st: string;
sn: string;
sd: string;
si: string;
sk: string;
sl: string;
so: string;
es: string;
su: string;
sw: string;
sv: string;
tg: string;
ta: string;
tt: string;
te: string;
th: string;
ti: string;
ts: string;
tr: string;
tk: string;
ak: string;
uk: string;
ur: string;
ug: string;
uz: string;
vi: string;
cy: string;
xh: string;
yi: string;
yo: string;
zu: string;
};
};
export {};