You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lo...@apache.org on 2018/11/21 09:04:27 UTC

[myfaces-tobago] branch master updated (372f169 -> 3ca07ab)

This is an automated email from the ASF dual-hosted git repository.

lofwyr pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/myfaces-tobago.git.


    from 372f169  improve demo
     new 7a68b6b  comment: tomee plugin has a new groupId since 7
     new 3ca07ab  TOBAGO-1931: TobagoBundle class doesn't work correctly

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 tobago-example/pom.xml                             |   1 +
 .../myfaces/tobago/example/demo/ApiController.java |  15 +
 .../tobago/example/demo/DemoController.java        |  32 --
 .../tobago/example/demo/NavigationNode.java        |   9 +-
 .../myfaces/tobago/example/demo/Salutation.java    |  12 +-
 .../myfaces/tobago/example/demo/ServerInfo.java    |  10 -
 .../tobago/example/demo/ThemeController.java       |  26 +-
 .../example/demo/CharlottevilleBundle.properties   |   1 +
 .../tobago/example/demo/DemoBundle.properties      | 335 ++++-----------------
 .../tobago/example/demo/DemoBundle_de.properties   | 108 -------
 .../tobago/example/demo/DemoBundle_en.properties   |   4 -
 .../tobago/example/demo/DemoBundle_ja.properties   |   4 -
 .../tobago/example/demo/DemoBundle_ru.properties   |   4 -
 .../example/demo/RoxboroughBundle.properties       |   1 +
 .../example/demo/ScarboroughBundle.properties      |   1 +
 .../tobago/example/demo/SpeysideBundle.properties  |   1 +
 .../tobago/example/demo/StandardBundle.properties  |   1 +
 .../example/demo/TranslatedBundle.properties       |   2 +
 .../example/demo/TranslatedBundle_de.properties    |   2 +
 .../example/demo/TranslatedBundle_de_AT.properties |   2 +
 .../example/demo/TranslatedBundle_de_CH.properties |   2 +
 .../example/demo/TranslatedBundle_de_DE.properties |   2 +
 .../example/demo/TranslatedBundle_en.properties    |   3 +
 .../example/demo/TranslatedBundle_en_GB.properties |   3 +
 .../example/demo/TranslatedBundle_en_US.properties |   3 +
 .../example/demo/TranslatedBundle_es.properties    |   3 +
 .../example/demo/TranslatedBundle_ja.properties    |   2 +
 .../example/demo/TranslatedBundle_ja_JP.properties |   2 +
 .../example/demo/TranslatedBundle_ru.properties    |   2 +
 .../example/demo/TranslatedBundle_ru_RU.properties |   2 +
 .../example/demo/TranslatedBundle_zh.properties    |   2 +
 .../example/demo/TranslatedBundle_zh_TW.properties |   2 +
 .../src/main/webapp/WEB-INF/faces-config.xml       |  20 ++
 .../10-getting-started/getting-started.xhtml       |   1 -
 .../{new-in-4-3.xhtml => tobago-4.3.xhtml}         |   1 -
 .../{new-in-4-2.xhtml => tobago-4.2.xhtml}         |   1 -
 .../{new-in-4-1.xhtml => tobago-4.1.xhtml}         |   1 -
 .../{new-in-4-0.xhtml => tobago-4.xhtml}           |   5 +-
 .../{new-in-3-1.xhtml => tobago-3.1.xhtml}         |   1 -
 .../{new-in-3-0.xhtml => tobago-3.xhtml}           |  10 +-
 .../{new-in-2-2.xhtml => tobago-2.2.xhtml}         |   1 -
 .../{new-in-2-0.xhtml => tobago-2.xhtml}           |   2 +-
 .../content/10-intro/30-whats-new/whats-new.xhtml  |  33 +-
 .../{migration50.xhtml => 4.0-to-5.0.xhtml}        |   1 -
 .../{migration40.xhtml => 3.0-to-4.0.xhtml}        |   1 -
 .../{migration30.xhtml => 2.0-to-3.0.xhtml}        |   2 +-
 .../{migration20.xhtml => 1.5-to-2.0.xhtml}        |   2 +-
 .../{migration15.xhtml => 1.0-to-1.5.xhtml}        |   2 +-
 .../content/10-intro/50-migration/migration.xhtml  |  21 +-
 .../10-intro/60-compatibility/compatibility.xhtml  |   1 -
 .../main/webapp/content/10-intro/70-faq/faq.xhtml  |   1 -
 .../main/webapp/content/10-intro/80-api/api.xhtml  |   1 -
 .../content/10-intro/85-download/download.xhtml    |   1 -
 .../90-release-checklist/release-checklist.xhtml   |   1 -
 .../src/main/webapp/content/10-intro/intro.xhtml   |   1 -
 .../content/20-component/010-input/10-in/in.xhtml  |   4 +-
 .../010-input/20-suggest/suggest.xhtml             |   8 +-
 .../010-input/30-textarea/textarea.xhtml           |   4 +-
 .../20-component/010-input/40-date/date.xhtml      |   4 +-
 .../010-input/50-input-group/group.xhtml           |   3 +-
 .../80-stars/{stars.xhtml => 5-star-rating.xhtml}  |   4 +-
 .../content/20-component/010-input/input.xhtml     |  12 +-
 .../20-component/020-output/10-out/out.xhtml       |   4 +-
 .../20-component/020-output/20-label/label.xhtml   |   4 +-
 .../20-component/020-output/25-badge/badge.xhtml   |   6 +-
 .../020-output/30-messages/messages.xhtml          |   4 +-
 .../20-component/020-output/40-image/image.xhtml   |   4 +-
 .../20-component/020-output/45-figure/figure.xhtml |   4 +-
 .../020-output/50-progress/progress.xhtml          |   4 +-
 .../20-component/020-output/60-object/object.xhtml |   4 +-
 .../content/20-component/020-output/output.xhtml   |  15 +-
 .../checkbox.test.js}                              |   0
 ...{selectBooleanCheckbox.xhtml => checkbox.xhtml} |   4 +-
 .../toggle.test.js}                                |   0
 .../{selectBooleanToggle.xhtml => toggle.xhtml}    |   4 +-
 .../{selectOneChoice.test.js => dropdown.test.js}  |   0
 .../{selectOneChoice.xhtml => dropdown.xhtml}      |   8 +-
 .../{selectOneRadio.test.js => radio.test.js}      |   0
 .../{selectOneRadio.xhtml => radio.xhtml}          |   6 +-
 .../{selectOneListbox.test.js => listbox.test.js}  |   0
 .../{selectOneListbox.xhtml => listbox.xhtml}      |   8 +-
 ...ManyCheckbox.test.js => multi-checkbox.test.js} |   0
 ...lectManyCheckbox.xhtml => multi-checkbox.xhtml} |   8 +-
 ...selectManyListbox.xhtml => multi-listbox.xhtml} |   8 +-
 .../{selectManyShuttle.xhtml => shuttle.xhtml}     |   8 +-
 .../content/20-component/030-select/select.xhtml   |  18 +-
 .../button-and-link.xhtml}                         |  10 +-
 .../{00-button+link => 00-button-link}/sample.html |   0
 .../sample_de.html                                 |   0
 .../040-command/10-default/default-command.xhtml   |   4 +-
 .../{buttons.test.js => button-group.test.js}      |   0
 .../{buttons.xhtml => button-group.xhtml}          |   8 +-
 .../{buttons-customizer.xhtml => customizer.xhtml} |   2 +-
 .../25-links/{links.xhtml => link-group.xhtml}     |  10 +-
 .../content/20-component/040-command/command.xhtml |   6 +-
 .../20-component/050-container/10-box/box.xhtml    |  11 +-
 .../050-container/20-panel/panel.xhtml             |   4 +-
 .../050-container/30-separator/separator.xhtml     |   2 +-
 .../050-container/40-section/section.xhtml         |   4 +-
 .../header-and-footer.xhtml}                       |   2 +-
 .../x-header-footer-example.xhtml                  |   0
 .../20-component/050-container/60-bar/bar.xhtml    |   4 +-
 .../20-component/050-container/container.xhtml     |  12 +-
 .../content/20-component/060-popup/popup.xhtml     |   8 +-
 .../070-tab/00-client/tab-client.xhtml             |   8 +-
 .../20-component/070-tab/01-ajax/tab-ajax.xhtml    |   8 +-
 .../070-tab/02-server/tab-server.xhtml             |   8 +-
 .../070-tab/{tab.test.js => tab-group.test.js}     |   0
 .../070-tab/{tab.xhtml => tab-group.xhtml}         |   8 +-
 .../080-sheet/10-sort/sheet-sorting.xhtml          |   6 +-
 .../20-selector/sheet-column-selector.xhtml        |   6 +-
 .../080-sheet/30-event/sheet-event.xhtml           |   4 +-
 .../080-sheet/35-markup/sheet-markup.xhtml         |   2 +-
 .../080-sheet/50-filter/sheet-filter.xhtml         |   8 +-
 .../55-staticheader/sheet-static-header.xhtml      |   8 +-
 .../60-multiheader/sheet-multi-header.xhtml        |   8 +-
 .../080-sheet/70-tree/sheet-tree.xhtml             |   6 +-
 .../080-sheet/80-editable/sheet-editable.xhtml     |   6 +-
 .../content/20-component/080-sheet/sheet.xhtml     |  20 +-
 .../20-component/080-sheet/x-sheet-nested.xhtml    |   2 +-
 .../090-tree/00-command/tree-command-types.xhtml   |   4 +-
 .../090-tree/01-select/tree-select.xhtml           |   8 +-
 .../090-tree/02-editor/tree-editor.xhtml           |   2 +-
 .../20-component/090-tree/03-menu/tree-menu.xhtml  |   1 -
 .../090-tree/04-listbox/tree-listbox.xhtml         |   4 +-
 .../content/20-component/090-tree/tree.xhtml       |  35 ++-
 .../100-upload/{upload.xhtml => file-upload.xhtml} |   4 +-
 .../00-tinymce/{tinymce.xhtml => tiny-mce.xhtml}   |   2 +-
 .../{ckeditor.xhtml => ck-editor.xhtml}            |   2 +-
 .../20-component/110-wysiwyg/wysiwyg-editor.xhtml  |   2 +-
 .../webapp/content/20-component/component.xhtml    |   2 +-
 .../06-validation/00/content-validation.xhtml      |   6 +-
 .../{validation-jsr303.test.js => jsr-303.test.js} |   0
 .../01/{validation-jsr303.xhtml => jsr-303.xhtml}  |   2 +-
 .../30-concept/06-validation/02/severity.xhtml     |   1 -
 .../30-concept/06-validation/validation.xhtml      |   4 +-
 .../30-concept/07-conversion/conversion.xhtml      |   2 +-
 .../{form-required.test.js => required.test.js}    |   0
 .../{form-required.xhtml => required.xhtml}        |   4 +-
 .../20-ajax/{form-ajax.test.js => ajax.test.js}    |   0
 .../20-ajax/{form-ajax.xhtml => ajax.xhtml}        |   7 +-
 .../webapp/content/30-concept/08-form/form.xhtml   |   6 +-
 .../webapp/content/30-concept/10-theme/theme.xhtml |  10 +-
 .../content/30-concept/14-locale/locale.xhtml      |  17 +-
 .../30-concept/15-conversation/conversation.xhtml  |   2 +-
 .../30-concept/16-layout/10-flow/flow-layout.xhtml |   4 +-
 .../30-concept/16-layout/20-flex/flex-layout.xhtml |   4 +-
 .../16-layout/30-segment/segment-layout.xhtml      |   4 +-
 .../16-layout/40-labeled/labeled-layout.xhtml      |  16 +-
 .../30-concept/16-layout/50-grid/grid-layout.xhtml |   1 -
 .../{message-Layout.xhtml => message-layout.xhtml} |   0
 .../content/30-concept/16-layout/layout.xhtml      |  10 +-
 .../content/30-concept/20-format/format.xhtml      |  32 +-
 .../21-error/{error.xhtml => error-handling.xhtml} |  34 ++-
 .../22-exception-handler/exception-handler.xhtml   |   2 +-
 .../30-concept/23-transition/transition.xhtml      |   5 +-
 .../content/30-concept/30-behavior/behavior.xhtml  |   4 +-
 .../{partial.xhtml => partial-ajax.xhtml}          |   0
 .../content/30-concept/51-for-each/for-each.xhtml  |   2 +-
 .../00-collapsible-box/collapsible-box.xhtml       |   4 +-
 .../10-collapsible-popup/collapsible-popup.xhtml   |   6 +-
 .../20-collapsible-panel/collapsible-panel.xhtml   |   4 +-
 .../collapsible-section.xhtml                      |   4 +-
 .../30-concept/53-collapsible/collapsible.xhtml    |  18 +-
 .../30-concept/65-accessKey/accessKey.xhtml        |  16 +-
 .../70-dataAttribute/dataAttribute.xhtml           |   4 +-
 .../content/30-concept/75-resize/resize.xhtml      |   1 +
 .../30-concept/80-security/20-roles/roles.xhtml    |   2 +-
 .../30-concept/80-security/20-roles/x-login.xhtml  |   4 +-
 .../content/30-concept/80-security/security.xhtml  |   6 +-
 .../main/webapp/content/30-concept/concept.xhtml   |   2 +-
 .../webapp/content/35-deprecated/10-tx/tx.xhtml    |   6 +-
 .../15-suggest-method/suggest-method.xhtml         |   4 +-
 .../content/35-deprecated/20-toolBar/toolBar.xhtml |  16 +-
 .../content/35-deprecated/25-menubar/menubar.xhtml |   5 +-
 .../webapp/content/35-deprecated/deprecated.xhtml  |   2 +-
 .../webapp/content/40-test/1040-date/date.xhtml    |   3 -
 .../3000-sheet/10-sheet-types/sheet-types.xhtml    |   2 +-
 .../3000-sheet/20-1000-entries/1000-entries.xhtml  |   2 +-
 .../4050-ajax-dropdown/ajax-dropdown.xhtml         |   2 +-
 .../40-test/4000-button+link/button+link.xhtml     |   1 -
 .../40-test/4000-button+link/x-action.xhtml        |   2 +-
 .../content/40-test/4000-button+link/x-link.xhtml  |   2 +-
 .../4000-button+link/button+link.xhtml             |   2 +-
 .../60000-manual/4500-suggest/suggest.xhtml        |   1 -
 .../5000-lengthOfInputs/lengthOfInputs.xhtml       |   2 +-
 .../content/40-test/60000-manual/manual.xhtml      |   2 +-
 .../content/40-test/6500-behavior/behavior.xhtml   |   2 -
 .../webapp/content/40-test/90000-attic/attic.xhtml |   2 +-
 .../image/{richmond => roxborough}/theme-photo.jpg | Bin
 .../tobago-example-demo/src/main/webapp/init.xhtml |   2 +-
 .../src/main/webapp/login.xhtml                    |   2 +-
 .../tobago-example-demo/src/main/webapp/main.xhtml |   9 +-
 .../tobago-example-demo/src/main/webapp/menu.xhtml |  23 +-
 .../src/main/webapp/navigation.xhtml               |   2 +-
 .../standard/property/demo.properties.xml          |  23 --
 .../richmond/standard/property/demo.properties.xml |  23 --
 .../standard/property/demo.properties.xml          |  23 --
 .../speyside/standard/property/demo.properties.xml |  24 --
 199 files changed, 597 insertions(+), 973 deletions(-)
 create mode 100644 tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/CharlottevilleBundle.properties
 delete mode 100644 tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/DemoBundle_de.properties
 delete mode 100644 tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/DemoBundle_en.properties
 delete mode 100644 tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/DemoBundle_ja.properties
 delete mode 100644 tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/DemoBundle_ru.properties
 create mode 100644 tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/RoxboroughBundle.properties
 create mode 100644 tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/ScarboroughBundle.properties
 create mode 100644 tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/SpeysideBundle.properties
 create mode 100644 tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/StandardBundle.properties
 create mode 100644 tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle.properties
 create mode 100644 tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_de.properties
 create mode 100644 tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_de_AT.properties
 create mode 100644 tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_de_CH.properties
 create mode 100644 tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_de_DE.properties
 create mode 100644 tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_en.properties
 create mode 100644 tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_en_GB.properties
 create mode 100644 tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_en_US.properties
 create mode 100644 tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_es.properties
 create mode 100644 tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_ja.properties
 create mode 100644 tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_ja_JP.properties
 create mode 100644 tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_ru.properties
 create mode 100644 tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_ru_RU.properties
 create mode 100644 tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_zh.properties
 create mode 100644 tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_zh_TW.properties
 rename tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/67-new-in-4-3/{new-in-4-3.xhtml => tobago-4.3.xhtml} (97%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/68-new-in-4-2/{new-in-4-2.xhtml => tobago-4.2.xhtml} (96%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/69-new-in-4-1/{new-in-4-1.xhtml => tobago-4.1.xhtml} (96%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/70-new-in-4-0/{new-in-4-0.xhtml => tobago-4.xhtml} (98%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/79-new-in-3-1/{new-in-3-1.xhtml => tobago-3.1.xhtml} (96%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/80-new-in-3-0/{new-in-3-0.xhtml => tobago-3.xhtml} (96%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/88-new-in-2-2/{new-in-2-2.xhtml => tobago-2.2.xhtml} (96%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/90-new-in-2-0/{new-in-2-0.xhtml => tobago-2.xhtml} (99%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/95-migration/{migration50.xhtml => 4.0-to-5.0.xhtml} (97%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/96-migration/{migration40.xhtml => 3.0-to-4.0.xhtml} (99%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/97-migration/{migration30.xhtml => 2.0-to-3.0.xhtml} (99%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/98-migration/{migration20.xhtml => 1.5-to-2.0.xhtml} (99%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/99-migration/{migration15.xhtml => 1.0-to-1.5.xhtml} (99%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/80-stars/{stars.xhtml => 5-star-rating.xhtml} (96%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/{15-selectBooleanToggle/selectBooleanToggle.test.js => 10-selectBooleanCheckbox/checkbox.test.js} (100%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/10-selectBooleanCheckbox/{selectBooleanCheckbox.xhtml => checkbox.xhtml} (95%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/{10-selectBooleanCheckbox/selectBooleanCheckbox.test.js => 15-selectBooleanToggle/toggle.test.js} (100%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/15-selectBooleanToggle/{selectBooleanToggle.xhtml => toggle.xhtml} (95%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/20-selectOneChoice/{selectOneChoice.test.js => dropdown.test.js} (100%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/20-selectOneChoice/{selectOneChoice.xhtml => dropdown.xhtml} (93%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/30-selectOneRadio/{selectOneRadio.test.js => radio.test.js} (100%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/30-selectOneRadio/{selectOneRadio.xhtml => radio.xhtml} (96%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/40-selectOneListbox/{selectOneListbox.test.js => listbox.test.js} (100%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/40-selectOneListbox/{selectOneListbox.xhtml => listbox.xhtml} (92%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/50-selectManyCheckbox/{selectManyCheckbox.test.js => multi-checkbox.test.js} (100%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/50-selectManyCheckbox/{selectManyCheckbox.xhtml => multi-checkbox.xhtml} (95%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/60-selectManyListbox/{selectManyListbox.xhtml => multi-listbox.xhtml} (92%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/70-selectManyShuttle/{selectManyShuttle.xhtml => shuttle.xhtml} (94%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/{00-button+link/button+link.xhtml => 00-button-link/button-and-link.xhtml} (96%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/{00-button+link => 00-button-link}/sample.html (100%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/{00-button+link => 00-button-link}/sample_de.html (100%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/20-buttons/{buttons.test.js => button-group.test.js} (100%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/20-buttons/{buttons.xhtml => button-group.xhtml} (92%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/21-buttons-customizer/{buttons-customizer.xhtml => customizer.xhtml} (97%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/25-links/{links.xhtml => link-group.xhtml} (89%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/{50-header+footer/header+footer.xhtml => 50-header-footer/header-and-footer.xhtml} (95%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/{50-header+footer => 50-header-footer}/x-header-footer-example.xhtml (100%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/{tab.test.js => tab-group.test.js} (100%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/{tab.xhtml => tab-group.xhtml} (95%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/20-component/100-upload/{upload.xhtml => file-upload.xhtml} (96%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/20-component/110-wysiwyg/00-tinymce/{tinymce.xhtml => tiny-mce.xhtml} (98%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/20-component/110-wysiwyg/01-ckeditor/{ckeditor.xhtml => ck-editor.xhtml} (98%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/01/{validation-jsr303.test.js => jsr-303.test.js} (100%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/01/{validation-jsr303.xhtml => jsr-303.xhtml} (97%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/10-required/{form-required.test.js => required.test.js} (100%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/10-required/{form-required.xhtml => required.xhtml} (95%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/20-ajax/{form-ajax.test.js => ajax.test.js} (100%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/20-ajax/{form-ajax.xhtml => ajax.xhtml} (94%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/90-message-layout/{message-Layout.xhtml => message-layout.xhtml} (100%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/21-error/{error.xhtml => error-handling.xhtml} (61%)
 rename tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/50-partial/{partial.xhtml => partial-ajax.xhtml} (100%)
 rename tobago-example/tobago-example-demo/src/main/webapp/image/{richmond => roxborough}/theme-photo.jpg (100%)
 delete mode 100644 tobago-example/tobago-example-demo/src/main/webapp/tobago-resource/html/charlotteville/standard/property/demo.properties.xml
 delete mode 100644 tobago-example/tobago-example-demo/src/main/webapp/tobago-resource/html/richmond/standard/property/demo.properties.xml
 delete mode 100644 tobago-example/tobago-example-demo/src/main/webapp/tobago-resource/html/scarborough/standard/property/demo.properties.xml
 delete mode 100644 tobago-example/tobago-example-demo/src/main/webapp/tobago-resource/html/speyside/standard/property/demo.properties.xml


[myfaces-tobago] 02/02: TOBAGO-1931: TobagoBundle class doesn't work correctly

Posted by lo...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

lofwyr pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/myfaces-tobago.git

commit 3ca07ab4482cd9f59f88bddd2a910415fd471d5a
Author: Udo Schnurpfeil <lo...@apache.org>
AuthorDate: Wed Nov 21 09:41:27 2018 +0100

    TOBAGO-1931: TobagoBundle class doesn't work correctly
    
    Refactoring translation in the demo:
    * Nothing, but special pages will be localized: locale.xhtml
    * Nav-Menu will be labeled automatically by the file name (simplify)
    * Theme-dependent bundle example
---
 .../myfaces/tobago/example/demo/ApiController.java |  15 +
 .../tobago/example/demo/DemoController.java        |  32 --
 .../tobago/example/demo/NavigationNode.java        |   9 +-
 .../myfaces/tobago/example/demo/Salutation.java    |  12 +-
 .../myfaces/tobago/example/demo/ServerInfo.java    |  10 -
 .../tobago/example/demo/ThemeController.java       |  26 +-
 .../example/demo/CharlottevilleBundle.properties   |   1 +
 .../tobago/example/demo/DemoBundle.properties      | 335 ++++-----------------
 .../tobago/example/demo/DemoBundle_de.properties   | 108 -------
 .../tobago/example/demo/DemoBundle_en.properties   |   4 -
 .../tobago/example/demo/DemoBundle_ja.properties   |   4 -
 .../tobago/example/demo/DemoBundle_ru.properties   |   4 -
 .../example/demo/RoxboroughBundle.properties       |   1 +
 .../example/demo/ScarboroughBundle.properties      |   1 +
 .../tobago/example/demo/SpeysideBundle.properties  |   1 +
 .../tobago/example/demo/StandardBundle.properties  |   1 +
 .../example/demo/TranslatedBundle.properties       |   2 +
 .../example/demo/TranslatedBundle_de.properties    |   2 +
 .../example/demo/TranslatedBundle_de_AT.properties |   2 +
 .../example/demo/TranslatedBundle_de_CH.properties |   2 +
 .../example/demo/TranslatedBundle_de_DE.properties |   2 +
 .../example/demo/TranslatedBundle_en.properties    |   3 +
 .../example/demo/TranslatedBundle_en_GB.properties |   3 +
 .../example/demo/TranslatedBundle_en_US.properties |   3 +
 .../example/demo/TranslatedBundle_es.properties    |   3 +
 .../example/demo/TranslatedBundle_ja.properties    |   2 +
 .../example/demo/TranslatedBundle_ja_JP.properties |   2 +
 .../example/demo/TranslatedBundle_ru.properties    |   2 +
 .../example/demo/TranslatedBundle_ru_RU.properties |   2 +
 .../example/demo/TranslatedBundle_zh.properties    |   2 +
 .../example/demo/TranslatedBundle_zh_TW.properties |   2 +
 .../src/main/webapp/WEB-INF/faces-config.xml       |  20 ++
 .../10-getting-started/getting-started.xhtml       |   1 -
 .../{new-in-4-3.xhtml => tobago-4.3.xhtml}         |   1 -
 .../{new-in-4-2.xhtml => tobago-4.2.xhtml}         |   1 -
 .../{new-in-4-1.xhtml => tobago-4.1.xhtml}         |   1 -
 .../{new-in-4-0.xhtml => tobago-4.xhtml}           |   5 +-
 .../{new-in-3-1.xhtml => tobago-3.1.xhtml}         |   1 -
 .../{new-in-3-0.xhtml => tobago-3.xhtml}           |  10 +-
 .../{new-in-2-2.xhtml => tobago-2.2.xhtml}         |   1 -
 .../{new-in-2-0.xhtml => tobago-2.xhtml}           |   2 +-
 .../content/10-intro/30-whats-new/whats-new.xhtml  |  33 +-
 .../{migration50.xhtml => 4.0-to-5.0.xhtml}        |   1 -
 .../{migration40.xhtml => 3.0-to-4.0.xhtml}        |   1 -
 .../{migration30.xhtml => 2.0-to-3.0.xhtml}        |   2 +-
 .../{migration20.xhtml => 1.5-to-2.0.xhtml}        |   2 +-
 .../{migration15.xhtml => 1.0-to-1.5.xhtml}        |   2 +-
 .../content/10-intro/50-migration/migration.xhtml  |  21 +-
 .../10-intro/60-compatibility/compatibility.xhtml  |   1 -
 .../main/webapp/content/10-intro/70-faq/faq.xhtml  |   1 -
 .../main/webapp/content/10-intro/80-api/api.xhtml  |   1 -
 .../content/10-intro/85-download/download.xhtml    |   1 -
 .../90-release-checklist/release-checklist.xhtml   |   1 -
 .../src/main/webapp/content/10-intro/intro.xhtml   |   1 -
 .../content/20-component/010-input/10-in/in.xhtml  |   4 +-
 .../010-input/20-suggest/suggest.xhtml             |   8 +-
 .../010-input/30-textarea/textarea.xhtml           |   4 +-
 .../20-component/010-input/40-date/date.xhtml      |   4 +-
 .../010-input/50-input-group/group.xhtml           |   3 +-
 .../80-stars/{stars.xhtml => 5-star-rating.xhtml}  |   4 +-
 .../content/20-component/010-input/input.xhtml     |  12 +-
 .../20-component/020-output/10-out/out.xhtml       |   4 +-
 .../20-component/020-output/20-label/label.xhtml   |   4 +-
 .../20-component/020-output/25-badge/badge.xhtml   |   6 +-
 .../020-output/30-messages/messages.xhtml          |   4 +-
 .../20-component/020-output/40-image/image.xhtml   |   4 +-
 .../20-component/020-output/45-figure/figure.xhtml |   4 +-
 .../020-output/50-progress/progress.xhtml          |   4 +-
 .../20-component/020-output/60-object/object.xhtml |   4 +-
 .../content/20-component/020-output/output.xhtml   |  15 +-
 .../checkbox.test.js}                              |   0
 ...{selectBooleanCheckbox.xhtml => checkbox.xhtml} |   4 +-
 .../toggle.test.js}                                |   0
 .../{selectBooleanToggle.xhtml => toggle.xhtml}    |   4 +-
 .../{selectOneChoice.test.js => dropdown.test.js}  |   0
 .../{selectOneChoice.xhtml => dropdown.xhtml}      |   8 +-
 .../{selectOneRadio.test.js => radio.test.js}      |   0
 .../{selectOneRadio.xhtml => radio.xhtml}          |   6 +-
 .../{selectOneListbox.test.js => listbox.test.js}  |   0
 .../{selectOneListbox.xhtml => listbox.xhtml}      |   8 +-
 ...ManyCheckbox.test.js => multi-checkbox.test.js} |   0
 ...lectManyCheckbox.xhtml => multi-checkbox.xhtml} |   8 +-
 ...selectManyListbox.xhtml => multi-listbox.xhtml} |   8 +-
 .../{selectManyShuttle.xhtml => shuttle.xhtml}     |   8 +-
 .../content/20-component/030-select/select.xhtml   |  18 +-
 .../button-and-link.xhtml}                         |  10 +-
 .../{00-button+link => 00-button-link}/sample.html |   0
 .../sample_de.html                                 |   0
 .../040-command/10-default/default-command.xhtml   |   4 +-
 .../{buttons.test.js => button-group.test.js}      |   0
 .../{buttons.xhtml => button-group.xhtml}          |   8 +-
 .../{buttons-customizer.xhtml => customizer.xhtml} |   2 +-
 .../25-links/{links.xhtml => link-group.xhtml}     |  10 +-
 .../content/20-component/040-command/command.xhtml |   6 +-
 .../20-component/050-container/10-box/box.xhtml    |  11 +-
 .../050-container/20-panel/panel.xhtml             |   4 +-
 .../050-container/30-separator/separator.xhtml     |   2 +-
 .../050-container/40-section/section.xhtml         |   4 +-
 .../header-and-footer.xhtml}                       |   2 +-
 .../x-header-footer-example.xhtml                  |   0
 .../20-component/050-container/60-bar/bar.xhtml    |   4 +-
 .../20-component/050-container/container.xhtml     |  12 +-
 .../content/20-component/060-popup/popup.xhtml     |   8 +-
 .../070-tab/00-client/tab-client.xhtml             |   8 +-
 .../20-component/070-tab/01-ajax/tab-ajax.xhtml    |   8 +-
 .../070-tab/02-server/tab-server.xhtml             |   8 +-
 .../070-tab/{tab.test.js => tab-group.test.js}     |   0
 .../070-tab/{tab.xhtml => tab-group.xhtml}         |   8 +-
 .../080-sheet/10-sort/sheet-sorting.xhtml          |   6 +-
 .../20-selector/sheet-column-selector.xhtml        |   6 +-
 .../080-sheet/30-event/sheet-event.xhtml           |   4 +-
 .../080-sheet/35-markup/sheet-markup.xhtml         |   2 +-
 .../080-sheet/50-filter/sheet-filter.xhtml         |   8 +-
 .../55-staticheader/sheet-static-header.xhtml      |   8 +-
 .../60-multiheader/sheet-multi-header.xhtml        |   8 +-
 .../080-sheet/70-tree/sheet-tree.xhtml             |   6 +-
 .../080-sheet/80-editable/sheet-editable.xhtml     |   6 +-
 .../content/20-component/080-sheet/sheet.xhtml     |  20 +-
 .../20-component/080-sheet/x-sheet-nested.xhtml    |   2 +-
 .../090-tree/00-command/tree-command-types.xhtml   |   4 +-
 .../090-tree/01-select/tree-select.xhtml           |   8 +-
 .../090-tree/02-editor/tree-editor.xhtml           |   2 +-
 .../20-component/090-tree/03-menu/tree-menu.xhtml  |   1 -
 .../090-tree/04-listbox/tree-listbox.xhtml         |   4 +-
 .../content/20-component/090-tree/tree.xhtml       |  35 ++-
 .../100-upload/{upload.xhtml => file-upload.xhtml} |   4 +-
 .../00-tinymce/{tinymce.xhtml => tiny-mce.xhtml}   |   2 +-
 .../{ckeditor.xhtml => ck-editor.xhtml}            |   2 +-
 .../20-component/110-wysiwyg/wysiwyg-editor.xhtml  |   2 +-
 .../webapp/content/20-component/component.xhtml    |   2 +-
 .../06-validation/00/content-validation.xhtml      |   6 +-
 .../{validation-jsr303.test.js => jsr-303.test.js} |   0
 .../01/{validation-jsr303.xhtml => jsr-303.xhtml}  |   2 +-
 .../30-concept/06-validation/02/severity.xhtml     |   1 -
 .../30-concept/06-validation/validation.xhtml      |   4 +-
 .../30-concept/07-conversion/conversion.xhtml      |   2 +-
 .../{form-required.test.js => required.test.js}    |   0
 .../{form-required.xhtml => required.xhtml}        |   4 +-
 .../20-ajax/{form-ajax.test.js => ajax.test.js}    |   0
 .../20-ajax/{form-ajax.xhtml => ajax.xhtml}        |   7 +-
 .../webapp/content/30-concept/08-form/form.xhtml   |   6 +-
 .../webapp/content/30-concept/10-theme/theme.xhtml |  10 +-
 .../content/30-concept/14-locale/locale.xhtml      |  17 +-
 .../30-concept/15-conversation/conversation.xhtml  |   2 +-
 .../30-concept/16-layout/10-flow/flow-layout.xhtml |   4 +-
 .../30-concept/16-layout/20-flex/flex-layout.xhtml |   4 +-
 .../16-layout/30-segment/segment-layout.xhtml      |   4 +-
 .../16-layout/40-labeled/labeled-layout.xhtml      |  16 +-
 .../30-concept/16-layout/50-grid/grid-layout.xhtml |   1 -
 .../{message-Layout.xhtml => message-layout.xhtml} |   0
 .../content/30-concept/16-layout/layout.xhtml      |  10 +-
 .../content/30-concept/20-format/format.xhtml      |  32 +-
 .../21-error/{error.xhtml => error-handling.xhtml} |  34 ++-
 .../22-exception-handler/exception-handler.xhtml   |   2 +-
 .../30-concept/23-transition/transition.xhtml      |   5 +-
 .../content/30-concept/30-behavior/behavior.xhtml  |   4 +-
 .../{partial.xhtml => partial-ajax.xhtml}          |   0
 .../content/30-concept/51-for-each/for-each.xhtml  |   2 +-
 .../00-collapsible-box/collapsible-box.xhtml       |   4 +-
 .../10-collapsible-popup/collapsible-popup.xhtml   |   6 +-
 .../20-collapsible-panel/collapsible-panel.xhtml   |   4 +-
 .../collapsible-section.xhtml                      |   4 +-
 .../30-concept/53-collapsible/collapsible.xhtml    |  18 +-
 .../30-concept/65-accessKey/accessKey.xhtml        |  16 +-
 .../70-dataAttribute/dataAttribute.xhtml           |   4 +-
 .../content/30-concept/75-resize/resize.xhtml      |   1 +
 .../30-concept/80-security/20-roles/roles.xhtml    |   2 +-
 .../30-concept/80-security/20-roles/x-login.xhtml  |   4 +-
 .../content/30-concept/80-security/security.xhtml  |   6 +-
 .../main/webapp/content/30-concept/concept.xhtml   |   2 +-
 .../webapp/content/35-deprecated/10-tx/tx.xhtml    |   6 +-
 .../15-suggest-method/suggest-method.xhtml         |   4 +-
 .../content/35-deprecated/20-toolBar/toolBar.xhtml |  16 +-
 .../content/35-deprecated/25-menubar/menubar.xhtml |   5 +-
 .../webapp/content/35-deprecated/deprecated.xhtml  |   2 +-
 .../webapp/content/40-test/1040-date/date.xhtml    |   3 -
 .../3000-sheet/10-sheet-types/sheet-types.xhtml    |   2 +-
 .../3000-sheet/20-1000-entries/1000-entries.xhtml  |   2 +-
 .../4050-ajax-dropdown/ajax-dropdown.xhtml         |   2 +-
 .../40-test/4000-button+link/button+link.xhtml     |   1 -
 .../40-test/4000-button+link/x-action.xhtml        |   2 +-
 .../content/40-test/4000-button+link/x-link.xhtml  |   2 +-
 .../4000-button+link/button+link.xhtml             |   2 +-
 .../60000-manual/4500-suggest/suggest.xhtml        |   1 -
 .../5000-lengthOfInputs/lengthOfInputs.xhtml       |   2 +-
 .../content/40-test/60000-manual/manual.xhtml      |   2 +-
 .../content/40-test/6500-behavior/behavior.xhtml   |   2 -
 .../webapp/content/40-test/90000-attic/attic.xhtml |   2 +-
 .../image/{richmond => roxborough}/theme-photo.jpg | Bin
 .../tobago-example-demo/src/main/webapp/init.xhtml |   2 +-
 .../src/main/webapp/login.xhtml                    |   2 +-
 .../tobago-example-demo/src/main/webapp/main.xhtml |   9 +-
 .../tobago-example-demo/src/main/webapp/menu.xhtml |  23 +-
 .../src/main/webapp/navigation.xhtml               |   2 +-
 .../standard/property/demo.properties.xml          |  23 --
 .../richmond/standard/property/demo.properties.xml |  23 --
 .../standard/property/demo.properties.xml          |  23 --
 .../speyside/standard/property/demo.properties.xml |  24 --
 198 files changed, 596 insertions(+), 973 deletions(-)

diff --git a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ApiController.java b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ApiController.java
index 0bbf5b4..508d136 100644
--- a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ApiController.java
+++ b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ApiController.java
@@ -19,6 +19,9 @@
 
 package org.apache.myfaces.tobago.example.demo;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import javax.enterprise.context.RequestScoped;
 import javax.faces.event.AjaxBehaviorEvent;
 import javax.inject.Named;
@@ -31,6 +34,8 @@ import java.util.List;
 @Named
 public class ApiController implements Serializable {
 
+  private static final Logger LOG = LoggerFactory.getLogger(ApiController.class);
+
   private List<Release> releases;
   private boolean onlyCurrent = true;
 
@@ -72,6 +77,16 @@ public class ApiController implements Serializable {
     return Release.v4_3_0.getVersion();
   }
 
+  public String getCurrentRelease() {
+    for (Release release : releases) {
+      if (release.isCurrent()) {
+        return release.getVersion();
+      }
+    }
+    LOG.error("No current release found!");
+    return "4.3.1"; // should not happen
+  }
+
   public String getJiraUrl(final String version) {
     final Release release = Release.valueOf("v" + version.replaceAll("\\.", "_"));
     return "https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310273&version=" + release.getJira();
diff --git a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/DemoController.java b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/DemoController.java
index 1ddf353..a8eb3cd 100644
--- a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/DemoController.java
+++ b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/DemoController.java
@@ -21,9 +21,7 @@ package org.apache.myfaces.tobago.example.demo;
 
 import org.apache.deltaspike.core.api.scope.WindowScoped;
 import org.apache.myfaces.tobago.component.UISheet;
-import org.apache.myfaces.tobago.model.SelectItem;
 import org.apache.myfaces.tobago.model.Selectable;
-import org.apache.myfaces.tobago.util.ResourceUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -98,20 +96,6 @@ public class DemoController implements Serializable {
     sheetConfig = new SheetConfig();
   }
 
-  private static SelectItem[] getSelectItems(final Selectable[] keys) {
-    final SelectItem[] items = new SelectItem[keys.length];
-    for (int i = 0; i < items.length; i++) {
-      final FacesContext facesContext = FacesContext.getCurrentInstance();
-      final String label
-          = ResourceUtils.getString(facesContext, "demoBundle", keys[i].name());
-      if (LOG.isTraceEnabled()) {
-        LOG.trace("label = " + label + "");
-      }
-      items[i] = new SelectItem(keys[i], label);
-    }
-    return items;
-  }
-
   public void click(final ActionEvent actionEvent) {
     LOG.info("click the action listener");
     lastAction = actionEvent.getComponent().getId();
@@ -150,22 +134,6 @@ public class DemoController implements Serializable {
     return currencyItems;
   }
 
-  public SelectItem[] getItems2() {
-    return getSelectItems(TREE_SELECT_MODE_KEYS);
-
-  }
-
-
-  public SelectItem[] getTreeSelectModeItems() {
-    return getSelectItems(TREE_SELECT_MODE_KEYS);
-
-  }
-
-  public SelectItem[] getTreeListboxSelectModeItems() {
-    return getSelectItems(TREELISTBOX_SELECT_MODE_KEYS);
-
-  }
-
   public String getRadioValue() {
     return radioValue;
   }
diff --git a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/NavigationNode.java b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/NavigationNode.java
index ef20690..6455460 100644
--- a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/NavigationNode.java
+++ b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/NavigationNode.java
@@ -19,6 +19,7 @@
 
 package org.apache.myfaces.tobago.example.demo;
 
+import org.apache.myfaces.tobago.internal.util.StringUtils;
 import org.apache.myfaces.tobago.model.TreePath;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -32,7 +33,7 @@ public class NavigationNode extends DefaultMutableTreeNode implements Comparable
   private static final Logger LOG = LoggerFactory.getLogger(NavigationNode.class);
 
   private final String name;
-  private final String key;
+  private final String label;
   private final String branch;
   private final String outcome;
 
@@ -52,7 +53,7 @@ public class NavigationNode extends DefaultMutableTreeNode implements Comparable
     branch = matcher.group(1);
     name = matcher.group(2);
 //    final String extension = matcher.group(3);
-    key = name.replaceAll("[+-]", "_");
+    label = StringUtils.firstToUpperCase(name.replaceAll("[+-]", " "));
   }
 
   @Override
@@ -88,8 +89,8 @@ public class NavigationNode extends DefaultMutableTreeNode implements Comparable
     return branch;
   }
 
-  public String getKey() {
-    return key;
+  public String getLabel() {
+    return label;
   }
 
   public String getOutcome() {
diff --git a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/Salutation.java b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/Salutation.java
index 10c5f7b..9d001d4 100644
--- a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/Salutation.java
+++ b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/Salutation.java
@@ -19,15 +19,19 @@
 
 package org.apache.myfaces.tobago.example.demo;
 
-import org.apache.myfaces.tobago.util.ResourceUtils;
-
 public enum Salutation {
 
   UNKNOWN, MR, MRS;
 
   public String getLabel() {
-    // XXX This implementation is only for demo. This should be optimized/cached.
-    return ResourceUtils.getString("demoBundle", Salutation.class.getSimpleName() + "_" + name());
+    switch (this) {
+      case MR:
+        return "Mr.";
+      case MRS:
+        return "Mrs.";
+      default:
+        return "none";
+    }
   }
 
   public String getIcon() {
diff --git a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ServerInfo.java b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ServerInfo.java
index 73ee268..72ab897 100644
--- a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ServerInfo.java
+++ b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ServerInfo.java
@@ -50,8 +50,6 @@ public class ServerInfo {
   private static final String CONFIG_FILE_DEFAULT = "/etc/tobago-example-demo.properties";
   private static final String ENABLED_KEY = "server.info.enabled";
 
-  private static final String LAST_RELEASED_VERSION = "4.1.0";
-
   private String version;
 
   /**
@@ -108,12 +106,4 @@ public class ServerInfo {
   public boolean isEnabled() {
     return enabled;
   }
-
-  public String getStableVersion() {
-    if (version == null || version.endsWith("-SNAPSHOT")) {
-      return LAST_RELEASED_VERSION;
-    } else {
-      return version;
-    }
-  }
 }
diff --git a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ThemeController.java b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ThemeController.java
index ecab108..639c982 100644
--- a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ThemeController.java
+++ b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ThemeController.java
@@ -23,6 +23,9 @@ import org.apache.myfaces.tobago.config.TobagoConfig;
 import org.apache.myfaces.tobago.context.Theme;
 import org.apache.myfaces.tobago.context.TobagoContext;
 import org.apache.myfaces.tobago.internal.util.ObjectUtils;
+import org.apache.myfaces.tobago.util.ResourceUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import javax.enterprise.context.SessionScoped;
 import javax.faces.context.FacesContext;
@@ -36,6 +39,8 @@ import java.util.List;
 @Named
 public class ThemeController implements Serializable {
 
+  private static final Logger LOG = LoggerFactory.getLogger(ThemeController.class);
+
   private Theme theme;
   private SelectItem[] themeItems;
 
@@ -68,15 +73,12 @@ public class ThemeController implements Serializable {
     this.themeItems = themeItems;
   }
 
-  public String submit() {
-    final FacesContext facesContext = FacesContext.getCurrentInstance();
-    TobagoContext.getInstance(facesContext).setTheme(theme);
-    return null;
+  public void submit() {
+    TobagoContext.getInstance(FacesContext.getCurrentInstance()).setTheme(theme);
   }
 
   public String getLocalizedTheme() {
-    for (int i = 0; i < themeItems.length; i++) {
-      final SelectItem themeItem = themeItems[i];
+    for (final SelectItem themeItem : themeItems) {
       if (ObjectUtils.equals(themeItem.getValue(), theme)) {
         return themeItem.getLabel();
       }
@@ -84,4 +86,16 @@ public class ThemeController implements Serializable {
     return "???";
   }
 
+  /**
+   * We have defined one {@link java.util.ResourceBundle} per theme and use it.
+   */
+  public String getLocalizedString(final String key) {
+    try {
+      final FacesContext facesContext = FacesContext.getCurrentInstance();
+      return ResourceUtils.getString(facesContext, theme.getName() + "Bundle", key);
+    } catch (Exception e) {
+      LOG.error("Resource not found for key '{}' and theme '{}'", key, theme.getName());
+      return "???";
+    }
+  }
 }
diff --git a/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/CharlottevilleBundle.properties b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/CharlottevilleBundle.properties
new file mode 100644
index 0000000..7554dde
--- /dev/null
+++ b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/CharlottevilleBundle.properties
@@ -0,0 +1 @@
+theme_photo=The Pier in the Center of Charlotteville
diff --git a/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/DemoBundle.properties b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/DemoBundle.properties
index 0c625a2..8df8673 100644
--- a/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/DemoBundle.properties
+++ b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/DemoBundle.properties
@@ -1,281 +1,58 @@
 #Converted from 'tobago-example/tobago-example-demo/src//main/resources/org/apache/myfaces/tobago/example/demo/Demo.xml'
 #Thu Sep 20 19:43:06 CEST 2018
-Salutation_MR=Mr.
-Salutation_MRS=Mrs.
-Salutation_UNKNOWN=none
-accessKey=Access Keys
-api=API
-badge=Badge
-bar=Bar
-basic_buttonAction=Click Button
-basic_dateLabel=Date
-basic_lastActionLabel=Last Click
-basic_linkAction=Click Link
-basic_sampleInputTitle=Basic Input Examples
-basic_sampleLinkTitle=Basic Controls Examples
-basic_sampleSelectTitle=Basic Select Examples
-basic_suggestLabel=Suggest (AJAX)
-basic_suggestTip=Please type in "po" for example
-basic_text_action=Control elements for site navigation and to execute actions.
-basic_text_input=Input controls for different kinds of text\: single-line, multiline, formated.
-basic_text_select=Select controls allow input of one or multiple options.
-basic_textareaLabel=Textarea
-basic_textboxLabel=Inputfield
-basic_textboxTip=A simple input field
-basic_timeLabel=Time
-behavior=Behavior
-bestPractice=Best Practice
-big=big
-bottom=bottom
-box=Content Box
-browser=Browser
-button_link=Link & Button
-buttons=Button Group
-buttons_customizer=Button Group Customizer
-cancel=Cancel
-ckeditor=CKEditor
-closeButtonTip=Hide this tab for one request cycle
-collapsible=Collapsible
-collapsible_box=Content Box
-collapsible_panel=Panel
-collapsible_popup=Popup
-collapsible_section=Section
-command=Commands
-compatibility=Compatibility
-component=Components
-concept=Concepts
-container=Container
-content_security_policy=Content Security Policy
-content_validation=Content Validation
-conversation=Conversation Scope
-conversion=Conversion
-dataAttribute=Data Attributes
-date=Date
-default_command=Default Command
-deprecated=Deprecated
-download=Download
-error=Error Handling
-exception_handler=Ajax Exception Handler
-faceletsAsResources=Facelets As Resource
-faq=FAQ
-figure=Figure
-flex_layout=FlexLayout
-flow_layout=FlowLayout
-footer_next=Next
-footer_previous=Prev
-footer_viewSource=View Source
-for_each=For Each
-foreach_text=\n    There are two possibilities to use iterators\:<br/>\n    This example uses <b>&lt;c\:forEach></b>. It works well with the layout manager.<br/>\n    Using <b>&lt;ui\:repeat></b> doesn't work with the grid layout manager in the moment.\n    The iterated components are on top of each other in the HTML document,\n    because they got have all the same position attributes.<br/>
-form=Forms
-form_ajax=Ajax Forms
-form_in1Title=First inner form
-form_in2Title=Second inner form
-form_outTitle=Outer form
-form_required=Required Forms
-form_text1=<li style\="line-height\: 130%;">Values in the first form are being\n  stored temporarily by submitting the second form while the value in the second\n  form is written into the model.</li>\n<li style\="line-height\: 130%;">By submitting both form each value is stored into\n  the model.</li>\n<li style\="line-height\: 130%;">If the first input contains an error but the second\n  one validates, the validation of the first form is deactivated.</li>\n  
-format=Formatting
-format1=The equatorial radius of the sun is {0} km.
-format3=The temperature of the sun is {0} K on the surface, but {1} K in the center and {2} K in the corona.
-format9=Just reordering\: {4} - {1} - {6} - {8} - {5} - {3} - {0} - {7} - {2}
-getting_started=Getting started
-grid_layout=GridLayout
-group=Input Group
-header_footer=Header / Footer
-image=Image
-in=Input
-input=Input Fields
-intro=Intro
-label=Label
-labeled_layout=LabeledLayout
-layout=Layout
-links=Link Group
-locale=Locale
-locale_label=Locale
-locale_submit=Submit
-locale_text=Tobago supports internationalization and localization.\n    <ul style\="margin-top\: 2px;">\n    <li style\="line-height\: 130%;">Unicode is used internally.</li>\n    <li style\="line-height\: 130%;">Content in different languages can be provided by resource bundles.</li>\n    <li style\="line-height\: 130%;">Like content, images and scripts can be localized.</li>\n    </ul>\n
-locale_title=Locale settings
-login=Login
-manual=Manual Tests
-menu_accessAllPages=Access all pages
-menu_closeTest=Close Test
-menu_config=Configuration
-menu_locale=Language
-menu_runTest=Run Test
-menu_runTestAll=Run all tests
-menu_test=Test
-menu_themes=Theme
-menubar=Menubar
-messages=Messages
-migration=Migration
-migration15=1.0 to 1.5
-migration20=1.5 to 2
-migration30=2 to 3
-migration40=3 to 4
-modelValue1=Value in model
-modelValue2=Value in model
-multi=Multi selection
-multiCascade=Multi selection, Cascading
-multiLeafOnly=Multi selection, Leafs only
-newValue1=New model-value
-newValue2=New model-value
-new_in_2_0=Tobago 2
-new_in_3_0=Tobago 3
-new_in_4_0=Tobago 4
-new_in_4_1=Tobago 4.1
-new_in_4_2=Tobago 4.2
-non_faces_request=Non Faces Request
-none=Not selectable
-notTranslated=Sorry, not completely translated yet.
-object=External Object (iframe)
-off=off
-out=Output
-output=Output Fields
-pageTitle=Tobago Demo
-panel=Panel
-popup=Popup Dialog
-progress=Progress Bar
-reference_command=Command
-reference_container=Container
-reference_inputSuggest=Input suggest
-reference_intro=Ref. (under constr.)
-reference_menu=Menu
-reference_object=Object
-reference_output=Output
-reference_partial=Partial
-reference_popup=Popup
-reference_progress=Progress
-reference_select=Select
-reference_sheet=Sheet
-reference_tab=Tab
-reference_time=Time
-reference_tool=Tool Bar
-reference_tree=Tree
-reference_upload=Upload
-release_checklist=Release Checklist
-right=right
-roles=Roles
-sanitize=Sanitize
-section=Section
-security=Security
-segment_layout=SegmentLayout
-select=Select Controls
-selectBooleanCheckbox=Checkbox
-selectBooleanToggle=Toggle
-selectManyCheckbox=Checkbox Group
-selectManyListbox=Multiselection List
-selectManyShuttle=Shuttle List
-selectOneChoice=Dropdown Box
-selectOneListbox=Singleselection List
-selectOneRadio=Radio Button
-separator=Separator
-severity=Severity
-sheet=Sheet Control
-sheet_column_content=Column Content
-sheet_column_selector=Column Selector
-sheet_configTip=Click here to edit display attributes of the sheet.
-sheet_configTitle=Sheet configuration
-sheet_dropdown=Dropdown Box
-sheet_editable=Editable Sheet
-sheet_event=Event
-sheet_filter=Filtering
-sheet_markup=Markup
-sheet_multi_header=Multi Header
-sheet_resetLabel=Reset
-sheet_resetTip=Reset the modified widths of the columns in the sheet.
-sheet_sorting=Sorting
-sheet_static_header=Static Header
-sheet_style=Styling
-sheet_text=The sheet control is a simple solution for displaying table based\n  information. The essential features are\:\n    <ul style\="margin-top\: 2px;">\n    <li style\="line-height\: 130%;">Paging\: A defined range of data is displayed.\n      Navigation is done with arrow buttons.</li>\n    <li style\="line-height\: 130%;">Sorting\: By clicking a column header the\n    appropriate column is sorted.</li>\n    <li style\="line-height\: 130%;">Inline-Editing\: If needed, the values  [...]
-sheet_tree=Column Tree
-sheet_types=Sheet Content
-siblingLeafOnly=Multi selection, Leafs on same level only
-single=Single selection
-singleLeafOnly=Single selection, Leafs only
-small=small
-solarArrayDistance=Distance
-solarArrayName=Name
-solarArrayNumber=\#
-solarArrayNumberTip=Number
-solarArrayOrbit=Orbits
-solarArrayPeriod=Period
-solarArrayPopulation=Population
-solarPagingSheet=Sheet with Paging
-solarPlanetDiameter=Diameter
-solarPlanetMass=Mass
-solarPlanetSunDistance=Distance of the Sun
-solarPlanetTimeOfCirculation=Time of Circulation
-stars=5 Star Rating
-submit=Submit
-submitAll=Submit all Forms
-submitForm1=Submit Form 1
-submitForm2=Submit Form 2
-suggest=Suggest
-suggest_method=SuggestMethod
-tab=Tab Group
-tabInsolar=In the _Solarsystem
-tabMoons=_Moons
-tabPlanet=Data of the _Planets
-tabSwitchTypeClient=Client side tabbing
-tabSwitchTypeReloadPage=Server side tabbing (Full Reload)
-tabSwitchTypeReloadTag=Server side tabbing (Ajax)
-tab_ajax=Ajax
-tab_client=Client side
-tab_server=Server side
-tab_text=The tab control provides so called tab panels.\n    <ul style\="margin-top\: 2px;">\n    <li style\="line-height\: 130%;">Control can take place on server- or clientside.</li>\n    <li style\="line-height\: 130%;">Tab controls can be nested.</li>\n    <li style\="line-height\: 130%;">Inside each tab control any other controls   can be used.</li>\n    </ul>\n  
-tagDocUrl=https\://myfaces.apache.org/tobago/doc
-test=Tests
-textarea=Text Area
-theme=Themes
-theme_photo=The Standard Theme doesn't have a photo to show
-theme_text=Tobago supports a big variety of displaying controls,\n  so called designs or themes.\n    <ul style\="margin-top\: 2px;">\n    <li style\="line-height\: 130%;">Choosing of themes can be application wide,   user or group specific.</li>\n    <li style\="line-height\: 130%;">Images and other resources can be theme   dependant as well as the application pages can be designed seperatly   for each supported theme.</li>\n    </ul>\n
-theme_title=Theme settings
-themesCodeExample=...\n<tobago-config>\n    \u00A0       <theme-config>\n    \u00A0           \u00A0       <default-theme>speyside</default-theme>\n    \u00A0       </theme-config>\n    \u00A0       <resource-dir>tobago</resource-dir>\n</tobago-config>\n...
-themesCodeExampleTitle=Code Example
-themesText1=<b>Theme configuration</b> <br /><br\n    />\n    In Tobago it's easy to give an application a well designed look. You can use\n    prepared themes like speyside or scarborough, just to name two.\n    The only thing you have to do is configure them at the right place. This is\n    done in the tobago-config.xml by defining a default theme.
-tinymce=TinyMCE
-tobago_url=http\://myfaces.apache.org/tobago
-toolBar=Toolbar
-toolBarCustomizer=User Customized UI
-toolbar_closePopupAction=Close popup window
-toolbar_dropDownAction=DropDown
-toolbar_popupText=To close this popup window click close button.
-toolbar_sampleTitle=Toolbar Example
-toolbar_text1=Toolbars can be used for context sensitive actions inside box controls.\n<ul style\="margin-top\: 2px;">\n<li style\="line-height\: 130%;">Toolbars can consist of images, text or both.</li>\n<li style\="line-height\: 130%;">Toolbars can be completly integrated into a box header.</li>\n<li style\="line-height\: 130%;">Actions can be displayed as drop down menues.</li>\n</ul>\n  
-transition=Transition
-tree=Tree Control
-treeLabel=Tre_e
-treeListboxLabel=Listbo_x
-treeMultiselect=selectable
-treeMutable=mutable
-treeShowIcons=show icons
-treeShowJunctions=show junction tree
-treeShowRoot=show root node
-treeShowRootJunction=show first junction
-tree_command_types=Command
-tree_editor=Tree Editor
-tree_listbox=Tree List
-tree_menu=Tree Menu
-tree_select=Select
-tree_text=The tree control displays a tree which is generated from application data. The key features are\:\n    <ul style\="margin-top\: 2px;">\n    <li style\="line-height\: 130%;">Attributes control the rendering of the tree.</li>\n    <li style\="line-height\: 130%;">The possibility to define the tree as "single" or "multiselect", i.e. select one or multiple nodes of the tree.\n    <li style\="line-height\: 130%;">Editing mode for simple handling of tree structures inside the applica [...]
-tx=TX Tag Library
-upload=File Upload
-validation=Validation
-validation-severity=Severity
-validation_custom=Custom Validator
-validation_description=Description
-validation_jsr303=JSR 303\: Bean Validation
-validation_number=Number
-validation_price=Price
-validation_submit=Submit
-validation_text=Tobago provides easy to use possibilities for validation of user input.\n    <ul style\="margin-top\: 2px;">\n    <li style\="line-height\: 130%;">Syntactic and semantic validation is available.</li>\n    <li style\="line-height\: 130%;">Error messages can be positioned anywhere in the   user interface.</li>\n    <li style\="line-height\: 130%;">Input elements, which are affected by the   validation can be highlighted.</li>\n    </ul>\n
-whats_new=What's new?
-wysiwyg_editor=WYSIWYG Editor
-new_in_4_3=Tobago 4.3
-new_in_3_1=Tobago 3.1
-new_in_2_2=Tobago 2.2
-migration50=4 to 5
-non_faces_response=Non Faces Response
-partial=Partial / AJAX
-resize=Resizing (todo)
-focus=Focus
-meta=Meta Tag
+
+form_text1=<li>Values in the first form are being
+  stored temporarily by submitting the second form while the value in the second
+  form is written into the model.</li>
+<li>By submitting both form each value is stored into
+  the model.</li>
+<li>If the first input contains an error but the second
+  one validates, the validation of the first form is deactivated.</li>
+  
+tab_text=The tab control provides so called tab panels.
+    <ul>
+    <li>Control can take place on server- or clientside.</li>
+    <li>Tab controls can be nested.</li>
+    <li>Inside each tab control any other controls   can be used.</li>
+    </ul>
+  
+theme_text=Tobago supports a big variety of displaying controls,
+  so called designs or themes.
+    <ul>
+    <li>Choosing of themes can be application wide,   user or group specific.</li>
+    <li>Images and other resources can be theme   dependant as well as the application pages can be designed seperatly   for each supported theme.</li>
+    </ul>
+
+themesCodeExample=...
+<tobago-config>
+    \u00A0       <theme-config>
+    \u00A0           \u00A0       <default-theme>speyside</default-theme>
+    \u00A0       </theme-config>
+    \u00A0       <resource-dir>tobago</resource-dir>
+</tobago-config>
+...
+
+themesText1=\
+  <b>Theme configuration</b> <br /><br
+    />
+    In Tobago it's easy to give an application a well designed look. You can use
+    prepared themes like speyside or scarborough, just to name two.
+    The only thing you have to do is configure them at the right place. This is
+    done in the tobago-config.xml by defining a default theme.
+
+toolbar_text1=\
+  Toolbars can be used for context sensitive actions inside box controls.
+<ul>
+<li>Toolbars can consist of images, text or both.</li>
+<li>Toolbars can be completly integrated into a box header.</li>
+<li>Actions can be displayed as drop down menues.</li>
+</ul>
+  
+validation_text=\
+  Tobago provides easy to use possibilities for validation of user input.
+    <ul>
+    <li>Syntactic and semantic validation is available.</li>
+    <li>Error messages can be positioned anywhere in the   user interface.</li>
+    <li>Input elements, which are affected by the   validation can be highlighted.</li>
+    </ul>
+
diff --git a/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/DemoBundle_de.properties b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/DemoBundle_de.properties
deleted file mode 100644
index aab0d85..0000000
--- a/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/DemoBundle_de.properties
+++ /dev/null
@@ -1,108 +0,0 @@
-#Converted from 'tobago-example/tobago-example-demo/src//main/resources/org/apache/myfaces/tobago/example/demo/Demo_de.xml'
-#Thu Sep 20 19:43:06 CEST 2018
-Salutation_MR=Herr
-Salutation_MRS=Frau
-Salutation_UNKNOWN=keine
-basic_buttonAction=Klicke Knopf
-basic_dateLabel=Datum
-basic_lastActionLabel=Letzter Klick
-basic_linkAction=Klicke Link
-basic_sampleInputTitle=Eingabe Beispiele
-basic_sampleLinkTitle=Steuerungs Beispiele
-basic_sampleSelectTitle=Auswahl Beispiele
-basic_suggestLabel=Vorschlag (AJAX)
-basic_suggestTip=Bitte geben Sie beispielsweise "po" ein
-basic_text_action=Steuerelemente f\u00FCr die Navigation und zum Ausf\u00FChren von Aktionen.
-basic_text_input=Eingabefelder f\u00FCr verschiedene Arten von Text\: einzeilig, mehrzeilig, formatiert.
-basic_text_select=Auswahlelemente erlauben die Eingabe von einer oder mehreren Optionen.
-basic_textareaLabel=Textfeld
-basic_textboxLabel=Eingabefeld
-basic_textboxTip=Ein einfaches Eingabefeld
-basic_timeLabel=Uhrzeit
-cancel=Abbrechen
-closeButtonTip=Diesen Reiter f\u00FCr einen Request schlie\u00DFen
-error=Fehlerbehandlung
-form_in1Title=Erstes inneres Formular
-form_in2Title=Zweites inneres Formular
-form_outTitle=\u00C4usseres Formular
-form_text1=<li style\="line-height\: 130%;">Werte in der ersten Form werden beim submit der zweiten form tempor\u00E4r gespeichert, w\u00E4hrend der Wert aus der 2. Form ins Model geschrieben wird.</li><li style\="line-height\: 130%;">Beim submit beider Forms werden beide Werte in Model geschrieben.</li><li style\="line-height\: 130%;">Ist Das erste Input mit einem ung\u00FCltigen Wert gef\u00FCllt und die zweite Form wird mit einem g\u00FCltigen Wert submitted, ist die Validierung f\u00 [...]
-form_text2=Tobago unterst\u00FCtzt verschachtelte Forms und kann jede Form separat behandeln\:<ul style\="margin-top\: 2px;"> <li style\="line-height\: 130%;">Werte k\u00F6nnen separat im Model gespeichert werden, w\u00E4hrend bereits ausgef\u00FCllte andere Forms Ihre Werte (tempor\u00E4r) behalten.</li><li style\="line-height\: 130%;">F\u00FCr den Fall da\u00DF f\u00FCr einzelne Forms Validierung aktiviert ist, der Wert aber nur tempor\u00E4r gespeichert wird, ist die Validierung deakt [...]
-intro_text=<p>Tobago ist ein User-Interface-Framework zur Erstellung von Webanwendungen.\n    Das Framework st\u00FCtzt sich auf JavaServer Faces ab. Das Kernst\u00FCck bildet ein Theme-orientiertes\n    JSF Render Kit.</p>  <p><b>Basis Controls</b><br/> Tobago stellt alle\n    Standardcontrols von HTML zur Verf\u00FCgung wie Eingabefelder, Textfelder, Radiobuttons, Checkboxen und Kn\u00F6pfe.\n    Zus\u00E4tzlich zu den Basis Controls bietet Tobago eine Anzahl komplexer Controls, die ni [...]
-layout_city=Stadt
-layout_co=c/o
-layout_exampleTitle=Layout Beispiel\: Pers\u00F6nliche Informationen
-layout_firstName=Vorname
-layout_lastName=Nachname
-layout_note=Anmerkung
-layout_salutation=Anrede
-layout_street=Stra\u00DFe
-layout_streetNumber=Nr.
-layout_text=Tobago vereinfacht das Gestalten von Webseiten. <ul style\="margin-top\: 2px;"> <li style\="line-height\: 130%;">Bequeme Erstellung von ein- und mehrspaltigen Formularen</li> <li style\="line-height\: 130%;">Zellen k\u00F6nnen mehrere Zeilen und Spalten \u00FCberspannen</li> <li style\="line-height\: 130%;">Automatisches Ausrichten von Beschriftungen f\u00FCr Eingabefelder</li> </ul>
-layout_zipCode=PLZ
-locale=Lokalisierung
-locale_label=Sprache/Land
-locale_submit=\u00DCbernehmen
-locale_text=Tobago unterst\u00FCtzt Internationalisierung und Lokalisierung. <ul style\="margin-top\: 2px;"> <li style\="line-height\: 130%;">Intern wird Unicode verwendet</li> <li style\="line-height\: 130%;">Texte f\u00FCr verschiedene L\u00E4nder und Sprachen k\u00F6nnen in Resource Bundles ausgelagert werden.</li> <li style\="line-height\: 130%;">Zus\u00E4tzlich zu Texten k\u00F6nnen beliebige Resourcen wie Bilder und Skripte lokalisiert werden.</li> </ul>
-locale_title=Sprach- und l\u00E4nderspezifische Einstellungen
-menu_navigate=_Navigation
-modelValue1=Wert im Model
-modelValue2=Wert im Model
-multi=Mehrfachauswahl
-multiCascade=Mehrfachauswahl, kaskadierend
-multiLeafOnly=Mehrfachauswahl, nur Bl\u00E4tter
-newValue1=Neuer Wert
-newValue2=Neuer Wert
-none=Nicht ausw\u00E4hlbar
-notTranslated=Einige Teile dieser Seite sind nicht in allen Sprachen verf\u00FCgbar.
-selectBooleanCheckbox=Checkbox (de)
-overview=\u00DCbersicht
-sheet_configTip=Hier klicken zum Einstellen der Tabellenkonfiguration.
-sheet_configTitle=Tabelle konfigurieren
-sheet_resetTip=Hier klicken um den Orginalzustand der Spaltenbreiten wiederherzustellen.
-sheet_text=Das Sheet-Control bietet eine einfache M\u00F6glichkeit tabellarische Daten darzustellen.\n    Die wichtigsten Eigenschaften sind\: <ul style\="margin-top\: 2px;"> <li style\="line-height\: 130%;">Paging\:\n    Es wird nur ein Teil der Gesamtliste angezeigt.   \u00DCber die Pfeilkn\u00F6pfe kann in der Liste navigiert werden.\n    </li> <li style\="line-height\: 130%;">Sortierung\: Durch Dr\u00FCcken auf die Spalten\u00FCberschrift\n    kann die entsprechende Spalte sortiert w [...]
-siblingLeafOnly=Mehrfach Auswahl, nur Bl\u00E4tter einer Ebene
-single=Einfache Auswahl
-singleLeafOnly=Einfache Auswahl, nur Bl\u00E4tter
-solarArrayDistance=Entfernung
-solarArrayNumberTip=Nummer
-solarArrayPeriod=Umlauf
-solarArrayPopulation=Bev\u00F6lkerung
-solarPagingSheet=Tabelle mit Seitenverwaltung
-solarPlanetDiameter=Durchmesser
-solarPlanetMass=Masse
-solarPlanetSunDistance=Entfernung zur Sonne
-solarPlanetTimeOfCirculation=Umlaufzeit
-submit=\u00DCbernehmen
-submitAll=Alle Formulare \u00DCbernehmen
-submitForm1=Formular 1 \u00DCbernehmen
-submitForm2=Formular 2 \u00DCbernehmen
-tabInsolar=im _Sonnensystem
-tabMoons=Monde
-tabPlanet=_Planetendaten
-tabSwitchTypeClient=Clientseitiges Umschalten
-tabSwitchTypeReloadPage=Vollst\u00E4ndig neu laden
-tabSwitchTypeReloadTag=Serverseitges Umschalten per Ajax
-tab_text=Das Tab-Control stellt so genannte Tab-Panels zur Verf\u00FCgung. <ul style\="margin-top\: 2px;"> <li style\="line-height\: 130%;">Die Steuerung kann server- oder clientseitig erfolgen.</li> <li style\="line-height\: 130%;">Tab-Controls k\u00F6nnen verschachtelt werden.</li> <li style\="line-height\: 130%;">Innerhalb von Tab-Controls k\u00F6nnen wiederum   beliebige Controls angeordnet werden.</li> </ul>
-theme_title=Einstellung des Designs
-themes=Designs
-toolbar=Toolbar
-toolbar_buttonAction=Text Button
-toolbar_closePopupAction=Popup Fenster schlie\u00DFen
-toolbar_dropDownAction=DropDown
-toolbar_popupText=Zum schlie\u00DFen dieses Fensters den Button dr\u00FCcken.
-toolbar_sampleTitle=Toolbar Beispiel
-toolbar_text1=Toolbars werden genutzt um kontextabh\u00E4ngige Aktionen in Box Elementen zur Verf\u00FCgung zu stellen\:\n  <ul style\="margin-top\: 2px;">\n  <li style\="line-height\: 130%;">Toolbars k\u00F6nnen aus Bildern, Text oder beidem bestehen.</li>\n  <li style\="line-height\: 130%;">Toolbars k\u00F6nnen in den Header einer Box integriert werden.</li>\n  <li style\="line-height\: 130%;">Aktionen k\u00F6nnen als Drop Down Men\u00FC dargestellt werden.</li>\n  </ul>\n    
-treeLabel=Tree
-treeListboxLabel=Listbox
-treeMultiselect=Ausw\u00E4hlbar
-treeMutable=Ver\u00E4nderbar
-treeShowIcons=Symbole darstellen
-treeShowJunctions=Linien darstellen
-treeShowRoot=Wurzel darstellen
-treeShowRootJunction=Wurzellinie darstellen
-tree_text=Das Tree-Control stellt einen Baum dar, der aus Applikationsdaten erzeugt wird. Die wichtigsten Eigenschaften sind\: <ul style\="margin-top\: 2px;"> <li style\="line-height\: 130%;">Die Darstellung von Icons und Baumstruktur wird   \u00FCber Attribute gesteuert.</li> <li style\="line-height\: 130%;">Die M\u00F6glichkeit den Baum als "single" oder "multiselect" zu definieren,   also einen oder mehrere Knoten auszuw\u00E4hlbar zu machen.</li> <li style\="line-height\: 130%;">Edit [...]
-validation_description=Beschreibung
-validation_number=Zahl
-validation_price=Preis
-validation_submit=\u00DCbernehmen
-validation_text=Tobago unterst\u00FCtzt komfortable M\u00F6glichkeiten zur Validierung von Benutzereingaben. <ul style\="margin-top\: 2px;"> <li style\="line-height\: 130%;">Es steht syntaktische und sematische Validierung zur Verf\u00FCgung.</li> <li style\="line-height\: 130%;">Fehlermeldungen k\u00F6nnen beliebig im Userinterface plaziert werden.</li> <li style\="line-height\: 130%;">Eingabeelemente, f\u00FCr die Fehleingaben erfolgt sind, k\u00F6nnen hervorgehoben werden.</li> </ul>
diff --git a/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/DemoBundle_en.properties b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/DemoBundle_en.properties
deleted file mode 100644
index dc026ed..0000000
--- a/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/DemoBundle_en.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-#Converted from 'tobago-example/tobago-example-demo/src//main/resources/org/apache/myfaces/tobago/example/demo/Demo_en.xml'
-#Thu Sep 20 19:43:06 CEST 2018
-notTranslated=
-selectBooleanCheckbox=Checkbox (en)
diff --git a/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/DemoBundle_ja.properties b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/DemoBundle_ja.properties
deleted file mode 100644
index 81d019e..0000000
--- a/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/DemoBundle_ja.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-#Converted from 'tobago-example/tobago-example-demo/src//main/resources/org/apache/myfaces/tobago/example/demo/Demo_ja.xml'
-#Thu Sep 20 19:43:06 CEST 2018
-notTranslated=\u6B8B\u5FF5\u3001\u5341\u5206\u306B\u307E\u3060\u5909\u63DB\u3055\u308C\u308B
-selectBooleanCheckbox=Checkbox (ja)
diff --git a/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/DemoBundle_ru.properties b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/DemoBundle_ru.properties
deleted file mode 100644
index eaea583..0000000
--- a/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/DemoBundle_ru.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-#Converted from 'tobago-example/tobago-example-demo/src//main/resources/org/apache/myfaces/tobago/example/demo/Demo_ru.xml'
-#Thu Sep 20 19:43:05 CEST 2018
-notTranslated=\u043E\u0433\u043E\u0440\u0447\u0435\u043D\u043D\u043E, \u043F\u043E\u043B\u043D\u043E \u043F\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043D\u043E \u043F\u043E\u043A\u0430
-selectBooleanCheckbox=Checkbox (ru)
diff --git a/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/RoxboroughBundle.properties b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/RoxboroughBundle.properties
new file mode 100644
index 0000000..f4fcfb3
--- /dev/null
+++ b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/RoxboroughBundle.properties
@@ -0,0 +1 @@
+theme_photo=Flowers near Roxborough
diff --git a/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/ScarboroughBundle.properties b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/ScarboroughBundle.properties
new file mode 100644
index 0000000..461993d
--- /dev/null
+++ b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/ScarboroughBundle.properties
@@ -0,0 +1 @@
+theme_photo=Sundown from hill above Scarborough
diff --git a/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/SpeysideBundle.properties b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/SpeysideBundle.properties
new file mode 100644
index 0000000..b1860eb
--- /dev/null
+++ b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/SpeysideBundle.properties
@@ -0,0 +1 @@
+theme_photo=A green parrot in a tree above Speyside
diff --git a/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/StandardBundle.properties b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/StandardBundle.properties
new file mode 100644
index 0000000..4d65eae
--- /dev/null
+++ b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/StandardBundle.properties
@@ -0,0 +1 @@
+theme_photo=A typical bay in Tobago
diff --git a/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle.properties b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle.properties
new file mode 100644
index 0000000..4263856
--- /dev/null
+++ b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle.properties
@@ -0,0 +1,2 @@
+locale_short=default
+not_translated=Some content of the demo is not translated!
diff --git a/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_de.properties b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_de.properties
new file mode 100644
index 0000000..852da62
--- /dev/null
+++ b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_de.properties
@@ -0,0 +1,2 @@
+locale_short=de
+not_translated=Einige Teile dieser Seite sind nicht in allen Sprachen verf\u00FCgbar.
diff --git a/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_de_AT.properties b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_de_AT.properties
new file mode 100644
index 0000000..409a1cb
--- /dev/null
+++ b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_de_AT.properties
@@ -0,0 +1,2 @@
+locale_short=de_AT
+not_translated=Einige Teile dieser Seite sind nicht in allen Sprachen verf\u00FCgbar.
diff --git a/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_de_CH.properties b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_de_CH.properties
new file mode 100644
index 0000000..dfbd722
--- /dev/null
+++ b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_de_CH.properties
@@ -0,0 +1,2 @@
+locale_short=de_CH
+not_translated=Einige Teile dieser Seite sind nicht in allen Sprachen verf\u00FCgbar.
\ No newline at end of file
diff --git a/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_de_DE.properties b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_de_DE.properties
new file mode 100644
index 0000000..877e0b6
--- /dev/null
+++ b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_de_DE.properties
@@ -0,0 +1,2 @@
+locale_short=de_DE
+not_translated=Einige Teile dieser Seite sind nicht in allen Sprachen verf\u00FCgbar.
\ No newline at end of file
diff --git a/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_en.properties b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_en.properties
new file mode 100644
index 0000000..f5d4358
--- /dev/null
+++ b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_en.properties
@@ -0,0 +1,3 @@
+#dummy
+locale_short=en
+not_translated=Some content of the demo is not translated!
\ No newline at end of file
diff --git a/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_en_GB.properties b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_en_GB.properties
new file mode 100644
index 0000000..e754da6
--- /dev/null
+++ b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_en_GB.properties
@@ -0,0 +1,3 @@
+#dummy
+locale_short=en_GB
+not_translated=Some content of the demo is not translated!
\ No newline at end of file
diff --git a/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_en_US.properties b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_en_US.properties
new file mode 100644
index 0000000..d670aa2
--- /dev/null
+++ b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_en_US.properties
@@ -0,0 +1,3 @@
+#dummy
+locale_short=en_US
+not_translated=Some content of the demo is not translated!
\ No newline at end of file
diff --git a/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_es.properties b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_es.properties
new file mode 100644
index 0000000..10cc8c9
--- /dev/null
+++ b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_es.properties
@@ -0,0 +1,3 @@
+#dummy
+locale_short=es
+not_translated=\u00A1Alg\u00FAn contenido de la demo no est\u00E1 traducido!
\ No newline at end of file
diff --git a/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_ja.properties b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_ja.properties
new file mode 100644
index 0000000..39e5dd0
--- /dev/null
+++ b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_ja.properties
@@ -0,0 +1,2 @@
+locale_short=ja
+not_translated=\u6B8B\u5FF5\u3001\u5341\u5206\u306B\u307E\u3060\u5909\u63DB\u3055\u308C\u308B
diff --git a/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_ja_JP.properties b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_ja_JP.properties
new file mode 100644
index 0000000..d7644d7
--- /dev/null
+++ b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_ja_JP.properties
@@ -0,0 +1,2 @@
+locale_short=ja_JP
+not_translated=\u6B8B\u5FF5\u3001\u5341\u5206\u306B\u307E\u3060\u5909\u63DB\u3055\u308C\u308B
diff --git a/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_ru.properties b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_ru.properties
new file mode 100644
index 0000000..66da36c
--- /dev/null
+++ b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_ru.properties
@@ -0,0 +1,2 @@
+locale_short=ru
+not_translated=\u043E\u0433\u043E\u0440\u0447\u0435\u043D\u043D\u043E, \u043F\u043E\u043B\u043D\u043E \u043F\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043D\u043E \u043F\u043E\u043A\u0430
diff --git a/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_ru_RU.properties b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_ru_RU.properties
new file mode 100644
index 0000000..2610561
--- /dev/null
+++ b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_ru_RU.properties
@@ -0,0 +1,2 @@
+locale_short=ru_RU
+not_translated=\u043E\u0433\u043E\u0440\u0447\u0435\u043D\u043D\u043E, \u043F\u043E\u043B\u043D\u043E \u043F\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043D\u043E \u043F\u043E\u043A\u0430
diff --git a/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_zh.properties b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_zh.properties
new file mode 100644
index 0000000..77b2219
--- /dev/null
+++ b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_zh.properties
@@ -0,0 +1,2 @@
+locale_short=zh
+not_translated=\u6F14\u793A\u7684\u67D0\u4E9B\u5185\u5BB9\u672A\u7FFB\u8BD1
\ No newline at end of file
diff --git a/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_zh_TW.properties b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_zh_TW.properties
new file mode 100644
index 0000000..1cceedf
--- /dev/null
+++ b/tobago-example/tobago-example-demo/src/main/resources/org/apache/myfaces/tobago/example/demo/TranslatedBundle_zh_TW.properties
@@ -0,0 +1,2 @@
+locale_short=zh_TW
+not_translated=\u6F14\u793A\u7684\u67D0\u4E9B\u5185\u5BB9\u672A\u7FFB\u8BD1
\ No newline at end of file
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/WEB-INF/faces-config.xml b/tobago-example/tobago-example-demo/src/main/webapp/WEB-INF/faces-config.xml
index f291fda..520930d 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/WEB-INF/faces-config.xml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/WEB-INF/faces-config.xml
@@ -44,6 +44,26 @@
       <base-name>org.apache.myfaces.tobago.example.demo.DemoBundle</base-name>
       <var>demoBundle</var>
     </resource-bundle>
+    <resource-bundle>
+      <base-name>org.apache.myfaces.tobago.example.demo.CharlottevilleBundle</base-name>
+      <var>charlottevilleBundle</var>
+    </resource-bundle>
+    <resource-bundle>
+      <base-name>org.apache.myfaces.tobago.example.demo.RoxboroughBundle</base-name>
+      <var>roxboroughBundle</var>
+    </resource-bundle>
+    <resource-bundle>
+      <base-name>org.apache.myfaces.tobago.example.demo.ScarboroughBundle</base-name>
+      <var>scarboroughBundle</var>
+    </resource-bundle>
+    <resource-bundle>
+      <base-name>org.apache.myfaces.tobago.example.demo.SpeysideBundle</base-name>
+      <var>speysideBundle</var>
+    </resource-bundle>
+    <resource-bundle>
+      <base-name>org.apache.myfaces.tobago.example.demo.StandardBundle</base-name>
+      <var>standardBundle</var>
+    </resource-bundle>
   </application>
 
   <lifecycle>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/10-getting-started/getting-started.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/10-getting-started/getting-started.xhtml
index b41772b..552f6cf 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/10-getting-started/getting-started.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/10-getting-started/getting-started.xhtml
@@ -21,7 +21,6 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.getting_started}"/>
 
   This section describes how to build Tobago and run the example applications from the sources.
 
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/67-new-in-4-3/new-in-4-3.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/67-new-in-4-3/tobago-4.3.xhtml
similarity index 97%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/67-new-in-4-3/new-in-4-3.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/67-new-in-4-3/tobago-4.3.xhtml
index a477a2b..4ef5acf 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/67-new-in-4-3/new-in-4-3.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/67-new-in-4-3/tobago-4.3.xhtml
@@ -22,7 +22,6 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.new_in_4_3}"/>
 
   <tc:section label="Overview">
     <p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/68-new-in-4-2/new-in-4-2.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/68-new-in-4-2/tobago-4.2.xhtml
similarity index 96%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/68-new-in-4-2/new-in-4-2.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/68-new-in-4-2/tobago-4.2.xhtml
index 40bb226..f03c780 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/68-new-in-4-2/new-in-4-2.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/68-new-in-4-2/tobago-4.2.xhtml
@@ -22,7 +22,6 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.new_in_4_2}"/>
 
   <tc:section label="Overview">
     <p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/69-new-in-4-1/new-in-4-1.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/69-new-in-4-1/tobago-4.1.xhtml
similarity index 96%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/69-new-in-4-1/new-in-4-1.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/69-new-in-4-1/tobago-4.1.xhtml
index 3ebb20a..5994f3d 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/69-new-in-4-1/new-in-4-1.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/69-new-in-4-1/tobago-4.1.xhtml
@@ -22,7 +22,6 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.new_in_4_1}"/>
 
   <tc:section label="Overview">
     <p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/70-new-in-4-0/new-in-4-0.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/70-new-in-4-0/tobago-4.xhtml
similarity index 98%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/70-new-in-4-0/new-in-4-0.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/70-new-in-4-0/tobago-4.xhtml
index 8b48ea8..b8ad4b6 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/70-new-in-4-0/new-in-4-0.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/70-new-in-4-0/tobago-4.xhtml
@@ -22,7 +22,6 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.new_in_4_0}"/>
 
   <tc:section label="Overview and History">
     <p>
@@ -100,7 +99,7 @@
       <ul>
         <li><tc:link label="&lt;tc:bar>" outcome="/content/20-component/050-container/60-bar/bar.xhtml"
                      fragment="page:mainForm:backgroundColor"/>: <code>light</code>, <code>dark</code></li>
-        <li><tc:link label="&lt;tc:button>" outcome="/content/20-component/040-command/00-button+link/button+link.xhtml"
+        <li><tc:link label="&lt;tc:button>" outcome="/content/20-component/040-command/00-button-link/button-and-link.xhtml"
                      fragment="page:mainForm:markup"/>:
           <code>primary</code>,
           <code>secondary</code>,
@@ -200,7 +199,7 @@
 
     <tc:section label="More improvements">
       <ul>
-        <li><tc:link label="#{demoBundle.exception_handler}"
+        <li><tc:link label="Exception Handler"
                      outcome="/content/30-concept/22-exception-handler/exception-handler.xhtml"/></li>
         <li><p>The page is now loadable by ajax.</p></li>
       </ul>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/79-new-in-3-1/new-in-3-1.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/79-new-in-3-1/tobago-3.1.xhtml
similarity index 96%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/79-new-in-3-1/new-in-3-1.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/79-new-in-3-1/tobago-3.1.xhtml
index d7c31d2..3338520 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/79-new-in-3-1/new-in-3-1.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/79-new-in-3-1/tobago-3.1.xhtml
@@ -22,7 +22,6 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.new_in_3_1}"/>
 
   <tc:section label="Overview">
     <p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/80-new-in-3-0/new-in-3-0.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/80-new-in-3-0/tobago-3.xhtml
similarity index 96%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/80-new-in-3-0/new-in-3-0.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/80-new-in-3-0/tobago-3.xhtml
index ab9f40b..c3c2f1a 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/80-new-in-3-0/new-in-3-0.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/80-new-in-3-0/tobago-3.xhtml
@@ -21,7 +21,7 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.new_in_3_0}"/>
+
   <p>In November 2015 the first alpha version of 3.0.0 has been released,
     the first final release followed in December 2016.
     Here is a quick overview over the features and changes made in the last time to release this major revision.</p>
@@ -73,7 +73,7 @@
     <b>Improved tags</b>
     <ul>
       <li>The <code class="language-markup">&lt;tc:in/></code> tag may be extended to an
-        <tc:link label="#{demoBundle.group}"
+        <tc:link label="Input Group"
                  outcome="/content/20-component/010-input/50-input-group/group.xhtml"/>.
       </li>
       <li>A <code>size</code> attribute is added for
@@ -129,15 +129,15 @@
       <li>Resources can be excluded from parent theme.</li>
       <li>ResourceBundles support parameters</li>
       <li>The <code>lang</code> attribute of the HTML root tag will be rendered now.</li>
-      <li><tc:link label="#{demoBundle.messages}"
+      <li><tc:link label="Messages"
                    outcome="/content/20-component/020-output/30-messages/messages.xhtml"/>
         are closeable now.
       </li>
       <li>Custom CSS classes can be added to a component.</li>
       <li>Support more units than 'px'. Now ex, em, mm, cm, in can be used as well.</li>
       <li>The <code>link</code> attribute of
-        <tc:link label="&lt;tc:link> &amp; &lt;tc:button>"
-                 outcome="/content/20-component/040-command/00-button+link/button+link.xhtml"/>
+        <tc:link label="Button and Link"
+                 outcome="/content/20-component/040-command/00-button-link/button-and-link.xhtml"/>
         does support rightClick -&gt; newTab.
       </li>
     </ul>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/88-new-in-2-2/new-in-2-2.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/88-new-in-2-2/tobago-2.2.xhtml
similarity index 96%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/88-new-in-2-2/new-in-2-2.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/88-new-in-2-2/tobago-2.2.xhtml
index de5480a..9737553 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/88-new-in-2-2/new-in-2-2.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/88-new-in-2-2/tobago-2.2.xhtml
@@ -22,7 +22,6 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.new_in_2_2}"/>
 
   <tc:section label="Overview">
     <p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/90-new-in-2-0/new-in-2-0.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/90-new-in-2-0/tobago-2.xhtml
similarity index 99%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/90-new-in-2-0/new-in-2-0.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/90-new-in-2-0/tobago-2.xhtml
index d498896..f4e80de 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/90-new-in-2-0/new-in-2-0.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/90-new-in-2-0/tobago-2.xhtml
@@ -21,7 +21,7 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.new_in_2_0}"/>
+
   <p>At July 21, 2014 the version 2.0.0 has been released. Here was a quick overview over the features and changes made
     in the last time to release this major revision.</p>
   <p>Tobago 2.0.0 contains 184 entries in
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/whats-new.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/whats-new.xhtml
index 3e3b42e..d95835d 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/whats-new.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/30-whats-new/whats-new.xhtml
@@ -21,43 +21,42 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.whats_new}"/>
 
   <p>
     Here you find a condensed overview by versions:
   </p>
   <ul>
     <li>
-      <tc:link label="#{demoBundle.new_in_4_3}"
-               outcome="/content/10-intro/30-whats-new/67-new-in-4-3/new-in-4-3.xhtml"/>
+      <tc:link label="Tobago 4.3"
+               outcome="/content/10-intro/30-whats-new/67-new-in-4-3/tobago-4.3.xhtml"/>
     </li>
     <li>
-      <tc:link label="#{demoBundle.new_in_4_2}"
-               outcome="/content/10-intro/30-whats-new/68-new-in-4-2/new-in-4-2.xhtml"/>
+      <tc:link label="Tobago 4.2"
+               outcome="/content/10-intro/30-whats-new/68-new-in-4-2/tobago-4.2.xhtml"/>
     </li>
     <li>
-      <tc:link label="#{demoBundle.new_in_4_1}"
-               outcome="/content/10-intro/30-whats-new/69-new-in-4-1/new-in-4-1.xhtml"/>
+      <tc:link label="Tobago 4.1"
+               outcome="/content/10-intro/30-whats-new/69-new-in-4-1/tobago-4.1.xhtml"/>
     </li>
     <li>
-      <tc:link label="#{demoBundle.new_in_4_0}"
-               outcome="/content/10-intro/30-whats-new/70-new-in-4-0/new-in-4-0.xhtml"/>
+      <tc:link label="Tobago 4"
+               outcome="/content/10-intro/30-whats-new/70-new-in-4-0/tobago-4.xhtml"/>
     </li>
     <li>
-      <tc:link label="#{demoBundle.new_in_3_1}"
-               outcome="/content/10-intro/30-whats-new/79-new-in-3-1/new-in-3-1.xhtml"/>
+      <tc:link label="Tobago 3.1"
+               outcome="/content/10-intro/30-whats-new/79-new-in-3-1/tobago-3.1.xhtml"/>
     </li>
     <li>
-      <tc:link label="#{demoBundle.new_in_3_0}"
-               outcome="/content/10-intro/30-whats-new/80-new-in-3-0/new-in-3-0.xhtml"/>
+      <tc:link label="Tobago 3"
+               outcome="/content/10-intro/30-whats-new/80-new-in-3-0/tobago-3.xhtml"/>
     </li>
     <li>
-      <tc:link label="#{demoBundle.new_in_2_2}"
-               outcome="/content/10-intro/30-whats-new/88-new-in-2-2/new-in-2-2.xhtml"/>
+      <tc:link label="Tobago 2.2"
+               outcome="/content/10-intro/30-whats-new/88-new-in-2-2/tobago-2.2.xhtml"/>
     </li>
     <li>
-      <tc:link label="#{demoBundle.new_in_2_0}"
-               outcome="/content/10-intro/30-whats-new/90-new-in-2-0/new-in-2-0.xhtml"/>
+      <tc:link label="Tobago 2"
+               outcome="/content/10-intro/30-whats-new/90-new-in-2-0/tobago-2.xhtml"/>
     </li>
   </ul>
   <p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/95-migration/migration50.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/95-migration/4.0-to-5.0.xhtml
similarity index 97%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/95-migration/migration50.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/95-migration/4.0-to-5.0.xhtml
index 76d2046..9080b79 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/95-migration/migration50.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/95-migration/4.0-to-5.0.xhtml
@@ -21,7 +21,6 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html">
-  <ui:param name="title" value="#{demoBundle.migration50}"/>
 
   <tc:section label="Migration from Tobago 4.0 to 5.0">
     <p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/96-migration/migration40.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/96-migration/3.0-to-4.0.xhtml
similarity index 99%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/96-migration/migration40.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/96-migration/3.0-to-4.0.xhtml
index 3e23851..9a99e67 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/96-migration/migration40.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/96-migration/3.0-to-4.0.xhtml
@@ -21,7 +21,6 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html">
-  <ui:param name="title" value="#{demoBundle.migration40}"/>
 
   <tc:section label="Migration from Tobago 3.0 to 4.0">
     <p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/97-migration/migration30.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/97-migration/2.0-to-3.0.xhtml
similarity index 99%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/97-migration/migration30.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/97-migration/2.0-to-3.0.xhtml
index ab7b14a..e4116f2 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/97-migration/migration30.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/97-migration/2.0-to-3.0.xhtml
@@ -21,7 +21,7 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.migration30}"/>
+  <ui:param name="title" value="2 to 3"/>
 
   <tc:section label="Migration from Tobago 2.0 to 3.0">
 
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/98-migration/migration20.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/98-migration/1.5-to-2.0.xhtml
similarity index 99%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/98-migration/migration20.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/98-migration/1.5-to-2.0.xhtml
index acf4919..fdee93e 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/98-migration/migration20.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/98-migration/1.5-to-2.0.xhtml
@@ -21,7 +21,7 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.migration20}"/>
+
   <tc:section label="Migration from Tobago 1.5 to 2.0">
     <p>Tobago 2.0 has some API changes compared to Tobago 1.5.</p>
     <p>The most changes are in the tree API, which is more easy to use, but also more flexible.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/99-migration/migration15.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/99-migration/1.0-to-1.5.xhtml
similarity index 99%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/99-migration/migration15.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/99-migration/1.0-to-1.5.xhtml
index b5d6f02..1477462 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/99-migration/migration15.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/99-migration/1.0-to-1.5.xhtml
@@ -21,7 +21,7 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.migration15}"/>
+
   <tc:section label="Migration from Tobago 1.0 to 1.5">
     <p>Tobago 1.5 has a lot of changes compared to Tobago 1.0.</p>
     <p>The good news: Most of these changes are made internally in Tobago. If you use Tobago, you don't have to change
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/migration.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/migration.xhtml
index b415f9a..c3f3b01 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/migration.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/50-migration/migration.xhtml
@@ -21,7 +21,6 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.migration}"/>
 
   <tc:section label="Migration of Tobago applications">
 
@@ -31,24 +30,24 @@
 
     <ul>
       <li>
-        <tc:link label="#{demoBundle.migration50}"
-                 outcome="/content/10-intro/50-migration/95-migration/migration50.xhtml"/>
+        <tc:link label="Upgrade from 4.0 to 5.0"
+                 outcome="/content/10-intro/50-migration/95-migration/4.0-to-5.0.xhtml"/>
       </li>
       <li>
-        <tc:link label="#{demoBundle.migration40}"
-                 outcome="/content/10-intro/50-migration/96-migration/migration40.xhtml"/>
+        <tc:link label="Upgrade from 3.0 to 4.0"
+                 outcome="/content/10-intro/50-migration/96-migration/3.0-to-4.0.xhtml"/>
       </li>
       <li>
-        <tc:link label="#{demoBundle.migration30}"
-                 outcome="/content/10-intro/50-migration/97-migration/migration30.xhtml"/>
+        <tc:link label="Upgrade from 2.0 to 3.0"
+                 outcome="/content/10-intro/50-migration/97-migration/2.0-to-3.0.xhtml"/>
       </li>
       <li>
-        <tc:link label="#{demoBundle.migration20}"
-                 outcome="/content/10-intro/50-migration/98-migration/migration20.xhtml"/>
+        <tc:link label="Upgrade from 1.5 to 2.0"
+                 outcome="/content/10-intro/50-migration/98-migration/1.5-to-2.0.xhtml"/>
       </li>
       <li>
-        <tc:link label="#{demoBundle.migration15}"
-                 outcome="/content/10-intro/50-migration/99-migration/migration15.xhtml"/>
+        <tc:link label="Upgrade from 1.0 to 1.5"
+                 outcome="/content/10-intro/50-migration/99-migration/1.0-to-1.5.xhtml"/>
       </li>
     </ul>
 
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/60-compatibility/compatibility.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/60-compatibility/compatibility.xhtml
index 2033183..2078697 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/60-compatibility/compatibility.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/60-compatibility/compatibility.xhtml
@@ -21,7 +21,6 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.compatibility}"/>
 
   <p>
     Tobago was compatible with the following specifications, libraries and containers.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/70-faq/faq.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/70-faq/faq.xhtml
index 496832b..794e3f7 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/70-faq/faq.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/70-faq/faq.xhtml
@@ -21,7 +21,6 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.faq}"/>
 
   <tc:section id="howto" label="Where can I find documentation or HowTos for using Tobago?">
     <p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/80-api/api.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/80-api/api.xhtml
index 61e7c25..2fb8d04 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/80-api/api.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/80-api/api.xhtml
@@ -22,7 +22,6 @@
                 xmlns:f="http://java.sun.com/jsf/core"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.api}"/>
 
   <tc:section id="api" label="API Documentation">
 
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/85-download/download.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/85-download/download.xhtml
index 2511278..d84a889 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/85-download/download.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/85-download/download.xhtml
@@ -22,7 +22,6 @@
                 xmlns:f="http://java.sun.com/jsf/core"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.download}"/>
 
   <tc:section id="download" label="Download Tobago source- and binary packages">
 
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/90-release-checklist/release-checklist.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/90-release-checklist/release-checklist.xhtml
index efab750..18d181c 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/90-release-checklist/release-checklist.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/90-release-checklist/release-checklist.xhtml
@@ -23,7 +23,6 @@
                 xmlns:f="http://java.sun.com/jsf/core"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.release_checklist}"/>
 
   <tc:section label="Release Checklist (Developer Info)">
 
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/intro.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/intro.xhtml
index 908bdee..cfdfe8f 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/intro.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/intro.xhtml
@@ -21,7 +21,6 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.intro}"/>
   <p>This is the demo of Tobago.
     It shows the components and concepts of Tobago and is also a main part of the documentation.</p>
   <p>If you want to migrate from an older version, you'll find further information in the
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/10-in/in.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/10-in/in.xhtml
index 107196a..ca37db6 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/10-in/in.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/10-in/in.xhtml
@@ -22,9 +22,9 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.in} &lt;tc:in&gt;"/>
+
   <p>The <code class="language-markup">&lt;tc:in/&gt;</code> tag create a classic inputfield.</p>
-  <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/in.html"/>
+  <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png" link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/in.html"/>
   <tc:section label="Basics">
     <p>In most cases, a label should be placed in front of every inputfield. Use the attribute
       <code>label</code>.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/20-suggest/suggest.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/20-suggest/suggest.xhtml
index d1e9b46..3eddf3c 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/20-suggest/suggest.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/20-suggest/suggest.xhtml
@@ -21,18 +21,18 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.suggest} &lt;tc:suggest&gt;"/>
+
   <p>A <code class="language-markup">&lt;tc:suggest/></code> tag can be added to an inputfield to make
     suggestions based on the already entered text.</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:suggest/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/suggest.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/suggest.html"/>
     |
     <tc:link label="&lt;tc:in/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/in.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/in.html"/>
     |
     <tc:link label="&lt;tc:selectItems/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectItems.html"/></p>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/selectItems.html"/></p>
 
   <tc:section label="Basics">
     <p>After you type a character in the textfield, a list of suggestions is shown.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/30-textarea/textarea.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/30-textarea/textarea.xhtml
index 26cb7c9..1d36d52 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/30-textarea/textarea.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/30-textarea/textarea.xhtml
@@ -21,10 +21,10 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.textarea} &lt;tc:textarea&gt;"/>
+
   <p>The <code class="language-markup">&lt;tc:textarea/&gt;</code> tag, creates a textfield with one or more rows.
     The textarea becomes scrollable if the containing text could not displayed in the current size.</p>
-  <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/textarea.html"/>
+  <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png" link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/textarea.html"/>
   <tc:section label="Basics">
     <p>The textarea should always have a label attached. For this, use the <code>label</code> attribute.</p>
     <p>Unlike the inputfield TODO:linkToIn there is no placeholder attribute to describe the meaning of a textarea, when no label is set.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/40-date/date.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/40-date/date.xhtml
index 3eb3122..9b4f05b 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/40-date/date.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/40-date/date.xhtml
@@ -22,12 +22,12 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.date} &lt;tc:date&gt;"/>
+
   <p>The <code class="language-markup">&lt;tc:date/&gt;</code>
     tag create an inputfield with a button to open a calendar to edit the date.
     The date can also be edited in the textfield.</p>
   <p>Tag Library Documentation:
-    <tc:link label="&lt;tc:date/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/date.html"/>
+    <tc:link label="&lt;tc:date/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/date.html"/>
     |
     <tc:link label="&lt;f:convertDateTime/>"
              link="https://docs.oracle.com/javaee/6/javaserverfaces/2.0/docs/pdldocs/facelets/f/convertDateTime.html"/>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/50-input-group/group.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/50-input-group/group.xhtml
index 1ffe1e5..f86d361 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/50-input-group/group.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/50-input-group/group.xhtml
@@ -23,14 +23,13 @@
                 xmlns:f="http://java.sun.com/jsf/core"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.group} &lt;tc:in>"/>
 
   <p>The <code class="language-markup">&lt;tc:in/></code> tag may be extended with the facet tags
     <code class="language-markup">&lt;f:facet name="before"></code>
     and <code class="language-markup">&lt;f:facet name="after"></code>.
     With these, you can add text and dropdown menus to an input field.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/in.html"/>
+           link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/in.html"/>
 
   <tc:section label="Text">
     <p>The following example show how to add a text-label inside an input field.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/80-stars/stars.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/80-stars/5-star-rating.xhtml
similarity index 96%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/80-stars/stars.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/80-stars/5-star-rating.xhtml
index 55f23cf..dcb9a27 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/80-stars/stars.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/80-stars/5-star-rating.xhtml
@@ -22,10 +22,10 @@
                 xmlns:f="http://java.sun.com/jsf/core"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.stars}"/>
+
   <p>Use <code class="language-markup">&lt;tc:stars/></code> to create a five star rating.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/stars.html"/>
+           link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/stars.html"/>
 
   <tc:section label="Basics">
     <tc:style marginTop="3rem"/>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/input.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/input.xhtml
index a5cbeeb..eae3a42 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/input.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/input.xhtml
@@ -21,16 +21,16 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.input}"/>
+
   <p>With input components, a text or a date can be entered.
     Input components should always use the <code>label</code> attribute.</p>
 
-  <tc:section label="#{demoBundle.in}">
+  <tc:section label="Input">
     <pre><code class="language-markup">&lt;tc:in label="Input" value="Some Text"/></code></pre>
     <tc:in id="i1" label="Input" value="Some Text"/>
   </tc:section>
 
-  <tc:section label="#{demoBundle.suggest}">
+  <tc:section label="Suggest">
     <pre><code class="language-markup">&lt;tc:in label="Language">
   &lt;tc:suggest query="\#{suggestController.query}">
     &lt;tc:selectItems value="\#{suggestController.solarObjects}" var="name" itemValue="\#{name}"/>
@@ -43,17 +43,17 @@
     </tc:in>
   </tc:section>
 
-  <tc:section label="#{demoBundle.textarea}">
+  <tc:section label="Text Area">
     <pre><code class="language-markup">&lt;tc:textarea label="Text Area" value="Some Text"/></code></pre>
     <tc:textarea id="t1" label="Text Area" value="Some Text"/>
   </tc:section>
 
-  <tc:section label="#{demoBundle.date}">
+  <tc:section label="Date">
     <pre><code class="language-markup">&lt;tc:date label="Date" value="2015-12-21"/></code></pre>
     <tc:date id="d1" label="Date" value="2015-12-21"/>
   </tc:section>
 
-  <tc:section label="#{demoBundle.stars}">
+  <tc:section label="Stars">
     <tc:stars label="Stars" value="4"/>
   </tc:section>
 </ui:composition>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/10-out/out.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/10-out/out.xhtml
index 90a47de..3a8f4fa 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/10-out/out.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/10-out/out.xhtml
@@ -21,10 +21,10 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.out} &lt;tc:out&gt;"/>
+
   <p>The <code class="language-markup">&lt;tc:out/></code> display an outputtext combined with a label.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/out.html"/>
+           link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/out.html"/>
   <tc:section label="Basics">
     <p>To put a label in front of a outputtext, use the <code>label</code> attribute.</p>
     <pre><code class="language-markup">&lt;tc:out label="Output" value="Some Text"/&gt;</code></pre>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/20-label/label.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/20-label/label.xhtml
index fec6e6b..cebfc6a 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/20-label/label.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/20-label/label.xhtml
@@ -21,12 +21,12 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.label} &lt;tc:label&gt;"/>
+
   <p>With <code class="language-markup">&lt;tc:label/></code>, a single label can be created.
     Some components already have a <code>label</code> attribute to combine it with a label,
     which should be used in general.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/label.html"/>
+           link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/label.html"/>
   <tc:section label="Basics">
     <pre><code class="language-markup">&lt;tc:label value="Single Label"/&gt;</code></pre>
     <tc:label id="l1" value="Single Label"/>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/25-badge/badge.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/25-badge/badge.xhtml
index 749c042..048051e 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/25-badge/badge.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/25-badge/badge.xhtml
@@ -23,15 +23,15 @@
                 xmlns:f="http://java.sun.com/jsf/core"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.badge}"/>
+
   <p>A simple badge can be created with <code class="language-markup">&lt;tc:badge/></code>.<br/>
     Buttons can be displayed as a badge with the <code>badge</code> markup.</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:badge/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/badge.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/badge.html"/>
     |
     <tc:link label="&lt;tc:button/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/button.html"/></p>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/button.html"/></p>
 
   <tc:section label="Basics">
     <p>A simple badge rendered with <code class="language-markup">&lt;tc:badge value="Simple Badge"/></code>.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/30-messages/messages.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/30-messages/messages.xhtml
index 82fac5d..f92040c 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/30-messages/messages.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/30-messages/messages.xhtml
@@ -22,12 +22,12 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.messages} &lt;tc:messages>"/>
+
   <ui:param name="hideGlobalMessages" value="true"/>
 
   <p>Messages are displayed via <code class="language-markup">&lt;tc:messages/></code> tag.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/messages.html"/>
+           link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/messages.html"/>
 
   <tc:section label="Create Message">
     <p>To create messages, press one of the following buttons. The message will be displayed in the tabgroup.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/40-image/image.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/40-image/image.xhtml
index 2e18833..31f72c9 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/40-image/image.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/40-image/image.xhtml
@@ -21,9 +21,9 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.image} &lt;tc:image&gt;"/>
+
   <p>Create an image with <code class="language-markup">&lt;tc:image/&gt;</code>.</p>
-  <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/image.html"/>
+  <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png" link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/image.html"/>
   <tc:section label="Basics">
     <pre><code class="language-markup">&lt;tc:image value="\#{request.contextPath}/image/tobago_head.png"/&gt;</code></pre>
     <tc:image id="i1" value="#{request.contextPath}/image/tobago_head.png"/>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/45-figure/figure.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/45-figure/figure.xhtml
index 53d92f1..dd1541f 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/45-figure/figure.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/45-figure/figure.xhtml
@@ -21,11 +21,11 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.figure} &lt;tc:figure>"/>
+
   <p>Create a figure with <code class="language-markup">&lt;tc:figure/&gt;</code> around an image,
     video or something else. The label can be set via the label attribute or with the label facet.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/figure.html"/>
+           link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/figure.html"/>
 
   <tc:section label="Label attribute">
     <p>For simple captions use the <code>label</code> attribute.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/50-progress/progress.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/50-progress/progress.xhtml
index 7916adc..2686b2a 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/50-progress/progress.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/50-progress/progress.xhtml
@@ -23,13 +23,13 @@
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core"
                 xmlns:demo="http://myfaces.apache.org/tobago/example/demo">
-  <ui:param name="title" value="#{demoBundle.progress} &lt;tc:progress>"/>
+
   <p>The <code class="language-markup">&lt;tc:progress/></code> tag create a progressbar.
     The most important attribute is <code>value</code>.
     It could be a <code>double</code> - in that case, you need the attribute <code>max</code> as well.
     Or it is of type <code>BoundedRangeModel</code>.</p>
   <p>Tag Library Documentation:
-    <tc:link label="&lt;tc:progress/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/progress.html"/>
+    <tc:link label="&lt;tc:progress/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/progress.html"/>
     |
     <tc:link label="BoundedRangeModel"
              link="https://docs.oracle.com/javase/7/docs/api/javax/swing/BoundedRangeModel.html"/></p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/60-object/object.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/60-object/object.xhtml
index 8e48135..289c4ae 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/60-object/object.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/60-object/object.xhtml
@@ -22,14 +22,14 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.object} &lt;tc:object&gt;"/>
+
   <tc:script file="#{request.contextPath}/content/20-component/020-output/60-object/object.js"/>
 
   <p>The <code class="language-markup">&lt;tc:object/></code> tag create an iframe.
     External objects can be included, when Content Security Policy is activated.
     You may add a child-src policy to the 'tobago-config.xml'.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/object.html"/>
+           link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/object.html"/>
   <tc:section label="Basics">
     <pre><code class="language-markup">&lt;tc:object src="https://www.openstreetmap.org/..."/&gt;</code></pre>
     <tc:object id="o1"
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/output.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/output.xhtml
index 75e48fe..409886f 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/output.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/output.xhtml
@@ -22,43 +22,42 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
 
-  <ui:param name="title" value="#{demoBundle.output}"/>
   <ui:param name="hideGlobalMessages" value="true"/>
 
   <p>The output components display data in different ways.</p>
 
-  <tc:section label="#{demoBundle.output}">
+  <tc:section label="Output">
     <pre><code class="language-markup">&lt;tc:out label="Output" value="Some Text"/></code></pre>
     <tc:out id="o1" label="Output" value="Some Text"/>
   </tc:section>
 
-  <tc:section label="#{demoBundle.label}">
+  <tc:section label="Label">
     <pre><code class="language-markup">&lt;tc:label value="Some Text"/></code></pre>
     <tc:label value="Some Text"/>
   </tc:section>
 
-  <tc:section label="#{demoBundle.badge}">
+  <tc:section label="Badge">
     <pre><code class="language-markup">&lt;tc:badge value="Badge"/></code></pre>
     <tc:badge value="Badge"/>
   </tc:section>
 
-  <tc:section label="#{demoBundle.messages}">
+  <tc:section label="Messages">
     <pre><code class="language-markup">&lt;tc:messages/></code></pre>
     <tc:messages/>
     <tc:button id="b1" label="Create Info Message" action="#{messagesController.createInfoMessage}"/>
   </tc:section>
 
-  <tc:section label="#{demoBundle.image}">
+  <tc:section label="Image">
     <pre><code class="language-markup">&lt;tc:image value="image/tobago_head.png"/></code></pre>
     <tc:image value="/image/tobago_head.png"/>
   </tc:section>
 
-  <tc:section label="#{demoBundle.progress}">
+  <tc:section label="Progress">
     <pre><code class="language-markup">&lt;tc:progress value="2" max="3"/></code></pre>
     <tc:progress value="2" max="3"/>
   </tc:section>
 
-  <tc:section label="#{demoBundle.object}">
+  <tc:section label="Object">
     <pre><code class="language-markup">&lt;tc:object src="https://www.openstreetmap.org/..."/></code></pre>
     <tc:object src="https://www.openstreetmap.org/export/embed.html?bbox=-60.75,11.15,-60.6,11.35">
       <tc:style width="100%" height="50vmin"/>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/15-selectBooleanToggle/selectBooleanToggle.test.js b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/10-selectBooleanCheckbox/checkbox.test.js
similarity index 100%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/15-selectBooleanToggle/selectBooleanToggle.test.js
rename to tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/10-selectBooleanCheckbox/checkbox.test.js
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/10-selectBooleanCheckbox/selectBooleanCheckbox.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/10-selectBooleanCheckbox/checkbox.xhtml
similarity index 95%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/10-selectBooleanCheckbox/selectBooleanCheckbox.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/10-selectBooleanCheckbox/checkbox.xhtml
index a894cd1..b1ecb78 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/10-selectBooleanCheckbox/selectBooleanCheckbox.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/10-selectBooleanCheckbox/checkbox.xhtml
@@ -22,11 +22,11 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.selectBooleanCheckbox} &lt;tc:selectBooleanCheckbox&gt;"/>
+
   <p>The tag <code class="language-markup">&lt;tc:selectBooleanCheckbox/></code> generate a classic boolean
     checkbox.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectBooleanCheckbox.html"/>
+           link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/selectBooleanCheckbox.html"/>
   <tc:section label="Basics">
     <pre><code class="language-markup">&lt;tc:selectBooleanCheckbox label="Checkbox" value="true"/&gt;</code></pre>
     <tc:selectBooleanCheckbox id="s1" label="Normal Checkbox" value="true"/>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/10-selectBooleanCheckbox/selectBooleanCheckbox.test.js b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/15-selectBooleanToggle/toggle.test.js
similarity index 100%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/10-selectBooleanCheckbox/selectBooleanCheckbox.test.js
rename to tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/15-selectBooleanToggle/toggle.test.js
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/15-selectBooleanToggle/selectBooleanToggle.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/15-selectBooleanToggle/toggle.xhtml
similarity index 95%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/15-selectBooleanToggle/selectBooleanToggle.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/15-selectBooleanToggle/toggle.xhtml
index 8eee7e1..a4af1cb 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/15-selectBooleanToggle/selectBooleanToggle.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/15-selectBooleanToggle/toggle.xhtml
@@ -22,11 +22,11 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.selectBooleanToggle} &lt;tc:selectBooleanToggle&gt;"/>
+
   <p>The tag <code class="language-markup">&lt;tc:selectBooleanToggle/></code> generate a boolean
     toggle.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectBooleanToggle.html"/>
+           link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/selectBooleanToggle.html"/>
   <tc:section label="Basics">
     <pre><code class="language-markup">&lt;tc:selectBooleanToggle label="Toggle" value="true"/&gt;</code></pre>
     <tc:selectBooleanToggle id="s1" label="Normal Toggle" value="true"/>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/20-selectOneChoice/selectOneChoice.test.js b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/20-selectOneChoice/dropdown.test.js
similarity index 100%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/20-selectOneChoice/selectOneChoice.test.js
rename to tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/20-selectOneChoice/dropdown.test.js
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/20-selectOneChoice/selectOneChoice.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/20-selectOneChoice/dropdown.xhtml
similarity index 93%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/20-selectOneChoice/selectOneChoice.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/20-selectOneChoice/dropdown.xhtml
index b5cfb3c..e034a90 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/20-selectOneChoice/selectOneChoice.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/20-selectOneChoice/dropdown.xhtml
@@ -22,7 +22,7 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.selectOneChoice} &lt;tc:selectOneChoice>"/>
+
   <p>The tag <code class="language-markup">&lt;tc:selectOneChoice/&gt;</code> create a dropdownbox,
     which contain<br/>
     <code class="language-markup">&lt;tc:selectItem/></code> for static entries or<br/>
@@ -30,13 +30,13 @@
     a controller.</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:selectOneChoice/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectOneChoice.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/selectOneChoice.html"/>
     |
     <tc:link label="&lt;tc:selectItem/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectItem.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/selectItem.html"/>
     |
     <tc:link label="&lt;tc:selectItems/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectItems.html"/></p>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/selectItems.html"/></p>
 
   <tc:section label="Basics">
     <p>Dropdown Box with hardcoded items. The second item is disabled.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/30-selectOneRadio/selectOneRadio.test.js b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/30-selectOneRadio/radio.test.js
similarity index 100%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/30-selectOneRadio/selectOneRadio.test.js
rename to tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/30-selectOneRadio/radio.test.js
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/30-selectOneRadio/selectOneRadio.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/30-selectOneRadio/radio.xhtml
similarity index 96%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/30-selectOneRadio/selectOneRadio.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/30-selectOneRadio/radio.xhtml
index 5f2743e..9ab6de0 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/30-selectOneRadio/selectOneRadio.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/30-selectOneRadio/radio.xhtml
@@ -31,13 +31,13 @@
     <code class="language-markup">&lt;tc:selectItems value="\#{controller.list}"/></code>.</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:selectOneRadio/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectOneRadio.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/selectOneRadio.html"/>
     |
     <tc:link label="&lt;tc:selectItem/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectItem.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/selectItem.html"/>
     |
     <tc:link label="&lt;tc:selectItems/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectItems.html"/></p>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/selectItems.html"/></p>
 
   <tc:section label="Basics">
     <p>Radiobutton group with a label. The last item is disabled.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/40-selectOneListbox/selectOneListbox.test.js b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/40-selectOneListbox/listbox.test.js
similarity index 100%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/40-selectOneListbox/selectOneListbox.test.js
rename to tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/40-selectOneListbox/listbox.test.js
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/40-selectOneListbox/selectOneListbox.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/40-selectOneListbox/listbox.xhtml
similarity index 92%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/40-selectOneListbox/selectOneListbox.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/40-selectOneListbox/listbox.xhtml
index dbadead..9c4d89d 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/40-selectOneListbox/selectOneListbox.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/40-selectOneListbox/listbox.xhtml
@@ -22,19 +22,19 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.selectOneListbox} &lt;tc:selectOneListbox>"/>
+
   <p>The <code class="language-markup">&lt;tc:selectOneListbox/></code> create a list of entries, where only one
     entry can be selected. Items can be added with <code class="language-markup">&lt;tc:selectItem/></code>
     or <code class="language-markup">&lt;tc:selectItems/></code>.</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:selectOneListbox/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectOneListbox.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/selectOneListbox.html"/>
     |
     <tc:link label="&lt;tc:selectItem/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectItem.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/selectItem.html"/>
     |
     <tc:link label="&lt;tc:selectItems/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectItems.html"/></p>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/selectItems.html"/></p>
 
   <tc:section label="Basics">
     <p>If the number of rows is not set, die height of the list depends on the number of entries.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/50-selectManyCheckbox/selectManyCheckbox.test.js b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/50-selectManyCheckbox/multi-checkbox.test.js
similarity index 100%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/50-selectManyCheckbox/selectManyCheckbox.test.js
rename to tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/50-selectManyCheckbox/multi-checkbox.test.js
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/50-selectManyCheckbox/selectManyCheckbox.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/50-selectManyCheckbox/multi-checkbox.xhtml
similarity index 95%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/50-selectManyCheckbox/selectManyCheckbox.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/50-selectManyCheckbox/multi-checkbox.xhtml
index bdae780..c72dbcd 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/50-selectManyCheckbox/selectManyCheckbox.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/50-selectManyCheckbox/multi-checkbox.xhtml
@@ -24,20 +24,20 @@
                 xmlns:f="http://java.sun.com/jsf/core"
                 xmlns:h="http://java.sun.com/jsf/html"
                 xmlns:demo="http://myfaces.apache.org/tobago/example/demo">
-  <ui:param name="title" value="#{demoBundle.selectManyCheckbox} &lt;tc:selectManyCheckbox>"/>
+
   <p>With <code class="language-markup">&lt;tc:selectManyCheckbox/></code>, you can create a group of checkboxes.
     The items are added via <code class="language-markup">&lt;tc:selectItem/></code> for static entries or
     <code class="language-markup">&lt;tc:selectItems value="\#{controller.list}"/></code> for entries from a
     controller.</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:selectManyCheckbox/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectManyCheckbox.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/selectManyCheckbox.html"/>
     |
     <tc:link label="&lt;tc:selectItem/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectItem.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/selectItem.html"/>
     |
     <tc:link label="&lt;tc:selectItems/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectItems.html"/></p>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/selectItems.html"/></p>
 
   <tc:section label="Basics">
     <p>Checkbox Group with two items. The second one is disabled.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/60-selectManyListbox/selectManyListbox.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/60-selectManyListbox/multi-listbox.xhtml
similarity index 92%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/60-selectManyListbox/selectManyListbox.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/60-selectManyListbox/multi-listbox.xhtml
index 033dc4a..186aadc 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/60-selectManyListbox/selectManyListbox.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/60-selectManyListbox/multi-listbox.xhtml
@@ -22,20 +22,20 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.selectManyListbox} &lt;tc:selectManyListbox>"/>
+
   <p>The <code class="language-markup">&lt;tc:selectManyListbox/></code> create a list,
     where more than one entry could be selected. Entries are added with
     <code class="language-markup">&lt;tc:selectItem/></code> (static) or
     <code class="language-markup">&lt;tc:selectItems value="\#{controller.list}"/></code> (from controller).</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:selectManyListbox/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectManyListbox.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/selectManyListbox.html"/>
     |
     <tc:link label="&lt;tc:selectItem/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectItem.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/selectItem.html"/>
     |
     <tc:link label="&lt;tc:selectItems/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectItems.html"/></p>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/selectItems.html"/></p>
 
   <tc:section label="Basics">
     <p>In this example, there is a list with three items. The second one is disabled with the
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/70-selectManyShuttle/selectManyShuttle.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/70-selectManyShuttle/shuttle.xhtml
similarity index 94%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/70-selectManyShuttle/selectManyShuttle.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/70-selectManyShuttle/shuttle.xhtml
index cb46a6d..b7de6b4 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/70-selectManyShuttle/selectManyShuttle.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/70-selectManyShuttle/shuttle.xhtml
@@ -22,7 +22,7 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.selectManyShuttle} &lt;tc:selectManyShuttle>"/>
+
   <p>The shuttlelist component can be created with <code class="language-markup">&lt;tc:selectManyShuttle/></code>.
     In general, the height of the list depends on the number of items and is set to an amount, where no
     scrollbar is needed. You can set the number of rows with the <code>size</code> attribute. The shuttle list
@@ -31,13 +31,13 @@
     <code class="language-markup">&lt;tc:selectItems></code> (dynamic).</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:selectManyShuttle/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectManyShuttle.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/selectManyShuttle.html"/>
     |
     <tc:link label="&lt;tc:selectItem/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectItem.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/selectItem.html"/>
     |
     <tc:link label="&lt;tc:selectItems/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectItems.html"/></p>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/selectItems.html"/></p>
 
   <tc:section label="Basics">
     <pre><code class="language-markup">&lt;tc:selectManyShuttle label="Shuttle List" size="7"></code></pre>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/select.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/select.xhtml
index 383b1ae..53be1ba 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/select.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/select.xhtml
@@ -21,30 +21,30 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.select}"/>
+
   <p>Tobago provides several ways to select an option.
     Entries are added with <code class="language-markup">&lt;tc:selectItem/></code> or
     <code class="language-markup">&lt;tc:selectItems value="\#{controller.list}"/></code>
     for most select components.</p>
 
-  <tc:section label="#{demoBundle.selectBooleanCheckbox}">
+  <tc:section label="Checkbox">
     <pre><code class="language-markup">&lt;tc:selectBooleanCheckbox label="Checkbox"/></code></pre>
     <tc:selectBooleanCheckbox label="Checkbox" itemLabel="OK?"/>
   </tc:section>
 
-  <tc:section label="#{demoBundle.selectBooleanToggle}">
+  <tc:section label="Toggle">
     <pre><code class="language-markup">&lt;tc:selectBooleanToggle label="Toggle"/></code></pre>
     <tc:selectBooleanToggle label="Toggle" itemLabel="Active"/>
   </tc:section>
 
-  <tc:section label="#{demoBundle.selectOneChoice}">
+  <tc:section label="Dropdown">
     <pre><code class="language-markup">&lt;tc:selectOneChoice label="Dropdown Box"></code></pre>
     <tc:selectOneChoice label="Dropdown Box">
       <tc:selectItems value="#{selectController.entries}"/>
     </tc:selectOneChoice>
   </tc:section>
 
-  <tc:section label="#{demoBundle.selectOneRadio}">
+  <tc:section label="Radio Button">
     <pre><code class="language-markup">&lt;tc:selectOneRadio label="Radio Group" labelLayout="top"></code></pre>
     <tc:selectOneRadio id="radio" label="Radio Group" labelLayout="top">
       <tc:selectItem itemLabel="Option One"/>
@@ -52,14 +52,14 @@
     </tc:selectOneRadio>
   </tc:section>
 
-  <tc:section label="#{demoBundle.selectOneListbox}">
+  <tc:section label="Listbox">
     <pre><code class="language-markup">&lt;tc:selectOneListbox label="Listbox" size="3"></code></pre>
     <tc:selectOneListbox label="Listbox" size="3">
       <tc:selectItems value="#{selectController.entries}"/>
     </tc:selectOneListbox>
   </tc:section>
 
-  <tc:section label="#{demoBundle.selectManyCheckbox}">
+  <tc:section label="Checkbox Group">
     <pre><code class="language-markup">&lt;tc:selectManyCheckbox label="Checkbox Group" labelLayout="top"></code></pre>
     <tc:selectManyCheckbox label="Checkbox Group" labelLayout="top">
       <tc:selectItem itemLabel="Checkbox One"/>
@@ -67,14 +67,14 @@
     </tc:selectManyCheckbox>
   </tc:section>
 
-  <tc:section label="#{demoBundle.selectManyListbox}">
+  <tc:section label="Multiselection List">
     <pre><code class="language-markup">&lt;tc:selectManyListbox label="List" size="3"></code></pre>
     <tc:selectManyListbox label="List" size="3">
       <tc:selectItems value="#{selectController.entries}"/>
     </tc:selectManyListbox>
   </tc:section>
 
-  <tc:section label="#{demoBundle.selectManyShuttle}">
+  <tc:section label="Shuttle">
     <pre><code class="language-markup">&lt;tc:selectManyShuttle label="Shuttle List" size="7"></code></pre>
     <tc:selectManyShuttle label="Shuttle List" size="7">
       <tc:selectItems value="#{selectController.entries}"/>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/00-button+link/button+link.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/00-button-link/button-and-link.xhtml
similarity index 96%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/00-button+link/button+link.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/00-button-link/button-and-link.xhtml
index e116863..bc6990e 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/00-button+link/button+link.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/00-button-link/button-and-link.xhtml
@@ -21,22 +21,22 @@
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core"
                 xmlns:demo="http://myfaces.apache.org/tobago/example/demo">
-  <ui:param name="title" value="#{demoBundle.button_link} &lt;tc:link> &lt;tc:button>"/>
+
   <p>A classic link can be set with the <code class="language-markup">&lt;tc:link/></code> tag.
     You can also set a link by <code class="language-markup">&lt;tc:button/></code>.
     The behavior of a link and a button is the same, it differs in the appearance.</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:link/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/link.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/link.html"/>
     |
     <tc:link label="&lt;tc:button/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/button.html"/></p>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/button.html"/></p>
 
   <tc:section label="Basics">
     <p>The next two sections show how a link and a button is set.</p>
     <p>'apache.org' leads to the appropriated website.<br/>
       'Disable' show a disabled link/button.<br/>
-      'Action' use the <code>action</code> attribute to link the #{demoBundle.component} section.<br/>
+      'Action' use the <code>action</code> attribute to link the component section.<br/>
       The image leads to www.apache.org.</p>
     <tc:section label="&lt;tc:link>">
       <pre><code class="language-markup">&lt;tc:link label="apache.org" link="https://www.apache.org/"/></code></pre>
@@ -217,7 +217,7 @@
     </tc:section>
     <tc:section label="IFrame">
       <p>The iframe is set with <code class="language-markup">&lt;tc:object name="objectframe" .../></code>
-        (see <tc:link label="#{demoBundle.object}"
+        (see <tc:link label="Object"
                       outcome="/content/20-component/020-output/60-object/object.xhtml"/>).
         The value of the <code>target</code> attribute is in this case 'objectframe'.</p>
       <p><tc:link label="apache.org" link="https://www.apache.org/" target="objectframe"/>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/00-button+link/sample.html b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/00-button-link/sample.html
similarity index 100%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/00-button+link/sample.html
rename to tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/00-button-link/sample.html
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/00-button+link/sample_de.html b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/00-button-link/sample_de.html
similarity index 100%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/00-button+link/sample_de.html
rename to tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/00-button-link/sample_de.html
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/10-default/default-command.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/10-default/default-command.xhtml
index 177bb5b..ba215fb 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/10-default/default-command.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/10-default/default-command.xhtml
@@ -21,14 +21,14 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.default_command} &lt;tc:button>"/>
+
   <p>A normal button, created with <code class="language-markup">&lt;tc:button/></code>, must be actively pressed,
     to run the action. A default-button can be activated, even if not selected.
     For example, the cursor is in an inputfield and the enter key is pressed.</p>
   <p>A button can be made to a default button with the <code>defaultCommand</code> attribute.
     The default button is highlighted by another color.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/button.html"/>
+           link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/button.html"/>
 
   <tc:section label="Last Active Button ID">
     <p>To make the examples more clear, the ID of the last active button is displayed in the
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/20-buttons/buttons.test.js b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/20-buttons/button-group.test.js
similarity index 100%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/20-buttons/buttons.test.js
rename to tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/20-buttons/button-group.test.js
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/20-buttons/buttons.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/20-buttons/button-group.xhtml
similarity index 92%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/20-buttons/buttons.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/20-buttons/button-group.xhtml
index 75a4b2a..244f0e4 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/20-buttons/buttons.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/20-buttons/button-group.xhtml
@@ -21,15 +21,13 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.buttons}  &lt;tc:buttons>"/>
+
   <p>Buttons can be grouped with the <code class="language-markup">&lt;tc:buttons/></code> tag.
     Just add some <code class="language-markup">&lt;tc:button/></code> tags.</p>
   <p>Tag Library Documentation:
-    <tc:link label="&lt;tc:buttons/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/buttons.html"/>
+    <tc:link label="&lt;tc:buttons/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/buttons.html"/>
     |
-    <tc:link label="&lt;tc:button/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/button.html"/></p>
+    <tc:link label="&lt;tc:button/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/button.html"/></p>
 
   <tc:section label="Basics">
     <p>A simple example with three buttons.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/21-buttons-customizer/buttons-customizer.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/21-buttons-customizer/customizer.xhtml
similarity index 97%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/21-buttons-customizer/buttons-customizer.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/21-buttons-customizer/customizer.xhtml
index 55fc446..d273531 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/21-buttons-customizer/buttons-customizer.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/21-buttons-customizer/customizer.xhtml
@@ -24,7 +24,7 @@
         xmlns:ui="http://java.sun.com/jsf/facelets"
         xmlns:f="http://java.sun.com/jsf/core"
         xmlns:c="http://java.sun.com/jsp/jstl/core">
-  <ui:param name="title" value="#{demoBundle.buttons_customizer}  &lt;tc:buttons>"/>
+
   <p>The data of the model can also be loaded directly from the webapp directory.
     So we can define an item for each facelet matching buttons-item-*.xhtml.
     With this, we can create applications with pluggable UI. And we don't have to fight with bindings and
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/25-links/links.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/25-links/link-group.xhtml
similarity index 89%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/25-links/links.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/25-links/link-group.xhtml
index 8540d60..65bc576 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/25-links/links.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/25-links/link-group.xhtml
@@ -21,20 +21,18 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.links}  &lt;tc:links>"/>
+
   <p>Links can be grouped with the <code class="language-markup">&lt;tc:links/></code> tag.
     Just add some <code class="language-markup">&lt;tc:link/></code> or
     <code class="language-markup">&lt;tc:links/></code> tags.</p>
   <p>Currently there is no difference between <code class="language-markup">&lt;tc:link/></code> and
     <code class="language-markup">&lt;tc:links/></code>.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/buttons.html"/>
+           link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/buttons.html"/>
   <p>Tag Library Documentation:
-    <tc:link label="&lt;tc:links/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/links.html"/>
+    <tc:link label="&lt;tc:links/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/links.html"/>
     |
-    <tc:link label="&lt;tc:link/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/link.html"/></p>
+    <tc:link label="&lt;tc:link/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/link.html"/></p>
 
   <tc:section label="Basics">
     <p>A simple example with three links.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/command.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/command.xhtml
index b7633a1..0db1c89 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/command.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/command.xhtml
@@ -21,7 +21,7 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.command}"/>
+
   <p>Commands are ways to execute actions after clicked by a user.</p>
 
   <tc:section label="Link">
@@ -34,7 +34,7 @@
     <tc:button label="Submit"/>
   </tc:section>
 
-  <tc:section label="#{demoBundle.buttons}">
+  <tc:section label="Buttons">
     <pre><code class="language-markup">&lt;tc:buttons>
   &lt;tc:button label="Left" omit="true"/>
   &lt;tc:button label="Center" omit="true"/>
@@ -47,7 +47,7 @@
     </tc:buttons>
   </tc:section>
 
-  <tc:section label="#{demoBundle.links}">
+  <tc:section label="Links">
     <pre><code class="language-markup">&lt;tc:links>
   &lt;tc:link label="Apache Website" link="https://www.apache.org"/>
   &lt;tc:link label="Wikipedia" link="https://en.wikipedia.org/wiki/Apache_Software_Foundation"/>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/10-box/box.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/10-box/box.xhtml
index 82dca4d1..0cf2f5b 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/10-box/box.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/10-box/box.xhtml
@@ -23,10 +23,10 @@
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core"
                 xmlns:h="http://java.sun.com/jsf/html">
-  <ui:param name="title" value="#{demoBundle.box} &lt;tc:box>"/>
+
   <p>A content box is created with <code class="language-markup">&lt;tc:box/></code>.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/box.html"/>
+           link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/box.html"/>
   <tc:section label="Basics">
     <p>The title of the box is set by the <code>label</code> attribute or with
       <code class="language-markup">&lt;f:facet name="label"></code>.</p>
@@ -56,10 +56,11 @@
     <p>A contentbox can be collapsed or expanded via the <code>collapsed</code> attribute.
       To define the behavior of hidden content, use the <code>collapseMode</code> attribute.
       For more information have a look at the
-      <tc:link label="#{demoBundle.collapsible_box}"
+      <tc:link label="Collapsible Box"
                outcome="/content/30-concept/53-collapsible/00-collapsible-box/collapsible-box.xhtml"/> page
-      in the <tc:link label="#{demoBundle.collapsible}"
-                      outcome="/content/30-concept/53-collapsible/collapsible.xhtml"/> section.</p>
+      in the
+      <tc:link label="Collapsible"
+               outcome="/content/30-concept/53-collapsible/collapsible.xhtml"/> section.</p>
   </tc:section>
 
   <tc:section label="Bar">
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/20-panel/panel.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/20-panel/panel.xhtml
index 1f87305..7dac913 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/20-panel/panel.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/20-panel/panel.xhtml
@@ -22,11 +22,11 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.panel} &lt;tc:panel>"/>
+
   <p>A <code class="language-markup">&lt;tc:panel/></code> is a simple content container.
     In the most cases it's invisible and wrapping other components.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/panel.html"/>
+           link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/panel.html"/>
 
   <tc:section label="Basics">
     <p>The panel has a custom class, which set a blue background color. The class of the panel is set via the
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/30-separator/separator.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/30-separator/separator.xhtml
index 272a455..fae62ce 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/30-separator/separator.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/30-separator/separator.xhtml
@@ -21,7 +21,7 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.separator} &lt;tc:separator>"/>
+
   <p>A separator can be added with <code class="language-markup">&lt;tc:separator/></code></p>
 
   <tc:section label="Separator with label">
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/40-section/section.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/40-section/section.xhtml
index 588c38b..f0e8861 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/40-section/section.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/40-section/section.xhtml
@@ -21,10 +21,10 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.section} &lt;tc:section>"/>
+
   <p>A section can be added with <code class="language-markup">&lt;tc:section/></code> tag.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/section.html"/>
