5

如果我希望我的故事可以用多种语言播放,有没有办法从故事中“提取”文本以便将其翻译成英语以外的其他语言?

我想的是类似于 java web 应用程序中的属性文件。

4

1 回答 1

5

并不真地。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要将与玩家输入匹配的文本(例如对象名称、主题和动词语法)国际化,您需要将相关定义和规则移动到扩展中。

例如,对于对象名称:

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

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

注意在匹配玩家输入时使用“privately-named”来阻止 Inform 使用对象的源代码名称,因为您不希望英文名称在翻译后的游戏中匹配。

于 2011-04-25T22:40:15.967 回答