Posts by Lululla

    yes..

    More than 90 languages translated.

    If there are different words, no one is stopping you from modifying and translating them. We can't do everything ourselves; we don't speak 100 languages. ;)

    Tested on VU+DU 4K SE OpenATV 8-beta login via OpenWebif does not work...

    More details would help the developer take action and fix the problem.

    It's like you saying "I'M SICK!!!"

    The response would be: "What the hell is wrong with you?"

    Which produces a third response....


    So, if you're not familiar with telnet for debugging, take a picture of the problem or write more details.

    I can't stand this kind of response anymore, alas. I must have become old and dry.


    telnet debug:

    [Plugin] Command Center – Run Telnet/Shell Commands on Enigma2 [Test] - Linux Satellite Support Community

    or better


    from telnet digit:


    FOR OEALLIANCE/OPENPLI

    Code
    init 4
    killall -9 enigma2
    ENIGMA_DEBUG_LVL=4 enigma2.sh > /tmp/debug.log 2>&1 &


    /tmp/debug.log


    FOR DREAMOS

    Code
    systemctl stop enigma2.service
    killall -9 enigma2
    journalctl -f -u enigma2 >> /tmp/debug.log 2>&1 &


    left open PLUGIN→ wait for lock → add here. Attach /tmp/debug.log


    Good luck.

    Solo2 openatv 7.6 pleeeessssseee


    Great job thinks waiting plugin for vu solo2




    Please be careful before asking, read a few lines of the topic.

    You should also familiarize yourself with the architecture of your box: just go to the information menu or send the command via telnet.


    for dreamos

    dpkg --print-architecture | grep -iE "arm|aarch64|mips|cortex|sh4|sh_4"


    for oe(pli - atv etc)

    opkg print-architecture | grep -iE "arm|aarch64|mips|cortex|h4|sh_4"



    Or read here
    OSCam-EMU Device Compatibility List and Links !!! - OSCam-EMU - Linux Satellite Support Community




    OSCam-EMU Compatibility List for all Devices & STB`s.png

    List of compatible devices & STB`s.
    Download OSCam-EMU for aarch64 Devices & STB`s.png

    CoreELEC

    Dreambox ONE, Dreambox TWO

    Rpi 3 (64bit),
    Rpi 4

    Download OSCam-EMU for android Devices & STB`s.png

    Amiko A3 (4.4_KitKat), Amiko A4 (5.1_Lollipop), Amiko A5 (7.0_Nougat)

    WeTekPlay2 WeOS-v2 (5.0-Lollipop), WeTekPlay2 WeOS-v3 (6.0-Marshmallow)
    Download OSCam-EMU for android stapi Devices & STB`s.png

    Openbox AS4K CI Pro+, ...etc

    ICONE IRON Pro,...etc

    4.4-KitKat-Androideabi19-stapi

    5.1-Lollipop-stapi

    7.0-Nougat-stapi

    5.0-Lollipop-stapi

    6.0-Marshmallow-stapi

    Download OSCam-EMU for arm Devices & STB`s.png

    Abcom PULSe 4K - PULSe 4K, PULSe 4K mini

    AX Technology / Mutant 4K - Ax / Mutant HD 51 4k, Ax / Mutant HD 60 4k, Ax / Mutant HD 61 4k, Ax / Mutant HD 66 SE 4k

    Dreambox 4K - Dreambox 900 4k, Dreambox 920 4k

    Edision 4K - Edision OS mio 4k, Edision OS mio+ 4k, Edision Mini 4k

    Gigablue 4K - Gigablue Quad 4k, Gigablue Trio 4K, Gigablue UE 4k

    Octagon 4K - Octagon SF4008 4k, Octagon SF8008 4k, Octagon SF8008 Mini 4k, Octagon SX88 4k

    Vuplus 4k - Vu+ Solo 4K, Vu+ Uno 4K, Vu+ Uno 4K SE, Vu+ Ultimo 4K, Vu+ Zero 4K, Vu+ Duo 4K, Vu+ Duo 4K SE

    Zgemma 4K - Zgemma H7C 4k, Zgemma H7S 4k, Zgemma H9 combo 4k, Zgemma H92S 4k

    Anadol Multibox 4k, Ax multibox 4k, Novaler Multibox 4k, Maxytec Multibox 4k

    Wetek Play 2

    Uclan Ustym 4k pro

    Qviart Dual 4k

    Rpi 3 (32bit)


    Download OSCam-EMU for armv8 Devices & STB`s.png

    CoreELEC

    Rpi3
    Download OSCam-EMU for cygwin Windows PC.png

    Windows 64Bit & 32Bit
    Download OSCam-EMU for gxapi Devices & STB`s.png

    Denys H.265, Denys H.265_EU, Denys_H.265_PRO, Denys_H.265_PRO_Combo, Denys H. 265_PRO_Combo_EU

    Golden Interstar ALPHA X

    Octagon SX88, Octagon SX88+, Octagon SX88+ Optima, Octagon SX88+ Combo, Octagon SX888 IP, Octagon ASAT HDR No.1



    Download OSCam-EMU for Linux PC.png

    Alpine

    Debian

    Ubuntu
    Download OSCam-EMU for mips - mipsel Devices & STB`s.png

    Cloud iBox HD - Cloud iBox, Cloud iBox 2, Cloud iBox 3, Cloud iBox 4

    Dreambox HD - DM500 HD, DM500 HD V2, DM7020 HD, DM7020 HD V2, DM7080 HD, DM800 HD, DM800 HD SE, DM800 HD SE V2, DM8000 HD, DM820 HD, DM520 HD, DM520 HD mini, DM525 HD

    Edision HD - Edision OS Mini, Edision OS mini Plus, Edision OS Mega, Edision OS Nino, Edision OS Nino Plus, Edision OS Pro

    Formuler HD - Formuler F1, Formuler F3, Formuler F4, Formuler F4 Turbo

    Gigablue HD - Gigablue HD 800 Solo, Gigablue HD 800 SE, Gigablue HD 800 SE Plus, Gigablue HD 800 UE, Gigablue HD 800 UE Plus, Gigablue Quad HD, Gigablue Quad HD Plus

    Golden Interstar Xpeed HD - Xpeed LX1, Xpeed LX2, Xpeed LX3

    Mut@nt HD - Mut@nt HD2400, Mut@nt HD1500, Mut@nt HD1265, Mut@nt HD1200, Mut@nt HD1100, Mut@nt HD, Mut@nt HD500, Mut@nt HD530 C

    MiracleBox HD - MiracleBox Premium Mini HD, MiracleBox Premium Mini Plus HD, MiracleBox Premium Twin HD, MiracleBox Premium Micro, MiracleBox Premium Micro V2, MiracleBox Premium Ultra HD

    Technomate HD - TM Nano, TM Nano SE, TM Nano 2 super, TM Nano 3T combo,

    Venton Unibox HD - Venton Unibox HD1, Venton Unibox HD2, Venton Unibox HD3, Venton Unibox HD ECO+

    VuPlus HD - Vu+ Solo, Vu+ Duo, Vu+ Uno, Vu+ Ultimo, Vu+ Solo 2, Vu+ Duo 2, Vu+ Solo SE, Vu+ Solo SE V2, Vu+ Zero

    Xtrend HD - ET-4000, ET-5000, ET-6000, ET-7000, ET-7100v2, ET-7500, ET-8000, ET-8500, ET-9000, ET-10000 & ET-13000

    xsarius HD - xsarius Pure HD, xsarius Pure HD SE, xsarius Fusion HD, xsarius Fusion HD SE

    Zgemma HD - Zgemma Star series, Zgemma H2 series, Zgemma H3 series, Zgemma H5 series, Zgemma H6 series



    James Donkey HD Duo

    MaxDigital XP1000,


    Download OSCam-EMU for ppc tuxbox Devices & STB`s.png

    Enigma1 - DM500, DM600, DM7000, DM7020
    Download OSCam-EMU for sh4 Devices & STB`s.png

    ADOH R1

    Amiko Alien 2, Delta, Amiko Alien SHD 8900, Amiko Alien Mini

    Dynavision 7162, Dynavision Spark, Dynavision Spark Plus

    Edision Argus Pingulux, Edision Argus Pingulux Plus

    Fulan Spark I+

    FullHD FH 2020 HD

    Galaxy Innovations Avatar 2, Galaxy Innovations Avatar 3, Galaxy Innovations GI S

    Golden Media Spark Triplex, Golden Media Spark One, Golden Media 990 CR HD PVR Spark LX, Golden Media Spark Reloaded

    Goldmaster HD 1200

    Icecrypt S3700 CHD

    Nbox

    SAB Unix Triple HD, SAB Unix F+ Solo

    Samsat Linux 2, Samsat Linux 1

    Satcom 7162

    Sogno Spark Triple, Sogno Spark Revolution

    Startrack SRT 2020 HD Plus, Startrack SRT 2020 HD

    Superbox Z500, Superbox S750

    Truman TOP-BOX, Truman TopBox 2 Tuner, Truman Premier 1+

    Visionnet Falcon, Visionnet Hammer, Visionnet Fireball

    Yumatu Spark


    Download OSCam-EMU for sh4-stapi Devices & STB`s.png

    Forever 7878, 7474, 7420, 7830 8200, 9510

    xcruiser 400plus

    Download OSCam-EMU for sh4-stapi5 Devices & STB`s.png

    Cardiff/Avant

    Forever[9898, 3434, Nano Smart]



    Try not to always ask without doing anything.

    The same questions have always been asked.


    Very importantly, if you don't know anything about Enigma2,

    there are two options:

    1. Learn by reading

    2. DO NOT BUY AN Enigma2 BOX




    Best regards :hello 1:



    Solo2 openatv 7.6 pleeeessssseee


    Great job thinks waiting plugin for vu solo2





    Please be careful before asking, read a few lines of the topic.

    You should also familiarize yourself with the architecture of your box: just go to the information menu or send the command via telnet.


    for dreamos

    dpkg --print-architecture | grep -iE "arm|aarch64|mips|cortex|sh4|sh_4"


    for oe(pli - atv etc)

    opkg print-architecture | grep -iE "arm|aarch64|mips|cortex|h4|sh_4"



    Or read here
    OSCam-EMU Device Compatibility List and Links !!! - OSCam-EMU - Linux Satellite Support Community




    OSCam-EMU Compatibility List for all Devices & STB`s.png

    List of compatible devices & STB`s.
    Download OSCam-EMU for aarch64 Devices & STB`s.png

    CoreELEC

    Dreambox ONE, Dreambox TWO

    Rpi 3 (64bit),
    Rpi 4

    Download OSCam-EMU for android Devices & STB`s.png

    Amiko A3 (4.4_KitKat), Amiko A4 (5.1_Lollipop), Amiko A5 (7.0_Nougat)

    WeTekPlay2 WeOS-v2 (5.0-Lollipop), WeTekPlay2 WeOS-v3 (6.0-Marshmallow)
    Download OSCam-EMU for android stapi Devices & STB`s.png

    Openbox AS4K CI Pro+, ...etc

    ICONE IRON Pro,...etc

    4.4-KitKat-Androideabi19-stapi

    5.1-Lollipop-stapi

    7.0-Nougat-stapi

    5.0-Lollipop-stapi

    6.0-Marshmallow-stapi

    Download OSCam-EMU for arm Devices & STB`s.png

    Abcom PULSe 4K - PULSe 4K, PULSe 4K mini

    AX Technology / Mutant 4K - Ax / Mutant HD 51 4k, Ax / Mutant HD 60 4k, Ax / Mutant HD 61 4k, Ax / Mutant HD 66 SE 4k

    Dreambox 4K - Dreambox 900 4k, Dreambox 920 4k

    Edision 4K - Edision OS mio 4k, Edision OS mio+ 4k, Edision Mini 4k

    Gigablue 4K - Gigablue Quad 4k, Gigablue Trio 4K, Gigablue UE 4k

    Octagon 4K - Octagon SF4008 4k, Octagon SF8008 4k, Octagon SF8008 Mini 4k, Octagon SX88 4k

    Vuplus 4k - Vu+ Solo 4K, Vu+ Uno 4K, Vu+ Uno 4K SE, Vu+ Ultimo 4K, Vu+ Zero 4K, Vu+ Duo 4K, Vu+ Duo 4K SE

    Zgemma 4K - Zgemma H7C 4k, Zgemma H7S 4k, Zgemma H9 combo 4k, Zgemma H92S 4k

    Anadol Multibox 4k, Ax multibox 4k, Novaler Multibox 4k, Maxytec Multibox 4k

    Wetek Play 2

    Uclan Ustym 4k pro

    Qviart Dual 4k

    Rpi 3 (32bit)


    Download OSCam-EMU for armv8 Devices & STB`s.png

    CoreELEC

    Rpi3
    Download OSCam-EMU for cygwin Windows PC.png

    Windows 64Bit & 32Bit
    Download OSCam-EMU for gxapi Devices & STB`s.png

    Denys H.265, Denys H.265_EU, Denys_H.265_PRO, Denys_H.265_PRO_Combo, Denys H. 265_PRO_Combo_EU

    Golden Interstar ALPHA X

    Octagon SX88, Octagon SX88+, Octagon SX88+ Optima, Octagon SX88+ Combo, Octagon SX888 IP, Octagon ASAT HDR No.1



    Download OSCam-EMU for Linux PC.png

    Alpine

    Debian

    Ubuntu
    Download OSCam-EMU for mips - mipsel Devices & STB`s.png

    Cloud iBox HD - Cloud iBox, Cloud iBox 2, Cloud iBox 3, Cloud iBox 4

    Dreambox HD - DM500 HD, DM500 HD V2, DM7020 HD, DM7020 HD V2, DM7080 HD, DM800 HD, DM800 HD SE, DM800 HD SE V2, DM8000 HD, DM820 HD, DM520 HD, DM520 HD mini, DM525 HD

    Edision HD - Edision OS Mini, Edision OS mini Plus, Edision OS Mega, Edision OS Nino, Edision OS Nino Plus, Edision OS Pro

    Formuler HD - Formuler F1, Formuler F3, Formuler F4, Formuler F4 Turbo

    Gigablue HD - Gigablue HD 800 Solo, Gigablue HD 800 SE, Gigablue HD 800 SE Plus, Gigablue HD 800 UE, Gigablue HD 800 UE Plus, Gigablue Quad HD, Gigablue Quad HD Plus

    Golden Interstar Xpeed HD - Xpeed LX1, Xpeed LX2, Xpeed LX3

    Mut@nt HD - Mut@nt HD2400, Mut@nt HD1500, Mut@nt HD1265, Mut@nt HD1200, Mut@nt HD1100, Mut@nt HD, Mut@nt HD500, Mut@nt HD530 C

    MiracleBox HD - MiracleBox Premium Mini HD, MiracleBox Premium Mini Plus HD, MiracleBox Premium Twin HD, MiracleBox Premium Micro, MiracleBox Premium Micro V2, MiracleBox Premium Ultra HD

    Technomate HD - TM Nano, TM Nano SE, TM Nano 2 super, TM Nano 3T combo,

    Venton Unibox HD - Venton Unibox HD1, Venton Unibox HD2, Venton Unibox HD3, Venton Unibox HD ECO+

    VuPlus HD - Vu+ Solo, Vu+ Duo, Vu+ Uno, Vu+ Ultimo, Vu+ Solo 2, Vu+ Duo 2, Vu+ Solo SE, Vu+ Solo SE V2, Vu+ Zero

    Xtrend HD - ET-4000, ET-5000, ET-6000, ET-7000, ET-7100v2, ET-7500, ET-8000, ET-8500, ET-9000, ET-10000 & ET-13000

    xsarius HD - xsarius Pure HD, xsarius Pure HD SE, xsarius Fusion HD, xsarius Fusion HD SE

    Zgemma HD - Zgemma Star series, Zgemma H2 series, Zgemma H3 series, Zgemma H5 series, Zgemma H6 series



    James Donkey HD Duo

    MaxDigital XP1000,


    Download OSCam-EMU for ppc tuxbox Devices & STB`s.png

    Enigma1 - DM500, DM600, DM7000, DM7020
    Download OSCam-EMU for sh4 Devices & STB`s.png

    ADOH R1

    Amiko Alien 2, Delta, Amiko Alien SHD 8900, Amiko Alien Mini

    Dynavision 7162, Dynavision Spark, Dynavision Spark Plus

    Edision Argus Pingulux, Edision Argus Pingulux Plus

    Fulan Spark I+

    FullHD FH 2020 HD

    Galaxy Innovations Avatar 2, Galaxy Innovations Avatar 3, Galaxy Innovations GI S

    Golden Media Spark Triplex, Golden Media Spark One, Golden Media 990 CR HD PVR Spark LX, Golden Media Spark Reloaded

    Goldmaster HD 1200

    Icecrypt S3700 CHD

    Nbox

    SAB Unix Triple HD, SAB Unix F+ Solo

    Samsat Linux 2, Samsat Linux 1

    Satcom 7162

    Sogno Spark Triple, Sogno Spark Revolution

    Startrack SRT 2020 HD Plus, Startrack SRT 2020 HD

    Superbox Z500, Superbox S750

    Truman TOP-BOX, Truman TopBox 2 Tuner, Truman Premier 1+

    Visionnet Falcon, Visionnet Hammer, Visionnet Fireball

    Yumatu Spark


    Download OSCam-EMU for sh4-stapi Devices & STB`s.png

    Forever 7878, 7474, 7420, 7830 8200, 9510

    xcruiser 400plus

    Download OSCam-EMU for sh4-stapi5 Devices & STB`s.png

    Cardiff/Avant

    Forever[9898, 3434, Nano Smart]



    Try not to always ask without doing anything.

    The same questions have always been asked.






    qvadis54


    A tip :)

    There's no need to include what you write in a tag option if you're replying: write directly without including what you write in a quote or code. Otherwise, it's not clear whether you're quoting or writing.


    pasted-from-clipboard.png




    Best regards








    Now you're asking too much of me :)

    Work on one skin at a time, open a notebook and mark the skins you've made.

    My friend, it was really hard, and I had to find the time to do all this during this difficult period.

    I wouldn't even earn anything from it.

    Now I deserve a lot of rest.

    ... Thanks for the beer to anyone who wants to buy it. I'll always say it. It feels like being in the desert and without even water here.


    :smiling face with sunglasses:

    Lululla added a new version:

    v5.0.0.0 - .NET 10 Modernization Release

    - **Full .NET 10 migration**: The entire application has been ported from .NET Framework 4.8 to .NET 10, ensuring compatibility with modern Windows versions, improved performance, and better security.

    - **ScintillaNET5 integration**: Replaced the legacy ScintillaNET library with ScintillaNET5, fully compatible with .NET 10. All editor features (syntax highlighting, auto‑completion, code folding, line wrapping) are now working correctly.

    - **Rulers visibility fixed**: Horizontal and vertical rulers now appear correctly when a skin is opened and hide when the skin is closed. The 'Rulers' button in the designer toolbar reflects the actual state.

    - **Auto‑update version comparison**: The update check now uses proper semantic version comparison (System.Version). Updates are offered only when the online version is strictly greater than the installed one, preventing false update prompts.

    - **Extended translation coverage**: Over 95% of the user interface strings are now translatable, including all entries in the keyboard shortcuts help window. Missing translations default to English.

    - **Grid and magnet snap improvements**: Designer grid and magnetic snapping now work more reliably, with visual feedback in the status bar (press G to toggle grid, M to toggle magnet).

    - **General stability and performance**: Numerous bug fixes, code cleanup, and internal refactoring to enhance the overall user experience and maintainability.



    pasted-from-clipboard.png


    ONLINE

    **Introduction**

    I have built a fully automated translation management system for Enigma2 plugins. It is integrated into a GitHub workflow and handles extraction, translation, and compilation of language files without any manual intervention.


    Works with any Enigma2 plugin that follows the standard `locale/` structure and uses `gettext`.


    ---


    ### Main Components


    1. **`update_translations.py`**

    – Python script that:

    - Extracts translatable strings from `.py` files and `setup.xml`

    - Generates/updates the `.pot` master template

    - Creates/updates `.po` files for over 90 languages

    - Compiles `.mo` files (binary format for Enigma2)

    - Auto‑translates empty strings using Google Translate API

    - Uses a cache (`translation_cache.json`) to avoid repeated requests


    2. **GitHub Actions workflow** (`.github/workflows/update-translations.yml`)

    – triggers on push, runs the script, commits changes.


    ---


    ### File Structure and Placement


    Assuming your plugin is located at:

    `/usr/lib/enigma2/python/Plugins/Extensions/YourPlugin/`


    Place the files as follows:


    ```

    YourPlugin/

    ├── __init__.py # must define PluginLanguageDomain and call localeInit()

    ├── plugin.py # your main plugin code

    ├── setup.xml # (optional) if you have an XML setup screen

    ├── update_translations.py # <-- copy this script here

    ├── translate_utils.py # <-- (optional) if you want separate translation utilities

    ├── locale/ # created automatically by the script

    │ └── ...

    └── translation_cache.json # auto-generated cache file (do not edit)

    ```


    - **`update_translations.py`** must be placed **directly inside your plugin folder** (same level as `__init__.py`).

    - **`translate_utils.py`** (if used) goes in the **same folder** – it contains the Google Translate logic.

    - The script automatically creates the `locale/` directory and all language subfolders.

    - The GitHub workflow file (`.github/workflows/update-translations.yml`) goes in the **root of your GitHub repository**, not inside the plugin folder.


    ---


    ### Plugin’s `__init__.py` Requirements


    Make sure your `__init__.py` contains these lines (or similar):


    Code
    PluginLanguageDomain = "YourPlugin"
    PluginLanguagePath = "Extensions/YourPlugin/locale"
    
    
    def localeInit():
        gettext.bindtextdomain(PluginLanguageDomain, resolveFilename(SCOPE_PLUGINS, PluginLanguagePath))
    
    localeInit()
    
    language.addCallback(localeInit)


    The script will read `PluginLanguageDomain` from `__init__.py` automatically.


    ---


    ### GitHub Workflow File


    Save this as `.github/workflows/update-translations.yml` in your repository root:


    ---


    ### How It Works (Summary)


    1. You push code changes to GitHub.

    2. The workflow runs `update_translations.py` in every plugin folder that contains it.

    3. The script extracts all `_("...")` strings from `.py` and `setup.xml`.

    4. It updates the `.pot` file and all `.po` files for 90+ languages.

    5. For any empty `msgstr`, it calls Google Translate API (cached) to auto‑translate.

    6. It compiles `.mo` files.

    7. The workflow commits and pushes the updated `locale/` folder back to your repo.


    No manual translation work needed ever again.


    ---


    ### Benefits


    - Supports **over 90 languages** out of the box.

    - **Cache** prevents repeated API calls – respects rate limits.

    - **RTL languages** (Arabic, Hebrew, etc.) are automatically detected and left untranslated (preserves correct script).

    - **Continuous integration** – every code change updates translations automatically.

    - **Ready for Enigma2** – the `.mo` files are exactly what the plugin loads.


    ---


    ### Links / Attachments


    - `update_translations.py` (attached)

    - `translate_utils.py` (attached – optional, but recommended)


    Tested on **CommandCenter** plugin. Works perfectly.

    and on all my plugins on my Git.


    OwnerPlugins repositories


    Feedback and suggestions welcome!




    ---


    ## Italian Version (for your understanding)


    Sistema automatico di gestione traduzioni per plugin Enigma2 – Integrazione GitHub Workflow


    **Introduzione**

    Ho realizzato un sistema completamente automatico per la gestione delle traduzioni dei plugin Enigma2. È integrato in un workflow GitHub e si occupa di estrarre, tradurre e compilare i file lingua senza intervento manuale.


    Funziona con qualsiasi plugin Enigma2 che usi la struttura standard `locale/` e `gettext`.


    ---


    ### Dove mettere i file


    Supponiamo che il tuo plugin sia in:

    `/usr/lib/enigma2/python/Plugins/Extensions/TuoPlugin/`


    La struttura diventa:


    ```

    TuoPlugin/

    ├── __init__.py # deve definire PluginLanguageDomain e chiamare localeInit()

    ├── plugin.py # il tuo codice principale

    ├── setup.xml # (opzionale) schermata di setup

    ├── update_translations.py # <-- metti qui questo script

    ├── translate_utils.py # <-- (opzionale) metti qui se lo usi

    ├── locale/ # creato automaticamente dallo script

    │ └── ...

    └── translation_cache.json # file cache auto-generato (non modificare)

    ```


    - **`update_translations.py`** va **direttamente nella cartella del plugin** (stesso livello di `__init__.py`).

    - **`translate_utils.py`** (se usato) va nella **stessa cartella** – contiene la logica di Google Translate.

    - Lo script crea automaticamente la cartella `locale/` e tutte le sottocartelle per lingua.

    - Il file workflow di GitHub (`.github/workflows/update-translations.yml`) va nella **radice del repository GitHub**, non dentro la cartella del plugin.


    ---


    ### Requisiti del `__init__.py`


    Il tuo `__init__.py` deve contenere qualcosa come:


    Code
    PluginLanguageDomain = "TuoPlugin"
    PluginLanguagePath = "Extensions/TuoPlugin/locale"
    
    
    def localeInit():
        gettext.bindtextdomain(PluginLanguageDomain, resolveFilename(SCOPE_PLUGINS, PluginLanguagePath))
    
    localeInit()
    language.addCallback(localeInit)


    Lo script legge automaticamente `PluginLanguageDomain` dal file `__init__.py`.


    ---


    ### Workflow GitHub


    Salva come `.github/workflows/update-translations.yml` (nella radice del repo). Il codice YAML è quello che ho scritto sopra in inglese (uguale).


    ---


    ### Come funziona (riassunto)


    1. Fai push delle modifiche su GitHub.

    2. Il workflow esegue `update_translations.py` in ogni cartella plugin che lo contiene.

    3. Lo script estrae tutte le stringhe `_("...")` dai `.py` e da `setup.xml`.

    4. Aggiorna il file `.pot` e tutti i file `.po` per oltre 90 lingue.

    5. Per ogni `msgstr` vuoto, chiama l'API Google Translate (con cache) per tradurlo.

    6. Compila i file `.mo`.

    7. Il workflow committa e pusha la cartella `locale/` aggiornata sul tuo repo.


    Mai più traduzioni manuali.


    ---


    ### Vantaggi


    - Supporto **oltre 90 lingue** già pronte.

    - **Cache** evita chiamate API ripetute – rispetta i limiti.

    - **Lingue RTL** (arabo, ebraico…) rilevate automaticamente e non tradotte (per preservare la scrittura corretta).

    - **Integrazione continua** – ogni modifica al codice aggiorna automaticamente le traduzioni.

    - **Pronto per Enigma2** – i file `.mo` sono esattamente quelli che il plugin carica.


    ---


    ### Allegati

    - `update_translations.py`

    - `translate_utils.py` (opzionale ma consigliato)


    Testato sul plugin **CommandCenter**. Funziona perfettamente.


    Feedback e suggerimenti sono benvenuti!


    :clinking beer mugs: