3 ms·
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 Burro
by jecel 10y ago
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.
- jecel 10y agoTwo funny stories about Portuguese and programming language books: 1) my father once brought home from work a book about programming with dBase-II. The problem was that they had not only translated all of the text but the program listings as well. I told him that if he tried typing in any of the examples it would not work at all. I wonder if anybody ever bothered trying it. 2) A company called Brascom was selling illegally imported Cromenco computers in Brazil with the name BR-1000. They decided to rename the Cromix operating system to BR-1000 as well. In the manual they simply replaced every instance of "cromix" with "br1000". A student complained that he couldn't get one of the examples in the manual to work, so I looked at it and noticed it had a "br1000(300);" system call in it, so I suggested that he try "cromix(300);" instead. It now compiled and ran just fine.
- shocks 10y agoHa! Very interesting. Thanks for sharing.