Yes, my definition was that both the programming language and the native language can be one. Such as if I write wholly in English, ie "function DoSomething()" or in Italian, ie "funzione FareQualcosa()", then both the native and the programming sentences could be categorized as "Italian" language.
Now, in the world of programming, I was thinking that the translation can be only to exchange words one by one, straight.
Don't get me wrong on that, but this is the most stupid idea I've heard in a while.
Not only that, but it also won't work. Languages do not translate word by word, and languages have grossly different grammar. Many languages have characters that do not exist in others. What if someone writes Tagalog or Chinese and you expect Italian or German? How is this supposed to work? Do you expect comments being magically translated as well?
Not few terms translate in an awkward manner to say the least, even when done by professinal translators. I regularly have to stop and think what they're trying to say when I see IT translations from English to my native language done by professionals working for multi-million-dollar companies. Let alone word-by-word computer translation.
Plus, most people who are moderately familiar with programming are also firm in English.
That much for natural languages, and as far as "any programming language" goes, I can think of least 6 grossly different categories of languages, and these are certainly not all:
- compiler based bytecode languages (e.g. Java)
- compiler and linker based languages (e.g. C or C++)
- interpreted/bytecode languages without explicit compiler (e.g. Python, Lua,... )
- interpreted/bytecode embedded languages (e.g. AngelScript, Squirrel, and again Python, Lua)
- interpreted/bytecode remote languages (e.g. PHP)
- weirdo languages that do near unpredictable stuff (e.g. bash script, perl)
- weirdo languages that nobody can understand (e.g. Lisp)
Some of these need a compiler invoked, some of them need the executable to be linked afterwards. Some need the binaries and resources packed in a zip file and a bytecode interpreter launched afterwards instead.
Some need an interpreter launched, some need a host application (including bindings).
Some need files being uploaded to a different machine where an interpreter runs as server process.
Some need ... something else.
All of these categories are so grossly different that it is hardly possible to pack them all into one unified build process or one unified notion of a "project".