A dictionary is a simple data structure that maps a dictionary name to a set of key/value pairs. It can be used e.g. to provide additional translations.
The dictionary name usually is something like GermanDict (some word ending with Dict). This default pattern can be changed (e.g. for non-english languages etc.), see page_dict_regex on HelpOnConfiguration.
The dict members are key/value pairs (both unicode strings).
You can create a dict definition for a dict named GermanDict by creating a page called GermanDict with this content:
#format wiki This translates some words from English to German: dog:: Hund cat:: Katze mouse: Maus
Dict members have to be on a first-level definition list (see HelpOnLists).
The leading space and the space after '::' are important.
- Everything else (other text, second-level items, etc.) is ignored.
MoinMoin uses <Language>Dict additionally to the builtin gettext based translations. E.g. if it wants to translate cat to German and doesn't find it in the .po file, it will try to look it up on GermanDict (and find Katze there, see the example above).
For the dictionary to work, the language name in <Language>Dict must match the value of the x-language-in-english header field, without spaces, which is found in the translation catalog for each language in MoinMoin/i18n/ directory. For example, in MoinMoin/i18n/pt-br.MoinMoin.po you will find "X-Language-in-English: Brazilian Portuguese\n". If you want to provide additional translations for that language, you create a page called BrazilianPortugueseDict.
See also HelpOnVariables.
You can use ACLs as usual to protect your dict pages.
Other ways to define dicts / access dict definitions
MoinMoin can also use dict definitions from other sources, but this needs to be configured in your wiki config. See dicts on HelpOnConfiguration.