@@ -65,10 +65,9 @@ class DisplayLanguageOptionFactory implements FactoryInterface
         if (!empty($options)) {
             throw new \Exception('Unexpected options sent to factory.');
         }
-        // We want to construct a separate translator instance for this helper,
-        // since it configures different language/locale than the core shared
-        // instance!
-        $factory = new \VuFind\I18n\Translator\TranslatorFactory();
-        return new $requestedName($factory($container, Translator::class));
+        $translator = $container->get(Translator::class);
+        // Add a special locale used just for this plugin:
+        $translator->addTranslationFile('ExtendedIni', null, 'default', 'native');
+        return new $requestedName($translator);
     }
 }
<?php
/**
 * DisplayLanguageOption helper factory.
 *
 * PHP version 7
 *
 * Copyright (C) Villanova University 2018.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2,
 * as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 *
 * @category VuFind
 * @package  View_Helpers
 * @author   Demian Katz <demian.katz@villanova.edu>
 * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
 * @link     https://vufind.org/wiki/development Wiki
 */
namespace VuFind\View\Helper\Root;

use Interop\Container\ContainerInterface;
use Interop\Container\Exception\ContainerException;
use Laminas\Mvc\I18n\Translator;
use Laminas\ServiceManager\Exception\ServiceNotCreatedException;
use Laminas\ServiceManager\Exception\ServiceNotFoundException;
use Laminas\ServiceManager\Factory\FactoryInterface;

/**
 * DisplayLanguageOption helper factory.
 *
 * @category VuFind
 * @package  View_Helpers
 * @author   Demian Katz <demian.katz@villanova.edu>
 * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
 * @link     https://vufind.org/wiki/development Wiki
 */
class DisplayLanguageOptionFactory implements FactoryInterface
{
    /**
     * Create an object
     *
     * @param ContainerInterface $container     Service manager
     * @param string             $requestedName Service being created
     * @param null|array         $options       Extra options (optional)
     *
     * @return object
     *
     * @throws ServiceNotFoundException if unable to resolve the service.
     * @throws ServiceNotCreatedException if an exception is raised when
     * creating a service.
     * @throws ContainerException&\Throwable if any other error occurs
     */
    public function __invoke(ContainerInterface $container, $requestedName,
        array $options = null
    ) {
        if (!empty($options)) {
            throw new \Exception('Unexpected options sent to factory.');
        }
        // We want to construct a separate translator instance for this helper,
        // since it configures different language/locale than the core shared
        // instance!
        $factory = new \VuFind\I18n\Translator\TranslatorFactory();
        return new $requestedName($factory($container, Translator::class));
    }
}

Perhaps it makes more sense to put this in the actual TranslatorFactory; I'm torn between doing that (which is probably more straightforward) and leaving it here (since it ties the loading of the translations to the use of the helper that needs them). Any thoughts/preferences, @EreMaijala?