Translate pdf with Gravity pdf
Since the version 3.7 of Weglot plugin, you can translate pdf generate by Gravity PDF.
// Add this using the "Code Snippets" plugin.
// Create a new meta entry to store the weglot_language on Gravity Forms entries.
add_filter( 'gform_entry_meta', 'get_entry_meta', 10, 2 );
function get_entry_meta( $entry_meta, $form_id ) {
$entry_meta['weglot_language'] = array(
'label' => 'Weglot language',
'is_numeric' => false,
'is_default_column' => true,
'update_entry_meta_callback' => 'update_entry_meta',
);
return $entry_meta;
}
function update_entry_meta( $key, $lead, $form ) {
return ''; // Return the value of the entry meta.
}
// Store the Weglot language on submission.
add_action( 'gform_after_submission', 'after_submission' );
function after_submission( $entry ) {
$request_url_services = weglot_get_service( 'Request_Url_Service_Weglot' );
$current_language = $request_url_services->get_current_language()->getExternalCode();
gform_update_meta( $entry['id'], 'weglot_language', $current_language );
}
// Translate the PDF using the stored language.
add_filter( 'gfpdf_pdf_html_output', function( $html, $form, $entry, $settings, $Helper_PDF ) {
$weglot_language = gform_get_meta( $entry['id'], 'weglot_language' );
if ( $weglot_language === weglot_get_original_language() ) {
return $html;
}
$qp = new GFPDF\Helper\Helper_QueryPath();
$pdf_translate_service = weglot_get_service( 'Pdf_Translate_Service_Weglot' );
$html = $pdf_translate_service->translate_pdf( $html, $weglot_language );
$wrapper = $qp->html5( $html['content'] );
return $wrapper->top( 'html' )->innerHTML5();
}, 10, 5 );Last updated