/// <summary> /// Initializes a new instance of the <see cref="ResourceLanguage" /> class. /// </summary> /// <param name="container">The containing resource entity.</param> /// <param name="cultureKey">The culture key.</param> /// <param name="file">The .resx file having all the localization.</param> /// <param name="duplicateKeyHandling">The duplicate key handling.</param> /// <exception cref="InvalidOperationException"> /// </exception> /// <exception cref="System.InvalidOperationException"></exception> internal ResourceLanguage(ResourceEntity container, CultureKey cultureKey, ProjectFile file, DuplicateKeyHandling duplicateKeyHandling) { Container = container; CultureKey = cultureKey; ProjectFile = file; _configuration = container.Container.Configuration; try { _document = file.Load(); } catch (XmlException ex) { throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, Resources.InvalidResourceFileError, file.FilePath), ex); } if (DocumentRoot == null) { throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, Resources.InvalidResourceFileError, file.FilePath)); } var defaultNamespace = DocumentRoot.GetDefaultNamespace(); _dataNodeName = defaultNamespace.GetName(@"data"); _valueNodeName = defaultNamespace.GetName(@"value"); _commentNodeName = defaultNamespace.GetName(@"comment"); UpdateNodes(duplicateKeyHandling); }
/// <summary> /// Initializes a new instance of the <see cref="ResourceLanguage" /> class. /// </summary> /// <param name="container">The containing resource entity.</param> /// <param name="cultureKey">The culture key.</param> /// <param name="file">The .resx file having all the localization.</param> /// <exception cref="System.InvalidOperationException"> /// </exception> internal ResourceLanguage([NotNull] ResourceEntity container, [NotNull] CultureKey cultureKey, [NotNull] ProjectFile file) { Contract.Requires(container != null); Contract.Requires(cultureKey != null); Contract.Requires(file != null); _container = container; _cultureKey = cultureKey; _file = file; _configuration = container.Container.Configuration; try { _document = file.Load(); } catch (XmlException ex) { throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, Resources.InvalidResourceFileError, file.FilePath), ex); } if (_documentRoot == null) { throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, Resources.InvalidResourceFileError, file.FilePath)); } var defaultNamespace = _documentRoot.GetDefaultNamespace(); _dataNodeName = defaultNamespace.GetName(@"data"); _valueNodeName = defaultNamespace.GetName(@"value"); _commentNodeName = defaultNamespace.GetName(@"comment"); UpdateNodes(); }
internal void LanguageAdded([NotNull] CultureKey cultureKey) { if (!Cultures.Contains(cultureKey)) { Cultures.Add(cultureKey); } }
public ResourceBeginEditingEventArgs(ResourceEntity entity, CultureKey cultureKey) { Contract.Requires(entity != null); _entity = entity; _cultureKey = cultureKey; }
internal void LanguageAdded(CultureKey cultureKey) { if (!_cultureKeys.Contains(cultureKey)) { _cultureKeys.Add(cultureKey); } }
protected LanguageColumnHeaderBase([NotNull] Configuration configuration, [NotNull] CultureKey cultureKey) { Contract.Requires(configuration != null); Contract.Requires(cultureKey != null); _configuration = configuration; _cultureKey = cultureKey; }
protected LanguageColumnHeaderBase(ResourceManager resourceManager, CultureKey cultureKey) { Contract.Requires(resourceManager != null); Contract.Requires(cultureKey != null); _resourceManager = resourceManager; _cultureKey = cultureKey; }
private static IEnumerable <string> GetTableLanguageColumnHeaders([NotNull] this CultureKey cultureKey) { var cultureName = cultureKey.ToString(); yield return(CommentHeaderPrefix + cultureName); yield return(cultureName); }
public TranslationItem([NotNull] ResourceTableEntry entry, [NotNull] string source, [NotNull] CultureKey targetCulture) { _entry = entry; Source = source; TargetCulture = targetCulture; _results.CollectionChanged += (_, __) => OnPropertyChanged(() => Translation); }
internal void LanguageAdded([NotNull] CultureKey cultureKey) { Contract.Requires(cultureKey != null); if (!_cultureKeys.Contains(cultureKey)) { _cultureKeys.Add(cultureKey); } }
public static void CreateNewLanguageColumn(this DataGrid dataGrid, Configuration configuration, CultureInfo?culture) { var cultureKey = new CultureKey(culture); dataGrid.AddLanguageColumn(configuration, cultureKey); var key = cultureKey.ToString(NeutralCultureKeyString); HiddenLanguageColumns = HiddenLanguageColumns.Where(col => !string.Equals(col, key, StringComparison.OrdinalIgnoreCase)); }
/// <summary> /// Initializes a new instance of the <see cref="ResourceLanguage" /> class. /// </summary> /// <param name="container">The containing resource entity.</param> /// <param name="cultureKey">The culture key.</param> /// <param name="file">The .resx file having all the localization.</param> /// <exception cref="System.InvalidOperationException"> /// </exception> internal ResourceLanguage(ResourceEntity container, CultureKey cultureKey, ProjectFile file) { Contract.Requires(container != null); Contract.Requires(cultureKey != null); Contract.Requires(file != null); _container = container; _resourceManager = container.Container; _cultureKey = cultureKey; _file = file; try { _document = file.Load(); _documentRoot = _document.Root; } catch (XmlException ex) { throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, Resources.InvalidResourceFileError, file.FilePath), ex); } if (_documentRoot == null) { throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, Resources.InvalidResourceFileError, file.FilePath)); } var defaultNamespace = _documentRoot.GetDefaultNamespace(); _dataNodeName = defaultNamespace.GetName(@"data"); _valueNodeName = defaultNamespace.GetName(@"value"); _commentNodeName = defaultNamespace.GetName(@"comment"); var data = _documentRoot.Elements(_dataNodeName); var elements = data .Where(IsStringType) .Select(item => new Node(this, item)) .Where(item => !item.Key.StartsWith(WinFormsMemberNamePrefix, StringComparison.OrdinalIgnoreCase)) .ToArray(); if (_resourceManager.Configuration.DuplicateKeyHandling == DuplicateKeyHandling.Rename) { MakeKeysUnique(elements); } try { _nodes = elements.ToDictionary(item => item.Key); } catch (ArgumentException ex) { var duplicateKeys = string.Join(@", ", elements.GroupBy(item => item.Key).Where(group => group.Count() > 1).Select(group => Quote + group.Key + Quote)); throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, Resources.DuplicateKeyError, file.FilePath, duplicateKeys), ex); } }
public TranslationItem([NotNull] ResourceTableEntry entry, [NotNull] string source, [NotNull] CultureKey targetCulture) { Contract.Requires(entry != null); Contract.Requires(source != null); Contract.Requires(targetCulture != null); _entry = entry; _source = source; _targetCulture = targetCulture; _results.CollectionChanged += (_, __) => OnPropertyChanged(() => Translation); }
private bool CanEdit([NotNull] ResourceEntity entity, [CanBeNull] CultureKey cultureKey) { Contract.Requires(entity != null); if (cultureKey == null) { return(true); } var rootFolder = _sourceFilesProvider.Folder; if (string.IsNullOrEmpty(rootFolder)) { return(false); } var language = entity.Languages.FirstOrDefault(lang => cultureKey.Equals(lang.CultureKey)); if (language != null) { return(true); } var culture = cultureKey.Culture; if (culture == null) { return(false); // no neutral culture => this should never happen. } var neutralLanguage = entity.Languages.FirstOrDefault(); if (neutralLanguage == null) { return(false); } var languageFileName = neutralLanguage.ProjectFile.GetLanguageFileName(culture); if (!File.Exists(languageFileName)) { var directoryName = Path.GetDirectoryName(languageFileName); if (!string.IsNullOrEmpty(directoryName)) { Directory.CreateDirectory(directoryName); } File.WriteAllText(languageFileName, Resources.EmptyResxTemplate); } entity.AddLanguage(new ProjectFile(languageFileName, rootFolder, entity.ProjectName, null)); return(true); }
public static void CreateNewLanguageColumn([NotNull] this DataGrid dataGrid, [NotNull] Configuration configuration, [CanBeNull] CultureInfo culture) { Contract.Requires(dataGrid != null); Contract.Requires(configuration != null); var cultureKey = new CultureKey(culture); dataGrid.AddLanguageColumn(configuration, cultureKey); var key = cultureKey.ToString(NeutralCultureKeyString); HiddenLanguageColumns = HiddenLanguageColumns.Where(col => !string.Equals(col, key, StringComparison.OrdinalIgnoreCase)); }
private bool IsSnapshotDifferent(CultureKey culture) { Contract.Requires(culture != null); Contract.Requires(_snapshot != null); var snapshotValue = _snapshot.GetValueOrDefault(culture).Maybe().Return(x => x.Text) ?? string.Empty; var currentValue = _values.GetValue(culture) ?? string.Empty; var snapshotComment = _snapshot.GetValueOrDefault(culture).Maybe().Return(x => x.Comment) ?? string.Empty; var currentComment = _comments.GetValue(culture) ?? string.Empty; return(!string.Equals(snapshotValue, currentValue) || !string.Equals(snapshotComment, currentComment)); }
public static void CreateNewLanguageColumn(this DataGrid dataGrid, ResourceManager resourceManager, CultureInfo culture) { Contract.Requires(dataGrid != null); Contract.Requires(resourceManager != null); var cultureKey = new CultureKey(culture); AddLanguageColumn(dataGrid, resourceManager, cultureKey); var key = cultureKey.ToString(NeutralCultureKeyString); HiddenLanguageColumns = HiddenLanguageColumns.Where(col => !string.Equals(col, key, StringComparison.OrdinalIgnoreCase)); }
private static IEnumerable <string> GetLanguageColumnHeaders([NotNull] this CultureKey language, [CanBeNull] IResourceScope scope) { var cultureKeyName = language.ToString(); if ((scope == null) || scope.Comments.Contains(language)) { yield return(CommentHeaderPrefix + cultureKeyName); } if ((scope == null) || scope.Languages.Contains(language)) { yield return(cultureKeyName); } }
public bool CanEdit([NotNull] ResourceEntity resourceEntity, CultureKey cultureKey) { Contract.Requires(resourceEntity != null); var eventHandler = BeginEditing; if (eventHandler == null) return true; var args = new ResourceBeginEditingEventArgs(resourceEntity, cultureKey); eventHandler(this, args); return !args.Cancel; }
public TranslationItem(ResourceTableEntry entry, string source, CultureKey targetCulture) { Contract.Requires(entry != null); Contract.Requires(source != null); Contract.Requires(targetCulture != null); Entry = entry; Source = source; _targetCulture = targetCulture; _results.CollectionChanged += (_, __) => OnPropertyChanged(() => Translation); _orderedResults = new ListCollectionView(_results); _orderedResults.SortDescriptions.Add(new SortDescription("Rating", ListSortDirection.Descending)); _orderedResults.SortDescriptions.Add(new SortDescription("Translator.DisplayName", ListSortDirection.Ascending)); }
public bool CanEdit([NotNull] ResourceEntity resourceEntity, [CanBeNull] CultureKey cultureKey) { var eventHandler = BeginEditing; if (eventHandler == null) { return(true); } var args = new ResourceBeginEditingEventArgs(resourceEntity, cultureKey); eventHandler(this, args); return(!args.Cancel); }
public T GetValue(CultureKey cultureKey) { Contract.Requires(cultureKey != null); ResourceLanguage language; if (!_languages.TryGetValue(cultureKey, out language)) { return(default(T)); } Contract.Assume(language != null); return(_getter(language)); }
public T GetValue(object culture) { var cultureKey = CultureKey.Parse(culture); ResourceLanguage language; if (!_languages.TryGetValue(cultureKey, out language)) { return(default(T)); } Contract.Assume(language != null); return(_getter(language)); }
private static IEnumerable <CultureKey> CastLanguages(object languages) { var obj = languages.PsObjectCast <object>(); switch (obj) { case string str: return(new[] { CultureKey.Parse(str) }); case IEnumerable enumerable: return(enumerable.PsCast <object>().Select(CultureKey.Parse).ToArray()); default: return(new[] { CultureKey.Parse(obj.PsObjectCast <object>()) }); } }
private static IEnumerable <string> GetLanguageColumnHeaders(this CultureKey language, IResourceScope scope) { Contract.Requires(language != null); var cultureKeyName = language.ToString(); if ((scope == null) || scope.Comments.Contains(language)) { yield return(CommentHeaderPrefix + cultureKeyName); } if ((scope == null) || scope.Languages.Contains(language)) { yield return(cultureKeyName); } }
private static string?GetEntryData(this ResourceTableEntry entry, CultureKey culture, ColumnKind columnKind) { var snapshot = entry.Snapshot; if (snapshot != null) { if (!snapshot.TryGetValue(culture, out var data) || (data == null)) { return(null); } return(columnKind switch { ColumnKind.Text => data.Text, ColumnKind.Comment => data.Comment, _ => throw new InvalidOperationException("Invalid Column Kind") });
private bool IsSnapshotDifferent([NotNull] CultureKey culture) { Contract.Requires(culture != null); if (_snapshot == null) { return(false); } var snapshotValue = _snapshot.GetValueOrDefault(culture)?.Text ?? string.Empty; var currentValue = _values.GetValue(culture) ?? string.Empty; var snapshotComment = _snapshot.GetValueOrDefault(culture)?.Comment ?? string.Empty; var currentComment = _comments.GetValue(culture) ?? string.Empty; return(!string.Equals(snapshotValue, currentValue) || !string.Equals(snapshotComment, currentComment)); }
public bool SetValue(CultureKey cultureKey, T value) { Contract.Requires(cultureKey != null); ResourceLanguage language; if (!_languages.TryGetValue(cultureKey, out language)) { throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Resources.LanguageNotDefinedError, cultureKey.Culture)); } if (!_setter(language, value)) { return(false); } OnValueChanged(); return(true); }
public bool SetValue(object culture, T value) { var cultureKey = CultureKey.Parse(culture); ResourceLanguage language; if (!_languages.TryGetValue(cultureKey, out language)) { throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Resources.LanguageNotDefinedError, cultureKey.Culture)); } if (!_setter(language, value)) { return(false); } OnValueChanged(); return(true); }
private static IEnumerable <CultureKey> CastLanguages(object languages) { IEnumerable <CultureKey> resourceLanguages = null; switch (languages.PsObjectCast <object>()) { case string str: resourceLanguages = new[] { CultureKey.Parse(str) }; break; case IEnumerable enumerable: resourceLanguages = enumerable.PsCast <object>().Select(CultureKey.Parse).ToArray(); break; case object obj: resourceLanguages = new[] { CultureKey.Parse(obj.PsObjectCast <object>()) }; break; } return(resourceLanguages); }