Glossary Forge
Project · agent skill · 2026
Glossary Forge is a free, open-source agent skill, written in Python, for translators of game mods and apps. It builds a translation glossary from the translations that already exist, and finds every term that has been translated in more than one way. It is part of his Localization Kit, alongside Loc Translate.
What it does
- Mines terms from three sources:
- name keys such as
item.nameandnpc.*; - "ไทย (English)" pairs written in the text;
- statistical alignment, which also works for languages without spaces between words, such as Thai, Japanese and Chinese.
- name keys such as
- Checks consistency. For each term it counts how many strings use the approved translation, and shows the ones that don't.
- Builds a review page,
l10n/glossary.html, that can be searched, filtered by status and sorted by issues or usage. - Exports CSV for the rest of the kit, TBX for CAT tools, or JSON. A strict
checkmode can block a release when terms are inconsistent.
A real run
The example in the README mines the Thai translation of the Stardew Valley mod GI Extra Locations – Redux. It found 146 terms, and caught Difficulty translated one way in three places and two different ways elsewhere, as "monster toughness" in one and "shop difficulty" in the other.
The Localization Kit
| Skill | What it does |
|---|---|
| loc-translate (free) | Translates locale files without breaking tokens, comments or layout |
| glossary-forge (free) | Mines a glossary and finds inconsistent terms |
| loc-qa (paid) | A release check for broken tokens, structure, glossary use, overflow and Thai particles |
| loc-sync (paid) | Finds new, changed and removed strings after the original mod updates |
All four share one project file (.l10n.json) and one glossary (l10n/glossary.csv). The kit grew out of his Stardew Valley Thai translations.
See also
Pictures
In the knowledge graph
Glossary Forge and the 14 things it is linked to. Open any dot for its page, or explore it in the full graph.
As data
Everything on this page is read from triples in the knowledge graph. These are the 27 it states about Glossary Forge, and 6 more its ontology implies; the console runs SPARQL over the whole graph, here in your browser.
@prefix id: <https://ask.chaipat.cc/id/> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix cj: <https://ask.chaipat.cc/ns#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . id:GlossaryForge a cj:Project ; rdfs:label "Glossary Forge" ; cj:description "Agent skill that builds a translation glossary from existing translations and flags terms translated two ways." ; cj:context id:OpenSource ; cj:repository "https://github.com/AppleBoiy/glossary-forge"^^xsd:anyURI ; cj:firstCommit "2026-10-27"^^xsd:date ; cj:lastCommit "2026-10-27"^^xsd:date ; cj:commitCount 2 ; cj:kind "agent skill" ; cj:license "MIT" ; cj:theme id:ThemeAgentSkills , id:ThemeLocalisation ; cj:uses id:Python , id:AgentSkillsStd , id:Localisation ; cj:tier 2 ; cj:implements id:TermMining ; cj:handles id:CSVFormat , id:TBXFormat , id:JSONFormat ; cj:about id:StardewValley ; cj:partOf id:LocalizationKit ; cj:mentions id:LocTranslate , id:StardewThai ; cj:article "https://ask.chaipat.cc/wiki/GlossaryForge"^^xsd:anyURI ; cj:activeIn id:Y2026 ; cj:activity _:b67 .


