A library for making Toolforge tools written in Python translatable.
Project description
Toolforge I18n
A work in progress library for making Wikimedia Toolforge tools written in Python+Flask translatable.
Features
-
Make your tool translatable into dozens, potentially hundreds of languages!
-
Easy integration with translatewiki.net by reusing MediaWiki message file syntax.
-
Full support for the magic words
{{GENDER:}}
and{{PLURAL:}}
, as well as for hyperlink syntax ([url text]
) and list formatting.- Note that there is no support for any other wikitext syntax; formatting in messages (e.g. bold passages) should be written in plain HTML, if it can’t be left out the message entirely (e.g. on a surrounding element in the template).
-
By default, support for a MediaWiki-like
?uselang=
URL parameter, including?uselang=qqx
to see message keys. -
Correct conversion between MediaWiki language codes and HTML language codes / IETF BCP 47 language tags; for instance,
?uselang=simple
produces<html lang="en-simple">
. -
Correct
lang=
anddir=
in the face of language fallback: messages that (due to language fallback) don’t match the surrounding markup are automatically wrapped in a<span>
with the right attributes. (Even MediaWiki doesn’t do this! Though, admittedly, MediaWiki doesn’t have the luxury of assuming that every message can be wrapped in a<span>
– many MediaWiki messages are block elements that would rather need a<div>
.) -
Includes checks to ensure all translations are safe, without unexpected elements (e.g.
<script>
) or attributes (e.g.onclick=
), to protect against XSS attacks from translations. The tests are automatically registered via a pytest plugin and also run at tool initialization time.
How to use it
The library is still a work in progress, so preferably don’t use it yet :)
but if you’re feeling adventurous, see the documentation (docs/
folder; link to follow).
License
BSD-3-Clause
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for toolforge_i18n-0.0.9-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ea7901b1d1b3d175e8fa42e56a86fbe42d696086abccafb8d14b5568f0b1e59b |
|
MD5 | f30bed4f23c89c19a25f28c9766aebaa |
|
BLAKE2b-256 | c130f71bf96c1dd501ac2cbdd2974dc2ca423d3fae9b40560843e897de01d311 |