com.aspose.words
Interface IFieldUpdateCultureProvider


public interface IFieldUpdateCultureProvider 

When implemented, provides a com.aspose.words.net.System.Globalization.CultureInfo object that should be used during the update of a particular field.

Example:

Shows how to specify a culture defining date/time formatting on per field basis.
public void defineDateTimeFormatting() throws Exception {
    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);

    builder.insertField(FieldType.FIELD_TIME, true);

    doc.getFieldOptions().setFieldUpdateCultureSource(FieldUpdateCultureSource.FIELD_CODE);
    // Set a provider that return a culture object specific for each particular field
    doc.getFieldOptions().setFieldUpdateCultureProvider(new FieldUpdateCultureProvider());

    FieldTime fieldDate = (FieldTime) doc.getRange().getFields().get(0);
    if (fieldDate.getLocaleId() != (int) EditingLanguage.RUSSIAN)
        fieldDate.setLocaleId((int) EditingLanguage.RUSSIAN);

    doc.save(getArtifactsDir() + "FieldOptions.UpdateDateTimeFormatting.pdf");
}

/// <summary>
/// Provides a CultureInfo object that should be used during the update of a particular field.
/// </summary>
private static class FieldUpdateCultureProvider implements 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(new Locale(name));
                DateTimeFormatInfo format = culture.getDateTimeFormat();

                format.setMonthNames(new String[]{"месяц 1", "месяц 2", "месяц 3", "месяц 4", "месяц 5", "месяц 6", "месяц 7", "месяц 8", "месяц 9", "месяц 10", "месяц 11", "месяц 12", ""});
                format.setMonthGenitiveNames(format.getMonthNames());
                format.setAbbreviatedMonthNames(new String[]{"мес 1", "мес 2", "мес 3", "мес 4", "мес 5", "мес 6", "мес 7", "мес 8", "мес 9", "мес 10", "мес 11", "мес 12", ""});
                format.setAbbreviatedMonthGenitiveNames(format.getAbbreviatedMonthNames());

                format.setDayNames(new String[]{"день недели 7", "день недели 1", "день недели 2", "день недели 3", "день недели 4", "день недели 5", "день недели 6"});
                format.setAbbreviatedDayNames(new String[]{"день 7", "день 1", "день 2", "день 3", "день 4", "день 5", "день 6"});
                format.setShortestDayNames(new String[]{"д7", "д1", "д2", "д3", "д4", "д5", "д6"});

                format.setAMDesignator("До полудня");
                format.setPMDesignator("После полудня");

                final String PATTERN = "yyyy MM (MMMM) dd (dddd) hh:mm:ss tt";
                format.setLongDatePattern(PATTERN);
                format.setLongTimePattern(PATTERN);
                format.setShortDatePattern(PATTERN);
                format.setShortTimePattern(PATTERN);

                return culture;
            case "en-US":
                return new CultureInfo(new Locale(name));
            default:
                return null;
        }
    }
}

Method Summary
abstract com.aspose.words.net.System.Globalization.CultureInfogetCulture(java.lang.String culture, Field field)
           Returns a com.aspose.words.net.System.Globalization.CultureInfo object to be used during the field's update.
 

Method Detail

getCulture

public abstract com.aspose.words.net.System.Globalization.CultureInfo getCulture(java.lang.String culture, Field field)
Returns a com.aspose.words.net.System.Globalization.CultureInfo object to be used during the field's update.
Parameters:
culture - The name of the culture requested for the field being updated.
field - The field being updated.
Returns:
The culture object that should be used for the field's update.

Example:

Shows how to specify a culture defining date/time formatting on per field basis.
public void defineDateTimeFormatting() throws Exception {
    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);

    builder.insertField(FieldType.FIELD_TIME, true);

    doc.getFieldOptions().setFieldUpdateCultureSource(FieldUpdateCultureSource.FIELD_CODE);
    // Set a provider that return a culture object specific for each particular field
    doc.getFieldOptions().setFieldUpdateCultureProvider(new FieldUpdateCultureProvider());

    FieldTime fieldDate = (FieldTime) doc.getRange().getFields().get(0);
    if (fieldDate.getLocaleId() != (int) EditingLanguage.RUSSIAN)
        fieldDate.setLocaleId((int) EditingLanguage.RUSSIAN);

    doc.save(getArtifactsDir() + "FieldOptions.UpdateDateTimeFormatting.pdf");
}

/// <summary>
/// Provides a CultureInfo object that should be used during the update of a particular field.
/// </summary>
private static class FieldUpdateCultureProvider implements 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(new Locale(name));
                DateTimeFormatInfo format = culture.getDateTimeFormat();

                format.setMonthNames(new String[]{"месяц 1", "месяц 2", "месяц 3", "месяц 4", "месяц 5", "месяц 6", "месяц 7", "месяц 8", "месяц 9", "месяц 10", "месяц 11", "месяц 12", ""});
                format.setMonthGenitiveNames(format.getMonthNames());
                format.setAbbreviatedMonthNames(new String[]{"мес 1", "мес 2", "мес 3", "мес 4", "мес 5", "мес 6", "мес 7", "мес 8", "мес 9", "мес 10", "мес 11", "мес 12", ""});
                format.setAbbreviatedMonthGenitiveNames(format.getAbbreviatedMonthNames());

                format.setDayNames(new String[]{"день недели 7", "день недели 1", "день недели 2", "день недели 3", "день недели 4", "день недели 5", "день недели 6"});
                format.setAbbreviatedDayNames(new String[]{"день 7", "день 1", "день 2", "день 3", "день 4", "день 5", "день 6"});
                format.setShortestDayNames(new String[]{"д7", "д1", "д2", "д3", "д4", "д5", "д6"});

                format.setAMDesignator("До полудня");
                format.setPMDesignator("После полудня");

                final String PATTERN = "yyyy MM (MMMM) dd (dddd) hh:mm:ss tt";
                format.setLongDatePattern(PATTERN);
                format.setLongTimePattern(PATTERN);
                format.setShortDatePattern(PATTERN);
                format.setShortTimePattern(PATTERN);

                return culture;
            case "en-US":
                return new CultureInfo(new Locale(name));
            default:
                return null;
        }
    }
}

See Also:
          Aspose.Words Documentation - the home page for the Aspose.Words Product Documentation.
          Aspose.Words Support Forum - our preferred method of support.