UNPKG

7.13 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../../src/targets/nsis/nsisLang.ts"],"names":[],"mappings":"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","sourcesContent":["import { asArray } from \"builder-util\"\nimport { bundledLanguages, langIdToName, lcid, toLangWithRegion } from \"builder-util/out/langs\"\nimport _debug from \"debug\"\nimport { outputFile, readFile } from \"fs-extra-p\"\nimport { safeLoad } from \"js-yaml\"\nimport * as path from \"path\"\nimport { PlatformPackager } from \"../../platformPackager\"\nimport { NsisOptions } from \"./nsisOptions\"\nimport { NsisScriptGenerator } from \"./nsisScriptGenerator\"\nimport { nsisTemplatesDir } from \"./nsisUtil\"\n\nconst debug = _debug(\"electron-builder:nsis\")\n\nexport class LangConfigurator {\n readonly isMultiLang: boolean\n readonly langs: Array<string>\n\n constructor(options: NsisOptions) {\n const rawList = options.installerLanguages\n\n if (options.unicode === false || rawList === null || (Array.isArray(rawList) && rawList.length === 0)) {\n this.isMultiLang = false\n }\n else {\n this.isMultiLang = options.multiLanguageInstaller !== false\n }\n\n if (this.isMultiLang) {\n this.langs = rawList == null ? bundledLanguages.slice() : asArray(rawList)\n .map(it => toLangWithRegion(it.replace(\"-\", \"_\")))\n }\n else {\n this.langs = [\"en_US\"]\n }\n }\n}\n\nexport function createAddLangsMacro(scriptGenerator: NsisScriptGenerator, langConfigurator: LangConfigurator) {\n const result: Array<string> = []\n for (const langWithRegion of langConfigurator.langs) {\n let name: string\n if (langWithRegion === \"zh_CN\") {\n name = \"SimpChinese\"\n }\n else if (langWithRegion === \"zh_TW\") {\n name = \"TradChinese\"\n }\n else if (langWithRegion === \"nb_NO\") {\n name = \"Norwegian\"\n }\n else if (langWithRegion === \"pt_BR\") {\n name = \"PortugueseBR\"\n }\n else {\n const lang = langWithRegion.substring(0, langWithRegion.indexOf(\"_\"))\n name = (langIdToName as any)[lang]\n if (name == null) {\n throw new Error(`Language name is unknown for ${lang}`)\n }\n\n if (name === \"Spanish\") {\n name = \"SpanishInternational\"\n }\n }\n result.push(`!insertmacro MUI_LANGUAGE \"${name}\"`)\n }\n\n scriptGenerator.macro(\"addLangs\", result)\n}\n\nasync function writeCustomLangFile(data: string, packager: PlatformPackager<any>) {\n const file = await packager.getTempFile(\"messages.nsh\")\n await outputFile(file, data)\n return file\n}\n\nexport async function addCustomMessageFileInclude(input: string, packager: PlatformPackager<any>, scriptGenerator: NsisScriptGenerator, langConfigurator: LangConfigurator) {\n const data = safeLoad(await readFile(path.join(nsisTemplatesDir, input), \"utf-8\"))\n const instructions = computeCustomMessageTranslations(data, langConfigurator).join(\"\\n\")\n debug(instructions)\n scriptGenerator.include(await writeCustomLangFile(instructions, packager))\n}\n\nfunction computeCustomMessageTranslations(messages: any, langConfigurator: LangConfigurator): Array<string> {\n const result: Array<string> = []\n const includedLangs = new Set(langConfigurator.langs)\n for (const messageId of Object.keys(messages)) {\n const langToTranslations = messages[messageId]\n const unspecifiedLangs = new Set(langConfigurator.langs)\n for (const lang of Object.keys(langToTranslations)) {\n const langWithRegion = toLangWithRegion(lang)\n\n if (!includedLangs.has(langWithRegion)) {\n continue\n }\n\n const value = langToTranslations[lang]\n if (value == null) {\n throw new Error(`${messageId} not specified for ${lang}`)\n }\n\n result.push(`LangString ${messageId} ${lcid[langWithRegion]} \"${value.replace(/\\n/g, \"$\\\\r$\\\\n\")}\"`)\n unspecifiedLangs.delete(langWithRegion)\n }\n\n if (langConfigurator.isMultiLang) {\n const defaultTranslation = langToTranslations.en.replace(/\\n/g, \"$\\\\r$\\\\n\")\n for (const langWithRegion of unspecifiedLangs) {\n result.push(`LangString ${messageId} ${lcid[langWithRegion]} \"${defaultTranslation}\"`)\n }\n }\n }\n return result\n}"],"sourceRoot":""}