Usually a module genrates some output, but this does not have to be the case.
How to attach a module to an article
Modules are assigned to containers of layouts. For a single layout there can be several groups of module assignments that are called templates. In order to use a module for a certain article this article has to be configured to use a template which contains an assignment for the desired module. This can be done by either choosing this template for explicitly this article or for all articles of the category your article is located in.
How to write a module
Modules are divided into two parts: the input and the output code. While the input code is used to configure the module, the output code is responsible for generating the output in the frontend.
A module can be configured either in the article configuration page (Content > Articles > Configuration) or in the category configuration page (Content > Category -> Edit category (icon: pencil) > Configure category). Templates can be preconfigured too (Style > Templates > Preconfiguration).
The input code provides to special tokens, CMS_VAR and CMS_VALUE, that are used to store data used for the module configuration. Both of these token have an index just like content types.
When developing your own module you have to take special care in not overwriting CONTENIDOs global variables.
We advise to use only English titles and descriptions for your modules.
How to translate static text in a module
Elements in modules are translatable with the so called module translation. You can define custom language keys, which can be translated via the module management or content administration for each language a client has.