+           link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/section.html"/>
 
   <tc:section label="Basics">
     <p>A section can have a title. It is added with the <code>label</code> attribute.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/50-header+footer/header+footer.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/50-header-footer/header-and-footer.xhtml
similarity index 95%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/50-header+footer/header+footer.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/50-header-footer/header-and-footer.xhtml
index 122b78d..4456983 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/50-header+footer/header+footer.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/50-header-footer/header-and-footer.xhtml
@@ -21,7 +21,7 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:demo="http://myfaces.apache.org/tobago/example/demo">
-  <ui:param name="title" value="#{demoBundle.header_footer} &lt;tc:header> &lt;tc:footer>"/>
+
   <p>A header / footer can be set via the <code class="language-markup">&lt;tc:header/></code>
     respectively <code class="language-markup">&lt;tc:footer/></code> tag.</p>
 
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/50-header+footer/x-header-footer-example.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/50-header-footer/x-header-footer-example.xhtml
similarity index 100%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/50-header+footer/x-header-footer-example.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/50-header-footer/x-header-footer-example.xhtml
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/60-bar/bar.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/60-bar/bar.xhtml
index 2462d8e..fed6362 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/60-bar/bar.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/60-bar/bar.xhtml
@@ -22,14 +22,14 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.bar} &lt;tc:bar>"/>
+
   <p><code class="language-markup">&lt;tc:bar/></code> is a container which display elements in one single line
     as long as there is enough space.
     If space is too narrow, the bar collapse. Hidden items are accessible by clicking on the bar-icon.</p>
   <p>Additionally the facet <code class="language-markup">&lt;f:facet name="brand"/></code> can be added.
     It shows the 'brand', a logo, text or both on the left site of the bar.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/bar.html"/>
