PHPackages                             spryker-community/product-management-ai-translator - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Localization &amp; i18n](/categories/localization)
4. /
5. spryker-community/product-management-ai-translator

ActiveLibrary[Localization &amp; i18n](/categories/localization)

spryker-community/product-management-ai-translator
==================================================

The ProductManagementAiTranslator module provides product-related AI translation functionality

0.2.2(1y ago)111.7k1MITJavaScriptPHP &gt;=8.0

Since Mar 28Pushed 1y ago1 watchersCompare

[ Source](https://github.com/spryker-community/product-management-ai-translator)[ Packagist](https://packagist.org/packages/spryker-community/product-management-ai-translator)[ Docs](https://github.com/spryker-community/product-management-ai-translator)[ RSS](/packages/spryker-community-product-management-ai-translator/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (3)Dependencies (3)Versions (6)Used By (0)

ProductManagementAiTranslator Module
====================================

[](#productmanagementaitranslator-module)

This module provides product-related AI translation functionality.

Installation
------------

[](#installation)

### Install the required modules using Composer

[](#install-the-required-modules-using-composer)

```
composer require spryker-community/product-management-ai-translator spryker-community/open-ai-translator --no-interaction

```

This command will install 5 modules in total:

- `spryker-community/product-management-ai-translator`
- `spryker-community/ai-translator`
- `spryker-community/open-ai-translator`
- `spryker-community/open-ai-client`
- `openai-php/client`

Configuration
-------------

[](#configuration)

### Add new `SprykerCommunity` namespace to configuration

[](#add-new-sprykercommunity-namespace-to-configuration)

```
# config/Shared/config_default.php

$config[KernelConstants::CORE_NAMESPACES] = [
    ...
    'SprykerCommunity',
];

```

### Configure OpenAI API token and cache control

[](#configure-openai-api-token-and-cache-control)

```
# config/Shared/config_default.php

use SprykerCommunity\Shared\AiTranslator\AiTranslatorConstants;
use SprykerCommunity\Shared\OpenAiClient\OpenAiClientConstants;

$config[OpenAiClientConstants::API_TOKEN] = 'OpenAI API token'; // Sets private OpenAI API token
$config[AiTranslatorConstants::ENABLE_CACHE] = true; // Controls Redis caching for translations

```

### Configure Router

[](#configure-router)

```
# src/Pyz/Zed/Router/RouterConfig.php

public function getControllerDirectories(): array
{
    ...
    $controllerDirectories[] = sprintf('%s/spryker-community/*/src/*/Zed/*/Communication/Controller/', APPLICATION_VENDOR_DIR);
    ...
}

```

### Configure frontend builder for Zed

[](#configure-frontend-builder-for-zed)

Create a new javascript file:

```
# frontend/zed/build.js

const { mergeWithCustomize, customizeObject } = require('webpack-merge');
const oryxForZed = require('@spryker/oryx-for-zed');
const path = require('path');

const mergeWithStrategy = mergeWithCustomize({
    customizeObject: customizeObject({
        plugins: 'prepend'
    })
});

const myCustomZedSettings = mergeWithStrategy(oryxForZed.settings, {
    entry: {
        dirs: [path.resolve('./vendor/spryker-community/')], // Path for SprykerCommunity entry points
    }
});

oryxForZed.getConfiguration(myCustomZedSettings)
    .then(configuration => oryxForZed.build(configuration, oryxForZed.copyAssets))
    .catch(error => console.error('An error occurred while creating configuration', error));

```

Adjust the root `package.json` in the following way:

```
"scripts": {
    ...
    "zed": "node ./frontend/zed/build",
    ...
},

```

Integration
-----------

[](#integration)

### Adjust the following Twig templates on the project level:

[](#adjust-the-following-twig-templates-on-the-project-level)

```
# src/Pyz/Zed/ProductManagement/Presentation/Add/index.twig

{% block head_css %}
    ...

{% endblock %}

{% block footer_js %}
    ...

{% endblock %}

```

```
# src/Pyz/Zed/ProductManagement/Presentation/AddVariant/index.twig

{% block head_css %}
    ...

{% endblock %}

{% block footer_js %}
    ...

{% endblock %}

```

```
# src/Pyz/Zed/ProductManagement/Presentation/Edit/variant.twig

{% block head_css %}
    ...

{% endblock %}

{% block footer_js %}
    ...

{% endblock %}

```

### Wire the plugins

[](#wire-the-plugins)

```
