custom/plugins/SwagLanguagePack/src/SwagLanguagePack.php line 18

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. /*
  3.  * (c) shopware AG <info@shopware.com>
  4.  * For the full copyright and license information, please view the LICENSE
  5.  * file that was distributed with this source code.
  6.  */
  7. namespace Swag\LanguagePack;
  8. use Doctrine\DBAL\Connection;
  9. use Shopware\Core\Framework\Api\Acl\Role\AclRoleDefinition;
  10. use Shopware\Core\Framework\DataAbstractionLayer\EntityRepositoryInterface;
  11. use Shopware\Core\Framework\Plugin;
  12. use Shopware\Core\Framework\Plugin\Context\DeactivateContext;
  13. use Shopware\Core\Framework\Plugin\Context\UninstallContext;
  14. use Swag\LanguagePack\Util\Lifecycle\Lifecycle;
  15. class SwagLanguagePack extends Plugin
  16. {
  17.     public const SUPPORTED_LANGUAGES = [
  18.         'Bahasa Indonesia' => 'id-ID',
  19.         'Bosanski' => 'bs-BA',
  20.         'български език' => 'bg-BG',
  21.         'Čeština' => 'cs-CZ',
  22.         'Dansk' => 'da-DK',
  23.         'Ελληνικά' => 'el-GR',
  24.         'English (US)' => 'en-US',
  25.         'Español' => 'es-ES',
  26.         'Suomi' => 'fi-FI',
  27.         'Français' => 'fr-FR',
  28.         'हिन्दी' => 'hi-IN',
  29.         'Hrvatski' => 'hr-HR',
  30.         'Magyar' => 'hu-HU',
  31.         'Italiano' => 'it-IT',
  32.         '한국어' => 'ko-KR',
  33.         'Latviešu' => 'lv-LV',
  34.         'Nederlands' => 'nl-NL',
  35.         'Norsk' => 'nn-NO',
  36.         'Polski' => 'pl-PL',
  37.         'Português' => 'pt-PT',
  38.         'Română' => 'ro-RO',
  39.         'Русский' => 'ru-RU',
  40.         'Slovenčina' => 'sk-SK',
  41.         'Slovenščina' => 'sl-SI',
  42.         'Srpski' => 'sr-RS',
  43.         'Svenska' => 'sv-SE',
  44.         'Türkçe' => 'tr-TR',
  45.         'Українська' => 'uk-UA',
  46.         'Tiếng Việt Nam' => 'vi-VN',
  47.     ];
  48.     public const BASE_SNIPPET_SET_LOCALES = [
  49.         'bs-BA',
  50.         'bg-BG',
  51.         'cs-CZ',
  52.         'da-DK',
  53.         'el-GR',
  54.         'en-US',
  55.         'es-ES',
  56.         'fi-FI',
  57.         'fr-FR',
  58.         'hi-IN',
  59.         'hr-HR',
  60.         'hu-HU',
  61.         'id-ID',
  62.         'it-IT',
  63.         'ko-KR',
  64.         'lv-LV',
  65.         'nl-NL',
  66.         'nn-NO',
  67.         'pl-PL',
  68.         'pt-PT',
  69.         'ro-RO',
  70.         'ru-RU',
  71.         'sk-SK',
  72.         'sl-SI',
  73.         'sr-RS',
  74.         'sv-SE',
  75.         'tr-TR',
  76.         'uk-UA',
  77.         'vi-VN',
  78.     ];
  79.     /**
  80.      * @return array<string, array<string>>
  81.      */
  82.     public function enrichPrivileges(): array
  83.     {
  84.         return [
  85.             AclRoleDefinition::ALL_ROLE_KEY => [
  86.                 'swag_language_pack_language:read',
  87.                 'language:read',
  88.             ],
  89.             'language.editor' => [
  90.                 'swag_language_pack_language:read',
  91.                 'swag_language_pack_language:update',
  92.             ],
  93.         ];
  94.     }
  95.     public function deactivate(DeactivateContext $deactivateContext): void
  96.     {
  97.         parent::deactivate($deactivateContext);
  98.         /** @var Connection $connection */
  99.         $connection $this->container->get(Connection::class);
  100.         /** @var EntityRepositoryInterface $languageRepository */
  101.         $languageRepository $this->container->get('language.repository');
  102.         (new Lifecycle($connection$languageRepository))->deactivate($deactivateContext);
  103.     }
  104.     public function uninstall(UninstallContext $uninstallContext): void
  105.     {
  106.         parent::uninstall($uninstallContext);
  107.         /** @var Connection $connection */
  108.         $connection $this->container->get(Connection::class);
  109.         /** @var EntityRepositoryInterface $languageRepository */
  110.         $languageRepository $this->container->get('language.repository');
  111.         (new Lifecycle($connection$languageRepository))->uninstall($uninstallContext);
  112.     }
  113. }