+           link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/bar.html"/>
 
   <tc:section label="Example">
     <p>This example show a dark bar with a 'brand' facet, a menu and right side content inside an 'after' facet.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/container.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/container.xhtml
index d292081..869812a 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/container.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/container.xhtml
@@ -21,20 +21,20 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.container}"/>
+
   <p>With the container components, content can be shown in different ways.</p>
 
-  <tc:section label="#{demoBundle.box}">
+  <tc:section label="Box">
     <pre><code class="language-markup">&lt;tc:box label="Box">Content&lt;/tc:box></code></pre>
     <tc:box label="Box">Content</tc:box>
   </tc:section>
 
-  <tc:section label="#{demoBundle.panel}">
+  <tc:section label="Panel">
     <pre><code class="language-markup">&lt;tc:panel>Content&lt;/tc:panel></code></pre>
     <tc:panel>Content</tc:panel>
   </tc:section>
 
-  <tc:section label="#{demoBundle.separator}">
+  <tc:section label="Separator">
     <pre><code class="language-markup">&lt;p>Content&lt;/p>
 &lt;tc:separator/>
 &lt;p>Content&lt;/p></code></pre>
@@ -43,12 +43,12 @@
     <p>Content</p>
   </tc:section>
 
-  <tc:section label="#{demoBundle.section}">
+  <tc:section label="Section">
     <pre><code class="language-markup">&lt;tc:section label="Section">Content&lt;/tc:section></code></pre>
     <tc:section label="Section">Content</tc:section>
   </tc:section>
 
