I don't speak any language other than English. (Well, I Latin in high school. Useful if I ever visit Latin America. :-) With that background, I'd say:
As others have noted, a lot of information about programming, on the web and in books, is in English, so it would certainly help if you learn English.
Some computer languages use a lot of English words, like Visual Basic, for example. Others use mostly symbols, like C/C++/C#. So if you're going to program, you're going to have to learn SOME English. But I don't think it's a lot. IF, WHILE, RETURN, etc. Depending on the language, maybe 10 or 20 words to a few dozen. Visual Basic is the wordiest language I can think of, and I just checked a list and it has, by a quick count, about 160 reserved words, but there's a lot of duplication in there. Like END and WHILE and then END WHILE listed as three separate "words". I can see that being inconvenient for a non-English speaker, but these words are often used with meanings only loosely related to their common English meanings, so I think in many cases it's not that much harder for a non-English speaker than for an English speaker. Like, the meaning of HANDLER or CAST is probably no more obvious to a new programmer who speaks English than to a new programmer who speaks Portuguese. If instead some of these things were called by words that are meaningless in English, like if instead of saying CAST we said FOOBAR, would that have made it harder for me to learn programming? I doubt it would have made much difference.
You mention that some languages have options to define alternate words for keywords in one way or another. So yes, you could define words from your own language as synonyms for the English keywords. I wouldn't. Now your programs have a bunch of non-standard terms that you made up. Someone else who tries the same thing is unlikely to use exactly the same set of words that you do. So now reading someone else's program, you've got to figure out what he meant by his "translations". I suppose if everyone in the company used the same set, you would learn them and could work on each other's programs easily. But what happens when you move to another company, or download software off the web? It seems to me that you're just setting a trap for yourself. Better to just learn the standard words.
If you're writing a program in Portuguese and the only people who are likely to read it are other Brazilians, and you all presumably speak Portuguese but maybe are not particularly fluent in English, it just makes sense to make variable names Portuguese. I don't see what's gained by trying to make variable names in a language you are not particularly good at.