%PDF- %PDF-
Direktori : /home/dopla/www/wp-content/plugins/polylang/lingotek/ |
Current File : /home/dopla/www/wp-content/plugins/polylang/lingotek/lingotek.php |
<?php if ( ! defined( 'ABSPATH' ) ) { exit; // Don't access directly }; /** * Class to manage Lingotek ads * * @since 1.7.7 */ class PLL_Lingotek { const LINGOTEK = 'lingotek-translation/lingotek.php'; /** * Init * * @since 1.7.7 */ public function init() { $options = get_option( 'polylang' ); // The Lingotek tab add_filter( 'pll_settings_tabs', array( $this, 'add_tab' ) ); add_action( 'pll_settings_active_tab_lingotek', array( $this, 'display_tab' ) ); if ( PLL_SETTINGS && isset( $_GET['page'] ) && 'mlang_lingotek' == $_GET['page'] ) { add_action( 'admin_print_styles', array( $this, 'print_css' ) ); } // The admin notice // Honor old dismissed pointers if ( ! PLL_Admin_Notices::is_dismissed( 'lingotek' ) && ! in_array( 'pll_lgt', explode( ',', get_user_meta( get_current_user_id(), 'dismissed_wp_pointers', true ) ) ) ) { $content = __( 'You’ve just upgraded to the latest version of Polylang! Would you like to automatically translate your website for free?', 'polylang' ); $buttons = sprintf( '<a href="%s" class="button button-primary" style="margin-right: 10px">%s</a>', admin_url( 'admin.php?page=mlang_lingotek' ), __( 'Learn more', 'polylang' ) ); if ( $link = $this->get_activate_link() ) { $content .= ' ' . __( 'Click on Activate Lingotek to start translating.', 'polylang' ); $buttons = sprintf( '<a href="%s" class="button button-primary" style="margin-right: 10px">%s</a>', $link, __( 'Activate Lingotek', 'polylang' ) ) . $buttons; } if ( is_plugin_active( self::LINGOTEK ) ) { // Needs /wp-admin/includes/plugin.php to be loaded PLL_Admin_Notices::dismiss( 'lingotek' ); } else { PLL_Admin_Notices::add_notice( 'lingotek', '<p>' . $content . '</p><p>' . $buttons . '</p>' ); } } } /** * Adds the Lingotek tab in Polylang settings * * @since 1.7.7 * * @param array $tabs list of tabs * @return array modified liste of tabs */ public function add_tab( $tabs ) { $tabs['lingotek'] = 'Lingotek'; return $tabs; } /** * Displays the content in the Lingotek tab * * @since 1.7.7 */ public function display_tab() { PLL_Admin_Notices::dismiss( 'lingotek' ); $activate_link = $this->get_activate_link(); $links = array( 'activate' => array( 'label' => is_plugin_active( self::LINGOTEK ) ? __( 'Activated', 'polylang' ) : __( 'Activate', 'polylang' ), 'link' => $activate_link, 'classes' => 'button button-primary' . ( $activate_link ? '' : ' disabled' ), ), 'translation' => array( 'label' => __( 'Request Translation', 'polylang' ), 'link' => 'http://www.lingotek.com/wordpress/translation_bid', 'new_tab' => true, 'classes' => 'button button-primary', ), 'services' => array( 'label' => __( 'Request Services', 'polylang' ), 'link' => 'http://www.lingotek.com/wordpress/extra_services', 'new_tab' => true, 'classes' => 'button button-primary', ), ); printf( '<p>%s</p>', esc_html__( 'Polylang is now fully integrated with Lingotek, a professional translation management system!', 'polylang' ) ); $this->box( __( 'Automatically Translate My Site', 'polylang' ), __( 'Polylang is now fully integrated with Lingotek!', 'polylang' ), array( __( 'Access free machine translation for your site for up to 100,000 characters.', 'polylang' ), __( 'Machine translation is an excellent option if you\'re on a tight budget, looking for near-instant results, and are okay with less-than-perfect quality.', 'polylang' ), ), array_intersect_key( $links, array_flip( array( 'activate' ) ) ), 'image01.gif' ); $this->box( __( 'Translation Management System', 'polylang' ), __( 'Do you need to connect to a professional translation management system?', 'polylang' ), array( __( 'Access free machine translation for your site for up to 100,000 characters.', 'polylang' ), __( 'Access an online translator workbench.', 'polylang' ), __( 'Have linguists compare side-by-side versions of original and translated text.', 'polylang' ), __( 'Save and re-use previously translated material (leverage translation memory (TM)).', 'polylang' ), ), array_intersect_key( $links, array_flip( array( 'activate' ) ) ), 'image02.png' ); $this->box( __( 'Professionally Translate My Site', 'polylang' ), __( 'Do you need to professionally translate your site?', 'polylang' ), array( __( 'Start the process of getting a professional translation bid.', 'polylang' ), __( 'Activate account so Lingotek can get an accurate count of how many words you have on your site and which languages you wish to translate into.', 'polylang' ), __( 'Once activated click on the request translation bid and a certified translation project manager will contact you to give a no obligations translation bid.', 'polylang' ), ), array_intersect_key( $links, array_flip( array( 'activate', 'translation' ) ) ), 'image03.png' ); $this->box( __( 'Need Extra Services?', 'polylang' ), __( 'Do you need help translating your site?', 'polylang' ), array( __( 'Start the process of getting extra services.', 'polylang' ), __( 'Do you need someone to run your localization project?', 'polylang' ), __( 'Do you need customized workflows?', 'polylang' ), __( 'Do you have existing Translation Memories you would like to use?', 'polylang' ), __( 'Do you need help creating glossaries and terminologies?', 'polylang' ), ), array_intersect_key( $links, array_flip( array( 'activate', 'services' ) ) ), 'image04.png' ); } /** * Styles the content of the Lingotek tab * * @since 1.7.7 */ public function print_css() { ?> <style type="text/css"> .ltk-feature { text-align: left; float: left; width: 310px; padding: 0px; border: 1px solid #ddd; margin-right: 3px; margin-bottom: 3px; height: 630px; background: #fafafa; } .rtl .ltk-feature { text-align: right; float: right; } .ltk-feature h3 { height: 1em; } .ltk-feature .ltk-image { text-align: center; } .ltk-feature img { margin: 10px; width: 180px; height: 180px; height: auto; } .ltk-feature ul { margin-left: 10px; } .rtl .ltk-feature ul { margin-right: 10px; } .ltk-feature ul li { list-style: inside disc; list-style-position: outside; padding-left: 0; } .rtl .ltk-feature ul li { padding-right: 0; } .ltk-feature .ltk-desc { height: 3em; width: 100%; } .ltk-feature .ltk-upper { background: #fff; padding: 20px; } .ltk-feature .ltk-lower { padding: 5px 20px 0px 20px; border-top: 1px solid #eee; font-size: 95%; } @media screen and ( max-width: 620px ) { .ltk-feature { height: auto; padding-bottom: 20px; } } </style> <?php } /** * Outputs the content of each box * * @since 1.7.7 * * @param string $title * @param string $desc * @param array $list * @param array $links * @param string $img */ protected function box( $title, $desc, $list, $links, $img ) { ?> <div class="ltk-feature"> <div class="ltk-upper"> <div class="ltk-image"> <img src="<?php echo esc_url( plugins_url( $img, __FILE__ ) ); ?> " width="220" height="220"/> </div> <h3><?php echo esc_html( $title ); ?></h3> <p class="ltk-desc"><?php echo esc_html( $desc ); ?></p> <?php foreach ( $links as $link_details ) { printf( '<a class = "%s" href = "%s"%s>%s</a> ', esc_attr( $link_details['classes'] ), esc_url( $link_details['link'] ), empty( $link_details['new_tab'] ) ? '' : ' target = "_blank"', esc_html( $link_details['label'] ) ); } ?> </div> <div class="ltk-lower"> <ul> <?php foreach ( $list as $item ) { printf( '<li>%s</li>', esc_html( $item ) ); } ?> </ul> <a href="http://www.lingotek.com/wordpress" target = "_blank"><?php esc_html_e( 'Learn more...', 'polylang' ); ?></a> </div> </div> <?php } /** * Get a link to install / activate Lingotek * depending on user rights and if plugin is already installed * * @since 1.7.7 * * @return string */ protected function get_activate_link() { require_once ABSPATH . '/wp-admin/includes/plugin.php'; if ( ! array_key_exists( self::LINGOTEK, get_plugins() ) ) { if ( current_user_can( 'install_plugins' ) ) { $plugin = dirname( self::LINGOTEK ); return wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=' . $plugin ), 'install-plugin_' . $plugin ); } } elseif ( current_user_can( 'activate_plugins' ) ) { if ( ! is_plugin_active( self::LINGOTEK ) ) { return wp_nonce_url( 'plugins.php?action=activate&plugin=' . self::LINGOTEK, 'activate-plugin_' . self::LINGOTEK ); } } return ''; } } add_action( 'wp_loaded', array( new PLL_Lingotek(), 'init' ) );