Не совсем.Компилятор 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 использовать имя исходного кода объекта при сопоставлении с вводом игрока, поскольку вы не хотите, чтобы английское имяматч в переведенной игре.