Поддержка нескольких языков в рогалике
Модераторы: Sanja, Максим Кич
Поддержка нескольких языков в рогалике
Всем доброго времени суток. Возник вопрос по сабжу - как лучше реализовать? Пока что даже не знаю, с какой стороны подойти, а текст уже пошел по-тихоньку и хочется сразу сделать поддержку нескольких языков, чтобы потом не выковыривать тексты изо всех щелей. Что посоветуете? Базу данных, бинарники, эксель, просто текстовые файлы? Или вообще не заморачиваться и кидать везде словари с ключами 'ru', 'en' и т. д.? пишу на пайтоне. Подробностей не нужно, просто указать направление, дальше гуголь поможет. Заранее спасибо за помощь
Re: Поддержка нескольких языков в рогалике
python i18n.
хотя что-то пример у них странно выглядит, в рубёвом можно было, но как в питоне принято я не знаю.
хотя что-то пример у них странно выглядит, в рубёвом можно было
Код: Выделить всё
t.device.fail(sys.genitive)
- Apromix
- Мастер
- Сообщения: 1236
- Зарегистрирован: 04 июл 2011, 10:44
- Откуда: Украина, Черновцы
- Контактная информация:
Re: Поддержка нескольких языков в рогалике
Как это реализовано на пайтоне?
Re: Поддержка нескольких языков в рогалике
Спасибо, заценимpython i18n.
Например:Как это реализовано на пайтоне?Или вообще не заморачиваться и кидать везде словари с ключами 'ru', 'en' и т. д.?
Код: Выделить всё
text = {'ru': 'Инвентарь', 'en': 'inventory'}
print(text[language])
text - словарь, доступ идет по ключу
text['language'] выдаст 'inventory', если text = 'en' и 'инвентарь, если' = 'ru'
Подробнее https://pythonworld.ru/tipy-dannyx-v-py ... varej.html
Re: Поддержка нескольких языков в рогалике
Мое мнение - текст должен подгружаться из внешних файлов, например при инициализации игры. Соответственно можно просто загружать текст из разных файлов, из русского, английского, немецкого или какой там еще понадобится.
И это будет удобно при разработке игры - чтобы изменить какие-то фразы и описания, их не придётся искать во всем проекте, а для C++ потом еще и перекомпиляция понадобилась бы.
И это будет удобно при разработке игры - чтобы изменить какие-то фразы и описания, их не придётся искать во всем проекте, а для C++ потом еще и перекомпиляция понадобилась бы.
- Apromix
- Мастер
- Сообщения: 1236
- Зарегистрирован: 04 июл 2011, 10:44
- Откуда: Украина, Черновцы
- Контактная информация:
Re: Поддержка нескольких языков в рогалике
Ничего нового не скажу, но все же При старте программы (и если в меню есть смена языка, то и там тоже) загружать из файла вида "russian.*" в массив. А дальше исп. в коде как хеши, по фразе на английском языке. Достаточно удобно. Если не исп. свой велосипед, тогда однозначно gettext.
Текстовый файл удобно переводить на др. языки, если в нем идут ключи вида "Pickup all items=Поднять все предметы". В коде не нужно ничего комментить, он и так остается читабельным, так как строка на английском. Если языка нет (нет перевода), то исп. дефолтные фразы на английском. Вот как у меня
Текстовый файл удобно переводить на др. языки, если в нем идут ключи вида "Pickup all items=Поднять все предметы". В коде не нужно ничего комментить, он и так остается читабельным, так как строка на английском. Если языка нет (нет перевода), то исп. дефолтные фразы на английском. Вот как у меня
- Jesus05
- Сообщения: 1840
- Зарегистрирован: 02 дек 2009, 07:50
- Откуда: Норильск, сейчас Санкт-петербург.
- Контактная информация:
Re: Поддержка нескольких языков в рогалике
Если в твой файл вначале добавить "Language=Русский" и во время запуска проверять папку, загружать все текстовые файлы которые содержат подобную строку и добавлять в менюшку с выбором языка.
Re: Поддержка нескольких языков в рогалике
Почитал про gettext, кажется, то, что надо! Спасибо за помощь, пойду курить мануалы))
- Apromix
- Мастер
- Сообщения: 1236
- Зарегистрирован: 04 июл 2011, 10:44
- Откуда: Украина, Черновцы
- Контактная информация:
Re: Поддержка нескольких языков в рогалике
Я уже запихнул в свой проект gettext. За пример взял вот этот проект на дельфи. Спасибо, karagy, за наводку
Re: Поддержка нескольких языков в рогалике
Вот так и убеждаешься, что всё нужное уже написано и не стоит изобретать велосипед. Тоже не знал про Gettext.
- Apromix
- Мастер
- Сообщения: 1236
- Зарегистрирован: 04 июл 2011, 10:44
- Откуда: Украина, Черновцы
- Контактная информация:
Re: Поддержка нескольких языков в рогалике
Я давно знал его, просто меня нужно было хорошенько пнуть А вот тут хороший онлайновый редактор для gettext
- Uvadzucumi
- Сообщения: 365
- Зарегистрирован: 29 ноя 2011, 07:13
- Откуда: Дубай, ОАЭ (Минск, Беларусь)
- Контактная информация:
Re: Поддержка нескольких языков в рогалике
Писал, когдато, статью по gettext о локализации приложений, на примере cataclysm. еcли кому интересно: http://uvadzucumi.blogspot.ae/2012/03/gcc-gettext.html
зы. оказывается 5 лет назад писал. а кажется что совсем недавно
зы. оказывается 5 лет назад писал. а кажется что совсем недавно
Меня окружали милые, добрые люди... медленно сжимая кольцо
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 35 гостей