function field_available_languages in Drupal 7
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 - Functions implementing Field API multilingual support.
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];
}