I'm going to give an answer which departs somewhat from Git because I believe its point is important. It is bad design to keep separate branches for different languages. As you are now seeing, if you make a feature improvement in one branch and wish to bring it into the other branch, you cannot do so easily.
Instead, look into using message bundles, which can handle multi language support all from a logically single application. Java, JavaScript and most languages support bundles.
If you absolutely must proceed on your current path, then you have no choice but to do the merge or cherry-pick and live up to the chance that some of your language material may be overwritten. Let's consider the worst possible scenario and how you might handle it.
Let's say you did a cherry-pick from master
into translation
which resulted in all of your Spanish language support code being overwritten with English code. Let's make it uglier and assume that there weren't even any merge conflicts, i.e. Git happily brought in the feature and overwrote the Spanish code without making a peep. Now you have a commit sitting there, but you can deal with this in several ways. You could revert each language-specific file with its Spanish parent, and then amend the commit via:
git commit --amend
This would rewrite that cherry-pick or merge commit the way you intended it to be, namely with the new feature and your Spanish language specific code intact.
As you can sense, if you continue down this road it could get ugly, so consider making use of language bundles.