You can set it to “Translatable” at the “Entity” level and as such you need the following hook.
It alters existing field definitions -like ones defined by other modules.
There is also
to provide new field definitions
The hook you used [hook_entity_field_storage_info_alter] works at the field level.
For example, if some module wanted to create Entity for new field ( called my-title) and make it Translatable at the “Entity” level it would be like:
$fields[‘my-title’] = BaseFieldDefinition::create(‘string’)
So, the the hook(described above) is changing such a “base definition of the given Entity”.
The Steps you will need in your code is:
1) Load the given Entity.
2) Set it by using [setTranslatable(TRUE)].
3) save it (similar to $node→save();).
For example, for the “Article” NodeType, step 1 can be
$type = \Drupal::entityTypeManager()→getStorage(‘node_type’)→
Check out the following for deeper understanding:
BaseFieldDefinition’s setTranslatable method
& isTranslatable method
The docs have it buried it
In Drupal 8 field language is no longer exposed in the public API,
instead fields are attached to language-aware entity objects from
which they "inherit" their language