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); }
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))); }