merged branch stof/form_translation_domain (PR #2374)
Commits -------a2cf023
[FrameworkBundle] Added the translation domain3aa7582
[TwigBridge] Added the translation domain6e4269f
[Form] Added the ability to specify the translation domain Discussion ---------- Form translation domain This implements #1895 Bug fix: no Feature addition: yes BC break: no Tests pass: yes (well, I had some failing tests before, that are still failing, in some other parts of Symfony)
This commit is contained in:
commit
8476d26015
@ -28,13 +28,13 @@
|
||||
{% spaceless %}
|
||||
{% for choice, label in options %}
|
||||
{% if _form_is_choice_group(label) %}
|
||||
<optgroup label="{{ choice|trans }}">
|
||||
<optgroup label="{{ choice|trans({}, translation_domain) }}">
|
||||
{% for nestedChoice, nestedLabel in label %}
|
||||
<option value="{{ nestedChoice }}"{% if _form_is_choice_selected(form, nestedChoice) %} selected="selected"{% endif %}>{{ nestedLabel|trans }}</option>
|
||||
<option value="{{ nestedChoice }}"{% if _form_is_choice_selected(form, nestedChoice) %} selected="selected"{% endif %}>{{ nestedLabel|trans({}, translation_domain) }}</option>
|
||||
{% endfor %}
|
||||
</optgroup>
|
||||
{% else %}
|
||||
<option value="{{ choice }}"{% if _form_is_choice_selected(form, choice) %} selected="selected"{% endif %}>{{ label|trans }}</option>
|
||||
<option value="{{ choice }}"{% if _form_is_choice_selected(form, choice) %} selected="selected"{% endif %}>{{ label|trans({}, translation_domain) }}</option>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endspaceless %}
|
||||
@ -52,7 +52,7 @@
|
||||
{% else %}
|
||||
<select {{ block('widget_attributes') }}{% if multiple %} multiple="multiple"{% endif %}>
|
||||
{% if empty_value is not none %}
|
||||
<option value="">{{ empty_value|trans }}</option>
|
||||
<option value="">{{ empty_value|trans({}, translation_domain) }}</option>
|
||||
{% endif %}
|
||||
{% if preferred_choices|length > 0 %}
|
||||
{% set options = preferred_choices %}
|
||||
@ -198,7 +198,7 @@
|
||||
{% if required %}
|
||||
{% set attr = attr|merge({'class': attr.class|default('') ~ ' required'}) %}
|
||||
{% endif %}
|
||||
<label{% for attrname,attrvalue in attr %} {{attrname}}="{{attrvalue}}"{% endfor %}>{{ label|trans }}</label>
|
||||
<label{% for attrname,attrvalue in attr %} {{attrname}}="{{attrvalue}}"{% endfor %}>{{ label|trans({}, translation_domain) }}</label>
|
||||
{% endspaceless %}
|
||||
{% endblock %}
|
||||
|
||||
|
@ -1,11 +1,11 @@
|
||||
<?php foreach ($options as $choice => $label): ?>
|
||||
<?php if ($view['form']->isChoiceGroup($label)): ?>
|
||||
<optgroup label="<?php echo $view->escape($view['translator']->trans($choice)) ?>">
|
||||
<optgroup label="<?php echo $view->escape($view['translator']->trans($choice, array(), $translation_domain)) ?>">
|
||||
<?php foreach ($label as $nestedChoice => $nestedLabel): ?>
|
||||
<option value="<?php echo $view->escape($nestedChoice) ?>"<?php if ($view['form']->isChoiceSelected($form, $nestedChoice)): ?> selected="selected"<?php endif?>><?php echo $view->escape($view['translator']->trans($nestedLabel)) ?></option>
|
||||
<option value="<?php echo $view->escape($nestedChoice) ?>"<?php if ($view['form']->isChoiceSelected($form, $nestedChoice)): ?> selected="selected"<?php endif?>><?php echo $view->escape($view['translator']->trans($nestedLabel, array(), $translation_domain)) ?></option>
|
||||
<?php endforeach ?>
|
||||
</optgroup>
|
||||
<?php else: ?>
|
||||
<option value="<?php echo $view->escape($choice) ?>"<?php if ($view['form']->isChoiceSelected($form, $choice)): ?> selected="selected"<?php endif?>><?php echo $view->escape($view['translator']->trans($label)) ?></option>
|
||||
<option value="<?php echo $view->escape($choice) ?>"<?php if ($view['form']->isChoiceSelected($form, $choice)): ?> selected="selected"<?php endif?>><?php echo $view->escape($view['translator']->trans($label, array(), $translation_domain)) ?></option>
|
||||
<?php endif ?>
|
||||
<?php endforeach ?>
|
||||
|
@ -10,7 +10,7 @@
|
||||
<?php echo $view['form']->renderBlock('attributes') ?>
|
||||
<?php if ($multiple): ?> multiple="multiple"<?php endif ?>
|
||||
>
|
||||
<?php if (null !== $empty_value): ?><option value=""><?php echo $view->escape($view['translator']->trans($empty_value)) ?></option><?php endif; ?>
|
||||
<?php if (null !== $empty_value): ?><option value=""><?php echo $view->escape($view['translator']->trans($empty_value, array(), $translation_domain)) ?></option><?php endif; ?>
|
||||
<?php if (count($preferred_choices) > 0): ?>
|
||||
<?php echo $view['form']->renderBlock('choice_options', array('options' => $preferred_choices)) ?>
|
||||
<?php if (count($choices) > 0 && null !== $separator): ?>
|
||||
|
@ -1,2 +1,2 @@
|
||||
<?php if ($required) { $attr['class'] = (isset($attr['class']) ? $attr['class'] : '').' required'; } ?>
|
||||
<label for="<?php echo $view->escape($id) ?>" <?php foreach($attr as $k => $v) { printf('%s="%s" ', $view->escape($k), $view->escape($v)); } ?>><?php echo $view->escape($view['translator']->trans($label)) ?></label>
|
||||
<label for="<?php echo $view->escape($id) ?>" <?php foreach($attr as $k => $v) { printf('%s="%s" ', $view->escape($k), $view->escape($v)); } ?>><?php echo $view->escape($view['translator']->trans($label, array(), $translation_domain)) ?></label>
|
||||
|
@ -1,2 +1,2 @@
|
||||
<?php if ($required) { $attr['class'] = (isset($attr['class']) ? $attr['class'] : '').' required'; } ?>
|
||||
<label <?php foreach($attr as $k => $v) { printf('%s="%s" ', $view->escape($k), $view->escape($v)); } ?>><?php echo $view->escape($view['translator']->trans($label)) ?></label>
|
||||
<label <?php foreach($attr as $k => $v) { printf('%s="%s" ', $view->escape($k), $view->escape($v)); } ?>><?php echo $view->escape($view['translator']->trans($label, array(), $translation_domain)) ?></label>
|
||||
|
@ -56,6 +56,7 @@ class FieldType extends AbstractType
|
||||
->setAttribute('attr', $options['attr'] ?: array())
|
||||
->setAttribute('invalid_message', $options['invalid_message'])
|
||||
->setAttribute('invalid_message_parameters', $options['invalid_message_parameters'])
|
||||
->setAttribute('translation_domain', $options['translation_domain'])
|
||||
->setData($options['data'])
|
||||
->addValidator(new DefaultValidator())
|
||||
;
|
||||
@ -103,6 +104,7 @@ class FieldType extends AbstractType
|
||||
->set('multipart', false)
|
||||
->set('attr', $form->getAttribute('attr'))
|
||||
->set('types', $types)
|
||||
->set('translation_domain', $form->getAttribute('translation_domain'))
|
||||
;
|
||||
}
|
||||
|
||||
@ -127,6 +129,7 @@ class FieldType extends AbstractType
|
||||
'attr' => array(),
|
||||
'invalid_message' => 'This value is not valid',
|
||||
'invalid_message_parameters' => array(),
|
||||
'translation_domain' => 'messages',
|
||||
);
|
||||
|
||||
$class = isset($options['data_class']) ? $options['data_class'] : null;
|
||||
|
@ -151,6 +151,22 @@ class FieldTypeTest extends TypeTestCase
|
||||
$this->assertSame(10, $view->get('max_length'));
|
||||
}
|
||||
|
||||
public function testPassTranslationDomainToView()
|
||||
{
|
||||
$form = $this->factory->create('field', null, array('translation_domain' => 'test'));
|
||||
$view = $form->createView();
|
||||
|
||||
$this->assertSame('test', $view->get('translation_domain'));
|
||||
}
|
||||
|
||||
public function testDefaultTranslationDomain()
|
||||
{
|
||||
$form = $this->factory->create('field');
|
||||
$view = $form->createView();
|
||||
|
||||
$this->assertSame('messages', $view->get('translation_domain'));
|
||||
}
|
||||
|
||||
public function testBindWithEmptyDataCreatesObjectIfClassAvailable()
|
||||
{
|
||||
$form = $this->factory->create('form', null, array(
|
||||
|
Reference in New Issue
Block a user