Best way to add alternate phrasings to phrases

I’m wondering what is the best way to add alternate forms for phrases, memory- and speed-wise. Suppose I have this code (the phrases are just random words):

[code]To do (T - a thing) something very complicated:
[lots of intructions in here].

[first way of adding a rephrasing]
To do something really convoluted on (T - a thing):
do T something very complicated.

[second way]
To do something really convoluted on (T - a thing):
[copy paste the instructions from the first phrase here].[/code]Is the first way slower because it calls the original phrase? Does the second makes the game bigger, because it duplicates the code? The second is harder to maintain too, because if you change the code in the first phrase, you should not forget to modify the rephrasing too. And finally, are the answers to these questions different if the phrase consists of an I6 inclusion?

I think the impacts of both ways are negligible, but I want to know because what I’m doing is basically adding a French translation for every phrases defined in the Standard Rules, and I think it matters, then.

Or maybe there is an official way to translate phrases ? I don’t think there is, though.


Yes and yes. But the cost is really minuscule. A typical Inform command goes through hundreds or even thousands of function calls, so adding one more is not worth worrying about. And Glulx game files can get really big.

So maintainability is the prime consideration here.

When an I6 phrase is called from I7, it is inlined – no function call is generated.

If there is any difference it’s so minuscule that there’s no point in sacrificing maintainability.

That said, are there really that many phrases in the Standard Rules that have translatable text? I could find only two (“To say here” and “To say now”). EDIT: you’re probably translating the phrase names themselves so nevermind.

OK, that’s what I thought. I’ll keep doing the way I’ve done then.

To Juhana: yeah, I’m translating the phrases themselves, so that for example, “choose row (N) of (table name)” becomes “choisir la ligne (N) du (table name)”.

I’m really looking forward to the moment when everything in Inform will be translatable!