Extension block tip not from the extension

Today I am testing my extension on code.appinventor.mit.edu.
I found some block's tip is not from my extension:

this one is fine:

but this one tip is not from my extension:

and the source code like this:

it looks like coming from other component with same property name.

Is this a bug or something?

Are you using the same extension files?

1 Like

No other extension in the project.

No, I am telling you that you are using the same extension version which has the source code that you shown in picture?

1 Like

Sorry, I don't understand you clearly. I only have one extension in the project, no others.

I tested on my own offline server, no problem.
but on code server, I have problem. and I have refreshed the browser, even reboot my computer, same issue.

here is the aia, in case someone want to test:
chart (1).aia (341.8 KB)

Because its Correctly Showing "Blocks Tip" on niotron builder


can you test on mit server? like code.appinventor.mit.edu?

I tested in ai2.mit.appinventor.edu
same as code.appinventor.mit.edu

so it's not only me. Maybe @MIT can have a look.

1 Like

The underlying cause of this has to do with how the translation system handles collisions. During the compilation process, App Inventor generates the translation files and when it detects two or more (field, description) pairs it rewrites the translation key to be component.field where component is the type name. However, when you compile an extension for use in the public instance, the public instance doesn't really handle well the collision and so it uses the built-in translation for the field. This was somewhat by design because we wanted properties like Enabled, Visible, etc. to take advantage of the built-in translations, but when you introduce a property that collides with different semantics it causes problems, as you have observed. In your case, the Animation property collides with the property of the same name on the Image component. Fixing this would require a way for extension authors to assert that the string they provide is meant to override the App Inventor built-in string rather than leverage it.