Что творится с переводами в снапшотах Minecraft 1.13

В снапшотах 17w47a / 17w47b из игры пропали переводы названий блоков и предметов. Поговорим о том чем это связано и когда они вернутся обратно.


Если вы уже играли в последние снашпоты Minecraft 1.13, то наверняка заметили странности с переводами. Пропали русские названия блоков и предметов, а из меню переводов исчезли все языки.

 

 

Сразу хочу сказать, что это не связанные друг с другом проблемы. И со второй всё просто — это ошибка, которая будет исправлена, и возможность выбора языка скоро вернётся в игру (по крайней мере, так мне пояснил ситуацию Эрик Брос).

А вот первая ситуация гораздо интереснее. В снашпоте 17w47a разработчики проделали очень большую работу по избавлению блоков и предметов от фиксированных идентификаторов по значениям id / data, и теперь блоки и предметы определяются по текстовыми идентификаторам, число которых теоретически неограниченно.

Кроме того, в файле переводов изменились идентификаторы строк, соответствующих блокам и предметам. Они опираются на эти новые текстовые идентификаторы и выглядят теперь так (список, естественно, сокращён):

block.minecraft.air=Air block.minecraft.barrier=Barrier block.minecraft.stone=Stone block.minecraft.granite=Granite block.minecraft.polished_granite=Polished Granite block.minecraft.diorite=Diorite block.minecraft.polished_diorite=Polished Diorite ... item.minecraft.name_tag=Name Tag item.minecraft.lead=Lead item.minecraft.iron_shovel=Iron Shovel item.minecraft.iron_pickaxe=Iron Pickaxe item.minecraft.iron_axe=Iron Axe item.minecraft.flint_and_steel=Flint and Steel item.minecraft.apple=Apple item.minecraft.cookie=Cookie item.minecraft.bow=Bow

 

Для сравнения приведу аналогичный отрывок из старого файла перевода:

tile.air.name=Air tile.barrier.name=Barrier tile.stone.stone.name=Stone tile.stone.granite.name=Granite tile.stone.graniteSmooth.name=Polished Granite tile.stone.diorite.name=Diorite tile.stone.dioriteSmooth.name=Polished Diorite .... item.nameTag.name=Name Tag item.leash.name=Lead item.shovelIron.name=Iron Shovel item.pickaxeIron.name=Iron Pickaxe item.hatchetIron.name=Iron Axe item.flintAndSteel.name=Flint and Steel item.apple.name=Apple item.cookie.name=Cookie item.bow.name=Bow

Как видите в идентификаторах блоках «tile» заменилось на «block.minecraft», а окончание «name» убралось совсем. У предметов «item» преобразовалось в «item.minecraft». Кроме того, изменился стиль написания идентификаторов блоков: раньше использовалcя «lowerCamelCase», а сейчас «snake_case».

Всё это привело к тому, что старые файлы переводов не соответствуют новым файлам в Minecraft 1.13.

Решено это будет тогда, когда разработчики более или менее определяется с со всеми текстами в игре (в т.ч. с новыми). Они выгрузят обновлённые строки на портал переводов Crowdin, а потом (я очень на это надеюсь), переконвертируют старые файлы переводов и тоже загрузят их — чтобы не пришлось переводить все блоки и предметы заново.

Иначе работы переводчикам будет очень много, а некоторые языки, где активной работы по переводам не ведётся, останутся вообще без перевода названий блоков и предметов.



Автор статьи: fromgate (Igor Fromgate)

Опубликовано: