[ 'title' => __( 'Active service:', 'wpml-translation-management' ), 'deactivate' => __( 'Deactivate', 'wpml-translation-management' ), 'modal_header' => sprintf( __( 'Enter here your %s authentication details', 'wpml-translation-management' ), $active_service->get_name() ), 'modal_tip' => $active_service->get_popup_message() ? $active_service->get_popup_message() : __( 'You can find API token at %s site', 'wpml-translation-management' ), 'modal_title' => sprintf( __( '%s authentication', 'wpml-translation-management' ), $active_service->get_name() ), 'refresh_language_pairs' => __( 'Refresh language pairs', 'wpml-translation-management' ), 'refresh_ts_info' => __( 'Refresh information', 'wpml-translation-management' ), 'documentation_lower' => __( 'documentation', 'wpml-translation-management' ), 'refreshing_ts_message' => __( 'Refreshing translation service information...', 'wpml-translation-management' ), ], 'active_service' => $active_service, 'nonces' => [ \WPML_TP_Refresh_Language_Pairs::AJAX_ACTION => wp_create_nonce( \WPML_TP_Refresh_Language_Pairs::AJAX_ACTION ), ActivationAjax::REFRESH_TS_INFO_ACTION => wp_create_nonce( ActivationAjax::REFRESH_TS_INFO_ACTION ), ], 'needs_info_refresh' => self::shouldRefreshData( $active_service ), ]; $authentication_message = []; /* translators: sentence 1/3: create account with the translation service ("%1$s" is the service name) */ $authentication_message[] = __( 'To send content for translation to %1$s, you need to have an %1$s account.', 'wpml-translation-management' ); /* translators: sentence 2/3: create account with the translation service ("one" is "one account) */ $authentication_message[] = __( "If you don't have one, you can create it after clicking the authenticate button.", 'wpml-translation-management' ); /* translators: sentence 3/3: create account with the translation service ("%2$s" is "documentation") */ $authentication_message[] = __( 'Please, check the %2$s page for more details.', 'wpml-translation-management' ); $model['strings']['authentication'] = [ 'description' => implode( ' ', $authentication_message ), 'authenticate_button' => __( 'Authenticate', 'wpml-translation-management' ), 'de_authorize_button' => __( 'De-authorize', 'wpml-translation-management' ), 'update_credentials_button' => __( 'Update credentials', 'wpml-translation-management' ), 'is_authorized' => self::isAuthorizedText( $active_service->get_name() ), ]; return $model; } private static function isAuthorizedText( $serviceName ) { $query_args = [ 'page' => WPML_TM_FOLDER . \WPML_Translation_Management::PAGE_SLUG_MANAGEMENT, 'sm' => 'dashboard', ]; $href = add_query_arg( $query_args, admin_url( 'admin.php' ) ); $dashboard = '' . __( 'Translation Dashboard', 'wpml-translation-management' ) . ''; $isAuthorized = sprintf( __( 'Success! You can now send content to %s.', 'wpml-translation-management' ), $serviceName ); $isAuthorized .= '
'; // translators: "%s" is replaced with the link to the "Translation Dashboard" $isAuthorized .= sprintf( __( 'Go to the %s to choose the content and send it to translation.', 'wpml-translation-management' ), $dashboard ); return $isAuthorized; } private static function shouldRefreshData( \WPML_TP_Service $active_service ) { $refresh_time = time() - ( self::HOURS_BEFORE_TS_REFRESH * HOUR_IN_SECONDS ); return ! $active_service->get_last_refresh() || $active_service->get_last_refresh() < $refresh_time; } }