Internationalization support and Hungarian translation #2

Open
opened 2026-06-18 06:58:49 -07:00 by serrebi · 7 comments
Owner

Hello,

I am a blind Hungarian user interested in using and testing Accessible IPTV Client with JAWS and NVDA.

I would also be happy to prepare and maintain a complete Hungarian translation of the application. I do not program in Python, but I can translate all user-facing text and test the Hungarian interface thoroughly with screen readers.

At the moment, the user interface strings appear to be hard-coded in the Python source files, and I could not find an existing gettext, wx.Locale, PO, JSON, or other localization system.

Would you consider adding internationalization support to the application?

A gettext/PO-based solution would be especially helpful. Ideally, it would include:

  • an English translation template or POT file;
  • separate PO files for each language;
  • automatic language selection based on the operating system;
  • a manual language selector under Options;
  • English as the fallback language;
  • inclusion of the compiled translation files in the PyInstaller release package;
  • translation support for menus, dialogs, buttons, status messages, error messages, tray menus, player controls, accessibility labels and update messages.

Suggested language options:

  • Automatic
  • English
  • Hungarian

Once the localization framework and the Hungarian PO file are available, I would be glad to translate the complete interface into Hungarian and test it on Windows with both JAWS and NVDA.

I would aim to provide accurate and consistent Hungarian IPTV terminology, including playlists, EPG, catch-up, timeshift, casting, providers and player controls.

You can contact me by replying to this GitHub issue. I will follow the discussion here and will be happy to provide the Hungarian translation and accessibility testing.

If private contact is necessary, please let me know here or contact me through the project’s Telegram group.
Thank you for developing an IPTV client specifically with accessibility and keyboard navigation in mind.

With Best regards,
Tibor Hermann

Hello, I am a blind Hungarian user interested in using and testing Accessible IPTV Client with JAWS and NVDA. I would also be happy to prepare and maintain a complete Hungarian translation of the application. I do not program in Python, but I can translate all user-facing text and test the Hungarian interface thoroughly with screen readers. At the moment, the user interface strings appear to be hard-coded in the Python source files, and I could not find an existing gettext, wx.Locale, PO, JSON, or other localization system. Would you consider adding internationalization support to the application? A gettext/PO-based solution would be especially helpful. Ideally, it would include: - an English translation template or POT file; - separate PO files for each language; - automatic language selection based on the operating system; - a manual language selector under Options; - English as the fallback language; - inclusion of the compiled translation files in the PyInstaller release package; - translation support for menus, dialogs, buttons, status messages, error messages, tray menus, player controls, accessibility labels and update messages. Suggested language options: - Automatic - English - Hungarian Once the localization framework and the Hungarian PO file are available, I would be glad to translate the complete interface into Hungarian and test it on Windows with both JAWS and NVDA. I would aim to provide accurate and consistent Hungarian IPTV terminology, including playlists, EPG, catch-up, timeshift, casting, providers and player controls. You can contact me by replying to this GitHub issue. I will follow the discussion here and will be happy to provide the Hungarian translation and accessibility testing. If private contact is necessary, please let me know here or contact me through the project’s Telegram group. Thank you for developing an IPTV client specifically with accessibility and keyboard navigation in mind. With Best regards, Tibor Hermann <!-- forgejo-github-sync: issue github=serrebidev/Accessible-IPTV-Client#2 -->
Author
Owner

Hi @htibcsike,

Thanks for the thorough, well-structured request — this was exactly the nudge the app needed. Internationalization is now implemented and shipped in v1.98.0: https://github.com/serrebidev/Accessible-IPTV-Client/releases/tag/v1.98.0

It's a standard gettext/PO solution, and rather than hand you an empty template I went ahead and included a complete first-pass Hungarian translation so you have something concrete to test and correct.

What's in v1.98.0 (mapped to your checklist)

  • English template/POT file: locale/iptvclient.pot.
  • Separate PO files per language: locale/hu/LC_MESSAGES/iptvclient.po (Hungarian) plus an en template.
  • Automatic language selection based on the OS (Windows UI language / LANG), with English as the fallback.
  • A manual selector under Options > Language: Automatic, English, Magyar (Hungarian) — the three options you suggested.
  • English fallback for any string that isn't translated yet.
  • Compiled .mo files bundled in the PyInstaller release (_internal/locale/...); the build recompiles them every time so a release can never ship a stale catalog.
  • Coverage: menus, dialogs, buttons, status messages, error messages, the tray menu, the built-in player controls, accessibility labels (including the Xtream Codes and Stalker Portal field labels), and the update messages. 263 strings in total.

