IFieldUpdateCultureProvider Interface
When implemented, provides a CultureInfo object that should be used during the update of a particular field.

Namespace: Aspose.Words.Fields
Assembly: Aspose.Words (in Aspose.Words.dll) Version: 19.11
Syntax
public interface IFieldUpdateCultureProvider

The IFieldUpdateCultureProvider type exposes the following members.

Methods
  NameDescription
Public methodCode exampleGetCulture
Returns a CultureInfo object to be used during the field's update.
Examples
Shows how to specifying a culture defining date/time formatting on per field basis
[Test]
public void DefineDateTimeFormatting()
{
    Document doc = new Document(MyDir + "Field.UpdateDateTimeFormatting.docx");

    doc.FieldOptions.FieldUpdateCultureSource = FieldUpdateCultureSource.FieldCode;
    // Set a provider that return a culture object specific for each particular field
    doc.FieldOptions.FieldUpdateCultureProvider = new FieldUpdateCultureProvider();

    FieldTime fieldDate = (FieldTime) doc.Range.Fields[0];
    if (fieldDate.LocaleId != (int) EditingLanguage.Russian)
        fieldDate.LocaleId = (int) EditingLanguage.Russian;

    doc.Save(ArtifactsDir + "Field.UpdateDateTimeFormatting.pdf");
}

/// <summary>
/// Provides a CultureInfo object that should be used during the update of a particular field.
/// </summary>
private class FieldUpdateCultureProvider : IFieldUpdateCultureProvider
{
    /// <summary>
    /// Returns a CultureInfo object to be used during the field's update.
    /// </summary>
    public CultureInfo GetCulture(string name, Field field)
    {
        switch (name)
        {
            case "ru-RU":
                CultureInfo culture = new CultureInfo(name, false);
                DateTimeFormatInfo format = culture.DateTimeFormat;

                format.MonthNames = new []{"месяц 1", "месяц 2", "месяц 3", "месяц 4", "месяц 5", "месяц 6", "месяц 7", "месяц 8", "месяц 9", "месяц 10", "месяц 11", "месяц 12", ""};
                format.MonthGenitiveNames = format.MonthNames;
                format.AbbreviatedMonthNames = new []{"мес 1", "мес 2", "мес 3", "мес 4", "мес 5", "мес 6", "мес 7", "мес 8", "мес 9", "мес 10", "мес 11", "мес 12", ""};
                format.AbbreviatedMonthGenitiveNames = format.AbbreviatedMonthNames;

                format.DayNames = new []{"день недели 7", "день недели 1", "день недели 2", "день недели 3", "день недели 4", "день недели 5", "день недели 6"};
                format.AbbreviatedDayNames = new []{"день 7", "день 1", "день 2", "день 3", "день 4", "день 5", "день 6"};
                format.ShortestDayNames = new []{"д7", "д1", "д2", "д3", "д4", "д5", "д6"};

                format.AMDesignator = "До полудня";
                format.PMDesignator = "После полудня";

                const string pattern = "yyyy MM (MMMM) dd (dddd) hh:mm:ss tt";
                format.LongDatePattern = pattern;
                format.LongTimePattern = pattern;
                format.ShortDatePattern = pattern;
                format.ShortTimePattern = pattern;

                return culture;
            case "en-US":
                return new CultureInfo(name, false);
            default:
                return null;
        }
    }
}
See Also