diff --git a/da_DK.ISO8859-1/share/xml/catalog b/da_DK.ISO8859-1/share/xml/catalog
new file mode 100644
index 0000000000..2422c1740c
--- /dev/null
+++ b/da_DK.ISO8859-1/share/xml/catalog
@@ -0,0 +1,2 @@
+PUBLIC "-//FreeBSD//DOCUMENT DocBook Stylesheet//EN"
+       "freebsd.dsl"
diff --git a/de_DE.ISO8859-1/share/xml/catalog b/de_DE.ISO8859-1/share/xml/catalog
new file mode 100644
index 0000000000..2422c1740c
--- /dev/null
+++ b/de_DE.ISO8859-1/share/xml/catalog
@@ -0,0 +1,2 @@
+PUBLIC "-//FreeBSD//DOCUMENT DocBook Stylesheet//EN"
+       "freebsd.dsl"
diff --git a/el_GR.ISO8859-7/share/xml/catalog b/el_GR.ISO8859-7/share/xml/catalog
new file mode 100644
index 0000000000..2422c1740c
--- /dev/null
+++ b/el_GR.ISO8859-7/share/xml/catalog
@@ -0,0 +1,2 @@
+PUBLIC "-//FreeBSD//DOCUMENT DocBook Stylesheet//EN"
+       "freebsd.dsl"
diff --git a/en_US.ISO8859-1/share/xml/catalog b/en_US.ISO8859-1/share/xml/catalog
new file mode 100644
index 0000000000..2422c1740c
--- /dev/null
+++ b/en_US.ISO8859-1/share/xml/catalog
@@ -0,0 +1,2 @@
+PUBLIC "-//FreeBSD//DOCUMENT DocBook Stylesheet//EN"
+       "freebsd.dsl"
diff --git a/es_ES.ISO8859-1/share/xml/catalog b/es_ES.ISO8859-1/share/xml/catalog
new file mode 100644
index 0000000000..2422c1740c
--- /dev/null
+++ b/es_ES.ISO8859-1/share/xml/catalog
@@ -0,0 +1,2 @@
+PUBLIC "-//FreeBSD//DOCUMENT DocBook Stylesheet//EN"
+       "freebsd.dsl"
diff --git a/fr_FR.ISO8859-1/share/xml/catalog b/fr_FR.ISO8859-1/share/xml/catalog
new file mode 100644
index 0000000000..2422c1740c
--- /dev/null
+++ b/fr_FR.ISO8859-1/share/xml/catalog
@@ -0,0 +1,2 @@
+PUBLIC "-//FreeBSD//DOCUMENT DocBook Stylesheet//EN"
+       "freebsd.dsl"
diff --git a/hu_HU.ISO8859-2/share/xml/catalog b/hu_HU.ISO8859-2/share/xml/catalog
new file mode 100644
index 0000000000..2422c1740c
--- /dev/null
+++ b/hu_HU.ISO8859-2/share/xml/catalog
@@ -0,0 +1,2 @@
+PUBLIC "-//FreeBSD//DOCUMENT DocBook Stylesheet//EN"
+       "freebsd.dsl"
diff --git a/it_IT.ISO8859-15/share/xml/catalog b/it_IT.ISO8859-15/share/xml/catalog
new file mode 100644
index 0000000000..2422c1740c
--- /dev/null
+++ b/it_IT.ISO8859-15/share/xml/catalog
@@ -0,0 +1,2 @@
+PUBLIC "-//FreeBSD//DOCUMENT DocBook Stylesheet//EN"
+       "freebsd.dsl"
diff --git a/ja_JP.eucJP/share/xml/catalog b/ja_JP.eucJP/share/xml/catalog
new file mode 100644
index 0000000000..2422c1740c
--- /dev/null
+++ b/ja_JP.eucJP/share/xml/catalog
@@ -0,0 +1,2 @@
+PUBLIC "-//FreeBSD//DOCUMENT DocBook Stylesheet//EN"
+       "freebsd.dsl"
diff --git a/mn_MN.UTF-8/share/xml/catalog b/mn_MN.UTF-8/share/xml/catalog
new file mode 100644
index 0000000000..2422c1740c
--- /dev/null
+++ b/mn_MN.UTF-8/share/xml/catalog
@@ -0,0 +1,2 @@
+PUBLIC "-//FreeBSD//DOCUMENT DocBook Stylesheet//EN"
+       "freebsd.dsl"
diff --git a/nl_NL.ISO8859-1/share/xml/catalog b/nl_NL.ISO8859-1/share/xml/catalog
new file mode 100644
index 0000000000..2422c1740c
--- /dev/null
+++ b/nl_NL.ISO8859-1/share/xml/catalog
@@ -0,0 +1,2 @@
+PUBLIC "-//FreeBSD//DOCUMENT DocBook Stylesheet//EN"
+       "freebsd.dsl"
diff --git a/pl_PL.ISO8859-2/share/xml/catalog b/pl_PL.ISO8859-2/share/xml/catalog
new file mode 100644
index 0000000000..2422c1740c
--- /dev/null
+++ b/pl_PL.ISO8859-2/share/xml/catalog
@@ -0,0 +1,2 @@
+PUBLIC "-//FreeBSD//DOCUMENT DocBook Stylesheet//EN"
+       "freebsd.dsl"
diff --git a/pt_BR.ISO8859-1/share/xml/catalog b/pt_BR.ISO8859-1/share/xml/catalog
new file mode 100644
index 0000000000..2422c1740c
--- /dev/null
+++ b/pt_BR.ISO8859-1/share/xml/catalog
@@ -0,0 +1,2 @@
+PUBLIC "-//FreeBSD//DOCUMENT DocBook Stylesheet//EN"
+       "freebsd.dsl"
diff --git a/ru_RU.KOI8-R/share/xml/catalog b/ru_RU.KOI8-R/share/xml/catalog
new file mode 100644
index 0000000000..2422c1740c
--- /dev/null
+++ b/ru_RU.KOI8-R/share/xml/catalog
@@ -0,0 +1,2 @@
+PUBLIC "-//FreeBSD//DOCUMENT DocBook Stylesheet//EN"
+       "freebsd.dsl"
diff --git a/share/mk/doc.docbook.mk b/share/mk/doc.docbook.mk
index 1106193ede..8ba1041ab9 100644
--- a/share/mk/doc.docbook.mk
+++ b/share/mk/doc.docbook.mk
@@ -74,13 +74,9 @@ MASTERDOC?=	${.CURDIR}/${DOC}.xml
 # Either jade or fop
 RENDERENGINE?=	jade
 
