UNPKG

illyria-scraper

Version:

Google Translate scraper for Illyria Translate

686 lines (685 loc) 15.1 kB
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 {};