beeware / beeware/briefcase

Translated .msi installers

Open
#2,928 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Python
Stars
3.3k
Forks
549
Avg merge
1d 4h
Merged PRs (30d)
40

Description

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

The WiX tooling used to generate .msi installers for Windows have features for handling different installer languages, but this is not exposed to the `briefcase` user.

### Describe the solution you'd like

### The ideal solution would be something in the lines of

`briefcase` would allow a list of language codes to be passed to the `cli` or the the `tool.briefcase.app..windows` section of the `pyproject.toml` file. The first item of the list should be the initial/fallback language displayed by the installer, and if the list has more than one value, the first installation step should display a language selction that translates the installer's GUI.

The user's choice would then be available to a post-install script, to make the language selected by the user during installation reflect the installed program's language.

### But .msi installers apparently do not implement a languge selector

So according to [this thread](https://stackoverflow.com/questions/2340605/is-it-possible-to-create-a-multilanguage-installer-using-wix/28312305), the solution that looks possible to implement is a installer that will show itself in one of the preconfigured languages based on the Windows' language. This multi-language approach is, based on [this article](https://www.installsite.org/pages/en/msi/articles/embeddedlang/), undocumented and not well tested by Microsoft, altough it's an old article.

### The more documented and simpler solution

The WiX toolset handles single language installers, it requres a `.wxl` markup file that provides a translation to every text present in the installer's GUI. In this case, `briefcase` would need one those files translating the defualt installation process for each language supported by `briefcase`, and apparently, some files [already exists](https://docs.firegiant.com/wix3/wixui/wixui_localization/).

### Describe alternatives you've considered

Briefcase currently does not support languages on `.msi` Windows installers.

### Additional context

_No response_

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the Windows MSI configuration exposed through the `cli` and `tool.briefcase.app..windows` sections of `pyproject.toml`, along with WiX `.wxl` localization files. The work is done when the supported language configuration, fallback behavior, installer language selection, and post-install language handoff are defined and implemented.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system, release
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.