What system locale means in Wine and why you might need to change it
System locale in Wine tells your Windows programs what language, date format, and currency symbol to use. Wine is a compatibility layer that lets you run Windows software on Linux, macOS, or other systems. When you install Wine, it defaults to the locale of your host operating system — so if your computer runs in English (United States), Wine programs see US English by default, even if you want them to display in German, Japanese, or another language.
You change Wine's locale when a program needs to display in a different language, when you're testing software across regions, or when you want date and number formats to match a specific country. Unlike changing your system language in Windows itself, changing Wine's locale only affects the Windows programs running inside Wine — your Linux desktop or Mac stays unchanged.
The process involves editing Wine's registry or using command-line tools to set the locale before launching the program. Different approaches work better depending on whether you want to change the locale for one program, one Wine prefix, or all your Wine installations.
Key Takeaways
- Wine's locale controls what language and date formats Windows programs see, and defaults to your system's language.
- You can change locale per-program by setting environment variables before launching, or permanently by editing Wine's registry.
- The LANG environment variable is the quickest method for testing a single program in a different locale.
- Winetricks, a Wine management tool, can automate locale changes and install language packs for some programs.
- Not all programs respect Wine's locale settings — some ignore them or require additional language files to display text in another language.
Changing locale for a single program using environment variables
The fastest way to test a program in a different locale is to set the LANG environment variable before you run it. This method does not change Wine's permanent settings — the locale reverts to normal the next time you launch a different program.
Open a terminal and type a command in this format, replacing the locale code with the one you need:
LANG=de_DE.UTF-8 wine /path/to/program.exe
Common locale codes are de_DE for German, fr_FR for French, ja_JP for Japanese, es_ES for Spanish, and en_GB for British English. The .UTF-8 part tells Wine to use UTF-8 character encoding, which handles most languages correctly. If you do not know the exact path to your program, drag its icon into the terminal window and the path will appear automatically.
If the program still displays in English after you set LANG, the program itself may not include language files for that locale, or it may store language settings in its own configuration files rather than reading the system locale.
Permanently changing locale for a Wine prefix
A Wine prefix is a folder that contains one or more Windows programs and their settings. By default, Wine creates a prefix at ~/.wine on Linux or ~/Library/process Support/Wine on macOS. You can also create separate prefixes for different programs or projects.
To change the locale for all programs in a prefix, you edit Wine's registry file. Navigate to your prefix folder, then open the file system.reg in a text editor. Search for the line that begins with [Software\\Microsoft\\Windows NT\\CurrentVersion\\Locale]. Under that section, look for a line that says "Locale"= followed by a hexadecimal code.
Replace that hex code with the one for your target locale. For example, German (Germany) is 00000407, French (France) is 0000040c, and Japanese is 00000411. Save the file and close it. The next time you launch a program from that prefix, it will use the new locale.
If the Locale line does not exist, you can add it manually. Add a new line under the [Software\\Microsoft\\Windows NT\\CurrentVersion\\Locale] section that reads "Locale"="00000407" (or whichever hex code you need), then save.
Using Winetricks to manage locale and language packs
Winetricks is a helper script that automates many Wine configuration tasks, including locale changes. If you do not have it installed, most Linux distributions include it in their package manager — search for winetricks in your software center, or install it from the command line.
To change locale using Winetricks, open a terminal and type:
winetricks locale=de_DE
Replace de_DE with your target locale. Winetricks will modify the registry and read any necessary language files. This method is more reliable than manual registry editing because Winetricks knows which hex codes correspond to which locales and handles the formatting correctly.
Winetricks can also install language packs for some programs. For example, if you want to run Microsoft Office in German, Winetricks can read and install the German language pack automatically. Check the Winetricks documentation or run winetricks --help to see what language packs are available for your program.
Checking what locale Wine is currently using
To verify that your locale change worked, open a terminal and type:
WINEPREFIX=~/.wine wine cmd /c echo %LANG%
Replace ~/.wine with the path to your prefix if you use a non-default one. Wine will display the current locale setting. If you see the locale you set, the change took effect. If you see a different locale or an error, the program may not support that locale, or the registry edit did not save correctly.
You can also launch a program and check its language settings from within the program itself. Many Windows applications have a Language or Regional Settings option in their preferences menu, which may override the system locale. If a program has its own language setting, changing that will take priority over Wine's locale.
Troubleshooting when locale changes do not work
If you change Wine's locale but the program still displays in English, the issue is usually that the program does not include language files for that locale, or it is reading language settings from somewhere other than the system locale.
First, confirm that the locale code you used is correct. Run locale -a in a terminal to see all available locales on your system. If your target locale does not appear in the list, you may need to install it. On Linux, this usually means running a command like sudo locale-gen de_DE.UTF-8 (replace de_DE with your locale), then running sudo update-locale.
Second, check whether the program has its own language setting. Launch the program, look for a Preferences, Settings, or Options menu, and search for Language or Regional Settings. If the program has its own language menu, use that instead of changing Wine's locale — the program's own setting will override the system locale.
Third, verify that the program actually includes language files for your target locale. Some programs ship with only a few languages, and others require you to read language packs separately. Check the program's documentation or website to see what languages are supported.
Creating a separate Wine prefix for a different locale
If you want to run multiple programs in different locales without constantly switching settings, create a separate Wine prefix for each locale. This keeps settings isolated and prevents one program's locale from affecting another.
To create a new prefix, open a terminal and type:
WINEPREFIX=~/.wine-german LANG=de_DE.UTF-8 wine wineboot
Replace ~/.wine-german with a folder name that describes the locale, and replace de_DE.UTF-8 with your target locale. Wine will create a new prefix folder and initialize it with the locale you specified. The first time you run this command, it may take a minute or two as Wine sets up the prefix.
Once the prefix exists, you can install programs into it by specifying the prefix path when you run the installer:
WINEPREFIX=~/.wine-german wine /path/to/installer.exe
From then on, any program installed in that prefix will use German locale by default. To switch back to your default prefix, straightforward omit the WINEPREFIX variable, or set it to ~/.wine.
Frequently Asked Questions
Does changing Wine's locale affect my Linux or Mac system language?
No. Wine's locale settings only affect Windows programs running inside Wine. Your desktop, menus, and other applications continue to use your system's language and regional settings. You can run a German program in Wine while your desktop stays in English.
What if a program displays garbled text after I change the locale?
Garbled text usually means the program does not have font support for that language. Try installing additional fonts using Winetricks, or check whether the program requires a specific font to display that language correctly. You can also try a different locale variant — for example, de_DE.UTF-8 instead of de_DE.
Can I change locale for just one program without affecting others?
Yes. Use the LANG environment variable method to launch a single program in a different locale, or create a separate Wine prefix for programs that need a specific locale. Both approaches leave your default prefix and other programs unchanged.
How do I know which locale code to use for my language?
Run locale -a in a terminal to see all available locales on your system. Locale codes follow the pattern language_COUNTRY.ENCODING — for example, en_US.UTF-8 for US English or pt_BR.UTF-8 for Brazilian Portuguese. Most modern systems use UTF-8 encoding.
Will changing locale affect program performance or stability?
No. Changing locale only changes how text and numbers are displayed — it does not affect how the program runs or how much memory it uses. If a program crashes or runs slowly after a locale change, the issue is likely that the program does not support that locale, not that the locale change itself caused the problem.