-  <tc:section label="#{demoBundle.header_footer}">
+  <tc:section label="Header and Footer">
     <pre><code class="language-markup">&lt;tc:header>Header-Content&lt;/tc:header>
 &lt;p>Content between header and footer.&lt;/p>
 &lt;tc:footer>Footer-Content&lt;/tc:footer></code></pre>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/060-popup/popup.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/060-popup/popup.xhtml
index d59386d..bec4b87 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/060-popup/popup.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/060-popup/popup.xhtml
@@ -22,18 +22,18 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.popup} &lt;tc:popup>"/>
+
   <p>A popup dialog is created with <code class="language-markup">&lt;tc:popup/></code>.
     It can be filled with other components.</p>
   <p>The popup dialog is based on the
-    <tc:link label="#{demoBundle.collapsible}"
+    <tc:link label="Collapsible"
              outcome="/content/30-concept/53-collapsible/collapsible.xhtml"/> concept.</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:popup/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/popup.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/popup.html"/>
     |
     <tc:link label="&lt;tc:operation/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/operation.html"/></p>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/operation.html"/></p>
 
   <tc:section label="Client Side Popup">
     <tc:form id="form2">
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/00-client/tab-client.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/00-client/tab-client.xhtml
index dfa0c63..ea64cdc 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/00-client/tab-client.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/00-client/tab-client.xhtml
@@ -22,18 +22,18 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.tab} - #{demoBundle.tab_client} &lt;tc:tab>"/>
+
   <p>Tabs can be created with one or more <code class="language-markup">&lt;tc:tab/></code> within a
     <code class="language-markup">&lt;tc:tabGroup></code>.
     Within a tab, content can be added like in a section or a panel.</p>
   <p>Changing tabs is client side by default.</p>
   <p>Tag Library Documentation:
