After a bit of playing with HTML::Template I have the following proposal Templates stored in includes directory under templates subfolder, each module (ie search, circ, catalog, etc.) has another subfolder, then another subfolder for each template, and then subfolders for each version of that template. Includes Templates Search Opac Search default.tmpl polish.tmpl french.tmpl local.tmpl Librarian Search default.tmpl polish.tmpl french.tmpl local.tmpl Opac Results default.tmpl Librarian Results default.tmpl We could then have a preference order for choosing templates, ie: local french default If a local template is available, it is used first, then the french template, falling back on the default template if no other is available. I don't know if this is too complicated, or too simple. What do we do if we have three different "default" opac results templates? What about a per-user preference for different templates? Maybe language should be dealt with completely separately... Just airing some thoughts... Steve.