-.if defined(SPELLCHECK)
-DSLHTML?= ${DOC_PREFIX}/share/xml/spellcheck.dsl
-.endif
-
 XMLDECL?=	/usr/local/share/sgml/docbook/dsssl/modular/dtds/decls/xml.dcl
 
-DSLHTML?=	${DOC_PREFIX}/share/xml/default.dsl
+DSLHTML?=	${DOC_PREFIX}/share/xml/spellcheck.dsl
 DSLPRINT?=	${DOC_PREFIX}/share/xml/default.dsl
 DSLPGP?=	${DOC_PREFIX}/share/xml/pgp.dsl
 
@@ -91,8 +87,23 @@ XSLFO?=		${DOC_PREFIX}/share/xsl/freebsd-fo.xsl
 
 IMAGES_LIB?=
 
+.if exists(${PREFIX}/bin/jade) && !defined(OPENJADE)
+JADECATALOG?=	${PREFIX}/share/sgml/jade/catalog
+.else
+JADECATALOG?=	${PREFIX}/share/sgml/openjade/catalog
+.endif
+FREEBSDCATALOG=	${DOC_PREFIX}/share/xml/catalog
+LANGUAGECATALOG=${DOC_PREFIX}/${LANGCODE}/share/xml/catalog
+DSSSLCATALOG=	${PREFIX}/share/sgml/docbook/dsssl/modular/catalog
+.for c in ${LANGUAGECATALOG} ${FREEBSDCATALOG} ${DSSSLCATALOG} ${JADECATALOG}
+.if exists(${c})
+CATALOGS+=	-c ${c}
+.endif
+.endfor
+
 JADEOPTS?=	-ijade.compat -w no-valid ${JADEFLAGS} \
