Воскресенье, 22 Декабря 2024, 16:03

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Как сделать переключение языков
VAsKAДата: Понедельник, 04 Мая 2015, 20:13 | Сообщение # 1
частый гость
Сейчас нет на сайте
Всем привет.Вот задался вопросом:Как сделать переключение языков в игре?!
В играх, как правило есть несколько языков.И как же мне сделать переключение, создать глобальные и с помощью их что-то попытаться сделать.
Кто может помочь? Эта тема думаю интересна многим))
harmoxyneДата: Понедельник, 04 Мая 2015, 20:26 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
Пользуешься строками.
При выборе языка загружаешь из файла локализации нужные строки.
Все ведь просто и лежит на поверхности.
FadeBakerДата: Понедельник, 04 Мая 2015, 20:34 | Сообщение # 3
JavaSE Game Developer
Сейчас нет на сайте
Попробую вкратце пояснить. Значит, смотри. Создаешь объект objLanguage, в нем прописываешь переменные, содержащие текст (их будешь использовать везде в коде). К примеру:
Код
global.textStartGame = "";
global.textSettings = "";
global.textWeapon = "";
globalvar language;
language = 0;


Потом создаешь файл с названием lang.txt (можно и любое другое расширение). Его содержание должно быть примерно такого формата:
startGame = Start game, Начать игру
settings = Settings, Настройки
weapon = Weapon, Оружие
Где первое слово — ключ, а последующие — непосредственно сам текст (английский и русский соответственно).

Далее тебе нужно открыть этот файл и спарсить текст (как это делается, я рассказывать не буду, на форуме полно мануалов по работе с файлами). В процессе парсинга присваиваешь твоим текстовым переменным текст нужного языка, который определен переменной language (0 — английский, 1 — русский).
И потом, там где нужно рисовать текст, подставляешь эти переменные. Например:
Код
draw_text(x, y, textStartGame);


Как-то вот так.


Уроки по GM
Minecraft 2D на GM
— Мои проекты —
Blood Harvest [2D] — Original
Blood Harvest [2D]: Remastered Edition
Adventure Craft [2D] — Sandbox
Space Shock [2D] — Scroll Shooter
Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.
harmoxyneДата: Понедельник, 04 Мая 2015, 21:17 | Сообщение # 4
заслуженный участник
Сейчас нет на сайте
Цитата FadeBaker ()
startGame = Start game, Начать игру
settings = Settings, Настройки
weapon = Weapon, Оружие

ИМХО, не удобно.
Лучше для каждого языка отдельный файл делать. Не придется парсить лишние строки каждый раз.
FadeBakerДата: Понедельник, 04 Мая 2015, 22:12 | Сообщение # 5
JavaSE Game Developer
Сейчас нет на сайте
harmoxyne, как по мне, так удобно хранить все в одном месте. У меня такая же система локализации была реализована в Blood Harvest (в версии 1.3).

Уроки по GM
Minecraft 2D на GM
— Мои проекты —
Blood Harvest [2D] — Original
Blood Harvest [2D]: Remastered Edition
Adventure Craft [2D] — Sandbox
Space Shock [2D] — Scroll Shooter
Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.
harmoxyneДата: Понедельник, 04 Мая 2015, 22:37 | Сообщение # 6
заслуженный участник
Сейчас нет на сайте
FadeBaker, конечно, в небольших проектах нормально, но теперь представь: делаешь ты огромный проект, с огромной аудиторией. Аудитория многоязычна, а ты, допустим, знаешь совсем мало языков. Тебе надо отдать проект на перевод другим людям. И что им теперь, разорвать один файл? (конечно, давать сухие фразы на локализацию могут только бесславные ублюдки, но все же пример, мне кажется, яркий)
FadeBakerДата: Понедельник, 04 Мая 2015, 23:02 | Сообщение # 7
JavaSE Game Developer
Сейчас нет на сайте
harmoxyne, я это прекрасно понимаю, но в том и дело, что у топикстартера проект явно не коммерческих масштабов, поэтому и нет особой нужды разбивать локализацию на несколько файлов. Но тут дело личного предпочтения и оценки уместности использования того или иного варианта. Я лишь предложил свой вариант.

Уроки по GM
Minecraft 2D на GM
— Мои проекты —
Blood Harvest [2D] — Original
Blood Harvest [2D]: Remastered Edition
Adventure Craft [2D] — Sandbox
Space Shock [2D] — Scroll Shooter
Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.
XDominatorДата: Вторник, 05 Мая 2015, 08:53 | Сообщение # 8
постоянный участник
Сейчас нет на сайте
Я когда делал такое то просто запилил отдельный скрипт, который срабатывал при запуске и переключении языка. Он забивал текущий массив строк строками нужного языка, и все smile Никакой магии, все банально донельзя. Конечно если у тебя 10к разных строк, то способ врядли подойдет, но у меня их было что то в районе 50 и мне хватило.

Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)
SaiteiДата: Вторник, 05 Мая 2015, 09:35 | Сообщение # 9
старожил
Сейчас нет на сайте
Цитата harmoxyne ()
делаешь ты огромный проект, с огромной аудиторией

В огромных проектах обычно используются специальные инструментарии для подобных целей.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг