A layout that makes it possible to write in multiple languages without switching between them. It also has a lot of useful symbols.
It was originally private for a few years, updated whenever I needed new symbols.
I finally decided to make it public, and I'm planning to keep on using it as my daily keyboard layout.
If you think there's something missing, please feel free to make an issue,
but I cannot promise a fast response. 😅
It only supports the Latin script and a lot of combining diacritics. Standard letters without diacritics are omitted for the sake of clarity.
| Language | Supported letters | Missing letters | Support |
|---|---|---|---|
| English | Full | ||
| Spanish | Áá, Éé, Íí, Ññ, Óó, Úú, Üü | Full | |
| French | Àà, Ââ, Ææ, Çç, Éé, Èè, Êê, Ëë, Îî, Ïï, Ôô, Œœ, Ùù, Ûû, Üü, Ÿÿ | Full | |
| Portuguese | Áá, Ââ, Ãã, Àà, Çç, Éé, Êê, Íí, Óó, Ôô, Õõ, Úú | Full | |
| Indonesian | Full | ||
| German | Ää, Öö, Üü, ẞß | Full |
| Language | Romanization | Supported letters | Missing letters | Support |
|---|---|---|---|---|
| Japanese | Hepburn | Āā, Ēē, Īī, Ōō, Ūū | Full |
The full list of languages with the Latin script has to be finished.
| Language | Supported letters | Missing letters | Support | |
|---|---|---|---|---|
| Acehnese | Éé, Èè, Ëë, Ôô, Öö | Full | ||
| Afar | Full | |||
| Afrikaans | Áá, Ää, Éé, Èè, Êê, Ëë, Íí, Îî, Ïï, Óó, Ôô, Öő, Úú, Ûû, Üü, Ýý | Full | ||
| Albanian | Ëë, Çç | Full | ||
| Aragonese | Áá, Éé, Íí, Óó, Úú, Üü | Full | ||
| Asturian | Ññ | (Ḥḥ, Ḷḷ) | Major | Dialectal letters with underdots unsupported |
| Aymara | Ää, Ïï, Üü | Full | ||
| Azerbaijani | Çç, Əə, Ğğ, İi, Öö, Şş, Üü | Iı | Partial | Small dotless i unsupported |
| Bai | Full | |||
| Banjarese | Éé | Full | ||
| Basque | Çç, Üü, Ññ | Full | ||
| Belarusian (Łacinka) | Ćć, Čč, Łł, Ńń, Śś, Šš, Ŭŭ, Źź, Žž | Full | ||
| Betawi | Ññ, ʔ | Full | ||
| Berber | Čč | Ḍḍ, Ɛɛ, Ǧǧ, Ɣɣ, Ḥḥ, Řř, Ṛṛ, Ṣṣ, Ṭṭ, Ẓẓ, ʷ | Limited | Underdot unsupported Latin epsilon unsupported Caron support limited Labialization mark unsupported |
| Bislama | Full | |||
| Boholano | Full | |||
| Bosnian | Ćć, Čč, Šš, Žž | Đđ | Partial | Stroke unsupported |
| Breton | Ââ, Êê, Îî, Ôô, Ûû, Ùù, Üü, Ññ | Full | ||
| Catalan | Àà, Éé, Èè, Íí, Ïï, Óó, Òò, Úú, Üü, Çç | Full | ||
| Cebuano | Full | |||
| Chamorro | Ññ | ʼ, Åå, | Limited | Modifier apostrophe letter unsupported Overring unsupported |
| Cherokee | Full | |||
| Cornish | Full | |||
| Corsican | Full | |||
| Croatian | Ćć, Čč, Šš, Žž | Đđ | Partial | Stroke unsupported |
| Cree | â, ā, ð, ê, ē, î, ī, ñ, ô, ō, š, ý | Full | ||
| Czech | Áá, Čč, Éé, Íí, Óó, Úú, Ýý, Žž | Ďď, Ňň, Řř, Šš, Ťť, Ůů | Limited | Caron support limited Overring unsupported |
| Danish | Ææ | Øø, Åå | Limited | Stroke unsupported Overring unsupported |
[ to be continued ]
[ to be continued ]
Pre-built binaries are planned to be provided in the future in the Releases section.
Then, you'll be able to download it and install it by following the steps in the Installation section.
You need to have MSKLC 1.4 installed. You can download it from here.
Tested only on Windows 11, but should work on Windows 10 and earlier as well.
MSKLC is a quite archaic piece of software, but Microsoft doesn't seem to have
any plans to update it, so it'll have to do.
- Clone the repository.
- Open the
multilingual.klcfile using MSKLC. - Go to
Project→Build DLL and Setup Package. - Follow the on-screen instructions.
- It should eventually get exported to the directory showed in the dialog box.
By default, it's
Documents\multilin.
⚠️ Warning: Building will fail if the layout is already installed. You need to uninstall it first using the provided steps to build it.
⚠️ Warning: Building the layout using MSKLC will fail if the appdata directory is not set to the default path. In this case, you have to build the layout manually using the method below.
MSKLC provides several CLI tools in its /bin/i386 directory. To build the
layout manually, you need to use the kbdutool tool.
kbdutool.exe -wu <layout path>where -w displays extended warnings, -u forces Unicode support.
It builds the DLL for x86 by default (or if you pass the -x flag). You can override
this behavior by using -i for IA64, -m for AMD64, -o for WOW64, or you can
use -s to generate C source files without building them.
- Go to the directory with the binaries. It should contain
setup.exe, several.msifiles, and directories with.dllfiles. - The easiest method to install the layout is to run
setup.exeand follow the on-screen instructions. Alternatively, you can run the.msifile manually, for your architecture. Manual installation with.dllfiles is possible, but not recommended. - After the installation is complete, you need to restart your computer for the changes to take effect.
⚠️ Warning: Installation will fail if the layout is already installed. You need to uninstall it first using the provided steps to update it.
⚠️ Warning: Installation binaries provided by MSKLC seem to not work correctly if the appdata directory is not set to the default path. In this case, you have to install the layout manually using the.dllfiles.
- Copy the
.dllfile appropriate for your architecture to theC:\Windows\System32directory. - Open the registry editor by pressing
Win+Rand typingregedit. - Navigate to
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts. - Add a new 8-character key with a unique hexadecimal name. The first four characters
can be anything (MSKLC uses
a000, thena001, etc.), and the last four characters should correspond to the language ID (e.g.,0409for English). - Add a string value
Layout Textwith the name of the layout (e.g.,Multilingual). - Add a string value
Layout Filewith the name of the.dllfile (e.g.,multilin.dll). There's no need to specify the full path, as it has to be in theC:\Windows\System32. - Add a string value
Layout Display Namereferring to a specific string in the.dllfile, like@multilin.dll,-1000, wheremultilin.dllis the name of the.dllfile. - Add a string value
Layout Idwith the layout ID. It has to be unique across all layouts. On modern Windows installations,00c0seems to be working. - Restart your PC in order to reload the system libraries.
- Go to
Settings→Time & Language→Language & Regionand add the layout.
⚠️ Warning: For some reason, too high layout IDs (e.g.,a000) seems to cause the layout to not be selectable and crash Explorer when trying to choose it. It should be checked, whether there's a limit or if it must be consecutive.
- Go to
Settings→Time & Language→Language & Region. - Under the
Languagesection, click on the three dots next to the language you want to add the layout to. Alternatively, you can click onAdd a languageand add the language you want to add the layout to. - Click on
Language options. - Under the
Keyboardssection, click onAdd a keyboard. - Look for
Multilingualand click on it. - Optionally, you can remove the default keyboard layout for the language by
clicking on the three dots and clicking on
Remove. - Restart your computer for the changes to take effect.
- You should now be able to switch to the layout by pressing
Win+Spaceand use it.
- Go to
Settings→Apps→Installed apps. - Look for
Multilingualon the list or search for it using the search box. - Click on the three dots next to it and click on
Uninstall. - Follow the on-screen instructions.