diff --git a/message/message.go b/message/message.go
index edcd3bf..8b3bad1 100644
--- a/message/message.go
+++ b/message/message.go
@@ -17,6 +17,9 @@
 	"golang.org/x/text/message/catalog"
 )
 
+// TODO: allow more than one goroutine per printer. This will allow porting from
+// fmt much less error prone.
+
 // A Printer implements language-specific formatted I/O analogous to the fmt
 // package. Only one goroutine may use a Printer at the same time.
 type Printer struct {
@@ -28,12 +31,35 @@
 	// road if it the benefits do not seem to outweigh the disadvantages.
 }
 
+type options struct {
+	cat *catalog.Catalog
+	// TODO:
+	// - allow %s to print integers in written form (tables are likely too large
+	//   to enable this by default).
+	// - list behavior
+	//
+}
+
+// An Option defines an option of a Printer.
+type Option func(o *options)
+
+// Catalog defines the catalog to be used.
+func Catalog(c *catalog.Catalog) Option {
+	return func(o *options) { o.cat = c }
+}
+
 // NewPrinter returns a Printer that formats messages tailored to language t.
-func NewPrinter(t language.Tag) *Printer {
+func NewPrinter(t language.Tag, opts ...Option) *Printer {
+	options := &options{
+		cat: defaultCatalog,
+	}
+	for _, o := range opts {
+		o(options)
+	}
 	p := &Printer{printer{
 		tag: t,
 	}}
-	p.printer.catContext = defaultCatalog.Context(t, &p.printer)
+	p.printer.catContext = options.cat.Context(t, &p.printer)
 	return p
 }
 
diff --git a/message/message_test.go b/message/message_test.go
index 9c14813..e411415 100644
--- a/message/message_test.go
+++ b/message/message_test.go
@@ -133,11 +133,7 @@
 
 		for i, pt := range tc.test {
 			t.Run(fmt.Sprintf("%s:%d", tc.desc, i), func(t *testing.T) {
-				tag := language.MustParse(pt.tag)
-				p := Printer{printer{
-					tag: tag,
-				}}
-				p.printer.catContext = cat.Context(tag, &p.printer)
+				p := NewPrinter(language.MustParse(pt.tag), Catalog(cat))
 
 				if got := p.Sprintf(pt.key, pt.args...); got != pt.want {
 					t.Errorf("Sprintf(%q, %v) = %s; want %s",
