如果我希望我的故事可以用不同的语言播放,有没有什么方法可以从故事中“提取”文本,以便将其翻译成英语以外的语言?
我在想的是像java web应用程序中的属性文件。
答案 0 :(得分:4)
不是真的。 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."
然后,您可以将所有“说”定义放在扩展名中,并通过创建扩展名的翻译版本来本地化游戏。
但是,这些替换仅适用于输出。要使与输入匹配的文本国际化 - 例如对象名称,主题和动词语法 - 您需要将相关定义和规则移动到扩展名中。
例如,对于对象名称:
[in the main game code]
The widget is a thing. It is privately-named.
[in the English extension]
Understand "widget" as the widget.
请注意使用“私人命名”来阻止Inform在匹配玩家输入时使用对象的源代码名称,因为您不希望英文名称在翻译游戏中匹配。