Owners of Xiaomi equipment often face a situation where the device comes with a limited set of languages, especially for robot vacuum cleaners bought in Chinese sites. Standard firmware may not contain Russian or Ukrainian, which creates discomfort when driving.
The localization process requires attention and a basic understanding of file structure, and you will work with text data and system settings of the Mi Home app, and if you are willing to experiment with your gadgetβs software, this instruction will be an indispensable tool for customization.
Creating your own translation is not only a way to improve usability, it's also an opportunity to customize the interface to you. Customization allows you to correct machine translation inaccuracies or add specific terms. Let's figure out how to turn a standard device into a personalized tool.
Tools and software development
Before you start editing system files, you need to prepare a work environment, you need a computer running Windows, macOS or Linux, and you need a robot vacuum cleaner connected to a Wi-Fi network and tied to an account.
The main tool for working with firmware files will be a text editor. Don't use a standard Notepad, as it may not display the encoding correctly. VS Code or Notepad++ are the best-proven programs that highlight syntax and help avoid errors.
βοΈ Preparation for localization
To extract and implement language files, you may need access to the smartphone file system. On Android, this is done most easily through root-rights file managers or through ADB. iOS owners will have to use a computer and utilities to work with the application file system.
β οΈ Warning: Before you start any manipulation of application files, make sure you have a stable backup of the data.Incorrect editing of system files can cause the application to crash.
Search and analysis of device language files
The first step is to localize the translation files on your device. In the Mi Home app, language resources are often stored as JSON or XML files, and the path to these may vary depending on the operating system version and vacuum cleaner model.
Usually, files are in a directory associated with a particular device plugin. A plugin is a module that is loaded when you connect to a vacuum cleaner. You need to find a folder with the model name, such as vacuum.mop.p or roborock.vacuum.a15. Inside, look for files with names like locale_ru.json plainly strings.json.
If the finished files are not available, they can be extracted from the application installation package (APK And that's going to require unpacking. APK-archive and find the plugin resources. Inside, you'll find a structure of keys and values that you'll need to copy and adapt.
Where to look for Android files?
When analyzing the structure, look at the formatting "start_cleaning", You can't touch it. You can only change the values after the colon. JSON This will cause the application to stop understanding the file.
JSON Structure and Editing Rules
The language packages for Xiaomi equipment most often use the JSON format. It is a textual data format that is easy to read by a person and a machine. The basic unit here is a key-value pair. The key remains unchanged, and the value is translated into the desired language.
When editing, it is critical to follow the syntactic rules: each line should end with a comma if followed by another. The text of values should be enclosed in double quotation marks. Special characters like slashes or quotes inside the text must be escaped properly.
Letβs take an example of the correct structure:
{
"device_status": {
"cleaning": "The cleaning is coming,"
"charging": "charging,"
"sleeping": "Sleeping"
},
"errors": {
"wheel_stuck": "The wheel is stuck,"
"brush_tangle": "The brush is confused"
}
}If you add an extra comma after the last item or forget the quote mark, the entire file will become invalid. JSON validation is a mandatory step before saving. Use online services or built-in code editor features to check.
π‘
Use the "Pretty Print" or formatting feature in your code editor, which will level the indentations and make the file structure readable, making it much easier to find errors and translate the desired lines.
Pay special attention to the variables inside the text. If the original design is %s or {0}, be sure to keep it in translation. These tags are replaced by dynamic data, such as cleaning time or space.
Translation process and terminology adaptation
The most time-consuming step is direct translation. You don't have to rely on automatic translators. Technical terms in the context of robot vacuum cleaners have their own nuances. For example, "Virtual Wall" is better translated as "Virtual Wall" rather than "Digital partition".
Create match tables for the main statuses of the device, which will help consistency throughout the package. Below is a table with common terms and their correct translation:
| Original (EN) | Literal translation | Correct term (RU) | Context of use |
|---|---|---|---|
| Dock | Doc. | Charging station | Place of return |
| Mop | Swab | Wet cleaning | Mode of work |
| Suction Power | Suction force | Suction power | Motor settings |
| Carpet Boost | Carpet reinforcement | Carpet-enhanced auto-enhancement | Intellectual regimes |
When translating error messages, try to make them as clear as possible to the user: the phrase "Error 4" will not tell the owner, and "Error 4: Main wheel blocked" will immediately indicate the problem. Localization should be friendly.
Don't forget the length of the lines. The Mi Home interface may not have enough text space. If your translation is too long, it may crop or go. Try to frame your thoughts succinctly and succinctly.
Integration of the package in the Mi Home application
Once the file has been translated and checked for errors, it needs to be embedded in the system. There are several ways to do this. The easiest way to do this is to replace the file in the plugin folder, if you have root rights on Android. locale_ru.json top-up.
For iOS users or those who do not want to get root rights, there is a method of swapping through a local server or a modified version of the application, however, the most secure and modern way is to use the Plugin feature in the developer settings, if your model supports it.
If you use the direct substitution method, the algorithm of actions is as follows:
- π Find a folder with your vacuum cleaner plugins in the file system.
- π Copy the original language file to a safe location.
- πΎ Place your edited JSON file.
- π Restart the Mi Home app completely (unload from memory).
After restarting, the vacuum cleaner interface language should change. If this does not happen, check that the language of the smartphone system is set in Russian, and that the file name matches the original letter.
β οΈ Note: When you update the Mi Home app, your modified files will be overwritten with the original.
Debugging and error-solving
Even experienced users have trouble implementing language packets, and often the application simply ignores the file or displays "crazy cherries" instead of text, indicating an encoding problem.
Files must be saved in UTF-8 encryption without a BOM (Byte Order Mark). Having a BOM can cause the first key in the file to be deregarded and parsing interrupted. In most modern code editors, this can be selected when you save the file.
Common mistakes and their solutions:
- β App crashes out: Check out JSON syntactic errors (commas, brackets).
- β Text does not change: Make sure the file name and path match the original.
- β Incorrect characters: Restore the file in encoding UTF-8.
π‘
The main reason for failure is a violation of JSON syntax or a file encoding that is incorrect, and always check these two parameters first.
You can use app logs to debug it. On Android, you can do this through adb logcat. You can look for errors related to parsing json or loading locale. This will help you pinpoint where the error occurred.
Enhanced Customization Opportunities
Creating a language pack is just the tip of the iceberg. Once you understand the structure of the files, you can go further. Some users change the names of cleaning modes to more humorous ones or add their own room designations.
For example, instead of Living Room, you can write Throne Room, and instead of Kitchen, you can write Battlefield, which makes the smart home experience more personalized, and the key is not to overdo it, so you don't get confused by your own names.
You can also experiment with the length of text messages in notifications, and if the standard ones are too long, you can shorten them to just the essence, which is especially useful for those who receive notifications on smart watches.