//echo 'no translation for ' . $translatable . "\n";
continue;
}
- if ($overwrite || !$item->hasTranslation($translatable, $to)) {
- // echo "copy translation for " . $translatable . "\n";
- $translated = $item->getTranslation($translatable, $from);
- $item->setTranslation($translatable, $to, $translated);
- } else {
- // echo "no overwriting existing for " . $translatable . "\n";
+
+ $fake = in_array($translatable, $item->fakeColumns);
+ $hasTranslation = $item->hasTranslation($translatable, $to);
+ $destTranslation = $item->getTranslation($translatable, $from);
+ if (!$overwrite && $hasTranslation && $fake) {
+ $destTranslation = array_merge($destTranslation, $item->getTranslation($translatable, $to));
}
+ $item->setTranslation($translatable, $to, $destTranslation);
+
}
$item->save();
$i++;