Good Tools — Text & language engines (26 October 2026) All conversion runs on the visitor's device. No fonts are redistributed. 1. Bengali Bijoy / SutonnyMJ @abdalgolabs/ansi-unicode-converter 1.0.5 (MIT). https://www.npmjs.com/package/@abdalgolabs/ansi-unicode-converter https://github.com/Abdalgolabs/ansi-unicode-converter Source (CommonJS converted to a standalone ES module; conversion tables/algorithms retained): https://usegoodtools.com/text-language/vendor/bijoy.mjs Good Tools corrections: verified Sutonny conjuncts, dash mapping, transient joiner preservation. Licence: https://usegoodtools.com/text-language/vendor/Bijoy-LICENSE.txt 2. Hindi Kruti Dev 010 Adapted from Deepak Kamboj indianlanguageconverter, commit 12a87e365b0c2ee6e513343c0b740ac6a8c7d6d6. https://github.com/deepakkamboj/indianlanguageconverter The upstream project declares conversion algorithms under GPL-2.0. Good Tools distributes this standalone conversion engine under GPL-2.0. Changes: bounded substitutions, full-cluster matra/reph reordering, NFC, nukta reverse codes, typographic quote fixes for distinct sha/ssa, chai/chau. The complete preferred source form is the served JavaScript module: https://usegoodtools.com/text-language/vendor/krutidev.mjs Licence: https://usegoodtools.com/text-language/vendor/KrutiDev-LICENSE.txt Reference tables: SIL KrutiDev011.map (includes Kruti Dev 010 notes). https://github.com/silnrsi/wsresources/blob/master/scripts/Deva/legacy/kruti-dev-011/mappings/KrutiDev011.map Supplemental SIL International (2006) mapping data, MIT: https://usegoodtools.com/text-language/vendor/SIL-LICENSE.txt No font is included. DevLys and Chanakya are not supported. 3. Chinese OpenCCJS 1.4.2 core (MIT); official OpenCC dictionary data (Apache-2.0). Core source: https://usegoodtools.com/text-language/vendor/opencc-core.mjs Runtime: https://usegoodtools.com/text-language/opencc-runtime.mjs Data manifest and SHA-256 hashes: https://usegoodtools.com/text-language/opencc-data-manifest.mjs All dictionaries are pinned to official OpenCC revision: a806b775d038f9fa7c061f50d270115e7ad7da5b https://github.com/BYVoid/OpenCC/tree/a806b775d038f9fa7c061f50d270115e7ad7da5b/data/dictionary The runtime builds tables from those files and follows OpenCCJS config pipelines, including regional projections, reverse-variant preferences and extension characters. Reference result: all 392 applicable official regression vectors pass. OpenCCJS source: https://github.com/nk2028/opencc-js MIT: https://usegoodtools.com/text-language/vendor/OpenCC-LICENSE.txt Apache-2.0: https://usegoodtools.com/text-language/vendor/Apache-2.0.txt Third-party notices: https://usegoodtools.com/text-language/vendor/OpenCC-NOTICES.txt Fourteen pinned dictionary texts (about 1.3 MB total) load from jsDelivr with SHA-256 checks, credentials omitted and no input text sent. First load needs internet access; later conversions reuse the engine in the current tab. Hong Kong uses character variants; experimental HK vocabulary is disabled. 4. Japanese Good Tools selective Unicode-range conversion. Uses targeted NFKC only on halfwidth kana runs, NFC only on fullwidth kana runs. Other scripts and compatibility characters are not normalized. https://unicode.org/reports/tr15/ Source: https://usegoodtools.com/text-language/core.mjs General limits Plain text carries no font metadata. Legacy ASCII cannot be distinguished from ordinary Latin text reliably: the user must choose whole legacy input or select a legacy passage. Unicode script runs can be identified and are preserved or converted by direction. Encoding conversion is not translation, OCR, font installation or preservation of rich document formatting.