Proposer des traductions
L'interface et la documentation de Hiboo ont vocation Ă ĂȘtre disponibles prioritairement en anglais et en français, mais toutes les traductions sont Ă©videmment les bienvenues si des personnes souhaitent les proposer.
Cette documentation ne traite que de la traduction de l'interface. Pour contribuer à la traduction de la documentation, merci de consulter la page dédiée.
Préparer les string
Ă traduire
Deux types de fichiers peuvent contenir des mots ou des phrases (string
) Ă
traduire : les fichiers Python et les fichiers HTML. Dans les deux cas, les
string
sont en anglais dans le code. Il s'agit de la langue par défaut sur
laquelle se base Flask-Babel
, la librairie de traduction. C'est donc la langue
qui s'affiche si certaines string
n'ont pas encore de traduction dans les
autres langues.
Les informations données ici suffisent pour commencer à travailler sur la traduction dans la majorité des cas. Pour plus d'informations, voir la documentation de Flask-Babel.
Fichiers Python
Certains fichiers Python contiennent des phrases qui s'affichent dans
l'interface. C'est notamment le cas des formulaires. Dans ce cas, on utilise la
fonction lazy_gettext()
de Flask-Babel, qu'on importe avec l'alias _
afin de
ne pas rendre le code trop verbeux. Ensuite, chaque string
Ă traduire est
encapsulée dans cette fonction. Par exemple :
from flask_babel import lazy_gettext as _
class LoginForm(flask_wtf.FlaskForm):
username = fields.StringField(_('Username'), [validators.DataRequired()])
password = fields.PasswordField(_('Password'), [validators.DataRequired()])
remember_me = SwitchField(_('Remember me'), default=False)
submit = fields.SubmitField(_('Sign in'))
Ici, Username
, Password
, Remember me
et Sign in
seront catalogués
correctement par Flask-Babel et donc disponibles pour la traduction.
Fichiers HTML
Les templates HTML sont écrits avec Jinja2 (voir documentation de
développement), qui dispose d'une extension
permettant lĂ aussi de traduire les strings
avec Flask-Babel. Cette fois,
c'est une balise Jinja {% raw %}{% trans %}{% endraw %}
qui permet d'indiquer
que les mots ou les phrases sont à traduire. Par exemple :
<div class="col-md-6 col">
<p>{% raw %}{% trans %}{% endraw %}TOTP is an optional secondary layer of the authentication
process used to enforce the protection of your account with a one-time
password. You can read
<a href="https://en.wikipedia.org/wiki/Time-based_one-time_password">this
Wikipedia page</a>
if you want to learn more about this mechanism.{% raw %}{% endtrans %}{% endraw %}</p>
</div>
Ici, le texte qui commence par « TOTP » et qui termine par « mechanism » sera catalogué correctement par Flask-Babel et donc disponible pour la traduction.
Traduire avec Weblate
Pour traduire les termes anglais dans une autre langue, les contributeurices de Hiboo utilisent le gestionnaire de traduction libre Weblate hébergé par l'association FELINN sur glotte.felinn.org.
Pour créer un compte sur glotte.felinn.org et commencer à traduire, faites signe sur le salon [matrix] de Hiboo ou envoyez un mail à contact[at]felinn.org !
L'utilitaire est assez intuitif, il suffit de se laisser guider. Pour plus d'informations sur l'utilisation de Weblate, on peut consulter sa documentation officielle