function field_available_languages
Collects the available languages for the given entity type and field.
If the given field has language support enabled, an array of available languages will be returned, otherwise only LANGUAGE_NONE will be returned. Since the default value for a 'translatable' entity property is FALSE, we ensure that only entities that are able to handle translations actually get translatable fields.
Parameters
$entity_type: The type of the entity the field is attached to, e.g. 'node' or 'user'.
$field: A field structure.
Return value
An array of valid language codes.
Related topics
12 calls to field_available_languages()
- FieldTranslationsTestCase::testFieldAvailableLanguages in modules/
field/ tests/ field.test - Ensures that only valid values are returned by field_available_languages().
- FieldTranslationsTestCase::testFieldFormTranslationRevisions in modules/
field/ tests/ field.test - Tests field translations when creating a new revision.
- FieldTranslationsTestCase::testFieldInvoke in modules/
field/ tests/ field.test - Test the multilanguage logic of _field_invoke().
- FieldTranslationsTestCase::testFieldInvokeMultiple in modules/
field/ tests/ field.test - Test the multilanguage logic of _field_invoke_multiple().
- FieldTranslationsTestCase::testTranslatableFieldSaveLoad in modules/
field/ tests/ field.test - Test translatable fields storage/retrieval.
1 string reference to 'field_available_languages'
- field_info_cache_clear in modules/
field/ field.info.inc - Clears the field info cache without clearing the field data cache.
File
-
modules/
field/ field.multilingual.inc, line 89
Code
function field_available_languages($entity_type, $field) {
static $drupal_static_fast;
if (!isset($drupal_static_fast)) {
$drupal_static_fast['field_languages'] =& drupal_static(__FUNCTION__);
}
$field_languages =& $drupal_static_fast['field_languages'];
$field_name = $field['field_name'];
if (!isset($field_languages[$entity_type][$field_name])) {
// If the field has language support enabled we retrieve an (alterable) list
// of enabled languages, otherwise we return just LANGUAGE_NONE.
if (field_is_translatable($entity_type, $field)) {
$languages = field_content_languages();
// Let other modules alter the available languages.
$context = array(
'entity_type' => $entity_type,
'field' => $field,
);
drupal_alter('field_available_languages', $languages, $context);
$field_languages[$entity_type][$field_name] = $languages;
}
else {
$field_languages[$entity_type][$field_name] = array(
LANGUAGE_NONE,
);
}
}
return $field_languages[$entity_type][$field_name];
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.