UNPKG

typedoc-plugin-markdown

Version:

A TypeDoc plugin that generates TypeScript API documentation as Markdown.

43 lines (41 loc) • 1.33 kB
import { de, en, fr, ja, ko, zh } from '../internationalization/index.js'; import { Application, Converter } from 'typedoc'; /** * Returns subset of translatable strings for the plugin. * * These will then be merged with the main set of TypeDoc string. * * @category Functions */ export function setupInternationalization(app) { const addTranslations = () => { app.internationalization.addTranslations(app.options.getValue('lang'), { ...getTranslatable(app), }); }; // The `merge` entry point strategy revives a project from JSON without ever // running the converter, so `EVENT_BEGIN` does not fire for it. Registering // on both events covers every strategy; adding the translations twice (as // `packages` does, converting each package before reviving) is harmless. app.converter.on(Converter.EVENT_BEGIN, addTranslations); app.on(Application.EVENT_PROJECT_REVIVE, addTranslations); } /** */ function getTranslatable(app) { const LOCALES = { en, de, fr, ko, ja, zh, }; return { ...LOCALES['en'], ...(app.lang !== 'en' && Object.keys(LOCALES).includes(app.lang) ? { ...LOCALES[app.lang] } : {}), ...app.options.getValue('locales')[app.lang], }; }