You are here

function uc_extra_fields_pane_ucxf_field in Extra Fields Checkout Pane 6.2

Same name and namespace in other branches
  1. 7 uc_extra_fields_pane.module \uc_extra_fields_pane_ucxf_field()

Implementation of hook_ucxf_field(). Update translation of field label and description Update also translation of option labels of select fields

Parameters

UCXF_Field $field:

string $op:

Return value

void

1 call to uc_extra_fields_pane_ucxf_field()
uc_extra_fields_pane_locale_refresh in ./uc_extra_fields_pane.module
Refresh all strings at once Callback for i18n.

File

./uc_extra_fields_pane.module, line 1200
Module: uc_extra_fields_pane.module

Code

function uc_extra_fields_pane_ucxf_field($field, $op) {
  if (function_exists('i18nstrings_update')) {
    switch ($op) {
      case 'insert':
      case 'update':
      case 'locale_refresh':
        i18nstrings_update('ucxf:field:' . $field->db_name . ':label', $field->label);
        i18nstrings_update('ucxf:field:' . $field->db_name . ':description', $field->description);
        switch ($field->value_type) {

          // Make labels of options in select fields translatable
          case UCXF_Field::UCXF_WIDGET_TYPE_SELECT:
          case UCXF_Field::UCXF_WIDGET_TYPE_PHP_SELECT:

            // Generate the options, but do not translate these.
            $values = $field
              ->generate_value(FALSE);
            foreach ($values as $key => $label) {
              i18nstrings_update('ucxf:field:' . $field->db_name . ':value:' . $key, $label);
            }
            break;

          // Make default values translatable
          case UCXF_Field::UCXF_WIDGET_TYPE_TEXTFIELD:
          case UCXF_Field::UCXF_WIDGET_TYPE_PHP:
          case UCXF_Field::UCXF_WIDGET_TYPE_CONSTANT:

            // Generate the string, but do not translate it.
            $value = $field
              ->generate_value(FALSE);
            if (!empty($value)) {
              i18nstrings_update('ucxf:field:' . $field->db_name . ':value', $value);
            }
            break;
        }
        break;
    }
  }
}