Adding Russian localization.

Hoochie
Hoochie · 16 days ago

Boss, if you update the mod, please add Russian localization to the others, I'm attaching the file.

Although some locales are not used, I did not find where they are used.

{
    "4x4 zipper with specific port count": "Распределитель 4x4 с определённым количеством портов",
    "Allows to sort selected fluid products to a separate port.": "Позволяет отсортировать выбранную жидкость в отдельный боковой порт.",
    "Flat balancer (large)": "Балансировщик лент (большой)",
    "Flat balancer (long)": "Балансировщик лент (длинный)",
    "Flat balancer (small)": "Балансировщик лент (малый)",
    "Four way balancer. Can connect to other balancers.": "4-х портовый балансировщик. Можно подключать к другим балансировщикам.",
    "Four way balancer.": "4-х портовый балансировщик.",
    "large zipper with specific port count": "большой распределитель с определённым количеством портов",
    "long zipper with specific port count": "длинный распределитель с определённым количеством портов",
    "Molten balancer (large)": "Термостойкий балансировщик (большой)",
    "Molten balancer (long)": "Термостойкий балансировщик (длинный)",
    "Molten balancer (small)": "Термостойкий балансировщик (малый)",
    "Multi-port balancers and sorters": "Много портовые балансировщики и сортировщики",
    "Pipe balancer (large)": "Балансировщик труб (большой)",
    "Pipe balancer (long)": "Балансировщик труб (длинный)",
    "Pipe balancer (long, connectable)": "Балансировщик труб (длинный, подключаемый)",
    "Pipe balancer (small)": "Балансировщик труб (малый)",
    "Pipe sorter": "Сортировщик жидкостей",
    "Small machine that allows sorting of fluid products": "Небольшое устройство для сортировки жидких продуктов",
    "small zipper with specific port count": "малый распределитель с определённым количеством портов",
    "Twelve way balancer (long). Can connect to other balancers.": "12-ти портовый балансировщик (длинный), размером 4×2. Можно подключать к другим балансировщикам.",
    "Twelve way balancer (long).": "12-ти портовый балансировщик (длинный), размером 4×2.",
    "Twelve way balancer.": "12-ти портовый балансировщик, размером 3×3.",
    "U-shape balancer (large)": "Балансировщик жёлоба (большой)",
    "U-shape balancer (long)": "Балансировщик жёлоба (длинный)",
    "U-shape balancer (small)": "Балансировщик жёлоба (малый)"
}
wtmxhyy
wtmxhyy · 15 days ago

image.png
游戏mod有translations目录,如果没有ru语言支持,你只要用txt创建一个ru.json文件然后复制你的内容即可.
只要mod宣称支持了国际化,就代表你可以把所有游戏支持的语言都按照这个格式放进文件.

mod会自动识别会自动调用游戏api进行翻译显示.

所谓,提供国际化支持,不是要作者对每一个语言都提前翻译好,而是在代码底层显示层面使用了能够支持国际化语言的方案.

而用户根据个人所在区域语言需求完全可以自定义出自己要显示翻译的内容.这叫本地化.

在游戏中其 LocStr被游戏自己的翻译系统识别.但是很遗憾,这种写法不支持mod!

而mod作者发挥了奇思妙想,加入了一个ModTranslation.cs

有了这个文件,就是一个桥梁,他可以让游戏的界面文字被导出由翻译系统识别用户机器的系统语言,查找指定翻译目录里面对应国家的语言文件数据,一对一的显示.

LocStr("name") 在游戏里面显示英文name.但是mod如果这么写,用户只能看到英文,而以前只能通过反编译本地化手段每次都要反编译一次才行.

使用ModTranslation.Get("name")告诉游戏显示翻译后的name

那么他就不再受英文的束缚,而各个国家对于mod作者来说并不熟悉.要让mod作者挨个对每个国家都做到一对一的精确翻译那是不现实的事情.

国际化代码实现,使得社区活跃起来,大家都能非常容易的翻译成自己的语言,而不比受到限制.

我的mod都宣称支持国际化,如果没有还会后续更新中逐步实现国际化.

