Локализация своей игры в unity // Перевод на разные языки

preview_player
Показать описание
В этом ролике я показао как сделать локализацию, или другими словами перевод вашей игры на разные языки в юнити.

Рекомендации по теме
Комментарии
Автор

Топорный способ, так как текст нужно писать сразу. Не проще это сделать по ключам с подгрузкой и чтением с облака, либо с какого то файла? Если игра большая и ты сразу все не прописал, придется по всем объектам бегать и вставлять тексты, а так на каждый ключ в одном месте ставишь текст. Хотя там за 2 минуты не объяснишь. Скажу свое мнение способ хороший для локализации небольших проектов без сюжета, но там где много текста будет неудобно. Определенно лайк.

GbyGRus
Автор

Спасибо вам большое! Думал думал, не мог сделать локализацию в своей игре, но встретил ваш ролик, и у меня всё получилось.☺️

gavkazz
Автор

Спасибо труды автору, но хранить локализацию в самих префабах такое себе решение. Что будет, если в проектах будут 10000 префабов с текстом и вы решите добавить новую локаль ? Придется проходится и всем добавлять ручками новую запись ?? Ахренеете. Добавлять нужно Уникальный ключ, и по ключу уже в таблице локализации искать и подставлять текст, и когда добавляется новая локаль, то она добавляется как поле в таблице всего лишь. Ну и релоад сцены это тоже тумач, просто нужен ивент который каждый скрипт текста слушает и обновит своей текст, когда мы меняем локализацию в натсройках.

lblvsqv
Автор

под текстмешпро придётся переписать скрипт
using TMPro;
а текст используем так TextMeshProUGUI

KrabovayPolochka
Автор

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

_mirai
Автор

Первое. Название функции должно содержать в себе глагол (e.g. SetLanguage).
Второе. Зачем для каждого текстового компонента обрашаться к PlayerPrefs? Это затратно для производительности и ничем не оправдано - переменную language следует вынести в статический клаасс и обпащаться к ней.
Третье. Менять каждый раз локализацию через текст в инспекторе неудобно, особенно при многоуровневой иерархии.
Собственно, в свой проект лучше не пускать код как на 1:57, а завести класс, в котором будут храниться локализации в Dictionary, прочитанные из файла, и получать уже оттуда вида + " " + health

iPod
Автор

Ролик очень полезный! Подписан везде, оставляю коммент в поддержку канала, ну и лайк!

Milash
Автор

Хей Юпитер отличное и полезное видео с началом летом тебя!

World_Cuts
Автор

Привет Юпитер! Спасибо, очень полезно для новичков!

blackhats_games
Автор

Проходя каждую часть ГТА я сначала полностью читал диалоги, а только потом ехал выполнять задание. Но к сожалению были миссии не позволяющие так делать ибо нужно было действовать непременно. Потом я узнал, что в меню есть окошко, где в текстовом виде хранятся все диалоги от недавних до самых начальных. И с тех пор я ехал выполнять задание не обращая внимания на субтитры, а после прохождения миссии заходил в меню и читал, что же там за xyйня происходила конкретно.

Я за локализацию, даже если она будет одноголосая.

Dmitriy_Tkachenko
Автор

Как по мне этот способ очень помогает, самое главное переводит игру на другие языки. А вот то что можно сделать его как-то по-другому, более по крутому, профисиональному, это уже другое дело, более сложное

ifthrvn
Автор

Не работает, сцену перезагружает, хотя это как раз не нужно, а вот текст не меняется, выводит ошибку NullReferenceException: Object reference not set to an instance of an object и я не знаю что это, все перепроверил, должно работать, но нет

kami
Автор

Бро, как в Photon сделать чтобы у всех игроков скрывался и показывался объект когда использую SetActive?

qmxqbbi
Автор

"КоММентарий". С двумя "М".

mrsasha
Автор

Почему просто не использовать пакет Localization от Unity ? Чем он хуже?

KadVin
Автор

Ну, я бы сказал что этот способ локализации не такой уж и топорный, но в ролике он реализован довольно костыльно

JavaSqr
Автор

Не, этот метод ооочень странный. Надеюсь, что есть другие способы, как например на движке Renpy, чтобы для каждой строки в игре существовала ссылка на переведённую фразу.
Допустим я сделал перевод и хочу отдать его автору, чтобы он встроил его в игру. Если считать по строкам. то это, вероятно, 15-20к строк. Но может больше.
И что, ему каждую строку вручную вбивать? Ему ещё нужно найти соответствующую строку.
А если языков несколько?
А потом ещё заново игру собирать.
наверное этот метод подойдёт для очень маленьких игр, где мало текста. Но это не универсальный способ

spanev
Автор

Легендарный проект про который знают 3 человека :)

ViseProject
Автор

Привет. Интересный способ, но неудобный. По такому принципу работает ассет "Lean Localization", который, при этом имеет также кучу дополнительных возможностей

Ghost_gamedev
Автор

Зачем писать свои костыли когда в unity уже есть свой пакет для локализации он очень удобный и многофункциональный. Он позволяет обрабатывать не только текст, но и текстуры. звуки и многое другое!

brickman