I'm Portuguese and most of the software I design and develop is about concepts in Portuguese. How should I name stuff?
If I'm talking about Conta or Cliente it's easy: Account and Customer. And what about concepts that aren't in English or for which a translation would be unrecognizable?
When I name stuff I try to make things easily recognizable for those who read it, and this brings us to a combination of both Portuguese and English.
When someone finds in the code or documentation ContaInválidaException (names are in Unicode, it's time to let go archaic prejudice - "conta invalida" means that the account is making something invalida and "conta inválida" means that the account is invalid) identifies immediately what it is. For a business person it's obvious that it's something about an invalid account and for a technology person it's obvious that it's some kind of exception.