diff --git a/includes/Extensions/Batch41.php b/includes/Extensions/Batch41.php new file mode 100644 index 0000000..bedae85 --- /dev/null +++ b/includes/Extensions/Batch41.php @@ -0,0 +1,48 @@ + 'object', 'properties' => $props ?: new \stdClass()]; + if ($required) $schema['required'] = $required; + return ['name' => $name, 'description' => $desc, 'scope' => $scope, + 'handler' => 'AskTamMCP\\Extensions\\Batch41::' . $method, 'inputSchema' => $schema]; + }; + + $registry->register($def('trp_detect', 'Report whether TranslatePress is active and its version.', [], [], 'read', 'detect')); + $registry->register($def('trp_list_languages', 'List TranslatePress languages: default and translation language codes.', [], [], 'read', 'listLanguages')); + $registry->register($def('trp_settings', 'Read TranslatePress key settings (languages, default, translation editor options).', [], [], 'read', 'settings')); + } + + public static function detect(array $args): array { + return ['active' => defined('TRP_PLUGIN_VERSION'), 'version' => defined('TRP_PLUGIN_VERSION') ? TRP_PLUGIN_VERSION : null]; + } + + public static function listLanguages(array $args): array { + $s = get_option('trp_settings', []); + if (!is_array($s)) $s = []; + return ['default' => $s['default-language'] ?? null, 'languages' => $s['translation-languages'] ?? [], + 'publish_languages' => $s['publish-languages'] ?? []]; + } + + public static function settings(array $args): array { + $s = get_option('trp_settings', []); + if (!is_array($s)) $s = []; + $keys = ['default-language', 'translation-languages', 'publish-languages', 'native_or_english_name', + 'force-language-to-custom-links', 'url-slugs', 'trp-ls-floater']; + $out = []; + foreach ($keys as $k) if (isset($s[$k])) $out[$k] = $s[$k]; + return ['settings' => $out]; + } +}