The choice is saved to iptvclient.conf ("language": "auto" | "en" | "hu") and takes effect after a restart.

One deliberate decision: I did not use wx.Locale, because it switches the process numeric locale and would break the decimal numbers the built-in player passes to libVLC. Everything goes through gettext instead, so the localization is safe and self-contained.

How to test the Hungarian interface

  1. Download and run v1.98.0.
  2. Options > Language > Magyar (Hungarian).
  3. Restart the app.
  4. The whole interface — menus, built-in player, the playlist/EPG managers, catch-up, casting, error and update messages — should now be Hungarian. Please put it through JAWS and NVDA.

Reviewing and refining the Hungarian (no programming required)

The translation is plain text in locale/hu/LC_MESSAGES/iptvclient.po. Each entry looks like:

msgid "Play Catch-up…"
msgstr "Visszanézés lejátszása…"

You only edit the msgstr "..." line (leave the English msgid alone). Any text editor works, or a dedicated tool like Poedit. The one hard rule: keep every {placeholder} token (for example {device}, {error}, {count}) exactly as it appears in the English — those are filled in at runtime. There is an automated test that fails if a placeholder ever goes missing, so you cannot accidentally break playback by editing wording.

Send the edited .po back however suits you (a pull request, pasting it here, or via the Telegram group) and I'll recompile and include it in the next release. If you want to compile locally to try it, it is just:

python tools/i18n_tools.py compile

No GNU gettext or other tools needed — the tooling is pure Python.

Terminology I used (please correct anything that reads wrong)

You are the native speaker and the IPTV-domain expert, so treat these as a starting point and change freely:

  • playlist → lejátszási lista
  • EPG / guide → EPG / műsorújság
  • catch-up → visszanézés
  • provider / portal → szolgáltató / portál
  • casting → átküldés
  • stream → adás
  • channel → csatorna
  • buffering → pufferelés
  • built-in player → beépített lejátszó

A few I was unsure about: whether you'd prefer keeping "catch-up", "timeshift", and "casting" as loanwords, and the most natural phrasing for the Xtream Codes / Stalker Portal screens (I left those product names in English). Your call on all of it.

Thanks again for volunteering to prepare and maintain the Hungarian translation and to test with screen readers — that's genuinely appreciated. I'll leave this issue open so we can iterate on the wording together.

— Serrebi