-    <tc:link label="&lt;tc:tabGroup/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/tabGroup.html"/>
+    <tc:link label="&lt;tc:tabGroup/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/tabGroup.html"/>
     |
-    <tc:link label="&lt;tc:tab/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/tab.html"/>
+    <tc:link label="&lt;tc:tab/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/tab.html"/>
     |
     <tc:link label="&lt;tc:tabChangeListener/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/tabChangeListener.html"/></p>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/tabChangeListener.html"/></p>
 
   <tc:section label="Basics">
     <p>A simple tabgroup. The second tab is disabled.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/01-ajax/tab-ajax.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/01-ajax/tab-ajax.xhtml
index 12eec7b..15a7fe0 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/01-ajax/tab-ajax.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/01-ajax/tab-ajax.xhtml
@@ -22,19 +22,19 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.tab} - #{demoBundle.tab_ajax} &lt;tc:tab>"/>
+
   <p>Tabs can be created with one or more <code class="language-markup">&lt;tc:tab/></code> within a
     <code class="language-markup">&lt;tc:tabGroup></code>.
     Within a tab, content can be added like in a section or a panel.</p>
   <p>To activate Ajax, the <code>switchType</code> attribute must have the value "reloadTab".
     On all tabgroups on this page, Ajax is activated.</p>
   <p>Tag Library Documentation:
-    <tc:link label="&lt;tc:tabGroup/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/tabGroup.html"/>
+    <tc:link label="&lt;tc:tabGroup/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/tabGroup.html"/>
     |
-    <tc:link label="&lt;tc:tab/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/tab.html"/>
+    <tc:link label="&lt;tc:tab/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/tab.html"/>
     |
     <tc:link label="&lt;tc:tabChangeListener/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/tabChangeListener.html"/></p>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/tabChangeListener.html"/></p>
 
   <tc:section label="Basics">
     <p>A simple tabgroup. The second tab is disabled.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/02-server/tab-server.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/02-server/tab-server.xhtml
index 9d0b8bf..854047f 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/02-server/tab-server.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/02-server/tab-server.xhtml
@@ -21,7 +21,7 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.tab} - #{demoBundle.tab_server} &lt;tc:tab>"/>
+
   <p>Tabs can be created with one or more <code class="language-markup">&lt;tc:tab/></code> within a
     <code class="language-markup">&lt;tc:tabGroup></code>.
     Within a tab, content can be added like in a section or a panel.</p>
@@ -29,12 +29,12 @@
     To change them server side, the <code>switchType</code> attribute must have the value "reloadPage".
     All tabgroups on this page are server side.</p>
   <p>Tag Library Documentation:
-    <tc:link label="&lt;tc:tabGroup/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/tabGroup.html"/>
+    <tc:link label="&lt;tc:tabGroup/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/tabGroup.html"/>
     |
-    <tc:link label="&lt;tc:tab/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/tab.html"/>
+    <tc:link label="&lt;tc:tab/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/tab.html"/>
     |
     <tc:link label="&lt;tc:tabChangeListener/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/tabChangeListener.html"/></p>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/tabChangeListener.html"/></p>
 
   <tc:section label="Basics">
     <p>A simple tabgroup. The second tab is disabled.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/tab.test.js b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/tab-group.test.js
similarity index 100%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/tab.test.js
rename to tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/tab-group.test.js
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/tab.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/tab-group.xhtml
similarity index 95%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/tab.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/tab-group.xhtml
index 045e171..659e0d5 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/tab.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/tab-group.xhtml
@@ -22,14 +22,14 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.tab}"/>
+
   <p>A <code class="language-markup">&lt;tc:tabGroup/></code> can contain several
     <code class="language-markup">&lt;tc:tab/></code> tags.
     Switching between tabs can be done on the client or by server request.
     For server requests there are two ways. Reload the whole page and reload only the tab (Ajax).
     To set the switching type, use the <code>switchType</code> attribute. By default it's client side.</p>
 
-  <tc:section label="#{demoBundle.tab_client}">
+  <tc:section label="Client side">
     <pre><code class="language-markup">&lt;tc:tabGroup></code></pre>
     <tc:tabGroup id="tabGroupClient">
       <tc:tab id="tab1Client" label="Tab One" markup="one">
@@ -47,7 +47,7 @@
     </tc:tabGroup>
   </tc:section>
 
-  <tc:section label="#{demoBundle.tab_ajax}">
+  <tc:section label="AJAX">
     <pre><code class="language-markup">&lt;tabGroup switchType="reloadTab"></code></pre>
     <tc:tabGroup id="tabGroupAjax" switchType="reloadTab">
       <tc:tab id="tab1Ajax" label="Tab One" markup="one">
@@ -65,7 +65,7 @@
     </tc:tabGroup>
   </tc:section>
 
-  <tc:section label="#{demoBundle.tab_server}">
+  <tc:section label="Server side">
     <pre><code class="language-markup">&lt;tabGroup switchType="reloadPage"></code></pre>
     <tc:tabGroup id="tabGroupFullReload" switchType="reloadPage">
       <tc:tab id="tab1FullReload" label="Tab One" markup="one">
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/10-sort/sheet-sorting.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/10-sort/sheet-sorting.xhtml
index 89ded18..7ee3c25 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/10-sort/sheet-sorting.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/10-sort/sheet-sorting.xhtml
@@ -21,7 +21,7 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.sheet_sorting} &lt;tc:sheet>"/>
+
   <p>Sorting can be enable via the <code>sortable</code> attribute in the
     <code class="language-markup">&lt;tc:column/></code>.
     A custom sorting implementation can be set in the <code>sortActionListener</code> attribute in the
@@ -32,10 +32,10 @@
     sorting will not be possible!</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:sheet/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/sheet.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/sheet.html"/>
     |
     <tc:link label="&lt;tc:column/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/column.html"/></p>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/column.html"/></p>
 
   <tc:section label="Basics">
     <p>In this example, the <code>sortable</code> attribute is 'true' for all columns.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/20-selector/sheet-column-selector.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/20-selector/sheet-column-selector.xhtml
index f179bcd..39b5604 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/20-selector/sheet-column-selector.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/20-selector/sheet-column-selector.xhtml
@@ -22,16 +22,16 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.sheet_column_selector} &lt;tc:columnSelector>"/>
+
   <p>To insert a selectable column, use the <code class="language-markup">&lt;tc:columnSelector/></code> tag.
     With the <code>selectable</code> in the <code class="language-markup">&lt;tc:sheet/></code> tag, you can
     adjust, whether the column should show checkboxes (default) or radio button 'singleOrNone'.</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:sheet/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/sheet.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/sheet.html"/>
     |
     <tc:link label="&lt;tc:columnSelector/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/columnSelector.html"/></p>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/columnSelector.html"/></p>
 
   <tc:section label="Column Selector">
     <p>The first column in this sheet contain radio buttons.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/30-event/sheet-event.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/30-event/sheet-event.xhtml
index cd358ae..49dce6a 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/30-event/sheet-event.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/30-event/sheet-event.xhtml
@@ -22,7 +22,7 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.sheet_event} &lt;tc:row>"/>
+
   <p>A <code class="language-markup">&lt;tc:sheet/&gt;</code> can contain a
     <code class="language-markup">&lt;tc:row/&gt;</code> tag with a containing <code
             class="language-markup">&lt;tc:event/&gt;</code> tag.
@@ -43,7 +43,7 @@
       <tc:box label="Solar Objects">
         <tc:sheet id="s1" value="#{sheetController.solarList}" var="object" columns="1fr" markup="small">
           <tc:style maxHeight="486px"/>
-          <tc:column label="#{demoBundle.solarArrayName}">
+          <tc:column label="Name">
             <tc:out value="#{object.name}" id="t_name" labelLayout="skip"/>
           </tc:column>
           <tc:row id="sample0" rendered="#{sheetController.columnEventSample == 0}">
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/35-markup/sheet-markup.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/35-markup/sheet-markup.xhtml
index cb16a3c..7a3bb52 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/35-markup/sheet-markup.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/35-markup/sheet-markup.xhtml
@@ -21,7 +21,7 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.sheet_markup}"/>
+
   <p>This example, demonstrate the different markups defined for sheet.
     These markups reflecting the styles from bootstrap.
     <tc:selectOneRadio value="#{sheetController.automaticLayout}">
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/50-filter/sheet-filter.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/50-filter/sheet-filter.xhtml
index 7825a8e..96ad28f 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/50-filter/sheet-filter.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/50-filter/sheet-filter.xhtml
@@ -22,19 +22,19 @@
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core"
                 xmlns="http://www.w3.org/1999/xhtml">
-  <ui:param name="title" value="#{demoBundle.sheet_filter} &lt;tc:sheet/>"/>
+
   <p>Filtering is not a explicit feature of the sheet. It is done in the controller.</p>
   <p>To add filtering components to the header of a sheet, use
     <code class="language-markup">&lt;f:facet name="header"></code>.</p>
   <p><b>Warning:</b> Paging currently doesn't work with filters!</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:sheet/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/sheet.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/sheet.html"/>
     |
     <tc:link label="&lt;tc:column/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/column.html"/></p>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/column.html"/></p>
 
-  <tc:section label="#{demoBundle.sheet_filter}">
+  <tc:section label="Filtering">
     <p>Add a search string to the inputfield or change the value of the dropdown boxes to filter the sheet.
       If an inputfield lost focus the filtering will be executed.</p>
     <tc:sheet id="sheet" value="#{sheetFilterController.filteredSolarList}" var="object" rows="15">
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/55-staticheader/sheet-static-header.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/55-staticheader/sheet-static-header.xhtml
index 6cb500d..fff8f80 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/55-staticheader/sheet-static-header.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/55-staticheader/sheet-static-header.xhtml
@@ -21,19 +21,19 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.sheet_static_header}"/>
+
   <p>There are several ways to display the header.
     For simple column headers, use the attribute <code>label</code> of
     <code class="language-markup">&lt;tc:column></code>.
     For more complex header which span over columns and/or rows please go to the
-    <tc:link label="#{demoBundle.sheet_multi_header}"
+    <tc:link label="Sheet Multi Header"
              outcome="/content/20-component/080-sheet/60-multiheader/sheet-multi-header.xhtml"/> section.</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:sheet/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/sheet.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/sheet.html"/>
     |
     <tc:link label="&lt;tc:column/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/column.html"/></p>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/column.html"/></p>
 
   <tc:section label="Basics">
     <p>A sheet with six rows. The name of the columns is set by the <code>label</code> attribute.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/60-multiheader/sheet-multi-header.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/60-multiheader/sheet-multi-header.xhtml
index a3c9867..c64edf4 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/60-multiheader/sheet-multi-header.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/60-multiheader/sheet-multi-header.xhtml
@@ -22,7 +22,7 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.sheet}"/>
+
   <p>For more complex headers, which can span over columns and/or rows use a
     <code class="language-markup">&lt;f:facet name="header"></code>in the sheet.
     The facet could be filled with <code class="language-markup">&lt;tc:out/></code> tags
@@ -34,13 +34,13 @@
     to set a span over columns or rows.</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:sheet/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/sheet.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/sheet.html"/>
     |
     <tc:link label="&lt;tc:column/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/column.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/column.html"/>
     |
     <tc:link label="&lt;tc:span/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/gridLayoutConstraint.html"/></p>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/gridLayoutConstraint.html"/></p>
 
   <tc:section label="Multi-Header">
     <p>For multi-header sheets, you should consider to use <code>markup="bordered"</code> for better appearance.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/70-tree/sheet-tree.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/70-tree/sheet-tree.xhtml
index d269068..57ea09a 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/70-tree/sheet-tree.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/70-tree/sheet-tree.xhtml
@@ -21,17 +21,17 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.sheet_tree} &lt;tc:columnNode/>"/>
+
   <p>A tree can be added into a sheet. To do so, there are two steps which must be done.
     First, the <code>value</code> attribute of the sheet must refer to a method, which return a tree instead of a list.
     Second, to display the tree, use the <code class="language-markup">&lt;tc:columnNode/></code> tag.</p>
 
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:sheet/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/sheet.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/sheet.html"/>
     |
     <tc:link label="&lt;tc:columnNode/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/columnNode.html"/></p>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/columnNode.html"/></p>
 
   <tc:section label="Column Tree">
     <p>There is a tree in the first column. You can expand and collapse the items.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/80-editable/sheet-editable.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/80-editable/sheet-editable.xhtml
index 80bce44..07ec451 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/80-editable/sheet-editable.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/80-editable/sheet-editable.xhtml
@@ -22,14 +22,14 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.sheet_editable} &lt;tc:sheet>"/>
+
   <p>Not only a sheet can be used to display data, it may also contain inputfields to edit the data.</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:sheet/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/sheet.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/sheet.html"/>
     |
     <tc:link label="&lt;tc:column/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/column.html"/></p>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/column.html"/></p>
 
   <tc:section label="Editable Sheet" id="basics">
     <p>In this sheet you can edit the data of solar objects. Press the 'Submit' button to see the results in the
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/sheet.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/sheet.xhtml
index d91c186..55e4b70 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/sheet.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/sheet.xhtml
@@ -21,17 +21,31 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.sheet} &lt;tc:sheet>"/>
+
+  The sheet control is a simple solution for displaying table based
+  information. The essential features are:
+  <ul>
+    <li>Sorting</li>
+    <li>Paging</li>
+    <li>Tree table</li>
+    <li>Inline editing</li>
+    <li>Column resizing</li>
+    <li>Inline-Editing</li>
+    <li>Styling</li>
+    <li>Header customization</li>
+  </ul>
+  This example shows an application specific sorter, which sorts the sun to the top every time.
+
   <p>A <code class="language-markup">&lt;tc:sheet/></code> tag can contain any number of
     <code class="language-markup">&lt;tc:column/></code> tags.
     The <code class="language-markup">&lt;tc:column/></code> tag is a container, which may contain
     outputfields, labels, progress bars or even tab groups.</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:sheet/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/sheet.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/sheet.html"/>
     |
     <tc:link label="&lt;tc:column/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/column.html"/></p>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/column.html"/></p>
 
   <tc:section label="Basics">
     <p>Two attributes should be recognized in a sheet.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/x-sheet-nested.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/x-sheet-nested.xhtml
index 40ddcce..16f64af 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/x-sheet-nested.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/x-sheet-nested.xhtml
@@ -24,7 +24,7 @@
 
     <tc:sheet value="#{sheetController.solarList}" id="sheet"
               columns="1fr 2fr" var="luminary">
-      <tc:column label="#{demoBundle.solarArrayName}" id="name" sortable="true" markup="#{luminary.markup}">
+      <tc:column label="Name" id="name" sortable="true" markup="#{luminary.markup}">
         <tc:out value="#{luminary.name}" id="t_name"/>
       </tc:column>
       <tc:column label="Chemical Composition" id="cc" sortable="false" resizable="false"
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/00-command/tree-command-types.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/00-command/tree-command-types.xhtml
index 6ee337e..205ce10 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/00-command/tree-command-types.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/00-command/tree-command-types.xhtml
@@ -21,12 +21,12 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.tree_command_types} &lt;tc:treeCommand>"/>
+
   <p>The <code class="language-markup">&lt;tc:treeCommand/></code> tag can be added to a
     <code class="language-markup">&lt;tc:treeNode/></code> tag.
     The command can be used to execute an action or a link.</p>
   <p><tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-              link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/treeCommand.html"/></p>
+              link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/treeCommand.html"/></p>
 
   <tc:section label="Example">
     <p>In this example, the nodes with children are displayed as
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/01-select/tree-select.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/01-select/tree-select.xhtml
index f9dd0cb..2ff9b55 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/01-select/tree-select.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/01-select/tree-select.xhtml
@@ -22,15 +22,15 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.tree_select} &lt;treeSelect>"/>
+
   <p>The <code class="language-markup">&lt;tc:treeSelect/></code> tag can be used instead of
     <code class="language-markup">&lt;treeLabel/></code> to add radio buttons or checkboxes in front of the nodes.</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:tree/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/tree.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/tree.html"/>
     |
     <tc:link label="&lt;tc:treeSelect/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/treeSelect.html"/></p>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/treeSelect.html"/></p>
 
   <tc:section label="Example">
     <p>The <code class="language-markup">&lt;tc:tree/></code> tag must use the <code>selectable</code> attribute.
@@ -51,7 +51,7 @@
             <tc:selectOneRadio id="selectable" value="#{treeSelectController.selectable}">
               <f:ajax render="examplePanel selectedNodesOutput"/>
               <tc:selectItems var="mode" value="#{treeSelectController.selectModes}"
-                              itemLabel="#{mode.name()} (#{demoBundle[mode.name()]})" itemValue="#{mode.name()}"/>
+                              itemLabel="#{mode.name()}" itemValue="#{mode.name()}"/>
             </tc:selectOneRadio>
           </tc:box>
         </tc:panel>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/02-editor/tree-editor.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/02-editor/tree-editor.xhtml
index 0456b32..91b6f76 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/02-editor/tree-editor.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/02-editor/tree-editor.xhtml
@@ -22,7 +22,7 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.tree_editor}"/>
+
   <p>This is an example, to show how to write an editor for a tree.
   Some commands are using popups and AJAX.</p>
 
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/03-menu/tree-menu.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/03-menu/tree-menu.xhtml
index db1c83b..931be7b 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/03-menu/tree-menu.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/03-menu/tree-menu.xhtml
@@ -21,7 +21,6 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.tree_menu} &lt;tc:treeMenu>"/>
 
   <p>The <code class="language-markup">&lt;tc:treeMenu/></code> tag is deprecated, because it's easy to
     build a tree menu with the <code class="language-markup">&lt;tc:tree/></code> tag.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/04-listbox/tree-listbox.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/04-listbox/tree-listbox.xhtml
index 0f22085..7324073 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/04-listbox/tree-listbox.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/04-listbox/tree-listbox.xhtml
@@ -21,11 +21,11 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.tree_listbox} &lt;tc:treeListbox>"/>
+
   <p>The <code class="language-markup">&lt;tc:treeListbox/></code> can be used to replace a classic
     <code class="language-markup">&lt;tc:tree/></code>. It displays the tree as a number of lists.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/treeListbox.html"/>
+           link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/treeListbox.html"/>
 
   <tc:section label="Example">
     <pre><code class="language-markup">&lt;tc:treeListbox value="\#{treeController.sample}" ...></code></pre>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/tree.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/tree.xhtml
index e01fab1..0d7736b 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/tree.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/tree.xhtml
@@ -22,25 +22,37 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.tree} &lt;tc:tree>"/>
+
+  The tree control displays a tree which is generated from application data. The key features are:
+  <ul>
+    <li>Attributes control the rendering of the tree.</li>
+    <li>The possibility to define the tree as "single" or "multiselect",
+      i. e. select one or multiple nodes of the tree.
+    </li>
+    <li>Editing mode for simple handling of tree structures inside the application.</li>
+  </ul>
+  Furthermore there is a TreeListbox Control, which can be described as a vertical tree.
+  This is handy for categorization actions.
+
   <p>A classic tree can created with the <code class="language-markup">&lt;tc:tree/></code> tag.
-    Tobago knows two more presentations of a tree. As a <tc:link label="menu" outcome="/content/20-component/090-tree/03-menu/tree-menu.xhtml"/>
+    Tobago knows two more presentations of a tree. As a <tc:link label="menu"
+                                                                 outcome="/content/20-component/090-tree/03-menu/tree-menu.xhtml"/>
     and as a <tc:link label="list" outcome="/content/20-component/090-tree/04-listbox/tree-listbox.xhtml"/>.</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:tree/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/tree.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/tree.html"/>
     |
     <tc:link label="&lt;tc:treeNode/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/treeNode.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/treeNode.html"/>
     |
     <tc:link label="&lt;tc:treeIndent/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/treeIndent.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/treeIndent.html"/>
     |
     <tc:link label="&lt;tc:treeLabel/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/treeLabel.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/treeLabel.html"/>
     |
     <tc:link label="&lt;tc:treeIcon/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/treeIcon.html"/></p>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/treeIcon.html"/></p>
 
   <tc:section label="Basics">
     <p>The tree tag has two attributes, <code>value</code> and <code>var</code>. The attribute <code>value</code>
@@ -63,7 +75,8 @@
 
   <tc:section label="Icon">
     <p>An icon can be added to a node with
-      <code class="language-markup">&lt;tc:treeIcon value="image/feather-leaf.png" closed="image/feather-closed.png" open="image/feather-open.png"/></code>.
+      <code
+          class="language-markup">&lt;tc:treeIcon value="image/feather-leaf.png" closed="image/feather-closed.png" open="image/feather-open.png"/></code>.
       In this case, the targeted image is 'feather-leaf.png'. It is displayed for leaf nodes.
       For open or closed folder there are explicit attributes.
       If these attributes are not used, defaults are used.</p>
@@ -72,11 +85,11 @@
         <tc:treeIndent/>
         <tc:treeIcon value="#{request.contextPath}/image/feather-leaf.png"
                      closed="#{request.contextPath}/image/feather-closed.png"
-                     open="#{request.contextPath}/image/feather-open.png" />
+                     open="#{request.contextPath}/image/feather-open.png"/>
         <tc:treeIcon value="fa-file-o"
                      closed="fa-folder-o"
-                     open="fa-folder-open-o" />
-        <tc:treeLabel value="#{node.userObject.name}" />
+                     open="fa-folder-open-o"/>
+        <tc:treeLabel value="#{node.userObject.name}"/>
       </tc:treeNode>
     </tc:tree>
   </tc:section>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/100-upload/upload.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/100-upload/file-upload.xhtml
similarity index 96%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/20-component/100-upload/upload.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/20-component/100-upload/file-upload.xhtml
index ae97b47..813d4a5 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/100-upload/upload.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/100-upload/file-upload.xhtml
@@ -22,7 +22,7 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.upload} &lt;tc:file/&gt;"/>
+
   <p>The <code class="language-markup">&lt;tc:file/></code> create a textfield with a choose directory button on the
     right.</p>
   <p>To load up files to the server for JSF 2.0 and 2.1 you will need to add a multipart-config entry to the
@@ -38,7 +38,7 @@
     <code>org.apache.myfaces.tobago.internal.util.PartUtils.getSubmittedFileName(part)</code>
     to access to filename of the upload.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/file.html"/>
+           link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/file.html"/>
 
   <tc:section id="s1" label="Basics">
     <pre><code class="language-markup">&lt;tc:file label="Upload" value="\#{uploadController.file1}"/></code></pre>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/110-wysiwyg/00-tinymce/tinymce.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/110-wysiwyg/00-tinymce/tiny-mce.xhtml
similarity index 98%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/20-component/110-wysiwyg/00-tinymce/tinymce.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/20-component/110-wysiwyg/00-tinymce/tiny-mce.xhtml
index 0e7120f..566d628 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/110-wysiwyg/00-tinymce/tinymce.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/110-wysiwyg/00-tinymce/tiny-mce.xhtml
@@ -22,7 +22,7 @@
                 xmlns:f="http://java.sun.com/jsf/core"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.tinymce}"/>
+
   <tc:script
           file="#{request.contextPath}/content/20-component/110-wysiwyg/00-tinymce/tinymce/js/tinymce/tinymce.min.js"/>
   <tc:script file="#{request.contextPath}/content/20-component/110-wysiwyg/00-tinymce/tinymce.js"/>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/110-wysiwyg/01-ckeditor/ckeditor.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/110-wysiwyg/01-ckeditor/ck-editor.xhtml
similarity index 98%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/20-component/110-wysiwyg/01-ckeditor/ckeditor.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/20-component/110-wysiwyg/01-ckeditor/ck-editor.xhtml
index 2d5c5e5..6cbdf50 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/110-wysiwyg/01-ckeditor/ckeditor.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/110-wysiwyg/01-ckeditor/ck-editor.xhtml
@@ -22,7 +22,7 @@
                 xmlns:f="http://java.sun.com/jsf/core"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.ckeditor}"/>
+
   <tc:script
           file="#{request.contextPath}/content/20-component/110-wysiwyg/01-ckeditor/ckeditor/ckeditor.js"/>
   <tc:script file="#{request.contextPath}/content/20-component/110-wysiwyg/01-ckeditor/demo-ckeditor.js"/>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/110-wysiwyg/wysiwyg-editor.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/110-wysiwyg/wysiwyg-editor.xhtml
index bb627dd..bdf9c0a 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/110-wysiwyg/wysiwyg-editor.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/110-wysiwyg/wysiwyg-editor.xhtml
@@ -21,7 +21,7 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.wysiwyg_editor}"/>
+
   <tc:section label="A WYSIWYG HTML Editor">
     <p>
       You can embed HTML editor in Tobago easily,
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/component.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/component.xhtml
index af722d8..3c187ed 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/component.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/component.xhtml
@@ -20,7 +20,7 @@
 <ui:composition template="/main.xhtml"
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.component}"/>
+
   <p>The different components of Tobago are shown in this section.
     There are some classic components like inputfields, outputfields or radiobuttons
     and some more advanced like a popup dialog, a tabgroup or a sheet.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/00/content-validation.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/00/content-validation.xhtml
index 6340b3f..3493d8d 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/00/content-validation.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/00/content-validation.xhtml
@@ -22,16 +22,16 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.validation}"/>
+
   <p>There are several ways to validate the content of a component. In general input components have the option
     for validation. In the following sections, the different kinds von validation are explained.</p>
 
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:sheet/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/sheet.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/sheet.html"/>
     |
     <tc:link label="&lt;tc:column/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/column.html"/></p>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/column.html"/></p>
 
   <tc:section label="Required">
     <p>A simple way of validation is the <code>required</code> attribute in some input components.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/01/validation-jsr303.test.js b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/01/jsr-303.test.js
similarity index 100%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/01/validation-jsr303.test.js
rename to tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/01/jsr-303.test.js
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/01/validation-jsr303.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/01/jsr-303.xhtml
similarity index 97%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/01/validation-jsr303.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/01/jsr-303.xhtml
index c76e1ab..0a8d57b 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/01/validation-jsr303.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/01/jsr-303.xhtml
@@ -21,7 +21,7 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.validation_jsr303}"/>
+
   <p>Tobago has JSR 303 Validation support.
     With it, you can describe the validation in an annotation in the controller.</p>
 
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/02/severity.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/02/severity.xhtml
index 34a3dea..5c6c81f 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/02/severity.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/02/severity.xhtml
@@ -20,7 +20,6 @@
 <ui:composition template="/main.xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.severity}"/>
 
   The validator of each field creates a FacesMessage with the given severity.
 
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/validation.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/validation.xhtml
index dff2f67..9f30c36 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/validation.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/validation.xhtml
@@ -21,13 +21,13 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.validation}"/>
+
   <p>Content validation of inputfields can be made directly in the facelet
     with the <code>required</code> attribute and several validation tags.</p>
   <p>Validation can also be described in the controller via annotations.</p>
   <p>In the context of validation, you may report errors to the user.
     The <code class="language-markup">&lt;tc:messages/></code> tag provide different severity levels.
     Have a look at
