PackageDescription: ExtraCatalogTools

Extra Catalog Tools

Last published: August 2, 2013 by 'randy'

Defines 1 Classes
Extends 1 Classes

# ExtraCatalogs

Alternative MessageCatalog for Visualworks Smalltalk that supports
XLIFF-format files.

ExtraCatalogs is licensed under the MIT license. See the Copyright
tab in the RB, the 'notice' property of this package, or the LICENSE
file on GitHub.

ExtraCatalogs' primary home is the
[Cincom Public Store Repository](
Check there for the latest version. It is also on

ExtraCatalogs is compatible with VW 7.7 and later. If you find any
incompatibilities with VW
7.7 or later, let me know (see below for contact information) or file
an issue on GitHub.

# ExtraCatalogsTools

ExtraCatalogsTools provides a simple UserMessageExtractor class
that can extracts `UserMessage`s from a compiled method.

ExtraCatalogsTools is intended to work alongside ExtraCatalogs, but
is actually completely independent and can be used on its own.

To use it, use the built-in facilities in Visualworks,
iterate all of the methods in your application that might contain
`UserMessage`s that need to be translated.

One way to do this is to start with `SystemUtils>>allBehaviorsDo:` and
filter the results based on whether the class might contain
`UserMessage`s that you care about.

For each method:

tree := aCompiledMethod mclass parseTreeFor: aCompiledMethod selector.
visitor := UserMessageExtractor new.
[visitor visitNode: tree] on: InformationSignal
do: [:ex | "Found a UserMessage that couldn't be extracted"
ex resume].
^visitor userMessages

## Understanding the Code

The only class of interest is `UserMessageExtractor`. Start from the
class comment.

# Contributing

I'm happy to receive bug fixes and improvements to this package. If
you'd like to contribute, please publish your changes as a "branch"
(non-integer) version in the Public Store Repository and contact me as
outlined below to let me know. I will merge your changes back into
the "trunk" as soon as I can review them.

# Credits

ExtraCatalogs was originally written by Travis Griggs, who has
graciously allowed me to take over maintenance of this package.

# Contact Information

If you have any questions about this package and how to use it, feel free to contact me.

* Web site:
* Blog: Courageous Software (
* E-mail: randy _at_ randycoulman _dot_ com
* Twitter: @randycoulman
* GitHub: randycoulman