-var serveFallbackLocale = function (request, response) {
- //en-gb is our default language, so we serve this as the last possible answer for everything
- this.file_server.serveFile('/assets/locales/en-gb.json', 200, {Vary: 'Accept-Language', 'Content-Language': 'en-gb'}, request, response);
+
+/**
+ * Send a locale to the browser
+ */
+var serveLocale = function (request, response, locale_id) {
+ this.file_server.serveFile('/assets/locales/' + locale_id + '.json', 200, {
+ Vary: 'Accept-Language',
+ 'Content-Language': locale_id
+ }, request, response);
+};
+
+
+/**
+ * Handle the settings.json request
+ */
+var serveSettings = function(request, response) {
+ var referrer_url,
+ debug = false,
+ settings;
+
+ // Check the referrer for a debug option
+ if (request.headers['referer']) {
+ referrer_url = url.parse(request.headers['referer'], true);
+ if (referrer_url.query && referrer_url.query.debug) {
+ debug = true;
+ }
+ }
+
+ SettingsGenerator.get(debug, function(settings) {
+ if (request.headers['if-none-match'] && request.headers['if-none-match'] === settings.hash) {
+ response.writeHead(304, 'Not Modified');
+ return response.end();
+ }
+
+ response.writeHead(200, {
+ 'ETag': settings.hash,
+ 'Content-Type': 'application/json'
+ });
+ response.end(settings.settings);
+ });