public static bool IsOutOfDate(this LanguageMetadata previousTranslations, LanguageMetadata currentTranslations, string outputDir)
        {
            var fileMissing          = !File.Exists(Path.Combine(outputDir, currentTranslations.LanguageCode + ".json"));
            var newTranslation       = previousTranslations == null;
            var translationOutOfDate = !newTranslation && previousTranslations.Version.CompareTo(currentTranslations.Version) < 0;

            return(fileMissing || newTranslation || translationOutOfDate);
        }
Ejemplo n.º 2
0
        public void CreateTranslationFiles(string destinationDirectory, IDictionary <string, LanguageMetadata> previousTranslations, IEnumerable <LanguageInfo> processedTranslations)
        {
            Parallel.ForEach(processedTranslations, (translation) =>
            {
                var languageCode = translation.LanguageCode;

                LanguageMetadata previousTranslationMetadata = null;
                previousTranslations.TryGetValue(languageCode, out previousTranslationMetadata);

                if (Arguments.ForceOverwrite || previousTranslationMetadata.IsOutOfDate(translation, destinationDirectory))
                {
                    log.Info("Writing locale " + languageCode + " to file: " + Path.Combine(destinationDirectory, languageCode + Constants.JsonFileExtension));
                    translation.WriteToJsonFile(destinationDirectory, languageCode + Constants.JsonFileExtension);
                }
            });
        }
 public IEnumerable <LanguageMetadata> SupportedLanguages()
 {
     return(Service
            .RegisteredInterpreters
            .Select(l => LanguageMetadata.Create(l.Language, l.Summary, l.Url)));
 }