Bedework Theming and Stylesheet Discovery 4.0

As of 3.6 our default skin gathers up variables and points back to a common theme outside of the locale/browserType hierarchy. This is done to avoid duplicating themes at the bottom of every tree. The themes address the different layouts for mobile devices and string and locale settings files now address different languages.

We currently have:

CalSuite/
    locale/
        strings.xsl
        localeSettings.xsl
        browserType/
            default.xsl
            globals.xsl

We must produce this tree for every calendar suite, each locale, every user agent, etc -- branching even once in the tree with two calendar suites becomes difficult to scale.

This could be simplified to something like:

pubcal/
   index.xsl
   common/
   lang/
   themes/

The index.xsl would gather up the components based on the locale and requested theme. Each calendar suite could have a default theme. The common/ directory could hold global variables and one-off skins that are used across all themes (we'd need a mechanism to use them). We already duplicate skins in the lowest level of our calendar suites that are identical.

The goal here is to provide a more flexible and scalable approach to theming and dealing with language files.