-		-D ${IMAGES_EN_DIR}/${DOC}s/${.CURDIR:T} -D ${CANONICALOBJDIR}
+		-D ${IMAGES_EN_DIR}/${DOC}s/${.CURDIR:T} -D ${CANONICALOBJDIR} \
+		${CATALOGS}
 XSLTPROCOPTS?=	--nonet
 
 KNOWN_FORMATS=	html html.tar html-split html-split.tar \
diff --git a/share/xml/catalog b/share/xml/catalog
index e5f8f771c1..f01953c0cf 100644
--- a/share/xml/catalog
+++ b/share/xml/catalog
@@ -4,13 +4,6 @@
   -- $FreeBSD$
   --
 
-  -- ...................................................................... --
-  -- Language neutral ..................................................... --
-
-  -- These identifiers are shared across all translations of the FreeBSD
-     documentation, even though the listed language is "EN"
-  --
-
 PUBLIC "-//FreeBSD//DTD DocBook XML V4.5-Based Extension//EN"
 	"freebsd45.dtd"
 
@@ -20,12 +13,6 @@ PUBLIC "-//FreeBSD//DOCUMENT DocBook Stylesheet//EN"
 PUBLIC "-//FreeBSD//DOCUMENT DocBook Language Neutral Stylesheet//EN"
 	"freebsd.dsl"
 
-PUBLIC "-//FreeBSD//DOCUMENT DocBook HTML Stylesheet//EN"
-	"freebsd-html.dsl"
-
-PUBLIC "-//FreeBSD//DOCUMENT DocBook HTML Lanugage Neutral Stylesheet//EN"
-	"freebsd-html.dsl"
-
 PUBLIC "-//FreeBSD//DOCUMENT DocBook Print Stylesheet//EN"
 	"freebsd-print.dsl"
 
@@ -37,86 +24,3 @@ PUBLIC "-//FreeBSD//DOCUMENT DocBook Common Stylesheet//EN"
 
 PUBLIC "-//FreeBSD//DOCUMENT DocBook Common Lanugage Neutral Stylesheet//EN"
 	"freebsd-common.dsl"
