The frontend is currently built using Bootstrap, jQuery and few third party libraries.
The yarn package manager is used to update third party libraries. The
configuration lives in
scripts/yarn and there is a wrapper script
scripts/yarn-update to upgrade the libraries, build them and copy to
correct locations in
weblate/static. It also runs pre-commit
to format the code, see Weblate source code for instructions to set it up.
Should you need any user visible text in the frontend code, it should be
localizable. In most cases all you need is to wrap your text inside
function, but there are more complex features available:
document.write(gettext('this is to be translated')); var object_count = 1 // or 0, or 2, or 3, ... s = ngettext('literal for the singular case', 'literal for the plural case', object_count); fmts = ngettext('There is %s object. Remaining: %s', 'There are %s objects. Remaining: %s', 11); s = interpolate(fmts, [11, 20]); // s is 'There are 11 objects. Remaining: 20'