From 8da61e33d094d8441e17b1e13090fab2575ea027 Mon Sep 17 00:00:00 2001 From: Nicolas Roduit Date: Tue, 19 Sep 2023 09:06:23 +0200 Subject: [PATCH] Fix persistence of Locale for i18n and use Format Category for number and date --- .../meta/panel/AcquireMetadataPanel.java | 13 +- .../explorer/core/bean/GlobalHelper.java | 7 +- .../explorer/core/bean/SeriesGroupTest.java | 6 +- .../explorer/list/AbstractThumbnailList.java | 3 +- .../api/gui/task/CircularProgressBar.java | 4 +- .../core/api/gui/util/DecFormatter.java | 22 ++-- .../weasis/core/api/media/data/TagUtil.java | 12 +- .../org/weasis/core/api/media/data/TagW.java | 5 +- .../org/weasis/core/api/service/UICore.java | 8 +- .../org/weasis/core/api/util/LocalUtil.java | 110 +++-------------- .../core/ui/editor/image/CalibrationView.java | 5 +- .../weasis/core/ui/pref/JLocaleFormat.java | 21 ++-- .../weasis/core/ui/pref/JLocaleLanguage.java | 2 +- .../weasis/core/ui/pref/LanguageSetting.java | 16 +-- .../weasis/core/ui/pref/ProxyPrefView.java | 3 +- .../weasis/core/ui/pref/ScreenPrefView.java | 4 +- .../core/ui/util/TableNumberRenderer.java | 3 +- .../weasis/core/api/util/LocalUtilTest.java | 111 ++++++++++++++++++ .../explorer/pref/node/DicomNodeDialog.java | 3 +- .../java/org/weasis/dicom/qr/DicomQrView.java | 10 +- .../java/org/weasis/dicom/wave/InfoPanel.java | 7 +- .../weasis/dicom/wave/MarkerAnnotation.java | 7 +- .../org/weasis/launcher/WeasisLauncher.java | 38 +++--- .../weasis/launcher/messages_ar.properties | 16 --- .../weasis/launcher/messages_ms_MY.properties | 16 --- .../weasis/launcher/messages_sk_SK.properties | 16 --- .../weasis/launcher/messages_ta_IN.properties | 16 --- ...properties => messages_zh_Hans.properties} | 0 .../resources/swing/basic_hr_HR.properties | 22 ++-- .../resources/swing/basic_ms_MY.properties | 105 ----------------- .../main/resources/swing/basic_pt.properties | 28 ++--- .../resources/swing/basic_sk_SK.properties | 105 ----------------- .../resources/swing/basic_ta_IN.properties | 105 ----------------- .../main/resources/swing/basic_vi.properties | 6 +- .../resources/swing/basic_zh-Hans.properties | 105 ----------------- ...ar.properties => basic_zh_Hans.properties} | 26 ++-- .../resources/swing/synth_hr_HR.properties | 6 +- .../resources/swing/synth_ms_MY.properties | 25 ---- .../main/resources/swing/synth_pt.properties | 10 +- .../resources/swing/synth_sk_SK.properties | 25 ---- .../resources/swing/synth_ta_IN.properties | 25 ---- .../main/resources/swing/synth_vi.properties | 4 +- .../resources/swing/synth_vi_VN.properties | 4 +- .../resources/swing/synth_zh-Hans.properties | 25 ---- ...ar.properties => synth_zh_Hans.properties} | 4 +- 45 files changed, 269 insertions(+), 845 deletions(-) create mode 100644 weasis-core/src/test/java/org/weasis/core/api/util/LocalUtilTest.java delete mode 100755 weasis-launcher/src/main/java/org/weasis/launcher/messages_ar.properties delete mode 100755 weasis-launcher/src/main/java/org/weasis/launcher/messages_ms_MY.properties delete mode 100755 weasis-launcher/src/main/java/org/weasis/launcher/messages_sk_SK.properties delete mode 100755 weasis-launcher/src/main/java/org/weasis/launcher/messages_ta_IN.properties rename weasis-launcher/src/main/java/org/weasis/launcher/{messages_zh-Hans.properties => messages_zh_Hans.properties} (100%) mode change 100755 => 100644 delete mode 100755 weasis-launcher/src/main/resources/swing/basic_ms_MY.properties delete mode 100755 weasis-launcher/src/main/resources/swing/basic_sk_SK.properties delete mode 100755 weasis-launcher/src/main/resources/swing/basic_ta_IN.properties delete mode 100755 weasis-launcher/src/main/resources/swing/basic_zh-Hans.properties rename weasis-launcher/src/main/resources/swing/{basic_ar.properties => basic_zh_Hans.properties} (88%) mode change 100755 => 100644 delete mode 100755 weasis-launcher/src/main/resources/swing/synth_ms_MY.properties delete mode 100755 weasis-launcher/src/main/resources/swing/synth_sk_SK.properties delete mode 100755 weasis-launcher/src/main/resources/swing/synth_ta_IN.properties delete mode 100755 weasis-launcher/src/main/resources/swing/synth_zh-Hans.properties rename weasis-launcher/src/main/resources/swing/{synth_ar.properties => synth_zh_Hans.properties} (91%) mode change 100755 => 100644 diff --git a/weasis-acquire/weasis-acquire-explorer/src/main/java/org/weasis/acquire/explorer/gui/central/meta/panel/AcquireMetadataPanel.java b/weasis-acquire/weasis-acquire-explorer/src/main/java/org/weasis/acquire/explorer/gui/central/meta/panel/AcquireMetadataPanel.java index 3f317a03e9..3b04c85418 100755 --- a/weasis-acquire/weasis-acquire-explorer/src/main/java/org/weasis/acquire/explorer/gui/central/meta/panel/AcquireMetadataPanel.java +++ b/weasis-acquire/weasis-acquire-explorer/src/main/java/org/weasis/acquire/explorer/gui/central/meta/panel/AcquireMetadataPanel.java @@ -20,6 +20,8 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; +import java.time.format.DateTimeFormatter; +import java.time.format.FormatStyle; import java.util.ArrayList; import java.util.List; import java.util.Optional; @@ -48,7 +50,6 @@ import org.weasis.core.api.media.data.TagW; import org.weasis.core.api.media.data.TagW.TagType; import org.weasis.core.api.util.FontItem; -import org.weasis.core.api.util.LocalUtil; import org.weasis.core.api.util.ResourceUtil; import org.weasis.core.ui.util.CalendarUtil; import org.weasis.core.ui.util.TableColumnAdjuster; @@ -282,11 +283,13 @@ private DateTableEditor buildDatePicker() { CalendarUtil.adaptCalendarColors(settings); - settings.setFormatForDatesCommonEra(LocalUtil.getDateFormatter()); - settings.setFormatForDatesBeforeCommonEra(LocalUtil.getDateFormatter()); + settings.setFormatForDatesCommonEra(DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM)); + settings.setFormatForDatesBeforeCommonEra( + DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM)); - settings.setFormatForDatesCommonEra(LocalUtil.getDateFormatter()); - settings.setFormatForDatesBeforeCommonEra(LocalUtil.getDateFormatter()); + settings.setFormatForDatesCommonEra(DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM)); + settings.setFormatForDatesBeforeCommonEra( + DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM)); return d; } diff --git a/weasis-acquire/weasis-acquire-explorer/src/test/java/org/weasis/acquire/explorer/core/bean/GlobalHelper.java b/weasis-acquire/weasis-acquire-explorer/src/test/java/org/weasis/acquire/explorer/core/bean/GlobalHelper.java index 2261bf5a42..d30320550d 100755 --- a/weasis-acquire/weasis-acquire-explorer/src/test/java/org/weasis/acquire/explorer/core/bean/GlobalHelper.java +++ b/weasis-acquire/weasis-acquire-explorer/src/test/java/org/weasis/acquire/explorer/core/bean/GlobalHelper.java @@ -10,8 +10,8 @@ package org.weasis.acquire.explorer.core.bean; import java.time.format.DateTimeFormatter; +import java.time.format.FormatStyle; import java.util.Arrays; -import java.util.Locale; import org.dcm4che3.data.Tag; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.extension.ExtendWith; @@ -84,9 +84,8 @@ static void setUp() { taggable = Mockito.mock(Taggable.class); Mockito.mockStatic(LocalUtil.class); - Mockito.when(LocalUtil.getDateFormatter()).thenReturn(dateformat); - Mockito.when(LocalUtil.getDateTimeFormatter()).thenReturn(dateformat); - Mockito.when(LocalUtil.getLocaleFormat()).thenReturn(Locale.ENGLISH); + Mockito.when(DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM)).thenReturn(dateformat); + Mockito.when(DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM)).thenReturn(dateformat); Mockito.mockStatic(TagD.class); Arrays.stream(GlobalTag.values()).forEach(GlobalTag::prepareMock); diff --git a/weasis-acquire/weasis-acquire-explorer/src/test/java/org/weasis/acquire/explorer/core/bean/SeriesGroupTest.java b/weasis-acquire/weasis-acquire-explorer/src/test/java/org/weasis/acquire/explorer/core/bean/SeriesGroupTest.java index 03e764671a..fdef08ac1e 100755 --- a/weasis-acquire/weasis-acquire-explorer/src/test/java/org/weasis/acquire/explorer/core/bean/SeriesGroupTest.java +++ b/weasis-acquire/weasis-acquire-explorer/src/test/java/org/weasis/acquire/explorer/core/bean/SeriesGroupTest.java @@ -12,10 +12,11 @@ import static org.assertj.core.api.Assertions.assertThat; import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.time.format.FormatStyle; import java.util.Arrays; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; -import org.weasis.core.api.util.LocalUtil; class SeriesGroupTest { @@ -34,7 +35,8 @@ static void setUp() { @Test void testToString() { assertThat(s1.toString()).hasToString("Other"); // NON-NLS - assertThat(s2.toString()).hasToString(LocalUtil.getDateTimeFormatter().format(today)); + assertThat(s2.toString()) + .hasToString(DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM).format(today)); assertThat(s3.toString()).hasToString(TEST_SERIES); } diff --git a/weasis-base/weasis-base-explorer/src/main/java/org/weasis/base/explorer/list/AbstractThumbnailList.java b/weasis-base/weasis-base-explorer/src/main/java/org/weasis/base/explorer/list/AbstractThumbnailList.java index 82ef8cd754..bd0f8eb115 100755 --- a/weasis-base/weasis-base-explorer/src/main/java/org/weasis/base/explorer/list/AbstractThumbnailList.java +++ b/weasis-base/weasis-base-explorer/src/main/java/org/weasis/base/explorer/list/AbstractThumbnailList.java @@ -57,7 +57,6 @@ import org.weasis.core.api.media.data.MediaSeries; import org.weasis.core.api.media.data.TagUtil; import org.weasis.core.api.media.data.TagW; -import org.weasis.core.api.util.LocalUtil; import org.weasis.core.ui.editor.SeriesViewerFactory; import org.weasis.core.ui.editor.ViewerPluginBuilder; import org.weasis.core.ui.util.DefaultAction; @@ -69,7 +68,7 @@ public abstract class AbstractThumbnailList extends JLis public static final String SECTION_CHANGED = "SECTION_CHANGED"; // NON-NLS public static final String DIRECTORY_SIZE = "DIRECTORY_SIZE"; // NON-NLS - private static final NumberFormat intGroupFormat = LocalUtil.getIntegerInstance(); + private static final NumberFormat intGroupFormat = NumberFormat.getIntegerInstance(); static { intGroupFormat.setGroupingUsed(true); diff --git a/weasis-core/src/main/java/org/weasis/core/api/gui/task/CircularProgressBar.java b/weasis-core/src/main/java/org/weasis/core/api/gui/task/CircularProgressBar.java index 4399e94944..dc76690e52 100755 --- a/weasis-core/src/main/java/org/weasis/core/api/gui/task/CircularProgressBar.java +++ b/weasis-core/src/main/java/org/weasis/core/api/gui/task/CircularProgressBar.java @@ -21,11 +21,11 @@ import java.awt.RenderingHints; import java.awt.Stroke; import java.awt.geom.Arc2D; +import java.text.NumberFormat; import javax.swing.JProgressBar; import javax.swing.Timer; import org.weasis.core.api.gui.util.GuiUtils; import org.weasis.core.api.util.FontItem; -import org.weasis.core.api.util.LocalUtil; public class CircularProgressBar extends JProgressBar { @@ -122,7 +122,7 @@ private void draw(Graphics2D g2d) { } double angle = 360 - this.getValue() * 360.0 / range; - String text = LocalUtil.getPercentInstance().format((double) this.getValue() / range); + String text = NumberFormat.getPercentInstance().format((double) this.getValue() / range); float textGap = GuiUtils.getScaleLength(TEXT_GAP); float arcSize = getInsets().top - textGap; double shift = arcSize / 2.0; diff --git a/weasis-core/src/main/java/org/weasis/core/api/gui/util/DecFormatter.java b/weasis-core/src/main/java/org/weasis/core/api/gui/util/DecFormatter.java index 65b2929fa6..f475692cc5 100755 --- a/weasis-core/src/main/java/org/weasis/core/api/gui/util/DecFormatter.java +++ b/weasis-core/src/main/java/org/weasis/core/api/gui/util/DecFormatter.java @@ -13,21 +13,18 @@ import java.text.NumberFormat; import javax.swing.text.DefaultFormatterFactory; import javax.swing.text.NumberFormatter; -import org.weasis.core.api.util.LocalUtil; public class DecFormatter { private DecFormatter() {} - private static final NumberFormat df1 = LocalUtil.getNumberInstance(); // 1 decimals - private static final NumberFormat df2 = LocalUtil.getNumberInstance(); // 2 decimals - private static final NumberFormat df4 = LocalUtil.getNumberInstance(); // 4 decimals - private static final NumberFormat percent2 = LocalUtil.getPercentInstance(); - private static final DecimalFormat decimalAndNumber = - new DecimalFormat("#,##0.#", LocalUtil.getDecimalFormatSymbols()); + private static final NumberFormat df1 = NumberFormat.getNumberInstance(); // 1 decimals + private static final NumberFormat df2 = NumberFormat.getNumberInstance(); // 2 decimals + private static final NumberFormat df4 = NumberFormat.getNumberInstance(); // 4 decimals + private static final NumberFormat percent2 = NumberFormat.getPercentInstance(); + private static final DecimalFormat decimalAndNumber = new DecimalFormat("#,##0.#"); // Scientific format with 4 decimals - private static final DecimalFormat dfSci = - new DecimalFormat("0.####E0", LocalUtil.getDecimalFormatSymbols()); // NON-NLS + private static final DecimalFormat dfSci = new DecimalFormat("0.####E0"); // NON-NLS static { df1.setMaximumFractionDigits(1); @@ -61,12 +58,9 @@ public static String scientificFormat(Number val) { } public static DefaultFormatterFactory setPreciseDoubleFormat(double min, double max) { - NumberFormatter displayFormatter = - new NumberFormatter(new DecimalFormat("#,##0.##", LocalUtil.getDecimalFormatSymbols())); + NumberFormatter displayFormatter = new NumberFormatter(new DecimalFormat("#,##0.##")); displayFormatter.setValueClass(Double.class); - NumberFormatter editFormatter = - new NumberFormatter( - new DecimalFormat("#,##0.0#############", LocalUtil.getDecimalFormatSymbols())); + NumberFormatter editFormatter = new NumberFormatter(new DecimalFormat("#,##0.0#############")); editFormatter.setValueClass(Double.class); editFormatter.setMinimum(min); editFormatter.setMaximum(max); diff --git a/weasis-core/src/main/java/org/weasis/core/api/media/data/TagUtil.java b/weasis-core/src/main/java/org/weasis/core/api/media/data/TagUtil.java index cea638e495..6a9a07a2e8 100755 --- a/weasis-core/src/main/java/org/weasis/core/api/media/data/TagUtil.java +++ b/weasis-core/src/main/java/org/weasis/core/api/media/data/TagUtil.java @@ -16,6 +16,8 @@ import java.time.LocalTime; import java.time.ZoneId; import java.time.ZonedDateTime; +import java.time.format.DateTimeFormatter; +import java.time.format.FormatStyle; import java.time.temporal.TemporalAccessor; import java.util.ArrayList; import java.util.Calendar; @@ -25,7 +27,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.weasis.core.api.media.data.TagW.TagType; -import org.weasis.core.api.util.LocalUtil; public final class TagUtil { private static final Logger LOGGER = LoggerFactory.getLogger(TagUtil.class); @@ -119,13 +120,14 @@ public static Date dateTime(Date date, Date time) { public static String formatDateTime(TemporalAccessor date) { if (date instanceof LocalDate) { - return LocalUtil.getDateFormatter().format(date); + return DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM).format(date); } else if (date instanceof LocalTime) { - return LocalUtil.getTimeFormatter().format(date); + return DateTimeFormatter.ofLocalizedTime(FormatStyle.MEDIUM).format(date); } else if (date instanceof LocalDateTime || date instanceof ZonedDateTime) { - return LocalUtil.getDateTimeFormatter().format(date); + return DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM).format(date); } else if (date instanceof Instant instant) { - return LocalUtil.getDateTimeFormatter().format(instant.atZone(ZoneId.systemDefault())); + return DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM) + .format(instant.atZone(ZoneId.systemDefault())); } return ""; } diff --git a/weasis-core/src/main/java/org/weasis/core/api/media/data/TagW.java b/weasis-core/src/main/java/org/weasis/core/api/media/data/TagW.java index 990b5d8185..ad5302b2d0 100755 --- a/weasis-core/src/main/java/org/weasis/core/api/media/data/TagW.java +++ b/weasis-core/src/main/java/org/weasis/core/api/media/data/TagW.java @@ -29,7 +29,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.weasis.core.Messages; -import org.weasis.core.api.util.LocalUtil; import org.weasis.core.util.StringUtil; /** @@ -495,9 +494,7 @@ protected static String formatValue(String value, boolean decimal, String format if (pattern != null) { fmLength += pattern.length() + 2; try { - str = - new DecimalFormat(pattern, LocalUtil.getDecimalFormatSymbols()) - .format(Double.parseDouble(str)); + str = new DecimalFormat(pattern).format(Double.parseDouble(str)); } catch (NumberFormatException e) { LOGGER.warn("Cannot apply pattern to decimal value", e); } diff --git a/weasis-core/src/main/java/org/weasis/core/api/service/UICore.java b/weasis-core/src/main/java/org/weasis/core/api/service/UICore.java index 5a95698491..d6f51f4add 100644 --- a/weasis-core/src/main/java/org/weasis/core/api/service/UICore.java +++ b/weasis-core/src/main/java/org/weasis/core/api/service/UICore.java @@ -28,6 +28,7 @@ import java.util.HashMap; import java.util.List; import java.util.Locale; +import java.util.Locale.Category; import java.util.Map; import java.util.Objects; import java.util.Properties; @@ -121,12 +122,7 @@ public boolean willGainFocus(CDockable dockable) { } } String code = systemPreferences.getProperty(UICore.P_FORMAT_CODE); - if (StringUtil.hasLength(code)) { - Locale l = LocalUtil.textToLocale(code); - if (!l.equals(Locale.getDefault())) { - LocalUtil.setLocaleFormat(l); - } - } + Locale.setDefault(Category.FORMAT, LocalUtil.textToLocale(code)); String path = systemPreferences.getProperty("weasis.resources.path"); ResourceUtil.setResourcePath(path); diff --git a/weasis-core/src/main/java/org/weasis/core/api/util/LocalUtil.java b/weasis-core/src/main/java/org/weasis/core/api/util/LocalUtil.java index 1b111064bd..54329a3f0e 100755 --- a/weasis-core/src/main/java/org/weasis/core/api/util/LocalUtil.java +++ b/weasis-core/src/main/java/org/weasis/core/api/util/LocalUtil.java @@ -9,118 +9,40 @@ */ package org.weasis.core.api.util; -import java.text.DateFormat; -import java.text.DecimalFormatSymbols; -import java.text.NumberFormat; -import java.time.format.DateTimeFormatter; -import java.time.format.FormatStyle; import java.util.Locale; import org.weasis.core.util.StringUtil; public class LocalUtil { - private static final DateTimeFormatter defaultDateFormatter = - DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM); - private static final DateTimeFormatter defaultTimeFormatter = - DateTimeFormatter.ofLocalizedTime(FormatStyle.MEDIUM); - private static final DateTimeFormatter defaultDateTimeFormatter = - DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM); - - private static Locale localeFormat = null; - private LocalUtil() {} + /** + * Returns the IETF BCP 47 language tag string according the Locale value. + * + * @return the IETF BCP 47 language tag string + */ public static String localeToText(Locale value) { if (value == null) { return "en"; // NON-NLS } - return value.toString(); + return value.toLanguageTag(); } + /** + * Returns the Locale value according the IETF BCP 47 language tag or the suffix of + * the i18n jars. Null or empty string will return the ENGLISH Locale. The value + * "system " returns the system default Locale. + * + * @return the Locale value + */ public static Locale textToLocale(String value) { if (!StringUtil.hasText(value)) { return Locale.ENGLISH; } - if ("system".equals(value)) { // NON-NLS - return getSystemLocale(); - } - - String[] val = value.split("_", 3); - String language = val.length > 0 ? val[0] : ""; - String country = val.length > 1 ? val[1] : ""; - String variant = val.length > 2 ? val[2] : ""; - return new Locale.Builder() - .setLanguage(language) - .setRegion(country) - .setVariant(variant) - .build(); - } - - public static Locale getSystemLocale() { - String language = System.getProperty("user.language", "en"); // NON-NLS - String country = System.getProperty("user.country", ""); // NON-NLS - String variant = System.getProperty("user.variant", ""); // NON-NLS - return new Locale.Builder() - .setLanguage(language) - .setRegion(country) - .setVariant(variant) - .build(); - } - - public static synchronized Locale getLocaleFormat() { - Locale l = LocalUtil.localeFormat; - if (l == null) { - l = Locale.getDefault(); + if (!"system".equals(value)) { // NON-NLS + return Locale.forLanguageTag(value.replace("_", "-")); } - return l; - } - - public static synchronized void setLocaleFormat(Locale value) { - LocalUtil.localeFormat = value; - } - - public static DecimalFormatSymbols getDecimalFormatSymbols() { - return DecimalFormatSymbols.getInstance(getLocaleFormat()); - } - - public static NumberFormat getNumberInstance() { - return NumberFormat.getNumberInstance(getLocaleFormat()); - } - - public static NumberFormat getIntegerInstance() { - return NumberFormat.getIntegerInstance(getLocaleFormat()); - } - - public static NumberFormat getPercentInstance() { - return NumberFormat.getPercentInstance(getLocaleFormat()); - } - - public static DateFormat getDateInstance(int style) { - return DateFormat.getDateInstance(style, getLocaleFormat()); - } - - public static DateTimeFormatter getDateFormatter() { - return defaultDateFormatter.withLocale(getLocaleFormat()); - } - - public static DateTimeFormatter getDateFormatter(FormatStyle style) { - return DateTimeFormatter.ofLocalizedDate(style).withLocale(getLocaleFormat()); - } - - public static DateTimeFormatter getTimeFormatter() { - return defaultTimeFormatter.withLocale(getLocaleFormat()); - } - - public static DateTimeFormatter getTimeFormatter(FormatStyle style) { - return DateTimeFormatter.ofLocalizedTime(style).withLocale(getLocaleFormat()); - } - - public static DateTimeFormatter getDateTimeFormatter() { - return defaultDateTimeFormatter.withLocale(getLocaleFormat()); - } - - public static DateTimeFormatter getDateTimeFormatter(FormatStyle style) { - return DateTimeFormatter.ofLocalizedDateTime(style).withLocale(getLocaleFormat()); + return Locale.getDefault(); } } diff --git a/weasis-core/src/main/java/org/weasis/core/ui/editor/image/CalibrationView.java b/weasis-core/src/main/java/org/weasis/core/ui/editor/image/CalibrationView.java index 48202a87fb..dcbc42b956 100755 --- a/weasis-core/src/main/java/org/weasis/core/ui/editor/image/CalibrationView.java +++ b/weasis-core/src/main/java/org/weasis/core/ui/editor/image/CalibrationView.java @@ -11,6 +11,8 @@ import java.awt.geom.Point2D; import java.util.List; +import java.util.Locale; +import java.util.Locale.Category; import java.util.Objects; import javax.swing.BoxLayout; import javax.swing.ButtonGroup; @@ -30,7 +32,6 @@ import org.weasis.core.api.image.util.Unit; import org.weasis.core.api.media.data.ImageElement; import org.weasis.core.api.media.data.MediaSeries; -import org.weasis.core.api.util.LocalUtil; import org.weasis.core.ui.model.graphic.imp.line.LineGraphic; import org.weasis.core.util.MathUtil; import org.weasis.core.util.StringUtil; @@ -73,7 +74,7 @@ void jbInit() { setBorder(GuiUtils.getEmptyBorder(10, 15, 10, 15)); GuiUtils.setPreferredWidth(jTextFieldLineWidth, 170); - jTextFieldLineWidth.setLocale(LocalUtil.getLocaleFormat()); + jTextFieldLineWidth.setLocale(Locale.getDefault(Category.FORMAT)); jTextFieldLineWidth.setFormatterFactory( DecFormatter.setPreciseDoubleFormat(0.000005d, Double.MAX_VALUE)); jTextFieldLineWidth.setValue(1.0); diff --git a/weasis-core/src/main/java/org/weasis/core/ui/pref/JLocaleFormat.java b/weasis-core/src/main/java/org/weasis/core/ui/pref/JLocaleFormat.java index 904ae1a551..645fb04130 100755 --- a/weasis-core/src/main/java/org/weasis/core/ui/pref/JLocaleFormat.java +++ b/weasis-core/src/main/java/org/weasis/core/ui/pref/JLocaleFormat.java @@ -14,6 +14,7 @@ import java.text.Collator; import java.util.Arrays; import java.util.Locale; +import java.util.Locale.Category; import javax.swing.JComboBox; import org.weasis.core.api.gui.util.GuiUtils; import org.weasis.core.api.service.UICore; @@ -47,7 +48,7 @@ private void sortLocales() { } public void selectLocale() { - Locale sLoc = LocalUtil.getLocaleFormat(); + Locale sLoc = Locale.getDefault(Category.FORMAT); Object item = getSelectedItem(); if (item instanceof JLocale jLocale && sLoc.equals(jLocale.getLocale())) { return; @@ -67,23 +68,17 @@ public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { Object item = e.getItem(); if (item instanceof JLocale jLocale) { - setLocalUtil(jLocale.getLocale()); + storeLocale(jLocale.getLocale()); valueHasChanged(); } } } - private void setLocalUtil(Locale local) { - if (local == null) { - GuiUtils.getUICore().getSystemPreferences().remove(UICore.P_FORMAT_CODE); - } else { - GuiUtils.getUICore() - .getSystemPreferences() - .setProperty(UICore.P_FORMAT_CODE, LocalUtil.localeToText(local)); - } - - Locale l = local == null ? null : local.equals(Locale.getDefault()) ? null : local; - LocalUtil.setLocaleFormat(l); + private void storeLocale(Locale locale) { + GuiUtils.getUICore() + .getSystemPreferences() + .setProperty(UICore.P_FORMAT_CODE, LocalUtil.localeToText(locale)); + Locale.setDefault(Locale.Category.FORMAT, locale); } public void refresh() { diff --git a/weasis-core/src/main/java/org/weasis/core/ui/pref/JLocaleLanguage.java b/weasis-core/src/main/java/org/weasis/core/ui/pref/JLocaleLanguage.java index 2e99960d1b..35ce353005 100755 --- a/weasis-core/src/main/java/org/weasis/core/ui/pref/JLocaleLanguage.java +++ b/weasis-core/src/main/java/org/weasis/core/ui/pref/JLocaleLanguage.java @@ -69,7 +69,7 @@ private void sortLocales() { public void selectLocale(String locale) { Locale sLoc = LocalUtil.textToLocale(locale); Object item = getSelectedItem(); - if (item instanceof JLocale jLocale && sLoc.equals(jLocale.getLocale())) { + if (item instanceof JLocale jLocale && sLoc != null && sLoc.equals(jLocale.getLocale())) { return; } diff --git a/weasis-core/src/main/java/org/weasis/core/ui/pref/LanguageSetting.java b/weasis-core/src/main/java/org/weasis/core/ui/pref/LanguageSetting.java index 5265efd9cd..7f140056ff 100755 --- a/weasis-core/src/main/java/org/weasis/core/ui/pref/LanguageSetting.java +++ b/weasis-core/src/main/java/org/weasis/core/ui/pref/LanguageSetting.java @@ -10,8 +10,11 @@ package org.weasis.core.ui.pref; import java.awt.FlowLayout; +import java.text.NumberFormat; import java.time.ZonedDateTime; +import java.time.format.DateTimeFormatter; import java.time.format.FormatStyle; +import java.util.Locale; import javax.swing.JLabel; import javax.swing.JTextPane; import org.slf4j.Logger; @@ -21,7 +24,6 @@ import org.weasis.core.api.gui.util.GuiUtils; import org.weasis.core.api.gui.util.GuiUtils.IconColor; import org.weasis.core.api.service.WProperties; -import org.weasis.core.api.util.LocalUtil; import org.weasis.core.util.StringUtil; public class LanguageSetting extends AbstractItemDialogPage { @@ -102,15 +104,15 @@ private static String getText() { Messages.getString("GeneralSetting.regionalTitle"), Messages.getString("GeneralSetting.date"), Messages.getString("GeneralSetting.short"), - LocalUtil.getDateTimeFormatter(FormatStyle.SHORT).format(now), + DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT).format(now), Messages.getString("GeneralSetting.medium"), - LocalUtil.getDateTimeFormatter(FormatStyle.MEDIUM).format(now), + DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM).format(now), Messages.getString("GeneralSetting.long"), - LocalUtil.getDateTimeFormatter(FormatStyle.LONG).format(now), + DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG).format(now), Messages.getString("GeneralSetting.full"), - LocalUtil.getDateTimeFormatter(FormatStyle.FULL).format(now), + DateTimeFormatter.ofLocalizedDateTime(FormatStyle.FULL).format(now), Messages.getString("GeneralSetting.nb"), - LocalUtil.getNumberInstance().format(2543456.3465), + NumberFormat.getNumberInstance().format(2543456.3465), IconColor.ACTIONS_RED.getHtmlCode(), Messages.getString("GeneralSetting.alertNote")); } @@ -132,7 +134,7 @@ public void resetToDefaultValues() { WProperties preferences = GuiUtils.getUICore().getSystemPreferences(); preferences.resetProperty("locale.lang.code", "en"); // NON-NLS // Reset cache of locale format - LocalUtil.setLocaleFormat(null); + Locale.setDefault(Locale.ENGLISH); // Reset format to the base.json value or null (default system value) preferences.resetProperty("locale.format.code", null); diff --git a/weasis-core/src/main/java/org/weasis/core/ui/pref/ProxyPrefView.java b/weasis-core/src/main/java/org/weasis/core/ui/pref/ProxyPrefView.java index f0c81b6b30..a24c160b63 100755 --- a/weasis-core/src/main/java/org/weasis/core/ui/pref/ProxyPrefView.java +++ b/weasis-core/src/main/java/org/weasis/core/ui/pref/ProxyPrefView.java @@ -32,7 +32,6 @@ import org.weasis.core.api.gui.util.CryptoHandler; import org.weasis.core.api.gui.util.GuiUtils; import org.weasis.core.api.service.WProperties; -import org.weasis.core.api.util.LocalUtil; import org.weasis.core.util.StringUtil; public class ProxyPrefView extends AbstractItemDialogPage { @@ -164,7 +163,7 @@ private void initState() { } private static void formatPortTextField(JFormattedTextField port) { - NumberFormat portFormat = LocalUtil.getNumberInstance(); + NumberFormat portFormat = NumberFormat.getNumberInstance(); portFormat.setMinimumIntegerDigits(0); portFormat.setMaximumIntegerDigits(65535); portFormat.setMaximumFractionDigits(0); diff --git a/weasis-core/src/main/java/org/weasis/core/ui/pref/ScreenPrefView.java b/weasis-core/src/main/java/org/weasis/core/ui/pref/ScreenPrefView.java index 533ad8e1c0..e0f7b91787 100755 --- a/weasis-core/src/main/java/org/weasis/core/ui/pref/ScreenPrefView.java +++ b/weasis-core/src/main/java/org/weasis/core/ui/pref/ScreenPrefView.java @@ -23,6 +23,7 @@ import java.awt.Stroke; import java.awt.Window; import java.awt.event.ItemEvent; +import java.text.NumberFormat; import java.util.List; import java.util.Objects; import javax.swing.Box; @@ -39,7 +40,6 @@ import org.weasis.core.api.gui.util.GuiUtils; import org.weasis.core.api.gui.util.WinUtil; import org.weasis.core.api.image.util.Unit; -import org.weasis.core.api.util.LocalUtil; import org.weasis.core.ui.editor.image.dockable.MeasureTool; import org.weasis.core.util.StringUtil; @@ -225,7 +225,7 @@ static class CalibrationDialog extends JDialog { private final Cross cross; private final JFormattedTextField jTextFieldLineWidth = - new JFormattedTextField(LocalUtil.getIntegerInstance()); + new JFormattedTextField(NumberFormat.getIntegerInstance()); private final JComboBox jComboBoxType = new JComboBox<>( new String[] { diff --git a/weasis-core/src/main/java/org/weasis/core/ui/util/TableNumberRenderer.java b/weasis-core/src/main/java/org/weasis/core/ui/util/TableNumberRenderer.java index 741918fe69..8ce34d32df 100755 --- a/weasis-core/src/main/java/org/weasis/core/ui/util/TableNumberRenderer.java +++ b/weasis-core/src/main/java/org/weasis/core/ui/util/TableNumberRenderer.java @@ -12,7 +12,6 @@ import java.text.NumberFormat; import javax.swing.SwingConstants; import javax.swing.table.DefaultTableCellRenderer; -import org.weasis.core.api.util.LocalUtil; /** * @author Nicolas Roduit @@ -25,7 +24,7 @@ public TableNumberRenderer() { } public TableNumberRenderer(int maxDecimal) { - this.formatter = LocalUtil.getNumberInstance(); + this.formatter = NumberFormat.getNumberInstance(); formatter.setMaximumFractionDigits(maxDecimal); } diff --git a/weasis-core/src/test/java/org/weasis/core/api/util/LocalUtilTest.java b/weasis-core/src/test/java/org/weasis/core/api/util/LocalUtilTest.java new file mode 100644 index 0000000000..7e1879a5d9 --- /dev/null +++ b/weasis-core/src/test/java/org/weasis/core/api/util/LocalUtilTest.java @@ -0,0 +1,111 @@ +/* + * Copyright (c) 2023 Weasis Team and other contributors. + * + * This program and the accompanying materials are made available under the terms of the Eclipse + * Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0, or the Apache + * License, Version 2.0 which is available at https://www.apache.org/licenses/LICENSE-2.0. + * + * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 + */ +package org.weasis.core.api.util; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; + +import java.text.NumberFormat; +import java.time.ZoneId; +import java.time.ZonedDateTime; +import java.time.format.DateTimeFormatter; +import java.time.format.FormatStyle; +import java.util.Locale; +import java.util.ResourceBundle.Control; +import org.junit.jupiter.api.Test; + +class LocalUtilTest { + + /** + * Method under test: + * + *
    + *
  • {@link LocalUtil#textToLocale(String)} + *
  • {@link LocalUtil#localeToText(Locale)} + *
+ */ + @Test + void testTextToLocale() { + Control control = Control.getControl(Control.FORMAT_PROPERTIES); + + Locale result = LocalUtil.textToLocale(null); + assertSame(Locale.ENGLISH, result); + assertEquals("en", LocalUtil.localeToText(null)); + + result = LocalUtil.textToLocale(""); + assertSame(Locale.ENGLISH, result); + assertEquals("en", LocalUtil.localeToText(result)); + + result = LocalUtil.textToLocale("system"); + assertSame(Locale.getDefault(), result); + + result = LocalUtil.textToLocale("test-invalid$"); + assertEquals("test", LocalUtil.localeToText(result)); + + result = LocalUtil.textToLocale("en"); + assertSame(Locale.ENGLISH, result); + assertEquals("en", LocalUtil.localeToText(result)); + + result = LocalUtil.textToLocale("fr_FR"); + assertSame(Locale.FRANCE, result); + + result = LocalUtil.textToLocale("zh_Hans"); + String val = control.toBundleName("", result); + assertEquals("_zh_Hans", val); + result = LocalUtil.textToLocale("zh-Hans-TW"); + val = control.toBundleName("message", result); + assertEquals("message_zh_Hans_TW", val); + + // ISO3 language code: SRP + result = LocalUtil.textToLocale("en_BA-SRP"); + val = control.toBundleName("message", result); + assertEquals("message_en_BA", val); + + result = LocalUtil.textToLocale("sr_Latn"); + val = control.toBundleName("message", result); + assertEquals("message_sr_Latn", val); + } + + /** + * Method under test: + * + *
    + *
  • {@link LocalUtil#textToLocale(String)} + *
  • {@link LocalUtil#localeToText(Locale)} + *
+ */ + @Test + void testSetLocaleFormat() { + double number = 2543456.346; + + Locale locale = Locale.of("de", "CH"); + Locale.setDefault(Locale.Category.FORMAT, locale); + + NumberFormat nf = NumberFormat.getInstance(); + assertEquals("2’543’456.346", nf.format(number)); + assertEquals("2’543’456.346", String.format("%,.3f", number)); + assertEquals("2’543’456.346", "%,.3f".formatted(number)); + assertEquals( + "Donnerstag, 25. November 2021, 15:39:59 Mittlere Greenwich-Zeit", + DateTimeFormatter.ofLocalizedDateTime(FormatStyle.FULL) + .format(ZonedDateTime.of(2021, 11, 25, 15, 39, 59, 0, ZoneId.of("GMT")))); + + locale = Locale.of("fr", "CH"); + Locale.setDefault(Locale.Category.FORMAT, locale); + nf = NumberFormat.getInstance(); + assertEquals("2 543 456,346", nf.format(number)); + assertEquals("2 543 456,346", String.format("%,.3f", number)); + assertEquals("2 543 456,346", "%,.3f".formatted(number)); + assertEquals( + "jeudi, 25 novembre 2021, 15.39:59 h heure moyenne de Greenwich", + DateTimeFormatter.ofLocalizedDateTime(FormatStyle.FULL) + .format(ZonedDateTime.of(2021, 11, 25, 15, 39, 59, 0, ZoneId.of("GMT")))); + } +} diff --git a/weasis-dicom/weasis-dicom-explorer/src/main/java/org/weasis/dicom/explorer/pref/node/DicomNodeDialog.java b/weasis-dicom/weasis-dicom-explorer/src/main/java/org/weasis/dicom/explorer/pref/node/DicomNodeDialog.java index c98784e6ce..38a6523327 100755 --- a/weasis-dicom/weasis-dicom-explorer/src/main/java/org/weasis/dicom/explorer/pref/node/DicomNodeDialog.java +++ b/weasis-dicom/weasis-dicom-explorer/src/main/java/org/weasis/dicom/explorer/pref/node/DicomNodeDialog.java @@ -26,7 +26,6 @@ import javax.swing.text.NumberFormatter; import net.miginfocom.swing.MigLayout; import org.weasis.core.api.gui.util.GuiUtils; -import org.weasis.core.api.util.LocalUtil; import org.weasis.core.util.StringUtil; import org.weasis.dicom.explorer.Messages; import org.weasis.dicom.explorer.pref.node.AbstractDicomNode.UsageType; @@ -100,7 +99,7 @@ private void initComponents() { panel.add(hostnameTf); JLabel portLabel = new JLabel(Messages.getString("PrinterDialog.port") + StringUtil.COLON); - NumberFormat myFormat = LocalUtil.getNumberInstance(); + NumberFormat myFormat = NumberFormat.getNumberInstance(); myFormat.setMinimumIntegerDigits(0); myFormat.setMaximumIntegerDigits(65535); myFormat.setMaximumFractionDigits(0); diff --git a/weasis-dicom/weasis-dicom-qr/src/main/java/org/weasis/dicom/qr/DicomQrView.java b/weasis-dicom/weasis-dicom-qr/src/main/java/org/weasis/dicom/qr/DicomQrView.java index b566706013..332a353906 100755 --- a/weasis-dicom/weasis-dicom-qr/src/main/java/org/weasis/dicom/qr/DicomQrView.java +++ b/weasis-dicom/weasis-dicom-qr/src/main/java/org/weasis/dicom/qr/DicomQrView.java @@ -19,6 +19,7 @@ import java.io.File; import java.io.FileOutputStream; import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.time.format.FormatStyle; import java.time.temporal.TemporalAdjusters; import java.time.temporal.WeekFields; @@ -26,6 +27,8 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +import java.util.Locale; +import java.util.Locale.Category; import java.util.Objects; import java.util.Properties; import java.util.concurrent.ExecutorService; @@ -77,7 +80,6 @@ import org.weasis.core.api.media.data.TagW; import org.weasis.core.api.service.BundlePreferences; import org.weasis.core.api.service.WProperties; -import org.weasis.core.api.util.LocalUtil; import org.weasis.core.api.util.ResourceUtil; import org.weasis.core.api.util.ResourceUtil.OtherIcon; import org.weasis.core.api.util.ThreadUtil; @@ -127,7 +129,7 @@ public enum Period { CUR_WEEK( Messages.getString("DicomQrView.this_week"), - LocalDate.now().with(WeekFields.of(LocalUtil.getLocaleFormat()).dayOfWeek(), 1), + LocalDate.now().with(WeekFields.of(Locale.getDefault(Category.FORMAT)).dayOfWeek(), 1), LocalDate.now()), CUR_MONTH( @@ -616,8 +618,8 @@ private DatePicker buildDatePicker() { CalendarUtil.adaptCalendarColors(settings); JTextField textField = picker.getComponentDateTextField(); - settings.setFormatForDatesCommonEra(LocalUtil.getDateFormatter(FormatStyle.SHORT)); - settings.setFormatForDatesBeforeCommonEra(LocalUtil.getDateFormatter(FormatStyle.SHORT)); + settings.setFormatForDatesCommonEra(DateTimeFormatter.ofLocalizedDate(FormatStyle.SHORT)); + settings.setFormatForDatesBeforeCommonEra(DateTimeFormatter.ofLocalizedDate(FormatStyle.SHORT)); GuiUtils.setPreferredWidth(textField, 145); picker.addDateChangeListener(dateChangeListener); diff --git a/weasis-dicom/weasis-dicom-wave/src/main/java/org/weasis/dicom/wave/InfoPanel.java b/weasis-dicom/weasis-dicom-wave/src/main/java/org/weasis/dicom/wave/InfoPanel.java index 71f9c763a9..a9cf493af3 100755 --- a/weasis-dicom/weasis-dicom-wave/src/main/java/org/weasis/dicom/wave/InfoPanel.java +++ b/weasis-dicom/weasis-dicom-wave/src/main/java/org/weasis/dicom/wave/InfoPanel.java @@ -23,7 +23,6 @@ import org.weasis.core.api.gui.util.JSliderW; import org.weasis.core.api.gui.util.SliderChangeListener; import org.weasis.core.api.util.FontItem; -import org.weasis.core.api.util.LocalUtil; import org.weasis.core.ui.editor.image.ImageViewerEventManager; import org.weasis.core.ui.editor.image.ImageViewerPlugin; import org.weasis.core.ui.model.utils.imp.DefaultViewModel; @@ -132,10 +131,8 @@ public void setMinMax(double minimum, double maximum) { max.append(Messages.getString("InfoPanel.max")); max.append(StringUtil.COLON_AND_SPACE); max.append("-##.#### mV"); // NON-NLS - this.minimum.setText( - new DecimalFormat(min.toString(), LocalUtil.getDecimalFormatSymbols()).format(minimum)); - this.maximum.setText( - new DecimalFormat(max.toString(), LocalUtil.getDecimalFormatSymbols()).format(maximum)); + this.minimum.setText(new DecimalFormat(min.toString()).format(minimum)); + this.maximum.setText(new DecimalFormat(max.toString()).format(maximum)); } public void setCurrentValues(double sec, double mV) { diff --git a/weasis-dicom/weasis-dicom-wave/src/main/java/org/weasis/dicom/wave/MarkerAnnotation.java b/weasis-dicom/weasis-dicom-wave/src/main/java/org/weasis/dicom/wave/MarkerAnnotation.java index 2a8b2b46c3..7bf6c61478 100755 --- a/weasis-dicom/weasis-dicom-wave/src/main/java/org/weasis/dicom/wave/MarkerAnnotation.java +++ b/weasis-dicom/weasis-dicom-wave/src/main/java/org/weasis/dicom/wave/MarkerAnnotation.java @@ -10,13 +10,10 @@ package org.weasis.dicom.wave; import java.text.DecimalFormat; -import org.weasis.core.api.util.LocalUtil; public class MarkerAnnotation { - public static final DecimalFormat secondFormatter = - new DecimalFormat("##.#### s", LocalUtil.getDecimalFormatSymbols()); // NON-NLS - public static final DecimalFormat mVFormatter = - new DecimalFormat("##.#### mV", LocalUtil.getDecimalFormatSymbols()); // NON-NLS + public static final DecimalFormat secondFormatter = new DecimalFormat("##.#### s"); // NON-NLS + public static final DecimalFormat mVFormatter = new DecimalFormat("##.#### mV"); // NON-NLS private final Lead lead; diff --git a/weasis-launcher/src/main/java/org/weasis/launcher/WeasisLauncher.java b/weasis-launcher/src/main/java/org/weasis/launcher/WeasisLauncher.java index 527c96a0c8..63b1d24100 100755 --- a/weasis-launcher/src/main/java/org/weasis/launcher/WeasisLauncher.java +++ b/weasis-launcher/src/main/java/org/weasis/launcher/WeasisLauncher.java @@ -43,6 +43,7 @@ import java.util.Objects; import java.util.Optional; import java.util.Properties; +import java.util.ResourceBundle.Control; import java.util.Set; import java.util.Timer; import java.util.TimerTask; @@ -805,9 +806,10 @@ public WeasisLoader loadProperties(Map serverProp, StringBuilder // if English no need to load i18n bundle fragments modulesi18n.clear(); } else { - String suffix = locale.toString(); - SwingResources.loadResources("/swing/basic_" + suffix + ".properties"); // NON-NLS - SwingResources.loadResources("/swing/synth_" + suffix + ".properties"); // NON-NLS + // Get the default i18n suffix for properties files + String suffix = Control.getControl(Control.FORMAT_PROPERTIES).toBundleName("", locale); + SwingResources.loadResources("/swing/basic" + suffix + ".properties"); // NON-NLS + SwingResources.loadResources("/swing/synth" + suffix + ".properties"); // NON-NLS } String nativeLook; @@ -1150,32 +1152,22 @@ public void run() { } } + /** + * Returns the Locale value according the IETF BCP 47 language tag or the suffix of + * the i18n jars. Null or empty string will return the ENGLISH Locale. The value + * "system " returns the system default Locale. + * + * @return the Locale value + */ public static Locale textToLocale(String value) { if (!Utils.hasText(value)) { return Locale.ENGLISH; } - if ("system".equals(value)) { // NON-NLS - String language = System.getProperty("user.language", "en"); // NON-NLS - String country = System.getProperty("user.country", ""); // NON-NLS - String variant = System.getProperty("user.variant", ""); // NON-NLS - return new Locale.Builder() - .setLanguage(language) - .setRegion(country) - .setVariant(variant) - .build(); + if (!"system".equals(value)) { // NON-NLS + return Locale.forLanguageTag(value.replace("_", "-")); } - - String[] val = value.split("_", 3); - String language = val.length > 0 ? val[0] : ""; - String country = val.length > 1 ? val[1] : ""; - String variant = val.length > 2 ? val[2] : ""; - - return new Locale.Builder() - .setLanguage(language) - .setRegion(country) - .setVariant(variant) - .build(); + return Locale.getDefault(); } private void registerAdditionalShutdownHook() { diff --git a/weasis-launcher/src/main/java/org/weasis/launcher/messages_ar.properties b/weasis-launcher/src/main/java/org/weasis/launcher/messages_ar.properties deleted file mode 100755 index 8cf34212d4..0000000000 --- a/weasis-launcher/src/main/java/org/weasis/launcher/messages_ar.properties +++ /dev/null @@ -1,16 +0,0 @@ -AutoProcessor.start=Starting plug-ins... -WeasisLauncher.change.version=%s version has changed from %s to %s. -WeasisLauncher.continue_local=Try to continue with the current local version? -WeasisLauncher.first=First Time Launch of %s -WeasisLauncher.msg=%s is not intended nor designed for\nany kind of diagnostic purposes -WeasisLauncher.News=News -WeasisLauncher.no=No -WeasisLauncher.ok=I accept -WeasisLauncher.release=Release notes -WeasisLauncher.starting=Starting... %s -WeasisLauncher.update_min=The local installation of %s must be updated at least to %s. -WebStartLoader.cancel=Cancel -WebStartLoader.download=Downloading -WebStartLoader.end=Completed %d of %d plug-ins. -WebStartLoader.load=Loading... -WebStartLoader.title=%s Plug-ins Loader diff --git a/weasis-launcher/src/main/java/org/weasis/launcher/messages_ms_MY.properties b/weasis-launcher/src/main/java/org/weasis/launcher/messages_ms_MY.properties deleted file mode 100755 index 8cf34212d4..0000000000 --- a/weasis-launcher/src/main/java/org/weasis/launcher/messages_ms_MY.properties +++ /dev/null @@ -1,16 +0,0 @@ -AutoProcessor.start=Starting plug-ins... -WeasisLauncher.change.version=%s version has changed from %s to %s. -WeasisLauncher.continue_local=Try to continue with the current local version? -WeasisLauncher.first=First Time Launch of %s -WeasisLauncher.msg=%s is not intended nor designed for\nany kind of diagnostic purposes -WeasisLauncher.News=News -WeasisLauncher.no=No -WeasisLauncher.ok=I accept -WeasisLauncher.release=Release notes -WeasisLauncher.starting=Starting... %s -WeasisLauncher.update_min=The local installation of %s must be updated at least to %s. -WebStartLoader.cancel=Cancel -WebStartLoader.download=Downloading -WebStartLoader.end=Completed %d of %d plug-ins. -WebStartLoader.load=Loading... -WebStartLoader.title=%s Plug-ins Loader diff --git a/weasis-launcher/src/main/java/org/weasis/launcher/messages_sk_SK.properties b/weasis-launcher/src/main/java/org/weasis/launcher/messages_sk_SK.properties deleted file mode 100755 index 8cf34212d4..0000000000 --- a/weasis-launcher/src/main/java/org/weasis/launcher/messages_sk_SK.properties +++ /dev/null @@ -1,16 +0,0 @@ -AutoProcessor.start=Starting plug-ins... -WeasisLauncher.change.version=%s version has changed from %s to %s. -WeasisLauncher.continue_local=Try to continue with the current local version? -WeasisLauncher.first=First Time Launch of %s -WeasisLauncher.msg=%s is not intended nor designed for\nany kind of diagnostic purposes -WeasisLauncher.News=News -WeasisLauncher.no=No -WeasisLauncher.ok=I accept -WeasisLauncher.release=Release notes -WeasisLauncher.starting=Starting... %s -WeasisLauncher.update_min=The local installation of %s must be updated at least to %s. -WebStartLoader.cancel=Cancel -WebStartLoader.download=Downloading -WebStartLoader.end=Completed %d of %d plug-ins. -WebStartLoader.load=Loading... -WebStartLoader.title=%s Plug-ins Loader diff --git a/weasis-launcher/src/main/java/org/weasis/launcher/messages_ta_IN.properties b/weasis-launcher/src/main/java/org/weasis/launcher/messages_ta_IN.properties deleted file mode 100755 index 8cf34212d4..0000000000 --- a/weasis-launcher/src/main/java/org/weasis/launcher/messages_ta_IN.properties +++ /dev/null @@ -1,16 +0,0 @@ -AutoProcessor.start=Starting plug-ins... -WeasisLauncher.change.version=%s version has changed from %s to %s. -WeasisLauncher.continue_local=Try to continue with the current local version? -WeasisLauncher.first=First Time Launch of %s -WeasisLauncher.msg=%s is not intended nor designed for\nany kind of diagnostic purposes -WeasisLauncher.News=News -WeasisLauncher.no=No -WeasisLauncher.ok=I accept -WeasisLauncher.release=Release notes -WeasisLauncher.starting=Starting... %s -WeasisLauncher.update_min=The local installation of %s must be updated at least to %s. -WebStartLoader.cancel=Cancel -WebStartLoader.download=Downloading -WebStartLoader.end=Completed %d of %d plug-ins. -WebStartLoader.load=Loading... -WebStartLoader.title=%s Plug-ins Loader diff --git a/weasis-launcher/src/main/java/org/weasis/launcher/messages_zh-Hans.properties b/weasis-launcher/src/main/java/org/weasis/launcher/messages_zh_Hans.properties old mode 100755 new mode 100644 similarity index 100% rename from weasis-launcher/src/main/java/org/weasis/launcher/messages_zh-Hans.properties rename to weasis-launcher/src/main/java/org/weasis/launcher/messages_zh_Hans.properties diff --git a/weasis-launcher/src/main/resources/swing/basic_hr_HR.properties b/weasis-launcher/src/main/resources/swing/basic_hr_HR.properties index 368759f4da..3130cae11c 100755 --- a/weasis-launcher/src/main/resources/swing/basic_hr_HR.properties +++ b/weasis-launcher/src/main/resources/swing/basic_hr_HR.properties @@ -8,11 +8,11 @@ FileChooser.renameErrorTitle.textAndMnemonic=Error Renaming File or Folder FileChooser.renameError.textAndMnemonic=Cannot rename {0} FileChooser.renameErrorFileExists.textAndMnemonic=Cannot rename {0}: A file with the name you specified already exists. Specify a different file name. FileChooser.acceptAllFileFilter.textAndMnemonic=All Files -FileChooser.cancelButton.textAndMnemonic=Cancel +FileChooser.cancelButton.textAndMnemonic=Odustani FileChooser.saveButton.textAndMnemonic=Spremi FileChooser.openButton.textAndMnemonic=Otvoriti -FileChooser.saveDialogTitle.textAndMnemonic=Save -FileChooser.openDialogTitle.textAndMnemonic=Open +FileChooser.saveDialogTitle.textAndMnemonic=Spremi +FileChooser.openDialogTitle.textAndMnemonic=Otvoriti FileChooser.updateButton.textAndMnemonic=&Update FileChooser.helpButton.textAndMnemonic=&Help FileChooser.directoryOpenButton.textAndMnemonic=Otvoriti @@ -32,8 +32,8 @@ FileChooser.directoryOpenButtonToolTip.textAndMnemonic=Open selected directory FileChooser.filesListAccessibleName=Files List FileChooser.filesDetailsAccessibleName=Files Details ColorChooser.preview.textAndMnemonic=Preview -ColorChooser.ok.textAndMnemonic=OK -ColorChooser.cancel.textAndMnemonic=Cancel +ColorChooser.ok.textAndMnemonic=U redu +ColorChooser.cancel.textAndMnemonic=Odustani ColorChooser.reset.textAndMnemonic=&Reset ColorChooser.sample.textAndMnemonic=Sample Text Sample Text ColorChooser.swatches.textAndMnemonic=&Swatches @@ -41,7 +41,7 @@ ColorChooser.swatchesRecent.textAndMnemonic=Recent: ColorChooser.hsv.textAndMnemonic=&HSV ColorChooser.hsvHue.textAndMnemonic=Hue ColorChooser.hsvSaturation.textAndMnemonic=Saturation -ColorChooser.hsvValue.textAndMnemonic=Value +ColorChooser.hsvValue.textAndMnemonic=Vrijednost ColorChooser.hsvTransparency.textAndMnemonic=Transparency ColorChooser.hsl.textAndMnemonic=HS&L ColorChooser.hslHue.textAndMnemonic=Hue @@ -62,8 +62,8 @@ ColorChooser.cmykBlack.textAndMnemonic=Black ColorChooser.cmykAlpha.textAndMnemonic=Alpha OptionPane.yesButton.textAndMnemonic=&Yes OptionPane.noButton.textAndMnemonic=&No -OptionPane.okButton.textAndMnemonic=OK -OptionPane.cancelButton.textAndMnemonic=Cancel +OptionPane.okButton.textAndMnemonic=U redu +OptionPane.cancelButton.textAndMnemonic=Odustani OptionPane.title.textAndMnemonic=Select an Option OptionPane.inputDialog.titleAndMnemonic=Input OptionPane.messageDialog.titleAndMnemonic=Message @@ -77,7 +77,7 @@ PrintingDialog.abortButtonToolTip.textAndMnemonic=Abort Printing InternalFrame.iconButtonToolTip=Minimize InternalFrame.maxButtonToolTip=Maximize InternalFrame.restoreButtonToolTip=Restore -InternalFrame.closeButtonToolTip=Close +InternalFrame.closeButtonToolTip=Zatvori InternalFrameTitlePane.restoreButton.textAndMnemonic=&Restore InternalFrameTitlePane.moveButton.textAndMnemonic=&Move InternalFrameTitlePane.sizeButton.textAndMnemonic=&Size @@ -85,7 +85,7 @@ InternalFrameTitlePane.minimizeButton.textAndMnemonic=Mi&nimize InternalFrameTitlePane.maximizeButton.textAndMnemonic=Ma&ximize InternalFrameTitlePane.closeButton.textAndMnemonic=&Close FormView.submitButton.textAndMnemonic=Submit Query -FormView.resetButton.textAndMnemonic=Reset +FormView.resetButton.textAndMnemonic=Poni\u0161ti FormView.browseFileButton.textAndMnemonic=Browse... AbstractDocument.styleChange.textAndMnemonic=style change AbstractDocument.addition.textAndMnemonic=addition @@ -102,4 +102,4 @@ SplitPane.rightButton.textAndMnemonic=right button IsindexView.prompt=This is a searchable index. Enter search keywords: InternalFrameTitlePane.iconifyButtonAccessibleName=Iconify InternalFrameTitlePane.maximizeButtonAccessibleName=Maximize -InternalFrameTitlePane.closeButtonAccessibleName=Close +InternalFrameTitlePane.closeButtonAccessibleName=Zatvori diff --git a/weasis-launcher/src/main/resources/swing/basic_ms_MY.properties b/weasis-launcher/src/main/resources/swing/basic_ms_MY.properties deleted file mode 100755 index c21a0484e8..0000000000 --- a/weasis-launcher/src/main/resources/swing/basic_ms_MY.properties +++ /dev/null @@ -1,105 +0,0 @@ -FileChooser.fileDescription.textAndMnemonic=Generic File -FileChooser.directoryDescription.textAndMnemonic=Directory -FileChooser.newFolderError.textAndMnemonic=Error creating new folder -FileChooser.newFolderErrorSeparator= : -FileChooser.newFolderParentDoesntExistTitle.textAndMnemonic=Unable to create folder -FileChooser.newFolderParentDoesntExist.textAndMnemonic=Unable to create the folder.\n\nThe system cannot find the path specified. -FileChooser.renameErrorTitle.textAndMnemonic=Error Renaming File or Folder -FileChooser.renameError.textAndMnemonic=Cannot rename {0} -FileChooser.renameErrorFileExists.textAndMnemonic=Cannot rename {0}: A file with the name you specified already exists. Specify a different file name. -FileChooser.acceptAllFileFilter.textAndMnemonic=All Files -FileChooser.cancelButton.textAndMnemonic=Cancel -FileChooser.saveButton.textAndMnemonic=Save -FileChooser.openButton.textAndMnemonic=Open -FileChooser.saveDialogTitle.textAndMnemonic=Save -FileChooser.openDialogTitle.textAndMnemonic=Open -FileChooser.updateButton.textAndMnemonic=&Update -FileChooser.helpButton.textAndMnemonic=&Help -FileChooser.directoryOpenButton.textAndMnemonic=Open -FileChooser.fileSizeKiloBytes={0} KB -FileChooser.fileSizeMegaBytes={0} MB -FileChooser.fileSizeGigaBytes={0} GB -FileChooser.win32.newFolder=New Folder -FileChooser.win32.newFolder.subsequent=New Folder ({0}) -FileChooser.other.newFolder=NewFolder -FileChooser.other.newFolder.subsequent=NewFolder.{0} -FileChooser.cancelButtonToolTip.textAndMnemonic=Abort file chooser dialog -FileChooser.saveButtonToolTip.textAndMnemonic=Save selected file -FileChooser.openButtonToolTip.textAndMnemonic=Open selected file -FileChooser.updateButtonToolTip.textAndMnemonic=Update directory listing -FileChooser.helpButtonToolTip.textAndMnemonic=FileChooser help -FileChooser.directoryOpenButtonToolTip.textAndMnemonic=Open selected directory -FileChooser.filesListAccessibleName=Files List -FileChooser.filesDetailsAccessibleName=Files Details -ColorChooser.preview.textAndMnemonic=Preview -ColorChooser.ok.textAndMnemonic=OK -ColorChooser.cancel.textAndMnemonic=Cancel -ColorChooser.reset.textAndMnemonic=&Reset -ColorChooser.sample.textAndMnemonic=Sample Text Sample Text -ColorChooser.swatches.textAndMnemonic=&Swatches -ColorChooser.swatchesRecent.textAndMnemonic=Recent: -ColorChooser.hsv.textAndMnemonic=&HSV -ColorChooser.hsvHue.textAndMnemonic=Hue -ColorChooser.hsvSaturation.textAndMnemonic=Saturation -ColorChooser.hsvValue.textAndMnemonic=Value -ColorChooser.hsvTransparency.textAndMnemonic=Transparency -ColorChooser.hsl.textAndMnemonic=HS&L -ColorChooser.hslHue.textAndMnemonic=Hue -ColorChooser.hslSaturation.textAndMnemonic=Saturation -ColorChooser.hslLightness.textAndMnemonic=Lightness -ColorChooser.hslTransparency.textAndMnemonic=Transparency -ColorChooser.rgb.textAndMnemonic=R&GB -ColorChooser.rgbRed.textAndMnemonic=Re&d -ColorChooser.rgbGreen.textAndMnemonic=Gree&n -ColorChooser.rgbBlue.textAndMnemonic=&Blue -ColorChooser.rgbAlpha.textAndMnemonic=Alpha -ColorChooser.rgbHexCode.textAndMnemonic=&Color Code -ColorChooser.cmyk.textAndMnemonic=C&MYK -ColorChooser.cmykCyan.textAndMnemonic=Cyan -ColorChooser.cmykMagenta.textAndMnemonic=Magenta -ColorChooser.cmykYellow.textAndMnemonic=Yellow -ColorChooser.cmykBlack.textAndMnemonic=Black -ColorChooser.cmykAlpha.textAndMnemonic=Alpha -OptionPane.yesButton.textAndMnemonic=&Yes -OptionPane.noButton.textAndMnemonic=&No -OptionPane.okButton.textAndMnemonic=OK -OptionPane.cancelButton.textAndMnemonic=Cancel -OptionPane.title.textAndMnemonic=Select an Option -OptionPane.inputDialog.titleAndMnemonic=Input -OptionPane.messageDialog.titleAndMnemonic=Message -PrintingDialog.titleProgress.textAndMnemonic=Printing -PrintingDialog.titleAborting.textAndMnemonic=Printing (Aborting) -PrintingDialog.contentInitial.textAndMnemonic=Printing in progress... -PrintingDialog.contentProgress.textAndMnemonic=Printed page {0}... -PrintingDialog.contentAborting.textAndMnemonic=Printing aborting... -PrintingDialog.abortButton.textAndMnemonic=&Abort -PrintingDialog.abortButtonToolTip.textAndMnemonic=Abort Printing -InternalFrame.iconButtonToolTip=Minimize -InternalFrame.maxButtonToolTip=Maximize -InternalFrame.restoreButtonToolTip=Restore -InternalFrame.closeButtonToolTip=Close -InternalFrameTitlePane.restoreButton.textAndMnemonic=&Restore -InternalFrameTitlePane.moveButton.textAndMnemonic=&Move -InternalFrameTitlePane.sizeButton.textAndMnemonic=&Size -InternalFrameTitlePane.minimizeButton.textAndMnemonic=Mi&nimize -InternalFrameTitlePane.maximizeButton.textAndMnemonic=Ma&ximize -InternalFrameTitlePane.closeButton.textAndMnemonic=&Close -FormView.submitButton.textAndMnemonic=Submit Query -FormView.resetButton.textAndMnemonic=Reset -FormView.browseFileButton.textAndMnemonic=Browse... -AbstractDocument.styleChange.textAndMnemonic=style change -AbstractDocument.addition.textAndMnemonic=addition -AbstractDocument.deletion.textAndMnemonic=deletion -AbstractDocument.undo.textAndMnemonic=Undo -AbstractDocument.redo.textAndMnemonic=Redo -AbstractButton.click.textAndMnemonic=click -AbstractUndoableEdit.undo.textAndMnemonic=Undo -AbstractUndoableEdit.redo.textAndMnemonic=Redo -ComboBox.togglePopup.textAndMnemonic=togglePopup -ProgressMonitor.progress.textAndMnemonic=Progress... -SplitPane.leftButton.textAndMnemonic=left button -SplitPane.rightButton.textAndMnemonic=right button -IsindexView.prompt=This is a searchable index. Enter search keywords: -InternalFrameTitlePane.iconifyButtonAccessibleName=Iconify -InternalFrameTitlePane.maximizeButtonAccessibleName=Maximize -InternalFrameTitlePane.closeButtonAccessibleName=Close diff --git a/weasis-launcher/src/main/resources/swing/basic_pt.properties b/weasis-launcher/src/main/resources/swing/basic_pt.properties index f543fe64d2..3e2a17fae6 100755 --- a/weasis-launcher/src/main/resources/swing/basic_pt.properties +++ b/weasis-launcher/src/main/resources/swing/basic_pt.properties @@ -8,11 +8,11 @@ FileChooser.renameErrorTitle.textAndMnemonic=Error Renaming File or Folder FileChooser.renameError.textAndMnemonic=Cannot rename {0} FileChooser.renameErrorFileExists.textAndMnemonic=Cannot rename {0}: A file with the name you specified already exists. Specify a different file name. FileChooser.acceptAllFileFilter.textAndMnemonic=All Files -FileChooser.cancelButton.textAndMnemonic=Cancel +FileChooser.cancelButton.textAndMnemonic=Cancelar FileChooser.saveButton.textAndMnemonic=Salvar FileChooser.openButton.textAndMnemonic=Abrir -FileChooser.saveDialogTitle.textAndMnemonic=Save -FileChooser.openDialogTitle.textAndMnemonic=Open +FileChooser.saveDialogTitle.textAndMnemonic=Salvar +FileChooser.openDialogTitle.textAndMnemonic=Abrir FileChooser.updateButton.textAndMnemonic=&Update FileChooser.helpButton.textAndMnemonic=&Help FileChooser.directoryOpenButton.textAndMnemonic=Abrir @@ -33,20 +33,20 @@ FileChooser.filesListAccessibleName=Files List FileChooser.filesDetailsAccessibleName=Files Details ColorChooser.preview.textAndMnemonic=Preview ColorChooser.ok.textAndMnemonic=OK -ColorChooser.cancel.textAndMnemonic=Cancel +ColorChooser.cancel.textAndMnemonic=Cancelar ColorChooser.reset.textAndMnemonic=&Reset ColorChooser.sample.textAndMnemonic=Sample Text Sample Text ColorChooser.swatches.textAndMnemonic=&Swatches ColorChooser.swatchesRecent.textAndMnemonic=Recent: ColorChooser.hsv.textAndMnemonic=&HSV -ColorChooser.hsvHue.textAndMnemonic=Hue -ColorChooser.hsvSaturation.textAndMnemonic=Saturation -ColorChooser.hsvValue.textAndMnemonic=Value +ColorChooser.hsvHue.textAndMnemonic=Matiz +ColorChooser.hsvSaturation.textAndMnemonic=Saturação +ColorChooser.hsvValue.textAndMnemonic=Valor ColorChooser.hsvTransparency.textAndMnemonic=Transparency ColorChooser.hsl.textAndMnemonic=HS&L -ColorChooser.hslHue.textAndMnemonic=Hue -ColorChooser.hslSaturation.textAndMnemonic=Saturation -ColorChooser.hslLightness.textAndMnemonic=Lightness +ColorChooser.hslHue.textAndMnemonic=Matiz +ColorChooser.hslSaturation.textAndMnemonic=Saturação +ColorChooser.hslLightness.textAndMnemonic=Clareza ColorChooser.hslTransparency.textAndMnemonic=Transparency ColorChooser.rgb.textAndMnemonic=R&GB ColorChooser.rgbRed.textAndMnemonic=Re&d @@ -63,7 +63,7 @@ ColorChooser.cmykAlpha.textAndMnemonic=Alpha OptionPane.yesButton.textAndMnemonic=&Yes OptionPane.noButton.textAndMnemonic=&No OptionPane.okButton.textAndMnemonic=OK -OptionPane.cancelButton.textAndMnemonic=Cancel +OptionPane.cancelButton.textAndMnemonic=Cancelar OptionPane.title.textAndMnemonic=Select an Option OptionPane.inputDialog.titleAndMnemonic=Input OptionPane.messageDialog.titleAndMnemonic=Message @@ -77,7 +77,7 @@ PrintingDialog.abortButtonToolTip.textAndMnemonic=Abort Printing InternalFrame.iconButtonToolTip=Minimize InternalFrame.maxButtonToolTip=Maximize InternalFrame.restoreButtonToolTip=Restore -InternalFrame.closeButtonToolTip=Close +InternalFrame.closeButtonToolTip=Fechar InternalFrameTitlePane.restoreButton.textAndMnemonic=&Restore InternalFrameTitlePane.moveButton.textAndMnemonic=&Move InternalFrameTitlePane.sizeButton.textAndMnemonic=&Size @@ -85,7 +85,7 @@ InternalFrameTitlePane.minimizeButton.textAndMnemonic=Mi&nimize InternalFrameTitlePane.maximizeButton.textAndMnemonic=Ma&ximize InternalFrameTitlePane.closeButton.textAndMnemonic=&Close FormView.submitButton.textAndMnemonic=Submit Query -FormView.resetButton.textAndMnemonic=Reset +FormView.resetButton.textAndMnemonic=Redefinir FormView.browseFileButton.textAndMnemonic=Browse... AbstractDocument.styleChange.textAndMnemonic=style change AbstractDocument.addition.textAndMnemonic=addition @@ -102,4 +102,4 @@ SplitPane.rightButton.textAndMnemonic=right button IsindexView.prompt=This is a searchable index. Enter search keywords: InternalFrameTitlePane.iconifyButtonAccessibleName=Iconify InternalFrameTitlePane.maximizeButtonAccessibleName=Maximize -InternalFrameTitlePane.closeButtonAccessibleName=Close +InternalFrameTitlePane.closeButtonAccessibleName=Fechar diff --git a/weasis-launcher/src/main/resources/swing/basic_sk_SK.properties b/weasis-launcher/src/main/resources/swing/basic_sk_SK.properties deleted file mode 100755 index c21a0484e8..0000000000 --- a/weasis-launcher/src/main/resources/swing/basic_sk_SK.properties +++ /dev/null @@ -1,105 +0,0 @@ -FileChooser.fileDescription.textAndMnemonic=Generic File -FileChooser.directoryDescription.textAndMnemonic=Directory -FileChooser.newFolderError.textAndMnemonic=Error creating new folder -FileChooser.newFolderErrorSeparator= : -FileChooser.newFolderParentDoesntExistTitle.textAndMnemonic=Unable to create folder -FileChooser.newFolderParentDoesntExist.textAndMnemonic=Unable to create the folder.\n\nThe system cannot find the path specified. -FileChooser.renameErrorTitle.textAndMnemonic=Error Renaming File or Folder -FileChooser.renameError.textAndMnemonic=Cannot rename {0} -FileChooser.renameErrorFileExists.textAndMnemonic=Cannot rename {0}: A file with the name you specified already exists. Specify a different file name. -FileChooser.acceptAllFileFilter.textAndMnemonic=All Files -FileChooser.cancelButton.textAndMnemonic=Cancel -FileChooser.saveButton.textAndMnemonic=Save -FileChooser.openButton.textAndMnemonic=Open -FileChooser.saveDialogTitle.textAndMnemonic=Save -FileChooser.openDialogTitle.textAndMnemonic=Open -FileChooser.updateButton.textAndMnemonic=&Update -FileChooser.helpButton.textAndMnemonic=&Help -FileChooser.directoryOpenButton.textAndMnemonic=Open -FileChooser.fileSizeKiloBytes={0} KB -FileChooser.fileSizeMegaBytes={0} MB -FileChooser.fileSizeGigaBytes={0} GB -FileChooser.win32.newFolder=New Folder -FileChooser.win32.newFolder.subsequent=New Folder ({0}) -FileChooser.other.newFolder=NewFolder -FileChooser.other.newFolder.subsequent=NewFolder.{0} -FileChooser.cancelButtonToolTip.textAndMnemonic=Abort file chooser dialog -FileChooser.saveButtonToolTip.textAndMnemonic=Save selected file -FileChooser.openButtonToolTip.textAndMnemonic=Open selected file -FileChooser.updateButtonToolTip.textAndMnemonic=Update directory listing -FileChooser.helpButtonToolTip.textAndMnemonic=FileChooser help -FileChooser.directoryOpenButtonToolTip.textAndMnemonic=Open selected directory -FileChooser.filesListAccessibleName=Files List -FileChooser.filesDetailsAccessibleName=Files Details -ColorChooser.preview.textAndMnemonic=Preview -ColorChooser.ok.textAndMnemonic=OK -ColorChooser.cancel.textAndMnemonic=Cancel -ColorChooser.reset.textAndMnemonic=&Reset -ColorChooser.sample.textAndMnemonic=Sample Text Sample Text -ColorChooser.swatches.textAndMnemonic=&Swatches -ColorChooser.swatchesRecent.textAndMnemonic=Recent: -ColorChooser.hsv.textAndMnemonic=&HSV -ColorChooser.hsvHue.textAndMnemonic=Hue -ColorChooser.hsvSaturation.textAndMnemonic=Saturation -ColorChooser.hsvValue.textAndMnemonic=Value -ColorChooser.hsvTransparency.textAndMnemonic=Transparency -ColorChooser.hsl.textAndMnemonic=HS&L -ColorChooser.hslHue.textAndMnemonic=Hue -ColorChooser.hslSaturation.textAndMnemonic=Saturation -ColorChooser.hslLightness.textAndMnemonic=Lightness -ColorChooser.hslTransparency.textAndMnemonic=Transparency -ColorChooser.rgb.textAndMnemonic=R&GB -ColorChooser.rgbRed.textAndMnemonic=Re&d -ColorChooser.rgbGreen.textAndMnemonic=Gree&n -ColorChooser.rgbBlue.textAndMnemonic=&Blue -ColorChooser.rgbAlpha.textAndMnemonic=Alpha -ColorChooser.rgbHexCode.textAndMnemonic=&Color Code -ColorChooser.cmyk.textAndMnemonic=C&MYK -ColorChooser.cmykCyan.textAndMnemonic=Cyan -ColorChooser.cmykMagenta.textAndMnemonic=Magenta -ColorChooser.cmykYellow.textAndMnemonic=Yellow -ColorChooser.cmykBlack.textAndMnemonic=Black -ColorChooser.cmykAlpha.textAndMnemonic=Alpha -OptionPane.yesButton.textAndMnemonic=&Yes -OptionPane.noButton.textAndMnemonic=&No -OptionPane.okButton.textAndMnemonic=OK -OptionPane.cancelButton.textAndMnemonic=Cancel -OptionPane.title.textAndMnemonic=Select an Option -OptionPane.inputDialog.titleAndMnemonic=Input -OptionPane.messageDialog.titleAndMnemonic=Message -PrintingDialog.titleProgress.textAndMnemonic=Printing -PrintingDialog.titleAborting.textAndMnemonic=Printing (Aborting) -PrintingDialog.contentInitial.textAndMnemonic=Printing in progress... -PrintingDialog.contentProgress.textAndMnemonic=Printed page {0}... -PrintingDialog.contentAborting.textAndMnemonic=Printing aborting... -PrintingDialog.abortButton.textAndMnemonic=&Abort -PrintingDialog.abortButtonToolTip.textAndMnemonic=Abort Printing -InternalFrame.iconButtonToolTip=Minimize -InternalFrame.maxButtonToolTip=Maximize -InternalFrame.restoreButtonToolTip=Restore -InternalFrame.closeButtonToolTip=Close -InternalFrameTitlePane.restoreButton.textAndMnemonic=&Restore -InternalFrameTitlePane.moveButton.textAndMnemonic=&Move -InternalFrameTitlePane.sizeButton.textAndMnemonic=&Size -InternalFrameTitlePane.minimizeButton.textAndMnemonic=Mi&nimize -InternalFrameTitlePane.maximizeButton.textAndMnemonic=Ma&ximize -InternalFrameTitlePane.closeButton.textAndMnemonic=&Close -FormView.submitButton.textAndMnemonic=Submit Query -FormView.resetButton.textAndMnemonic=Reset -FormView.browseFileButton.textAndMnemonic=Browse... -AbstractDocument.styleChange.textAndMnemonic=style change -AbstractDocument.addition.textAndMnemonic=addition -AbstractDocument.deletion.textAndMnemonic=deletion -AbstractDocument.undo.textAndMnemonic=Undo -AbstractDocument.redo.textAndMnemonic=Redo -AbstractButton.click.textAndMnemonic=click -AbstractUndoableEdit.undo.textAndMnemonic=Undo -AbstractUndoableEdit.redo.textAndMnemonic=Redo -ComboBox.togglePopup.textAndMnemonic=togglePopup -ProgressMonitor.progress.textAndMnemonic=Progress... -SplitPane.leftButton.textAndMnemonic=left button -SplitPane.rightButton.textAndMnemonic=right button -IsindexView.prompt=This is a searchable index. Enter search keywords: -InternalFrameTitlePane.iconifyButtonAccessibleName=Iconify -InternalFrameTitlePane.maximizeButtonAccessibleName=Maximize -InternalFrameTitlePane.closeButtonAccessibleName=Close diff --git a/weasis-launcher/src/main/resources/swing/basic_ta_IN.properties b/weasis-launcher/src/main/resources/swing/basic_ta_IN.properties deleted file mode 100755 index c21a0484e8..0000000000 --- a/weasis-launcher/src/main/resources/swing/basic_ta_IN.properties +++ /dev/null @@ -1,105 +0,0 @@ -FileChooser.fileDescription.textAndMnemonic=Generic File -FileChooser.directoryDescription.textAndMnemonic=Directory -FileChooser.newFolderError.textAndMnemonic=Error creating new folder -FileChooser.newFolderErrorSeparator= : -FileChooser.newFolderParentDoesntExistTitle.textAndMnemonic=Unable to create folder -FileChooser.newFolderParentDoesntExist.textAndMnemonic=Unable to create the folder.\n\nThe system cannot find the path specified. -FileChooser.renameErrorTitle.textAndMnemonic=Error Renaming File or Folder -FileChooser.renameError.textAndMnemonic=Cannot rename {0} -FileChooser.renameErrorFileExists.textAndMnemonic=Cannot rename {0}: A file with the name you specified already exists. Specify a different file name. -FileChooser.acceptAllFileFilter.textAndMnemonic=All Files -FileChooser.cancelButton.textAndMnemonic=Cancel -FileChooser.saveButton.textAndMnemonic=Save -FileChooser.openButton.textAndMnemonic=Open -FileChooser.saveDialogTitle.textAndMnemonic=Save -FileChooser.openDialogTitle.textAndMnemonic=Open -FileChooser.updateButton.textAndMnemonic=&Update -FileChooser.helpButton.textAndMnemonic=&Help -FileChooser.directoryOpenButton.textAndMnemonic=Open -FileChooser.fileSizeKiloBytes={0} KB -FileChooser.fileSizeMegaBytes={0} MB -FileChooser.fileSizeGigaBytes={0} GB -FileChooser.win32.newFolder=New Folder -FileChooser.win32.newFolder.subsequent=New Folder ({0}) -FileChooser.other.newFolder=NewFolder -FileChooser.other.newFolder.subsequent=NewFolder.{0} -FileChooser.cancelButtonToolTip.textAndMnemonic=Abort file chooser dialog -FileChooser.saveButtonToolTip.textAndMnemonic=Save selected file -FileChooser.openButtonToolTip.textAndMnemonic=Open selected file -FileChooser.updateButtonToolTip.textAndMnemonic=Update directory listing -FileChooser.helpButtonToolTip.textAndMnemonic=FileChooser help -FileChooser.directoryOpenButtonToolTip.textAndMnemonic=Open selected directory -FileChooser.filesListAccessibleName=Files List -FileChooser.filesDetailsAccessibleName=Files Details -ColorChooser.preview.textAndMnemonic=Preview -ColorChooser.ok.textAndMnemonic=OK -ColorChooser.cancel.textAndMnemonic=Cancel -ColorChooser.reset.textAndMnemonic=&Reset -ColorChooser.sample.textAndMnemonic=Sample Text Sample Text -ColorChooser.swatches.textAndMnemonic=&Swatches -ColorChooser.swatchesRecent.textAndMnemonic=Recent: -ColorChooser.hsv.textAndMnemonic=&HSV -ColorChooser.hsvHue.textAndMnemonic=Hue -ColorChooser.hsvSaturation.textAndMnemonic=Saturation -ColorChooser.hsvValue.textAndMnemonic=Value -ColorChooser.hsvTransparency.textAndMnemonic=Transparency -ColorChooser.hsl.textAndMnemonic=HS&L -ColorChooser.hslHue.textAndMnemonic=Hue -ColorChooser.hslSaturation.textAndMnemonic=Saturation -ColorChooser.hslLightness.textAndMnemonic=Lightness -ColorChooser.hslTransparency.textAndMnemonic=Transparency -ColorChooser.rgb.textAndMnemonic=R&GB -ColorChooser.rgbRed.textAndMnemonic=Re&d -ColorChooser.rgbGreen.textAndMnemonic=Gree&n -ColorChooser.rgbBlue.textAndMnemonic=&Blue -ColorChooser.rgbAlpha.textAndMnemonic=Alpha -ColorChooser.rgbHexCode.textAndMnemonic=&Color Code -ColorChooser.cmyk.textAndMnemonic=C&MYK -ColorChooser.cmykCyan.textAndMnemonic=Cyan -ColorChooser.cmykMagenta.textAndMnemonic=Magenta -ColorChooser.cmykYellow.textAndMnemonic=Yellow -ColorChooser.cmykBlack.textAndMnemonic=Black -ColorChooser.cmykAlpha.textAndMnemonic=Alpha -OptionPane.yesButton.textAndMnemonic=&Yes -OptionPane.noButton.textAndMnemonic=&No -OptionPane.okButton.textAndMnemonic=OK -OptionPane.cancelButton.textAndMnemonic=Cancel -OptionPane.title.textAndMnemonic=Select an Option -OptionPane.inputDialog.titleAndMnemonic=Input -OptionPane.messageDialog.titleAndMnemonic=Message -PrintingDialog.titleProgress.textAndMnemonic=Printing -PrintingDialog.titleAborting.textAndMnemonic=Printing (Aborting) -PrintingDialog.contentInitial.textAndMnemonic=Printing in progress... -PrintingDialog.contentProgress.textAndMnemonic=Printed page {0}... -PrintingDialog.contentAborting.textAndMnemonic=Printing aborting... -PrintingDialog.abortButton.textAndMnemonic=&Abort -PrintingDialog.abortButtonToolTip.textAndMnemonic=Abort Printing -InternalFrame.iconButtonToolTip=Minimize -InternalFrame.maxButtonToolTip=Maximize -InternalFrame.restoreButtonToolTip=Restore -InternalFrame.closeButtonToolTip=Close -InternalFrameTitlePane.restoreButton.textAndMnemonic=&Restore -InternalFrameTitlePane.moveButton.textAndMnemonic=&Move -InternalFrameTitlePane.sizeButton.textAndMnemonic=&Size -InternalFrameTitlePane.minimizeButton.textAndMnemonic=Mi&nimize -InternalFrameTitlePane.maximizeButton.textAndMnemonic=Ma&ximize -InternalFrameTitlePane.closeButton.textAndMnemonic=&Close -FormView.submitButton.textAndMnemonic=Submit Query -FormView.resetButton.textAndMnemonic=Reset -FormView.browseFileButton.textAndMnemonic=Browse... -AbstractDocument.styleChange.textAndMnemonic=style change -AbstractDocument.addition.textAndMnemonic=addition -AbstractDocument.deletion.textAndMnemonic=deletion -AbstractDocument.undo.textAndMnemonic=Undo -AbstractDocument.redo.textAndMnemonic=Redo -AbstractButton.click.textAndMnemonic=click -AbstractUndoableEdit.undo.textAndMnemonic=Undo -AbstractUndoableEdit.redo.textAndMnemonic=Redo -ComboBox.togglePopup.textAndMnemonic=togglePopup -ProgressMonitor.progress.textAndMnemonic=Progress... -SplitPane.leftButton.textAndMnemonic=left button -SplitPane.rightButton.textAndMnemonic=right button -IsindexView.prompt=This is a searchable index. Enter search keywords: -InternalFrameTitlePane.iconifyButtonAccessibleName=Iconify -InternalFrameTitlePane.maximizeButtonAccessibleName=Maximize -InternalFrameTitlePane.closeButtonAccessibleName=Close diff --git a/weasis-launcher/src/main/resources/swing/basic_vi.properties b/weasis-launcher/src/main/resources/swing/basic_vi.properties index 1427744aa3..17ed39addd 100755 --- a/weasis-launcher/src/main/resources/swing/basic_vi.properties +++ b/weasis-launcher/src/main/resources/swing/basic_vi.properties @@ -11,7 +11,7 @@ FileChooser.acceptAllFileFilter.textAndMnemonic=All Files FileChooser.cancelButton.textAndMnemonic=H\u1ee7y b\u1ecf FileChooser.saveButton.textAndMnemonic=L\u01b0u FileChooser.openButton.textAndMnemonic=M\u1edf -FileChooser.saveDialogTitle.textAndMnemonic=Save +FileChooser.saveDialogTitle.textAndMnemonic=L\u01b0u FileChooser.openDialogTitle.textAndMnemonic=M\u1edf FileChooser.updateButton.textAndMnemonic=&Update FileChooser.helpButton.textAndMnemonic=&Help @@ -32,7 +32,7 @@ FileChooser.directoryOpenButtonToolTip.textAndMnemonic=Open selected directory FileChooser.filesListAccessibleName=Files List FileChooser.filesDetailsAccessibleName=Files Details ColorChooser.preview.textAndMnemonic=Preview -ColorChooser.ok.textAndMnemonic=OK +ColorChooser.ok.textAndMnemonic=\u0110\u1ed3ng ý ColorChooser.cancel.textAndMnemonic=H\u1ee7y b\u1ecf ColorChooser.reset.textAndMnemonic=&Reset ColorChooser.sample.textAndMnemonic=Sample Text Sample Text @@ -62,7 +62,7 @@ ColorChooser.cmykBlack.textAndMnemonic=Black ColorChooser.cmykAlpha.textAndMnemonic=Alpha OptionPane.yesButton.textAndMnemonic=&Yes OptionPane.noButton.textAndMnemonic=&No -OptionPane.okButton.textAndMnemonic=OK +OptionPane.okButton.textAndMnemonic=\u0110\u1ed3ng ý OptionPane.cancelButton.textAndMnemonic=H\u1ee7y b\u1ecf OptionPane.title.textAndMnemonic=Select an Option OptionPane.inputDialog.titleAndMnemonic=Input diff --git a/weasis-launcher/src/main/resources/swing/basic_zh-Hans.properties b/weasis-launcher/src/main/resources/swing/basic_zh-Hans.properties deleted file mode 100755 index c21a0484e8..0000000000 --- a/weasis-launcher/src/main/resources/swing/basic_zh-Hans.properties +++ /dev/null @@ -1,105 +0,0 @@ -FileChooser.fileDescription.textAndMnemonic=Generic File -FileChooser.directoryDescription.textAndMnemonic=Directory -FileChooser.newFolderError.textAndMnemonic=Error creating new folder -FileChooser.newFolderErrorSeparator= : -FileChooser.newFolderParentDoesntExistTitle.textAndMnemonic=Unable to create folder -FileChooser.newFolderParentDoesntExist.textAndMnemonic=Unable to create the folder.\n\nThe system cannot find the path specified. -FileChooser.renameErrorTitle.textAndMnemonic=Error Renaming File or Folder -FileChooser.renameError.textAndMnemonic=Cannot rename {0} -FileChooser.renameErrorFileExists.textAndMnemonic=Cannot rename {0}: A file with the name you specified already exists. Specify a different file name. -FileChooser.acceptAllFileFilter.textAndMnemonic=All Files -FileChooser.cancelButton.textAndMnemonic=Cancel -FileChooser.saveButton.textAndMnemonic=Save -FileChooser.openButton.textAndMnemonic=Open -FileChooser.saveDialogTitle.textAndMnemonic=Save -FileChooser.openDialogTitle.textAndMnemonic=Open -FileChooser.updateButton.textAndMnemonic=&Update -FileChooser.helpButton.textAndMnemonic=&Help -FileChooser.directoryOpenButton.textAndMnemonic=Open -FileChooser.fileSizeKiloBytes={0} KB -FileChooser.fileSizeMegaBytes={0} MB -FileChooser.fileSizeGigaBytes={0} GB -FileChooser.win32.newFolder=New Folder -FileChooser.win32.newFolder.subsequent=New Folder ({0}) -FileChooser.other.newFolder=NewFolder -FileChooser.other.newFolder.subsequent=NewFolder.{0} -FileChooser.cancelButtonToolTip.textAndMnemonic=Abort file chooser dialog -FileChooser.saveButtonToolTip.textAndMnemonic=Save selected file -FileChooser.openButtonToolTip.textAndMnemonic=Open selected file -FileChooser.updateButtonToolTip.textAndMnemonic=Update directory listing -FileChooser.helpButtonToolTip.textAndMnemonic=FileChooser help -FileChooser.directoryOpenButtonToolTip.textAndMnemonic=Open selected directory -FileChooser.filesListAccessibleName=Files List -FileChooser.filesDetailsAccessibleName=Files Details -ColorChooser.preview.textAndMnemonic=Preview -ColorChooser.ok.textAndMnemonic=OK -ColorChooser.cancel.textAndMnemonic=Cancel -ColorChooser.reset.textAndMnemonic=&Reset -ColorChooser.sample.textAndMnemonic=Sample Text Sample Text -ColorChooser.swatches.textAndMnemonic=&Swatches -ColorChooser.swatchesRecent.textAndMnemonic=Recent: -ColorChooser.hsv.textAndMnemonic=&HSV -ColorChooser.hsvHue.textAndMnemonic=Hue -ColorChooser.hsvSaturation.textAndMnemonic=Saturation -ColorChooser.hsvValue.textAndMnemonic=Value -ColorChooser.hsvTransparency.textAndMnemonic=Transparency -ColorChooser.hsl.textAndMnemonic=HS&L -ColorChooser.hslHue.textAndMnemonic=Hue -ColorChooser.hslSaturation.textAndMnemonic=Saturation -ColorChooser.hslLightness.textAndMnemonic=Lightness -ColorChooser.hslTransparency.textAndMnemonic=Transparency -ColorChooser.rgb.textAndMnemonic=R&GB -ColorChooser.rgbRed.textAndMnemonic=Re&d -ColorChooser.rgbGreen.textAndMnemonic=Gree&n -ColorChooser.rgbBlue.textAndMnemonic=&Blue -ColorChooser.rgbAlpha.textAndMnemonic=Alpha -ColorChooser.rgbHexCode.textAndMnemonic=&Color Code -ColorChooser.cmyk.textAndMnemonic=C&MYK -ColorChooser.cmykCyan.textAndMnemonic=Cyan -ColorChooser.cmykMagenta.textAndMnemonic=Magenta -ColorChooser.cmykYellow.textAndMnemonic=Yellow -ColorChooser.cmykBlack.textAndMnemonic=Black -ColorChooser.cmykAlpha.textAndMnemonic=Alpha -OptionPane.yesButton.textAndMnemonic=&Yes -OptionPane.noButton.textAndMnemonic=&No -OptionPane.okButton.textAndMnemonic=OK -OptionPane.cancelButton.textAndMnemonic=Cancel -OptionPane.title.textAndMnemonic=Select an Option -OptionPane.inputDialog.titleAndMnemonic=Input -OptionPane.messageDialog.titleAndMnemonic=Message -PrintingDialog.titleProgress.textAndMnemonic=Printing -PrintingDialog.titleAborting.textAndMnemonic=Printing (Aborting) -PrintingDialog.contentInitial.textAndMnemonic=Printing in progress... -PrintingDialog.contentProgress.textAndMnemonic=Printed page {0}... -PrintingDialog.contentAborting.textAndMnemonic=Printing aborting... -PrintingDialog.abortButton.textAndMnemonic=&Abort -PrintingDialog.abortButtonToolTip.textAndMnemonic=Abort Printing -InternalFrame.iconButtonToolTip=Minimize -InternalFrame.maxButtonToolTip=Maximize -InternalFrame.restoreButtonToolTip=Restore -InternalFrame.closeButtonToolTip=Close -InternalFrameTitlePane.restoreButton.textAndMnemonic=&Restore -InternalFrameTitlePane.moveButton.textAndMnemonic=&Move -InternalFrameTitlePane.sizeButton.textAndMnemonic=&Size -InternalFrameTitlePane.minimizeButton.textAndMnemonic=Mi&nimize -InternalFrameTitlePane.maximizeButton.textAndMnemonic=Ma&ximize -InternalFrameTitlePane.closeButton.textAndMnemonic=&Close -FormView.submitButton.textAndMnemonic=Submit Query -FormView.resetButton.textAndMnemonic=Reset -FormView.browseFileButton.textAndMnemonic=Browse... -AbstractDocument.styleChange.textAndMnemonic=style change -AbstractDocument.addition.textAndMnemonic=addition -AbstractDocument.deletion.textAndMnemonic=deletion -AbstractDocument.undo.textAndMnemonic=Undo -AbstractDocument.redo.textAndMnemonic=Redo -AbstractButton.click.textAndMnemonic=click -AbstractUndoableEdit.undo.textAndMnemonic=Undo -AbstractUndoableEdit.redo.textAndMnemonic=Redo -ComboBox.togglePopup.textAndMnemonic=togglePopup -ProgressMonitor.progress.textAndMnemonic=Progress... -SplitPane.leftButton.textAndMnemonic=left button -SplitPane.rightButton.textAndMnemonic=right button -IsindexView.prompt=This is a searchable index. Enter search keywords: -InternalFrameTitlePane.iconifyButtonAccessibleName=Iconify -InternalFrameTitlePane.maximizeButtonAccessibleName=Maximize -InternalFrameTitlePane.closeButtonAccessibleName=Close diff --git a/weasis-launcher/src/main/resources/swing/basic_ar.properties b/weasis-launcher/src/main/resources/swing/basic_zh_Hans.properties old mode 100755 new mode 100644 similarity index 88% rename from weasis-launcher/src/main/resources/swing/basic_ar.properties rename to weasis-launcher/src/main/resources/swing/basic_zh_Hans.properties index c21a0484e8..ea4245488a --- a/weasis-launcher/src/main/resources/swing/basic_ar.properties +++ b/weasis-launcher/src/main/resources/swing/basic_zh_Hans.properties @@ -8,14 +8,14 @@ FileChooser.renameErrorTitle.textAndMnemonic=Error Renaming File or Folder FileChooser.renameError.textAndMnemonic=Cannot rename {0} FileChooser.renameErrorFileExists.textAndMnemonic=Cannot rename {0}: A file with the name you specified already exists. Specify a different file name. FileChooser.acceptAllFileFilter.textAndMnemonic=All Files -FileChooser.cancelButton.textAndMnemonic=Cancel +FileChooser.cancelButton.textAndMnemonic=\u53d6\u6d88 FileChooser.saveButton.textAndMnemonic=Save -FileChooser.openButton.textAndMnemonic=Open +FileChooser.openButton.textAndMnemonic=\u958b\u555f FileChooser.saveDialogTitle.textAndMnemonic=Save -FileChooser.openDialogTitle.textAndMnemonic=Open +FileChooser.openDialogTitle.textAndMnemonic=\u958b\u555f FileChooser.updateButton.textAndMnemonic=&Update FileChooser.helpButton.textAndMnemonic=&Help -FileChooser.directoryOpenButton.textAndMnemonic=Open +FileChooser.directoryOpenButton.textAndMnemonic=\u958b\u555f FileChooser.fileSizeKiloBytes={0} KB FileChooser.fileSizeMegaBytes={0} MB FileChooser.fileSizeGigaBytes={0} GB @@ -32,19 +32,19 @@ FileChooser.directoryOpenButtonToolTip.textAndMnemonic=Open selected directory FileChooser.filesListAccessibleName=Files List FileChooser.filesDetailsAccessibleName=Files Details ColorChooser.preview.textAndMnemonic=Preview -ColorChooser.ok.textAndMnemonic=OK -ColorChooser.cancel.textAndMnemonic=Cancel +ColorChooser.ok.textAndMnemonic=\u78ba\u5b9a +ColorChooser.cancel.textAndMnemonic=\u53d6\u6d88 ColorChooser.reset.textAndMnemonic=&Reset ColorChooser.sample.textAndMnemonic=Sample Text Sample Text ColorChooser.swatches.textAndMnemonic=&Swatches ColorChooser.swatchesRecent.textAndMnemonic=Recent: ColorChooser.hsv.textAndMnemonic=&HSV -ColorChooser.hsvHue.textAndMnemonic=Hue +ColorChooser.hsvHue.textAndMnemonic=\u8272\u8c03 ColorChooser.hsvSaturation.textAndMnemonic=Saturation ColorChooser.hsvValue.textAndMnemonic=Value ColorChooser.hsvTransparency.textAndMnemonic=Transparency ColorChooser.hsl.textAndMnemonic=HS&L -ColorChooser.hslHue.textAndMnemonic=Hue +ColorChooser.hslHue.textAndMnemonic=\u8272\u8c03 ColorChooser.hslSaturation.textAndMnemonic=Saturation ColorChooser.hslLightness.textAndMnemonic=Lightness ColorChooser.hslTransparency.textAndMnemonic=Transparency @@ -62,8 +62,8 @@ ColorChooser.cmykBlack.textAndMnemonic=Black ColorChooser.cmykAlpha.textAndMnemonic=Alpha OptionPane.yesButton.textAndMnemonic=&Yes OptionPane.noButton.textAndMnemonic=&No -OptionPane.okButton.textAndMnemonic=OK -OptionPane.cancelButton.textAndMnemonic=Cancel +OptionPane.okButton.textAndMnemonic=\u78ba\u5b9a +OptionPane.cancelButton.textAndMnemonic=\u53d6\u6d88 OptionPane.title.textAndMnemonic=Select an Option OptionPane.inputDialog.titleAndMnemonic=Input OptionPane.messageDialog.titleAndMnemonic=Message @@ -77,7 +77,7 @@ PrintingDialog.abortButtonToolTip.textAndMnemonic=Abort Printing InternalFrame.iconButtonToolTip=Minimize InternalFrame.maxButtonToolTip=Maximize InternalFrame.restoreButtonToolTip=Restore -InternalFrame.closeButtonToolTip=Close +InternalFrame.closeButtonToolTip=\u5173\u95ed InternalFrameTitlePane.restoreButton.textAndMnemonic=&Restore InternalFrameTitlePane.moveButton.textAndMnemonic=&Move InternalFrameTitlePane.sizeButton.textAndMnemonic=&Size @@ -85,7 +85,7 @@ InternalFrameTitlePane.minimizeButton.textAndMnemonic=Mi&nimize InternalFrameTitlePane.maximizeButton.textAndMnemonic=Ma&ximize InternalFrameTitlePane.closeButton.textAndMnemonic=&Close FormView.submitButton.textAndMnemonic=Submit Query -FormView.resetButton.textAndMnemonic=Reset +FormView.resetButton.textAndMnemonic=\u91cd\u7f6e FormView.browseFileButton.textAndMnemonic=Browse... AbstractDocument.styleChange.textAndMnemonic=style change AbstractDocument.addition.textAndMnemonic=addition @@ -102,4 +102,4 @@ SplitPane.rightButton.textAndMnemonic=right button IsindexView.prompt=This is a searchable index. Enter search keywords: InternalFrameTitlePane.iconifyButtonAccessibleName=Iconify InternalFrameTitlePane.maximizeButtonAccessibleName=Maximize -InternalFrameTitlePane.closeButtonAccessibleName=Close +InternalFrameTitlePane.closeButtonAccessibleName=\u5173\u95ed diff --git a/weasis-launcher/src/main/resources/swing/synth_hr_HR.properties b/weasis-launcher/src/main/resources/swing/synth_hr_HR.properties index 67fb2725ee..11e1cbf09e 100755 --- a/weasis-launcher/src/main/resources/swing/synth_hr_HR.properties +++ b/weasis-launcher/src/main/resources/swing/synth_hr_HR.properties @@ -17,9 +17,9 @@ FileChooser.detailsViewButtonToolTip.textAndMnemonic=Details FileChooser.detailsViewButtonAccessibleName=Details FileChooser.detailsViewActionLabel.textAndMnemonic=Details FileChooser.refreshActionLabel.textAndMnemonic=Refresh -FileChooser.viewMenuLabel.textAndMnemonic=View -FileChooser.fileNameHeader.textAndMnemonic=Name -FileChooser.fileSizeHeader.textAndMnemonic=Size +FileChooser.viewMenuLabel.textAndMnemonic=Prikaz +FileChooser.fileNameHeader.textAndMnemonic=Ime +FileChooser.fileSizeHeader.textAndMnemonic=Veli\u010dina FileChooser.fileTypeHeader.textAndMnemonic=Type FileChooser.fileDateHeader.textAndMnemonic=Modified FileChooser.fileAttrHeader.textAndMnemonic=Attributes diff --git a/weasis-launcher/src/main/resources/swing/synth_ms_MY.properties b/weasis-launcher/src/main/resources/swing/synth_ms_MY.properties deleted file mode 100755 index 67fb2725ee..0000000000 --- a/weasis-launcher/src/main/resources/swing/synth_ms_MY.properties +++ /dev/null @@ -1,25 +0,0 @@ -FileChooser.lookInLabel.textAndMnemonic=Look &In: -FileChooser.saveInLabel.textAndMnemonic=Save In: -FileChooser.fileNameLabel.textAndMnemonic=File &Name: -FileChooser.folderNameLabel.textAndMnemonic=Folder &Name: -FileChooser.filesOfTypeLabel.textAndMnemonic=Files of &Type: -FileChooser.upFolderToolTip.textAndMnemonic=Up One Level -FileChooser.upFolderAccessibleName=Up -FileChooser.homeFolderToolTip.textAndMnemonic=Home -FileChooser.homeFolderAccessibleName=Home -FileChooser.newFolderToolTip.textAndMnemonic=Create New Folder -FileChooser.newFolderAccessibleName=New Folder -FileChooser.newFolderActionLabel.textAndMnemonic=New Folder -FileChooser.listViewButtonToolTip.textAndMnemonic=List -FileChooser.listViewButtonAccessibleName=List -FileChooser.listViewActionLabel.textAndMnemonic=List -FileChooser.detailsViewButtonToolTip.textAndMnemonic=Details -FileChooser.detailsViewButtonAccessibleName=Details -FileChooser.detailsViewActionLabel.textAndMnemonic=Details -FileChooser.refreshActionLabel.textAndMnemonic=Refresh -FileChooser.viewMenuLabel.textAndMnemonic=View -FileChooser.fileNameHeader.textAndMnemonic=Name -FileChooser.fileSizeHeader.textAndMnemonic=Size -FileChooser.fileTypeHeader.textAndMnemonic=Type -FileChooser.fileDateHeader.textAndMnemonic=Modified -FileChooser.fileAttrHeader.textAndMnemonic=Attributes diff --git a/weasis-launcher/src/main/resources/swing/synth_pt.properties b/weasis-launcher/src/main/resources/swing/synth_pt.properties index 67fb2725ee..13e3f78fac 100755 --- a/weasis-launcher/src/main/resources/swing/synth_pt.properties +++ b/weasis-launcher/src/main/resources/swing/synth_pt.properties @@ -16,10 +16,10 @@ FileChooser.listViewActionLabel.textAndMnemonic=List FileChooser.detailsViewButtonToolTip.textAndMnemonic=Details FileChooser.detailsViewButtonAccessibleName=Details FileChooser.detailsViewActionLabel.textAndMnemonic=Details -FileChooser.refreshActionLabel.textAndMnemonic=Refresh -FileChooser.viewMenuLabel.textAndMnemonic=View -FileChooser.fileNameHeader.textAndMnemonic=Name -FileChooser.fileSizeHeader.textAndMnemonic=Size -FileChooser.fileTypeHeader.textAndMnemonic=Type +FileChooser.refreshActionLabel.textAndMnemonic=Atualizar +FileChooser.viewMenuLabel.textAndMnemonic=Exibir +FileChooser.fileNameHeader.textAndMnemonic=Nome +FileChooser.fileSizeHeader.textAndMnemonic=Tamanho +FileChooser.fileTypeHeader.textAndMnemonic=Tipo FileChooser.fileDateHeader.textAndMnemonic=Modified FileChooser.fileAttrHeader.textAndMnemonic=Attributes diff --git a/weasis-launcher/src/main/resources/swing/synth_sk_SK.properties b/weasis-launcher/src/main/resources/swing/synth_sk_SK.properties deleted file mode 100755 index 67fb2725ee..0000000000 --- a/weasis-launcher/src/main/resources/swing/synth_sk_SK.properties +++ /dev/null @@ -1,25 +0,0 @@ -FileChooser.lookInLabel.textAndMnemonic=Look &In: -FileChooser.saveInLabel.textAndMnemonic=Save In: -FileChooser.fileNameLabel.textAndMnemonic=File &Name: -FileChooser.folderNameLabel.textAndMnemonic=Folder &Name: -FileChooser.filesOfTypeLabel.textAndMnemonic=Files of &Type: -FileChooser.upFolderToolTip.textAndMnemonic=Up One Level -FileChooser.upFolderAccessibleName=Up -FileChooser.homeFolderToolTip.textAndMnemonic=Home -FileChooser.homeFolderAccessibleName=Home -FileChooser.newFolderToolTip.textAndMnemonic=Create New Folder -FileChooser.newFolderAccessibleName=New Folder -FileChooser.newFolderActionLabel.textAndMnemonic=New Folder -FileChooser.listViewButtonToolTip.textAndMnemonic=List -FileChooser.listViewButtonAccessibleName=List -FileChooser.listViewActionLabel.textAndMnemonic=List -FileChooser.detailsViewButtonToolTip.textAndMnemonic=Details -FileChooser.detailsViewButtonAccessibleName=Details -FileChooser.detailsViewActionLabel.textAndMnemonic=Details -FileChooser.refreshActionLabel.textAndMnemonic=Refresh -FileChooser.viewMenuLabel.textAndMnemonic=View -FileChooser.fileNameHeader.textAndMnemonic=Name -FileChooser.fileSizeHeader.textAndMnemonic=Size -FileChooser.fileTypeHeader.textAndMnemonic=Type -FileChooser.fileDateHeader.textAndMnemonic=Modified -FileChooser.fileAttrHeader.textAndMnemonic=Attributes diff --git a/weasis-launcher/src/main/resources/swing/synth_ta_IN.properties b/weasis-launcher/src/main/resources/swing/synth_ta_IN.properties deleted file mode 100755 index 67fb2725ee..0000000000 --- a/weasis-launcher/src/main/resources/swing/synth_ta_IN.properties +++ /dev/null @@ -1,25 +0,0 @@ -FileChooser.lookInLabel.textAndMnemonic=Look &In: -FileChooser.saveInLabel.textAndMnemonic=Save In: -FileChooser.fileNameLabel.textAndMnemonic=File &Name: -FileChooser.folderNameLabel.textAndMnemonic=Folder &Name: -FileChooser.filesOfTypeLabel.textAndMnemonic=Files of &Type: -FileChooser.upFolderToolTip.textAndMnemonic=Up One Level -FileChooser.upFolderAccessibleName=Up -FileChooser.homeFolderToolTip.textAndMnemonic=Home -FileChooser.homeFolderAccessibleName=Home -FileChooser.newFolderToolTip.textAndMnemonic=Create New Folder -FileChooser.newFolderAccessibleName=New Folder -FileChooser.newFolderActionLabel.textAndMnemonic=New Folder -FileChooser.listViewButtonToolTip.textAndMnemonic=List -FileChooser.listViewButtonAccessibleName=List -FileChooser.listViewActionLabel.textAndMnemonic=List -FileChooser.detailsViewButtonToolTip.textAndMnemonic=Details -FileChooser.detailsViewButtonAccessibleName=Details -FileChooser.detailsViewActionLabel.textAndMnemonic=Details -FileChooser.refreshActionLabel.textAndMnemonic=Refresh -FileChooser.viewMenuLabel.textAndMnemonic=View -FileChooser.fileNameHeader.textAndMnemonic=Name -FileChooser.fileSizeHeader.textAndMnemonic=Size -FileChooser.fileTypeHeader.textAndMnemonic=Type -FileChooser.fileDateHeader.textAndMnemonic=Modified -FileChooser.fileAttrHeader.textAndMnemonic=Attributes diff --git a/weasis-launcher/src/main/resources/swing/synth_vi.properties b/weasis-launcher/src/main/resources/swing/synth_vi.properties index fd5636e4b5..bdae7d0fff 100755 --- a/weasis-launcher/src/main/resources/swing/synth_vi.properties +++ b/weasis-launcher/src/main/resources/swing/synth_vi.properties @@ -18,8 +18,8 @@ FileChooser.detailsViewButtonAccessibleName=Details FileChooser.detailsViewActionLabel.textAndMnemonic=Details FileChooser.refreshActionLabel.textAndMnemonic=Làm m\u1edbi FileChooser.viewMenuLabel.textAndMnemonic=Xem -FileChooser.fileNameHeader.textAndMnemonic=Name +FileChooser.fileNameHeader.textAndMnemonic=Tên FileChooser.fileSizeHeader.textAndMnemonic=Kích c\u1ee1 -FileChooser.fileTypeHeader.textAndMnemonic=Type +FileChooser.fileTypeHeader.textAndMnemonic=Ki\u1ec3u FileChooser.fileDateHeader.textAndMnemonic=Modified FileChooser.fileAttrHeader.textAndMnemonic=Attributes diff --git a/weasis-launcher/src/main/resources/swing/synth_vi_VN.properties b/weasis-launcher/src/main/resources/swing/synth_vi_VN.properties index 953ac4622d..b6fed23602 100755 --- a/weasis-launcher/src/main/resources/swing/synth_vi_VN.properties +++ b/weasis-launcher/src/main/resources/swing/synth_vi_VN.properties @@ -18,8 +18,8 @@ FileChooser.detailsViewButtonAccessibleName=Details FileChooser.detailsViewActionLabel.textAndMnemonic=Details FileChooser.refreshActionLabel.textAndMnemonic=Làm m\u1edbi FileChooser.viewMenuLabel.textAndMnemonic=Xem -FileChooser.fileNameHeader.textAndMnemonic=Name -FileChooser.fileSizeHeader.textAndMnemonic=Size +FileChooser.fileNameHeader.textAndMnemonic=Tên +FileChooser.fileSizeHeader.textAndMnemonic=Kích th\u01b0\u1edbc FileChooser.fileTypeHeader.textAndMnemonic=K\u1ec3u FileChooser.fileDateHeader.textAndMnemonic=Modified FileChooser.fileAttrHeader.textAndMnemonic=Attributes diff --git a/weasis-launcher/src/main/resources/swing/synth_zh-Hans.properties b/weasis-launcher/src/main/resources/swing/synth_zh-Hans.properties deleted file mode 100755 index 67fb2725ee..0000000000 --- a/weasis-launcher/src/main/resources/swing/synth_zh-Hans.properties +++ /dev/null @@ -1,25 +0,0 @@ -FileChooser.lookInLabel.textAndMnemonic=Look &In: -FileChooser.saveInLabel.textAndMnemonic=Save In: -FileChooser.fileNameLabel.textAndMnemonic=File &Name: -FileChooser.folderNameLabel.textAndMnemonic=Folder &Name: -FileChooser.filesOfTypeLabel.textAndMnemonic=Files of &Type: -FileChooser.upFolderToolTip.textAndMnemonic=Up One Level -FileChooser.upFolderAccessibleName=Up -FileChooser.homeFolderToolTip.textAndMnemonic=Home -FileChooser.homeFolderAccessibleName=Home -FileChooser.newFolderToolTip.textAndMnemonic=Create New Folder -FileChooser.newFolderAccessibleName=New Folder -FileChooser.newFolderActionLabel.textAndMnemonic=New Folder -FileChooser.listViewButtonToolTip.textAndMnemonic=List -FileChooser.listViewButtonAccessibleName=List -FileChooser.listViewActionLabel.textAndMnemonic=List -FileChooser.detailsViewButtonToolTip.textAndMnemonic=Details -FileChooser.detailsViewButtonAccessibleName=Details -FileChooser.detailsViewActionLabel.textAndMnemonic=Details -FileChooser.refreshActionLabel.textAndMnemonic=Refresh -FileChooser.viewMenuLabel.textAndMnemonic=View -FileChooser.fileNameHeader.textAndMnemonic=Name -FileChooser.fileSizeHeader.textAndMnemonic=Size -FileChooser.fileTypeHeader.textAndMnemonic=Type -FileChooser.fileDateHeader.textAndMnemonic=Modified -FileChooser.fileAttrHeader.textAndMnemonic=Attributes diff --git a/weasis-launcher/src/main/resources/swing/synth_ar.properties b/weasis-launcher/src/main/resources/swing/synth_zh_Hans.properties old mode 100755 new mode 100644 similarity index 91% rename from weasis-launcher/src/main/resources/swing/synth_ar.properties rename to weasis-launcher/src/main/resources/swing/synth_zh_Hans.properties index 67fb2725ee..9e6d3a3b50 --- a/weasis-launcher/src/main/resources/swing/synth_ar.properties +++ b/weasis-launcher/src/main/resources/swing/synth_zh_Hans.properties @@ -19,7 +19,7 @@ FileChooser.detailsViewActionLabel.textAndMnemonic=Details FileChooser.refreshActionLabel.textAndMnemonic=Refresh FileChooser.viewMenuLabel.textAndMnemonic=View FileChooser.fileNameHeader.textAndMnemonic=Name -FileChooser.fileSizeHeader.textAndMnemonic=Size -FileChooser.fileTypeHeader.textAndMnemonic=Type +FileChooser.fileSizeHeader.textAndMnemonic=\u5927\u5c0f +FileChooser.fileTypeHeader.textAndMnemonic=\u7c7b\u578b FileChooser.fileDateHeader.textAndMnemonic=Modified FileChooser.fileAttrHeader.textAndMnemonic=Attributes