beeware / beeware/toga

Translation layer to be used for menu items and other items

Open
#2,248 10 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Python
Stars
5.4k
Forks
827
Avg merge
9h 45m
Merged PRs (30d)
58

Description

### What is the problem or limitation you are having?

Currently when creating a Toga application, the menu items are only in English with no way to change the language or edit the default menu items easily.

### Describe the solution you'd like

Using a module like gettext and creating locale files for languages. Ideally all items would be translated already for users for any language however that would take a lengthy amount of time. It may also be useful to pick a module that allows dynamic editing/creation of locale files so a dev could add their own translations.

Using a module like gettext would allow for a seamless experience for end users and devs to speed up the language parts of development, especially if we could include a way to add their own translations to their program. Either through toga methods OR the use of a new briefcase entry in the TOML file.

### Describe alternatives you've considered

I am not sure of other translation modules for python, I have only looked into gettext. There may be a better or more well suited option that I am not aware of.

### Additional context

_No response_

Contributor guide

Open the contributing guide

Research direction

The issue does not name any files, tests, or entry points. Begin by locating Toga's menu-item implementation and any existing localization support, then define the translation mechanism, locale ownership, and tests needed to verify translated default and developer-defined menu text.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
desktop, internationalization
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.