Welcome | Get started | Dive | Contribute | Topics | Reference | Changes | More
Using mldbc with different variants of a same language¶
This article uses the lino_book.projects.de_BE
project to
test and document the support for Multilingual database content with different variants
of a same language on a same Site.
We have two variants of German in languages
: “normal” (‘de’) and “Belgian”
(‘de_BE’):
from lino.projects.std.settings import *
class Site(Site):
languages = 'en de de-be'
demo_fixtures = ['demo']
def get_installed_plugins(self):
yield super(Site, self).get_installed_plugins()
yield 'lino_book.projects.de_BE'
def setup_menu(self, user_type, main, ar=None):
m = main.add_menu("master", "Master")
m.add_action('de_BE.Expressions')
super(Site, self).setup_menu(user_type, main)
SITE = Site(globals())
The models.py
file defines a single model:
from lino.api import dd, _
from lino.utils.mldbc.mixins import BabelDesignated
class Expression(BabelDesignated):
class Meta:
verbose_name = _('Expression')
verbose_name_plural = _('Expressions')
class Expressions(dd.Table):
model = Expression
column_names = 'id designation *'
The model inherits from BabelNamed
.
We wrote a Python fixture with some differences between those two languages.
# -*- coding: UTF-8 -*-
from __future__ import unicode_literals
from lino.api import dd
from lino_book.projects.de_BE.models import Expression
def O(fr, en, de, de_BE):
return Expression(
**dd.babelkw('designation', de=de, de_BE=de_BE, en=en, fr=fr))
def objects():
yield O("l'atelier", "the workshop", "die Werkstatt", "das Atelier")
To verify whether it worked as expected, we ask Lino to show us the Expressions table:
>>> rt.show('de_BE.Expressions')
==== ============================ ============================ =================================
ID Designation Designation (de) Designation (de-be)
---- ---------------------------- ---------------------------- ---------------------------------
1 the workshop die Werkstatt das Atelier
2 the lorry der Lastwagen der Camion
3 the folder der Ordner die Farde
4 the fridge der Kühlschrank der Frigo
5 That's what it depends on. Darauf kommt es an. Darauf kommt es sich an.
6 It's about health. Es geht um die Gesundheit. Es geht sich um die Gesundheit.
==== ============================ ============================ =================================
See also
lino.core.site.Site.get_language_info()