[I7 6L02] French extension

I solved the French verbs issue. In fact, the Preform part told the participle to follow adjectival agreement rules with the subject of the verb. I removed that part, because in French, usually, the participles do not agree with the subject (when the auxilliary is “avoir”).

So the adjective part was at fault, as in the Italian extension.

The error they throw is the following (if it can help someone):

[code]# Error: No such constant as “AgreeAdjective_92”

Error: No such constant as “AgreeAdjective_93”[/code]

Have you solved the issue with french verbs and adjectives or only the one with verbs? In the first case, which are the modification to solve the problem with adjectives also in the italian extension? github.com/i7/extensions/tree/m … o%20Stella
Thank you in advance for any suggestion!

Sorry if I haven’t been clear. No, the adjectives still do not work.
I only solved the issue with the verb, by telling them not to follow the adjectival rules (so the compiler do not crash by using them).

For the adjective, when it compiles, there is a problem in the I6 code because of the constant I named above. But I do not really know I6…

Sarganar, do the adjectives work in Spanish?

yep, as far i know.

¿Could you post the minimal code that crash the compiler?

PD: AgreeAdjective_XX are i6 functions that print the adjective when you say the adaptative text [adjective], depending the DNA of the noun (or prior object).

First, you could test your preform tries with:

Test adjective (internal) with ouvert.

And second you must declare you adjective:

[code]In Spanish rojo is an adjective. [red colour]

When play begins:
repeat with item running through things in Test:
say “[the item] está muy [rojo].”. […is very [red]]
[/code]

I tried with this simple Preform (the simplest one I can think of, but I tried with the complete one too):

[code]Include (-
language French

::=
* 0s

::=
* 0

::=
* 0s

::=
* 0e

::=
* 0s

-) in the Preform grammar.[/code]
And this source:

[code]“Accords des adjectifs” by Natrium729

In French ouvert is an adjective.

When play begins:
repeat with item running through things:
say “[the item] est peut-être [ouvert].”.

The chambre is a room.
The truc is a thing in chambre.[/code]
It crashes only when you try to print an adjective, not when you only declare it.

Also I’m not sure what you meant here:

Where am I supposed to type this line ?

Thanks a lot for your help!

Ok, try this:

[code]“Accords des adjectifs” by Natrium729 (in French)

In French ouvert is an adjective.

When play begins:
repeat with item running through things:
say “[the item] est peut-être [ouvert].”.

The chambre is a room.
The truc is a thing in chambre.

Test adjective (internal) with ouvert. [ouvert or any word-adjective you want]

[/code]

Note the (in French).
With that; I7 will include the French Language installed extension AND will do some other specific-language asumptions (I guess).

You could think that with

Include French Language by Nathanaël Marion.

It is the same, but I tried and the answer is nope.

And the last thing you will do is to set actual author of the french extension: You must to set this in the french translation bundle:

...\Inform7\Extensions\Reserved\Languages\French\about.txt
(i.e., in the I7 installation path).

I tried with Nathanaël and doesnt work, with Nathana (whitout ë) it works fine.

If you write it in that way, it works!

But what’s the difference between writing “(in French)” and “Include French Language by Nathanaël Marion” ?
Why does it works with one but not with the other ?

Once again, thanks a lot!

Great! It works with italian, too. My workaround is no more needed.

There is no concordance in room descriptions yet (however I still have to see what’s going wrong), such as:

“Sopra il tavolo vedi una borsa (chiuso).” [On the table you see a bag (closed)], that is wrong because “borsa” has feminine gender, so the adjective that follows should be “chiusa”.

In all the other cases it works perfectly: no more crashes.

For example:

La borsa is a container in the Salotto. The description is “[A borsa] di pelle [chiuso].”

gives, after examining:

“Una borsa di pelle chiusa.”

It seems that “Italian Language” is (almost) ready for the final release!

Try

List writer internal rule response (O) is "[regarding the noun][chiuso]".

(add the [regarding the noun], for me it seems to work)

It works for me too. Thank you!

Now “Italian Language” is almost perfect!

Which is a “working” way to submit it to the official repositories? I have sent another extension of mine (Hyperlink Interface) updated to 6L02 several weeks ago to substitute the old version already in the repository but nothing happened :frowning:

Using the advanced capabilities of the italian language extension, I have discovered that this sentence works perfectly:

  • I granchi sono un fondale nella spiaggia. [The granchi are scenery in the spiaggia]

Then it works also:

  • La spiaggia sono una stanza. [The spiaggia ARE a room]

Anyway in italian it’s correct to say “è” (is) instead of “sono” (are).

But this sentence gives an error, saying that the system can’t find a verb.

  • La spiaggia è una stanza. [The spiaggia IS a room]

Does anyone knows why that happens? (“è” is defined in the verbs as “sono” is defined, in the conjugation of the “essere” verb, that is “to be”.)
Has it anything to do with the accent on “è”?

Thank you in advance for any suggestion!

Does it work if you change the conjugation of essere to use “e” without an accent?

If that doesn’t work, it might be a conflict between (what Inform sees as) a plural noun and a singular verb. But I didn’t think it checked that sort of thing.

Gulp! Changing “è” with “e” makes the above examples to work! Thank you for the suggestion.

The problem IS the accent! What can I do? In italian one expects to use “è” to say “is”.

I expect it’s a problem in Inform’s Unicode support.

If it’s not fixed soon, it should be fairly easy to write a “preprocessor” that converts è to ee or something like that before giving the file to the compiler.

Good idea!
How can I write such a preprocessor?

I was thinking something like this:
Rename your ni.exe to ni_old.exe, then create a program (called ni.exe) which looks at its first argument (probably auto.inf); copies that file to autopp.inf, making suitable replacements; then invokes ni_old.exe autopp.inf [other arguments passed to ni].

I can write one for you after IntroComp if you want.

Can you tell whether this is a bug in ni, a bug in Inform 6, or a bug in the extension?

Thank you very much! Anyway I’d prefer a fix built in I7, rather than such a heavy customization.

I don’t know. In any case it’s very easy to reproduce the problem.

One should get the “Italian Language” extension from here github.com/i7/extensions/blob/m … nguage.i7x and install it.

Then try:

"Title" by Author (in Italian) The Hall is a room.
The result is:

[code] Title
An Interactive Fiction by Author
Release 1 / Serial number 140718 / Inform 7 build 6L02 (I6/v6.33 lib 6/12N) SD

Hall

[/code]
It works! Then try to replace:

The Hall sono a room. ["sono" stands for "are" in italian. This works too!]
Then try:

The Hall è a room. ["è" stands for "is" in italian. This should work as above but it doesn't.]
The result is the following:

Report on translation: Failed. "Problem. In the sentence 'The Hall è a room' , I can't find a verb that I know how to deal with."
What’s going wrong? Following one of the suggestion above, I have modified “Italian Language.i7x”. Just this line:

<it-essere-present> ::= sono | sei | è | siamo | siete | sono
becomes:

<it-essere-present> ::= sono | sei | duckface | siamo | siete | sono
Then trying the sentence:

The Hall duckface a room.
the result is a working adventure.

I hope that someone can explain what’s going wrong.
If it’s a long story, I can open another thread. I asked in this thread because french and spanish authors have a great experience in these kind of extensions, and I think that “French Language” could show a similar behavior and, since the huge number of accents in French, I think that the problem (if any) has been solved long ago.

Ok – that’s clearly a problem in ni. But the Preform system isn’t really supported or documented yet, so it may not be fixed until it is.