Это возможно с помощью Inform 7 - PullRequest
3 голосов
/ 09 марта 2011

Если я хочу, чтобы моя история могла воспроизводиться на разных языках, есть ли способ «извлечь» текст из истории, чтобы перевести его на другие языки, кроме английского?

Я имею в виду что-то вроде файлов свойств в веб-приложениях Java.

1 Ответ

4 голосов
/ 26 апреля 2011

Не совсем.Компилятор Inform 7 делает кое-что из этого сам: когда он переводит код в Inform 6, он извлекает все строковые литералы как директивы Constant в сгенерированном коде.Но редактирование сгенерированного кода просто вызывает проблемы, если вы не уверены на 100%, что игра закончена и никогда не будет редактироваться в I7.

Вы можете попробовать интернационализировать игру вручную, переместив все строковые литералыподстановочные фразы.Таким образом, вместо:

Home is a room. "This is your house."

У вас будет:

Home is a room. "[home description]".

To say home description: say "This is your house."

Затем вы можете поместить все эти определения «сказать» в расширение и локализовать игру, создав переводные версии.расширения.

Однако эти замены работают только для output .Чтобы интернационализировать текст, сопоставляемый с игроком input - например, именами объектов, темами и грамматикой глаголов - вам нужно переместить соответствующие определения и правила в расширение.

ДляНапример, для имени объекта:

[in the main game code]
The widget is a thing. It is privately-named.

[in the English extension]
Understand "widget" as the widget.

Обратите внимание на использование «private-named», чтобы запретить Inform использовать имя исходного кода объекта при сопоставлении с вводом игрока, поскольку вы не хотите, чтобы английское имяматч в переведенной игре.

...