ExtraCatalogs: Translations in Visualworks Smalltalk
I have re-released ExtraCatalogs, an alternative MessageCatalog for Visualworks Smalltalk that supports XLIFF-format files.
ExtraCatalogs introduces SimpleMessageCatalog
, an in-memory
MessageCatalog
implementation that works with the standard Visualworks
UserMessage
infrastructure for translating strings in a user
interface.
A SimpleMessageCatalog
can be read from and written to an XLIFF
file. The tools used by translation companies work with XLIFF
natively, so this is a convenient format for working with translation
services.
SimpleMessageCatalog
also provides methods for maintaining
translations over time. Using the provided API, it is possible to
produce a catalog containing just the new and changed strings since
the previous version of the catalog. This catalog is usually much
smaller than the original and thus less expensive to translate. Once
translated, it can then be used to update the original catalog.
ExtraCatalogs also includes the ExtraCatalogsTools package, which adds
some tool support for building message catalogs.
UserMessageExtractor
can be used to extract all of the
UserMessage
s from a method. See the package comment or Readme file
for more details. At present, ExtraCatalogsTools can be used
independently of ExtraCatalogs, so might be useful even if you don’t
want to use SimpleMessageCatalog
.
ExtraCatalogs was originally written by Travis Griggs, but I’ve taken over maintenance of it, updated the documentation and licensing, and re-released it.
ExtraCatalogs’ primary home is the Cincom Public Store Repository. Check there for the latest version. I’ve also put a snapshot of the current version of ExtraCatalogs on GitHub. The Readme file on GitHub includes documentation of the API of ExtraCatalogs if you’d like more information before diving in. I’ve also submitted it for inclusion as a contributed package in the next Visualworks release.
ExtraCatalogs is intended to be compatible with VW 7.7 and later.
ExtraCatalogs is licensed under the MIT license.