protected Dictionary <string, List <string> > GetTranslations(IArtifactDirectory directory)
        {
            var name = HarvesterNameAttribute.GetShort(typeof(THarvester));

            var translations = new Dictionary <string, List <string> >();

            foreach (var file in directory.GetFiles($"{name}.??.txt"))
            {
                Logger.Info("Read translation from file {filename}", Path.GetFileName(file));

                var language = Regex.Match(file, $@"{name}\.(?<name>(.+))\.txt$").Groups["name"].Value.ToLowerInvariant();
                using (var reader = directory.ReadTextFile(file))
                {
                    Func <string, string> transformationFunc = null;
                    if (TranslationTransformings?.TryGetValue(language, out transformationFunc) == false)
                    {
                        Logger.Warn("No translation transformation function found for {lang}", language);
                    }

                    translations.Add(language, ReadTranslation(reader, transformationFunc));
                }
            }

            return(translations);
        }