summaryrefslogtreecommitdiff
path: root/src/main/java/sevenUnitsGUI/Presenter.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/sevenUnitsGUI/Presenter.java')
-rw-r--r--src/main/java/sevenUnitsGUI/Presenter.java43
1 files changed, 32 insertions, 11 deletions
diff --git a/src/main/java/sevenUnitsGUI/Presenter.java b/src/main/java/sevenUnitsGUI/Presenter.java
index ba600e3..3a039a7 100644
--- a/src/main/java/sevenUnitsGUI/Presenter.java
+++ b/src/main/java/sevenUnitsGUI/Presenter.java
@@ -780,7 +780,27 @@ public final class Presenter {
* @since 2022-02-19
*/
public String getAboutText() {
- return Presenter.getLinesFromResource("/about.txt").stream()
+ final Path customFilepath = Presenter.pathFromConfig(
+ "about/" + this.userLocale + ".txt");
+ if (Files.exists(customFilepath)) {
+ try {
+ return formatAboutText(Files.lines(customFilepath));
+ } catch (IOException e) {
+ final String filename = String.format("/about/%s.txt", this.userLocale);
+ return formatAboutText(Presenter.getLinesFromResource(filename).stream());
+ }
+ } else if (LOCAL_LOCALES.contains(this.userLocale)) {
+ final String filename = String.format("/about/%s.txt", this.userLocale);
+ return formatAboutText(Presenter.getLinesFromResource(filename).stream());
+ } else {
+ final String filename = String.format("/about/%s.txt", DEFAULT_LOCALE);
+ return formatAboutText(Presenter.getLinesFromResource(filename).stream());
+ }
+
+ }
+
+ private String formatAboutText(Stream<String> rawLines) {
+ return rawLines
.map(Presenter::withoutComments).collect(Collectors.joining("\n"))
.replaceAll("\\[VERSION\\]", ProgramInfo.VERSION.toString())
.replaceAll("\\[LOADSTATS\\]", wrapString(this.loadStatMsg(), 72));
@@ -1057,16 +1077,17 @@ public final class Presenter {
* @since 2024-08-22
*/
private String loadStatMsg() {
- return String.format(
- "Successfully loaded %d unique units with %d names (%d base units), %d unique prefixes with %d names, %d unit sets, and %d named dimensions.",
- this.database.unitMapPrefixless(false).size(),
- this.database.unitMapPrefixless(true).size(),
- this.database.unitMapPrefixless(false).values().stream()
- .filter(IS_FULL_BASE).count(),
- this.database.prefixMap(false).size(),
- this.database.prefixMap(true).size(),
- this.database.unitSetMap().size(),
- this.database.dimensionMap().size());
+ return this.getLocalizedText("load_stat_msg")
+ .replace("[u]", Integer.toString(
+ this.database.unitMapPrefixless(false).size()))
+ .replace("[un]", Integer.toString(
+ this.database.unitMapPrefixless(true).size()))
+ .replace("[b]", Long.toString(this.database.unitMapPrefixless(false)
+ .values().stream().filter(IS_FULL_BASE).count()))
+ .replace("[p]", Integer.toString(this.database.prefixMap(false).size()))
+ .replace("[pn]", Integer.toString(this.database.prefixMap(true).size()))
+ .replace("[s]", Integer.toString(this.database.unitSetMap().size()))
+ .replace("[d]", Integer.toString(this.database.dimensionMap().size()));
}
/**