locale_translate_file_attach_properties($file, array $options = array())
Generates file properties from filename and options.
An attempt is made to determine the translation language, project name and project version from the file name. Supported file name patterns are: {project}-{version}.{langcode}.po, {prefix}.{langcode}.po or {langcode}.po. Alternatively the translation language can be set using the $options.
Parameters
object $file: A file object of the gettext file to be imported.
array $options: An array with options:
- 'langcode': The language code. Overrides the file language.
Return value
object Modified file object.
File
- core/modules/locale/locale.bulk.inc, line 451
- 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 | function locale_translate_file_attach_properties( $file , array $options = array ()) { // If $file is a file entity, convert it to a stdClass. if ( $file instanceof FileInterface) { $file = (object) array ( 'filename' => $file ->getFilename(), 'uri' => $file ->getFileUri(), ); } // Extract project, version and language code from the file name. Supported: // {project}-{version}.{langcode}.po, {prefix}.{langcode}.po or {langcode}.po preg_match('! ( # project OR project and version OR empty (group 1) ([a-z_]+) # project name (group 2) \. # . | # OR ([a-z_]+) # project name (group 3) \- # - ([0-9a-z\.\-\+]+) # version (group 4) \. # . | # OR ) # ( empty ) ([^\./]+) # language code (group 5) \. # . po # po extension $!x', $file ->filename, $matches ); if (isset( $matches [5])) { $file ->project = $matches [2] . $matches [3]; $file ->version = $matches [4]; $file ->langcode = isset( $options [ 'langcode' ]) ? $options [ 'langcode' ] : $matches [5]; } else { $file ->langcode = LanguageInterface::LANGCODE_NOT_SPECIFIED; } return $file ; } |
Please login to continue.