diff --git a/CHANGELOG.md b/CHANGELOG.md
index 035e1c9..77bf76f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
# Changelog
+## 1.5.0
+* Feat: Add `More Plugins` options page.
+* Fix: Added missing translations for existing languages.
+
## 1.4.3
* Tested up to WP 7.0.
diff --git a/composer.json b/composer.json
index 73fc6ce..729c282 100644
--- a/composer.json
+++ b/composer.json
@@ -15,6 +15,9 @@
"email": "badasswpdev@gmail.com"
}
],
+ "require": {
+ "badasswp/pluginate": "^1.0"
+ },
"require-dev": {
"phpunit/phpunit": "^9.6",
"mockery/mockery": "^1.6",
@@ -40,4 +43,4 @@
"analyse": "vendor/bin/phpstan analyse --memory-limit=2048M",
"coverage": "XDEBUG_MODE=coverage vendor/bin/phpunit --coverage-cobertura cobertura.xml && coveralls --repo-token=lo7lxZfU7gVcSJwU7oXEx6qPZW8F9p7wt --file=cobertura.xml"
}
-}
\ No newline at end of file
+}
diff --git a/inc/Services/Admin.php b/inc/Services/Admin.php
index 192f530..d05ad5f 100644
--- a/inc/Services/Admin.php
+++ b/inc/Services/Admin.php
@@ -13,7 +13,27 @@
use SqlToCpt\Abstracts\Service;
use SqlToCpt\Interfaces\Kernel;
+use Pluginate\Admin as Pluginate;
+
class Admin extends Service implements Kernel {
+ /**
+ * Pluginate instance.
+ *
+ * @since 1.5.0
+ *
+ * @var Pluginate
+ */
+ public Pluginate $pluginate;
+
+ /**
+ * Admin constructor.
+ *
+ * @since 1.5.0
+ */
+ public function __construct() {
+ $this->pluginate = new Pluginate( 'sql-to-cpt' );
+ }
+
/**
* Bind to WP.
*
@@ -23,6 +43,7 @@ class Admin extends Service implements Kernel {
*/
public function register(): void {
add_action( 'admin_menu', [ $this, 'register_admin_menu' ] );
+ add_action( 'admin_init', [ $this->pluginate, 'init' ] );
}
/**
@@ -44,6 +65,15 @@ public function register_admin_menu(): void {
'dashicons-database',
90
);
+
+ add_submenu_page(
+ 'sql-to-cpt',
+ __( 'More Plugins', 'sql-to-cpt' ),
+ __( 'More Plugins', 'sql-to-cpt' ),
+ 'manage_options',
+ sprintf( '%s-more-plugins', 'sql-to-cpt' ),
+ [ $this, 'register_more_plugins' ]
+ );
}
/**
@@ -69,4 +99,33 @@ public function register_admin_page(): void {
]
);
}
+
+ /**
+ * Register More Plugins.
+ *
+ * This controls the display of the
+ * "More Plugins" submenu page.
+ *
+ * @since 1.5.0
+ *
+ * @return void
+ */
+ public function register_more_plugins(): void {
+ // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ vprintf(
+ '',
+ array_map(
+ '__',
+ [
+ 'More Plugins',
+ 'Check out some other amazing plugin of ours...',
+ $this->pluginate->get_more_plugins(),
+ ]
+ )
+ );
+ }
}
diff --git a/languages/sql-to-cpt-ar-a442c66c97675e8bda3e3b62b3a8c8ec.json b/languages/sql-to-cpt-ar-78222c691445bffc102076235eac5b16.json
similarity index 54%
rename from languages/sql-to-cpt-ar-a442c66c97675e8bda3e3b62b3a8c8ec.json
rename to languages/sql-to-cpt-ar-78222c691445bffc102076235eac5b16.json
index e5a72b6..129f9b7 100644
--- a/languages/sql-to-cpt-ar-a442c66c97675e8bda3e3b62b3a8c8ec.json
+++ b/languages/sql-to-cpt-ar-78222c691445bffc102076235eac5b16.json
@@ -1,14 +1,13 @@
{
- "translation-revision-date": "2024-08-29 02:16+0100",
+ "translation-revision-date": "2024-10-06 00:17+0100",
"generator": "WP-CLI/2.6.0",
"source": "dist/app.js",
- "domain": "messages",
"locale_data": {
"messages": {
"": {
"domain": "messages",
- "lang": "ar\\n",
- "plural-forms": "nplurals=2; plural=(n != 1);"
+ "lang": "ar",
+ "plural-forms": "nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);"
},
"SQL to CPT": [
"SQL إلى CPT"
@@ -23,16 +22,25 @@
"استخدام SQL"
],
"Table": [
- "جدول"
+ "الجدول"
],
"Columns": [
- "اعمدة"
+ "الأعمدة"
],
"Importing SQL...": [
- "جاري استيراد SQL..."
+ "جارٍ استيراد SQL..."
],
"Import Completed!": [
"اكتمل الاستيراد!"
+ ],
+ "Upload SQL File": [
+ "رفع ملف SQL"
+ ],
+ "Select CPT": [
+ "اختر CPT"
+ ],
+ "Purge CPT": [
+ "حذف CPT"
]
}
}
diff --git a/languages/sql-to-cpt-da_DK-d3edc180b3c6d7928a5594c5580d1bda.json b/languages/sql-to-cpt-da_DK-78222c691445bffc102076235eac5b16.json
similarity index 65%
rename from languages/sql-to-cpt-da_DK-d3edc180b3c6d7928a5594c5580d1bda.json
rename to languages/sql-to-cpt-da_DK-78222c691445bffc102076235eac5b16.json
index 71fc30d..b420881 100644
--- a/languages/sql-to-cpt-da_DK-d3edc180b3c6d7928a5594c5580d1bda.json
+++ b/languages/sql-to-cpt-da_DK-78222c691445bffc102076235eac5b16.json
@@ -1,5 +1,5 @@
{
- "translation-revision-date": "2024-10-06 03:27+0100",
+ "translation-revision-date": "2026-06-22 20:30+0000",
"generator": "WP-CLI/2.6.0",
"source": "dist/app.js",
"domain": "messages",
@@ -7,12 +7,9 @@
"messages": {
"": {
"domain": "messages",
- "lang": "da_DK\\n",
- "plural-forms": "nplurals=2; plural=(n != 1);"
+ "plural-forms": "Plural-Forms: nplurals=2; plural=(n != 1);",
+ "lang": "da_DK"
},
- "SQL to CPT": [
- "SQL til CPT"
- ],
"Import SQL File": [
"Importer SQL-fil"
],
@@ -33,7 +30,16 @@
],
"Import Completed!": [
"Import fuldført!"
+ ],
+ "Upload SQL File": [
+ "Upload SQL-fil"
+ ],
+ "Select CPT": [
+ "Vælg CPT"
+ ],
+ "Purge CPT": [
+ "Rens CPT"
]
}
}
-}
\ No newline at end of file
+}
diff --git a/languages/sql-to-cpt-de_DE-a442c66c97675e8bda3e3b62b3a8c8ec.json b/languages/sql-to-cpt-de_DE-78222c691445bffc102076235eac5b16.json
similarity index 59%
rename from languages/sql-to-cpt-de_DE-a442c66c97675e8bda3e3b62b3a8c8ec.json
rename to languages/sql-to-cpt-de_DE-78222c691445bffc102076235eac5b16.json
index 8dab7e4..031ab13 100644
--- a/languages/sql-to-cpt-de_DE-a442c66c97675e8bda3e3b62b3a8c8ec.json
+++ b/languages/sql-to-cpt-de_DE-78222c691445bffc102076235eac5b16.json
@@ -1,5 +1,5 @@
{
- "translation-revision-date": "2024-08-29 02:16+0100",
+ "translation-revision-date": "2026-06-22 20:30+0000",
"generator": "WP-CLI/2.6.0",
"source": "dist/app.js",
"domain": "messages",
@@ -7,12 +7,9 @@
"messages": {
"": {
"domain": "messages",
- "lang": "de_DE\\n",
- "plural-forms": "nplurals=2; plural=(n != 1);"
+ "plural-forms": "Plural-Forms: nplurals=2; plural=(n != 1);",
+ "lang": "de_DE"
},
- "SQL to CPT": [
- "SQL zu CPT"
- ],
"Import SQL File": [
"SQL-Datei importieren"
],
@@ -20,7 +17,7 @@
"SQL-Datei auswählen"
],
"Use SQL": [
- "Verwenden von SQL"
+ "SQL verwenden"
],
"Table": [
"Tabelle"
@@ -32,7 +29,16 @@
"SQL wird importiert..."
],
"Import Completed!": [
- "Import wurde abgeschlossen!"
+ "Import abgeschlossen!"
+ ],
+ "Upload SQL File": [
+ "SQL-Datei hochladen"
+ ],
+ "Select CPT": [
+ "CPT auswählen"
+ ],
+ "Purge CPT": [
+ "CPT bereinigen"
]
}
}
diff --git a/languages/sql-to-cpt-es_ES-a442c66c97675e8bda3e3b62b3a8c8ec.json b/languages/sql-to-cpt-es_ES-78222c691445bffc102076235eac5b16.json
similarity index 55%
rename from languages/sql-to-cpt-es_ES-a442c66c97675e8bda3e3b62b3a8c8ec.json
rename to languages/sql-to-cpt-es_ES-78222c691445bffc102076235eac5b16.json
index 992a33d..44b3722 100644
--- a/languages/sql-to-cpt-es_ES-a442c66c97675e8bda3e3b62b3a8c8ec.json
+++ b/languages/sql-to-cpt-es_ES-78222c691445bffc102076235eac5b16.json
@@ -1,5 +1,5 @@
{
- "translation-revision-date": "2024-08-29 02:16+0100",
+ "translation-revision-date": "2026-06-22 20:30+0000",
"generator": "WP-CLI/2.6.0",
"source": "dist/app.js",
"domain": "messages",
@@ -7,17 +7,14 @@
"messages": {
"": {
"domain": "messages",
- "lang": "es_ES\\n",
- "plural-forms": "nplurals=2; plural=(n != 1);"
+ "plural-forms": "Plural-Forms: nplurals=2; plural=(n != 1);",
+ "lang": "es_ES"
},
- "SQL to CPT": [
- "De SQL a CPT"
- ],
"Import SQL File": [
"Importar archivo SQL"
],
"Select SQL File": [
- "Seleccione Archivo SQL"
+ "Seleccionar archivo SQL"
],
"Use SQL": [
"Usar SQL"
@@ -29,10 +26,19 @@
"Columnas"
],
"Importing SQL...": [
- "Importación de SQL..."
+ "Importando SQL..."
],
"Import Completed!": [
- "Importación completada!"
+ "¡Importación completada!"
+ ],
+ "Upload SQL File": [
+ "Subir archivo SQL"
+ ],
+ "Select CPT": [
+ "Seleccionar CPT"
+ ],
+ "Purge CPT": [
+ "Purgar CPT"
]
}
}
diff --git a/languages/sql-to-cpt-fr_FR-a442c66c97675e8bda3e3b62b3a8c8ec.json b/languages/sql-to-cpt-fr_FR-78222c691445bffc102076235eac5b16.json
similarity index 52%
rename from languages/sql-to-cpt-fr_FR-a442c66c97675e8bda3e3b62b3a8c8ec.json
rename to languages/sql-to-cpt-fr_FR-78222c691445bffc102076235eac5b16.json
index 5b07b42..17e154c 100644
--- a/languages/sql-to-cpt-fr_FR-a442c66c97675e8bda3e3b62b3a8c8ec.json
+++ b/languages/sql-to-cpt-fr_FR-78222c691445bffc102076235eac5b16.json
@@ -1,5 +1,5 @@
{
- "translation-revision-date": "2024-08-29 02:16+0100",
+ "translation-revision-date": "2026-06-22 20:30+0000",
"generator": "WP-CLI/2.6.0",
"source": "dist/app.js",
"domain": "messages",
@@ -7,32 +7,35 @@
"messages": {
"": {
"domain": "messages",
- "lang": "fr_FR\\n",
- "plural-forms": "nplurals=2; plural=(n != 1);"
+ "plural-forms": "Plural-Forms: nplurals=2; plural=(n > 1);",
+ "lang": "fr_FR"
},
- "SQL to CPT": [
- "SQL vers CPT"
- ],
"Import SQL File": [
"Importer un fichier SQL"
],
"Select SQL File": [
- "Sélectionnez Fichier SQL"
+ "Sélectionner un fichier SQL"
],
"Use SQL": [
"Utiliser SQL"
],
- "Table": [
- "Tableau"
- ],
"Columns": [
"Colonnes"
],
"Importing SQL...": [
- "Importer SQL..."
+ "Importation SQL en cours..."
],
"Import Completed!": [
- "Importation terminée avec succès !"
+ "Importation terminée !"
+ ],
+ "Upload SQL File": [
+ "Téléverser un fichier SQL"
+ ],
+ "Select CPT": [
+ "Sélectionner un CPT"
+ ],
+ "Purge CPT": [
+ "Purger le CPT"
]
}
}
diff --git a/languages/sql-to-cpt-he_IL-a442c66c97675e8bda3e3b62b3a8c8ec.json b/languages/sql-to-cpt-he_IL-78222c691445bffc102076235eac5b16.json
similarity index 56%
rename from languages/sql-to-cpt-he_IL-a442c66c97675e8bda3e3b62b3a8c8ec.json
rename to languages/sql-to-cpt-he_IL-78222c691445bffc102076235eac5b16.json
index 371be84..83b9c11 100644
--- a/languages/sql-to-cpt-he_IL-a442c66c97675e8bda3e3b62b3a8c8ec.json
+++ b/languages/sql-to-cpt-he_IL-78222c691445bffc102076235eac5b16.json
@@ -1,5 +1,5 @@
{
- "translation-revision-date": "2024-08-29 02:16+0100",
+ "translation-revision-date": "2026-06-22 20:30+0000",
"generator": "WP-CLI/2.6.0",
"source": "dist/app.js",
"domain": "messages",
@@ -7,20 +7,17 @@
"messages": {
"": {
"domain": "messages",
- "lang": "he_IL\\n",
- "plural-forms": "nplurals=2; plural=(n != 1);"
+ "plural-forms": "Plural-Forms: nplurals=2; plural=(n != 1);",
+ "lang": "he_IL"
},
- "SQL to CPT": [
- "SQL ל CPT"
- ],
"Import SQL File": [
- "ייבוא קובץ SQL"
+ "ייבא קובץ SQL"
],
"Select SQL File": [
"בחר קובץ SQL"
],
"Use SQL": [
- "שימוש ב- SQL"
+ "השתמש ב-SQL"
],
"Table": [
"טבלה"
@@ -29,10 +26,19 @@
"עמודות"
],
"Importing SQL...": [
- "ייבוא SQL..."
+ "מייבא SQL..."
],
"Import Completed!": [
"הייבוא הושלם!"
+ ],
+ "Upload SQL File": [
+ "העלה קובץ SQL"
+ ],
+ "Select CPT": [
+ "בחר CPT"
+ ],
+ "Purge CPT": [
+ "נקה CPT"
]
}
}
diff --git a/languages/sql-to-cpt-hi_IN-78222c691445bffc102076235eac5b16.json b/languages/sql-to-cpt-hi_IN-78222c691445bffc102076235eac5b16.json
new file mode 100644
index 0000000..169cace
--- /dev/null
+++ b/languages/sql-to-cpt-hi_IN-78222c691445bffc102076235eac5b16.json
@@ -0,0 +1,45 @@
+{
+ "translation-revision-date": "2026-06-22 20:30+0000",
+ "generator": "WP-CLI/2.6.0",
+ "source": "dist/app.js",
+ "domain": "messages",
+ "locale_data": {
+ "messages": {
+ "": {
+ "domain": "messages",
+ "plural-forms": "Plural-Forms: nplurals=2; plural=(n != 1);",
+ "lang": "hi_IN"
+ },
+ "Import SQL File": [
+ "SQL फ़ाइल आयात करें"
+ ],
+ "Select SQL File": [
+ "SQL फ़ाइल चुनें"
+ ],
+ "Use SQL": [
+ "SQL उपयोग करें"
+ ],
+ "Table": [
+ "तालिका"
+ ],
+ "Columns": [
+ "कॉलम"
+ ],
+ "Importing SQL...": [
+ "SQL आयात हो रहा है..."
+ ],
+ "Import Completed!": [
+ "आयात पूर्ण!"
+ ],
+ "Upload SQL File": [
+ "SQL फ़ाइल अपलोड करें"
+ ],
+ "Select CPT": [
+ "CPT चुनें"
+ ],
+ "Purge CPT": [
+ "CPT हटाएं"
+ ]
+ }
+ }
+}
diff --git a/languages/sql-to-cpt-hi_IN-a442c66c97675e8bda3e3b62b3a8c8ec.json b/languages/sql-to-cpt-hi_IN-a442c66c97675e8bda3e3b62b3a8c8ec.json
deleted file mode 100644
index 812bd42..0000000
--- a/languages/sql-to-cpt-hi_IN-a442c66c97675e8bda3e3b62b3a8c8ec.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "translation-revision-date": "2024-08-29 02:16+0100",
- "generator": "WP-CLI/2.6.0",
- "source": "dist/app.js",
- "domain": "messages",
- "locale_data": {
- "messages": {
- "": {
- "domain": "messages",
- "lang": "hi_IN\\n",
- "plural-forms": "nplurals=2; plural=(n != 1);"
- },
- "SQL to CPT": [
- "SQL से CPT"
- ],
- "Import SQL File": [
- "SQL फ़ाइल आयात करें"
- ],
- "Select SQL File": [
- "SQL फ़ाइल का चयन करें"
- ],
- "Use SQL": [
- "SQL का उपयोग करें"
- ],
- "Table": [
- "सारणी"
- ],
- "Columns": [
- "स्तंभे"
- ],
- "Importing SQL...": [
- "SQL आयात कर रहा है..."
- ],
- "Import Completed!": [
- "आयात पूरा हुआ!"
- ]
- }
- }
-}
diff --git a/languages/sql-to-cpt-hr-78222c691445bffc102076235eac5b16.json b/languages/sql-to-cpt-hr-78222c691445bffc102076235eac5b16.json
new file mode 100644
index 0000000..1ce045a
--- /dev/null
+++ b/languages/sql-to-cpt-hr-78222c691445bffc102076235eac5b16.json
@@ -0,0 +1,45 @@
+{
+ "translation-revision-date": "2026-06-22 20:30+0000",
+ "generator": "WP-CLI/2.6.0",
+ "source": "dist/app.js",
+ "domain": "messages",
+ "locale_data": {
+ "messages": {
+ "": {
+ "domain": "messages",
+ "plural-forms": "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);",
+ "lang": "hr"
+ },
+ "Import SQL File": [
+ "Uvezi SQL datoteku"
+ ],
+ "Select SQL File": [
+ "Odaberi SQL datoteku"
+ ],
+ "Use SQL": [
+ "Koristi SQL"
+ ],
+ "Table": [
+ "Tablica"
+ ],
+ "Columns": [
+ "Stupci"
+ ],
+ "Importing SQL...": [
+ "Uvoz SQL-a..."
+ ],
+ "Import Completed!": [
+ "Uvoz dovršen!"
+ ],
+ "Upload SQL File": [
+ "Prenesi SQL datoteku"
+ ],
+ "Select CPT": [
+ "Odaberi CPT"
+ ],
+ "Purge CPT": [
+ "Očisti CPT"
+ ]
+ }
+ }
+}
diff --git a/languages/sql-to-cpt-hr-a442c66c97675e8bda3e3b62b3a8c8ec.json b/languages/sql-to-cpt-hr-a442c66c97675e8bda3e3b62b3a8c8ec.json
deleted file mode 100644
index 08168fb..0000000
--- a/languages/sql-to-cpt-hr-a442c66c97675e8bda3e3b62b3a8c8ec.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "translation-revision-date": "2024-08-29 02:16+0100",
- "generator": "WP-CLI/2.6.0",
- "source": "dist/app.js",
- "domain": "messages",
- "locale_data": {
- "messages": {
- "": {
- "domain": "messages",
- "lang": "hr\\n",
- "plural-forms": "nplurals=2; plural=(n != 1);"
- },
- "SQL to CPT": [
- "SQL u CPT"
- ],
- "Import SQL File": [
- "Uvoz SQL datoteke"
- ],
- "Select SQL File": [
- "Odaberite SQL datoteku"
- ],
- "Use SQL": [
- "Koristite SQL"
- ],
- "Table": [
- "Tablica"
- ],
- "Columns": [
- "Stupci"
- ],
- "Importing SQL...": [
- "Uvoz SQL-a..."
- ],
- "Import Completed!": [
- "Uvoz Završen!"
- ]
- }
- }
-}
diff --git a/languages/sql-to-cpt-id_ID-d33a3e053913f9fdef162cdfc9d52baa.json b/languages/sql-to-cpt-id_ID-78222c691445bffc102076235eac5b16.json
similarity index 65%
rename from languages/sql-to-cpt-id_ID-d33a3e053913f9fdef162cdfc9d52baa.json
rename to languages/sql-to-cpt-id_ID-78222c691445bffc102076235eac5b16.json
index 68f4ae7..c458853 100644
--- a/languages/sql-to-cpt-id_ID-d33a3e053913f9fdef162cdfc9d52baa.json
+++ b/languages/sql-to-cpt-id_ID-78222c691445bffc102076235eac5b16.json
@@ -1,5 +1,5 @@
{
- "translation-revision-date": "2024-10-06 03:27+0100",
+ "translation-revision-date": "2026-06-22 20:30+0000",
"generator": "WP-CLI/2.6.0",
"source": "dist/app.js",
"domain": "messages",
@@ -7,12 +7,9 @@
"messages": {
"": {
"domain": "messages",
- "lang": "id_ID\\n",
- "plural-forms": "nplurals=1; plural=0;"
+ "plural-forms": "Plural-Forms: nplurals=1; plural=0;",
+ "lang": "id_ID"
},
- "SQL to CPT": [
- "SQL ke CPT"
- ],
"Import SQL File": [
"Impor File SQL"
],
@@ -33,7 +30,16 @@
],
"Import Completed!": [
"Impor Selesai!"
+ ],
+ "Upload SQL File": [
+ "Unggah File SQL"
+ ],
+ "Select CPT": [
+ "Pilih CPT"
+ ],
+ "Purge CPT": [
+ "Hapus CPT"
]
}
}
-}
\ No newline at end of file
+}
diff --git a/languages/sql-to-cpt-it_IT-a442c66c97675e8bda3e3b62b3a8c8ec.json b/languages/sql-to-cpt-it_IT-78222c691445bffc102076235eac5b16.json
similarity index 56%
rename from languages/sql-to-cpt-it_IT-a442c66c97675e8bda3e3b62b3a8c8ec.json
rename to languages/sql-to-cpt-it_IT-78222c691445bffc102076235eac5b16.json
index 172b220..ef4290e 100644
--- a/languages/sql-to-cpt-it_IT-a442c66c97675e8bda3e3b62b3a8c8ec.json
+++ b/languages/sql-to-cpt-it_IT-78222c691445bffc102076235eac5b16.json
@@ -1,5 +1,5 @@
{
- "translation-revision-date": "2024-08-29 02:16+0100",
+ "translation-revision-date": "2026-06-22 20:30+0000",
"generator": "WP-CLI/2.6.0",
"source": "dist/app.js",
"domain": "messages",
@@ -7,12 +7,9 @@
"messages": {
"": {
"domain": "messages",
- "lang": "it_IT\\n",
- "plural-forms": "nplurals=2; plural=(n != 1);"
+ "plural-forms": "Plural-Forms: nplurals=2; plural=(n != 1);",
+ "lang": "it_IT"
},
- "SQL to CPT": [
- "Da SQL a CPT"
- ],
"Import SQL File": [
"Importa file SQL"
],
@@ -20,7 +17,7 @@
"Seleziona file SQL"
],
"Use SQL": [
- "Utilizzo di SQL"
+ "Usa SQL"
],
"Table": [
"Tabella"
@@ -29,10 +26,19 @@
"Colonne"
],
"Importing SQL...": [
- "Importazione di SQL..."
+ "Importazione SQL in corso..."
],
"Import Completed!": [
- "Importazione Completata!"
+ "Importazione completata!"
+ ],
+ "Upload SQL File": [
+ "Carica file SQL"
+ ],
+ "Select CPT": [
+ "Seleziona CPT"
+ ],
+ "Purge CPT": [
+ "Elimina CPT"
]
}
}
diff --git a/languages/sql-to-cpt-ja-a78c5bf69b40d464b954ef76815c6fa0.json b/languages/sql-to-cpt-ja-78222c691445bffc102076235eac5b16.json
similarity index 51%
rename from languages/sql-to-cpt-ja-a78c5bf69b40d464b954ef76815c6fa0.json
rename to languages/sql-to-cpt-ja-78222c691445bffc102076235eac5b16.json
index 487df2c..10b772d 100644
--- a/languages/sql-to-cpt-ja-a78c5bf69b40d464b954ef76815c6fa0.json
+++ b/languages/sql-to-cpt-ja-78222c691445bffc102076235eac5b16.json
@@ -1,5 +1,5 @@
{
- "translation-revision-date": "2024-10-06 03:27+0100",
+ "translation-revision-date": "2026-06-22 20:30+0000",
"generator": "WP-CLI/2.6.0",
"source": "dist/app.js",
"domain": "messages",
@@ -7,20 +7,17 @@
"messages": {
"": {
"domain": "messages",
- "lang": "ja\\n",
- "plural-forms": "nplurals=1; plural=0;"
+ "plural-forms": "Plural-Forms: nplurals=1; plural=0;",
+ "lang": "ja"
},
- "SQL to CPT": [
- "SQL から CPT"
- ],
"Import SQL File": [
- "SQL ファイルをインポート"
+ "SQLファイルをインポート"
],
"Select SQL File": [
- "SQL ファイルを選択"
+ "SQLファイルを選択"
],
"Use SQL": [
- "SQL を使用"
+ "SQLを使用"
],
"Table": [
"テーブル"
@@ -29,11 +26,20 @@
"カラム"
],
"Importing SQL...": [
- "SQL をインポート中..."
+ "SQLをインポート中..."
],
"Import Completed!": [
"インポート完了!"
+ ],
+ "Upload SQL File": [
+ "SQLファイルをアップロード"
+ ],
+ "Select CPT": [
+ "CPTを選択"
+ ],
+ "Purge CPT": [
+ "CPTを削除"
]
}
}
-}
\ No newline at end of file
+}
diff --git a/languages/sql-to-cpt-nl_NL-e757f4ebe0890256004f5dbae58934f5.json b/languages/sql-to-cpt-nl_NL-78222c691445bffc102076235eac5b16.json
similarity index 65%
rename from languages/sql-to-cpt-nl_NL-e757f4ebe0890256004f5dbae58934f5.json
rename to languages/sql-to-cpt-nl_NL-78222c691445bffc102076235eac5b16.json
index 9790a93..64cbb69 100644
--- a/languages/sql-to-cpt-nl_NL-e757f4ebe0890256004f5dbae58934f5.json
+++ b/languages/sql-to-cpt-nl_NL-78222c691445bffc102076235eac5b16.json
@@ -1,5 +1,5 @@
{
- "translation-revision-date": "2024-10-06 03:27+0100",
+ "translation-revision-date": "2026-06-22 20:30+0000",
"generator": "WP-CLI/2.6.0",
"source": "dist/app.js",
"domain": "messages",
@@ -7,12 +7,9 @@
"messages": {
"": {
"domain": "messages",
- "lang": "nl_NL\\n",
- "plural-forms": "nplurals=2; plural=(n != 1);"
+ "plural-forms": "Plural-Forms: nplurals=2; plural=(n != 1);",
+ "lang": "nl_NL"
},
- "SQL to CPT": [
- "SQL naar CPT"
- ],
"Import SQL File": [
"SQL-bestand importeren"
],
@@ -33,6 +30,15 @@
],
"Import Completed!": [
"Import voltooid!"
+ ],
+ "Upload SQL File": [
+ "SQL-bestand uploaden"
+ ],
+ "Select CPT": [
+ "CPT selecteren"
+ ],
+ "Purge CPT": [
+ "CPT verwijderen"
]
}
}
diff --git a/languages/sql-to-cpt-pl_PL-ca7071245f5e419a66ba1cad9bc9c420.json b/languages/sql-to-cpt-pl_PL-78222c691445bffc102076235eac5b16.json
similarity index 61%
rename from languages/sql-to-cpt-pl_PL-ca7071245f5e419a66ba1cad9bc9c420.json
rename to languages/sql-to-cpt-pl_PL-78222c691445bffc102076235eac5b16.json
index 63cc5cb..428d2c2 100644
--- a/languages/sql-to-cpt-pl_PL-ca7071245f5e419a66ba1cad9bc9c420.json
+++ b/languages/sql-to-cpt-pl_PL-78222c691445bffc102076235eac5b16.json
@@ -1,5 +1,5 @@
{
- "translation-revision-date": "2024-10-06 03:27+0100",
+ "translation-revision-date": "2026-06-22 20:30+0000",
"generator": "WP-CLI/2.6.0",
"source": "dist/app.js",
"domain": "messages",
@@ -7,12 +7,9 @@
"messages": {
"": {
"domain": "messages",
- "lang": "pl_PL\\n",
- "plural-forms": "nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"
+ "plural-forms": "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);",
+ "lang": "pl_PL"
},
- "SQL to CPT": [
- "SQL do CPT"
- ],
"Import SQL File": [
"Importuj plik SQL"
],
@@ -33,7 +30,16 @@
],
"Import Completed!": [
"Import zakończony!"
+ ],
+ "Upload SQL File": [
+ "Prześlij plik SQL"
+ ],
+ "Select CPT": [
+ "Wybierz CPT"
+ ],
+ "Purge CPT": [
+ "Wyczyść CPT"
]
}
}
-}
\ No newline at end of file
+}
diff --git a/languages/sql-to-cpt-pt_BR-5008abdc5610a2ee3e71b197bfc15f36.json b/languages/sql-to-cpt-pt_BR-78222c691445bffc102076235eac5b16.json
similarity index 65%
rename from languages/sql-to-cpt-pt_BR-5008abdc5610a2ee3e71b197bfc15f36.json
rename to languages/sql-to-cpt-pt_BR-78222c691445bffc102076235eac5b16.json
index abc14ce..e499865 100644
--- a/languages/sql-to-cpt-pt_BR-5008abdc5610a2ee3e71b197bfc15f36.json
+++ b/languages/sql-to-cpt-pt_BR-78222c691445bffc102076235eac5b16.json
@@ -1,5 +1,5 @@
{
- "translation-revision-date": "2024-10-06 03:27+0100",
+ "translation-revision-date": "2026-06-22 20:30+0000",
"generator": "WP-CLI/2.6.0",
"source": "dist/app.js",
"domain": "messages",
@@ -7,12 +7,9 @@
"messages": {
"": {
"domain": "messages",
- "lang": "pt_BR\\n",
- "plural-forms": "nplurals=2; plural=(n != 1);"
+ "plural-forms": "Plural-Forms: nplurals=2; plural=(n > 1);",
+ "lang": "pt_BR"
},
- "SQL to CPT": [
- "SQL para CPT"
- ],
"Import SQL File": [
"Importar arquivo SQL"
],
@@ -33,7 +30,16 @@
],
"Import Completed!": [
"Importação concluída!"
+ ],
+ "Upload SQL File": [
+ "Enviar arquivo SQL"
+ ],
+ "Select CPT": [
+ "Selecionar CPT"
+ ],
+ "Purge CPT": [
+ "Limpar CPT"
]
}
}
-}
\ No newline at end of file
+}
diff --git a/languages/sql-to-cpt-pt_PT-aac789cf7c57d34ab6170917688baeaf.json b/languages/sql-to-cpt-pt_PT-78222c691445bffc102076235eac5b16.json
similarity index 63%
rename from languages/sql-to-cpt-pt_PT-aac789cf7c57d34ab6170917688baeaf.json
rename to languages/sql-to-cpt-pt_PT-78222c691445bffc102076235eac5b16.json
index af4e90e..ee49fbf 100644
--- a/languages/sql-to-cpt-pt_PT-aac789cf7c57d34ab6170917688baeaf.json
+++ b/languages/sql-to-cpt-pt_PT-78222c691445bffc102076235eac5b16.json
@@ -1,5 +1,5 @@
{
- "translation-revision-date": "2024-10-06 03:27+0100",
+ "translation-revision-date": "2026-06-22 20:30+0000",
"generator": "WP-CLI/2.6.0",
"source": "dist/app.js",
"domain": "messages",
@@ -7,12 +7,9 @@
"messages": {
"": {
"domain": "messages",
- "lang": "pt_PT\\n",
- "plural-forms": "nplurals=2; plural=(n != 1);"
+ "plural-forms": "Plural-Forms: nplurals=2; plural=(n != 1);",
+ "lang": "pt_PT"
},
- "SQL to CPT": [
- "SQL para CPT"
- ],
"Import SQL File": [
"Importar ficheiro SQL"
],
@@ -20,7 +17,7 @@
"Selecionar ficheiro SQL"
],
"Use SQL": [
- "Usar SQL"
+ "Utilizar SQL"
],
"Table": [
"Tabela"
@@ -33,7 +30,16 @@
],
"Import Completed!": [
"Importação concluída!"
+ ],
+ "Upload SQL File": [
+ "Carregar ficheiro SQL"
+ ],
+ "Select CPT": [
+ "Selecionar CPT"
+ ],
+ "Purge CPT": [
+ "Limpar CPT"
]
}
}
-}
\ No newline at end of file
+}
diff --git a/languages/sql-to-cpt-ru_RU-78222c691445bffc102076235eac5b16.json b/languages/sql-to-cpt-ru_RU-78222c691445bffc102076235eac5b16.json
new file mode 100644
index 0000000..4bd48ba
--- /dev/null
+++ b/languages/sql-to-cpt-ru_RU-78222c691445bffc102076235eac5b16.json
@@ -0,0 +1,45 @@
+{
+ "translation-revision-date": "2026-06-22 20:30+0000",
+ "generator": "WP-CLI/2.6.0",
+ "source": "dist/app.js",
+ "domain": "messages",
+ "locale_data": {
+ "messages": {
+ "": {
+ "domain": "messages",
+ "plural-forms": "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);",
+ "lang": "ru_RU"
+ },
+ "Import SQL File": [
+ "Импортировать SQL-файл"
+ ],
+ "Select SQL File": [
+ "Выбрать SQL-файл"
+ ],
+ "Use SQL": [
+ "Использовать SQL"
+ ],
+ "Table": [
+ "Таблица"
+ ],
+ "Columns": [
+ "Столбцы"
+ ],
+ "Importing SQL...": [
+ "Импорт SQL..."
+ ],
+ "Import Completed!": [
+ "Импорт завершён!"
+ ],
+ "Upload SQL File": [
+ "Загрузить SQL-файл"
+ ],
+ "Select CPT": [
+ "Выбрать CPT"
+ ],
+ "Purge CPT": [
+ "Очистить CPT"
+ ]
+ }
+ }
+}
diff --git a/languages/sql-to-cpt-ru_RU-a442c66c97675e8bda3e3b62b3a8c8ec.json b/languages/sql-to-cpt-ru_RU-a442c66c97675e8bda3e3b62b3a8c8ec.json
deleted file mode 100644
index c7d57a7..0000000
--- a/languages/sql-to-cpt-ru_RU-a442c66c97675e8bda3e3b62b3a8c8ec.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "translation-revision-date": "2024-08-29 02:16+0100",
- "generator": "WP-CLI/2.6.0",
- "source": "dist/app.js",
- "domain": "messages",
- "locale_data": {
- "messages": {
- "": {
- "domain": "messages",
- "lang": "ru_RU\\n",
- "plural-forms": "nplurals=2; plural=(n != 1);"
- },
- "SQL to CPT": [
- "Из SQL в CPT"
- ],
- "Import SQL File": [
- "Импорт файла SQL"
- ],
- "Select SQL File": [
- "Выберите файл SQL"
- ],
- "Use SQL": [
- "Использование SQL"
- ],
- "Table": [
- "Таблица"
- ],
- "Columns": [
- "Колонки"
- ],
- "Importing SQL...": [
- "Импорт SQL..."
- ],
- "Import Completed!": [
- "Импорт завершен!"
- ]
- }
- }
-}
diff --git a/languages/sql-to-cpt-tr_TR-046a447e62e8547f9c224ddbbc065376.json b/languages/sql-to-cpt-tr_TR-78222c691445bffc102076235eac5b16.json
similarity index 63%
rename from languages/sql-to-cpt-tr_TR-046a447e62e8547f9c224ddbbc065376.json
rename to languages/sql-to-cpt-tr_TR-78222c691445bffc102076235eac5b16.json
index 2571da5..64f03b4 100644
--- a/languages/sql-to-cpt-tr_TR-046a447e62e8547f9c224ddbbc065376.json
+++ b/languages/sql-to-cpt-tr_TR-78222c691445bffc102076235eac5b16.json
@@ -1,5 +1,5 @@
{
- "translation-revision-date": "2024-10-06 03:27+0100",
+ "translation-revision-date": "2026-06-22 20:30+0000",
"generator": "WP-CLI/2.6.0",
"source": "dist/app.js",
"domain": "messages",
@@ -7,14 +7,11 @@
"messages": {
"": {
"domain": "messages",
- "lang": "tr_TR\\n",
- "plural-forms": "nplurals=2; plural=(n != 1);"
+ "plural-forms": "Plural-Forms: nplurals=1; plural=0;",
+ "lang": "tr_TR"
},
- "SQL to CPT": [
- "SQL'den CPT'ye"
- ],
"Import SQL File": [
- "SQL Dosyasını İçe Aktar"
+ "SQL Dosyası İçe Aktar"
],
"Select SQL File": [
"SQL Dosyası Seç"
@@ -33,7 +30,16 @@
],
"Import Completed!": [
"İçe Aktarma Tamamlandı!"
+ ],
+ "Upload SQL File": [
+ "SQL Dosyası Yükle"
+ ],
+ "Select CPT": [
+ "CPT Seç"
+ ],
+ "Purge CPT": [
+ "CPT Temizle"
]
}
}
-}
\ No newline at end of file
+}
diff --git a/languages/sql-to-cpt-zh_CN-a442c66c97675e8bda3e3b62b3a8c8ec.json b/languages/sql-to-cpt-zh_CN-78222c691445bffc102076235eac5b16.json
similarity index 66%
rename from languages/sql-to-cpt-zh_CN-a442c66c97675e8bda3e3b62b3a8c8ec.json
rename to languages/sql-to-cpt-zh_CN-78222c691445bffc102076235eac5b16.json
index 60cb9a5..23476dc 100644
--- a/languages/sql-to-cpt-zh_CN-a442c66c97675e8bda3e3b62b3a8c8ec.json
+++ b/languages/sql-to-cpt-zh_CN-78222c691445bffc102076235eac5b16.json
@@ -1,5 +1,5 @@
{
- "translation-revision-date": "2024-08-29 02:16+0100",
+ "translation-revision-date": "2026-06-22 20:30+0000",
"generator": "WP-CLI/2.6.0",
"source": "dist/app.js",
"domain": "messages",
@@ -7,12 +7,9 @@
"messages": {
"": {
"domain": "messages",
- "lang": "zh_CN\\n",
- "plural-forms": "nplurals=2; plural=(n != 1);"
+ "plural-forms": "Plural-Forms: nplurals=1; plural=0;",
+ "lang": "zh_CN"
},
- "SQL to CPT": [
- "SQL 到 CPT"
- ],
"Import SQL File": [
"导入 SQL 文件"
],
@@ -33,6 +30,15 @@
],
"Import Completed!": [
"导入完成!"
+ ],
+ "Upload SQL File": [
+ "上传 SQL 文件"
+ ],
+ "Select CPT": [
+ "选择 CPT"
+ ],
+ "Purge CPT": [
+ "清除 CPT"
]
}
}
diff --git a/package.json b/package.json
index b6f11af..d72d995 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "sql-to-cpt",
- "version": "1.4.3",
+ "version": "1.5.0",
"description": "Import & Convert SQL files to Custom Post Types (CPT).",
"author": "badasswp",
"license": "GPL-2.0-or-later",
@@ -79,4 +79,4 @@
"database",
"mysql"
]
-}
\ No newline at end of file
+}
diff --git a/readme.txt b/readme.txt
index e9fd631..35215d3 100644
--- a/readme.txt
+++ b/readme.txt
@@ -3,7 +3,7 @@ Contributors: badasswp
Tags: sql, cpt, post, import, convert.
Requires at least: 6.0
Tested up to: 7.0
-Stable tag: 1.4.3
+Stable tag: 1.5.0
Requires PHP: 7.4
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -69,6 +69,10 @@ Want to add your personal touch? All of our documentation can be found [here](ht
== Changelog ==
+= 1.5.0 =
+* Feat: Add `More Plugins` options page.
+* Fix: Added missing translations for existing languages.
+
= 1.4.3 =
* Tested up to WP 7.0.
diff --git a/sql-to-cpt.php b/sql-to-cpt.php
index a725bd2..ed074c9 100644
--- a/sql-to-cpt.php
+++ b/sql-to-cpt.php
@@ -3,7 +3,7 @@
* Plugin Name: SQL to CPT
* Plugin URI: https://github.com/badasswp/sql-to-cpt
* Description: Import & Convert SQL files to Custom Post Types (CPT).
- * Version: 1.4.3
+ * Version: 1.5.0
* Author: badasswp
* Author URI: https://github.com/badasswp
* License: GPL v2 or later
diff --git a/src/components/Purge.tsx b/src/components/Purge.tsx
index 3a2a4ea..3f8a6a2 100644
--- a/src/components/Purge.tsx
+++ b/src/components/Purge.tsx
@@ -26,7 +26,7 @@ const Purge = (): JSX.Element => {
setPostType( e.target.value );
} }
>
-
+
{ sqlt.postTypes.map( ( item: string, index: number ) => {
return ;
} ) }
diff --git a/tests/unit/php/Core/ContainerTest.php b/tests/unit/php/Core/ContainerTest.php
index 4788b84..b67148b 100644
--- a/tests/unit/php/Core/ContainerTest.php
+++ b/tests/unit/php/Core/ContainerTest.php
@@ -23,6 +23,7 @@
* @covers \SqlToCpt\Services\Post::__construct
* @covers \SqlToCpt\Core\Post::__construct
* @covers \SqlToCpt\Services\Routes::__construct
+ * @covers \SqlToCpt\Services\Admin::__construct
*/
class ContainerTest extends TestCase {
public Container $container;
@@ -108,6 +109,16 @@ public function test_register() {
]
);
+ $admin = Service::$services[ Admin::class ];
+
+ WP_Mock::expectActionAdded(
+ 'admin_init',
+ [
+ $admin->pluginate,
+ 'init',
+ ]
+ );
+
WP_Mock::expectActionAdded(
'init',
[
diff --git a/tests/unit/php/Services/AdminTest.php b/tests/unit/php/Services/AdminTest.php
index a2b28a0..2686f5d 100644
--- a/tests/unit/php/Services/AdminTest.php
+++ b/tests/unit/php/Services/AdminTest.php
@@ -10,6 +10,7 @@
* @covers \SqlToCpt\Services\Admin::register
* @covers \SqlToCpt\Services\Admin::register_admin_menu
* @covers \SqlToCpt\Services\Admin::register_admin_page
+ * @covers \SqlToCpt\Services\Admin::__construct
*/
class AdminTest extends TestCase {
public Admin $admin;
@@ -26,6 +27,7 @@ public function tearDown(): void {
public function test_register() {
WP_Mock::expectActionAdded( 'admin_menu', [ $this->admin, 'register_admin_menu' ] );
+ WP_Mock::expectActionAdded( 'admin_init', [ $this->admin->pluginate, 'init' ] );
$this->admin->register();
@@ -52,6 +54,21 @@ function ( $arg ) {
)
->andReturn( null );
+ WP_Mock::userFunction( '__' )
+ ->andReturnUsing( fn( $text, $domain ) => $text );
+
+ WP_Mock::userFunction( 'add_submenu_page' )
+ ->once()
+ ->with(
+ 'sql-to-cpt',
+ 'More Plugins',
+ 'More Plugins',
+ 'manage_options',
+ 'sql-to-cpt-more-plugins',
+ [ $this->admin, 'register_more_plugins' ]
+ )
+ ->andReturn( null );
+
$this->admin->register_admin_menu();
$this->assertConditionsMet();