Internationalization
The idea behind internationalization is to ensure that everything that gets output on the site can be translated into the enabled languages through a common mechanism. This refers to content, visible configuration values, and the strings and text that come out of modules and themes. But there are many different ways this can happen, so let's see how in each of these cases we would ensure that our information can be translated.
A principal rule when writing Drupal modules or themes is to always use English as the code language. This is to ensure consistency and keep open the possibility that other developers will work on the same code base, who may not speak a particular language. This is also the case for text used to be displayed in the UI. It should not be the responsibility of the code to output the translated text, but rather to always keep it consistent, that is, in English.
Of course, this is dependent on it being done right, in order to allow...