默认支持中文和英文.你发现了我虽然有的mod支持了多国语言但是后续更新不会更新语言包,因为那是极其没有必要的复杂操作.

作者更加关注代码的迭代,而语言翻译问题,用户可以手动自己解决.

使用规则简单,你是要俄文就ru,你是要德文就de.当然还有很多国家,你只要根据国家简写的前面2位英文字母来写文件名,后缀json就行.

而文件是txt格式,仿照en格式作为样板就可以了,如果非要最新的就用中文的zh里面英文键一行一行对照即可.

永远是英文翻译成本国语言.

希望我解释你能理解.这一步是留给用户自己决定的,作者提供的是国际化,而不是必须要绝对支持某个语言.毕竟维护十多个mod还要顾及各个国家语言,这个压力太大😰

Game mods come with a translations folder. If Russian language support is missing, simply create a ru.json file via a text document and paste your content into it.
If a mod states it supports internationalization, this means you can add files for all languages supported by the game following this format.

The mod will automatically detect these files and call the game’s API to render translated text.

Offering internationalization support does not require mod authors to pre-translate content for every language. Instead, it means the underlying display code adopts a framework compatible with multilingual internationalization.

Users can fully customize translated text to match their regional language preferences, a process known as localization.

In the base game, the LocStr function is recognized by the game’s native translation system. Unfortunately, this syntax does not work for mods!

Mod developers devised a clever workaround by adding a ModTranslation.cs file.

This file acts as a bridge: it exports the game’s UI text, lets the translation system detect the operating system language of the user’s device, retrieves matching language file data from the designated translations folder, and displays text with one-to-one correspondence.

LocStr("name") renders the English word "name" in-game. If mods use this syntax, users will only see English text. Previously, users had to decompile the mod repeatedly to apply localization patches.

Calling ModTranslation.Get("name") instructs the game to display the translated version of the text labeled "name".

This removes the limitation of English-only text. However, mod authors cannot be familiar with every language worldwide, and it is impractical to expect them to produce precise, one-to-one translations for every country individually.

The implementation of internationalization code revitalizes the community, allowing anyone to easily translate mods into their native language without unnecessary restrictions.

All of my mods declare internationalization support; any mods that lack this feature will receive it gradually in future updates.

Chinese and English are supported by default. You may notice that even though some of my mods include multi-language support, I will not update language packs in subsequent patches, as this would introduce unnecessary and cumbersome maintenance work.

As a developer, my primary focus is code iteration; users can manually handle translation adjustments on their own.

The naming rules are straightforward: use "ru" for Russian files and "de" for German files. For all other regions, name files using the two-letter ISO country code as the filename prefix with the .json extension.

These files can be created as plain text documents, using the en language file as a template. If you require the most up-to-date reference, cross-reference each English key line-by-line against the zh Chinese language file.

All translations are mapped from the base English text to the target local language.

I hope this explanation makes sense. Language customization is left to individual users. Developers only provide internationalization infrastructure, not mandatory full support for every single language. Maintaining over a dozen mods while managing translations for every region would impose an overwhelming workload 😰

Edited 15 days ago
Vladovlak · 14 days ago

That's of course. I just want to ask, when a player sends you a translation file for their language, will you include it in the installation package the next time you update the mod?

Hoochie
Hoochie · 14 days ago

问题在于:

