You are here

function locale_translation_download_source in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/locale/locale.batch.inc \locale_translation_download_source()

Downloads a translation file from a remote server.

Parameters

object $source_file: Source file object with at least:

  • "uri": uri to download the file from.
  • "project": Project name.
  • "langcode": Translation language.
  • "version": Project version.
  • "filename": File name.

string $directory: Directory where the downloaded file will be saved. Defaults to the temporary file path.

Return value

object File object if download was successful. FALSE on failure.

2 calls to locale_translation_download_source()
LocaleTranslationDownloadTest::testUpdateImportSourceRemote in core/modules/locale/tests/src/Functional/LocaleTranslationDownloadTest.php
Tests translation download from remote sources.
locale_translation_batch_fetch_download in core/modules/locale/locale.batch.inc
Implements callback_batch_operation().

File

core/modules/locale/locale.batch.inc, line 302
Batch process to check the availability of remote or local po files.

Code

function locale_translation_download_source($source_file, $directory = 'temporary://') {
  if ($uri = system_retrieve_file($source_file->uri, $directory, FALSE, FileSystemInterface::EXISTS_REPLACE)) {
    $file = clone $source_file;
    $file->type = LOCALE_TRANSLATION_LOCAL;
    $file->uri = $uri;
    $file->directory = $directory;
    $file->timestamp = filemtime($uri);
    return $file;
  }
  \Drupal::logger('locale')
    ->error('Unable to download translation file @uri.', [
    '@uri' => $source_file->uri,
  ]);
  return FALSE;
}