I first noticed this issue when I saw a guy struggling with an English-Portuguese dictionary to try to understand the error messages that the university's Burroughs B6700 Fortran compiler had added to his program listing. Soon after that I saw another guy having a really hard time learning Basic because he couldn't memorize "N E X T", a sequence of letters which meant absolutely nothing to him. I had previously thought that with Fortran, Basic and Algol having so few keywords this wouldn't be a problem like it would be for Forth or Smalltalk.
I once saw a computer which had a Basic with keywords in Portuguese, but I have never found any references to it on the Internet. Logo was translated by several people, but unfortunately they didn't coordinate their efforts so Portuguese Logo programs were even less portable between versions than normal.
In 1984 I translated all of Smalltalk as described in the "blue book" to Portuguese, but it wasn't easy:
1) "self" does not have a nice equivalent
2) lots of words like "copy" can be either a verb or an adjective. No matter which Portuguese option you choose it will work in some contexts and be really bad in others
3) lots of words like "new" are gender neutral. No matter which Portuguese option you choose it will work in some contexts and be really bad in others
4) word order for adjectives is the opposite in English and Portuguese. This actually fits in well with the postfix syntax of Smalltalk's unary selectors, but breaks down when naming components: "car door window" works but it would have to be "janela da porta do carro", which doesn't work
5) You might be able to tell the difference between "ordered" and "sorted" when describing collections, but Portuguese uses the same word for both
Smalltalk-80 makes a distinction between String objects and Symbols. So you can have many 'new' strings but that gets converted into a systemwide unique #new symbol which is used for method names and other things. I created a MultiSymbol class in Smalltalk-V that would convert any of a set of strings into the same symbol. When going the other way around (to print, for example), it would use the value of a global variable to pick between the objects. So you could type in your program in Russian and ask it to be listed in Portuguese, for example. This was good enough for all the standard symbols, but you would have to add translations for any new symbol you created yourself. It got the job done, but by the late 1990s everyone I met had a strong opinion that programming languages have to be in English.