Skip to content

Commit 0f9a0e8

Browse files
committed
Revert escaping for i18n strings
Looks like the library already escapes, so we were getting double escaping.
1 parent 4029c1e commit 0f9a0e8

File tree

1 file changed

+5
-12
lines changed

1 file changed

+5
-12
lines changed

src/node/routes/login.ts

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ const getRoot = async (req: Request, error?: Error): Promise<string> => {
3131
const locale = req.args["locale"] || "en"
3232
i18n.changeLanguage(locale)
3333
const appName = req.args["app-name"] || "code-server"
34-
const welcomeText = escapeHtml(req.args["welcome-text"] || (i18n.t("WELCOME", { app: appName }) as string))
34+
const welcomeText = req.args["welcome-text"] || (i18n.t("WELCOME", { app: appName }) as string)
3535

3636
// Determine password message using i18n
3737
let passwordMsg = i18n.t("LOGIN_PASSWORD", { configFile: req.args.config })
@@ -40,23 +40,16 @@ const getRoot = async (req: Request, error?: Error): Promise<string> => {
4040
} else if (req.args.usingEnvHashedPassword) {
4141
passwordMsg = i18n.t("LOGIN_USING_HASHED_PASSWORD")
4242
}
43-
passwordMsg = escapeHtml(passwordMsg)
44-
45-
// Get messages from i18n (with HTML escaping for security)
46-
const loginTitle = escapeHtml(i18n.t("LOGIN_TITLE", { app: appName }))
47-
const loginBelow = escapeHtml(i18n.t("LOGIN_BELOW"))
48-
const passwordPlaceholder = escapeHtml(i18n.t("PASSWORD_PLACEHOLDER"))
49-
const submitText = escapeHtml(i18n.t("SUBMIT"))
5043

5144
return replaceTemplates(
5245
req,
5346
content
54-
.replace(/{{I18N_LOGIN_TITLE}}/g, loginTitle)
47+
.replace(/{{I18N_LOGIN_TITLE}}/g, i18n.t("LOGIN_TITLE", { app: appName }))
5548
.replace(/{{WELCOME_TEXT}}/g, welcomeText)
5649
.replace(/{{PASSWORD_MSG}}/g, passwordMsg)
57-
.replace(/{{I18N_LOGIN_BELOW}}/g, loginBelow)
58-
.replace(/{{I18N_PASSWORD_PLACEHOLDER}}/g, passwordPlaceholder)
59-
.replace(/{{I18N_SUBMIT}}/g, submitText)
50+
.replace(/{{I18N_LOGIN_BELOW}}/g, i18n.t("LOGIN_BELOW"))
51+
.replace(/{{I18N_PASSWORD_PLACEHOLDER}}/g, i18n.t("PASSWORD_PLACEHOLDER"))
52+
.replace(/{{I18N_SUBMIT}}/g, i18n.t("SUBMIT"))
6053
.replace(/{{ERROR}}/, error ? `<div class="error">${escapeHtml(error.message)}</div>` : ""),
6154
)
6255
}

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy