How to get a custom field label in a specific language? In order to get the label of a field I just do :

$fii = field_info_instance('node', 'field_app_area', 'products');
$label = $fii['label'];


But it returns the label in the original language of the field, not the current user language.

I have seen some code here to get the translated label from the $content variable of a node template, but I don't have the template variables available.

So my question is either : how do I get the label translation or how do I get the $content (or similar) variable available without being on a template.
Turns out that using t(), doesn't work for translated field labels.

To get the translated field label text (in the current language), just use the i18n_field_translate_property function

  $field_instance = field_info_instance('node', 'field_application_area', 'products');
  $label = i18n_field_translate_property($field_instance, 'label');


Or, for a specific language :

  $label = i18n_field_translate_property($field_instance, 'label', 'fr');


Found on this related answer.