Как сделать переключение языков
|
|
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 |
постоянный участник
Сейчас нет на сайте
| Я когда делал такое то просто запилил отдельный скрипт, который срабатывал при запуске и переключении языка. Он забивал текущий массив строк строками нужного языка, и все Никакой магии, все банально донельзя. Конечно если у тебя 10к разных строк, то способ врядли подойдет, но у меня их было что то в районе 50 и мне хватило.
Ghaarp
The soul lighter(Android, logic)
Zzzzombie RAGE!!!(For android)
|
|
| |
Saitei | Дата: Вторник, 05 Мая 2015, 09:35 | Сообщение # 9 |
старожил
Сейчас нет на сайте
| Цитата harmoxyne ( ) делаешь ты огромный проект, с огромной аудиторией В огромных проектах обычно используются специальные инструментарии для подобных целей.
|
|
| |