X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=web%2Fcore%2Fmodules%2Flocale%2Flocale.bulk.es6.js;fp=web%2Fcore%2Fmodules%2Flocale%2Flocale.bulk.es6.js;h=1d72a0bad7922baad382c6091a68ed52625457f7;hb=9917807b03b64faf00f6a1f29dcb6eafc454efa5;hp=0000000000000000000000000000000000000000;hpb=aea91e65e895364e460983b890e295aa5d5540a5;p=yaffs-website diff --git a/web/core/modules/locale/locale.bulk.es6.js b/web/core/modules/locale/locale.bulk.es6.js new file mode 100644 index 000000000..1d72a0bad --- /dev/null +++ b/web/core/modules/locale/locale.bulk.es6.js @@ -0,0 +1,34 @@ +/** + * @file + * Locale behavior. + */ + +(function ($, Drupal) { + /** + * Select the language code of an imported file based on its filename. + * + * This only works if the file name ends with "LANGCODE.po". + * + * @type {Drupal~behavior} + * + * @prop {Drupal~behaviorAttach} attach + * Attaches behavior for preselecting language code based on filename. + */ + Drupal.behaviors.importLanguageCodeSelector = { + attach(context, settings) { + const $form = $('#locale-translate-import-form').once('autodetect-lang'); + if ($form.length) { + const $langcode = $form.find('.langcode-input'); + $form.find('.file-import-input') + .on('change', function () { + // If the filename is fully the language code or the filename + // ends with a language code, pre-select that one. + const matches = $(this).val().match(/([^.][\.]*)([\w-]+)\.po$/); + if (matches && $langcode.find(`option[value="${matches[2]}"]`).length) { + $langcode.val(matches[2]); + } + }); + } + }, + }; +}(jQuery, Drupal));