diff --git a/.distignore b/.distignore
index cce97b0..55ef91c 100644
--- a/.distignore
+++ b/.distignore
@@ -1,27 +1,23 @@
-/.wordpress-org
-/.git
-/.github
-/.idea
-/mslsmenu
-/bin
-/reports
-/tests
-coverage.xml
.distignore
.gitattributes
.gitignore
.phpcs.cache
+.phpcs.xml.dist
+.phpstan.neon.dist
.phpunit.result.cache
.scrutinizer.yml
-Changelog.md
+/.git
+/.github
+/.idea
+/.wordpress-org
+/bin
+/mslsmenu
+/reports
+/tests
+/vendor
+AGENTS.md
+README.md
composer.lock
+coverage.xml
mslsmenu.zip
-package.json
-package-lock.json
-phpdoc.xml
-.phpstan.neon.dist
-.phpcs.cache
-.phpcs.xml.dist
phpunit.xml
-README.md
-AGENTS.md
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index 313479a..c6e1765 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -7,12 +7,49 @@ jobs:
tag:
name: New tag
runs-on: ubuntu-latest
+ permissions:
+ id-token: write
+ contents: read
+ attestations: write
+ timeout-minutes: 70
steps:
- name: Checkout project
- uses: actions/checkout@v1
+ uses: actions/checkout@v7
+ - name: Composer dependencies
+ run: composer install --no-dev --no-interaction --optimize-autoloader
+ - name: Composer build
+ run: composer run-script build
+ # "composer build" leaves the ready-to-ship distribution in ./mslsmenu
+ # (bin/git-release.sh rsyncs the repository through .distignore). This is the very
+ # same directory that plugin-check.yml validates, so what WordPress.org receives is
+ # what Plugin Check has seen.
+ - name: Verify the build directory
+ run: |
+ BUILD_DIR=mslsmenu
+ test -d "$BUILD_DIR" || { echo "::error::$BUILD_DIR was not created by composer build"; exit 1; }
+ for required in MslsMenu.php readme.txt LICENSE languages/default.pot; do
+ test -e "$BUILD_DIR/$required" || { echo "::error::$BUILD_DIR/$required is missing"; exit 1; }
+ done
+ # vendor/ only ever held composer/installers, a build-time composer plugin.
+ # MslsMenu.php never loads vendor/autoload.php, so nothing of it may be shipped.
+ for forbidden in vendor .git .github bin tests composer.lock phpunit.xml README.md AGENTS.md mslsmenu mslsmenu.zip; do
+ test ! -e "$BUILD_DIR/$forbidden" || { echo "::error::$BUILD_DIR/$forbidden must not be shipped"; exit 1; }
+ done
+ echo "Build directory holds $(find "$BUILD_DIR" -type f | wc -l) files."
- name: WordPress Plugin Deploy
- uses: 10up/action-wordpress-plugin-deploy@master
+ uses: 10up/action-wordpress-plugin-deploy@stable
+ id: deploy
env:
SVN_PASSWORD: ${{ secrets.SVN_PASSWORD }}
SVN_USERNAME: ${{ secrets.SVN_USERNAME }}
SLUG: mslsmenu
+ # Deploy only the built distribution. Without this the action falls back to
+ # rsyncing the whole workspace through .distignore - a different artifact than
+ # the one Plugin Check verifies, and the reason the MSLS 3.0.0 release broke.
+ BUILD_DIR: mslsmenu
+ with:
+ generate-zip: true
+ - name: Attest build provenance
+ uses: johnbillion/action-wordpress-plugin-attestation@0.7.3
+ with:
+ zip-path: ${{ steps.deploy.outputs.zip-path }}
diff --git a/.github/workflows/plugin-check.yml b/.github/workflows/plugin-check.yml
index a545691..c4aeedb 100644
--- a/.github/workflows/plugin-check.yml
+++ b/.github/workflows/plugin-check.yml
@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@v4
+ uses: actions/checkout@v7
- name: Composer dependencies
run: composer install --no-dev --no-interaction --optimize-autoloader
- name: Build
diff --git a/.scrutinizer.yml b/.scrutinizer.yml
deleted file mode 100644
index c4ebfb6..0000000
--- a/.scrutinizer.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-filter:
- excluded_paths: [languages/*]
-
-checks:
- php:
- code_rating: true
-
-tools:
- php_mess_detector: true
- php_analyzer: true
- php_cpd: true
- php_pdepend: true
- php_code_sniffer:
- config:
- standard: "WordPress"
\ No newline at end of file
diff --git a/AGENTS.md b/AGENTS.md
index c6bb069..786cc06 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -1,9 +1,9 @@
# Repository Guidelines
## Project Structure & Module Organization
-- `MslsMenu.php` is the WordPress bootstrap; add hooks here or split helpers into new subdirectories under `mslsmenu/` as needed.
-- `mslsmenu/` mirrors the shipping bundle; keep source and bundle in sync before release.
-- `languages/` stores translation assets; regenerate via `wp i18n make-pot` when strings move.
+- `MslsMenu.php` is the whole plugin: bootstrap, hooks and the `MslsMenu` class. Add new code here; if it ever needs splitting, create a real source directory (for example `src/`) and register it in `.phpstan.neon.dist` — never under `mslsmenu/`.
+- `mslsmenu/` and `mslsmenu.zip` are build output: generated by `bin/git-release.sh` and gitignored. Never edit or commit them; every `composer build` deletes the directory and recreates it from the repository root through `.distignore`.
+- `languages/` stores translation assets; regenerate via `composer i18n:make-pot` (provided by `lloc/composer-i18n-scripts`) when strings move.
- `tests/` houses Pest specs with Brain Monkey shims in `tests/Pest.php`; colocate fixtures with their specs.
- `bin/` contains release tooling (`bin/git-release.sh`); prefer extending scripts over one-off commands.
@@ -14,7 +14,7 @@
- `composer phpcs` checks the WordPress coding standards and PHP 7.4 compatibility via `.phpcs.xml.dist`; `composer phpcbf` fixes what can be fixed automatically.
- `composer analyze` runs PHPStan (level 5) against `MslsMenu.php`; keep it passing before pushing.
- `composer pest:coverage` enables Xdebug coverage for pull request evidence.
-- `composer build` triggers `bin/git-release.sh`, refreshing `mslsmenu/` and `mslsmenu.zip` for distribution.
+- `composer build` runs `composer update --no-dev` and then `bin/git-release.sh`, recreating `mslsmenu/` and `mslsmenu.zip`. It strips your local dev dependencies — run `composer install` afterwards to get the tooling back.
## Coding Style & Naming Conventions
- Follow WordPress PHP standards: tabs for indentation, braces on new lines, no trailing commas.
@@ -33,5 +33,6 @@
- PRs should explain the problem, outline the fix, attach UI evidence when relevant, and confirm `composer qa` passes.
## Release Packaging Tips
-- Bump the plugin header version in `MslsMenu.php` and sync the same value into `readme.txt` before building.
-- Run `composer build`, inspect the refreshed `mslsmenu/` contents, and spot-check the generated `mslsmenu.zip` before tagging.
+- Bump the plugin header version in `MslsMenu.php` and the `Stable tag` in `readme.txt` to the same value, and add the matching `= x.y.z =` entry to the `readme.txt` changelog. WordPress.org rejects the release if header and stable tag disagree.
+- Run `composer build` locally only to inspect the result. The shipped artifact is built in CI: `.github/workflows/deploy.yml` runs the same `composer build`, verifies the contents and deploys them through `BUILD_DIR: mslsmenu`.
+- Tag without a `v` prefix (`3.0.0`) and push the tag — that push is what triggers the deploy workflow.
diff --git a/MslsMenu.php b/MslsMenu.php
index e279804..e722c2f 100644
--- a/MslsMenu.php
+++ b/MslsMenu.php
@@ -9,7 +9,7 @@
*
* Plugin Name: MslsMenu
* Requires Plugins: multisite-language-switcher
- * Version: 2.5.1
+ * Version: 3.0.0
* Plugin URI: https://wordpress.org/plugins/mslsmenu/
* Description: Adds the Multisite Language Switcher to the primary-nav-menu
* Author: Dennis Ploetner
diff --git a/README.md b/README.md
index 007668c..1640b8a 100644
--- a/README.md
+++ b/README.md
@@ -1,18 +1,27 @@
MslsMenu
========
-[](https://scrutinizer-ci.com/g/lloc/MslsMenu/?branch=master)
[](https://codecov.io/gh/lloc/MslsMenu)
-MslsMenu extends the Multisite Language Switcher by injecting a language picker into any registered WordPress navigation menu. Install it when you want users to toggle sites and languages without custom walkers.
+MslsMenu extends the Multisite Language Switcher by appending its language links to the navigation menus of your choice. Use it when you want the switcher inside a nav menu without editing your theme or writing a custom walker.
+
+Multisite Language Switcher has to be installed and active first — MslsMenu is an add-on and declares that through its `Requires Plugins` header.
## Install
- From WordPress: search for “MslsMenu” under Plugins → Add New and activate it.
-- Manual: copy the `mslsmenu/` directory to `wp-content/plugins/` and activate the plugin.
+- With Composer: `composer require wpackagist-plugin/mslsmenu`, with the [wpackagist](https://wpackagist.org) repository configured in your `composer.json`.
+- Manual: unpack the release archive and copy the resulting `mslsmenu/` folder to `wp-content/plugins/`, then activate the plugin.
## Usage
-- Head to Appearance → Menus, add the “MslsMenu” item to your chosen menu, and arrange it like any other menu entry.
-- Configure Multisite Language Switcher as usual; MslsMenu reuses its site mappings automatically.
+MslsMenu contributes no menu item, so there is nothing to place under Appearance → Menus. It hooks into `wp_nav_menu_items` and appends the switcher to whichever menus you point it at.
+
+Open Settings → Multisite Language Switcher in the site you want to configure; MslsMenu adds its own “Menu Settings” section to that page.
+
+- **Theme Location** — pick one or more registered theme locations. Every menu rendered at one of them receives the language links.
+- **Display** — the link style: flag, description, or both.
+- **Text/HTML before/after the list** and **before/after each item** — markup wrapped around the output, for example `
` per item.
+
+Everything else follows your Multisite Language Switcher configuration, including its “only with translation” setting.
## Develop
- `composer install` pulls dev tools (Pest, PHPStan, PHP_CodeSniffer, Brain Monkey).
diff --git a/composer.json b/composer.json
index bd9de9e..3acf47c 100644
--- a/composer.json
+++ b/composer.json
@@ -6,7 +6,7 @@
"homepage": "https://it.wordpress.org/plugins/mslsmenu/",
"require": {
"php": ">=7.4",
- "composer/installers": "~1.9.0"
+ "composer/installers": "^2.3"
},
"require-dev": {
"pestphp/pest": "^1.22",
diff --git a/languages/default.pot b/languages/default.pot
deleted file mode 100644
index 70b408f..0000000
--- a/languages/default.pot
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: MslsMenu 1.0\n"
-"Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/multisite-language-"
-"switcher\n"
-"POT-Creation-Date: 2015-05-04 17:08+0100\n"
-"PO-Revision-Date: 2015-05-04 17:08+0100\n"
-"Last-Translator: Dennis Ploetner \n"
-"Language-Team: realloc's asylum \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 1.5.4\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
-"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;_ex:1,2c;"
-"esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
-"X-Poedit-Basepath: .\n"
-"X-Poedit-Basepath: .\n"
-"X-Poedit-SearchPath-0: .\n"
-"X-Poedit-SearchPath-1: ..\n"
-
-#: ../MslsMenu.php:90
-msgid "Menu Settings"
-msgstr ""
-
-#: ../MslsMenu.php:95
-msgid "Theme Location"
-msgstr ""
-
-#: ../MslsMenu.php:98
-msgid "Display"
-msgstr ""
-
-#: ../MslsMenu.php:102
-msgid "Text/HTML before the list"
-msgstr ""
-
-#: ../MslsMenu.php:103
-msgid "Text/HTML after the list"
-msgstr ""
-
-#: ../MslsMenu.php:104
-msgid "Text/HTML before each item"
-msgstr ""
-
-#: ../MslsMenu.php:105
-msgid "Text/HTML after each item"
-msgstr ""
-
-#: ../MslsMenu.php:131
-msgid "-- empty --"
-msgstr ""
diff --git a/languages/index.php b/languages/index.php
index ea6de67..4de087d 100644
--- a/languages/index.php
+++ b/languages/index.php
@@ -1 +1,6 @@
- null,
+ 'plural-forms' => 'nplurals=2; plural=(n != 1);',
+ 'language' => 'German (de_DE)',
+ 'project-id-version' => 'MslsMenu 1.0',
+ 'pot-creation-date' => '2015-05-04 17:04+0100',
+ 'po-revision-date' => '2015-05-04 17:06+0100',
+ 'x-generator' => 'Poedit 1.5.4',
+ 'messages' => array(
+ 'Menu Settings' => 'Menü-Einstellungen',
+ 'Display' => 'Anzeige',
+ 'Text/HTML before the list' => 'Text/HTML vor der Liste',
+ 'Text/HTML after the list' => 'Text/HTML nach der Liste',
+ 'Text/HTML before each item' => 'Text/HTML vor jedem Element',
+ 'Text/HTML after each item' => 'Text/HTML nach jedem Element',
+ '-- empty --' => '-- leer --',
+ ),
+);
diff --git a/languages/mslsmenu-de_DE.mo b/languages/mslsmenu-de_DE.mo
index edc2df5..00a8765 100644
Binary files a/languages/mslsmenu-de_DE.mo and b/languages/mslsmenu-de_DE.mo differ
diff --git a/languages/mslsmenu-de_DE.po b/languages/mslsmenu-de_DE.po
index bbb9fa7..5c5d5e4 100644
--- a/languages/mslsmenu-de_DE.po
+++ b/languages/mslsmenu-de_DE.po
@@ -2,58 +2,83 @@ msgid ""
msgstr ""
"Project-Id-Version: MslsMenu 1.0\n"
"Report-Msgid-Bugs-To: http://wordpress.org/tag/multisite-language-switcher\n"
-"POT-Creation-Date: 2015-05-04 17:04+0100\n"
-"PO-Revision-Date: 2015-05-04 17:06+0100\n"
"Last-Translator: Dennis Ploetner \n"
"Language-Team: Dennis Ploetner \n"
-"Language: German (de_DE)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"POT-Creation-Date: 2015-05-04 17:04+0100\n"
+"PO-Revision-Date: 2015-05-04 17:06+0100\n"
+"Language: German (de_DE)\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-SourceCharset: UTF-8\n"
-"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
-"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;_ex:1,2c;"
-"esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
+"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;_ex:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
"X-Poedit-Basepath: .\n"
"X-Generator: Poedit 1.5.4\n"
"X-Poedit-SearchPath-0: .\n"
"X-Poedit-SearchPath-1: ..\n"
-# @ msls
-#: ../MslsMenu.php:90
+#: MslsMenu.php:121
+#: mslsmenu/MslsMenu.php:121
msgid "Menu Settings"
msgstr "Menü-Einstellungen"
-#: ../MslsMenu.php:95
+#: MslsMenu.php:134
+#: mslsmenu/MslsMenu.php:134
msgid "Theme Location"
msgstr ""
-# @ msls
-#: ../MslsMenu.php:98
+#: MslsMenu.php:138
+#: mslsmenu/MslsMenu.php:138
msgid "Display"
msgstr "Anzeige"
-# @ msls
-#: ../MslsMenu.php:102
+#: MslsMenu.php:143
+#: mslsmenu/MslsMenu.php:143
msgid "Text/HTML before the list"
msgstr "Text/HTML vor der Liste"
-# @ msls
-#: ../MslsMenu.php:103
+#: MslsMenu.php:144
+#: mslsmenu/MslsMenu.php:144
msgid "Text/HTML after the list"
msgstr "Text/HTML nach der Liste"
-# @ msls
-#: ../MslsMenu.php:104
+#: MslsMenu.php:145
+#: mslsmenu/MslsMenu.php:145
msgid "Text/HTML before each item"
msgstr "Text/HTML vor jedem Element"
-# @ msls
-#: ../MslsMenu.php:105
+#: MslsMenu.php:146
+#: mslsmenu/MslsMenu.php:146
msgid "Text/HTML after each item"
msgstr "Text/HTML nach jedem Element"
-#: ../MslsMenu.php:131
+#: MslsMenu.php:165
+#: mslsmenu/MslsMenu.php:165
msgid "-- empty --"
msgstr "-- leer --"
+
+#. Plugin Name of the plugin
+#: MslsMenu.php
+msgid "MslsMenu"
+msgstr ""
+
+#. Plugin URI of the plugin
+#: MslsMenu.php
+msgid "https://wordpress.org/plugins/mslsmenu/"
+msgstr ""
+
+#. Description of the plugin
+#: MslsMenu.php
+msgid "Adds the Multisite Language Switcher to the primary-nav-menu"
+msgstr ""
+
+#. Author of the plugin
+#: MslsMenu.php
+msgid "Dennis Ploetner"
+msgstr ""
+
+#. Author URI of the plugin
+#: MslsMenu.php
+msgid "http://lloc.de/"
+msgstr ""
diff --git a/languages/mslsmenu-es_ES.l10n.php b/languages/mslsmenu-es_ES.l10n.php
new file mode 100644
index 0000000..6d628ab
--- /dev/null
+++ b/languages/mslsmenu-es_ES.l10n.php
@@ -0,0 +1,17 @@
+ null,
+ 'plural-forms' => 'nplurals=2; plural=(n != 1);',
+ 'language' => 'Spanish (es_ES)',
+ 'project-id-version' => 'MslsMenu 1.0',
+ 'pot-creation-date' => '2015-05-04 17:07+0100',
+ 'po-revision-date' => '2015-05-04 17:07+0100',
+ 'x-generator' => 'Poedit 1.5.4',
+ 'messages' => array(
+ 'Display' => 'Aspecto',
+ 'Text/HTML before the list' => 'Texto/HTML antes de la lista',
+ 'Text/HTML after the list' => 'Texto/HTML después de la lista',
+ 'Text/HTML before each item' => 'Texto/HTML antes de cada ítem',
+ 'Text/HTML after each item' => 'Texto/HTML después de cada ítem',
+ ),
+);
diff --git a/languages/mslsmenu-es_ES.mo b/languages/mslsmenu-es_ES.mo
index e14c47a..edb9ed1 100644
Binary files a/languages/mslsmenu-es_ES.mo and b/languages/mslsmenu-es_ES.mo differ
diff --git a/languages/mslsmenu-es_ES.po b/languages/mslsmenu-es_ES.po
index 7fc0297..eaecbe5 100644
--- a/languages/mslsmenu-es_ES.po
+++ b/languages/mslsmenu-es_ES.po
@@ -1,143 +1,84 @@
-# Copyright (C) 2012
-# This file is distributed under the same license as the package.
msgid ""
msgstr ""
"Project-Id-Version: MslsMenu 1.0\n"
"Report-Msgid-Bugs-To: http://wordpress.org/tag/multisite-language-switcher\n"
-"POT-Creation-Date: 2015-05-04 17:07+0100\n"
-"PO-Revision-Date: 2015-05-04 17:07+0100\n"
"Last-Translator: Dennis Ploetner \n"
"Language-Team: Andreas Breitschopp \n"
-"Language: Spanish (es_ES)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"POT-Creation-Date: 2015-05-04 17:07+0100\n"
+"PO-Revision-Date: 2015-05-04 17:07+0100\n"
+"Language: Spanish (es_ES)\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-SourceCharset: UTF-8\n"
-"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
-"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;_ex:1,2c;"
-"esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
+"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;_ex:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
"X-Poedit-Basepath: .\n"
"X-Generator: Poedit 1.5.4\n"
"X-Poedit-SearchPath-0: .\n"
"X-Poedit-SearchPath-1: ..\n"
-#: ../MslsMenu.php:90
+#: MslsMenu.php:121
+#: mslsmenu/MslsMenu.php:121
msgid "Menu Settings"
msgstr ""
-#: ../MslsMenu.php:95
+#: MslsMenu.php:134
+#: mslsmenu/MslsMenu.php:134
msgid "Theme Location"
msgstr ""
-#: ../MslsMenu.php:98
+#: MslsMenu.php:138
+#: mslsmenu/MslsMenu.php:138
msgid "Display"
msgstr "Aspecto"
-#: ../MslsMenu.php:102
+#: MslsMenu.php:143
+#: mslsmenu/MslsMenu.php:143
msgid "Text/HTML before the list"
msgstr "Texto/HTML antes de la lista"
-#: ../MslsMenu.php:103
+#: MslsMenu.php:144
+#: mslsmenu/MslsMenu.php:144
msgid "Text/HTML after the list"
msgstr "Texto/HTML después de la lista"
-#: ../MslsMenu.php:104
+#: MslsMenu.php:145
+#: mslsmenu/MslsMenu.php:145
msgid "Text/HTML before each item"
msgstr "Texto/HTML antes de cada ítem"
-#: ../MslsMenu.php:105
+#: MslsMenu.php:146
+#: mslsmenu/MslsMenu.php:146
msgid "Text/HTML after each item"
msgstr "Texto/HTML después de cada ítem"
-#: ../MslsMenu.php:131
+#: MslsMenu.php:165
+#: mslsmenu/MslsMenu.php:165
msgid "-- empty --"
msgstr ""
-#~ msgid "This post is also available in %s."
-#~ msgstr "Esta entrada está también disponible en %s."
-
-#~ msgid "%s and %s"
-#~ msgstr "%s y %s"
-
-#~ msgid "Multisite Language Switcher"
-#~ msgstr "Multisite Language Switcher"
-
-#~ msgid ""
-#~ "Multisite Language Switcher is almost ready. You must complete the configuration process."
-#~ msgstr ""
-#~ "Multisite Language Switcher está casi listo. Tienes que completar aquí el proceso de configuración."
-
-#~ msgid "Multisite Language Switcher Options"
-#~ msgstr "Opciones de Multisite Language Switcher"
-
-#~ msgid ""
-#~ "To achieve maximum flexibility, you have to configure each blog "
-#~ "separately."
-#~ msgstr ""
-#~ "Para lograr máxima flexibilidad, tienes que configurar cada sitio por "
-#~ "separado."
-
-#~ msgid "Configure"
-#~ msgstr "Configurar"
-
-#~ msgid "Update"
-#~ msgstr "Actualizar"
-
-#, fuzzy
-#~ msgid "Language Settings"
-#~ msgstr "Opciones principales"
-
-#~ msgid "Sort output by description"
-#~ msgstr "Ordenar salida por descripción"
-
-#~ msgid "Display link to the current language"
-#~ msgstr "Mostrar el enlace del idioma actual"
-
-#~ msgid "Show only links with a translation"
-#~ msgstr "Sólo mostrar los enlaces traducidos"
-
-#~ msgid "Description"
-#~ msgstr "Descripción"
-
-#~ msgid "Add hint for available translations"
-#~ msgstr "Añadir sugerencia para cada traducción"
-
-#~ msgid "Hint priority"
-#~ msgstr "Prioridad de la sugerencia"
-
-#~ msgid "Custom URL for flag-images"
-#~ msgstr "URL personalizada para las imágenes de las banderas"
-
-#~ msgid "Exclude this blog from output"
-#~ msgstr "Excluir este sitio de la salida"
-
-#~ msgid "Edit the translation in the %s-blog"
-#~ msgstr "Editar la traducción en en el sitio %s"
-
-#~ msgid "Create a new translation in the %s-blog"
-#~ msgstr "Crear una nueva traducción en el sitio %s"
-
-#~ msgid "Flag and description"
-#~ msgstr "Bandera y descripción"
-
-#~ msgid "Flag only"
-#~ msgstr "Sólo bandera"
+#. Plugin Name of the plugin
+#: MslsMenu.php
+msgid "MslsMenu"
+msgstr ""
-#~ msgid "Description and flag"
-#~ msgstr "Descripción y bandera"
+#. Plugin URI of the plugin
+#: MslsMenu.php
+msgid "https://wordpress.org/plugins/mslsmenu/"
+msgstr ""
-#~ msgid "Description only"
-#~ msgstr "Sólo descripción"
+#. Description of the plugin
+#: MslsMenu.php
+msgid "Adds the Multisite Language Switcher to the primary-nav-menu"
+msgstr ""
-#~ msgid ""
-#~ "You should define at least another blog in a different language in order "
-#~ "to have some benefit from this plugin!"
-#~ msgstr ""
-#~ "¡Debes especificar al menos otro blog en otro idioma para sacarle "
-#~ "provecho a este plugin!"
+#. Author of the plugin
+#: MslsMenu.php
+msgid "Dennis Ploetner"
+msgstr ""
-#~ msgid "Title"
-#~ msgstr "Título"
+#. Author URI of the plugin
+#: MslsMenu.php
+msgid "http://lloc.de/"
+msgstr ""
diff --git a/languages/mslsmenu-fr_FR.l10n.php b/languages/mslsmenu-fr_FR.l10n.php
new file mode 100644
index 0000000..e170ca3
--- /dev/null
+++ b/languages/mslsmenu-fr_FR.l10n.php
@@ -0,0 +1,17 @@
+ null,
+ 'plural-forms' => 'nplurals=2; plural=(n != 1);',
+ 'language' => 'French (fr_FR)',
+ 'project-id-version' => 'MslsMenu 1.0',
+ 'pot-creation-date' => '2015-05-04 17:07+0100',
+ 'po-revision-date' => '2015-05-04 17:07+0100',
+ 'x-generator' => 'Poedit 1.5.4',
+ 'messages' => array(
+ 'Display' => 'Affichage',
+ 'Text/HTML before the list' => 'Texte/HTML avant la liste',
+ 'Text/HTML after the list' => 'Texte/HTML après la liste',
+ 'Text/HTML before each item' => 'Texte/HTML avant chaque article',
+ 'Text/HTML after each item' => 'Texte/HTML après chaque article',
+ ),
+);
diff --git a/languages/mslsmenu-fr_FR.mo b/languages/mslsmenu-fr_FR.mo
index efb0af2..d2a5501 100644
Binary files a/languages/mslsmenu-fr_FR.mo and b/languages/mslsmenu-fr_FR.mo differ
diff --git a/languages/mslsmenu-fr_FR.po b/languages/mslsmenu-fr_FR.po
index 0d686c8..96a8145 100644
--- a/languages/mslsmenu-fr_FR.po
+++ b/languages/mslsmenu-fr_FR.po
@@ -2,91 +2,83 @@ msgid ""
msgstr ""
"Project-Id-Version: MslsMenu 1.0\n"
"Report-Msgid-Bugs-To: http://wordpress.org/tag/multisite-language-switcher\n"
-"POT-Creation-Date: 2015-05-04 17:07+0100\n"
-"PO-Revision-Date: 2015-05-04 17:07+0100\n"
"Last-Translator: Dennis Ploetner \n"
"Language-Team: Andreas Breitschopp \n"
-"Language: French (fr_FR)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"POT-Creation-Date: 2015-05-04 17:07+0100\n"
+"PO-Revision-Date: 2015-05-04 17:07+0100\n"
+"Language: French (fr_FR)\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-SourceCharset: UTF-8\n"
-"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
-"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;_ex:1,2c;"
-"esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
+"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;_ex:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
"X-Poedit-Basepath: .\n"
"X-Generator: Poedit 1.5.4\n"
"X-Poedit-SearchPath-0: .\n"
"X-Poedit-SearchPath-1: ..\n"
-# @ msls
-#: ../MslsMenu.php:90
+#: MslsMenu.php:121
+#: mslsmenu/MslsMenu.php:121
msgid "Menu Settings"
msgstr ""
-#: ../MslsMenu.php:95
+#: MslsMenu.php:134
+#: mslsmenu/MslsMenu.php:134
msgid "Theme Location"
msgstr ""
-# @ msls
-#: ../MslsMenu.php:98
+#: MslsMenu.php:138
+#: mslsmenu/MslsMenu.php:138
msgid "Display"
msgstr "Affichage"
-# @ msls
-#: ../MslsMenu.php:102
+#: MslsMenu.php:143
+#: mslsmenu/MslsMenu.php:143
msgid "Text/HTML before the list"
msgstr "Texte/HTML avant la liste"
-# @ msls
-#: ../MslsMenu.php:103
+#: MslsMenu.php:144
+#: mslsmenu/MslsMenu.php:144
msgid "Text/HTML after the list"
msgstr "Texte/HTML après la liste"
-# @ msls
-#: ../MslsMenu.php:104
+#: MslsMenu.php:145
+#: mslsmenu/MslsMenu.php:145
msgid "Text/HTML before each item"
msgstr "Texte/HTML avant chaque article"
-# @ msls
-#: ../MslsMenu.php:105
+#: MslsMenu.php:146
+#: mslsmenu/MslsMenu.php:146
msgid "Text/HTML after each item"
msgstr "Texte/HTML après chaque article"
-#: ../MslsMenu.php:131
+#: MslsMenu.php:165
+#: mslsmenu/MslsMenu.php:165
msgid "-- empty --"
msgstr ""
-# @ msls
-#~ msgid "This post is also available in %s."
-#~ msgstr "Ce article est également disponible en %s."
-
-# @ msls
-#~ msgid "%s and %s"
-#~ msgstr "%s et %s"
-
-# @ msls
-#~ msgid "Multisite Language Switcher"
-#~ msgstr "Multisite Language Switcher"
+#. Plugin Name of the plugin
+#: MslsMenu.php
+msgid "MslsMenu"
+msgstr ""
-# @ msls
-#~ msgid "Multisite Language Switcher Options"
-#~ msgstr "Options de Multisite Language Switcher"
+#. Plugin URI of the plugin
+#: MslsMenu.php
+msgid "https://wordpress.org/plugins/mslsmenu/"
+msgstr ""
-# @ msls
-#~ msgid ""
-#~ "To achieve maximum flexibility, you have to configure each blog "
-#~ "separately."
-#~ msgstr ""
-#~ "Pour un maximum de flexibilité, vous devez configurer chaque blog "
-#~ "séparément."
+#. Description of the plugin
+#: MslsMenu.php
+msgid "Adds the Multisite Language Switcher to the primary-nav-menu"
+msgstr ""
-# @ msls
-#~ msgid "Update"
-#~ msgstr "Mise à jour"
+#. Author of the plugin
+#: MslsMenu.php
+msgid "Dennis Ploetner"
+msgstr ""
-# @ msls
-#, fuzzy
-#~ msgid "Language Settings"
-#~ msgstr "Paramètres principaux"
+#. Author URI of the plugin
+#: MslsMenu.php
+msgid "http://lloc.de/"
+msgstr ""
diff --git a/languages/mslsmenu-it_IT.l10n.php b/languages/mslsmenu-it_IT.l10n.php
new file mode 100644
index 0000000..c09f693
--- /dev/null
+++ b/languages/mslsmenu-it_IT.l10n.php
@@ -0,0 +1,19 @@
+ null,
+ 'plural-forms' => 'nplurals=2; plural=(n != 1);',
+ 'language' => 'Italian (it_IT)',
+ 'project-id-version' => 'MslsMenu 1.0',
+ 'pot-creation-date' => '2015-05-04 17:07+0100',
+ 'po-revision-date' => '2015-05-04 17:07+0100',
+ 'x-generator' => 'Poedit 1.5.4',
+ 'messages' => array(
+ 'Menu Settings' => 'Impostazioni menu',
+ 'Display' => 'Mostra',
+ 'Text/HTML before the list' => 'Testo/HTML davanti alla lista',
+ 'Text/HTML after the list' => 'Testo/HTML dietro alla lista',
+ 'Text/HTML before each item' => 'Testo/HTML davanti a ogni elemento',
+ 'Text/HTML after each item' => 'Testo/HTML dietro a ogni elemento',
+ '-- empty --' => '-- vuoto --',
+ ),
+);
diff --git a/languages/mslsmenu-it_IT.mo b/languages/mslsmenu-it_IT.mo
index 2fd8318..2942a2a 100644
Binary files a/languages/mslsmenu-it_IT.mo and b/languages/mslsmenu-it_IT.mo differ
diff --git a/languages/mslsmenu-it_IT.po b/languages/mslsmenu-it_IT.po
index de7426a..20dca73 100644
--- a/languages/mslsmenu-it_IT.po
+++ b/languages/mslsmenu-it_IT.po
@@ -2,58 +2,83 @@ msgid ""
msgstr ""
"Project-Id-Version: MslsMenu 1.0\n"
"Report-Msgid-Bugs-To: http://wordpress.org/tag/multisite-language-switcher\n"
-"POT-Creation-Date: 2015-05-04 17:07+0100\n"
-"PO-Revision-Date: 2015-05-04 17:07+0100\n"
"Last-Translator: Dennis Ploetner \n"
"Language-Team: Antonella Cucinelli \n"
-"Language: Italian (it_IT)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"POT-Creation-Date: 2015-05-04 17:07+0100\n"
+"PO-Revision-Date: 2015-05-04 17:07+0100\n"
+"Language: Italian (it_IT)\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-SourceCharset: UTF-8\n"
-"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
-"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;_ex:1,2c;"
-"esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
+"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;_ex:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
"X-Poedit-Basepath: .\n"
"X-Generator: Poedit 1.5.4\n"
"X-Poedit-SearchPath-0: .\n"
"X-Poedit-SearchPath-1: ..\n"
-# @ msls
-#: ../MslsMenu.php:90
+#: MslsMenu.php:121
+#: mslsmenu/MslsMenu.php:121
msgid "Menu Settings"
msgstr "Impostazioni menu"
-#: ../MslsMenu.php:95
+#: MslsMenu.php:134
+#: mslsmenu/MslsMenu.php:134
msgid "Theme Location"
msgstr ""
-# @ msls
-#: ../MslsMenu.php:98
+#: MslsMenu.php:138
+#: mslsmenu/MslsMenu.php:138
msgid "Display"
msgstr "Mostra"
-# @ msls
-#: ../MslsMenu.php:102
+#: MslsMenu.php:143
+#: mslsmenu/MslsMenu.php:143
msgid "Text/HTML before the list"
msgstr "Testo/HTML davanti alla lista"
-# @ msls
-#: ../MslsMenu.php:103
+#: MslsMenu.php:144
+#: mslsmenu/MslsMenu.php:144
msgid "Text/HTML after the list"
msgstr "Testo/HTML dietro alla lista"
-# @ msls
-#: ../MslsMenu.php:104
+#: MslsMenu.php:145
+#: mslsmenu/MslsMenu.php:145
msgid "Text/HTML before each item"
msgstr "Testo/HTML davanti a ogni elemento"
-# @ msls
-#: ../MslsMenu.php:105
+#: MslsMenu.php:146
+#: mslsmenu/MslsMenu.php:146
msgid "Text/HTML after each item"
msgstr "Testo/HTML dietro a ogni elemento"
-#: ../MslsMenu.php:131
+#: MslsMenu.php:165
+#: mslsmenu/MslsMenu.php:165
msgid "-- empty --"
msgstr "-- vuoto --"
+
+#. Plugin Name of the plugin
+#: MslsMenu.php
+msgid "MslsMenu"
+msgstr ""
+
+#. Plugin URI of the plugin
+#: MslsMenu.php
+msgid "https://wordpress.org/plugins/mslsmenu/"
+msgstr ""
+
+#. Description of the plugin
+#: MslsMenu.php
+msgid "Adds the Multisite Language Switcher to the primary-nav-menu"
+msgstr ""
+
+#. Author of the plugin
+#: MslsMenu.php
+msgid "Dennis Ploetner"
+msgstr ""
+
+#. Author URI of the plugin
+#: MslsMenu.php
+msgid "http://lloc.de/"
+msgstr ""
diff --git a/languages/mslsmenu-nl_NL.l10n.php b/languages/mslsmenu-nl_NL.l10n.php
new file mode 100644
index 0000000..de5013f
--- /dev/null
+++ b/languages/mslsmenu-nl_NL.l10n.php
@@ -0,0 +1,17 @@
+ null,
+ 'plural-forms' => 'nplurals=2; plural=(n != 1);',
+ 'language' => 'nl_NL',
+ 'project-id-version' => 'MslsMenu 1.0',
+ 'pot-creation-date' => '2015-05-04 17:06+0100',
+ 'po-revision-date' => '2015-05-04 17:06+0100',
+ 'x-generator' => 'Poedit 1.5.7',
+ 'messages' => array(
+ 'Display' => 'Weergave',
+ 'Text/HTML before the list' => 'Tekst/HTML voor de lijst',
+ 'Text/HTML after the list' => 'Tekst/HTML na de lijst',
+ 'Text/HTML before each item' => 'Tekst/HTML voor elk item',
+ 'Text/HTML after each item' => 'Tekst/HTML na elk item',
+ ),
+);
diff --git a/languages/mslsmenu-nl_NL.mo b/languages/mslsmenu-nl_NL.mo
index 1916c35..5410219 100644
Binary files a/languages/mslsmenu-nl_NL.mo and b/languages/mslsmenu-nl_NL.mo differ
diff --git a/languages/mslsmenu-nl_NL.po b/languages/mslsmenu-nl_NL.po
index 53d87e8..1870e59 100644
--- a/languages/mslsmenu-nl_NL.po
+++ b/languages/mslsmenu-nl_NL.po
@@ -2,59 +2,83 @@ msgid ""
msgstr ""
"Project-Id-Version: MslsMenu 1.0\n"
"Report-Msgid-Bugs-To: http://wordpress.org/tag/multisite-language-switcher\n"
-"POT-Creation-Date: 2015-05-04 17:06+0100\n"
-"PO-Revision-Date: 2015-05-04 17:06+0100\n"
"Last-Translator: Dennis Ploetner \n"
"Language-Team: Alexandra Kleijn \n"
-"Language: nl_NL\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.5.4\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"POT-Creation-Date: 2015-05-04 17:06+0100\n"
+"PO-Revision-Date: 2015-05-04 17:06+0100\n"
+"Language: nl_NL\n"
"X-Generator: Poedit 1.5.7\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-SourceCharset: UTF-8\n"
-"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
-"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;_ex:1,2c;"
-"esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
+"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;_ex:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
"X-Poedit-Basepath: .\n"
"X-Poedit-SearchPath-0: .\n"
"X-Poedit-SearchPath-1: ..\n"
-# @ msls
-#: ../MslsMenu.php:90
+#: MslsMenu.php:121
+#: mslsmenu/MslsMenu.php:121
msgid "Menu Settings"
msgstr ""
-#: ../MslsMenu.php:95
+#: MslsMenu.php:134
+#: mslsmenu/MslsMenu.php:134
msgid "Theme Location"
msgstr ""
-# @ msls
-#: ../MslsMenu.php:98
+#: MslsMenu.php:138
+#: mslsmenu/MslsMenu.php:138
msgid "Display"
msgstr "Weergave"
-# @ msls
-#: ../MslsMenu.php:102
+#: MslsMenu.php:143
+#: mslsmenu/MslsMenu.php:143
msgid "Text/HTML before the list"
msgstr "Tekst/HTML voor de lijst"
-# @ msls
-#: ../MslsMenu.php:103
+#: MslsMenu.php:144
+#: mslsmenu/MslsMenu.php:144
msgid "Text/HTML after the list"
msgstr "Tekst/HTML na de lijst"
-# @ msls
-#: ../MslsMenu.php:104
+#: MslsMenu.php:145
+#: mslsmenu/MslsMenu.php:145
msgid "Text/HTML before each item"
msgstr "Tekst/HTML voor elk item"
-# @ msls
-#: ../MslsMenu.php:105
+#: MslsMenu.php:146
+#: mslsmenu/MslsMenu.php:146
msgid "Text/HTML after each item"
msgstr "Tekst/HTML na elk item"
-#: ../MslsMenu.php:131
+#: MslsMenu.php:165
+#: mslsmenu/MslsMenu.php:165
msgid "-- empty --"
msgstr ""
+
+#. Plugin Name of the plugin
+#: MslsMenu.php
+msgid "MslsMenu"
+msgstr ""
+
+#. Plugin URI of the plugin
+#: MslsMenu.php
+msgid "https://wordpress.org/plugins/mslsmenu/"
+msgstr ""
+
+#. Description of the plugin
+#: MslsMenu.php
+msgid "Adds the Multisite Language Switcher to the primary-nav-menu"
+msgstr ""
+
+#. Author of the plugin
+#: MslsMenu.php
+msgid "Dennis Ploetner"
+msgstr ""
+
+#. Author URI of the plugin
+#: MslsMenu.php
+msgid "http://lloc.de/"
+msgstr ""
diff --git a/languages/mslsmenu-ru_RU.l10n.php b/languages/mslsmenu-ru_RU.l10n.php
new file mode 100644
index 0000000..6649a66
--- /dev/null
+++ b/languages/mslsmenu-ru_RU.l10n.php
@@ -0,0 +1,17 @@
+ null,
+ 'plural-forms' => 'nplurals=2; plural=n != 1;',
+ 'language' => 'ru_RU',
+ 'project-id-version' => 'MslsMenu 1.0',
+ 'pot-creation-date' => '2015-05-04 17:06+0100',
+ 'po-revision-date' => '2015-05-04 17:06+0100',
+ 'x-generator' => 'Poedit 1.5.4',
+ 'messages' => array(
+ 'Display' => 'Показать',
+ 'Text/HTML before the list' => 'Текст/HTML перед элементом списка',
+ 'Text/HTML after the list' => 'Текст/HTML после элемента списка',
+ 'Text/HTML before each item' => 'Текст/HTML перед элементом',
+ 'Text/HTML after each item' => 'Текст/HTML после элемента',
+ ),
+);
diff --git a/languages/mslsmenu-ru_RU.mo b/languages/mslsmenu-ru_RU.mo
index 4726a83..22bc874 100644
Binary files a/languages/mslsmenu-ru_RU.mo and b/languages/mslsmenu-ru_RU.mo differ
diff --git a/languages/mslsmenu-ru_RU.po b/languages/mslsmenu-ru_RU.po
index 2ad7b88..15ed533 100644
--- a/languages/mslsmenu-ru_RU.po
+++ b/languages/mslsmenu-ru_RU.po
@@ -2,79 +2,84 @@ msgid ""
msgstr ""
"Project-Id-Version: MslsMenu 1.0\n"
"Report-Msgid-Bugs-To: http://wordpress.org/tag/multisite-language-switcher\n"
-"POT-Creation-Date: 2015-05-04 17:06+0100\n"
-"PO-Revision-Date: 2015-05-04 17:06+0100\n"
"Last-Translator: Dennis Ploetner \n"
"Language-Team: andreyv \n"
-"Language: ru_RU\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"POT-Creation-Date: 2015-05-04 17:06+0100\n"
+"PO-Revision-Date: 2015-05-04 17:06+0100\n"
+"Language: ru_RU\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Poedit-SourceCharset: UTF-8\n"
-"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
-"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
+"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
"X-Textdomain-Support: yes\n"
"X-Generator: Poedit 1.5.4\n"
"X-Poedit-Basepath: .\n"
"X-Poedit-SearchPath-0: .\n"
"X-Poedit-SearchPath-1: ..\n"
-# @ msls
-#: ../MslsMenu.php:90
+#: MslsMenu.php:121
+#: mslsmenu/MslsMenu.php:121
msgid "Menu Settings"
msgstr ""
-#: ../MslsMenu.php:95
+#: MslsMenu.php:134
+#: mslsmenu/MslsMenu.php:134
msgid "Theme Location"
msgstr ""
-# @ msls
-#: ../MslsMenu.php:98
+#: MslsMenu.php:138
+#: mslsmenu/MslsMenu.php:138
msgid "Display"
msgstr "Показать"
-# @ msls
-#: ../MslsMenu.php:102
+#: MslsMenu.php:143
+#: mslsmenu/MslsMenu.php:143
msgid "Text/HTML before the list"
msgstr "Текст/HTML перед элементом списка"
-# @ msls
-#: ../MslsMenu.php:103
+#: MslsMenu.php:144
+#: mslsmenu/MslsMenu.php:144
msgid "Text/HTML after the list"
msgstr "Текст/HTML после элемента списка"
-# @ msls
-#: ../MslsMenu.php:104
+#: MslsMenu.php:145
+#: mslsmenu/MslsMenu.php:145
msgid "Text/HTML before each item"
msgstr "Текст/HTML перед элементом"
-# @ msls
-#: ../MslsMenu.php:105
+#: MslsMenu.php:146
+#: mslsmenu/MslsMenu.php:146
msgid "Text/HTML after each item"
msgstr "Текст/HTML после элемента"
-#: ../MslsMenu.php:131
+#: MslsMenu.php:165
+#: mslsmenu/MslsMenu.php:165
msgid "-- empty --"
msgstr ""
-# @ msls
-#~ msgid "This post is also available in %s."
-#~ msgstr "Эта статья также доступна на %s"
+#. Plugin Name of the plugin
+#: MslsMenu.php
+msgid "MslsMenu"
+msgstr ""
-# @ msls
-#~ msgid "%s and %s"
-#~ msgstr "%s и %s"
+#. Plugin URI of the plugin
+#: MslsMenu.php
+msgid "https://wordpress.org/plugins/mslsmenu/"
+msgstr ""
-# @ msls
-#~ msgid "Multisite Language Switcher Options"
-#~ msgstr "Multisite Language Switcher Настройки"
+#. Description of the plugin
+#: MslsMenu.php
+msgid "Adds the Multisite Language Switcher to the primary-nav-menu"
+msgstr ""
-# @ msls
-#~ msgid "Update"
-#~ msgstr "Обновить"
+#. Author of the plugin
+#: MslsMenu.php
+msgid "Dennis Ploetner"
+msgstr ""
-# @ msls
-#, fuzzy
-#~ msgid "Language Settings"
-#~ msgstr "Главные настройки"
+#. Author URI of the plugin
+#: MslsMenu.php
+msgid "http://lloc.de/"
+msgstr ""
diff --git a/languages/mslsmenu-zh_CN.l10n.php b/languages/mslsmenu-zh_CN.l10n.php
new file mode 100644
index 0000000..80aaf97
--- /dev/null
+++ b/languages/mslsmenu-zh_CN.l10n.php
@@ -0,0 +1,17 @@
+ null,
+ 'plural-forms' => 'nplurals=2; plural=(n != 1);',
+ 'language' => 'Simplified Chinese (zh_CN)',
+ 'project-id-version' => 'MslsMenu 1.0',
+ 'pot-creation-date' => '2015-05-04 17:06+0100',
+ 'po-revision-date' => '2015-05-04 17:06+0100',
+ 'x-generator' => 'Poedit 1.5.4',
+ 'messages' => array(
+ 'Display' => '显示',
+ 'Text/HTML before the list' => 'Text/HTML 列表之前',
+ 'Text/HTML after the list' => 'Text/HTML 列表之后',
+ 'Text/HTML before each item' => 'Text/HTML 每个项目之前',
+ 'Text/HTML after each item' => 'Text/HTML 每个项目之后',
+ ),
+);
diff --git a/languages/mslsmenu-zh_CN.mo b/languages/mslsmenu-zh_CN.mo
index 188c622..1fdcf84 100644
Binary files a/languages/mslsmenu-zh_CN.mo and b/languages/mslsmenu-zh_CN.mo differ
diff --git a/languages/mslsmenu-zh_CN.po b/languages/mslsmenu-zh_CN.po
index abdc6c6..43fa83d 100644
--- a/languages/mslsmenu-zh_CN.po
+++ b/languages/mslsmenu-zh_CN.po
@@ -2,158 +2,83 @@ msgid ""
msgstr ""
"Project-Id-Version: MslsMenu 1.0\n"
"Report-Msgid-Bugs-To: http://wordpress.org/tag/multisite-language-switcher\n"
-"POT-Creation-Date: 2015-05-04 17:06+0100\n"
-"PO-Revision-Date: 2015-05-04 17:06+0100\n"
"Last-Translator: Dennis Ploetner \n"
"Language-Team: DrBenson \n"
-"Language: Simplified Chinese (zh_CN)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"POT-Creation-Date: 2015-05-04 17:06+0100\n"
+"PO-Revision-Date: 2015-05-04 17:06+0100\n"
+"Language: Simplified Chinese (zh_CN)\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-SourceCharset: UTF-8\n"
-"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
-"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;_ex:1,2c;"
-"esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
+"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;_ex:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
"X-Poedit-Basepath: .\n"
"X-Generator: Poedit 1.5.4\n"
"X-Poedit-SearchPath-0: .\n"
"X-Poedit-SearchPath-1: ..\n"
-#: ../MslsMenu.php:90
+#: MslsMenu.php:121
+#: mslsmenu/MslsMenu.php:121
msgid "Menu Settings"
msgstr ""
-#: ../MslsMenu.php:95
+#: MslsMenu.php:134
+#: mslsmenu/MslsMenu.php:134
msgid "Theme Location"
msgstr ""
-#: ../MslsMenu.php:98
+#: MslsMenu.php:138
+#: mslsmenu/MslsMenu.php:138
msgid "Display"
msgstr "显示"
-#: ../MslsMenu.php:102
+#: MslsMenu.php:143
+#: mslsmenu/MslsMenu.php:143
msgid "Text/HTML before the list"
msgstr "Text/HTML 列表之前"
-#: ../MslsMenu.php:103
+#: MslsMenu.php:144
+#: mslsmenu/MslsMenu.php:144
msgid "Text/HTML after the list"
msgstr "Text/HTML 列表之后"
-#: ../MslsMenu.php:104
+#: MslsMenu.php:145
+#: mslsmenu/MslsMenu.php:145
msgid "Text/HTML before each item"
msgstr "Text/HTML 每个项目之前"
-#: ../MslsMenu.php:105
+#: MslsMenu.php:146
+#: mslsmenu/MslsMenu.php:146
msgid "Text/HTML after each item"
msgstr "Text/HTML 每个项目之后"
-#: ../MslsMenu.php:131
+#: MslsMenu.php:165
+#: mslsmenu/MslsMenu.php:165
msgid "-- empty --"
msgstr ""
-#~ msgid "This post is also available in %s."
-#~ msgstr "这篇文章同时有 %s"
-
-#~ msgid "%s and %s"
-#~ msgstr "%s 和 %s"
-
-#~ msgid ""
-#~ "The Multisite Language Switcher needs the activation of the multisite-"
-#~ "feature for working properly. Please read this post if you don't know the meaning."
-#~ msgstr ""
-#~ "激活在多站点语系切换的正常运作所需要的多站点功能。请仔细阅读 this post 如果你不清楚这意思。"
-
-#~ msgid "Multisite Language Switcher"
-#~ msgstr "多站点语系切换"
-
-#~ msgid ""
-#~ "Multisite Language Switcher is almost ready. You must complete the configuration process."
-#~ msgstr "多站点语系切换几乎准备就绪。您必须完成设置程序."
-
-#~ msgid "Multisite Language Switcher Options"
-#~ msgstr "多站点语系切换选项"
-
-#~ msgid ""
-#~ "To achieve maximum flexibility, you have to configure each blog "
-#~ "separately."
-#~ msgstr "为了实现最大的灵活性,你必须单独设置每个博客。"
-
-#~ msgid "Configure"
-#~ msgstr "设置"
-
-#~ msgid "Update"
-#~ msgstr "更新"
-
-#~ msgid "Advanced Settings"
-#~ msgstr "高级设置选项"
-
-#~ msgid "Sort output by description"
-#~ msgstr "依照描述内容排序"
-
-#~ msgid "Display link to the current language"
-#~ msgstr "显示当前的语系的连结"
-
-#~ msgid "Show only links with a translation"
-#~ msgstr "只显示已翻译的连结"
-
-#~ msgid "Description"
-#~ msgstr "内容"
-
-#~ msgid "Add hint for available translations"
-#~ msgstr "添加提示用于可用的翻译"
-
-#~ msgid "Hint priority"
-#~ msgstr "提示优先权"
-
-#~ msgid "Activate experimental autocomplete inputs"
-#~ msgstr "启用实验性的自动完成输入"
-
-#~ msgid "Custom URL for flag-images"
-#~ msgstr "自定义URL用于旗帜-图像"
-
-#~ msgid "Reference user"
-#~ msgstr "参考用戶"
-
-#~ msgid "Exclude this blog from output"
-#~ msgstr "从输出中排除此博客"
-
-#~ msgid "Edit the translation in the %s-blog"
-#~ msgstr "编辑翻译于 %s-博客"
-
-#~ msgid "Create a new translation in the %s-blog"
-#~ msgstr "创建在 %s-博客 的一个新的翻译"
-
-#~ msgid "Show all blogs"
-#~ msgstr "显示所有网志"
-
-#~ msgid "Not translated in the %s-blog"
-#~ msgstr "%s-博客 的一个新的翻译"
-
-#~ msgid "Flag and description"
-#~ msgstr "旗帜和内容描述"
-
-#~ msgid "Flag only"
-#~ msgstr "只有旗帜"
-
-#~ msgid "Description and flag"
-#~ msgstr "内容描述和旗帜"
+#. Plugin Name of the plugin
+#: MslsMenu.php
+msgid "MslsMenu"
+msgstr ""
-#~ msgid "Description only"
-#~ msgstr "只有内容描述"
+#. Plugin URI of the plugin
+#: MslsMenu.php
+msgid "https://wordpress.org/plugins/mslsmenu/"
+msgstr ""
-#~ msgid ""
-#~ "You should define at least another blog in a different language in order "
-#~ "to have some benefit from this plugin!"
-#~ msgstr "你应该至少在另一个博客定义不同的语系才能于这个插件有一些效益! "
+#. Description of the plugin
+#: MslsMenu.php
+msgid "Adds the Multisite Language Switcher to the primary-nav-menu"
+msgstr ""
-#~ msgid "No available translations found"
-#~ msgstr "没有发现可用的翻译"
+#. Author of the plugin
+#: MslsMenu.php
+msgid "Dennis Ploetner"
+msgstr ""
-#~ msgid "Title"
-#~ msgstr "标题"
+#. Author URI of the plugin
+#: MslsMenu.php
+msgid "http://lloc.de/"
+msgstr ""
diff --git a/languages/mslsmenu.pot b/languages/mslsmenu.pot
new file mode 100644
index 0000000..c3cb1af
--- /dev/null
+++ b/languages/mslsmenu.pot
@@ -0,0 +1,80 @@
+# Copyright (C) 2026 Dennis Ploetner
+# This file is distributed under the GPLv2 or later.
+msgid ""
+msgstr ""
+"Project-Id-Version: MslsMenu 3.0.0\n"
+"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/MslsMenu\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: LANGUAGE \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"POT-Creation-Date: 2026-08-22T14:16:27+00:00\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"X-Generator: WP-CLI 2.11.0\n"
+"X-Domain: mslsmenu\n"
+
+#. Plugin Name of the plugin
+#: MslsMenu.php
+msgid "MslsMenu"
+msgstr ""
+
+#. Plugin URI of the plugin
+#: MslsMenu.php
+msgid "https://wordpress.org/plugins/mslsmenu/"
+msgstr ""
+
+#. Description of the plugin
+#: MslsMenu.php
+msgid "Adds the Multisite Language Switcher to the primary-nav-menu"
+msgstr ""
+
+#. Author of the plugin
+#: MslsMenu.php
+msgid "Dennis Ploetner"
+msgstr ""
+
+#. Author URI of the plugin
+#: MslsMenu.php
+msgid "http://lloc.de/"
+msgstr ""
+
+#: MslsMenu.php:121
+#: mslsmenu/MslsMenu.php:121
+msgid "Menu Settings"
+msgstr ""
+
+#: MslsMenu.php:134
+#: mslsmenu/MslsMenu.php:134
+msgid "Theme Location"
+msgstr ""
+
+#: MslsMenu.php:138
+#: mslsmenu/MslsMenu.php:138
+msgid "Display"
+msgstr ""
+
+#: MslsMenu.php:143
+#: mslsmenu/MslsMenu.php:143
+msgid "Text/HTML before the list"
+msgstr ""
+
+#: MslsMenu.php:144
+#: mslsmenu/MslsMenu.php:144
+msgid "Text/HTML after the list"
+msgstr ""
+
+#: MslsMenu.php:145
+#: mslsmenu/MslsMenu.php:145
+msgid "Text/HTML before each item"
+msgstr ""
+
+#: MslsMenu.php:146
+#: mslsmenu/MslsMenu.php:146
+msgid "Text/HTML after each item"
+msgstr ""
+
+#: MslsMenu.php:165
+#: mslsmenu/MslsMenu.php:165
+msgid "-- empty --"
+msgstr ""
diff --git a/readme.txt b/readme.txt
index 066b9b4..3c02f8b 100644
--- a/readme.txt
+++ b/readme.txt
@@ -3,10 +3,10 @@
Contributors: realloc
Donate link: http://www.greenpeace.org/international/
Tags: multilingual, multisite, language, switcher, menu
-Requires at least: 5.3
-Tested up to: 7.0
+Requires at least: 6.1
+Tested up to: 7.1
Requires PHP: 7.4
-Stable tag: 2.5.1
+Stable tag: 3.0.0
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -35,6 +35,11 @@ But this can lead to fatal errors if you don't know much about PHP, or maybe the
== Changelog ==
+= 3.0.0 =
+* Changed: version aligned with Multisite Language Switcher 3.0 - this is the add-on release for the new MSLS major version.
+* Changed: requires WordPress 6.1 or newer, tested up to 7.1.
+* Internal: the release is deployed from the built distribution, the same artifact Plugin Check verifies. Build-only dependencies are no longer shipped.
+
= 2.5.1 =
* plugin check integration added
* missing license problem addressed
@@ -82,3 +87,8 @@ But this can lead to fatal errors if you don't know much about PHP, or maybe the
* marked as stable
* WordPress Coding Standards
* PHPDocs
+
+== Upgrade Notice ==
+
+= 3.0.0 =
+Version alignment with Multisite Language Switcher 3.0. Requires WordPress 6.1 or newer.