ThingsBoard Custom Translations feature allows you to upload alternative to existing language translations and extend the translation to specific GUI elements on the dashboards.
Remember: having an internalization for the platform implies the availability of custom translation maps for multiple languages. Otherwise, instead of translation {i18n} structure will be displayed.
Using Locale Files
Locale files contain basic list of translations. Their list is constantly expanding.
- Step 1. Open Custom Translation menu.
- Step 2. Choose language from dropdown menu. For example, Italian.
- Step 3. Download locale file.
- Step 4. The locale file presents all possible translations for the chosen language.
- Step 5. Change language in the User Profile to apply settings.
 
       
       
       
       
      Custom menu
- Step 1. Specify custom translation in the translation map.
- Step 2. Navigate to the Home page and check translated menu.
 
       
      Examples of the custom translation map:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
  "home": {
    "home": "Pagina principale di un sito web"
  },
  "custom": {
    "group":{
      "office":"Clienti di Office 1"
    },
    "my-dashboard": {
      "title": "Dashboard per esempi"
    },
    "my-widget": {
      "name":"Widget per dispositivo sensore",
      "label-text": "Etichetta per dispositivo sensore",
      "temperature": "Etichetta della temperatura",
      "low-temperature": "Bassa temperatura",
      "high-temperature": "Alta temperatura",
      "normal-temperature": "Temperatura normale"
    }
  }
}
Dashboard
- Step 1. Specify new custom translation for the dashboard and widgets.
- Step 2. Go to the Dashboard page. Create a new dashboard or choose an existing one. Open the dashboard menu.
- Step 3. Translate dashboard title. Note the required syntax: {i18n:custom.my-dashboard.title}.
- Step 4. Check the translated title.
- Step 5. Open an edit mode and go to the dashboard states configuration.
- Step 6. Write custom translation for the dashboard state name.
 
       
       
       
       
       
      Widgets
Common Usage
Titles:
- Step 1. Go to the dashboard. Open an edit mode.
- Step 2. Open widget edit mode.
- Step 3. Apply translation to the widget title - {i18n:custom.my-widget.name}, and entity label column title - {i18n:custom.my-widget.label-text}.
- Step 4. Check translated titles.
- Step 5. Apply translation to the data key configuration as a label - {i18n:custom.my-widget.temperature}.
- Step 6. Check translated label.
 
       
       
       
       
       
      Tooltips:
- Step 1. Open an edit mode.
- Step 2. In the Settings tab, write the new structure for the tooltip title as follows: - {i18n:custom.my-widget.name}. Then, save it.
- Step 3. Hover on widget title and check applied translation.
- Step 4. Open widgets edit mode and navigate to an Action tab.
- Step 5. Create new custom action and fill the Name field with {i18n:custom.my-widget.label-text}. Apply changes.
- Step 6. Hover on an action button and view custom tooltip.
 
       
       
       
       
       
      Usage in the cell content function
- Step 1. Specify new custom translation for the telemetry data.
- Step 2. Open widget settings and go to the data key configuration.
- Step 3. Custom translation can be used in the cell content function in such widgets as Entity Table, Timeseries table and Alarms table. JavaScript code requires quotes for the i18n.
- Step 4. Get the message from translation map if temperature is high.
- Step 5. Get the message when temperature is low.
 
       
       
       
       
      JavaScript code examples for cell content function
1
2
3
4
5
6
7
if(value>70){
    return "{i18n:custom.my-widget.high-temperature}";
}else if(value<20){
    return "{i18n:custom.my-widget.low-temperature}";
}else{
    return "{i18n:custom.my-widget.normal-temperature}";
}
Usage in HTML Value Card
- Step 1. Choose HTML Value Card widget.
- Step 2. Choose some telemetry data.
- Step 3. Write some logic with custom translation. See the example below.
- Step 4. Check the result in the HTML Value Card.
 
       
       
       
      Examples of using custom translation in the HTML Vale Card:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<script>
    var description = document.getElementsByClassName('description')[0];
    var temperature = ${temperature};
    if(temperature>70){
        description.innerText = "{i18n:custom.my-widget.high-temperature}";
    }else if(temperature<20){
        description.innerText  = "{i18n:custom.my-widget.low-temperature}";
    }else{
        description.innerText = "{i18n:custom.my-widget.normal-temperature}"
    }
</script>
<div class='card'>
    <div class='content'>
        <div class='column'>
            <h1>Thermostat Device</h1>
            <div class='value'>
                Temperature: ${temperature:0} °C
            </div>
            <div class='description'>
            </div>
        </div>
        <img height="80px" src="http://icons.iconarchive.com/icons/iconsmind/outline/512/Temperature-icon.png" alt="Temperature icon">
    </div>
</div>
Other places
- Step 1. Choose a Timeseries Bar Chart.
- Step 2. Specify an alias and telemetry key.
- Step 3. Open Advanced tab and set translation for the X axis title - {i18n:custom.my-widget.name}. Save all settings.
- Step 4. View translated X axis title.
 
       
       
       
      Video Tutorial
See video tutorial below for step-by-step instruction how to use this feature.
Next steps
- 
    Getting started guides - These guides provide quick overview of main ThingsBoard features. Designed to be completed in 15-30 minutes. 
- 
    Installation guides - Learn how to set up ThingsBoard on various available operating systems. 
- 
    Connect your device - Learn how to connect devices based on your connectivity technology or solution. 
- 
    Data visualization - These guides contain instructions on how to configure complex ThingsBoard dashboards. 
- 
    Data processing & actions - Learn how to use ThingsBoard Rule Engine. 
- 
    IoT Data analytics - Learn how to use rule engine to perform basic analytics tasks. 
- 
    Hardware samples - Learn how to connect various hardware platforms to ThingsBoard.