Function content_allowed_values() returns wrong values if we use one field for many types with hook_content_allowed_values_alter().
I have one CCK field for two content types.
I use hook_content_allowed_values_alter() to generate different options for each type.
The problem causes when I tried to translate this options with i18ncck module.
Function i18ncck_locale_refresh() . It checks allowed values for each types and each fields.
But when function content_allowed_values($field) returns options for the first type it also cached it to static value.
So, when second type tried to call content_allowed_values($field) to get options it gets options for the first type. That`s the problem.
Can we put type_name to $cid ?
$type_name = isset($field['type_name']) ? $field['type_name'] : '';
$cid = $field['field_name'] . $type_name .':'. ($flatten ? '1' : '0');