PHPackages                             igor-benko-pimcore-plugin/language-switcher - 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. igor-benko-pimcore-plugin/language-switcher

ActivePimcore-plugin[Localization &amp; i18n](/categories/localization)

igor-benko-pimcore-plugin/language-switcher
===========================================

A Pimcore plugin for easier switching between languages in document hierarchies

55831[2 issues](https://github.com/IgorBenko/pimcore-language-switcher/issues)PHP

Since May 8Pushed 11y ago1 watchersCompare

[ Source](https://github.com/IgorBenko/pimcore-language-switcher)[ Packagist](https://packagist.org/packages/igor-benko-pimcore-plugin/language-switcher)[ RSS](/packages/igor-benko-pimcore-plugin-language-switcher/feed)WikiDiscussions master Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

Pimcore plugin: LanguageSwitcher
================================

[](#pimcore-plugin-languageswitcher)

LanguageSwitcher is a Pimcore plugin that makes managing multi-lingual websites a whole lot easier and straightforward. Its main function is to find related nodes in parallel branches and to easily create menus for jumping to the same subpage in other languages - in the frontend and in the backend.

Switching between branches is very easy. You can also open current page in all languages at once.

[![Switching between branches](readme/switch-branch-1.png)](readme/switch-branch-1.png)

If there is no coressponding page in other branch, then the parent node is returned.

Frontend language menu
----------------------

[](#frontend-language-menu)

Integrating language menu to your website is as easy as adding this to view:

```
// This example links to parallel pages but has a label of a branch (eg. En, It, De, ...)

```

```
// This example links to parallel pages and has a label of a parallel page (eg. Contacts, Contatti, Kontakt, ...)

```

```
// You can use any other property to display

```

Switching between branches in the backend
-----------------------------------------

[](#switching-between-branches-in-the-backend)

[![Switching between branches](readme/switch-branch-2.png)](readme/switch-branch-2.png)

You can either switch/open just one language or open a page in all languages at once. This makes it very easy to edit one page in multiple languages.

Installing
----------

[](#installing)

Add this line to the `require` section of your composer.json and install it with composer:

```
"igor-benko-pimcore-plugin/language-switcher": "dev-master"

```

Install it from Extension manager:

[![Installing language switcher](readme/installing-language-switcher.png)](readme/installing-language-switcher.png)

This adds predefined property for selecting branch roots and website setting for selecting the parent node.

### Set parent node

[](#set-parent-node)

If your language structure is like this you don't need to change the parent node:

```
Home:
- en
- de
- it

```

If you have language nodes in a subfolder like this than you need to set it as a parent node in Website Settings:

```
Home:
- languages
    - en
    - de
    - it

```

[![Set parent node](readme/set-switcher-parent-node.png)](readme/set-switcher-parent-node.png)

### Set branch roots

[](#set-branch-roots)

Branch roots must be direct descendants of the parent node. You need to add a property with key `languageSwitcherBranchRoot` to each branch root.

[![Branch roots](readme/parent-node---branch-roots.png)](readme/parent-node---branch-roots.png)

The property MUST be inheritable. Plugin setup procedure creates a predefined property for you that you can use. **After you create the property, drag and drop the branch root to Value field of property.**

[![Set branch roots 1](readme/set-branch-roots-1.png)](readme/set-branch-roots-1.png)[![Set branch roots 2](readme/set-branch-roots-2.png)](readme/set-branch-roots-2.png)

Copyright and license
---------------------

[](#copyright-and-license)

**Developed by: Igor Benko**

**License: BSD-3-Clause**

###  Health Score

23

—

LowBetter than 26% of packages

Maintenance12

Infrequent updates — may be unmaintained

Popularity20

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 86.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/a5082ec20fca835c8a833af5de2647529bad59c9423fbc58cc5625c9fbff230c?d=identicon)[IgorBenko](/maintainers/IgorBenko)

---

Top Contributors

[![IgorBenko](https://avatars.githubusercontent.com/u/10233647?v=4)](https://github.com/IgorBenko "IgorBenko (13 commits)")[![viziens](https://avatars.githubusercontent.com/u/1311530?v=4)](https://github.com/viziens "viziens (2 commits)")

### Embed Badge

![Health badge](/badges/igor-benko-pimcore-plugin-language-switcher/health.svg)

```
[![Health](https://phpackages.com/badges/igor-benko-pimcore-plugin-language-switcher/health.svg)](https://phpackages.com/packages/igor-benko-pimcore-plugin-language-switcher)
```

###  Alternatives

[smmoosavi/php-gettext

Wrapper for php-gettext by danilo segan. This library provides PHP functions to read MO files even when gettext is not compiled in or when appropriate locale is not present on the system.

1927.0k1](/packages/smmoosavi-php-gettext)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
