Localization and internationalization facilities exist for applications, often as library functions (e.g. Posix [gettext][1]).

<sup>In the 1960s and 1970s several programming languages appeared in France with French keywords, e.g. [PAF][2] and [LSE][3].</sup>

However, it makes much less sense to localize the source code of programs and scripts (e.g. by changing keywords of programming languages like `if` to `si` in French....) because the meaning of a program is also conveyed by the identifier names and the comments.

Automatic and reliable (and faithful) translations of such names and comments is IMHO beyond the state of the art.

<sup>And I believe it would be simpler to have the machine program itself, i.e. synthetize its own code,  instead of translating programs to be humanly understandable by other cultures. Look at *Artificial General Intelligence* and e.g. [J.Pitrat's blog][4].</sup>

In practice, developers of software to be worked on by some international team (e.g. free software projects) should agree on some human language (often some form of English) and on some coding conventions or coding styles.

Some language don't have keywords (e.g. [APL][5] or even [PL/1][6] where the same name `IF` can have both a role of keyword and a role of identifier, so that `IF IF=THEN THEN;` is a valid but cryptic PL/1 statement), but they do have identifiers and developers do give meaningful names in identifiers for their own culture. Translating these automatically is not realistic.

Some very few publications mention using [natural language processing][7] techniques on comments and identifiers in [static program analysis][8] of source code. (I am interested in additional references)

BTW,  look into [COBOL][9]; I believe it was designed with the naive claim that source code would become readable by non-programmers.

Some French teachers did taught programming in C by defining macros like

    // French equivalent of some C keywords
    #define si if
    #define sinon else
    #define faire do
    #define tantque while
    #define pour for

but this became out of fashion. Now most teachers in France on programming requires some basic fluency in English.

<sup>(I am interested if today, in Chinese or Arabic universities, some equivalent is done)</sup>

  [1]: https://en.wikipedia.org/wiki/Gettext
  [2]: https://en.wikipedia.org/wiki/Programmation_Automatique_des_Formules
  [3]: https://en.wikipedia.org/wiki/LSE_%28programming_language%29
  [4]: http://bootstrappingartificialintelligence.fr/WordPress3/
  [5]: https://en.wikipedia.org/wiki/APL_%28programming_language%29
  [6]: https://en.wikipedia.org/wiki/PL/I
  [7]: https://en.wikipedia.org/wiki/Natural_language_processing
  [8]: https://en.wikipedia.org/wiki/Static_program_analysis
  [9]: https://en.wikipedia.org/wiki/COBOL