From e20975f48b5ff26973b600504dfd07e5dbca5cf2 Mon Sep 17 00:00:00 2001 From: Ash Monty Date: Tue, 20 Sep 2022 16:06:40 +0200 Subject: [PATCH 1/4] fix: show docs in footer --- views/partials/footer.handlebars | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/partials/footer.handlebars b/views/partials/footer.handlebars index c9f3beb..689f3ab 100644 --- a/views/partials/footer.handlebars +++ b/views/partials/footer.handlebars @@ -35,7 +35,7 @@

{{ localeHelper locale "footer.usefulLinks" }}

- {{ localeHelper locale "nav.docs" }} + {{ localeHelper locale "nav.docs" }} {{ localeHelper locale "nav.faq" }} {{ localeHelper locale "nav.progress" }} {{ localeHelper locale "nav.blog" }} From 1ce3175b0a99d12070247e1b427a2f4d307d795a Mon Sep 17 00:00:00 2001 From: Ash Monty Date: Tue, 20 Sep 2022 16:53:30 +0200 Subject: [PATCH 2/4] feat: reimplement locale fallback, remove localeHelper Co-Authored-By: Jonathan Barrow --- src/server.js | 51 ------------------- src/util.js | 12 +++-- views/account/account.handlebars | 66 ++++++++++++------------- views/account/login.handlebars | 14 +++--- views/account/register.handlebars | 18 +++---- views/account/upgrade.handlebars | 30 +++++------ views/blog/blog.handlebars | 8 +-- views/blog/blogpost.handlebars | 4 +- views/docs/docs.handlebars | 2 +- views/docs/welcome.handlebars | 12 ++--- views/home.handlebars | 50 +++++++++---------- views/localization.handlebars | 12 ++--- views/partials/footer.handlebars | 27 +++++----- views/partials/header.handlebars | 16 +++--- views/partials/progress-list.handlebars | 2 +- views/progress.handlebars | 6 +-- 16 files changed, 142 insertions(+), 188 deletions(-) diff --git a/src/server.js b/src/server.js index 940ed15..c26f332 100644 --- a/src/server.js +++ b/src/server.js @@ -12,7 +12,6 @@ const database = require('./database'); const util = require('./util'); const logger = require('./logger'); const config = require('../config.json'); -const defaultLocale = require('../locales/en_US.json'); const { http: { port } } = config; const app = express(); @@ -137,56 +136,6 @@ app.engine('handlebars', handlebars({ neq(value1, value2) { return value1 !== value2; }, - times(n, block) { - let accum = ''; - for(let i = 0; i < n; i++) { - accum += block.fn(i); - } - return accum; - }, - localeHelper(locale, propString, propVar, extra) { - /* - locale: the json locale object - propString: the "path" to the property to get (e.g. "faq.title") - propVar: the dynamic property name to get after the "path" (e.g. localeHelper locale "account.level" would result in ) - e.g. localeHelper locale "account.test" "account.level" would result in locale.account.test[account.level] - */ - - let value = locale; - const props = propString.split('.'); - - if ( typeof propVar === 'string' || propVar instanceof String || - typeof propVar === 'number' || propVar instanceof Number ) { - props.push(propVar); - } - - function getPropFromLocale(value, props) { - for (const p of props) { - value = value[p]; - } - - return value; - } - - // fall back to english if the prop doesn't exist in the current locale - try { - value = getPropFromLocale(value, props); - } catch (e) { - value = defaultLocale; - try { - value = getPropFromLocale(value, props); - } catch (e) { - logger.error(`Could not find locale property ${props.join('.')}`); - } - } - - // TODO: Make this more dynamic - if (extra) { - value = value[extra]; - } - - return value; - }, slug(string) { return string.toLowerCase().replaceAll(/ /g, '-'); } diff --git a/src/util.js b/src/util.js index 6598b31..87149b4 100644 --- a/src/util.js +++ b/src/util.js @@ -6,11 +6,14 @@ const Stripe = require('stripe'); const { marked } = require('marked'); const { REST: DiscordRest } = require('@discordjs/rest'); const { Routes: DiscordRoutes } = require('discord-api-types/v10'); +const merge = require('lodash.merge'); + const mailer = require('./mailer'); const database = require('./database'); const logger = require('./logger'); -const config = require('../config.json'); +const config = require('../config.json'); +const baseLocale = require(`${__dirname}/../locales/en_US.json`); const discordRest = new DiscordRest({ version: '10' }).setToken(config.discord.bot_token); const stripe = new Stripe(config.stripe.secret_key); @@ -23,12 +26,15 @@ function getLocale(language, region) { const path = `${__dirname}/../locales/${language}_${region}.json`; if (fs.pathExistsSync(path)) { - return require(path); + const selectedLocale = require(path); + const finalLocale = merge(baseLocale, selectedLocale); + + return finalLocale; } logger.warn(`Could not find locale ${language}_${region}! Loading en_US`); - return require(`${__dirname}/../locales/en_US.json`); + return baseLocale; } function getRawDocs(locale, subpath, pageName) { diff --git a/views/account/account.handlebars b/views/account/account.handlebars index 2ffe7f6..a0449c6 100644 --- a/views/account/account.handlebars +++ b/views/account/account.handlebars @@ -16,21 +16,21 @@

{{tierName}}

{{else}} {{#if (neq account.access_level -1)}} -

{{ localeHelper locale "account.accountLevel" account.access_level }}

+

{{ lookup locale.account.accountLevel account.access_level }}

{{else}} -

{{ localeHelper locale "account.banned" }}

+

{{ locale.account.banned }}

{{/if}} {{/if}}
-

{{ localeHelper locale "account.settings.downloadFiles" }}

-

{{ localeHelper locale "account.settings.downloadFilesDescription" }}

+

{{ locale.account.settings.downloadFiles }}

+

{{ locale.account.settings.downloadFilesDescription }}

-

{{ localeHelper locale "account.settings.upgrade" }}

+

{{ locale.account.settings.upgrade }}

@@ -38,7 +38,7 @@

User settings

-

{{ localeHelper locale "account.settings.settingCards.profile" }}

+

{{ locale.account.settings.settingCards.profile }}

@@ -46,30 +46,30 @@
  • -

    {{ localeHelper locale "account.settings.settingCards.nickname" }}

    +

    {{ locale.account.settings.settingCards.nickname }}

    {{account.mii.name}}

  • -

    {{ localeHelper locale "account.settings.settingCards.birthDate" }}

    +

    {{ locale.account.settings.settingCards.birthDate }}

    {{account.birthdate}}

  • -

    {{ localeHelper locale "account.settings.settingCards.gender" }}

    +

    {{ locale.account.settings.settingCards.gender }}

    {{account.gender}}

  • -

    {{ localeHelper locale "account.settings.settingCards.country" }}

    +

    {{ locale.account.settings.settingCards.country }}

    {{account.country}}

  • -

    {{ localeHelper locale "account.settings.settingCards.timezone" }}

    +

    {{ locale.account.settings.settingCards.timezone }}

    {{account.timezone.name}}

-

{{ localeHelper locale "account.settings.settingCards.serverEnv" }}

+

{{ locale.account.settings.settingCards.serverEnv }}

@@ -82,7 +82,7 @@ -

{{ localeHelper locale "account.settings.settingCards.production" }}

+

{{ locale.account.settings.settingCards.production }}

{{#if isTester}} @@ -90,19 +90,19 @@ -

{{ localeHelper locale "account.settings.settingCards.beta" }}

+

{{ locale.account.settings.settingCards.beta }}

{{/if}}
{{#unless isTester}} -

{{{ localeHelper locale "account.settings.settingCards.upgradePrompt" }}}

+

{{{ locale.account.settings.settingCards.upgradePrompt }}}

{{else}} -

{{ localeHelper locale "account.settings.settingCards.hasAccessPrompt" }}

+

{{ locale.account.settings.settingCards.hasAccessPrompt }}

{{/unless}}
-

{{ localeHelper locale "account.settings.settingCards.signInSecurity" }}

+

{{ locale.account.settings.settingCards.signInSecurity }}

Account

@@ -112,19 +112,19 @@
  • -

    {{ localeHelper locale "account.settings.settingCards.email" }}

    +

    {{ locale.account.settings.settingCards.email }}

    {{account.email.address}}

  • -

    {{ localeHelper locale "account.settings.settingCards.password" }}

    +

    {{ locale.account.settings.settingCards.password }}

    ●●●●●●●●

-

{{ localeHelper locale "account.settings.settingCards.passwordResetNotice" }}

+

{{ locale.account.settings.settingCards.passwordResetNotice }}

-

{{ localeHelper locale "account.settings.settingCards.otherSettings" }}

+

{{ locale.account.settings.settingCards.otherSettings }}

-

{{ localeHelper locale "account.settings.settingCards.discord" }}

+

{{ locale.account.settings.settingCards.discord }}

{{#if discordUser}} -

{{ localeHelper locale "account.settings.settingCards.connectedToDiscord" }} {{ discordUser.username }}#{{ discordUser.discriminator }}

+

{{ locale.account.settings.settingCards.connectedToDiscord }} {{ discordUser.username }}#{{ discordUser.discriminator }}

- + {{else}} -

{{ localeHelper locale "account.settings.settingCards.noDiscordLinked" }} {{ localeHelper locale "account.settings.settingCards.linkDiscord" }}

+

{{ locale.account.settings.settingCards.noDiscordLinked }} {{ locale.account.settings.settingCards.linkDiscord }}

{{/if}}
-

{{ localeHelper locale "account.settings.settingCards.newsletter" }}

+

{{ locale.account.settings.settingCards.newsletter }}

Newsletter not currently available. Check back again later

@@ -185,12 +185,12 @@ diff --git a/views/account/login.handlebars b/views/account/login.handlebars index 7664ed6..6ae3aa3 100644 --- a/views/account/login.handlebars +++ b/views/account/login.handlebars @@ -6,22 +6,22 @@ diff --git a/views/account/register.handlebars b/views/account/register.handlebars index 8419bad..0c8b726 100644 --- a/views/account/register.handlebars +++ b/views/account/register.handlebars @@ -7,33 +7,33 @@ diff --git a/views/account/upgrade.handlebars b/views/account/upgrade.handlebars index d353629..5ef9a07 100644 --- a/views/account/upgrade.handlebars +++ b/views/account/upgrade.handlebars @@ -2,7 +2,7 @@
- {{ localeHelper locale "upgrade.back" }} + {{ locale.upgrade.back }}

- {{this.price}} / {{ localeHelper locale "upgrade.month" }} + {{this.price}} / {{ locale.upgrade.month }}

{{/each}}
- - + +
diff --git a/views/blog/blog.handlebars b/views/blog/blog.handlebars index d5056e9..ee03b0a 100644 --- a/views/blog/blog.handlebars +++ b/views/blog/blog.handlebars @@ -7,8 +7,8 @@
-

{{ localeHelper locale "blogPage.title" }}

-

{{{ localeHelper locale "blogPage.description" }}}

+

{{ locale.blogPage.title }}

+

{{{ locale.blogPage.description }}}

@@ -18,12 +18,12 @@

{{{ this.postInfo.title }}}

{{{ this.postInfo.caption }}}

- {{ localeHelper ../locale "blogPage.published" }} + {{ ../locale.blogPage.published }}
{{{ this.postInfo.author }}}
- {{ localeHelper ../locale "blogPage.publishedOn" }} + {{ ../locale.blogPage.publishedOn }} {{{ this.postInfo.date }}}
diff --git a/views/blog/blogpost.handlebars b/views/blog/blogpost.handlebars index dfb61ec..21ac56b 100644 --- a/views/blog/blogpost.handlebars +++ b/views/blog/blogpost.handlebars @@ -9,12 +9,12 @@

{{{ postInfo.title }}}

- {{ localeHelper locale "blogPage.published" }} + {{ locale.blogPage.published }}
{{ postInfo.author }} {{{ postInfo.author }}}
- {{ localeHelper locale "blogPage.publishedOn" }} + {{ locale.blogPage.publishedOn }} {{{ postInfo.date }}}
diff --git a/views/docs/docs.handlebars b/views/docs/docs.handlebars index 5eb8ead..b080960 100644 --- a/views/docs/docs.handlebars +++ b/views/docs/docs.handlebars @@ -40,7 +40,7 @@
{{#if missingInLocale}} -

{{ localeHelper locale "docs.missingInLocale" }}

+

{{ locale.docs.missingInLocale }}

{{/if}} {{{ content }}} diff --git a/views/docs/welcome.handlebars b/views/docs/welcome.handlebars index 5424440..76d7b25 100644 --- a/views/docs/welcome.handlebars +++ b/views/docs/welcome.handlebars @@ -44,7 +44,7 @@
-

{{ localeHelper locale "docs.quickLinks.header" }}

+

{{ locale.docs.quickLinks.header }}