diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/messages/Messages.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/messages/Messages.java index 8fcc95a46..95576124d 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/messages/Messages.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/messages/Messages.java @@ -76,6 +76,7 @@ public class Messages { }; static{ + formatters = new HashMap<>(); setup(SPDSettings.language()); } @@ -90,6 +91,7 @@ public class Messages { } else { locale = new Locale(lang.code()); } + formatters.clear(); //strictly match the language code when fetching bundles however bundles = new ArrayList<>(); @@ -157,18 +159,18 @@ public class Messages { public static String format( String format, Object...args ) { try { - return String.format(Locale.ENGLISH, format, args); + return String.format(locale(), format, args); } catch (IllegalFormatException e) { ShatteredPixelDungeon.reportException( new Exception("formatting error for the string: " + format, e) ); return format; } } - private static HashMap formatters = new HashMap<>(); + private static HashMap formatters; public static String decimalFormat( String format, double number ){ if (!formatters.containsKey(format)){ - formatters.put(format, new DecimalFormat(format, DecimalFormatSymbols.getInstance(Locale.ENGLISH))); + formatters.put(format, new DecimalFormat(format, DecimalFormatSymbols.getInstance(locale()))); } return formatters.get(format).format(number); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndDailies.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndDailies.java index e2b6498dc..93dceabca 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndDailies.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndDailies.java @@ -95,7 +95,7 @@ public class WndDailies extends Window { top = (int) score.bottom() + 6; - NumberFormat num = NumberFormat.getInstance(Locale.US); + NumberFormat num = NumberFormat.getInstance(Messages.locale()); DateFormat format = new SimpleDateFormat("yyyy-MM-dd", Locale.ROOT); format.setTimeZone(TimeZone.getTimeZone("UTC")); Date date = new Date(); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndRanking.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndRanking.java index abb43ab82..5dc50aedd 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndRanking.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndRanking.java @@ -190,7 +190,7 @@ public class WndRanking extends WndTabbed { pos = date.bottom()+5; - NumberFormat num = NumberFormat.getInstance(Locale.US); + NumberFormat num = NumberFormat.getInstance(Messages.locale()); if (Dungeon.hero == null){ pos = statSlot( this, Messages.get(this, "score"), num.format( record.score ), pos ); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndScoreBreakdown.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndScoreBreakdown.java index 84a3d3899..fd8cb3deb 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndScoreBreakdown.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndScoreBreakdown.java @@ -32,7 +32,6 @@ import com.shatteredpixel.shatteredpixeldungeon.ui.Window; import com.watabou.noosa.Group; import java.text.NumberFormat; -import java.util.Locale; public class WndScoreBreakdown extends Window { @@ -48,7 +47,7 @@ public class WndScoreBreakdown extends Window { float pos = title.bottom()+2; - NumberFormat num = NumberFormat.getInstance(Locale.US); + NumberFormat num = NumberFormat.getInstance(Messages.locale()); if (Dungeon.initialVersion > ShatteredPixelDungeon.v1_2_3) { pos = statSlot(this, Messages.get(this, "progress_title"), num.format(Statistics.progressScore), pos, Statistics.progressScore >= 50_000);