Hi, no one explained to me how to fill "m3u_config.json"???
Here's a list so just try it and see how it goes.
Name- "Local M3U",
use options tag on reply for live link please ;)
pasted-from-clipboard.png
Hi, no one explained to me how to fill "m3u_config.json"???
Here's a list so just try it and see how it goes.
Name- "Local M3U",
use options tag on reply for live link please ;)
pasted-from-clipboard.png
Display MoreDisplay MoreUntil now, the text in the channel list in the default skin was always
white and green.
The selected channel was yellow and white.
When “With Live TV” was enabled.
I know this was a bug before, because in the default skin everything was actually set to white.
You seem to have fixed that, because now EVERYTHING is white.
Which, of course, looks terrible.
So I have to set the colors myself.
Previously, it was yellow—the yellow-green option in the color selection—and that resulted in yellow; it had little to do with green, but it was acceptable.
Now, when I select yellow-green, it’s just an ugly green. No trace of yellow left.
But I’d like to have a yellow again; only yellow isn’t offered to me. It’s all just these Willy Wonka colors that I don’t like.
Can you please add a real yellow, preferably a bold rapeseed yellow? ##########
Then there’s the translation. Who translated this into German—Google?
From English: Snow White became “Schneewittchen” in German.
The only thing that’s “Schneewittchen” in German is the stepdaughter behind the seven mountains with the seven dwarfs, but not a color.
The correct translation must be “Schneeweiß.”
If you have trouble typing the ß, just use ss.
Channel list colors is working with no problems , and the channel name and description changes as selected , you try to install clean skin version .
About translation , it is done by script by Lululla and I think it's Google translation .
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:
or better
from telnet digit:
FOR OEALLIANCE/OPENPLI
/tmp/debug.log
FOR DREAMOS
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.
DISCUSSION TOPIC ARE HERE
HybridIPTV Plugin - Enigma2 DreamOS Plugins - Linux Satellite Support Community
NO CHAT HERE
NOW
HERE DOWNLOAD ONLY
[Download Only] HybridIPTV Plugin
IN THIS TOPIC
ONLY DISCUSSION
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!!!
ostende update first post o f topic for atach new ipk..
Users are already confused, tell them how to install a ".deb" on ATV LOL
Now, if you like, you can follow my advice... otherwise, I won't intervene in your confusing topic.
.deb on openatv??
![]()
![]()
Just to explain and make you understand how it works, open telnet and give this command (as you can see it doesn't seem to be dreamos)
opkg print-architecture | grep -iE "arm|aarch64|mips|cortex|h4|sh_4"
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
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.
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.
Best regards
use atv 7.6..
last image stable from atv team are 7.6 version..
old version are END LIFE..
Changes in this release
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.
![]()
Lululla added a new version:
QuoteDisplay More### MOD v5.0.0.0 – Lululla
**.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.
- **Scintilla5.NET integration**:
Replaced the legacy ScintillaNET library with Scintilla5.NET, 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).
- **Network skin tagging**:
Network skins are now clearly marked in the open dialog with a '(network)' tag. The original path remains unaffected for saving.
- **General stability and performance**:
Numerous bug fixes, code cleanup, and internal refactoring to enhance the overall user experience and maintainability.
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.
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):
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:
name: Update Translations by Lululla
on:
push:
branches: [ main ]
workflow_dispatch:
jobs:
update-translations:
runs-on: ubuntu-latest
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
# with:
# persist-credentials: false
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install gettext (msgmerge, msgfmt)
run: |
sudo apt-get update
sudo apt-get install -y gettext
- name: Run translation updaters
run: |
for pyfile in $(find . -type f -name "update_translations.py"); do
plugin_dir=$(dirname "$pyfile")
echo "Running translation updater in $plugin_dir"
cd "$plugin_dir"
python3 update_translations.py
# Forza l'aggiunta dei file locale generati (ignora .gitignore)
if [ -d locale ]; then
git add -f locale/
fi
cd - > /dev/null
done
- name: Commit and push changes
run: |
git config user.name "github-actions"
git config user.email "actions@github.com"
git add .
if ! git diff --cached --quiet; then
git commit -m "Update translations via workflow"
git pull --rebase origin main
git push origin main
else
echo "No changes to commit"
fi
Display More
---
### 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.
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:
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!
![]()