-    <tc:link label="#{demoBundle.messages}"
+    <tc:link label="Messages"
              outcome="/content/20-component/020-output/30-messages/messages.xhtml"/>.</p>
 </ui:composition>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/07-conversion/conversion.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/07-conversion/conversion.xhtml
index 982b986..c355e57 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/07-conversion/conversion.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/07-conversion/conversion.xhtml
@@ -22,7 +22,7 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.conversion}"/>
+
   <p>To convert numbers put a <code class="language-markup">&lt;f:convertNumber/></code> tag in an component.</p>
   <tc:section label="Example">
     <p>The following examples show the basic functions of the number converter.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/10-required/form-required.test.js b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/10-required/required.test.js
similarity index 100%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/10-required/form-required.test.js
rename to tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/10-required/required.test.js
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/10-required/form-required.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/10-required/required.xhtml
similarity index 95%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/10-required/form-required.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/10-required/required.xhtml
index 15fc2f4..1ad45e6 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/10-required/form-required.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/10-required/required.xhtml
@@ -21,12 +21,12 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.form_required} &lt;tc:form>"/>
+
   <p>If the validation of a form is activated and the actual value of this form is only stored temporarily,
     the validation is deactivated until the value is definitely stored into the model.</p>
   <p>For example, if only the value in 'Inner Form 1' is set, the validation of the other forms are turned off.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/form.html"/>
+           link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/form.html"/>
 
   <tc:section label="Example">
     <p>Every form in this example is surrounded by a content box.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/20-ajax/form-ajax.test.js b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/20-ajax/ajax.test.js
similarity index 100%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/20-ajax/form-ajax.test.js
rename to tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/20-ajax/ajax.test.js
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/20-ajax/form-ajax.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/20-ajax/ajax.xhtml
similarity index 94%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/20-ajax/form-ajax.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/20-ajax/ajax.xhtml
index 501a850..bb16806 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/20-ajax/form-ajax.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/20-ajax/ajax.xhtml
@@ -22,17 +22,18 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.form_ajax} &lt;tc:form>"/>
+
   <p>The <code class="language-markup">&lt;f:ajax execute="..." render="..."/></code> tag ignore the
     <code class="language-markup">&lt;tc:form></code> tag.
     The form is only used as a naming container.</p>
 
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/form.html"/>
+           link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/form.html"/>
 
   <tc:section label="Example">
     <p>The structure of this example is similar to the
-      <tc:link label="#{demoBundle.form_required}" link="/content/30-concept/08-form/10-required/form-required.xhtml"/> example.
+      <tc:link label="Form Required" link="/content/30-concept/08-form/10-required/form-required.xhtml"/>
+      example.
       Every form in this example is surrounded by a content box.
       The submit buttons in the inner forms only put the inner value into the model.
       The submit button in the outer form put all values into the model.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/form.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/form.xhtml
index 23a95f6..f75e85a 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/form.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/form.xhtml
@@ -21,15 +21,15 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.form} &lt;tc:form>"/>
+
   <p>Tobago supports nested forms and can treat each form separately.
     Values can be stored separately into the model, while already filled input elements keep their values (temporarily).
     Forms are added by the <code class="language-markup">&lt;tc:form/></code> tag.</p>
   <p>Forms are also relevant for
-    <tc:link label="#{demoBundle.default_command}"
+    <tc:link label="Default Command"
              outcome="/content/20-component/040-command/10-default/default-command.xhtml"/>.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/form.html"/>
+           link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/form.html"/>
 
   <tc:section label="Example">
     <p>This small example contain two separate forms, each surrounded by a content box.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/10-theme/theme.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/10-theme/theme.xhtml
index c634e17..1791f50 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/10-theme/theme.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/10-theme/theme.xhtml
@@ -22,7 +22,7 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.theme}"/>
+
   <p>Tobago supports a big variety of displaying controls, so called designs or themes.</p>
 
   <tc:form id="theme">
@@ -32,15 +32,11 @@
         for each supported theme.</p>
       <tc:selectOneChoice label="Theme" value="#{themeController.theme}">
         <f:selectItems value="#{themeController.themeItems}"/>
+        <tc:event action="#{themeController.submit}"/>
       </tc:selectOneChoice>
-      <tc:button label="Submit" action="#{themeController.submit}"/>
 
       <tc:separator/>
-      <tc:figure>
-        <f:facet name="label">
-          <!-- todo: theme dependent text -->
-          <tc:out id="o1" value="#{demoBundle.theme_photo} (TODO: theme dependent text)"/>
-        </f:facet>
+      <tc:figure label="#{themeController.getLocalizedString('theme_photo')}">
         <tc:image value="/image/#{tobagoContext.theme.name}/theme-photo.jpg"/>
       </tc:figure>
     </tc:section>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/14-locale/locale.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/14-locale/locale.xhtml
index 94368ac..7f941f7 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/14-locale/locale.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/14-locale/locale.xhtml
@@ -21,21 +21,30 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.locale} - #{demoBundle.locale_title}"/>
 
-  <tc:out escape="false" value="#{demoBundle.locale_text}"/>
+  Tobago supports internationalization and localization.
+  <ul>
+    <li>Unicode is used internally.</li>
+    <li>Content in different languages can be provided by resource bundles.</li>
+    <li>Like content, images and scripts can be localized.</li>
+  </ul>
+
+  <tc:out value="#{translatedBundle.not_translated}"/>
+
+  (Current problem: this value is one request behind!)
+  <tc:out label="Short" value="#{translatedBundle.locale_short}"/>
 
   <tc:image value="#{request.contextPath}#{localeController.imageCountryName}">
     <tc:style width="100px" height="100px"/>
   </tc:image>
 
   <tc:selectOneChoice value="#{localeController.locale}"
-                      label="#{demoBundle.locale}">
+                      label="Locale">
     <f:selectItems value="#{localeController.localeItems}"/>
   </tc:selectOneChoice>
 
   <tc:flowLayout textAlign="right">
-    <tc:button action="#{localeController.submit}" label="#{demoBundle.locale_submit}"/>
+    <tc:button action="#{localeController.submit}" label="Submit"/>
   </tc:flowLayout>
 
 </ui:composition>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/15-conversation/conversation.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/15-conversation/conversation.xhtml
index 61da827..fcc570d 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/15-conversation/conversation.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/15-conversation/conversation.xhtml
@@ -21,7 +21,7 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.conversation}"/>
+
   <p>This page show a simple example for the <code>@ConversationScoped</code> annotation.
     The <b>Conversationscope</b> is needed for situations when the controller must live longer than a single request,
     but don't need to live the whole session.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/10-flow/flow-layout.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/10-flow/flow-layout.xhtml
index 47eeedd..9dc79bd 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/10-flow/flow-layout.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/10-flow/flow-layout.xhtml
@@ -21,11 +21,11 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.flow_layout} &lt;tc:flowLayout>"/>
+
   <p>The flow layout can be used with the <code>&lt;tc:flowLayout/></code> tag.
     By default, the content is displayed in a flow layout.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/flowLayout.html"/>
+           link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/flowLayout.html"/>
 
   <tc:section label="Basics">
     <p>The buttons are displayed successively at the same line.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/20-flex/flex-layout.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/20-flex/flex-layout.xhtml
index 060c62b..89f8ab1 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/20-flex/flex-layout.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/20-flex/flex-layout.xhtml
@@ -21,12 +21,12 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.flex_layout}  &lt;tc:flexLayout>"/>
+
   <p>The flex layout can be used with the <code>&lt;tc:flexLayout/></code> tag.
     The two most important attributes are <code>columns</code> and <code>rows</code>.
     If both attributes are set, only <code>rows</code> has an effect.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/flexLayout.html"/>
+           link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/flexLayout.html"/>
 
   <tc:section label="Basics">
     <p>If no attributes set, the behavior of the flex layout is like a flow layout.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/30-segment/segment-layout.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/30-segment/segment-layout.xhtml
index 79f0681..f940326 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/30-segment/segment-layout.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/30-segment/segment-layout.xhtml
@@ -21,13 +21,13 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.segment_layout}  &lt;tc:segmentLayout>"/>
+
   <p>The segment layout is a grid with 12 columns.
     The number and the proportion of the columns can be set with the attributes
     <code>extraSmall</code>, <code>small</code>, <code>medium</code>, <code>large</code> and <code>extraLarge</code>.
     The value is a space separated list. Allowed are '1seg' to '12seg', 'auto' and '1fr'.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/segmentLayout.html"/>
+           link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/segmentLayout.html"/>
 
   <tc:section label="Basics">
     <p>The following examples show a segment layout with four and three columns
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/40-labeled/labeled-layout.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/40-labeled/labeled-layout.xhtml
index 8baf35a..983889a 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/40-labeled/labeled-layout.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/40-labeled/labeled-layout.xhtml
@@ -21,23 +21,23 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.labeled_layout}"/>
+
   <p>For many components, a <code>label</code> attribute is available, which place a label in front
     of the according component.
     With the <code>labelLayout</code> you can adjust this label.
     The following examples use an inputfield to show, how this works.</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:in/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/in.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/in.html"/>
     |
     <tc:link label="&lt;tc:flowLayout/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/flowLayout.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/flowLayout.html"/>
     |
     <tc:link label="&lt;tc:flexLayout/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/flexLayout.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/flexLayout.html"/>
     |
     <tc:link label="&lt;tc:segmentLayout/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/segmentLayout.html"/></p>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/segmentLayout.html"/></p>
 
   <tc:section label="Basics">
     <tc:section label="Default value">
@@ -57,21 +57,21 @@
     </tc:section>
   </tc:section>
 
-  <tc:section label="#{demoBundle.flow_layout}">
+  <tc:section label="Flow Layout">
     <pre><code class="language-markup">&lt;tc:in label="Input" labelLayout="flowLeft"/>
 &lt;tc:in label="Input" labelLayout="flowRight"/></code></pre>
     <tc:in label="Input" labelLayout="flowLeft"/>
     <tc:in label="Input" labelLayout="flowRight"/>
   </tc:section>
 
-  <tc:section label="#{demoBundle.flex_layout}">
+  <tc:section label="Flex Layout">
     <pre><code class="language-markup">&lt;tc:in label="Input" labelLayout="flexLeft"/>
 &lt;tc:in label="Input" labelLayout="flexRight"/></code></pre>
     <tc:in label="Input" labelLayout="flexLeft"/>
     <tc:in label="Input" labelLayout="flexRight"/>
   </tc:section>
 
-  <tc:section label="#{demoBundle.segment_layout}">
+  <tc:section label="Segment Layout">
     <p>The segment layout is divided in two columns. The right one is three times bigger.
       The 'segmentLeft' and 'segmentRight' put the label in the left or in the right column.</p>
     <pre><code class="language-markup">&lt;tc:segmentLayout medium="3seg 9seg">
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/50-grid/grid-layout.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/50-grid/grid-layout.xhtml
index bdbc4f9..20c7258 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/50-grid/grid-layout.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/50-grid/grid-layout.xhtml
@@ -22,7 +22,6 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.grid_layout}"/>
 
   <p>The <code>&lt;tc:gridLayout></code> has a dynamic history. </p>
   <p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/90-message-layout/message-Layout.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/90-message-layout/message-layout.xhtml
similarity index 100%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/90-message-layout/message-Layout.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/90-message-layout/message-layout.xhtml
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/layout.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/layout.xhtml
index 71af1e6..c441cd9 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/layout.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/layout.xhtml
@@ -21,10 +21,10 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.layout}"/>
+
   <p>Tobago provide several layout options.</p>
 
-  <tc:section label="#{demoBundle.flow_layout}">
+  <tc:section label="Flow layout">
     <tc:flowLayout>
       <tc:button label="Button"/>
       <tc:button label="Button"/>
@@ -34,7 +34,7 @@
     </tc:flowLayout>
   </tc:section>
 
-  <tc:section label="#{demoBundle.flex_layout}">
+  <tc:section label="Flex layout">
     <tc:flexLayout columns="200px auto 1fr 3fr 1fr">
       <tc:button label="Button"/>
       <tc:button label="Button"/>
@@ -44,7 +44,7 @@
     </tc:flexLayout>
   </tc:section>
 
-  <tc:section label="#{demoBundle.segment_layout}">
+  <tc:section label="Segment layout">
     <tc:segmentLayout medium="4seg 4seg 4seg">
       <tc:button label="Button"/>
       <tc:button label="Button"/>
@@ -54,7 +54,7 @@
     </tc:segmentLayout>
   </tc:section>
 
-  <tc:section label="#{demoBundle.labeled_layout}">
+  <tc:section label="Labled layout">
     <p>For many components, a <code>label</code> attribute is available, which place a label in front
       of the according component.</p>
     <tc:in label="Input"/>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/20-format/format.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/20-format/format.xhtml
index 4cac1ab..9e73c5c 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/20-format/format.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/20-format/format.xhtml
@@ -21,31 +21,37 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
-                xmlns:fn="http://java.sun.com/jsp/jstl/functions">
-  <ui:param name="title" value="#{demoBundle.format}"/>
+                xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:c="http://java.sun.com/jsp/jstl/core">
+
   <p>Use the EL functions from <code>tc:format1</code> to <code>tc:format9</code>
     to replace up to 9 variables in a given internationalized text.
-    This work like in <tc:link label="java.text.MessageFormat"
-                               link="https://docs.oracle.com/javase/6/docs/api/java/text/MessageFormat.html"/>.</p>
+    This work like in
+    <tc:link label="java.text.MessageFormat"
+             link="https://docs.oracle.com/javase/6/docs/api/java/text/MessageFormat.html"/>.</p>
+
+  <ui:param name="format1text" value="The equatorial radius of the sun is {0} km."/>
+  <ui:param name="format3text"
+            value="The temperature of the sun is {0} K on the surface, but {1} K in the center and {2} K in the corona."/>
+  <ui:param name="format9text" value="Just reordering: {4} - {1} - {6} - {8} - {5} - {3} - {0} - {7} - {2}"/>
 
   <tc:section label="Format 1">
-    <p>The message format is: "#{demoBundle.format1}"</p>
-    <pre><code class="language-markup">&lt;tc:out value="\#{tc:format1(demoBundle.format1, 695700)}"/></code></pre>
-    <tc:out id="o1" value="#{tc:format1(demoBundle.format1, 695700)}"/>
+    <p>The message format is: "#{format1text}"</p>
+    <pre><code class="language-markup">&lt;tc:out value="\#{tc:format1(format1text, 695700)}"/></code></pre>
+    <tc:out id="o1" value="#{tc:format1(format1text, 695700)}"/>
   </tc:section>
 
   <tc:section label="Format 3">
-    <p>The message format is: "#{demoBundle.format3}"</p>
+    <p>The message format is: "#{format3text}"</p>
     <pre><code
-            class="language-markup">&lt;tc:out value="\#{tc:format3(demoBundle.format3, 5800, 15700000, 5000000)}"/></code></pre>
-    <tc:out id="o2" value="#{tc:format3(demoBundle.format3, 5800, 15700000, 5000000)}"/>
+        class="language-markup">&lt;tc:out value="\#{tc:format3(format3text, 5800, 15700000, 5000000)}"/></code></pre>
+    <tc:out id="o2" value="#{tc:format3(format3text, 5800, 15700000, 5000000)}"/>
   </tc:section>
 
   <tc:section label="Format 9">
-    <p>The message format is: "#{demoBundle.format9}"</p>
+    <p>The message format is: "#{format9text}"</p>
     <pre><code
-            class="language-markup">&lt;tc:out value="\#{tc:format9(demoBundle.format9, 0, 1, 2, 3, 4, 5, 6, 7, 8)}"/></code></pre>
-    <tc:out id="o3" value="#{tc:format9(demoBundle.format9, 0, 1, 2, 3, 4, 5, 6, 7, 8)}"/>
+        class="language-markup">&lt;tc:out value="\#{tc:format9(format9text, 0, 1, 2, 3, 4, 5, 6, 7, 8)}"/></code></pre>
+    <tc:out id="o3" value="#{tc:format9(format9text, 0, 1, 2, 3, 4, 5, 6, 7, 8)}"/>
   </tc:section>
 
   <tc:section label="UpperCase">
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/21-error/error.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/21-error/error-handling.xhtml
similarity index 61%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/21-error/error.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/21-error/error-handling.xhtml
index e9f13fd..ad8ad0c 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/21-error/error.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/21-error/error-handling.xhtml
@@ -21,28 +21,30 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
 
-  <ui:param name="title" value="Sample Error Scenarios (Todo: is to be optimized) "/>
+  <ui:param name="title" value="Sample Error Scenarios (Todo: is to be optimized)"/>
 
-  <tc:gridLayout rows="35px 35px 35px 35px" columns="100px 1fr">
-
-    <tc:flowLayout>
-      <tc:span column="2"/>
-      <tc:out
-          value="When using MyFaces or Facelets you have to turn off the exception mechanism of them to use this demo. See in the MyFaces Wiki: "/>
-      <tc:link link="http://wiki.apache.org/myfaces/Handling_Server_Errors" label="Handling Server Errors"/>
-    </tc:flowLayout>
+  <p>
+    When using MyFaces or Facelets you have to turn off the exception mechanism of them to use this demo.
+    See in the MyFaces Wiki:
+    <tc:link link="http://wiki.apache.org/myfaces/Handling_Server_Errors" label="Handling Server Errors"/>
+  </p>
 
+  <p>
     <tc:button action="#{bestPracticeController.throwException}" label="Application"/>
-    <tc:out
-        value="An exception is thrown in the application. The servlet container forwards to a page defined in the web.xml."/>
+    <br/>
+    An exception is thrown in the application. The servlet container forwards to a page defined in the web.xml.
+  </p>
 
+  <p>
     <tc:button action="error-404" label="Not Found"/>
-    <tc:out
-        value="The navigation handler refers to a non existing page. The error code 404 in the web.xml is affected."/>
+    <br/>
+    The navigation handler refers to a non existing page. The error code 404 in the web.xml is affected.
+  </p>
 
+  <p>
     <tc:button action="syntax" label="Syntax Error"/>
-    <tc:out value="The navigation handler refers to a page with a syntax error."/>
-
-  </tc:gridLayout>
+    <br/>
+    The navigation handler refers to a page with a syntax error.
+  </p>
 
 </ui:composition>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/22-exception-handler/exception-handler.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/22-exception-handler/exception-handler.xhtml
index cdeed32..68b94f6 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/22-exception-handler/exception-handler.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/22-exception-handler/exception-handler.xhtml
@@ -23,7 +23,7 @@
                 xmlns:f="http://java.sun.com/jsf/core"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.exception_handler}"/>
+
   <p>Since Tobago 4.0.0 an AjaxExceptionHandler takes care of exceptions in ajax case.</p>
   <p><span class="#{demo:bootstrapClass('BADGE')} #{demo:bootstrapClass('BADGE_DANGER')}">Important!</span>
     The exception has to be thrown before the renderer phase.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/23-transition/transition.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/23-transition/transition.xhtml
index f64cee4..1c0cacb 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/23-transition/transition.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/23-transition/transition.xhtml
@@ -22,14 +22,13 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
 
-  <ui:param name="title" value="#{demoBundle.transition}"/>
   <p>For command components like a link or a button, the <code>transition</code> attribute is available.
     It shows a loading animation if the site don't respond in a certain amount of time.
     By default, the value is 'true'.</p>
   <p>Tag Library Documentation:
-    <tc:link label="&lt;tc:link/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/link.html"/>
+    <tc:link label="&lt;tc:link/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/link.html"/>
     |
-    <tc:link label="&lt;tc:button/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/button.html"/></p>
+    <tc:link label="&lt;tc:button/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/button.html"/></p>
 
   <tc:section label="Basics">
     <p>By following one of the links, the site waits five seconds.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/30-behavior/behavior.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/30-behavior/behavior.xhtml
index d233191..cf02c31 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/30-behavior/behavior.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/30-behavior/behavior.xhtml
@@ -22,7 +22,7 @@
                 xmlns:f="http://java.sun.com/jsf/core"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.behavior}"/>
+
   <p>There are two kinds of behaviors: </p>
   <ul>
     <li><code class="language-markup">&lt;f:ajax/></code> send an ajax request</li>
@@ -33,7 +33,7 @@
              link="http://docs.oracle.com/javaee/6/javaserverfaces/2.1/docs/vdldocs/facelets/f/ajax.html"/>
     |
     <tc:link label="&lt;tc:event/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/event.html"/></p>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/event.html"/></p>
 
   <tc:section label="Basic examples">
     <p>Type a text into the input field. After leaving the input field, the given text is shown in the output field.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/50-partial/partial.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/50-partial/partial-ajax.xhtml
similarity index 100%
rename from tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/50-partial/partial.xhtml
rename to tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/50-partial/partial-ajax.xhtml
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/51-for-each/for-each.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/51-for-each/for-each.xhtml
index 94d0d9e..4cfbb35 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/51-for-each/for-each.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/51-for-each/for-each.xhtml
@@ -20,7 +20,7 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:c="http://java.sun.com/jsp/jstl/core">
-  <ui:param name="title" value="#{demoBundle.for_each} &lt;c:forEach> &lt;ui:repeat>"/>
+
   <p>Generating content with a loop can be done
     with the <code class="language-markup">&lt;c:forEach/></code> tag and
     with the <code class="language-markup">&lt;ui:repeat/></code> tag.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/00-collapsible-box/collapsible-box.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/00-collapsible-box/collapsible-box.xhtml
index 8f89723..c824d0d 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/00-collapsible-box/collapsible-box.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/00-collapsible-box/collapsible-box.xhtml
@@ -22,9 +22,9 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.collapsible_box} &lt;tc:box>"/>
+
   <p>On this page the collapsible concept is explained for a
-    <tc:link label="#{demoBundle.box}" outcome="/content/20-component/050-container/10-box/box.xhtml"/>.</p>
+    <tc:link label="Box" outcome="/content/20-component/050-container/10-box/box.xhtml"/>.</p>
 
   <tc:section label="Simple Collapsible Box">
     <tc:form id="controller">
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/10-collapsible-popup/collapsible-popup.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/10-collapsible-popup/collapsible-popup.xhtml
index 29e74de..b6d5049 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/10-collapsible-popup/collapsible-popup.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/10-collapsible-popup/collapsible-popup.xhtml
@@ -21,10 +21,10 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.collapsible_popup} &lt;tc:popup>"/>
+
   <p>This page contain some examples for the collapsible concept of a popup. Please have a look at the
-    <tc:link label="#{demoBundle.popup}" outcome="/content/20-component/060-popup/popup.xhtml"/> page
-    in the components section for more details.</p>
+    <tc:link label="Popup" outcome="/content/20-component/060-popup/popup.xhtml"/>
+    page in the components section for more details.</p>
 
   <tc:section label="Simple Popup">
     <tc:form id="simple">
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/20-collapsible-panel/collapsible-panel.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/20-collapsible-panel/collapsible-panel.xhtml
index 91b3cc3..738df64 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/20-collapsible-panel/collapsible-panel.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/20-collapsible-panel/collapsible-panel.xhtml
@@ -22,9 +22,9 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.collapsible_panel} &lt;tc:panel>"/>
+
   <p>This page show some examples for the collapsible concept of a
-    <tc:link label="#{demoBundle.panel}" outcome="/content/20-component/050-container/20-panel/panel.xhtml"/>.
+    <tc:link label="Panel" outcome="/content/20-component/050-container/20-panel/panel.xhtml"/>.
     Every panel contain a required inputfield to see if a validation occur while submitting.
     For better visibility every panel has a border.</p>
   <tc:section label="Simple Panel">
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/30-collapsible-section/collapsible-section.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/30-collapsible-section/collapsible-section.xhtml
index 86f94be..3763c61 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/30-collapsible-section/collapsible-section.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/30-collapsible-section/collapsible-section.xhtml
@@ -22,9 +22,9 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.collapsible_section} &lt;tc:section>"/>
+
   <p>Collapsible concept explained for a
-    <tc:link label="#{demoBundle.section}"
+    <tc:link label="Section"
              outcome="/content/20-component/050-container/40-section/section.xhtml"/>.</p>
   <tc:section label="Simple Section">
     <p>A simple collapsible section. The <code>collapsed</code> attribute is set by a controller.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/collapsible.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/collapsible.xhtml
index 096a5f6..ef5ebf8 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/collapsible.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/collapsible.xhtml
@@ -20,7 +20,6 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:demo="http://myfaces.apache.org/tobago/example/demo">
-  <ui:param name="title" value="#{demoBundle.collapsible}"/>
 
   <p>
     <span class="#{demo:bootstrapClass('BADGE')} #{demo:bootstrapClass('BADGE_DANGER')}">Warning!</span>
@@ -28,21 +27,20 @@
   </p>
 
   <p>The collapsible concept is the base for
-    <tc:link label="#{demoBundle.box}" outcome="/content/20-component/050-container/10-box/box.xhtml"/>,
-    <tc:link label="#{demoBundle.popup}" outcome="/content/20-component/060-popup/popup.xhtml"/>,
-    <tc:link label="#{demoBundle.panel}" outcome="/content/20-component/050-container/20-panel/panel.xhtml"/>
+    <tc:link label="Box" outcome="/content/20-component/050-container/10-box/box.xhtml"/>,
+    <tc:link label="Popup" outcome="/content/20-component/060-popup/popup.xhtml"/>,
+    <tc:link label="Panel" outcome="/content/20-component/050-container/20-panel/panel.xhtml"/>
     and
-    <tc:link label="#{demoBundle.section}"
+    <tc:link label="Section"
              outcome="/content/20-component/050-container/40-section/section.xhtml"/>.
     It determines how parts or whole components are shown or hidden.
-    For example, a #{demoBundle.popup} is hidden completely while for #{demoBundle.box} only the content
+    For example, a popup is hidden completely while for box only the content
     could be hidden.</p>
 
   <tc:section label="States">
     <p>There are four possible states - visible, hidden, absent and none.<br/>
-    The value 'none' deactivate this feature and is the default for #{demoBundle.box}, #{demoBundle.panel} and
-     #{demoBundle.section}.</p>
-    <p>The (not-'none') states are explained using the following #{demoBundle.box}es.</p>
+    The value 'none' deactivate this feature and is the default for box, panel and section.</p>
+    <p>The (not-'none') states are explained using the following boxes.</p>
     <p>The 'visible' state show the content of the box like you expected.
       <br/>
       The 'hidden' state hide the content via CSS. You can see is still in the source code.
@@ -79,7 +77,7 @@
         Possible values are <code>absent</code> which is the default and <code>hidden</code>.
         It has only an effect if <code>collapsed="true"</code>.</p>
       <ul>
-        <li><code>absent</code> (default for #{demoBundle.popup}): Hidden components have the state 'hidden'.</li>
+        <li><code>absent</code> (default for popup): Hidden components have the state 'hidden'.</li>
         <li><code>hidden</code>: Hidden components have the state 'absent'.</li>
       </ul>
     </tc:section>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/65-accessKey/accessKey.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/65-accessKey/accessKey.xhtml
index 1871062..7264624 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/65-accessKey/accessKey.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/65-accessKey/accessKey.xhtml
@@ -20,7 +20,7 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.accessKey}"/>
+
   <p>The <code>accessKey</code> attribute is available for many components like buttons, checkboxes or links.
     A component with this attribute is accessible by the given character. The character is not case sensitive.</p>
   <p>Logging the accessKey can be configured by setting the category
