PiOverFour / MPK-M2-editor

Alternative to the official AKAI MPKMini MkII Editor
GNU General Public License v3.0
87 stars 13 forks source link

[feature request] i18n #3

Closed trebmuh closed 3 years ago

trebmuh commented 4 years ago

I'd like to provide a French translation of it if/when the translation system is/will_be in place.

PiOverFour commented 4 years ago

Hi @trebmuh, thanks for the propositon. I’m French-speaking myself, so I could also translate it. However, I never considered it, since I find the user interface quite simple, and implementing i18n would take a bit of time and design. Also I’d need to learn how to do it cleanly! If you really need the program in French, or any other language, I can make two propositions, though:

If the documentation is enough for you, I could prepare it myself. What do you think?

trebmuh commented 4 years ago

implement it yourself if you can and make a pull request;

Mes compétences de programmeur (proche de zéro) ne me le permettent pas malheureusement.

or translate the documentation, maybe with an svg text layer overlayed over the interface screenshots, so it can be more easily translated into other languages, by editing only the text.

Je n'ai pas compris.

Ce que je peux faire, c'est d'essayer de trouver quelqu'un qui pourrait t'aider dans le processus d'i18n. Je vais voir ce que je peux faire.

PS : pour info, je suis en train d'intégrer ce logiciel à LibraZiK-3.

PiOverFour commented 4 years ago

J’ai répondu un peu vite. Ce que je voulais dire, c’est que l’interface du programme me semble assez claire pour ne pas avoir besoin d’être traduite, mais qu’il serait utile de traduire au minimum le README. Au lieu des captures d’écran actuelles, on pourrait avoir dans la version traduite des flèches qui pointent vers les textes en anglais et expliquent l’interface en français. L’idée d’utiliser un SVG est qu’on puisse mettre en fond l’image actuelle, et ajouter par dessus les flèches et les traductions. Pour faire une nouvelle traduction du README, il suffirait donc de modifier le SVG dans un éditeur de texte.

L’internationalisation est toujours un peu complexe pour que ça ne soit pas fait à l’arrache, mais facile à étendre à d’autres langues, et c’est pour ça que j’ai préféré ne pas m’en occuper. Mais j’ai changé d’avis, et je suis en train de regarder comment utiliser le système de traduction de Qt. Je n’ai pas encore réussi, mais je te tiendrai au courant, et si j’échoue complètement, tu pourras toujours demander à un autre développeur Python intéressé de mettre en place le système.

Dans tous les cas, une traduction du README serait au moins aussi utile, donc si tu veux t’y atteler, je t’invite soit à ouvrir une pull request, soit à m’envoyer directement une traduction du document. Sinon, je peux passer un peu de temps pour traduire ça moi-même.

Je n’utilise plus ce programme mais je suis content qu’il soit utile dans le cadre de LibraZik :)

PiOverFour commented 4 years ago

image

@trebmuh Peux-tu tester la branche i18n ? Mon système est en anglais et je ne suis pas sûr que ce que j’ai fait fonctionne correctement. Si c’est le cas, j’ajouterai une doc rapide sur le processus de localisation.

EDIT: Il est fort possible que j’aie traduit certaines chaînes avec les pieds, donc si tu vois des erreurs, n’hésite pas à me les rapporter ici.

PiOverFour commented 4 years ago

Un détail sur l’environnement : il semble que PyQt utilise la variable $LANGUAGE pour définir la langue dans laquelle lancer le programme. Si jamais cette variable n’était pas correctement paramétrée, pour lancer le programme en français, il faudrait donc utiliser la commande :

LANGUAGE=fr python3 mpk-m2-editor.py

Note que je me suis aperçu que le fichier principal s’appelait mpk_m2-editor.py au lieu mpk-m2-editor.py, plus logique. J’ai donc renommé ce fichier. J’espère que ça ne va pas casser trop de choses dans ta distribution.

J’en ai profité pour traduire sommairement le fichier README, et je taguerai une release quand j’aurai mergé la branche. Dis-moi si tu as besoin d’autre chose pour intégrer le programme.

PiOverFour commented 3 years ago

@trebmuh Est-ce que la traduction t’intéresse toujours ? J’ai vu que @Houston4444 avait forké le programme pour proposer des traductions, et il semble que nos solutions soient similaires, mais je ne connais pas assez bien PyQt pour en comparer les mérites. Si l’un d’entre vous pouvait tester la branche i18n, je serais heureux d’intégrer les changements.

trebmuh commented 3 years ago

@PiOverFour : j'ai été pris par d'autres choses, navré. Je tâche d'essayer de tester ta branche i18n ce week end. Si pas de nouvelle de ma part lundi, ping moi.

@houston4444 : ta branche date du 7 septembre, du coup, c'est quoi l'idée ? Une autre implémentation de la traduisibilité ?

Houston4444 commented 3 years ago

@trebmuh , elle est pas mal celle là. C'est toi et Erwan qui m'avez demandé sur IRC de proposer une méthode de traduction. Du coup je l'ai faite, mais entre temps @PiOverFour l'a faite, du coup mon fork ne sert à rien.