-
-PUBLIC  "-//FreeBSD//ENTITIES DocBook Author Entities//EN"
-	"authors.ent"
-
-PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"
-	"man-refs.ent"
-
-PUBLIC	"-//FreeBSD//ENTITIES DocBook Miscellaneous FreeBSD Entities//EN"
-	"freebsd.ent"
-
-PUBLIC "-//FreeBSD//ENTITIES DocBook Language Specific Entities//EN"
-	"l10n.ent"
-
-PUBLIC "-//FreeBSD//ENTITIES DocBook Language Neutral Entities//EN"
-	"l10n.ent"
-
-PUBLIC "-//FreeBSD//ENTITIES DocBook Trademark Entities//EN"
-	"trademarks.ent"
-
-PUBLIC "-//FreeBSD//ENTITIES DocBook URL Entities//EN"
-	"urls.ent"
-
-  -- ...................................................................... --
-  -- HTML docs ............................................................ --
-
-PUBLIC "-//FreeBSD//DTD HTML 4.01 Transitional-Based Extension//EN"
-       "html401-freebsd.dtd"
-
-PUBLIC "-//FreeBSD//ENTITIES ISO 8879:1986 Entity Set//EN"
-       "iso8879.ent"
-
-PUBLIC "-//FreeBSD//ENTITIES FreeBSD L10N Entities//EN"
-       "l10n.ent"
-
-PUBLIC "-//FreeBSD//ENTITIES FreeBSD Common Entities//EN"
-       "common.ent"
-
-PUBLIC "-//FreeBSD//ENTITIES FreeBSD Developers Entities//EN"
-       "developers.ent"
-
-PUBLIC "-//FreeBSD//ENTITIES FreeBSD Release Entities//EN"
-       "release.ent"
-
-PUBLIC "-//FreeBSD//ENTITIES FreeBSD Release L10N Entities//EN"
-       "release.l10n.ent"
-
-PUBLIC "-//FreeBSD//ENTITIES HTML FreeBSD Header L10N Entities//EN"
-       "header.l10n.ent"
-
-PUBLIC "-//FreeBSD//ENTITIES HTML FreeBSD Header Entities//EN"
-       "header.ent"
-
-PUBLIC "-//FreeBSD//ENTITIES HTML FreeBSD Navigation Bar L10N Entities//EN"
-       "navibar.l10n.ent"
-
-PUBLIC "-//FreeBSD//ENTITIES HTML FreeBSD Navigation Bar Entities//EN"
-       "navibar.ent"
-
-  -- ...................................................................... --
-  -- English specific ..................................................... --
-
-  -- These identifiers should only be used by English language versions of
-     the FreeBSD Documentation.
-
-     All other translations should base their FPIs on these, but change the
-     final parameter in the FPI to represent the target language, as
-     appropriate.  Do not change the rest of the FPI
-  --
-
-PUBLIC  "-//FreeBSD//ENTITIES DocBook Author Entities//EN"
-        "../../en_US.ISO8859-1/share/xml/authors.ent"
-
-PUBLIC  "-//FreeBSD//ENTITIES DocBook Team Entities//EN"
-        "../../en_US.ISO8859-1/share/xml/teams.ent"
-
-PUBLIC "-//FreeBSD//ENTITIES DocBook Glossary Entities//EN"
-	"../../en_US.ISO8859-1/share/xml/glossary.ent"
-
-PUBLIC "-//FreeBSD//ENTITIES DocBook Mailing List Entities//EN"
-        "../../en_US.ISO8859-1/share/xml/mailing-lists.ent"
-
-PUBLIC  "-//FreeBSD//ENTITIES DocBook Newsgroup Entities//EN"
-        "../../en_US.ISO8859-1/share/xml/newsgroups.ent"
diff --git a/sr_YU.ISO8859-2/share/xml/catalog b/sr_YU.ISO8859-2/share/xml/catalog
new file mode 100644
index 0000000000..2422c1740c
--- /dev/null
+++ b/sr_YU.ISO8859-2/share/xml/catalog
@@ -0,0 +1,2 @@
+PUBLIC "-//FreeBSD//DOCUMENT DocBook Stylesheet//EN"
+       "freebsd.dsl"
diff --git a/zh_CN.GB2312/share/xml/catalog b/zh_CN.GB2312/share/xml/catalog
new file mode 100644
index 0000000000..2422c1740c
--- /dev/null
+++ b/zh_CN.GB2312/share/xml/catalog
@@ -0,0 +1,2 @@
+PUBLIC "-//FreeBSD//DOCUMENT DocBook Stylesheet//EN"
+       "freebsd.dsl"
diff --git a/zh_TW.Big5/share/xml/catalog b/zh_TW.Big5/share/xml/catalog
new file mode 100644
index 0000000000..2422c1740c
--- /dev/null
+++ b/zh_TW.Big5/share/xml/catalog
@@ -0,0 +1,2 @@
+PUBLIC "-//FreeBSD//DOCUMENT DocBook Stylesheet//EN"
+       "freebsd.dsl"