mill1000/midea-ac-py

Help Wanted: Add more translations

mill1000 opened this issue · 67 comments

I would like to provide additional languages for the config flow, fan speeds and swing modes.

Current Status

Currently the project has translations for:

  • български
  • Català
  • Čeština
  • 简体中文
  • Deutsch
  • English
  • Español
  • Hrvatski
  • Italiano
  • 한국어*
  • Magyar
  • Nederlands*
  • Polski
  • Português*
  • Română
  • Slovenčina
  • Your language here!
* Updates needed. Some strings may be untranslated.

How To Contribute

This file contains all the strings that need translating.
https://github.com/mill1000/midea-ac-py/blob/main/custom_components/midea_ac/translations/en.json

Only the values need to be translated. For example:

{
  "config": {
    "step": {
      "user": {
        "description": "Select how to add a device.",
        "menu_options": {
          "discover": "Discover device",
          "manual": "Configure manually"
        }
      },
{
  "config": {
    "step": {
      "user": {
        "description": "Zadajte informácie o svojom zariadení.",
        "menu_options": {
          "discover": "Objavte zariadenie",
          "manual": "Nakonfigurujte manuálne"
        }
      },

For each language, a new file should be created XX.json where XX is the language tag.

Either create a PR with the translations, or post the translations here and I will integrated them.

Thanks again.

Hi i can help with polish language. Which files need to be translated?

Excellent. Thank you very much!

The file that needs translation is this one:
https://github.com/mill1000/midea-ac-py/blob/main/custom_components/midea_ac/translations/en.json

The file contains a bunch of key-value pairs, but only the value strings need to be translated.

For each language, a new file should be created XX.json where XX is the language tag. For Polish it would be pl.json.

You can either create a PR, or just post the translations here, either is fine.

I appreciated the help.

Hey @Theo16 I don't think email attachments come through on Github. You'll probably have to attach it to a comment manually.

I would also need to be able to
translate words such as: off, horizontal, vertical, both; low, medium,
high, auto.

I thought this wasn't possible but upon reviewing the docs it may be but I'll have to run some tests

I figured out how to enable translations of swing modes and fan speeds. See #55

The following additional values need to be translated

 "entity": {
    "climate": {
      "midea_ac": {
        "state_attributes": {
          "fan_mode": {
            "state": {
              "Silent": "Silent",
              "Low": "Low",
              "Medium": "Medium",
              "High": "High",
              "Auto": "Auto",
              "Custom": "Custom"
            }
          },
          "swing_mode": {
            "state": {
              "Off": "Off",
              "Vertical": "Vertical",
              "Horizontal": "Horizontal",
              "Both": "Both"
            }
          }
        }
      }
    }
  }

Spanish (es_ES):

 "entity": {
    "climate": {
      "midea_ac": {
        "state_attributes": {
          "fan_mode": {
            "state": {
              "Silent": "Silencioso",
              "Low": "Bajo",
              "Medium": "Medio",
              "High": "Alto",
              "Auto": "Automático"
            }
          },
          "swing_mode": {
            "state": {
              "Off": "Apagado",
              "Vertical": "Vertical",
              "Horizontal": "Horizontal",
              "Both": "Ambos"
            }
          }
        }
      }
    }

Also Catalan (ca_ES) if you want to add it:

 "entity": {
    "climate": {
      "midea_ac": {
        "state_attributes": {
          "fan_mode": {
            "state": {
              "Silent": "Silenciós",
              "Low": "Baix",
              "Medium": "Mitjà",
              "High": "Alt",
              "Auto": "Automàtic"
            }
          },
          "swing_mode": {
            "state": {
              "Off": "Apagat",
              "Vertical": "Vertical",
              "Horizontal": "Horitzontal",
              "Both": "Ambdós"
            }
          }
        }
      }
    }

@jmigual Thanks for the contributions! I also need the strings in this file (https://github.com/mill1000/midea-ac-py/blob/main/custom_components/midea_ac/translations/en.json) for a complete translations. Would you be able to provide that? EDIT: I also need a translation for the "Custom" fan speed.

@Theo16 Thanks! There's one more fan mode that I need translated. I forgot to include in the original post. Can you provide a translation for "Custom"?

If I understand correctly, you mean custom, i.e. a value from 1 to 100, for example? If so, the Polish equivalent is "Ręcznie". śr., 22 lis 2023 o 16:59 Tucker Kern @.***> napisał(a):

Yes exactly. Thank you very much. PR created #56

Alright here it is:

Translation Spanish: es.json
{
  "config": {
    "step": {
      "user": {
        "description": "Selecciona como añadir un dispositivo.",
        "menu_options": {
          "discover": "Descubrir dispositivo",
          "manual": "Configurar manualmente"
        }
      },
      "discover": {
        "data": {
          "host": "Anfitrión"
        },
        "description": "Deja el anfitrión en blanco para descubrir los dispositivos en la red."
      },
      "manual": {
        "description": "Introduce la información de tu dispositivo.",
        "data": {
          "id": "ID",
          "host": "Amfitrión",
          "port": "Puerto",
          "token": "Token",
          "k1": "Clave"
        },
        "data_description": {
          "token": "Token para dispositivos V3",
          "k1": "Clave para dispositivos V3"
        }
      }
    },
    "abort": {
      "already_configured": "El dispositivo ya ha sido configurado.",
      "cannot_connect": "No se pudo realizar una connexión.",
      "no_devices_found": "No se han encontrado dispositivos compatibles en la red."
    },
    "error": {
      "cannot_connect": "No se pudo realizar una connexión con esta configuración.",
      "device_not_found": "No se ha encontrado el dispositivo en la red.",
      "unsupported_device": "El dispositivo no es compatible."
    }
  },
  "options": {
    "step": {
      "init": {
        "data": {
          "prompt_tone": "Activar pitido",
          "temp_step": "Tamaño del escalón de temperatura",
          "use_fan_only_workaround": "Usar la alternativa \"solo ventilador\"",
          "show_all_presets": "Mostrar todos los preajustes",
          "additional_operation_modes": "Metodos de operación adicional",
          "max_connection_lifetime": "Tiempo de connexión máximo"
        },
        "data_description": {
          "temp_step": "Tamaño del escalón para la consigna de temperatura",
          "additional_operation_modes": "Especificar metodos de operación adicionales",
          "max_connection_lifetime": "Tiempo máximo en segundos que se usará una connexión (mínimo 30 segundos)"
        }
      }
    }
  },
  "services": {
    "set_follow_me": {
      "name": "Fijar \"sígueme\"",
      "description": "Fijar la funcion de \"sígueme\".",
      "fields": {
        "enabled": {
          "name": "Activado",
          "description": "Si \"sígueme\" debe estar activado."
        }
      }
    }
  },
  "entity": {
    "climate": {
      "midea_ac": {
        "state_attributes": {
          "fan_mode": {
            "state": {
              "silent": "Silencioso",
              "low": "Bajo",
              "medium": "Medio",
              "high": "Alto",
              "auto": "Automático",
              "custom": "Personalizado"
            }
          },
          "swing_mode": {
            "state": {
              "off": "Apagado",
              "vertical": "Vertical",
              "horizontal": "Horizontal",
              "both": "Ambos"
            }
          }
        }
      }
    }
  }
}
Translation Catalan: ca.json
{
  "config": {
    "step": {
      "user": {
        "description": "Selecciona com afegir el dispositiu.",
        "menu_options": {
          "discover": "Descobrir dispositiu",
          "manual": "Configurar manualment"
        }
      },
      "discover": {
        "data": {
          "host": "Amfitrió"
        },
        "description": "Deixa l'amfitrió en blanc per descobrir dispositius a la xarxa."
      },
      "manual": {
        "description": "Afegeix la informació del teu dispositiu.",
        "data": {
          "id": "ID",
          "host": "Amfitrió",
          "port": "Port",
          "token": "Token",
          "k1": "Clau"
        },
        "data_description": {
          "token": "Token per a dispositius V3",
          "k1": "Clau per a dispositius V3"
        }
      }
    },
    "abort": {
      "already_configured": "El dispositiu ja ha estat configurat.",
      "cannot_connect": "No s'ha pogut realitzar una connexió.",
      "no_devices_found": "No s'han trobat dispositius compatibles a la xarxa."
    },
    "error": {
      "cannot_connect": "No s'ha pogut realitzar una connexió amb aquesta configuració.",
      "device_not_found": "No s'ha pogut trobar el dispositiu a la xarxa.",
      "unsupported_device": "El dispositiu no és compatible."
    }
  },
  "options": {
    "step": {
      "init": {
        "data": {
          "prompt_tone": "Activar so",
          "temp_step": "Mida de l'escala de temperatura",
          "use_fan_only_workaround": "Utilitzar l'alternativa \"només ventilador\"",
          "show_all_presets": "Mostrar tots els preajustaments",
          "additional_operation_modes": "Mètodes d'operació addicionals",
          "max_connection_lifetime": "Temps màxim de connexió"
        },
        "data_description": {
          "temp_step": "Mida de l'escala per a la consigna de temperatura",
          "additional_operation_modes": "Especificar modes d'operació addicionals",
          "max_connection_lifetime": "Temps màxim que s'utilitzarà una connexió en segons (mínim 30 segons)"
        }
      }
    }
  },
  "services": {
    "set_follow_me": {
      "name": "Fixar \"segueix-me\"",
      "description": "Fixar la funció de \"segueix-me\".",
      "fields": {
        "enabled": {
          "name": "Activat",
          "description": "Si \"segueix-me\" s'ha d'activar."
        }
      }
    }
  },
  "entity": {
    "climate": {
      "midea_ac": {
        "state_attributes": {
          "fan_mode": {
            "state": {
              "silent": "Silenciós",
              "low": "Baix",
              "medium": "Mitjà",
              "high": "Alt",
              "auto": "Automàtic",
              "custom": "Personalitzat"
            }
          },
          "swing_mode": {
            "state": {
              "off": "Apagat",
              "vertical": "Vertical",
              "horizontal": "Horitzontal",
              "both": "Ambdós"
            }
          }
        }
      }
    }
  }
}

Thanks! I'll get these merged and cut a new release early next week.

  • Any language you want!

Hi!

I came across your work, and finally was able to set up my Fisher Comfort Plus FSAIF-CP-121AE3 (Midea) to HA.
As a thank you :) , here's a Hungarian translation:

hu.json

PRs
#57 - Spanish & Catalan
#58 - Hungarian

Here is a pt-PT for portuguese translation, same expressions may be a little bit off but I will correct them after I set my ACs and make use of this integration to get a better context.

pt.json

Thanks! I've created a PR here: #59

I'll wait to merge until you OK the translations.

Hi to all, please find attached the Croatian translation. Regards.

hr.json

Thanks!
PR here #61

Hi all, here is a Dutch translation. I've left ID, host, port, token and key in English, because I guess users will need to find this information in English as well. Thanks for the nice work!
nl.json

Thanks! PR #73

ro.json

Hello,

This is the translation file for Romanian (ro-RO) language.

Thanks! I just merged a PR that added a few new strings. Would you be able to update this translation with those strings?

Thanks! I just merged a PR that added a few new strings. Would you be able to update this translation with those strings?

Yes. I'll update the file and repost the updated one soon.

@johannes387 @lpispek @pdtgit @iscsu @jmigual @Theo16 @richbira @misa1515 @hwahyeon

If you're able to provide any translation updates as well that would be wonderful as well.

ro.json

As promised.

sk.json done

@MihaiKrieger Thanks! PR #113

Missing pl translation:

"select": {
  "horizontal_swing_angle": {
    "state": {
      "off": "Wyłączony",
      "pos_1": "Lewo",
      "pos_2": "Lewo-środek",
      "pos_3": "środek",
      "pos_4": "Prawo-środek",
      "pos_5": "Prawo"
    }
  },
  "vertical_swing_angle": {
    "state": {
      "off": "Wyłączony",
      "pos_1": "Góra",
      "pos_2": "Góra-środek",
      "pos_3": "Środek",
      "pos_4": "Dół-Środek",
      "pos_5": "Dół"
    }
  }

CRO - HRV part:

"select": {
  "horizontal_swing_angle": {
    "state": {
      "off": "Off",
      "pos_1": "Lijevo",
      "pos_2": "Lijevo-centar",
      "pos_3": "Centar",
      "pos_4": "Desno-centar",
      "pos_5": "Desno"
    }
  },
  "vertical_swing_angle": {
    "state": {
      "off": "Off",
      "pos_1": "Gore",
      "pos_2": "Gore-centar",
      "pos_3": "Centar",
      "pos_4": "Dolje-centar",
      "pos_5": "Dolje"
    }
  }

Thanks. I've have these merged and released soon

Hello! This is the translation file for the Bulgarian (bg-BG) language.
bg.json

Excellent! Thank you. PR #124

Excellent! Thank you. PR #124

I missed the configuration screen and am not 100% sure I filled it out correctly.
I especially didn't understand the meaning of "Use Fan-only Workaround" - so I didn't translate it. Is this some kind of "temporary hack"?

Also, I couldn’t find where to insert the translation of the terms: "Horizontal Swing Angle", 'Vertical Swing Angle", "Fan speed", "Filter Alert", “Display", “Purifier”?

Nevertheless, here is the RU translation.
midea-ru.json

I missed the configuration screen and am not 100% sure I filled it out correctly. I especially didn't understand the meaning of "Use Fan-only Workaround" - so I didn't translate it. Is this some kind of "temporary hack"?

Yes "Use Fan-only Workaround" is a hack that I inherited from the original project. Apparently some devices had a quirk where they'd turn on and set to "fan-only" when queried. This hack effectively disabled polling the device state and instead assumes its state.

I am not aware of any users currently using it.

Also, I couldn’t find where to insert the translation of the terms: "Horizontal Swing Angle", 'Vertical Swing Angle", "Fan speed", "Filter Alert", “Display", “Purifier”?

Nevertheless, here is the RU translation. midea-ru.json

Thanks. I appreciate it.

Looks like you found the "Horizontal Swing Angle", 'Vertical Swing Angle" and "Fan speed" terms.

I have not setup translations for "Filter Alert", “Display", and “Purifier” yet.

PR #154

Yes "Use Fan-only Workaround" is a hack that I inherited from the original project. Apparently some devices had a quirk where they'd turn on and set to "fan-only" when queried. This hack effectively disabled polling the device state and instead assumes its state.

I'll keep this in mind.

Looks like you found the "Horizontal Swing Angle", 'Vertical Swing Angle" and "Fan speed" terms.

I found the states, but not the term itself.

2024-07-01_19-32-49

I have not setup translations for "Filter Alert", “Display", and “Purifier” yet.

It would be cool if you added this. There are languages ​​in which the Latin alphabet does not look very beautiful.

I found the states, but not the term itself.

Ah. In the case of horizontal and vertical swing angle you should be able to do this with the following form right now.

      "vertical_swing_angle": {
        "name": "Vertical Swing Angle",
        "state": {
          "off": "Off",
          "pos_1": "Top",
          "pos_2": "Top-center",
          "pos_3": "Center",
          "pos_4": "Bottom-center",
          "pos_5": "Bottom"
        }
      }

The rest will require some updates

@KVinS #155 should enable you to translate the remaining entities

@KVinS #155 should enable you to translate the remaining entities

Thanks!
I didn't know what to do with "purifier" for me it "Air Magic+" so I chose the most neutral term “air purification”.

midea-ru2.json

I would also like to point out that it is not obvious to me as a user what “max_connection_lifetime” and “use_fan_only_workaround” are (what it will influence).

And it’s not clear what to enter in “additional_operation_modes”.

I also don’t understand what “show_all_presets” affects.

By the way, wouldn’t it be more logical to move the beep enabled to the display panel?

pl.json
Updated polish translation.

By the way, wouldn’t it be more logical to move the beep enabled to the display panel?

Considered it once, but the beep setting is stateless so it didn't make sense as an entity to me.

pl.json Updated polish translation.

@Theo16 Thanks! PR #156 I noticed you didn't translate the names of "Filter alert", "Fan speed", "Horizontal swing angle", and "Vertical fan angle". Was that intentional?

Sorry my mistake. Here is new file.
pl.json

Hi mill1000, attached you'll find the updated Dutch translation.
nl.json

@johannes387 Awesome. Thank you.

@mitakvd @lpispek @v1k70rk4 @richbira @MihaiKrieger @jmigual @misa1515
Entity names can now be translated if any of you feel inclined to update your respective translations.

@johannes387 Awesome. Thank you.

@mitakvd @lpispek @v1k70rk4 @richbira @MihaiKrieger @jmigual @misa1515 Entity names can now be translated if any of you feel inclined to update your respective translations.

Hi Tucker,
Here you go, done my part.
ro.json

Thanks!

Please find attached the translated parts, if something is missing please let me know:

"binary_sensor": {
  "filter_alert": {
    "name": "Upozorenje o filteru"
  }
},
"number": {
  "fan_speed": {
    "name": "Brzina ventilatora"
  }
},

"sensor": {
  "indoor_temperature": {
    "name": "Unutarnja temperatura"
  },
  "outdoor_temperature": {
    "name": "Vanjska temperatura"
  }
},
"switch": {
  "display": {
    "name": "Zaslon"
  },
  "purifier": {
    "name": "Pročistač"
  }

@lpispek Thanks a lot! Do you want to provide translation for the following entites as well?

"name": "Horizontal swing angle",
"name": "Vertical swing angle",

@lpispek Thanks a lot! Do you want to provide translation for the following entities as well?

"name": "Horizontal swing angle",
"name": "Vertical swing angle",

Please find the translated entities. Thank you for the info.

"name": "Horizontalni kut zakretanja",
"name": "Vertikalni kut zakretanja",

Thanks again!

I found there is no Chinese translation while I recommend this integration to someone, so I post one here. BTW this translation is in simplified Chinese (chs) which is used mainly in mainland China and Singapore -- And below is not enclosing traditional Chinese (cht) which is mainly used in Hong Kong, Macao and Taiwan, but sometimes will use some different characters and words.

{
  "config": {
    "step": {
      "user": {
        "description": "选择添加设备的方式。",
        "menu_options": {
          "discover": "自动添加",
          "manual": "手动添加"
        }
      },
      "discover": {
        "data": {
          "host": "地址"
        },
        "description": "置空地址栏时将尝试自动发现网络上的设备。"
      },
      "manual": {
        "description": "输入设备的配置信息。",
        "data": {
          "id": "ID",
          "host": "地址",
          "port": "端口",
          "token": "令牌",
          "k1": "密钥"
        },
        "data_description": {
          "token": "用于V3设备的令牌(Token)",
          "k1": "用于V3设备的密钥(Key)"
        }
      }
    },
    "abort": {
      "already_configured": "已存在的设备。",
      "cannot_connect": "无法连接到设备。",
      "no_devices_found": "未发现支持的设备。"
    },
    "error": {
      "cannot_connect": "无法通过配置信息进行连接。",
      "device_not_found": "未发现指定设备。",
      "unsupported_device": "该设备未被支持。"
    }
  },
  "options": {
    "step": {
      "init": {
        "data": {
          "prompt_tone": "启用蜂鸣器",
          "temp_step": "温度步进",
          "use_fan_only_workaround": "使用仅送风方案",
          "show_all_presets": "显示所有预设模式",
          "additional_operation_modes": "额外运行模式",
          "max_connection_lifetime": "最大连接有效期"
        },
        "data_description": {
          "temp_step": "温度设定的步进值",
          "additional_operation_modes": "指定额外的运行模式",
          "max_connection_lifetime": "单次连接的最大有效期(单位为秒,最短30秒)"
        }
      }
    }
  },
  "services": {
    "set_follow_me": {
      "name": "智慧眼",
      "description": "设置“智慧眼”功能。",
      "fields": {
        "enabled": {
          "name": "启用",
          "description": "是否启用“智慧眼”功能。"
        }
      }
    }
  },
  "entity": {
    "climate": {
      "midea_ac": {
        "state_attributes": {
          "fan_mode": {
            "state": {
              "silent": "静音",
              "low": "低速",
              "medium": "中速",
              "high": "高速",
              "auto": "自动",
              "custom": "自定"
            }
          },
          "swing_mode": {
            "state": {
              "off": "停止",
              "vertical": "垂直",
              "horizontal": "水平",
              "both": "双向"
            }
          }
        }
      }
    },
    "binary_sensor": {
      "filter_alert": {
        "name": "滤网报警"
      }
    },
    "number": {
      "fan_speed": {
        "name": "风速"
      }
    },
    "select": {
      "horizontal_swing_angle": {
        "name": "横向摆风",
        "state": {
          "off": "停止",
          "pos_1": "左方",
          "pos_2": "中左",
          "pos_3": "中部",
          "pos_4": "中右",
          "pos_5": "右方"
        }
      },
      "vertical_swing_angle": {
        "name": "垂直摆风",
        "state": {
          "off": "停止",
          "pos_1": "上方",
          "pos_2": "中上",
          "pos_3": "中部",
          "pos_4": "中下",
          "pos_5": "下方"
        }
      }
    },
    "sensor": {
      "indoor_temperature": {
        "name": "室内温度"
      },
      "outdoor_temperature": {
        "name": "室外温度"
      }
    },
    "switch": {
      "display": {
        "name": "面板显示"
      },
      "purifier": {
        "name": "空气净化"
      }
    }
  }
}

Thanks! PR #165.

I went with he zh-Hans language tag, some testing might be necessary to ensure I got the right one.

Noticed there is no Sloven translation, so here it is for those who might need it.
sl.json

zh-Hans

Thanks for adding the language, so below is for zh-Hant(繁體中文). As I mentioned, traditional Chinese users sometimes use different words so I changed some wordings while converting zh-Hans to zh-Hant. However, some wordings might still not suitable since I am not native speaker after all:

{
  "config": {
    "step": {
      "user": {
        "description": "選擇新增設備的方式。",
        "menu_options": {
          "discover": "自動檢索",
          "manual": "手動新增"
        }
      },
      "discover": {
        "data": {
          "host": "位址"
        },
        "description": "空置位址列時將嘗試自動檢索網路上的設備。"
      },
      "manual": {
        "description": "錄入設備的設定資訊。",
        "data": {
          "id": "ID",
          "host": "位址",
          "port": "埠號",
          "token": "權杖",
          "k1": "密鑰"
        },
        "data_description": {
          "token": "用於V3設備的令牌(Token)",
          "k1": "用於V3設備的密鑰(Key)"
        }
      }
    },
    "abort": {
      "already_configured": "已存在的設備。",
      "cannot_connect": "無法連結到設備。",
      "no_devices_found": "未發現支援的設備。"
    },
    "error": {
      "cannot_connect": "無法通過設定資訊進行連結。",
      "device_not_found": "未發現指定設備。",
      "unsupported_device": "此設備未被支援。"
    }
  },
  "options": {
    "step": {
      "init": {
        "data": {
          "prompt_tone": "啟用嗶聲",
          "temp_step": "溫度步進",
          "use_fan_only_workaround": "使用僅送風方案",
          "show_all_presets": "顯示所有預設模式",
          "additional_operation_modes": "額外執行模式",
          "max_connection_lifetime": "最大連結有效期"
        },
        "data_description": {
          "temp_step": "溫度設置的步進值",
          "additional_operation_modes": "指定額外的執行模式",
          "max_connection_lifetime": "單次連結的最大有效期(單位為秒,最短30秒)"
        }
      }
    }
  },
  "services": {
    "set_follow_me": {
      "name": "智慧眼",
      "description": "設置“智慧眼”功能。",
      "fields": {
        "enabled": {
          "name": "啟用",
          "description": "是否啟用“智慧眼”功能。"
        }
      }
    }
  },
  "entity": {
    "climate": {
      "midea_ac": {
        "state_attributes": {
          "fan_mode": {
            "state": {
              "silent": "靜音",
              "low": "低速",
              "medium": "中速",
              "high": "高速",
              "auto": "自動",
              "custom": "自定"
            }
          },
          "swing_mode": {
            "state": {
              "off": "停止",
              "vertical": "垂直",
              "horizontal": "水平",
              "both": "雙向"
            }
          }
        }
      }
    },
    "binary_sensor": {
      "filter_alert": {
        "name": "濾網報警"
      }
    },
    "number": {
      "fan_speed": {
        "name": "風速"
      }
    },
    "select": {
      "horizontal_swing_angle": {
        "name": "橫向擺風",
        "state": {
          "off": "停用",
          "pos_1": "左方",
          "pos_2": "中左",
          "pos_3": "中部",
          "pos_4": "中右",
          "pos_5": "右方"
        }
      },
      "vertical_swing_angle": {
        "name": "垂直擺風",
        "state": {
          "off": "停用",
          "pos_1": "上方",
          "pos_2": "中上",
          "pos_3": "中部",
          "pos_4": "中下",
          "pos_5": "下方"
        }
      }
    },
    "sensor": {
      "indoor_temperature": {
        "name": "室內溫度"
      },
      "outdoor_temperature": {
        "name": "室外溫度"
      }
    },
    "switch": {
      "display": {
        "name": "面板顯示"
      },
      "purifier": {
        "name": "空氣淨化"
      }
    }
  }
}

Noticed there is no Sloven translation, so here it is for those who might need it. sl.json

Excellent. Thanks. PR #168

Thanks for adding the language, so below is for zh-Hant(繁體中文). As I mentioned, traditional Chinese users sometimes use different words so I changed some wordings while converting zh-Hans to zh-Hant. However, some wordings might still not suitable since I am not native speaker after all

Thanks again! I'm sure its better than no translation at all. PR #167

pl.json

New polish ver.

Please find the Croatian translation for the new "Active Clean" feature

"self_clean": { "name": "Samo-čišćenje" } }, "button": { "self_clean": { "name": "Pokreni samo-čišćenje" }

Thanks again. There's been a lot of churn lately with the translations so I appreciate your contributions

Hi I added Czech translation in PR #197 . It is translation of current version of en.json
I also compared it with Slovak file and I discovered that Slovak is missing some deffinitions. It looks like Slovak file is outdated compared to English file.

Thanks for the contribution! It's really cool to see how many languages are being added.

Yes. There has been a lot of churn lately which has left a number of languages with missing translations for some fields.