如果我希望我的故事可以使用多种语言播放,是否有任何方法可以从故事中“提取”文字以将其翻译成英语以外的其他语言?
我在想什么,就像Java Web应用程序中的属性文件一样。
最佳答案
并不真地。 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.
请注意,在与玩家输入匹配时,请使用“私有(private)名称”来阻止Inform使用对象的源代码名称,因为您不希望英文名称在翻译的游戏中匹配。
关于internationalization - i18n与Inform 7可能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5247651/