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--in this case, using the Interface Translation module. This refers to content, visible configuration values, and the strings and texts 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 principle 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 codebase, which 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...