2017 © Pedro Peláez
 

symfony-bundle form-translation-bundle

Generate translation key for forms

image

elao/form-translation-bundle

Generate translation key for forms

  • Friday, March 9, 2018
  • by Elao
  • Repository
  • 20 Watchers
  • 38 Stars
  • 43,393 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 13 Forks
  • 2 Open issues
  • 13 Versions
  • 7 % Grown

The README.md

ElaoFormTranslationBundle

Build Status, (*1)

Description:

This bundle provides a nice way of generating translation keys for form fields in a "logic" way. It is used mainly to generate automatic labels on fields but can be use to build any key., (*2)

For example, in a form RegisterType named "register" the key for its field "name" would be form.register.children.name.label., (*3)

Another more advanced example would be a field "emails" which is a collection of text inputs, it'll generate:, (*4)

  • form.register.children.emails.label
  • form.register.children.emails.label_add
  • form.register.children.emails.label_delete
  • form.register.children.emails.children.prototype.label

Or in yml:, (*5)

``` yml form: register: children: emails: label: # add your trans for the fieldset ex: Email label_add: # add your trans for add button ex: Add an email label_delete: # add your trans for remove button ex: Remove an email children: prototype: label: # add your trans for the label of one email field ex: Email address, (*6)


_Note: The keys will only be generated at runtime and won't be dumped when you use `translation:update` yet (we're working on it)._ Installation: -------------- Add ElaoFormTranslationBundle to your composer.json: ``` json { "require": { "elao/form-translation-bundle": "3.*" } }

Now download the bundle by running the command:, (*7)

``` bash $ php composer.phar update elao/form-translation-bundle, (*8)


Register the bundle in the kernel: ``` php <?php // app/AppKernel.php public function registerBundles() { $bundles = array( // ... new Elao\Bundle\FormTranslationBundle\ElaoFormTranslationBundle(), ); }

How to use it:

In order to generate translation keys automatically, you have 2 options:, (*9)

Per field generation:

If you set the the "label" option of a form field to true, a key will be generated and set as the field label. Otherwise we won't generate your labels !, (*10)

``` php <?php, (*11)

class RegisterType extends AbstractType { /** * {@inheritdoc} */ public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('name', null, array( 'label' => true // Will generate: "form.register.children.name.label" )); ->add('email', null, array( 'label' => false // Will NOT generate a <label> in the HTML )); ->add('email', null, array( 'label' => 'my.custom.key' // Default behavior )); }, (*12)

/**
 * {@inheritdoc}
 */
public function getName()
{
    return 'register';
}

}, (*13)


#### Global configuration key: If you want to generate keys for all your labels you can set the option `auto_generate` to `true`: elao_form_translation: auto_generate: true This will set default label value to `true` so keys will be generated for every label. If you need to override this behavior, you can still provide a `label` key for your field in order to use your translation key. In this case, no keys will be generated. Customization and configuration: -------------- #### Customize the keys: Keys are built following this pattern: [root][separator](parent_field_name)[separator][children][separator](field_name)[key] You can customize (and remove) any of these tokens to change the way keys are built: ``` yml elao_form_translation: blocks: # Prefix for children nodes (string|false) children: "children" # Prefix for prototype nodes (string|false) prototype: "prototype" # Prefix at the root of the key (string|false) root: "form" # Separator te be used between nodes (string|false) separator: "."

For example, if you just need simple keys you could do with the following configuration:, (*14)

``` yml elao_form_translation: blocks: root: false children: false separator: "_", (*15)

Which would generate that kind of keys:

    # (parent_field_name)[separator](field_name)[separator][key]
    register_name_label

#### Set default translation domain for all forms

You can set a default translation domain for all forms and choice with the following configuration:

```yml
elao_form_translation:
    default_translation_domain: "forms"

This will set the default options translation_domain and choice_translation_domain to all forms and choices off your application., (*16)

You still can override these options in each configureOptions method of your form types., (*17)

You can also disable translation on all form by setting the option to false:, (*18)

elao_form_translation:
    default_translation_domain: false

Default configuration:

``` yml elao_form_translation:, (*19)

# Can be disabled
enabled: true

# Generate translation keys for all missing labels
auto_generate: false

# Set default translation domain on all forms
default_translation_domain: ~

# Customize available keys
keys:
    form:
        label:  "label"
        help:   "help"
        # Add yours ...
    collection:
        label_add:      "label_add"
        label_delete:   "label_delete"
        # Add yours ...

# Customize the ways keys are built
blocks:

    # Prefix for prototype nodes
    prototype:  "prototype"

    # Prefix for children nodes
    children:   "children"

    # Prefix at the root of the key
    root:       "form"

    # Separator te be used between nodes
    separator:  "."

```, (*20)

The Versions

09/03 2018

dev-master

9999999-dev https://github.com/Elao/ElaoFormTranslationBundle

Generate translation key for forms

  Sources   Download

MIT

The Requires

 

The Development Requires

form translation elao

09/03 2018

v2.0.1

2.0.1.0 https://github.com/Elao/ElaoFormTranslationBundle

Generate translation key for forms

  Sources   Download

MIT

The Requires

 

The Development Requires

form translation elao

16/02 2018

dev-update-to-symfony-4

dev-update-to-symfony-4 https://github.com/Elao/ElaoFormTranslationBundle

Generate translation key for forms

  Sources   Download

MIT

The Requires

 

The Development Requires

form translation elao

29/04 2016

dev-patch-cleanup

dev-patch-cleanup https://github.com/Elao/ElaoFormTranslationBundle

Generate translation key for forms

  Sources   Download

MIT

The Requires

 

The Development Requires

form translation elao

22/12 2015

v2.0.0

2.0.0.0 https://github.com/Elao/ElaoFormTranslationBundle

Generate translation key for forms

  Sources   Download

MIT

The Requires

 

The Development Requires

form translation elao

10/12 2015

1.1.x-dev

1.1.9999999.9999999-dev https://github.com/Elao/ElaoFormTranslationBundle

Generate translation key for forms

  Sources   Download

MIT

The Requires

 

The Development Requires

form translation elao

10/12 2015

1.4.x-dev

1.4.9999999.9999999-dev https://github.com/Elao/ElaoFormTranslationBundle

Generate translation key for forms

  Sources   Download

MIT

The Requires

 

The Development Requires

form translation elao

10/12 2015

v1.4

1.4.0.0 https://github.com/Elao/ElaoFormTranslationBundle

Generate translation key for forms

  Sources   Download

MIT

The Requires

 

The Development Requires

form translation elao

01/11 2015

v1.3

1.3.0.0 https://github.com/Elao/ElaoFormTranslationBundle

Generate translation key for forms

  Sources   Download

MIT

The Requires

 

The Development Requires

form translation elao

04/12 2014

v1.2.0

1.2.0.0 https://github.com/Elao/ElaoFormTranslationBundle

Generate translation key for forms

  Sources   Download

MIT

The Requires

 

The Development Requires

form translation elao

24/10 2014

v1.1.0

1.1.0.0 https://github.com/Elao/ElaoFormTranslationBundle

Generate translation key for forms

  Sources   Download

MIT

The Requires

 

The Development Requires

form translation elao

19/03 2014

1.0.1

1.0.1.0 https://github.com/Elao/ElaoFormTranslationBundle

Generate translation key for forms

  Sources   Download

MIT

The Requires

 

The Development Requires

form translation elao

28/01 2014

1.0.0

1.0.0.0 https://github.com/Elao/ElaoFormTranslationBundle

Generate translation key for forms

  Sources   Download

MIT

The Requires

 

The Development Requires

form translation elao