Je ne peux pas tester le programme parce que je n'ai pas le contrôleur en question, mais ce que je vois dans la branche i18n me semble tout à fait correct, excepté qu'il manque les traductions de base de Qt (elles ne sont pas dans mon fork, je n'avais pas connaissance de ça à ce moment là).

trebmuh commented 3 years ago

@Houston4444 ah? Je ne m'en souvenais plus.

Je viens d'empaqueter à partir de la branche i18n. Je ne peux pas tester non plus car je ne possède pas non plus ce matériel. @erwan35 en a un, il nous dira ça.

J'ai quelques questions/remarques pour toi @PiOverFour :

  1. si on a pas ce matériel, alors la CLI nous donne un message informatif : "Controller not found". C'est bien, mais ça ne fonctionne pas si on le démarre par un élément de menu GUI (j'en ai fait un pour LZK qui je pourrai te PR si tu le souhaites). Pourrais-tu faire en sorte qu'il affiche au moins une fenêtre disant "Controller not found" dans un tel cas ?
  2. où est-ce que le programme s'attend à trouver les traductions ? (quel emplacement)
  3. je pense avoir trouvé un bogue : #4

Voilà pour l'instant.

erwan35 commented 3 years ago

@trebmuh je viens de tester ton paquet mais le biniou reste en anglais.

PiOverFour commented 3 years ago

Merci pour ces retours.

@Houston4444

il manque les traductions de base de Qt (elles ne sont pas dans mon fork, je n'avais pas connaissance de ça à ce moment là).

Je ne savais pas non plus qu’il fallait faire ça, je vais me renseigner.

@trebmuh

  1. si on a pas ce matériel, alors la CLI nous donne un message informatif : "Controller not found". C'est bien, mais ça ne fonctionne pas si on le démarre par un élément de menu GUI (j'en ai fait un pour LZK qui je pourrai te PR si tu le souhaites). Pourrais-tu faire en sorte qu'il affiche au moins une fenêtre disant "Controller not found" dans un tel cas ?

Ce serait effectivement une bonne idée. L’idéal serait en plus de ça de créer une entrée de menu pour connecter un contrôleur après le lancement du programme, mais je n’ai jamais pris le temps de le faire… Je regarderai si je peux le faire rapidement.

  1. où est-ce que le programme s'attend à trouver les traductions ? (quel emplacement)

C’est spécifié dans le fichier mpk-m2-editor.pro : dans i18n/. D’après ce que je comprends, il faut entrer tous les fichiers de traduction à cet endroit.

  1. je pense avoir trouvé un bogue : #4

Aïe, en effet ! Merci.

@erwan35

je viens de tester ton paquet mais le biniou reste en anglais.

Merci d’avoir testé. J’avoue que je ne sais pas encore ce qu’il peut bien se passer ; peut-être un problème de variable d’environnement, le fameux LANGUAGE=fr ?… Je vais essayer d’enquêter un peu.

Houston4444 commented 3 years ago

il manque les traductions de base de Qt (elles ne sont pas dans mon fork, je n'avais pas connaissance de ça à ce moment là).

Te prend pas le chou, je te fais une PR, j'en ai pour 40 secondes.

PiOverFour commented 3 years ago

J’ai ajouté une popup au démarrage quand le contrôleur est introuvable, et j’ai intégré le patch de @Houston4444 pour les traductions de base de Qt.

J’essaierai de tester dès que possible sur un système en français.

PiOverFour commented 3 years ago

Bon, j’ai testé sur un système Windows en français, et la langue est bien détectée. Peut-être que quelque chose a changé avec l’ajout des traductions de base ?…

@trebmuh Comment génères-tu ton paquet ?

trebmuh commented 3 years ago

@PiOverFour le soucis se situe ici où le répertoire i18n/ est déclaré. Le problème est qu'il est déclaré en fonction de l'endroit d'où on lance le script python.

Mais si on le lance d'ailleurs, alors il n'y a pas ce ailleurs/i18n/fr.qm et donc les traductions ne sont pas prises en compte. J'ai contourné le problème pour le paquet .deb pour LibraZiK, mais le problème persistera partout ailleurs.

Pour LZK, ce que je fais, c'est que j'ai un répertoire : /usr/share/mpk-m2-editor/ avec ceci dedans :

J'ai également un script de 2 lignes : /usr/bin/mpk-m2-editor qui appelle le .py, ainsi mpk-m2-editor est dans le PATH utilisateur et peut être appelé de n'importe où.

Enfin, j'ai rustiné mpk-m2-editor.py en remplaçant "i18n" par "/usr/share/mpk-m2-editor/i18n". Ainsi, il va chercher la traduction au bon endroit quelque soit l'emplacement d'où on le lance.

PiOverFour commented 3 years ago

Argh ! Bien sûr… J’ai fait une correction dans une branche à part : i18n_abs. Ça calcule le chemin absolu à partir du chemin relatif par rapport à celui du fichier python principal. Ça corrige le problème chez moi, j’espère que ce sera le cas aussi pour ton paquet.

Si c’est le cas, je ferai le merge dans la branche master !

trebmuh commented 3 years ago

Ça semble fonctionner. Bien joué !

PiOverFour commented 3 years ago

Cool ! Je ferme donc cette issue. :)

trebmuh commented 3 years ago

Super. Ça sera dans LibraZiK sous peu.