Многоязычный интерфейс
Модераторы: Sanja, Максим Кич
- Maelstrom
- Мастер
- Сообщения: 2062
- Зарегистрирован: 26 ноя 2006, 14:19
- Откуда: г. Усть-Кирдык
- Контактная информация:
Многоязычный интерфейс
Sanja: Перенёс обсуждение из гостевой сюда.
Эххх, надо мне Барионикса поскорее переводить.
Хотя, думаю, сложностей дофига будет.
Эххх, надо мне Барионикса поскорее переводить.
Хотя, думаю, сложностей дофига будет.
Айв кнгенгах Йог-Сотот
- Максим Кич
- Администратор
- Сообщения: 1642
- Зарегистрирован: 03 дек 2006, 20:17
- Откуда: Витебск, Беларусь
- Контактная информация:
С переводом на английский сложностей не будет. Вот наоборот — это толстый пушной зверёк. Ибо падежи.Maelstrom писал(а):Эххх, надо мне Барионикса поскорее переводить.
Хотя, думаю, сложностей дофига будет.
Прохождение квеста: берётся n литров пива и студент-филолог. К филологу последовательно применяется пиво и тексты для перевода. На выходе получаем пьяного студента и переведенную на английский игру.
Альтернативный вариант прохождения (требует прокачанной харизмы): строим глазки молодой преподавательнице английского и при грамотном подходе можно получить не только перевод, но и бонусы.
Замечание: и студенты-филологи и молодые преподавательницы бывают cursed. В случае со студентом с вероятностью 1/2 игра будет переведена на албанский диалект английского, либо не переведена вовсе. В случае с преподавательницей происходит Chaotic Effect, включающий, но не ограничивающийся: телепортацию в КВД, свадьбу, встречу с отслужившим в ВДВ женихом преподавательницы, задрейненную. нервную систему и незачёт по предмету.
Dump the screen? [y/n]
- Sanja
- Администратор
- Сообщения: 791
- Зарегистрирован: 24 ноя 2006, 12:25
- Откуда: Новосибирск
- Контактная информация:
А пиво/что-то покрепче и тексты для перевода могут примениться к отслужившему ВДВ жениху преподавательницы! И далее по цепочке.
Учи английский + смотри реализацию перевода Angband. Сложностей там нету.
P.S.: Можно кстати и Сержем Алхимиком посоветоваться. У него есть практический пример русско-англоязычного проекта в виде NorseWorld.
Учи английский + смотри реализацию перевода Angband. Сложностей там нету.
P.S.: Можно кстати и Сержем Алхимиком посоветоваться. У него есть практический пример русско-англоязычного проекта в виде NorseWorld.
4 example: "Guest. All the issues / suggestions / comments on the site here."Sanja писал(а):ADB, тем не менее от http://www.google.com/language_tools?hl=ru мурашки бегут. Действительно архи-мощная вещь.
Это все объясняет
Жесть!Максим Кич писал(а):Замечание: и студенты-филологи и молодые преподавательницы бывают cursed. В случае со студентом с вероятностью 1/2 игра будет переведена на албанский диалект английского, либо не переведена вовсе. В случае с преподавательницей происходит Chaotic Effect, включающий, но не ограничивающийся: телепортацию в КВД, свадьбу, встречу с отслужившим в ВДВ женихом преподавательницы, задрейненную. нервную систему и незачёт по предмету.
Кстати, очень даже правильный подход у Сергея, в его проекте. Текст сообщений хранится в отдельном файле, что упрощает подмену языка.Sanja писал(а):P.S.: Можно кстати и Сержем Алхимиком посоветоваться. У него есть практический пример русско-англоязычного проекта в виде NorseWorld.
- Maelstrom
- Мастер
- Сообщения: 2062
- Зарегистрирован: 26 ноя 2006, 14:19
- Откуда: г. Усть-Кирдык
- Контактная информация:
Да просто тексты - это херня. Засунул в string table и спи спокойно. Конечно, большие трактаты переводить сложно, но всё таки можно. Аллаир вот, после предложения перевести им же составленные описания монстров на английский быстренько слинял в оффлайнТекст сообщений хранится в отдельном файле, что упрощает подмену языка.
А вот как быть, допустим, с сообщениями во время боя? У меня же они из туёвой хучи составных частей складываются, причём порядок и принцип построения в английской версии может быть вообще другой.
Последний раз редактировалось Maelstrom 01 июн 2007, 12:21, всего редактировалось 1 раз.
Айв кнгенгах Йог-Сотот
- Sanja
- Администратор
- Сообщения: 791
- Зарегистрирован: 24 ноя 2006, 12:25
- Откуда: Новосибирск
- Контактная информация:
Ну типа ты коде пишешь что-то вроде
Значение х, у тебя лежит в файле настроек компиляции. И в зависимости от этого значения ты можешь создать русский дистрибутив программы, либо английский. Т.е. если х = Английский, то строчка с #if х = Русский и соответсвующий ей код с выводом русского текста будет игнорироваться, а выйдет английский текст.
Ну это я разумеется несколько образно описал. Для большего просветления прочти вот эту ссылку
Код: Выделить всё
Вывести("Шмяк тя " + Monster.Name + " кувалдой, крикнул " + Hero.Name);
Вывести(Hero.Name + " makes strong punch to " + Monster.Name);
Ну это я разумеется несколько образно описал. Для большего просветления прочти вот эту ссылку
- Максим Кич
- Администратор
- Сообщения: 1642
- Зарегистрирован: 03 дек 2006, 20:17
- Откуда: Витебск, Беларусь
- Контактная информация:
Да вообще, тоже сомнительная вещь. Мне кажется, что текст хранить отдельно. У меня для каждого языка есть файлы вида:
И в коде, скажем, на открытие двери уже пишется вроде:
Вообще, хорошим тоном считается разделение кода и оформления. Хотя, предлагать свой код в качестве примера хорошего тона я бы не стал
Впрочем, и это тоже не очень хороший вариант, потому что в разных языках слова в предложении могут идти в разном порядке, поэтому надо делать поддержку шаблонов. Т.е. чтобы в файле прописывалось что-нибудь вроде:
Для английского
Для русского
Тогда действительно можно будет строить красивые и грамотные фразы на любом языке, с нормальными числительными, родами, падежами и проч.[/code]
UPD:
Только сейчас заметил, что уже было:
Код: Выделить всё
mui_you Вы
run_into_wall На вашем пути -
door_already_open уже открыта
he_open открыл
she_open открыла
it_open открыло
they_open открыли
you_open открыли
lock_picked Вы взломали замок
lockpick_failed Вам не удалось взломать замок
Код: Выделить всё
NE_PutMessage(MUI_GetFull(Sender)+' '
+MUI_GetFull(Gender+'_open')+' '
+MUI_GetFull('open_'+Name));
Впрочем, и это тоже не очень хороший вариант, потому что в разных языках слова в предложении могут идти в разном порядке, поэтому надо делать поддержку шаблонов. Т.е. чтобы в файле прописывалось что-нибудь вроде:
Для английского
Код: Выделить всё
%sender %hashave[%gender] opened %door_type door
Код: Выделить всё
%sender %open[%gender] %door_type[ablative] дверь
UPD:
Только сейчас заметил, что уже было:
Кстати, надо бы это перенести в отдельную тему по поводу муёвости рогаликов (интересно, как слово «муёвость» воспримет автоматический переводчик?»Кстати, очень даже правильный подход у Сергея, в его проекте. Текст сообщений хранится в отдельном файле, что упрощает подмену языка.
Dump the screen? [y/n]
- Sanja
- Администратор
- Сообщения: 791
- Зарегистрирован: 24 ноя 2006, 12:25
- Откуда: Новосибирск
- Контактная информация:
Так, ладно. Пожалуй выскажусь на эту тему.
1. В рогаликах нет особого смысла в разделении кода и данных для оформления интерфейса. Ибо сильный удар по читабельности кода. ("Хотя, предлагать свой код в качестве примера хорошего тона я бы не стал" (с) Кич - ну дык... ) Значит строки с выводом сообщений об атаках, смертях, эффектах и прочих событиях пишем прямо в соответствующих функциях.
2. Во внешних файлах хранить исключительно типизированную/табличную информацию, т.е. полные хар-ки монстров, вещей, рас, классов и т.п. Смотрим Angband/ToME.
3. Склонения при формировании сообщений в русском языке. Решайте сами У меня реализация следующая. В файле данных, например монстров, лежат такие строки.
А функция вывода, например, следующая
Где sklMsg - функция склоняющая слово/словосочетание/фразу в указанном падеже. В данном случае Monster.name воспримется как существительное мужского рода в единственном числе, являющееся одушевлённым. Получится "Герой наносит удар по гноллу".
Возьмём другой пример.
Т.е. мужской род, множественное число, неодушевлённый.
Получится "Герой поднимает 145 мечей".
Итого по склонениям. Если вы делаете игру в которой часто используются табличные данные в различных ситуациях. Т.е. вам приходится часто склонять некоторые слова по падежам. Есть смысл написать/отыскать модуль реализующий подобные свойства. В другом случае лучше написать пару вариантов для родительного и винительного падежей.
Позже дам ссылку на сайт с отличнейшим склонятором в исходном коде. Лучше него пока ничего не видел.
1. В рогаликах нет особого смысла в разделении кода и данных для оформления интерфейса. Ибо сильный удар по читабельности кода. ("Хотя, предлагать свой код в качестве примера хорошего тона я бы не стал" (с) Кич - ну дык... ) Значит строки с выводом сообщений об атаках, смертях, эффектах и прочих событиях пишем прямо в соответствующих функциях.
2. Во внешних файлах хранить исключительно типизированную/табличную информацию, т.е. полные хар-ки монстров, вещей, рас, классов и т.п. Смотрим Angband/ToME.
3. Склонения при формировании сообщений в русском языке. Решайте сами У меня реализация следующая. В файле данных, например монстров, лежат такие строки.
Код: Выделить всё
name="Гнолл"
grammar="м1о"
Код: Выделить всё
addMessage(hero.name + " наносит удар по "+ sklMsg(monster, padDatelnyi)
Возьмём другой пример.
Код: Выделить всё
name=Меч
grammar="м2н"
Код: Выделить всё
addMessage(hero.name + " поднимает 145 " + sklMsg(item, padVinitelnyi)
Итого по склонениям. Если вы делаете игру в которой часто используются табличные данные в различных ситуациях. Т.е. вам приходится часто склонять некоторые слова по падежам. Есть смысл написать/отыскать модуль реализующий подобные свойства. В другом случае лучше написать пару вариантов для родительного и винительного падежей.
Позже дам ссылку на сайт с отличнейшим склонятором в исходном коде. Лучше него пока ничего не видел.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 37 гостей