Installation instructions

Erweiterung über den Erweiterungsbereich installieren.

API key

Google Translate API

  1. Go to https://console.cloud.google.com/ .
  2. Create a new project with your account.
  3. Enter the name of the project and click on "Create".
  4. Open the new project and go to API & Services.
  5. Activate API and services.
  6. Search for "Cloud Translation API" in the list and activate it.
  7. Now create a new Google Translate API key via "Create credentials" and enter it in the settings of the Shopware extension.

DeepL API

  1. Go to https://www.deepl.com/en/login
  2. Create an account or log in.
  3. Go to the "API Keys & Limits" section
  4. Create a new "key" and copy the key.
  5. Add the key to the settings of the Shopware extension.
  6. We recommend activating cost control so that no unnecessary costs are incurred in the event of an unexpected error.
Aktiviere die Kostenkontrolle und setze ein Limit für den APi Schlüssel

Einrichten der Erweiterung in Shopware

API settings

Google API key: If Google Translate is to be used, enter the key here

DeepL API key: If DeepL API key is to be used, enter the key here

Setting the subscription type of DeepL

DeepL offers various API subscription types. The two important ones for the extension are

  1. DeepL API Free, offers up to 500,000 free characters per month
  2. DeepL API Pro, free number of characters, EUR 20 per 1,000,000 characters

Bitte beachten: die richtige Abonnementart muss ausgewählt passend zum DeepL API Plan.

Setting for the translation

Translatable HTML attributes, activates the translation of e.g. links or images.

Translate links

Translates a link on the page and determines whether there is an alternative link in another language in the sales channel.

The following user-defined fields are ignored during translation

A selection of custom fields that can be ignored during translation.

The following product fields are ignored during translation

Hier findest du eine Auswahl an Produktfeldern, die bei der Übersetzung ignoriert werden können. Wähle keine Pflichtfelder wie „Name” aus. Aus technischen Gründen können Übersetzungen nicht mehr gespeichert werden, sobald diese Felder ausgewählt sind.

Check API login information

The API keys entered above can be checked here after they have been saved.

Languages

Settings -> Shop -> Languages

Select an existing language or create a new language.

Choose a name, create the localisation and the ISO code of the language.

"Inherit from" - indicates which language this language inherits from.

After saving, the translation settings can be made:

  1. API Choose between Google and DeepL here.
  2. Source language specifies the language from which the translation is made. The main language of the shop should be used here.
    • Wenn du bei der Auswahl der Quellsprache eine andere Sprache als die Standardsprache einstellst, stelle sicher, dass alle Pflichtfelder ausgefüllt sind. Andernfalls können die Übersetzungen aus technischen Gründen nicht gespeichert werden.

With the main extension English only available. Other languages can be added with the Language package be set.

Use of the extension, without bulk extension

Product

  1. To translate a product, open the product in Catalogues->Products.
  2. Change the language in the bar at the top to the desired language.
  3. Select "Translate (empty fields)" to translate only the empty fields or "Translate all" to overwrite filled fields as well.

Categories (More areas)

  1. To translate a category, open the category in Catalogues->Categories.
  2. Change the language in the bar at the top to the desired language.
  3. Select "Translate (empty fields)" to translate only the empty fields or "Translate all" to overwrite filled fields as well.

Manufacturer (More areas)

  1. To translate a manufacturer, open the manufacturer in Catalogues->Manufacturers.
  2. Change the language in the bar at the top to the desired language.
  3. Select "Translate (empty fields)" to translate only the empty fields or "Translate all" to overwrite filled fields as well.

E-mail templates (More areas)

  1. To translate an email template, open the email template in Settings-> Shop->Email templates.
  2. Change the language in the bar at the top to the desired language.
  3. Select "Translate (empty fields)" to translate only the empty fields or "Translate all" to overwrite filled fields as well.

Dynamic product groups (more areas)

  1. To translate a dynamic product group, open the dynamic product groups in Catalogues->dynamic product groups.
  2. Change the language in the bar at the top to the desired language.
  3. Select "Translate (empty fields)" to translate only the empty fields or "Translate all" to overwrite filled fields as well.

Worlds of experience (More areas)

  1. To translate a world of experience, open the worlds of experience in Content->Worlds of Experience.
  2. Change the language in the bar at the top to the desired language.
  3. Select "Translate (empty fields)" to translate only the empty fields or "Translate all" to overwrite filled fields as well.

Use of the extension, with the bulk extension

Product

  1. Open the bulk menu under Contents -> Biloba Translation Pro Bulk
  2. Select the target language
  3. Select the area you want to translate, some areas are only available with the More areas bulk Extension available
  4. Each area has its own settings, most of which offer the following points:
    • Translate only active "...": Select the option to translate only active entities.
    • Translate already translated "...": Select this option if you want to start the translation a second time and translate all "old" entities and new entities again.
    • Translate only empty fields: translates only empty fields in a similar way to "Single translation".

Biloba Translation Pro Log

Under Contents -> Translation Pro you will find a log for all translated entities

Biloba Auto Translation Pro Lexicon

Under Contents -> Biloba Translation Pro Dictionary, fixed words can be set which are always translated in the same way.

  1. Open the Dictionary menu
  2. Open a new "Dictionary entry"
  3. Create the word in the main system language
  4. Save the entry
  5. Change the language and enter the fixed word in this language into which you want to translate.

CSV Import/Export

It is also possible to create the entries via CSV export / import.

