insertTranslation example

 {
            $typeId = Uuid::randomBytes();
            $typeData = [
                'id' => $typeId,
                'technical_name' => $technicalName,
                'position' => $position,
                'created_at' => (new \DateTime())->format(Defaults::STORAGE_DATE_TIME_FORMAT),
            ];
            $connection->insert(TaxRuleTypeDefinition::ENTITY_NAME, $typeData);

            if (!\in_array($languageSystem[$languageIdDe$languageIdEn], true)) {
                $this->insertTranslation($connection$dataEn[$technicalName]$typeId$languageSystem);
            }

            $this->insertTranslation($connection$dataEn[$technicalName]$typeId$languageIdEn);
            $this->insertTranslation($connection$dataDe[$technicalName]$typeId$languageIdDe);
        }
    }

    private function getLocaleId(Connection $connection, string $code): ?string
    {
        $result = $connection->fetchOne(
            ' SELECT lang.id FROM language lang INNER JOIN locale loc ON lang.translation_code_id = loc.id AND loc.code = :code',


class Migrations_Migration475 extends Shopware\Components\Migrations\AbstractMigration
{
    public function up($modus)
    {
        if ($modus !== self::MODUS_INSTALL) {
            return;
        }
        $this->updateEmail();
        $this->insertTranslation();
    }

    private function updateEmail()
    {
        $name = 'sORDERSTATEMAIL7';
        $content = 'Hallo {if $sUser.billing_salutation eq \"mr\"}Herr{elseif $sUser.billing_salutation eq \"ms\"}Frau{/if} {$sUser.billing_firstname} {$sUser.billing_lastname},\n\nder Bestellstatus für Ihre Bestellung {$sOrder.ordernumber} hat sich geändert!\nDie Bestellung hat jetzt den Status: {$sOrder.status_description}.\n\nDen aktuellen Status Ihrer Bestellung können Sie auch jederzeit auf unserer Webseite im Bereich \"Mein Konto\" - \"Meine Bestellungen\" abrufen. Sollten Sie allerdings den Kauf ohne Registrierung, also ohne Anlage eines Kundenkontos, gewählt haben, steht Ihnen diese Möglichkeit nicht zur Verfügung.';

        $content = $this->convertTemplatePlain($content);

        $sql = <<<SQL UPDATE `s_core_config_mails` SET `content` = "$content" WHERE `name` = "$name" AND dirty = 0
 catch (UniqueConstraintViolationException) {
            // don't add states if they already exist             return;
        }

        // import translations for current machine_state         $languages = array_unique(array_filter([
            $this->getLanguageId('en-GB', $connection),
            Defaults::LANGUAGE_SYSTEM,
        ]));
        foreach ($languages as $language) {
            $this->insertTranslation($stateId$state['translations']['en-GB']$language$connection);
        }

        $languages = array_filter([$this->getLanguageId('de-DE', $connection)]);
        foreach ($languages as $language) {
            $this->insertTranslation($stateId$state['translations']['de-DE']$language$connection);
        }

        foreach ($state['from'] as $fromId) {
            if (!$fromId) {
                continue;
            }
            
Home | Imprint | This part of the site doesn't use cookies.