@@ -34,16 +34,16 @@
              link="https://developer.mozilla.org/de/docs/Web/HTML/Global_attributes/accesskey"/>.</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:button/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/button.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/button.html"/>
     |
     <tc:link label="&lt;tc:checkbox/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/checkbox.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/checkbox.html"/>
     |
     <tc:link label="&lt;tc:link/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/link.html"/>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/link.html"/>
     |
     <tc:link label="&lt;tc:label/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/label.html"/></p>
+             link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/label.html"/></p>
 
   <tc:section label="Basics">
     <p>The accesskey is set to 'a'. Notice, that the 'A' in the label of the button has an underscore.</p>
@@ -65,14 +65,14 @@
     </tc:button>
   </tc:section>
 
-  <tc:section label="#{demoBundle.input}">
+  <tc:section label="Input">
     <p>The <code>accessKey</code> is also available for input fields.
       An input field will get the focus after pressing the accesskey.</p>
-    <tc:section label="#{demoBundle.in}">
+    <tc:section label="In">
       <pre><code class="language-markup">&lt;tc:in label="Input" accessKey="i"/></code></pre>
       <tc:in label="Input" accessKey="i"/>
     </tc:section>
-    <tc:section label="#{demoBundle.textarea}">
+    <tc:section label="Text Area">
       <pre><code class="language-markup">&lt;tc:textarea label="Textarea" accessKey="t"/></code></pre>
       <tc:textarea label="Textarea" accessKey="t"/>
     </tc:section>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/70-dataAttribute/dataAttribute.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/70-dataAttribute/dataAttribute.xhtml
index 35d59b8..eef94ec 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/70-dataAttribute/dataAttribute.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/70-dataAttribute/dataAttribute.xhtml
@@ -21,13 +21,13 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.dataAttribute} &lt;tc:dataAttribute>"/>
+
   <tc:script file="#{request.contextPath}/content/30-concept/70-dataAttribute/dataAttribute.js"/>
   <p>Add a data attribute to an UIComponent with
     <code class="language-markup">&lt;tc:dataAttribute/></code>.
     The data attribute is added to the parent and can be used by scripts.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/dataAttribute.html"/>
+           link="#{apiController.base}/doc/#{apiController.currentRelease}/tld/tc/dataAttribute.html"/>
 
   <tc:section label="Example">
     <p>Each box contains a panel with a data attribute.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/75-resize/resize.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/75-resize/resize.xhtml
index fbe4c12..d8471f8 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/75-resize/resize.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/75-resize/resize.xhtml
@@ -27,6 +27,7 @@
     <tc:link id="resize" action="#{resizeController.resize}"/>
   </f:facet>
 
+  <!--todo-->
   Todo: make nicer example
   <br/>
 
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/80-security/20-roles/roles.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/80-security/20-roles/roles.xhtml
index 47e3f31..76176e1 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/80-security/20-roles/roles.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/80-security/20-roles/roles.xhtml
@@ -21,7 +21,7 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.roles}"/>
+
   <p>It is possible to define roles for users. Based on this roles, components with an <code>action</code> attribute
     like a button can be hidden or disabled for the current user.</p>
   <p>The behavior can be defined in the <code>security-annotation</code> element in the <code>tobago-config.xml</code>.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/80-security/20-roles/x-login.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/80-security/20-roles/x-login.xhtml
index acc3d6c..874a1a3 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/80-security/20-roles/x-login.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/80-security/20-roles/x-login.xhtml
@@ -24,12 +24,12 @@
   <ui:param name="title" value="Login"/>
   <tc:panel rendered="#{request.userPrincipal != null}">
   <p>You are now logged in as user '#{request.userPrincipal.name}'</p>
-  <p>To log out, you may use the menu entry <tc:badge value="#{demoBundle.menu_config}"/>
+  <p>To log out, you may use the menu entry <tc:badge value="Configuration"/>
     → <tc:badge value="Logout '#{request.userPrincipal.name}'"/></p>
   </tc:panel>
   <tc:panel rendered="#{request.userPrincipal == null}">
   <p>You are not logged in!</p>
-  <p>To log in, you may use the menu entry <tc:badge value="#{demoBundle.menu_config}"/>
+  <p>To log in, you may use the menu entry <tc:badge value="Configuration"/>
     → <tc:badge value="Login"/></p>
   </tc:panel>
 
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/80-security/security.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/80-security/security.xhtml
index 8019102..01eefc9 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/80-security/security.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/80-security/security.xhtml
@@ -28,12 +28,12 @@
     Tobago supports additional security concepts:
   </p>
   <ul>
-    <li><tc:link label="#{demoBundle.content_security_policy}"
+    <li><tc:link label="Content Security Policy}"
                  outcome="/content/30-concept/80-security/05-csp/content-security-policy.xhtml"/></li>
-    <li><tc:link label="#{demoBundle.sanitize}"
+    <li><tc:link label="Sanitize"
                  outcome="/content/30-concept/80-security/10-sanitize/sanitize.xhtml"/> suspicious code.
     </li>
-    <li>Checking annotated method calls for <tc:link label="#{demoBundle.roles}"
+    <li>Checking annotated method calls for <tc:link label="Roles"
                  outcome="/content/30-concept/80-security/20-roles/roles.xhtml"/>.</li>
     <li>Setting HTTP headers <code>X-Frame-Options</code> and <code>X-Content-Type-Options</code></li>
     <li>Using session secrects to avoid
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/concept.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/concept.xhtml
index d93351e..290decc 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/concept.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/concept.xhtml
@@ -20,7 +20,7 @@
 <ui:composition template="/main.xhtml"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns="http://www.w3.org/1999/xhtml">
-  <ui:param name="title" value="#{demoBundle.concept}"/>
+
   <p>In this section the different concepts of Tobago are described
     like the concept of validation, forms, layouts or access keys.</p>
 </ui:composition>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/35-deprecated/10-tx/tx.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/35-deprecated/10-tx/tx.xhtml
index 373abec..4b128b3 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/35-deprecated/10-tx/tx.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/35-deprecated/10-tx/tx.xhtml
@@ -21,7 +21,7 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.tx}"/>
+
   <p>The TX-library is no longer supported. Use components from the TC-library.</p>
 
   <tc:section label="Replacements">
@@ -39,8 +39,8 @@
     <tc:section label="&lt;tx:menuCheckbox> &lt;tx:menuRadio>">
       <p><code class="language-markup">&lt;tc:menu></code> is deprecated.
         Use dropdown-menus instead. Have a look at 'Dropdown'-section of the
-        <tc:link label="#{demoBundle.button_link}"
-                 outcome="/content/20-component/040-command/00-button+link/button+link.xhtml"/> page.</p>
+        <tc:link label="Button and Link"
+                 outcome="/content/20-component/040-command/00-button-link/button-and-link.xhtml"/> page.</p>
     </tc:section>
     <tc:section label="&lt;tx:time">
       <p><code class="language-markup">&lt;tx:time></code> has no counterpart of the same name.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/35-deprecated/15-suggest-method/suggest-method.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/35-deprecated/15-suggest-method/suggest-method.xhtml
index a1181da..5c719c6 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/35-deprecated/15-suggest-method/suggest-method.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/35-deprecated/15-suggest-method/suggest-method.xhtml
@@ -21,12 +21,12 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.suggest_method} &lt;tc:suggest&gt;"/>
+
   <p>The <code>suggestMethod</code> attribute of <code class="language-markup">&lt;tc:suggest/></code>
     is deprecated.
     Please use <code class="language-markup">&lt;tc:selectItems/></code> instead.
     For more examples please have a look at the
-    <tc:link label="#{demoBundle.suggest}" outcome="/content/20-component/010-input/20-suggest/suggest.xhtml"/>
+    <tc:link label="Suggest" outcome="/content/20-component/010-input/20-suggest/suggest.xhtml"/>
     section.</p>
 
   <tc:section label="Deprecated">
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/35-deprecated/20-toolBar/toolBar.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/35-deprecated/20-toolBar/toolBar.xhtml
index e8c31f3..406df69 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/35-deprecated/20-toolBar/toolBar.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/35-deprecated/20-toolBar/toolBar.xhtml
@@ -21,20 +21,20 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.toolBar} &lt;tc:toolBar>"/>
+
   <p><code class="language-markup">&lt;tc:toolBar/></code> and
     <code class="language-markup">&lt;tc:toolBarCommand/></code> are deprecated.
-    To replace a toolbar in the header of a component use <tc:link label="#{demoBundle.buttons}"
+    To replace a toolbar in the header of a component use <tc:link label="Buttons"
                                                                    outcome="/content/20-component/040-command/20-buttons/buttons.xhtml"/> or
-    <tc:link label="#{demoBundle.links}"
+    <tc:link label="Links"
              outcome="/content/20-component/040-command/25-links/links.xhtml"/> instead.
     To replace a plain toolbar, use
-    <tc:link label="#{demoBundle.bar}"
+    <tc:link label="Bar"
              outcome="/content/20-component/050-container/60-bar/bar.xhtml"/>.</p>
 
   <tc:section label="Content Box Header">
     <p>The first box show the deprecated version of a toolbar.
-      The second and the third one are solutions with #{demoBundle.buttons} and #{demoBundle.links}.</p>
+      The second and the third one are solutions with buttons and links.</p>
 
     <p>Instead of <code class="language-markup">&lt;f:facet name="toolBar"/></code>
       use <code class="language-markup">&lt;f:facet name="bar"/></code>.</p>
@@ -45,7 +45,7 @@
       use <code class="language-markup">&lt;tc:button/></code>
       or <code class="language-markup">&lt;tc:link/></code>.</p>
 
-    <tc:box label="#{demoBundle.buttons}">
+    <tc:box label="Buttons">
       <f:facet name="bar">
         <tc:buttons>
           <tc:button label="Text Button"/>
@@ -59,7 +59,7 @@
       </f:facet>
       <p>Content</p>
     </tc:box>
-    <tc:box label="#{demoBundle.links}">
+    <tc:box label="Links">
       <f:facet name="bar">
         <tc:links>
           <tc:link label="Text Link"/>
@@ -85,7 +85,7 @@
 &lt;/tc:toolBar></code></pre>
     </tc:section>
 
-    <tc:section label="#{demoBundle.bar}">
+    <tc:section label="Bar">
       <pre><code class="language-markup">&lt;tc:bar>
   &lt;tc:buttons>
     &lt;tc:button label="Text Button"/>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/35-deprecated/25-menubar/menubar.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/35-deprecated/25-menubar/menubar.xhtml
index 6269c47..e8520cc 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/35-deprecated/25-menubar/menubar.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/35-deprecated/25-menubar/menubar.xhtml
@@ -22,7 +22,6 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.menubar}"/>
 
   <p><code class="language-markup">&lt;tc:menubar></code>,
     <code class="language-markup">&lt;tc:menu></code>,
@@ -32,8 +31,8 @@
     <code class="language-markup">&lt;tc:buttons></code> tag instead.
 <br/>
     For a dropdownmenus have a look at the 'Dropdown' section on the
-    <tc:link label="#{demoBundle.button_link}"
-             outcome="/content/20-component/040-command/00-button+link/button+link.xhtml"/> page.
+    <tc:link label="Button and Link"
+             outcome="/content/20-component/040-command/00-button-link/button-and-link.xhtml"/> page.
     <br/>
     To add a separator just use <code class="language-markup">&lt;tc:separator/></code>.</p>
 
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/35-deprecated/deprecated.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/35-deprecated/deprecated.xhtml
index e7463db..4485a92 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/35-deprecated/deprecated.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/35-deprecated/deprecated.xhtml
@@ -20,6 +20,6 @@
 <ui:composition template="/main.xhtml"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns="http://www.w3.org/1999/xhtml">
-  <ui:param name="title" value="#{demoBundle.deprecated}"/>
+
   <p>This section list all deprecated components with the appropriate solution.</p>
 </ui:composition>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/1040-date/date.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/1040-date/date.xhtml
index f52cce9..27615d0 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/1040-date/date.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/1040-date/date.xhtml
@@ -20,10 +20,7 @@
 <ui:composition template="/main.xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.date}"/>
 
   <tc:date id="dateNoPattern"/>
   <tc:button label="Submit"/>
-
-
 </ui:composition>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/3000-sheet/10-sheet-types/sheet-types.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/3000-sheet/10-sheet-types/sheet-types.xhtml
index 2a2d541..5d37a3a 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/3000-sheet/10-sheet-types/sheet-types.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/3000-sheet/10-sheet-types/sheet-types.xhtml
@@ -21,7 +21,7 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.sheet_types}"/>
+
   <tc:sheet value="#{sheetController.solarList}" id="sheet" var="luminary"
             columns="50px 70px 70px 10px 90px 160px 100px 70px 180px 90px 130px"
             rows="10">
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/3000-sheet/20-1000-entries/1000-entries.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/3000-sheet/20-1000-entries/1000-entries.xhtml
index 185ee4a..b954b9b 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/3000-sheet/20-1000-entries/1000-entries.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/3000-sheet/20-1000-entries/1000-entries.xhtml
@@ -21,7 +21,7 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.sheet_types}"/>
+
   <tc:sheet value="#{sheetController.hugeSolarList}" id="sheet" var="luminary"
             rows="10" markup="small" >
     <tc:column label="Name">
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/4000-button+link/4050-ajax-dropdown/ajax-dropdown.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/4000-button+link/4050-ajax-dropdown/ajax-dropdown.xhtml
index 8f8d01d..ae1ad80 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/4000-button+link/4050-ajax-dropdown/ajax-dropdown.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/4000-button+link/4050-ajax-dropdown/ajax-dropdown.xhtml
@@ -20,7 +20,7 @@
                 xmlns:f="http://java.sun.com/jsf/core"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.button_link}"/>
+
   <p>The dropdown menu should be closed, after clicking the 'AJAX' entry in the dropdown menu.</p>
 
   <tc:section label="Dropdown with AJAX command">
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/4000-button+link/button+link.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/4000-button+link/button+link.xhtml
index 90b52b3..50f9ada 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/4000-button+link/button+link.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/4000-button+link/button+link.xhtml
@@ -20,7 +20,6 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.button_link}"/>
 
   <tc:section label="Standard">
     <tc:buttons>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/4000-button+link/x-action.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/4000-button+link/x-action.xhtml
index 35cda33..9feaa93 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/4000-button+link/x-action.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/4000-button+link/x-action.xhtml
@@ -19,7 +19,7 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.button_link} &lt;tc:link> &lt;tc:button>"/>
+
   <tc:section id="actionSection" label="Action">
     <p>This page should be accessed by an link/button with <code>action</code> attribute.</p>
     <tc:button id="back" label="Back" outcome="/content/40-test/4000-button+link/button+link.xhtml"/>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/4000-button+link/x-link.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/4000-button+link/x-link.xhtml
index f851b44..7773e87 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/4000-button+link/x-link.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/4000-button+link/x-link.xhtml
@@ -19,7 +19,7 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.button_link} &lt;tc:link> &lt;tc:button>"/>
+
   <tc:section id="linkSection" label="Link">
     <p>This page should be accessed by an link/button with <code>link</code> attribute.</p>
     <tc:button id="back" label="Back" outcome="/content/40-test/4000-button+link/button+link.xhtml"/>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/60000-manual/4000-button+link/button+link.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/60000-manual/4000-button+link/button+link.xhtml
index 79f9b66..2e1dc80 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/60000-manual/4000-button+link/button+link.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/60000-manual/4000-button+link/button+link.xhtml
@@ -20,7 +20,7 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.button_link} &lt;tc:link> &lt;tc:button>"/>
+
   <tc:section label="&lt;button> - &lt;a>">
     <p>The left link is rendered as a <code>&lt;button></code>, the right side is rendered as an <code>&lt;a></code>.
       Both representations have to be similar.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/60000-manual/4500-suggest/suggest.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/60000-manual/4500-suggest/suggest.xhtml
index c213891..9e330ed 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/60000-manual/4500-suggest/suggest.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/60000-manual/4500-suggest/suggest.xhtml
@@ -22,7 +22,6 @@
                 xmlns:f="http://java.sun.com/jsf/core"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.suggest} &lt;tc:suggest&gt;"/>
 
   <tc:section label="Suggest Input - AJAX">
     <p>The out component will show the selected value choosen from the suggest input field. Ajax case is covered and component is reloaded after valid selection.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/60000-manual/5000-lengthOfInputs/lengthOfInputs.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/60000-manual/5000-lengthOfInputs/lengthOfInputs.xhtml
index 359772a..2301d34 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/60000-manual/5000-lengthOfInputs/lengthOfInputs.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/60000-manual/5000-lengthOfInputs/lengthOfInputs.xhtml
@@ -22,7 +22,7 @@
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
-  <ui:param name="title" value="#{demoBundle.date} &lt;tc:date&gt;"/>
+
   <tc:in label="In"/>
   <tc:textarea label="Text Area"/>
   <tc:date label="Date"/>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/60000-manual/manual.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/60000-manual/manual.xhtml
index f8e5344..6bd46bf 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/60000-manual/manual.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/60000-manual/manual.xhtml
@@ -20,6 +20,6 @@
 <ui:composition template="/main.xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.manual}"/>
+
   <p>This section contain manual tests, which are not covered by QUnitTests.</p>
 </ui:composition>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/6500-behavior/behavior.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/6500-behavior/behavior.xhtml
index 3a976c5..4fcfba6 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/6500-behavior/behavior.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/6500-behavior/behavior.xhtml
@@ -22,8 +22,6 @@
                 xmlns:f="http://java.sun.com/jsf/core"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.behavior}"/>
-
 
   <tc:box id="counter" label="Counter">
     <f:facet name="bar">
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/90000-attic/attic.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/90000-attic/attic.xhtml
index dcdb387..1ff35b5 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/90000-attic/attic.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/40-test/90000-attic/attic.xhtml
@@ -21,7 +21,7 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:demo="http://myfaces.apache.org/tobago/example/demo">
-  <ui:param name="title" value="#{demoBundle.manual}"/>
+
   <span class="#{demo:bootstrapClass('BADGE')} #{demo:bootstrapClass('BADGE_DANGER')}">Warning!</span>
   <p>Here you will find old test pages, which are move from "test".
     They have to be integrated to the regular demo, or to be removed.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/image/richmond/theme-photo.jpg b/tobago-example/tobago-example-demo/src/main/webapp/image/roxborough/theme-photo.jpg
similarity index 100%
rename from tobago-example/tobago-example-demo/src/main/webapp/image/richmond/theme-photo.jpg
rename to tobago-example/tobago-example-demo/src/main/webapp/image/roxborough/theme-photo.jpg
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/init.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/init.xhtml
index 6052c6b..ae15199 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/init.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/init.xhtml
@@ -20,7 +20,7 @@
 <f:view locale="#{localeController.locale}"
         xmlns:f="http://java.sun.com/jsf/core"
         xmlns:tc="http://myfaces.apache.org/tobago/component">
-  <tc:page applicationIcon="#{request.contextPath}/icon/favicon.ico" label="#{demoBundle.pageTitle}" id="page">
+  <tc:page applicationIcon="#{request.contextPath}/icon/favicon.ico" label="Tobago Demo" id="page">
 
     <!-- this event will forward to the first node of the navitation menu after loading -->
     <tc:event event="load" action="#{navigationState.gotoFirst}"/>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/login.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/login.xhtml
index 8ef4248..333b768 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/login.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/login.xhtml
@@ -21,7 +21,7 @@
                 xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:tc="http://myfaces.apache.org/tobago/component"
                 xmlns:ui="http://java.sun.com/jsf/facelets">
-  <ui:param name="title" value="#{demoBundle.login}"/>
+  <ui:param name="title" value="Login"/>
 
   <tc:script file="#{request.contextPath}/script/login.js"/>
 
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/main.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/main.xhtml
index 07f11c1..a88648c 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/main.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/main.xhtml
@@ -24,8 +24,10 @@
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns="http://www.w3.org/1999/xhtml">
   <f:view locale="#{localeController.locale}">
-    <tc:page applicationIcon="#{request.contextPath}/icon/favicon.ico" label="#{demoBundle.pageTitle} - #{title}"
+    <tc:page applicationIcon="#{request.contextPath}/icon/favicon.ico"
+             label="Tobago Demo - #{navigationState.currentNode.label}"
              id="page">
+      <tc:attribute name="label" value="#{title}" mode="valueIfSet"/>
 
       <!--
             <tc:dataAttribute name="tobago-log-level" value="DEBUG"/>
@@ -50,7 +52,8 @@
         <tc:panel>
           <tc:messages id="messages" orderBy="severity" rendered="#{!hideGlobalMessages}"/>
 
-          <tc:section label="#{title}" id="content">
+          <tc:section label="#{navigationState.currentNode.label}" id="content">
+            <tc:attribute name="label" value="#{title}" mode="valueIfSet"/>
             <tc:form id="mainForm">
               <ui:insert/>
             </tc:form>
@@ -82,7 +85,7 @@
 
       <tc:footer fixed="true">
         © 2005-2018 Apache Software Foundation, Licensed under the <a
-              href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+          href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
       </tc:footer>
 
     </tc:page>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/menu.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/menu.xhtml
index 48861a2..609ec9c 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/menu.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/menu.xhtml
@@ -41,15 +41,15 @@
 
         <tc:links id="commands">
 
-          <tc:link id="config" label="#{demoBundle.menu_config}" omit="true">
-            <tc:link label="#{demoBundle.menu_themes}" omit="true">
+          <tc:link id="config" label="Configuration" omit="true">
+            <tc:link label="Theme" omit="true">
               <tc:selectOneRadio value="#{themeController.theme}">
                 <tc:event action="#{themeController.submit}"/>
                 <tc:selectItems value="#{themeController.themeItems}"/>
               </tc:selectOneRadio>
             </tc:link>
             <!--<tc:link action="#{themeController.resetTheme}" label="Reset Theme"/>-->
-            <tc:link label="#{demoBundle.menu_locale}">
+            <tc:link label="Locale">
               <tc:selectOneRadio value="#{localeController.locale}">
                 <tc:event action="#{localeController.submit}"/>
                 <tc:selectItems value="#{localeController.localeItems}"/>
@@ -60,14 +60,14 @@
             <tc:link action="#{loginController.resetSession}" label="Reset Session"/>
           </tc:link>
 
-          <tc:link label="#{demoBundle.menu_test}" omit="true">
-            <tc:link id="runtest" label="#{demoBundle.menu_runTest}" outcome="/test.xhtml"
+          <tc:link label="Test" omit="true">
+            <tc:link id="runtest" label="Run test" outcome="/test.xhtml"
                      immediate="true" disabled="#{!testController.hasTest()}">
               <f:param name="base" value="#{testController.base}"/>
             </tc:link>
-            <tc:link label="#{demoBundle.menu_runTestAll}" outcome="/testAll.xhtml" target="_blank"
+            <tc:link label="Run all tests" outcome="/testAll.xhtml" target="_blank"
                      immediate="true" rendered="#{facesContext.isProjectStage('Development')}"/>
-            <tc:link label="#{demoBundle.menu_accessAllPages}" outcome="/testAccessAllPages.xhtml" target="_blank"
+            <tc:link label="Access all pages" outcome="/testAccessAllPages.xhtml" target="_blank"
                      immediate="true" rendered="#{facesContext.isProjectStage('Development')}"/>
           </tc:link>
 
@@ -94,8 +94,7 @@
 
           <tc:link label="Info" omit="true">
             <tc:link label="About" omit="true">
-              <tc:dataAttribute name="alert-text"
-                                value="#{demoBundle.pageTitle} - #{info.version} - #{demoBundle.tobago_url}"/>
+              <tc:dataAttribute name="alert-text" value="Tobago Demo - #{info.version}"/>
             </tc:link>
             <tc:link omit="true" label="Client Info" id="headerInfo">
               <tc:operation name="show" for=":::info"/>
@@ -129,16 +128,16 @@
                            image="fa-angle-left"
                            action="#{navigationState.gotoPrevious}"
                            disabled="#{navigationState.first}"
-                           tip="#{demoBundle.footer_previous}"/>
+                           tip="Previous"/>
                 <tc:button immediate="true" id="next"
                            image="fa-angle-right"
                            action="#{navigationState.gotoNext}"
                            disabled="#{navigationState.last}"
-                           tip="#{demoBundle.footer_next}"/>
+                           tip="Next"/>
               </tc:buttons>
               <tc:button action="#{navigationState.toggleViewSource}"
                          image="fa-code"
-                         immediate="true" tip="#{demoBundle.footer_viewSource}"/>
+                         immediate="true" tip="View Source"/>
             </tc:flexLayout>
           </tc:form>
         </tc:flexLayout>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/navigation.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/navigation.xhtml
index bdef867..c8781e9 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/navigation.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/navigation.xhtml
@@ -24,7 +24,7 @@
     <tc:treeNode id="node">
       <tc:treeCommand
               id="cmd"
-              label="» #{demoBundle[node.key]}"
+              label="» #{node.label}"
               outcome="#{node.outcome}"/>
     </tc:treeNode>
   </tc:tree>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/tobago-resource/html/charlotteville/standard/property/demo.properties.xml b/tobago-example/tobago-example-demo/src/main/webapp/tobago-resource/html/charlotteville/standard/property/demo.properties.xml
deleted file mode 100644
index a5abfbf..0000000
--- a/tobago-example/tobago-example-demo/src/main/webapp/tobago-resource/html/charlotteville/standard/property/demo.properties.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
--->
-
-<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
-
-<properties>
-  <entry key="theme_photo">The Pier in the center of Charlotteville</entry>
-</properties>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/tobago-resource/html/richmond/standard/property/demo.properties.xml b/tobago-example/tobago-example-demo/src/main/webapp/tobago-resource/html/richmond/standard/property/demo.properties.xml
deleted file mode 100644
index a5d9191..0000000
--- a/tobago-example/tobago-example-demo/src/main/webapp/tobago-resource/html/richmond/standard/property/demo.properties.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
--->
-
-<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
-
-<properties>
-  <entry key="theme_photo">Flowers near Roxborough</entry>
-</properties>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/tobago-resource/html/scarborough/standard/property/demo.properties.xml b/tobago-example/tobago-example-demo/src/main/webapp/tobago-resource/html/scarborough/standard/property/demo.properties.xml
deleted file mode 100644
index 18a0eb3..0000000
--- a/tobago-example/tobago-example-demo/src/main/webapp/tobago-resource/html/scarborough/standard/property/demo.properties.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
--->
-
-<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
-
-<properties>
-  <entry key="theme_photo">Sundown from hill above Scarborough</entry>
-</properties>
\ No newline at end of file
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/tobago-resource/html/speyside/standard/property/demo.properties.xml b/tobago-example/tobago-example-demo/src/main/webapp/tobago-resource/html/speyside/standard/property/demo.properties.xml
deleted file mode 100644
index 61f4c4f..0000000
--- a/tobago-example/tobago-example-demo/src/main/webapp/tobago-resource/html/speyside/standard/property/demo.properties.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
--->
-
-<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
-
-<properties>
-  <entry key="theme_photo">A green parrot in a tree above Speyside</entry>
-</properties>


[myfaces-tobago] 01/02: comment: tomee plugin has a new groupId since 7

Posted by lo...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

lofwyr pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/myfaces-tobago.git

commit 7a68b6be0681931f130d40f10f86076fe197402f
Author: Udo Schnurpfeil <lo...@apache.org>
AuthorDate: Wed Nov 21 06:55:37 2018 +0100

    comment: tomee plugin has a new groupId since 7
---
 tobago-example/pom.xml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tobago-example/pom.xml b/tobago-example/pom.xml
index caa272d..6aa64b0 100644
--- a/tobago-example/pom.xml
+++ b/tobago-example/pom.xml
@@ -64,6 +64,7 @@
       <plugin>
         <!-- usage: mvn clean package tomee:run -Djsf=provided -->
         <groupId>org.apache.openejb.maven</groupId>
+        <!--<groupId>org.apache.tomee.maven</groupId> for version >= 7 -->
         <artifactId>tomee-maven-plugin</artifactId>
         <version>1.7.5</version>
         <configuration>