';
//Declare all js and css to include
wp_enqueue_script(
'jutranslation-tippy-core',
plugin_dir_url(self::$main_plugin_file) . 'jutranslation/assets/js/tippy/tippy-core.js',
array('jquery')
);
wp_enqueue_script(
'jutranslation-tippy',
plugin_dir_url(self::$main_plugin_file) . 'jutranslation/assets/js/tippy/tippy.js',
array('jquery')
);
wp_enqueue_style(
'jutranslation-style-tippy',
plugin_dir_url(self::$main_plugin_file) . 'jutranslation/assets/js/tippy/tippy.css'
);
wp_enqueue_script('jutranslation-bootstrap', plugin_dir_url(self::$main_plugin_file) . 'jutranslation/assets/js/bootstrap.min.js');
wp_enqueue_script('jutranslation-bootbox', plugin_dir_url(self::$main_plugin_file) . 'jutranslation/assets/js/bootbox.js');
wp_localize_script('jutranslation-bootbox', 'jutranslationCmd', array(
'Delete' => 'Delete',
'Edit' => 'Edit',
'CANCEL' => 'Cancel',
'OK' => 'Ok',
'CONFIRM' => 'Confirm',
'Save' => 'Save',
'warning_auto_save' => 'You have unsaved translation changes, save it!',
));
wp_enqueue_script('jutranslation', plugin_dir_url(self::$main_plugin_file) . 'jutranslation/assets/js/jutranslation.js');
wp_enqueue_style('jutranslation', plugin_dir_url(self::$main_plugin_file) . 'jutranslation/assets/css/jutranslation.css');
wp_localize_script('jutranslation', 'jutranslation', array(
'token' => wp_create_nonce('jutranslation'),
'ajax_action' => 'jutranslation_' . self::$extension_slug ,
'base_url' => admin_url('admin-ajax.php').'?'
));
add_thickbox();
//Get all installed languages
$installed_languages = array();
foreach (wp_get_installed_translations('core') as $type) {
foreach ($type as $lang => $value) {
$lang = str_replace('_', '-', $lang);
$installed_languages[] = $lang;
}
}
//Add Polylang languages
if (function_exists('pll_languages_list')) {
foreach (pll_languages_list(array('fields' => 'locale')) as $pll_language) {
$lang = str_replace('_', '-', $pll_language);
$installed_languages[] = $lang;
}
}
//Add WPML languages
if (!function_exists('pll_languages_list') && function_exists('icl_get_languages')) {
foreach (icl_get_languages() as $wpml_language) {
$lang = str_replace('_', '-', $wpml_language['default_locale']);
$installed_languages[] = $lang;
}
}
//Add default en-US language
if (!isset($installed_languages['en-US'])) {
$installed_languages = array_merge(array('en-US'), $installed_languages);
}
$installed_languages = array_unique($installed_languages);
//Get addons
$addons = apply_filters(self::$extension_slug . '_get_addons', array());
ksort($addons);
$languages = array();
foreach ($installed_languages as $installed_language) {
foreach ($addons as $addon) {
$langObject = new \stdClass();
$langObject->extension = $addon;
$langObject->installed = false;
$langObject->extension_version = '';
$langObject->language_version = '';
$langObject->revision = '1';
$langObject->languageCode = $installed_language;
$langObject->modified = '0';
$languages[] = $langObject;
}
}
//Check if language is installed
foreach ($languages as &$language) {
if (str_replace('-', '_', $language->languageCode) === 'en_US') {
$file = $language->extension->language_file;
} else {
$file = WP_CONTENT_DIR . DIRECTORY_SEPARATOR . 'languages' . DIRECTORY_SEPARATOR . 'plugins';
$file .= DIRECTORY_SEPARATOR . $language->extension->text_domain . '-';
$file .= str_replace('-', '_', $language->languageCode) . '.mo';
}
if (file_exists($file)) {
$language->installed = true;
// Load language file
$mo = new \MO();
$mo->import_from_file($file);
//Assign it to the language
if (isset($mo->headers['Version'])) {
$language->language_version = $mo->headers['Version'];
}
if (isset($mo->headers['Revision'])) {
$language->revision = $mo->headers['Revision'];
}
if (isset($mo->headers['Modified'])) {
$language->modified = $mo->headers['Modified'];
} else {
//The header has not been found, so the language file has not been add by jutranslation
$language->modified = '1';
}
}
//Check for language override
$language->overrided = 0;
$file = WP_CONTENT_DIR . DIRECTORY_SEPARATOR . 'languages' . DIRECTORY_SEPARATOR . 'plugins';
$file .= DIRECTORY_SEPARATOR . $language->extension->text_domain . '-';
$file .= str_replace('-', '_', $language->languageCode) . '.override.mo';
if (file_exists($file)) {
// Load language file
$mo = new \MO();
$mo->import_from_file($file);
$language->overrided = 0;
//Check if a translation exists for each entry
foreach ($mo->entries as $entry) {
if (is_array($entry->translations) || $entry->translations instanceof Countable) {
if (count($entry->translations)) {
$language->overrided++;
}
}
}
}
}
unset($language);
//Show documentation link
echo '
You can refer to the
documentation page on Joomunited for more informations about extension translation
';
echo '
';
foreach ($addons as $addon) {
//Get extension version
$plugin_data = get_plugin_data($addon->main_plugin_file);
$extension_version = $plugin_data['Version'];
echo 'Current ' . esc_html($addon->extension_name) . ' version is ' . esc_html($extension_version) . '
';
}
echo '
';
$julanguages = array();
echo '
| 1 ? '' : 'style="display:none;"') . '>Plugin |
Language |
Current version |
Latest available version |
';
foreach ($languages as $language) {
echo '';
echo '| 1 ? '' : 'style="display:none;"') . '>' .
esc_html($language->extension->extension_name) . ' | ';
echo '' . esc_html($language->languageCode) . ' | ';
echo '' .
esc_html($language->installed ? ($language->language_version ? ($language->revision ? esc_html($language->language_version .
' rev' . $language->revision) : $language->language_version . ' rev' .
$language->revision) : 'Unknown') : 'Not installed') . ' | ';
echo '';
echo '  . 'jutranslation/assets/images/radio.svg') .
') ';
echo ' ';
if ($language->languageCode !== 'en-US') {
//Reference en-US file can't be modified
echo ' ';
}
//No sharing for en-US
if ($language->languageCode !== 'en-US') {
echo ' Share with Joomunited';
}
echo ' | ';
echo '
';
if (!isset($julanguages[$language->extension->extension_slug])) {
$plugin_data = get_plugin_data($language->extension->main_plugin_file);
$julanguages[$language->extension->extension_slug] = array();
$julanguages[$language->extension->extension_slug]['extension'] = $language->extension->extension_slug;
$julanguages[$language->extension->extension_slug]['extension_version'] = $plugin_data['Version'];
$julanguages[$language->extension->extension_slug]['language_version'] = $language->language_version;
$julanguages[$language->extension->extension_slug]['languages'] = array();
$julanguages[$language->extension->extension_slug]['versions'] = array();
$julanguages[$language->extension->extension_slug]['revisions'] = array();
}
$julanguages[$language->extension->extension_slug]['languages'][] = $language->languageCode;
$julanguages[
$language->extension->extension_slug]['versions'][$language->languageCode
] = $language->language_version;
$julanguages[
$language->extension->extension_slug]['revisions'][$language->languageCode
] = $language->revision;
}
echo '
';
echo '';
echo '