locale_translation_batch_status_check($project, $langcode, array $options, &$context)
Implements callback_batch_operation().
Checks the presence and creation time po translation files in located at remote server location and local file system.
Parameters
string $project: Machine name of the project for which to check the translation status.
string $langcode: Language code of the language for which to check the translation.
array $options: An array with options that can have the following elements:
- 'finish_feedback': Whether or not to give feedback to the user when the batch is finished. Optional, defaults to TRUE.
- 'use_remote': Whether or not to check the remote translation file. Optional, defaults to TRUE.
array|\ArrayAccess $context.: The batch context.
File
- core/modules/locale/locale.batch.inc, line 39
- Batch process to check the availability of remote or local 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 | function locale_translation_batch_status_check( $project , $langcode , array $options , & $context ) { $failure = $checked = FALSE; $options += array ( 'finish_feedback' => TRUE, 'use_remote' => TRUE, ); $source = locale_translation_get_status( array ( $project ), array ( $langcode )); $source = $source [ $project ][ $langcode ]; // Check the status of local translation files. if (isset( $source ->files[LOCALE_TRANSLATION_LOCAL])) { if ( $file = locale_translation_source_check_file( $source )) { locale_translation_status_save( $source ->name, $source ->langcode, LOCALE_TRANSLATION_LOCAL, $file ); } $checked = TRUE; } // Check the status of remote translation files. if ( $options [ 'use_remote' ] && isset( $source ->files[LOCALE_TRANSLATION_REMOTE])) { $remote_file = $source ->files[LOCALE_TRANSLATION_REMOTE]; if ( $result = locale_translation_http_check( $remote_file ->uri)) { // Update the file object with the result data. In case of a redirect we // store the resulting uri. if (isset( $result [ 'last_modified' ])) { $remote_file ->uri = isset( $result [ 'location' ]) ? $result [ 'location' ] : $remote_file ->uri; $remote_file ->timestamp = $result [ 'last_modified' ]; locale_translation_status_save( $source ->name, $source ->langcode, LOCALE_TRANSLATION_REMOTE, $remote_file ); } // @todo What to do with when the file is not found (404)? To prevent // re-checking within the TTL (1day, 1week) we can set a last_checked // timestamp or cache the result. $checked = TRUE; } else { $failure = TRUE; } } // Provide user feedback and record success or failure for reporting at the // end of the batch. if ( $options [ 'finish_feedback' ] && $checked ) { $context [ 'results' ][ 'files' ][] = $source ->name; } if ( $failure && ! $checked ) { $context [ 'results' ][ 'failed_files' ][] = $source ->name; } $context [ 'message' ] = t( 'Checked translation for %project.' , array ( '%project' => $source ->project)); } |
Please login to continue.