locale_translate_batch_import_files(array $options, $force = FALSE)
Prepare a batch to import all translations.
@todo Integrate with update status to identify projects needed and integrate l10n_update functionality to feed in translation files alike. See https://www.drupal.org/node/1191488.
Parameters
array $options: An array with options that can have the following elements:
- 'langcode': The language code. Optional, defaults to NULL, which means that the language will be detected from the name of the files.
- 'overwrite_options': Overwrite options array as defined in Drupal\locale\PoDatabaseWriter. Optional, defaults to an empty array.
- 'customized': Flag indicating whether the strings imported from $file are customized translations or come from a community source. Use LOCALE_CUSTOMIZED or LOCALE_NOT_CUSTOMIZED. Optional, defaults to LOCALE_NOT_CUSTOMIZED.
- 'finish_feedback': Whether or not to give feedback to the user when the batch is finished. Optional, defaults to TRUE.
bool $force: (optional) Import all available files, even if they were imported before.
Return value
array|bool The batch structure, or FALSE if no files are used to build the batch.
File
- core/modules/locale/locale.bulk.inc, line 39
- 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 | function locale_translate_batch_import_files( array $options , $force = FALSE) { $options += array ( 'overwrite_options' => array (), 'customized' => LOCALE_NOT_CUSTOMIZED, 'finish_feedback' => TRUE, ); if (! empty ( $options [ 'langcode' ])) { $langcodes = array ( $options [ 'langcode' ]); } else { // If langcode was not provided, make sure to only import files for the // languages we have added. $langcodes = array_keys (\Drupal::languageManager()->getLanguages()); } $files = locale_translate_get_interface_translation_files( array (), $langcodes ); if (! $force ) { $result = db_select( 'locale_file' , 'lf' ) ->fields( 'lf' , array ( 'langcode' , 'uri' , 'timestamp' )) ->condition( 'langcode' , $langcodes ) ->execute() ->fetchAllAssoc( 'uri' ); foreach ( $result as $uri => $info ) { if (isset( $files [ $uri ]) && filemtime ( $uri ) <= $info ->timestamp) { // The file is already imported and not changed since the last import. // Remove it from file list and don't import it again. unset( $files [ $uri ]); } } } return locale_translate_batch_build( $files , $options ); } |
Please login to continue.