Hi @htibcsike, Thanks for the thorough, well-structured request — this was exactly the nudge the app needed. Internationalization is now implemented and shipped in **v1.98.0**: https://github.com/serrebidev/Accessible-IPTV-Client/releases/tag/v1.98.0 It's a standard gettext/PO solution, and rather than hand you an empty template I went ahead and included a **complete first-pass Hungarian translation** so you have something concrete to test and correct. ## What's in v1.98.0 (mapped to your checklist) - English template/POT file: `locale/iptvclient.pot`. - Separate PO files per language: `locale/hu/LC_MESSAGES/iptvclient.po` (Hungarian) plus an `en` template. - Automatic language selection based on the OS (Windows UI language / `LANG`), with English as the fallback. - A manual selector under **Options > Language**: Automatic, English, Magyar (Hungarian) — the three options you suggested. - English fallback for any string that isn't translated yet. - Compiled `.mo` files bundled in the PyInstaller release (`_internal/locale/...`); the build recompiles them every time so a release can never ship a stale catalog. - Coverage: menus, dialogs, buttons, status messages, error messages, the tray menu, the built-in player controls, accessibility labels (including the Xtream Codes and Stalker Portal field labels), and the update messages. 263 strings in total. The choice is saved to `iptvclient.conf` (`"language": "auto" | "en" | "hu"`) and takes effect after a restart. One deliberate decision: I did **not** use `wx.Locale`, because it switches the process numeric locale and would break the decimal numbers the built-in player passes to libVLC. Everything goes through gettext instead, so the localization is safe and self-contained. ## How to test the Hungarian interface 1. Download and run v1.98.0. 2. **Options > Language > Magyar (Hungarian)**. 3. Restart the app. 4. The whole interface — menus, built-in player, the playlist/EPG managers, catch-up, casting, error and update messages — should now be Hungarian. Please put it through JAWS and NVDA. ## Reviewing and refining the Hungarian (no programming required) The translation is plain text in `locale/hu/LC_MESSAGES/iptvclient.po`. Each entry looks like: ``` msgid "Play Catch-up…" msgstr "Visszanézés lejátszása…" ``` You only edit the `msgstr "..."` line (leave the English `msgid` alone). Any text editor works, or a dedicated tool like Poedit. The one hard rule: keep every `{placeholder}` token (for example `{device}`, `{error}`, `{count}`) exactly as it appears in the English — those are filled in at runtime. There is an automated test that fails if a placeholder ever goes missing, so you cannot accidentally break playback by editing wording. Send the edited `.po` back however suits you (a pull request, pasting it here, or via the Telegram group) and I'll recompile and include it in the next release. If you want to compile locally to try it, it is just: ``` python tools/i18n_tools.py compile ``` No GNU gettext or other tools needed — the tooling is pure Python. ## Terminology I used (please correct anything that reads wrong) You are the native speaker and the IPTV-domain expert, so treat these as a starting point and change freely: - playlist → lejátszási lista - EPG / guide → EPG / műsorújság - catch-up → visszanézés - provider / portal → szolgáltató / portál - casting → átküldés - stream → adás - channel → csatorna - buffering → pufferelés - built-in player → beépített lejátszó A few I was unsure about: whether you'd prefer keeping "catch-up", "timeshift", and "casting" as loanwords, and the most natural phrasing for the Xtream Codes / Stalker Portal screens (I left those product names in English). Your call on all of it. Thanks again for volunteering to prepare and maintain the Hungarian translation and to test with screen readers — that's genuinely appreciated. I'll leave this issue open so we can iterate on the wording together. — Serrebi <!-- forgejo-github-sync: comment github=serrebidev/Accessible-IPTV-Client#2/4743954319 -->
Author
Owner

Hi Serrebi,

Thank you very much for implementing the complete internationalization framework so quickly and for already preparing a first-pass Hungarian translation. This is far more than I expected, and I genuinely appreciate the amount of work you have put into it.
I will download v1.98.0 and test the Hungarian interface thoroughly with both JAWS and NVDA. I will review not only the wording, but also the screenreader labels, focus order, menus, dialogs, the playlist and EPG managers, Xtream Codes and Stalker Portal configuration, catch-up, casting, the built-in player, tray menu, error messages and update messages.
The terminology you selected is already a very good starting point. I will pay particular attention to context-sensitive terms such as catch-up, timeshift, casting and stream. For example, “Visszanézés lejátszása” may sound more natural as “Visszanézhető műsor lejátszása” or “Műsor visszanézése”, depending on the exact context.
I will keep every placeholder token unchanged and edit only the Hungarian msgstr entries.
Once I have completed the first review and screenreader test, I will send you the corrected PO file or report the proposed changes in this issue.
Many thanks again for taking accessibility and localization so seriously.
With Best regards,
Tibor Hermann

Hi Serrebi, Thank you very much for implementing the complete internationalization framework so quickly and for already preparing a first-pass Hungarian translation. This is far more than I expected, and I genuinely appreciate the amount of work you have put into it. I will download v1.98.0 and test the Hungarian interface thoroughly with both JAWS and NVDA. I will review not only the wording, but also the screenreader labels, focus order, menus, dialogs, the playlist and EPG managers, Xtream Codes and Stalker Portal configuration, catch-up, casting, the built-in player, tray menu, error messages and update messages. The terminology you selected is already a very good starting point. I will pay particular attention to context-sensitive terms such as catch-up, timeshift, casting and stream. For example, “Visszanézés lejátszása” may sound more natural as “Visszanézhető műsor lejátszása” or “Műsor visszanézése”, depending on the exact context. I will keep every placeholder token unchanged and edit only the Hungarian msgstr entries. Once I have completed the first review and screenreader test, I will send you the corrected PO file or report the proposed changes in this issue. Many thanks again for taking accessibility and localization so seriously. With Best regards, Tibor Hermann <!-- forgejo-github-sync: comment github=serrebidev/Accessible-IPTV-Client#2/4745593774 -->
Author
Owner

@htibcsike No problem! Please submit it as a pull request, and I will update any language support if you think it's needed.

