DeepL CSV Translation Manager for Magento 2

The DeepL CSV Translation Manager is an additional extension for the DeepL Translator module in Magento. It enables store administrators to quickly translate large CSV files, manage translations from the backend, and dynamically create Magento i18n language packages.

This module is perfect for multilingual Magento stores, providing scalable and optimized translation workflows through Magento’s Message Queue (MQ) system. It enables store administrators to efficiently translate large CSV files, manage translations directly from the backend, and dynamically generate Magento i18n language packages. With seamless integration with the DeepL Translator module, it ensures high-quality translations for multiple languages, automates background processing of translation tasks, and allows administrators to monitor progress easily. This makes it an ideal solution for stores looking to expand globally while maintaining a consistent, reliable, and efficient translation process.

Important Note: Please note that the DeepL CSV Translation extension is designed to work seamlessly with the DeepL Translator module and requires a valid DeepL API key.


Interested in Extension Installation Service?

Visit our installation service page https://www.extendware.com/magento-extension-installation-service.html for more information

Support

Got questions? Feel free to contact us! Support Form.

Installation Procedure

Type 1: Zip file

  • Download your extension package from the Download page after purchasing the extension.

  • Open the extension ZIP file you downloaded and extract it to a directory on your computer using a tool like WinRar, WinZIP or similar.

  • Upload the extracted files to the app/code/Extendware directory in your Magento installation, maintaining the folder structure. If updating, overwrite the existing files.

  • Connect via SSH and run the following commands (make sure to run them as the user who owns the Magento files!

    php bin/magento module:enable --clear-static-content Extendware_Core
    
    php bin/magento module:enable --clear-static-content Extendware_DeeplCsvTranslate
    
    php bin/magento setup:upgrade
    
    php bin/magento setup:di:compile
    
    php bin/magento setup:static-content:deploy
    
    

Features

  • Backend CSV Translation Management

    • Translate CSV files using DeepL.

    • Supports standard csv translation file types.

    • Fully compatible with Magento i18n language packages.

    • Manage CSV translations via the backend grid.

    • Combine multiple translations into a single CSV file based on language.

  • Flexible CSV Upload

    • Backend File Uploader: Upload CSV files directly from the admin panel.

    • Direct Path Upload: Place large CSV files in var/translate when backend upload is not feasible.

  • Batch Processing for Large Files

    • Split large CSV files into smaller batches (100–1000 rows per batch).

    • Faster processing and reduced server load.

  • Translation Record Management

    • Option to allow or restrict deletion of running translation records.

    • Prevents accidental data loss.

  • Dynamic Language Package Generation

    • Generate Magento i18n language packages dynamically from translated CSV files.

    • Select which CSV files to include and define their order.

  • Magento Message Queue Integration

    • Translation operations run asynchronously using Magento MQ.

    • Background workers process translations without blocking the admin interface.

    • Supports large files reliably and efficiently.


Configuration

Settings are available in the admin panel under Stores → Configuration → Extendware → DeepL Translator → CSV Translation Settings.

Configuration in your Magento store

Setting

Options

Description

Enable

Yes / No

Enable or disable CSV translation functionality.

Allow Delete

Yes / No

Allow users to delete running translation records. Not recommended unless necessary.

Use File Uploader

Yes / No

Enable backend CSV upload. If disabled, files must be manually uploaded to var/translate.

Batch Count

Numeric (100–1000)

Number of rows per batch for processing. Default: 100


How It Works

  1. Upload CSV via backend uploader or manually to var/translate.

  2. Large files are split into smaller batches.

  3. Each batch is queued in Magento Message Queue.

  4. Background workers process translations via DeepL.

  5. Review translated records in the backend grid.

  6. Select translations to include in dynamically generated i18n language packages.

  7. Language packages are ready for use in the store.

CSV Translation Manager

The menu is available in the admin panel under Extendware → Extendware Deepl CSV Translate → DeepL CSV Translation.

CSV Translation Manager Grid

In the CSV Translation Manager, you can manage all your translation files with ease:

  • Add New Translation Use the Add New button to create a new translation entry and upload a CSV file for processing.

  • Edit or Delete Entries From the Actions column, you can edit existing translations or remove them if no longer needed.

  • Start Translation Trigger the translation process directly from the Actions column. The system will process the file using the DeepL API in the background via Magento’s Message Queue (MQ).

  • Download Translated CSV Once the translation is complete, you can download the translated CSV file from the grid.

  • Monitor Status The grid displays the translation status in real-time (e.g., Pending, In Progress, Completed, Failed).

  • View Source File After successful translation, you can also view and download the original source CSV file.

  • Language Overview Each row clearly shows the selected source language and the target language for the translation.

This provides administrators with a complete overview of all translation jobs, making it easy to manage, track, and export translations for multilingual Magento stores.


Add New DeepL Translate CSV Form

Add New DeepL Translate CSV Form

The Add New DeepL Translate CSV Form allows administrators to configure and manage new translation jobs.

  • Status This field is disabled by default and managed automatically by the system. It provides the real-time status of each translation, such as Queued, Running, Completed, or Failed.

  • CSV File You can provide the CSV file in two ways:

    1. By uploading a file directly through the uploader.

    2. By specifying a file name in the text input field and placing the file manually inside the var/translation folder. The behavior of this field is managed via store configuration. This option is particularly useful for very large files that cannot be uploaded through the standard file uploader.

  • Source Language Select the language of the content in the uploaded CSV file. The languages displayed here are based on the locales already available in your Magento store.

  • Destination Language Define the target language into which the content should be translated. The languages displayed here are based on the locales already available in your Magento store.

  • Include in Language Package Decide whether the translation should be included in the final i18n language package.

  • Sort Order Works in relation to the Include in Language Package field. Enter a sort order number to control the order in which translations are included in the language package. By default, the value is set to 1.

  • Message This field is used to display any errors that occur during the translation process. If an issue is encountered, details will be shown here for troubleshooting.

This form provides full control over configuring translation jobs, while the system manages processing and monitoring automatically.

Edit DeepL Translate CSV Form

This allows administrators to manage and monitor existing translation jobs.

  • Status The form displays the current status of the translation job. Possible statuses include Queued, Running, Completed, or Failed.

  • Start Translation You can start the translation process by clicking the Start Translation button. This action places the job into Magento’s Message Queue, and the status will update to Running.

  • Deleting Running Jobs By default, running translation jobs cannot be deleted. To enable deletion, you must configure the option in Store Configuration. This restriction is designed to ensure consistent and reliable translation results when using the message queue.

  • Download Translated CSV Once the translation is successfully completed, the status will update, and a Download Translated CSV button will appear at the top of the form. Clicking this will download a standard Magento i18n CSV file, which can be used directly in your custom theme or custom module i18n folder.

  • Translation History All translated rows are stored in the system’s history. This allows you to verify the original CSV content, compare results, and ensure content consistency. You can view the complete history of translations based on each uploaded CSV file.

  • Error Messages and Logs If any issues occur during the translation process, error messages will be displayed in the Message field on the form. Additionally, detailed logs are recorded in a custom log file, making it easy to trace and resolve problems.

This form gives administrators full visibility and control over each translation job while ensuring reliability through Magento’s background queue processing.

Note: The downloaded translation CSV files can be placed in your custom theme’s i18n folder, for example: app/design/VendorName/ThemeName/i18n or in your custom module’s i18n folder, for example: app/code/VendorName/ModuleName/i18n.

Below are examples of the DeepL Translate CSV Form with different statuses.

Edit Deepl Translate CSV Form ( Status : Queued )

When a translation job has been created but not yet started, the status is set to Queued.

Edit Deepl Translate CSV Form Status : Queued

  • Status shows Queued.

  • No download option is available yet.

  • Job is waiting in Magento’s Message Queue, Administation must start via Start Translation button top.

Edit Deepl Translate CSV Form ( Status : Completed )

When the translation job has finished successfully, the status is set to Completed.

Edit Deepl Translate CSV Form Status : Completed

  • Status shows Completed.

  • The Download Translated CSV button is available at the top.

  • The translated CSV file is ready for use in your Magento i18n folder.

  • Translation history is stored for reference.

Language Packages

Language Packages

The Language Packages is used to generate standard Magento 2 language packages. It combines all translated CSV files into a single working language package, ready to be applied to your store. The process uses the Include in Language Package and Sort Order fields from the translation form to determine how the final package is built.

Once a package has been generated, it becomes available for download directly from the grid. If any errors occur during generation, they can be easily traced through the custom log file DeeplCsvTranslate.log located in the var/log folder.

You can choose to generate a package for a single language or for all available languages at once. To maintain consistency and prevent duplicate entries, new processes cannot be started while another package is still running. All operations are handled via Magento’s Message Queue system, ensuring scalability and reliability even with large translation workloads.

Note: The downloaded language packages are placed in your Magento root directory under the app/i18n folder.

Bulk Actions Log

The Bulk Actions Log is provided by Magento by default and allows you to view logs of actions that are running through the Message Queue.

Magento 2 Bulk Actions are tools that enable administrators to perform tasks on multiple items simultaneously within the admin panel. You can review these actions under: System → Action Logs → Bulk Actions.

Bulk Actions Log

In the example above, you can see:

  • Deepl CSV Translate Processing File: test.csv — indicates that the file test.csv is currently being translated through the message queue, with its processing status shown.

  • Deepl Translated CSV Processing For de_DE — indicates that the German (de_DE) language package is being generated, with its processing status shown.


Best Practices

  • Use batch processing for large CSV files.

  • Keep deletion of running translation records disabled unless necessary.

  • Regularly update language packages to include the latest translations.

  • Ensure cron and MQ workers are properly configured for background processing.


Benefits

  • Efficient translation management for large CSV files.

  • Flexible upload options for any file size.

  • Optimized performance via batch processing and MQ.

  • Automatic generation of Magento language packages.

  • Safe, scalable, and enterprise-ready workflow.


Example Workflow

  1. Admin uploads a 5,000-row CSV file.

  2. The module splits it into 50 batches of 100 rows.

  3. Batches are queued in Magento Message Queue.

  4. Background workers process translations via DeepL.

  5. Admin reviews translations in the grid.

  6. Selected translations are included in a dynamic i18n language package.

  7. Package is deployed to the store for multilingual support.

Changelog

All notable changes to this project will be documented here.

[1.0.0]

Added

- First release