=== modified file 'configure.ac'
--- configure.ac	2011-05-26 17:06:00 +0000
+++ configure.ac	2011-06-16 13:23:22 +0000
@@ -3323,10 +3323,13 @@
 dnl Squid now has .po translation capability, given the right toolkit
 if test "x${enable_translation:=yes}" = "xyes" ; then
   AX_WITH_PROG([PO2HTML],[po2html])
+  AX_WITH_PROG([PO2TEXT],[po2text])
 else
   PO2HTML="off"
+  PO2TEXT="off"
 fi
 AC_SUBST(PO2HTML)
+AC_SUBST(PO2TEXT)
 
 dnl Squid now has limited locale handling ...
 dnl on error pages

=== modified file 'errors/Makefile.am'
--- errors/Makefile.am	2011-06-02 10:39:53 +0000
+++ errors/Makefile.am	2011-06-16 13:40:22 +0000
@@ -17,6 +17,7 @@
 CLEANFILES = $(TRANSLATE_LANGUAGES) translate-warn
 EXTRA_DIST = \
 	$(ERROR_TEMPLATES) \
+	templates/error-details.txt \
 	language.list \
 	template.list \
 	aliases alias-link.sh alias-upgrade errorpage.css TRANSLATORS COPYRIGHT
@@ -46,10 +47,11 @@
 	    mkdir -p $(top_builddir)/errors/$$lang; \
 	    echo -n "Translate '$$lang' ..."; \
 	    for f in $(ERROR_TEMPLATES); do \
-			page=`basename $$f`; \
-			$(PO2HTML) $(NOTIDY) --progress=none -i $(top_srcdir)/errors/$$lang.po -t $(top_srcdir)/errors/$$f >$(top_builddir)/errors/$$lang/$$page || exit 1; \
-		done; \
-		echo "done."; \
+		page=`basename $$f`; \
+		$(PO2HTML) $(NOTIDY) --progress=none -i $(top_srcdir)/errors/$$lang.po -t $(top_srcdir)/errors/$$f >$(top_builddir)/errors/$$lang/$$page || exit 1; \
+	    done; \
+	    $(PO2TEXT) -t $(top_srcdir)/errors/templates/error-details.txt -i $(top_srcdir)/errors/$$lang.po > $(top_builddir)/errors/$$l/error-details.txt; || exit 1; \
+	    echo "done."; \
 	fi; \
 	touch $@
 
@@ -70,7 +72,7 @@
 	    if test -d $(srcdir)/$$l || test -d $(builddir)/$$l; then \
 		$(mkinstalldirs) $(DESTDIR)$(DEFAULT_ERROR_DIR)/$$l; \
 	    fi; \
-	    for f in $(ERROR_TEMPLATES); do \
+	    for f in $(ERROR_TEMPLATES) templates/error-details.txt; do \
 		page=`basename $$f`; \
 		if test -f $(builddir)/$$l/$$page; then \
 		    echo "$(INSTALL_DATA) $(builddir)/$$l/$$page $(DESTDIR)$(DEFAULT_ERROR_DIR)/$$l"; \
@@ -91,14 +93,14 @@
 	  l=`basename $$l .lang`; \
 	  echo "Located $$l for uninstall ..."; \
 	  if test -d $(srcdir)/$$l; then \
-		for f in $(srcdir)/$$l/ERR_*; do \
+		for f in $(srcdir)/$$l/ERR_* $(srcdir)/$$l/error-details.txt; do \
 			if test -f $(DESTDIR)$(DEFAULT_ERROR_DIR)/$$l/`basename $$f`; then \
 		        	$(RM) $(DESTDIR)$(DEFAULT_ERROR_DIR)/$$l/`basename $$f`; \
 			fi; \
 		done; \
 	  fi ; \
 	  if test -d $(builddir)/$$l; then \
-		for f in $(builddir)/$$l/ERR_*; do \
+		for f in $(builddir)/$$l/ERR_* $(builddir)/$$l/error-details.txt; do \
 			if test -f $(DESTDIR)$(DEFAULT_ERROR_DIR)/$$l/`basename $$f`; then \
 		        	$(RM) $(DESTDIR)$(DEFAULT_ERROR_DIR)/$$l/`basename $$f`; \
 			fi; \
@@ -119,8 +121,8 @@
 	  lang=`basename $$lang .lang`; \
 	  if test -d $$lang ; then \
 		mkdir -p $(distdir)/$$lang; \
-		cp -p $(top_builddir)/errors/$$lang/ERR_*  $(distdir)/$$lang \
-		  || exit 1; \
+		cp -p $(top_builddir)/errors/$$lang/ERR_*  $(distdir)/$$lang || exit 1; \
+		cp -p $(top_builddir)/errors/$$lang/error-details.txt $(distdir)/$$lang || exit 1; \
 	  fi; \
 	done
 

=== modified file 'scripts/update-pot.sh'
--- scripts/update-pot.sh	2010-01-12 05:31:55 +0000
+++ scripts/update-pot.sh	2011-06-16 13:57:38 +0000
@@ -17,11 +17,18 @@
 # make a temp directory for all our workings...
 mkdir pot
 
-# Generate per-page disctionaries ...
+# Generate per-page dictionaries ...
 for f in `ls -1 ./templates/`; do
-	if test "${f}" != "generic" ; then
+	case ${f} in
+	error-details.txt)
+		../scripts/mk-error-details-po.pl ./templates/${f} > ./pot/${f}.pot
+		;;
+	ERR_*)
 		html2po -i ./templates/${f} -P --duplicates=merge -o ./pot/${f}.pot
-	fi
+		;;
+	*)
+		echo "SKIP: ${f}"
+	esac
 done
 
 # merge and sort the per-page .pot into a single master