FreeCAD / DevelopersHandbook

A handbook about FreeCAD development
41 stars 28 forks source link

Alternative translation method in Python #81

Open ostr00000 opened 9 months ago

ostr00000 commented 9 months ago
  1. In this markdown: https://github.com/FreeCAD/DevelopersHandbook/blob/245f3d339187d67716fb6d77c2d4002775ae0549/technical/translation.md?plain=1#L109-L115 I only see Qt translation by function, but it is possible to translate using tr method from QObject. In my opinion, this is a much better option (especially when object-oriented style is used).
    Actually lupdate do not care about parent class, so it should be even possible to implement a custom method:

    class MyGreatClassAlsoExpandingAnotherClassSoItHasALongName:
        def tr(self, text: str) -> str:
            return translate('MyGreatClassAlsoExpandingAnotherClassSoItHasALongName', text)
        def runTr(self):
            print(self.tr("My transalted text"))

    Should this translation pattern be encouraged? Or there are reasons why this is not mentioned here? (There are problems with subclassing, but I know a workaround for this.)

  2. This is a very frustrating error: https://github.com/FreeCAD/DevelopersHandbook/blob/245f3d339187d67716fb6d77c2d4002775ae0549/technical/translation.md?plain=1#L127 It is so frustrating that I created a flake8 plugin to detect these errors. Can I advertise this flake8 plugin/pre-commit check here?