GSOC 22 Proposal - Internalization improvements

Greetings to everyone in the Processing community
I would love to participate in this year’s GSOC and I thought of improving the internalization a bit further.
We all know that functions, methods and constants for p5.js are named and written in English (e.g. createCanvas, background, windowHeight, setup, draw, etc). Now of course this can’t be changed to another language because it would require a lot of work and basically to rewrite the entire library, but what if a user (that is navigating in the p5.js or p5.js web editor while selecting a language different than English) is able to hover over a function’s name and see the translation and a brief description of what the function or method does in a popup? I think this would help a lot to international beginners who are discovering programming and p5.js for the first time. I have seen the webpage and even though the Reference page describes what a function does, it never actually tells the user what does the name mean or translates to other language. It is like we assume that the user understands what the function does by reading it’s name but this can only be true for English speakers.
Any thoughts on this proposal?

This is an early draft of how it would look like using as an example a translation to Spanish of the function createCanvas)

1 Like

Very cool @javiert01,

What great first post!

I am French-Canadian and have been formulating a similar proposal for French language coding in Processing as well. I hoped to allow those who write in non-American English to have options and I was hoping to contribute or help create a library that could also accept other language commands. In my case french.

The spelling of color(127,0,0); could be input as couleur(127,0,0) (to be in coded in french) or colour(127,0,0) (in English UK). (For this example it wouldn’t need changing for Spanish though…
color() is still Spanish.

ligne() (Fr) or linea() (Esp) as options for line()


I wonder how these ideas could be implemented?

I’m glad you posted this, I share this intention to open up Processing into other languages.

Are you aware of any other users who have begun such implementations?

Thanks for your reply!
I have been investigating these days but I haven’t found any other users who have begun this type of implementation that you have mentioned. I have also been looking for ideas to make function names dynamically but it looks more complicated than I thought.
I will still keep looking for more solutions for this so I can be able to send a proposal for GSOC and I would be glad if anyone has ideas or suggestions for translating functions, methods and constant names.

Javier Tinoco

1 Like

My pleasure,
I felt it was quite synchronistic to read your post. Perhaps others will chime in as well.
I am giving a workshop this week on bilingual “code switching” (in my case we are playing with writing code in “Frenglish” (AKA “Franglais”) to make self-portraits in Processing. I am hoping to play with participant and arrive at some novel solutions to coding in-between written and spoken languages. (Here is a link if you are curious, it is presented in french). Redirecting...

I look forward to reading more on this subject again soon.

That sounds great! I don’t know french but maybe hoping in can help me get an idea on how to start this project and discuss it a little bit. I will definitely try to attend, thanks a lot for your information.

1 Like

Hello @javiert01,

I presented the workshop today (Turn out was pretty low, but the teaching felt good). Preparing the code and instructional content to explain Processing in an other language than English was a difficult task but also a pleasant one. Teaching today made the huge topic as linguistic accessibility to code feel really important to me. It is quite difficult to find ressources in french on Processing. There have been book translations (as I just discovered these today I cannot speak to them yet).

It also highlights how difficult it is to find the right tool to shift such a huge foundation of code that the functions in Processing represent.

I wondered if perhaps a good early target might be is to provide a library (on a per language basis) that provides translations of examples files and the reference?

Would a language library template that people could use to add their own linguistic syntax into Processing be helpful? Perhaps with and initial focus on French and Spanish?

*If you think I am too far from the topic at hand let me know. I can start a new thread as I don’t want to lead you away from your initial intentions.