# Localization and Resource Kit

> Show TX Spell .NET dialogs in German or other languages in Windows Forms: the de satellite assembly, Resource Kit builds of TXSpell.resources.dll, button texts.

- **Product:** TX Spell .NET for Windows Forms
- **Section:** Documentation
- **Kind:** Topic
- **Path:** TX Spell .NET for Windows Forms > User Interface > Localization and Resource Kit
- **1345 words**
- **Web URL:** https://docs.textcontrol.com/tx-spell-dotnet-winforms/user-interface/localization/
- **LLMs URL:** https://docs.textcontrol.com/tx-spell-dotnet-winforms/user-interface/localization/llms.txt
- **LLMs-Full URL:** https://docs.textcontrol.com/tx-spell-dotnet-winforms/user-interface/localization/llms-full.txt

---

An application used in France should show its spell check dialog in French. TX Spell .NET shows its dialogs, message boxes and error messages in English or German, and the Resource Kit translates them into any other language. Read on for how the language is chosen, what to deploy for German, and how to build and deploy a translation of your own.

This concerns the texts of the user interface only. Which languages the spell checker checks depends on the dictionaries you load, as [Dictionaries and Languages](https://docs.textcontrol.com/tx-spell-dotnet-winforms/dictionaries/llms-full.txt) describes: a French dictionary checks French words in a dialog with English labels.

### What Is Translated

Every text that TX Spell .NET shows is a string resource: the labels and buttons of the spell check dialog and the options dialog, the message boxes and the error messages. The English texts are built into the assembly, and the German texts ship with the NuGet packages:

![The Spelling dialog with its English texts: Misspelled word, Language, Ignore Once, Ignore All, Add To Dictionary, Suggestions, Change, Change All, Suggestions Dictionary, Options and Cancel.](https://docs.textcontrol.com/assets/img/tx-spell-dotnet-winforms/textcontrol-spelling-dialog.1c62f1f3.webp)

The German texts are in a *satellite assembly*, a separate assembly that holds only the resources of one language. Its name is *TXSpell.resources.dll*, after *TXSpell.dll*, the assembly TX Spell .NET for Windows Forms and TX Spell .NET for WPF share. The package `TXTextControl.TXSpell.WinForms.SDK` contains it in the subfolder *de*.

### How the Language Is Chosen

.NET picks the resources that match the language of the system, the same way it does for its own texts. When the system language is German and the folder *de* with the satellite assembly is next to the application, the dialogs appear in German. For any other system language without a satellite assembly, they appear in English.

A satellite assembly for French is loaded only when the system language is French, and so on for every language.

### Deploy the German Texts

When you build a project with the NuGet package, the folder *de* is copied into the output directory. Deploy it with the application, in the same place:

```text
<application folder>\YourApplication.exe
<application folder>\TXSpell.dll
<application folder>\TXSpell.Windows.Forms.dll
<application folder>\de\TXSpell.resources.dll
```

Without the folder, the dialogs are in English on every system. [Assemblies and Language Data Folders](https://docs.textcontrol.com/tx-spell-dotnet-winforms/deployment/assemblies/llms-full.txt) lists the other files an application ships, and [Deployment](https://docs.textcontrol.com/tx-spell-dotnet-winforms/troubleshooting/deployment/#the-dialogs-aren-t-in-the-user-s-language) helps when the dialogs appear in the wrong language.

### Translate Into Another Language

The Resource Kit builds a satellite assembly for another language. It is in the *ResourceKit* subdirectory of the TX Spell .NET installation directory and consists of three files:

| File | Contents |
|---|---|
| *TXSpell.resx* | All texts of TX Spell .NET, as XML. The texts are the contents of the `value` elements |
| *buildres.bat* | A batch file that calls the tools of the .NET Framework SDK to build the satellite assembly |
| *txtextcontrol.public.snk* | The public key of Text Control, needed for the build |

The Resource Kit was written for the .NET Framework. The build takes these steps:

1. Install the .NET Framework SDK, which contains the tools *buildres.bat* calls.
2. Translate the texts in *TXSpell.resx*: change the contents of each `value` element, and leave the names of the resources as they are.
3. Run *buildres.bat* in the *ResourceKit* folder with the two-letter ISO 639 code of the language, for example `fr` for French:

    ```powershell
    .\buildres.bat fr
    ```

    It builds *TXSpell.resources.dll* with the French texts.
4. Copy the assembly into a subfolder of the application folder named after the language code, such as *fr*, next to the files of TX Spell .NET:

    ```text
    <application folder>\fr\TXSpell.resources.dll
    ```
5. Create this registry key on each machine, so that the .NET Framework uses your own build of the satellite assembly with the application:

    ```text
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\StrongName\Verification\TXSpell.resources,6B83FE9A75CFB638
    ```

The built-in English and German resources can't be changed with the Resource Kit; a satellite assembly adds a language.

### Change Single Texts in Code

For a few texts, code is simpler than a satellite assembly:

- **Buttons of the spell check dialog.** Every button has a [Text](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/dialogbutton/text-property/llms-full.txt) property. This line renames the options button:

```csharp
txSpellChecker1.SpellCheckDialog.OptionButtons[0].Text = "Spelling Options...";
```

[Customizing the Spell Check Dialog](https://docs.textcontrol.com/tx-spell-dotnet-winforms/user-interface/customizing-dialog/llms-full.txt) reaches the other buttons through their collections.

2. **Message boxes of the spell check dialog.** Set [ShowMessageBoxes](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellcheckdialog/showmessageboxes-property/llms-full.txt) to `false`, and show your own message when the check is complete.

3. **Items of a context menu.** In a menu you build yourself, the items you add have the texts you give them. [Context Menus](https://docs.textcontrol.com/tx-spell-dotnet-winforms/user-interface/context-menus/llms-full.txt) builds such a menu.

The labels of the options dialog have no property of their own. To show them in another language, use a satellite assembly, or replace the dialog with your own as [Options Dialog](https://docs.textcontrol.com/tx-spell-dotnet-winforms/user-interface/options-dialog/#replace-the-dialog-with-your-own) shows.

### Next Steps

- [Spell Check Dialog](https://docs.textcontrol.com/tx-spell-dotnet-winforms/user-interface/spell-check-dialog/llms-full.txt): the dialog whose texts are translated.
- [Supported Languages](https://docs.textcontrol.com/tx-spell-dotnet-winforms/overview/languages/llms-full.txt): the languages TX Spell .NET checks.
- [Assemblies and Language Data Folders](https://docs.textcontrol.com/tx-spell-dotnet-winforms/deployment/assemblies/llms-full.txt): the files your application ships.
- [Deployment](https://docs.textcontrol.com/tx-spell-dotnet-winforms/troubleshooting/deployment/llms-full.txt): problems with missing files after deployment.

---

## Nearby

- **Previous:** [Suggestion Controls](https://docs.textcontrol.com/tx-spell-dotnet-winforms/user-interface/suggestions/llms-full.txt)
- **Next:** [Integration Guide](https://docs.textcontrol.com/tx-spell-dotnet-winforms/integration/llms-full.txt)
