Stream Deck supports multiple languages.
The manifest contains several strings that can be localized. You can provide the localizations in JSON files located next to the manifest.json. For example, you can include a fr.json file to localize the plugin in French:
"Description": "Affiche le nombre de fois que la touche a été appuyée",
"Name": "Compteur",
"com.elgato.counter.action": {
"Name": "Compteur",
"Tooltip": "Cette action affiche le nombre de fois que la touche a été appuyée"
Note that if you don't provide a localization string, the string from the manifest.json file will be used. Stream Deck supports the following languages:
  • Chinese: zh_CN.json
  • German: de.json
  • English: en.json
  • French: fr.json
  • Japanese: ja.json
  • Korean: ko.json
  • Spanish: es.json
You can also provide your own strings in JSON files.
These files must be saved in the root directory of your plugin (beneath the manifest.json file). you'll find an example in the template plugin. Here's an example of the de.json file.
How to automatically localize your strings in the Property Inspector, please refer to the Property Inspector documentation for more information.
"Description": "Nimm diese Vorlage für dein erstes Plugin",
"Name": "Stream Deck Template",
"Category": "Templates",
"com.elgato.template.action": {
"Name": "Action",
"Tooltip": "Dies ist die einzige 'Action' in diesem Template"
"Localization": {
"More info": "Mehr Infos",
"Message": "Nachricht",
"Click Me": "Klicke mich",
"Button": "Taste",
"More": "Mehr",
"My name": "Mein Name",
"My title": "Mein Titel",
"My message": "Meine Nachricht",
"My button": "Meine Taste"
If you need these strings in a localized form in your plugin, you can simply use the following function (built into the SDK) to do so:
In the plugin:
$SD.localize('My name'); // will output 'My name' in german -> 'Mein Name'
In Property Inspector:
$PI.localize('My name') // will output 'My name' in german -> 'Mein Name'