Branding: document how to translate branding

This commit is contained in:
Adriaan de Groot 2018-03-08 13:10:01 -05:00
parent 75df6a4f88
commit e4cca9b830

View File

@ -7,11 +7,14 @@ file, containing brand-specific strings in a key-value structure, plus
brand-specific images or QML. Such a subdirectory, when placed here, is brand-specific images or QML. Such a subdirectory, when placed here, is
automatically picked up by CMake and made available to Calamares. automatically picked up by CMake and made available to Calamares.
## Translations
QML files in a branding component can be translated. Translations should QML files in a branding component can be translated. Translations should
be placed in a subdirectory `lang/` of the branding component directory. be placed in a subdirectory `lang/` of the branding component directory.
Qt translation files are supported (`.ts` sources which get compiled into Qt translation files are supported (`.ts` sources which get compiled into
`.qm`). Inside the `lang` subdirectory all translation files must be named `.qm`). Inside the `lang` subdirectory all translation files must be named
according to the scheme `calamares-<component name>_<language>.qm`. according to the scheme `calamares-<component name>_<language>.ts`.
Text in your `show.qml` (or whatever *slideshow* is set to in the descriptor Text in your `show.qml` (or whatever *slideshow* is set to in the descriptor
file) should be enclosed in this form for translations file) should be enclosed in this form for translations
@ -30,14 +33,11 @@ There are two examples of branding content:
slides of text and a single image. No translations are provided. slides of text and a single image. No translations are provided.
- `fancy/` uses translations and offers navigation arrows. These are - `fancy/` uses translations and offers navigation arrows. These are
provided by the standard Calamares QML classes. provided by the standard Calamares QML classes.
- `samegame/` is a similarly simple branding setup for Generic Linux,
but instead of a slideshow, it lets the user play Same Game (clicking
colored balls) during the installation. The game is taken from the
QML examples provided by the Qt Company.
Since the slideshow can be **any** QML, it is limited only by your designers Since the slideshow can be **any** QML, it is limited only by your designers
imagination and your QML experience. For straightforward presentations, imagination and your QML experience. For straightforward presentations,
see the documentation below. see the documentation below. There are more examples in the *calamares-branding*
repository.
## Presentation ## Presentation
@ -63,7 +63,7 @@ After the *id*, set properties of the presentation as a whole. These include:
true) enable different ways to navigate the slideshow. true) enable different ways to navigate the slideshow.
- *titleColor*, *textColor* change the look of the presentation. - *titleColor*, *textColor* change the look of the presentation.
- *fontFamily*, *codeFontFamily* change the look of text in the presentation. - *fontFamily*, *codeFontFamily* change the look of text in the presentation.
After setting properties, you can add elements to the presentation. After setting properties, you can add elements to the presentation.
Generally, you will add a few presentation-level elements first, Generally, you will add a few presentation-level elements first,
then slides. then slides.
@ -73,13 +73,13 @@ then slides.
kinds of navigation when visible navigation is used. kinds of navigation when visible navigation is used.
- To indicate where the user is, add an element of class *SlideCounter*. - To indicate where the user is, add an element of class *SlideCounter*.
This indicates in "n / total" form where the user is in the slideshow. This indicates in "n / total" form where the user is in the slideshow.
- To automatically advance the presentation (for a fully passive slideshow), - To automatically advance the presentation (for a fully passive slideshow),
add a timer that calls the `goToNextSlide()` function of the presentation. add a timer that calls the `goToNextSlide()` function of the presentation.
See the `default/` example -- remember to start the timer when the See the `default/` example -- remember to start the timer when the
presentation is completely loaded. presentation is completely loaded.
After setting the presentation elements, add one or more Slide elements. After setting the presentation elements, add one or more Slide elements.
The presentation framework will make a slideshow out of the Slide The presentation framework will make a slideshow out of the Slide
elements, displaying only one at a time. Each slide is an element in itself, elements, displaying only one at a time. Each slide is an element in itself,
so you can put whatever visual elements you like in the slide. They have so you can put whatever visual elements you like in the slide. They have
standard properties for a boring "static text" slideshow, though: standard properties for a boring "static text" slideshow, though:
@ -88,7 +88,7 @@ standard properties for a boring "static text" slideshow, though:
- *writeInText* is displayed by "writing it in" to the slide, - *writeInText* is displayed by "writing it in" to the slide,
one letter at a time. one letter at a time.
- *content* is a list of things which are displayed as a bulleted list. - *content* is a list of things which are displayed as a bulleted list.
The presentation classes can be used to produce a fairly dry slideshow The presentation classes can be used to produce a fairly dry slideshow
for the installation process; it is recommended to experiment with the for the installation process; it is recommended to experiment with the
visual effects and classes available in QtQuick. visual effects and classes available in QtQuick.