diff --git a/features.export.inc b/features.export.inc index b6e338a..22d23aa 100644 --- a/features.export.inc +++ b/features.export.inc @@ -511,17 +511,23 @@ function features_var_export($var, $prefix = '', $init = TRUE) { * export so that string extractors like potx can detect them. */ function features_translatables_export($translatables, $indent = '') { - $output = ''; - $translatables = array_filter(array_unique($translatables)); - if (!empty($translatables)) { - $output .= "{$indent}// Translatables\n"; - $output .= "{$indent}// Included for use with string extractors like potx.\n"; - sort($translatables); - foreach ($translatables as $string) { - $output .= "{$indent}t(" . features_var_export($string) . ");\n"; + if (empty($translatables)) { + return; + } + + $output = array(); + foreach ($translatables as $string) { + if (is_array($string)) { + $output[] = "{$indent}t(" . features_var_export($string["value"]) . ",array(),array('context' => '".$string["context"]."'));"; + } else { + $output[] = "{$indent}t(" . features_var_export($string) . ");"; } } - return $output; + array_unique($output); + + $header = "{$indent}// Translatables\n"; + $header .= "{$indent}// Included for use with string extractors like potx.\n"; + return $header . implode("\n", $output); } /** diff --git a/includes/features.field.inc b/includes/features.field.inc index c396668..cd4132f 100755 --- a/includes/features.field.inc +++ b/includes/features.field.inc @@ -114,10 +114,18 @@ function field_features_export_render($module, $data, $export = NULL) { // Add label and description to translatables array. if (!empty($field['field_instance']['label'])) { - $translatables[] = $field['field_instance']['label']; + $translatables[] = array("value" => $field['field_instance']['label'], "context" => $field['field_config']['field_name'].':'.$field['field_instance']['bundle'].':label'); } if (!empty($field['field_instance']['description'])) { - $translatables[] = $field['field_instance']['description']; + $translatables[] = array("value" => $field['field_instance']['description'], "context" => $field['field_config']['field_name'].':'.$field['field_instance']['bundle'].':description'); + } + // support for allowed_values + if (!empty($field['field_config']['settings']['allowed_values'])) { + foreach($field['field_config']['settings']['allowed_values'] as $key => $value) { + if (is_string($value) && !empty($value)) { + $translatables[] = array("value" => $value, "context" => $field['field_config']['field_name'].':#allowed_values:'.$key); + } + } } } }