My first and the best project I made for Snap!

This is my first shared project and the best I made to "Snap!".
Please press the "See code" button.
And use the "Google Translate" app.

Whoa! It took me a while to figure out why I couldn't switch the language to English.

(Everyone else: He hides all the Snap! primitives and replaces them with his own versions. :~/)

For some reason all this time I thought your native language was Italian. I have no idea why I thought that.

So, first thing, do you know that you can provide translations for your custom blocks? In the Block Editor, right-click on the hat block and choose "translations." Even though I know this is cultural imperialism at work, I'm afraid more people will be interested in your project if the blocks have English translations.

You prefer pulldown options to multiple blocks, e.g., you have one TURN/POINT IN DIRECTION block instead of TURN and POINT IN DIRECTION. That's interesting because recently we've started moving toward pulldowns too, for example in the LENGTH block for lists. But I think you can go overboard on that. Pulldowns are fine for experienced users, but they make the language less discoverable for beginners. That's why we (following Scratch) have separate blocks for +, −, ×, ÷.

We don't have a general principle about this; each decision is made separately. So, to take a Scratch example, Logo (Scratch's parent) has turtle procedures FORWARD, BACK, LEFT, RIGHT. Scratch kept LEFT and RIGHT, but combined FORWARD and BACK into a single MOVE block that takes a negative input to move backward. (You can use negative inputs to all of these in Logo, also.) I'm guessing that they didn't want to privilege one direction of turning, but felt (correctly) that moving backward is much less common than moving forward.

I actually think it'd be a little better if our LENGTH block were divided into two blocks, so the options below the line in the menu would go in a block
CONVERT (list) TO (text,csv,json) NOTATION
Again, the decision is based on discoverability. I'm not sure a beginner would ever know we have a way to serialize a list programmatically. (But my policy is to argue with Jens only about the things that are really, really important to me!)

Apart from that, there were only a few things that jumped out at me as awkward. I was disappointed that you felt the need for blocks to create named lists. In Snap!, unlike Scratch, a list is just one more kind of value you can put in a variable. In BYOB 3.0, the first version I joined Jens in designing, we kept named lists so as not to upset Scratch users, but we knew that that was a kludge and pretty quickly we eliminated named lists.

Maybe if you add English translations I'll look again. :~)

Español:
Oye, Keith.
Yo también me dí cuenta de que los bloques personalizados deberían traducirse al inglés, pero honestamente, mi proyecto no pudo cargar los bloques correctamente debido a que la traducción al inglés, hizo que mis bloques personalizados tuvieron que corromperse, y solamente tuve que dejarlo en español, y además soy un adolescente de 12 años que ama la programación desde que empecé en "Scratch 2.0".
Honestamente cuando tenía 7 años y medio, estuve en una clase de computación, y en una de las computadoras de mi profesor, me encontré con un programa con lo que inició todo mi avance.
Después, cuando tuve 9 años, me interesé en otras versiones de Scratch como "1.0" y "3.0", y después de un tiempo...
A los 10 años y medio, la computadora que me dió mi "Tía Meche" que vive Estados Unidos pero antes vivía en Perú, se corrompió y luego a los 11 años, mi tía me dio otra computadora, pero se trataba de la MacBook Air que tengo ahora, y luego comencé a crearme una cuenta en Scratch, y luego me interesé en toda los programación visual que sea o no sea Scratch, y así como inició mi vida como una persona inteligente con la habilidad de programar como lo soy ahora.
Además, mi historia lo recuerdo de memoria cuando empezó esos buenos recuerdos en el colegio donde yo estoy hasta hoy en día.

English:
Hey, Keith.
I also realized that the custom blocks should be translated to English, but honestly my project couldn't load the blocks correctly because the English translation made my custom blocks had to get corrupted, and I just had to leave it in Spanish , and I am also a 12 year old teenager who has loved programming since I started on "Scratch 2.0".
Honestly, when I was 7 1/2 years old, I was in a computer class, and on one of my teacher's computers, I came across a program that started all my progress.
Later, when I was 9 years old, I became interested in other versions of Scratch like "1.0" and "3.0", and after a while ...
At the age of 10 and a half, the computer that my "Aunt Meche" gave me, who lives in the United States but previously lived in Peru, became corrupted and then at age 11, my aunt gave me another computer, but it was the MacBook Air I have now, and then I started to create a Scratch account, and then I became interested in all visual programming that is Scratch or not, and this is how I started my life as an intelligent person with the ability to program as I am now.
Also, I remember my story by heart when it began those good memories at the school where I am today.

Hmm, I'm Brian. (Keith is my middle name but I never use it -- where did you find it?)

That shouldn't happen. Do you have a corrupted project file I could look at?

No, my file is not corrupted, but I have to translate it to English, the project's blocks are have to be inestable, I have to open the last project backup and, I have to put all of the blocks, but without the English Translation, and works. (The project is now safe to everyone and the Snap!'s Developers)

Well, if you get a chance, try reproducing the problem and post the XML. Thanks.

Ok. I have to do a video-capture of my screen for you.
This video will take a few minutes to make...

No, no, I want the actual broken project! Thanks.

Ok, I do it, no problem.



I don't have the actual broken project, but I have to test the experimental and inestable translations.
Please download the images to view the testing, but i have to bad at drawing.
Please check the drawing, please.

I'm not sure what I'm supposed to see. You translated your NEW LIST block to English, and you're using it inside another block. What's wrong with it?

The translations button is experimental. :astonished:

I don't know why I'm having so much trouble understanding you. What "translations button"?

Oh! I see what you mean now.

But did something actually go wrong when you used it?

Yes, the translations are inestable and buggy, and one of my the select arguments of the translated version of my new list block go to change the appearance like this:
untitled script pic
But the capture of the original block is:
Captura de Pantalla 2021-06-02 a la(s) 18.20.37

Oh I see. When I try that (translating a block with a variadic input) it doesn't forget the input values I used. So I'd still like to see an xml that fails when translated to English! Thanks.

Ok, @bh
I have to do an capture of the blocks to show you.
Please repair the .xml's errors in the next version.