In Drupal 7 there are two methods exist for translating site content:
- By nodes (Content Translation module, core)
- By fields (Entity translation module, contrib., recommended).
The Content Translation module allows nodes to be translated by creating a set of nodes which are translations of each other. In other words, by creating a node translation set:
On the other hand, the Entity Translation module allows particular fields to be translated, while only a single node or entity is created. With Entity Translation, the entity is language-independent, only the associated fields are flagged with a language.
Nodes vs Fields
As long as the relevant modules are enabled, a website can be translated using either method, but it is recommended to use `by fields` translation method with the Drupal 7 Connector, as it is the most flexible. It is worth noting that once you choose a translation method, you must be consistent with it. Changing translation methods for each content type can cause problems with the connector.
as it will cause issues with It’s not recommended mixing these methods: you have to decide on one translation method in the beginning and stick with it.
Possible reasons for using 'by nodes' translation method are:
- You use `Field collection` module. In this case it’s better to use `by nodes` method.
- Most sites do not plan to have 1-1 menu structures for all translated versions. Different nodes can participate in different menu structures (with different menu titles appropriate for their language).
How to configure `by fields` method
In your Druapl 7 instance, edit the content type > Publishing Options > Multilingual support = Enabled, with field translation
Go to the fields settings > Field translation > select each field for translation
Go to the Smartling settings page > select the required fields for translation through the platform
Note, if you select a field that is already enabled for 'by nodes', you will see the following error
This error means listed fields are enabled for translation and:
- Possibly used in other content types which are set up with `by fields` method.
- Or they aren’t used in other content types but set up with `by fields` method.
To resolve this, simply disable or unselect the fields from translation.