@htibcsike No problem! Please submit it as a pull request, and I will update any language support if you think it's needed. <!-- forgejo-github-sync: comment github=serrebidev/Accessible-IPTV-Client#2/4745604229 -->
Author
Owner

Hello Serrebi,

I have now completed a full review and revision of the Hungarian translation for Accessible IPTV Client.

I carefully checked all entries, including the translations that had already been present, and corrected wording where necessary to make the Hungarian text more natural, consistent and suitable for use with screen readers.

During the review, I also checked:

terminology consistency throughout the application;
spelling, punctuation and capitalization;
clarity and natural Hungarian phrasing;
unnecessary word repetition;
technical expressions and interface labels;
placeholders such as {error}, {device}, {count} and similar variables;
line breaks and other formatting elements.

The attached ZIP archive contains the final revised iptvclient_hu.po file.

Thank you very much for adding Hungarian localization support and for giving me the opportunity to help improve the translation. I would be happy to review any new or modified strings in future versions as well.

Best regards,

Tibor Hermann

iptvclient_hu.zip

Hello Serrebi, I have now completed a full review and revision of the Hungarian translation for Accessible IPTV Client. I carefully checked all entries, including the translations that had already been present, and corrected wording where necessary to make the Hungarian text more natural, consistent and suitable for use with screen readers. During the review, I also checked: terminology consistency throughout the application; spelling, punctuation and capitalization; clarity and natural Hungarian phrasing; unnecessary word repetition; technical expressions and interface labels; placeholders such as {error}, {device}, {count} and similar variables; line breaks and other formatting elements. The attached ZIP archive contains the final revised iptvclient_hu.po file. Thank you very much for adding Hungarian localization support and for giving me the opportunity to help improve the translation. I would be happy to review any new or modified strings in future versions as well. Best regards, Tibor Hermann [iptvclient_hu.zip](https://github.com/user-attachments/files/29163012/iptvclient_hu.zip) <!-- forgejo-github-sync: comment github=serrebidev/Accessible-IPTV-Client#2/4758632781 -->
Author
Owner

Hi Tibor,

Your revised translation is merged and shipped — it's live in v1.100.1, which I just published:
https://github.com/serrebidev/Accessible-IPTV-Client/releases/tag/v1.100.1

To see your work in the app, upgrade to v1.100.1 (via Help → Check for Updates in the app, or download it from the release page above), then make sure the language is set under Options → Language → Magyar (Hungarian) and restart.

A few notes on how I integrated it:

  • All of your reviewed strings were applied — 163 of them reworded from my first pass. Thank you for the terminology consistency (e.g. EPG → műsorújság) and the more natural, screen-reader-friendly phrasing throughout.
  • Since you downloaded the catalogue, two features landed (IPTV recording in v1.99.0 and DVR scheduling in v1.100.0), which added 64 new strings. Those kept my initial Hungarian so the interface stays 100% translated, but they haven't had your native-speaker pass yet. If you'd like to refine them later, they're the recording/DVR strings (output formats, "Completed/Failed/Missed", the recordings folder, scheduling messages, etc.) — no rush at all.
  • One tiny mechanical fix on my side: a stray mid-sentence capital in the HTTP 502 message ("…szerverein Probléma…" → "…probléma…"). Everything else is exactly as you submitted.

There's an automated test that guarantees every {placeholder} token survives into the translation and that the catalogue stays fully translated, so your contribution is locked in safely.

Thank you again for the careful, thorough review and for testing with JAWS and NVDA — it genuinely makes the app better for Hungarian-speaking users. I'll keep this issue open so you can review new or modified strings in future versions whenever you have the time.

— Serrebi

Hi Tibor, Your revised translation is merged and shipped — it's live in **v1.100.1**, which I just published: https://github.com/serrebidev/Accessible-IPTV-Client/releases/tag/v1.100.1 To see your work in the app, upgrade to **v1.100.1** (via **Help → Check for Updates** in the app, or download it from the release page above), then make sure the language is set under **Options → Language → Magyar (Hungarian)** and restart. A few notes on how I integrated it: - All of your reviewed strings were applied — 163 of them reworded from my first pass. Thank you for the terminology consistency (e.g. EPG → műsorújság) and the more natural, screen-reader-friendly phrasing throughout. - Since you downloaded the catalogue, two features landed (IPTV recording in v1.99.0 and DVR scheduling in v1.100.0), which added 64 new strings. Those kept my initial Hungarian so the interface stays 100% translated, but they haven't had your native-speaker pass yet. If you'd like to refine them later, they're the recording/DVR strings (output formats, "Completed/Failed/Missed", the recordings folder, scheduling messages, etc.) — no rush at all. - One tiny mechanical fix on my side: a stray mid-sentence capital in the HTTP 502 message ("…szerverein Probléma…" → "…probléma…"). Everything else is exactly as you submitted. There's an automated test that guarantees every `{placeholder}` token survives into the translation and that the catalogue stays fully translated, so your contribution is locked in safely. Thank you again for the careful, thorough review and for testing with JAWS and NVDA — it genuinely makes the app better for Hungarian-speaking users. I'll keep this issue open so you can review new or modified strings in future versions whenever you have the time. — Serrebi <!-- forgejo-github-sync: comment github=serrebidev/Accessible-IPTV-Client#2/4758762927 -->
Author
Owner

Hello Serrebi,

I have now completed the final review of the Hungarian translation for Accessible IPTV Client.

I carefully revised the entire catalogue once again and refined the wording throughout to make the interface sound natural, clear and consistent in Hungarian. I also reviewed the terminology used for playback, recording, scheduling, programme archives, XMLTV, error messages and other technical functions.

During the final revision, I checked:

natural and idiomatic Hungarian phrasing;
terminology consistency;
spelling, punctuation and capitalization;
unnecessary repetition;
clarity for screen-reader users;
placeholders, li

iptvclient_hu.zip

ne breaks and technical formatting.

The attached archive contains the final Hungarian iptvclient.po file and supersedes the version I previously submitted.

As far as the currently available strings are concerned, I now consider this the completed and final Hungarian translation. Naturally, I would still be happy to review any new or modified strings introduced in future versions.

Thank you very much for your cooperation, for supporting Hungarian localization, and for integrating my previous corrections so quickly.

Best regards,

Tibor Hermann

Hello Serrebi, I have now completed the final review of the Hungarian translation for Accessible IPTV Client. I carefully revised the entire catalogue once again and refined the wording throughout to make the interface sound natural, clear and consistent in Hungarian. I also reviewed the terminology used for playback, recording, scheduling, programme archives, XMLTV, error messages and other technical functions. During the final revision, I checked: natural and idiomatic Hungarian phrasing; terminology consistency; spelling, punctuation and capitalization; unnecessary repetition; clarity for screen-reader users; placeholders, li [iptvclient_hu.zip](https://github.com/user-attachments/files/29213070/iptvclient_hu.zip) ne breaks and technical formatting. The attached archive contains the final Hungarian iptvclient.po file and supersedes the version I previously submitted. As far as the currently available strings are concerned, I now consider this the completed and final Hungarian translation. Naturally, I would still be happy to review any new or modified strings introduced in future versions. Thank you very much for your cooperation, for supporting Hungarian localization, and for integrating my previous corrections so quickly. Best regards, Tibor Hermann <!-- forgejo-github-sync: comment github=serrebidev/Accessible-IPTV-Client#2/4770046289 -->
Author
Owner

Hi Tibor,

Thank you for the final pass. I have applied the latest iptvclient_hu.zip you attached here over the Hungarian catalogue and regenerated the compiled locale/hu/LC_MESSAGES/iptvclient.mo file.

Validation is clean: the focused i18n suite passes (16 passed), including the placeholder checks, full Hungarian translation coverage, and the committed PO/MO freshness check.

I will treat this as the completed Hungarian translation for the currently available strings and include it in the next release. Future new or changed strings can still be reviewed the same way.

Best regards,
Serrebi

Hi Tibor, Thank you for the final pass. I have applied the latest `iptvclient_hu.zip` you attached here over the Hungarian catalogue and regenerated the compiled `locale/hu/LC_MESSAGES/iptvclient.mo` file. Validation is clean: the focused i18n suite passes (`16 passed`), including the placeholder checks, full Hungarian translation coverage, and the committed PO/MO freshness check. I will treat this as the completed Hungarian translation for the currently available strings and include it in the next release. Future new or changed strings can still be reviewed the same way. Best regards, Serrebi <!-- forgejo-github-sync: comment github=serrebidev/Accessible-IPTV-Client#2/4770101782 -->
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
serrebi/Accessible-IPTV-Client#2
No description provided.