To see what the CSV must look like, create the CSV as an export for an entry.

The CSV file must start with Semicolons be separated. In the 1st column the dictionary entry of the Default language be created. In the 2nd column the entry of the Target language stand. Existing entries are overwritten.

Example of entries in English with German as the main language

FAQs

App hochladen
Lade die App in der Administration unter Erweiterungen → Meine Erweiterungen hoch.

App installieren & aktivieren
Installiere die App und aktiviere sie anschließend.

Übersetzungsservice-ID hinterlegen
Öffne die App-Konfiguration und trage die benötigte Übersetzungsservice-ID ein.

Private Key anlegen
Erstelle einen Private Key für deinen bevorzugten Übersetzungsservice (empfohlen: DeepL).

Du benötigst das Entwickler-Paket, um einen DeepL-Key zu erhalten.
Verwendest du stattdessen einen Google-Translate-API-Key, füge ihn ebenfalls hier ein.

Key überprüfen
Prüfe in der App-Konfiguration, ob dein Private Key gültig ist.

Sprachen einrichten
Go to Einstellungen → Shop → Sprachen.
Lege für jede zu übersetzende Sprache die Quellsprache und die gewünschte Übersetzungs-API fest.

Übersetzen
Sobald eine Sprache konfiguriert ist, kannst du sie direkt zum Übersetzen verwenden.

Wenn du das Plugin vor dem Kauf eines API-Keys ausprobieren möchtest, teste deinen Text hier:

DeepL Translation
Google Translator

Der Übersetzungs-Button befindet sich unter „Katalog/Produkte/ProduktX“ neben dem Abbrechen-Button.

This error can occur if the database table was not created correctly during installation. This can be added with the following SQL commands.

Table 1
CREATE TABLE IF NOT EXISTS biloba_intl_translation_log (
id BINARY(16) NOT NULL,
initiator VARCHAR(255) NOT NULL,
entity_id BINARY(16) NOT NULL,
target_language_id BINARY(16) NOT NULL,
entity_type VARCHAR(255) NOT NULL,
type VARCHAR(255) NOT NULL,
status VARCHAR(255) NOT NULL,
context JSON NOT NULL,
created_at DATETIME(3) NOT NULL,
updated_at DATETIME(3) NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

2. table
CREATE TABLE IF NOT EXISTS biloba_intl_translation_config (
id BINARY(16) NOT NULL,
source_language_id BINARY(16),
target_language_id BINARY(16) NOT NULL,
translation_api VARCHAR(255) NOT NULL,
created_at DATETIME(3) NOT NULL,
updated_at DATETIME(3) NULL,
PRIMARY KEY (id),
CONSTRAINT fk.biloba_intl_translation_config.target_language_id FOREIGN KEY (target_language_id)
REFERENCES language (id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk.biloba_intl_translation_config.source_language_id FOREIGN KEY (source_language_id)
REFERENCES language (id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

There is currently an error in Shopware that the wrong ISO code is stored in the database table for the text modules. This setting cannot be changed via the admin area, but must be entered directly in the snippet_set database table. Please make sure that the ISO code is also entered that is stored for the language in the settings under Language.

To make the translation button clickable, you have to create and activate the language in the backend as usual. This corresponds to the standard procedure in Shopware. Note, however, that the language only becomes visible in the frontend when you assign it to a sales channel. This way you can use the translation function without making the entire language publicly available.

Shopware uses the following inheritance sequence for the experience worlds:

  1. Die Hauptsprache erbt von der Erlebniswelt.
  2. The new language inherits from the main language.

If changes are now made to the layout area in the main language, the changes are adopted in the new language, as the new language inherits from the main language.

Wenn nun die Übersetzung gestartet wird, werden die übersetzbaren Elemente aus der Hauptshop-Sprache in die neue Sprache übernommen, welches die Textelemente sind. Die Bilder werden nun vom Original, der Erlebniswelt, übernommen, da die neue Sprache nun nicht mehr von der Hauptshop-Sprache erbt, sondern nun von der Erlebniswelt und die Bilder nicht „übersetzbar“ sind.

Shopware 6 currently has an error that the sample images of the world of experience are not displayed, therefore no images are currently displayed after the translation.

The SEO URLs are generated by Shopware from the category title. This part is not translated by the extension.

These links are not recognised as links by our extension because the meta description cannot be edited with an HTML editor.

If these links are not to be translated, it is possible to create a new entry in the lexicon extension and enter this link in all required languages.

The translations of the extension are processed in the background via the Shopware Scheduler.

Dieser legt die einzelnen Übersetzungen mit Hilfe der Message Queue in der Datenbanktabelle „messenger_messages“ (Version 6.5 & 6.6) bzw. „enqueue“ (Version 6.4) ab. Dort kann auch kontrolliert werden, ob Einträge erzeugt werden. Sobald eine Übersetzung angestoßen wurde, kann also weitergearbeitet werden. In der Übersetzungsübersicht der Haupterweiterung wird angezeigt, ob Artikel bereits übersetzt wurden.

To ensure that the CLI Worker also runs when you are not logged into the admin area, it is recommended that you make the following adjustments recommended by Shopware (Set up CLI Worker).

The translations are processed via the Shopware message queue. To prevent an error on the part of Shopware from generating unnecessary costs at DeepL, we recommend activating cost control at DeepL.

Diese finden sich im DeepL Konto unter „Verbrauch“.