Translated .msi installers
- 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
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