/** * Initialize context with given {@link Locale}, using Locale's default settings for numbers and dates formats and * symbols. * @param locale The new {@link Locale} to set, may be <code>null</code> * @param fireEvent Whether to fire the localization change event */ default void localize(Locale locale, boolean fireEvent) { localize((locale != null) ? Localization.builder(locale).build() : null, fireEvent); }
public void localizable() { // tag::localizable[] Localizable localizable = Localizable.builder().message("defaultMessage").messageCode("message.code").build(); // <1> localizable = Localizable.builder().message("message &").messageCode("message.code").messageArguments("test") // <2> .build(); // end::localizable[] }
public void contextbuild() { // tag::ctxbuild[] LocalizationContext localizationContext = LocalizationContext.builder() .withMessageProvider(MessageProvider.fromProperties("messages").build()) // <1> .withMessageProvider(MessageProvider.fromProperties("messages2").build()) // <2> .messageArgumentsPlaceholder("$") // <3> .withDefaultDateTemporalFormat(TemporalFormat.MEDIUM) // <4> .withDefaultTimeTemporalFormat(TemporalFormat.FULL) // <5> .withDefaultBooleanLocalization(Boolean.TRUE, Localizable.builder().messageCode("boolean.true").build()) // <6> .withDefaultBooleanLocalization(Boolean.FALSE, Localizable.builder().messageCode("boolean.false").build()) // <7> .withInitialSystemLocale() // <8> .withInitialLocale(Locale.US) // <9> .build(); // end::ctxbuild[] }
/** * Try to translate given <code>messageCode</code> using the {@link LocalizationContext} available as * {@link Context} resource through {@link LocalizationContext#getCurrent()}. The LocalizationContext must be * localized. * @param messageCode Message code to translate * @param defaultMessage Default message * @param lenient if <code>true</code> and a {@link LocalizationContext} is not available or it is not localized, * silently return default <code>defaultMessage</code>. If <code>false</code>, a * {@link LocalizationException} is thrown for that situation * @return The localized message, or default <code>defaultMessage</code> if a localized LocalizationContext is not * available and lenient is <code>true</code>, or <code>messageCode</code> is <code>null</code>. */ static String translate(String messageCode, String defaultMessage, boolean lenient) { return translate(Localizable.builder().messageCode(messageCode).message(defaultMessage).build(), lenient); }
public void i18nprovider1() { // tag::i18nprovider1[] LocalizationContext localizationContext = LocalizationContext.builder() .withMessageProvider(MessageProvider.fromProperties("messages").build()) // <1> .withInitialLocale(Locale.US) // <2> .build(); I18NProvider i18nProvider = LocalizationContextI18NProvider.create(localizationContext); // <3> // end::i18nprovider1[] }
/** * Convert a {@link Localizable} value * @param value Value to convert * @return String value */ private static String convertLocalizable(Localizable value) { return LocalizationContext.translate(value, true); }
public void messageProviders() { // tag::pmp[] MessageProvider messageProvider = MessageProvider.fromProperties("messages").build(); // <1> messageProvider = MessageProvider.fromProperties("i18n/messages").encoding("UTF-8").build(); // <2> // end::pmp[] }
/** * Constructor with message and causes. * @param message The validation error message * @param causes One or more {@link ValidationException}s that caused this exception */ public ValidationException(String message, ValidationException... causes) { this(Localizable.of(message), causes); }
/** * Format given {@link LocalTime} according to current Context {@link Locale} using given time format style. * @param temporal Time to format (may be null) * @param timeFormat Time format style * @return Formatted temporal, or <code>null</code> if given temporal was null * @throws LocalizationException If context is not localized */ default String format(LocalTime temporal, TemporalFormat timeFormat) { return format(temporal, TemporalFormat.DEFAULT, timeFormat); }
/** * Get a {@link DateTimeFormatter} for javax.time.* types formatting and set it up according to context * {@link Locale} and {@link Localization} settings, using default format styles. * @param type Temporal type * @return DateTimeFormatter * @throws LocalizationException If context is not localized */ default DateTimeFormatter getDateTimeFormatter(TemporalType type) { return getDateTimeFormatter(type, null, null); }
/** * Initialize context with given {@link Locale}, using Locale's default settings for numbers and dates formats and * symbols. * @param locale The new {@link Locale} to set, may be <code>null</code> */ default void localize(Locale locale) { localize(locale, true); }
/** * Create a new {@link Localizable}. * @param message Default message * @param messageCode Message translation code * @param arguments Optional message translation arguments * @return A new {@link Localizable} */ static Localizable of(String message, String messageCode, Object... arguments) { return Localizable.builder().message(message).messageCode(messageCode).messageArguments(arguments).build(); }
public void i18nprovider2() { // tag::i18nprovider2[] LocalizationContext localizationContext = LocalizationContext.builder() .withMessageProvider(MessageProvider.fromProperties("messages").build()).withInitialLocale(Locale.US) .build(); // <1> VaadinSession.getCurrent().setAttribute(LocalizationContext.class, localizationContext); // <2> I18NProvider i18nProvider = LocalizationContextI18NProvider.create(); // <3> // end::i18nprovider2[] }
/** * Constructor with message and causes. * @param message The validation error message * @param causes One or more {@link ValidationException}s that caused this exception */ public ValidationException(String message, Collection<ValidationException> causes) { this(Localizable.of(message), causes); }
/** * Format given {@link LocalDate} according to current Context {@link Locale} using given date format style. * @param temporal Date to format (may be null) * @param dateFormat Date format style * @return Formatted temporal, or <code>null</code> if given temporal was null * @throws LocalizationException If context is not localized */ default String format(LocalDate temporal, TemporalFormat dateFormat) { return format(temporal, dateFormat, TemporalFormat.DEFAULT); }
/** * Set the localizable message to use for the word <code>cancel</code>. * @param defaultMessage Default message * @param messageCode Message translation code * @param arguments Optional message translation arguments * @return this */ default CalendarLocalizationBuilder<D, B> cancel(String defaultMessage, String messageCode, Object... arguments) { return cancel(Localizable.builder().message(defaultMessage).messageCode(messageCode) .messageArguments(arguments).build()); }