locale_translate_batch_finished($success, array $results)
Implements callback_batch_finished().
Finished callback of system page locale import batch.
Parameters
bool $success: TRUE if batch successfully completed.
array $results: Batch results.
File
- core/modules/locale/locale.bulk.inc, line 364
- Mass import-export and batch import functionality for Gettext .po files.
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | function locale_translate_batch_finished( $success , array $results ) { $logger = \Drupal::logger( 'locale' ); if ( $success ) { $additions = $updates = $deletes = $skips = $config = 0; if (isset( $results [ 'failed_files' ])) { if (\Drupal::moduleHandler()->moduleExists( 'dblog' ) && \Drupal::currentUser()->hasPermission( 'access site reports' )) { $message = \Drupal::translation()->formatPlural( count ( $results [ 'failed_files' ]), 'One translation file could not be imported. <a href=":url">See the log</a> for details.' , '@count translation files could not be imported. <a href=":url">See the log</a> for details.' , array ( ':url' => \Drupal::url( 'dblog.overview' ))); } else { $message = \Drupal::translation()->formatPlural( count ( $results [ 'failed_files' ]), 'One translation file could not be imported. See the log for details.' , '@count translation files could not be imported. See the log for details.' ); } drupal_set_message( $message , 'error' ); } if (isset( $results [ 'files' ])) { $skipped_files = array (); // If there are no results and/or no stats (eg. coping with an empty .po // file), simply do nothing. if ( $results && isset( $results [ 'stats' ])) { foreach ( $results [ 'stats' ] as $filepath => $report ) { $additions += $report [ 'additions' ]; $updates += $report [ 'updates' ]; $deletes += $report [ 'deletes' ]; $skips += $report [ 'skips' ]; if ( $report [ 'skips' ] > 0) { $skipped_files [] = $filepath ; } } } drupal_set_message(\Drupal::translation()->formatPlural( count ( $results [ 'files' ]), 'One translation file imported. %number translations were added, %update translations were updated and %delete translations were removed.' , '@count translation files imported. %number translations were added, %update translations were updated and %delete translations were removed.' , array ( '%number' => $additions , '%update' => $updates , '%delete' => $deletes ) )); $logger ->notice( 'Translations imported: %number added, %update updated, %delete removed.' , array ( '%number' => $additions , '%update' => $updates , '%delete' => $deletes )); if ( $skips ) { if (\Drupal::moduleHandler()->moduleExists( 'dblog' ) && \Drupal::currentUser()->hasPermission( 'access site reports' )) { $message = \Drupal::translation()->formatPlural( $skips , 'One translation string was skipped because of disallowed or malformed HTML. <a href=":url">See the log</a> for details.' , '@count translation strings were skipped because of disallowed or malformed HTML. <a href=":url">See the log</a> for details.' , array ( ':url' => \Drupal::url( 'dblog.overview' ))); } else { $message = \Drupal::translation()->formatPlural( $skips , 'One translation string was skipped because of disallowed or malformed HTML. See the log for details.' , '@count translation strings were skipped because of disallowed or malformed HTML. See the log for details.' ); } drupal_set_message( $message , 'warning' ); $logger ->warning( '@count disallowed HTML string(s) in files: @files.' , array ( '@count' => $skips , '@files' => implode( ',' , $skipped_files ))); } } } // Add messages for configuration too. if (isset( $results [ 'stats' ][ 'config' ])) { locale_config_batch_finished( $success , $results ); } } |
Please login to continue.