]> source.dussan.org Git - sonarqube.git/commitdiff
serve l10n messages from dev server
authorStas Vilchik <stas.vilchik@sonarsource.com>
Wed, 11 Oct 2017 09:03:40 +0000 (11:03 +0200)
committerStas Vilchik <stas.vilchik@sonarsource.com>
Thu, 12 Oct 2017 08:23:25 +0000 (10:23 +0200)
server/sonar-web/scripts/start.js
server/sonar-web/scripts/utils/getMessages.js [new file with mode: 0644]

index 3049119cf79db69e772d8065be60d4e7cdd1c66c..c34df1119870a9f58141d9e4c451401cdce27cf1 100644 (file)
@@ -28,6 +28,7 @@ const formatWebpackMessages = require('react-dev-utils/formatWebpackMessages');
 const errorOverlayMiddleware = require('react-error-overlay/middleware');
 const getConfig = require('../config/webpack.config');
 const paths = require('../config/paths');
+const getMessages = require('./utils/getMessages');
 
 const config = getConfig({ production: false });
 
@@ -104,6 +105,9 @@ function runDevServer(compiler, host, port, protocol) {
     },
     setup(app) {
       app.use(errorOverlayMiddleware());
+      app.get('/api/l10n/index', (req, res) => {
+        getMessages().then(messages => res.json({ effectiveLocale: 'en', messages }));
+      });
     }
   });
 
diff --git a/server/sonar-web/scripts/utils/getMessages.js b/server/sonar-web/scripts/utils/getMessages.js
new file mode 100644 (file)
index 0000000..aa36cad
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2016 SonarSource SA
+ * mailto:contact AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+const fs = require('fs');
+const path = require('path');
+const { promisify } = require('util');
+
+const readFileAsync = promisify(fs.readFile);
+
+const filename = path.resolve(
+  __dirname,
+  '../../../../sonar-core/src/main/resources/org/sonar/l10n/core.properties'
+);
+
+function getMessages() {
+  return readFileAsync(filename, 'utf-8').then(content => {
+    const messages = {};
+    const lines = content.split('\n');
+    lines.forEach(line => {
+      const parts = line.split('=');
+      if (parts.length === 2) {
+        messages[parts[0]] = parts[1];
+      }
+    });
+    return messages;
+  });
+}
+
+module.exports = getMessages;