你看,我可以自己创建一个本地化文件,放到模组文件夹里,然后就能享受到符合游戏风格的翻译。但是!总有这个该死的“但是”!:(

为了防止翻译文件在模组更新时被删除,我不得不手动从网站下载新版本的模组,然后进入模组文件夹,解压并替换文件。如果你的模组里没有我语言的本地化文件,那我自己的翻译文件就会留在文件夹里,一切正常。我只需要根据需要定期更新就行了。

如果我是通过游戏内的“模组管理器”来更新模组,那么每次更新都会先把模组文件夹完全删除,然后再解压新版本到原来的位置。这意味着如果我文件夹里放了翻译文件,更新后它也会被一起删掉。然后我就得重新进入模组文件夹,手动把文件再加回去。

也就是说,我得:退出游戏 → 进入模组文件夹 → 找到你的模组 → 找到我放翻译文件的文件夹 → 把翻译文件复制到模组文件夹里 → 启动游戏。整个过程非常烦人,也让人恼火。

所以我觉得,最好的办法是把翻译文件交给模组作者,请他把它包含进下一个版本的模组里,然后后续如果作者添加了新文本(也就是再次把文件发给作者),就定期更新一下。这样用户就不用做那些多余的操作,也不用操心翻译的事,对作者来说也不费什么事。

所以我才请你把这个模组和那个模组的翻译文件都加进去。



Here's the problem.

Look, I can create a localization file, put it in the mod folder, and enjoy a translation that matches the game's style. BUT! There's always that goddamn BUT! :(

  1. To keep the translation file from being deleted when the mod updates, I have to manually download the new mod version from the website, go to the mod folder, and extract it with file replacement. If your mod doesn't have an existing localization for my language, my translation file will stay in the folder, and everything will be fine. I'll just need to update it as needed.

  2. If I update mods through the in-game "mod manager," any update completely deletes the mod folder first, then extracts the new version in its place. So if I had a translation file in the folder, it gets deleted after the mod updates through the game. And then I have to go back into the mod folder and add the file manually again.

So basically: exit the game → go to the mods folder → find your mod → find the folder with my translation file → copy the translation file into the mod folder → launch the game. And this will really get tedious and a bit annoying.

Therefore, it seems to me that it's better to send the translation file to the mod developer and ask them to include it in the next mod version, and then update it periodically. This way, the user is spared unnecessary actions and worries about the translation, and it's also not much work for the developer.

That's why I asked you to include the translation file, both in this mod and in the other one.

wtmxhyy
wtmxhyy · 14 days ago

😆👍我理解了,原来如此啊,非常合理.我来解决,你的文件我会原样给你更新进去😄

😅 2
wtmxhyy
wtmxhyy · 14 days ago

Vladovlak wrote:

That's of course. I just want to ask, when a player sends you a translation file for their language, will you include it in the installation package the next time you update the mod?

任何时候,只要用户提交完整可用的本地化文件,我都会给更新到mod中,作为一个版本被更新分发.并且后续版本将会持续保持这个语言的存在.

也欢迎任何其他国家语言的玩家提供国际化文件.我原本以为这是用户自定义的事情,从来没考虑过官方更新的机制会把用户的本地化文件给删除,这很抱歉.

因为中国网络限制,我从来无法游戏中更新mod,我都是在社区下载然后手动复制的,所以我从来不知道自动更新是删除原本文件的方法.😆

听了Hoochie的描述,哈哈,抱歉我忍不住笑了,这是一个极其痛苦的事情,我经历过,在COIE时期,也就是up3时代,那时候一两天就更新一次,最可恶的是,我曾经9点发布mod,游戏10点更新.然后所有代码都要重新汉化,痛彻心扉的痛感,我深有体会.

欢迎各位提供你们需要的国际化文件,我都会直接原文给你们更新进去.

Whenever users submit complete and usable localization files, I will integrate them into the mod and release them as part of an updated version. This language pack will be retained in all subsequent mod updates.

Players speaking any other languages are also welcome to submit internationalization files. I originally thought translation files were solely user-customized content and never realized the official update system would erase user-provided localization files, for which I apologize sincerely.

Due to internet restrictions in China, I have never been able to update mods in-game. I always download mod files from community platforms and copy them manually, so I had no idea automatic updates overwrite existing local files.😆

After hearing Hoochie’s account, I couldn’t help but laugh—though this is truly a frustrating ordeal I’ve endured myself. Back during the COIE UP3 era, mods received updates every one or two days. The worst part was that I would release my mod localization at 9 a.m., only for the game to push an official update an hour later at 10 a.m. This meant re-translating all code text from scratch, and I know exactly how gut-wrenching that experience is.

Everyone is welcome to send over the internationalization files they need, and I will directly add your original translation content into the mod with every update.

👍 2
36
Showing 1–6 of 6