function LocaleSource::sourceCheckFile

Same name and namespace in other branches
  1. 11.x core/modules/locale/src/LocaleSource.php \Drupal\locale\LocaleSource::sourceCheckFile()

Checks whether a po file exists in the local filesystem.

It will search in the directory set in the translation source. Which defaults to the "translations://" stream wrapper path. The directory may contain any valid stream wrapper.

The "local" files property of the source object contains the definition of a po file we are looking for. The file name defaults to %project-%version.%language.po. Per project this value can be overridden using the server_pattern directive in the module's .info.yml file or by using hook_locale_translation_projects_alter().

Parameters

object $source: Translation source object.

Return value

object Source file object of the po file, updated with:

  • "uri": File name and path.
  • "timestamp": Last updated time of the po file.

FALSE if the file is not found.

See also

sourceBuild()

File

core/modules/locale/src/LocaleSource.php, line 108

Class

LocaleSource
Provides the locale source services.

Namespace

Drupal\locale

Code

public function sourceCheckFile($source) {
  if (isset($source->files[LOCALE_TRANSLATION_LOCAL])) {
    $source_file = $source->files[LOCALE_TRANSLATION_LOCAL];
    if (isset($source_file->uri) && file_exists($source_file->uri)) {
      $source_file->timestamp = filemtime($source_file->uri);
      $source_file->hash = hash_file(self::LOCAL_FILE_HASH_ALGO, $source_file->uri);
      return $source_file;
    }
  }
  return FALSE;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.