PHPackages                             wirelab/language\_switcher-plugin - 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. wirelab/language\_switcher-plugin

AbandonedArchivedStreams-addon[Localization &amp; i18n](/categories/localization)

wirelab/language\_switcher-plugin
=================================

A plugin providing users with numerous ways of switching language.

1.3(8y ago)04.5k4MITPHP

Since Mar 10Pushed 5y agoCompare

[ Source](https://github.com/wirelab/language_switcher-plugin)[ Packagist](https://packagist.org/packages/wirelab/language_switcher-plugin)[ Docs](http://wirelab.nl/)[ RSS](/packages/wirelab-language-switcher-plugin/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (7)DependenciesVersions (9)Used By (0)

Language switcher plugin
========================

[](#language-switcher-plugin)

⚠️ This repository has been deprecated ⚠️
-----------------------------------------

[](#️-this-repository-has-been-deprecated-️)

A PyroCMS 3 plugin providing users with numerous ways of switching language. The default types use bootstrap 3.

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

[](#installation)

```
composer require wirelab/language_switcher-plugin
```

Usage
-----

[](#usage)

Call `{{ languageSwitcher($type, $options) }}` in the desired twig file.
For example `{{ languageSwitcher('dropdown', {'toggle_title':'Choose language'}) }}`

### String $type

[](#string-type)

The default types are `dropdown`,`modal`, and `li`. When using the `modal` type make sure to call it *after* loading jQuery.

#### Default types

[](#default-types)

#### Li

[](#li)

[![](https://camo.githubusercontent.com/2188b665dc769bcd2e87a65bcd4ae34dadf1cf8a162685b48c7dda8fdf94d6b5/68747470733a2f2f776972656c61622e6769746875622e696f2f696d616765732f6c616e67756167655f73776974636865722d706c7567696e2f6c692e706e67)](https://camo.githubusercontent.com/2188b665dc769bcd2e87a65bcd4ae34dadf1cf8a162685b48c7dda8fdf94d6b5/68747470733a2f2f776972656c61622e6769746875622e696f2f696d616765732f6c616e67756167655f73776974636865722d706c7567696e2f6c692e706e67)

#### Dropdown

[](#dropdown)

[![](https://camo.githubusercontent.com/b0de84b4150886105f65a92286ff98f12d434efc9e7b7367ce6783472195230c/68747470733a2f2f776972656c61622e6769746875622e696f2f696d616765732f6c616e67756167655f73776974636865722d706c7567696e2f64726f70646f776e2e706e67)](https://camo.githubusercontent.com/b0de84b4150886105f65a92286ff98f12d434efc9e7b7367ce6783472195230c/68747470733a2f2f776972656c61622e6769746875622e696f2f696d616765732f6c616e67756167655f73776974636865722d706c7567696e2f64726f70646f776e2e706e67)

#### Modal

[](#modal)

The modal makes a cookie when dismissed.

[![](https://camo.githubusercontent.com/804800fcb22f34e3865beae22f682dd183735a16ec60bcda71550f53f004e383/68747470733a2f2f776972656c61622e6769746875622e696f2f696d616765732f6c616e67756167655f73776974636865722d706c7567696e2f6d6f64616c2e706e67)](https://camo.githubusercontent.com/804800fcb22f34e3865beae22f682dd183735a16ec60bcda71550f53f004e383/68747470733a2f2f776972656c61622e6769746875622e696f2f696d616765732f6c616e67756167655f73776974636865722d706c7567696e2f6d6f64616c2e706e67)

#### Making a new type

[](#making-a-new-type)

New types can be made by adding a view under `/resources/views/`. When making a new view it'll automatically add it as a type.

The following variables are passed to all views:
`container.class`
`toggle.class`
`ul.class`
`li.class`
`a.class`

`toggle.title`

`locales` *array of all available locales formated like: `[[url => locale],[url => locale]]`*

The current variables contain data about the locale that's currently in use
`current.locale`
`current.country`
`current.language`

The prefered variables contain data about the user.
`prefered.locale`
`prefered.enabled` *Checks if the users language is available/enabled.*
`prefered.url` *Url to the current page in the users locale.*
`prefered.country`
`prefered.language`

### Array $options (optional)

[](#array-options-optional)

The `$options` array accepts the following options:
`container_class`
`toggle_class`
`toggle_title` *When no title is given the current locale will be used*
`ul_class`
`li_class`
`a_class`
`pecl` Opt out of usign PECL *( Will remove some features)*

###  Health Score

33

—

LowBetter than 74% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity19

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity68

Established project with proven stability

 Bus Factor1

Top contributor holds 88% 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.

###  Release Activity

Cadence

Every ~37 days

Recently: every ~60 days

Total

8

Last Release

3084d ago

### Community

Maintainers

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

![](https://www.gravatar.com/avatar/18cbaf4dda9cf7d4e77a80aeb9b6ca3253d3e66e3756e9f8e53cb55741345e5a?d=identicon)[ddnetters](/maintainers/ddnetters)

---

Top Contributors

[![ddnetters](https://avatars.githubusercontent.com/u/15140770?v=4)](https://github.com/ddnetters "ddnetters (22 commits)")[![AraneaDev](https://avatars.githubusercontent.com/u/12177132?v=4)](https://github.com/AraneaDev "AraneaDev (1 commits)")[![CodeAndWeb](https://avatars.githubusercontent.com/u/716009?v=4)](https://github.com/CodeAndWeb "CodeAndWeb (1 commits)")[![fryiee](https://avatars.githubusercontent.com/u/5254791?v=4)](https://github.com/fryiee "fryiee (1 commits)")

---

Tags

languagelanguage-switcher-pluginmultilanguagepyropyrocmspyrocms-modulespyrocms3switch-languagewirelablanguagepyrocmslanguage-switcherwirelabpyrocms 3

### Embed Badge

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

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

###  Alternatives

[codezero/laravel-localized-routes

A convenient way to set up, manage and use localized routes in a Laravel app.

543638.1k4](/packages/codezero-laravel-localized-routes)[gettext/languages

gettext languages with plural rules

7530.3M10](/packages/gettext-languages)[vanderlee/syllable

Text syllable splitting and hyphenation using Frank M. Liang's TeX algorithm.

124432.6k8](/packages/vanderlee-syllable)[josiasmontag/laravel-redis-mock

This Laravel package provides a Redis mock for your tests

471.8M16](/packages/josiasmontag-laravel-redis-mock)[whitecube/lingua

A PHP language codes converter, from and to the most common formats (ISO, W3C, PHP and human-readable names).

441.2M15](/packages/whitecube-lingua)[codezero/browser-locale

Get the most preferred locales from your visitor's browser.

161.4M13](/packages/codezero-browser-locale)

PHPackages © 2026

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