Field api - taking responsibility over a field display I am writing a Drupal module that deals with the taxonomy terms, which are (as I understand) fields, taxonomy vocabulary , which are as I understand entities. My module should take over the taxonomy term field and vocabulary entity for mirror language display, meaning that once my user is in X language, he will see the X language value of the term/vocabulary name/description.

Looking at the i18n_taxonomy module code I can see that it implements many fields related functions (i18n_taxonomy_field_attach_view_alter(), i18n_taxonomy_field_formatter_view(), i18n_taxonomy_field_formatter_info(), etc). My questions are:


Once I need to to take over a display of a field, how can I do it?
What functions should my module implement for displaying the fields on menus, widgets, plain view, etc?
Same question, only for the vocabulary: is there any difference?
I have spent my time googling this subject, but I have not really found a good reference. Can anyone refer me to one?
Fields are displayed through formatters (you can have multiple ones, and then you chose which one you want when adding the field to a content type, or any bundle of an entity).
So, hook_field_formatter_info() and hook_field_formatter_view(). 
Open the core image module: modules/image/image.field.inc in your Drupal install, and use that as an example.

You can use hook_field_formatter_info_alter() to add formatters to existing field types (not declared by your mpdule).