/** * Adds a language with the default locale, name and direction. * * @param string $language_code ISO 639 or locale code * @param int $language_order language order [optional] * @param int &$error_code the error code, or 0 if the operation is successful * @return bool true if the language has been added; false if an error has occured */ function pll_add_language($language_code, $language_order = 0, &$error_code = 0) { global $polylang; $adminModel = new PLL_Admin_Model($polylang->options); $info = pll_get_default_language_information($language_code); $args = array(name => $info['name'], slug => $info['code'], locale => $info['locale'], rtl => $info['rtl'] ? 1 : 0, term_group => $language_order); $error_code = $adminModel->add_language($args); return $error_code !== 0; }
/** * Adds, gets information about or removes a language * * ## OPTIONS * * <operation> * : the language operation (add, info, del) * * <language-code> * : the language code * * <order> * : for add operation, indicates the order of the language * * ## EXAMPLES * * wp polylang language add fr * wp polylang language add nl 2 * wp polylang language info vec * wp polylang language del vec * * @synopsis <operation> <language-code> [<order>] * @alias lang */ function language($args, $assocArgs) { $language_code = $args[1]; $language_order = count($args) == 3 ? $args[2] : 0; $language_info = pll_get_default_language_information($language_code); if ($language_info === null) { WP_CLI::error("{$language_code} isn't a valid language code."); return; } $language_installed = pll_is_language_installed($language_code); switch ($args[0]) { case 'info': WP_CLI::line('Code: ' . $language_info['code']); WP_CLI::line('Locale ' . $language_info['locale']); WP_CLI::line('Name: ' . $language_info['name']); WP_CLI::line('RTL: ' . ($language_info['rtl'] ? 'yes' : 'no')); WP_CLI::line('Installed: ' . ($language_installed ? 'yes' : 'no')); break; case 'add': if ($language_installed) { WP_CLI::warning("This language is already installed."); return; } if (pll_add_language($language_code, $language_order, $error_code)) { WP_CLI::success("Language added."); return; } WP_CLI::error("Can't add the language."); break; case 'del': if (!$language_installed) { WP_CLI::warning("This language isn't installed."); return; } WP_CLI::error("Not implemented: del language"); break; default: WP_CLI::error("Unknown command: polylang language {$args['0']}. Expected: add/del/info."); } }