From 4042a47d61042b7d9ab37675b17f3e715ae15205 Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Sat, 20 Jul 2019 17:34:48 +0200
Subject: [PATCH] improved localization of default charts

---
 src/main/resources/charts/AccountSumPerDay.js  | 5 +++--
 src/main/resources/languages/_de.properties    | 4 ++--
 src/main/resources/languages/_en.properties    | 4 ++--
 src/main/resources/templates/charts/charts.ftl | 7 ++++---
 4 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/src/main/resources/charts/AccountSumPerDay.js b/src/main/resources/charts/AccountSumPerDay.js
index 13359ee9a..c23aaead6 100644
--- a/src/main/resources/charts/AccountSumPerDay.js
+++ b/src/main/resources/charts/AccountSumPerDay.js
@@ -6,6 +6,8 @@
  */
 var transactionData = [];
 
+// Note: All variables starting with "localized" are only available inside default charts.
+
 // group transactions by date
 var groups = transactionData.reverse().reduce((groups, transaction) => {
     var date = transaction.date;
@@ -52,13 +54,12 @@ var plotlyData = [
 ];
 
 // Add your Plotly layout settings here (optional)
-// Note: All variables starting with "localized" are only available inside default charts.
 var plotlyLayout = {
     title: {
         text: localizedTitle,
     },
     yaxis: {
-        title: localizedAxisY + localizedCurrency,
+        title: localizedData['axisY'] + localizedCurrency,
         rangemode: 'tozero',
         tickformat: '.2f',
         showline: true
diff --git a/src/main/resources/languages/_de.properties b/src/main/resources/languages/_de.properties
index 284d54110..4e0d0b0dc 100644
--- a/src/main/resources/languages/_de.properties
+++ b/src/main/resources/languages/_de.properties
@@ -325,8 +325,8 @@ hotkeys.search=Suchen
 hotkeys.search.key=s
 
 # charts
-charts.default.accountsum=Kontostand pro Tag
-charts.default.accountsum.axis.x=Summe in 
+charts.default.accountSumPerDay=Kontostand pro Tag
+charts.default.accountSumPerDay.localization='{"axisY": "Summe in "'}
 charts.default.categories=Eingaben/Ausgaben nach Kategorien
 charts.default.month=Eingaben/Ausgaben pro Monat
 charts.default.categoryBudget=Verbrauch nach Kategorien
diff --git a/src/main/resources/languages/_en.properties b/src/main/resources/languages/_en.properties
index 6f0345a62..a6a9d46d9 100644
--- a/src/main/resources/languages/_en.properties
+++ b/src/main/resources/languages/_en.properties
@@ -325,8 +325,8 @@ hotkeys.search=Search
 hotkeys.search.key=s
 
 # charts
-charts.default.accountsum=Account sum per day
-charts.default.accountsum.axis.x=Sum in 
+charts.default.accountSumPerDay=Account sum per day
+charts.default.accountSumPerDay.localization='{"axisY": "Sum in "'}
 charts.default.categories=Incomes/Expenditures per category
 charts.default.month=Income/Expenditures per month
 charts.default.categoryBudget=Consumption by categories
diff --git a/src/main/resources/templates/charts/charts.ftl b/src/main/resources/templates/charts/charts.ftl
index 4ed5e9e03..94667bbd8 100644
--- a/src/main/resources/templates/charts/charts.ftl
+++ b/src/main/resources/templates/charts/charts.ftl
@@ -164,9 +164,10 @@
         <#if chart??>
             <script>
                 <#if chart.getType().name() == "DEFAULT">
-                    localizedTitle = "${locale.getString(chart.getName())}";
-                    localizedAxisY = "${locale.getString(chart.getName() + ".axis.x")}";
-                    localizedCurrency = "${settings.getCurrency()}";
+                    localizedLocale = '${locale.getString("locale")}';
+                    localizedTitle = '${locale.getString(chart.getName())}';
+                    localizedCurrency = '${settings.getCurrency()}';
+                    localizedData = JSON.parse('${locale.getString(chart.getName() + ".localization")}');
                 </#if>
 
                 ${chart.getScript()?replace("var transactionData = []", "var transactionData = ${transactionData};")}
-- 
GitLab